From 5ac32e54a1e163f6c70eee47d9e204cf42f1b1a2 Mon Sep 17 00:00:00 2001 From: Phillip Peralez Date: Fri, 5 Apr 2024 19:34:15 +0000 Subject: [PATCH 1/5] Replacing request library for callbacks with fetch --- lib/hub/action_request.js | 78 ++++++++++++++++----------------------- package.json | 1 + src/hub/action_request.ts | 77 +++++++++++++++----------------------- yarn.lock | 8 ++++ 4 files changed, 70 insertions(+), 94 deletions(-) diff --git a/lib/hub/action_request.js b/lib/hub/action_request.js index 7cdc015a..12eaa986 100644 --- a/lib/hub/action_request.js +++ b/lib/hub/action_request.js @@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ActionRequest = exports.ActionDownloadSettings = exports.ActionVisualizationFormatting = exports.ActionFormatting = exports.ActionFormat = exports.ActionType = void 0; +const node_fetch_1 = require("node-fetch"); const oboe = require("oboe"); -const httpRequest = require("request"); const semver = require("semver"); const stream_1 = require("stream"); const winston = require("winston"); @@ -122,55 +122,41 @@ class ActionRequest { return __awaiter(this, void 0, void 0, function* () { const stream = new stream_1.PassThrough(); const returnPromise = callback(stream); - const timeout = process.env.ACTION_HUB_STREAM_REQUEST_TIMEOUT ? - parseInt(process.env.ACTION_HUB_STREAM_REQUEST_TIMEOUT, 10) - : - 13 * 60 * 1000; const url = this.scheduledPlan && this.scheduledPlan.downloadUrl; const streamPromise = new Promise((resolve, reject) => { if (url) { winston.info(`[stream] beginning stream via download url`, this.logInfo); - let hasResolved = false; - httpRequest - .get(url, { timeout }) - .on("error", (err) => { - if (hasResolved && err.code === "ECONNRESET") { - winston.info(`[stream] ignoring ECONNRESET that occured after streaming finished`, this.logInfo); - } - else { - winston.error(`[stream] request stream error`, Object.assign(Object.assign({}, this.logInfo), { error: err.message, stack: err.stack })); - reject(err); - } - }) - .on("finish", () => { - winston.info(`[stream] streaming via download url finished`, this.logInfo); - }) - .on("socket", (socket) => { - winston.info(`[stream] setting keepalive on socket`, this.logInfo); - socket.setKeepAlive(true); - }) - .on("abort", () => { - winston.info(`[stream] streaming via download url aborted`, this.logInfo); - }) - .on("response", () => { - winston.info(`[stream] got response from download url`, this.logInfo); - }) - .on("close", () => { - winston.info(`[stream] request stream closed`, this.logInfo); - }) - .pipe(stream) - .on("error", (err) => { - winston.error(`[stream] PassThrough stream error`, Object.assign({}, this.logInfo)); - reject(err); - }) - .on("finish", () => { - winston.info(`[stream] PassThrough stream finished`, this.logInfo); - resolve(); - hasResolved = true; - }) - .on("close", () => { - winston.info(`[stream] PassThrough stream closed`, this.logInfo); - }); + try { + (0, node_fetch_1.default)(url).then((response) => { + if (response.ok) { + response.body.pipe(stream) + .on("error", (err) => { + winston.error(`[stream] PassThrough stream error`, Object.assign({}, this.logInfo)); + reject(err); + }) + .on("finish", () => { + winston.info(`[stream] PassThrough stream finished`, this.logInfo); + resolve(); + }) + .on("close", () => { + winston.info(`[stream] PassThrough stream closed`, this.logInfo); + }); + } + else { + const responseText = `There was a problem in the streaming callback Error Code: ${response.status}`; + winston.warn(responseText, this.logInfo); + reject(responseText); + } + }).catch((err) => { + const responseText = `There was a problem in the fetch request Error Code: ${err.toString()}`; + winston.warn(responseText, this.logInfo); + reject(responseText); + }); + } + catch (e) { + winston.warn(`Erorr connecting to callback url`, this.logInfo); + reject(e); + } } else { if (this.attachment && this.attachment.dataBuffer) { diff --git a/package.json b/package.json index fddb10f5..5f439f67 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "@types/express": "^4.17.17", "@types/jsforce": "^1.9.33", "@types/node": "^18.11.11", + "@types/node-fetch": "^2.6.11", "@types/nodemailer": "^4.6.8", "@types/normalize-url": "3.3.0", "@types/oboe": "^2.0.29", diff --git a/src/hub/action_request.ts b/src/hub/action_request.ts index faba2b06..5bc26197 100644 --- a/src/hub/action_request.ts +++ b/src/hub/action_request.ts @@ -1,6 +1,6 @@ import * as express from "express" +import fetch from "node-fetch" import * as oboe from "oboe" -import * as httpRequest from "request" import * as semver from "semver" import { PassThrough, Readable } from "stream" import * as winston from "winston" @@ -180,62 +180,43 @@ export class ActionRequest { const stream = new PassThrough() const returnPromise = callback(stream) - const timeout = process.env.ACTION_HUB_STREAM_REQUEST_TIMEOUT ? - parseInt(process.env.ACTION_HUB_STREAM_REQUEST_TIMEOUT, 10) - : - 13 * 60 * 1000 const url = this.scheduledPlan && this.scheduledPlan.downloadUrl const streamPromise = new Promise((resolve, reject) => { if (url) { winston.info(`[stream] beginning stream via download url`, this.logInfo) - let hasResolved = false - httpRequest - .get(url, {timeout}) - .on("error", (err) => { - if (hasResolved && (err as any).code === "ECONNRESET") { - winston.info(`[stream] ignoring ECONNRESET that occured after streaming finished`, this.logInfo) + try { + fetch(url).then((response) => { + if (response.ok) { + response.body.pipe(stream) + .on("error", (err) => { + winston.error(`[stream] PassThrough stream error`, { + ...this.logInfo, + }) + reject(err) + }) + .on("finish", () => { + winston.info(`[stream] PassThrough stream finished`, this.logInfo) + resolve() + }) + .on("close", () => { + winston.info(`[stream] PassThrough stream closed`, this.logInfo) + }) } else { - winston.error(`[stream] request stream error`, { - ...this.logInfo, - error: err.message, - stack: err.stack, - }) - reject(err) + const responseText = `There was a problem in the streaming callback Error Code: ${response.status}` + winston.warn(responseText, this.logInfo) + reject(responseText) } + }).catch((err) => { + const responseText = `There was a problem in the fetch request Error Code: ${err.toString()}` + winston.warn(responseText, this.logInfo) + reject(responseText) }) - .on("finish", () => { - winston.info(`[stream] streaming via download url finished`, this.logInfo) - }) - .on("socket", (socket) => { - winston.info(`[stream] setting keepalive on socket`, this.logInfo) - socket.setKeepAlive(true) - }) - .on("abort", () => { - winston.info(`[stream] streaming via download url aborted`, this.logInfo) - }) - .on("response", () => { - winston.info(`[stream] got response from download url`, this.logInfo) - }) - .on("close", () => { - winston.info(`[stream] request stream closed`, this.logInfo) - }) - .pipe(stream) - .on("error", (err) => { - winston.error(`[stream] PassThrough stream error`, { - ...this.logInfo, - }) - reject(err) - }) - .on("finish", () => { - winston.info(`[stream] PassThrough stream finished`, this.logInfo) - resolve() - hasResolved = true - }) - .on("close", () => { - winston.info(`[stream] PassThrough stream closed`, this.logInfo) - }) + } catch (e) { + winston.warn(`Erorr connecting to callback url`, this.logInfo) + reject(e) + } } else { if (this.attachment && this.attachment.dataBuffer) { winston.info(`Using "fake" streaming because request contained attachment data.`, this.logInfo) diff --git a/yarn.lock b/yarn.lock index ac1325bb..6933761e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -627,6 +627,14 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== +"@types/node-fetch@^2.6.11": + version "2.6.11" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" + integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== + dependencies: + "@types/node" "*" + form-data "^4.0.0" + "@types/node@*": version "17.0.10" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.10.tgz#616f16e9d3a2a3d618136b1be244315d95bd7cab" From 84919606adf3c920c471fc8aa27fcf87ee6d2277 Mon Sep 17 00:00:00 2001 From: Phillip Peralez Date: Fri, 12 Apr 2024 17:29:17 +0000 Subject: [PATCH 2/5] Make multiline log consistent --- lib/hub/action_request.js | 4 ++-- src/hub/action_request.ts | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/hub/action_request.js b/lib/hub/action_request.js index 12eaa986..5b9cf484 100644 --- a/lib/hub/action_request.js +++ b/lib/hub/action_request.js @@ -131,7 +131,7 @@ class ActionRequest { if (response.ok) { response.body.pipe(stream) .on("error", (err) => { - winston.error(`[stream] PassThrough stream error`, Object.assign({}, this.logInfo)); + winston.error(`[stream] PassThrough stream error`, this.logInfo); reject(err); }) .on("finish", () => { @@ -154,7 +154,7 @@ class ActionRequest { }); } catch (e) { - winston.warn(`Erorr connecting to callback url`, this.logInfo); + winston.warn(`Error connecting to callback url`, this.logInfo); reject(e); } } diff --git a/src/hub/action_request.ts b/src/hub/action_request.ts index 5bc26197..791bb0a7 100644 --- a/src/hub/action_request.ts +++ b/src/hub/action_request.ts @@ -191,9 +191,7 @@ export class ActionRequest { if (response.ok) { response.body.pipe(stream) .on("error", (err) => { - winston.error(`[stream] PassThrough stream error`, { - ...this.logInfo, - }) + winston.error(`[stream] PassThrough stream error`, this.logInfo) reject(err) }) .on("finish", () => { @@ -214,7 +212,7 @@ export class ActionRequest { reject(responseText) }) } catch (e) { - winston.warn(`Erorr connecting to callback url`, this.logInfo) + winston.warn(`Error connecting to callback url`, this.logInfo) reject(e) } } else { From 376fd87dc95515ea8485a32b06e4628ff13caeb9 Mon Sep 17 00:00:00 2001 From: Phillip Peralez Date: Fri, 5 Apr 2024 19:34:15 +0000 Subject: [PATCH 3/5] Replacing request library for callbacks with fetch --- src/hub/action_request.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hub/action_request.ts b/src/hub/action_request.ts index 791bb0a7..97ae9493 100644 --- a/src/hub/action_request.ts +++ b/src/hub/action_request.ts @@ -187,10 +187,10 @@ export class ActionRequest { if (url) { winston.info(`[stream] beginning stream via download url`, this.logInfo) try { - fetch(url).then((response) => { + fetch(url).then((response: any) => { if (response.ok) { response.body.pipe(stream) - .on("error", (err) => { + .on("error", (err: any) => { winston.error(`[stream] PassThrough stream error`, this.logInfo) reject(err) }) @@ -206,7 +206,7 @@ export class ActionRequest { winston.warn(responseText, this.logInfo) reject(responseText) } - }).catch((err) => { + }).catch((err: any) => { const responseText = `There was a problem in the fetch request Error Code: ${err.toString()}` winston.warn(responseText, this.logInfo) reject(responseText) From a160e0fd39acff8c4f38a80e54b901df22b16b19 Mon Sep 17 00:00:00 2001 From: Phillip Peralez Date: Mon, 13 May 2024 09:33:04 -0600 Subject: [PATCH 4/5] Add build files and add node-fetch library rather than the default --- lib/hub/action_request.js | 6 ++--- package.json | 3 ++- src/hub/action_request.ts | 6 ++--- yarn.lock | 50 ++++++++++++++++++++++++++++++++++----- 4 files changed, 52 insertions(+), 13 deletions(-) diff --git a/lib/hub/action_request.js b/lib/hub/action_request.js index 5b9cf484..1a1df78e 100644 --- a/lib/hub/action_request.js +++ b/lib/hub/action_request.js @@ -136,19 +136,19 @@ class ActionRequest { }) .on("finish", () => { winston.info(`[stream] PassThrough stream finished`, this.logInfo); - resolve(); }) .on("close", () => { winston.info(`[stream] PassThrough stream closed`, this.logInfo); + resolve(); }); } else { - const responseText = `There was a problem in the streaming callback Error Code: ${response.status}`; + const responseText = `[stream] There was a problem in the callback HTTPS Status Code: ${response.status}`; winston.warn(responseText, this.logInfo); reject(responseText); } }).catch((err) => { - const responseText = `There was a problem in the fetch request Error Code: ${err.toString()}`; + const responseText = `[stream] There was a problem in the fetch request: ${err.toString()}`; winston.warn(responseText, this.logInfo); reject(responseText); }); diff --git a/package.json b/package.json index 5f439f67..3997d23f 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "@types/express": "^4.17.17", "@types/jsforce": "^1.9.33", "@types/node": "^18.11.11", - "@types/node-fetch": "^2.6.11", + "@types/node-fetch": "^3.0.3", "@types/nodemailer": "^4.6.8", "@types/normalize-url": "3.3.0", "@types/oboe": "^2.0.29", @@ -81,6 +81,7 @@ "node-marketo-rest": "^0.7.8", "nodemailer": "^6.6.1", "nodemon": "^1.19.4", + "node-fetch": "^3.3.2", "normalize-url": "4.0.0", "oboe": "^2.1.5", "queue": "^4.5.1", diff --git a/src/hub/action_request.ts b/src/hub/action_request.ts index 97ae9493..8f9fb450 100644 --- a/src/hub/action_request.ts +++ b/src/hub/action_request.ts @@ -196,18 +196,18 @@ export class ActionRequest { }) .on("finish", () => { winston.info(`[stream] PassThrough stream finished`, this.logInfo) - resolve() }) .on("close", () => { winston.info(`[stream] PassThrough stream closed`, this.logInfo) + resolve() }) } else { - const responseText = `There was a problem in the streaming callback Error Code: ${response.status}` + const responseText = `[stream] There was a problem in the callback HTTPS Status Code: ${response.status}` winston.warn(responseText, this.logInfo) reject(responseText) } }).catch((err: any) => { - const responseText = `There was a problem in the fetch request Error Code: ${err.toString()}` + const responseText = `[stream] There was a problem in the fetch request: ${err.toString()}` winston.warn(responseText, this.logInfo) reject(responseText) }) diff --git a/yarn.lock b/yarn.lock index 6933761e..27be94bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -627,13 +627,12 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== -"@types/node-fetch@^2.6.11": - version "2.6.11" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" - integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== +"@types/node-fetch@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-3.0.3.tgz#9d969c9a748e841554a40ee435d26e53fa3ee899" + integrity sha512-HhggYPH5N+AQe/OmN6fmhKmRRt2XuNJow+R3pQwJxOOF9GuwM7O2mheyGeIrs5MOIeNjDEdgdoyHBOrFeJBR3g== dependencies: - "@types/node" "*" - form-data "^4.0.0" + node-fetch "*" "@types/node@*": version "17.0.10" @@ -2040,6 +2039,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + datauri@^1.0.5: version "1.1.0" resolved "https://registry.yarnpkg.com/datauri/-/datauri-1.1.0.tgz#c6184ff6b928ede4e41ccc23ab954c7839c4fb39" @@ -2681,6 +2685,14 @@ fecha@^4.2.0: resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.2.tgz#902c69d332b93c69be48992b9a11e41d36c03581" integrity sha512-5rOQWkBVz3FnYWTi/ELZmq4CoK1Pb+xKNZWuJRsOwo0+8DrP43CrWJtyLVvb5U7z7ggE5llahfDbLjaVNzXVJQ== +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -2851,6 +2863,13 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + formidable@^1.2.2, formidable@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/formidable/-/formidable-3.2.4.tgz#c0019368718de33ecb637c66d03b6342a677893a" @@ -4805,6 +4824,20 @@ nise@^1.3.3: lolex "^5.0.1" path-to-regexp "^1.7.0" +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@*, node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -6981,6 +7014,11 @@ weak-map@^1.0.5: resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.8.tgz#394c18a9e8262e790544ed8b55c6a4ddad1cb1a3" integrity sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw== +web-streams-polyfill@^3.0.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" From 86cfebb746fc82f4a708859b66dab2c5db48eb7a Mon Sep 17 00:00:00 2001 From: Phillip Peralez Date: Tue, 14 May 2024 09:34:23 -0600 Subject: [PATCH 5/5] Roll back to previous node-fetch. Not ready to do full ecma module rewrite --- package.json | 3 +-- yarn.lock | 50 ++++++-------------------------------------------- 2 files changed, 7 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index 3997d23f..5f439f67 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "@types/express": "^4.17.17", "@types/jsforce": "^1.9.33", "@types/node": "^18.11.11", - "@types/node-fetch": "^3.0.3", + "@types/node-fetch": "^2.6.11", "@types/nodemailer": "^4.6.8", "@types/normalize-url": "3.3.0", "@types/oboe": "^2.0.29", @@ -81,7 +81,6 @@ "node-marketo-rest": "^0.7.8", "nodemailer": "^6.6.1", "nodemon": "^1.19.4", - "node-fetch": "^3.3.2", "normalize-url": "4.0.0", "oboe": "^2.1.5", "queue": "^4.5.1", diff --git a/yarn.lock b/yarn.lock index 27be94bd..6933761e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -627,12 +627,13 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== -"@types/node-fetch@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-3.0.3.tgz#9d969c9a748e841554a40ee435d26e53fa3ee899" - integrity sha512-HhggYPH5N+AQe/OmN6fmhKmRRt2XuNJow+R3pQwJxOOF9GuwM7O2mheyGeIrs5MOIeNjDEdgdoyHBOrFeJBR3g== +"@types/node-fetch@^2.6.11": + version "2.6.11" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" + integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== dependencies: - node-fetch "*" + "@types/node" "*" + form-data "^4.0.0" "@types/node@*": version "17.0.10" @@ -2039,11 +2040,6 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - datauri@^1.0.5: version "1.1.0" resolved "https://registry.yarnpkg.com/datauri/-/datauri-1.1.0.tgz#c6184ff6b928ede4e41ccc23ab954c7839c4fb39" @@ -2685,14 +2681,6 @@ fecha@^4.2.0: resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.2.tgz#902c69d332b93c69be48992b9a11e41d36c03581" integrity sha512-5rOQWkBVz3FnYWTi/ELZmq4CoK1Pb+xKNZWuJRsOwo0+8DrP43CrWJtyLVvb5U7z7ggE5llahfDbLjaVNzXVJQ== -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -2863,13 +2851,6 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - formidable@^1.2.2, formidable@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/formidable/-/formidable-3.2.4.tgz#c0019368718de33ecb637c66d03b6342a677893a" @@ -4824,20 +4805,6 @@ nise@^1.3.3: lolex "^5.0.1" path-to-regexp "^1.7.0" -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@*, node-fetch@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" - integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -7014,11 +6981,6 @@ weak-map@^1.0.5: resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.8.tgz#394c18a9e8262e790544ed8b55c6a4ddad1cb1a3" integrity sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw== -web-streams-polyfill@^3.0.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" - integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"