diff --git a/packages/docusaurus-theme-openapi-docs/package.json b/packages/docusaurus-theme-openapi-docs/package.json index b4e45bd35..e899fb111 100644 --- a/packages/docusaurus-theme-openapi-docs/package.json +++ b/packages/docusaurus-theme-openapi-docs/package.json @@ -53,8 +53,11 @@ "file-saver": "^2.0.5", "lodash": "^4.17.21", "pako": "^2.1.0", - "postman-code-generators": "^2.0.0", "postman-collection": "^5.0.2", + "httpsnippet-lite": "^3.0.5", + "@har-sdk/postman": "^2.4.7", + "@har-sdk/core": "^1.5.0", + "path-browserify": "^1.0.1", "prism-react-renderer": "^2.4.1", "process": "^0.11.10", "react-hook-form": "^7.59.0", diff --git a/packages/docusaurus-theme-openapi-docs/src/index.ts b/packages/docusaurus-theme-openapi-docs/src/index.ts index 7d293e086..515bb8566 100644 --- a/packages/docusaurus-theme-openapi-docs/src/index.ts +++ b/packages/docusaurus-theme-openapi-docs/src/index.ts @@ -42,6 +42,7 @@ export default function docusaurusThemeOpenAPI(): Plugin { resolve: { fallback: { buffer: require.resolve("buffer/"), + path: require.resolve("path-browserify"), }, }, plugins: [ @@ -71,6 +72,7 @@ export default function docusaurusThemeOpenAPI(): Plugin { resolve: { fallback: { buffer: require.resolve("buffer/"), + path: require.resolve("path-browserify"), }, }, plugins: [ diff --git a/packages/docusaurus-theme-openapi-docs/src/postman-code-generators.d.ts b/packages/docusaurus-theme-openapi-docs/src/postman-code-generators.d.ts deleted file mode 100644 index a6a3d4152..000000000 --- a/packages/docusaurus-theme-openapi-docs/src/postman-code-generators.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* ============================================================================ - * Copyright (c) Palo Alto Networks - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * ========================================================================== */ - -// TODO: Remove this when https://github.com/facebook/docusaurus/issues/6087 is resolved. -declare module "postman-code-generators"; diff --git a/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts b/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts index 3f8f03a38..b15b18a12 100644 --- a/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts +++ b/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts @@ -40,6 +40,7 @@ export interface Language { language: string; codeSampleLanguage: CodeSampleLanguage; logoClass: string; + label?: string; variant: string; variants: string[]; options?: { [key: string]: boolean }; diff --git a/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/index.tsx b/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/index.tsx index dc0dde0b4..a29a2e28d 100644 --- a/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/index.tsx +++ b/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/index.tsx @@ -5,16 +5,19 @@ * LICENSE file in the root directory of this source tree. * ========================================================================== */ -import React, { useState, useEffect } from "react"; +import React, { useEffect, useState } from "react"; import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import { Postman } from "@har-sdk/core"; +import { postman2har } from "@har-sdk/postman"; import ApiCodeBlock from "@theme/ApiExplorer/ApiCodeBlock"; import buildPostmanRequest from "@theme/ApiExplorer/buildPostmanRequest"; import CodeTabs from "@theme/ApiExplorer/CodeTabs"; import { useTypedSelector } from "@theme/ApiItem/hooks"; +import { HTTPSnippet, TargetId } from "httpsnippet-lite"; import cloneDeep from "lodash/cloneDeep"; -import codegen from "postman-code-generators"; import * as sdk from "postman-collection"; +import type { Param } from "@theme/ApiExplorer/ParamOptions/slice"; import { CodeSample, Language } from "./code-snippets-types"; import { @@ -108,20 +111,43 @@ function CodeSnippets({ // User-defined languages array // Can override languageSet, change order of langs, override options and variants - const userDefinedLanguageSet = - (siteConfig?.themeConfig?.languageTabs as Language[] | undefined) ?? - languageSet; + const languageAliases: Record< + string, + { language: string; variant?: string } + > = { + curl: { language: "shell", variant: "curl" }, + nodejs: { language: "node" }, + }; + + const userDefinedLanguageSet = ( + siteConfig?.themeConfig?.languageTabs as Language[] | undefined + ) + ?.map((lang) => { + const alias = languageAliases[lang.language]; + if (alias) { + return { + ...lang, + ...alias, + label: lang.label ?? lang.language, + }; + } + return lang; + }) + .filter((lang) => languageSet.some((ls) => ls.language === lang.language)); + + const finalLanguageSet = + userDefinedLanguageSet && userDefinedLanguageSet.length + ? userDefinedLanguageSet + : languageSet; // Filter languageSet by user-defined langs - const filteredLanguageSet = languageSet.filter((ls) => { - return userDefinedLanguageSet?.some((lang) => { - return lang.language === ls.language; - }); - }); + const filteredLanguageSet = languageSet.filter((ls) => + finalLanguageSet.some((lang) => lang.language === ls.language) + ); // Merge user-defined langs into languageSet const mergedLangs = mergeCodeSampleLanguage( - mergeArraysbyLanguage(userDefinedLanguageSet, filteredLanguageSet), + mergeArraysbyLanguage(finalLanguageSet, filteredLanguageSet), codeSamples ); @@ -130,8 +156,6 @@ function CodeSnippets({ (lang) => lang.language === localStorage.getItem("docusaurus.tab.code-samples") ); - const [selectedVariant, setSelectedVariant] = useState(); - const [selectedSample, setSelectedSample] = useState(); const [language, setLanguage] = useState(() => { // Return first index if only 1 user-defined language exists if (mergedLangs.length === 1) { @@ -140,6 +164,12 @@ function CodeSnippets({ // Fall back to language in localStorage or first user-defined language return defaultLang[0] ?? mergedLangs[0]; }); + const [selectedVariant, setSelectedVariant] = useState( + language.variant + ); + const [selectedSample, setSelectedSample] = useState( + language.sample + ); const [codeText, setCodeText] = useState(""); const [codeSampleCodeText, setCodeSampleCodeText] = useState< string | (() => string) @@ -149,44 +179,51 @@ function CodeSnippets({ if (language && !!language.sample) { setCodeSampleCodeText(getCodeSampleSourceFromLanguage(language)); } + }, [language, selectedSample]); - if (language && !!language.options) { - codegen.convert( - language.language, - language.variant, - cleanedPostmanRequest, - language.options, - (error: any, snippet: string) => { - if (error) { - return; - } - setCodeText(snippet); - } - ); - } else if (language && !language.options) { + useEffect(() => { + async function generateSnippet() { + if (!language) { + setCodeText(""); + return; + } const langSource = mergedLangs.filter( (lang) => lang.language === language.language ); + const mergedLanguage = language.options + ? language + : { ...langSource[0], ...language }; + const collection = new sdk.Collection({ + item: [{ name: "request", request: cleanedPostmanRequest }], + }); - // Merges user-defined language with default languageSet - // This allows users to define only the minimal properties necessary in languageTabs - // User-defined properties should override languageSet properties - const mergedLanguage = { ...langSource[0], ...language }; - codegen.convert( - mergedLanguage.language, - mergedLanguage.variant, - cleanedPostmanRequest, - mergedLanguage.options, - (error: any, snippet: string) => { - if (error) { - return; - } - setCodeText(snippet); - } + const environment = Object.fromEntries( + pathParams.map((param: Param) => [ + param.name, + Array.isArray(param.value) + ? param.value[0] + : (param.value ?? `<${param.name}>`), + ]) + ); + + const [harRequest] = await postman2har( + { + ...collection.toJSON(), + info: { + schema: + "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + }, + } as Postman.Document, + { environment } + ); + const snippet = await new HTTPSnippet(harRequest).convert( + mergedLanguage.language as TargetId, + selectedVariant ?? mergedLanguage.variant, + mergedLanguage.options ); - } else { - setCodeText(""); + setCodeText(typeof snippet === "string" ? snippet : ""); } + generateSnippet(); }, [ accept, body, @@ -200,41 +237,8 @@ function CodeSnippets({ server, cleanedPostmanRequest, mergedLangs, + selectedVariant, ]); - // no dependencies was intentionally set for this particular hook. it's safe as long as if conditions are set - useEffect(function onSelectedVariantUpdate() { - if (selectedVariant && selectedVariant !== language?.variant) { - codegen.convert( - language.language, - selectedVariant, - cleanedPostmanRequest, - language.options, - (error: any, snippet: string) => { - if (error) { - return; - } - setCodeText(snippet); - } - ); - } - }); - - // no dependencies was intentionally set for this particular hook. it's safe as long as if conditions are set - // eslint-disable-next-line react-hooks/exhaustive-deps - useEffect(function onSelectedSampleUpdate() { - if ( - language && - language.samples && - language.samplesSources && - selectedSample && - selectedSample !== language.sample - ) { - const sampleIndex = language.samples.findIndex( - (smp) => smp === selectedSample - ); - setCodeSampleCodeText(language.samplesSources[sampleIndex]); - } - }); if (language === undefined) { return null; @@ -258,7 +262,7 @@ function CodeSnippets({ return ( @@ -315,7 +319,7 @@ function CodeSnippets({ }} includeVariant={true} currentLanguage={lang.language} - defaultValue={selectedVariant} + defaultValue={selectedVariant ?? language.variant} languageSet={mergedLangs} lazy > diff --git a/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/languages.ts b/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/languages.ts index a93cf0e5a..37cf00393 100644 --- a/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/languages.ts +++ b/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/languages.ts @@ -5,12 +5,16 @@ * LICENSE file in the root directory of this source tree. * ========================================================================== */ +import { availableTargets } from "httpsnippet-lite"; import find from "lodash/find"; import mergeWith from "lodash/mergeWith"; import unionBy from "lodash/unionBy"; -import codegen from "postman-code-generators"; -import { CodeSample, Language } from "./code-snippets-types"; +import { + CodeSample, + Language, + CodeSampleLanguage, +} from "./code-snippets-types"; export function mergeCodeSampleLanguage( languages: Language[], @@ -73,23 +77,42 @@ export function getCodeSampleSourceFromLanguage(language: Language) { export function generateLanguageSet() { const languageSet: Language[] = []; - codegen.getLanguageList().forEach((language: any) => { - const variants: any = []; - language.variants.forEach((variant: any) => { - variants.push(variant.key); - }); + const languageMap: Record = { + c: "C", + csharp: "C#", + go: "Go", + java: "Java", + javascript: "JavaScript", + kotlin: "Kotlin", + node: "JavaScript", + objc: "Objective-C", + ocaml: "OCaml", + php: "PHP", + powershell: "PowerShell", + python: "Python", + r: "R", + ruby: "Ruby", + rust: "Rust", + shell: "Shell", + swift: "Swift", + }; + const highlightMap: Record = { + node: "javascript", + }; + availableTargets().forEach((target) => { + const codeSample = languageMap[target.key]; + if (!codeSample) { + return; + } + const variants = target.clients.map((client: any) => client.key); languageSet.push({ - highlight: language.syntax_mode, - language: language.key, - codeSampleLanguage: language.label, - logoClass: language.key, - options: { - longFormat: false, - followRedirect: true, - trimRequestBody: true, - }, + highlight: highlightMap[target.key] ?? target.key, + language: target.key, + codeSampleLanguage: codeSample, + logoClass: target.key, + options: {}, variant: variants[0], - variants: variants, + variants, }); }); return languageSet; diff --git a/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/buildPostmanRequest.ts b/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/buildPostmanRequest.ts index 78e57744c..288bbec6d 100644 --- a/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/buildPostmanRequest.ts +++ b/packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/buildPostmanRequest.ts @@ -114,20 +114,21 @@ function setQueryParams(postman: sdk.Request, queryParams: Param[]) { function setPathParams(postman: sdk.Request, pathParams: Param[]) { // Map through the path parameters const source = pathParams.map((param) => { - if (!param.value) { - return undefined; - } + const value = + param.value !== undefined && param.value !== "" + ? param.value + : `<${param.name}>`; let serializedValue; // Handle different styles - if (Array.isArray(param.value)) { + if (Array.isArray(value)) { if (param.style === "label") { - serializedValue = `.${param.value.join(".")}`; + serializedValue = `.${value.join(".")}`; } else if (param.style === "matrix") { - serializedValue = `;${param.name}=${param.value.join(";")}`; + serializedValue = `;${param.name}=${value.join(";")}`; } else { - serializedValue = param.value.join(","); + serializedValue = value.join(","); } return new sdk.Variable({ key: param.name, @@ -135,7 +136,7 @@ function setPathParams(postman: sdk.Request, pathParams: Param[]) { }); } - const jsonResult = tryDecodeJsonParam(param.value); + const jsonResult = tryDecodeJsonParam(value); if (jsonResult && typeof jsonResult === "object") { if (param.style === "matrix") { @@ -148,7 +149,7 @@ function setPathParams(postman: sdk.Request, pathParams: Param[]) { .join(","); } } else { - serializedValue = param.value; + serializedValue = value; } return new sdk.Variable({ @@ -157,10 +158,7 @@ function setPathParams(postman: sdk.Request, pathParams: Param[]) { }); }); - postman.url.variables.assimilate( - source.filter((v): v is sdk.Variable => v !== undefined), - false - ); + postman.url.variables.assimilate(source, false); } function buildCookie(cookieParams: Param[]) { diff --git a/yarn.lock b/yarn.lock index dfd729b95..4ffe77326 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2127,6 +2127,27 @@ dependencies: "@hapi/hoek" "^9.0.0" +"@har-sdk/core@1.5.0", "@har-sdk/core@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@har-sdk/core/-/core-1.5.0.tgz#d9f8bac773465475674af5cd185e5e37e848ecf9" + integrity sha512-djc7HOTwclLDQj1v3aK7xmpwTcR7FnjJ2WTd1Q9MYwrfAldWgKscgJVWvNPsomtqRUdi8CQAsV5TiN/HykdrAw== + dependencies: + js-yaml "^4.1.0" + openapi-types "^10.0.0" + tslib "^2.3.1" + +"@har-sdk/postman@^2.4.7": + version "2.4.7" + resolved "https://registry.yarnpkg.com/@har-sdk/postman/-/postman-2.4.7.tgz#438667bb7841e83732655037ae2ace808617b034" + integrity sha512-YENZdbqbEobX7f+vBVvB7/PJLdaDZWzBXRQKN2V7xXcr+cbcWAMJhBNjWix2ljrJeLevzo/9XS/KE/EoW2SeCA== + dependencies: + "@har-sdk/core" "1.5.0" + faker "5.5.3" + json-pointer "^0.6.2" + mime-types "^2.1.34" + qs "^6.10.3" + tslib "^2.3.1" + "@hookform/error-message@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@hookform/error-message/-/error-message-2.0.1.tgz#6a37419106e13664ad6a29c9dae699ae6cd276b8" @@ -4200,6 +4221,11 @@ resolved "https://registry.yarnpkg.com/@types/gtag.js/-/gtag.js-0.0.12.tgz#095122edca896689bdfcdd73b057e23064d23572" integrity sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg== +"@types/har-format@^1.2.10": + version "1.2.16" + resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.16.tgz#b71ede8681400cc08b3685f061c31e416cf94944" + integrity sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A== + "@types/hast@^3.0.0": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" @@ -5366,11 +5392,6 @@ async-function@^1.0.0: resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== -async@3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" - integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== - async@3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" @@ -7207,13 +7228,6 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -detect-package-manager@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/detect-package-manager/-/detect-package-manager-3.0.2.tgz#ca34261ab84198072580e93ae86582c575428da9" - integrity sha512-8JFjJHutStYrfWwzfretQoyNGoZVW1Fsrp4JO9spa7h/fBfwgTMEIy4/LBzRDGsxwVPHU0q+T9YvwLDJoOApLQ== - dependencies: - execa "^5.1.1" - detect-port@^1.5.1: version "1.6.1" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.6.1.tgz#45e4073997c5f292b957cb678fb0bb8ed4250a67" @@ -8364,6 +8378,11 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== +faker@5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/faker/-/faker-5.5.3.tgz#c57974ee484431b25205c2c8dc09fda861e51e0e" + integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -8629,6 +8648,14 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== +formdata-node@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" + integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== + dependencies: + node-domexception "1.0.0" + web-streams-polyfill "4.0.0-beta.3" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -8927,7 +8954,7 @@ glob@^10.2.2, glob@^10.3.10: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -9535,6 +9562,15 @@ https-proxy-agent@^7.0.1, https-proxy-agent@^7.0.5: agent-base "^7.1.2" debug "4" +httpsnippet-lite@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/httpsnippet-lite/-/httpsnippet-lite-3.0.5.tgz#af937fa37d3f34e333a1f68e64f906c0fe48c992" + integrity sha512-So4qTXY5iFj5XtFDwyz2PicUu+8NWrI8e8h+ZeZoVtMNcFQp4FFIntBHUE+JPUG6QQU8o1VHCy+X4ETRDwt9CA== + dependencies: + "@types/har-format" "^1.2.10" + formdata-node "^4.4.1" + stringify-object "3.3.0" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -9751,11 +9787,6 @@ internal-slot@^1.1.0: hasown "^2.0.2" side-channel "^1.1.0" -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -12283,7 +12314,7 @@ mime-types@2.1.18: dependencies: mime-db "~1.33.0" -mime-types@2.1.35, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.35, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@2.1.35, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.34, mime-types@^2.1.35, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -12578,6 +12609,11 @@ node-addon-api@^7.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== +node-domexception@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-emoji@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.2.0.tgz#1d000e3c76e462577895be1b436f4aa2d6760eb0" @@ -13094,6 +13130,11 @@ openapi-to-postmanv2@^5.0.0: swagger2openapi "7.0.8" yaml "1.10.2" +openapi-types@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-10.0.0.tgz#0debbf663b2feed0322030b5b7c9080804076934" + integrity sha512-Y8xOCT2eiKGYDzMW9R4x5cmfc3vGaaI4EL2pwhDmodWw1HlK18YcZ4uJxc7Rdp7/gGzAygzH9SXr6GKYIXbRcQ== + opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" @@ -13539,14 +13580,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -path@0.12.7: - version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" - integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== - dependencies: - process "^0.11.1" - util "^0.10.3" - pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" @@ -14237,18 +14270,6 @@ postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.33, postcss@^8.5.4: picocolors "^1.1.1" source-map-js "^1.2.1" -postman-code-generators@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postman-code-generators/-/postman-code-generators-2.0.0.tgz#d83f900e669b46427aa25da7382ff33299626cf9" - integrity sha512-4PJYJR/+tqY0MxNC9KgiAjKDbEeSAqoQ1MrR2zl4KU8bFbzWr0EBUrBRFtTUuywNOx7qr6jNulrH7nr8SzxFEA== - dependencies: - async "3.2.2" - detect-package-manager "3.0.2" - lodash "4.17.21" - path "0.12.7" - postman-collection "^5.0.0" - shelljs "0.8.5" - postman-collection@^5.0.0, postman-collection@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/postman-collection/-/postman-collection-5.0.2.tgz#bd5182bd426ecfecd8c288b2311c716c63f201a6" @@ -14364,7 +14385,7 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.1, process@^0.11.10: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== @@ -14515,7 +14536,7 @@ qs@6.13.0: dependencies: side-channel "^1.0.6" -qs@6.14.0, qs@^6.12.3: +qs@6.14.0, qs@^6.10.3, qs@^6.12.3: version "6.14.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== @@ -14830,13 +14851,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - recma-build-jsx@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz#c02f29e047e103d2fab2054954e1761b8ea253c4" @@ -15180,7 +15194,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.20.0, resolve@^1.22.10, resolve@^1.22.4: +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.20.0, resolve@^1.22.10, resolve@^1.22.4: version "1.22.10" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== @@ -15572,15 +15586,6 @@ shell-quote@^1.8.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== -shelljs@0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - should-equal@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" @@ -16723,7 +16728,7 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.6.0: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.6.0: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -17144,13 +17149,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" @@ -17352,6 +17350,11 @@ web-namespaces@^2.0.0: resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== +web-streams-polyfill@4.0.0-beta.3: + version "4.0.0-beta.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" + integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"