@redocly/openapi-docs 3.5.6 → 3.5.8

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.
Files changed (36) hide show
  1. package/dist/redocly-openapi-docs.min.js +1626 -1410
  2. package/lib/components/Schema/ArraySchema.d.ts +0 -1
  3. package/lib/components/Schema/ArraySchema.js +1 -33
  4. package/lib/components/Schema/ObjectSchema.js +1 -1
  5. package/lib/components/Schema/Schema.js +1 -0
  6. package/lib/components/Schema/SubSchema.d.ts +1 -0
  7. package/lib/components/Schema/SubSchema.js +1 -1
  8. package/lib/components/Schema/types.d.ts +3 -0
  9. package/lib/components/ViewNested/ViewNested.d.ts +1 -0
  10. package/lib/components/ViewNested/ViewNested.js +6 -2
  11. package/lib/components/common/styled.d.ts +3 -0
  12. package/lib/components/common/styled.js +33 -1
  13. package/lib/services/OpenAPIParser.js +1 -1
  14. package/lib/services/code-samples/generator.js +1 -1
  15. package/lib/utils/index.d.ts +0 -1
  16. package/lib/utils/index.js +1 -1
  17. package/lib-esm/components/Schema/ArraySchema.d.ts +0 -1
  18. package/lib-esm/components/Schema/ArraySchema.js +1 -33
  19. package/lib-esm/components/Schema/ObjectSchema.js +1 -1
  20. package/lib-esm/components/Schema/Schema.js +1 -0
  21. package/lib-esm/components/Schema/SubSchema.d.ts +1 -0
  22. package/lib-esm/components/Schema/SubSchema.js +1 -1
  23. package/lib-esm/components/Schema/types.d.ts +3 -0
  24. package/lib-esm/components/ViewNested/ViewNested.d.ts +1 -0
  25. package/lib-esm/components/ViewNested/ViewNested.js +6 -2
  26. package/lib-esm/components/common/styled.d.ts +3 -0
  27. package/lib-esm/components/common/styled.js +32 -0
  28. package/lib-esm/services/OpenAPIParser.js +1 -1
  29. package/lib-esm/services/code-samples/generator.js +1 -1
  30. package/lib-esm/utils/index.d.ts +0 -1
  31. package/lib-esm/utils/index.js +1 -1
  32. package/package.json +11 -7
  33. package/lib/utils/highlight.d.ts +0 -31
  34. package/lib/utils/highlight.js +0 -2
  35. package/lib-esm/utils/highlight.d.ts +0 -31
  36. package/lib-esm/utils/highlight.js +0 -2
@@ -1,2 +1,2 @@
1
- import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{isObject}from"@redocly/theme";import{areArraysEqual,serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return areArraysEqual(a,t||[])}))}function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:s,generatedPayloadSamplesMaxDepth:i=8,pathParams:n={},properties:o={}},{environment:l,requestValues:u,activeSecuritySchemeIds:p}){var c,d,m;const h=l.server,y=e.servers.find((e=>e.url===h))||e.servers[0],f=getSelectedSecurityScheme(e.security,p),{securityHeaders:g,securityCookies:O,securityQueries:v,securityOAuth2ExtraCalls:S,basicAuth:T}=getSecurityData(f||(null===(c=e.security)||void 0===c?void 0:c[0]),r,l),C=(null===(d=null==e?void 0:e.requestBody)||void 0===d?void 0:d.content)&&getActiveMediaType(e.requestBody.content),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},E=u;let j=!1;const _=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=E.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(j=!0,e.value=C.name),e))).concat(g);!j&&(null==C?void 0:C.name)&&_.unshift({name:"Content-Type",value:null==C?void 0:C.name});const k=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a;for(const[r,s]of Object.entries(t))e.push({name:r,value:String((null===(a=E.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(O),A=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:isArrayOfObjects(null===(a=E.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=E.query)||void 0===r?void 0:r[i]))||String((null===(s=E.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(v),P=`${null==y?void 0:y.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,w=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=E.path)||void 0===a?void 0:a[s])||n[s]||getParameterValue(r,s),e}),{}),R=null===(m=null==C?void 0:C.examples)||void 0===m?void 0:m[t],D=(null==C?void 0:C.examples)||{},[q]=Object.values(D),M=null==C?void 0:C.name.toLowerCase(),H=(null==E?void 0:E.body)||(null==R?void 0:R.value)||(null==q?void 0:q.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,Object.assign(Object.assign({},b),{format:M===MediaTypes.XML?"xml":"json"}),s);let N="",x=[];switch(normalizeMimeType(M)){case MediaTypes.JSON:N=JSON.stringify(getDataRequest(H,o));break;case MediaTypes.XML:N=H;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:N=queryString.stringify(getDataRequest(H,o)),x=objectToHarParams(getDataRequest(H,o));break;default:N=String(H||"")}const U=N?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:N,params:x}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:P,httpVersion:"HTTP/1.1",cookies:k,headers:_,queryString:A,postData:U,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:S,basicAuth:T,pathParameters:w,serverVariables:l,allResponseCodes:z}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:s,options:i={},environment:n,translate:o}){try{const{skipOptionalParameters:l,withOAuth2Call:u,spec:p,generatedPayloadSamplesMaxDepth:c,store:d}=i,m=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:u,spec:p,generatedPayloadSamplesMaxDepth:c},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new HTTPSnippet(m);return langToSnippetConfig[e]?h.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),i)):o("openapi.unsupportedLanguage","Language is not supported.")}catch(e){return console.error(e),o("openapi.failedToGenerateCodeSample","Failed to generate code sample.")}}function getSecurityData(e,t,a){var r,s,i,n,o;const l={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const u of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(u.id,a);switch(u.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";u.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(u.flows.clientCredentials,u.scopes,e)):u.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(u.flows.password,u.scopes,e)),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=e.raw||"YOUR_API_KEY_HERE";"header"===u.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:u.name,value:t})),"cookie"===u.in&&l.securityCookies.push({name:u.name,value:t}),"query"===u.in&&l.securityQueries.push({name:u.name,value:t});break}case"http":if("basic"===u.scheme)l.basicAuth={username:e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${u.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(u.scheme||"bearer")} ${t}`})}}}return l}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}export function getDataRequest(e,t){if(e){if(isObject(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];for(const[r,s]of Object.entries(e)){const e=t?`${t}[${r}]`:r;"object"==typeof s&&null!==s?a.push(...objectToHarParams(s,e)):a.push({name:e,value:String(s)})}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
1
+ import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{isObject}from"@redocly/theme";import{areArraysEqual,serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return areArraysEqual(a,t||[])}))}function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:s,generatedPayloadSamplesMaxDepth:i=8,pathParams:n={},properties:o={}},{environment:l,requestValues:u,activeSecuritySchemeIds:p}){var c,d,m;const h=l.server,y=e.servers.find((e=>e.url===h))||e.servers[0],f=getSelectedSecurityScheme(e.security,p),{securityHeaders:g,securityCookies:O,securityQueries:v,securityOAuth2ExtraCalls:S,basicAuth:T}=getSecurityData(f||(null===(c=e.security)||void 0===c?void 0:c[0]),r,l),C=(null===(d=null==e?void 0:e.requestBody)||void 0===d?void 0:d.content)&&getActiveMediaType(e.requestBody.content),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},E=u;let A=!1;const j=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=E.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(A=!0,e.value=C.name),e))).concat(g);!A&&(null==C?void 0:C.name)&&j.unshift({name:"Content-Type",value:null==C?void 0:C.name});const _=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a;for(const[r,s]of Object.entries(t))e.push({name:r,value:String((null===(a=E.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(O),k=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:isArrayOfObjects(null===(a=E.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=E.query)||void 0===r?void 0:r[i]))||String((null===(s=E.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(v),P=`${null==y?void 0:y.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,w=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=E.path)||void 0===a?void 0:a[s])||n[s]||getParameterValue(r,s),e}),{}),R=null===(m=null==C?void 0:C.examples)||void 0===m?void 0:m[t],D=(null==C?void 0:C.examples)||{},[q]=Object.values(D),M=null==C?void 0:C.name.toLowerCase(),H=(null==E?void 0:E.body)||(null==R?void 0:R.value)||(null==q?void 0:q.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,Object.assign(Object.assign({},b),{format:M===MediaTypes.XML?"xml":"json"}),s);let N="",x=[];switch(normalizeMimeType(M)){case MediaTypes.JSON:N=JSON.stringify(getDataRequest(H,o));break;case MediaTypes.XML:N=H;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:N=queryString.stringify(getDataRequest(H,o)),x=objectToHarParams(getDataRequest(H,o));break;default:N=String(H||"")}const U=N?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:N,params:x}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:P,httpVersion:"HTTP/1.1",cookies:_,headers:j,queryString:k,postData:U,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:S,basicAuth:T,pathParameters:w,serverVariables:l,allResponseCodes:z}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:s,options:i={},environment:n,translate:o}){try{const{skipOptionalParameters:l,withOAuth2Call:u,spec:p,generatedPayloadSamplesMaxDepth:c,store:d}=i,m=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:u,spec:p,generatedPayloadSamplesMaxDepth:c},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new HTTPSnippet(m);return langToSnippetConfig[e]?h.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),i)):o("openapi.unsupportedLanguage","Language is not supported.")}catch(e){return console.error(e),o("openapi.failedToGenerateCodeSample","Failed to generate code sample.")}}function getSecurityData(e,t,a){var r,s,i,n,o;const l={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const u of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(u.id,a);switch(u.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";u.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(u.flows.clientCredentials,u.scopes,e)):u.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(u.flows.password,u.scopes,e)),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=e.raw||"YOUR_API_KEY_HERE";"header"===u.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:u.name,value:t})),"cookie"===u.in&&l.securityCookies.push({name:u.name,value:t}),"query"===u.in&&l.securityQueries.push({name:u.name,value:t});break}case"http":if("basic"===u.scheme)l.basicAuth={username:e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${u.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(u.scheme||"bearer")} ${t}`})}}}return l}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}export function getDataRequest(e,t){if(e){if(isObject(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];if(Array.isArray(e))return e.map((e=>({name:`${t}`,value:String(e)})));for(const[r,s]of Object.entries(e)){const e=t?`${t}[${r}]`:r;"object"==typeof s&&null!==s?a.push(...objectToHarParams(s,e)):a.push({name:e,value:String(s)})}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
2
2
  //# sourceMappingURL=generator.js.map
@@ -1,7 +1,6 @@
1
1
  export * from './JsonPointer';
2
2
  export * from './openapi';
3
3
  export * from './helpers';
4
- export * from './highlight';
5
4
  export * from './dom';
6
5
  export * from './debug';
7
6
  export * from './sort';
@@ -1,2 +1,2 @@
1
- export*from"./JsonPointer";export*from"./openapi";export*from"./helpers";export*from"./highlight";export*from"./dom";export*from"./debug";export*from"./sort";export*from"./argValuesHelpers";export*from"./theme-helpers";export*from"./debounce";export*from"./security-details";export*from"./session-storage";export*from"./local-storage";export*from"./parameters";export*from"./string";export*from"./test-utils";export*from"./compose";export*from"./saveTextBeforeHeading";export*from"./path";export*from"./queryString";export*from"./isMobile";export*from"./replaceVariables";export*from"./areArraysEqual";
1
+ export*from"./JsonPointer";export*from"./openapi";export*from"./helpers";export*from"./dom";export*from"./debug";export*from"./sort";export*from"./argValuesHelpers";export*from"./theme-helpers";export*from"./debounce";export*from"./security-details";export*from"./session-storage";export*from"./local-storage";export*from"./parameters";export*from"./string";export*from"./test-utils";export*from"./compose";export*from"./saveTextBeforeHeading";export*from"./path";export*from"./queryString";export*from"./isMobile";export*from"./replaceVariables";export*from"./areArraysEqual";
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.5.6",
3
+ "version": "3.5.8",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@markdoc/markdoc": "0.4.0",
27
- "@redocly/openapi-core": "1.25.15",
27
+ "@redocly/openapi-core": "1.26.0",
28
28
  "deepmerge": "^4.2.2",
29
29
  "dompurify": "2.5.4",
30
30
  "fast-deep-equal": "^3.1.3",
@@ -44,10 +44,11 @@
44
44
  "url": "~0.11.0",
45
45
  "url-template": "^2.0.8",
46
46
  "util": "~0.12.5",
47
- "@redocly/config": "0.18.0",
48
- "@redocly/replay": "0.8.4"
47
+ "@redocly/config": "0.19.0",
48
+ "@redocly/replay": "0.8.6"
49
49
  },
50
50
  "devDependencies": {
51
+ "@shikijs/transformers": "^1.22.2",
51
52
  "@testing-library/jest-dom": "6.1.5",
52
53
  "@testing-library/react": "14.1.2",
53
54
  "@testing-library/react-hooks": "^8.0.1",
@@ -56,6 +57,7 @@
56
57
  "@types/jest": "29.5.11",
57
58
  "@types/jest-when": "3.5.5",
58
59
  "@types/json-pointer": "1.0.34",
60
+ "@types/json-schema": "^7.0.15",
59
61
  "@types/node": "18.19.3",
60
62
  "@types/prismjs": "1.26.4",
61
63
  "@types/react": "18.3.9",
@@ -81,6 +83,7 @@
81
83
  "react-dom": "18.2.0",
82
84
  "react-is": "18.2.0",
83
85
  "rimraf": "5.0.7",
86
+ "shiki": "^1.22.2",
84
87
  "string-replace-loader": "3.1.0",
85
88
  "style-loader": "1.3.0",
86
89
  "styled-components": "5.3.11",
@@ -93,10 +96,10 @@
93
96
  "webpack": "5.94.0",
94
97
  "webpack-cli": "5.1.4",
95
98
  "webpack-dev-server": "5.1.0",
96
- "@redocly/theme": "0.45.11"
99
+ "@redocly/theme": "0.46.1"
97
100
  },
98
101
  "scripts": {
99
- "start": "webpack serve --mode=development --hot",
102
+ "start": "npm run copy-highlight-hook && webpack serve --mode=development --hot",
100
103
  "build": "npm run clean && npm run bundle && npm run compile:lib",
101
104
  "bundle": "webpack --mode=production",
102
105
  "test": "jest -w 2",
@@ -116,6 +119,7 @@
116
119
  "list:licenses": "node ./scripts/list-licenses.js",
117
120
  "license:check": "npx license-checker --production --onlyAllow 'MIT;ISC;Apache-2.0;Apache;CC0-1.0;BSD;BSD-2-Clause;BSD-3-Clause;UNKNOWN' --summary",
118
121
  "precdn:serve": "mkdir -p playground/cdn-test/server-dist && cp -Rf dist/* playground/cdn-test/server-dist && cp -Rf playground/cdn-test/template-source/* playground/cdn-test/server-dist",
119
- "cdn-serve": "http-server playground/cdn-test/server-dist"
122
+ "cdn-serve": "http-server playground/cdn-test/server-dist",
123
+ "copy-highlight-hook": "cp -r ../portal/src/client/app/hooks/codeHighlight ./playground/hooks"
120
124
  }
121
125
  }
@@ -1,31 +0,0 @@
1
- import 'prismjs/components/prism-bash.js';
2
- import 'prismjs/components/prism-c.js';
3
- import 'prismjs/components/prism-clike.js';
4
- import 'prismjs/components/prism-coffeescript.js';
5
- import 'prismjs/components/prism-cpp.js';
6
- import 'prismjs/components/prism-csharp.js';
7
- import 'prismjs/components/prism-go.js';
8
- import 'prismjs/components/prism-http.js';
9
- import 'prismjs/components/prism-java.js';
10
- import 'prismjs/components/prism-lua.js';
11
- import 'prismjs/components/prism-markup-templating.js';
12
- import 'prismjs/components/prism-markup.js';
13
- import 'prismjs/components/prism-objectivec.js';
14
- import 'prismjs/components/prism-perl.js';
15
- import 'prismjs/components/prism-php.js';
16
- import 'prismjs/components/prism-python.js';
17
- import 'prismjs/components/prism-ruby.js';
18
- import 'prismjs/components/prism-scala.js';
19
- import 'prismjs/components/prism-sql.js';
20
- import 'prismjs/components/prism-swift.js';
21
- /**
22
- * map language names to Prism.js names
23
- */
24
- export declare function mapLang(lang: string): string;
25
- /**
26
- * Highlight source code string using Prism.js
27
- * @param source source code to highlight
28
- * @param lang highlight language
29
- * @return highlighted source code as **html string**
30
- */
31
- export declare function highlight(source: string | number | boolean, lang?: string): string;
@@ -1,2 +0,0 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,s,i){void 0===i&&(i=s);var t=Object.getOwnPropertyDescriptor(r,s);t&&!("get"in t?!r.__esModule:t.writable||t.configurable)||(t={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(e,i,t)}:function(e,r,s,i){void 0===i&&(i=s),e[i]=r[s]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&__createBinding(r,e,s);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.mapLang=mapLang,exports.highlight=highlight;const Prism=__importStar(require("prismjs"));require("prismjs/components/prism-bash.js"),require("prismjs/components/prism-c.js"),require("prismjs/components/prism-clike.js"),require("prismjs/components/prism-coffeescript.js"),require("prismjs/components/prism-cpp.js"),require("prismjs/components/prism-csharp.js"),require("prismjs/components/prism-go.js"),require("prismjs/components/prism-http.js"),require("prismjs/components/prism-java.js"),require("prismjs/components/prism-lua.js"),require("prismjs/components/prism-markup-templating.js"),require("prismjs/components/prism-markup.js"),require("prismjs/components/prism-objectivec.js"),require("prismjs/components/prism-perl.js"),require("prismjs/components/prism-php.js"),require("prismjs/components/prism-python.js"),require("prismjs/components/prism-ruby.js"),require("prismjs/components/prism-scala.js"),require("prismjs/components/prism-sql.js"),require("prismjs/components/prism-swift.js");const DEFAULT_LANG="clike";function mapLang(e){return{json:"js","c++":"cpp","c#":"csharp","objective-c":"objectivec",shell:"bash",viml:"vim",curl:"bash","node.js":"js"}[e]||DEFAULT_LANG}function highlight(e,r=DEFAULT_LANG){r=r.toLowerCase();let s=Prism.languages[r];return s||(s=Prism.languages[mapLang(r)]),Prism.highlight(e.toString(),s,r)}Prism.languages.insertBefore("javascript","string",{"property string":{pattern:/([{,]\s*)"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,lookbehind:!0}},void 0),Prism.languages.insertBefore("javascript","punctuation",{property:{pattern:/([{,]\s*)[a-z]\w*(?=\s*:)/i,lookbehind:!0}},void 0);
2
- //# sourceMappingURL=highlight.js.map
@@ -1,31 +0,0 @@
1
- import 'prismjs/components/prism-bash.js';
2
- import 'prismjs/components/prism-c.js';
3
- import 'prismjs/components/prism-clike.js';
4
- import 'prismjs/components/prism-coffeescript.js';
5
- import 'prismjs/components/prism-cpp.js';
6
- import 'prismjs/components/prism-csharp.js';
7
- import 'prismjs/components/prism-go.js';
8
- import 'prismjs/components/prism-http.js';
9
- import 'prismjs/components/prism-java.js';
10
- import 'prismjs/components/prism-lua.js';
11
- import 'prismjs/components/prism-markup-templating.js';
12
- import 'prismjs/components/prism-markup.js';
13
- import 'prismjs/components/prism-objectivec.js';
14
- import 'prismjs/components/prism-perl.js';
15
- import 'prismjs/components/prism-php.js';
16
- import 'prismjs/components/prism-python.js';
17
- import 'prismjs/components/prism-ruby.js';
18
- import 'prismjs/components/prism-scala.js';
19
- import 'prismjs/components/prism-sql.js';
20
- import 'prismjs/components/prism-swift.js';
21
- /**
22
- * map language names to Prism.js names
23
- */
24
- export declare function mapLang(lang: string): string;
25
- /**
26
- * Highlight source code string using Prism.js
27
- * @param source source code to highlight
28
- * @param lang highlight language
29
- * @return highlighted source code as **html string**
30
- */
31
- export declare function highlight(source: string | number | boolean, lang?: string): string;
@@ -1,2 +0,0 @@
1
- import*as Prism from"prismjs";import"prismjs/components/prism-bash.js";import"prismjs/components/prism-c.js";import"prismjs/components/prism-clike.js";import"prismjs/components/prism-coffeescript.js";import"prismjs/components/prism-cpp.js";import"prismjs/components/prism-csharp.js";import"prismjs/components/prism-go.js";import"prismjs/components/prism-http.js";import"prismjs/components/prism-java.js";import"prismjs/components/prism-lua.js";import"prismjs/components/prism-markup-templating.js";import"prismjs/components/prism-markup.js";import"prismjs/components/prism-objectivec.js";import"prismjs/components/prism-perl.js";import"prismjs/components/prism-php.js";import"prismjs/components/prism-python.js";import"prismjs/components/prism-ruby.js";import"prismjs/components/prism-scala.js";import"prismjs/components/prism-sql.js";import"prismjs/components/prism-swift.js";const DEFAULT_LANG="clike";Prism.languages.insertBefore("javascript","string",{"property string":{pattern:/([{,]\s*)"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,lookbehind:!0}},void 0),Prism.languages.insertBefore("javascript","punctuation",{property:{pattern:/([{,]\s*)[a-z]\w*(?=\s*:)/i,lookbehind:!0}},void 0);export function mapLang(s){return{json:"js","c++":"cpp","c#":"csharp","objective-c":"objectivec",shell:"bash",viml:"vim",curl:"bash","node.js":"js"}[s]||DEFAULT_LANG}export function highlight(s,p=DEFAULT_LANG){p=p.toLowerCase();let r=Prism.languages[p];return r||(r=Prism.languages[mapLang(p)]),Prism.highlight(s.toString(),r,p)}
2
- //# sourceMappingURL=highlight.js.map