From 4ad748a016ac8c6f9b15568dd7a3809bf2495302 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Oct 2022 10:57:42 +0200 Subject: [PATCH] Bump axios from 0.27.2 to 1.1.3 in /dashboard (#5475) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [axios](https://github.com/axios/axios) from 0.27.2 to 1.1.3.
Release notes

Sourced from axios's releases.

v1.1.3

Added

Added custom params serializer support #5113

Fixed

Fixed top-level export to keep them in-line with static properties #5109 Stopped including null values to query string. #5108 Restored proxy config backwards compatibility with 0.x #5097 Added back AxiosHeaders in AxiosHeaderValue #5103 Pin CDN install instructions to a specific version #5060 Handling of array values fixed for AxiosHeaders #5085

Chores

docs: match badge style, add link to them #5046 chore: fixing comments typo #5054 chore: update issue template #5061 chore: added progress capturing section to the docs; #5084

Contributors to this release

v1.1.2

Fixed

Contributors to this release

v1.1.1

Fixed

Contributors to this release

... (truncated)

Changelog

Sourced from axios's changelog.

[1.1.3] - 2022-10-15

Added

Added custom params serializer support #5113

Fixed

Fixed top-level export to keep them in-line with static properties #5109 Stopped including null values to query string. #5108 Restored proxy config backwards compatibility with 0.x #5097 Added back AxiosHeaders in AxiosHeaderValue #5103 Pin CDN install instructions to a specific version #5060 Handling of array values fixed for AxiosHeaders #5085

Chores

docs: match badge style, add link to them #5046 chore: fixing comments typo #5054 chore: update issue template #5061 chore: added progress capturing section to the docs; #5084

Contributors to this release

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axios&package-manager=npm_and_yarn&previous-version=0.27.2&new-version=1.1.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Signed-off-by: Antonio Gamez Diaz Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Antonio Gamez Diaz --- dashboard/package.json | 7 +- dashboard/src/shared/AxiosInstance.test.ts | 68 ++++++-------------- dashboard/src/shared/Config.test.ts | 19 +++--- dashboard/src/shared/Kube.test.ts | 40 ++++++------ dashboard/src/shared/Kube.ts | 2 +- dashboard/src/shared/PackagesService.test.ts | 14 ---- dashboard/yarn.lock | 40 ++++++------ 7 files changed, 74 insertions(+), 116 deletions(-) diff --git a/dashboard/package.json b/dashboard/package.json index 52a63bfdb73..2970932aa87 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -35,7 +35,7 @@ "@tanstack/match-sorter-utils": "^8.5.14", "@tanstack/react-table": "^8.5.15", "ajv": "^8.11.0", - "axios": "^0.27.2", + "axios": "^1.1.3", "connected-react-router": "^6.9.3", "fast-json-patch": "^3.1.1", "google-protobuf": "^3.21.2", @@ -81,7 +81,6 @@ "@types/js-yaml": "^4.0.5", "@types/jsonwebtoken": "^8.5.9", "@types/lodash": "^4.14.186", - "@types/moxios": "^0.4.15", "@types/qs": "^6.9.7", "@types/react-copy-to-clipboard": "^5.0.4", "@types/react-dom": "^18.0.6", @@ -92,6 +91,7 @@ "@types/redux-mock-store": "^1.0.3", "@types/swagger-ui-react": "^4.11.0", "@wojtekmaj/enzyme-adapter-react-17": "^0.6.7", + "axios-mock-adapter": "^1.21.2", "cross-env": "^7.0.3", "enzyme": "^3.11.0", "eslint-config-prettier": "^8.5.0", @@ -102,7 +102,6 @@ "jest-plugin-context": "^2.9.0", "mock-socket": "^9.1.5", "monaco-editor-webpack-plugin": "^7.0.1", - "moxios": "^0.4.0", "node-polyfill-webpack-plugin": "^2.0.1", "npm-run-all": "^4.1.5", "postcss": "^8.4.16", @@ -134,7 +133,7 @@ "!src/**/*.d.ts" ], "transformIgnorePatterns": [ - "node_modules/(?!@cds|@clr|@lit|bail|ccount|cds|character-entities|comma-separated-tokens|decode-named-character-reference|escape-string-regexp|hast-util-whitespace|is-plain-obj|lit|lodash-es|markdown-table|mdast-util-definitions|mdast-util-find-and-replace|mdast-util-from-markdown|mdast-util-gfm-autolink-literal|mdast-util-gfm|mdast-util-to-hast|mdast-util-to-markdown|mdast-util-to-string|micromark-core-commonmark|monaco-editor|react-monaco-editor|micromark|parse-entities|property-information|ramda|react-markdown|react-syntax-highlighter|remark-breaks|remark-gfm|remark-parse|remark-rehype|space-separated-tokens|swagger-client|swagger-ui-react|trim-lines|trough|unified|unist-builder|unist-util-generated|unist-util-is|unist-util-position|unist-util-stringify-position|unist-util-visit-parents|unist-util-visit|util-find-and-replace|vfile-message|vfile|.*css)" + "node_modules/(?!@cds|@clr|@lit|axios|bail|ccount|cds|character-entities|comma-separated-tokens|decode-named-character-reference|escape-string-regexp|hast-util-whitespace|is-plain-obj|lit|lodash-es|markdown-table|mdast-util-definitions|mdast-util-find-and-replace|mdast-util-from-markdown|mdast-util-gfm-autolink-literal|mdast-util-gfm|mdast-util-to-hast|mdast-util-to-markdown|mdast-util-to-string|micromark-core-commonmark|monaco-editor|react-monaco-editor|micromark|parse-entities|property-information|ramda|react-markdown|react-syntax-highlighter|remark-breaks|remark-gfm|remark-parse|remark-rehype|space-separated-tokens|swagger-client|swagger-ui-react|trim-lines|trough|unified|unist-builder|unist-util-generated|unist-util-is|unist-util-position|unist-util-stringify-position|unist-util-visit-parents|unist-util-visit|util-find-and-replace|vfile-message|vfile|.*css)" ] }, "browserslist": { diff --git a/dashboard/src/shared/AxiosInstance.test.ts b/dashboard/src/shared/AxiosInstance.test.ts index 5845f1185b5..08539e23bd7 100644 --- a/dashboard/src/shared/AxiosInstance.test.ts +++ b/dashboard/src/shared/AxiosInstance.test.ts @@ -1,7 +1,7 @@ // Copyright 2018-2022 the Kubeapps contributors. // SPDX-License-Identifier: Apache-2.0 -import * as moxios from "moxios"; +import MockAdapter from "axios-mock-adapter"; import { IAuthState } from "reducers/auth"; import configureMockStore from "redux-mock-store"; import thunk from "redux-thunk"; @@ -24,6 +24,7 @@ describe("createAxiosInterceptorWithAuth", () => { const authToken = "search-google-in-google"; let store: any; + let axiosMock: MockAdapter; beforeAll(() => { const state: IAuthState = { @@ -53,21 +54,20 @@ describe("createAxiosInterceptorWithAuth", () => { }); beforeEach(() => { - // Import as "any" to avoid typescript syntax error - moxios.install(axios as any); + axiosMock = new MockAdapter(axios); }); afterEach(() => { - moxios.uninstall(axios as any); + axiosMock.restore(); store.clearActions(); }); it("includes the auth token if provided", async () => { - moxios.stubRequest(testPath, {}); + axiosMock.onGet(testPath).reply(200, {}); await axios.get(testPath); - const request = moxios.requests.mostRecent(); - expect(request.headers.Authorization).toBe(`Bearer ${authToken}`); + const request = axiosMock.history.get[0]; + expect(request?.headers?.Authorization).toBe(`Bearer ${authToken}`); }); const testCases = [ @@ -81,35 +81,23 @@ describe("createAxiosInterceptorWithAuth", () => { testCases.forEach(t => { it(`returns a custom message if ${t.code} returned`, async () => { - moxios.stubRequest(testPath, { - response: { message: `Will raise ${t.errorClass.name}` }, - status: t.code, - }); + axiosMock.onGet(testPath).reply(t.code, { message: `Will raise ${t.errorClass.name}` }); await expect(axios.get(testPath)).rejects.toThrow(`Will raise ${t.errorClass.name}`); }); it(`returns the custom error ${t.errorClass.name} if ${t.code} returned`, async () => { - moxios.stubRequest(testPath, { - response: {}, - status: t.code, - }); + axiosMock.onGet(testPath).reply(t.code, {}); await expect(axios.get(testPath)).rejects.toThrowError(t.errorClass); }); }); it("returns the generic error message otherwise", async () => { - moxios.stubRequest(testPath, { - response: {}, - status: 555, - }); + axiosMock.onGet(testPath).reply(555, {}); await expect(axios.get(testPath)).rejects.toThrow("Request failed with status code 555"); }); it("returns the response message", async () => { - moxios.stubRequest(testPath, { - response: { message: "this is an error!" }, - status: 555, - }); + axiosMock.onGet(testPath).reply(555, { message: "this is an error!" }); await expect(axios.get(testPath)).rejects.toThrow("this is an error!"); }); @@ -126,11 +114,7 @@ describe("createAxiosInterceptorWithAuth", () => { type: "SET_AUTHENTICATION_SESSION_EXPIRED", }, ]; - - moxios.stubRequest(testPath, { - response: { message: "Boom!" }, - status: 401, - }); + axiosMock.onGet(testPath).reply(401, { message: "Boom!" }); await expect(axios.get(testPath)).rejects.toThrow("Boom!"); expect(store.getActions()).toEqual(expectedActions); expect(Auth.unsetAuthCookie).toHaveBeenCalled(); @@ -141,7 +125,7 @@ describe("createAxiosInterceptorWithAuth", () => { Auth.unsetAuthCookie = jest.fn(); const expectedActions = [ { - payload: "not ajson paylod", + payload: "not a json payload", type: "AUTHENTICATION_ERROR", }, { @@ -150,11 +134,8 @@ describe("createAxiosInterceptorWithAuth", () => { }, ]; - moxios.stubRequest(testPath, { - responseText: "not ajson paylod", - status: 401, - }); - await expect(axios.get(testPath)).rejects.toThrow("not ajson paylod"); + axiosMock.onGet(testPath).reply(401, { message: "not a json payload" }); + await expect(axios.get(testPath)).rejects.toThrow("not a json payload"); expect(store.getActions()).toEqual(expectedActions); expect(Auth.unsetAuthCookie).toHaveBeenCalled(); }); @@ -179,13 +160,9 @@ describe("createAxiosInterceptorWithAuth", () => { type: "CLEAR_CLUSTERS", }, ]; - - moxios.stubRequest(testPath, { - response: { - message: - '{"metadata":{},"status":"Failure","message":"selfsubjectaccessreviews.authorization.k8s.io is forbidden: User "system:anonymous" cannot create resource "selfsubjectaccessreviews" in API group "authorization.k8s.io" at the cluster scope","reason":"Forbidden","details":{"group":"authorization.k8s.io","kind":"selfsubjectaccessreviews"},"code":403} {"namespaces":null}', - }, - status: 403, + axiosMock.onGet(testPath).reply(403, { + message: + '{"metadata":{},"status":"Failure","message":"selfsubjectaccessreviews.authorization.k8s.io is forbidden: User "system:anonymous" cannot create resource "selfsubjectaccessreviews" in API group "authorization.k8s.io" at the cluster scope","reason":"Forbidden","details":{"group":"authorization.k8s.io","kind":"selfsubjectaccessreviews"},"code":403} {"namespaces":null}', }); await expect(axios.get(testPath)).rejects.toThrow( '{"metadata":{},"status":"Failure","message":"selfsubjectaccessreviews.authorization.k8s.io is forbidden: User "system:anonymous" cannot create resource "selfsubjectaccessreviews" in API group "authorization.k8s.io" at the cluster scope","reason":"Forbidden","details":{"group":"authorization.k8s.io","kind":"selfsubjectaccessreviews"},"code":403} {"namespaces":null}', @@ -195,12 +172,9 @@ describe("createAxiosInterceptorWithAuth", () => { }); it("parses a forbidden response", async () => { - moxios.stubRequest(testPath, { - response: { - message: - '[{"apiGroup": "v1", "resource": "secrets", "namespace": "default", "verbs": ["list", "get"]}]', - }, - status: 403, + axiosMock.onGet(testPath).reply(403, { + message: + '[{"apiGroup": "v1", "resource": "secrets", "namespace": "default", "verbs": ["list", "get"]}]', }); await expect(axios.get(testPath)).rejects.toThrow( 'Forbidden error, missing permissions: apiGroup: "v1", resource: "secrets", action: "list, get", namespace: default', diff --git a/dashboard/src/shared/Config.test.ts b/dashboard/src/shared/Config.test.ts index 86eb09f5b80..bec376f69ef 100644 --- a/dashboard/src/shared/Config.test.ts +++ b/dashboard/src/shared/Config.test.ts @@ -2,24 +2,25 @@ // SPDX-License-Identifier: Apache-2.0 import axios from "axios"; -import * as moxios from "moxios"; +import MockAdapter from "axios-mock-adapter"; import Config, { IConfig, SupportedThemes } from "./Config"; describe("Config", () => { let defaultJSON: IConfig; let initialEnv: any; + let axiosMock: MockAdapter; beforeEach(() => { initialEnv = { ...process.env }; - // Import as "any" to avoid typescript syntax error - moxios.install(axios as any); + axiosMock = new MockAdapter(axios); + defaultJSON = require("../../public/config.json"); - moxios.stubRequest("config.json", { status: 200, response: { ...defaultJSON } }); + axiosMock.onGet("config.json").reply(200, { ...defaultJSON }); }); afterEach(() => { process.env = initialEnv; - moxios.uninstall(axios as any); + axiosMock.restore(); jest.restoreAllMocks(); }); @@ -31,19 +32,19 @@ describe("Config", () => { describe("Themes", () => { let defaultJSON: IConfig; let initialEnv: any; + let axiosMock: MockAdapter; const matchMedia = window.matchMedia; beforeEach(() => { initialEnv = { ...process.env }; - // Import as "any" to avoid typescript syntax error - moxios.install(axios as any); + axiosMock = new MockAdapter(axios); defaultJSON = require("../../public/config.json"); - moxios.stubRequest("config.json", { status: 200, response: { ...defaultJSON } }); + axiosMock.onGet("config.json").reply(200, { ...defaultJSON }); }); afterEach(() => { process.env = initialEnv; - moxios.uninstall(axios as any); + axiosMock.restore(); window.matchMedia = matchMedia; jest.restoreAllMocks(); }); diff --git a/dashboard/src/shared/Kube.test.ts b/dashboard/src/shared/Kube.test.ts index bbef95e3d0c..a5d479112c9 100644 --- a/dashboard/src/shared/Kube.test.ts +++ b/dashboard/src/shared/Kube.test.ts @@ -1,21 +1,22 @@ // Copyright 2018-2022 the Kubeapps contributors. // SPDX-License-Identifier: Apache-2.0 +import MockAdapter from "axios-mock-adapter"; import { CanIRequest, CanIResponse } from "gen/kubeappsapis/plugins/resources/v1alpha1/resources"; -import * as moxios from "moxios"; import { axiosWithAuth } from "./AxiosInstance"; import { Kube } from "./Kube"; import KubeappsGrpcClient from "./KubeappsGrpcClient"; const clusterName = "cluster-name"; -describe("App", () => { +describe("Kube", () => { + let axiosMock: MockAdapter; + beforeEach(() => { - // Import as "any" to avoid typescript syntax error - moxios.install(axiosWithAuth as any); + axiosMock = new MockAdapter(axiosWithAuth); }); afterEach(() => { - moxios.uninstall(axiosWithAuth as any); + axiosMock.restore(); }); describe("getAPIGroups", () => { @@ -34,17 +35,12 @@ describe("App", () => { }, }, ]; - beforeEach(() => { - moxios.stubRequest(/.*/, { - // Sample response to /apis - response: { kind: "APIGroupList", apiVersion: "v1", groups }, - status: 200, - }); - }); it("should request API groups", async () => { + axiosMock.onGet().reply(200, { kind: "APIGroupList", apiVersion: "v1", groups }); expect(await Kube.getAPIGroups(clusterName)).toEqual(groups); - expect(moxios.requests.mostRecent().url).toBe(`api/clusters/${clusterName}/apis`); + const request = axiosMock.history.get[0]; + expect(request?.url).toBe(`api/clusters/${clusterName}/apis`); }); }); @@ -141,14 +137,14 @@ describe("App", () => { ].forEach(t => { it(t.description, async () => { // eslint-disable-next-line redos/no-vulnerable - moxios.stubRequest(/.*api\/v1/, t.apiV1Response); + axiosMock.onGet(/.*api\/v1/).reply(t.apiV1Response.status, t.apiV1Response.response); const groups: any[] = []; - t.groups.forEach((g: any) => { - groups.push(g.input); + t.groups.forEach((group: any) => { + groups.push(group.input); // eslint-disable-next-line redos/no-vulnerable - moxios.stubOnce("GET", /.*apis\/.*/, g.apiResponse); + axiosMock.onGet(/.*apis\/.*/).replyOnce(200, group.apiResponse.response); }); - expect(await Kube.getResourceKinds("cluster", groups)).toEqual(t.result); + expect(await Kube.getResourceKinds(clusterName, groups)).toEqual(t.result); }); }); }); @@ -170,13 +166,13 @@ describe("App", () => { jest.spyOn(client, "CanI").mockImplementation(mockClientCanI); jest.spyOn(Kube, "resourcesServiceClient").mockImplementation(() => client); - const allowed = await Kube.canI("cluster", "v1", "namespaces", "create", ""); + const allowed = await Kube.canI(clusterName, "v1", "namespaces", "create", ""); expect(allowed).toBe(true); expect(Kube.resourcesServiceClient).toHaveBeenCalledWith(); expect(mockClientCanI).toHaveBeenCalledWith({ context: { - cluster: "cluster", + cluster: clusterName, namespace: "", }, group: "v1", @@ -199,13 +195,13 @@ describe("App", () => { jest.spyOn(client, "CanI").mockImplementation(mockClientCanI); jest.spyOn(Kube, "resourcesServiceClient").mockImplementation(() => client); - const allowed = await Kube.canI("cluster", "v1", "secrets", "list", ""); + const allowed = await Kube.canI(clusterName, "v1", "secrets", "list", ""); expect(allowed).toBe(false); expect(Kube.resourcesServiceClient).toHaveBeenCalled(); expect(mockClientCanI).toHaveBeenCalledWith({ context: { - cluster: "cluster", + cluster: clusterName, namespace: "", }, group: "v1", diff --git a/dashboard/src/shared/Kube.ts b/dashboard/src/shared/Kube.ts index 00987cae4c0..99a31fcff79 100644 --- a/dashboard/src/shared/Kube.ts +++ b/dashboard/src/shared/Kube.ts @@ -64,7 +64,7 @@ export class Kube { const { data: resourceList } = await axiosWithAuth.get( url.api.k8s.groupVersion(cluster, groupVersion), ); - resourceList.resources?.forEach((r: any) => addResource(r, groupVersion)); + resourceList?.resources?.forEach((r: any) => addResource(r, groupVersion)); }), ); return result; diff --git a/dashboard/src/shared/PackagesService.test.ts b/dashboard/src/shared/PackagesService.test.ts index c744c3f4c55..3bf846063e3 100644 --- a/dashboard/src/shared/PackagesService.test.ts +++ b/dashboard/src/shared/PackagesService.test.ts @@ -9,8 +9,6 @@ import { PackageAppVersion, } from "gen/kubeappsapis/core/packages/v1alpha1/packages"; import { Plugin } from "gen/kubeappsapis/core/plugins/v1alpha1/plugins"; -import * as moxios from "moxios"; -import { axiosWithAuth } from "./AxiosInstance"; import { KubeappsGrpcClient } from "./KubeappsGrpcClient"; import PackagesService from "./PackagesService"; @@ -19,18 +17,6 @@ const namespace = "namespace-name"; const defaultPageToken = "defaultPageToken"; const defaultSize = 0; describe("App", () => { - beforeEach(() => { - // Import as "any" to avoid typescript syntax error - moxios.install(axiosWithAuth as any); - moxios.stubRequest(/.*/, { - response: { data: "ok" }, - status: 200, - }); - }); - afterEach(() => { - moxios.uninstall(axiosWithAuth as any); - jest.restoreAllMocks(); - }); describe("getAvailablePackageSummaries", () => { [ { diff --git a/dashboard/yarn.lock b/dashboard/yarn.lock index 1276fa9ae45..f2261a34b9a 100644 --- a/dashboard/yarn.lock +++ b/dashboard/yarn.lock @@ -2409,13 +2409,6 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/moxios@^0.4.15": - version "0.4.15" - resolved "https://registry.yarnpkg.com/@types/moxios/-/moxios-0.4.15.tgz#d8b774f360ba652801b5807e0833f6ff30a17770" - integrity sha512-eHD7i0/Uu7pFGzS4uIed2InJLj5H6xOOsqPjGtRyvyC/jnzRt6q6Xtnm2PQlkcqKHjRybEqjw71dcPnzfDouhw== - dependencies: - axios ">=0.13.0" - "@types/ms@*": version "0.7.31" resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" @@ -3347,13 +3340,22 @@ axe-core@^4.4.3: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== -axios@>=0.13.0, axios@^0.27.2: - version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +axios-mock-adapter@^1.21.2: + version "1.21.2" + resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.21.2.tgz#87a48f80aa89bb1ab1ad630fa467975e30aa4721" + integrity sha512-jzyNxU3JzB2XVhplZboUcF0YDs7xuExzoRSHXPHr+UQajaGmcTqvkkUADgkVI2WkGlpZ1zZlMVdcTMU0ejV8zQ== + dependencies: + fast-deep-equal "^3.1.3" + is-buffer "^2.0.5" + +axios@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" + integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== dependencies: - follow-redirects "^1.14.9" + follow-redirects "^1.15.0" form-data "^4.0.0" + proxy-from-env "^1.1.0" axobject-query@^2.2.0: version "2.2.0" @@ -6034,7 +6036,7 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@^1.0.0, follow-redirects@^1.14.9: +follow-redirects@^1.0.0, follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -6983,7 +6985,7 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@^2.0.0: +is-buffer@^2.0.0, is-buffer@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== @@ -9315,11 +9317,6 @@ moo@^0.5.0: resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== -moxios@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/moxios/-/moxios-0.4.0.tgz#fc0da2c65477d725ca6b9679d58370ed0c52f53b" - integrity sha512-r+7DOsTcoTAwY6TGIDtjeTEBXMW8aGgk74MfASOC1tgYXD8Kq+cnqQHUdMnvfjf/CK7Pg/Wo52ohqy5zlyv9XQ== - mri@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" @@ -10778,6 +10775,11 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + psl@^1.1.28, psl@^1.1.33: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"