diff --git a/Node-1st-gen/github-to-slack/functions/index.js b/Node-1st-gen/github-to-slack/functions/index.js index 98b5c24b8a..64624a6ed0 100644 --- a/Node-1st-gen/github-to-slack/functions/index.js +++ b/Node-1st-gen/github-to-slack/functions/index.js @@ -16,7 +16,6 @@ 'use strict'; const functions = require('firebase-functions/v1'); -const fetch = require('node-fetch'); const crypto = require('node:crypto'); const secureCompare = require('secure-compare'); diff --git a/Node-1st-gen/github-to-slack/functions/package.json b/Node-1st-gen/github-to-slack/functions/package.json index 966c307458..e065d64ac6 100644 --- a/Node-1st-gen/github-to-slack/functions/package.json +++ b/Node-1st-gen/github-to-slack/functions/package.json @@ -5,7 +5,6 @@ "eslint-plugin-promise": "^7.2.1", "firebase-admin": "^13.0.2", "firebase-functions": "^6.3.0", - "node-fetch": "^2.6.7", "secure-compare": "^3.0.1" }, "devDependencies": { diff --git a/Node-1st-gen/github-to-slack/functions/pnpm-lock.yaml b/Node-1st-gen/github-to-slack/functions/pnpm-lock.yaml index efabb97811..89fb2bdb4b 100644 --- a/Node-1st-gen/github-to-slack/functions/pnpm-lock.yaml +++ b/Node-1st-gen/github-to-slack/functions/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: firebase-functions: specifier: ^6.3.0 version: 6.3.0(firebase-admin@13.0.2) - node-fetch: - specifier: ^2.6.7 - version: 2.7.0 secure-compare: specifier: ^3.0.1 version: 3.0.1 diff --git a/Node-1st-gen/minimal-webhook/functions/index.js b/Node-1st-gen/minimal-webhook/functions/index.js index 3a417dfefe..8346dfb7d6 100644 --- a/Node-1st-gen/minimal-webhook/functions/index.js +++ b/Node-1st-gen/minimal-webhook/functions/index.js @@ -16,7 +16,6 @@ 'use strict'; const functions = require('firebase-functions/v1'); -const fetch = require('node-fetch'); // This is the URL that we will callback and send the content of the updated data node. // As an example we're using a Request Bin from http://requestb.in @@ -33,7 +32,7 @@ exports.webhook = functions.database.ref('/hooks/{hookId}').onCreate(async (snap }); if (!response.ok) { - throw new Error(`HTTP Error: ${response.statusCode}`); + throw new Error(`HTTP Error: ${response.status}`); } functions.logger.log('SUCCESS! Posted', snap.ref); }); diff --git a/Node-1st-gen/minimal-webhook/functions/package.json b/Node-1st-gen/minimal-webhook/functions/package.json index 457edf2f2d..4b39a27ed0 100644 --- a/Node-1st-gen/minimal-webhook/functions/package.json +++ b/Node-1st-gen/minimal-webhook/functions/package.json @@ -4,8 +4,7 @@ "dependencies": { "eslint-plugin-promise": "^7.2.1", "firebase-admin": "^13.0.2", - "firebase-functions": "^6.3.0", - "node-fetch": "^2.6.7" + "firebase-functions": "^6.3.0" }, "devDependencies": { "eslint": "^8.57.1" diff --git a/Node-1st-gen/minimal-webhook/functions/pnpm-lock.yaml b/Node-1st-gen/minimal-webhook/functions/pnpm-lock.yaml index 2ae9e1a179..91f5531b35 100644 --- a/Node-1st-gen/minimal-webhook/functions/pnpm-lock.yaml +++ b/Node-1st-gen/minimal-webhook/functions/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: firebase-functions: specifier: ^6.3.0 version: 6.3.0(firebase-admin@13.0.2) - node-fetch: - specifier: ^2.6.7 - version: 2.7.0 devDependencies: eslint: specifier: ^8.57.1 diff --git a/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/index.js b/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/index.js index 34ae140ad3..99a1c5129d 100644 --- a/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/index.js +++ b/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/index.js @@ -15,7 +15,6 @@ */ "use strict"; const path = require("path"); -const fetch = require("node-fetch"); const functions = require('firebase-functions/v1'); const {initializeApp} = require("firebase-admin/app"); const {getFunctions} = require("firebase-admin/functions"); @@ -80,16 +79,13 @@ exports.backupApod = functions logger.info(`Fetched ${picUrl} from NASA API for date ${date}.`); const picResp = await fetch(picUrl); + const imageBuffer = await picResp.arrayBuffer(); + const buffer = Buffer.from(imageBuffer); const dest = getStorage() .bucket(BACKUP_BUCKET) .file(`apod/${date}${path.extname(picUrl)}`); try { - await new Promise((resolve, reject) => { - const stream = dest.createWriteStream(); - picResp.body.pipe(stream); - picResp.body.on("end", resolve); - stream.on("error", reject); - }); + await dest.save(buffer); } catch (err) { logger.error(`Failed to upload ${picUrl} to ${dest.name}`, err); throw new HttpsError("internal", "Uh-oh. Something broke."); diff --git a/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/package.json b/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/package.json index 398383998c..6877c58c0c 100644 --- a/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/package.json +++ b/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/package.json @@ -18,8 +18,7 @@ "dependencies": { "eslint-plugin-promise": "^7.2.1", "firebase-admin": "^13.0.2", - "firebase-functions": "^6.3.0", - "node-fetch": "^2.6.7" + "firebase-functions": "^6.3.0" }, "devDependencies": { "eslint": "^8.57.1", diff --git a/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/pnpm-lock.yaml b/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/pnpm-lock.yaml index bd48ce18f8..3583c15ca1 100644 --- a/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/pnpm-lock.yaml +++ b/Node-1st-gen/quickstarts/taskqueues-backup-images/functions/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: firebase-functions: specifier: ^6.3.0 version: 6.3.0(firebase-admin@13.0.2) - node-fetch: - specifier: ^2.6.7 - version: 2.7.0 devDependencies: eslint: specifier: ^8.57.1 diff --git a/Node-1st-gen/remote-config-diff/functions/index.js b/Node-1st-gen/remote-config-diff/functions/index.js index bce89577c4..ef8e1c3d01 100644 --- a/Node-1st-gen/remote-config-diff/functions/index.js +++ b/Node-1st-gen/remote-config-diff/functions/index.js @@ -16,7 +16,6 @@ const functions = require('firebase-functions/v1'); const admin = require('firebase-admin'); -const fetch = require('node-fetch'); const jsonDiff = require('json-diff'); admin.initializeApp(); diff --git a/Node-1st-gen/remote-config-diff/functions/package.json b/Node-1st-gen/remote-config-diff/functions/package.json index bf3f32eaa9..e7609fe20b 100644 --- a/Node-1st-gen/remote-config-diff/functions/package.json +++ b/Node-1st-gen/remote-config-diff/functions/package.json @@ -15,7 +15,6 @@ "firebase-admin": "^13.0.2", "firebase-functions": "^6.3.0", "json-diff": "^1.0.3", - "node-fetch": "^2.6.9", "request": "^2.88.2", "request-promise": "^4.2.5" }, diff --git a/Node-1st-gen/remote-config-diff/functions/pnpm-lock.yaml b/Node-1st-gen/remote-config-diff/functions/pnpm-lock.yaml index cfb4def482..ecb79f32f7 100644 --- a/Node-1st-gen/remote-config-diff/functions/pnpm-lock.yaml +++ b/Node-1st-gen/remote-config-diff/functions/pnpm-lock.yaml @@ -20,9 +20,6 @@ importers: json-diff: specifier: ^1.0.3 version: 1.0.6 - node-fetch: - specifier: ^2.6.9 - version: 2.7.0 request: specifier: ^2.88.2 version: 2.88.2 diff --git a/Node-1st-gen/testlab-to-slack/functions/index.js b/Node-1st-gen/testlab-to-slack/functions/index.js index 0b6858abfb..832ce0d594 100644 --- a/Node-1st-gen/testlab-to-slack/functions/index.js +++ b/Node-1st-gen/testlab-to-slack/functions/index.js @@ -16,9 +16,6 @@ const functions = require('firebase-functions/v1'); -// The node-fetch library to send web requests to Slack. -const fetch = require("node-fetch"); - /** * Posts a message to Slack via a Webhook * @param {string} title diff --git a/Node-1st-gen/testlab-to-slack/functions/package.json b/Node-1st-gen/testlab-to-slack/functions/package.json index c72658f77c..3c0a281e0f 100644 --- a/Node-1st-gen/testlab-to-slack/functions/package.json +++ b/Node-1st-gen/testlab-to-slack/functions/package.json @@ -16,8 +16,7 @@ "eslint": "8", "eslint-plugin-promise": "^7.2.1", "firebase-admin": "^13.0.2", - "firebase-functions": "^6.3.0", - "node-fetch": "^2.0.0" + "firebase-functions": "^6.3.0" }, "devDependencies": { "firebase-functions-test": "^3.4.0" diff --git a/Node-1st-gen/testlab-to-slack/functions/pnpm-lock.yaml b/Node-1st-gen/testlab-to-slack/functions/pnpm-lock.yaml index 457ccd1656..383e89a20c 100644 --- a/Node-1st-gen/testlab-to-slack/functions/pnpm-lock.yaml +++ b/Node-1st-gen/testlab-to-slack/functions/pnpm-lock.yaml @@ -20,9 +20,6 @@ importers: firebase-functions: specifier: ^6.3.0 version: 6.3.0(firebase-admin@13.0.2) - node-fetch: - specifier: ^2.0.0 - version: 2.7.0 devDependencies: firebase-functions-test: specifier: ^3.4.0 diff --git a/Node-1st-gen/username-password-auth/functions/index.js b/Node-1st-gen/username-password-auth/functions/index.js index 09921518cb..0a38ddc613 100644 --- a/Node-1st-gen/username-password-auth/functions/index.js +++ b/Node-1st-gen/username-password-auth/functions/index.js @@ -29,9 +29,6 @@ admin.initializeApp({ databaseURL: `https://${process.env.GCLOUD_PROJECT}.firebaseio.com`, }); -const fetch = require('node-fetch'); - - /** * Authenticate the provided credentials returning a Firebase custom auth token. * `username` and `password` values are expected in the body of the request. diff --git a/Node-1st-gen/username-password-auth/functions/package.json b/Node-1st-gen/username-password-auth/functions/package.json index 1432df0c40..46596b6fcd 100644 --- a/Node-1st-gen/username-password-auth/functions/package.json +++ b/Node-1st-gen/username-password-auth/functions/package.json @@ -5,8 +5,7 @@ "cors": "^2.8.5", "eslint-plugin-promise": "^7.2.1", "firebase-admin": "^13.0.2", - "firebase-functions": "^6.3.0", - "node-fetch": "^2.6.7" + "firebase-functions": "^6.3.0" }, "devDependencies": { "eslint": "^8.57.1" diff --git a/Node-1st-gen/username-password-auth/functions/pnpm-lock.yaml b/Node-1st-gen/username-password-auth/functions/pnpm-lock.yaml index 6150e55e53..267925b0e6 100644 --- a/Node-1st-gen/username-password-auth/functions/pnpm-lock.yaml +++ b/Node-1st-gen/username-password-auth/functions/pnpm-lock.yaml @@ -20,9 +20,6 @@ importers: firebase-functions: specifier: ^6.3.0 version: 6.3.0(firebase-admin@13.0.2) - node-fetch: - specifier: ^2.6.7 - version: 2.7.0 devDependencies: eslint: specifier: ^8.57.1 diff --git a/Node/alerts-to-discord/functions/index.js b/Node/alerts-to-discord/functions/index.js index 59626a055e..c004b88600 100644 --- a/Node/alerts-to-discord/functions/index.js +++ b/Node/alerts-to-discord/functions/index.js @@ -27,8 +27,6 @@ const { const logger = require("firebase-functions/logger"); // [END v2import] -const fetch = require("node-fetch"); - /** * Posts a message to Discord with Discord's Webhook API * @@ -89,7 +87,7 @@ id: \`${id}\` event.data.payload, ); } else { - throw new Error(response.error); + throw new Error(`Discord returned status code ${response.status}`); } // [END v2SendToDiscord] } catch (error) { @@ -131,7 +129,7 @@ UDID **${testerDeviceIdentifier}** for ${testerDeviceModelName} `Posted iOS device registration alert for ${testerEmail} to Discord`, ); } else { - throw new Error(response.error); + throw new Error(`Discord returned status code ${response.status}`); } // [END v2SendNewTesterIosDeviceToDiscord] } catch (error) { @@ -192,7 +190,7 @@ exports.postperformancealerttodiscord = onThresholdAlertPublished( event.data.payload, ); } else { - throw new Error(response.error); + throw new Error(`Discord returned status code ${response.status}`); } // [END v2SendPerformanceAlertToDiscord] } catch (error) { diff --git a/Node/alerts-to-discord/functions/package.json b/Node/alerts-to-discord/functions/package.json index ac384c799c..f61b1d5250 100644 --- a/Node/alerts-to-discord/functions/package.json +++ b/Node/alerts-to-discord/functions/package.json @@ -16,8 +16,7 @@ "main": "index.js", "dependencies": { "firebase-admin": "^13.0.2", - "firebase-functions": "^6.3.0", - "node-fetch": "^2.6.7" + "firebase-functions": "^6.3.0" }, "devDependencies": { "@types/node": "^17.0.45", diff --git a/Node/alerts-to-discord/functions/pnpm-lock.yaml b/Node/alerts-to-discord/functions/pnpm-lock.yaml index c7da1bbdcf..2dd9e564c3 100644 --- a/Node/alerts-to-discord/functions/pnpm-lock.yaml +++ b/Node/alerts-to-discord/functions/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: firebase-functions: specifier: ^6.3.0 version: 6.3.0(firebase-admin@13.0.2) - node-fetch: - specifier: ^2.6.7 - version: 2.7.0 devDependencies: '@types/node': specifier: ^17.0.45 diff --git a/Node/app-distribution-feedback-to-jira/functions/index.js b/Node/app-distribution-feedback-to-jira/functions/index.js index d335a9513e..e477bf33c7 100644 --- a/Node/app-distribution-feedback-to-jira/functions/index.js +++ b/Node/app-distribution-feedback-to-jira/functions/index.js @@ -18,7 +18,6 @@ import { onInAppFeedbackPublished} from "firebase-functions/alerts/appDistribution"; import {defineInt, defineSecret, defineString} from "firebase-functions/params"; import logger from "firebase-functions/logger"; -import fetch from "node-fetch"; import {FormData} from "formdata-polyfill/esm.min.js"; // The keys are either defined in .env or they are created diff --git a/Node/app-distribution-feedback-to-jira/functions/package.json b/Node/app-distribution-feedback-to-jira/functions/package.json index dfc5e7fd72..fba939dd75 100644 --- a/Node/app-distribution-feedback-to-jira/functions/package.json +++ b/Node/app-distribution-feedback-to-jira/functions/package.json @@ -16,8 +16,7 @@ "type": "module", "dependencies": { "firebase-functions": "^6.3.0", - "formdata-polyfill": "^4.0.10", - "node-fetch": "^3.3.0" + "formdata-polyfill": "^4.0.10" }, "devDependencies": { "eslint": "^8.57.1", diff --git a/Node/app-distribution-feedback-to-jira/functions/pnpm-lock.yaml b/Node/app-distribution-feedback-to-jira/functions/pnpm-lock.yaml index 992af7e0bd..349654adfb 100644 --- a/Node/app-distribution-feedback-to-jira/functions/pnpm-lock.yaml +++ b/Node/app-distribution-feedback-to-jira/functions/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: formdata-polyfill: specifier: ^4.0.10 version: 4.0.10 - node-fetch: - specifier: ^3.3.0 - version: 3.3.2 devDependencies: eslint: specifier: ^8.57.1 @@ -360,10 +357,6 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -878,10 +871,6 @@ packages: encoding: optional: true - node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -1611,8 +1600,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - data-uri-to-buffer@4.0.1: {} - debug@2.6.9: dependencies: ms: 2.0.0 @@ -2242,12 +2229,6 @@ snapshots: whatwg-url: 5.0.0 optional: true - node-fetch@3.3.2: - dependencies: - data-uri-to-buffer: 4.0.1 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - node-forge@1.3.1: {} object-assign@4.1.1: {} diff --git a/Node/remote-config-diff/functions/index.js b/Node/remote-config-diff/functions/index.js index bd26b31981..7db0dbe59f 100644 --- a/Node/remote-config-diff/functions/index.js +++ b/Node/remote-config-diff/functions/index.js @@ -23,7 +23,6 @@ const logger = require("firebase-functions/logger"); // The Firebase Admin SDK to obtain access tokens. const admin = require("firebase-admin"); const app = admin.initializeApp(); -const fetch = require("node-fetch"); const jsonDiff = require("json-diff"); // [END import] diff --git a/Node/remote-config-diff/functions/package.json b/Node/remote-config-diff/functions/package.json index 387f575dcb..56b458770d 100644 --- a/Node/remote-config-diff/functions/package.json +++ b/Node/remote-config-diff/functions/package.json @@ -13,8 +13,7 @@ "dependencies": { "firebase-admin": "^13.0.2", "firebase-functions": "^6.3.0", - "json-diff": "^0.5.5", - "node-fetch": "^2.6.7" + "json-diff": "^0.5.5" }, "devDependencies": { "eslint": "^8.57.1", diff --git a/Node/remote-config-diff/functions/pnpm-lock.yaml b/Node/remote-config-diff/functions/pnpm-lock.yaml index 5c5ae81498..840e6ac897 100644 --- a/Node/remote-config-diff/functions/pnpm-lock.yaml +++ b/Node/remote-config-diff/functions/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: json-diff: specifier: ^0.5.5 version: 0.5.5 - node-fetch: - specifier: ^2.6.7 - version: 2.7.0 devDependencies: eslint: specifier: ^8.57.1 diff --git a/Node/taskqueues-backup-images/functions/index.js b/Node/taskqueues-backup-images/functions/index.js index 51675820f8..6254b1d5cf 100644 --- a/Node/taskqueues-backup-images/functions/index.js +++ b/Node/taskqueues-backup-images/functions/index.js @@ -23,7 +23,6 @@ const {logger} = require("firebase-functions"); // Dependencies for image backup. const path = require("path"); -const fetch = require("node-fetch"); const {initializeApp} = require("firebase-admin/app"); const {getStorage} = require("firebase-admin/storage"); const {GoogleAuth} = require("google-auth-library"); @@ -85,16 +84,13 @@ exports.backupapod = onTaskDispatched( logger.info(`Fetched ${picUrl} from NASA API for date ${date}.`); const picResp = await fetch(picUrl); + const imageBuffer = await picResp.arrayBuffer(); + const buffer = Buffer.from(imageBuffer); const dest = getStorage() .bucket(BACKUP_BUCKET) .file(`apod/${date}${path.extname(picUrl)}`); try { - await new Promise((resolve, reject) => { - const stream = dest.createWriteStream(); - picResp.body.pipe(stream); - picResp.body.on("end", resolve); - stream.on("error", reject); - }); + await dest.save(buffer); } catch (err) { logger.error(`Failed to upload ${picUrl} to ${dest.name}`, err); throw new HttpsError("internal", "Uh-oh. Something broke."); diff --git a/Node/taskqueues-backup-images/functions/package.json b/Node/taskqueues-backup-images/functions/package.json index abe8308a9d..069e2d3923 100644 --- a/Node/taskqueues-backup-images/functions/package.json +++ b/Node/taskqueues-backup-images/functions/package.json @@ -18,8 +18,7 @@ "dependencies": { "firebase-admin": "^13.0.2", "firebase-functions": "^6.3.0", - "google-auth-library": "^8.6.0", - "node-fetch": "^2.6.7" + "google-auth-library": "^8.6.0" }, "devDependencies": { "eslint": "^8.57.1", diff --git a/Node/taskqueues-backup-images/functions/pnpm-lock.yaml b/Node/taskqueues-backup-images/functions/pnpm-lock.yaml index 0279a99226..294a3e085e 100644 --- a/Node/taskqueues-backup-images/functions/pnpm-lock.yaml +++ b/Node/taskqueues-backup-images/functions/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: google-auth-library: specifier: ^8.6.0 version: 8.9.0 - node-fetch: - specifier: ^2.6.7 - version: 2.7.0 devDependencies: eslint: specifier: ^8.57.1 diff --git a/Node/testlab-to-slack/functions/index.js b/Node/testlab-to-slack/functions/index.js index ec4c650152..81c31a7f09 100644 --- a/Node/testlab-to-slack/functions/index.js +++ b/Node/testlab-to-slack/functions/index.js @@ -20,8 +20,6 @@ // The Cloud Functions for Firebase SDK to set up triggers and logging. const {onTestMatrixCompleted} = require("firebase-functions/testLab"); const {logger} = require("firebase-functions"); -// The node-fetch library to send web requests to Slack. -const fetch = require("node-fetch"); // [END import] // [START postToSlack] diff --git a/Node/testlab-to-slack/functions/package.json b/Node/testlab-to-slack/functions/package.json index 0d9d7c2083..1a9b474588 100644 --- a/Node/testlab-to-slack/functions/package.json +++ b/Node/testlab-to-slack/functions/package.json @@ -15,8 +15,7 @@ }, "dependencies": { "firebase-admin": "^13.0.2", - "firebase-functions": "^6.3.0", - "node-fetch": "^2.0.0" + "firebase-functions": "^6.3.0" }, "devDependencies": { "eslint": "^8.57.1", diff --git a/Node/testlab-to-slack/functions/pnpm-lock.yaml b/Node/testlab-to-slack/functions/pnpm-lock.yaml index 1ab3b09712..dbf1e0ba90 100644 --- a/Node/testlab-to-slack/functions/pnpm-lock.yaml +++ b/Node/testlab-to-slack/functions/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: firebase-functions: specifier: ^6.3.0 version: 6.3.0(firebase-admin@13.0.2) - node-fetch: - specifier: ^2.0.0 - version: 2.7.0 devDependencies: eslint: specifier: ^8.57.1