diff --git a/packages/generator-spectral/package.json b/packages/generator-spectral/package.json index ec20cc63..1136ceeb 100644 --- a/packages/generator-spectral/package.json +++ b/packages/generator-spectral/package.json @@ -1,6 +1,6 @@ { "name": "@prismatic-io/generator-spectral", - "version": "2.3.0", + "version": "2.3.1", "description": "Yeoman generator for scaffolding out Prismatic components", "keywords": [ "prismatic", @@ -37,7 +37,7 @@ "generators" ], "dependencies": { - "@prismatic-io/spectral": "7.3.4", + "@prismatic-io/spectral": "7.9.0", "yeoman-generator": "5.6.1", "lodash": "4.17.21", "@apidevtools/swagger-parser": "10.1.0", diff --git a/packages/generator-spectral/src/generators/formats/utils.ts b/packages/generator-spectral/src/generators/formats/utils.ts index e9237818..d75fae6e 100644 --- a/packages/generator-spectral/src/generators/formats/utils.ts +++ b/packages/generator-spectral/src/generators/formats/utils.ts @@ -95,7 +95,7 @@ export type Connection = ConnectionDefinition & { orderPriority: number; }; -export type Component = Pick, "display">; +export type Component = Pick, "display">; export interface Result { baseUrl: string; diff --git a/packages/spectral/package.json b/packages/spectral/package.json index 56f89994..43e8a24b 100644 --- a/packages/spectral/package.json +++ b/packages/spectral/package.json @@ -1,6 +1,6 @@ { "name": "@prismatic-io/spectral", - "version": "7.8.4", + "version": "7.9.0", "description": "Utility library for building Prismatic components", "keywords": [ "prismatic" @@ -38,14 +38,13 @@ ], "dependencies": { "@jsonforms/core": "3.0.0", - "axios": "0.27.2", - "axios-retry": "3.2.5", + "axios": "1.6.2", + "axios-retry": "3.9.1", "date-fns": "2.30.0", "form-data": "4.0.0", "jest-mock": "27.0.3", "safe-stable-stringify": "2.3.1", "serialize-error": "8.1.0", - "soap": "1.0.0", "url-join": "5.0.0", "uuid": "8.3.2", "valid-url": "1.0.9" diff --git a/packages/spectral/src/clients/soap/index.ts b/packages/spectral/src/clients/soap/index.ts deleted file mode 100644 index 9e034905..00000000 --- a/packages/spectral/src/clients/soap/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./types"; -export * from "./utils"; diff --git a/packages/spectral/src/clients/soap/types.ts b/packages/spectral/src/clients/soap/types.ts deleted file mode 100644 index 7db6701f..00000000 --- a/packages/spectral/src/clients/soap/types.ts +++ /dev/null @@ -1,113 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any*/ -import { Connection } from "../../index"; -import { IMTOMAttachments } from "soap"; - -/** - * SOAPConnection takes standard connection fields, and adds an optional `wsdlDefinitionUrl` field. - */ -export interface SOAPConnection extends Connection { - fields: { - [key: string]: unknown; - // The URL where a WSDL can be found - wsdlDefinitionUrl?: string; - }; -} - -/** - * This function determines if the object presented is a SOAP connection with a `wsdlDefinitionUrl` field. - * @param connection The connection to test - * @returns This function returns true if the connection is a SOAPConnection, and false otherwise. - */ -export const isSOAPConnection = ( - connection: unknown -): connection is SOAPConnection => { - if (typeof connection === "object" && connection !== null) - return "wsdlDefinitionURL" in (connection as Connection)?.fields; - return false; -}; - -/** - * SOAP requests return a 4-tuple or 5-tuple with the response first, the XML response second, headers third, and the XML request fourth, and optional message attachments fifth. - */ -export declare type SOAPResponse = [any, any, any, any, IMTOMAttachments?]; - -/** - * Overload the `soapRequest` function to take a variety of types of arguments. - */ -export interface SOAPRequest { - (params: RequestParams): Promise; - ( - params: RequestParams, - methodParams: Record - ): Promise; - (params: RequestParams, methodParams: undefined): Promise; -} - -export interface RequestParams { - // Either a SOAPConnection or WSDL definition - wsdlParam: SOAPConnection | string; - // The SOAP method to invoke - method: string; - // You can override the SOAP client `endpointURL` or `soapHeaders` - overrides?: ClientOverrides; - // Log debug information about the SOAP request - debug?: boolean; -} - -export interface ClientOverrides { - // Override endpoint URL - endpointURL?: string; - // An array of [SOAP Headers](https://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383497) - soapHeaders?: unknown[]; -} - -export interface HeaderPayload { - [x: string]: any; -} - -export interface GenerateHeader { - ( - wsdlParam: SOAPConnection | string, - headerPayload: HeaderPayload, - headerOptions: undefined - ): Promise; - ( - wsdlParam: SOAPConnection | string, - headerPayload: HeaderPayload, - headerOptions: { namespace: string; xmlns: string } - ): Promise; -} - -export interface BasicAuthConnection extends Connection { - fields: { - [key: string]: unknown; - username: unknown; - password: unknown; - // A SOAP login method, defined in the WSDL - loginMethod: unknown; - }; -} - -/** - * This function determines if the object presented is a Basic Auth connection with `username`, `password`, and `loginMethod` fields. - * @param connection The connection to test - * @returns This function returns true if the connection is a SOAPConnection, and false otherwise. - */ -export const isBasicAuthConnection = ( - connection: Connection -): connection is BasicAuthConnection => { - const { fields } = connection; - return ( - "username" in fields && "password" in fields && "loginMethod" in fields - ); -}; - -export interface SOAPAuth { - (connection: BasicAuthConnection, wsdlDefinition: string): Promise; - (connection: BasicAuthConnection & SOAPConnection): Promise; -} - -export interface DescribeWSDL { - (connection: SOAPConnection): Promise; - (wsdlDefinition: string): Promise; -} diff --git a/packages/spectral/src/clients/soap/utils.ts b/packages/spectral/src/clients/soap/utils.ts deleted file mode 100644 index b7068013..00000000 --- a/packages/spectral/src/clients/soap/utils.ts +++ /dev/null @@ -1,242 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -import { - ClientOverrides, - HeaderPayload, - GenerateHeader, - RequestParams, - SOAPAuth, - SOAPConnection, - SOAPRequest, - isBasicAuthConnection, - isSOAPConnection, - DescribeWSDL, -} from "./types"; -import { Connection, util } from "../../index"; -import { createClientAsync, Client, SoapMethodAsync } from "soap"; -import axios from "axios"; -import { writeFile, rm } from "fs/promises"; -import { v4 as uuid } from "uuid"; -import os from "os"; -import path from "path"; - -/** - * Optionally log out SOAP requests and responses for debugging purposes - * - * @param client A SOAP client that generates requests and responses - */ -const debugRequest = (client: Client) => { - console.debug(client.lastRequest); - console.debug(client.lastResponse); -}; - -/** - * This function takes either the URL of a WSDL or the XML defining a WSDL, and returns an object describing the methods and attributes defined in the WSDL. - * - * @param wsdlParam Either the URL where a WSDL is stored, or the XML defining a WSDL. - * @returns An object containing the methods and attributes defined in a WSDL - */ -const describeWSDL: DescribeWSDL = async ( - wsdlParam: unknown -): Promise => { - const client = await getSOAPClient( - isSOAPConnection(wsdlParam) ? wsdlParam : util.types.toString(wsdlParam) - ); - - try { - const result = client.describe(); - return result; - } catch (error) { - throw new Error("Unable to parse WSDL Services due to circular references"); - } -}; - -/** - * Fetch a WSDL from a URL - * @param wsdlDefinitionURL The URL where the WSDL is stored - * @returns The WSDL's raw XML - */ -const getWSDL = async (wsdlDefinitionURL: string): Promise => { - const httpClient = axios.create({ - baseURL: wsdlDefinitionURL, - headers: { "Content-Type": "text/xml" }, - }); - const { data } = await httpClient.get(""); - return util.types.toString(data); -}; - -/** - * Create a SOAP client given a WSDL or SOAPConnection - * @param wsdlParam a SOAPConnection or XML defining a WSDL - * @returns An HTTP client configured to query a SOAP-based API - */ -const getSOAPClient = async < - T extends string | SOAPConnection = string | SOAPConnection ->( - wsdlParam: T -): Promise => { - if (typeof wsdlParam === "string") { - const wsdl = util.types.toString(wsdlParam); - const filePath = path.join(os.tmpdir(), `${uuid()}.wsdl`); - await writeFile(filePath, wsdl); - const client = await createClientAsync(filePath); - await rm(filePath); - return client; - } else if (isSOAPConnection(wsdlParam)) { - const { - fields: { wsdlDefinitionURL }, - } = wsdlParam; - if ( - !wsdlDefinitionURL || - !util.types.isUrl(util.types.toString(wsdlDefinitionURL)) - ) { - throw new Error( - "WSDL Definition or the Connection field 'wsdlDefinitionURL' must be supplied." - ); - } - const client = await createClientAsync( - util.types.toString(wsdlDefinitionURL) - ); - return client; - } else { - throw new Error( - "WSDL Definition or the Connection field 'wsdlDefinitionURL' must be supplied." - ); - } -}; - -/** - * Override some HTTP client defaults - * @param client The client to override - * @param overrides An endpoint URL or SOAP headers to override - */ -const overrideClientDefaults = ( - client: Client, - overrides: ClientOverrides -): void => { - const { endpointURL, soapHeaders } = overrides; - if (endpointURL) { - client.setEndpoint(endpointURL); - } - if (soapHeaders) { - soapHeaders.map((header) => { - client.addSoapHeader(header); - }); - } -}; - -/** - * Make a request to a SOAP-based API - * @param param0 - * @param methodParams Parameters to pass to the specified SOAP method - * @returns The results from the SOAP request, including the full XML of the request and response - */ -const soapRequest: SOAPRequest = async ( - { wsdlParam, method, overrides, debug }: RequestParams, - methodParams?: unknown -) => { - const client = await getSOAPClient( - isSOAPConnection(wsdlParam) ? wsdlParam : util.types.toString(wsdlParam) - ); - if (overrides) { - overrideClientDefaults(client, overrides); - } - const requestFunction: SoapMethodAsync = client[`${method}Async`]; - let results = undefined; - - try { - if (typeof methodParams === "object" && methodParams !== null) { - results = await requestFunction(methodParams); - } else { - results = await requestFunction({}); - } - if (util.types.isBool(debug) && debug) { - debugRequest(client); - } - return results; - } catch (error) { - if (util.types.isBool(debug) && debug) { - debugRequest(client); - } - console.warn( - "Please verify that the method you specified exists in the WSDL specification." - ); - throw error; - } -}; - -/** - * Create a SOAP header - * @param wsdlParam A SOAPConnection or XML definition of a WSDL - * @param headerPayload The contents of a header XML node - * @param headerOptions Attributes for a header XML node, like namespace or xmlns - * @returns - */ -const generateHeader: GenerateHeader = async ( - wsdlParam, - headerPayload: HeaderPayload, - headerOptions -) => { - const client = await getSOAPClient( - isSOAPConnection(wsdlParam) ? wsdlParam : util.types.toString(wsdlParam) - ); - - let options: string[] = []; - if (headerOptions) { - options = Object.values(headerOptions); - } - const index = client.addSoapHeader(headerPayload, "", ...options); - return client.getSoapHeaders()[index]; -}; - -/** - * Fetch authentication information for a SOAPConnection - * @param connection The SOAPConnection - * @param wsdlDefinition The XML WSDL definition - * @returns - */ -const getSOAPAuth: SOAPAuth = async ( - connection: Connection, - wsdlDefinition?: string -) => { - if (isBasicAuthConnection(connection) && wsdlDefinition) { - const { - fields: { username, password, loginMethod }, - } = connection; - const result = await soapRequest( - { - wsdlParam: util.types.toString(wsdlDefinition), - method: util.types.toString(loginMethod), - }, - { username, password } - ); - return result; - } else if ( - isSOAPConnection(connection) && - isBasicAuthConnection(connection) - ) { - const { - fields: { username, password, loginMethod }, - } = connection; - const result = await soapRequest( - { - wsdlParam: connection as SOAPConnection, - method: util.types.toString(loginMethod), - }, - { username, password } - ); - return result; - } else { - throw new Error("Must supply a SOAP Connection or a WSDL Definition"); - } -}; - -export default { - describeWSDL, - generateHeader, - getSOAPAuth, - getSOAPClient, - getWSDL, - overrideClientDefaults, - soapRequest, -}; diff --git a/yarn.lock b/yarn.lock index 20df943c..e5fb0d7d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1513,23 +1513,6 @@ picocolors "^1.0.0" tslib "^2.6.0" -"@prismatic-io/spectral@7.3.4": - version "7.3.4" - resolved "https://registry.npmjs.org/@prismatic-io/spectral/-/spectral-7.3.4.tgz" - integrity sha512-bNXc1aDmKe8JJs/DQFAEKzilv8NMxCqqfJxZOuAcJCF2Yh2KZWGG15Lku5JYk+mnG+7/z0NXWAKif7BPlesR8Q== - dependencies: - axios "0.27.2" - axios-retry "3.2.5" - date-fns "2.28.0" - form-data "4.0.0" - jest-mock "27.0.3" - safe-stable-stringify "2.3.1" - serialize-error "8.1.0" - soap "1.0.0" - url-join "5.0.0" - uuid "8.3.2" - valid-url "1.0.9" - "@sinclair/typebox@^0.23.3": version "0.23.5" resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz" @@ -2147,11 +2130,6 @@ "@typescript-eslint/types" "6.7.0" eslint-visitor-keys "^3.4.1" -"@xmldom/xmldom@^0.8.5": - version "0.8.6" - resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz" - integrity sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg== - abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz" @@ -2511,35 +2489,22 @@ available-typed-arrays@^1.0.5: resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -axios-ntlm@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/axios-ntlm/-/axios-ntlm-1.2.1.tgz" - integrity sha512-M8qLdkOjVSrYmzOs7sxc/Ynu54yT2YHVOLFiTxicwPnll0H+sP3fkEQHGgEzpBcH4UA/ovRgTioR/vjelUG35A== - dependencies: - axios "^0.21.3" - -axios-retry@3.2.5: - version "3.2.5" - resolved "https://registry.npmjs.org/axios-retry/-/axios-retry-3.2.5.tgz" - integrity sha512-a8umkKbfIkTiYJQLx3v3TzKM85TGKB8ZQYz4zwykt2fpO64TsRlUhjaPaAb3fqMWCXFm2YhWcd8V5FHDKO9bSA== +axios-retry@3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.9.1.tgz#c8924a8781c8e0a2c5244abf773deb7566b3830d" + integrity sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w== dependencies: "@babel/runtime" "^7.15.4" is-retry-allowed "^2.2.0" -axios@0.27.2: - version "0.27.2" - resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +axios@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== dependencies: - follow-redirects "^1.14.9" + follow-redirects "^1.15.0" form-data "^4.0.0" - -axios@^0.21.3: - version "0.21.4" - resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" + proxy-from-env "^1.1.0" babel-jest@^27.5.1: version "27.5.1" @@ -3348,11 +3313,6 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -date-fns@2.28.0: - version "2.28.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz" - integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== - date-fns@2.30.0: version "2.30.0" resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz" @@ -3573,7 +3533,7 @@ detect-node@^2.0.4: resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -dezalgo@1.0.3, dezalgo@^1.0.0: +dezalgo@^1.0.0: version "1.0.3" resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz" integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= @@ -4472,10 +4432,10 @@ flatted@^3.1.0: resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== -follow-redirects@^1.14.0, follow-redirects@^1.14.9: - version "1.15.1" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== +follow-redirects@^1.15.0: + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-each@^0.3.3: version "0.3.3" @@ -4507,15 +4467,6 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -formidable@^3.2.4: - version "3.2.5" - resolved "https://registry.npmjs.org/formidable/-/formidable-3.2.5.tgz" - integrity sha512-GRGDJTWAZ3H+umZbF2bKcqjsTov25zgon1St05ziKdiSw3kxvI+meMJrXx3ylRmuSADOpviSakBuS4yvGCGnSg== - dependencies: - dezalgo "1.0.3" - hexoid "1.0.0" - once "1.4.0" - fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" @@ -5001,11 +4952,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hexoid@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz" - integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== - highlight.js@^10.0.0: version "10.7.3" resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" @@ -7516,7 +7462,7 @@ object.values@^1.1.6: define-properties "^1.2.0" es-abstract "^1.22.1" -once@1.4.0, once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -8084,6 +8030,11 @@ proto-list@~1.2.1: resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= +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.33: version "1.8.0" resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" @@ -8542,11 +8493,6 @@ safe-stable-stringify@2.3.1: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@>=0.6: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - saxes@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" @@ -8695,22 +8641,6 @@ smart-buffer@^4.2.0: resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -soap@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/soap/-/soap-1.0.0.tgz" - integrity sha512-GB5GuKjWFtAPP0IaM4tKUvdF4dFlaz4iujLPg0DsCy9qAAgm5/g+SI+P9e6igWWwXZ74CC5Uo0VEEz8lte0CJA== - dependencies: - axios-ntlm "^1.2.0" - debug "^4.3.2" - formidable "^3.2.4" - get-stream "^6.0.1" - lodash "^4.17.21" - sax ">=0.6" - strip-bom "^3.0.0" - uuid "^8.3.2" - whatwg-mimetype "3.0.0" - xml-crypto "^3.0.0" - socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz" @@ -9678,7 +9608,7 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -uuid@8.3.2, uuid@^8.3.2: +uuid@8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -9816,11 +9746,6 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-mimetype@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" @@ -9961,14 +9886,6 @@ xdg-basedir@^4.0.0: resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== -xml-crypto@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/xml-crypto/-/xml-crypto-3.0.1.tgz" - integrity sha512-7XrwB3ujd95KCO6+u9fidb8ajvRJvIfGNWD0XLJoTWlBKz+tFpUzEYxsN+Il/6/gHtEs1RgRh2RH+TzhcWBZUw== - dependencies: - "@xmldom/xmldom" "^0.8.5" - xpath "0.0.32" - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" @@ -9979,11 +9896,6 @@ xmlchars@^2.2.0: resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xpath@0.0.32: - version "0.0.32" - resolved "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz" - integrity sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw== - xregexp@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz"