diff --git a/package-lock.json b/package-lock.json index bafa11d77..3bde6ad63 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "@redhat-cloud-services/frontend-components": "4.2.1", "@redhat-cloud-services/frontend-components-notifications": "4.1.0", "@redhat-cloud-services/frontend-components-utilities": "4.0.2", - "axios": "^0.27.2", + "axios": "^0.28.0", "classnames": "^2.5.1", "fastest-levenshtein": "^1.0.16", "i18next": "^23.7.16", @@ -4766,6 +4766,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/@redhat-cloud-services/frontend-components-config/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, "node_modules/@redhat-cloud-services/frontend-components-config/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -4967,6 +4977,15 @@ "react-router-dom": "^5.0.0 || ^6.0.0" } }, + "node_modules/@redhat-cloud-services/frontend-components-utilities/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, "node_modules/@redhat-cloud-services/rbac-client": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-1.2.13.tgz", @@ -4976,6 +4995,16 @@ "axios": "^0.27.2" } }, + "node_modules/@redhat-cloud-services/rbac-client/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "peer": true, + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, "node_modules/@redhat-cloud-services/tsc-transform-imports": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@redhat-cloud-services/tsc-transform-imports/-/tsc-transform-imports-1.0.5.tgz", @@ -7613,14 +7642,20 @@ } }, "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, + "node_modules/axios/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/axobject-query": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", diff --git a/package.json b/package.json index df548e1a5..9eba783c3 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "@redhat-cloud-services/frontend-components": "4.2.1", "@redhat-cloud-services/frontend-components-notifications": "4.1.0", "@redhat-cloud-services/frontend-components-utilities": "4.0.2", - "axios": "^0.27.2", + "axios": "^0.28.0", "classnames": "^2.5.1", "fastest-levenshtein": "^1.0.16", "i18next": "^23.7.16", diff --git a/src/services/common/__tests__/__snapshots__/serviceConfig.test.js.snap b/src/services/common/__tests__/__snapshots__/serviceConfig.test.js.snap index ce5372e40..53e3a62f8 100644 --- a/src/services/common/__tests__/__snapshots__/serviceConfig.test.js.snap +++ b/src/services/common/__tests__/__snapshots__/serviceConfig.test.js.snap @@ -48,6 +48,7 @@ exports[`ServiceConfig should handle cancelling service calls: cancelled request }, "data": undefined, "env": { + "Blob": [Function], "FormData": [Function], }, "headers": { @@ -87,6 +88,7 @@ exports[`ServiceConfig should handle cancelling service calls: cancelled request }, "data": undefined, "env": { + "Blob": [Function], "FormData": [Function], }, "headers": { @@ -142,6 +144,7 @@ exports[`ServiceConfig should handle cancelling service calls: cancelled request }, "data": undefined, "env": { + "Blob": [Function], "FormData": [Function], }, "headers": { @@ -180,6 +183,7 @@ exports[`ServiceConfig should handle cancelling service calls: cancelled request }, "data": undefined, "env": { + "Blob": [Function], "FormData": [Function], }, "headers": { @@ -233,6 +237,7 @@ exports[`ServiceConfig should handle cancelling service calls: cancelled request }, "data": undefined, "env": { + "Blob": [Function], "FormData": [Function], }, "headers": { @@ -271,6 +276,7 @@ exports[`ServiceConfig should handle cancelling service calls: cancelled request }, "data": undefined, "env": { + "Blob": [Function], "FormData": [Function], }, "headers": { @@ -557,10 +563,10 @@ exports[`ServiceConfig should handle producing a service call configuration: res }, adapter: function mockAdapter(config) {\\n\\t return new Promise(function (resolve, reject) {\\n\\t var request = new Request(resolve, reject, config);\\n\\t moxios.requests.track(request);\\n\\t\\n\\t // Check for matching stub to auto respond with\\n\\t for (var i = 0, l = moxios.stubs.count(); i < l; i++) {\\n\\t var stub = moxios.stubs.at(i);\\n\\t var correctURL = stub.url instanceof RegExp ? stub.url.test(request.url) : stub.url === request.url;\\n\\t var correctMethod = true;\\n\\t\\n\\t if (stub.method !== undefined) {\\n\\t correctMethod = stub.method.toLowerCase() === request.config.method.toLowerCase();\\n\\t }\\n\\t\\n\\t if (correctURL && correctMethod) {\\n\\t if (stub.timeout) {\\n\\t throwTimeout(config);\\n\\t }\\n\\t request.respondWith(stub.response);\\n\\t stub.resolve();\\n\\t break;\\n\\t }\\n\\t }\\n\\t });\\n\\t}, transformRequest: [ - function transformRequest(data, headers) {\\n normalizeHeaderName(headers, 'Accept');\\n normalizeHeaderName(headers, 'Content-Type');\\n\\n if (utils.isFormData(data) ||\\n utils.isArrayBuffer(data) ||\\n utils.isBuffer(data) ||\\n utils.isStream(data) ||\\n utils.isFile(data) ||\\n utils.isBlob(data)\\n ) {\\n return data;\\n }\\n if (utils.isArrayBufferView(data)) {\\n return data.buffer;\\n }\\n if (utils.isURLSearchParams(data)) {\\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\\n return data.toString();\\n }\\n\\n var isObjectPayload = utils.isObject(data);\\n var contentType = headers && headers['Content-Type'];\\n\\n var isFileList;\\n\\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\\n var _FormData = this.env && this.env.FormData;\\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\\n } else if (isObjectPayload || contentType === 'application/json') {\\n setContentTypeIfUnset(headers, 'application/json');\\n return stringifySafely(data);\\n }\\n\\n return data;\\n } + function transformRequest(data, headers) {\\n normalizeHeaderName(headers, 'Accept');\\n normalizeHeaderName(headers, 'Content-Type');\\n\\n var contentType = headers && headers['Content-Type'] || '';\\n var hasJSONContentType = contentType.indexOf('application/json') > -1;\\n var isObjectPayload = utils.isObject(data);\\n\\n if (isObjectPayload && utils.isHTMLForm(data)) {\\n data = new FormData(data);\\n }\\n\\n var isFormData = utils.isFormData(data);\\n\\n if (isFormData) {\\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\\n }\\n\\n if (utils.isArrayBuffer(data) ||\\n utils.isBuffer(data) ||\\n utils.isStream(data) ||\\n utils.isFile(data) ||\\n utils.isBlob(data)\\n ) {\\n return data;\\n }\\n if (utils.isArrayBufferView(data)) {\\n return data.buffer;\\n }\\n if (utils.isURLSearchParams(data)) {\\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\\n return data.toString();\\n }\\n\\n var isFileList;\\n\\n if (isObjectPayload) {\\n if (contentType.indexOf('application/x-www-form-urlencoded') !== -1) {\\n return toURLEncodedForm(data, this.formSerializer).toString();\\n }\\n\\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\\n var _FormData = this.env && this.env.FormData;\\n\\n return toFormData(\\n isFileList ? {'files[]': data} : data,\\n _FormData && new _FormData(),\\n this.formSerializer\\n );\\n }\\n }\\n\\n if (isObjectPayload || hasJSONContentType ) {\\n setContentTypeIfUnset(headers, 'application/json');\\n return stringifySafely(data);\\n }\\n\\n return data;\\n } ], transformResponse: [ - function transformResponse(data) {\\n var transitional = this.transitional || defaults.transitional;\\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\\n\\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\\n try {\\n return JSON.parse(data);\\n } catch (e) {\\n if (strictJSONParsing) {\\n if (e.name === 'SyntaxError') {\\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\\n }\\n throw e;\\n }\\n }\\n }\\n\\n return data;\\n } + function transformResponse(data) {\\n var transitional = this.transitional || defaults.transitional;\\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\\n var JSONRequested = this.responseType === 'json';\\n\\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\\n var strictJSONParsing = !silentJSONParsing && JSONRequested;\\n\\n try {\\n return JSON.parse(data);\\n } catch (e) {\\n if (strictJSONParsing) {\\n if (e.name === 'SyntaxError') {\\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\\n }\\n throw e;\\n }\\n }\\n }\\n\\n return data;\\n } ], timeout: 60000, xsrfCookieName: XSRF-TOKEN, @@ -568,7 +574,8 @@ exports[`ServiceConfig should handle producing a service call configuration: res maxContentLength: -1, maxBodyLength: -1, env: { - FormData: function FormData(options) {\\n if (!(this instanceof FormData)) {\\n return new FormData(options);\\n }\\n\\n this._overheadLength = 0;\\n this._valueLength = 0;\\n this._valuesToMeasure = [];\\n\\n CombinedStream.call(this);\\n\\n options = options || {};\\n for (var option in options) {\\n this[option] = options[option];\\n }\\n} + FormData: function FormData(options) {\\n if (!(this instanceof FormData)) {\\n return new FormData(options);\\n }\\n\\n this._overheadLength = 0;\\n this._valueLength = 0;\\n this._valuesToMeasure = [];\\n\\n CombinedStream.call(this);\\n\\n options = options || {};\\n for (var option in options) {\\n this[option] = options[option];\\n }\\n}, + Blob: class Blob {\\n constructor() {\\n const args = [];\\n {\\n let curArg = arguments[0];\\n if (curArg !== undefined) {\\n if (!utils.isObject(curArg)) {\\n throw new globalObject.TypeError(\\Failed to construct 'Blob': parameter 1\\ + \\ is not an iterable object.\\);\\n } else {\\n const V = [];\\n const tmp = curArg;\\n for (let nextItem of tmp) {\\n if (exports.is(nextItem)) {\\n nextItem = utils.implForWrapper(nextItem);\\n } else if (utils.isArrayBuffer(nextItem)) {\\n } else if (ArrayBuffer.isView(nextItem)) {\\n } else {\\n nextItem = conversions[\\USVString\\](nextItem, {\\n context: \\Failed to construct 'Blob': parameter 1\\ + \\'s element\\,\\n globals: globalObject\\n });\\n }\\n V.push(nextItem);\\n }\\n curArg = V;\\n }\\n }\\n args.push(curArg);\\n }\\n {\\n let curArg = arguments[1];\\n curArg = BlobPropertyBag.convert(globalObject, curArg, { context: \\Failed to construct 'Blob': parameter 2\\ });\\n args.push(curArg);\\n }\\n return exports.setup(Object.create(new.target.prototype), globalObject, args);\\n }\\n\\n slice() {\\n const esValue = this !== null && this !== undefined ? this : globalObject;\\n if (!exports.is(esValue)) {\\n throw new globalObject.TypeError(\\'slice' called on an object that is not a valid instance of Blob.\\);\\n }\\n const args = [];\\n {\\n let curArg = arguments[0];\\n if (curArg !== undefined) {\\n curArg = conversions[\\long long\\](curArg, {\\n context: \\Failed to execute 'slice' on 'Blob': parameter 1\\,\\n globals: globalObject,\\n clamp: true\\n });\\n }\\n args.push(curArg);\\n }\\n {\\n let curArg = arguments[1];\\n if (curArg !== undefined) {\\n curArg = conversions[\\long long\\](curArg, {\\n context: \\Failed to execute 'slice' on 'Blob': parameter 2\\,\\n globals: globalObject,\\n clamp: true\\n });\\n }\\n args.push(curArg);\\n }\\n {\\n let curArg = arguments[2];\\n if (curArg !== undefined) {\\n curArg = conversions[\\DOMString\\](curArg, {\\n context: \\Failed to execute 'slice' on 'Blob': parameter 3\\,\\n globals: globalObject\\n });\\n }\\n args.push(curArg);\\n }\\n return utils.tryWrapperForImpl(esValue[implSymbol].slice(...args));\\n }\\n\\n get size() {\\n const esValue = this !== null && this !== undefined ? this : globalObject;\\n\\n if (!exports.is(esValue)) {\\n throw new globalObject.TypeError(\\'get size' called on an object that is not a valid instance of Blob.\\);\\n }\\n\\n return esValue[implSymbol][\\size\\];\\n }\\n\\n get type() {\\n const esValue = this !== null && this !== undefined ? this : globalObject;\\n\\n if (!exports.is(esValue)) {\\n throw new globalObject.TypeError(\\'get type' called on an object that is not a valid instance of Blob.\\);\\n }\\n\\n return esValue[implSymbol][\\type\\];\\n }\\n } }, validateStatus: function validateStatus(status) {\\n return status >= 200 && status < 300;\\n }, headers: {