@redocly/openapi-docs 3.0.0-alpha.31 → 3.0.0-alpha.33
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 +2 -2
- package/dist/oauth2-redirect.js +1 -1
- package/dist/redocly-openapi-docs.min.js +664 -659
- package/lib/components/RedoclyOpenAPIDocs/index.d.ts +3 -3
- package/lib/components/RedoclyOpenAPIDocs/index.js +1 -1
- package/lib/components/RedoclyOpenAPIDocs/utils.js +1 -1
- package/lib/components/rightPanel/Console/shallowCopyForTryIt.js +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +1 -1
- package/lib/utils/createParsedDocument.d.ts +2 -0
- package/lib/utils/createParsedDocument.js +2 -0
- package/lib/utils/helpers.d.ts +0 -6
- package/lib/utils/helpers.js +1 -1
- package/lib/utils/loadAndBundleSpec.js +1 -1
- package/lib/utils/openapi.d.ts +0 -2
- package/lib/utils/openapi.js +1 -1
- package/lib/utils/string.d.ts +6 -0
- package/lib/utils/string.js +1 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/index.d.ts +3 -3
- package/lib-esm/components/RedoclyOpenAPIDocs/index.js +1 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/utils.js +1 -1
- package/lib-esm/components/rightPanel/Console/shallowCopyForTryIt.js +1 -1
- package/lib-esm/index.d.ts +2 -2
- package/lib-esm/index.js +1 -1
- package/lib-esm/utils/createParsedDocument.d.ts +2 -0
- package/lib-esm/utils/createParsedDocument.js +2 -0
- package/lib-esm/utils/helpers.d.ts +0 -6
- package/lib-esm/utils/helpers.js +1 -1
- package/lib-esm/utils/loadAndBundleSpec.js +1 -1
- package/lib-esm/utils/openapi.d.ts +0 -2
- package/lib-esm/utils/openapi.js +1 -1
- package/lib-esm/utils/string.d.ts +6 -0
- package/lib-esm/utils/string.js +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export { RedoclyOpenAPIDocs, RedoclyOpenAPIDocsStandalone } from './RedoclyOpenAPIDocs';
|
|
2
|
+
export { ThemeProviders, AppProvider, StoreProvider } from './Providers';
|
|
3
3
|
export * from './types';
|
|
4
|
-
export
|
|
4
|
+
export { fixSpec, loadMany, loadSingle, loadAndBundleSpecOrMd, loadSpecs, useDeepCompareMemoize, getMarkdownHeaderId, } from './utils';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var n=Object.getOwnPropertyDescriptor(r,t);n&&!("get"in n?!r.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,n)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMarkdownHeaderId=exports.useDeepCompareMemoize=exports.loadSpecs=exports.loadAndBundleSpecOrMd=exports.loadSingle=exports.loadMany=exports.fixSpec=exports.StoreProvider=exports.AppProvider=exports.ThemeProviders=exports.RedoclyOpenAPIDocsStandalone=exports.RedoclyOpenAPIDocs=void 0;var RedoclyOpenAPIDocs_1=require("./RedoclyOpenAPIDocs");Object.defineProperty(exports,"RedoclyOpenAPIDocs",{enumerable:!0,get:function(){return RedoclyOpenAPIDocs_1.RedoclyOpenAPIDocs}}),Object.defineProperty(exports,"RedoclyOpenAPIDocsStandalone",{enumerable:!0,get:function(){return RedoclyOpenAPIDocs_1.RedoclyOpenAPIDocsStandalone}});var Providers_1=require("./Providers");Object.defineProperty(exports,"ThemeProviders",{enumerable:!0,get:function(){return Providers_1.ThemeProviders}}),Object.defineProperty(exports,"AppProvider",{enumerable:!0,get:function(){return Providers_1.AppProvider}}),Object.defineProperty(exports,"StoreProvider",{enumerable:!0,get:function(){return Providers_1.StoreProvider}}),__exportStar(require("./types"),exports);var utils_1=require("./utils");Object.defineProperty(exports,"fixSpec",{enumerable:!0,get:function(){return utils_1.fixSpec}}),Object.defineProperty(exports,"loadMany",{enumerable:!0,get:function(){return utils_1.loadMany}}),Object.defineProperty(exports,"loadSingle",{enumerable:!0,get:function(){return utils_1.loadSingle}}),Object.defineProperty(exports,"loadAndBundleSpecOrMd",{enumerable:!0,get:function(){return utils_1.loadAndBundleSpecOrMd}}),Object.defineProperty(exports,"loadSpecs",{enumerable:!0,get:function(){return utils_1.loadSpecs}}),Object.defineProperty(exports,"useDeepCompareMemoize",{enumerable:!0,get:function(){return utils_1.useDeepCompareMemoize}}),Object.defineProperty(exports,"getMarkdownHeaderId",{enumerable:!0,get:function(){return utils_1.getMarkdownHeaderId}});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,t,o){return new(t||(t=Promise))((function(r,i){function d(e){try{s(o.next(e))}catch(e){i(e)}}function a(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(d,a)}s((o=o.apply(e,n||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMarkdownHeaderId=exports.useDeepCompareMemoize=exports.loadSpecs=exports.loadAndBundleSpecOrMd=exports.loadSingle=exports.loadMany=exports.fixSpec=void 0;const react_1=require("react"),fast_deep_equal_1=__importDefault(require("fast-deep-equal")),loadAndBundleSpec_1=require("../../utils/loadAndBundleSpec"),
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,t,o){return new(t||(t=Promise))((function(r,i){function d(e){try{s(o.next(e))}catch(e){i(e)}}function a(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(d,a)}s((o=o.apply(e,n||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMarkdownHeaderId=exports.useDeepCompareMemoize=exports.loadSpecs=exports.loadAndBundleSpecOrMd=exports.loadSingle=exports.loadMany=exports.fixSpec=void 0;const react_1=require("react"),fast_deep_equal_1=__importDefault(require("fast-deep-equal")),loadAndBundleSpec_1=require("../../utils/loadAndBundleSpec"),string_1=require("../../utils/string");function fixSpec(e){const n=e.components&&e.components.securitySchemes||{};for(const e of Object.keys(n)){const t=n[e];t["x-type"]&&(t.type=t["x-type"]),t["x-scheme"]&&(t.scheme=t["x-scheme"])}}function loadMany(e){return __awaiter(this,void 0,void 0,(function*(){return yield loadSpecs(e||{}),e}))}function loadSingle(e,n,t){return __awaiter(this,void 0,void 0,(function*(){let o;if(null==t?void 0:t.skipBundleAndConvert){if(!e)throw new Error('spec must be specified when using "skipBundleAndConvert"');o=e}else o=yield(0,loadAndBundleSpec_1.loadAndBundleDefinition)(e||n);const r=null==t?void 0:t.unstable_externalDescription;if(r)try{const e=yield fetch(r);o.info.description=yield e.text()}catch(e){console.warn(`Failed to load external description from ${r}: ${e.message}`)}try{fixSpec(o)}catch(e){}return o}))}function loadAndBundleSpecOrMd(e,n){return e.endsWith(".md")?(0,loadAndBundleSpec_1.loadAndBundleDefinition)({openapi:"3.0.0",info:{title:n||"",version:"1.0",description:{$ref:e}},paths:{}}):(0,loadAndBundleSpec_1.loadAndBundleDefinition)(e)}function loadSpecs({versions:e}){return __awaiter(this,void 0,void 0,(function*(){if(Array.isArray(e))for(const n of e)n.url&&(n.spec=yield loadAndBundleSpecOrMd(n.url))}))}function useDeepCompareMemoize(e){const n=(0,react_1.useRef)(),t=(0,react_1.useRef)(0);return(0,fast_deep_equal_1.default)(e,n.current)||(n.current=e,t.current+=1),[t.current]}function getMarkdownHeaderId(e){return"string"==typeof e[0]?`section/${(0,string_1.safeSlugify)(e[0])}`:e.children?getMarkdownHeaderId(e[0]):void 0}exports.fixSpec=fixSpec,exports.loadMany=loadMany,exports.loadSingle=loadSingle,exports.loadAndBundleSpecOrMd=loadAndBundleSpecOrMd,exports.loadSpecs=loadSpecs,exports.useDeepCompareMemoize=useDeepCompareMemoize,exports.getMarkdownHeaderId=getMarkdownHeaderId;
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,r,t){return new(r||(r=Promise))((function(i,o){function a(e){try{s(t.next(e))}catch(e){o(e)}}function c(e){try{s(t.throw(e))}catch(e){o(e)}}function s(e){var n;e.done?i(e.value):(n=e.value,n instanceof r?n:new r((function(e){e(n)}))).then(a,c)}s((t=t.apply(e,n||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.dereferenceDefinitionForTryIt=void 0;const bundle_1=require("@redocly/openapi-core/lib/bundle"),config_1=require("@redocly/openapi-core/lib/config/config"),createParsedDocument_1=require("../../../utils/createParsedDocument");function dereferenceDefinitionForTryIt(e,n){var r,t,i,o;return __awaiter(this,void 0,void 0,(function*(){const a=JSON.parse(JSON.stringify(n)),c=a.openapi?{openapi:a.openapi}:a.swagger?{swagger:a.swagger}:{},s=Object.assign(Object.assign({},c),{components:a.components,paths:{[e.path]:{[e.httpVerb]:null===(t=null===(r=a.paths)||void 0===r?void 0:r[e.path])||void 0===t?void 0:t[e.httpVerb],parameters:null===(o=null===(i=a.paths)||void 0===i?void 0:i[e.path])||void 0===o?void 0:o.parameters}}}),u={config:new config_1.Config({}),doc:(0,createParsedDocument_1.createParsedDocument)(s),dereference:!0};return yield(0,bundle_1.bundle)(u),a}))}exports.dereferenceDefinitionForTryIt=dereferenceDefinitionForTryIt;
|
|
2
2
|
//# sourceMappingURL=shallowCopyForTryIt.js.map
|
package/lib/index.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export type { SecurityDetails, OpenAPIDefinition, OpenAPIOperation, OpenAPIParam
|
|
|
7
7
|
export { getOperation } from './models/operation';
|
|
8
8
|
export { Console } from './components/rightPanel/Console';
|
|
9
9
|
export { RequestSamples } from './components/RequestSamples';
|
|
10
|
-
export
|
|
11
|
-
export
|
|
10
|
+
export { PullRight, RedocResponse, RedocSchema, RedocExample, RedocRequestBody, } from './components/pluggable';
|
|
11
|
+
export { RedoclyOpenAPIDocs, RedoclyOpenAPIDocsStandalone, ThemeProviders, AppProvider, StoreProvider, getMarkdownHeaderId, } from './components/RedoclyOpenAPIDocs';
|
|
12
12
|
export { JsonPointer } from './utils/JsonPointer';
|
|
13
13
|
export { isOperationName } from './utils/openapi';
|
|
14
14
|
export { OpenAPIParser } from './services';
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.normalizeOptions=exports.buildContentItems=exports.OpenAPIParser=exports.isOperationName=exports.JsonPointer=exports.getMarkdownHeaderId=exports.StoreProvider=exports.AppProvider=exports.ThemeProviders=exports.RedoclyOpenAPIDocsStandalone=exports.RedoclyOpenAPIDocs=exports.RedocRequestBody=exports.RedocExample=exports.RedocSchema=exports.RedocResponse=exports.PullRight=exports.RequestSamples=exports.Console=exports.getOperation=void 0;var operation_1=require("./models/operation");Object.defineProperty(exports,"getOperation",{enumerable:!0,get:function(){return operation_1.getOperation}});var Console_1=require("./components/rightPanel/Console");Object.defineProperty(exports,"Console",{enumerable:!0,get:function(){return Console_1.Console}});var RequestSamples_1=require("./components/RequestSamples");Object.defineProperty(exports,"RequestSamples",{enumerable:!0,get:function(){return RequestSamples_1.RequestSamples}});var pluggable_1=require("./components/pluggable");Object.defineProperty(exports,"PullRight",{enumerable:!0,get:function(){return pluggable_1.PullRight}}),Object.defineProperty(exports,"RedocResponse",{enumerable:!0,get:function(){return pluggable_1.RedocResponse}}),Object.defineProperty(exports,"RedocSchema",{enumerable:!0,get:function(){return pluggable_1.RedocSchema}}),Object.defineProperty(exports,"RedocExample",{enumerable:!0,get:function(){return pluggable_1.RedocExample}}),Object.defineProperty(exports,"RedocRequestBody",{enumerable:!0,get:function(){return pluggable_1.RedocRequestBody}});var RedoclyOpenAPIDocs_1=require("./components/RedoclyOpenAPIDocs");Object.defineProperty(exports,"RedoclyOpenAPIDocs",{enumerable:!0,get:function(){return RedoclyOpenAPIDocs_1.RedoclyOpenAPIDocs}}),Object.defineProperty(exports,"RedoclyOpenAPIDocsStandalone",{enumerable:!0,get:function(){return RedoclyOpenAPIDocs_1.RedoclyOpenAPIDocsStandalone}}),Object.defineProperty(exports,"ThemeProviders",{enumerable:!0,get:function(){return RedoclyOpenAPIDocs_1.ThemeProviders}}),Object.defineProperty(exports,"AppProvider",{enumerable:!0,get:function(){return RedoclyOpenAPIDocs_1.AppProvider}}),Object.defineProperty(exports,"StoreProvider",{enumerable:!0,get:function(){return RedoclyOpenAPIDocs_1.StoreProvider}}),Object.defineProperty(exports,"getMarkdownHeaderId",{enumerable:!0,get:function(){return RedoclyOpenAPIDocs_1.getMarkdownHeaderId}});var JsonPointer_1=require("./utils/JsonPointer");Object.defineProperty(exports,"JsonPointer",{enumerable:!0,get:function(){return JsonPointer_1.JsonPointer}});var openapi_1=require("./utils/openapi");Object.defineProperty(exports,"isOperationName",{enumerable:!0,get:function(){return openapi_1.isOperationName}});var services_1=require("./services");Object.defineProperty(exports,"OpenAPIParser",{enumerable:!0,get:function(){return services_1.OpenAPIParser}});var services_2=require("./services");Object.defineProperty(exports,"buildContentItems",{enumerable:!0,get:function(){return services_2.buildContentItems}}),Object.defineProperty(exports,"normalizeOptions",{enumerable:!0,get:function(){return services_2.normalizeOptions}});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";function createParsedDocument(e){return{source:{absoluteRef:""},parsed:e}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.createParsedDocument=void 0,exports.createParsedDocument=createParsedDocument;
|
|
2
|
+
//# sourceMappingURL=createParsedDocument.js.map
|
package/lib/utils/helpers.d.ts
CHANGED
|
@@ -25,12 +25,6 @@ export declare const isObject: (item: unknown) => item is "object";
|
|
|
25
25
|
export declare const isArrayOfObjects: (items: unknown) => items is [];
|
|
26
26
|
export declare const deleteEmptyArrayItem: (items: unknown[]) => unknown[];
|
|
27
27
|
export declare const isMergeableObject: (item: unknown) => boolean;
|
|
28
|
-
/**
|
|
29
|
-
* slugify() returns empty string when failed to slugify.
|
|
30
|
-
* so try to return minimum slugified-string with failed one which keeps original value
|
|
31
|
-
* the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286
|
|
32
|
-
*/
|
|
33
|
-
export declare function safeSlugify(value: string): string;
|
|
34
28
|
export declare function isAbsoluteUrl(url: string): boolean;
|
|
35
29
|
/**
|
|
36
30
|
* simple resolve URL which doesn't break on strings with url fragments
|
package/lib/utils/helpers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
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;
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,o,r){return new(o||(o=Promise))((function(t,i){function
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,o,r){return new(o||(o=Promise))((function(t,i){function c(e){try{d(r.next(e))}catch(e){i(e)}}function a(e){try{d(r.throw(e))}catch(e){i(e)}}function d(e){var n;e.done?t(e.value):(n=e.value,n instanceof o?n:new o((function(e){e(n)}))).then(c,a)}d((r=r.apply(e,n||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.convertSwagger2OpenAPI=exports.loadAndBundleDefinition=void 0;const bundle_1=require("@redocly/openapi-core/lib/bundle"),config_1=require("@redocly/openapi-core/lib/config/config"),swagger2openapi_1=require("swagger2openapi"),createParsedDocument_1=require("./createParsedDocument"),dom_1=require("./dom");function loadAndBundleDefinition(e){return __awaiter(this,void 0,void 0,(function*(){const n=new config_1.Config({}),o={config:n,base:dom_1.IS_BROWSER?window.location.href:process.cwd()};dom_1.IS_BROWSER&&(n.resolve.http.customFetch=global.fetch),"object"==typeof e&&null!==e?o.doc=(0,createParsedDocument_1.createParsedDocument)(e):o.ref=e;const{bundle:{parsed:r}}=yield(0,bundle_1.bundle)(o);return void 0!==r.swagger?convertSwagger2OpenAPI(r):r}))}function convertSwagger2OpenAPI(e){return e.paths||(e.paths={}),new Promise(((n,o)=>(0,swagger2openapi_1.convertObj)(e,{patch:!0,warnOnly:!0,text:"{}",anchors:!0},((e,r)=>{if(e)return o(e);n(null==r?void 0:r.openapi)}))))}exports.loadAndBundleDefinition=loadAndBundleDefinition,exports.convertSwagger2OpenAPI=convertSwagger2OpenAPI;
|
|
2
2
|
//# sourceMappingURL=loadAndBundleSpec.js.map
|
package/lib/utils/openapi.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Document } from '@redocly/openapi-core';
|
|
2
1
|
import type { OpenAPIEncoding, OpenAPIMediaType, OpenAPIParameterStyle, OpenAPIRequestBody, OpenAPIResponse, OpenAPISchema, OpenAPIServer, Referenced } from '../types';
|
|
3
2
|
import type { ExtendedOpenAPIOperation, OpenAPIParser } from '../services';
|
|
4
3
|
import type { FieldModel, GroupModel } from '../models';
|
|
@@ -43,4 +42,3 @@ export declare function pluralizeType(displayType: string): string;
|
|
|
43
42
|
export declare function getContentWithLegacyExamples(info: OpenAPIRequestBody | OpenAPIResponse): {
|
|
44
43
|
[mime: string]: OpenAPIMediaType;
|
|
45
44
|
} | undefined;
|
|
46
|
-
export declare function createParsedDocument(specUrlOrObject: GenericObject | string): Document;
|
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.createParsedDocument=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("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}function createParsedDocument(e){return{source:{absoluteRef:""},parsed:e}}exports.shortenHTTPVerb=shortenHTTPVerb,exports.isRedocExtension=isRedocExtension,exports.extractExtensions=extractExtensions,exports.pluralizeType=pluralizeType,exports.getContentWithLegacyExamples=getContentWithLegacyExamples,exports.createParsedDocument=createParsedDocument;
|
|
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("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;
|
|
2
2
|
//# sourceMappingURL=openapi.js.map
|
package/lib/utils/string.d.ts
CHANGED
|
@@ -2,3 +2,9 @@ export declare function strikethroughText(text: string): string;
|
|
|
2
2
|
export declare function escapeFormId(id: string): string;
|
|
3
3
|
export declare function unescapeFormId(id: string): string;
|
|
4
4
|
export declare function encodeBackSlashes(str: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* slugify() returns empty string when failed to slugify.
|
|
7
|
+
* so try to return minimum slugified-string with failed one which keeps original value
|
|
8
|
+
* the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286
|
|
9
|
+
*/
|
|
10
|
+
export declare function safeSlugify(value: string): string;
|
package/lib/utils/string.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function strikethroughText(e){return e.split("").map((e=>e+"̵")).join("")}function escapeFormId(e){return e.replace(/[.[\]]/g,(e=>({".":"%2e","[":"%5b","]":"%5d"}[e]||"")))}function unescapeFormId(e){return e.replace(/%2e|%5b|%5d/g,(e=>({"%2e":".","%5b":"[","%5d":"]"}[e]||"")))}function encodeBackSlashes(e){return e.replace(/\\/g,"%5C")}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.safeSlugify=exports.encodeBackSlashes=exports.unescapeFormId=exports.escapeFormId=exports.strikethroughText=void 0;const slugify_1=__importDefault(require("slugify"));function strikethroughText(e){return e.split("").map((e=>e+"̵")).join("")}function escapeFormId(e){return e.replace(/[.[\]]/g,(e=>({".":"%2e","[":"%5b","]":"%5d"}[e]||"")))}function unescapeFormId(e){return e.replace(/%2e|%5b|%5d/g,(e=>({"%2e":".","%5b":"[","%5d":"]"}[e]||"")))}function encodeBackSlashes(e){return e.replace(/\\/g,"%5C")}function safeSlugify(e){return(0,slugify_1.default)(e)||e.toString().toLowerCase().replace(/\s+/g,"-").replace(/&/g,"-and-").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}exports.strikethroughText=strikethroughText,exports.escapeFormId=escapeFormId,exports.unescapeFormId=unescapeFormId,exports.encodeBackSlashes=encodeBackSlashes,exports.safeSlugify=safeSlugify;
|
|
2
2
|
//# sourceMappingURL=string.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export { RedoclyOpenAPIDocs, RedoclyOpenAPIDocsStandalone } from './RedoclyOpenAPIDocs';
|
|
2
|
+
export { ThemeProviders, AppProvider, StoreProvider } from './Providers';
|
|
3
3
|
export * from './types';
|
|
4
|
-
export
|
|
4
|
+
export { fixSpec, loadMany, loadSingle, loadAndBundleSpecOrMd, loadSpecs, useDeepCompareMemoize, getMarkdownHeaderId, } from './utils';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{RedoclyOpenAPIDocs,RedoclyOpenAPIDocsStandalone}from"./RedoclyOpenAPIDocs";export{ThemeProviders,AppProvider,StoreProvider}from"./Providers";export*from"./types";export{fixSpec,loadMany,loadSingle,loadAndBundleSpecOrMd,loadSpecs,useDeepCompareMemoize,getMarkdownHeaderId}from"./utils";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,n,t,i){return new(t||(t=Promise))((function(o,r){function c(e){try{s(i.next(e))}catch(e){r(e)}}function d(e){try{s(i.throw(e))}catch(e){r(e)}}function s(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,d)}s((i=i.apply(e,n||[])).next())}))};import{useRef}from"react";import isDeepEqual from"fast-deep-equal";import{loadAndBundleDefinition}from"../../utils/loadAndBundleSpec";import{safeSlugify}from"../../utils/
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,n,t,i){return new(t||(t=Promise))((function(o,r){function c(e){try{s(i.next(e))}catch(e){r(e)}}function d(e){try{s(i.throw(e))}catch(e){r(e)}}function s(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,d)}s((i=i.apply(e,n||[])).next())}))};import{useRef}from"react";import isDeepEqual from"fast-deep-equal";import{loadAndBundleDefinition}from"../../utils/loadAndBundleSpec";import{safeSlugify}from"../../utils/string";export function fixSpec(e){const n=e.components&&e.components.securitySchemes||{};for(const e of Object.keys(n)){const t=n[e];t["x-type"]&&(t.type=t["x-type"]),t["x-scheme"]&&(t.scheme=t["x-scheme"])}}export function loadMany(e){return __awaiter(this,void 0,void 0,(function*(){return yield loadSpecs(e||{}),e}))}export function loadSingle(e,n,t){return __awaiter(this,void 0,void 0,(function*(){let i;if(null==t?void 0:t.skipBundleAndConvert){if(!e)throw new Error('spec must be specified when using "skipBundleAndConvert"');i=e}else i=yield loadAndBundleDefinition(e||n);const o=null==t?void 0:t.unstable_externalDescription;if(o)try{const e=yield fetch(o);i.info.description=yield e.text()}catch(e){console.warn(`Failed to load external description from ${o}: ${e.message}`)}try{fixSpec(i)}catch(e){}return i}))}export function loadAndBundleSpecOrMd(e,n){return e.endsWith(".md")?loadAndBundleDefinition({openapi:"3.0.0",info:{title:n||"",version:"1.0",description:{$ref:e}},paths:{}}):loadAndBundleDefinition(e)}export function loadSpecs({versions:e}){return __awaiter(this,void 0,void 0,(function*(){if(Array.isArray(e))for(const n of e)n.url&&(n.spec=yield loadAndBundleSpecOrMd(n.url))}))}export function useDeepCompareMemoize(e){const n=useRef(),t=useRef(0);return isDeepEqual(e,n.current)||(n.current=e,t.current+=1),[t.current]}export function getMarkdownHeaderId(e){return"string"==typeof e[0]?`section/${safeSlugify(e[0])}`:e.children?getMarkdownHeaderId(e[0]):void 0}
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,n,t,o){return new(t||(t=Promise))((function(i,r){function a(e){try{p(o.next(e))}catch(e){r(e)}}function c(e){try{p(o.throw(e))}catch(e){r(e)}}function p(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(a,c)}p((o=o.apply(e,n||[])).next())}))};import{bundle}from"@redocly/openapi-core/lib/bundle";import{Config}from"@redocly/openapi-core/lib/config/config";import{createParsedDocument}from"../../../utils/
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,n,t,o){return new(t||(t=Promise))((function(i,r){function a(e){try{p(o.next(e))}catch(e){r(e)}}function c(e){try{p(o.throw(e))}catch(e){r(e)}}function p(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(a,c)}p((o=o.apply(e,n||[])).next())}))};import{bundle}from"@redocly/openapi-core/lib/bundle";import{Config}from"@redocly/openapi-core/lib/config/config";import{createParsedDocument}from"../../../utils/createParsedDocument";export function dereferenceDefinitionForTryIt(e,n){var t,o,i,r;return __awaiter(this,void 0,void 0,(function*(){const a=JSON.parse(JSON.stringify(n)),c=a.openapi?{openapi:a.openapi}:a.swagger?{swagger:a.swagger}:{},p=Object.assign(Object.assign({},c),{components:a.components,paths:{[e.path]:{[e.httpVerb]:null===(o=null===(t=a.paths)||void 0===t?void 0:t[e.path])||void 0===o?void 0:o[e.httpVerb],parameters:null===(r=null===(i=a.paths)||void 0===i?void 0:i[e.path])||void 0===r?void 0:r.parameters}}}),s={config:new Config({}),doc:createParsedDocument(p),dereference:!0};return yield bundle(s),a}))}
|
|
2
2
|
//# sourceMappingURL=shallowCopyForTryIt.js.map
|
package/lib-esm/index.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export type { SecurityDetails, OpenAPIDefinition, OpenAPIOperation, OpenAPIParam
|
|
|
7
7
|
export { getOperation } from './models/operation';
|
|
8
8
|
export { Console } from './components/rightPanel/Console';
|
|
9
9
|
export { RequestSamples } from './components/RequestSamples';
|
|
10
|
-
export
|
|
11
|
-
export
|
|
10
|
+
export { PullRight, RedocResponse, RedocSchema, RedocExample, RedocRequestBody, } from './components/pluggable';
|
|
11
|
+
export { RedoclyOpenAPIDocs, RedoclyOpenAPIDocsStandalone, ThemeProviders, AppProvider, StoreProvider, getMarkdownHeaderId, } from './components/RedoclyOpenAPIDocs';
|
|
12
12
|
export { JsonPointer } from './utils/JsonPointer';
|
|
13
13
|
export { isOperationName } from './utils/openapi';
|
|
14
14
|
export { OpenAPIParser } from './services';
|
package/lib-esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{getOperation}from"./models/operation";export{Console}from"./components/rightPanel/Console";export{RequestSamples}from"./components/RequestSamples";export
|
|
1
|
+
export{getOperation}from"./models/operation";export{Console}from"./components/rightPanel/Console";export{RequestSamples}from"./components/RequestSamples";export{PullRight,RedocResponse,RedocSchema,RedocExample,RedocRequestBody}from"./components/pluggable";export{RedoclyOpenAPIDocs,RedoclyOpenAPIDocsStandalone,ThemeProviders,AppProvider,StoreProvider,getMarkdownHeaderId}from"./components/RedoclyOpenAPIDocs";export{JsonPointer}from"./utils/JsonPointer";export{isOperationName}from"./utils/openapi";export{OpenAPIParser}from"./services";export{buildContentItems,normalizeOptions}from"./services";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -25,12 +25,6 @@ export declare const isObject: (item: unknown) => item is "object";
|
|
|
25
25
|
export declare const isArrayOfObjects: (items: unknown) => items is [];
|
|
26
26
|
export declare const deleteEmptyArrayItem: (items: unknown[]) => unknown[];
|
|
27
27
|
export declare const isMergeableObject: (item: unknown) => boolean;
|
|
28
|
-
/**
|
|
29
|
-
* slugify() returns empty string when failed to slugify.
|
|
30
|
-
* so try to return minimum slugified-string with failed one which keeps original value
|
|
31
|
-
* the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286
|
|
32
|
-
*/
|
|
33
|
-
export declare function safeSlugify(value: string): string;
|
|
34
28
|
export declare function isAbsoluteUrl(url: string): boolean;
|
|
35
29
|
/**
|
|
36
30
|
* simple resolve URL which doesn't break on strings with url fragments
|
package/lib-esm/utils/helpers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{format,parse}from"url";import{ZERO_BREAKPOINT}from"./media-css";import{isNamedDefinition}from"./openapi";import{JsonPointer}from"./JsonPointer";import{IS_BROWSER}from"./dom";import{isString}from"./typeGuards";export function mapWithLast(e,t){const r=[];for(let n=0;n<e.length-1;n++)r.push(t(e[n],!1));return 0!==e.length&&r.push(t(e[e.length-1],!0)),r}export function mapValues(e,t){const r={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=t(e[n],n,e));return r}export function flattenByProp(e,t){const r=[],n=e=>{for(const o of e)r.push(o),o[t]&&n(o[t])};return n(e),r}export function stripTrailingSlash(e){return e.endsWith("/")?e.substring(0,e.length-1):e}export function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}export function appendToMdHeading(e,t,r){const n=new RegExp(`(^|\\n)#\\s?${t}\\s*\\n`,"i"),o=new RegExp(`((\\n|^)#\\s*${t}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(n.test(e))return e.replace(o,`$1\n\n${r}\n$4`);{const n=""===e||e.endsWith("\n\n")?"":e.endsWith("\n")?"\n":"\n\n";return`${e}${n}# ${t}\n\n${r}`}}export const mergeObjects=(e,...t)=>{if(!t.length)return e;const r=t.shift();return void 0===r?e:(isMergeableObject(e)&&isMergeableObject(r)&&Object.keys(r).forEach((t=>{isMergeableObject(r[t])?(e[t]||(e[t]={}),["string","number"].includes(typeof e[t])&&(r[t][ZERO_BREAKPOINT]||0===r[t][ZERO_BREAKPOINT]||console.warn(`Theme resolver: using default value of "${e[t]}" for "${t}". This is not recommended. Prefer adding default value by providing "${ZERO_BREAKPOINT}" property to ${JSON.stringify(r[t])}.`),e[t]={[ZERO_BREAKPOINT]:e[t]}),mergeObjects(e[t],r[t])):e[t]=r[t]})),mergeObjects(e,...t))};export const isObject=e=>null!==e&&"object"==typeof e;export const isArrayOfObjects=e=>Array.isArray(e)&&e.some((e=>isObject(e)));export const deleteEmptyArrayItem=e=>e.filter((e=>!!e));export const isMergeableObject=e=>isObject(e)&&!Array.isArray(e);export function isAbsoluteUrl(e){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(e)}export function resolveUrl(e,t){let r;if(t.startsWith("//")){const{protocol:n}=parse(e);r=`${n||"https:"}${t}`}else if(isAbsoluteUrl(t))r=t;else if(t.startsWith("/")){const n=parse(e);r=format(Object.assign(Object.assign({},n),{pathname:t}))}else r=stripTrailingSlash(e)+"/"+t;return stripTrailingSlash(r)}export function getBasePath(e){try{return parseURL(e).pathname}catch(t){return e}}export function titleize(e){return e.charAt(0).toUpperCase()+e.slice(1)}export 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)}export function escapeHTMLAttrChars(e){return e.replace(/["\\]/g,"\\$&")}export function unescapeHTMLChars(e){return e.replace(/&#(\d+);/g,((e,t)=>String.fromCharCode(parseInt(t,10)))).replace(/&/g,"&").replace(/"/g,'"')}export function sanitizeItemId(e){return e&&e.replace(/#/g,"_")}export function useSchemaTitle(e,t){return t||isNamedDefinition(e)&&JsonPointer.baseName(e)||""}export function get(e={},t,r){return"string"==typeof t&&(t=t.split(".")),t.reduce(((e,t)=>e&&e[t]?e[t]:r),e)}export function joinStringFactory(e){return(...t)=>t.filter(Boolean).join(e)}export const dottedString=joinStringFactory(".");export function getWindowReferenceOptions(e){var t;return IS_BROWSER?null===(t=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===t?void 0:t[e]:null}export function getJsUrl(){var e;if(!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""}}export const normalizeText=e=>isString(e)?e:null==e?void 0:e.raw;export const getValueFromMdParsedExtension=(e,t)=>{const r=e[`x-parsed-md-${t}`]||e[t];if("x-enumDescriptions"!==t)return r;let n={};for(const e in r)e.startsWith("x-parsed-md")||(n[e]=r[`x-parsed-md-${e}`]||r[e]);return Object.keys(n).length?n:r};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,n,o,t){return new(o||(o=Promise))((function(r,i){function c(e){try{
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,n,o,t){return new(o||(o=Promise))((function(r,i){function c(e){try{u(t.next(e))}catch(e){i(e)}}function a(e){try{u(t.throw(e))}catch(e){i(e)}}function u(e){var n;e.done?r(e.value):(n=e.value,n instanceof o?n:new o((function(e){e(n)}))).then(c,a)}u((t=t.apply(e,n||[])).next())}))};import{bundle}from"@redocly/openapi-core/lib/bundle";import{Config}from"@redocly/openapi-core/lib/config/config";import{convertObj}from"swagger2openapi";import{createParsedDocument}from"./createParsedDocument";import{IS_BROWSER}from"./dom";export function loadAndBundleDefinition(e){return __awaiter(this,void 0,void 0,(function*(){const n=new Config({}),o={config:n,base:IS_BROWSER?window.location.href:process.cwd()};IS_BROWSER&&(n.resolve.http.customFetch=global.fetch),"object"==typeof e&&null!==e?o.doc=createParsedDocument(e):o.ref=e;const{bundle:{parsed:t}}=yield bundle(o);return void 0!==t.swagger?convertSwagger2OpenAPI(t):t}))}export function convertSwagger2OpenAPI(e){return e.paths||(e.paths={}),new Promise(((n,o)=>convertObj(e,{patch:!0,warnOnly:!0,text:"{}",anchors:!0},((e,t)=>{if(e)return o(e);n(null==t?void 0:t.openapi)}))))}
|
|
2
2
|
//# sourceMappingURL=loadAndBundleSpec.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Document } from '@redocly/openapi-core';
|
|
2
1
|
import type { OpenAPIEncoding, OpenAPIMediaType, OpenAPIParameterStyle, OpenAPIRequestBody, OpenAPIResponse, OpenAPISchema, OpenAPIServer, Referenced } from '../types';
|
|
3
2
|
import type { ExtendedOpenAPIOperation, OpenAPIParser } from '../services';
|
|
4
3
|
import type { FieldModel, GroupModel } from '../models';
|
|
@@ -43,4 +42,3 @@ export declare function pluralizeType(displayType: string): string;
|
|
|
43
42
|
export declare function getContentWithLegacyExamples(info: OpenAPIRequestBody | OpenAPIResponse): {
|
|
44
43
|
[mime: string]: OpenAPIMediaType;
|
|
45
44
|
} | undefined;
|
|
46
|
-
export declare function createParsedDocument(specUrlOrObject: GenericObject | string): Document;
|
package/lib-esm/utils/openapi.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{dirname}from"path";import UrlTemplate from"url-template";import{IS_BROWSER}from"./dom";import{deleteEmptyArrayItem,isArrayOfObjects,isNumeric,removeQueryStringAndHash,resolveUrl,sanitizeItemId,normalizeText,getValueFromMdParsedExtension}from"./helpers";import{DEFAULT_TAG_SLUG,MediaTypes}from"../constants";import{JsonPointer}from"./JsonPointer";import{joinWithSeparator,Pagination}from"../services";function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}export function isStatusCode(e){return"default"===e||isNumeric(e)||isWildcardStatusCode(e)}export 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}const operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};export function isOperationName(e){return e in operationNames}export function getOperationName(e){const{operationId:r,pathName:t}=e,i=normalizeText(getValueFromMdParsedExtension(e,"description"));return normalizeText(getValueFromMdParsedExtension(e,"summary"))||r||i&&i.substring(0,50)||t||"<no summary>"}export function getOperationId(e,r,t){var i;return r===Pagination.None&&(null==t?void 0:t.id)?joinWithSeparator(t.id,sanitizeItemId(e.operationId?e.operationId:pointerToId(e.pointer))):(null===(i=e.tags)||void 0===i?void 0:i.length)?sanitizeItemId(e.operationId?e.operationId:pointerToId(e.pointer)):sanitizeItemId(e.operationId?joinWithSeparator(DEFAULT_TAG_SLUG,e.operationId):pointerToId(e.pointer))}function pointerToId(e){return(null==e?void 0:e.startsWith("/"))?e.slice(1,e.length):e}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"};export 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"}export 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)}export function isJsonLike(e){return-1!==e.search(/json/i)}export function isFormUrlEncoded(e){return e===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 UrlTemplate.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=UrlTemplate.parse(`{${i}${t}}`);return decodeURIComponent(n.expand({[i]:r}))}export 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 UrlTemplate.parse(`{${o}${a}${n}}`).expand({[a]:i}).replace(/__redoc_param_name__/g,e)}export 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 isArrayOfObjects(i)&&(i=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),"")}export function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn(`Parameter serialization as ${r} is not supported`),"")}export 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),""}}export function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}const DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;export function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}export 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}export 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}export 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("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}export 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]}export function sortByField(e,r){return[...e].sort(((e,t)=>e[r].localeCompare(t[r])))}export 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.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.join(n,["parameters",String(r)])})))]}export 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}export function expandDefaultServerVariables(e,r={}){return e.replace(/(?:{)([\w-.]+)(?:})/g,((e,t)=>r[t]&&r[t].default||e))}export function normalizeServers(e,r){const t=void 0===e?removeQueryStringAndHash((()=>{if(!IS_BROWSER)return"";const e=window.location.href;return e.endsWith(".html")?dirname(e):e})()):dirname(e);return 0===r.length&&(r=[{url:"/"}]),r.map((e=>{return Object.assign(Object.assign({},e),{url:(r=e.url,resolveUrl(t,r)),description:e.description||""});var r}))}export const shortenHTTPVerb=e=>({delete:"del",options:"opts"}[e]||e);export 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-")}export 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)),{})}export function pluralizeType(e){return e.split(" or ").map((e=>e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2"))).join(" or ")}export 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}export function createParsedDocument(e){return{source:{absoluteRef:""},parsed:e}}
|
|
1
|
+
import{dirname}from"path";import UrlTemplate from"url-template";import{IS_BROWSER}from"./dom";import{deleteEmptyArrayItem,isArrayOfObjects,isNumeric,removeQueryStringAndHash,resolveUrl,sanitizeItemId,normalizeText,getValueFromMdParsedExtension}from"./helpers";import{DEFAULT_TAG_SLUG,MediaTypes}from"../constants";import{JsonPointer}from"./JsonPointer";import{joinWithSeparator,Pagination}from"../services";function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}export function isStatusCode(e){return"default"===e||isNumeric(e)||isWildcardStatusCode(e)}export 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}const operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};export function isOperationName(e){return e in operationNames}export function getOperationName(e){const{operationId:r,pathName:t}=e,i=normalizeText(getValueFromMdParsedExtension(e,"description"));return normalizeText(getValueFromMdParsedExtension(e,"summary"))||r||i&&i.substring(0,50)||t||"<no summary>"}export function getOperationId(e,r,t){var i;return r===Pagination.None&&(null==t?void 0:t.id)?joinWithSeparator(t.id,sanitizeItemId(e.operationId?e.operationId:pointerToId(e.pointer))):(null===(i=e.tags)||void 0===i?void 0:i.length)?sanitizeItemId(e.operationId?e.operationId:pointerToId(e.pointer)):sanitizeItemId(e.operationId?joinWithSeparator(DEFAULT_TAG_SLUG,e.operationId):pointerToId(e.pointer))}function pointerToId(e){return(null==e?void 0:e.startsWith("/"))?e.slice(1,e.length):e}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"};export 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"}export 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)}export function isJsonLike(e){return-1!==e.search(/json/i)}export function isFormUrlEncoded(e){return e===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 UrlTemplate.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=UrlTemplate.parse(`{${i}${t}}`);return decodeURIComponent(n.expand({[i]:r}))}export 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 UrlTemplate.parse(`{${o}${a}${n}}`).expand({[a]:i}).replace(/__redoc_param_name__/g,e)}export 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 isArrayOfObjects(i)&&(i=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),"")}export function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn(`Parameter serialization as ${r} is not supported`),"")}export 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),""}}export function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}const DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;export function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}export 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}export 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}export 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("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}export 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]}export function sortByField(e,r){return[...e].sort(((e,t)=>e[r].localeCompare(t[r])))}export 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.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.join(n,["parameters",String(r)])})))]}export 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}export function expandDefaultServerVariables(e,r={}){return e.replace(/(?:{)([\w-.]+)(?:})/g,((e,t)=>r[t]&&r[t].default||e))}export function normalizeServers(e,r){const t=void 0===e?removeQueryStringAndHash((()=>{if(!IS_BROWSER)return"";const e=window.location.href;return e.endsWith(".html")?dirname(e):e})()):dirname(e);return 0===r.length&&(r=[{url:"/"}]),r.map((e=>{return Object.assign(Object.assign({},e),{url:(r=e.url,resolveUrl(t,r)),description:e.description||""});var r}))}export const shortenHTTPVerb=e=>({delete:"del",options:"opts"}[e]||e);export 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-")}export 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)),{})}export function pluralizeType(e){return e.split(" or ").map((e=>e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2"))).join(" or ")}export 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}
|
|
2
2
|
//# sourceMappingURL=openapi.js.map
|
|
@@ -2,3 +2,9 @@ export declare function strikethroughText(text: string): string;
|
|
|
2
2
|
export declare function escapeFormId(id: string): string;
|
|
3
3
|
export declare function unescapeFormId(id: string): string;
|
|
4
4
|
export declare function encodeBackSlashes(str: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* slugify() returns empty string when failed to slugify.
|
|
7
|
+
* so try to return minimum slugified-string with failed one which keeps original value
|
|
8
|
+
* the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286
|
|
9
|
+
*/
|
|
10
|
+
export declare function safeSlugify(value: string): string;
|
package/lib-esm/utils/string.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function strikethroughText(e){return e.split("").map((e=>e+"̵")).join("")}export function escapeFormId(e){return e.replace(/[.[\]]/g,(e=>({".":"%2e","[":"%5b","]":"%5d"}[e]||"")))}export function unescapeFormId(e){return e.replace(/%2e|%5b|%5d/g,(e=>({"%2e":".","%5b":"[","%5d":"]"}[e]||"")))}export function encodeBackSlashes(e){return e.replace(/\\/g,"%5C")}
|
|
1
|
+
import slugify from"slugify";export function strikethroughText(e){return e.split("").map((e=>e+"̵")).join("")}export function escapeFormId(e){return e.replace(/[.[\]]/g,(e=>({".":"%2e","[":"%5b","]":"%5d"}[e]||"")))}export function unescapeFormId(e){return e.replace(/%2e|%5b|%5d/g,(e=>({"%2e":".","%5b":"[","%5d":"]"}[e]||"")))}export function encodeBackSlashes(e){return e.replace(/\\/g,"%5C")}export function safeSlugify(e){return slugify(e)||e.toString().toLowerCase().replace(/\s+/g,"-").replace(/&/g,"-and-").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}
|
|
2
2
|
//# sourceMappingURL=string.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/openapi-docs",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.33",
|
|
4
4
|
"description": "Redocly OpenAPI Docs",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"styled-components": "^4.1.1 || ^5.1.1"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@markdoc/markdoc": "0.
|
|
25
|
+
"@markdoc/markdoc": "0.2.2",
|
|
26
26
|
"@redocly/openapi-core": "^1.0.0-beta.123",
|
|
27
27
|
"@redocly/vscode-json-languageservice": "3.4.9",
|
|
28
28
|
"@wojtekmaj/enzyme-adapter-react-17": "^0.6.2",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"webpack-dev-server": "^4.9.3",
|
|
120
120
|
"workerize-loader": "github:redocly/workerize-loader#webpack-5-dist",
|
|
121
121
|
"js-yaml": "4.1.0",
|
|
122
|
-
"@redocly/theme": "0.9.
|
|
122
|
+
"@redocly/theme": "0.9.15"
|
|
123
123
|
},
|
|
124
124
|
"nx": {
|
|
125
125
|
"namedInputs": {
|