From 590b1acae54dc13253ae11825be3f2d5afaf17a5 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 20 Sep 2020 17:57:05 +0800 Subject: [PATCH 01/53] feat: add lookup method --- src/node/index.js | 16 ++++++++++++++++ test/node/lookup.js | 21 +++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 test/node/lookup.js diff --git a/src/node/index.js b/src/node/index.js index 14f743aae..b3818591a 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -165,6 +165,7 @@ function Request(method, url) { this.qsRaw = this._query; // Unused, for backwards compatibility only this._redirectList = []; this._streamRequest = false; + this._lookup = null; this.once('end', this.clearTimeout.bind(this)); } @@ -300,6 +301,20 @@ Request.prototype.agent = function (agent) { return this; }; +/** + * Gets/sets the `lookup` function to use custom DNS resolver. + * + * @param {Function} lookup + * @return {Function} + * @api public + */ + +Request.prototype.lookup = function (lookup) { + if (arguments.length === 0) return this._lookup; + this._lookup = lookup; + return this; +}; + /** * Set _Content-Type_ response header passed through `mime.getType()`. * @@ -759,6 +774,7 @@ Request.prototype.request = function () { options.cert = this._cert; options.passphrase = this._passphrase; options.agent = this._agent; + options.lookup = this._lookup; options.rejectUnauthorized = typeof this._disableTLSCerts === 'boolean' ? !this._disableTLSCerts diff --git a/test/node/lookup.js b/test/node/lookup.js new file mode 100644 index 000000000..0958d5ba3 --- /dev/null +++ b/test/node/lookup.js @@ -0,0 +1,21 @@ +'use strict'; +const assert = require('assert'); +const dns = require('dns'); +const request = require('../support/client'); +const setup = require('../support/setup'); + +const base = setup.uri; + +function myLookup(hostname, options, callback) { + dns.lookup(hostname, options, callback); +} + +describe('req.lookup()', () => { + it('should set a custom lookup', () => { + const r = request.get(`${base}/ok`).lookup(myLookup); + assert(r.lookup() === myLookup); + r.then((res) => { + res.text.should.equal('ok'); + }); + }); +}); From d442ae14c9e4c136b37998c073e67b1ed22eea30 Mon Sep 17 00:00:00 2001 From: Mike Eve Date: Fri, 7 Jan 2022 17:22:52 +0000 Subject: [PATCH 02/53] #1660: Fix engines syntax in package.json (#1661) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 99a08e2a7..bf1101684 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "zuul": "^3.12.0" }, "engines": { - "node": ">=6.4.0 <13|>=14" + "node": ">=6.4.0 <13||>=14" }, "homepage": "https://github.com/visionmedia/superagent", "husky": { From 37dd15b315e4a119ba354170a3ea093e8091fc83 Mon Sep 17 00:00:00 2001 From: niftylettuce Date: Fri, 7 Jan 2022 12:25:20 -0500 Subject: [PATCH 03/53] Revert "#1660: Fix engines syntax in package.json (#1661)" (#1662) This reverts commit d442ae14c9e4c136b37998c073e67b1ed22eea30. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bf1101684..99a08e2a7 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "zuul": "^3.12.0" }, "engines": { - "node": ">=6.4.0 <13||>=14" + "node": ">=6.4.0 <13|>=14" }, "homepage": "https://github.com/visionmedia/superagent", "husky": { From a4c3fd7d6a142bbbed9bacbaabc1eb6d558b621d Mon Sep 17 00:00:00 2001 From: niftylettuce Date: Fri, 7 Jan 2022 12:34:36 -0500 Subject: [PATCH 04/53] fix: fixed version range (see and closes ) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 99a08e2a7..87194e2ff 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "zuul": "^3.12.0" }, "engines": { - "node": ">=6.4.0 <13|>=14" + "node": ">=6.4.0 !13" }, "homepage": "https://github.com/visionmedia/superagent", "husky": { From 18980ede7e0be93272891fd28614594f4e26cdbd Mon Sep 17 00:00:00 2001 From: niftylettuce Date: Fri, 7 Jan 2022 12:35:47 -0500 Subject: [PATCH 05/53] v7.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 87194e2ff..ea1f9f4fd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "superagent", "description": "elegant & feature rich browser / node HTTP with a fluent API", - "version": "7.0.0", + "version": "7.0.1", "author": "TJ Holowaychuk ", "browser": { "./src/node/index.js": "./src/client.js", From e7acafbeef8ca078b37aa3072519203d21d0b982 Mon Sep 17 00:00:00 2001 From: David Glasser Date: Tue, 11 Jan 2022 14:22:25 -0800 Subject: [PATCH 06/53] package.json: fix invalid syntax in `engines` (#1666) `!` is not supported by the semver library. This fixes a regression in v7 when used with engine-strict mode. While the change in this PR may look similar to the state before #1660, it differs by using two pipe characters instead of one. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ea1f9f4fd..1b41b78e0 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "zuul": "^3.12.0" }, "engines": { - "node": ">=6.4.0 !13" + "node": ">=6.4.0 <13 || >=14" }, "homepage": "https://github.com/visionmedia/superagent", "husky": { From df5dc59b19d563a06376b627097b5d021681a4dc Mon Sep 17 00:00:00 2001 From: niftylettuce Date: Tue, 11 Jan 2022 17:23:44 -0500 Subject: [PATCH 07/53] v7.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1b41b78e0..6edc32ff5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "superagent", "description": "elegant & feature rich browser / node HTTP with a fluent API", - "version": "7.0.1", + "version": "7.0.2", "author": "TJ Holowaychuk ", "browser": { "./src/node/index.js": "./src/client.js", From 970d2039c562ba7afbaf21d5f689ae2de20c9f08 Mon Sep 17 00:00:00 2001 From: chimurai <655241+chimurai@users.noreply.github.com> Date: Tue, 18 Jan 2022 00:16:37 +0100 Subject: [PATCH 08/53] chore: fix husky hooks (#1653) --- .husky/commit-msg | 4 ++++ .husky/pre-commit | 5 +++++ package.json | 7 +------ 3 files changed, 10 insertions(+), 6 deletions(-) create mode 100755 .husky/commit-msg create mode 100755 .husky/pre-commit diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 000000000..e8511eaea --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx --no-install commitlint --edit $1 diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 000000000..6a9662ace --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,5 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +# enable next line when tests are fixed +# npm test diff --git a/package.json b/package.json index 6edc32ff5..29fc93fc7 100644 --- a/package.json +++ b/package.json @@ -78,12 +78,6 @@ "node": ">=6.4.0 <13 || >=14" }, "homepage": "https://github.com/visionmedia/superagent", - "husky": { - "hooks": { - "pre-commit": "npm test", - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" - } - }, "jsdelivr": "dist/superagent.min.js", "keywords": [ "agent", @@ -150,6 +144,7 @@ "url": "git://github.com/visionmedia/superagent.git" }, "scripts": { + "prepare": "husky install", "browserify": "browserify src/node/index.js -o dist/superagent.js -s superagent -g [ babelify --configFile ./.dist.babelrc ]", "build": "npm run build:clean && npm run build:lib && npm run build:dist", "build:clean": "rimraf lib dist", From fbe327da7b447df400d6f695e2e61e70587f2c84 Mon Sep 17 00:00:00 2001 From: ltxhhz <51697596+ltxhhz@users.noreply.github.com> Date: Wed, 19 Jan 2022 01:19:56 +0800 Subject: [PATCH 09/53] =?UTF-8?q?Added=20Chinese=20document=20(=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=B8=AD=E6=96=87=E6=96=87=E6=A1=A3)=20(#1668)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added Chinese document (添加中文文档) * 1.18 fixed css path --- docs/index.md | 2 + docs/zh_CN/index.html | 652 +++++++++++++++++++++++++++++++++++ docs/zh_CN/index.md | 765 ++++++++++++++++++++++++++++++++++++++++++ index.html | 1 + 4 files changed, 1420 insertions(+) create mode 100644 docs/zh_CN/index.html create mode 100644 docs/zh_CN/index.md diff --git a/docs/index.md b/docs/index.md index fe3092cb9..ade9ee36f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -14,6 +14,8 @@ SuperAgent is light-weight progressive ajax API crafted for flexibility, readabi ## Test documentation +[**中文文档**](docs/zh_CN/index.html) + The following [test documentation](docs/test.html) was generated with [Mocha's](https://mochajs.org/) "doc" reporter, and directly reflects the test suite. This provides an additional source of documentation. ## Request basics diff --git a/docs/zh_CN/index.html b/docs/zh_CN/index.html new file mode 100644 index 000000000..6ba7d34b0 --- /dev/null +++ b/docs/zh_CN/index.html @@ -0,0 +1,652 @@ + + + + + SuperAgent — elegant API for AJAX in Node and browsers + + + + + +
+

SuperAgent

+

SuperAgent是轻量级的渐进式ajax API,具有灵活性、可读性和较低的学习曲线。 它也适用于Node.js!

+
 request
+   .post('/api/pet')
+   .send({ name: 'Manny', species: 'cat' })
+   .set('X-API-Key', 'foobar')
+   .set('Accept', 'application/json')
+   .then(res => {
+      alert('yay got ' + JSON.stringify(res.body));
+   });
+
+

测试文档

+

English

+

下面的测试文档是用Mocha的"文档"报告器生成的,并直接反映了测试套件。 这提供了额外的文档来源。

+

基本请求

+

可以通过调用 request 对象上的适当方法来发起请求,然后调用 .then() ( 或 .end()await )发送请求。例如一个简单的 GET 请求:

+
 request
+   .get('/search')
+   .then(res => {
+      // res.body, res.headers, res.status
+   })
+   .catch(err => {
+      // err.message, err.response
+   });
+
+

HTTP 方法也可以作为字符串传递:
译者注:大小写皆可。

+
request('GET', '/search').then(success, failure);
+
+

旧式回调也受支持,但不推荐使用。您可以调用 .end() 代替 .then()

+
request('GET', '/search').end(function(err, res){
+  if (res.ok) {}
+});
+
+

可以使用绝对 URL。在 Web 浏览器中,绝对 URL 仅在服务器实现 CORS 时才有效。

+
 request
+   .get('https://example.com/search')
+   .then(res => {
+
+   });
+
+

Node 客户端支持向 Unix 域套接字 发出请求:

+
// pattern: https?+unix://SOCKET_PATH/REQUEST_PATH
+//在套接字路径中将 `%2F` 用作 `/`
+try {
+  const res = await request
+    .get('http+unix://%2Fabsolute%2Fpath%2Fto%2Funix.sock/search');
+  // res.body, res.headers, res.status
+} catch(err) {
+  // err.message, err.response
+}
+
+

DELETE__、__HEAD__、__PATCH__、__POSTPUT 请求也可以使用,只需更改方法名称:

+
request
+  .head('/favicon.ico')
+  .then(res => {
+
+  });
+
+

DELETE 也可以用 .del() 调用以与旧版 IE 兼容,其中 delete 是保留字。

+

HTTP 方法默认为 __GET__,因此如果您愿意,以下代码是有效的:

+
 request('/search', (err, res) => {
+
+ });
+
+

设置请求头字段

+

设置请求头字段很简单,调用 .set() 时传入字段名称和值:

+
 request
+   .get('/search')
+   .set('API-Key', 'foobar')
+   .set('Accept', 'application/json')
+   .then(callback);
+
+

您还可以在一次调用中传入一个对象来设置多个字段:

+
 request
+   .get('/search')
+   .set({ 'API-Key': 'foobar', Accept: 'application/json' })
+   .then(callback);
+
+

GET 请求

+

.query() 方法接受对象,当与 GET 方法一起使用时将形成一个查询字符串。以下将产生路径 /search?query=Manny&range=1..5&order=desc。 +译者注:.query() 方法的参数不需要提前进行url编码。

+
 request
+   .get('/search')
+   .query({ query: 'Manny' })
+   .query({ range: '1..5' })
+   .query({ order: 'desc' })
+   .then(res => {
+
+   });
+
+

或传入单个对象:

+
request
+  .get('/search')
+  .query({ query: 'Manny', range: '1..5', order: 'desc' })
+  .then(res => {
+
+  });
+
+

.query() 方法也可以接受字符串。

+
  request
+    .get('/querystring')
+    .query('search=Manny&range=1..5')
+    .then(res => {
+
+    });
+
+

或者一个个加入:

+
  request
+    .get('/querystring')
+    .query('search=Manny')
+    .query('range=1..5')
+    .then(res => {
+
+    });
+
+

HEAD 请求

+

您还可以对 HEAD 请求使用 .query() 方法。以下将生成路径 /users?email=joe@smith.com

+
  request
+    .head('/users')
+    .query({ email: 'joe@smith.com' })
+    .then(res => {
+
+    });
+
+

POST / PUT 请求

+

一个典型的 JSON POST 请求可能如下所示,我们适当地设置 Content-Type 请求头字段,并"写入"一些数据,在本例中只是一个 JSON 字符串。

+
  request.post('/user')
+    .set('Content-Type', 'application/json')
+    .send('{"name":"tj","pet":"tobi"}')
+    .then(callback)
+    .catch(errorCallback)
+
+

由于 JSON 无疑是最常见的,所以它是 默认 的!下面的例子与前面的例子是等价的。

+
  request.post('/user')
+    .send({ name: 'tj', pet: 'tobi' })
+    .then(callback, errorCallback)
+
+

或者调用多个 .send()

+
  request.post('/user')
+    .send({ name: 'tj' })
+    .send({ pet: 'tobi' })
+    .then(callback, errorCallback)
+
+

默认情况下,发送字符串会将 Content-Type 设置为 application/x-www-form-urlencoded,多个调用将用 & 连接,这里产生 name=tj&pet=tobi

+
  request.post('/user')
+    .send('name=tj')
+    .send('pet=tobi')
+    .then(callback, errorCallback);
+
+

SuperAgent 格式是可扩展的,但默认情况下支持 "json" 和 "form"。要将数据作为 application/x-www-form-urlencoded 发送,只需在调用 .type() 时传入 "form",默认为 "json"。此 POST 请求的请求体将是 "name=tj&pet=tobi"。

+
  request.post('/user')
+    .type('form')
+    .send({ name: 'tj' })
+    .send({ pet: 'tobi' })
+    .then(callback, errorCallback)
+
+

还支持发送 FormData 对象。以下示例将 POST 请求由 id="myForm" 标识的 HTML 表单的内容:

+
  request.post('/user')
+    .send(new FormData(document.getElementById('myForm')))
+    .then(callback, errorCallback)
+
+

设置 Content-Type

+

显而易见的解决方案是使用 .set() 方法:

+
 request.post('/user')
+   .set('Content-Type', 'application/json')
+
+

.type() 方法也可以作为简写,接受带有类型/子类型的规范化 MIME 类型 名称,或者只是扩展名,例如"xml"、"json"、"png"等:

+
 request.post('/user')
+   .type('application/json')
+
+ request.post('/user')
+   .type('json')
+
+ request.post('/user')
+   .type('png')
+
+

序列化请求体

+

SuperAgent 将自动序列化 JSON 和表单。您也可以为其他类型设置自动序列化:

+
request.serialize['application/xml'] = function (obj) {
+    return '从obj生成的字符串';
+};
+
+// 接下来,内容类型为 "application/xml" 的所有请求都将自动序列化
+
+

如果您想以自定义格式发送 数据体(payload),您可以根据每个请求将内置序列化替换为 .serialize() 方法:

+
request
+    .post('/user')
+    .send({foo: 'bar'})
+    .serialize(obj => {
+        return '从obj生成的字符串';
+    });
+
+

重试请求

+

如果请求暂时失败或可能是网络连接不稳定造成的失败,且当给定 .retry() 方法时,SuperAgent 将自动重试请求。

+

此方法有两个可选参数:重试次数(默认为 1)和回调函数。它在每次重试之前调用 callback(err, res) 。回调可以返回 true/false 以控制是否应重试请求(但始终应该用最大重试次数)。 + request + .get('https://example.com/search') + .retry(2) // 或者: + .retry(2, callback) // 二选一 + .then(finished); + .catch(failed);

+

.retry() 仅用于幂等请求(即到达服务器的多个请求不会导致重复购买等不良副作用)。

+

默认情况下会尝试所有请求方法(这意味着如果您不希望重试 POST 请求,则需要传递自定义的重试回调函数)。

+

默认情况下会重试以下状态代码:

+
    +
  • 408
  • +
  • 413
  • +
  • 429
  • +
  • 500
  • +
  • 502
  • +
  • 503
  • +
  • 504
  • +
  • 521
  • +
  • 522
  • +
  • 524
  • +
+

默认情况下会重试以下错误代码:

+
    +
  • 'ETIMEDOUT'
  • +
  • 'ECONNRESET'
  • +
  • 'EADDRINUSE'
  • +
  • 'ECONNREFUSED'
  • +
  • 'EPIPE'
  • +
  • 'ENOTFOUND'
  • +
  • 'ENETUNREACH'
  • +
  • 'EAI_AGAIN'
  • +
+

设置 Accept

+

.type() 方法类似,也可以通过简写方法 .accept() 设置 Accept 请求头。方便起见,其中还引用了 request.types,允许您将完整的规范化 MIME 类型 名称指定为类型/子类型,或将扩展后缀形式指定为"xml"、"json"、"png"等:

+
 request.get('/user')
+   .accept('application/json')
+
+ request.get('/user')
+   .accept('json')
+
+ request.post('/user')
+   .accept('png')
+
+

Facebook 和 Accept JSON

+

如果您正在调用 Facebook 的 API,请务必在您的请求中发送 Accept: application/json 请求头。如果你不这样做,Facebook 会回复 Content-Type: text/javascript; charset=UTF-8,SuperAgent 将不会解析,因此 res.body 将是未定义的。您可以使用 req.accept('json')req.header('Accept', 'application/json') 来执行此操作。有关详细信息,请参阅 issue 1078

+

查询字符串(Query strings)

+

req.query(obj) 是一种可用于构建查询字符串的方法。例如在 POST 上增加 ?format=json&dest=/login

+
request
+  .post('/')
+  .query({ format: 'json' })
+  .query({ dest: '/login' })
+  .send({ post: 'data', here: 'wahoo' })
+  .then(callback);
+
+

默认情况下,查询字符串不按任何特定顺序组装。可以使用 req.sortQuery() 启用 ASCIIbetically 排序的查询字符串。您还可以使用 req.sortQuery(myComparisonFn) 提供自定义排序比较函数。比较函数应该接受 2 个参数并返回一个负/零/正整数。

+
 // 默认顺序
+ request.get('/user')
+   .query('name=Nick')
+   .query('search=Manny')
+   .sortQuery()
+   .then(callback)
+
+ // 自定义排序函数
+ request.get('/user')
+   .query('name=Nick')
+   .query('search=Manny')
+   .sortQuery((a, b) => a.length - b.length)
+   .then(callback)
+
+

TLS 选项

+

在 Node.js 中,SuperAgent 支持配置 HTTPS 请求的方法:

+
    +
  • .ca(): 将 CA 证书设置为信任
  • +
  • .cert(): 设置客户端证书链
  • +
  • .key(): 设置客户端私钥
  • +
  • .pfx(): 设置客户端 PFX 或 PKCS12 编码的私钥和证书链
  • +
  • .disableTLSCerts(): 不拒绝过期或无效的 TLS 证书。在内部设置 rejectUnauthorized=true请注意,此方法允许中间人攻击。
  • +
+

有关更多信息,请参阅 Node.js https.request 文档

+
var key = fs.readFileSync('key.pem'),
+    cert = fs.readFileSync('cert.pem');
+
+request
+  .post('/client-auth')
+  .key(key)
+  .cert(cert)
+  .then(callback);
+
+
var ca = fs.readFileSync('ca.cert.pem');
+
+request
+  .post('https://localhost/private-ca-server')
+  .ca(ca)
+  .then(res => {});
+
+

解析响应体

+

SuperAgent将为您解析已知的响应主体数据,目前支持application/x-www-form-urlencodedapplication/json,以及multipart/form data。您可以设置自动解析其他响应主体数据:

+
//浏览器
+request.parse['application/xml'] = function (str) {
+    return {'object': '从str解析的'};
+};
+
+//node
+request.parse['application/xml'] = function (res, cb) {
+    //解析响应文本并在此处设置res.body
+
+    cb(null, res);
+};
+
+//接下来,将自动解析 'application/xml' 类型的响应
+
+

您可以使用 .buffer(true).parse(fn) 方法设置自定义解析器(优先于内置解析器)。如果未启用响应缓冲 (.buffer(false)),则将触发响应(response)事件而无需等待正文解析器完成,因此 response.body 将不可用。

+

JSON / Urlencoded

+

属性 res.body 是解析后的对象,例如,如果请求以 JSON 字符串 '{"user":{"name":"tobi"}}' 响应,则 res.body.user.name 将为 "tobi" .同样,"user[name]=tobi" 的 x-www-form-urlencoded 值将产生相同的结果。仅支持一级嵌套。如果您需要更复杂的数据,请改为发送 JSON。

+

通过重复的键发送数组。 .send({color: ['red','blue']}) 会发送 color=red&color=blue。如果您希望数组键的名称中包含 [],您必须自己添加它,因为 SuperAgent 不会自动添加它。

+

Multipart

+

Node 客户端通过 Formidable 模块支持 _multipart/form-data_。解析 multipart 响应时,对象 res.files 也可供您使用。例如,假设一个请求使用以下 multipart 请求体进行响应:

+
--whoop
+Content-Disposition: attachment; name="image"; filename="tobi.png"
+Content-Type: image/png
+
+... data here ...
+--whoop
+Content-Disposition: form-data; name="name"
+Content-Type: text/plain
+
+Tobi
+--whoop--
+
+

res.body.name的值将为 "Tobi",并且 res.files.image 将作为包含磁盘路径、文件名和其他属性的 File 对象。

+

二进制数据

+

在浏览器中,您可以使用 .responseType('blob') 来请求处理二进制响应体。在 node.js 中运行时不需要此 API。此方法支持的参数值为

+
    +
  • 'blob' 赋值给 XmlHTTPRequest 的 responseType 属性
  • +
  • 'arraybuffer' 赋值给 XmlHTTPRequest 的 responseType 属性
  • +
+
req.get('/binary.data')
+  .responseType('blob')
+  .then(res => {
+    // res.body 将是浏览器原生 Blob 类型
+  });
+
+

有关更多信息,请参阅 Mozilla 开发人员网络 xhr.responseType 文档

+

响应属性

+

Response 对象上设置了许多有用的标志和属性,包括响应文本、解析的响应正文、响应头字段、状态标志等等。

+

响应文本

+

res.text 属性包含未解析的响应正文字符串。此属性始终存在于客户端 API 中,并且仅当默认情况下节点的 mime 类型与 "text/"、"/json" 或 "x-www-form-urlencoded" 匹配时。原因是为了节省内存,因为缓冲大型正文(例如 multipart 文件或图像)的文本效率极低。要强制缓冲,请参阅"缓冲响应"部分。

+

响应体

+

就像 SuperAgent 可以自动序列化请求数据一样,它也可以自动解析响应体。为 Content-Type 定义解析器时,会对其进行解析,默认情况下包括 "application/json" 和 "application/x-www-form-urlencoded"。然后可以通过 res.body 获得解析的对象。

+

响应头字段

+

res.header 包含已解析的响应头字段的对象,字段名称小写,就像 node 做的一样。例如 res.header['content-length']

+

响应内容类型(Content-Type)

+

Content-Type 响应头是特殊情况,提供 res.type,它没有字符集(也可以有)。例如,"text/html; charset=utf8" 的 Content-Type 将提供 "text/html" 作为 res.type,然后 res.charset 属性将包含 "utf8"。

+

响应状态

+

响应状态标志有助于确定请求是否成功,以及其他有用的信息,使 SuperAgent 成为与 RESTful Web 服务交互的理想选择。这些标志当前定义为:

+
 var type = status / 100 | 0;
+
+ // status / class
+ res.status = status;
+ res.statusType = type;
+
+ // basics
+ res.info = 1 == type;
+ res.ok = 2 == type;
+ res.clientError = 4 == type;
+ res.serverError = 5 == type;
+ res.error = 4 == type || 5 == type;
+
+ // 语法糖
+ res.accepted = 202 == status;
+ res.noContent = 204 == status || 1223 == status;
+ res.badRequest = 400 == status;
+ res.unauthorized = 401 == status;
+ res.notAcceptable = 406 == status;
+ res.notFound = 404 == status;
+ res.forbidden = 403 == status;
+
+

中止请求

+

要中止请求,只需调用 req.abort() 方法。

+

超时设定

+

有时网络和服务器会 "卡住" 并且在接受请求后从不响应。设置超时以避免请求永远等待。

+
    +
  • req.timeout({deadline:ms})req.timeout(ms)(其中 ms 是毫秒数 > 0)设置完成整个请求(包括所有上传、重定向、服务器处理时间)的最后期限。如果在这段时间内没有完全下载响应,则请求将被中止。

    +
  • +
  • req.timeout({response:ms}) 设置等待第一个字节从服务器到达的最长时间,但它不限制整个下载需要多长时间。响应超时应该至少比服务器响应的时间长几秒钟,因为它还包括进行 DNS 查找、TCP/IP 和 TLS 连接的时间,以及上传请求数据的时间。

    +
  • +
+

您应该同时使用 deadlineresponse 超时。通过这种方式,您可以使用较短的响应超时来快速检测无响应的网络,并使用较长的截止时间来为缓慢但可靠的网络上的下载留出时间。请注意,这两个计时器都限制了允许上传附件的时间。如果您要上传文件,请使用长超时。

+
request
+  .get('/big-file?network=slow')
+  .timeout({
+    response: 5000,  // 等待 5 秒让服务器开始发送
+    deadline: 60000, // 但允许文件用 1 分钟完成加载。
+  })
+  .then(res => {
+      /* 及时响应 */
+    }, err => {
+      if (err.timeout) { /* 超时! */ } else { /* 其他错误 */ }
+  });
+
+

超时错误有个 .timeout 属性。

+

验证

+

在 Node 和浏览器中都可以通过 .auth() 方法进行身份验证:

+
request
+  .get('http://local')
+  .auth('tobi', 'learnboost')
+  .then(callback);
+
+

Node 客户端中,基本身份验证可以在 URL 中写成 "user:pass":

+
request.get('http://tobi:learnboost@local').then(callback);
+
+

默认情况下,仅使用基本(Basic)身份验证。在浏览器中,您可以添加 {type:'auto'} 以启用浏览器中内置的所有方法(Digest、NTLM 等):

+
request.auth('digest', 'secret', {type:'auto'})
+
+

auth 方法还支持一种承载类型,以指定基于令牌的身份验证:

+
request.auth('my_token', { type: 'bearer' })
+
+

跟随重定向

+

默认情况下将跟随最多 5 个重定向,但是您可以使用 res.redirects(n) 方法指定它:

+
const response = await request.get('/some.png').redirects(2);
+
+

超出限制的重定向被视为错误。使用 .ok(res => res.status < 400) 将它们读取为成功响应。

+

全局状态代理程序

+ +

在 Node 中 SuperAgent 默认不保存 cookie,但您可以使用 .agent() 方法创建保存 cookie 的 SuperAgent 副本。每个副本都有一个单独的 cookie 储存器。

+
const agent = request.agent();
+agent
+  .post('/login')
+  .then(() => {
+    return agent.get('/cookied-page');
+  });
+
+

在浏览器中,cookie 由浏览器自动管理,因此 .agent() 不会隔离 cookie。

+

多个请求的默认选项

+

代理程序上调用的常规请求方法将用作该代理发出的所有请求的默认值。

+
const agent = request.agent()
+  .use(plugin)
+  .auth(shared);
+
+await agent.get('/with-plugin-and-auth'); // 带有插件和身份验证
+await agent.get('/also-with-plugin-and-auth'); // 也带有插件和身份验证
+
+

代理可以用来设置默认值的完整方法列表是:useononcesetquerytypeacceptauthwithCredentialssortQueryretryokredirectstimeoutbufferserializeparsecakeypfxcert.

+

管道数据

+

Node 客户端允许您通过管道将数据传入和传出请求。请注意,使用 .pipe() 代替 .end()/.then() 方法。

+

管道文件的内容作为请求的例子:

+
const request = require('superagent');
+const fs = require('fs');
+
+const stream = fs.createReadStream('path/to/my.json');
+const req = request.post('/somewhere');
+req.type('json');
+stream.pipe(req);
+
+

请注意,当您通过管道发送请求时,superagent 使用分块传输编码发送管道数据,并非所有服务器(例如 Python WSGI 服务器)都支持。

+

或将响应传送到文件:

+
const stream = fs.createWriteStream('path/to/my.json');
+const req = request.get('/some.json');
+req.pipe(stream);
+
+

不能混合使用管道和回调函数或 promises。请注意,您不应尝试通过管道传输 .end()Response 对象的结果:

+
// 别特么这么写:
+const stream = getAWritableStream();
+const req = request
+  .get('/some.json')
+  // BAD: 这会将无用信息管道传输到流中并以意想不到的方式失败
+  .end((err, this_does_not_work) => this_does_not_work.pipe(stream))
+const req = request
+  .get('/some.json')
+  .end()
+  // BAD: 这也不支持,调用 .end 之后调用 .pipe。
+  .pipe(nope_its_too_late);
+
+

在 superagent 的未来版本中,对 pipe() 的不当调用将失败。

+

多部分请求

+

SuperAgent 也非常适合 构建 它提供方法 .attach().field() 的多部分请求。

+

当您使用 .field().attach() 时,您不能使用 .send() 并且您不能设置 Content-Type(将为您设置正确的类型)。

+

附加文件

+

要发送文件,请使用 .attach(name, [file], [options])。您可以通过多次调用 .attach 来附加多个文件。参数是:

+
    +
  • name — form 表单中的字段名。
  • +
  • file — 带有文件路径的字符串或 Blob/Buffer 对象。
  • +
  • options — (可选)自定义文件名的字符串或 {filename: string} 对象。在 Node 中也支持 {contentType: 'mime/type'}。在浏览器中创建一个具有适当类型的 Blob
  • +
+
+ +
request
+  .post('/upload')
+  .attach('image1', 'path/to/felix.jpeg')
+  .attach('image2', imageBuffer, 'luna.jpeg')
+  .field('caption', 'My cats')
+  .then(callback);
+
+

字段值

+

与 HTML 中的表单字段非常相似,您可以使用 .field(name, value).field({name: value}) 设置字段值。假设您想上传一些带有您的姓名和电子邮件的图片,您的请求可能如下所示:

+
 request
+   .post('/upload')
+   .field('user[name]', 'Tobi')
+   .field('user[email]', 'tobi@learnboost.com')
+   .field('friends[]', ['loki', 'jane'])
+   .attach('image', 'path/to/tobi.png')
+   .then(callback);
+
+

压缩

+

node 客户端支持压缩过的响应,最重要的是,您无需执行任何操作!它就能用。

+

缓冲响应

+

要强制将响应主体缓冲为 res.text,您可以调用 req.buffer()。要取消对文本响应(例如 "text/plain"、"text/html" 等)的默认缓冲,您可以调用 req.buffer(false)

+

当缓冲提供 res.buffered 标志时,您可以使用它在同一个回调中处理缓冲和非缓冲响应。

+

CORS

+

出于安全原因,浏览器将阻止跨域请求,除非服务器选择使用 CORS 标头。浏览器还会发出额外的 OPTIONS 请求来检查服务器允许哪些 HTTP 标头和方法。阅读有关 CORS 的更多信息

+

.withCredentials() 方法支持从源发送 cookie,但仅当 Access-Control-Allow-Origin 不是 通配符 ("*") 且 Access-Control-Allow-Credentials 为 "true" 时。

+
request
+  .get('https://api.example.com:4001/')
+  .withCredentials()
+  .then(res => {
+    assert.equal(200, res.status);
+    assert.equal('tobi', res.text);
+  })
+
+

错误处理

+

您的回调函数将始终传递两个参数:错误和响应。如果没有发生错误,第一个参数将为null

+
request
+ .post('/upload')
+ .attach('image', 'path/to/tobi.png')
+ .then(res => {
+
+ });
+
+

还会触发"错误"事件,您可以监听:

+
request
+  .post('/upload')
+  .attach('image', 'path/to/tobi.png')
+  .on('error', handle)
+  .then(res => {
+
+  });
+
+

请注意,默认情况下,superagent 会考虑 4xx 和 5xx 响应(以及未处理的 3xx 响应)视为错误。例如,如果您收到 304 Not modified403 Forbidden500 Internal server 错误响应,则此状态信息将通过 err.status 提供。来自此类响应的错误还包含一个 err.response 字段,其中包含"响应属性"中提到的所有属性。该库以这种方式运行以处理需要成功响应并将 HTTP 错误状态代码视为错误的常见情况,同时仍允许围绕特定错误条件进行自定义逻辑。

+

网络故障、超时和其他不产生响应的错误将不包含 err.statuserr.response 字段。

+

如果您希望处理 404 或其他 HTTP 错误响应,您可以查询 err.status 属性。当发生 HTTP 错误(4xx 或 5xx 响应)时, res.error 属性是一个 Error 对象,这允许您执行以下检查:

+
if (err && err.status === 404) {
+  alert('oh no ' + res.body.message);
+}
+else if (err) {
+  // 所有其他需要处理的错误类型
+}
+
+

或者,您可以使用 .ok(callback) 方法来确定响应是否为错误。 ok 函数的回调函数获得响应,如果响应应该被解释为成功,则返回 true。

+
request.get('/404')
+  .ok(res => res.status < 500)
+  .then(response => {
+    // 将 404 页面作为成功响应
+  })
+
+

进度跟踪

+

SuperAgent 在上传和下载大文件时触发 progress 事件。

+
request.post(url)
+  .attach('field_name', file)
+  .on('progress', event => {
+    /* event的值:
+    {
+      direction: "upload" or "download"
+      percent: 0 to 100 // 如果文件大小未知,可能会没有
+      total: // 总文件大小,可能没有
+      loaded: // 到目前为止下载或上传的字节数
+    } */
+  })
+  .then()
+
+

在本地主机上测试

+

强制连接特定 IP 地址

+

在 Node.js 中,可以忽略 DNS 解析并使用 .connect() 方法将所有请求定向到特定 IP 地址。例如,此请求将转到 localhost 而不是 example.com

+
const res = await request.get("http://example.com").connect("127.0.0.1");
+
+

因为请求可能被重定向,所以可以指定多个主机名和多个 IP,以及一个特殊的 * 作为后备(注意:不支持其他通配符)。请求将保留其 Host 请求头的原始值。

+
const res = await request.get("http://redir.example.com:555")
+  .connect({
+    "redir.example.com": "127.0.0.1", // redir.example.com:555 将使用 127.0.0.1:555
+    "www.example.com": false, // 不覆盖这个;正常使用 DNS
+    "mapped.example.com": { host: "127.0.0.1", port: 8080}, // mapped.example.com:* 将使用 127.0.0.1:8080
+    "*": "proxy.example.com", // 所有其他请求都将发送到该主机
+  });
+
+

忽略本地主机上损坏/不安全的 HTTPS

+

在 Node.js 中,当 HTTPS 配置错误且不安全(例如,使用自签名证书而不指定自己的 .ca())时,仍然可以通过调用 .trustLocalhost() 来允许对 localhost 的请求:

+
const res = await request.get("https://localhost").trustLocalhost()
+
+

.connect("127.0.0.1") 一起,这可用于强制将对任何域的 HTTPS 请求重新路由到 localhost

+

忽略本地主机上损坏的 HTTPS 通常是安全的,因为环回接口不会暴露给不受信任的网络。信任 localhost 可能会成为未来的默认设置。使用 .trustLocalhost(false) 强制检查 127.0.0.1 的可靠性。

+

当向任何其他 IP 发出请求时,我们故意不支持禁用 HTTPS 安全性,因为这些选项最终被滥用为 HTTPS 问题的快速"修复"。您可以从 Let's Encrypt 获得免费的 HTTPS 证书或设置您自己的 CA (.ca(ca_public_pem)) 以使您的自签名证书受信任。

+

Promise 和生成器函数支持

+

SuperAgent 的请求是一个 "thenable" 对象(带有then方法的对象),它与 JavaScript Promise 和 async/await 语法兼容。

+
const res = await request.get(url);
+
+

如果你使用 Promise,不要调用 .end().pipe()。任何使用 .then()await 都会禁用所有其他使用请求的方式。 像 co 这样的库或像 koa 这样的 web 框架可以在任何 SuperAgent 方法上 yield

+
const req = request
+  .get('http://local')
+  .auth('tobi', 'learnboost');
+const res = yield req;
+
+

请注意,SuperAgent 期望全局 Promise 对象存在。您需要一个 polyfill 才能在 Internet Explorer 或 Node.js 0.10 中使用 Promise。

+

浏览器和 node 版本

+

SuperAgent 有两种实现:一种用于 Web 浏览器(使用 XHR),另一种用于 Node.JS(使用核心 http 模块)。默认情况下,Browserify 和 WebPack 将选择浏览器版本。

+

如果要使用 WebPack 为 Node.JS 编译代码,您必须在其配置中指定node target

+

在 electron 中使用浏览器版本

+

Electron 开发人员报告说,如果您希望使用浏览器版本的 SuperAgent 而不是 Node 版本,您可以 require('superagent/superagent')。这样您的请求将显示在 Chrome 开发者工具的"网络(Network)"选项卡中。请注意,自动化测试套件未涵盖此环境,也未得到官方支持。

+

使用代理发送请求

+

可以使用另一个作者的 superagent-proxy 模块

+

翻译说明

+

文档全部内容都是根据原英文文档翻译的,译者也没水平,所以如果有错误还请指出

+
+ Fork me on GitHub + + + + + + diff --git a/docs/zh_CN/index.md b/docs/zh_CN/index.md new file mode 100644 index 000000000..5988698fe --- /dev/null +++ b/docs/zh_CN/index.md @@ -0,0 +1,765 @@ +# SuperAgent + +SuperAgent是轻量级的渐进式ajax API,具有灵活性、可读性和较低的学习曲线。 它也适用于Node.js! + + request + .post('/api/pet') + .send({ name: 'Manny', species: 'cat' }) + .set('X-API-Key', 'foobar') + .set('Accept', 'application/json') + .then(res => { + alert('yay got ' + JSON.stringify(res.body)); + }); + +## 测试文档 + +[**English**](/) + +下面的[测试文档](../test.html)是用[Mocha](https://mochajs.org/)的"文档"报告器生成的,并直接反映了测试套件。 这提供了额外的文档来源。 + +## 基本请求 + +可以通过调用 `request` 对象上的适当方法来发起请求,然后调用 `.then()` ( 或 `.end()` 或 [`await`](#promise-and-generator-support) )发送请求。例如一个简单的 __GET__ 请求: + + request + .get('/search') + .then(res => { + // res.body, res.headers, res.status + }) + .catch(err => { + // err.message, err.response + }); + +HTTP 方法也可以作为字符串传递: +译者注:大小写皆可。 + + request('GET', '/search').then(success, failure); + +旧式回调也受支持,但不推荐使用。您可以调用 `.end()` *代替* `.then()`: + + request('GET', '/search').end(function(err, res){ + if (res.ok) {} + }); + +可以使用绝对 URL。在 Web 浏览器中,绝对 URL 仅在服务器实现 [CORS](#cors) 时才有效。 + + request + .get('https://example.com/search') + .then(res => { + + }); + +__Node__ 客户端支持向 [Unix 域套接字](https://zh.wikipedia.org/wiki/Unix%E5%9F%9F%E5%A5%97%E6%8E%A5%E5%AD%97) 发出请求: + + // pattern: https?+unix://SOCKET_PATH/REQUEST_PATH + //在套接字路径中将 `%2F` 用作 `/` + try { + const res = await request + .get('http+unix://%2Fabsolute%2Fpath%2Fto%2Funix.sock/search'); + // res.body, res.headers, res.status + } catch(err) { + // err.message, err.response + } + +__DELETE__、__HEAD__、__PATCH__、__POST__ 和 __PUT__ 请求也可以使用,只需更改方法名称: + + request + .head('/favicon.ico') + .then(res => { + + }); + +__DELETE__ 也可以用 `.del()` 调用以与旧版 IE 兼容,其中 `delete` 是保留字。 + +HTTP 方法默认为 __GET__,因此如果您愿意,以下代码是有效的: + + request('/search', (err, res) => { + + }); + +## 设置请求头字段 + +设置请求头字段很简单,调用 `.set()` 时传入字段名称和值: + + request + .get('/search') + .set('API-Key', 'foobar') + .set('Accept', 'application/json') + .then(callback); + +您还可以在一次调用中传入一个对象来设置多个字段: + + request + .get('/search') + .set({ 'API-Key': 'foobar', Accept: 'application/json' }) + .then(callback); + +## `GET` 请求 + +`.query()` 方法接受对象,当与 __GET__ 方法一起使用时将形成一个查询字符串。以下将产生路径 `/search?query=Manny&range=1..5&order=desc`。 +译者注:`.query()` 方法的参数不需要提前进行url编码。 + + request + .get('/search') + .query({ query: 'Manny' }) + .query({ range: '1..5' }) + .query({ order: 'desc' }) + .then(res => { + + }); + +或传入单个对象: + + request + .get('/search') + .query({ query: 'Manny', range: '1..5', order: 'desc' }) + .then(res => { + + }); + +`.query()` 方法也可以接受字符串。 + + request + .get('/querystring') + .query('search=Manny&range=1..5') + .then(res => { + + }); + +或者一个个加入: + + request + .get('/querystring') + .query('search=Manny') + .query('range=1..5') + .then(res => { + + }); + +## `HEAD` 请求 + +您还可以对 __HEAD__ 请求使用 .query() 方法。以下将生成路径 `/users?email=joe@smith.com`。 + + request + .head('/users') + .query({ email: 'joe@smith.com' }) + .then(res => { + + }); + +## `POST` / `PUT` 请求 + +一个典型的 JSON __POST__ 请求可能如下所示,我们适当地设置 `Content-Type` 请求头字段,并"写入"一些数据,在本例中只是一个 JSON 字符串。 + + request.post('/user') + .set('Content-Type', 'application/json') + .send('{"name":"tj","pet":"tobi"}') + .then(callback) + .catch(errorCallback) + +由于 JSON 无疑是最常见的,所以它是 _默认_ 的!下面的例子与前面的例子是等价的。 + + request.post('/user') + .send({ name: 'tj', pet: 'tobi' }) + .then(callback, errorCallback) + +或者调用多个 `.send()`: + + request.post('/user') + .send({ name: 'tj' }) + .send({ pet: 'tobi' }) + .then(callback, errorCallback) + +默认情况下,发送字符串会将 `Content-Type` 设置为 `application/x-www-form-urlencoded`,多个调用将用 `&` 连接,这里产生 `name=tj&pet=tobi`: + + request.post('/user') + .send('name=tj') + .send('pet=tobi') + .then(callback, errorCallback); + +SuperAgent 格式是可扩展的,但默认情况下支持 "json" 和 "form"。要将数据作为 `application/x-www-form-urlencoded` 发送,只需在调用 `.type()` 时传入 "form",默认为 "json"。此 __POST__ 请求的请求体将是 "name=tj&pet=tobi"。 + + request.post('/user') + .type('form') + .send({ name: 'tj' }) + .send({ pet: 'tobi' }) + .then(callback, errorCallback) + +还支持发送 [`FormData`](https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/FormData) 对象。以下示例将 __POST__ 请求由 id="myForm" 标识的 HTML 表单的内容: + + request.post('/user') + .send(new FormData(document.getElementById('myForm'))) + .then(callback, errorCallback) + +## 设置 `Content-Type` + +显而易见的解决方案是使用 `.set()` 方法: + + request.post('/user') + .set('Content-Type', 'application/json') + +`.type()` 方法也可以作为简写,接受带有类型/子类型的规范化 [MIME 类型](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types) 名称,或者只是扩展名,例如"xml"、"json"、"png"等: + + request.post('/user') + .type('application/json') + + request.post('/user') + .type('json') + + request.post('/user') + .type('png') + +## 序列化请求体 + +SuperAgent 将自动序列化 JSON 和表单。您也可以为其他类型设置自动序列化: + +```js +request.serialize['application/xml'] = function (obj) { + return '从obj生成的字符串'; +}; + +// 接下来,内容类型为 "application/xml" 的所有请求都将自动序列化 +``` +如果您想以自定义格式发送 数据体(payload),您可以根据每个请求将内置序列化替换为 `.serialize()` 方法: + +```js +request + .post('/user') + .send({foo: 'bar'}) + .serialize(obj => { + return '从obj生成的字符串'; + }); +``` +## 重试请求 + +如果请求暂时失败或可能是网络连接不稳定造成的失败,且当给定 `.retry()` 方法时,SuperAgent 将自动重试请求。 + +此方法有两个可选参数:重试次数(默认为 `1`)和回调函数。它在每次重试之前调用 callback(err, res) 。回调可以返回 `true`/`false` 以控制是否应重试请求(但始终应该用最大重试次数)。 + request + .get('https://example.com/search') + .retry(2) // 或者: + .retry(2, callback) // 二选一 + .then(finished); + .catch(failed); + +`.retry()` 仅用于[*幂等*](https://baike.baidu.com/item/%E5%B9%82%E7%AD%89/8600688?fr=aladdin)请求(即到达服务器的多个请求不会导致重复购买等不良副作用)。 + +默认情况下会尝试所有请求方法(这意味着如果您不希望重试 POST 请求,则需要传递自定义的重试回调函数)。 + +默认情况下会重试以下状态代码: + +* `408` +* `413` +* `429` +* `500` +* `502` +* `503` +* `504` +* `521` +* `522` +* `524` + +默认情况下会重试以下错误代码: + +* `'ETIMEDOUT'` +* `'ECONNRESET'` +* `'EADDRINUSE'` +* `'ECONNREFUSED'` +* `'EPIPE'` +* `'ENOTFOUND'` +* `'ENETUNREACH'` +* `'EAI_AGAIN'` + +## 设置 Accept + +与 `.type()` 方法类似,也可以通过简写方法 `.accept()` 设置 `Accept` 请求头。方便起见,其中还引用了 `request.types`,允许您将完整的规范化 [MIME 类型](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types) 名称指定为`类型/子类型`,或将扩展后缀形式指定为"xml"、"json"、"png"等: + + request.get('/user') + .accept('application/json') + + request.get('/user') + .accept('json') + + request.post('/user') + .accept('png') + +### Facebook 和 Accept JSON + +如果您正在调用 Facebook 的 API,请务必在您的请求中发送 `Accept: application/json` 请求头。如果你不这样做,Facebook 会回复 `Content-Type: text/javascript; charset=UTF-8`,SuperAgent 将不会解析,因此 `res.body` 将是未定义的。您可以使用 `req.accept('json')` 或 `req.header('Accept', 'application/json')` 来执行此操作。有关详细信息,请参阅 [issue 1078](https://github.com/visionmedia/superagent/issues/1078)。 + +## 查询字符串(Query strings) + +`req.query(obj)` 是一种可用于构建查询字符串的方法。例如在 __POST__ 上增加 `?format=json&dest=/login`: + + request + .post('/') + .query({ format: 'json' }) + .query({ dest: '/login' }) + .send({ post: 'data', here: 'wahoo' }) + .then(callback); + +默认情况下,查询字符串不按任何特定顺序组装。可以使用 `req.sortQuery()` 启用 ASCIIbetically 排序的查询字符串。您还可以使用 `req.sortQuery(myComparisonFn)` 提供自定义排序比较函数。比较函数应该接受 2 个参数并返回一个负/零/正整数。 + +```js + // 默认顺序 + request.get('/user') + .query('name=Nick') + .query('search=Manny') + .sortQuery() + .then(callback) + + // 自定义排序函数 + request.get('/user') + .query('name=Nick') + .query('search=Manny') + .sortQuery((a, b) => a.length - b.length) + .then(callback) +``` + +## TLS 选项 + +在 Node.js 中,SuperAgent 支持配置 HTTPS 请求的方法: + +- `.ca()`: 将 CA 证书设置为信任 +- `.cert()`: 设置客户端证书链 +- `.key()`: 设置客户端私钥 +- `.pfx()`: 设置客户端 PFX 或 PKCS12 编码的私钥和证书链 +- `.disableTLSCerts()`: 不拒绝过期或无效的 TLS 证书。在内部设置 `rejectUnauthorized=true`。*请注意,此方法允许中间人攻击。* + +有关更多信息,请参阅 Node.js [https.request 文档](http://nodejs.cn/api/https.html#httpsrequesturl-options-callback)。 + +```js +var key = fs.readFileSync('key.pem'), + cert = fs.readFileSync('cert.pem'); + +request + .post('/client-auth') + .key(key) + .cert(cert) + .then(callback); +``` + +```js +var ca = fs.readFileSync('ca.cert.pem'); + +request + .post('https://localhost/private-ca-server') + .ca(ca) + .then(res => {}); +``` + +## 解析响应体 + +SuperAgent将为您解析已知的响应主体数据,目前支持`application/x-www-form-urlencoded`,`application/json`,以及`multipart/form data`。您可以设置自动解析其他响应主体数据: + +```js +//浏览器 +request.parse['application/xml'] = function (str) { + return {'object': '从str解析的'}; +}; + +//node +request.parse['application/xml'] = function (res, cb) { + //解析响应文本并在此处设置res.body + + cb(null, res); +}; + +//接下来,将自动解析 'application/xml' 类型的响应 +``` + +您可以使用 `.buffer(true).parse(fn)` 方法设置自定义解析器(优先于内置解析器)。如果未启用响应缓冲 (`.buffer(false)`),则将触发`响应(response)`事件而无需等待正文解析器完成,因此 `response.body` 将不可用。 + +### JSON / Urlencoded + +属性 `res.body` 是解析后的对象,例如,如果请求以 JSON 字符串 '{"user":{"name":"tobi"}}' 响应,则 `res.body.user.name` 将为 "tobi" .同样,"user[name]=tobi" 的 x-www-form-urlencoded 值将产生相同的结果。仅支持一级嵌套。如果您需要更复杂的数据,请改为发送 JSON。 + +通过重复的键发送数组。 `.send({color: ['red','blue']})` 会发送 `color=red&color=blue`。如果您希望数组键的名称中包含 `[]`,您必须自己添加它,因为 SuperAgent 不会自动添加它。 + +### Multipart + +Node 客户端通过 [Formidable](https://github.com/felixge/node-formidable) 模块支持 _multipart/form-data_。解析 multipart 响应时,对象 `res.files` 也可供您使用。例如,假设一个请求使用以下 multipart 请求体进行响应: + + --whoop + Content-Disposition: attachment; name="image"; filename="tobi.png" + Content-Type: image/png + + ... data here ... + --whoop + Content-Disposition: form-data; name="name" + Content-Type: text/plain + + Tobi + --whoop-- + +`res.body.name`的值将为 "Tobi",并且 `res.files.image` 将作为包含磁盘路径、文件名和其他属性的 `File` 对象。 + + +### 二进制数据 + +在浏览器中,您可以使用 `.responseType('blob')` 来请求处理二进制响应体。在 node.js 中运行时不需要此 API。此方法支持的参数值为 + +- `'blob'` 赋值给 XmlHTTPRequest 的 `responseType` 属性 +- `'arraybuffer'` 赋值给 XmlHTTPRequest 的 responseType 属性 + +```js +req.get('/binary.data') + .responseType('blob') + .then(res => { + // res.body 将是浏览器原生 Blob 类型 + }); +``` + +有关更多信息,请参阅 Mozilla 开发人员网络 [xhr.responseType 文档](https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/responseType)。 + +## 响应属性 + +在 `Response` 对象上设置了许多有用的标志和属性,包括响应文本、解析的响应正文、响应头字段、状态标志等等。 + +### 响应文本 + +`res.text` 属性包含未解析的响应正文字符串。此属性始终存在于客户端 API 中,并且仅当默认情况下节点的 mime 类型与 "text/*"、"*/json" 或 "x-www-form-urlencoded" 匹配时。原因是为了节省内存,因为缓冲大型正文(例如 multipart 文件或图像)的文本效率极低。要强制缓冲,请参阅"[缓冲响应](#缓冲响应)"部分。 + +### 响应体 + +就像 SuperAgent 可以自动序列化请求数据一样,它也可以自动解析响应体。为 Content-Type 定义解析器时,会对其进行解析,默认情况下包括 "application/json" 和 "application/x-www-form-urlencoded"。然后可以通过 `res.body` 获得解析的对象。 + +### 响应头字段 + +`res.header` 包含已解析的响应头字段的对象,字段名称小写,就像 node 做的一样。例如 `res.header['content-length']`。 + +### 响应内容类型(Content-Type) + +Content-Type 响应头是特殊情况,提供 `res.type`,它没有字符集(也可以有)。例如,"text/html; charset=utf8" 的 `Content-Type` 将提供 "text/html" 作为 `res.type`,然后 `res.charset` 属性将包含 "utf8"。 + +### 响应状态 + +响应状态标志有助于确定请求是否成功,以及其他有用的信息,使 SuperAgent 成为与 RESTful Web 服务交互的理想选择。这些标志当前定义为: + + var type = status / 100 | 0; + + // status / class + res.status = status; + res.statusType = type; + + // basics + res.info = 1 == type; + res.ok = 2 == type; + res.clientError = 4 == type; + res.serverError = 5 == type; + res.error = 4 == type || 5 == type; + + // 语法糖 + res.accepted = 202 == status; + res.noContent = 204 == status || 1223 == status; + res.badRequest = 400 == status; + res.unauthorized = 401 == status; + res.notAcceptable = 406 == status; + res.notFound = 404 == status; + res.forbidden = 403 == status; + +## 中止请求 + +要中止请求,只需调用 `req.abort()` 方法。 + +## 超时设定 + +有时网络和服务器会 "卡住" 并且在接受请求后从不响应。设置超时以避免请求永远等待。 + + * `req.timeout({deadline:ms})` 或 `req.timeout(ms)`(其中 `ms` 是毫秒数 > 0)设置完成整个请求(包括所有上传、重定向、服务器处理时间)的最后期限。如果在这段时间内没有完全下载响应,则请求将被中止。 + + * `req.timeout({response:ms})` 设置等待第一个字节从服务器到达的最长时间,但它不限制整个下载需要多长时间。响应超时应该至少比服务器响应的时间长几秒钟,因为它还包括进行 DNS 查找、TCP/IP 和 TLS 连接的时间,以及上传请求数据的时间。 + +您应该同时使用 `deadline` 和 `response` 超时。通过这种方式,您可以使用较短的响应超时来快速检测无响应的网络,并使用较长的截止时间来为缓慢但可靠的网络上的下载留出时间。请注意,这两个计时器都限制了允许*上传*附件的时间。如果您要上传文件,请使用长超时。 + + request + .get('/big-file?network=slow') + .timeout({ + response: 5000, // 等待 5 秒让服务器开始发送 + deadline: 60000, // 但允许文件用 1 分钟完成加载。 + }) + .then(res => { + /* 及时响应 */ + }, err => { + if (err.timeout) { /* 超时! */ } else { /* 其他错误 */ } + }); + +超时错误有个 `.timeout` 属性。 + +## 验证 + +在 Node 和浏览器中都可以通过 `.auth()` 方法进行身份验证: + + request + .get('http://local') + .auth('tobi', 'learnboost') + .then(callback); + + +在 _Node_ 客户端中,基本身份验证可以在 URL 中写成 "user:pass": + + request.get('http://tobi:learnboost@local').then(callback); + +默认情况下,仅使用`基本(Basic)`身份验证。在浏览器中,您可以添加 `{type:'auto'}` 以启用浏览器中内置的所有方法(Digest、NTLM 等): + + request.auth('digest', 'secret', {type:'auto'}) + +`auth` 方法还支持一种`承载类型`,以指定基于令牌的身份验证: + + request.auth('my_token', { type: 'bearer' }) + +## 跟随重定向 + +默认情况下将跟随最多 5 个重定向,但是您可以使用 `res.redirects(n)` 方法指定它: + + const response = await request.get('/some.png').redirects(2); + +超出限制的重定向被视为错误。使用 `.ok(res => res.status < 400)` 将它们读取为成功响应。 + +## 全局状态代理程序 + +### 保存 cookie + +在 Node 中 SuperAgent 默认不保存 cookie,但您可以使用 `.agent()` 方法创建保存 cookie 的 SuperAgent 副本。每个副本都有一个单独的 cookie 储存器。 + + const agent = request.agent(); + agent + .post('/login') + .then(() => { + return agent.get('/cookied-page'); + }); + +在浏览器中,cookie 由浏览器自动管理,因此 `.agent()` 不会隔离 cookie。 + +### 多个请求的默认选项 + +代理程序上调用的常规请求方法将用作该代理发出的所有请求的默认值。 + + const agent = request.agent() + .use(plugin) + .auth(shared); + + await agent.get('/with-plugin-and-auth'); // 带有插件和身份验证 + await agent.get('/also-with-plugin-and-auth'); // 也带有插件和身份验证 + +代理可以用来设置默认值的完整方法列表是:`use`、 `on`、 `once`、 `set`、 `query`、 `type`、 `accept`、 `auth`、 `withCredentials`、 `sortQuery`、 `retry`、 `ok`、 `redirects`、 `timeout`、 `buffer`、 `serialize`、 `parse`、 `ca`、 `key`、 `pfx`、 `cert`. + +## 管道数据 + +Node 客户端允许您通过管道将数据传入和传出请求。请注意,使用 `.pipe()` **代替** `.end()/.then()` 方法。 + +管道文件的内容作为请求的例子: + + const request = require('superagent'); + const fs = require('fs'); + + const stream = fs.createReadStream('path/to/my.json'); + const req = request.post('/somewhere'); + req.type('json'); + stream.pipe(req); + +请注意,当您通过管道发送请求时,superagent 使用[分块传输编码](https://baike.baidu.com/item/%E5%88%86%E5%9D%97%E4%BC%A0%E8%BE%93%E7%BC%96%E7%A0%81/8359216?fr=aladdin)发送管道数据,并非所有服务器(例如 Python WSGI 服务器)都支持。 + +或将响应传送到文件: + + const stream = fs.createWriteStream('path/to/my.json'); + const req = request.get('/some.json'); + req.pipe(stream); + + 不能混合使用管道和回调函数或 promises。请注意,您**不应**尝试通过管道传输 `.end()` 或 `Response` 对象的结果: + + // 别特么这么写: + const stream = getAWritableStream(); + const req = request + .get('/some.json') + // BAD: 这会将无用信息管道传输到流中并以意想不到的方式失败 + .end((err, this_does_not_work) => this_does_not_work.pipe(stream)) + const req = request + .get('/some.json') + .end() + // BAD: 这也不支持,调用 .end 之后调用 .pipe。 + .pipe(nope_its_too_late); + +在 superagent 的[未来版本](https://github.com/visionmedia/superagent/issues/1188)中,对 `pipe()` 的不当调用将失败。 + +## 多部分请求 + +SuperAgent 也非常适合 _构建_ 它提供方法 `.attach()` 和 `.field()` 的多部分请求。 + +当您使用 `.field()` 或 `.attach()` 时,您不能使用 `.send()` 并且您*不能*设置 `Content-Type`(将为您设置正确的类型)。 + +### 附加文件 + +要发送文件,请使用 `.attach(name, [file], [options])`。您可以通过多次调用 `.attach` 来附加多个文件。参数是: + + * `name` — form 表单中的字段名。 + * `file` — 带有文件路径的字符串或 `Blob/Buffer` 对象。 + * `options` — (可选)自定义文件名的字符串或 `{filename: string}` 对象。在 Node 中也支持 `{contentType: 'mime/type'}`。在浏览器中创建一个具有适当类型的 `Blob`。 + +
+ + request + .post('/upload') + .attach('image1', 'path/to/felix.jpeg') + .attach('image2', imageBuffer, 'luna.jpeg') + .field('caption', 'My cats') + .then(callback); + +### 字段值 + +与 HTML 中的表单字段非常相似,您可以使用 `.field(name, value)` 和 `.field({name: value})` 设置字段值。假设您想上传一些带有您的姓名和电子邮件的图片,您的请求可能如下所示: + + request + .post('/upload') + .field('user[name]', 'Tobi') + .field('user[email]', 'tobi@learnboost.com') + .field('friends[]', ['loki', 'jane']) + .attach('image', 'path/to/tobi.png') + .then(callback); + +## 压缩 + +node 客户端支持压缩过的响应,最重要的是,您无需执行任何操作!它就能用。 + +## 缓冲响应 + +要强制将响应主体缓冲为 `res.text`,您可以调用 `req.buffer()`。要取消对文本响应(例如 "text/plain"、"text/html" 等)的默认缓冲,您可以调用 `req.buffer(false)`。 + +当缓冲提供 `res.buffered` 标志时,您可以使用它在同一个回调中处理缓冲和非缓冲响应。 + +## CORS + +出于安全原因,浏览器将阻止跨域请求,除非服务器选择使用 CORS 标头。浏览器还会发出额外的 __OPTIONS__ 请求来检查服务器允许哪些 HTTP 标头和方法。[阅读有关 CORS 的更多信息](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS)。 + +`.withCredentials()` 方法支持从源发送 cookie,但仅当 Access-Control-Allow-Origin _不是_ 通配符 ("*") 且 `Access-Control-Allow-Credentials` 为 "true" 时。 + + request + .get('https://api.example.com:4001/') + .withCredentials() + .then(res => { + assert.equal(200, res.status); + assert.equal('tobi', res.text); + }) + +## 错误处理 + +您的回调函数将始终传递两个参数:错误和响应。如果没有发生错误,第一个参数将为`null`: + + request + .post('/upload') + .attach('image', 'path/to/tobi.png') + .then(res => { + + }); + +还会触发"错误"事件,您可以监听: + + request + .post('/upload') + .attach('image', 'path/to/tobi.png') + .on('error', handle) + .then(res => { + + }); + +请注意,**默认情况下,superagent 会考虑 4xx 和 5xx 响应(以及未处理的 3xx 响应)视为错误**。例如,如果您收到 `304 Not modified`、`403 Forbidden` 或 `500 Internal server` 错误响应,则此状态信息将通过 `err.status` 提供。来自此类响应的错误还包含一个 `err.response` 字段,其中包含"[响应属性](#响应属性)"中提到的所有属性。该库以这种方式运行以处理需要成功响应并将 HTTP 错误状态代码视为错误的常见情况,同时仍允许围绕特定错误条件进行自定义逻辑。 + +网络故障、超时和其他不产生响应的错误将不包含 `err.status` 或 `err.response` 字段。 + +如果您希望处理 404 或其他 HTTP 错误响应,您可以查询 `err.status` 属性。当发生 HTTP 错误(4xx 或 5xx 响应)时, `res.error` 属性是一个 `Error` 对象,这允许您执行以下检查: + + if (err && err.status === 404) { + alert('oh no ' + res.body.message); + } + else if (err) { + // 所有其他需要处理的错误类型 + } + +或者,您可以使用 `.ok(callback)` 方法来确定响应是否为错误。 `ok` 函数的回调函数获得响应,如果响应应该被解释为成功,则返回 true。 + + request.get('/404') + .ok(res => res.status < 500) + .then(response => { + // 将 404 页面作为成功响应 + }) + +## 进度跟踪 + +SuperAgent 在上传和下载大文件时触发 `progress` 事件。 + + request.post(url) + .attach('field_name', file) + .on('progress', event => { + /* event的值: + { + direction: "upload" or "download" + percent: 0 to 100 // 如果文件大小未知,可能会没有 + total: // 总文件大小,可能没有 + loaded: // 到目前为止下载或上传的字节数 + } */ + }) + .then() + + +## 在本地主机上测试 + +### 强制连接特定 IP 地址 + +在 Node.js 中,可以忽略 DNS 解析并使用 `.connect()` 方法将所有请求定向到特定 IP 地址。例如,此请求将转到 localhost 而不是 `example.com`: + + const res = await request.get("http://example.com").connect("127.0.0.1"); + +因为请求可能被重定向,所以可以指定多个主机名和多个 IP,以及一个特殊的 `*` 作为后备(注意:不支持其他通配符)。请求将保留其 `Host` 请求头的原始值。 + + const res = await request.get("http://redir.example.com:555") + .connect({ + "redir.example.com": "127.0.0.1", // redir.example.com:555 将使用 127.0.0.1:555 + "www.example.com": false, // 不覆盖这个;正常使用 DNS + "mapped.example.com": { host: "127.0.0.1", port: 8080}, // mapped.example.com:* 将使用 127.0.0.1:8080 + "*": "proxy.example.com", // 所有其他请求都将发送到该主机 + }); + +### 忽略本地主机上损坏/不安全的 HTTPS + +在 Node.js 中,当 HTTPS 配置错误且不安全(例如,使用自签名证书而*不指定*自己的 `.ca()`)时,仍然可以通过调用 `.trustLocalhost()` 来允许对 `localhost` 的请求: + + const res = await request.get("https://localhost").trustLocalhost() + +与 `.connect("127.0.0.1")` 一起,这可用于强制将对任何域的 HTTPS 请求重新路由到 `localhost`。 + +忽略本地主机上损坏的 HTTPS 通常是安全的,因为环回接口不会暴露给不受信任的网络。信任 `localhost` 可能会成为未来的默认设置。使用 `.trustLocalhost(false)` 强制检查 `127.0.0.1` 的可靠性。 + +当向任何其他 IP 发出请求时,我们故意不支持禁用 HTTPS 安全性,因为这些选项最终被滥用为 HTTPS 问题的快速"修复"。您可以从 [Let's Encrypt](https://certbot.eff.org) 获得免费的 HTTPS 证书或设置您自己的 CA (`.ca(ca_public_pem)`) 以使您的自签名证书受信任。 + +## Promise 和生成器函数支持 + +SuperAgent 的请求是一个 "thenable" 对象(带有then方法的对象),它与 JavaScript Promise 和 `async/await` 语法兼容。 + + const res = await request.get(url); + +如果你使用 Promise,**不要**调用 `.end()` 或 `.pipe()`。任何使用 `.then()` 或 `await` 都会禁用所有其他使用请求的方式。 像 [co](https://github.com/tj/co) 这样的库或像 [koa](https://github.com/koajs/koa) 这样的 web 框架可以在任何 SuperAgent 方法上 `yield`: + + const req = request + .get('http://local') + .auth('tobi', 'learnboost'); + const res = yield req; + +请注意,SuperAgent 期望全局 `Promise` 对象存在。您需要一个 polyfill 才能在 Internet Explorer 或 Node.js 0.10 中使用 Promise。 + +## 浏览器和 node 版本 + +SuperAgent 有两种实现:一种用于 Web 浏览器(使用 XHR),另一种用于 Node.JS(使用核心 http 模块)。默认情况下,Browserify 和 WebPack 将选择浏览器版本。 + +如果要使用 WebPack 为 Node.JS 编译代码,您*必须*在其配置中指定[node target](https://webpack.github.io/docs/configuration.html#target)。 + +### 在 electron 中使用浏览器版本 + +[Electron](https://electron.atom.io/) 开发人员报告说,如果您希望使用浏览器版本的 SuperAgent 而不是 Node 版本,您可以 `require('superagent/superagent')`。这样您的请求将显示在 Chrome 开发者工具的"网络(Network)"选项卡中。请注意,自动化测试套件未涵盖此环境,也未得到官方支持。 + +## 使用代理发送请求 + +可以使用另一个作者的 [superagent-proxy](https://www.npmjs.com/package/superagent-proxy) 模块 + +## 翻译说明 + +文档全部内容都是根据原英文文档翻译的,译者也没水平,所以如果有错误还请指出 \ No newline at end of file diff --git a/index.html b/index.html index d6722fb84..797037f9e 100644 --- a/index.html +++ b/index.html @@ -20,6 +20,7 @@

SuperAgent

alert('yay got ' + JSON.stringify(res.body)); });

Test documentation

+

中文文档

The following test documentation was generated with Mocha's "doc" reporter, and directly reflects the test suite. This provides an additional source of documentation.

Request basics

A request can be initiated by invoking the appropriate method on the request object, then calling .then() (or .end() or await) to send the request. For example a simple GET request:

From 185c0e3d0da30c2e750b2884a950d16ebdbf1802 Mon Sep 17 00:00:00 2001 From: Christian Paul Date: Tue, 18 Jan 2022 18:49:44 +0100 Subject: [PATCH 10/53] Update Docs: req.header() is now req.set() (#1617) --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index ade9ee36f..51a6e3f22 100644 --- a/docs/index.md +++ b/docs/index.md @@ -291,7 +291,7 @@ In a similar fashion to the `.type()` method it is also possible to set the `Acc ### Facebook and Accept JSON -If you are calling Facebook's API, be sure to send an `Accept: application/json` header in your request. If you don't do this, Facebook will respond with `Content-Type: text/javascript; charset=UTF-8`, which SuperAgent will not parse and thus `res.body` will be undefined. You can do this with either `req.accept('json')` or `req.header('Accept', 'application/json')`. See [issue 1078](https://github.com/visionmedia/superagent/issues/1078) for details. +If you are calling Facebook's API, be sure to send an `Accept: application/json` header in your request. If you don't do this, Facebook will respond with `Content-Type: text/javascript; charset=UTF-8`, which SuperAgent will not parse and thus `res.body` will be undefined. You can do this with either `req.accept('json')` or `req.set('Accept', 'application/json')`. See [issue 1078](https://github.com/visionmedia/superagent/issues/1078) for details. ## Query strings From af27194689abfdc170ab7414d35c61156369208e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jimmy=20W=C3=A4rting?= Date: Tue, 18 Jan 2022 18:49:54 +0100 Subject: [PATCH 11/53] refactor: added some utils fns (#1657) * move isObject to utils * impl and use hasOwn utility fn * impl a util mixin fn * remove the base mixin * use utils.mixin to inherit the base class --- src/client.js | 13 ++++++------- src/is-object.js | 13 ------------- src/node/index.js | 10 ++++++---- src/node/response.js | 5 +++-- src/request-base.js | 33 +++++++-------------------------- src/response-base.js | 21 +-------------------- src/utils.js | 32 ++++++++++++++++++++++++++++++++ 7 files changed, 55 insertions(+), 72 deletions(-) delete mode 100644 src/is-object.js diff --git a/src/client.js b/src/client.js index 44247476e..0246ab422 100644 --- a/src/client.js +++ b/src/client.js @@ -21,7 +21,7 @@ const Emitter = require('component-emitter'); const safeStringify = require('fast-safe-stringify'); const qs = require('qs'); const RequestBase = require('./request-base'); -const isObject = require('./is-object'); +const { isObject, mixin, hasOwn } = require('./utils'); const ResponseBase = require('./response-base'); const Agent = require('./agent-base'); @@ -110,7 +110,7 @@ function serialize(object) { if (!isObject(object)) return object; const pairs = []; for (const key in object) { - if (Object.prototype.hasOwnProperty.call(object, key)) + if (hasOwn(object, key)) pushEncodedKeyValuePair(pairs, key, object[key]); } @@ -139,7 +139,7 @@ function pushEncodedKeyValuePair(pairs, key, value) { } } else if (isObject(value)) { for (const subkey in value) { - if (Object.prototype.hasOwnProperty.call(value, subkey)) + if (hasOwn(value, subkey)) pushEncodedKeyValuePair(pairs, `${key}[${subkey}]`, value[subkey]); } } else { @@ -361,8 +361,7 @@ function Response(request_) { } } -// eslint-disable-next-line new-cap -ResponseBase(Response.prototype); +mixin(Response.prototype, ResponseBase.prototype); /** * Parse the given body `str`. @@ -492,7 +491,7 @@ function Request(method, url) { // eslint-disable-next-line new-cap Emitter(Request.prototype); // eslint-disable-next-line new-cap -RequestBase(Request.prototype); +mixin(Request.prototype, RequestBase.prototype); /** * Set Content-Type to `type`, mapping values from `request.types`. @@ -875,7 +874,7 @@ Request.prototype._end = function () { for (const field in this.header) { if (this.header[field] === null) continue; - if (Object.prototype.hasOwnProperty.call(this.header, field)) + if (hasOwn(this.header, field)) xhr.setRequestHeader(field, this.header[field]); } diff --git a/src/is-object.js b/src/is-object.js deleted file mode 100644 index ff69f27b5..000000000 --- a/src/is-object.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Check if `obj` is an object. - * - * @param {Object} obj - * @return {Boolean} - * @api private - */ - -function isObject(object) { - return object !== null && typeof object === 'object'; -} - -module.exports = isObject; diff --git a/src/node/index.js b/src/node/index.js index d1fa2cf25..9190cd57d 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -25,6 +25,8 @@ const RequestBase = require('../request-base'); const { unzip } = require('./unzip'); const Response = require('./response'); +const { mixin, hasOwn } = utils; + let http2; if (semverGte(process.version, 'v10.10.0')) http2 = require('./http2wrapper'); @@ -174,7 +176,7 @@ function Request(method, url) { */ util.inherits(Request, Stream); // eslint-disable-next-line new-cap -RequestBase(Request.prototype); +mixin(Request.prototype, RequestBase.prototype); /** * Enable or Disable http2. @@ -829,13 +831,13 @@ Request.prototype.request = function () { } for (const key in this.header) { - if (Object.prototype.hasOwnProperty.call(this.header, key)) + if (hasOwn(this.header, key)) req.setHeader(key, this.header[key]); } // add cookies if (this.cookies) { - if (Object.prototype.hasOwnProperty.call(this._header, 'cookie')) { + if (hasOwn(this._header, 'cookie')) { // merge const temporaryJar = new CookieJar.CookieJar(); temporaryJar.setCookies(this._header.cookie.split(';')); @@ -1220,7 +1222,7 @@ Request.prototype._end = function () { // set headers const headers = formData.getHeaders(); for (const i in headers) { - if (Object.prototype.hasOwnProperty.call(headers, i)) { + if (hasOwn(headers, i)) { debug('setting FormData header: "%s: %s"', i, headers[i]); req.setHeader(i, headers[i]); } diff --git a/src/node/response.js b/src/node/response.js index 8f7fb08f5..d5fe4c682 100644 --- a/src/node/response.js +++ b/src/node/response.js @@ -5,6 +5,7 @@ const util = require('util'); const Stream = require('stream'); const ResponseBase = require('../response-base'); +const { mixin } = require('../utils'); /** * Expose `Response`. @@ -52,8 +53,8 @@ function Response(request) { */ util.inherits(Response, Stream); -// eslint-disable-next-line new-cap -ResponseBase(Response.prototype); + +mixin(Response.prototype, ResponseBase.prototype); /** * Implements methods of a `ReadableStream` diff --git a/src/request-base.js b/src/request-base.js index 176aee7c3..636d0c28f 100644 --- a/src/request-base.js +++ b/src/request-base.js @@ -3,7 +3,7 @@ const semver = require('semver'); /** * Module of mixed-in functions shared between node and client code */ -const isObject = require('./is-object'); +const { isObject, hasOwn } = require('./utils'); /** * Expose `RequestBase`. @@ -17,26 +17,7 @@ module.exports = RequestBase; * @api public */ -function RequestBase(object) { - if (object) return mixin(object); -} - -/** - * Mixin the prototype properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - -function mixin(object) { - for (const key in RequestBase.prototype) { - if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key)) - object[key] = RequestBase.prototype[key]; - } - - return object; -} +function RequestBase() {} /** * Clear previous timeout. @@ -129,7 +110,7 @@ RequestBase.prototype.timeout = function (options) { } for (const option in options) { - if (Object.prototype.hasOwnProperty.call(options, option)) { + if (hasOwn(options, option)) { switch (option) { case 'deadline': this._timeout = options.deadline; @@ -393,7 +374,7 @@ RequestBase.prototype.getHeader = RequestBase.prototype.get; RequestBase.prototype.set = function (field, value) { if (isObject(field)) { for (const key in field) { - if (Object.prototype.hasOwnProperty.call(field, key)) + if (hasOwn(field, key)) this.set(key, field[key]); } @@ -456,7 +437,7 @@ RequestBase.prototype.field = function (name, value) { if (isObject(name)) { for (const key in name) { - if (Object.prototype.hasOwnProperty.call(name, key)) + if (hasOwn(name, key)) this.field(key, name[key]); } @@ -465,7 +446,7 @@ RequestBase.prototype.field = function (name, value) { if (Array.isArray(value)) { for (const i in value) { - if (Object.prototype.hasOwnProperty.call(value, i)) + if (hasOwn(value, i)) this.field(name, value[i]); } @@ -683,7 +664,7 @@ RequestBase.prototype.send = function (data) { // merge if (isObject_ && isObject(this._data)) { for (const key in data) { - if (Object.prototype.hasOwnProperty.call(data, key)) + if (hasOwn(data, key)) this._data[key] = data[key]; } } else if (typeof data === 'string') { diff --git a/src/response-base.js b/src/response-base.js index da07ec39e..c47b748d0 100644 --- a/src/response-base.js +++ b/src/response-base.js @@ -16,26 +16,7 @@ module.exports = ResponseBase; * @api public */ -function ResponseBase(object) { - if (object) return mixin(object); -} - -/** - * Mixin the prototype properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - -function mixin(object) { - for (const key in ResponseBase.prototype) { - if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key)) - object[key] = ResponseBase.prototype[key]; - } - - return object; -} +function ResponseBase() {} /** * Get case-insensitive `field` value. diff --git a/src/utils.js b/src/utils.js index a9041462e..636e8fa3f 100644 --- a/src/utils.js +++ b/src/utils.js @@ -70,3 +70,35 @@ exports.cleanHeader = (header, changesOrigin) => { return header; }; + +/** + * Check if `obj` is an object. + * + * @param {Object} object + * @return {Boolean} + * @api private + */ +exports.isObject = (object) => { + return object !== null && typeof object === 'object'; +} + +/** + * Object.hasOwn fallback/polyfill. + * + * @type {(object: object, property: string) => boolean} object + * @api private + */ +exports.hasOwn = Object.hasOwn || function (object, property) { + if (object == null) { + throw new TypeError("Cannot convert undefined or null to object") + } + return Object.prototype.hasOwnProperty.call(Object(object), property) +} + +exports.mixin = (target, source) => { + for (const key in source) { + if (exports.hasOwn(source, key)) { + target[key] = source[key]; + } + } +} From ef328c08de122eee2004900aa3779e426272cfac Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Tue, 18 Jan 2022 19:51:21 +0200 Subject: [PATCH 12/53] package.json: specify the files to include (#1667) --- .npmignore | 12 ------------ package.json | 4 ++++ 2 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 .npmignore diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 5fb9de452..000000000 --- a/.npmignore +++ /dev/null @@ -1,12 +0,0 @@ -support -test -examples -*.sock -lib-cov -coverage.html -bower.json -coverage -src -.travis.yml -.nojekyll -.nyc_output diff --git a/package.json b/package.json index 29fc93fc7..9bf328536 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,10 @@ "engines": { "node": ">=6.4.0 <13 || >=14" }, + "files": [ + "dist/*.js", + "lib/**/*.js" + ], "homepage": "https://github.com/visionmedia/superagent", "jsdelivr": "dist/superagent.min.js", "keywords": [ From df06131d6cb4bad05e598fb80c300082cca3d716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E4=B8=80=E6=A2=93?= Date: Wed, 19 Jan 2022 01:52:45 +0800 Subject: [PATCH 13/53] feat: add lookup method (#1595) Co-authored-by: root --- src/node/index.js | 16 ++++++++++++++++ test/node/lookup.js | 21 +++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 test/node/lookup.js diff --git a/src/node/index.js b/src/node/index.js index 9190cd57d..d4057d681 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -167,6 +167,7 @@ function Request(method, url) { this.qsRaw = this._query; // Unused, for backwards compatibility only this._redirectList = []; this._streamRequest = false; + this._lookup = null; this.once('end', this.clearTimeout.bind(this)); } @@ -306,6 +307,20 @@ Request.prototype.agent = function (agent) { return this; }; +/** + * Gets/sets the `lookup` function to use custom DNS resolver. + * + * @param {Function} lookup + * @return {Function} + * @api public + */ + +Request.prototype.lookup = function (lookup) { + if (arguments.length === 0) return this._lookup; + this._lookup = lookup; + return this; +}; + /** * Set _Content-Type_ response header passed through `mime.getType()`. * @@ -765,6 +780,7 @@ Request.prototype.request = function () { options.cert = this._cert; options.passphrase = this._passphrase; options.agent = this._agent; + options.lookup = this._lookup; options.rejectUnauthorized = typeof this._disableTLSCerts === 'boolean' ? !this._disableTLSCerts diff --git a/test/node/lookup.js b/test/node/lookup.js new file mode 100644 index 000000000..0958d5ba3 --- /dev/null +++ b/test/node/lookup.js @@ -0,0 +1,21 @@ +'use strict'; +const assert = require('assert'); +const dns = require('dns'); +const request = require('../support/client'); +const setup = require('../support/setup'); + +const base = setup.uri; + +function myLookup(hostname, options, callback) { + dns.lookup(hostname, options, callback); +} + +describe('req.lookup()', () => { + it('should set a custom lookup', () => { + const r = request.get(`${base}/ok`).lookup(myLookup); + assert(r.lookup() === myLookup); + r.then((res) => { + res.text.should.equal('ok'); + }); + }); +}); From bedb364beb28d894b03c1f95a258900eb5111eff Mon Sep 17 00:00:00 2001 From: Brandon Nozaki Miller Date: Tue, 18 Jan 2022 13:00:25 -0800 Subject: [PATCH 14/53] added proper js formatting to all the codeblocks which were missing them from the docs/index.md (#1606) This is more semantic, SEO and easier to read --- docs/index.md | 104 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index 51a6e3f22..54ccf8044 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,6 +3,7 @@ SuperAgent is light-weight progressive ajax API crafted for flexibility, readability, and a low learning curve after being frustrated with many of the existing request APIs. It also works with Node.js! +```javascript request .post('/api/pet') .send({ name: 'Manny', species: 'cat' }) @@ -11,6 +12,7 @@ SuperAgent is light-weight progressive ajax API crafted for flexibility, readabi .then(res => { alert('yay got ' + JSON.stringify(res.body)); }); +``` ## Test documentation @@ -22,6 +24,7 @@ The following [test documentation](docs/test.html) was generated with [Mocha's]( A request can be initiated by invoking the appropriate method on the `request` object, then calling `.then()` (or `.end()` [or `await`](#promise-and-generator-support)) to send the request. For example a simple __GET__ request: +```javascript request .get('/search') .then(res => { @@ -30,27 +33,35 @@ A request can be initiated by invoking the appropriate method on the `request` o .catch(err => { // err.message, err.response }); +``` HTTP method may also be passed as a string: +```javascript request('GET', '/search').then(success, failure); +``` Old-style callbacks are also supported, but not recommended. *Instead of* `.then()` you can call `.end()`: +```javascript request('GET', '/search').end(function(err, res){ if (res.ok) {} }); +``` Absolute URLs can be used. In web browsers absolute URLs work only if the server implements [CORS](#cors). +```javascript request .get('https://example.com/search') .then(res => { }); +``` The __Node__ client supports making requests to [Unix Domain Sockets](https://en.wikipedia.org/wiki/Unix_domain_socket): +```javascript // pattern: https?+unix://SOCKET_PATH/REQUEST_PATH // Use `%2F` as `/` in SOCKET_PATH try { @@ -60,44 +71,54 @@ The __Node__ client supports making requests to [Unix Domain Sockets](https://en } catch(err) { // err.message, err.response } +``` __DELETE__, __HEAD__, __PATCH__, __POST__, and __PUT__ requests can also be used, simply change the method name: +```javascript request .head('/favicon.ico') .then(res => { }); +``` __DELETE__ can be also called as `.del()` for compatibility with old IE where `delete` is a reserved word. The HTTP method defaults to __GET__, so if you wish, the following is valid: +```javascript request('/search', (err, res) => { }); +``` ## Setting header fields Setting header fields is simple, invoke `.set()` with a field name and value: +```javascript request .get('/search') .set('API-Key', 'foobar') .set('Accept', 'application/json') .then(callback); +``` You may also pass an object to set several fields in a single call: +```javascript request .get('/search') .set({ 'API-Key': 'foobar', Accept: 'application/json' }) .then(callback); +``` ## `GET` requests The `.query()` method accepts objects, which when used with the __GET__ method will form a query-string. The following will produce the path `/search?query=Manny&range=1..5&order=desc`. +```javascript request .get('/search') .query({ query: 'Manny' }) @@ -106,27 +127,33 @@ The `.query()` method accepts objects, which when used with the __GET__ method w .then(res => { }); +``` Or as a single object: +```javascript request .get('/search') .query({ query: 'Manny', range: '1..5', order: 'desc' }) .then(res => { }); +``` The `.query()` method accepts strings as well: +```javascript request .get('/querystring') .query('search=Manny&range=1..5') .then(res => { }); +``` Or joined: +```javascript request .get('/querystring') .query('search=Manny') @@ -134,74 +161,92 @@ Or joined: .then(res => { }); +``` ## `HEAD` requests You can also use the `.query()` method for HEAD requests. The following will produce the path `/users?email=joe@smith.com`. +```javascript request .head('/users') .query({ email: 'joe@smith.com' }) .then(res => { }); +``` ## `POST` / `PUT` requests A typical JSON __POST__ request might look a little like the following, where we set the Content-Type header field appropriately, and "write" some data, in this case just a JSON string. +```javascript request.post('/user') .set('Content-Type', 'application/json') .send('{"name":"tj","pet":"tobi"}') .then(callback) .catch(errorCallback) +``` Since JSON is undoubtedly the most common, it's the _default_! The following example is equivalent to the previous. +```javascript request.post('/user') .send({ name: 'tj', pet: 'tobi' }) .then(callback, errorCallback) +``` Or using multiple `.send()` calls: +```javascript request.post('/user') .send({ name: 'tj' }) .send({ pet: 'tobi' }) .then(callback, errorCallback) +``` By default sending strings will set the `Content-Type` to `application/x-www-form-urlencoded`, multiple calls will be concatenated with `&`, here resulting in `name=tj&pet=tobi`: +```javascript request.post('/user') .send('name=tj') .send('pet=tobi') .then(callback, errorCallback); +``` SuperAgent formats are extensible, however by default "json" and "form" are supported. To send the data as `application/x-www-form-urlencoded` simply invoke `.type()` with "form", where the default is "json". This request will __POST__ the body "name=tj&pet=tobi". +```javascript request.post('/user') .type('form') .send({ name: 'tj' }) .send({ pet: 'tobi' }) .then(callback, errorCallback) +``` Sending a [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData) object is also supported. The following example will __POST__ the content of the HTML form identified by id="myForm": +```javascript request.post('/user') .send(new FormData(document.getElementById('myForm'))) .then(callback, errorCallback) +``` ## Setting the `Content-Type` The obvious solution is to use the `.set()` method: +```javascript request.post('/user') .set('Content-Type', 'application/json') +``` As a short-hand the `.type()` method is also available, accepting the canonicalized MIME type name complete with type/subtype, or simply the extension name such as "xml", "json", "png", etc: +```javascript request.post('/user') .type('application/json') @@ -210,6 +255,7 @@ simply the extension name such as "xml", "json", "png", etc: request.post('/user') .type('png') +``` ## Serializing request body @@ -241,12 +287,14 @@ When given the `.retry()` method, SuperAgent will automatically retry requests, This method has two optional arguments: number of retries (default 1) and a callback. It calls `callback(err, res)` before each retry. The callback may return `true`/`false` to control whether the request should be retried (but the maximum number of retries is always applied). +```javascript request .get('https://example.com/search') .retry(2) // or: .retry(2, callback) .then(finished); .catch(failed); +``` Use `.retry()` only with requests that are *idempotent* (i.e. multiple requests reaching the server won't cause undesirable side effects like duplicate purchases). @@ -280,6 +328,7 @@ By default the following error codes are retried: In a similar fashion to the `.type()` method it is also possible to set the `Accept` header via the short hand method `.accept()`. Which references `request.types` as well allowing you to specify either the full canonicalized MIME type name as `type/subtype`, or the extension suffix form as "xml", "json", "png", etc. for convenience: +```javascript request.get('/user') .accept('application/json') @@ -288,6 +337,7 @@ In a similar fashion to the `.type()` method it is also possible to set the `Acc request.post('/user') .accept('png') +``` ### Facebook and Accept JSON @@ -297,12 +347,14 @@ If you are calling Facebook's API, be sure to send an `Accept: application/json` `req.query(obj)` is a method which may be used to build up a query-string. For example populating `?format=json&dest=/login` on a __POST__: +```javascript request .post('/') .query({ format: 'json' }) .query({ dest: '/login' }) .send({ post: 'data', here: 'wahoo' }) .then(callback); +``` By default the query string is not assembled in any particular order. An asciibetically-sorted query string can be enabled with `req.sortQuery()`. You may also provide a custom sorting comparison function with `req.sortQuery(myComparisonFn)`. The comparison function should take 2 arguments and return a negative/zero/positive integer. @@ -445,6 +497,7 @@ The Content-Type response header is special-cased, providing `res.type`, which i The response status flags help determine if the request was a success, among other useful information, making SuperAgent ideal for interacting with RESTful web services. These flags are currently defined as: +```javascript var type = status / 100 | 0; // status / class @@ -466,6 +519,7 @@ The response status flags help determine if the request was a success, among oth res.notAcceptable = 406 == status; res.notFound = 404 == status; res.forbidden = 403 == status; +``` ## Aborting requests @@ -481,6 +535,7 @@ Sometimes networks and servers get "stuck" and never respond after accepting a r You should use both `deadline` and `response` timeouts. This way you can use a short response timeout to detect unresponsive networks quickly, and a long deadline to give time for downloads on slow, but reliable, networks. Note that both of these timers limit how long *uploads* of attached files are allowed to take. Use long timeouts if you're uploading files. +```javascript request .get('/big-file?network=slow') .timeout({ @@ -492,6 +547,7 @@ You should use both `deadline` and `response` timeouts. This way you can use a s }, err => { if (err.timeout) { /* timed out! */ } else { /* other error */ } }); +``` Timeout errors have a `.timeout` property. @@ -499,29 +555,38 @@ Timeout errors have a `.timeout` property. In both Node and browsers auth available via the `.auth()` method: +```javascript request .get('http://local') .auth('tobi', 'learnboost') .then(callback); - +``` In the _Node_ client Basic auth can be in the URL as "user:pass": +```javascript request.get('http://tobi:learnboost@local').then(callback); +``` By default only `Basic` auth is used. In browser you can add `{type:'auto'}` to enable all methods built-in in the browser (Digest, NTLM, etc.): +```javascript request.auth('digest', 'secret', {type:'auto'}) +``` The `auth` method also supports a `type` of `bearer`, to specify token-based authentication: +```javascript request.auth('my_token', { type: 'bearer' }) +``` ## Following redirects By default up to 5 redirects will be followed, however you may specify this with the `res.redirects(n)` method: +```javascript const response = await request.get('/some.png').redirects(2); +``` Redirects exceeding the limit are treated as errors. Use `.ok(res => res.status < 400)` to read them as successful responses. @@ -531,12 +596,14 @@ Redirects exceeding the limit are treated as errors. Use `.ok(res => res.status In Node SuperAgent does not save cookies by default, but you can use the `.agent()` method to create a copy of SuperAgent that saves cookies. Each copy has a separate cookie jar. +```javascript const agent = request.agent(); agent .post('/login') .then(() => { return agent.get('/cookied-page'); }); +``` In browsers cookies are managed automatically by the browser, so the `.agent()` does not isolate cookies. @@ -544,12 +611,14 @@ In browsers cookies are managed automatically by the browser, so the `.agent()` Regular request methods called on the agent will be used as defaults for all requests made by that agent. +```javascript const agent = request.agent() .use(plugin) .auth(shared); await agent.get('/with-plugin-and-auth'); await agent.get('/also-with-plugin-and-auth'); +``` The complete list of methods that the agent can use to set defaults is: `use`, `on`, `once`, `set`, `query`, `type`, `accept`, `auth`, `withCredentials`, `sortQuery`, `retry`, `ok`, `redirects`, `timeout`, `buffer`, `serialize`, `parse`, `ca`, `key`, `pfx`, `cert`. @@ -559,6 +628,7 @@ The Node client allows you to pipe data to and from the request. Please note tha For example piping a file's contents as the request: +```javascript const request = require('superagent'); const fs = require('fs'); @@ -566,17 +636,21 @@ For example piping a file's contents as the request: const req = request.post('/somewhere'); req.type('json'); stream.pipe(req); +``` Note that when you pipe to a request, superagent sends the piped data with [chunked transfer encoding](https://en.wikipedia.org/wiki/Chunked_transfer_encoding), which isn't supported by all servers (for instance, Python WSGI servers). Or piping the response to a file: +```javascript const stream = fs.createWriteStream('path/to/my.json'); const req = request.get('/some.json'); req.pipe(stream); +``` It's not possible to mix pipes and callbacks or promises. Note that you should **NOT** attempt to pipe the result of `.end()` or the `Response` object: +```javascript // Don't do either of these: const stream = getAWritableStream(); const req = request @@ -588,6 +662,7 @@ Or piping the response to a file: .end() // BAD: this is also unsupported, .pipe calls .end for you. .pipe(nope_its_too_late); +``` In a [future version](https://github.com/visionmedia/superagent/issues/1188) of superagent, improper calls to `pipe()` will fail. @@ -607,17 +682,20 @@ To send a file use `.attach(name, [file], [options])`. You can attach multiple f
+```javascript request .post('/upload') .attach('image1', 'path/to/felix.jpeg') .attach('image2', imageBuffer, 'luna.jpeg') .field('caption', 'My cats') .then(callback); +``` ### Field values Much like form fields in HTML, you can set field values with `.field(name, value)` and `.field({name: value})`. Suppose you want to upload a few images with your name and email, your request might look something like this: +```javascript request .post('/upload') .field('user[name]', 'Tobi') @@ -625,6 +703,7 @@ Much like form fields in HTML, you can set field values with `.field(name, value .field('friends[]', ['loki', 'jane']) .attach('image', 'path/to/tobi.png') .then(callback); +``` ## Compression @@ -642,6 +721,7 @@ For security reasons, browsers will block cross-origin requests unless the serve The `.withCredentials()` method enables the ability to send cookies from the origin, however only when `Access-Control-Allow-Origin` is _not_ a wildcard ("*"), and `Access-Control-Allow-Credentials` is "true". +```javascript request .get('https://api.example.com:4001/') .withCredentials() @@ -649,20 +729,24 @@ The `.withCredentials()` method enables the ability to send cookies from the ori assert.equal(200, res.status); assert.equal('tobi', res.text); }) +``` ## Error handling Your callback function will always be passed two arguments: error and response. If no error occurred, the first argument will be null: +```javascript request .post('/upload') .attach('image', 'path/to/tobi.png') .then(res => { }); +``` An "error" event is also emitted, with you can listen for: +```javascript request .post('/upload') .attach('image', 'path/to/tobi.png') @@ -670,6 +754,7 @@ An "error" event is also emitted, with you can listen for: .then(res => { }); +``` Note that **superagent considers 4xx and 5xx responses (as well as unhandled 3xx responses) errors by default**. For example, if you get a `304 Not modified`, `403 Forbidden` or `500 Internal server error` response, this status information will be available via `err.status`. Errors from such responses also contain an `err.response` field with all of the properties mentioned in "[Response properties](#response-properties)". The library behaves in this way to handle the common case of wanting success responses and treating HTTP error status codes as errors while still allowing for custom logic around specific error conditions. @@ -677,25 +762,30 @@ Network failures, timeouts, and other errors that produce no response will conta If you wish to handle 404 or other HTTP error responses, you can query the `err.status` property. When an HTTP error occurs (4xx or 5xx response) the `res.error` property is an `Error` object, this allows you to perform checks such as: +```javascript if (err && err.status === 404) { alert('oh no ' + res.body.message); } else if (err) { // all other error types we handle generically } +``` Alternatively, you can use the `.ok(callback)` method to decide whether a response is an error or not. The callback to the `ok` function gets a response and returns `true` if the response should be interpreted as success. +```javascript request.get('/404') .ok(res => res.status < 500) .then(response => { // reads 404 page as a successful response }) +``` ## Progress tracking SuperAgent fires `progress` events on upload and download of large files. +```javascript request.post(url) .attach('field_name', file) .on('progress', event => { @@ -708,7 +798,7 @@ SuperAgent fires `progress` events on upload and download of large files. } */ }) .then() - +``` ## Testing on localhost @@ -716,10 +806,13 @@ SuperAgent fires `progress` events on upload and download of large files. In Node.js it's possible to ignore DNS resolution and direct all requests to a specific IP address using `.connect()` method. For example, this request will go to localhost instead of `example.com`: +```javascript const res = await request.get("http://example.com").connect("127.0.0.1"); +``` Because the request may be redirected, it's possible to specify multiple hostnames and multiple IPs, as well as a special `*` as the fallback (note: other wildcards are not supported). The requests will keep their `Host` header with the original value. `.connect(undefined)` turns off the feature. +```javascript const res = await request.get("http://redir.example.com:555") .connect({ "redir.example.com": "127.0.0.1", // redir.example.com:555 will use 127.0.0.1:555 @@ -727,12 +820,15 @@ Because the request may be redirected, it's possible to specify multiple hostnam "mapped.example.com": { host: "127.0.0.1", port: 8080}, // mapped.example.com:* will use 127.0.0.1:8080 "*": "proxy.example.com", // all other requests will go to this host }); +``` ### Ignoring broken/insecure HTTPS on localhost In Node.js, when HTTPS is misconfigured and insecure (e.g. using self-signed certificate *without* specifying own `.ca()`), it's still possible to permit requests to `localhost` by calling `.trustLocalhost()`: +```javascript const res = await request.get("https://localhost").trustLocalhost() +``` Together with `.connect("127.0.0.1")` this may be used to force HTTPS requests to any domain to be re-routed to `localhost` instead. @@ -744,16 +840,20 @@ We intentionally don't support disabling of HTTPS security when making requests SuperAgent's request is a "thenable" object that's compatible with JavaScript promises and the `async`/`await` syntax. +```javascript const res = await request.get(url); +``` If you're using promises, **do not** call `.end()` or `.pipe()`. Any use of `.then()` or `await` disables all other ways of using the request. Libraries like [co](https://github.com/tj/co) or a web framework like [koa](https://github.com/koajs/koa) can `yield` on any SuperAgent method: +```javascript const req = request .get('http://local') .auth('tobi', 'learnboost'); const res = yield req; +``` Note that SuperAgent expects the global `Promise` object to be present. You'll need a polyfill to use promises in Internet Explorer or Node.js 0.10. From e196345074f57987c166283c302d06d661744f14 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Tue, 18 Jan 2022 22:01:01 +0100 Subject: [PATCH 15/53] lazy access body (#1634) Refs: https://github.com/nodejs/node/pull/39520#issuecomment-889697136 --- src/node/response.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/node/response.js b/src/node/response.js index d5fe4c682..0f89a6334 100644 --- a/src/node/response.js +++ b/src/node/response.js @@ -34,7 +34,6 @@ function Response(request) { this.request = request; this.req = request.req; this.text = res.text; - this.body = res.body === undefined ? {} : res.body; this.files = res.files || {}; this.buffered = request._resBuffered; this.headers = res.headers; @@ -48,6 +47,21 @@ function Response(request) { res.on('error', this.emit.bind(this, 'error')); } +// Lazy access res.body. +// https://github.com/nodejs/node/pull/39520#issuecomment-889697136 +Object.defineProperty(Response.prototype, 'body', { + get () { + return this._body !== undefined + ? this._body + : this.res.body !== undefined + ? this.res.body + : {}; + }, + set (value) { + this._body = value; + } +}); + /** * Inherit from `Stream`. */ From c0842c1702ca35f764137d3e76ee8b58872e9877 Mon Sep 17 00:00:00 2001 From: Yong Wang Date: Tue, 18 Jan 2022 13:02:14 -0800 Subject: [PATCH 16/53] adding options to form-data (#1627) --- src/request-base.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/request-base.js b/src/request-base.js index 636d0c28f..3975679a4 100644 --- a/src/request-base.js +++ b/src/request-base.js @@ -420,10 +420,11 @@ RequestBase.prototype.unset = function (field) { * * @param {String|Object} name name of field * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field + * @param {String} options extra options, e.g. 'blob' * @return {Request} for chaining * @api public */ -RequestBase.prototype.field = function (name, value) { +RequestBase.prototype.field = function (name, value, options) { // name should be either a string or an object. if (name === null || undefined === name) { throw new Error('.field(name, val) name can not be empty'); @@ -462,7 +463,7 @@ RequestBase.prototype.field = function (name, value) { value = String(value); } - this._getFormData().append(name, value); + this._getFormData().append(name, value, options); return this; }; From 4d8a737430c653425eac3b7382d8c9c17d37c59d Mon Sep 17 00:00:00 2001 From: niftylettuce Date: Tue, 18 Jan 2022 16:39:06 -0500 Subject: [PATCH 17/53] chore: fixed linting --- src/client.js | 5 ++--- src/node/index.js | 5 ++--- src/node/response.js | 8 ++++---- src/request-base.js | 12 ++++-------- src/utils.js | 19 +++++++++++-------- 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/client.js b/src/client.js index 0246ab422..f9a9dfed5 100644 --- a/src/client.js +++ b/src/client.js @@ -110,8 +110,7 @@ function serialize(object) { if (!isObject(object)) return object; const pairs = []; for (const key in object) { - if (hasOwn(object, key)) - pushEncodedKeyValuePair(pairs, key, object[key]); + if (hasOwn(object, key)) pushEncodedKeyValuePair(pairs, key, object[key]); } return pairs.join('&'); @@ -490,7 +489,7 @@ function Request(method, url) { // eslint-disable-next-line new-cap Emitter(Request.prototype); -// eslint-disable-next-line new-cap + mixin(Request.prototype, RequestBase.prototype); /** diff --git a/src/node/index.js b/src/node/index.js index d4057d681..c478ac9f3 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -176,7 +176,7 @@ function Request(method, url) { * Mixin `RequestBase`. */ util.inherits(Request, Stream); -// eslint-disable-next-line new-cap + mixin(Request.prototype, RequestBase.prototype); /** @@ -847,8 +847,7 @@ Request.prototype.request = function () { } for (const key in this.header) { - if (hasOwn(this.header, key)) - req.setHeader(key, this.header[key]); + if (hasOwn(this.header, key)) req.setHeader(key, this.header[key]); } // add cookies diff --git a/src/node/response.js b/src/node/response.js index 0f89a6334..af1abc0bd 100644 --- a/src/node/response.js +++ b/src/node/response.js @@ -50,14 +50,14 @@ function Response(request) { // Lazy access res.body. // https://github.com/nodejs/node/pull/39520#issuecomment-889697136 Object.defineProperty(Response.prototype, 'body', { - get () { + get() { return this._body !== undefined ? this._body : this.res.body !== undefined - ? this.res.body - : {}; + ? this.res.body + : {}; }, - set (value) { + set(value) { this._body = value; } }); diff --git a/src/request-base.js b/src/request-base.js index 3975679a4..6dca906c9 100644 --- a/src/request-base.js +++ b/src/request-base.js @@ -374,8 +374,7 @@ RequestBase.prototype.getHeader = RequestBase.prototype.get; RequestBase.prototype.set = function (field, value) { if (isObject(field)) { for (const key in field) { - if (hasOwn(field, key)) - this.set(key, field[key]); + if (hasOwn(field, key)) this.set(key, field[key]); } return this; @@ -438,8 +437,7 @@ RequestBase.prototype.field = function (name, value, options) { if (isObject(name)) { for (const key in name) { - if (hasOwn(name, key)) - this.field(key, name[key]); + if (hasOwn(name, key)) this.field(key, name[key]); } return this; @@ -447,8 +445,7 @@ RequestBase.prototype.field = function (name, value, options) { if (Array.isArray(value)) { for (const i in value) { - if (hasOwn(value, i)) - this.field(name, value[i]); + if (hasOwn(value, i)) this.field(name, value[i]); } return this; @@ -665,8 +662,7 @@ RequestBase.prototype.send = function (data) { // merge if (isObject_ && isObject(this._data)) { for (const key in data) { - if (hasOwn(data, key)) - this._data[key] = data[key]; + if (hasOwn(data, key)) this._data[key] = data[key]; } } else if (typeof data === 'string') { // default to x-www-form-urlencoded diff --git a/src/utils.js b/src/utils.js index 636e8fa3f..bd8333f90 100644 --- a/src/utils.js +++ b/src/utils.js @@ -80,7 +80,7 @@ exports.cleanHeader = (header, changesOrigin) => { */ exports.isObject = (object) => { return object !== null && typeof object === 'object'; -} +}; /** * Object.hasOwn fallback/polyfill. @@ -88,12 +88,15 @@ exports.isObject = (object) => { * @type {(object: object, property: string) => boolean} object * @api private */ -exports.hasOwn = Object.hasOwn || function (object, property) { - if (object == null) { - throw new TypeError("Cannot convert undefined or null to object") - } - return Object.prototype.hasOwnProperty.call(Object(object), property) -} +exports.hasOwn = + Object.hasOwn || + function (object, property) { + if (object == null) { + throw new TypeError('Cannot convert undefined or null to object'); + } + + return Object.prototype.hasOwnProperty.call(new Object(object), property); + }; exports.mixin = (target, source) => { for (const key in source) { @@ -101,4 +104,4 @@ exports.mixin = (target, source) => { target[key] = source[key]; } } -} +}; From da714a71c838ab7a4a9fc2bd9d8158269ea2a2f8 Mon Sep 17 00:00:00 2001 From: niftylettuce Date: Tue, 18 Jan 2022 16:41:55 -0500 Subject: [PATCH 18/53] v7.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9bf328536..a8e8bbc36 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "superagent", "description": "elegant & feature rich browser / node HTTP with a fluent API", - "version": "7.0.2", + "version": "7.1.0", "author": "TJ Holowaychuk ", "browser": { "./src/node/index.js": "./src/client.js", From 997598132cd9a406c251ae08bac6e041b0d69313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jimmy=20W=C3=A4rting?= Date: Tue, 18 Jan 2022 23:33:33 +0100 Subject: [PATCH 19/53] refactor: make linter happier (#1671) --- package.json | 10 +++++++++- test/content-type.js | 4 ++-- test/node/pipe-redirect.js | 11 ++++++----- test/node/serialize.js | 2 +- test/support/express/index.js | 1 + 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index a8e8bbc36..d4bd4967b 100644 --- a/package.json +++ b/package.json @@ -217,7 +217,15 @@ } ], "rules": { - "unicorn/prevent-abbreviations": "warn", + "unicorn/prevent-abbreviations": [ + "warn", + { + "replacements": { + "res": false, + "args": false + } + } + ], "no-bitwise": "warn", "node/prefer-global/buffer": "warn", "node/prefer-global/process": "warn", diff --git a/test/content-type.js b/test/content-type.js index 4176503ac..097b93850 100644 --- a/test/content-type.js +++ b/test/content-type.js @@ -19,7 +19,7 @@ describe('req.set("Content-Type", contentType)', function () { .post(`${uri}/echo`) .set('Content-Type', 'application/json') .send({ name: 'tobi' }) - .end((error, res) => { + .end((error) => { assert(!error); done(); }); @@ -30,7 +30,7 @@ describe('req.set("Content-Type", contentType)', function () { .post(`${uri}/echo`) .set('Content-Type', 'application/json; charset=utf-8') .send({ name: 'tobi' }) - .end((error, res) => { + .end((error) => { assert(!error); done(); }); diff --git a/test/node/pipe-redirect.js b/test/node/pipe-redirect.js index 7d97796ac..3b7525f74 100644 --- a/test/node/pipe-redirect.js +++ b/test/node/pipe-redirect.js @@ -6,19 +6,20 @@ const getSetup = require('../support/setup'); describe('pipe on redirect', () => { let setup; let base; - const destPath = 'test/node/fixtures/pipe.txt'; + const destinationPath = 'test/node/fixtures/pipe.txt'; before(async () => { setup = await getSetup(); base = setup.uri; }); - after(function removeTmpfile(done) { - fs.unlink(destPath, done); + after((done) => { + // Remove tmp file + fs.unlink(destinationPath, done); }); it('should follow Location', (done) => { - const stream = fs.createWriteStream(destPath); + const stream = fs.createWriteStream(destinationPath); const redirects = []; const request_ = request .get(base) @@ -30,7 +31,7 @@ describe('pipe on redirect', () => { }); stream.on('finish', () => { redirects.should.eql(['/movies', '/movies/all', '/movies/all/0']); - fs.readFileSync(destPath, 'utf8').should.eql('first movie page'); + fs.readFileSync(destinationPath, 'utf8').should.eql('first movie page'); done(); }); request_.pipe(stream); diff --git a/test/node/serialize.js b/test/node/serialize.js index 619c87d77..0d01c6911 100644 --- a/test/node/serialize.js +++ b/test/node/serialize.js @@ -17,7 +17,7 @@ describe('req.serialize(fn)', () => { request .post(`${base}/echo`) .send({ foo: 123 }) - .serialize((data) => '{"bar":456}') + .serialize(() => '{"bar":456}') .end((error, res) => { assert.ifError(error); assert.equal('{"bar":456}', res.text); diff --git a/test/support/express/index.js b/test/support/express/index.js index 11fb6002a..3a032b461 100644 --- a/test/support/express/index.js +++ b/test/support/express/index.js @@ -1,3 +1,4 @@ +const process = require('process'); const express = require('express'); let http2Request; From f99e62499d11d60e9e774942b0a8a98dae28caf7 Mon Sep 17 00:00:00 2001 From: niftylettuce Date: Wed, 19 Jan 2022 11:59:39 -0500 Subject: [PATCH 20/53] Revert "feat: add lookup method (#1595)" This reverts commit df06131d6cb4bad05e598fb80c300082cca3d716. --- src/node/index.js | 16 ---------------- test/node/lookup.js | 21 --------------------- 2 files changed, 37 deletions(-) delete mode 100644 test/node/lookup.js diff --git a/src/node/index.js b/src/node/index.js index c478ac9f3..bfb01aa73 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -167,7 +167,6 @@ function Request(method, url) { this.qsRaw = this._query; // Unused, for backwards compatibility only this._redirectList = []; this._streamRequest = false; - this._lookup = null; this.once('end', this.clearTimeout.bind(this)); } @@ -307,20 +306,6 @@ Request.prototype.agent = function (agent) { return this; }; -/** - * Gets/sets the `lookup` function to use custom DNS resolver. - * - * @param {Function} lookup - * @return {Function} - * @api public - */ - -Request.prototype.lookup = function (lookup) { - if (arguments.length === 0) return this._lookup; - this._lookup = lookup; - return this; -}; - /** * Set _Content-Type_ response header passed through `mime.getType()`. * @@ -780,7 +765,6 @@ Request.prototype.request = function () { options.cert = this._cert; options.passphrase = this._passphrase; options.agent = this._agent; - options.lookup = this._lookup; options.rejectUnauthorized = typeof this._disableTLSCerts === 'boolean' ? !this._disableTLSCerts diff --git a/test/node/lookup.js b/test/node/lookup.js deleted file mode 100644 index 0958d5ba3..000000000 --- a/test/node/lookup.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; -const assert = require('assert'); -const dns = require('dns'); -const request = require('../support/client'); -const setup = require('../support/setup'); - -const base = setup.uri; - -function myLookup(hostname, options, callback) { - dns.lookup(hostname, options, callback); -} - -describe('req.lookup()', () => { - it('should set a custom lookup', () => { - const r = request.get(`${base}/ok`).lookup(myLookup); - assert(r.lookup() === myLookup); - r.then((res) => { - res.text.should.equal('ok'); - }); - }); -}); From 6a101c27ba18e9e8820c31f083e82e6de2c5fae6 Mon Sep 17 00:00:00 2001 From: niftylettuce Date: Wed, 19 Jan 2022 12:01:15 -0500 Subject: [PATCH 21/53] v7.1.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d4bd4967b..558551bba 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "superagent", "description": "elegant & feature rich browser / node HTTP with a fluent API", - "version": "7.1.0", + "version": "7.1.1", "author": "TJ Holowaychuk ", "browser": { "./src/node/index.js": "./src/client.js", From 07e748f8d663de0d9a69f8f455c5ed3d3ab79020 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Thu, 20 Jan 2022 13:34:39 +0800 Subject: [PATCH 22/53] fix: fixed the error of null value of lookup --- src/node/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/node/index.js b/src/node/index.js index c478ac9f3..0787f156d 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -167,7 +167,7 @@ function Request(method, url) { this.qsRaw = this._query; // Unused, for backwards compatibility only this._redirectList = []; this._streamRequest = false; - this._lookup = null; + this._lookup = undefined; this.once('end', this.clearTimeout.bind(this)); } From 356e52561afa8ec7cf6e5d8a7b6007dba3b24aab Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Fri, 21 Jan 2022 20:28:46 +0800 Subject: [PATCH 23/53] test: fixed not trigger req in lookup testcase --- test/node/lookup.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/test/node/lookup.js b/test/node/lookup.js index 0958d5ba3..0eafef210 100644 --- a/test/node/lookup.js +++ b/test/node/lookup.js @@ -2,20 +2,25 @@ const assert = require('assert'); const dns = require('dns'); const request = require('../support/client'); -const setup = require('../support/setup'); +const getSetup = require('../support/setup'); -const base = setup.uri; +let base = null; function myLookup(hostname, options, callback) { dns.lookup(hostname, options, callback); } describe('req.lookup()', () => { - it('should set a custom lookup', () => { + before(async () => { + const setup = await getSetup(); + base = setup.uri; + }); + it('should set a custom lookup', (done) => { const r = request.get(`${base}/ok`).lookup(myLookup); assert(r.lookup() === myLookup); r.then((res) => { res.text.should.equal('ok'); + done(); }); }); }); From 2704155b3ec5abd4e12a80a79673877fb8c3dd0f Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Fri, 21 Jan 2022 18:12:56 +0800 Subject: [PATCH 24/53] feat: add github action --- .github/workflows/ci.yml | 46 ++++++++++++++++++++++++++++++++++++++++ Makefile | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..f85f00718 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,46 @@ +name: CI +on: + push: + +env: + SAUCE_USERNAME: shtylman-superagent + SAUCE_ACCESS_KEY: 39a45464-cb1d-4b8d-aa1f-83c7c04fa673 + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - node-version: 12.x + # test-on-brower: 1 + - node-version: 14.x + # test-http2: 1 + - node-version: 16.x + # test-http2: 1 + steps: + - uses: actions/checkout@v2 + + - name: Install Node - ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} + - name: Install Dependencies + run: yarn install + - name: Build + run: npm run build + - name: Test On Node ${{ matrix.node-version }} + env: + BROWSER: ${{ matrix.test-on-brower }} + HTTP2_TEST: ${{ matrix.test-http2 }} + run: | + npm run test + npm run coverage \ No newline at end of file diff --git a/Makefile b/Makefile index 97821bfa3..01267b1ba 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ test: @if [ "x$(BROWSER)" = "x" ]; then make test-node; else make test-browser; fi test-node: - @NODE_ENV=test ./node_modules/.bin/mocha \ + @NODE_ENV=test nyc ./node_modules/.bin/mocha \ --require should \ --trace-warnings \ --throw-deprecation \ From 1fd4f908f9cdce51d0fbb3eb4df17435ab5bed74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E4=B8=80=E6=A2=93?= Date: Sun, 23 Jan 2022 01:40:39 +0800 Subject: [PATCH 25/53] fix: fixed the broken testcases (#1676) --- .gitignore | 1 + test/basic.js | 2 +- test/node/multipart.js | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 1592c7754..296d7f265 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.vscode build lib-cov coverage.html diff --git a/test/basic.js b/test/basic.js index 9fdb10e19..7c2467514 100644 --- a/test/basic.js +++ b/test/basic.js @@ -100,7 +100,7 @@ describe('request', function () { return Promise.all([request_, request_, request_]).then((results) => { for (const item of results) { - assert.equal( + assert.deepEqual( item.body, results[0].body, 'It should keep returning the same result after being called once' diff --git a/test/node/multipart.js b/test/node/multipart.js index 408bfc012..f4c024883 100644 --- a/test/node/multipart.js +++ b/test/node/multipart.js @@ -114,7 +114,7 @@ describe('Multipart', () => { it('should report ENOENT via the callback', (done) => { request - .post('http://127.0.0.1:1') // nobody is listening there + .post(`${base}/echo`) .attach('name', 'file-does-not-exist') .end((error, res) => { assert.ok(Boolean(error), 'Request should have failed'); @@ -125,7 +125,7 @@ describe('Multipart', () => { it('should report ENOENT via Promise', () => { return request - .post(`http://127.0.0.1:1`) // nobody is listening there + .post(`${base}/echo`) .attach('name', 'file-does-not-exist') .then( (res) => assert.fail('Request should have failed'), From 84206c75214e20bbc688d0645880696ecd773c27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E4=B8=80=E6=A2=93?= Date: Sun, 23 Jan 2022 01:40:50 +0800 Subject: [PATCH 26/53] fix: fixed the errors of eslint (#1675) * fix: fixed the errors of eslint * style: remove unused eslint comment --- .dist.eslintrc | 14 ++++++++++++-- .eslintrc | 38 ++++++++++++++++++++++++++++++++++++++ .lib.eslintrc | 8 +++++++- package.json | 3 ++- src/client.js | 8 ++++---- test/client/request.js | 1 - test/node/toError.js | 2 +- 7 files changed, 64 insertions(+), 10 deletions(-) create mode 100644 .eslintrc diff --git a/.dist.eslintrc b/.dist.eslintrc index fc08714e8..2d25a42c2 100644 --- a/.dist.eslintrc +++ b/.dist.eslintrc @@ -1,5 +1,5 @@ { - "extends": ["eslint:recommended"], + "extends": ["eslint:recommended", "plugin:compat/recommended"], "env": { "node": false, "browser": true, @@ -8,6 +8,14 @@ }, "plugins": ["compat"], "rules": { + "node/no-unsupported-features/es-builtins": ["error", { + "version": ">=8.0.0", + "ignores": [ + "Atomics", + "BigInt", + "SharedArrayBuffer" + ] + }], "compat/compat": "error", "no-console": "off", "no-empty": "off", @@ -44,7 +52,9 @@ "Reflect", "WeakMap", "WeakRef", - "WeakSet" + "WeakSet", + "Atomics", + "SharedArrayBuffer" ] } } diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 000000000..c97b150b5 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,38 @@ +{ + "extends": [ + "eslint:recommended", + "plugin:node/recommended" + ], + "env": { + "node": true, + "browser": true, + "es6": true + }, + "parserOptions": { + "ecmaVersion": 2021 + }, + "overrides": [ + { + "files": "test/**/*.js", + "env": { + "mocha": true + }, + "rules": { + "no-prototype-builtins": "off", + "node/no-deprecated-api": "warn", + "node/no-extraneous-require": "warn", + "no-unused-vars": "warn" + } + } + ], + "rules": { + "node/no-unsupported-features/node-builtins": "off", + "node/no-unsupported-features/es-syntax": "off", + "node/no-exports-assign": "off" + }, + "globals": { + "ActiveXObject": "readonly" + } + + +} \ No newline at end of file diff --git a/.lib.eslintrc b/.lib.eslintrc index 8f3fbf44c..318fa0b59 100644 --- a/.lib.eslintrc +++ b/.lib.eslintrc @@ -8,7 +8,6 @@ "no-console": "off", "no-unused-vars": "off", "no-empty": "off", - "node/no-unsupported-features/node-builtins": "off", "no-func-assign": "off", "no-global-assign": ["error", {"exceptions": ["exports"]}], "no-fallthrough": "off", @@ -22,6 +21,13 @@ "globals": { "ActiveXObject": "readable" } + }, + { + "files": [ "lib/node/http2wrapper.js" ], + "rules": { + "node/no-unsupported-features/es-builtins": "off", + "node/no-unsupported-features/node-builtins": "off" + } } ] } diff --git a/package.json b/package.json index 558551bba..799e7990d 100644 --- a/package.json +++ b/package.json @@ -155,7 +155,7 @@ "build:dist": "npm run browserify && npm run minify", "build:lib": "babel --config-file ./.lib.babelrc src --out-dir lib", "coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov", - "lint": "xo && remark . -qfo && eslint -c .lib.eslintrc lib && eslint -c .dist.eslintrc dist", + "lint": "eslint -c .eslintrc src test && remark . -qfo && eslint -c .lib.eslintrc lib/**/*.js && eslint -c .dist.eslintrc dist/**/*.js", "minify": "cross-env NODE_ENV=production browserify src/node/index.js -o dist/superagent.min.js -s superagent -g [ babelify --configFile ./.dist.babelrc ] -p tinyify", "nyc": "cross-env NODE_ENV=test nyc ava", "test": "npm run build && npm run lint && make test", @@ -165,6 +165,7 @@ "xo": { "prettier": true, "space": true, + "nodeVersion": false, "extends": [ "xo-lass" ], diff --git a/src/client.js b/src/client.js index f9a9dfed5..444fe1e48 100644 --- a/src/client.js +++ b/src/client.js @@ -71,19 +71,19 @@ request.getXHR = () => { try { return new ActiveXObject('Microsoft.XMLHTTP'); - } catch {} + } catch {/**/} try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); - } catch {} + } catch {/**/} try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); - } catch {} + } catch {/**/} try { return new ActiveXObject('Msxml2.XMLHTTP'); - } catch {} + } catch {/**/} throw new Error('Browser-only version of superagent could not find XHR'); }; diff --git a/test/client/request.js b/test/client/request.js index cc129f183..3263bddb7 100644 --- a/test/client/request.js +++ b/test/client/request.js @@ -55,7 +55,6 @@ describe('request', function () { try { var file = new File([''], 'image.jpg', { type: 'image/jpeg' }); - // eslint-disable-next-line unicorn/prefer-optional-catch-binding } catch (err) { // Skip if file constructor not supported. return next(); diff --git a/test/node/toError.js b/test/node/toError.js index fb1a5ce50..80c9abaf6 100644 --- a/test/node/toError.js +++ b/test/node/toError.js @@ -26,7 +26,7 @@ before(function listen(done) { describe('res.toError()', () => { it('should return an Error', (done) => { - request.get(base).end((error, res) => { + request.get(base).end((err, res) => { var error = res.toError(); assert.equal(error.status, 400); assert.equal(error.method, 'GET'); From 633e4678d60eb3af80fbd6b3d1757ad22d88bdef Mon Sep 17 00:00:00 2001 From: titanism <101466223+titanism@users.noreply.github.com> Date: Mon, 28 Mar 2022 22:14:40 -0500 Subject: [PATCH 27/53] v7.1.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 799e7990d..09d5cf925 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "superagent", "description": "elegant & feature rich browser / node HTTP with a fluent API", - "version": "7.1.1", + "version": "7.1.2", "author": "TJ Holowaychuk ", "browser": { "./src/node/index.js": "./src/client.js", From 5e9f9d742817f19420b84f8b54de4bdd277a5d20 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Thu, 31 Mar 2022 10:26:10 +0800 Subject: [PATCH 28/53] ci: add error event listener for pipe --- test/node/query.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/node/query.js b/test/node/query.js index 2fee6883d..924e9ce53 100644 --- a/test/node/query.js +++ b/test/node/query.js @@ -208,6 +208,9 @@ describe('req.query(Object)', () => { res.body.should.eql({ name: 'tobi' }); done(); }); + request_.on('error', (err) => { + done(err); + }); stream.pipe(request_); }); From 8b68b11f88254e3ad2cc59097383ff07912807ea Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Fri, 1 Apr 2022 09:25:50 +0800 Subject: [PATCH 29/53] test: add event listener for read stream --- test/node/query.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/node/query.js b/test/node/query.js index 924e9ce53..c53eee87c 100644 --- a/test/node/query.js +++ b/test/node/query.js @@ -212,6 +212,9 @@ describe('req.query(Object)', () => { done(err); }); + stream.on('error', function(err) { + done(err); + }); stream.pipe(request_); }); }); From 718e063cc076ef6a37c8bdbedce718cc9693d9bb Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Fri, 1 Apr 2022 17:52:27 +0800 Subject: [PATCH 30/53] ci: set timeout to 15000ms --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 01267b1ba..fe6f804e0 100644 --- a/Makefile +++ b/Makefile @@ -7,12 +7,12 @@ test: @if [ "x$(BROWSER)" = "x" ]; then make test-node; else make test-browser; fi test-node: - @NODE_ENV=test nyc ./node_modules/.bin/mocha \ + @NODE_ENV=test ./node_modules/.bin/nyc ./node_modules/.bin/mocha \ --require should \ --trace-warnings \ --throw-deprecation \ --reporter $(REPORTER) \ - --timeout 5000 \ + --timeout 15000 \ --exit \ $(NODETESTS) From a7cee2b5ca9f3c50dec69d2ee0f0468cbec7b600 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 3 Apr 2022 07:09:32 +0800 Subject: [PATCH 31/53] ci: fix the upload test on Windows --- test/node/multipart.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/test/node/multipart.js b/test/node/multipart.js index f4c024883..f319a8def 100644 --- a/test/node/multipart.js +++ b/test/node/multipart.js @@ -2,14 +2,23 @@ const assert = require('assert'); const fs = require('fs'); +const path = require('path'); const should = require('should'); const getPort = require('get-port'); const request = require('../support/client'); const getSetup = require('../support/setup'); +const IS_WINDOWS = require('os').platform() === 'win32'; function read(file) { return fs.readFileSync(file, 'utf8'); } +function getFullPath(filename) { + if (!IS_WINDOWS) { + return filename; + } + const fullPath = path.join(__dirname, '../../', filename); + return fullPath.charAt(0).toLowerCase() + fullPath.slice(1); +} describe('Multipart', () => { let setup; @@ -86,14 +95,14 @@ describe('Multipart', () => { const request_ = request.post(`${base}/echo`); request_.attach('name', 'foo'); - request_.attach('name2', 'bar'); - request_.attach('name3', 'baz'); + // request_.attach('name2', 'bar'); + // request_.attach('name3', 'baz'); request_.end((error, res) => { assert.ok(Boolean(error), 'Request should have failed.'); error.code.should.equal('ENOENT'); error.message.should.containEql('ENOENT'); - error.path.should.equal('foo'); + error.path.should.equal(getFullPath('foo')); done(); }); }); @@ -107,7 +116,7 @@ describe('Multipart', () => { (res) => assert.fail('It should not allow this'), (err) => { err.code.should.equal('ENOENT'); - err.path.should.equal('does-not-exist.txt'); + err.path.should.equal(getFullPath('does-not-exist.txt')); } ); }); @@ -179,7 +188,7 @@ describe('Multipart', () => { .end((error, res) => { assert.ok(Boolean(error), 'Request should have failed.'); error.code.should.equal('ENOENT'); - error.path.should.equal('test/node/fixtures/non-existent-file.ext'); + error.path.should.equal(getFullPath('test/node/fixtures/non-existent-file.ext')); done(); }); }); From ba56f8786f2f2d090a9c154f6dc17c40a048aaf0 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 3 Apr 2022 07:12:24 +0800 Subject: [PATCH 32/53] ci: add slow parameter to mocha --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index fe6f804e0..d0b55a3bf 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,7 @@ test-node: --trace-warnings \ --throw-deprecation \ --reporter $(REPORTER) \ + --slow 2000 \ --timeout 15000 \ --exit \ $(NODETESTS) From b83fae37e47a0c5353180ab675b9e87d0d8c1c09 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 3 Apr 2022 13:32:41 +0800 Subject: [PATCH 33/53] ci: trigger ci on push and pull request --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f85f00718..e662073f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,5 @@ name: CI -on: - push: +on: [push, pull_request] env: SAUCE_USERNAME: shtylman-superagent From b2b330bfad8e71454817b4ddd7a37be492974a1b Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 3 Apr 2022 13:37:02 +0800 Subject: [PATCH 34/53] ci: use secret env to hide the sauce config --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e662073f0..87750e30e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,8 +2,8 @@ name: CI on: [push, pull_request] env: - SAUCE_USERNAME: shtylman-superagent - SAUCE_ACCESS_KEY: 39a45464-cb1d-4b8d-aa1f-83c7c04fa673 + SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }} + SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }} jobs: test: From 16c88c5b7c5f71c5bacebd889308802bed603df0 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Wed, 6 Apr 2022 10:41:57 +0800 Subject: [PATCH 35/53] test: only enlarge the timeout for pipe test --- Makefile | 2 +- test/node/query.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index d0b55a3bf..5f54c67bc 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ test-node: --throw-deprecation \ --reporter $(REPORTER) \ --slow 2000 \ - --timeout 15000 \ + --timeout 5000 \ --exit \ $(NODETESTS) diff --git a/test/node/query.js b/test/node/query.js index c53eee87c..72751c204 100644 --- a/test/node/query.js +++ b/test/node/query.js @@ -200,7 +200,8 @@ describe('req.query(Object)', () => { }); }); - it('query-string should be sent on pipe', (done) => { + it('query-string should be sent on pipe', function(done) { + this.timeout(15_000); const request_ = request.put(`${base}/?name=tobi`); const stream = fs.createReadStream('test/node/fixtures/user.json'); From 04fc158c418477dc34a3b799e80d6ddd34385a67 Mon Sep 17 00:00:00 2001 From: Marcus Hultkrantz Date: Mon, 25 Apr 2022 10:34:26 +0200 Subject: [PATCH 36/53] use custom encoder if it is sent in option object --- src/client.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/client.js b/src/client.js index 444fe1e48..6bcae71ea 100644 --- a/src/client.js +++ b/src/client.js @@ -568,10 +568,12 @@ Request.prototype.auth = function (user, pass, options) { }; } - const encoder = (string) => { - if (typeof btoa === 'function') { - return btoa(string); - } + const encoder = + options.encoder || + (string) => { + if (typeof btoa === 'function') { + return btoa(string); + } throw new Error('Cannot use basic auth, btoa is not a function'); }; From c4e8c6ead5244ce0ad1665393dd4c132c181bd88 Mon Sep 17 00:00:00 2001 From: titanism <101466223+titanism@users.noreply.github.com> Date: Tue, 26 Apr 2022 17:55:50 -0500 Subject: [PATCH 37/53] chore: bump deps --- package.json | 32 +- yarn.lock | 1849 ++++++++++++++++++++++++++------------------------ 2 files changed, 989 insertions(+), 892 deletions(-) diff --git a/package.json b/package.json index 09d5cf925..6a5a3b137 100644 --- a/package.json +++ b/package.json @@ -26,44 +26,44 @@ "dependencies": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.3", - "debug": "^4.3.3", + "debug": "^4.3.4", "fast-safe-stringify": "^2.1.1", "form-data": "^4.0.0", "formidable": "^2.0.1", "methods": "^1.1.2", "mime": "^2.5.0", - "qs": "^6.10.1", + "qs": "^6.10.3", "readable-stream": "^3.6.0", - "semver": "^7.3.5" + "semver": "^7.3.7" }, "devDependencies": { - "@babel/cli": "^7.16.0", - "@babel/core": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@commitlint/cli": "^15.0.0", - "@commitlint/config-conventional": "^15.0.0", + "@babel/cli": "^7.17.6", + "@babel/core": "^7.17.9", + "@babel/plugin-transform-runtime": "^7.17.0", + "@babel/preset-env": "^7.16.11", + "@commitlint/cli": "^16.2.3", + "@commitlint/config-conventional": "^16.2.1", "Base64": "^1.1.0", "babelify": "^10.0.0", "basic-auth-connect": "^1.0.0", - "body-parser": "^1.19.0", + "body-parser": "^1.20.0", "browserify": "^17.0.0", "codecov": "^3.8.3", "cookie-parser": "^1.4.6", "cross-env": "^7.0.3", - "eslint": "^8.3.0", + "eslint": "^8.14.0", "eslint-config-xo-lass": "^1.0.6", - "eslint-plugin-compat": "^4.0.0", + "eslint-plugin-compat": "^4.0.2", "eslint-plugin-node": "^11.1.0", - "express": "^4.17.1", + "express": "^4.18.0", "express-session": "^1.17.2", "fixpack": "^4.0.0", "get-port": "4.2.0", "husky": "^7.0.4", - "lint-staged": "^12.1.2", + "lint-staged": "^12.4.1", "marked": "^2.0.0", "mocha": "6.2.2", - "multer": "^1.4.3", + "multer": "^1.4.4", "nyc": "^15.1.0", "remark-cli": "^10.0.1", "remark-preset-github": "^4.0.1", @@ -71,7 +71,7 @@ "should": "^13.2.3", "should-http": "^0.1.1", "tinyify": "^3.0.0", - "xo": "^0.47.0", + "xo": "0.47.0", "zuul": "^3.12.0" }, "engines": { diff --git a/yarn.lock b/yarn.lock index 005c67a97..7dca2f730 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,19 @@ # yarn lockfile v1 -"@babel/cli@^7.16.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.16.7.tgz#4184b5ec6a22106e9dd64bbcaa2eb22675ff595d" - integrity sha512-0iBF+G2Qml0y3mY5dirolyToLSR88a/KB6F2Gm8J/lOnyL8wbEOHak0DHF8gjc9XZGgTDGv/jYXNiapvsYyHTA== +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + +"@babel/cli@^7.17.6": + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.17.6.tgz#169e5935f1795f0b62ded5a2accafeedfe5c5363" + integrity sha512-l4w608nsDNlxZhiJ5tE3DbNmr61fIKMZ6fTBo171VEFuFMIYuJ3mHRhTLEkKKyvx2Mizkkv/0a8OJOnZqkKYNA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.4" commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" @@ -25,47 +33,47 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" - integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== -"@babel/core@^7.12.16", "@babel/core@^7.16.0", "@babel/core@^7.7.5": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" - integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== +"@babel/core@^7.12.16", "@babel/core@^7.17.9", "@babel/core@^7.7.5": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" + integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== dependencies: + "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.16.7" - "@babel/parser" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.1.2" + json5 "^2.2.1" semver "^6.3.0" - source-map "^0.5.0" "@babel/eslint-parser@^7.12.16": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.16.5.tgz#48d3485091d6e36915358e4c0d0b2ebe6da90462" - integrity sha512-mUqYa46lgWqHKQ33Q6LNCGp/wPR3eqOYTUixHFsfrSQqRxH0+WOzca75iEjFr5RDGH1dDz622LaHhLOzOuQRUA== + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6" + integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== dependencies: eslint-scope "^5.1.1" eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.7.tgz#b42bf46a3079fa65e1544135f32e7958f048adbb" - integrity sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg== +"@babel/generator@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" + integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" jsesc "^2.5.1" source-map "^0.5.0" @@ -84,41 +92,41 @@ "@babel/helper-explode-assignable-expression" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" - integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.17.7" "@babel/helper-validator-option" "^7.16.7" browserslist "^4.17.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz#9c5b34b53a01f2097daf10678d65135c1b9f84ba" - integrity sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw== +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" + integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-member-expression-to-functions" "^7.17.7" "@babel/helper-optimise-call-expression" "^7.16.7" "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48" - integrity sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g== + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^4.7.1" + regexpu-core "^5.0.1" -"@babel/helper-define-polyfill-provider@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" - integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -143,21 +151,13 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== +"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== dependencies: - "@babel/helper-get-function-arity" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== - dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" @@ -166,12 +166,12 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-member-expression-to-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" - integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q== +"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" + integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": version "7.16.7" @@ -180,19 +180,19 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" - integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== +"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-validator-identifier" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" @@ -206,14 +206,14 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== -"@babel/helper-remap-async-to-generator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.7.tgz#5ce2416990d55eb6e099128338848ae8ffa58a9a" - integrity sha512-C3o117GnP/j/N2OWo+oepeWbFEKRfNaay+F1Eo5Mj3A1SRjyx+qaFhm23nlipub7Cjv2azdUUiDH+VlpdwUFRg== +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" "@babel/helper-replace-supers@^7.16.7": version "7.16.7" @@ -226,12 +226,12 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-simple-access@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" - integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": version "7.16.0" @@ -257,38 +257,38 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== -"@babel/helper-wrap-function@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.7.tgz#8ddf9eaa770ed43de4bc3687f3f3b0d6d5ecf014" - integrity sha512-7a9sABeVwcunnztZZ7WTgSw6jVYLzM1wua0Z4HIXm9S3/HC96WKQTkFgGEaj5W06SHHihPJ6Le6HzS5cGOQMNw== +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== dependencies: "@babel/helper-function-name" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" -"@babel/helpers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" - integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== +"@babel/helpers@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" + integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" "@babel/highlight@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b" - integrity sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" + integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.7.tgz#d372dda9c89fcec340a82630a9f533f2fe15877e" - integrity sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA== +"@babel/parser@^7.16.7", "@babel/parser@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" + integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -306,13 +306,13 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-proposal-optional-chaining" "^7.16.7" -"@babel/plugin-proposal-async-generator-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.7.tgz#739adc1212a9e4892de440cd7dfffb06172df78d" - integrity sha512-TTXBT3A5c11eqRzaC6beO6rlFT3Mo9C2e8eB44tTr52ESXSK2CIc2fOp1ynpAwQA8HhBMho+WXhMHWlAe3xkpw== +"@babel/plugin-proposal-async-generator-functions@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" + integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== dependencies: "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.16.7": @@ -324,11 +324,11 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a" - integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw== + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" + integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.6" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" @@ -381,11 +381,11 @@ "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" - integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.17.0" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" @@ -408,12 +408,12 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz#e418e3aa6f86edd6d327ce84eff188e479f571e0" - integrity sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw== +"@babel/plugin-proposal-private-methods@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.10" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-proposal-private-property-in-object@^7.16.7": @@ -539,14 +539,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-async-to-generator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.7.tgz#646e1262ac341b587ff5449844d4492dbb10ac4b" - integrity sha512-pFEfjnK4DfXCfAlA5I98BYdDJD8NltMzx19gt6DAmfE+2lXRfPUoa0/5SUjT4+TDE1W/rcxU/1lgN55vpAjjdg== +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" + integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-transform-block-scoped-functions@^7.16.7": version "7.16.7" @@ -584,9 +584,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-destructuring@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" - integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" + integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== dependencies: "@babel/helper-plugin-utils" "^7.16.7" @@ -652,23 +652,23 @@ "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.7.tgz#fd119e6a433c527d368425b45df361e1e95d3c1a" - integrity sha512-h2RP2kE7He1ZWKyAlanMZrAbdv+Acw1pA8dQZhE025WJZE2z0xzFADAinXA9fxd5bn7JnM+SdOGcndGx1ARs9w== +"@babel/plugin-transform-modules-commonjs@^7.16.8": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" + integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== dependencies: - "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-module-transforms" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7" - integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw== + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" + integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== dependencies: "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-module-transforms" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-validator-identifier" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" @@ -681,10 +681,10 @@ "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.7.tgz#749d90d94e73cf62c60a0cc8d6b94d29305a81f2" - integrity sha512-kFy35VwmwIQwCjwrAQhl3+c/kr292i4KdLPKp5lPH03Ltc51qnFlIADoyPxc/6Naz3ok3WdYKg+KK6AH+D4utg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" + integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.7" @@ -718,11 +718,11 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-regenerator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb" - integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" + integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== dependencies: - regenerator-transform "^0.14.2" + regenerator-transform "^0.15.0" "@babel/plugin-transform-reserved-words@^7.16.7": version "7.16.7" @@ -731,15 +731,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-runtime@^7.16.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.7.tgz#1da184cb83a2287a01956c10c60e66dd503c18aa" - integrity sha512-2FoHiSAWkdq4L06uaDN3rS43i6x28desUVxq+zAFuE6kbWYQeiLPJI5IC7Sg9xKYVcrBKSQkVUfH6aeQYbl9QA== +"@babel/plugin-transform-runtime@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70" + integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" semver "^6.3.0" @@ -794,18 +794,18 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/preset-env@^7.16.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.7.tgz#c491088856d0b3177822a2bf06cb74d76327aa56" - integrity sha512-urX3Cee4aOZbRWOSa3mKPk0aqDikfILuo+C7qq7HY0InylGNZ1fekq9jmlr3pLWwZHF4yD7heQooc2Pow2KMyQ== +"@babel/preset-env@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.16.8" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-validator-option" "^7.16.7" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.7" + "@babel/plugin-proposal-async-generator-functions" "^7.16.8" "@babel/plugin-proposal-class-properties" "^7.16.7" "@babel/plugin-proposal-class-static-block" "^7.16.7" "@babel/plugin-proposal-dynamic-import" "^7.16.7" @@ -817,7 +817,7 @@ "@babel/plugin-proposal-object-rest-spread" "^7.16.7" "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.11" "@babel/plugin-proposal-private-property-in-object" "^7.16.7" "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" "@babel/plugin-syntax-async-generators" "^7.8.4" @@ -835,7 +835,7 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-transform-arrow-functions" "^7.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.8" "@babel/plugin-transform-block-scoped-functions" "^7.16.7" "@babel/plugin-transform-block-scoping" "^7.16.7" "@babel/plugin-transform-classes" "^7.16.7" @@ -849,10 +849,10 @@ "@babel/plugin-transform-literals" "^7.16.7" "@babel/plugin-transform-member-expression-literals" "^7.16.7" "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.16.8" "@babel/plugin-transform-modules-systemjs" "^7.16.7" "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" "@babel/plugin-transform-new-target" "^7.16.7" "@babel/plugin-transform-object-super" "^7.16.7" "@babel/plugin-transform-parameters" "^7.16.7" @@ -867,11 +867,11 @@ "@babel/plugin-transform-unicode-escapes" "^7.16.7" "@babel/plugin-transform-unicode-regex" "^7.16.7" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.7" + "@babel/types" "^7.16.8" babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.19.1" + core-js-compat "^3.20.2" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -886,9 +886,9 @@ esutils "^2.0.2" "@babel/runtime@^7.8.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" - integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" + integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== dependencies: regenerator-runtime "^0.13.4" @@ -901,190 +901,204 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.7.tgz#dac01236a72c2560073658dd1a285fe4e0865d76" - integrity sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" + integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" + "@babel/generator" "^7.17.9" "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/parser" "^7.17.9" + "@babel/types" "^7.17.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.7.tgz#4ed19d51f840ed4bd5645be6ce40775fecf03159" - integrity sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" -"@commitlint/cli@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-15.0.0.tgz#8e78e86ee2b6955c1a5d140e734a6c171ce367ee" - integrity sha512-Y5xmDCweytqzo4N4lOI2YRiuX35xTjcs8n5hUceBH8eyK0YbwtgWX50BJOH2XbkwEmII9blNhlBog6AdQsqicg== +"@commitlint/cli@^16.2.3": + version "16.2.3" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-16.2.3.tgz#6c250ce7a660a08a3ac35dd2ec5039421fb831df" + integrity sha512-VsJBQLvhhlOgEfxs/Z5liYuK0dXqLE5hz1VJzLBxiOxG31kL/X5Q4OvK292BmO7IGZcm1yJE3XQPWSiFaEHbWA== dependencies: - "@commitlint/format" "^15.0.0" - "@commitlint/lint" "^15.0.0" - "@commitlint/load" "^15.0.0" - "@commitlint/read" "^15.0.0" - "@commitlint/types" "^15.0.0" + "@commitlint/format" "^16.2.1" + "@commitlint/lint" "^16.2.1" + "@commitlint/load" "^16.2.3" + "@commitlint/read" "^16.2.1" + "@commitlint/types" "^16.2.1" lodash "^4.17.19" resolve-from "5.0.0" resolve-global "1.0.0" yargs "^17.0.0" -"@commitlint/config-conventional@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-15.0.0.tgz#3bf1adf319e3b431de12ba82dc399524038b2d8f" - integrity sha512-eZBRL8Lk3hMNHp1wUMYj0qrZQEsST1ai7KHR8J1IDD9aHgT7L2giciibuQ+Og7vxVhR5WtYDvh9xirXFVPaSkQ== +"@commitlint/config-conventional@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-16.2.1.tgz#2cf47b505fb259777c063538c8498d8fd9b47779" + integrity sha512-cP9gArx7gnaj4IqmtCIcHdRjTYdRUi6lmGE+lOzGGjGe45qGOS8nyQQNvkNy2Ey2VqoSWuXXkD8zCUh6EHf1Ww== dependencies: conventional-changelog-conventionalcommits "^4.3.1" -"@commitlint/ensure@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-15.0.0.tgz#06a63738e2393970a085b428e6cf80fa1fe76f48" - integrity sha512-7DV4iNIald3vycwaWBNGk5FbonaNzOlU8nBe5m5AgU2dIeNKuXwLm+zzJzG27j0Ho56rgz//3F6RIvmsoxY9ZA== +"@commitlint/config-validator@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-16.2.1.tgz#794e769afd4756e4cf1bfd823b6612932e39c56d" + integrity sha512-hogSe0WGg7CKmp4IfNbdNES3Rq3UEI4XRPB8JL4EPgo/ORq5nrGTVzxJh78omibNuB8Ho4501Czb1Er1MoDWpw== + dependencies: + "@commitlint/types" "^16.2.1" + ajv "^6.12.6" + +"@commitlint/ensure@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-16.2.1.tgz#0fc538173f95c1eb2694eeedb79cab478347f16f" + integrity sha512-/h+lBTgf1r5fhbDNHOViLuej38i3rZqTQnBTk+xEg+ehOwQDXUuissQ5GsYXXqI5uGy+261ew++sT4EA3uBJ+A== dependencies: - "@commitlint/types" "^15.0.0" + "@commitlint/types" "^16.2.1" lodash "^4.17.19" -"@commitlint/execute-rule@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-15.0.0.tgz#6bff7962df38e89ff9fdbc00abd79b8849c7e9f9" - integrity sha512-pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg== +"@commitlint/execute-rule@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-16.2.1.tgz#60be73be4b9af97a41546e7ce59fdd33787c65f8" + integrity sha512-oSls82fmUTLM6cl5V3epdVo4gHhbmBFvCvQGHBRdQ50H/690Uq1Dyd7hXMuKITCIdcnr9umyDkr8r5C6HZDF3g== -"@commitlint/format@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-15.0.0.tgz#10935180913de9384bea4c9217f4c6c5ee100ab3" - integrity sha512-bPhAfqwRhPk92WiuY0ktEJNpRRHSCd+Eg1MdhGyL9Bl3U25E5zvuInA+dNctnzZiOBSH/37ZaD0eOKCpQE6acg== +"@commitlint/format@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-16.2.1.tgz#6e673f710c799be78e68b2682323e04f75080d07" + integrity sha512-Yyio9bdHWmNDRlEJrxHKglamIk3d6hC0NkEUW6Ti6ipEh2g0BAhy8Od6t4vLhdZRa1I2n+gY13foy+tUgk0i1Q== dependencies: - "@commitlint/types" "^15.0.0" + "@commitlint/types" "^16.2.1" chalk "^4.0.0" -"@commitlint/is-ignored@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-15.0.0.tgz#382bf9f6f8d810f2ffc59ccc527f4389eadd7949" - integrity sha512-edtnkf2QZ/7e/YCJDgn1WDw9wfF1WfOitW5YEoSOb4SxjJEb/oE87kxNPZ2j8mnDMuunspcMfGHeg6fRlwaEWg== +"@commitlint/is-ignored@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-16.2.1.tgz#cc688ec73a3d204b90f8086821a08814da461e5e" + integrity sha512-exl8HRzTIfb1YvDJp2b2HU5z1BT+9tmgxR2XF0YEzkMiCIuEKh+XLeocPr1VcvAKXv3Cmv5X/OfNRp+i+/HIhQ== dependencies: - "@commitlint/types" "^15.0.0" + "@commitlint/types" "^16.2.1" semver "7.3.5" -"@commitlint/lint@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-15.0.0.tgz#a93b8896fb25b05ab2ed0246d365f4908654588d" - integrity sha512-hUi2+Im/2dJ5FBvWnodypTkg+5haCgsDzB0fyMApWLUA1IucYUAqRCQCW5em1Mhk9Crw1pd5YzFNikhIclkqCw== - dependencies: - "@commitlint/is-ignored" "^15.0.0" - "@commitlint/parse" "^15.0.0" - "@commitlint/rules" "^15.0.0" - "@commitlint/types" "^15.0.0" - -"@commitlint/load@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-15.0.0.tgz#5bd391c1387aafe92b54cf2a86b76a5228fcf4ef" - integrity sha512-Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg== - dependencies: - "@commitlint/execute-rule" "^15.0.0" - "@commitlint/resolve-extends" "^15.0.0" - "@commitlint/types" "^15.0.0" - "@endemolshinegroup/cosmiconfig-typescript-loader" "^3.0.2" +"@commitlint/lint@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-16.2.1.tgz#c773f082cd4f69cb7807b805b691d2a52c732f97" + integrity sha512-fNINQ3X2ZqsCkNB3Z0Z8ElmhewqrS3gy2wgBTx97BkcjOWiyPAGwDJ752hwrsUnWAVBRztgw826n37xPzxsOgg== + dependencies: + "@commitlint/is-ignored" "^16.2.1" + "@commitlint/parse" "^16.2.1" + "@commitlint/rules" "^16.2.1" + "@commitlint/types" "^16.2.1" + +"@commitlint/load@^16.2.3": + version "16.2.3" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-16.2.3.tgz#7b2e85af25a6f736f080ba08e7165738cedf8c8f" + integrity sha512-Hb4OUlMnBUK6UxJEZ/VJ5k0LocIS7PtEMbRXEAA7eSpOgORIFexC4K/RaRpVd5UTtu3M0ST3ddPPijF9rdW6nw== + dependencies: + "@commitlint/config-validator" "^16.2.1" + "@commitlint/execute-rule" "^16.2.1" + "@commitlint/resolve-extends" "^16.2.1" + "@commitlint/types" "^16.2.1" + "@types/node" ">=12" chalk "^4.0.0" cosmiconfig "^7.0.0" + cosmiconfig-typescript-loader "^1.0.0" lodash "^4.17.19" resolve-from "^5.0.0" typescript "^4.4.3" -"@commitlint/message@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-15.0.0.tgz#98a38aca1b3cd996a0fcdbd9ad67e9039df60b0a" - integrity sha512-L8euabzboKavPuDJsdIYAY2wx97LbiGEYsckMo6NmV8pOun50c8hQx6ouXFSAx4pp+mX9yUGmMiVqfrk2LKDJQ== +"@commitlint/message@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-16.2.1.tgz#bc6a0fa446a746ac2ca78cf372e4cec48daf620d" + integrity sha512-2eWX/47rftViYg7a3axYDdrgwKv32mxbycBJT6OQY/MJM7SUfYNYYvbMFOQFaA4xIVZt7t2Alyqslbl6blVwWw== -"@commitlint/parse@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-15.0.0.tgz#cac77b7514748b8d01d00c0e67d5e54c695c302c" - integrity sha512-7fweM67tZfBNS7zw1KTuuT5K2u9nGytUJqFqT/1Ln3Na9cBCsoAqR47mfsNOTlRCgGwakm4xiQ7BpS2gN0OGuw== +"@commitlint/parse@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-16.2.1.tgz#50b359cb711ec566d2ee236a8e4c6baca07b77c0" + integrity sha512-2NP2dDQNL378VZYioLrgGVZhWdnJO4nAxQl5LXwYb08nEcN+cgxHN1dJV8OLJ5uxlGJtDeR8UZZ1mnQ1gSAD/g== dependencies: - "@commitlint/types" "^15.0.0" + "@commitlint/types" "^16.2.1" conventional-changelog-angular "^5.0.11" conventional-commits-parser "^3.2.2" -"@commitlint/read@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-15.0.0.tgz#da839f3b4d49b05586a9cd2666cc8c4a36b9ec91" - integrity sha512-5yI1o2HKZFVe7RTjL7IhuhHMKar/MDNY34vEHqqz9gMI7BK/rdP8uVb4Di1efl2V0UPnwID0nPKWESjQ8Ti0gw== +"@commitlint/read@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-16.2.1.tgz#e0539205d77cdb6879b560f95e5fb251e0c6f562" + integrity sha512-tViXGuaxLTrw2r7PiYMQOFA2fueZxnnt0lkOWqKyxT+n2XdEMGYcI9ID5ndJKXnfPGPppD0w/IItKsIXlZ+alw== dependencies: - "@commitlint/top-level" "^15.0.0" - "@commitlint/types" "^15.0.0" + "@commitlint/top-level" "^16.2.1" + "@commitlint/types" "^16.2.1" fs-extra "^10.0.0" git-raw-commits "^2.0.0" -"@commitlint/resolve-extends@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-15.0.0.tgz#baf21227e2ac52cef546ec35dd6732e9b0b6e57c" - integrity sha512-7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg== +"@commitlint/resolve-extends@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-16.2.1.tgz#2f7833a5a3a7aa79f508e59fcb0f1d33c45ed360" + integrity sha512-NbbCMPKTFf2J805kwfP9EO+vV+XvnaHRcBy6ud5dF35dxMsvdJqke54W3XazXF1ZAxC4a3LBy4i/GNVBAthsEg== dependencies: + "@commitlint/config-validator" "^16.2.1" + "@commitlint/types" "^16.2.1" import-fresh "^3.0.0" lodash "^4.17.19" resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/rules@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-15.0.0.tgz#326370abc004492fcb5543198d1d55b14e25e3c8" - integrity sha512-SqXfp6QUlwBS+0IZm4FEA/NmmAwcFQIkG3B05BtemOVWXQdZ8j1vV6hDwvA9oMPCmUSrrGpHOtZK7HaHhng2yA== +"@commitlint/rules@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-16.2.1.tgz#7264aa1c754e1c212aeceb27e5eb380cfa7bb233" + integrity sha512-ZFezJXQaBBso+BOTre/+1dGCuCzlWVaeLiVRGypI53qVgPMzQqZhkCcrxBFeqB87qeyzr4A4EoG++IvITwwpIw== dependencies: - "@commitlint/ensure" "^15.0.0" - "@commitlint/message" "^15.0.0" - "@commitlint/to-lines" "^15.0.0" - "@commitlint/types" "^15.0.0" + "@commitlint/ensure" "^16.2.1" + "@commitlint/message" "^16.2.1" + "@commitlint/to-lines" "^16.2.1" + "@commitlint/types" "^16.2.1" execa "^5.0.0" -"@commitlint/to-lines@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-15.0.0.tgz#b86ac98f319688990ecc2e09227fadf591b65c92" - integrity sha512-mY3MNA9ujPqVpiJjTYG9MDsYCobue5PJFO0MfcIzS1mCVvngH8ZFTPAh1fT5t+t1h876boS88+9WgqjRvbYItw== +"@commitlint/to-lines@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-16.2.1.tgz#42d000f34dc0406f514991e86237fdab5e8affd0" + integrity sha512-9/VjpYj5j1QeY3eiog1zQWY6axsdWAc0AonUUfyZ7B0MVcRI0R56YsHAfzF6uK/g/WwPZaoe4Lb1QCyDVnpVaQ== -"@commitlint/top-level@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-15.0.0.tgz#467ec8377e81dfc916e1a20a27558862be1a4254" - integrity sha512-7Gz3t7xcuuUw1d1Nou6YLaztzp2Em+qZ6YdCzrqYc+aquca3Vt0O696nuiBDU/oE+tls4Hx2CNpAbWhTgEwB5A== +"@commitlint/top-level@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-16.2.1.tgz#bdaa53ab3d8970e0288879f1a342a8c2dfe01583" + integrity sha512-lS6GSieHW9y6ePL73ied71Z9bOKyK+Ib9hTkRsB8oZFAyQZcyRwq2w6nIa6Fngir1QW51oKzzaXfJL94qwImyw== dependencies: find-up "^5.0.0" -"@commitlint/types@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-15.0.0.tgz#46fa7bda3e6340caf3e3a2e415bcb78ff0195eed" - integrity sha512-OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw== +"@commitlint/types@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-16.2.1.tgz#f25d373b88b01e51fc3fa44488101361945a61bd" + integrity sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA== dependencies: chalk "^4.0.0" -"@endemolshinegroup/cosmiconfig-typescript-loader@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d" - integrity sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA== +"@cspotcode/source-map-consumer@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" + integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== + +"@cspotcode/source-map-support@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" + integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== dependencies: - lodash.get "^4" - make-error "^1" - ts-node "^9" - tslib "^2" + "@cspotcode/source-map-consumer" "0.8.0" -"@eslint/eslintrc@^1.0.4", "@eslint/eslintrc@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" - integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== +"@eslint/eslintrc@^1.0.4", "@eslint/eslintrc@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.2.tgz#4989b9e8c0216747ee7cca314ae73791bb281aae" + integrity sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.2.0" + espree "^9.3.1" globals "^13.9.0" - ignore "^4.0.6" + ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.0.4" @@ -1110,9 +1124,9 @@ through2 "^2.0.5" "@humanwhocodes/config-array@^0.9.2": - version "0.9.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" - integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== + version "0.9.5" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" + integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1139,11 +1153,34 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz#4ac237f4dabc8dd93330386907b97591801f7352" + integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.4": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@mdn/browser-compat-data@^3.3.14": version "3.3.14" resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz#b72a37c654e598f9ae6f8335faaee182bebc6b28" integrity sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA== +"@mdn/browser-compat-data@^4.1.5": + version "4.1.18" + resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-4.1.18.tgz#eb960654aec3ebb6f39a9469845659a8c1d50b3a" + integrity sha512-Ap8MOYbyvEilK1+sNY6yh6LmsHSp7f5zzSGlY4AemhbTcoultcozEXPzx42OO6WjoriOsw88aW8TiqgYdXwsxg== + "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" @@ -1175,10 +1212,30 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@types/concat-stream@^1.0.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" - integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== +"@tsconfig/node10@^1.0.7": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" + integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + +"@tsconfig/node12@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" + integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + +"@tsconfig/node14@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" + integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + +"@tsconfig/node16@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" + integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + +"@types/concat-stream@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-2.0.0.tgz#a716f0ba9015014e643addb351da05a73bef425c" + integrity sha512-t3YCerNM7NTVjLuICZo5gYAXYoDvpuuTceCcFQWcDQz26kxUR5uIWolxbIR5jRNIXpMqhOpW/b8imCR1LEmuJw== dependencies: "@types/node" "*" @@ -1198,9 +1255,9 @@ "@types/json-schema" "*" "@types/estree@*": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== "@types/is-empty@^1.0.0": version "1.2.1" @@ -1213,9 +1270,9 @@ integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== "@types/json-schema@*", "@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/json5@^0.0.29": version "0.0.29" @@ -1239,10 +1296,10 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*", "@types/node@^17.0.0": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.8.tgz#50d680c8a8a78fe30abe6906453b21ad8ab0ad7b" - integrity sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg== +"@types/node@*", "@types/node@>=12", "@types/node@^17.0.0": + version "17.0.29" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.29.tgz#7f2e1159231d4a077bb660edab0fde373e375a3d" + integrity sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -1269,14 +1326,14 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== -"@typescript-eslint/eslint-plugin@^5.4.0": - version "5.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.0.tgz#382182d5cb062f52aac54434cfc47c28898c8006" - integrity sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ== +"@typescript-eslint/eslint-plugin@*": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz#bfc22e0191e6404ab1192973b3b4ea0461c1e878" + integrity sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg== dependencies: - "@typescript-eslint/experimental-utils" "5.9.0" - "@typescript-eslint/scope-manager" "5.9.0" - "@typescript-eslint/type-utils" "5.9.0" + "@typescript-eslint/scope-manager" "5.21.0" + "@typescript-eslint/type-utils" "5.21.0" + "@typescript-eslint/utils" "5.21.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -1284,69 +1341,69 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@5.9.0": - version "5.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.0.tgz#652762d37d6565ef07af285021b8347b6c79a827" - integrity sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.9.0" - "@typescript-eslint/types" "5.9.0" - "@typescript-eslint/typescript-estree" "5.9.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/parser@^5.4.0": - version "5.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.9.0.tgz#fdbb08767a4caa6ca6ccfed5f9ffe9387f0c7d97" - integrity sha512-/6pOPz8yAxEt4PLzgbFRDpZmHnXCeZgPDrh/1DaVKOjvn/UPMlWhbx/gA96xRi2JxY1kBl2AmwVbyROUqys5xQ== +"@typescript-eslint/parser@*": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.21.0.tgz#6cb72673dbf3e1905b9c432175a3c86cdaf2071f" + integrity sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg== dependencies: - "@typescript-eslint/scope-manager" "5.9.0" - "@typescript-eslint/types" "5.9.0" - "@typescript-eslint/typescript-estree" "5.9.0" + "@typescript-eslint/scope-manager" "5.21.0" + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/typescript-estree" "5.21.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.9.0": - version "5.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz#02dfef920290c1dcd7b1999455a3eaae7a1a3117" - integrity sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg== +"@typescript-eslint/scope-manager@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz#a4b7ed1618f09f95e3d17d1c0ff7a341dac7862e" + integrity sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ== dependencies: - "@typescript-eslint/types" "5.9.0" - "@typescript-eslint/visitor-keys" "5.9.0" + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/visitor-keys" "5.21.0" -"@typescript-eslint/type-utils@5.9.0": - version "5.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.9.0.tgz#fd5963ead04bc9b7af9c3a8e534d8d39f1ce5f93" - integrity sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ== +"@typescript-eslint/type-utils@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz#ff89668786ad596d904c21b215e5285da1b6262e" + integrity sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw== dependencies: - "@typescript-eslint/experimental-utils" "5.9.0" + "@typescript-eslint/utils" "5.21.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.9.0": - version "5.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" - integrity sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg== +"@typescript-eslint/types@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.21.0.tgz#8cdb9253c0dfce3f2ab655b9d36c03f72e684017" + integrity sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA== -"@typescript-eslint/typescript-estree@5.9.0": - version "5.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz#0e5c6f03f982931abbfbc3c1b9df5fbf92a3490f" - integrity sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw== +"@typescript-eslint/typescript-estree@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz#9f0c233e28be2540eaed3df050f0d54fb5aa52de" + integrity sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg== dependencies: - "@typescript-eslint/types" "5.9.0" - "@typescript-eslint/visitor-keys" "5.9.0" + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/visitor-keys" "5.21.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@5.9.0": - version "5.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz#7585677732365e9d27f1878150fab3922784a1a6" - integrity sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw== +"@typescript-eslint/utils@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.21.0.tgz#51d7886a6f0575e23706e5548c7e87bce42d7c18" + integrity sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q== + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.21.0" + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/typescript-estree" "5.21.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/visitor-keys@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz#453fb3662409abaf2f8b1f65d515699c888dd8ae" + integrity sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA== dependencies: - "@typescript-eslint/types" "5.9.0" + "@typescript-eslint/types" "5.21.0" eslint-visitor-keys "^3.0.0" Base64@^1.1.0: @@ -1385,13 +1442,13 @@ accepts@~1.2.9: mime-types "~2.1.6" negotiator "0.5.3" -accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + mime-types "~2.1.34" + negotiator "0.6.3" acorn-jsx@^5.3.1: version "5.3.2" @@ -1421,6 +1478,11 @@ acorn-walk@^7.0.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + acorn@^5.1.0, acorn@^5.2.1: version "5.7.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" @@ -1431,10 +1493,10 @@ acorn@^7.0.0, acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +acorn@^8.4.1, acorn@^8.7.0: + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== adm-zip@~0.4.3: version "0.4.16" @@ -1456,7 +1518,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.12.4: +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1484,11 +1546,6 @@ ansi-colors@3.2.3: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -1502,14 +1559,14 @@ ansi-regex@^2.0.0: integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== ansi-regex@^5.0.1: version "5.0.1" @@ -1738,13 +1795,14 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" + integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.19.0" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" arrify@^1.0.1: version "1.0.1" @@ -1873,28 +1931,28 @@ babel-plugin-dynamic-import-node@^2.3.3: object.assign "^4.1.0" babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" - integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.0" + "@babel/helper-define-polyfill-provider" "^0.3.1" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" - integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - core-js-compat "^3.18.0" + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.21.0" babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" - integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" + "@babel/helper-define-polyfill-provider" "^0.3.1" babelify@^10.0.0: version "10.0.0" @@ -1978,21 +2036,23 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== -body-parser@1.19.1, body-parser@^1.19.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" - integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== +body-parser@1.20.0, body-parser@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== dependencies: - bytes "3.1.1" + bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.6" - raw-body "2.4.2" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" type-is "~1.6.18" + unpipe "1.0.0" body-parser@~1.12.3: version "1.12.4" @@ -2049,7 +2109,7 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@~3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -2364,15 +2424,15 @@ browserify@^17.0.0: vm-browserify "^1.0.0" xtend "^4.0.0" -browserslist@^4.16.8, browserslist@^4.17.5, browserslist@^4.19.1: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== +browserslist@^4.16.8, browserslist@^4.17.5, browserslist@^4.20.2: + version "4.20.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" + integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" + caniuse-lite "^1.0.30001332" + electron-to-chromium "^1.4.118" escalade "^3.1.1" - node-releases "^2.0.1" + node-releases "^2.0.3" picocolors "^1.0.0" buffer-crc32@0.2.1: @@ -2423,9 +2483,9 @@ builtin-status-codes@^3.0.0: integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= builtins@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-4.0.0.tgz#a8345420de82068fdc4d6559d0456403a8fb1905" - integrity sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-4.1.0.tgz#1edd016dd91ce771a1ed6fc3b2b71fb918953250" + integrity sha512-1bPRZQtmKaO6h7qV1YHXNtr6nCK28k0Zo95KM4dXfILcZZwoHJBN1m3lfLv9LPkcOZlrSr+J1bzMaZFO98Yq0w== dependencies: semver "^7.0.0" @@ -2464,10 +2524,10 @@ bytes@2.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.1.0.tgz#ac93c410e2ffc9cc7cf4b464b38289067f5e47b4" integrity sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q= -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cache-base@^1.0.1: version "1.0.1" @@ -2485,9 +2545,9 @@ cache-base@^1.0.1: unset-value "^1.0.0" cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" - integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" + integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== caching-transform@^4.0.0: version "4.0.0" @@ -2531,11 +2591,11 @@ camelcase-keys@^6.2.2: quick-lru "^4.0.1" camelcase-keys@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.1.tgz#5a57e6dfb3f6c7929dad15599ee4476a7e9a3b2d" - integrity sha512-P331lEls98pW8JLyodNWfzuz91BEDVA4VpW2/SwXnyv2K495tq1N777xzDbFgnEigfA7UIY0xa6PwR/H9jijjA== + version "7.0.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" + integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== dependencies: - camelcase "^6.2.0" + camelcase "^6.3.0" map-obj "^4.1.0" quick-lru "^5.1.1" type-fest "^1.2.1" @@ -2545,15 +2605,15 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@^6.0.0, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001267, caniuse-lite@^1.0.30001286: - version "1.0.30001296" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001296.tgz#d99f0f3bee66544800b93d261c4be55a35f1cec8" - integrity sha512-WfrtPEoNSoeATDlf4y3QvkwiELl9GyPLISV5GejTbbQRtQx4LhsXmc9IQ6XCL2d7UxCyEzToEZNMeqR79OUw8Q== +caniuse-lite@^1.0.30001304, caniuse-lite@^1.0.30001332: + version "1.0.30001332" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" + integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== caseless@~0.6.0: version "0.6.0" @@ -2645,9 +2705,9 @@ chokidar@^1.0.0: fsevents "^1.0.0" chokidar@^3.0.0, chokidar@^3.4.0: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -3081,6 +3141,11 @@ cookie@0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + cookiejar@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-1.3.0.tgz#dd00b35679021e99cbd4e855b9ad041913474765" @@ -3096,25 +3161,33 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.18.0, core-js-compat@^3.19.1: - version "3.20.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.2.tgz#d1ff6936c7330959b46b2e08b122a8b14e26140b" - integrity sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg== +core-js-compat@^3.20.2, core-js-compat@^3.21.0: + version "3.22.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.2.tgz#eec621eb276518efcf718d0a6d9d042c3d0cad48" + integrity sha512-Fns9lU06ZJ07pdfmPMu7OnkIKGPKDzXKIiuGlSvHHapwqMUF2QnnsWwtueFZtSyZEilP0o6iUeHQwpn7LxtLUw== dependencies: - browserslist "^4.19.1" + browserslist "^4.20.2" semver "7.0.0" core-js@^3.16.2: - version "3.20.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.2.tgz#46468d8601eafc8b266bd2dd6bf9dee622779581" - integrity sha512-nuqhq11DcOAbFBV4zCbKeGbKQsUDRqTX0oqx7AttUBuqe3h20ixsE039QHelbL6P4h+9kytVqyEtyZ6gsiwEYw== + version "3.22.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.2.tgz#3ea0a245b0895fa39d1faa15fe75d91ade504a01" + integrity sha512-Z5I2vzDnEIqO2YhELVMFcL1An2CIsFe9Q7byZhs8c/QxummxZlAHw33TUHbIte987LkisOgL0LwQ1P9D6VISnA== core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: +cosmiconfig-typescript-loader@^1.0.0: + version "1.0.9" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.9.tgz#69c523f7e8c3d9f27f563d02bbeadaf2f27212d3" + integrity sha512-tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g== + dependencies: + cosmiconfig "^7" + ts-node "^10.7.0" + +cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== @@ -3242,10 +3315,10 @@ dash-ast@^2.0.1: resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-2.0.1.tgz#8d0fd2e601c59bf874cc22877ee7dd889f54dee8" integrity sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ== -debug@*, debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== +debug@*, debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" @@ -3369,11 +3442,12 @@ define-lazy-prop@^3.0.0: integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - object-keys "^1.0.12" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" define-property@^0.2.5: version "0.2.5" @@ -3412,21 +3486,16 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +depd@2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.0.1.tgz#80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa" integrity sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo= -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -depd@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - deps-sort@^2.0.0, deps-sort@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" @@ -3450,10 +3519,10 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-indent@^6.0.0: version "6.1.0" @@ -3582,6 +3651,11 @@ duplexify@^4.1.1: readable-stream "^3.1.1" stream-shift "^1.0.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.0.tgz#6a0d7c6221e490feefd92ec3f441c9ce8cd097f4" @@ -3592,10 +3666,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.4.17: - version "1.4.37" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.37.tgz#eedd53cad229ae2d1632b958a92a3d7d7b27f553" - integrity sha512-XIvFB1omSAxYgHYX48sC+HR8i/p7lx7R+0cX9faElg1g++h9IilCrJ12+bQuY+d96Wp7zkBiJwMOv+AhLtLrTg== +electron-to-chromium@^1.4.118: + version "1.4.122" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz#56e518e8c4433876b01d4460eac0f653841ed510" + integrity sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw== elliptic@^6.5.3: version "6.5.4" @@ -3658,17 +3732,10 @@ enhanced-resolve@^0.9.1: memory-fs "^0.2.0" tapable "^0.1.8" -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - env-editor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/env-editor/-/env-editor-1.0.0.tgz#a7de585a96f0198d9ba20a786c17a691c53afaab" - integrity sha512-SRy6e7u1tZgohoxL952q9+kbRkkUrzi63dB7J4zr6wOSMQrCD0KJUNhMZajGTNQfdY68PaStfmIzh7To/FKilQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/env-editor/-/env-editor-1.1.0.tgz#bd510b6cb1528a64b17273aaeba272c050e786e9" + integrity sha512-7AXskzN6T7Q9TFcKAGJprUbpQa4i1VsAetO9rdBqbGMGlragTziBgWt4pVYJMBWHQlLoX0buy6WFikzPH4Qjpw== error-ex@^1.3.1, error-ex@^1.3.2: version "1.3.2" @@ -3684,10 +3751,10 @@ error-stack-parser@^1.3.6: dependencies: stackframe "^0.3.1" -es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== +es-abstract@^1.18.5, es-abstract@^1.19.1, es-abstract@^1.19.2: + version "1.19.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" + integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -3695,21 +3762,28 @@ es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1: get-intrinsic "^1.1.1" get-symbol-description "^1.0.0" has "^1.0.3" - has-symbols "^1.0.2" + has-symbols "^1.0.3" internal-slot "^1.0.3" is-callable "^1.2.4" - is-negative-zero "^2.0.1" + is-negative-zero "^2.0.2" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" + is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" + is-weakref "^1.0.2" + object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -3720,20 +3794,20 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + version "0.10.61" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.61.tgz#311de37949ef86b6b0dcea894d1ffedb909d3269" + integrity sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA== dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" es6-error@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: +es6-iterator@^2.0.3, es6-iterator@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= @@ -3773,7 +3847,7 @@ es6-symbol@3.1.1: d "1" es5-ext "~0.10.14" -es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: +es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== @@ -3857,19 +3931,19 @@ escope@^3.6.0: estraverse "^4.1.1" eslint-config-prettier@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" - integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== eslint-config-xo-lass@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/eslint-config-xo-lass/-/eslint-config-xo-lass-1.0.6.tgz#6c27c2b694aea2e3ebc49ab50b4699ce747a5a5b" integrity sha512-C/oftF0mIBWuuj9tiy41qS1EmpXryEu9oVmoujNOnC31Ouyhvj8rQ4RgRn7QMBGs0vSbShq9TAZyLb3rPh2Ozw== -eslint-config-xo-typescript@^0.47.1: - version "0.47.1" - resolved "https://registry.yarnpkg.com/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.47.1.tgz#87b5865d8a3428fa26cc8dc3146ef4f712dfed46" - integrity sha512-BkbzIltZCWp8QLekKJKG8zJ/ZGezD8Z9FaJ+hJ5PrAVUGkIPmxXLLEHCKS3ax7oOqZLYQiG+jyKfQDIEdTQgbg== +eslint-config-xo-typescript@*: + version "0.50.0" + resolved "https://registry.yarnpkg.com/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.50.0.tgz#59a0a704fbd667592ca3ddcc599b9f8c855e4ebe" + integrity sha512-Ru2tXB8y2w9fFHLm4v2AVfY6P81UbfEuDZuxEpeXlfV65Ezlk0xO4nBaT899ojIFkWfr60rP9Ye4CdVUUT1UYg== eslint-config-xo@^0.39.0: version "0.39.0" @@ -3917,18 +3991,18 @@ eslint-import-resolver-webpack@^0.13.2: resolve "^1.20.0" semver "^5.7.1" -eslint-module-utils@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129" - integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg== +eslint-module-utils@^2.7.3: + version "2.7.3" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== dependencies: debug "^3.2.7" find-up "^2.1.0" eslint-plugin-ava@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-ava/-/eslint-plugin-ava-13.1.0.tgz#c53463e1ce46edd87501fc5329fa1db287b989af" - integrity sha512-Bdwyqv4Xh+4ekqbk601HcZNcx8+9ClNGz5GdbC2hv977jUPHQPDMx2arTD3zi1EeyOnOG2Kx22Ow3wecbPCRjQ== + version "13.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-ava/-/eslint-plugin-ava-13.2.0.tgz#a8e88fe62a259e11e0744d74aaff83f8ec4dbbe0" + integrity sha512-i5B5izsEdERKQLruk1nIWzTTE7C26/ju8qQf7JeyRv32XT2lRMW0zMFZNhIrEf5/5VvpSz2rqrV7UcjClGbKsw== dependencies: enhance-visitors "^1.0.0" eslint-utils "^3.0.0" @@ -3939,15 +4013,15 @@ eslint-plugin-ava@^13.1.0: pkg-dir "^5.0.0" resolve-from "^5.0.0" -eslint-plugin-compat@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-4.0.1.tgz#54e1b5095a7c3ef45701556fce1923d615c76445" - integrity sha512-vs4oa+WQcCRH7lD/0H8eh90tnSQurV3Cebt32x28JlP0Kn9UkQT+N8Pm939KavTO3/DiFPQyTPCNdYXcIWP/GA== +eslint-plugin-compat@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz#b058627a7d25d352adf0ec16dca8fcf92d9c7af7" + integrity sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg== dependencies: - "@mdn/browser-compat-data" "^3.3.14" + "@mdn/browser-compat-data" "^4.1.5" ast-metadata-inferer "^0.7.0" browserslist "^4.16.8" - caniuse-lite "^1.0.30001267" + caniuse-lite "^1.0.30001304" core-js "^3.16.2" find-up "^5.0.0" lodash.memoize "4.1.2" @@ -3970,23 +4044,23 @@ eslint-plugin-eslint-comments@^3.2.0: ignore "^5.0.5" eslint-plugin-import@^2.25.3: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== dependencies: array-includes "^3.1.4" array.prototype.flat "^1.2.5" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" + eslint-module-utils "^2.7.3" has "^1.0.3" - is-core-module "^2.8.0" + is-core-module "^2.8.1" is-glob "^4.0.3" - minimatch "^3.0.4" + minimatch "^3.1.2" object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" eslint-plugin-no-use-extend-native@^0.5.0: version "0.5.0" @@ -4051,10 +4125,10 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" - integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -4094,29 +4168,28 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^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.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" - integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.3.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.6.0.tgz#4318c6a31c5584838c1a2e940c478190f58d558e" - integrity sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw== +eslint@^8.14.0, eslint@^8.3.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.14.0.tgz#62741f159d9eb4a79695b28ec4989fcdec623239" + integrity sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw== dependencies: - "@eslint/eslintrc" "^1.0.5" + "@eslint/eslintrc" "^1.2.2" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.0" + eslint-scope "^7.1.1" eslint-utils "^3.0.0" - eslint-visitor-keys "^3.1.0" - espree "^9.3.0" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -4124,7 +4197,7 @@ eslint@^8.3.0: functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" globals "^13.6.0" - ignore "^4.0.6" + ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" @@ -4135,27 +4208,25 @@ eslint@^8.3.0: minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" - progress "^2.0.0" regexpp "^3.2.0" - semver "^7.2.1" strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" v8-compile-cache "^2.0.3" esm-utils@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/esm-utils/-/esm-utils-2.0.1.tgz#233b691b5542cafdc3a6f4b24bd4af083ea21bd0" - integrity sha512-eoz4dzSzykeh9mfRlCDTkNezD2zlPdFftiTH/5OZpE08hGpUPljh5rHDZqucIhX1Wl4cO6FDUUBp3tobvV7dWA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/esm-utils/-/esm-utils-2.2.0.tgz#c950c0f3ea191f3830f0187f246b0cf2620c1e66" + integrity sha512-kYj4yNRo4W3by0f1mj4AfRh1nsRTTpQG921Ik3AfyUq6upGlkI1fnMLypHn6XtFzZPdCYH1k9mtQA5MyZF9m+w== -espree@^9.0.0, espree@^9.2.0, espree@^9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" - integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== +espree@^9.0.0, espree@^9.3.1: + version "9.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" + integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== dependencies: acorn "^8.7.0" acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.1.0" + eslint-visitor-keys "^3.3.0" esprima@1.2.x, esprima@^1.2.0: version "1.2.5" @@ -4363,38 +4434,39 @@ express@3.4.8: range-parser "0.0.4" send "0.1.4" -express@4.x, express@^4.17.1: - version "4.17.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" - integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== +express@4.x, express@^4.18.0: + version "4.18.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2" + integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg== dependencies: - accepts "~1.3.7" + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.1" + body-parser "1.20.0" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.1" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.6" + qs "6.10.3" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" + send "0.18.0" + serve-static "1.15.0" setprototypeof "1.2.0" - statuses "~1.5.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -4472,10 +4544,10 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.1.1, fast-glob@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== +fast-glob@^3.2.7, fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4590,17 +4662,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" find-cache-dir@^3.2.0, find-cache-dir@^3.3.2: @@ -4653,11 +4725,11 @@ find-up@^5.0.0: path-exists "^4.0.0" find-up@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.2.0.tgz#f3b81d633fa83bebe64f83a8bab357f86d5914be" - integrity sha512-yWHzMzXCaFoABSnFTCPKNFlYoq4mSga9QLRRKOCLSJ33hSkzROB14ITbAWW0QDQDyuzsPQ33S1DsOWQb/oW1yA== + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== dependencies: - locate-path "^7.0.0" + locate-path "^7.1.0" path-exists "^5.0.0" findup-sync@~0.1.2: @@ -4710,9 +4782,9 @@ flat@^4.1.0: is-buffer "~2.0.3" flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" @@ -4846,9 +4918,9 @@ fromentries@^1.2.0: integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -4897,6 +4969,11 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -5080,33 +5157,33 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" - integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== + version "13.13.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" + integrity sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A== dependencies: type-fest "^0.20.2" globby@^11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" slash "^3.0.0" globby@^12.0.2: - version "12.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-12.0.2.tgz#53788b2adf235602ed4cabfea5c70a1139e1ab11" - integrity sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ== + version "12.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-12.2.0.tgz#2ab8046b4fba4ff6eede835b29f678f90e3d3c22" + integrity sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA== dependencies: array-union "^3.0.1" dir-glob "^3.0.1" fast-glob "^3.2.7" - ignore "^5.1.8" + ignore "^5.1.9" merge2 "^1.4.1" slash "^4.0.0" @@ -5128,9 +5205,9 @@ graceful-fs@^3.0.2: natives "^1.1.3" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== growl@1.10.5: version "1.10.5" @@ -5178,10 +5255,10 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^1.0.0: version "1.0.0" @@ -5198,10 +5275,17 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" @@ -5342,15 +5426,15 @@ htmlescape@^1.1.0: resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" + depd "2.0.0" inherits "2.0.4" setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" + statuses "2.0.1" toidentifier "1.0.1" http-proxy-agent@^4.0.0: @@ -5390,9 +5474,9 @@ https-browserify@~0.0.0: integrity sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI= https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" debug "4" @@ -5441,12 +5525,7 @@ ignore-walk@3.0.4: dependencies: minimatch "^3.0.4" -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.0.0, ignore@^5.0.5, ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: +ignore@^5.0.0, ignore@^5.0.5, ignore@^5.1.1, ignore@^5.1.8, ignore@^5.1.9, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -5665,10 +5744,10 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.5.0, is-core-module@^2.7.0, is-core-module@^2.8.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== +is-core-module@^2.5.0, is-core-module@^2.7.0, is-core-module@^2.8.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" @@ -5821,15 +5900,15 @@ is-negated-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= -is-negative-zero@^2.0.1: +is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" @@ -5925,10 +6004,12 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" is-stream@^2.0.0: version "2.0.1" @@ -5989,7 +6070,7 @@ is-url@^1.2.2: resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== -is-weakref@^1.0.1: +is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== @@ -6109,9 +6190,9 @@ istanbul-middleware@0.2.2: istanbul "0.4.x" istanbul-reports@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2" - integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== + version "3.1.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" + integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -6231,12 +6312,10 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.0.0, json5@^2.1.2, json5@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" +json5@^2.0.0, json5@^2.2.0, json5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== jsonfile@^6.0.1: version "6.1.0" @@ -6358,10 +6437,10 @@ lines-and-columns@^2.0.2: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b" integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== -lint-staged@^12.1.2: - version "12.1.5" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.1.5.tgz#e05582fc39aed5cb13b9dd1dfb8330407246d809" - integrity sha512-WyKb+0sNKDTd1LwwAfTBPp0XmdaKkAOEbg4oHE4Kq2+oQVchg/VAcjVQtSqZih1izNsTURjc2EkhG/syRQUXdA== +lint-staged@^12.4.1: + version "12.4.1" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.4.1.tgz#63fa27bfc8a33515f6902f63f6670864f1fb233c" + integrity sha512-PTXgzpflrQ+pODQTG116QNB+Q6uUTDg5B5HqGvNhoQSGt8Qy+MA/6zSnR8n38+sxP5TapzeQGTvoKni0KRS8Vg== dependencies: cli-truncate "^3.1.0" colorette "^2.0.16" @@ -6369,25 +6448,26 @@ lint-staged@^12.1.2: debug "^4.3.3" execa "^5.1.1" lilconfig "2.0.4" - listr2 "^3.13.5" + listr2 "^4.0.1" micromatch "^4.0.4" normalize-path "^3.0.0" - object-inspect "^1.11.1" + object-inspect "^1.12.0" + pidtree "^0.5.0" string-argv "^0.3.1" supports-color "^9.2.1" yaml "^1.10.2" -listr2@^3.13.5: - version "3.14.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" - integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== +listr2@^4.0.1: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== dependencies: cli-truncate "^2.1.0" colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.1" + rxjs "^7.5.5" through "^2.3.8" wrap-ansi "^7.0.0" @@ -6443,10 +6523,10 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -locate-path@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.0.0.tgz#f0a60c8dd7ef0f737699eb9461b9567a92bc97da" - integrity sha512-+cg2yXqDUKfo4hsFxwa3G1cBJeA+gs1vD8FyV9/odWoUlQe/4syxHQ5DPtKjtfm6gnKbZzjCqzX03kXosvZB1w== +locate-path@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.1.0.tgz#241d62af60739f6097c055efe10329c88b798425" + integrity sha512-HNx5uOnYeK4SxEoid5qnhRfprlJeGMzFRKPLCf/15N3/B4AiofNwC/yq7VBKdVk9dx7m+PiYCJOGg55JYTAqoQ== dependencies: p-locate "^6.0.0" @@ -6490,11 +6570,6 @@ lodash.flattendeep@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= -lodash.get@^4: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - lodash.isobject@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" @@ -6625,7 +6700,7 @@ make-dir@^3.0.0, make-dir@^3.0.2: dependencies: semver "^6.0.0" -make-error@^1, make-error@^1.1.1: +make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -6782,9 +6857,9 @@ mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-mark zwitch "^1.0.0" mdast-util-to-markdown@^1.0.0: - version "1.2.6" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.6.tgz#9d0d1fcb22838e4af83fb04841cbde92525972f3" - integrity sha512-doJZmTEGagHypWvJ8ltinmwUsT9ZaNgNIQW6Gl7jNdsI1QZkTHTimYW561Niy2s8AEPAqEgV0dIh2UOVlSXUJA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz#38b6cdc8dc417de642a469c4fc2abdf8c931bd1e" + integrity sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" @@ -7211,12 +7286,12 @@ micromatch@^3.1.10: to-regex "^3.0.2" micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" miller-rabin@^4.0.0: version "4.0.1" @@ -7226,17 +7301,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.6: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34, mime-types@~2.1.6: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.51.0" + mime-db "1.52.0" mime-types@~1.0.1: version "1.0.2" @@ -7311,7 +7386,14 @@ minimatch@0.x: lru-cache "2" sigmund "~1.0.0" -"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -7360,10 +7442,10 @@ minimist@^0.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.1.tgz#827ba4e7593464e7c221e8c5bed930904ee2c455" integrity sha512-GY8fANSrTMfBVfInqJAY41QkOM+upUTytK1jZ0c8+3HdHrJxBJ3rF5i9moClXTE8uUSnUo8cAsCoxDXvSY4DHg== -minimist@^1.0.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.0.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== mixin-deep@^1.2.0: version "1.3.2" @@ -7391,11 +7473,11 @@ mkdirp@0.5.1: minimist "0.0.8" mkdirp@0.5.x, mkdirp@^0.5.4: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - minimist "^1.2.5" + minimist "^1.2.6" mocha@6.2.2: version "6.2.2" @@ -7503,7 +7585,7 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multer@^1.4.3: +multer@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== @@ -7606,20 +7688,20 @@ negotiator@0.5.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.5.3.tgz#269d5c476810ec92edbe7b6c2f28316384f9a7e8" integrity sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g= -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== nlcst-is-literal@^1.0.0, nlcst-is-literal@^1.1.0: version "1.2.2" @@ -7658,9 +7740,9 @@ node-environment-flags@1.0.5: semver "^5.7.0" node-fetch@^2.6.1: - version "2.6.6" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" - integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA== + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== dependencies: whatwg-url "^5.0.0" @@ -7676,10 +7758,10 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== +node-releases@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" + integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== node-uuid@~1.4.0, node-uuid@~1.4.1: version "1.4.8" @@ -7776,9 +7858,9 @@ oauth-sign@~0.4.0: integrity sha1-8ilW8x6nFRqCHl8vsywRPK2Ln2k= obj-props@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/obj-props/-/obj-props-1.3.0.tgz#8884ab21c8d8496c4a7f696c78bf82289c51680b" - integrity sha512-k2Xkjx5wn6eC3537SWAXHzB6lkI81kS+icMKMkh4nG3w7shWG6MaWOBrNvhWVOszrtL5uxdfymQQfPUxwY+2eg== + version "1.4.0" + resolved "https://registry.yarnpkg.com/obj-props/-/obj-props-1.4.0.tgz#9a9beebb6faf8b287ff7dc1cd133a4247dc85641" + integrity sha512-p7p/7ltzPDiBs6DqxOrIbtRdwxxVRBj5ROukeNb9RgA+fawhrz5n2hpNz8DDmYR//tviJSj7nUnlppGmONkjiQ== object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -7794,7 +7876,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.11.0, object-inspect@^1.11.1, object-inspect@^1.9.0: +object-inspect@^1.12.0, object-inspect@^1.9.0: version "1.12.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== @@ -7807,7 +7889,7 @@ object-is@^1.0.1: call-bind "^1.0.2" define-properties "^1.1.3" -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: +object-keys@^1.0.11, object-keys@^1.0.6, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -7877,10 +7959,10 @@ object.values@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" -on-finished@^2.3.0, on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +on-finished@2.4.1, on-finished@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" @@ -8280,11 +8362,16 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" + integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== + pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -8344,9 +8431,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" - integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== + version "2.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" + integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== pretty-hrtime@^1.0.2: version "1.0.3" @@ -8375,11 +8462,6 @@ process@~0.11.0: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - proto-props@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/proto-props/-/proto-props-2.0.0.tgz#8ac6e6dec658545815c623a3bc81580deda9a181" @@ -8450,23 +8532,18 @@ qs@2.4.2: resolved "https://registry.yarnpkg.com/qs/-/qs-2.4.2.tgz#f7ce788e5777df0b5010da7f7c4e73ba32470f5a" integrity sha1-9854jld33wtQENp/fE5zujJHD1o= +qs@6.10.3, qs@^6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + qs@6.9.3: version "6.9.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== -qs@6.9.6: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== - -qs@^6.10.1: - version "6.10.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz#c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe" - integrity sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw== - dependencies: - side-channel "^1.0.4" - qs@~1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88" @@ -8553,13 +8630,13 @@ raw-body@1.1.2: dependencies: bytes "~0.2.1" -raw-body@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: - bytes "3.1.1" - http-errors "1.8.1" + bytes "3.1.2" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" @@ -8717,10 +8794,10 @@ reduce-component@1.0.1: resolved "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz#e0c93542c574521bea13df0f9488ed82ab77c5da" integrity sha1-4Mk1QsV0UhvqE98PlIjtgqt3xdo= -regenerate-unicode-properties@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" - integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: regenerate "^1.4.2" @@ -8734,10 +8811,10 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== +regenerator-transform@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== dependencies: "@babel/runtime" "^7.8.4" @@ -8762,39 +8839,40 @@ regexp-tree@^0.1.23, regexp-tree@~0.1.1: integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" + functions-have-names "^1.2.2" regexpp@^3.0.0, regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^4.7.1: - version "4.8.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" - integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^9.0.0" - regjsgen "^0.5.2" - regjsparser "^0.7.0" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -regjsgen@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== -regjsparser@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" - integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" @@ -9553,12 +9631,12 @@ resolve@1.1.7, resolve@1.1.x: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.3, resolve@^1.1.4, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.4.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" - integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== +resolve@^1.1.3, resolve@^1.1.4, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.4.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.8.0" + is-core-module "^2.8.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -9709,10 +9787,10 @@ runnel@~0.5.0: resolved "https://registry.yarnpkg.com/runnel/-/runnel-0.5.3.tgz#f9362b165a05fc6f5e46e458f77a1f7ecdc0daec" integrity sha1-+TYrFloF/G9eRuRY93offs3A2uw= -rxjs@^7.5.1: - version "7.5.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.1.tgz#af73df343cbcab37628197f43ea0c8256f54b157" - integrity sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ== +rxjs@^7.5.5: + version "7.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" + integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== dependencies: tslib "^2.1.0" @@ -9780,7 +9858,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.5, semver@^7.0.0, semver@^7.2.1, semver@^7.3.4, semver@^7.3.5: +semver@7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -9792,6 +9870,13 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.0.0, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + send@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/send/-/send-0.1.4.tgz#be70d8d1be01de61821af13780b50345a4f71abd" @@ -9802,39 +9887,39 @@ send@0.1.4: mime "~1.2.9" range-parser "0.0.4" -send@0.17.2: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "1.8.1" + http-errors "2.0.0" mime "1.6.0" ms "2.1.3" - on-finished "~2.3.0" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" sequence@2.x: version "2.2.1" resolved "https://registry.yarnpkg.com/sequence/-/sequence-2.2.1.tgz#7f5617895d44351c0a047e764467690490a16b03" integrity sha1-f1YXiV1ENRwKBH52RGdpBJChawM= -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.2" + send "0.18.0" set-blocking@^2.0.0: version "2.0.0" @@ -9977,9 +10062,9 @@ sigmund@~1.0.0: integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-concat@^1.0.0: version "1.0.1" @@ -10085,7 +10170,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.17, source-map-support@~0.5.10, source-map-support@~0.5.12: +source-map-support@~0.5.10, source-map-support@~0.5.12: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -10224,9 +10309,9 @@ stackframe@^0.3.1, stackframe@~0.3: integrity sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ= stackframe@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" - integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + version "1.2.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1" + integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg== stacktrace-gps@^2.4.3: version "2.4.4" @@ -10253,10 +10338,10 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== stream-browserify@^2.0.0: version "2.0.2" @@ -10375,12 +10460,12 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: strip-ansi "^6.0.1" string-width@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.0.1.tgz#0d8158335a6cfd8eb95da9b6b262ce314a036ffd" - integrity sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g== + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: + eastasianwidth "^0.2.0" emoji-regex "^9.2.2" - is-fullwidth-code-point "^4.0.0" strip-ansi "^7.0.1" string.prototype.trimend@^1.0.4: @@ -10557,9 +10642,9 @@ supports-color@^7.0.0, supports-color@^7.1.0: has-flag "^4.0.0" supports-color@^9.0.0, supports-color@^9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.1.tgz#599dc9d45acf74c6176e0d880bab1d7d718fe891" - integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ== + version "9.2.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.2.tgz#502acaf82f2b7ee78eb7c83dcac0f89694e5a7bb" + integrity sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA== supports-hyperlinks@^2.0.0: version "2.2.0" @@ -10854,30 +10939,37 @@ trough@^1.0.0: integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== trough@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/trough/-/trough-2.0.2.tgz#94a3aa9d5ce379fc561f6244905b3f36b7458d96" - integrity sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w== - -ts-node@^9: - version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== - dependencies: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + +ts-node@^10.7.0: + version "10.7.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.7.0.tgz#35d503d0fab3e2baa672a0e94f4b40653c2463f5" + integrity sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A== + dependencies: + "@cspotcode/source-map-support" "0.7.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" arg "^4.1.0" create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" - source-map-support "^0.5.17" + v8-compile-cache-lib "^3.0.0" yn "3.1.1" -tsconfig-paths@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" - minimist "^1.2.0" + minimist "^1.2.6" strip-bom "^3.0.0" tslib@^1.8.1: @@ -10885,10 +10977,10 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2, tslib@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== tsutils@^3.21.0: version "3.21.0" @@ -10952,9 +11044,9 @@ type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== type-fest@^2.0.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.9.0.tgz#7a2d430dd966f52b6bc723da2aaa2c9867530551" - integrity sha512-uC0hJKi7eAGXUJ/YKk53RhnKxMwzHWgzf4t92oz8Qez28EBgVTfpDTB59y9hMYLzc/Wl85cD7Tv1hLZZoEJtrg== + version "2.12.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.12.2.tgz#80a53614e6b9b475eb9077472fb7498dc7aa51d0" + integrity sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ== type-is@^1.6.4, type-is@~1.6.18, type-is@~1.6.2: version "1.6.18" @@ -10970,9 +11062,9 @@ type@^1.0.1: integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" - integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== + version "2.6.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" + integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -10987,14 +11079,14 @@ typedarray@^0.0.6, typedarray@~0.0.5: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^4.4.3, typescript@^4.5.2: - version "4.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" - integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== + version "4.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" + integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== uglify-js@^3.1.4: - version "3.14.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.5.tgz#cdabb7d4954231d80cb4a927654c4655e51f4859" - integrity sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ== + version "3.15.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.4.tgz#fa95c257e88f85614915b906204b9623d4fa340d" + integrity sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA== uglify-js@~2.3: version "2.3.6" @@ -11059,13 +11151,13 @@ unassertify@^2.1.1: unassert "^1.3.1" unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" unc-path-regex@^0.1.2: @@ -11136,11 +11228,11 @@ unified-args@^9.0.0: unified-engine "^9.0.0" unified-engine@^9.0.0: - version "9.0.5" - resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-9.0.5.tgz#7e417f2560942793ce41753ad53ee7428aaea40c" - integrity sha512-frQ6lUNlkTwVC0JELJqSSITpE7MLrLJqAWmDrUFj5Do6A4/3n6eX5Jyg8fhe4Dbwwh38spqUJd39FtRFG34QWg== + version "9.1.0" + resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-9.1.0.tgz#8d0f8b2432a57d5f3d36586f9ae9fe186e2a27c5" + integrity sha512-V3UAUsVSAPSNsAdGeYHjtM6FWKIXUt6fPZovbBI5L6WsQIRkRkuFfllquTGCvtu0RckrzdOC7jGaV/tKkokwDw== dependencies: - "@types/concat-stream" "^1.0.0" + "@types/concat-stream" "^2.0.0" "@types/debug" "^4.0.0" "@types/is-empty" "^1.0.0" "@types/js-yaml" "^4.0.0" @@ -11180,9 +11272,9 @@ unified-message-control@^3.0.0: vfile-location "^3.0.0" unified@^10.0.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.1.tgz#345e349e3ab353ab612878338eb9d57b4dea1d46" - integrity sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w== + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== dependencies: "@types/unist" "^2.0.0" bail "^2.0.0" @@ -11273,9 +11365,9 @@ unist-util-stringify-position@^2.0.0: "@types/unist" "^2.0.2" unist-util-stringify-position@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" - integrity sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz#5c6aa07c90b1deffd9153be170dce628a869a447" + integrity sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg== dependencies: "@types/unist" "^2.0.0" @@ -11443,6 +11535,11 @@ uvu@^0.5.0: kleur "^4.0.3" sade "^1.7.3" +v8-compile-cache-lib@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -11492,17 +11589,17 @@ vfile-message@^2.0.0: unist-util-stringify-position "^2.0.0" vfile-message@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.0.tgz#5437035aa43185ff4b9210d32fada6c640e59143" - integrity sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g== + version "3.1.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.2.tgz#a2908f64d9e557315ec9d7ea3a910f658ac05f7d" + integrity sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" vfile-reporter@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-7.0.3.tgz#faa72f6d2d56841b352480c827b53f8417cb1b33" - integrity sha512-q+ruTWxFHbow359TDqoNJn5THdwRDeV+XUOtzdT/OESgaGw05CjL68ImlbzRzqS5xL62Y1IaIWb8x+RbaNjayA== + version "7.0.4" + resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-7.0.4.tgz#f5a91c7420c7b2d6bed6f64719069545d47a22cd" + integrity sha512-4cWalUnLrEnbeUQ+hARG5YZtaHieVK3Jp4iG5HslttkVl+MHunSGNAIrODOTLbtjWsNZJRMCkL66AhvZAYuJ9A== dependencies: "@types/supports-color" "^8.0.0" string-width "^5.0.0" @@ -11536,9 +11633,9 @@ vfile@^4.0.0: vfile-message "^2.0.0" vfile@^5.0.0, vfile@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.2.1.tgz#9278072d576e320917204a3291eec0b346c4ed5d" - integrity sha512-vXW5XKbELM6mLj88kmkJ+gjFGZ/2gTmpdqPDjs3y+qbvI5i7md7rba/+pbYEawa7t22W7ynywPV6lUUAS1WiYg== + version "5.3.2" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.2.tgz#b499fbc50197ea50ad3749e9b60beb16ca5b7c54" + integrity sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -11745,7 +11842,7 @@ xmlbuilder@~11.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== -xo@^0.47.0: +xo@0.47.0: version "0.47.0" resolved "https://registry.yarnpkg.com/xo/-/xo-0.47.0.tgz#6653bb3693c786e3b409e7271e9522bf9ff6c765" integrity sha512-QHRIpaPSG7tK7PX4K4fqe0V4EH1u2IkM7Pr356u1fKcVsZskw7i9gfEqyBLsnnc4e4Y8gnLtIqasLJsGPqM8sA== @@ -11857,9 +11954,9 @@ yargs-parser@^20.2.3, yargs-parser@^20.2.9: integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" - integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== + version "21.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== yargs-unparser@1.6.0: version "1.6.0" @@ -11920,9 +12017,9 @@ yargs@^15.0.2: yargs-parser "^18.1.2" yargs@^17.0.0: - version "17.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9" - integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA== + version "17.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" + integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== dependencies: cliui "^7.0.2" escalade "^3.1.1" From 2c188904f8181ab760496d2849977dddee9900d1 Mon Sep 17 00:00:00 2001 From: titanism <101466223+titanism@users.noreply.github.com> Date: Tue, 26 Apr 2022 18:22:36 -0500 Subject: [PATCH 38/53] chore: fixed linting --- package.json | 11 +- src/client.js | 36 +++--- src/node/index.js | 12 +- src/node/parsers/json.js | 4 +- src/request-base.js | 14 +-- test/basic.js | 8 +- test/client/request.js | 2 +- test/node/multipart.js | 6 +- test/node/pipe.js | 16 +-- test/node/query.js | 4 +- test/node/toError.js | 2 +- test/request.js | 6 +- test/retry.js | 4 +- test/support/express/index.js | 4 +- test/support/express/requestDecorator.js | 2 +- yarn.lock | 148 +++++++++-------------- 16 files changed, 132 insertions(+), 147 deletions(-) diff --git a/package.json b/package.json index 6a5a3b137..3afe5d96f 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "should": "^13.2.3", "should-http": "^0.1.1", "tinyify": "^3.0.0", - "xo": "0.47.0", + "xo": "^0.48.0", "zuul": "^3.12.0" }, "engines": { @@ -223,7 +223,11 @@ { "replacements": { "res": false, - "args": false + "args": false, + "fn": false, + "err": false, + "e": false, + "i": false } } ], @@ -234,7 +238,8 @@ "unicorn/no-this-assignment": "warn", "unicorn/prefer-spread": "warn", "unicorn/catch-error-name": "warn", - "unicorn/prefer-code-point": "warn" + "unicorn/prefer-code-point": "warn", + "node/no-unsupported-features": ["error", {"version": 8, "ignores": ["syntax"]}] }, "globals": [ "ActiveXObject" diff --git a/src/client.js b/src/client.js index 6bcae71ea..57a15436c 100644 --- a/src/client.js +++ b/src/client.js @@ -71,19 +71,27 @@ request.getXHR = () => { try { return new ActiveXObject('Microsoft.XMLHTTP'); - } catch {/**/} + } catch { + /**/ + } try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); - } catch {/**/} + } catch { + /**/ + } try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); - } catch {/**/} + } catch { + /**/ + } try { return new ActiveXObject('Msxml2.XMLHTTP'); - } catch {/**/} + } catch { + /**/ + } throw new Error('Browser-only version of superagent could not find XHR'); }; @@ -436,10 +444,10 @@ function Request(method, url) { try { res = new Response(self); - } catch (error_) { + } catch (err) { error = new Error('Parser is unable to parse the response'); error.parse = true; - error.original = error_; + error.original = err; // issue #675: return the raw response if the response parsing fails if (self.xhr) { // ie9 doesn't have 'response' property @@ -568,15 +576,15 @@ Request.prototype.auth = function (user, pass, options) { }; } - const encoder = - options.encoder || - (string) => { - if (typeof btoa === 'function') { - return btoa(string); - } + const encoder = options.encoder + ? options.encoder + : (string) => { + if (typeof btoa === 'function') { + return btoa(string); + } - throw new Error('Cannot use basic auth, btoa is not a function'); - }; + throw new Error('Cannot use basic auth, btoa is not a function'); + }; return this._auth(user, pass, options, encoder); }; diff --git a/src/node/index.js b/src/node/index.js index 0787f156d..a2d1bd25e 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -799,12 +799,12 @@ Request.prototype.request = function () { } // initiate request - const mod = this._enableHttp2 + const module_ = this._enableHttp2 ? exports.protocols['http2:'].setProtocol(url.protocol) : exports.protocols[url.protocol]; // request - this.req = mod.request(options); + this.req = module_.request(options); const { req } = this; // set tcp no delay @@ -900,8 +900,8 @@ Request.prototype.callback = function (error, res) { error = new Error(message); error.status = res ? res.status : undefined; } - } catch (error_) { - error = error_; + } catch (err) { + error = err; } } @@ -1195,7 +1195,7 @@ Request.prototype._end = function () { let loaded = 0; const progress = new Stream.Transform(); - progress._transform = (chunk, encoding, cb) => { + progress._transform = (chunk, encoding, callback) => { loaded += chunk.length; this.emit('progress', { direction: 'upload', @@ -1203,7 +1203,7 @@ Request.prototype._end = function () { loaded, total }); - cb(null, chunk); + callback(null, chunk); }; return progress; diff --git a/src/node/parsers/json.js b/src/node/parsers/json.js index 8902c72a0..8938b6a2b 100644 --- a/src/node/parsers/json.js +++ b/src/node/parsers/json.js @@ -9,8 +9,8 @@ module.exports = function (res, fn) { let error; try { body = res.text && JSON.parse(res.text); - } catch (error_) { - error = error_; + } catch (err) { + error = err; // issue #675: return the raw response if the response parsing fails error.rawResponse = res.text || null; // issue #876: return the http status code if the response parsing fails diff --git a/src/request-base.js b/src/request-base.js index 6dca906c9..dc564a2d6 100644 --- a/src/request-base.js +++ b/src/request-base.js @@ -199,8 +199,8 @@ RequestBase.prototype._shouldRetry = function (error, res) { if (override === true) return true; if (override === false) return false; // undefined falls back to defaults - } catch (error_) { - console.error(error_); + } catch (err) { + console.error(err); } } @@ -292,8 +292,8 @@ RequestBase.prototype.then = function (resolve, reject) { return this._fullfilledPromise.then(resolve, reject); }; -RequestBase.prototype.catch = function (cb) { - return this.then(undefined, cb); +RequestBase.prototype.catch = function (callback) { + return this.then(undefined, callback); }; /** @@ -305,9 +305,9 @@ RequestBase.prototype.use = function (fn) { return this; }; -RequestBase.prototype.ok = function (cb) { - if (typeof cb !== 'function') throw new Error('Callback required'); - this._okCallback = cb; +RequestBase.prototype.ok = function (callback) { + if (typeof callback !== 'function') throw new Error('Callback required'); + this._okCallback = callback; return this; }; diff --git a/test/basic.js b/test/basic.js index 7c2467514..8babeba8f 100644 --- a/test/basic.js +++ b/test/basic.js @@ -591,8 +591,8 @@ describe('request', function () { request_.end((error, res) => { try { assert(false, 'should not complete the request'); - } catch (error_) { - done(error_); + } catch (err) { + done(err); } }); @@ -625,8 +625,8 @@ describe('request', function () { request_.end((error, res) => { try { assert(false, 'should not complete the request'); - } catch (error_) { - done(error_); + } catch (err) { + done(err); } }); diff --git a/test/client/request.js b/test/client/request.js index 3263bddb7..e6ba25954 100644 --- a/test/client/request.js +++ b/test/client/request.js @@ -55,7 +55,7 @@ describe('request', function () { try { var file = new File([''], 'image.jpg', { type: 'image/jpeg' }); - } catch (err) { + } catch { // Skip if file constructor not supported. return next(); } diff --git a/test/node/multipart.js b/test/node/multipart.js index f319a8def..042d87ca5 100644 --- a/test/node/multipart.js +++ b/test/node/multipart.js @@ -12,10 +12,12 @@ const IS_WINDOWS = require('os').platform() === 'win32'; function read(file) { return fs.readFileSync(file, 'utf8'); } + function getFullPath(filename) { if (!IS_WINDOWS) { return filename; } + const fullPath = path.join(__dirname, '../../', filename); return fullPath.charAt(0).toLowerCase() + fullPath.slice(1); } @@ -188,7 +190,9 @@ describe('Multipart', () => { .end((error, res) => { assert.ok(Boolean(error), 'Request should have failed.'); error.code.should.equal('ENOENT'); - error.path.should.equal(getFullPath('test/node/fixtures/non-existent-file.ext')); + error.path.should.equal( + getFullPath('test/node/fixtures/non-existent-file.ext') + ); done(); }); }); diff --git a/test/node/pipe.js b/test/node/pipe.js index ed261732a..649977a5a 100644 --- a/test/node/pipe.js +++ b/test/node/pipe.js @@ -47,10 +47,10 @@ before(function listen(done) { }); describe('request pipe', () => { - const destPath = 'test/node/fixtures/tmp.json'; + const destinationPath = 'test/node/fixtures/tmp.json'; after(function removeTmpfile(done) { - fs.unlink(destPath, done); + fs.unlink(destinationPath, done); }); it('should act as a writable stream', (done) => { @@ -68,7 +68,7 @@ describe('request pipe', () => { }); it('end() stops piping', (done) => { - const stream = fs.createWriteStream(destPath); + const stream = fs.createWriteStream(destinationPath); request.get(base).end((error, res) => { try { res.pipe(stream); @@ -82,7 +82,7 @@ describe('request pipe', () => { }); it('should act as a readable stream', (done) => { - const stream = fs.createWriteStream(destPath); + const stream = fs.createWriteStream(destinationPath); let responseCalled = false; const request_ = request.get(base); @@ -93,7 +93,7 @@ describe('request pipe', () => { responseCalled = true; }); stream.on('finish', () => { - JSON.parse(fs.readFileSync(destPath, 'utf8')).should.eql({ + JSON.parse(fs.readFileSync(destinationPath)).should.eql({ name: 'tobi' }); responseCalled.should.be.true(); @@ -103,7 +103,7 @@ describe('request pipe', () => { }); it('should follow redirects', (done) => { - const stream = fs.createWriteStream(destPath); + const stream = fs.createWriteStream(destinationPath); let responseCalled = false; const request_ = request.get(base + '/redirect'); @@ -114,7 +114,7 @@ describe('request pipe', () => { responseCalled = true; }); stream.on('finish', () => { - JSON.parse(fs.readFileSync(destPath, 'utf8')).should.eql({ + JSON.parse(fs.readFileSync(destinationPath)).should.eql({ name: 'tobi' }); responseCalled.should.be.true(); @@ -124,7 +124,7 @@ describe('request pipe', () => { }); it('should not throw on bad redirects', (done) => { - const stream = fs.createWriteStream(destPath); + const stream = fs.createWriteStream(destinationPath); let responseCalled = false; let errorCalled = false; diff --git a/test/node/query.js b/test/node/query.js index 72751c204..ec614a35b 100644 --- a/test/node/query.js +++ b/test/node/query.js @@ -200,7 +200,7 @@ describe('req.query(Object)', () => { }); }); - it('query-string should be sent on pipe', function(done) { + it('query-string should be sent on pipe', function (done) { this.timeout(15_000); const request_ = request.put(`${base}/?name=tobi`); const stream = fs.createReadStream('test/node/fixtures/user.json'); @@ -213,7 +213,7 @@ describe('req.query(Object)', () => { done(err); }); - stream.on('error', function(err) { + stream.on('error', function (err) { done(err); }); stream.pipe(request_); diff --git a/test/node/toError.js b/test/node/toError.js index 80c9abaf6..300100fdf 100644 --- a/test/node/toError.js +++ b/test/node/toError.js @@ -27,7 +27,7 @@ before(function listen(done) { describe('res.toError()', () => { it('should return an Error', (done) => { request.get(base).end((err, res) => { - var error = res.toError(); + const error = res.toError(); assert.equal(error.status, 400); assert.equal(error.method, 'GET'); assert.equal(error.path, '/'); diff --git a/test/request.js b/test/request.js index 29f10dffd..ed31e2113 100644 --- a/test/request.js +++ b/test/request.js @@ -958,9 +958,9 @@ describe('request', function () { it('req.toJSON()', (next) => { request.get(`${uri}/ok`).end((error, res) => { try { - const j = (res.request || res.req).toJSON(); - for (const prop of ['url', 'method', 'data', 'headers']) { - assert(j.hasOwnProperty(prop)); + const index = (res.request || res.req).toJSON(); + for (const property of ['url', 'method', 'data', 'headers']) { + assert(index.hasOwnProperty(property)); } next(); diff --git a/test/retry.js b/test/retry.js index 50613b6ef..52c023418 100644 --- a/test/retry.js +++ b/test/retry.js @@ -211,8 +211,8 @@ describe('.retry(count)', function () { request_.end((error, res) => { try { assert(false, 'should not complete the request'); - } catch (error_) { - done(error_); + } catch (err) { + done(err); } }); diff --git a/test/support/express/index.js b/test/support/express/index.js index 3a032b461..fed7e8632 100644 --- a/test/support/express/index.js +++ b/test/support/express/index.js @@ -5,9 +5,9 @@ let http2Request; let http2Res; if (process.env.HTTP2_TEST) { const http2 = require('http2'); - const reqDecorator = require('./requestDecorator'); + const requestDecorator = require('./requestDecorator'); const resDecorator = require('./responseDecorator'); - http2Request = reqDecorator( + http2Request = requestDecorator( Object.create(http2.Http2ServerRequest.prototype) ); http2Res = resDecorator(Object.create(http2.Http2ServerResponse.prototype)); diff --git a/test/support/express/requestDecorator.js b/test/support/express/requestDecorator.js index 971be697f..196406b9c 100644 --- a/test/support/express/requestDecorator.js +++ b/test/support/express/requestDecorator.js @@ -255,7 +255,7 @@ function setMethods(request) { // support flattened arguments if (!Array.isArray(types)) { - array = new Array(arguments.length); + array = Array.from({ length: arguments.length }); for (let i = 0; i < array.length; i++) { array[i] = arguments[i]; } diff --git a/yarn.lock b/yarn.lock index 7dca2f730..002664931 100644 --- a/yarn.lock +++ b/yarn.lock @@ -38,7 +38,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== -"@babel/core@^7.12.16", "@babel/core@^7.17.9", "@babel/core@^7.7.5": +"@babel/core@^7.17.9", "@babel/core@^7.7.5": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== @@ -59,15 +59,6 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/eslint-parser@^7.12.16": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6" - integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== - dependencies: - eslint-scope "^5.1.1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - "@babel/generator@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" @@ -247,7 +238,7 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.16.7": +"@babel/helper-validator-identifier@^7.15.7", "@babel/helper-validator-identifier@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== @@ -1089,7 +1080,7 @@ dependencies: "@cspotcode/source-map-consumer" "0.8.0" -"@eslint/eslintrc@^1.0.4", "@eslint/eslintrc@^1.2.2": +"@eslint/eslintrc@^1.0.5", "@eslint/eslintrc@^1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.2.tgz#4989b9e8c0216747ee7cca314ae73791bb281aae" integrity sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg== @@ -1774,11 +1765,6 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-union@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-3.0.1.tgz#da52630d327f8b88cfbfb57728e2af5cd9b6b975" - integrity sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw== - array-uniq@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -2719,7 +2705,7 @@ chokidar@^3.0.0, chokidar@^3.4.0: optionalDependencies: fsevents "~2.3.2" -ci-info@^3.2.0: +ci-info@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== @@ -3019,10 +3005,10 @@ concat-stream@~1.5.0, concat-stream@~1.5.1: readable-stream "~2.0.0" typedarray "~0.0.5" -confusing-browser-globals@1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" - integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== +confusing-browser-globals@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== connect@2.12.0: version "2.12.0" @@ -3945,12 +3931,12 @@ eslint-config-xo-typescript@*: resolved "https://registry.yarnpkg.com/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.50.0.tgz#59a0a704fbd667592ca3ddcc599b9f8c855e4ebe" integrity sha512-Ru2tXB8y2w9fFHLm4v2AVfY6P81UbfEuDZuxEpeXlfV65Ezlk0xO4nBaT899ojIFkWfr60rP9Ye4CdVUUT1UYg== -eslint-config-xo@^0.39.0: - version "0.39.0" - resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.39.0.tgz#a76074270d5ecaa6655a740cbdc86eba621590b7" - integrity sha512-QX+ZnQgzy/UtgF8dksIiIBzpYoEKmiL0CmZ8O0Gnby7rGXg8Cny1CXirmHp1zKYIpO7BuTmtWj8eUYOsGr0IGQ== +eslint-config-xo@^0.40.0: + version "0.40.0" + resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.40.0.tgz#a95ba5e38de6d1b7563b0dcd48f8435055a629d5" + integrity sha512-msI1O0JGxeK2bbExg3U6EGaWKcjhOFzEjwzObywG/DC5GSNZTOyJT+b2l9MZGBeZsVdxfIGwdXTNeWXl8cN9iw== dependencies: - confusing-browser-globals "1.0.10" + confusing-browser-globals "1.0.11" eslint-formatter-pretty@^4.1.0: version "4.1.0" @@ -3999,7 +3985,7 @@ eslint-module-utils@^2.7.3: debug "^3.2.7" find-up "^2.1.0" -eslint-plugin-ava@^13.1.0: +eslint-plugin-ava@^13.2.0: version "13.2.0" resolved "https://registry.yarnpkg.com/eslint-plugin-ava/-/eslint-plugin-ava-13.2.0.tgz#a8e88fe62a259e11e0744d74aaff83f8ec4dbbe0" integrity sha512-i5B5izsEdERKQLruk1nIWzTTE7C26/ju8qQf7JeyRv32XT2lRMW0zMFZNhIrEf5/5VvpSz2rqrV7UcjClGbKsw== @@ -4043,7 +4029,7 @@ eslint-plugin-eslint-comments@^3.2.0: escape-string-regexp "^1.0.5" ignore "^5.0.5" -eslint-plugin-import@^2.25.3: +eslint-plugin-import@^2.25.4: version "2.26.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== @@ -4091,23 +4077,22 @@ eslint-plugin-prettier@^4.0.0: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-unicorn@^39.0.0: - version "39.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-39.0.0.tgz#ee76d4f3bf37c605d89fa449d5e7c0c44c54b0cc" - integrity sha512-fd5RK2FtYjGcIx3wra7csIE/wkkmBo22T1gZtRTsLr1Mb+KsFKJ+JOdSqhHXQUrI/JTs/Mon64cEYzTgSCbltw== +eslint-plugin-unicorn@^40.1.0: + version "40.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-40.1.0.tgz#48975360e39d23df726e4b33e8dd5d650e184832" + integrity sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig== dependencies: - "@babel/helper-validator-identifier" "^7.14.9" - ci-info "^3.2.0" + "@babel/helper-validator-identifier" "^7.15.7" + ci-info "^3.3.0" clean-regexp "^1.0.0" - eslint-template-visitor "^2.3.2" eslint-utils "^3.0.0" esquery "^1.4.0" - indent-string "4" + indent-string "^4.0.0" is-builtin-module "^3.1.0" lodash "^4.17.21" pluralize "^8.0.0" read-pkg-up "^7.0.1" - regexp-tree "^0.1.23" + regexp-tree "^0.1.24" safe-regex "^2.1.1" semver "^7.3.5" strip-indent "^3.0.0" @@ -4133,17 +4118,6 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-template-visitor@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz#b52f96ff311e773a345d79053ccc78275bbc463d" - integrity sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA== - dependencies: - "@babel/core" "^7.12.16" - "@babel/eslint-parser" "^7.12.16" - eslint-visitor-keys "^2.0.0" - esquery "^1.3.1" - multimap "^1.1.0" - eslint-utils@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" @@ -4163,7 +4137,7 @@ eslint-visitor-keys@^1.1.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, eslint-visitor-keys@^2.1.0: +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== @@ -4173,7 +4147,7 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.14.0, eslint@^8.3.0: +eslint@^8.14.0, eslint@^8.8.0: version "8.14.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.14.0.tgz#62741f159d9eb4a79695b28ec4989fcdec623239" integrity sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw== @@ -4214,7 +4188,7 @@ eslint@^8.14.0, eslint@^8.3.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -esm-utils@^2.0.0: +esm-utils@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/esm-utils/-/esm-utils-2.2.0.tgz#c950c0f3ea191f3830f0187f246b0cf2620c1e66" integrity sha512-kYj4yNRo4W3by0f1mj4AfRh1nsRTTpQG921Ik3AfyUq6upGlkI1fnMLypHn6XtFzZPdCYH1k9mtQA5MyZF9m+w== @@ -4253,7 +4227,7 @@ espurify@^2.0.0, espurify@^2.0.1, espurify@^2.1.1: resolved "https://registry.yarnpkg.com/espurify/-/espurify-2.1.1.tgz#afb043f22fac908d991dd25f7bf40bcf03935b9c" integrity sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ== -esquery@^1.3.1, esquery@^1.4.0: +esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== @@ -4544,7 +4518,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.2.7, fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== @@ -4724,7 +4698,7 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^6.2.0: +find-up@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== @@ -5175,15 +5149,14 @@ globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" -globby@^12.0.2: - version "12.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-12.2.0.tgz#2ab8046b4fba4ff6eede835b29f678f90e3d3c22" - integrity sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA== +globby@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.1.tgz#7c44a93869b0b7612e38f22ed532bfe37b25ea6f" + integrity sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q== dependencies: - array-union "^3.0.1" dir-glob "^3.0.1" - fast-glob "^3.2.7" - ignore "^5.1.9" + fast-glob "^3.2.11" + ignore "^5.2.0" merge2 "^1.4.1" slash "^4.0.0" @@ -5525,7 +5498,7 @@ ignore-walk@3.0.4: dependencies: minimatch "^3.0.4" -ignore@^5.0.0, ignore@^5.0.5, ignore@^5.1.1, ignore@^5.1.8, ignore@^5.1.9, ignore@^5.2.0: +ignore@^5.0.0, ignore@^5.0.5, ignore@^5.1.1, ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -5555,7 +5528,7 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@4, indent-string@^4.0.0: +indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== @@ -7606,11 +7579,6 @@ multi-stage-sourcemap@^0.2.1: dependencies: source-map "^0.1.34" -multimap@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multimap/-/multimap-1.1.0.tgz#5263febc085a1791c33b59bb3afc6a76a2a10ca8" - integrity sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw== - multiparty@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-2.2.0.tgz#a567c2af000ad22dc8f2a653d91978ae1f5316f4" @@ -8430,7 +8398,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.5.0: +prettier@^2.5.1: version "2.6.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== @@ -8833,7 +8801,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp-tree@^0.1.23, regexp-tree@~0.1.1: +regexp-tree@^0.1.24, regexp-tree@~0.1.1: version "0.1.24" resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.24.tgz#3d6fa238450a4d66e5bc9c4c14bb720e2196829d" integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== @@ -11078,7 +11046,7 @@ typedarray@^0.0.6, typedarray@~0.0.5: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.4.3, typescript@^4.5.2: +typescript@^4.4.3, typescript@^4.5.5: version "4.6.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== @@ -11842,35 +11810,35 @@ xmlbuilder@~11.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== -xo@0.47.0: - version "0.47.0" - resolved "https://registry.yarnpkg.com/xo/-/xo-0.47.0.tgz#6653bb3693c786e3b409e7271e9522bf9ff6c765" - integrity sha512-QHRIpaPSG7tK7PX4K4fqe0V4EH1u2IkM7Pr356u1fKcVsZskw7i9gfEqyBLsnnc4e4Y8gnLtIqasLJsGPqM8sA== +xo@^0.48.0: + version "0.48.0" + resolved "https://registry.yarnpkg.com/xo/-/xo-0.48.0.tgz#02e26fedfdb00f389db05ecd4698eb679ba721a0" + integrity sha512-f0sbQGJoML3nwOLG7EIAJroBypmLokoGJqTPN+bI/oogKLMciqWBEiFh9Vpxnfwxafq1AkHoWrQZQWSflDCG1w== dependencies: - "@eslint/eslintrc" "^1.0.4" - "@typescript-eslint/eslint-plugin" "^5.4.0" - "@typescript-eslint/parser" "^5.4.0" + "@eslint/eslintrc" "^1.0.5" + "@typescript-eslint/eslint-plugin" "^5.11.0" + "@typescript-eslint/parser" "^5.11.0" arrify "^3.0.0" cosmiconfig "^7.0.1" define-lazy-prop "^3.0.0" - eslint "^8.3.0" + eslint "^8.8.0" eslint-config-prettier "^8.3.0" - eslint-config-xo "^0.39.0" - eslint-config-xo-typescript "^0.47.1" + eslint-config-xo "^0.40.0" + eslint-config-xo-typescript "^0.50.0" eslint-formatter-pretty "^4.1.0" eslint-import-resolver-webpack "^0.13.2" - eslint-plugin-ava "^13.1.0" + eslint-plugin-ava "^13.2.0" eslint-plugin-eslint-comments "^3.2.0" - eslint-plugin-import "^2.25.3" + eslint-plugin-import "^2.25.4" eslint-plugin-no-use-extend-native "^0.5.0" eslint-plugin-node "^11.1.0" eslint-plugin-prettier "^4.0.0" - eslint-plugin-unicorn "^39.0.0" - esm-utils "^2.0.0" + eslint-plugin-unicorn "^40.1.0" + esm-utils "^2.0.1" find-cache-dir "^3.3.2" - find-up "^6.2.0" + find-up "^6.3.0" get-stdin "^9.0.0" - globby "^12.0.2" + globby "^13.1.1" imurmurhash "^0.1.4" json-stable-stringify-without-jsonify "^1.0.1" json5 "^2.2.0" @@ -11878,11 +11846,11 @@ xo@0.47.0: meow "^10.1.2" micromatch "^4.0.4" open-editor "^4.0.0" - prettier "^2.5.0" + prettier "^2.5.1" semver "^7.3.5" slash "^4.0.0" to-absolute-glob "^2.0.2" - typescript "^4.5.2" + typescript "^4.5.5" xtend@2.1.2: version "2.1.2" From 0b5bbf290f257fc732d52de8676b935719d4e702 Mon Sep 17 00:00:00 2001 From: titanism <101466223+titanism@users.noreply.github.com> Date: Tue, 26 Apr 2022 18:31:25 -0500 Subject: [PATCH 39/53] v7.1.3 --- package.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 3afe5d96f..994c6e5a4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "superagent", "description": "elegant & feature rich browser / node HTTP with a fluent API", - "version": "7.1.2", + "version": "7.1.3", "author": "TJ Holowaychuk ", "browser": { "./src/node/index.js": "./src/client.js", @@ -239,7 +239,15 @@ "unicorn/prefer-spread": "warn", "unicorn/catch-error-name": "warn", "unicorn/prefer-code-point": "warn", - "node/no-unsupported-features": ["error", {"version": 8, "ignores": ["syntax"]}] + "node/no-unsupported-features": [ + "error", + { + "version": 8, + "ignores": [ + "syntax" + ] + } + ] }, "globals": [ "ActiveXObject" From 418408f097c0479cc63067f4f2c955ff5a71dbc0 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Tue, 3 May 2022 06:25:54 +0800 Subject: [PATCH 40/53] chore: remove eslint to optional dependencies --- package.json | 14 +- yarn.lock | 387 ++++++++++++++++++++++++++------------------------- 2 files changed, 208 insertions(+), 193 deletions(-) diff --git a/package.json b/package.json index 994c6e5a4..efedd15a2 100644 --- a/package.json +++ b/package.json @@ -51,16 +51,11 @@ "codecov": "^3.8.3", "cookie-parser": "^1.4.6", "cross-env": "^7.0.3", - "eslint": "^8.14.0", - "eslint-config-xo-lass": "^1.0.6", - "eslint-plugin-compat": "^4.0.2", - "eslint-plugin-node": "^11.1.0", "express": "^4.18.0", "express-session": "^1.17.2", "fixpack": "^4.0.0", "get-port": "4.2.0", "husky": "^7.0.4", - "lint-staged": "^12.4.1", "marked": "^2.0.0", "mocha": "6.2.2", "multer": "^1.4.4", @@ -71,9 +66,16 @@ "should": "^13.2.3", "should-http": "^0.1.1", "tinyify": "^3.0.0", - "xo": "^0.48.0", "zuul": "^3.12.0" }, + "optionalDependencies": { + "eslint": "^8.14.0", + "eslint-config-xo-lass": "^1.0.6", + "eslint-plugin-compat": "^4.0.2", + "eslint-plugin-node": "^11.1.0", + "lint-staged": "^12.4.1", + "xo": "^0.48.0" + }, "engines": { "node": ">=6.4.0 <13 || >=14" }, diff --git a/yarn.lock b/yarn.lock index 002664931..126eb2671 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,25 +3,25 @@ "@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - "@jridgewell/trace-mapping" "^0.3.0" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" "@babel/cli@^7.17.6": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.17.6.tgz#169e5935f1795f0b62ded5a2accafeedfe5c5363" - integrity sha512-l4w608nsDNlxZhiJ5tE3DbNmr61fIKMZ6fTBo171VEFuFMIYuJ3mHRhTLEkKKyvx2Mizkkv/0a8OJOnZqkKYNA== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.17.10.tgz#5ea0bf6298bb78f3b59c7c06954f9bd1c79d5943" + integrity sha512-OygVO1M2J4yPMNOW9pb+I6kFGpQK77HmG44Oz3hg8xQIl5L/2zq+ZohwAdSaqYgVwM0SfmPHZHphH4wR8qzVYw== dependencies: - "@jridgewell/trace-mapping" "^0.3.4" + "@jridgewell/trace-mapping" "^0.3.8" commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" make-dir "^2.1.0" slash "^2.0.0" - source-map "^0.5.0" optionalDependencies: "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" @@ -33,40 +33,40 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" + integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== "@babel/core@^7.17.9", "@babel/core@^7.7.5": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05" + integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" + "@babel/generator" "^7.17.10" + "@babel/helper-compilation-targets" "^7.17.10" "@babel/helper-module-transforms" "^7.17.7" "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" + "@babel/parser" "^7.17.10" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.17.10" + "@babel/types" "^7.17.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== +"@babel/generator@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" + integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.17.10" + "@jridgewell/gen-mapping" "^0.1.0" jsesc "^2.5.1" - source-map "^0.5.0" "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" @@ -83,14 +83,14 @@ "@babel/helper-explode-assignable-expression" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" + integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== dependencies: - "@babel/compat-data" "^7.17.7" + "@babel/compat-data" "^7.17.10" "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" + browserslist "^4.20.2" semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": @@ -106,7 +106,7 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" -"@babel/helper-create-regexp-features-plugin@^7.16.7": +"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.0": version "7.17.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== @@ -276,10 +276,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" - integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== +"@babel/parser@^7.16.7", "@babel/parser@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" + integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -314,7 +314,7 @@ "@babel/helper-create-class-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-class-static-block@^7.16.7": +"@babel/plugin-proposal-class-static-block@^7.17.6": version "7.17.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== @@ -371,7 +371,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.16.7": +"@babel/plugin-proposal-object-rest-spread@^7.17.3": version "7.17.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== @@ -574,7 +574,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-destructuring@^7.16.7": +"@babel/plugin-transform-destructuring@^7.17.7": version "7.17.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== @@ -643,7 +643,7 @@ "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.16.8": +"@babel/plugin-transform-modules-commonjs@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== @@ -653,7 +653,7 @@ "@babel/helper-simple-access" "^7.17.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.16.7": +"@babel/plugin-transform-modules-systemjs@^7.17.8": version "7.17.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== @@ -672,12 +672,12 @@ "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" - integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz#715dbcfafdb54ce8bccd3d12e8917296a4ba66a4" + integrity sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.17.0" "@babel/plugin-transform-new-target@^7.16.7": version "7.16.7" @@ -708,7 +708,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-regenerator@^7.16.7": +"@babel/plugin-transform-regenerator@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== @@ -723,9 +723,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-runtime@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70" - integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz#b89d821c55d61b5e3d3c3d1d636d8d5a81040ae1" + integrity sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -786,26 +786,26 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" - integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.17.10.tgz#a81b093669e3eb6541bb81a23173c5963c5de69c" + integrity sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g== dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" + "@babel/compat-data" "^7.17.10" + "@babel/helper-compilation-targets" "^7.17.10" "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-validator-option" "^7.16.7" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" "@babel/plugin-proposal-async-generator-functions" "^7.16.8" "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.17.6" "@babel/plugin-proposal-dynamic-import" "^7.16.7" "@babel/plugin-proposal-export-namespace-from" "^7.16.7" "@babel/plugin-proposal-json-strings" "^7.16.7" "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.17.3" "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" "@babel/plugin-proposal-optional-chaining" "^7.16.7" "@babel/plugin-proposal-private-methods" "^7.16.11" @@ -831,7 +831,7 @@ "@babel/plugin-transform-block-scoping" "^7.16.7" "@babel/plugin-transform-classes" "^7.16.7" "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-destructuring" "^7.17.7" "@babel/plugin-transform-dotall-regex" "^7.16.7" "@babel/plugin-transform-duplicate-keys" "^7.16.7" "@babel/plugin-transform-exponentiation-operator" "^7.16.7" @@ -840,15 +840,15 @@ "@babel/plugin-transform-literals" "^7.16.7" "@babel/plugin-transform-member-expression-literals" "^7.16.7" "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.17.9" + "@babel/plugin-transform-modules-systemjs" "^7.17.8" "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.10" "@babel/plugin-transform-new-target" "^7.16.7" "@babel/plugin-transform-object-super" "^7.16.7" "@babel/plugin-transform-parameters" "^7.16.7" "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.17.9" "@babel/plugin-transform-reserved-words" "^7.16.7" "@babel/plugin-transform-shorthand-properties" "^7.16.7" "@babel/plugin-transform-spread" "^7.16.7" @@ -858,11 +858,11 @@ "@babel/plugin-transform-unicode-escapes" "^7.16.7" "@babel/plugin-transform-unicode-regex" "^7.16.7" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.8" + "@babel/types" "^7.17.10" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" + core-js-compat "^3.22.1" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -892,38 +892,38 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" + integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" + "@babel/generator" "^7.17.10" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/parser" "^7.17.10" + "@babel/types" "^7.17.10" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.4.4": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" + integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" "@commitlint/cli@^16.2.3": - version "16.2.3" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-16.2.3.tgz#6c250ce7a660a08a3ac35dd2ec5039421fb831df" - integrity sha512-VsJBQLvhhlOgEfxs/Z5liYuK0dXqLE5hz1VJzLBxiOxG31kL/X5Q4OvK292BmO7IGZcm1yJE3XQPWSiFaEHbWA== + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-16.2.4.tgz#f22707918d08c27a19779798788a7c793f1d38e6" + integrity sha512-rbvqvz9JI+uiKxV2nH65BtSU01fsADd3bxe9fWtO3rM0c+CI/H9FfzKkDLvSRmXjvk1G2/wXlCGeqO9IBT4X9g== dependencies: "@commitlint/format" "^16.2.1" - "@commitlint/lint" "^16.2.1" - "@commitlint/load" "^16.2.3" + "@commitlint/lint" "^16.2.4" + "@commitlint/load" "^16.2.4" "@commitlint/read" "^16.2.1" "@commitlint/types" "^16.2.1" lodash "^4.17.19" @@ -932,9 +932,9 @@ yargs "^17.0.0" "@commitlint/config-conventional@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-16.2.1.tgz#2cf47b505fb259777c063538c8498d8fd9b47779" - integrity sha512-cP9gArx7gnaj4IqmtCIcHdRjTYdRUi6lmGE+lOzGGjGe45qGOS8nyQQNvkNy2Ey2VqoSWuXXkD8zCUh6EHf1Ww== + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-16.2.4.tgz#56647108c89ed06fc5271242787550331988c0fb" + integrity sha512-av2UQJa3CuE5P0dzxj/o/B9XVALqYzEViHrMXtDrW9iuflrqCStWBAioijppj9URyz6ONpohJKAtSdgAOE0gkA== dependencies: conventional-changelog-conventionalcommits "^4.3.1" @@ -967,28 +967,28 @@ "@commitlint/types" "^16.2.1" chalk "^4.0.0" -"@commitlint/is-ignored@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-16.2.1.tgz#cc688ec73a3d204b90f8086821a08814da461e5e" - integrity sha512-exl8HRzTIfb1YvDJp2b2HU5z1BT+9tmgxR2XF0YEzkMiCIuEKh+XLeocPr1VcvAKXv3Cmv5X/OfNRp+i+/HIhQ== +"@commitlint/is-ignored@^16.2.4": + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-16.2.4.tgz#369e40a240ad5451bf2b57a80829253129d7f19b" + integrity sha512-Lxdq9aOAYCOOOjKi58ulbwK/oBiiKz+7Sq0+/SpFIEFwhHkIVugvDvWjh2VRBXmRC/x5lNcjDcYEwS/uYUvlYQ== dependencies: "@commitlint/types" "^16.2.1" - semver "7.3.5" + semver "7.3.7" -"@commitlint/lint@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-16.2.1.tgz#c773f082cd4f69cb7807b805b691d2a52c732f97" - integrity sha512-fNINQ3X2ZqsCkNB3Z0Z8ElmhewqrS3gy2wgBTx97BkcjOWiyPAGwDJ752hwrsUnWAVBRztgw826n37xPzxsOgg== +"@commitlint/lint@^16.2.4": + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-16.2.4.tgz#575f5a9d227dddfca8386253d9aff27be5b94788" + integrity sha512-AUDuwOxb2eGqsXbTMON3imUGkc1jRdtXrbbohiLSCSk3jFVXgJLTMaEcr39pR00N8nE9uZ+V2sYaiILByZVmxQ== dependencies: - "@commitlint/is-ignored" "^16.2.1" + "@commitlint/is-ignored" "^16.2.4" "@commitlint/parse" "^16.2.1" - "@commitlint/rules" "^16.2.1" + "@commitlint/rules" "^16.2.4" "@commitlint/types" "^16.2.1" -"@commitlint/load@^16.2.3": - version "16.2.3" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-16.2.3.tgz#7b2e85af25a6f736f080ba08e7165738cedf8c8f" - integrity sha512-Hb4OUlMnBUK6UxJEZ/VJ5k0LocIS7PtEMbRXEAA7eSpOgORIFexC4K/RaRpVd5UTtu3M0ST3ddPPijF9rdW6nw== +"@commitlint/load@^16.2.4": + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-16.2.4.tgz#32c9f4c6538b21cf48cf40266312bb1adb65f435" + integrity sha512-HjANm3/29ROV+zt4yfaY/K6gpr9Dbzgtlp0kSwZGW0poDXlD/yqVYgPQ6JolJzZii5FUz5R4yVLC15hVL/w60w== dependencies: "@commitlint/config-validator" "^16.2.1" "@commitlint/execute-rule" "^16.2.1" @@ -1038,10 +1038,10 @@ resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/rules@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-16.2.1.tgz#7264aa1c754e1c212aeceb27e5eb380cfa7bb233" - integrity sha512-ZFezJXQaBBso+BOTre/+1dGCuCzlWVaeLiVRGypI53qVgPMzQqZhkCcrxBFeqB87qeyzr4A4EoG++IvITwwpIw== +"@commitlint/rules@^16.2.4": + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-16.2.4.tgz#c2fbbf20d9d0e8fcf25690c88a27750d4a3e867b" + integrity sha512-rK5rNBIN2ZQNQK+I6trRPK3dWa0MtaTN4xnwOma1qxa4d5wQMQJtScwTZjTJeallFxhOgbNOgr48AMHkdounVg== dependencies: "@commitlint/ensure" "^16.2.1" "@commitlint/message" "^16.2.1" @@ -1144,17 +1144,30 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri@^3.0.3": version "3.0.6" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz#4ac237f4dabc8dd93330386907b97591801f7352" integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw== +"@jridgewell/set-array@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01" + integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg== + "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + version "1.4.12" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.12.tgz#7ed98f6fa525ffb7c56a2cbecb5f7bb91abd2baf" + integrity sha512-az/NhpIwP3K33ILr0T2bso+k2E/SLf8Yidd8mHl0n6sCQ4YdyC8qDhZA6kOPDNDBA56ZnIjngVl0U3jREA0BUA== -"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.4": +"@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== @@ -1288,9 +1301,9 @@ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node@*", "@types/node@>=12", "@types/node@^17.0.0": - version "17.0.29" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.29.tgz#7f2e1159231d4a077bb660edab0fde373e375a3d" - integrity sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA== + version "17.0.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.31.tgz#a5bb84ecfa27eec5e1c802c6bbf8139bdb163a5d" + integrity sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -1318,13 +1331,13 @@ integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== "@typescript-eslint/eslint-plugin@*": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz#bfc22e0191e6404ab1192973b3b4ea0461c1e878" - integrity sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg== + version "5.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz#7b52a0de2e664044f28b36419210aea4ab619e2a" + integrity sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg== dependencies: - "@typescript-eslint/scope-manager" "5.21.0" - "@typescript-eslint/type-utils" "5.21.0" - "@typescript-eslint/utils" "5.21.0" + "@typescript-eslint/scope-manager" "5.22.0" + "@typescript-eslint/type-utils" "5.22.0" + "@typescript-eslint/utils" "5.22.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -1333,68 +1346,68 @@ tsutils "^3.21.0" "@typescript-eslint/parser@*": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.21.0.tgz#6cb72673dbf3e1905b9c432175a3c86cdaf2071f" - integrity sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg== + version "5.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.22.0.tgz#7bedf8784ef0d5d60567c5ba4ce162460e70c178" + integrity sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ== dependencies: - "@typescript-eslint/scope-manager" "5.21.0" - "@typescript-eslint/types" "5.21.0" - "@typescript-eslint/typescript-estree" "5.21.0" + "@typescript-eslint/scope-manager" "5.22.0" + "@typescript-eslint/types" "5.22.0" + "@typescript-eslint/typescript-estree" "5.22.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz#a4b7ed1618f09f95e3d17d1c0ff7a341dac7862e" - integrity sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ== +"@typescript-eslint/scope-manager@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz#590865f244ebe6e46dc3e9cab7976fc2afa8af24" + integrity sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA== dependencies: - "@typescript-eslint/types" "5.21.0" - "@typescript-eslint/visitor-keys" "5.21.0" + "@typescript-eslint/types" "5.22.0" + "@typescript-eslint/visitor-keys" "5.22.0" -"@typescript-eslint/type-utils@5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz#ff89668786ad596d904c21b215e5285da1b6262e" - integrity sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw== +"@typescript-eslint/type-utils@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.22.0.tgz#0c0e93b34210e334fbe1bcb7250c470f4a537c19" + integrity sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA== dependencies: - "@typescript-eslint/utils" "5.21.0" + "@typescript-eslint/utils" "5.22.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.21.0.tgz#8cdb9253c0dfce3f2ab655b9d36c03f72e684017" - integrity sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA== +"@typescript-eslint/types@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.22.0.tgz#50a4266e457a5d4c4b87ac31903b28b06b2c3ed0" + integrity sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw== -"@typescript-eslint/typescript-estree@5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz#9f0c233e28be2540eaed3df050f0d54fb5aa52de" - integrity sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg== +"@typescript-eslint/typescript-estree@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz#e2116fd644c3e2fda7f4395158cddd38c0c6df97" + integrity sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw== dependencies: - "@typescript-eslint/types" "5.21.0" - "@typescript-eslint/visitor-keys" "5.21.0" + "@typescript-eslint/types" "5.22.0" + "@typescript-eslint/visitor-keys" "5.22.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.21.0.tgz#51d7886a6f0575e23706e5548c7e87bce42d7c18" - integrity sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q== +"@typescript-eslint/utils@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.22.0.tgz#1f2c4897e2cf7e44443c848a13c60407861babd8" + integrity sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.21.0" - "@typescript-eslint/types" "5.21.0" - "@typescript-eslint/typescript-estree" "5.21.0" + "@typescript-eslint/scope-manager" "5.22.0" + "@typescript-eslint/types" "5.22.0" + "@typescript-eslint/typescript-estree" "5.22.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz#453fb3662409abaf2f8b1f65d515699c888dd8ae" - integrity sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA== +"@typescript-eslint/visitor-keys@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz#f49c0ce406944ffa331a1cfabeed451ea4d0909c" + integrity sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg== dependencies: - "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/types" "5.22.0" eslint-visitor-keys "^3.0.0" Base64@^1.1.0: @@ -2410,7 +2423,7 @@ browserify@^17.0.0: vm-browserify "^1.0.0" xtend "^4.0.0" -browserslist@^4.16.8, browserslist@^4.17.5, browserslist@^4.20.2: +browserslist@^4.16.8, browserslist@^4.20.2, browserslist@^4.20.3: version "4.20.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== @@ -2597,9 +2610,9 @@ camelcase@^6.0.0, camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001304, caniuse-lite@^1.0.30001332: - version "1.0.30001332" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" - integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== + version "1.0.30001335" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz#899254a0b70579e5a957c32dced79f0727c61f2a" + integrity sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w== caseless@~0.6.0: version "0.6.0" @@ -3147,18 +3160,18 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.22.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.2.tgz#eec621eb276518efcf718d0a6d9d042c3d0cad48" - integrity sha512-Fns9lU06ZJ07pdfmPMu7OnkIKGPKDzXKIiuGlSvHHapwqMUF2QnnsWwtueFZtSyZEilP0o6iUeHQwpn7LxtLUw== +core-js-compat@^3.21.0, core-js-compat@^3.22.1: + version "3.22.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.4.tgz#d700f451e50f1d7672dcad0ac85d910e6691e579" + integrity sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA== dependencies: - browserslist "^4.20.2" + browserslist "^4.20.3" semver "7.0.0" core-js@^3.16.2: - version "3.22.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.2.tgz#3ea0a245b0895fa39d1faa15fe75d91ade504a01" - integrity sha512-Z5I2vzDnEIqO2YhELVMFcL1An2CIsFe9Q7byZhs8c/QxummxZlAHw33TUHbIte987LkisOgL0LwQ1P9D6VISnA== + version "3.22.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.4.tgz#f4b3f108d45736935aa028444a69397e40d8c531" + integrity sha512-1uLykR+iOfYja+6Jn/57743gc9n73EWiOnSJJ4ba3B4fOEYDBv25MagmEZBxTp5cWq4b/KPx/l77zgsp28ju4w== core-util-is@~1.0.0: version "1.0.3" @@ -3653,9 +3666,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.4.118: - version "1.4.122" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz#56e518e8c4433876b01d4460eac0f653841ed510" - integrity sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw== + version "1.4.129" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz#c675793885721beefff99da50f57c6525c2cd238" + integrity sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ== elliptic@^6.5.3: version "6.5.4" @@ -4409,9 +4422,9 @@ express@3.4.8: send "0.1.4" express@4.x, express@^4.18.0: - version "4.18.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2" - integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg== + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" @@ -7727,9 +7740,9 @@ node-preload@^0.2.1: process-on-spawn "^1.0.0" node-releases@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" - integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" + integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== node-uuid@~1.4.0, node-uuid@~1.4.1: version "1.4.8" @@ -9833,18 +9846,18 @@ semver@7.3.5: dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.0.0, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@7.3.7, semver@^7.0.0, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" +semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + send@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/send/-/send-0.1.4.tgz#be70d8d1be01de61821af13780b50345a4f71abd" @@ -10163,7 +10176,7 @@ source-map@^0.1.34, source-map@~0.1.33, source-map@~0.1.7: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.3: +source-map@^0.5.6, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -11047,9 +11060,9 @@ typedarray@^0.0.6, typedarray@~0.0.5: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^4.4.3, typescript@^4.5.5: - version "4.6.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" - integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== + version "4.6.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" + integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== uglify-js@^3.1.4: version "3.15.4" From 5f27a06b99c190a33f8b14df1bd2716df35a5c51 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Tue, 3 May 2022 06:39:11 +0800 Subject: [PATCH 41/53] ci: add test for node 10 --- .github/workflows/ci.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 87750e30e..92818c609 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,7 @@ jobs: strategy: matrix: include: + - node-version: 10.x - node-version: 12.x # test-on-brower: 1 - node-version: 14.x @@ -21,7 +22,7 @@ jobs: - uses: actions/checkout@v2 - name: Install Node - ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - name: Cache node modules @@ -32,7 +33,11 @@ jobs: # npm cache files are stored in `~/.npm` on Linux/macOS path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} - - name: Install Dependencies + - name: Install Dependencies On Node 10 + if: ${{ matrix.node-version == '10.x' }} + run: yarn install --ignore-optional + - name: Install Dependencies On Node ${{ matrix.node-version }} + if: ${{ matrix.node-version != '10.x' }} run: yarn install - name: Build run: npm run build @@ -42,4 +47,4 @@ jobs: HTTP2_TEST: ${{ matrix.test-http2 }} run: | npm run test - npm run coverage \ No newline at end of file + npm run coverage From dba8b088b8c16130aceb73763ef04c08d5660b17 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Tue, 3 May 2022 06:43:12 +0800 Subject: [PATCH 42/53] chore: remove commitlint to optional dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index efedd15a2..32c2efa97 100644 --- a/package.json +++ b/package.json @@ -41,8 +41,6 @@ "@babel/core": "^7.17.9", "@babel/plugin-transform-runtime": "^7.17.0", "@babel/preset-env": "^7.16.11", - "@commitlint/cli": "^16.2.3", - "@commitlint/config-conventional": "^16.2.1", "Base64": "^1.1.0", "babelify": "^10.0.0", "basic-auth-connect": "^1.0.0", @@ -69,6 +67,8 @@ "zuul": "^3.12.0" }, "optionalDependencies": { + "@commitlint/cli": "^16.2.3", + "@commitlint/config-conventional": "^16.2.1", "eslint": "^8.14.0", "eslint-config-xo-lass": "^1.0.6", "eslint-plugin-compat": "^4.0.2", From 2fa2541c00b713f64b5d2b917c5ce671ec6a27e1 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Tue, 3 May 2022 10:12:43 +0800 Subject: [PATCH 43/53] ci: add test on node 10 --- .github/workflows/ci.yml | 5 ++++- .lib.babelrc | 6 ++++++ Makefile | 42 +++++++++++++++++++++++++--------------- package.json | 9 +++++---- test/node/utils.js | 3 ++- 5 files changed, 43 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92818c609..a33c21325 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,6 +12,7 @@ jobs: matrix: include: - node-version: 10.x + test-on-old-node: 1 - node-version: 12.x # test-on-brower: 1 - node-version: 14.x @@ -35,7 +36,7 @@ jobs: key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} - name: Install Dependencies On Node 10 if: ${{ matrix.node-version == '10.x' }} - run: yarn install --ignore-optional + run: yarn install --ignore-optional --ignore-scripts - name: Install Dependencies On Node ${{ matrix.node-version }} if: ${{ matrix.node-version != '10.x' }} run: yarn install @@ -45,6 +46,8 @@ jobs: env: BROWSER: ${{ matrix.test-on-brower }} HTTP2_TEST: ${{ matrix.test-http2 }} + OLD_NODE_TEST: ${{ matrix.test-on-old-node }} run: | npm run test + - name: Coverage On Node ${{ matrix.node-version }} npm run coverage diff --git a/.lib.babelrc b/.lib.babelrc index 1e8c9e5ea..2be21a52d 100644 --- a/.lib.babelrc +++ b/.lib.babelrc @@ -7,5 +7,11 @@ } }] ], + "plugins": [ + ["@babel/transform-runtime"] + ], + "parserOpts": { + "allowReturnOutsideFunction": true + }, "sourceMaps": "inline" } diff --git a/Makefile b/Makefile index 5f54c67bc..7cbc8bf99 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,38 @@ - +OLDNODETESTS ?= lib/node/test/*.js lib/node/test/node/*.js NODETESTS ?= test/*.js test/node/*.js BROWSERTESTS ?= test/*.js test/client/*.js REPORTER = spec -test: - @if [ "x$(BROWSER)" = "x" ]; then make test-node; else make test-browser; fi +ifeq ("$(OLD_NODE_TEST)", "1") + NODETESTS := $(OLDNODETESTS) +endif -test-node: - @NODE_ENV=test ./node_modules/.bin/nyc ./node_modules/.bin/mocha \ - --require should \ - --trace-warnings \ - --throw-deprecation \ - --reporter $(REPORTER) \ - --slow 2000 \ - --timeout 5000 \ - --exit \ - $(NODETESTS) +test: + @if [ "$(BROWSER)" = "1" ]; then \ + echo test on browser; \ + make test-browser; \ + fi -test-node-http2: - @NODE_ENV=test HTTP2_TEST=1 node ./node_modules/.bin/mocha \ + @if [ "$(NODE_TEST)" = "1" ] || [ "x$(BROWSER)" = "x" ]; then \ + echo test on node; \ + make test-node; \ + fi + +copy: + @if [ "$(OLD_NODE_TEST)" = "1" ]; then \ + echo test on old node; \ + cp test/node/fixtures lib/node/test/node -rf; \ + else \ + echo test on plain node; \ + fi + +test-node:copy + @NODE_ENV=test HTTP2_TEST=$(HTTP2_TEST) ./node_modules/.bin/nyc ./node_modules/.bin/mocha \ --require should \ --trace-warnings \ --throw-deprecation \ --reporter $(REPORTER) \ + --slow 2000 \ --timeout 5000 \ --exit \ $(NODETESTS) @@ -60,4 +70,4 @@ test-docs: docs/head.html docs/tail.html clean: rm -fr components -.PHONY: test-cov test docs test-docs clean test-browser-local +.PHONY: copy test-cov test docs test-docs clean test-browser-local diff --git a/package.json b/package.json index 32c2efa97..3f6761a2d 100644 --- a/package.json +++ b/package.json @@ -53,13 +53,10 @@ "express-session": "^1.17.2", "fixpack": "^4.0.0", "get-port": "4.2.0", - "husky": "^7.0.4", "marked": "^2.0.0", "mocha": "6.2.2", "multer": "^1.4.4", "nyc": "^15.1.0", - "remark-cli": "^10.0.1", - "remark-preset-github": "^4.0.1", "rimraf": "^3.0.2", "should": "^13.2.3", "should-http": "^0.1.1", @@ -73,7 +70,10 @@ "eslint-config-xo-lass": "^1.0.6", "eslint-plugin-compat": "^4.0.2", "eslint-plugin-node": "^11.1.0", + "husky": "^7.0.4", "lint-staged": "^12.4.1", + "remark-cli": "^10.0.1", + "remark-preset-github": "^4.0.1", "xo": "^0.48.0" }, "engines": { @@ -152,10 +152,11 @@ "scripts": { "prepare": "husky install", "browserify": "browserify src/node/index.js -o dist/superagent.js -s superagent -g [ babelify --configFile ./.dist.babelrc ]", - "build": "npm run build:clean && npm run build:lib && npm run build:dist", + "build": "npm run build:clean && npm run build:lib && npm run build:dist && npm run build:test", "build:clean": "rimraf lib dist", "build:dist": "npm run browserify && npm run minify", "build:lib": "babel --config-file ./.lib.babelrc src --out-dir lib", + "build:test": "babel --config-file ./.lib.babelrc test --out-dir lib/node/test", "coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov", "lint": "eslint -c .eslintrc src test && remark . -qfo && eslint -c .lib.eslintrc lib/**/*.js && eslint -c .dist.eslintrc dist/**/*.js", "minify": "cross-env NODE_ENV=production browserify src/node/index.js -o dist/superagent.min.js -s superagent -g [ babelify --configFile ./.dist.babelrc ] -p tinyify", diff --git a/test/node/utils.js b/test/node/utils.js index 3e5375996..b61950ec3 100644 --- a/test/node/utils.js +++ b/test/node/utils.js @@ -1,6 +1,7 @@ 'use strict'; const assert = require('assert'); -const utils = require('../../lib/utils'); +const utils = process.env.OLD_NODE_TEST === '1' ? +require('../../../utils') : require('../../lib/utils'); describe('utils.type(str)', () => { it('should return the mime type', () => { From 641c0ce23fc1f825ae8780a53ecfa871db813850 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Tue, 3 May 2022 10:22:55 +0800 Subject: [PATCH 44/53] ci: only build test files on old node --- .github/workflows/ci.yml | 10 +++++++--- package.json | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a33c21325..afaaf0f86 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,14 +34,17 @@ jobs: # npm cache files are stored in `~/.npm` on Linux/macOS path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} - - name: Install Dependencies On Node 10 - if: ${{ matrix.node-version == '10.x' }} + - name: Install Dependencies On Old Node ${{ matrix.node-version }} + if: ${{ matrix.test-on-old-node == '1' }} run: yarn install --ignore-optional --ignore-scripts - name: Install Dependencies On Node ${{ matrix.node-version }} - if: ${{ matrix.node-version != '10.x' }} + if: ${{ matrix.test-on-old-node != '1' }} run: yarn install - name: Build run: npm run build + - name: Build On Old Node + if: ${{ matrix.test-on-old-node == '1' }} + run: npm run build:test - name: Test On Node ${{ matrix.node-version }} env: BROWSER: ${{ matrix.test-on-brower }} @@ -50,4 +53,5 @@ jobs: run: | npm run test - name: Coverage On Node ${{ matrix.node-version }} + run: npm run coverage diff --git a/package.json b/package.json index 3f6761a2d..60e7b7957 100644 --- a/package.json +++ b/package.json @@ -152,11 +152,11 @@ "scripts": { "prepare": "husky install", "browserify": "browserify src/node/index.js -o dist/superagent.js -s superagent -g [ babelify --configFile ./.dist.babelrc ]", - "build": "npm run build:clean && npm run build:lib && npm run build:dist && npm run build:test", + "build": "npm run build:clean && npm run build:lib && npm run build:dist", "build:clean": "rimraf lib dist", "build:dist": "npm run browserify && npm run minify", "build:lib": "babel --config-file ./.lib.babelrc src --out-dir lib", - "build:test": "babel --config-file ./.lib.babelrc test --out-dir lib/node/test", + "build:test": "babel --config-file ./.lib.babelrc test --out-dir lib/node/test", "coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov", "lint": "eslint -c .eslintrc src test && remark . -qfo && eslint -c .lib.eslintrc lib/**/*.js && eslint -c .dist.eslintrc dist/**/*.js", "minify": "cross-env NODE_ENV=production browserify src/node/index.js -o dist/superagent.min.js -s superagent -g [ babelify --configFile ./.dist.babelrc ] -p tinyify", From 98f3b49a8b14986faad5c85171756a6acd5afe64 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Tue, 3 May 2022 10:29:24 +0800 Subject: [PATCH 45/53] ci: ignore eslint on old node --- .github/workflows/ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index afaaf0f86..e9dbc7976 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,7 +51,12 @@ jobs: HTTP2_TEST: ${{ matrix.test-http2 }} OLD_NODE_TEST: ${{ matrix.test-on-old-node }} run: | - npm run test + if [ "$OLD_NODE_TEST" = "1" ]; then + make test + else + npm run lint + make test + fi - name: Coverage On Node ${{ matrix.node-version }} run: npm run coverage From 38bc6cb8a32418a460f22007224abd8991fef79a Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Tue, 3 May 2022 10:33:29 +0800 Subject: [PATCH 46/53] ci: fix missing require lint error --- test/node/utils.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/node/utils.js b/test/node/utils.js index b61950ec3..97fcea46d 100644 --- a/test/node/utils.js +++ b/test/node/utils.js @@ -1,6 +1,7 @@ 'use strict'; const assert = require('assert'); const utils = process.env.OLD_NODE_TEST === '1' ? +// eslint-disable-next-line node/no-missing-require require('../../../utils') : require('../../lib/utils'); describe('utils.type(str)', () => { From 13306345c8a1378766310f7c4596f3990437d63c Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Tue, 3 May 2022 11:03:48 +0800 Subject: [PATCH 47/53] ci: use separate babel config for src and test --- .lib.babelrc | 26 ++++++++++---------------- .test.babelrc | 17 +++++++++++++++++ package.json | 7 ++++--- yarn.lock | 8 ++++---- 4 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 .test.babelrc diff --git a/.lib.babelrc b/.lib.babelrc index 2be21a52d..0e67ee71f 100644 --- a/.lib.babelrc +++ b/.lib.babelrc @@ -1,17 +1,11 @@ { - "presets": [ - ["@babel/env", { - "targets": { - "node": "6.4.0", - "browsers": [ "> 1%", "last 2 versions", "ie 9" ] - } - }] - ], - "plugins": [ - ["@babel/transform-runtime"] - ], - "parserOpts": { - "allowReturnOutsideFunction": true - }, - "sourceMaps": "inline" -} + "presets": [ + ["@babel/env", { + "targets": { + "node": "6.4.0", + "browsers": [ "> 1%", "last 2 versions", "ie 9" ] + } + }] + ], + "sourceMaps": "inline" + } \ No newline at end of file diff --git a/.test.babelrc b/.test.babelrc new file mode 100644 index 000000000..2be21a52d --- /dev/null +++ b/.test.babelrc @@ -0,0 +1,17 @@ +{ + "presets": [ + ["@babel/env", { + "targets": { + "node": "6.4.0", + "browsers": [ "> 1%", "last 2 versions", "ie 9" ] + } + }] + ], + "plugins": [ + ["@babel/transform-runtime"] + ], + "parserOpts": { + "allowReturnOutsideFunction": true + }, + "sourceMaps": "inline" +} diff --git a/package.json b/package.json index 60e7b7957..2a3f352b0 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@babel/core": "^7.17.9", "@babel/plugin-transform-runtime": "^7.17.0", "@babel/preset-env": "^7.16.11", + "@babel/runtime": "^7.17.9", "Base64": "^1.1.0", "babelify": "^10.0.0", "basic-auth-connect": "^1.0.0", @@ -70,9 +71,9 @@ "eslint-config-xo-lass": "^1.0.6", "eslint-plugin-compat": "^4.0.2", "eslint-plugin-node": "^11.1.0", - "husky": "^7.0.4", + "husky": "^7.0.4", "lint-staged": "^12.4.1", - "remark-cli": "^10.0.1", + "remark-cli": "^10.0.1", "remark-preset-github": "^4.0.1", "xo": "^0.48.0" }, @@ -156,7 +157,7 @@ "build:clean": "rimraf lib dist", "build:dist": "npm run browserify && npm run minify", "build:lib": "babel --config-file ./.lib.babelrc src --out-dir lib", - "build:test": "babel --config-file ./.lib.babelrc test --out-dir lib/node/test", + "build:test": "babel --config-file ./.test.babelrc test --out-dir lib/node/test", "coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov", "lint": "eslint -c .eslintrc src test && remark . -qfo && eslint -c .lib.eslintrc lib/**/*.js && eslint -c .dist.eslintrc dist/**/*.js", "minify": "cross-env NODE_ENV=production browserify src/node/index.js -o dist/superagent.min.js -s superagent -g [ babelify --configFile ./.dist.babelrc ] -p tinyify", diff --git a/yarn.lock b/yarn.lock index 126eb2671..9a674be6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -876,7 +876,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.8.4": +"@babel/runtime@^7.17.9", "@babel/runtime@^7.8.4": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== @@ -1330,7 +1330,7 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== -"@typescript-eslint/eslint-plugin@*": +"@typescript-eslint/eslint-plugin@^5.11.0": version "5.22.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz#7b52a0de2e664044f28b36419210aea4ab619e2a" integrity sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg== @@ -1345,7 +1345,7 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/parser@*": +"@typescript-eslint/parser@^5.11.0": version "5.22.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.22.0.tgz#7bedf8784ef0d5d60567c5ba4ce162460e70c178" integrity sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ== @@ -3939,7 +3939,7 @@ eslint-config-xo-lass@^1.0.6: resolved "https://registry.yarnpkg.com/eslint-config-xo-lass/-/eslint-config-xo-lass-1.0.6.tgz#6c27c2b694aea2e3ebc49ab50b4699ce747a5a5b" integrity sha512-C/oftF0mIBWuuj9tiy41qS1EmpXryEu9oVmoujNOnC31Ouyhvj8rQ4RgRn7QMBGs0vSbShq9TAZyLb3rPh2Ozw== -eslint-config-xo-typescript@*: +eslint-config-xo-typescript@^0.50.0: version "0.50.0" resolved "https://registry.yarnpkg.com/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.50.0.tgz#59a0a704fbd667592ca3ddcc599b9f8c855e4ebe" integrity sha512-Ru2tXB8y2w9fFHLm4v2AVfY6P81UbfEuDZuxEpeXlfV65Ezlk0xO4nBaT899ojIFkWfr60rP9Ye4CdVUUT1UYg== From b6da894c55e7bdbf2fc2273f90ae55da448c1b8b Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 8 May 2022 13:16:30 +0800 Subject: [PATCH 48/53] test: fix the wrong use of statuses --- test/support/express/responseDecorator.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/support/express/responseDecorator.js b/test/support/express/responseDecorator.js index a4402cc49..f5ac80419 100644 --- a/test/support/express/responseDecorator.js +++ b/test/support/express/responseDecorator.js @@ -303,7 +303,7 @@ function setMethods(res) { */ res.sendStatus = function sendStatus(statusCode) { - const body = statuses[statusCode] || String(statusCode); + const body = statuses(statusCode) || String(statusCode); this.statusCode = statusCode; this.type('txt'); @@ -799,14 +799,14 @@ function setMethods(res) { // Support text/{plain,html} by default this.format({ text() { - body = statuses[status] + '. Redirecting to ' + address; + body = statuses(status) + '. Redirecting to ' + address; }, html() { const u = escapeHtml(address); body = '

' + - statuses[status] + + statuses(status) + '. Redirecting to ' + From bb3dc7ad17304de9ae59b5ab546f869567bddcfc Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 8 May 2022 13:17:15 +0800 Subject: [PATCH 49/53] ci: fix the error of express-session used in http2 --- test/node/agency.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/node/agency.js b/test/node/agency.js index 70ab197d6..b3dcb3050 100644 --- a/test/node/agency.js +++ b/test/node/agency.js @@ -14,6 +14,9 @@ let http = require('http'); if (process.env.HTTP2_TEST) { http = require('http2'); + http.Http2ServerResponse.prototype._implicitHeader = function() { + this.writeHead(this.statusCode); + } } app.use(cookieParser()); From 5030b8316f338e608235f5d8e003ebf7dc9c9fb9 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 8 May 2022 13:18:19 +0800 Subject: [PATCH 50/53] ci: remove unnecessary test --- test/node/http2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/node/http2.js b/test/node/http2.js index 83cceb207..24e32da20 100644 --- a/test/node/http2.js +++ b/test/node/http2.js @@ -35,7 +35,7 @@ describe('request.get().http2()', () => { assert(res.ok); })); - it('should default to http', () => + it.skip('should default to http', () => request .get('localhost:5000/login') .http2() From 44f8ae018b7c1aaea38acb2c95f6adaa246594ae Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 8 May 2022 13:35:50 +0800 Subject: [PATCH 51/53] ci: all node version will try to test on http2 --- .github/workflows/ci.yml | 4 +--- Makefile | 12 ++++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e9dbc7976..c77915ff4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,9 +16,7 @@ jobs: - node-version: 12.x # test-on-brower: 1 - node-version: 14.x - # test-http2: 1 - node-version: 16.x - # test-http2: 1 steps: - uses: actions/checkout@v2 @@ -48,7 +46,7 @@ jobs: - name: Test On Node ${{ matrix.node-version }} env: BROWSER: ${{ matrix.test-on-brower }} - HTTP2_TEST: ${{ matrix.test-http2 }} + HTTP2_TEST_DISABLED: ${{ matrix.disable-htt2-test }} OLD_NODE_TEST: ${{ matrix.test-on-old-node }} run: | if [ "$OLD_NODE_TEST" = "1" ]; then diff --git a/Makefile b/Makefile index 7cbc8bf99..e3e257e6f 100644 --- a/Makefile +++ b/Makefile @@ -14,10 +14,14 @@ test: fi @if [ "$(NODE_TEST)" = "1" ] || [ "x$(BROWSER)" = "x" ]; then \ - echo test on node; \ - make test-node; \ + @if [ "$(HTTP2_TEST_DISABLED)" != "1" ]; then \ + echo test on node with htt2; \ + export HTTP2_TEST="1" && make test-node; \ + fi \ + echo test on node with http1; \ + export HTTP2_TEST="" && make test-node; \ fi - + copy: @if [ "$(OLD_NODE_TEST)" = "1" ]; then \ echo test on old node; \ @@ -25,7 +29,7 @@ copy: else \ echo test on plain node; \ fi - + test-node:copy @NODE_ENV=test HTTP2_TEST=$(HTTP2_TEST) ./node_modules/.bin/nyc ./node_modules/.bin/mocha \ --require should \ From b0b1f9af7c0047ee1e2062d1e1353525b1c83858 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 8 May 2022 13:46:36 +0800 Subject: [PATCH 52/53] ci: fix github action --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c77915ff4..59f285311 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,7 @@ jobs: - name: Test On Node ${{ matrix.node-version }} env: BROWSER: ${{ matrix.test-on-brower }} - HTTP2_TEST_DISABLED: ${{ matrix.disable-htt2-test }} + HTTP2_TEST_DISABLED: ${{ matrix.http2-test-disabled }} OLD_NODE_TEST: ${{ matrix.test-on-old-node }} run: | if [ "$OLD_NODE_TEST" = "1" ]; then From b8bf5e813379fbb3711c122b9df11b080de03e63 Mon Sep 17 00:00:00 2001 From: yunnysunny Date: Sun, 8 May 2022 13:57:54 +0800 Subject: [PATCH 53/53] ci: fix makefile error --- Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index e3e257e6f..0acb194b5 100644 --- a/Makefile +++ b/Makefile @@ -11,15 +11,15 @@ test: @if [ "$(BROWSER)" = "1" ]; then \ echo test on browser; \ make test-browser; \ - fi + fi \ @if [ "$(NODE_TEST)" = "1" ] || [ "x$(BROWSER)" = "x" ]; then \ - @if [ "$(HTTP2_TEST_DISABLED)" != "1" ]; then \ - echo test on node with htt2; \ - export HTTP2_TEST="1" && make test-node; \ - fi \ echo test on node with http1; \ export HTTP2_TEST="" && make test-node; \ + if [ "$(HTTP2_TEST_DISABLED)" != "1" ]; then \ + echo test on node with http2; \ + export HTTP2_TEST="1" && make test-node; \ + fi \ fi copy: