1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Update dependecies include got

This commit is contained in:
Nick O'Leary 2023-04-28 21:37:03 +01:00
parent 55a9a29f76
commit 20abe4a40c
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
8 changed files with 34 additions and 30 deletions

View File

@ -44,8 +44,8 @@
"express": "4.18.2", "express": "4.18.2",
"express-session": "1.17.3", "express-session": "1.17.3",
"form-data": "4.0.0", "form-data": "4.0.0",
"fs-extra": "10.1.0", "fs-extra": "11.1.1",
"got": "11.8.6", "got": "12.6.0",
"hash-sum": "2.0.0", "hash-sum": "2.0.0",
"hpagent": "1.2.0", "hpagent": "1.2.0",
"https-proxy-agent": "5.0.1", "https-proxy-agent": "5.0.1",
@ -60,7 +60,7 @@
"memorystore": "1.6.7", "memorystore": "1.6.7",
"mime": "3.0.0", "mime": "3.0.0",
"moment": "2.29.4", "moment": "2.29.4",
"moment-timezone": "0.5.41", "moment-timezone": "0.5.43",
"mqtt": "4.3.7", "mqtt": "4.3.7",
"multer": "1.4.5-lts.1", "multer": "1.4.5-lts.1",
"mustache": "4.2.0", "mustache": "4.2.0",
@ -73,13 +73,13 @@
"passport-http-bearer": "1.0.1", "passport-http-bearer": "1.0.1",
"passport-oauth2-client-password": "0.1.2", "passport-oauth2-client-password": "0.1.2",
"raw-body": "2.5.2", "raw-body": "2.5.2",
"semver": "7.3.8", "semver": "7.5.0",
"tar": "6.1.13", "tar": "6.1.13",
"tough-cookie": "4.1.2", "tough-cookie": "4.1.2",
"uglify-js": "3.17.4", "uglify-js": "3.17.4",
"uuid": "9.0.0", "uuid": "9.0.0",
"ws": "7.5.6", "ws": "7.5.6",
"xml2js": "0.4.23" "xml2js": "0.5.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"bcrypt": "5.1.0" "bcrypt": "5.1.0"
@ -108,14 +108,14 @@
"i18next-http-backend": "1.4.1", "i18next-http-backend": "1.4.1",
"jquery-i18next": "1.2.1", "jquery-i18next": "1.2.1",
"jsdoc-nr-template": "github:node-red/jsdoc-nr-template", "jsdoc-nr-template": "github:node-red/jsdoc-nr-template",
"marked": "4.2.12", "marked": "4.3.0",
"mermaid": "^9.3.0", "mermaid": "^9.4.3",
"minami": "1.2.3", "minami": "1.2.3",
"mocha": "9.2.2", "mocha": "9.2.2",
"node-red-node-test-helper": "^0.3.0", "node-red-node-test-helper": "^0.3.0",
"nodemon": "2.0.20", "nodemon": "2.0.20",
"proxy": "^1.0.2", "proxy": "^1.0.2",
"sass": "1.58.3", "sass": "1.62.1",
"should": "13.2.3", "should": "13.2.3",
"sinon": "11.1.2", "sinon": "11.1.2",
"stoppable": "^1.1.0", "stoppable": "^1.1.0",

View File

@ -14,9 +14,9 @@
* limitations under the License. * limitations under the License.
**/ **/
module.exports = function(RED) { module.exports = async function(RED) {
"use strict"; "use strict";
const got = require("got"); const { got } = await import('got')
const {CookieJar} = require("tough-cookie"); const {CookieJar} = require("tough-cookie");
const { HttpProxyAgent, HttpsProxyAgent } = require('hpagent'); const { HttpProxyAgent, HttpsProxyAgent } = require('hpagent');
const FormData = require('form-data'); const FormData = require('form-data');
@ -210,24 +210,24 @@ in your Node-RED user directory (${RED.settings.userDir}).
// set defaultport, else when using HttpsProxyAgent, it's defaultPort of 443 will be used :(. // set defaultport, else when using HttpsProxyAgent, it's defaultPort of 443 will be used :(.
// Had to remove this to get http->https redirect to work // Had to remove this to get http->https redirect to work
// opts.defaultPort = isHttps?443:80; // opts.defaultPort = isHttps?443:80;
opts.timeout = node.reqTimeout; opts.timeout = { request: node.reqTimeout || 5000 };
opts.throwHttpErrors = false; opts.throwHttpErrors = false;
// TODO: add UI option to auto decompress. Setting to false for 1.x compatibility // TODO: add UI option to auto decompress. Setting to false for 1.x compatibility
opts.decompress = false; opts.decompress = false;
opts.method = method; opts.method = method;
opts.retry = 0; opts.retry = { limit: 0 };
opts.responseType = 'buffer'; opts.responseType = 'buffer';
opts.maxRedirects = 21; opts.maxRedirects = 21;
opts.cookieJar = new CookieJar(); opts.cookieJar = new CookieJar();
opts.ignoreInvalidCookies = true; opts.ignoreInvalidCookies = true;
opts.forever = nodeHTTPPersistent; // opts.forever = nodeHTTPPersistent;
if (msg.requestTimeout !== undefined) { if (msg.requestTimeout !== undefined) {
if (isNaN(msg.requestTimeout)) { if (isNaN(msg.requestTimeout)) {
node.warn(RED._("httpin.errors.timeout-isnan")); node.warn(RED._("httpin.errors.timeout-isnan"));
} else if (msg.requestTimeout < 1) { } else if (msg.requestTimeout < 1) {
node.warn(RED._("httpin.errors.timeout-isnegative")); node.warn(RED._("httpin.errors.timeout-isnegative"));
} else { } else {
opts.timeout = msg.requestTimeout; opts.timeout = { request: msg.requestTimeout };
} }
} }
const originalHeaderMap = {}; const originalHeaderMap = {};
@ -245,9 +245,12 @@ in your Node-RED user directory (${RED.settings.userDir}).
delete options.headers[h]; delete options.headers[h];
} }
}) })
if (node.insecureHTTPParser) { if (node.insecureHTTPParser) {
options.insecureHTTPParser = true // Setting the property under _unixOptions as pretty
// much the only hack available to get got to apply
// a core http option it doesn't think we should be
// allowed to set
options._unixOptions = { ...options.unixOptions, insecureHTTPParser: true }
} }
} }
], ],
@ -403,15 +406,16 @@ in your Node-RED user directory (${RED.settings.userDir}).
return response return response
} }
const requestUrl = new URL(response.request.requestUrl); const requestUrl = new URL(response.request.requestUrl);
const options = response.request.options; const options = { headers: {} }
const normalisedHeaders = {}; const normalisedHeaders = {};
Object.keys(response.headers).forEach(k => { Object.keys(response.headers).forEach(k => {
normalisedHeaders[k.toLowerCase()] = response.headers[k] normalisedHeaders[k.toLowerCase()] = response.headers[k]
}) })
if (normalisedHeaders['www-authenticate']) { if (normalisedHeaders['www-authenticate']) {
let authHeader = buildDigestHeader(digestCreds.user,digestCreds.password, options.method, requestUrl.pathname, normalisedHeaders['www-authenticate']) let authHeader = buildDigestHeader(digestCreds.user,digestCreds.password, response.request.options.method, requestUrl.pathname, normalisedHeaders['www-authenticate'])
options.headers.Authorization = authHeader; options.headers.Authorization = authHeader;
} }
// response.request.options.merge(options)
sentCreds = true; sentCreds = true;
return retry(options); return retry(options);
} }

View File

@ -27,8 +27,8 @@
"cronosjs": "1.7.1", "cronosjs": "1.7.1",
"denque": "2.1.0", "denque": "2.1.0",
"form-data": "4.0.0", "form-data": "4.0.0",
"fs-extra": "10.1.0", "fs-extra": "11.1.1",
"got": "11.8.6", "got": "12.6.0",
"hash-sum": "2.0.0", "hash-sum": "2.0.0",
"hpagent": "1.2.0", "hpagent": "1.2.0",
"https-proxy-agent": "5.0.1", "https-proxy-agent": "5.0.1",
@ -44,7 +44,7 @@
"tough-cookie": "4.1.2", "tough-cookie": "4.1.2",
"uuid": "9.0.0", "uuid": "9.0.0",
"ws": "7.5.6", "ws": "7.5.6",
"xml2js": "0.4.23", "xml2js": "0.5.0",
"iconv-lite": "0.6.3" "iconv-lite": "0.6.3"
} }
} }

View File

@ -18,8 +18,8 @@
"dependencies": { "dependencies": {
"@node-red/util": "3.1.0-beta.2", "@node-red/util": "3.1.0-beta.2",
"clone": "2.1.2", "clone": "2.1.2",
"fs-extra": "10.1.0", "fs-extra": "11.1.1",
"semver": "7.3.8", "semver": "7.5.0",
"tar": "6.1.13", "tar": "6.1.13",
"uglify-js": "3.17.4" "uglify-js": "3.17.4"
} }

View File

@ -21,7 +21,7 @@
"async-mutex": "0.4.0", "async-mutex": "0.4.0",
"clone": "2.1.2", "clone": "2.1.2",
"express": "4.18.2", "express": "4.18.2",
"fs-extra": "10.1.0", "fs-extra": "11.1.1",
"json-stringify-safe": "5.0.1" "json-stringify-safe": "5.0.1"
} }
} }

View File

@ -15,12 +15,12 @@
} }
], ],
"dependencies": { "dependencies": {
"fs-extra": "10.1.0", "fs-extra": "11.1.1",
"i18next": "21.10.0", "i18next": "21.10.0",
"json-stringify-safe": "5.0.1", "json-stringify-safe": "5.0.1",
"jsonata": "1.8.6", "jsonata": "1.8.6",
"lodash.clonedeep": "^4.5.0", "lodash.clonedeep": "^4.5.0",
"moment": "2.29.4", "moment": "2.29.4",
"moment-timezone": "0.5.41" "moment-timezone": "0.5.43"
} }
} }

View File

@ -38,10 +38,10 @@
"basic-auth": "2.0.1", "basic-auth": "2.0.1",
"bcryptjs": "2.4.3", "bcryptjs": "2.4.3",
"express": "4.18.2", "express": "4.18.2",
"fs-extra": "10.1.0", "fs-extra": "11.1.1",
"node-red-admin": "^3.0.0", "node-red-admin": "^3.0.0",
"nopt": "5.0.0", "nopt": "5.0.0",
"semver": "7.3.8" "semver": "7.5.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"bcrypt": "5.1.0" "bcrypt": "5.1.0"

View File

@ -223,7 +223,7 @@ describe('HTTP Request Node', function() {
} }
authFields[match[1]] = match[2] || match[3]; authFields[match[1]] = match[2] || match[3];
} }
console.log(JSON.stringify(authFields)); // console.log(JSON.stringify(authFields));
if (qop && authFields['qop'] != qop) { if (qop && authFields['qop'] != qop) {
console.log('test1'); console.log('test1');
@ -250,7 +250,7 @@ describe('HTTP Request Node', function() {
req, algorithm, sess, realm, username, nonce, nc, cnonce, qop req, algorithm, sess, realm, username, nonce, nc, cnonce, qop
); );
if (!response || expectedResponse.toLowerCase() !== response.toLowerCase()) { if (!response || expectedResponse.toLowerCase() !== response.toLowerCase()) {
console.log('test3'); console.log('test3', response, expectedResponse);
res.status(401).end(); res.status(401).end();
return; return;
} }