@redocly/openapi-docs 0.0.0-react18-20231120182601 → 0.74.2-pingfed.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/console.redocly-openapi-docs.min.js +104 -105
- package/dist/oauth2-redirect.js +5 -5
- package/dist/redocly-openapi-docs.min.js +1322 -1224
- package/lib/components/ContentItems/ContentItems.js +1 -1
- package/lib/components/Endpoint/ServerList.js +1 -1
- package/lib/components/Fields/DescriptionEnums.js +1 -1
- package/lib/components/Fields/FieldDetails.js +1 -1
- package/lib/components/OperationItem/OperationItem.js +3 -1
- package/lib/components/SeeMore/SeeMore.js +1 -1
- package/lib/components/rightPanel/CodemirrorInput/helpers.js +1 -1
- package/lib/components/rightPanel/CodemirrorInput/styled.js +1 -1
- package/lib/components/rightPanel/Console/Console.js +1 -1
- package/lib/models/security.js +1 -1
- package/lib/services/code-samples/generator.js +1 -1
- package/lib/services/code-samples/httpsnippet/helpers/code-builder.js +1 -1
- package/lib/services/code-samples/httpsnippet/helpers/constants.d.ts +1 -0
- package/lib/services/code-samples/httpsnippet/helpers/constants.js +1 -1
- package/lib/services/code-samples/httpsnippet/helpers/mocks/code-helpers-mock.d.ts +2 -0
- package/lib/services/code-samples/httpsnippet/helpers/mocks/code-helpers-mock.js +1 -1
- package/lib/services/code-samples/httpsnippet/targets/csharp/httpclient.js +1 -1
- package/lib/services/code-samples/httpsnippet/targets/csharpNewtonsoft/httpclient.d.ts +10 -0
- package/lib/services/code-samples/httpsnippet/targets/csharpNewtonsoft/httpclient.js +2 -0
- package/lib/services/code-samples/httpsnippet/targets/csharpNewtonsoft/index.d.ts +10 -0
- package/lib/services/code-samples/httpsnippet/targets/csharpNewtonsoft/index.js +2 -0
- package/lib/services/code-samples/httpsnippet/targets/index.d.ts +9 -0
- package/lib/services/code-samples/httpsnippet/targets/index.js +1 -1
- package/lib/services/code-samples/types.d.ts +5 -2
- package/lib/services/labels/LabelsService.js +1 -1
- package/lib/services/labels/types.d.ts +1 -0
- package/lib/standalone.d.ts +1 -1
- package/lib/standalone.js +1 -1
- package/lib/utils/helpers.d.ts +2 -0
- package/lib/utils/helpers.js +1 -1
- package/lib/utils/openapi.js +1 -1
- package/lib/utils/path.d.ts +1 -0
- package/lib/utils/path.js +1 -1
- package/lib/utils/typeGuards.d.ts +1 -0
- package/lib/utils/typeGuards.js +1 -1
- package/lib-esm/components/ContentItems/ContentItems.js +1 -1
- package/lib-esm/components/Endpoint/ServerList.js +1 -1
- package/lib-esm/components/Fields/DescriptionEnums.js +1 -1
- package/lib-esm/components/Fields/FieldDetails.js +1 -1
- package/lib-esm/components/OperationItem/OperationItem.js +3 -1
- package/lib-esm/components/SeeMore/SeeMore.js +1 -1
- package/lib-esm/components/rightPanel/CodemirrorInput/helpers.js +1 -1
- package/lib-esm/components/rightPanel/CodemirrorInput/styled.js +1 -1
- package/lib-esm/components/rightPanel/Console/Console.js +1 -1
- package/lib-esm/models/security.js +1 -1
- package/lib-esm/services/code-samples/generator.js +1 -1
- package/lib-esm/services/code-samples/httpsnippet/helpers/code-builder.js +1 -1
- package/lib-esm/services/code-samples/httpsnippet/helpers/constants.d.ts +1 -0
- package/lib-esm/services/code-samples/httpsnippet/helpers/constants.js +1 -1
- package/lib-esm/services/code-samples/httpsnippet/helpers/mocks/code-helpers-mock.d.ts +2 -0
- package/lib-esm/services/code-samples/httpsnippet/helpers/mocks/code-helpers-mock.js +1 -1
- package/lib-esm/services/code-samples/httpsnippet/targets/csharp/httpclient.js +1 -1
- package/lib-esm/services/code-samples/httpsnippet/targets/csharpNewtonsoft/httpclient.d.ts +10 -0
- package/lib-esm/services/code-samples/httpsnippet/targets/csharpNewtonsoft/httpclient.js +2 -0
- package/lib-esm/services/code-samples/httpsnippet/targets/csharpNewtonsoft/index.d.ts +10 -0
- package/lib-esm/services/code-samples/httpsnippet/targets/csharpNewtonsoft/index.js +2 -0
- package/lib-esm/services/code-samples/httpsnippet/targets/index.d.ts +9 -0
- package/lib-esm/services/code-samples/httpsnippet/targets/index.js +1 -1
- package/lib-esm/services/code-samples/types.d.ts +5 -2
- package/lib-esm/services/labels/LabelsService.js +1 -1
- package/lib-esm/services/labels/types.d.ts +1 -0
- package/lib-esm/standalone.d.ts +1 -1
- package/lib-esm/standalone.js +1 -1
- package/lib-esm/utils/helpers.d.ts +2 -0
- package/lib-esm/utils/helpers.js +1 -1
- package/lib-esm/utils/openapi.js +1 -1
- package/lib-esm/utils/path.d.ts +1 -0
- package/lib-esm/utils/path.js +1 -1
- package/lib-esm/utils/typeGuards.d.ts +1 -0
- package/lib-esm/utils/typeGuards.js +1 -1
- package/package.json +52 -52
package/lib/utils/helpers.d.ts
CHANGED
|
@@ -45,3 +45,5 @@ export declare function getWindowReferenceOptions<T>(option: string): T | null;
|
|
|
45
45
|
export declare function getJsUrl(): string;
|
|
46
46
|
export declare const normalizeText: (text?: string | GenericObject) => string;
|
|
47
47
|
export declare const getValueFromMdParsedExtension: (item: GenericObject, key: 'description' | 'summary' | 'x-summary' | 'x-enumDescriptions') => any;
|
|
48
|
+
export declare function isLastInArray(arr: Array<unknown>, index: number): boolean;
|
|
49
|
+
export declare function isLastProperty(obj: Object, key: string): boolean;
|
package/lib/utils/helpers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getValueFromMdParsedExtension=exports.normalizeText=exports.getJsUrl=exports.getWindowReferenceOptions=exports.dottedString=exports.joinStringFactory=exports.get=exports.useSchemaTitle=exports.sanitizeItemId=exports.unescapeHTMLChars=exports.escapeHTMLAttrChars=exports.removeQueryStringAndHash=exports.titleize=exports.getBasePath=exports.resolveUrl=exports.isAbsoluteUrl=exports.isMergeableObject=exports.deleteEmptyArrayItem=exports.isArrayOfObjects=exports.isObject=exports.mergeObjects=exports.appendToMdHeading=exports.isNumeric=exports.stripTrailingSlash=exports.flattenByProp=exports.mapValues=exports.mapWithLast=void 0;const url_1=require("url"),media_css_1=require("./media-css"),openapi_1=require("./openapi"),JsonPointer_1=require("./JsonPointer"),dom_1=require("./dom"),typeGuards_1=require("./typeGuards");function mapWithLast(e,t){const r=[];for(let s=0;s<e.length-1;s++)r.push(t(e[s],!1));return 0!==e.length&&r.push(t(e[e.length-1],!0)),r}function mapValues(e,t){const r={};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(r[s]=t(e[s],s,e));return r}function flattenByProp(e,t){const r=[],s=e=>{for(const n of e)r.push(n),n[t]&&s(n[t])};return s(e),r}function stripTrailingSlash(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}function appendToMdHeading(e,t,r){const s=new RegExp(`(^|\\n)#\\s?${t}\\s*\\n`,"i"),n=new RegExp(`((\\n|^)#\\s*${t}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(s.test(e))return e.replace(n,`$1\n\n${r}\n$4`);{const s=""===e||e.endsWith("\n\n")?"":e.endsWith("\n")?"\n":"\n\n";return`${e}${s}# ${t}\n\n${r}`}}exports.mapWithLast=mapWithLast,exports.mapValues=mapValues,exports.flattenByProp=flattenByProp,exports.stripTrailingSlash=stripTrailingSlash,exports.isNumeric=isNumeric,exports.appendToMdHeading=appendToMdHeading;const mergeObjects=(e,...t)=>{if(!t.length)return e;const r=t.shift();return void 0===r?e:((0,exports.isMergeableObject)(e)&&(0,exports.isMergeableObject)(r)&&Object.keys(r).forEach((t=>{(0,exports.isMergeableObject)(r[t])?(e[t]||(e[t]={}),["string","number"].includes(typeof e[t])&&(r[t][media_css_1.ZERO_BREAKPOINT]||0===r[t][media_css_1.ZERO_BREAKPOINT]||console.warn(`Theme resolver: using default value of "${e[t]}" for "${t}". This is not recommended. Prefer adding default value by providing "${media_css_1.ZERO_BREAKPOINT}" property to ${JSON.stringify(r[t])}.`),e[t]={[media_css_1.ZERO_BREAKPOINT]:e[t]}),(0,exports.mergeObjects)(e[t],r[t])):e[t]=r[t]})),(0,exports.mergeObjects)(e,...t))};exports.mergeObjects=mergeObjects;const isObject=e=>null!==e&&"object"==typeof e;exports.isObject=isObject;const isArrayOfObjects=e=>Array.isArray(e)&&e.some((e=>(0,exports.isObject)(e)));exports.isArrayOfObjects=isArrayOfObjects;const deleteEmptyArrayItem=e=>e.filter((e=>!!e));exports.deleteEmptyArrayItem=deleteEmptyArrayItem;const isMergeableObject=e=>(0,exports.isObject)(e)&&!Array.isArray(e);function isAbsoluteUrl(e){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(e)}function resolveUrl(e,t){let r;if(t.startsWith("//")){const{protocol:s}=(0,url_1.parse)(e);r=`${s||"https:"}${t}`}else if(isAbsoluteUrl(t))r=t;else if(t.startsWith("/")){const s=(0,url_1.parse)(e);r=(0,url_1.format)(Object.assign(Object.assign({},s),{pathname:t}))}else r=stripTrailingSlash(e)+"/"+t;return stripTrailingSlash(r)}function getBasePath(e){try{return parseURL(e).pathname}catch(t){return e}}function titleize(e){return e.charAt(0).toUpperCase()+e.slice(1)}function removeQueryStringAndHash(e){try{const t=parseURL(e);return t.search="",t.hash="",t.toString()}catch(t){return e}}function parseURL(e){return"undefined"==typeof URL?new(require("url").URL)(e):new URL(e)}function escapeHTMLAttrChars(e){return e.replace(/["\\]/g,"\\$&")}function unescapeHTMLChars(e){return e.replace(/&#(\d+);/g,((e,t)=>String.fromCharCode(parseInt(t,10)))).replace(/&/g,"&").replace(/"/g,'"')}function sanitizeItemId(e){return e&&e.replace(/#/g,"_")}function useSchemaTitle(e,t){return t||(0,openapi_1.isNamedDefinition)(e)&&JsonPointer_1.JsonPointer.baseName(e)||""}function get(e={},t,r){return"string"==typeof t&&(t=t.split(".")),t.reduce(((e,t)=>e&&e[t]?e[t]:r),e)}function joinStringFactory(e){return(...t)=>t.filter(Boolean).join(e)}function getWindowReferenceOptions(e){var t;return dom_1.IS_BROWSER?null===(t=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===t?void 0:t[e]:null}function getJsUrl(){var e;if(!dom_1.IS_BROWSER)return"";const t=+new Date+Math.random();try{return document.currentScript&&(document.currentScript.async||document.currentScript.defer)||document.write(`<script id="dummy${t}"><\/script>`),(null===(e=document.getElementById("dummy"+t))||void 0===e?void 0:e.previousSibling).src}catch(e){return""}}exports.isMergeableObject=isMergeableObject,exports.isAbsoluteUrl=isAbsoluteUrl,exports.resolveUrl=resolveUrl,exports.getBasePath=getBasePath,exports.titleize=titleize,exports.removeQueryStringAndHash=removeQueryStringAndHash,exports.escapeHTMLAttrChars=escapeHTMLAttrChars,exports.unescapeHTMLChars=unescapeHTMLChars,exports.sanitizeItemId=sanitizeItemId,exports.useSchemaTitle=useSchemaTitle,exports.get=get,exports.joinStringFactory=joinStringFactory,exports.dottedString=joinStringFactory("."),exports.getWindowReferenceOptions=getWindowReferenceOptions,exports.getJsUrl=getJsUrl;const normalizeText=e=>(0,typeGuards_1.isString)(e)?e:null==e?void 0:e.raw;exports.normalizeText=normalizeText;const getValueFromMdParsedExtension=(e,t)=>{const r=e[`x-parsed-md-${t}`]||e[t];if("x-enumDescriptions"!==t)return r;let s={};for(const e in r)e.startsWith("x-parsed-md")||(s[e]=r[`x-parsed-md-${e}`]||r[e]);return Object.keys(s).length?s:r};exports.getValueFromMdParsedExtension=getValueFromMdParsedExtension;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isLastProperty=exports.isLastInArray=exports.getValueFromMdParsedExtension=exports.normalizeText=exports.getJsUrl=exports.getWindowReferenceOptions=exports.dottedString=exports.joinStringFactory=exports.get=exports.useSchemaTitle=exports.sanitizeItemId=exports.unescapeHTMLChars=exports.escapeHTMLAttrChars=exports.removeQueryStringAndHash=exports.titleize=exports.getBasePath=exports.resolveUrl=exports.isAbsoluteUrl=exports.isMergeableObject=exports.deleteEmptyArrayItem=exports.isArrayOfObjects=exports.isObject=exports.mergeObjects=exports.appendToMdHeading=exports.isNumeric=exports.stripTrailingSlash=exports.flattenByProp=exports.mapValues=exports.mapWithLast=void 0;const url_1=require("url"),media_css_1=require("./media-css"),openapi_1=require("./openapi"),JsonPointer_1=require("./JsonPointer"),dom_1=require("./dom"),typeGuards_1=require("./typeGuards");function mapWithLast(e,t){const r=[];for(let s=0;s<e.length-1;s++)r.push(t(e[s],!1));return 0!==e.length&&r.push(t(e[e.length-1],!0)),r}function mapValues(e,t){const r={};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(r[s]=t(e[s],s,e));return r}function flattenByProp(e,t){const r=[],s=e=>{for(const n of e)r.push(n),n[t]&&s(n[t])};return s(e),r}function stripTrailingSlash(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}function appendToMdHeading(e,t,r){const s=new RegExp(`(^|\\n)#\\s?${t}\\s*\\n`,"i"),n=new RegExp(`((\\n|^)#\\s*${t}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(s.test(e))return e.replace(n,`$1\n\n${r}\n$4`);{const s=""===e||e.endsWith("\n\n")?"":e.endsWith("\n")?"\n":"\n\n";return`${e}${s}# ${t}\n\n${r}`}}exports.mapWithLast=mapWithLast,exports.mapValues=mapValues,exports.flattenByProp=flattenByProp,exports.stripTrailingSlash=stripTrailingSlash,exports.isNumeric=isNumeric,exports.appendToMdHeading=appendToMdHeading;const mergeObjects=(e,...t)=>{if(!t.length)return e;const r=t.shift();return void 0===r?e:((0,exports.isMergeableObject)(e)&&(0,exports.isMergeableObject)(r)&&Object.keys(r).forEach((t=>{(0,exports.isMergeableObject)(r[t])?(e[t]||(e[t]={}),["string","number"].includes(typeof e[t])&&(r[t][media_css_1.ZERO_BREAKPOINT]||0===r[t][media_css_1.ZERO_BREAKPOINT]||console.warn(`Theme resolver: using default value of "${e[t]}" for "${t}". This is not recommended. Prefer adding default value by providing "${media_css_1.ZERO_BREAKPOINT}" property to ${JSON.stringify(r[t])}.`),e[t]={[media_css_1.ZERO_BREAKPOINT]:e[t]}),(0,exports.mergeObjects)(e[t],r[t])):e[t]=r[t]})),(0,exports.mergeObjects)(e,...t))};exports.mergeObjects=mergeObjects;const isObject=e=>null!==e&&"object"==typeof e;exports.isObject=isObject;const isArrayOfObjects=e=>Array.isArray(e)&&e.some((e=>(0,exports.isObject)(e)));exports.isArrayOfObjects=isArrayOfObjects;const deleteEmptyArrayItem=e=>e.filter((e=>!!e));exports.deleteEmptyArrayItem=deleteEmptyArrayItem;const isMergeableObject=e=>(0,exports.isObject)(e)&&!Array.isArray(e);function isAbsoluteUrl(e){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(e)}function resolveUrl(e,t){let r;if(t.startsWith("//")){const{protocol:s}=(0,url_1.parse)(e);r=`${s||"https:"}${t}`}else if(isAbsoluteUrl(t))r=t;else if(t.startsWith("/")){const s=(0,url_1.parse)(e);r=(0,url_1.format)(Object.assign(Object.assign({},s),{pathname:t}))}else r=stripTrailingSlash(e)+"/"+t;return stripTrailingSlash(r)}function getBasePath(e){try{return parseURL(e).pathname}catch(t){return e}}function titleize(e){return e.charAt(0).toUpperCase()+e.slice(1)}function removeQueryStringAndHash(e){try{const t=parseURL(e);return t.search="",t.hash="",t.toString()}catch(t){return e}}function parseURL(e){return"undefined"==typeof URL?new(require("url").URL)(e):new URL(e)}function escapeHTMLAttrChars(e){return e.replace(/["\\]/g,"\\$&")}function unescapeHTMLChars(e){return e.replace(/&#(\d+);/g,((e,t)=>String.fromCharCode(parseInt(t,10)))).replace(/&/g,"&").replace(/"/g,'"')}function sanitizeItemId(e){return e&&e.replace(/#/g,"_")}function useSchemaTitle(e,t){return t||(0,openapi_1.isNamedDefinition)(e)&&JsonPointer_1.JsonPointer.baseName(e)||""}function get(e={},t,r){return"string"==typeof t&&(t=t.split(".")),t.reduce(((e,t)=>e&&e[t]?e[t]:r),e)}function joinStringFactory(e){return(...t)=>t.filter(Boolean).join(e)}function getWindowReferenceOptions(e){var t;return dom_1.IS_BROWSER?null===(t=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===t?void 0:t[e]:null}function getJsUrl(){var e;if(!dom_1.IS_BROWSER)return"";const t=+new Date+Math.random();try{return document.currentScript&&(document.currentScript.async||document.currentScript.defer)||document.write(`<script id="dummy${t}"><\/script>`),(null===(e=document.getElementById("dummy"+t))||void 0===e?void 0:e.previousSibling).src}catch(e){return""}}exports.isMergeableObject=isMergeableObject,exports.isAbsoluteUrl=isAbsoluteUrl,exports.resolveUrl=resolveUrl,exports.getBasePath=getBasePath,exports.titleize=titleize,exports.removeQueryStringAndHash=removeQueryStringAndHash,exports.escapeHTMLAttrChars=escapeHTMLAttrChars,exports.unescapeHTMLChars=unescapeHTMLChars,exports.sanitizeItemId=sanitizeItemId,exports.useSchemaTitle=useSchemaTitle,exports.get=get,exports.joinStringFactory=joinStringFactory,exports.dottedString=joinStringFactory("."),exports.getWindowReferenceOptions=getWindowReferenceOptions,exports.getJsUrl=getJsUrl;const normalizeText=e=>(0,typeGuards_1.isString)(e)?e:null==e?void 0:e.raw;exports.normalizeText=normalizeText;const getValueFromMdParsedExtension=(e,t)=>{const r=e[`x-parsed-md-${t}`]||e[t];if("x-enumDescriptions"!==t)return r;let s={};for(const e in r)e.startsWith("x-parsed-md")||(s[e]=r[`x-parsed-md-${e}`]||r[e]);return Object.keys(s).length?s:r};function isLastInArray(e,t){return t===e.length-1}function isLastProperty(e,t){const r=Object.keys(e);return r.indexOf(t)===r.length-1}exports.getValueFromMdParsedExtension=getValueFromMdParsedExtension,exports.isLastInArray=isLastInArray,exports.isLastProperty=isLastProperty;
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
package/lib/utils/openapi.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getContentWithLegacyExamples=exports.pluralizeType=exports.extractExtensions=exports.isRedocExtension=exports.shortenHTTPVerb=exports.normalizeServers=exports.expandDefaultServerVariables=exports.mergeSimilarMediaTypes=exports.mergeParams=exports.sortByField=exports.sortByRequired=exports.humanizeConstraints=exports.humanizeNumberRange=exports.getDefinitionName=exports.isNamedDefinition=exports.langFromMime=exports.serializeParameterValue=exports.serializeParameterValueWithMime=exports.serializeQueryParameter=exports.urlFormEncodePayload=exports.isFormUrlEncoded=exports.isJsonLike=exports.isPrimitiveType=exports.detectType=exports.getOperationId=exports.getOperationName=exports.isOperationName=exports.getStatusCodeType=exports.isStatusCode=void 0;const path_1=require("path"),url_template_1=__importDefault(require("url-template")),dom_1=require("./dom"),helpers_1=require("./helpers"),constants_1=require("../constants"),JsonPointer_1=require("./JsonPointer"),services_1=require("../services");function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}function isStatusCode(e){return"default"===e||(0,helpers_1.isNumeric)(e)||isWildcardStatusCode(e)}function getStatusCodeType(e,r=!1){if("default"===e)return r?"error":"success";let t="string"==typeof e?parseInt(e,10):e;if(isWildcardStatusCode(e)&&(t*=100),t<100||t>599)throw new Error("invalid HTTP code");let i="success";return t>=300&&t<400?i="redirect":t>=400?i="error":t<200&&(i="info"),i}exports.isStatusCode=isStatusCode,exports.getStatusCodeType=getStatusCodeType;const operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};function isOperationName(e){return e in operationNames}function getOperationName(e){const{operationId:r,pathName:t}=e,i=(0,helpers_1.normalizeText)((0,helpers_1.getValueFromMdParsedExtension)(e,"description"));return(0,helpers_1.normalizeText)((0,helpers_1.getValueFromMdParsedExtension)(e,"summary"))||r||i&&i.substring(0,50)||t||"<no summary>"}function getOperationId(e,r,t){var i;return r===services_1.Pagination.None&&(null==t?void 0:t.id)?(0,services_1.joinWithSeparator)(t.id,(0,helpers_1.sanitizeItemId)(e.operationId?e.operationId:pointerToId(e.pointer))):(null===(i=e.tags)||void 0===i?void 0:i.length)?(0,helpers_1.sanitizeItemId)(e.operationId?e.operationId:pointerToId(e.pointer)):(0,helpers_1.sanitizeItemId)(e.operationId?(0,services_1.joinWithSeparator)(constants_1.DEFAULT_TAG_SLUG,e.operationId):pointerToId(e.pointer))}function pointerToId(e){return(null==e?void 0:e.startsWith("/"))?e.slice(1,e.length):e}exports.isOperationName=isOperationName,exports.getOperationName=getOperationName,exports.getOperationId=getOperationId;const schemaKeywordTypes={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",contentEncoding:"string",contentMediaType:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",unevaluatedProperties:"object",patternProperties:"object",properties:"object"};function detectType(e){if(void 0!==e.type&&!Array.isArray(e.type))return e.type;const r=Object.keys(schemaKeywordTypes);for(const t of r){const r=schemaKeywordTypes[t];if(void 0!==e[t])return r}return"any"}function isPrimitiveType(e,r=e.type){if(e["x-circular-ref"])return!0;if(void 0!==e.oneOf||void 0!==e.anyOf)return!1;if(e.if&&e.then||e.if&&e.else)return!1;let t=!0;const i=Array.isArray(r);return("object"===r||i&&(null==r?void 0:r.includes("object")))&&(t=void 0!==e.properties?0===Object.keys(e.properties).length:void 0===e.additionalProperties&&void 0===e.unevaluatedProperties&&void 0===e.patternProperties),!Array.isArray(e.items)&&!Array.isArray(e.prefixItems)&&(void 0!==e.items&&"boolean"!=typeof e.items&&("array"===r||i&&(null==r?void 0:r.includes("array")))&&(t=isPrimitiveType(e.items,e.items.type)),t)}function isJsonLike(e){return-1!==e.search(/json/i)}function isFormUrlEncoded(e){return e===constants_1.MediaTypes.URL_ENCODED}function delimitedEncodeField(e,r,t){return Array.isArray(e)?e.map((e=>e.toString())).join(t):"object"==typeof e?Object.keys(e).map((r=>`${r}${t}${e[r]}`)).join(t):r+"="+e.toString()}function deepObjectEncodeField(e,r){return Array.isArray(e)?(console.warn("deepObject style cannot be used with array value:"+e.toString()),""):"object"==typeof e?Object.keys(e).map((t=>e[t]?`${r}[${t}]=${e[t]}`:void 0)).filter(Boolean).join("&"):(console.warn("deepObject style cannot be used with non-object value:"+e.toString()),"")}function serializeFormValue(e,r,t){const i="__redoc_param_name__",n=r?"*":"";return url_template_1.default.parse(`{?${i}${n}}`).expand({[i]:t}).substring(1).replace(/__redoc_param_name__/g,e)}function serializeSimpleValue(e,r){const t=e?"*":"",i="__redoc_param_name__",n=url_template_1.default.parse(`{${i}${t}}`);return decodeURIComponent(n.expand({[i]:r}))}function urlFormEncodePayload(e,r={}){if(Array.isArray(e))throw new Error("Payload must have fields: "+e.toString());return Object.keys(e).map((t=>{const i=e[t],{style:n="form",explode:o=!0}=r[t]||{};switch(n){case"form":return serializeFormValue(t,o,i);case"spaceDelimited":return delimitedEncodeField(i,t,"%20");case"pipeDelimited":return delimitedEncodeField(i,t,"|");case"deepObject":return deepObjectEncodeField(i,t);default:return console.warn("Incorrect or unsupported encoding style: "+n),""}})).join("&")}function serializePathParameter(e,r,t,i){const n=t?"*":"";let o="";"label"===r?o=".":"matrix"===r&&(o=";");const a="__redoc_param_name__";return url_template_1.default.parse(`{${o}${a}${n}}`).expand({[a]:i}).replace(/__redoc_param_name__/g,e)}function serializeQueryParameter(e,r,t,i){const n=n=>{switch(r){case"form":return serializeFormValue(e,t,n);case"spaceDelimited":return Array.isArray(n)?t?serializeFormValue(e,t,n):`${e}=${n.join("%20")}`:(console.warn("The style spaceDelimited is only applicable to arrays"),"");case"pipeDelimited":return Array.isArray(n)?t?serializeFormValue(e,t,n):`${e}=${n.join("|")}`:(console.warn("The style pipeDelimited is only applicable to arrays"),"");case"deepObject":return!t||Array.isArray(n)||"object"!=typeof n?(console.warn("The style deepObject is only applicable for objects with explode=true"),""):deepObjectEncodeField(n,e);case"simple":return serializeSimpleValue(t,i);default:return console.warn("Unexpected style for query: "+r),""}};return(0,helpers_1.isArrayOfObjects)(i)&&(i=(0,helpers_1.deleteEmptyArrayItem)(i).map((e=>n(e)))),n(i)}function serializeHeaderParameter(e,r,t){return"simple"===e?serializeSimpleValue(r,t):(console.warn("Unexpected style for header: "+e),"")}function serializeCookieParameter(e,r,t,i){return"form"===r?serializeFormValue(e,t,i):(console.warn("Unexpected style for cookie: "+r),"")}function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn(`Parameter serialization as ${r} is not supported`),"")}function serializeParameterValue(e,r){const{name:t,style:i,explode:n=!1,serializationMime:o}=e;if(o)switch(e.in){case"path":case"header":return serializeParameterValueWithMime(r,o);case"cookie":case"query":return`${t}=${serializeParameterValueWithMime(r,o)}`;default:return console.warn("Unexpected parameter location: "+e.in),""}if(!i)return console.warn(`Missing style attribute or content for parameter ${t}`),"";switch(e.in){case"path":return serializePathParameter(t,i,n,r);case"query":return serializeQueryParameter(t,i,n,r);case"header":return serializeHeaderParameter(i,n,r);case"cookie":return serializeCookieParameter(t,i,n,r);default:return console.warn("Unexpected parameter location: "+e.in),""}}function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}exports.detectType=detectType,exports.isPrimitiveType=isPrimitiveType,exports.isJsonLike=isJsonLike,exports.isFormUrlEncoded=isFormUrlEncoded,exports.urlFormEncodePayload=urlFormEncodePayload,exports.serializeQueryParameter=serializeQueryParameter,exports.serializeParameterValueWithMime=serializeParameterValueWithMime,exports.serializeParameterValue=serializeParameterValue,exports.langFromMime=langFromMime;const DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}function getDefinitionName(e){var r;return null===(r=null==e?void 0:e.match(DEFINITION_NAME_REGEX))||void 0===r?void 0:r.pop()}function humanizeMultipleOfConstraint(e){if(void 0===e)return;const r=e.toString(10);return/^0\.0*1$/.test(r)?`decimal places <= ${r.split(".")[1].length}`:`multiple of ${r}`}function humanizeRangeConstraint(e,r,t){let i;return void 0!==r&&void 0!==t?i=r===t?`= ${r} ${e}`:`[ ${r} .. ${t} ] ${e}`:void 0!==t?i=`<= ${t} ${e}`:void 0!==r&&(i=1===r?"non-empty":`>= ${r} ${e}`),i}function humanizeNumberRange(e){var r,t;const i="number"==typeof e.exclusiveMinimum?Math.min(e.exclusiveMinimum,null!==(r=e.minimum)&&void 0!==r?r:1/0):e.minimum,n="number"==typeof e.exclusiveMaximum?Math.max(e.exclusiveMaximum,null!==(t=e.maximum)&&void 0!==t?t:-1/0):e.maximum,o="number"==typeof e.exclusiveMinimum||e.exclusiveMinimum,a="number"==typeof e.exclusiveMaximum||e.exclusiveMaximum;return void 0!==i&&void 0!==n?`${o?"( ":"[ "}${i} .. ${n}${a?" )":" ]"}`:void 0!==n?`${a?"< ":"<= "}${n}`:void 0!==i?`${o?"> ":">= "}${i}`:void 0}function humanizeConstraints(e){const r=[],t=humanizeRangeConstraint("characters",e.minLength,e.maxLength);void 0!==t&&r.push(t);const i=humanizeRangeConstraint("items",e.minItems,e.maxItems);void 0!==i&&r.push(i);const n=humanizeRangeConstraint(1===e.minProperties&&1===e.maxProperties?"property":"properties",e.minProperties,e.maxProperties);void 0!==n&&r.push(n);const o=humanizeMultipleOfConstraint(e.multipleOf);void 0!==o&&r.push(o);const a=humanizeNumberRange(e);return void 0!==a&&r.push(a),e.uniqueItems&&r.push("unique"),r}function sortByRequired(e,r=[]){const t=[],i=[],n=[];return e.forEach((e=>{e.required?r.includes(e.name)?i.push(e):n.push(e):t.push(e)})),i.sort(((e,t)=>r.indexOf(e.name)-r.indexOf(t.name))),[...i,...n,...t]}function sortByField(e,r){return[...e].sort(((e,t)=>e[r].localeCompare(t[r])))}function mergeParams(e,r=[],t=[],{pathPointer:i,operationPointer:n}){const o={};t.forEach((r=>{({resolved:r}=e.deref(r)),o[r.name+"_"+r.in]=!0}));return[...r.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer_1.JsonPointer.join(i,["parameters",String(r)])}))).filter((({paramOrRef:r})=>(({resolved:r}=e.deref(r)),!o[r.name+"_"+r.in]))),...t.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer_1.JsonPointer.join(n,["parameters",String(r)])})))]}function mergeSimilarMediaTypes(e){const r={};return Object.keys(e).forEach((t=>{const i=e[t],n=t.split(";")[0].trim();r[n]?r[n]=Object.assign(Object.assign({},r[n]),i):r[n]=i})),r}function expandDefaultServerVariables(e,r={}){return e.replace(/(?:{)([\w-.]+)(?:})/g,((e,t)=>r[t]&&r[t].default||e))}function normalizeServers(e,r){const t=void 0===e?(0,helpers_1.removeQueryStringAndHash)((()=>{if(!dom_1.IS_BROWSER)return"";const e=window.location.href;return e.endsWith(".html")?(0,path_1.dirname)(e):e})()):(0,path_1.dirname)(e);return 0===r.length&&(r=[{url:"/"}]),r.map((e=>{return Object.assign(Object.assign({},e),{url:(r=e.url,(0,helpers_1.resolveUrl)(t,r)),description:e.description||""});var r}))}exports.isNamedDefinition=isNamedDefinition,exports.getDefinitionName=getDefinitionName,exports.humanizeNumberRange=humanizeNumberRange,exports.humanizeConstraints=humanizeConstraints,exports.sortByRequired=sortByRequired,exports.sortByField=sortByField,exports.mergeParams=mergeParams,exports.mergeSimilarMediaTypes=mergeSimilarMediaTypes,exports.expandDefaultServerVariables=expandDefaultServerVariables,exports.normalizeServers=normalizeServers;const shortenHTTPVerb=e=>({delete:"del",options:"opts"}[e]||e);function isRedocExtension(e){return e in{"x-circular-ref":!0,"x-parentRefs":!0,"x-refsStack":!0,"x-code-samples":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-ignoredHeaderParameters":!0,"x-logo":!0,"x-nullable":!0,"x-servers":!0,"x-tagGroups":!0,"x-traitTag":!0,"x-additionalPropertiesName":!0,"x-explicitMappingOnly":!0,"x-enumDescriptions":!0,"x-hideTryItPanel":!0,"x-tokenEndpointAuthMethod":!0,"x-feedback":!0}||e.startsWith("x-parsed-md-")}function extractExtensions(e,r){return Object.keys(e).filter((e=>!0===r?e.startsWith("x-")&&!isRedocExtension(e):e.startsWith("x-")&&r.indexOf(e)>-1)).reduce(((r,t)=>(r[t]=e[t],r)),{})}function pluralizeType(e){return e.split(" or ").map((e=>e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2"))).join(" or ")}function getContentWithLegacyExamples(e){let r=e.content;const t=e["x-examples"],i=e["x-example"];if(t){r=Object.assign({},r);for(const e of Object.keys(t)){const i=t[e];r[e]=Object.assign(Object.assign({},r[e]),{examples:i})}}else if(i){r=Object.assign({},r);for(const e of Object.keys(i)){const t=i[e];r[e]=Object.assign(Object.assign({},r[e]),{example:t})}}return r}exports.shortenHTTPVerb=shortenHTTPVerb,exports.isRedocExtension=isRedocExtension,exports.extractExtensions=extractExtensions,exports.pluralizeType=pluralizeType,exports.getContentWithLegacyExamples=getContentWithLegacyExamples;
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getContentWithLegacyExamples=exports.pluralizeType=exports.extractExtensions=exports.isRedocExtension=exports.shortenHTTPVerb=exports.normalizeServers=exports.expandDefaultServerVariables=exports.mergeSimilarMediaTypes=exports.mergeParams=exports.sortByField=exports.sortByRequired=exports.humanizeConstraints=exports.humanizeNumberRange=exports.getDefinitionName=exports.isNamedDefinition=exports.langFromMime=exports.serializeParameterValue=exports.serializeParameterValueWithMime=exports.serializeQueryParameter=exports.urlFormEncodePayload=exports.isFormUrlEncoded=exports.isJsonLike=exports.isPrimitiveType=exports.detectType=exports.getOperationId=exports.getOperationName=exports.isOperationName=exports.getStatusCodeType=exports.isStatusCode=void 0;const path_1=require("path"),url_template_1=__importDefault(require("url-template")),dom_1=require("./dom"),helpers_1=require("./helpers"),constants_1=require("../constants"),JsonPointer_1=require("./JsonPointer"),services_1=require("../services");function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}function isStatusCode(e){return"default"===e||(0,helpers_1.isNumeric)(e)||isWildcardStatusCode(e)}function getStatusCodeType(e,r=!1){if("default"===e)return r?"error":"success";let t="string"==typeof e?parseInt(e,10):e;if(isWildcardStatusCode(e)&&(t*=100),t<100||t>599)throw new Error("invalid HTTP code");let i="success";return t>=300&&t<400?i="redirect":t>=400?i="error":t<200&&(i="info"),i}exports.isStatusCode=isStatusCode,exports.getStatusCodeType=getStatusCodeType;const operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};function isOperationName(e){return e in operationNames}function getOperationName(e){const{operationId:r,pathName:t}=e,i=(0,helpers_1.normalizeText)((0,helpers_1.getValueFromMdParsedExtension)(e,"description"));return(0,helpers_1.normalizeText)((0,helpers_1.getValueFromMdParsedExtension)(e,"summary"))||r||i&&i.substring(0,50)||t||"<no summary>"}function getOperationId(e,r,t){var i;return r===services_1.Pagination.None&&(null==t?void 0:t.id)?(0,services_1.joinWithSeparator)(t.id,(0,helpers_1.sanitizeItemId)(e.operationId?e.operationId:pointerToId(e.pointer))):(null===(i=e.tags)||void 0===i?void 0:i.length)?(0,helpers_1.sanitizeItemId)(e.operationId?e.operationId:pointerToId(e.pointer)):(0,helpers_1.sanitizeItemId)(e.operationId?(0,services_1.joinWithSeparator)(constants_1.DEFAULT_TAG_SLUG,e.operationId):pointerToId(e.pointer))}function pointerToId(e){return(null==e?void 0:e.startsWith("/"))?e.slice(1,e.length):e}exports.isOperationName=isOperationName,exports.getOperationName=getOperationName,exports.getOperationId=getOperationId;const schemaKeywordTypes={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",contentEncoding:"string",contentMediaType:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",unevaluatedProperties:"object",patternProperties:"object",properties:"object"};function detectType(e){if(void 0!==e.type&&!Array.isArray(e.type))return e.type;const r=Object.keys(schemaKeywordTypes);for(const t of r){const r=schemaKeywordTypes[t];if(void 0!==e[t])return r}return"any"}function isPrimitiveType(e,r=e.type){if(e["x-circular-ref"])return!0;if(void 0!==e.oneOf||void 0!==e.anyOf)return!1;if(e.if&&e.then||e.if&&e.else)return!1;let t=!0;const i=Array.isArray(r);return("object"===r||i&&(null==r?void 0:r.includes("object")))&&(t=void 0!==e.properties?0===Object.keys(e.properties).length:void 0===e.additionalProperties&&void 0===e.unevaluatedProperties&&void 0===e.patternProperties),!Array.isArray(e.items)&&!Array.isArray(e.prefixItems)&&(void 0!==e.items&&"boolean"!=typeof e.items&&("array"===r||i&&(null==r?void 0:r.includes("array")))&&(t=isPrimitiveType(e.items,e.items.type)),t)}function isJsonLike(e){return-1!==e.search(/json/i)}function isFormUrlEncoded(e){return e===constants_1.MediaTypes.URL_ENCODED}function delimitedEncodeField(e,r,t){return Array.isArray(e)?e.map((e=>e.toString())).join(t):"object"==typeof e?Object.keys(e).map((r=>`${r}${t}${e[r]}`)).join(t):r+"="+e.toString()}function deepObjectEncodeField(e,r){return Array.isArray(e)?(console.warn("deepObject style cannot be used with array value:"+e.toString()),""):"object"==typeof e?Object.keys(e).map((t=>e[t]?`${r}[${t}]=${e[t]}`:void 0)).filter(Boolean).join("&"):(console.warn("deepObject style cannot be used with non-object value:"+e.toString()),"")}function serializeFormValue(e,r,t){const i="__redoc_param_name__",n=r?"*":"";return url_template_1.default.parse(`{?${i}${n}}`).expand({[i]:t}).substring(1).replace(/__redoc_param_name__/g,e)}function serializeSimpleValue(e,r){const t=e?"*":"",i="__redoc_param_name__",n=url_template_1.default.parse(`{${i}${t}}`);return decodeURIComponent(n.expand({[i]:r}))}function urlFormEncodePayload(e,r={}){if(Array.isArray(e))throw new Error("Payload must have fields: "+e.toString());return Object.keys(e).map((t=>{const i=e[t],{style:n="form",explode:o=!0}=r[t]||{};switch(n){case"form":return serializeFormValue(t,o,i);case"spaceDelimited":return delimitedEncodeField(i,t,"%20");case"pipeDelimited":return delimitedEncodeField(i,t,"|");case"deepObject":return deepObjectEncodeField(i,t);default:return console.warn("Incorrect or unsupported encoding style: "+n),""}})).join("&")}function serializePathParameter(e,r,t,i){const n=t?"*":"";let o="";"label"===r?o=".":"matrix"===r&&(o=";");const a="__redoc_param_name__";return url_template_1.default.parse(`{${o}${a}${n}}`).expand({[a]:i}).replace(/__redoc_param_name__/g,e)}function serializeQueryParameter(e,r,t,i){const n=n=>{switch(r){case"form":return serializeFormValue(e,t,n);case"spaceDelimited":return Array.isArray(n)?t?serializeFormValue(e,t,n):`${e}=${n.join("%20")}`:(console.warn("The style spaceDelimited is only applicable to arrays"),"");case"pipeDelimited":return Array.isArray(n)?t?serializeFormValue(e,t,n):`${e}=${n.join("|")}`:(console.warn("The style pipeDelimited is only applicable to arrays"),"");case"deepObject":return!t||Array.isArray(n)||"object"!=typeof n?(console.warn("The style deepObject is only applicable for objects with explode=true"),""):deepObjectEncodeField(n,e);case"simple":return serializeSimpleValue(t,i);default:return console.warn("Unexpected style for query: "+r),""}};return(0,helpers_1.isArrayOfObjects)(i)&&(i=(0,helpers_1.deleteEmptyArrayItem)(i).map((e=>n(e)))),n(i)}function serializeHeaderParameter(e,r,t){return"simple"===e?serializeSimpleValue(r,t):(console.warn("Unexpected style for header: "+e),"")}function serializeCookieParameter(e,r,t,i){return"form"===r?serializeFormValue(e,t,i):(console.warn("Unexpected style for cookie: "+r),"")}function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn(`Parameter serialization as ${r} is not supported`),"")}function serializeParameterValue(e,r){const{name:t,style:i,explode:n=!1,serializationMime:o}=e;if(o)switch(e.in){case"path":case"header":return serializeParameterValueWithMime(r,o);case"cookie":case"query":return`${t}=${serializeParameterValueWithMime(r,o)}`;default:return console.warn("Unexpected parameter location: "+e.in),""}if(!i)return console.warn(`Missing style attribute or content for parameter ${t}`),"";switch(e.in){case"path":return serializePathParameter(t,i,n,r);case"query":return serializeQueryParameter(t,i,n,r);case"header":return serializeHeaderParameter(i,n,r);case"cookie":return serializeCookieParameter(t,i,n,r);default:return console.warn("Unexpected parameter location: "+e.in),""}}function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}exports.detectType=detectType,exports.isPrimitiveType=isPrimitiveType,exports.isJsonLike=isJsonLike,exports.isFormUrlEncoded=isFormUrlEncoded,exports.urlFormEncodePayload=urlFormEncodePayload,exports.serializeQueryParameter=serializeQueryParameter,exports.serializeParameterValueWithMime=serializeParameterValueWithMime,exports.serializeParameterValue=serializeParameterValue,exports.langFromMime=langFromMime;const DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}function getDefinitionName(e){var r;return null===(r=null==e?void 0:e.match(DEFINITION_NAME_REGEX))||void 0===r?void 0:r.pop()}function humanizeMultipleOfConstraint(e){if(void 0===e)return;const r=e.toString(10);return/^0\.0*1$/.test(r)?`decimal places <= ${r.split(".")[1].length}`:`multiple of ${r}`}function humanizeRangeConstraint(e,r,t){let i;return void 0!==r&&void 0!==t?i=r===t?`= ${r} ${e}`:`[ ${r} .. ${t} ] ${e}`:void 0!==t?i=`<= ${t} ${e}`:void 0!==r&&(i=1===r?"non-empty":`>= ${r} ${e}`),i}function humanizeNumberRange(e){var r,t;const i="number"==typeof e.exclusiveMinimum?Math.min(e.exclusiveMinimum,null!==(r=e.minimum)&&void 0!==r?r:1/0):e.minimum,n="number"==typeof e.exclusiveMaximum?Math.max(e.exclusiveMaximum,null!==(t=e.maximum)&&void 0!==t?t:-1/0):e.maximum,o="number"==typeof e.exclusiveMinimum||e.exclusiveMinimum,a="number"==typeof e.exclusiveMaximum||e.exclusiveMaximum;return void 0!==i&&void 0!==n?`${o?"( ":"[ "}${i} .. ${n}${a?" )":" ]"}`:void 0!==n?`${a?"< ":"<= "}${n}`:void 0!==i?`${o?"> ":">= "}${i}`:void 0}function humanizeConstraints(e){const r=[],t=humanizeRangeConstraint("characters",e.minLength,e.maxLength);void 0!==t&&r.push(t);const i=humanizeRangeConstraint("items",e.minItems,e.maxItems);void 0!==i&&r.push(i);const n=humanizeRangeConstraint(1===e.minProperties&&1===e.maxProperties?"property":"properties",e.minProperties,e.maxProperties);void 0!==n&&r.push(n);const o=humanizeMultipleOfConstraint(e.multipleOf);void 0!==o&&r.push(o);const a=humanizeNumberRange(e);return void 0!==a&&r.push(a),e.uniqueItems&&r.push("unique"),r}function sortByRequired(e,r=[]){const t=[],i=[],n=[];return e.forEach((e=>{e.required?r.includes(e.name)?i.push(e):n.push(e):t.push(e)})),i.sort(((e,t)=>r.indexOf(e.name)-r.indexOf(t.name))),[...i,...n,...t]}function sortByField(e,r){return[...e].sort(((e,t)=>e[r].localeCompare(t[r])))}function mergeParams(e,r=[],t=[],{pathPointer:i,operationPointer:n}){const o={};t.forEach((r=>{({resolved:r}=e.deref(r)),o[r.name+"_"+r.in]=!0}));return[...r.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer_1.JsonPointer.join(i,["parameters",String(r)])}))).filter((({paramOrRef:r})=>(({resolved:r}=e.deref(r)),!o[r.name+"_"+r.in]))),...t.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer_1.JsonPointer.join(n,["parameters",String(r)])})))]}function mergeSimilarMediaTypes(e){const r={};return Object.keys(e).forEach((t=>{const i=e[t],n=t.split(";")[0].trim();r[n]?r[n]=Object.assign(Object.assign({},r[n]),i):r[n]=i})),r}function expandDefaultServerVariables(e,r={}){return e.replace(/(?:{)([\w-.]+)(?:})/g,((e,t)=>r[t]&&r[t].default||e))}function normalizeServers(e,r){const t=void 0===e?(0,helpers_1.removeQueryStringAndHash)((()=>{if(!dom_1.IS_BROWSER)return globalThis.SSR_HOSTNAME||"";const e=window.location.href;return e.endsWith(".html")?(0,path_1.dirname)(e):e})()):(0,path_1.dirname)(e);return 0===r.length&&(r=[{url:"/"}]),r.map((e=>{return Object.assign(Object.assign({},e),{url:(r=e.url,(0,helpers_1.resolveUrl)(t,r)),description:e.description||""});var r}))}exports.isNamedDefinition=isNamedDefinition,exports.getDefinitionName=getDefinitionName,exports.humanizeNumberRange=humanizeNumberRange,exports.humanizeConstraints=humanizeConstraints,exports.sortByRequired=sortByRequired,exports.sortByField=sortByField,exports.mergeParams=mergeParams,exports.mergeSimilarMediaTypes=mergeSimilarMediaTypes,exports.expandDefaultServerVariables=expandDefaultServerVariables,exports.normalizeServers=normalizeServers;const shortenHTTPVerb=e=>({delete:"del",options:"opts"}[e]||e);function isRedocExtension(e){return e in{"x-circular-ref":!0,"x-parentRefs":!0,"x-refsStack":!0,"x-code-samples":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-ignoredHeaderParameters":!0,"x-logo":!0,"x-nullable":!0,"x-servers":!0,"x-tagGroups":!0,"x-traitTag":!0,"x-additionalPropertiesName":!0,"x-explicitMappingOnly":!0,"x-enumDescriptions":!0,"x-hideTryItPanel":!0,"x-tokenEndpointAuthMethod":!0,"x-feedback":!0}||e.startsWith("x-parsed-md-")}function extractExtensions(e,r){return Object.keys(e).filter((e=>!0===r?e.startsWith("x-")&&!isRedocExtension(e):e.startsWith("x-")&&r.indexOf(e)>-1)).reduce(((r,t)=>(r[t]=e[t],r)),{})}function pluralizeType(e){return e.split(" or ").map((e=>e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2"))).join(" or ")}function getContentWithLegacyExamples(e){let r=e.content;const t=e["x-examples"],i=e["x-example"];if(t){r=Object.assign({},r);for(const e of Object.keys(t)){const i=t[e];r[e]=Object.assign(Object.assign({},r[e]),{examples:i})}}else if(i){r=Object.assign({},r);for(const e of Object.keys(i)){const t=i[e];r[e]=Object.assign(Object.assign({},r[e]),{example:t})}}return r}exports.shortenHTTPVerb=shortenHTTPVerb,exports.isRedocExtension=isRedocExtension,exports.extractExtensions=extractExtensions,exports.pluralizeType=pluralizeType,exports.getContentWithLegacyExamples=getContentWithLegacyExamples;
|
|
2
2
|
//# sourceMappingURL=openapi.js.map
|
package/lib/utils/path.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export declare function pathIncludesLink(location: Location, link?: string): boo
|
|
|
3
3
|
export declare function pathMatchedLink(location: Location, link?: string): boolean;
|
|
4
4
|
export declare function normalizePath(path: string): string;
|
|
5
5
|
export declare function normalizeHashPath(path: string): string;
|
|
6
|
+
export declare function normalizeRoutePath(path: string): string;
|
package/lib/utils/path.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function pathIncludesLink(e
|
|
1
|
+
"use strict";function pathIncludesLink(t,e){return!!e&&decodeURIComponent(t.pathname+t.hash).includes(e)}function pathMatchedLink(t,e=""){return decodeURIComponent(t.pathname)===e||decodeURIComponent(t.hash)===e||decodeURIComponent(t.pathname+t.hash)===e}function normalizePath(t){return t.startsWith("/")||(t="/"+t),t.endsWith("/")&&(t=t.slice(0,-1)),t}function normalizeHashPath(t){return t.startsWith("#")?normalizePath(t):t}function normalizeRoutePath(t){return t.startsWith("/")?t.slice(1):t}Object.defineProperty(exports,"__esModule",{value:!0}),exports.normalizeRoutePath=exports.normalizeHashPath=exports.normalizePath=exports.pathMatchedLink=exports.pathIncludesLink=void 0,exports.pathIncludesLink=pathIncludesLink,exports.pathMatchedLink=pathMatchedLink,exports.normalizePath=normalizePath,exports.normalizeHashPath=normalizeHashPath,exports.normalizeRoutePath=normalizeRoutePath;
|
|
2
2
|
//# sourceMappingURL=path.js.map
|
|
@@ -2,3 +2,4 @@ export declare function isUndefined<T>(value: T | undefined): value is undefined
|
|
|
2
2
|
export declare function isNull<T>(value: T | null): value is null;
|
|
3
3
|
export declare function isString<T>(value: T | string): value is string;
|
|
4
4
|
export declare function isNotNull<T>(value: T): value is NonNullable<T>;
|
|
5
|
+
export declare function checkIfIsObject(item: unknown): item is Object;
|
package/lib/utils/typeGuards.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function isUndefined(
|
|
1
|
+
"use strict";function isUndefined(e){return void 0===e}function isNull(e){return null===e}function isString(e){return"string"==typeof e}function isNotNull(e){return!isNull(e)}function checkIfIsObject(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.checkIfIsObject=exports.isNotNull=exports.isString=exports.isNull=exports.isUndefined=void 0,exports.isUndefined=isUndefined,exports.isNull=isNull,exports.isString=isString,exports.isNotNull=isNotNull,exports.checkIfIsObject=checkIfIsObject;
|
|
2
2
|
//# sourceMappingURL=typeGuards.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React,{memo,useMemo,useState,useEffect,useCallback}from"react";import{Navigate,Route,Routes}from"react-router-dom";import{useAtomValue}from"jotai";import{Pagination}from"../../services";import{IS_BROWSER}from"../../utils";import{Skeleton}from"../common";import{getFirstPageLink,getItemsByType,getNextSectionLink}from"./helpers";import{SectionContent}from"../SectionContent";import{TagItems}from"../TagItems";import{useAutoScroll}from"./useAutoScroll";import{ContentItem}from"../ContentItem";import{globalOptionsAtom}from"../../jotai/store";import{versionPathAtom,flatMenuItemsAtom}from"../../jotai/app";let isInitialHydrate=!0;function ContentItemsComponent({items:e,root:t=!1}){const{pagination:n,showNextButton:o,disablePaginationLoadingAnimation:a}=useAtomValue(globalOptionsAtom),[m,i]=useState(IS_BROWSER&&!isInitialHydrate&&!a),l=useAtomValue(versionPathAtom),r=useAtomValue(flatMenuItemsAtom);useEffect((()=>{const e=setTimeout((()=>{i(!1)}),200);return isInitialHydrate=!1,()=>{clearTimeout(e)}}),[]),useAutoScroll(m);const c=l?`/${l}/`:"/",{groupItems:s,tagItems:u,operationItems:p,rootItem:g}=getItemsByType(e),R=!t||g?c:getFirstPageLink(e,c),I=useCallback((e=>null==e?void 0:e.map((e=>{var t;const a=getNextSectionLink({flatItems:r,item:e});switch(n){case Pagination.Item:return React.createElement(Route,{key:e.id,path:e.id},React.createElement(Route,{index:!0,element:"operation"===e.type?React.createElement(ContentItem,{key:e.id,item:e}):React.createElement(TagItems,{tag:e,nextSectionLink:a,pagination:n,showNextButton:o})}),null===(t=e.items)||void 0===t?void 0:t.map((e=>React.createElement(Route,{key:e.id,path:e.id,element:React.createElement(TagItems,{tag:e,nextSectionLink:getNextSectionLink({flatItems:r,item:e}),pagination:n,showNextButton:o})}))));case Pagination.Section:return React.createElement(Route,{key:e.id,path:e.id,element:React.createElement(TagItems,{tag:e,nextSectionLink:a,pagination:n,showNextButton:o})});default:return null}}))),[r,n,o]),f=useMemo((()=>React.createElement(Routes,null,g&&React.createElement(Route,{path:g.href||c,element:React.createElement(SectionContent,{items:e,nextSectionLink:getNextSectionLink({flatItems:r,item:g}),pagination:n,showNextButton:o})}),s.length?s.map((e=>I(e.items))):I(u),p.length&&I(p),React.createElement(Route,{path:"*",element:React.createElement(Navigate,{to:R,replace:!0})}))),[g,c,e,r,n,o,s,I,u,p,R]);return t&&!e.length?React.createElement(Routes,null,React.createElement(Route,{path:"*",element:React.createElement(SectionContent,{items:e,pagination:n,showNextButton:!1})})):e.length?m?React.createElement("div",{style:{flex:1,width:"100%"}},React.createElement(Skeleton,null)):React.createElement(React.Fragment,null,t?React.createElement(React.Fragment,null,f,n===Pagination.Section&&!!p.length&&p.map((e=>React.createElement(ContentItem,{key:e.id,item:e})))):e.map((e=>React.createElement(ContentItem,{key:e.id,item:e})))):null}export const ContentItems=memo(ContentItemsComponent);
|
|
1
|
+
import React,{memo,useMemo,useState,useEffect,useCallback}from"react";import{Navigate,Route,Routes}from"react-router-dom";import{useAtomValue}from"jotai";import{Pagination}from"../../services";import{IS_BROWSER,normalizeRoutePath}from"../../utils";import{Skeleton}from"../common";import{getFirstPageLink,getItemsByType,getNextSectionLink}from"./helpers";import{SectionContent}from"../SectionContent";import{TagItems}from"../TagItems";import{useAutoScroll}from"./useAutoScroll";import{ContentItem}from"../ContentItem";import{globalOptionsAtom}from"../../jotai/store";import{versionPathAtom,flatMenuItemsAtom}from"../../jotai/app";let isInitialHydrate=!0;function ContentItemsComponent({items:e,root:t=!1}){const{pagination:n,showNextButton:o,disablePaginationLoadingAnimation:a}=useAtomValue(globalOptionsAtom),[m,i]=useState(IS_BROWSER&&!isInitialHydrate&&!a),l=useAtomValue(versionPathAtom),r=useAtomValue(flatMenuItemsAtom);useEffect((()=>{const e=setTimeout((()=>{i(!1)}),200);return isInitialHydrate=!1,()=>{clearTimeout(e)}}),[]),useAutoScroll(m);const c=l?`/${l}/`:"/",{groupItems:s,tagItems:u,operationItems:p,rootItem:g}=getItemsByType(e),R=!t||g?c:getFirstPageLink(e,c),I=useCallback((e=>null==e?void 0:e.map((e=>{var t;const a=getNextSectionLink({flatItems:r,item:e});switch(n){case Pagination.Item:return React.createElement(Route,{key:e.id,path:e.id},React.createElement(Route,{index:!0,element:"operation"===e.type?React.createElement(ContentItem,{key:e.id,item:e}):React.createElement(TagItems,{tag:e,nextSectionLink:a,pagination:n,showNextButton:o})}),null===(t=e.items)||void 0===t?void 0:t.map((e=>React.createElement(Route,{key:e.id,path:normalizeRoutePath(e.id),element:React.createElement(TagItems,{tag:e,nextSectionLink:getNextSectionLink({flatItems:r,item:e}),pagination:n,showNextButton:o})}))));case Pagination.Section:return React.createElement(Route,{key:e.id,path:e.id,element:React.createElement(TagItems,{tag:e,nextSectionLink:a,pagination:n,showNextButton:o})});default:return null}}))),[r,n,o]),f=useMemo((()=>React.createElement(Routes,null,g&&React.createElement(Route,{path:g.href||c,element:React.createElement(SectionContent,{items:e,nextSectionLink:getNextSectionLink({flatItems:r,item:g}),pagination:n,showNextButton:o})}),s.length?s.map((e=>I(e.items))):I(u),p.length&&I(p),React.createElement(Route,{path:"*",element:React.createElement(Navigate,{to:R,replace:!0})}))),[g,c,e,r,n,o,s,I,u,p,R]);return t&&!e.length?React.createElement(Routes,null,React.createElement(Route,{path:"*",element:React.createElement(SectionContent,{items:e,pagination:n,showNextButton:!1})})):e.length?m?React.createElement("div",{style:{flex:1,width:"100%"}},React.createElement(Skeleton,null)):React.createElement(React.Fragment,null,t?React.createElement(React.Fragment,null,f,n===Pagination.Section&&!!p.length&&p.map((e=>React.createElement(ContentItem,{key:e.id,item:e})))):e.map((e=>React.createElement(ContentItem,{key:e.id,item:e})))):null}export const ContentItems=memo(ContentItemsComponent);
|
|
2
2
|
//# sourceMappingURL=ContentItems.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React,{Fragment}from"react";import{CodeBlockControls}from"@redocly/theme";import{expandDefaultServerVariables,getBasePath}from"../../utils";import{Markdown}from"../Markdown";import{ServerItem,ServerUrl}from"./styled";export const ServerList=({servers:e,path:r,expandVariables:t,hideHostname:a})=>React.createElement(React.Fragment,null,e.map((e=>{const
|
|
1
|
+
import React,{Fragment}from"react";import{CodeBlockControls}from"@redocly/theme";import{expandDefaultServerVariables,getBasePath}from"../../utils";import{Markdown}from"../Markdown";import{ServerItem,ServerUrl}from"./styled";export const ServerList=({servers:e,path:r,expandVariables:t,hideHostname:a})=>React.createElement(React.Fragment,null,e.map((e=>{const o=t?expandDefaultServerVariables(e.url,e.variables):e.url,l=getBasePath(o),n=(a?"/"===l?"":l:o)+r;return React.createElement(Fragment,{key:o},React.createElement(ServerItem,null,React.createElement(CodeBlockControls,{controls:{copy:{data:n}},title:React.createElement(Markdown,{source:e.description||""})}),React.createElement(ServerUrl,{suppressHydrationWarning:!0},n)))})));
|
|
2
2
|
//# sourceMappingURL=ServerList.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React,{memo}from"react";import styled from"styled-components";import{FieldLabel}from"../common";import{l}from"../../services";import{Markdown}from"../Markdown";import{DescriptionEnumsBlock,ToggleButton}from"./styled";const EnumValueStyled=styled.td`
|
|
2
2
|
max-width: 15vw;
|
|
3
3
|
word-wrap: break-word;
|
|
4
|
-
`;export function DescriptionEnumsComponent({enums:e,toggle:t,showToggleButton:n,toggleButtonText:r,type:
|
|
4
|
+
`;export function DescriptionEnumsComponent({enums:e,toggle:t,showToggleButton:n,toggleButtonText:r,type:a}){return React.createElement(React.Fragment,null,React.createElement(DescriptionEnumsBlock,null,React.createElement("table",{className:"md"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,React.createElement(FieldLabel,null,"array"===a?l("enumArray"):""," ",1===e.length?l("enumSingleValue"):l("enumValue"))," "),React.createElement("th",null,React.createElement("strong",null,"Description")))),React.createElement("tbody",null,e.map((({description:e,value:t})=>React.createElement("tr",{key:t},React.createElement(EnumValueStyled,null,t),React.createElement("td",null,React.createElement(Markdown,{source:e})))))))),n?React.createElement(ToggleButton,{onClick:t},r):null)}export const DescriptionEnums=memo(DescriptionEnumsComponent);
|
|
5
5
|
//# sourceMappingURL=DescriptionEnums.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React,{memo,useState}from"react";import{useAtomValue}from"jotai";import{PatternLabel,RecursiveLabel,TypeFormat,TypeName,TypePrefix,TypeTitle,ToggleButton,DeprecatedLabel}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{l}from"../../services";import{FieldDetail}from"./FieldDetail";import{ConstraintsView}from"./ConstraintsView";import{Extensions}from"./Extensions";import{EnumValues}from"./EnumValues";import{Examples,getSerializedValue}from"./Examples";import{TypeWrapper,FieldDescriptionWrapper}from"./styled";import{globalOptionsAtom}from"../../jotai/store";const MAX_PATTERN_LENGTH=45;function FieldDetailsComponent({showExamples:e,field:t,renderDiscriminatorSwitch:a}){const[n,r]=useState(!1),{enumSkipQuotes:o,hideSchemaTitles:i,hideSchemaPattern:c}=useAtomValue(globalOptionsAtom),{schema:m,description:s,example:p,deprecated:u,examples:
|
|
1
|
+
import React,{memo,useState}from"react";import{useAtomValue}from"jotai";import{PatternLabel,RecursiveLabel,TypeFormat,TypeName,TypePrefix,TypeTitle,ToggleButton,DeprecatedLabel}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{l}from"../../services";import{FieldDetail}from"./FieldDetail";import{ConstraintsView}from"./ConstraintsView";import{Extensions}from"./Extensions";import{EnumValues}from"./EnumValues";import{Examples,getSerializedValue}from"./Examples";import{TypeWrapper,FieldDescriptionWrapper}from"./styled";import{globalOptionsAtom}from"../../jotai/store";const MAX_PATTERN_LENGTH=45;function FieldDetailsComponent({showExamples:e,field:t,renderDiscriminatorSwitch:a}){const[n,r]=useState(!1),{enumSkipQuotes:o,hideSchemaTitles:i,hideSchemaPattern:c}=useAtomValue(globalOptionsAtom),{schema:m,description:s,example:p,deprecated:u,examples:E}=t,d=Boolean(o)||"header"===t.in;let R=null;if(e&&(void 0!==p||void 0!==E))if(void 0!==E)R=React.createElement(Examples,{field:t});else{const e=!!t.in;R=React.createElement(FieldDetail,{label:"example",value:getSerializedValue(t,t.example),raw:e})}return React.createElement("div",null,React.createElement(TypeWrapper,null,React.createElement(TypePrefix,null,m.typePrefix),React.createElement(TypeName,null,m.displayType),m.displayFormat&&React.createElement(TypeFormat,null," ","<",m.displayFormat,">"," "),m.contentEncoding&&React.createElement(TypeFormat,null," ","<",m.contentEncoding,">"," "),m.contentMediaType&&React.createElement(TypeFormat,null," ","<",m.contentMediaType,">"," "),m.title&&!i&&React.createElement(TypeTitle,null," (",m.title,") "),React.createElement(ConstraintsView,{constraints:m.constraints}),m.pattern&&!c&&React.createElement(React.Fragment,null,React.createElement(PatternLabel,null,n||m.pattern.length<MAX_PATTERN_LENGTH?m.pattern:`${m.pattern.substr(0,MAX_PATTERN_LENGTH)}...`),m.pattern.length>MAX_PATTERN_LENGTH&&React.createElement(ToggleButton,{onClick:()=>{r(!n)}},n?"Hide pattern":"Show pattern"))," ",m.isCircular&&React.createElement(RecursiveLabel,null,l("recursive"))),u&&React.createElement("div",null,React.createElement(DeprecatedLabel,null,l("deprecated"))),React.createElement(FieldDetail,{raw:d,label:"default",value:m.default}),React.createElement(FieldDescriptionWrapper,null,React.createElement(Markdown,{source:s})),!a&&React.createElement(EnumValues,{type:m.type,values:m["x-enumDescriptions"]||m.enum})," ",R,React.createElement(Extensions,{extensions:Object.assign(Object.assign({},t.extensions),m.extensions)}),m.externalDocs&&React.createElement(ExternalDocumentation,{externalDocs:m.externalDocs,compact:!0}),null==a?void 0:a(),t.const&&React.createElement(FieldDetail,{label:"const",value:t.const})||null)}export const FieldDetails=memo(FieldDetailsComponent);
|
|
2
2
|
//# sourceMappingURL=FieldDetails.js.map
|
|
@@ -8,7 +8,9 @@ import React,{memo,useCallback}from"react";import styled from"styled-components"
|
|
|
8
8
|
margin: calc(var(--spacing-unit) * 2) 0;
|
|
9
9
|
`,Description=styled.div`
|
|
10
10
|
margin-bottom: calc(var(--spacing-unit) * 4);
|
|
11
|
-
|
|
11
|
+
`,OperationSamplesPanel=styled(SamplesPanel)`
|
|
12
|
+
margin-left: auto;
|
|
13
|
+
`;function OperationItemComponent({item:{operationDefinition:e,parent:t,href:a}}){var o,n,r;const i=useAtomValue(layoutAtom),m=useAtomValue(showRightPanelToggleAtom),{parser:s,options:p}=useAtomValue(globalStoreAtom),{hooks:c,events:d,feedback:u,showWebhookVerb:R,pathInMiddlePanel:S,expandDefaultRequest:E,expandDefaultResponse:f}=p,k=getOperation(s,e,t,p,a),{name:y,description:O,deprecated:b,externalDocs:g,isWebhook:v,httpVerb:h}=k,A=useSetAtom(operationStore(k.pointer)),P=i===LayoutVariant.STACKED||!m,x=(null==u?void 0:u.type)||"sentiment",w=!0!==(null==u?void 0:u.hide);useMount((()=>{A((e=>Object.assign(Object.assign({},e),{activeExampleName:k.activeExampleName,activeServer:k.activeServer})))}));const C=!(!O&&!g),H=useCallback((e=>t=>{var a;const o=createPanelToggleEvent({operation:k,isExpanded:t,panelType:e});null===(a=null==d?void 0:d.panelToggle)||void 0===a||a.call(d,o)}),[d,k]);return React.createElement(OperationRow,{layout:i},React.createElement(OperationSubRowStyled,{layout:i},React.createElement(SamplesMiddlePanel,{isStacked:P},React.createElement(RenderHook,{Hook:BeforeOpenApiOperation||(null==c?void 0:c.BeforeOperation),props:{operation:k}}),React.createElement(H2,null,React.createElement(ShareLink,{to:a}),React.createElement(RenderHook,{Hook:BeforeOpenApiOperationSummary||(null==c?void 0:c.BeforeOperationSummary),props:{operation:k}}),y,React.createElement(RenderHook,{Hook:AfterOpenApiOperationSummary||(null==c?void 0:c.AfterOperationSummary),props:{operation:k}}),b&&React.createElement(Badge,{deprecated:!0},"Deprecated"),v&&React.createElement(React.Fragment,null,React.createElement(Badge,null,"Webhook"),R&&h&&React.createElement(Badge,null,h.toUpperCase()))),S&&!v&&React.createElement(Endpoint,{operation:k}))),React.createElement(OperationSubRowStyled,{layout:i},React.createElement(SamplesMiddlePanel,{isStacked:P},C&&React.createElement(Description,null,void 0!==O&&React.createElement(Markdown,{source:O}),g&&React.createElement(ExternalDocumentation,{externalDocs:g}),Object.keys(k.extensions||{}).length?React.createElement(Extensions,{extensions:k.extensions}):null),React.createElement(SecurityRequirements,{securities:k.security}),(null===(o=k.parameters)||void 0===o?void 0:o.length)||k.requestBody?React.createElement(ContentPanel,{header:l("request"),onToggle:H("request"),expanded:E,className:"panel-request-schemas"},React.createElement(Parameters,{parameters:k.parameters,body:k.requestBody})):null),m?React.createElement(OperationSamplesPanel,{"data-cy":"samples-block"},!S&&!v&&React.createElement(Endpoint,{operation:k}),React.createElement(RequestSamples,{operation:k})):null),React.createElement(OperationSubRowStyled,{layout:i},React.createElement(SamplesMiddlePanel,{isStacked:P},(null===(n=k.responses)||void 0===n?void 0:n.length)?React.createElement(ContentPanel,{header:l("responses"),onToggle:H("responses"),expanded:f,className:"panel-response-schemas"},React.createElement(OperationResponseList,{responses:k.responses,operationPointer:k.pointer})):null),m?React.createElement(OperationSamplesPanel,{"data-cy":"samples-block"},React.createElement(ResponseSamples,{operation:k})):null),React.createElement(OperationSubRowStyled,{layout:i},React.createElement(SamplesMiddlePanel,{isStacked:P},(null===(r=k.callbacks)||void 0===r?void 0:r.length)?React.createElement(ContentPanel,{className:"panel-callback-schemas",header:l("callbacks")},React.createElement(CallbacksList,{callbacks:k.callbacks})):null,React.createElement(RenderHook,{Hook:AfterOpenApiOperation||(null==c?void 0:c.AfterOperation),props:{operation:k}})),m?React.createElement(OperationSamplesPanel,{"data-cy":"samples-block"},React.createElement(CallbackSamples,{callbacks:k.callbacks})):null),React.createElement(OperationSubRowStyled,{layout:i},React.createElement(SamplesMiddlePanel,{isStacked:P},w?React.createElement(FeedbackWrapper,null,React.createElement(Feedback,{type:x,settings:u.settings,path:k.href})):null)))}export const OperationItem=memo(OperationItemComponent);const FeedbackWrapper=styled.div`
|
|
12
14
|
display: flex;
|
|
13
15
|
justify-content: center;
|
|
14
16
|
`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import styled from"styled-components";import React,{createRef,useLayoutEffect,useState}from"react";const TOLERANCE_PX=20;export function SeeMore({children:e,height:t}){const n=createRef(),[r,o]=React.useState(!1),[a,c]=useState(!1);useLayoutEffect((()=>{n.current&&n.current.clientHeight+
|
|
1
|
+
import styled from"styled-components";import React,{createRef,useLayoutEffect,useState}from"react";const TOLERANCE_PX=20;export function SeeMore({children:e,height:t}){const n=createRef(),[r,o]=React.useState(!1),[a,c]=useState(!1);useLayoutEffect((()=>{n.current&&n.current.clientHeight+TOLERANCE_PX<n.current.scrollHeight&&c(!0)}),[n]);return React.createElement(React.Fragment,null,React.createElement(Container,{ref:n,className:r?"":"container",style:{height:r?"auto":t}},e),React.createElement(ButtonContainer,{dimmed:!r},a&&React.createElement(ButtonLinkStyled,{onClick:()=>{o(!r)}},r?"See less":"See more")))}const Container=styled.div`
|
|
2
2
|
overflow-y: hidden;
|
|
3
3
|
`,ButtonContainer=styled.div`
|
|
4
4
|
text-align: center;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(t,e,r,
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(t,e,r,i){return new(r||(r=Promise))((function(o,n){function a(t){try{c(i.next(t))}catch(t){n(t)}}function s(t){try{c(i.throw(t))}catch(t){n(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,s)}c((i=i.apply(t,e||[])).next())}))};import{materialLightInit,materialDarkInit}from"@uiw/codemirror-theme-material";import{tags as t}from"@lezer/highlight";import{linter}from"@codemirror/lint";import{getLanguageService,TextDocument}from"@redocly/vscode-json-languageservice";export function themeInit(e){const r={settings:{background:"var(--bg-overlay)",fontFamily:"var(--code-block-font-family)"},styles:[{tag:[t.propertyName],color:"var(--code-block-tokens-property-string-color)"},{tag:[t.processingInstruction,t.string,t.inserted,t.special(t.string)],color:"var(--code-block-tokens-string-color)"},{tag:[t.atom,t.bool,t.special(t.variableName)],color:"var(--text-secondary)"}]};switch(e){case"light":default:return materialLightInit(r);case"dark":return materialDarkInit(r)}}const service=getLanguageService({});export function linterInit({id:t,schema:e,handleErrors:r}){return service.configure({validate:!0,schemas:[{uri:"stub://"+t,fileMatch:["*"],schema:e}]}),linter((e=>__awaiter(this,void 0,void 0,(function*(){var i;const o=e.state.doc,n=TextDocument.create(t+".json","json",0,o.toString()),a=service.parseJSONDocument(n),s=yield service.doValidation(n,a),c=null==s?void 0:s.filter((({severity:t})=>1===t));return r(null===(i=c[0])||void 0===i?void 0:i.message),null==s?void 0:s.map((t=>({from:posToOffset(o,t.range.start.line,t.range.start.character),to:posToOffset(o,t.range.end.line,t.range.end.character),message:t.message,severity:SeverityMap[t.severity||3]})))}))))}const SeverityMap={1:"error",2:"warning",3:"info",4:"hint"};function posToOffset(t,e,r){return t.line(e+1).from+r}
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,t,o,r){return new(o||(o=Promise))((function(s,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function i(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,i)}l((r=r.apply(e,t||[])).next())}))};import{execute}from"swagger-client/es/execute/index";import React,{useEffect,useState,useCallback,memo}from"react";import{useMount}from"@redocly/theme";import{useAtomValue,useAtom}from"jotai";import{useForm,FormProvider}from"react-hook-form";import{dereferenceDefinitionForTryIt}from"./shallowCopyForTryIt";import{unescapeFormId}from"../../../utils/string";import{StyledCodeHeader}from"../../Panel";import{isFileUploadMime}from"../../common/FileUpload/helper";import{AnalyticsEventType}from"../../../events";import{getDefaultOrStoredVariables,getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"../utils";import{ResponsePanel}from"../ResponsePanel";import{ConsoleTabs}from"../ConsoleTabs";import{ActionPanel}from"../ActionPanel";import{Request}from"./Request";import{CloseButton,ConsoleBody}from"../styled";import{ConsoleWrapper}from"./ConsoleWrapper";import{usePrevious}from"../../../hooks";import{globalStoreAtom}from"../../../jotai/store";import{getActiveMediaType}from"../../../models";import{operationStore}from"../../../jotai/operation";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:o,rootElement:r,properties:s,mergeExampleBody:n,securityDefaults:a,onClose:i}){const l=useForm({defaultValues:{path:getParameters(e.parameters,"path"),cookie:getParameters(e.parameters,"cookie"),header:getParameters(e.parameters,"header"),query:getParameters(e.parameters,"query")}}),[{activeServer:c},u]=useAtom(operationStore(e.pointer)),[p,m]=useState(0),[d,v]=useState(!1),[y,h]=useState(!1),[f,g]=useState(),[b,S]=useState(),[O,j]=useState(),[C,P]=useState(),R=usePrevious(e),{parser:I,options:T}=useAtomValue(globalStoreAtom);useEffect((()=>{const{unsubscribe:e}=l.watch(((e={})=>{u((t=>Object.assign(Object.assign({},t),{requestValues:JSON.parse(JSON.stringify(e))}))),updateStorage(Object.assign(Object.assign({},e),{query:unescapeQueryParams(e.query||{})}))}));return()=>e()}),[l,u]);const E=useCallback((e=>{m(e)}),[]),A=useCallback((e=>{u((t=>Object.assign(Object.assign({},t),{activeServer:e}))),l.setValue("server",e)}),[u,l]),q=l.handleSubmit((o=>__awaiter(this,void 0,void 0,(function*(){var r,s,n,a,i,l,u,p,d,y,h,g,b;const{servers:O,requestBody:C}=e,R=C&&C.content&&(null===(r=getActiveMediaType(C.content))||void 0===r?void 0:r.name)||"";let I=o.body;if(/json/.test(R))try{I=JSON.parse(I)}catch(e){console.error(e)}v(!0);const E=f,A=(e.httpVerb||"").toLowerCase();if(!O)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");const q=O.find((e=>null==c?void 0:c.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),w=Date.now();let F,V=o.auth;if(V){const e=Object.keys(V)[0],t=unescapeFormId(e);F=Object.assign(Object.assign({},E),{components:Object.assign(Object.assign({},null==E?void 0:E.components),{securitySchemes:Object.assign(Object.assign({},null===(s=null==E?void 0:E.components)||void 0===s?void 0:s.securitySchemes),{[t]:Object.assign(Object.assign({},null===(a=null===(n=null==E?void 0:E.components)||void 0===n?void 0:n.securitySchemes)||void 0===a?void 0:a[t]),{type:"openIdConnect"===(null===(u=null===(l=null===(i=null==E?void 0:E.components)||void 0===i?void 0:i.securitySchemes)||void 0===l?void 0:l[t])||void 0===u?void 0:u.type)?"oauth2":(null===(d=null===(p=null==E?void 0:E.components)||void 0===p?void 0:p.securitySchemes)||void 0===d?void 0:d[t]).type})})})}),V=Object.assign(Object.assign({},V),{[t]:V[e]})}else F=Object.assign({},E);F.servers=O;const k=T.corsProxyUrl;k&&O.length&&(F.servers=O.map((e=>Object.assign(Object.assign({},e),{url:k+normalizeUrlProtocol(e.url)}))),F.paths=Object.assign(Object.assign({},F.paths),{[e.path]:Object.assign(Object.assign({},F.paths[e.path]),{[A]:Object.assign(Object.assign({},F.paths[e.path][A]),{servers:void 0}),servers:void 0})}));const x=(null==C?void 0:C.content)&&(null===(y=getActiveMediaType(C.content))||void 0===y?void 0:y.name)||null;if(x&&I&&isFileUploadMime(x)){const e=Object.values(I);I=e.length>1?e:e[0]}const B=unescapeQueryParams(o.query||{}),_={server:k?k+normalizeUrlProtocol(q.url):q.url,serverVariables:getDefaultOrStoredVariables(q),spec:F,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},o.path),B),o.header),o.cookie),securities:{authorized:V},requestBody:I,requestContentType:x,responseContentType:(null===(h=o.header)||void 0===h?void 0:h.Accept)||null,requestInterceptor:makeRequestInterceptor(T,e,null==V?void 0:V.Authorization)};try{const
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,t,o,r){return new(o||(o=Promise))((function(s,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function i(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,i)}l((r=r.apply(e,t||[])).next())}))};import{execute}from"swagger-client/es/execute/index";import React,{useEffect,useState,useCallback,memo}from"react";import{useMount}from"@redocly/theme";import{useAtomValue,useAtom}from"jotai";import{useForm,FormProvider}from"react-hook-form";import{dereferenceDefinitionForTryIt}from"./shallowCopyForTryIt";import{unescapeFormId}from"../../../utils/string";import{StyledCodeHeader}from"../../Panel";import{isFileUploadMime}from"../../common/FileUpload/helper";import{AnalyticsEventType}from"../../../events";import{getDefaultOrStoredVariables,getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"../utils";import{ResponsePanel}from"../ResponsePanel";import{ConsoleTabs}from"../ConsoleTabs";import{ActionPanel}from"../ActionPanel";import{Request}from"./Request";import{CloseButton,ConsoleBody}from"../styled";import{ConsoleWrapper}from"./ConsoleWrapper";import{usePrevious}from"../../../hooks";import{globalStoreAtom}from"../../../jotai/store";import{getActiveMediaType}from"../../../models";import{operationStore}from"../../../jotai/operation";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:o,rootElement:r,properties:s,mergeExampleBody:n,securityDefaults:a,onClose:i}){const l=useForm({defaultValues:{path:getParameters(e.parameters,"path"),cookie:getParameters(e.parameters,"cookie"),header:getParameters(e.parameters,"header"),query:getParameters(e.parameters,"query")}}),[{activeServer:c},u]=useAtom(operationStore(e.pointer)),[p,m]=useState(0),[d,v]=useState(!1),[y,h]=useState(!1),[f,g]=useState(),[b,S]=useState(),[O,j]=useState(),[C,P]=useState(),R=usePrevious(e),{parser:I,options:T}=useAtomValue(globalStoreAtom);useEffect((()=>{const{unsubscribe:e}=l.watch(((e={})=>{u((t=>Object.assign(Object.assign({},t),{requestValues:JSON.parse(JSON.stringify(e))}))),updateStorage(Object.assign(Object.assign({},e),{query:unescapeQueryParams(e.query||{})}))}));return()=>e()}),[l,u]);const E=useCallback((e=>{m(e)}),[]),A=useCallback((e=>{u((t=>Object.assign(Object.assign({},t),{activeServer:e}))),l.setValue("server",e)}),[u,l]),q=l.handleSubmit((o=>__awaiter(this,void 0,void 0,(function*(){var r,s,n,a,i,l,u,p,d,y,h,g,b;const{servers:O,requestBody:C}=e,R=C&&C.content&&(null===(r=getActiveMediaType(C.content))||void 0===r?void 0:r.name)||"";let I=o.body;if(/json/.test(R))try{I=JSON.parse(I)}catch(e){console.error(e)}v(!0);const E=f,A=(e.httpVerb||"").toLowerCase();if(!O)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");const q=O.find((e=>null==c?void 0:c.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),w=Date.now();let F,V=o.auth;if(V){const e=Object.keys(V)[0],t=unescapeFormId(e);F=Object.assign(Object.assign({},E),{components:Object.assign(Object.assign({},null==E?void 0:E.components),{securitySchemes:Object.assign(Object.assign({},null===(s=null==E?void 0:E.components)||void 0===s?void 0:s.securitySchemes),{[t]:Object.assign(Object.assign({},null===(a=null===(n=null==E?void 0:E.components)||void 0===n?void 0:n.securitySchemes)||void 0===a?void 0:a[t]),{type:"openIdConnect"===(null===(u=null===(l=null===(i=null==E?void 0:E.components)||void 0===i?void 0:i.securitySchemes)||void 0===l?void 0:l[t])||void 0===u?void 0:u.type)?"oauth2":(null===(d=null===(p=null==E?void 0:E.components)||void 0===p?void 0:p.securitySchemes)||void 0===d?void 0:d[t]).type})})})}),V=Object.assign(Object.assign({},V),{[t]:V[e]})}else F=Object.assign({},E);F.servers=O;const k=T.corsProxyUrl;k&&O.length&&(F.servers=O.map((e=>Object.assign(Object.assign({},e),{url:k+normalizeUrlProtocol(e.url)}))),F.paths=Object.assign(Object.assign({},F.paths),{[e.path]:Object.assign(Object.assign({},F.paths[e.path]),{[A]:Object.assign(Object.assign({},F.paths[e.path][A]),{servers:void 0}),servers:void 0})}));const x=(null==C?void 0:C.content)&&(null===(y=getActiveMediaType(C.content))||void 0===y?void 0:y.name)||null;if(x&&I&&isFileUploadMime(x)){const e=Object.values(I);I=e.length>1?e:e[0]}const B=unescapeQueryParams(o.query||{}),_={server:k?k+normalizeUrlProtocol(q.url):q.url,serverVariables:getDefaultOrStoredVariables(q),spec:F,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},o.path),B),o.header),o.cookie),securities:{authorized:V},requestBody:I,requestContentType:x,responseContentType:(null===(h=o.header)||void 0===h?void 0:h.Accept)||null,requestInterceptor:makeRequestInterceptor(T,e,null==V?void 0:V.Authorization)};try{const o=yield execute(_),r=null==o?void 0:o.data;r instanceof Blob&&(isFileUploadMime(r.type)&&(o.fileInfo={rawData:r,fileName:getFileNameFromHeaders(o.headers)}),o.data=yield r.text()),null==t||t({request:_,response:o}),P(o),j(void 0)}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=yield e.response.data.text(),null==t||t({request:_,response:e.response})),P(void 0),j(e)}finally{v(!1),m(1),S(Date.now()-w),null===(b=null===(g=T.events)||void 0===g?void 0:g.tryItSent)||void 0===b||b.call(g,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),(()=>{var t,o;h(!0),setTimeout((()=>h(!1)),1e3),null===(o=null===(t=T.events)||void 0===t?void 0:t.tryItSent)||void 0===o||o.call(t,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}));useMount((()=>__awaiter(this,void 0,void 0,(function*(){const t=yield dereferenceDefinitionForTryIt(e,I.definition);g(t),e.activeServer&&!c&&u((t=>Object.assign(Object.assign({},t),{activeServer:e.activeServer})))})))),useEffect((()=>{R&&R!==e&&(P(void 0),j(void 0),m(0))}),[e,R]);const w=!(!C&&!O),F=l.getValues();return React.createElement(FormProvider,Object.assign({},l),React.createElement(ConsoleWrapper,{shaking:y,className:o,rootElement:r},React.createElement(StyledCodeHeader,null,React.createElement(ConsoleTabs,{active:p,hasResponse:w,onChange:E}),i&&React.createElement(CloseButton,{onClick:i}," ✕ ")),React.createElement(ConsoleBody,{hidden:0!==p,"data-cy":"console-request-body"},React.createElement(Request,{operation:e,properties:s,mergeExampleBody:n,securityDefaults:a,resolvedRawSpec:f,server:c||e.activeServer,onServerChange:A})),React.createElement(ConsoleBody,{hidden:1!==p,"data-cy":"console-response-body"},React.createElement(ResponsePanel,{response:C,error:O,time:b})),React.createElement(ActionPanel,{hasResponse:w,params:F,operation:e,loading:d,onSubmit:q})))}export const Console=memo(ConsoleComponent);
|
|
2
2
|
//# sourceMappingURL=Console.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getValueFromMdParsedExtension}from"../utils";export function getSecurityRequirement({requirement:e,parser:t}){const n=t.definition.components&&t.definition.components.securitySchemes||{};return{schemes:Object.keys(e||{}).map((r=>{const
|
|
1
|
+
import{getValueFromMdParsedExtension}from"../utils";export function getSecurityRequirement({requirement:e,parser:t}){const n=t.definition.components&&t.definition.components.securitySchemes||{};return{schemes:Object.keys(e||{}).map((r=>{const o=t.deref(n[r]).resolved,i=e[r]||[];if(o)return Object.assign(Object.assign({},o),{id:r,sectionId:r,scopes:i})})).filter(Boolean)}}export function getSecurityScheme(e,t,n){if(!(null==e?void 0:e.deref))return{};const{resolved:r}=e.deref(n),o=t,i=r.type,s=getValueFromMdParsedExtension(r,"description")||"";let c,a,d,p={};switch(r.type){case"apiKey":c={name:r.name,in:r.in};break;case"http":a={scheme:r.scheme,bearerFormat:r.bearerFormat};break;case"openIdConnect":d={connectUrl:r.openIdConnectUrl};break;case"oauth2":p=r.flows}return{id:t,sectionId:o,type:i,description:s,apiKey:c,http:a,flows:p,openId:d}}export function getSecuritySchemes({parser:e}){var t,n;if(!e)return[];const r=(null===(n=null===(t=e.definition)||void 0===t?void 0:t.components)||void 0===n?void 0:n.securitySchemes)||{};return Object.keys(r).map((t=>getSecurityScheme(e,t,r[t])))}
|
|
2
2
|
//# sourceMappingURL=security.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{deleteEmptyArrayItem,isArrayOfObjects,serializeParameterValue,getSecurityDetails,getParameterValue,queryString}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{l}from"../labels";import{HTTPSnippet}from"./httpsnippet";import StringUtility from"./httpsnippet/helpers/string-utility";import{getActiveMediaType}from"../../models/mediaContent";function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:i,generatedPayloadSamplesMaxDepth:s=8,pathParams:n={},properties:o={}},{activeServer:l,requestValues:u}){var p,c,d,m;const{securityHeaders:h,securityCookies:y,securityQueries:
|
|
1
|
+
import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{deleteEmptyArrayItem,isArrayOfObjects,serializeParameterValue,getSecurityDetails,getParameterValue,queryString}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{l}from"../labels";import{HTTPSnippet}from"./httpsnippet";import StringUtility from"./httpsnippet/helpers/string-utility";import{getActiveMediaType}from"../../models/mediaContent";function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:i,generatedPayloadSamplesMaxDepth:s=8,pathParams:n={},properties:o={}},{activeServer:l,requestValues:u}){var p,c,d,m;const{securityHeaders:h,securityCookies:y,securityQueries:f,securityOAuth2ExtraCalls:v,basicAuth:g}=getSecurityData(null===(p=e.security)||void 0===p?void 0:p[0],r),O=(null===(c=null==e?void 0:e.requestBody)||void 0===c?void 0:c.content)&&getActiveMediaType(e.requestBody.content),T={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:s},S={path:null==u?void 0:u.path,cookie:null==u?void 0:u.cookie,header:null==u?void 0:u.header,query:null==u?void 0:u.query,body:null==u?void 0:u.body};let C=!1;const b=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=S.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,T,i))}})).map((e=>((null==O?void 0:O.name)&&"content-type"===e.name.toLowerCase()&&(C=!0,e.value=O.name),e))).concat(h);!C&&(null==O?void 0:O.name)&&b.unshift({name:"Content-Type",value:null==O?void 0:O.name});const E=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,T,i))))).reduce(((e,t)=>{var a;for(const[r,i]of Object.entries(t))e.push({name:r,value:String((null===(a=S.cookie)||void 0===a?void 0:a[r])||i)});return e}),[]).concat(y),A=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,T,i))))).reduce(((e,t)=>{var a,r,i;for(const[s,n]of Object.entries(t))e.push({name:s,value:isArrayOfObjects(null===(a=S.query)||void 0===a?void 0:a[s])&&JSON.stringify(deleteEmptyArrayItem(null===(r=S.query)||void 0===r?void 0:r[s]))||String((null===(i=S.query)||void 0===i?void 0:i[s])||n)});return e}),[]).concat(f),_=`${null===(d=l||e.activeServer)||void 0===d?void 0:d.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,P=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:i}=t;return e[i]=(null===(a=S.path)||void 0===a?void 0:a[i])||n[i]||getParameterValue(r,i),e}),{}),j=null===(m=null==O?void 0:O.examples)||void 0===m?void 0:m[t],w=(null==O?void 0:O.examples)||{},[R]=Object.values(w),D=S.body||(null==j?void 0:j.value)||(null==R?void 0:R.value)||(null==O?void 0:O.schema)&&Sampler.sample(null==O?void 0:O.schema.rawSchema,T,i),k=null==O?void 0:O.name.toLowerCase();let M="",q=[];switch(normalizeMimeType(k)){case MediaTypes.JSON:case MediaTypes.XML:M=JSON.stringify(getDataRequest(D,o));break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:M=queryString.stringify(getDataRequest(D,o)),q=objectToHarParams(getDataRequest(D,o));break;default:M=String(D||"")}const H=M?{mimeType:(null==O?void 0:O.name)||MediaTypes.OCTET_STREAM,text:M,params:q}:void 0,N=e.responses.map((e=>e.code));return{method:e.httpVerb,url:_,httpVersion:"HTTP/1.1",cookies:E,headers:b,queryString:A,postData:H,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:v,basicAuth:g,pathParameters:P,serverVariables:(null==l?void 0:l.variables)||e.activeServer.variables,allResponseCodes:N}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:i,options:s={}}){try{const{skipOptionalParameters:n,withOAuth2Call:o,spec:l,generatedPayloadSamplesMaxDepth:u,store:p}=s,c=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:i,skipOptionalParameters:n,withOAuth2Call:o,spec:l,generatedPayloadSamplesMaxDepth:u},p),d=new HTTPSnippet(c);return langToSnippetConfig[e]?d.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),s)):"Language is not supported."}catch(e){return console.error(e),"Failed to generate code sample."}}function getSecurityData(e,t){var a,r,i,s;const n={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const o of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(o.id);switch(o.type){case"openIdConnect":null===(a=n.securityHeaders)||void 0===a||a.push({name:"Authorization",value:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";o.flows.clientCredentials&&t?n.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(o.flows.clientCredentials,o.scopes,e)):o.flows.password&&t&&n.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(o.flows.password,o.scopes,e)),null===(r=n.securityHeaders)||void 0===r||r.push({name:"Authorization",value:a});break}case"apiKey":{const t=e.raw||"YOUR_API_KEY_HERE";"header"===o.in&&(null===(i=n.securityHeaders)||void 0===i||i.push({name:o.name,value:t})),"cookie"===o.in&&n.securityCookies.push({name:o.name,value:t}),"query"===o.in&&n.securityQueries.push({name:o.name,value:t});break}case"http":"basic"===o.scheme?n.basicAuth={username:e.username||`<${StringUtility.toSnakeCase(l("tryItAuthBasicUsername"))}>`,password:e.password||`<${StringUtility.toSnakeCase(l("tryItAuthBasicPassword"))}>`}:null===(s=n.securityHeaders)||void 0===s||s.push({name:"Authorization",value:`${capitalizeFirst(o.scheme||"bearer")} <YOUR_${o.bearerFormat||"TOKEN"}_HERE>`})}}return n}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getDataRequest(e,t){if(e){if("object"==typeof e)return merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];for(const[r,i]of Object.entries(e)){const e=t?`${t}[${r}]`:r;"object"==typeof i&&null!==i?a.push(...objectToHarParams(i,e)):a.push({name:e,value:String(i)})}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
|
|
2
2
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as util from"util";import{Lang,NamingVariableConventions,VariableType}from"./constants";import StringUtility from"./string-utility";const langToVarNameConvention={[Lang.NODEJS]:NamingVariableConventions.CAMEL_CASE,[Lang.JAVASCRIPT]:NamingVariableConventions.CAMEL_CASE,[Lang.PYTHON]:NamingVariableConventions.UNDER_SCORES,[Lang.JAVA8]:NamingVariableConventions.CAMEL_CASE,[Lang.JAVA]:NamingVariableConventions.CAMEL_CASE,[Lang.CSHARP]:NamingVariableConventions.PASCAL_CASE,[Lang.CURL]:NamingVariableConventions.CAMEL_CASE,[Lang.GO]:NamingVariableConventions.CAMEL_CASE,[Lang.PHP]:NamingVariableConventions.CAMEL_CASE,[Lang.RUBY]:NamingVariableConventions.UNDER_SCORES,[Lang.R]:NamingVariableConventions.UNDER_SCORES},langOptions={default:{joinSymbol:"",variableWrapperFn:a=>a,stringLiteral:a=>a,variableDeclaration:a=>a,urlFieldName:"url"},[Lang.CSHARP]:{joinSymbol:" + ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`var ${a} = "%s";`,urlFieldName:"fullUrl"},[Lang.GO]:{joinSymbol:" + ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`${a} := "%s";`},[Lang.JAVA]:{joinSymbol:" + ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`var ${a} = "%s";`,urlFieldName:"pathname"},[Lang.JAVA8]:{joinSymbol:" + ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`String ${a} = "%s";`,urlFieldName:"fullUrl"},[Lang.JAVASCRIPT]:{variableWrapperFn:a=>"${"+a+"}",variableDeclaration:a=>`const ${a} = '%s';`},[Lang.NODEJS]:{variableWrapperFn:a=>"${"+a+"}",variableDeclaration:a=>`const ${a} = '%s';`},[Lang.PHP]:{joinSymbol:" . ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`const ${a} = "%s";`},[Lang.PYTHON]:{stringLiteral:a=>`"${a}"`,joinSymbol:" + ",variableDeclaration:a=>`${a} = "%s"`},[Lang.RUBY]:{joinSymbol:" + ",stringLiteral:a=>`'${a}'`,variableDeclaration:a=>`${a} = '%s'`},[Lang.CURL]:{variableWrapperFn:(a,i)=>i||`{${a}}`,urlFieldName:"fullUrl",rawName:!0},[Lang.R]:{joinSymbol:" %&% ",variableDeclaration:a=>`${a} = "%s"`,urlFieldName:"fullUrl",stringLiteral:a=>`"${a}"`,variableWrapperFn:a=>`${a}`}},reservedVariableNames=["response","request","requests","data","url","payload","main","accessToken","resp","Program","client","postData","App","httpClient","params","pathname","host","body","fetch","query"];export class CodeBuilder{constructor({indentation:a,lineJoin:i="\n",variablesPrefix:e="",capitalize:n=!1,lang:
|
|
1
|
+
import*as util from"util";import{Lang,NamingVariableConventions,VariableType}from"./constants";import StringUtility from"./string-utility";const langToVarNameConvention={[Lang.NODEJS]:NamingVariableConventions.CAMEL_CASE,[Lang.JAVASCRIPT]:NamingVariableConventions.CAMEL_CASE,[Lang.PYTHON]:NamingVariableConventions.UNDER_SCORES,[Lang.JAVA8]:NamingVariableConventions.CAMEL_CASE,[Lang.JAVA]:NamingVariableConventions.CAMEL_CASE,[Lang.CSHARP]:NamingVariableConventions.PASCAL_CASE,[Lang.CSHARPNEWTONSOFT]:NamingVariableConventions.PASCAL_CASE,[Lang.CURL]:NamingVariableConventions.CAMEL_CASE,[Lang.GO]:NamingVariableConventions.CAMEL_CASE,[Lang.PHP]:NamingVariableConventions.CAMEL_CASE,[Lang.RUBY]:NamingVariableConventions.UNDER_SCORES,[Lang.R]:NamingVariableConventions.UNDER_SCORES},langOptions={default:{joinSymbol:"",variableWrapperFn:a=>a,stringLiteral:a=>a,variableDeclaration:a=>a,urlFieldName:"url"},[Lang.CSHARP]:{joinSymbol:" + ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`var ${a} = "%s";`,urlFieldName:"fullUrl"},[Lang.CSHARPNEWTONSOFT]:{joinSymbol:" + ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`var ${a} = "%s";`,urlFieldName:"fullUrl"},[Lang.GO]:{joinSymbol:" + ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`${a} := "%s";`},[Lang.JAVA]:{joinSymbol:" + ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`var ${a} = "%s";`,urlFieldName:"pathname"},[Lang.JAVA8]:{joinSymbol:" + ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`String ${a} = "%s";`,urlFieldName:"fullUrl"},[Lang.JAVASCRIPT]:{variableWrapperFn:a=>"${"+a+"}",variableDeclaration:a=>`const ${a} = '%s';`},[Lang.NODEJS]:{variableWrapperFn:a=>"${"+a+"}",variableDeclaration:a=>`const ${a} = '%s';`},[Lang.PHP]:{joinSymbol:" . ",stringLiteral:a=>`"${a}"`,variableDeclaration:a=>`const ${a} = "%s";`},[Lang.PYTHON]:{stringLiteral:a=>`"${a}"`,joinSymbol:" + ",variableDeclaration:a=>`${a} = "%s"`},[Lang.RUBY]:{joinSymbol:" + ",stringLiteral:a=>`'${a}'`,variableDeclaration:a=>`${a} = '%s'`},[Lang.CURL]:{variableWrapperFn:(a,i)=>i||`{${a}}`,urlFieldName:"fullUrl",rawName:!0},[Lang.R]:{joinSymbol:" %&% ",variableDeclaration:a=>`${a} = "%s"`,urlFieldName:"fullUrl",stringLiteral:a=>`"${a}"`,variableWrapperFn:a=>`${a}`}},reservedVariableNames=["response","request","requests","data","url","payload","main","accessToken","resp","Program","client","postData","App","httpClient","params","pathname","host","body","fetch","query"];export class CodeBuilder{constructor({indentation:a,lineJoin:i="\n",variablesPrefix:e="",capitalize:n=!1,lang:r=Lang.CURL}){Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"indentation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"variablesPrefix",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lineJoin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"capitalize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lang",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"langOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=[],this.indentation=a,this.variablesPrefix=e,this.lineJoin=i||"\n",this.capitalize=n,this.lang=r,this.langOptions=Object.assign(Object.assign({},langOptions.default),langOptions[r])}buildLine(a,i){let e="",n=2;if("string"==typeof a)n=1,i=a,a=0;else if(null===a)return null;for(;a;)e+=this.indentation,a--;const r=Array.prototype.slice.call(arguments,n,arguments.length);return r.unshift(e+i),util.format.apply(this,r)}unshift(...a){return this.code.unshift(this.buildLine.apply(this,a)),this}push(...a){return this.code.push(this.buildLine.apply(this,a)),this}blank(){return this.code.push(null),this}join(){return this.code.join(this.lineJoin)}clean(){this.code.splice(1)}var(a,i=VariableType.CUSTOM){if(i===VariableType.PATH){let i=this.variablesPrefix+a;switch(reservedVariableNames.includes(i)&&(i=`${i}_path`),langToVarNameConvention[this.lang]){case NamingVariableConventions.UNDER_SCORES:i=StringUtility.toSnakeCase(i);break;case NamingVariableConventions.PASCAL_CASE:i=StringUtility.toPascalCase(i);break;case NamingVariableConventions.CAMEL_CASE:default:i=StringUtility.toCamelCase(i)}return i}return this.variablesPrefix?this.variablesPrefix+(this.capitalize?StringUtility.toPascalCase(a):a):a}}
|
|
2
2
|
//# sourceMappingURL=code-builder.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var Lang;!function(a){a.NODEJS="Node.js",a.JAVASCRIPT="javascript",a.PYTHON="Python",a.JAVA8="Java8+Apache",a.JAVA="Java",a.CSHARP="C#",a.CURL="curl",a.GO="Go",a.PHP="PHP",a.RUBY="Ruby",a.R="R"}(Lang||(Lang={}));export var NamingVariableConventions;!function(a){a.UNDER_SCORES="under_scores",a.CAMEL_CASE="camelCase",a.PASCAL_CASE="PascalCase"}(NamingVariableConventions||(NamingVariableConventions={}));export var VariableType;!function(a){a.IMPORT="import",a.CUSTOM="custom",a.PATH="path"}(VariableType||(VariableType={}));
|
|
1
|
+
export var Lang;!function(a){a.NODEJS="Node.js",a.JAVASCRIPT="javascript",a.PYTHON="Python",a.JAVA8="Java8+Apache",a.JAVA="Java",a.CSHARP="C#",a.CSHARPNEWTONSOFT="C#+Newtonsoft",a.CURL="curl",a.GO="Go",a.PHP="PHP",a.RUBY="Ruby",a.R="R"}(Lang||(Lang={}));export var NamingVariableConventions;!function(a){a.UNDER_SCORES="under_scores",a.CAMEL_CASE="camelCase",a.PASCAL_CASE="PascalCase"}(NamingVariableConventions||(NamingVariableConventions={}));export var VariableType;!function(a){a.IMPORT="import",a.CUSTOM="custom",a.PATH="path"}(VariableType||(VariableType={}));
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
|
@@ -6,6 +6,7 @@ export declare const printUrlVariablesDeclarationsOutput: {
|
|
|
6
6
|
'Java8+Apache': string;
|
|
7
7
|
Java: string;
|
|
8
8
|
'C#': string;
|
|
9
|
+
'C#+Newtonsoft': string;
|
|
9
10
|
curl: string;
|
|
10
11
|
Go: string;
|
|
11
12
|
PHP: string;
|
|
@@ -20,6 +21,7 @@ export declare const buildUrlExpressionData: {
|
|
|
20
21
|
'Java8+Apache': string;
|
|
21
22
|
Java: string;
|
|
22
23
|
'C#': string;
|
|
24
|
+
'C#+Newtonsoft': string;
|
|
23
25
|
curl: string;
|
|
24
26
|
Go: string;
|
|
25
27
|
PHP: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const commonVariablesInput={pathParameters:{pathParam1:"pathParam1Value",pathParam2:"pathParam2Value"},serverVariables:{serverVariable1:"serverVariable1Value",serverVariable2:"serverVariable2Value"}};export const printUrlVariablesDeclarationsOutput={"Node.js":"const variablesPrefixpathParam1 = 'pathParam1Value';\nconst variablesPrefixpathParam2 = 'pathParam2Value';\nconst variablesPrefixserverVariable1 = 'serverVariable1Value';\nconst variablesPrefixserverVariable2 = 'serverVariable2Value';",javascript:"const variablesPrefixpathParam1 = 'pathParam1Value';\nconst variablesPrefixpathParam2 = 'pathParam2Value';\nconst variablesPrefixserverVariable1 = 'serverVariable1Value';\nconst variablesPrefixserverVariable2 = 'serverVariable2Value';",Python:'variables_prefixpath_param_1 = "pathParam1Value"\nvariables_prefixpath_param_2 = "pathParam2Value"\nvariables_prefixserver_variable_1 = "serverVariable1Value"\nvariables_prefixserver_variable_2 = "serverVariable2Value"',"Java8+Apache":'String variablesPrefixpathParam1 = "pathParam1Value";\nString variablesPrefixpathParam2 = "pathParam2Value";\nString variablesPrefixserverVariable1 = "serverVariable1Value";\nString variablesPrefixserverVariable2 = "serverVariable2Value";',Java:'var variablesPrefixpathParam1 = "pathParam1Value";\nvar variablesPrefixpathParam2 = "pathParam2Value";\nvar variablesPrefixserverVariable1 = "serverVariable1Value";\nvar variablesPrefixserverVariable2 = "serverVariable2Value";',"C#":'var VariablesPrefixpathParam1 = "pathParam1Value";\nvar VariablesPrefixpathParam2 = "pathParam2Value";\nvar VariablesPrefixserverVariable1 = "serverVariable1Value";\nvar VariablesPrefixserverVariable2 = "serverVariable2Value";',curl:"variablesPrefixpathParam1 pathParam1Value\nvariablesPrefixpathParam2 pathParam2Value\nvariablesPrefixserverVariable1 serverVariable1Value\nvariablesPrefixserverVariable2 serverVariable2Value",Go:'variablesPrefixpathParam1 := "pathParam1Value";\nvariablesPrefixpathParam2 := "pathParam2Value";\nvariablesPrefixserverVariable1 := "serverVariable1Value";\nvariablesPrefixserverVariable2 := "serverVariable2Value";',PHP:'const variablesPrefixpathParam1 = "pathParam1Value";\nconst variablesPrefixpathParam2 = "pathParam2Value";\nconst variablesPrefixserverVariable1 = "serverVariable1Value";\nconst variablesPrefixserverVariable2 = "serverVariable2Value";',Ruby:"variables_prefixpath_param_1 = 'pathParam1Value'\nvariables_prefixpath_param_2 = 'pathParam2Value'\nvariables_prefixserver_variable_1 = 'serverVariable1Value'\nvariables_prefixserver_variable_2 = 'serverVariable2Value'",R:'variables_prefixpath_param_1 = "pathParam1Value"\nvariables_prefixpath_param_2 = "pathParam2Value"\nvariables_prefixserver_variable_1 = "serverVariable1Value"\nvariables_prefixserver_variable_2 = "serverVariable2Value"'};export const buildUrlExpressionCases={};export const buildUrlExpressionData={"Node.js":"http://acme.com/${variablesPrefixpathParam1}/${variablesPrefixpathParam2}/${variablesPrefixserverVariable1}/${variablesPrefixserverVariable2}",javascript:"http://acme.com/${variablesPrefixpathParam1}/${variablesPrefixpathParam2}/${variablesPrefixserverVariable1}/${variablesPrefixserverVariable2}",Python:'"http://acme.com/" + variables_prefixpath_param_1 + "/" + variables_prefixpath_param_2 + "/" + variables_prefixserver_variable_1 + "/" + variables_prefixserver_variable_2',"Java8+Apache":'"http://acme.com/" + variablesPrefixpathParam1 + "/" + variablesPrefixpathParam2 + "/" + variablesPrefixserverVariable1 + "/" + variablesPrefixserverVariable2',Java:'"http://acme.com/" + variablesPrefixpathParam1 + "/" + variablesPrefixpathParam2 + "/" + variablesPrefixserverVariable1 + "/" + variablesPrefixserverVariable2',"C#":'"http://acme.com/" + VariablesPrefixpathParam1 + "/" + VariablesPrefixpathParam2 + "/" + VariablesPrefixserverVariable1 + "/" + VariablesPrefixserverVariable2',curl:"http://acme.com/pathParam1Value/pathParam2Value/serverVariable1Value/serverVariable2Value",Go:'"http://acme.com/" + variablesPrefixpathParam1 + "/" + variablesPrefixpathParam2 + "/" + variablesPrefixserverVariable1 + "/" + variablesPrefixserverVariable2',PHP:'"http://acme.com/" . variablesPrefixpathParam1 . "/" . variablesPrefixpathParam2 . "/" . variablesPrefixserverVariable1 . "/" . variablesPrefixserverVariable2',Ruby:"'http://acme.com/' + variables_prefixpath_param_1 + '/' + variables_prefixpath_param_2 + '/' + variables_prefixserver_variable_1 + '/' + variables_prefixserver_variable_2",R:'"http://acme.com/" %&% variables_prefixpath_param_1 %&% "/" %&% variables_prefixpath_param_2 %&% "/" %&% variables_prefixserver_variable_1 %&% "/" %&% variables_prefixserver_variable_2'};
|
|
1
|
+
export const commonVariablesInput={pathParameters:{pathParam1:"pathParam1Value",pathParam2:"pathParam2Value"},serverVariables:{serverVariable1:"serverVariable1Value",serverVariable2:"serverVariable2Value"}};export const printUrlVariablesDeclarationsOutput={"Node.js":"const variablesPrefixpathParam1 = 'pathParam1Value';\nconst variablesPrefixpathParam2 = 'pathParam2Value';\nconst variablesPrefixserverVariable1 = 'serverVariable1Value';\nconst variablesPrefixserverVariable2 = 'serverVariable2Value';",javascript:"const variablesPrefixpathParam1 = 'pathParam1Value';\nconst variablesPrefixpathParam2 = 'pathParam2Value';\nconst variablesPrefixserverVariable1 = 'serverVariable1Value';\nconst variablesPrefixserverVariable2 = 'serverVariable2Value';",Python:'variables_prefixpath_param_1 = "pathParam1Value"\nvariables_prefixpath_param_2 = "pathParam2Value"\nvariables_prefixserver_variable_1 = "serverVariable1Value"\nvariables_prefixserver_variable_2 = "serverVariable2Value"',"Java8+Apache":'String variablesPrefixpathParam1 = "pathParam1Value";\nString variablesPrefixpathParam2 = "pathParam2Value";\nString variablesPrefixserverVariable1 = "serverVariable1Value";\nString variablesPrefixserverVariable2 = "serverVariable2Value";',Java:'var variablesPrefixpathParam1 = "pathParam1Value";\nvar variablesPrefixpathParam2 = "pathParam2Value";\nvar variablesPrefixserverVariable1 = "serverVariable1Value";\nvar variablesPrefixserverVariable2 = "serverVariable2Value";',"C#":'var VariablesPrefixpathParam1 = "pathParam1Value";\nvar VariablesPrefixpathParam2 = "pathParam2Value";\nvar VariablesPrefixserverVariable1 = "serverVariable1Value";\nvar VariablesPrefixserverVariable2 = "serverVariable2Value";',"C#+Newtonsoft":'var VariablesPrefixpathParam1 = "pathParam1Value";\nvar VariablesPrefixpathParam2 = "pathParam2Value";\nvar VariablesPrefixserverVariable1 = "serverVariable1Value";\nvar VariablesPrefixserverVariable2 = "serverVariable2Value";',curl:"variablesPrefixpathParam1 pathParam1Value\nvariablesPrefixpathParam2 pathParam2Value\nvariablesPrefixserverVariable1 serverVariable1Value\nvariablesPrefixserverVariable2 serverVariable2Value",Go:'variablesPrefixpathParam1 := "pathParam1Value";\nvariablesPrefixpathParam2 := "pathParam2Value";\nvariablesPrefixserverVariable1 := "serverVariable1Value";\nvariablesPrefixserverVariable2 := "serverVariable2Value";',PHP:'const variablesPrefixpathParam1 = "pathParam1Value";\nconst variablesPrefixpathParam2 = "pathParam2Value";\nconst variablesPrefixserverVariable1 = "serverVariable1Value";\nconst variablesPrefixserverVariable2 = "serverVariable2Value";',Ruby:"variables_prefixpath_param_1 = 'pathParam1Value'\nvariables_prefixpath_param_2 = 'pathParam2Value'\nvariables_prefixserver_variable_1 = 'serverVariable1Value'\nvariables_prefixserver_variable_2 = 'serverVariable2Value'",R:'variables_prefixpath_param_1 = "pathParam1Value"\nvariables_prefixpath_param_2 = "pathParam2Value"\nvariables_prefixserver_variable_1 = "serverVariable1Value"\nvariables_prefixserver_variable_2 = "serverVariable2Value"'};export const buildUrlExpressionCases={};export const buildUrlExpressionData={"Node.js":"http://acme.com/${variablesPrefixpathParam1}/${variablesPrefixpathParam2}/${variablesPrefixserverVariable1}/${variablesPrefixserverVariable2}",javascript:"http://acme.com/${variablesPrefixpathParam1}/${variablesPrefixpathParam2}/${variablesPrefixserverVariable1}/${variablesPrefixserverVariable2}",Python:'"http://acme.com/" + variables_prefixpath_param_1 + "/" + variables_prefixpath_param_2 + "/" + variables_prefixserver_variable_1 + "/" + variables_prefixserver_variable_2',"Java8+Apache":'"http://acme.com/" + variablesPrefixpathParam1 + "/" + variablesPrefixpathParam2 + "/" + variablesPrefixserverVariable1 + "/" + variablesPrefixserverVariable2',Java:'"http://acme.com/" + variablesPrefixpathParam1 + "/" + variablesPrefixpathParam2 + "/" + variablesPrefixserverVariable1 + "/" + variablesPrefixserverVariable2',"C#":'"http://acme.com/" + VariablesPrefixpathParam1 + "/" + VariablesPrefixpathParam2 + "/" + VariablesPrefixserverVariable1 + "/" + VariablesPrefixserverVariable2',"C#+Newtonsoft":'"http://acme.com/" + VariablesPrefixpathParam1 + "/" + VariablesPrefixpathParam2 + "/" + VariablesPrefixserverVariable1 + "/" + VariablesPrefixserverVariable2',curl:"http://acme.com/pathParam1Value/pathParam2Value/serverVariable1Value/serverVariable2Value",Go:'"http://acme.com/" + variablesPrefixpathParam1 + "/" + variablesPrefixpathParam2 + "/" + variablesPrefixserverVariable1 + "/" + variablesPrefixserverVariable2',PHP:'"http://acme.com/" . variablesPrefixpathParam1 . "/" . variablesPrefixpathParam2 . "/" . variablesPrefixserverVariable1 . "/" . variablesPrefixserverVariable2',Ruby:"'http://acme.com/' + variables_prefixpath_param_1 + '/' + variables_prefixpath_param_2 + '/' + variables_prefixserver_variable_1 + '/' + variables_prefixserver_variable_2",R:'"http://acme.com/" %&% variables_prefixpath_param_1 %&% "/" %&% variables_prefixpath_param_2 %&% "/" %&% variables_prefixserver_variable_1 %&% "/" %&% variables_prefixserver_variable_2'};
|
|
2
2
|
//# sourceMappingURL=code-helpers-mock.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{CodeBuilder}from"../../helpers/code-builder";import{HTTPSnippet}from"../..";import{buildUrlExpression,printUrlVariablesDeclarations}from"../../helpers/code-helpers";import{isEmptyObject,normalizeMimeType}from"../../../../utils";import{capitalizeFirst}from"../../../generator";import{Lang}from"../../helpers/constants";import{MediaTypes}from"../../../../../constants";import{checkIfIsObject,isLastInArray,isLastProperty}from"../../../../../utils";const handler=function(t,e,{target:s,client:a}){var n,i,r,o;const p=Object.assign({indent:" ",withWrapper:!0},e),u=new CodeBuilder({indentation:p.indent,variablesPrefix:p.variablesPrefix,capitalize:!0,lang:Lang.CSHARP}),l=formatHttpMethod(t.method);if(p.withComments&&addComments(u),p.withWrapper&&(u.push("using System;"),u.push("using System.Net.Http;"),u.push("using System.Threading.Tasks;"),(h(MediaTypes.JSON)||h(MediaTypes.XML)||t.basicAuth)&&u.push("using System.Text;"),(h(MediaTypes.URL_ENCODED)||(null===(n=t.securityOAuth2ExtraCalls)||void 0===n?void 0:n.length))&&u.push("using System.Collections.Generic;"),(h(MediaTypes.JSON)||(null===(i=t.securityOAuth2ExtraCalls)||void 0===i?void 0:i.length))&&u.push("using System.Text.Json;"),m()&&u.push("using System.IO;"),(m()||t.basicAuth)&&u.push("using System.Net.Http.Headers;"),u.blank(),u.push("public class Program"),u.push("{"),u.push(1,"public static async Task Main()"),u.push(1,"{")),null===(r=t.securityOAuth2ExtraCalls)||void 0===r?void 0:r.length){const e=new HTTPSnippet(null===(o=t.securityOAuth2ExtraCalls)||void 0===o?void 0:o[0]).convert(s,a,Object.assign(Object.assign({},p),{withImports:!1,withWrapper:!1,withComments:!1,variablesPrefix:"oauth2"}));u.push(e),u.push(2,"var oauth2Response = await oauth2Request.Content.ReadAsStringAsync();"),u.push(2,"JObject inputJObject = JObject.Parse(oauth2Response);"),u.push(2,'var accessToken = inputJObject["access_token"].ToString();'),u.blank()}const c=Object.keys(t.allHeaders).filter((t=>{switch(t.toLowerCase()){case"content-type":case"content-length":case"accept-encoding":return!1;default:return!0}}));if(c.length?(u.push(2,"System.Net.Http.HttpClient client = new()"),u.push(2,"{"),u.push(3,"DefaultRequestHeaders ="),u.push(3,"{"),c.forEach((e=>{var s;u.push(4,'{"%s", %s},',e,(null===(s=t.securityOAuth2ExtraCalls)||void 0===s?void 0:s.length)?'"Bearer " + accessToken':`"${t.allHeaders[e]}"`)})),u.push(3,"}"),u.push(2,"};")):u.push(2,"System.Net.Http.HttpClient client = new();"),u.blank(),t.basicAuth){const{username:e,password:s}=t.basicAuth;u.push(2,`string base64String = Convert.ToBase64String(Encoding.ASCII.GetBytes("${e}:${s}"));`),u.push(2,'client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(@"Basic", base64String);'),u.blank()}if(t.postData)switch(normalizeMimeType(t.postData.mimeType)){case MediaTypes.URL_ENCODED:t.postData.params&&(u.blank(),u.push(2,"List<KeyValuePair<string, string>> postData = new List<KeyValuePair<string, string>>();"),t.postData.params.forEach((t=>{u.push(2,'postData.Add(new KeyValuePair<string, string>("%s", "%s"));',t.name,t.value)})),u.blank());break;case MediaTypes.MULTIPART:t.postData.params&&(u.blank(),u.push(2,"MultipartFormDataContent postData = new MultipartFormDataContent();"),t.postData.params.forEach((t=>{u.push(2,'postData.Add(new StringContent("%s"), "%s");',t.value,t.name)})));break;case MediaTypes.JSON:t.postData.jsonObj&&(u.push(2,"string json = JsonSerializer.Serialize(new"),u.push(2,"{"),y(t.postData.jsonObj,3),u.push(2,"});"),u.blank(),u.push(2,'using StringContent postData = new(json, Encoding.UTF8, "%s");',t.postData.mimeType));break;case MediaTypes.XML:t.postData.text&&(t.postData.text.trim().split("\n").forEach(((t,e)=>{const s=(0===e?'string xml = @"':"")+t.replace(/"/g,'""');u.push(0===e?2:3,s)})),u.push(2,'";'),u.push(2,'using StringContent postData = new StringContent(xml, Encoding.UTF8, "%s");',t.postData.mimeType))}else m()&&(u.push(2,"var ms = new MemoryStream();"),u.push(2,"var postData = new StreamContent(ms);"),u.push(2,'postData.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");'));return printUrlVariablesDeclarations(t,u,3),u.push(2,"using HttpResponseMessage %s = await client.%sAsync(%s%s);",u.var("request"),l,buildUrlExpression(t,u),p.withImports?isDataMethod(t.method)?normalizeMimeType(t.postData&&t.postData.mimeType)===MediaTypes.URL_ENCODED?", new FormUrlEncodedContent(postData)":"delete"===t.method?"":t.postData&&t.postData.params||m()?", postData":", null":"":", new FormUrlEncodedContent(postData)"),p.withWrapper&&(u.push(2,"string response = await request.Content.ReadAsStringAsync();"),u.blank(),u.push(2,"Console.WriteLine(response);"),u.push(1,"}"),u.push("}")),u.join();function h(e){return t.postData&&normalizeMimeType(t.postData.mimeType)===e}function m(){return t.headersObj&&t.headersObj["Content-Type"]===MediaTypes.OCTET_STREAM}function d(t,e){t.forEach(((s,a)=>{const n=!isLastInArray(t,a);Array.isArray(s)?d(s,e+1):checkIfIsObject(s)?(u.push(e+1,"new {"),y(s,e+2),u.push(e+1,"}%s",n?",":"")):u.push(e+1,'"%s"%s',s,n?",":"")})),u.push(e,"},")}function y(t,e){for(const[s,a]of Object.entries(t)){const n=!isLastProperty(t,s);if(Array.isArray(a))u.push(e,"%s = new[] {",s),d(a,e);else if(checkIfIsObject(a)){const t=isEmptyObject(a);u.push(e,"%s = new %s",s,t?"{},":"{"),t||(y(a,e+1),u.push(e,"}%s",n?",":""))}else u.push(e,'%s = "%s"%s',s,a,n?",":"")}}};export const info={key:"httpclient",title:"HttpClient",link:"https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient",description:".NET Standard HTTP Client"};export default handler;function addComments(t){t.push("// Requires >= .NET 5"),t.blank()}function formatHttpMethod(t){return capitalizeFirst(t.toLowerCase())}function isDataMethod(t){return t&&["POST","PUT","DELETE","PATCH"].includes(t.toUpperCase())}
|
|
2
2
|
//# sourceMappingURL=httpclient.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { LanguageHandler } from '../..';
|
|
2
|
+
import type { CSharpNewtonsoftCodeSampleConfig } from '../../../types';
|
|
3
|
+
declare const handler: LanguageHandler<CSharpNewtonsoftCodeSampleConfig['options']>;
|
|
4
|
+
export declare const info: {
|
|
5
|
+
key: string;
|
|
6
|
+
title: string;
|
|
7
|
+
link: string;
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
export default handler;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import stringifyObject from"stringify-object";import{CodeBuilder}from"../../helpers/code-builder";import{HTTPSnippet}from"../..";import{addIndentation,buildUrlExpression,printUrlVariablesDeclarations}from"../../helpers/code-helpers";import{normalizeMimeType}from"../../../../utils";import{capitalizeFirst}from"../../../generator";import{Lang}from"../../helpers/constants";import{MediaTypes}from"../../../../../constants";const handler=function(t,e,{target:s,client:a}){var n,i,r,o;const p=Object.assign({indent:" ",withWrapper:!0},e),u=new CodeBuilder({indentation:p.indent,variablesPrefix:p.variablesPrefix,capitalize:!0,lang:Lang.CSHARPNEWTONSOFT}),l=formatHttpMethod(t.method);if(p.withComments&&addComments(u),p.withWrapper&&(u.push("using System;"),u.push("using System.Net.Http;"),u.push("using System.Threading.Tasks;"),(h(MediaTypes.JSON)||h(MediaTypes.XML)||t.basicAuth)&&u.push("using System.Text;"),(h(MediaTypes.URL_ENCODED)||(null===(n=t.securityOAuth2ExtraCalls)||void 0===n?void 0:n.length))&&u.push("using System.Collections.Generic;"),(h(MediaTypes.JSON)||(null===(i=t.securityOAuth2ExtraCalls)||void 0===i?void 0:i.length))&&u.push("using Newtonsoft.Json.Linq;"),d()&&u.push("using System.IO;"),(d()||t.basicAuth)&&u.push("using System.Net.Http.Headers;"),u.blank(),u.push("public class Program"),u.push("{"),u.push(1,"private readonly IHttpClientFactory _httpClientFactory;"),u.push(1,"public static async Task Main(string[] args)"),u.push(1,"{"),u.push(2,"var client = _httpClientFactory.CreateClient();")),null===(r=t.securityOAuth2ExtraCalls)||void 0===r?void 0:r.length){const e=new HTTPSnippet(null===(o=t.securityOAuth2ExtraCalls)||void 0===o?void 0:o[0]).convert(s,a,Object.assign(Object.assign({},p),{withImports:!1,withWrapper:!1,withComments:!1,variablesPrefix:"oauth2"}));u.push(e),u.push(2,"var oauth2Response = await oauth2Request.Content.ReadAsStringAsync();"),u.push(2,"JObject inputJObject = JObject.Parse(oauth2Response);"),u.push(2,'var accessToken = inputJObject["access_token"].ToString();'),u.blank()}const c=Object.keys(t.allHeaders).filter((t=>{switch(t.toLowerCase()){case"content-type":case"content-length":case"accept-encoding":return!1;default:return!0}}));if(c.length&&c.forEach((e=>{var s;u.push(2,'client.DefaultRequestHeaders.Add("%s", %s);',e,(null===(s=t.securityOAuth2ExtraCalls)||void 0===s?void 0:s.length)?'"Bearer " + accessToken':`"${t.allHeaders[e]}"`)})),t.basicAuth){const{username:e,password:s}=t.basicAuth;u.push(2,`var base64String = Convert.ToBase64String(Encoding.ASCII.GetBytes("${e}:${s}"));`),u.push(2,'client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(@"Basic", base64String);')}if(t.postData)switch(normalizeMimeType(t.postData.mimeType)){case MediaTypes.URL_ENCODED:t.postData.params&&(u.blank(),u.push(2,"List<KeyValuePair<string, string>> postData = new List<KeyValuePair<string, string>>();"),t.postData.params.forEach((t=>{u.push(2,'postData.Add(new KeyValuePair<string, string>("%s", "%s"));',t.name,t.value)})),u.blank());break;case MediaTypes.MULTIPART:t.postData.params&&(u.blank(),u.push(2,"MultipartFormDataContent postData = new MultipartFormDataContent();"),t.postData.params.forEach((t=>{u.push(2,'postData.Add(new StringContent("%s"), "%s");',t.value,t.name)})));break;case MediaTypes.JSON:t.postData.jsonObj&&(u.push(2,`JObject json = JObject.Parse(@"${addIndentation(stringifyObject(t.postData.jsonObj,{indent:p.indent,inlineCharacterLimit:25}).replace(/"/g,'""'),{level:3,firstLine:!1})}");`),u.push(2,'var postData = new StringContent(json.ToString(), Encoding.UTF8, "%s");',t.postData.mimeType));break;case MediaTypes.XML:t.postData.text&&(t.postData.text.trim().split("\n").forEach(((t,e)=>{const s=(0===e?'string xml = @"':"")+t.replace(/"/g,'""');u.push(0===e?3:4,s)})),u.push(2,'";'),u.push(2,'var postData = new StringContent(xml, Encoding.UTF8, "%s");',t.postData.mimeType))}else d()&&(u.push(2,"var ms = new MemoryStream();"),u.push(2,"var postData = new StreamContent(ms);"),u.push(2,'postData.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");'));return printUrlVariablesDeclarations(t,u,3),u.push(2,"var %s = await client.%sAsync(%s%s);",u.var("request"),l,buildUrlExpression(t,u),p.withImports?isDataMethod(t.method)?normalizeMimeType(t.postData&&t.postData.mimeType)===MediaTypes.URL_ENCODED?", new FormUrlEncodedContent(postData)":"delete"===t.method?"":t.postData&&t.postData.params||d()?", postData":", null":"":", new FormUrlEncodedContent(postData)"),p.withWrapper&&(u.push(2,"var response = await request.Content.ReadAsStringAsync();"),u.blank(),u.push(2,"Console.WriteLine(response);"),u.push(1,"}"),u.push("}")),u.join();function h(e){return t.postData&&normalizeMimeType(t.postData.mimeType)===e}function d(){return t.headersObj&&t.headersObj["Content-Type"]===MediaTypes.OCTET_STREAM}};export const info={key:"httpclient",title:"HttpClient",link:"https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient",description:".NET Standard HTTP Client"};export default handler;function addComments(t){t.push("/*"),t.push(" * Requires >= .NET 5"),t.push(" *"),t.push(' * Requires package "Newtonsoft.Json" >= 9.01'),t.push(" * See here for installation details:"),t.push(" * https://www.newtonsoft.com/json"),t.push(" */"),t.blank()}function formatHttpMethod(t){return capitalizeFirst(t.toLowerCase())}function isDataMethod(t){return t&&["POST","PUT","DELETE","PATCH"].includes(t.toUpperCase())}
|
|
2
|
+
//# sourceMappingURL=httpclient.js.map
|
|
@@ -66,6 +66,15 @@ declare const targets: {
|
|
|
66
66
|
};
|
|
67
67
|
httpclient: import("..").LanguageHandler<import("../..").BasicLanguageOptions | undefined>;
|
|
68
68
|
};
|
|
69
|
+
csharpNewtonsoft: {
|
|
70
|
+
info: {
|
|
71
|
+
key: string;
|
|
72
|
+
title: string;
|
|
73
|
+
extname: string;
|
|
74
|
+
default: string;
|
|
75
|
+
};
|
|
76
|
+
httpclient: import("..").LanguageHandler<import("../..").BasicLanguageOptions | undefined>;
|
|
77
|
+
};
|
|
69
78
|
go: {
|
|
70
79
|
info: {
|
|
71
80
|
key: string;
|