@redocly/openapi-docs 3.8.0-next.1 → 3.8.0-next.2
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/redocly-openapi-docs.min.js +828 -828
- package/lib/components/OperationItem/OperationItem.js +1 -1
- package/lib/components/RedoclyOpenAPIDocs/Providers.js +1 -1
- package/lib/components/RedoclyOpenAPIDocs/types.d.ts +2 -1
- package/lib/components/Replay/Replay.js +1 -1
- package/lib/components/Replay/utils.d.ts +3 -2
- package/lib/components/Replay/utils.js +1 -1
- package/lib/jotai/app.d.ts +3 -0
- package/lib/jotai/app.js +1 -1
- package/lib/models/callback.d.ts +2 -1
- package/lib/models/callback.js +1 -1
- package/lib/models/operation.d.ts +2 -1
- package/lib/models/operation.js +1 -1
- package/lib-esm/components/OperationItem/OperationItem.js +1 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/Providers.js +1 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/types.d.ts +2 -1
- package/lib-esm/components/Replay/Replay.js +1 -1
- package/lib-esm/components/Replay/utils.d.ts +3 -2
- package/lib-esm/components/Replay/utils.js +1 -1
- package/lib-esm/jotai/app.d.ts +3 -0
- package/lib-esm/jotai/app.js +1 -1
- package/lib-esm/models/callback.d.ts +2 -1
- package/lib-esm/models/callback.js +1 -1
- package/lib-esm/models/operation.d.ts +2 -1
- package/lib-esm/models/operation.js +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationItem=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),common_1=require("../common"),Callbacks_1=require("../Callbacks"),CallbackSamples_1=require("../CallbackSamples"),RequestSamples_1=require("../RequestSamples"),Responses_1=require("../Responses"),ResponseSamples_1=require("../ResponseSamples"),services_1=require("../../services"),app_1=require("../../jotai/app"),store_1=require("../../jotai/store"),operation_1=require("../../models/operation"),RenderHook_1=require("../RenderHook"),OperationItemTitle_1=require("../common/OperationItemTitle"),LinkToField_1=require("../common/LinkToField"),RequestDetails_1=require("../Request/RequestDetails"),Badges_1=require("../common/Badges"),hooks_1=require("../../hooks");function OperationItemComponent({item:{operationDefinition:e,parent:t,href:s}}){var a,
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationItem=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),common_1=require("../common"),Callbacks_1=require("../Callbacks"),CallbackSamples_1=require("../CallbackSamples"),RequestSamples_1=require("../RequestSamples"),Responses_1=require("../Responses"),ResponseSamples_1=require("../ResponseSamples"),services_1=require("../../services"),app_1=require("../../jotai/app"),store_1=require("../../jotai/store"),operation_1=require("../../models/operation"),RenderHook_1=require("../RenderHook"),OperationItemTitle_1=require("../common/OperationItemTitle"),LinkToField_1=require("../common/LinkToField"),RequestDetails_1=require("../Request/RequestDetails"),Badges_1=require("../common/Badges"),hooks_1=require("../../hooks");function OperationItemComponent({item:{operationDefinition:e,parent:t,href:s}}){var a,o;const i=(0,hooks_1.useTranslate)(),{parser:n,options:r}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),l=(0,jotai_1.useAtomValue)(app_1.userClaimsAtom),_=(0,jotai_1.useAtomValue)(app_1.layoutAtom),[p,m]=(0,react_1.useState)(),{unstable_hooks:d,feedback:c}=r,u=(0,react_1.useMemo)((()=>(0,operation_1.getOperation)(n,e,t,r,s,void 0,l)),[s,e,r,t,n,l]),{name:x,deprecated:j,isWebhook:k,badges:h}=u||{},b=_===theme_1.LayoutVariant.STACKED,S=(null==c?void 0:c.type)||"sentiment",g=!0!==(null==c?void 0:c.hide),[R,q]=(0,react_1.useState)(null),v=(0,react_1.useCallback)((e=>{p!==e&&m(e)}),[p]),O=(0,react_1.useMemo)((()=>g?(0,jsx_runtime_1.jsx)(FeedbackWrapper,{children:(0,jsx_runtime_1.jsx)(theme_1.Feedback,{type:S,settings:c.settings,path:(0,services_1.joinWithSeparator)(r.routingBasePath,u.href)})}):null),[g,S,c.settings,r.routingBasePath,u.href]);return(0,jsx_runtime_1.jsxs)(OperationRow,{layout:_,children:[(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:_,children:(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:b,children:[(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.BeforeOpenApiOperation||(null==d?void 0:d.BeforeOperation),props:{operation:u}}),(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Heading,{"data-testid":"operation-item-header",children:[(0,jsx_runtime_1.jsx)(common_1.ShareLink,{to:s,"aria-label":`link to ${x}`}),(0,jsx_runtime_1.jsx)(common_1.CustomBadges,{badges:h,children:x}),j&&(0,jsx_runtime_1.jsx)(Badges_1.StyledBadge,{deprecated:!0,children:i("openapi.badges.deprecated","Deprecated")}),k&&(0,jsx_runtime_1.jsx)(Badges_1.StyledBadge,{children:i("openapi.badges.webhook","Webhook")})]})]})}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:_,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:b,children:(0,jsx_runtime_1.jsx)(RequestDetails_1.RequestDetails,{operation:u,translate:i})}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",className:"panel-container-request-samples",children:(0,jsx_runtime_1.jsx)(RequestSamples_1.RequestSamples,{operation:u})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:_,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:b,children:(null===(a=u.responses)||void 0===a?void 0:a.length)?(0,jsx_runtime_1.jsx)(Responses_1.OperationResponseList,{responses:u.responses,operationId:u.id,operationPointer:u.pointer,callbackId:u.callbackId,activeResponseTab:p,onTabChange:v}):null}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",className:"panel-container-response-samples",children:(0,jsx_runtime_1.jsx)(ResponseSamples_1.ResponseSamples,{operation:u,activeResponseTab:p,onTabChange:v})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:_,children:[(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:b,children:[(null===(o=u.callbacks)||void 0===o?void 0:o.length)?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Title,{children:[(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:(0,services_1.makeDeepLink)(u.id,"callbacks")}),i("openapi.callbacks","Callbacks")]}),(0,jsx_runtime_1.jsx)(Callbacks_1.CallbacksList,{callbacks:u.callbacks,onExpand:q,selectedCallback:R})]}):null,(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiOperation||(null==d?void 0:d.AfterOperation),props:{operation:u}})]}),R?(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",children:(0,jsx_runtime_1.jsx)(CallbackSamples_1.CallbackSamples,{callback:R,translate:i})}):null]}),(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:_,children:(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:b,fullWidth:!0,children:O})})]})}exports.OperationItem=(0,react_1.memo)(OperationItemComponent);const OperationSamplesPanel=(0,styled_components_1.default)(common_1.SamplesPanel)`
|
|
2
2
|
margin-left: auto;
|
|
3
3
|
--code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
|
|
4
4
|
`,FeedbackWrapper=styled_components_1.default.div`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,t,i,r){return new(i||(i=Promise))((function(o,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function s(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.StoreProvider=exports.AppProvider=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),markdoc_1=require("@markdoc/markdoc"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),services_1=require("../../services"),utils_1=require("./utils"),utils_2=require("../../utils"),SchemaDefinition_1=require("../SchemaDefinition"),app_1=require("../../jotai/app"),nexus_1=__importDefault(require("../../jotai/nexus")),object_1=require("../../utils/object"),operation_1=require("../../models/operation"),operation_2=require("../../jotai/operation"),environments_1=require("../../utils/environments"),store_1=require("../../jotai/store"),AppProvider=({options:e,definitionUrl:t,definition:i,activeSampleLanguage:r,children:o})=>{const[,n]=(0,react_1.useState)(),[a,s]=(0,react_1.useState)(!0),[l,u]=(0,react_1.useState)(null);(0,react_1.useEffect)((()=>{!function(){__awaiter(this,void 0,void 0,(function*(){s(!0);try{u(yield(0,utils_1.loadSingle)(i,t,e))}catch(e){n((()=>{throw e}))}}))}()}),[i,t,e]);const c=(0,react_1.useMemo)((()=>{var i,o,n;if(l)return(null===(i=null==e?void 0:e.unstable_hooks)||void 0===i?void 0:i.onInit)&&(null===(n=null===(o=e.unstable_hooks)||void 0===o?void 0:o.onInit)||void 0===n||n.call(o,{store:{definition:l,options:e,definitionUrl:t,activeSampleLanguage:r}})),{definition:l,options:e,definitionUrl:t,activeSampleLanguage:r}}),(0,utils_1.useDeepCompareMemoize)([l,e,t]));return(0,react_1.useEffect)((()=>{c&&s(!1)}),[c]),c?a?(0,utils_2.argValueToBoolean)(null==e?void 0:e.hideLoading,!1)?null:(0,jsx_runtime_1.jsx)(theme_1.Loading,{color:"--loading-spinner-color"}):(0,react_1.isValidElement)(o)?(0,react_1.cloneElement)(o,{store:c}):null:null};exports.AppProvider=AppProvider;const DEFAULT_OPTIONS={ignoreNamedSchemas:["java.io.ObjectStreamField"],maxDisplayedEnumValues:10,markdocOptions:{tags:{schemaDefinition:{render:"SchemaDefinition",attributes:{schemaRef:{type:String},exampleRef:{type:String},showReadOnly:{type:Boolean},showWriteOnly:{type:Boolean},htmlWrap:{type:String,default:!1}}}},nodes:{heading:{children:["inline"],attributes:{id:{type:String},level:{type:Number,required:!0,default:1}},transform(e,t){const i=e.transformAttributes(t),r=e.transformChildren(t),o="string"==typeof i.id?i.id:(0,utils_1.getMarkdownHeaderId)(r);return new markdoc_1.Tag("Heading",Object.assign(Object.assign({},i),{id:o,level:e.attributes.level}),r)}}},components:{SchemaDefinition:SchemaDefinition_1.SchemaDefinition,Heading:theme_1.markdoc.components.Heading}}};exports.StoreProvider=(0,react_1.memo)((({children:e,options:t,definitionUrl:i,definition:r,withState:o})=>{const n=(0,react_1.useCallback)((()=>{const e=(0,services_1.normalizeOptions)(t,DEFAULT_OPTIONS);return{options:e,parser:new services_1.OpenAPIParser(r,i,e)}}),[r,i,t]),a=(0,react_1.useMemo)((()=>{var e,t;const i=(0,jotai_1.createStore)(),r=n();i.set(store_1.globalStoreAtom,r);const a=(0,utils_2.normalizeServers)(r.parser.definitionUrl,(0,operation_1.mergeInMockServer)((null===(e=r.parser.definition)||void 0===e?void 0:e.servers)||[],r.options.mockServer)),s=Object.fromEntries(a.map((e=>[(0,environments_1.getServerEnvName)(e),Object.assign({server:e.url},(0,object_1.mapObject)(e.variables||{},(e=>e.default||"")))])));return i.sub(app_1.appStore,(()=>{})),i.set(app_1.layoutAtom,(null===(t=r.options)||void 0===t?void 0:t.layout)||theme_1.LayoutVariant.THREE_PANEL),i.set(app_1.environmentAtom,{environments:s}),o&&i.set(app_1.appStoreOverrideAtom,{environment:o.environment,environments:o.environments,activeMimeName:o.activeMimeName}),(null==o?void 0:o.operation)&&i.set((0,operation_2.operationStore)(o.operation.pointer),(0,operation_2.getDefaultOperationStore)(o.operation.pointer,o.operation.state.requestValues)),i}),[n,o]);return(0,react_1.useEffect)((()=>{(null==o?void 0:o.layout)&&a.set(app_1.layoutAtom,null==o?void 0:o.layout)}),[a,null==o?void 0:o.layout]),(0,jsx_runtime_1.jsxs)(jotai_1.Provider,{store:a,children:[(0,jsx_runtime_1.jsx)(nexus_1.default,{}),e]})}));
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,t,i,r){return new(i||(i=Promise))((function(o,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function s(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.StoreProvider=exports.AppProvider=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),markdoc_1=require("@markdoc/markdoc"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),services_1=require("../../services"),utils_1=require("./utils"),utils_2=require("../../utils"),SchemaDefinition_1=require("../SchemaDefinition"),app_1=require("../../jotai/app"),nexus_1=__importDefault(require("../../jotai/nexus")),object_1=require("../../utils/object"),operation_1=require("../../models/operation"),operation_2=require("../../jotai/operation"),environments_1=require("../../utils/environments"),store_1=require("../../jotai/store"),AppProvider=({options:e,definitionUrl:t,definition:i,activeSampleLanguage:r,children:o})=>{const[,n]=(0,react_1.useState)(),[a,s]=(0,react_1.useState)(!0),[l,u]=(0,react_1.useState)(null);(0,react_1.useEffect)((()=>{!function(){__awaiter(this,void 0,void 0,(function*(){s(!0);try{u(yield(0,utils_1.loadSingle)(i,t,e))}catch(e){n((()=>{throw e}))}}))}()}),[i,t,e]);const c=(0,react_1.useMemo)((()=>{var i,o,n;if(l)return(null===(i=null==e?void 0:e.unstable_hooks)||void 0===i?void 0:i.onInit)&&(null===(n=null===(o=e.unstable_hooks)||void 0===o?void 0:o.onInit)||void 0===n||n.call(o,{store:{definition:l,options:e,definitionUrl:t,activeSampleLanguage:r}})),{definition:l,options:e,definitionUrl:t,activeSampleLanguage:r}}),(0,utils_1.useDeepCompareMemoize)([l,e,t]));return(0,react_1.useEffect)((()=>{c&&s(!1)}),[c]),c?a?(0,utils_2.argValueToBoolean)(null==e?void 0:e.hideLoading,!1)?null:(0,jsx_runtime_1.jsx)(theme_1.Loading,{color:"--loading-spinner-color"}):(0,react_1.isValidElement)(o)?(0,react_1.cloneElement)(o,{store:c}):null:null};exports.AppProvider=AppProvider;const DEFAULT_OPTIONS={ignoreNamedSchemas:["java.io.ObjectStreamField"],maxDisplayedEnumValues:10,markdocOptions:{tags:{schemaDefinition:{render:"SchemaDefinition",attributes:{schemaRef:{type:String},exampleRef:{type:String},showReadOnly:{type:Boolean},showWriteOnly:{type:Boolean},htmlWrap:{type:String,default:!1}}}},nodes:{heading:{children:["inline"],attributes:{id:{type:String},level:{type:Number,required:!0,default:1}},transform(e,t){const i=e.transformAttributes(t),r=e.transformChildren(t),o="string"==typeof i.id?i.id:(0,utils_1.getMarkdownHeaderId)(r);return new markdoc_1.Tag("Heading",Object.assign(Object.assign({},i),{id:o,level:e.attributes.level}),r)}}},components:{SchemaDefinition:SchemaDefinition_1.SchemaDefinition,Heading:theme_1.markdoc.components.Heading}}};exports.StoreProvider=(0,react_1.memo)((({children:e,options:t,definitionUrl:i,definition:r,withState:o})=>{const n=(0,react_1.useCallback)((()=>{const e=(0,services_1.normalizeOptions)(t,DEFAULT_OPTIONS);return{options:e,parser:new services_1.OpenAPIParser(r,i,e)}}),[r,i,t]),a=(0,react_1.useMemo)((()=>{var e,t;const i=(0,jotai_1.createStore)(),r=n();i.set(store_1.globalStoreAtom,r);const a=(0,utils_2.normalizeServers)(r.parser.definitionUrl,(0,operation_1.mergeInMockServer)((null===(e=r.parser.definition)||void 0===e?void 0:e.servers)||[],r.options.mockServer)),s=Object.fromEntries(a.map((e=>[(0,environments_1.getServerEnvName)(e),Object.assign({server:e.url},(0,object_1.mapObject)(e.variables||{},(e=>e.default||"")))])));return i.sub(app_1.appStore,(()=>{})),i.set(app_1.layoutAtom,(null===(t=r.options)||void 0===t?void 0:t.layout)||theme_1.LayoutVariant.THREE_PANEL),i.set(app_1.environmentAtom,{environments:s}),i.set(app_1.userClaimsAtom,(null==o?void 0:o.userClaims)||{}),o&&i.set(app_1.appStoreOverrideAtom,{environment:o.environment,environments:o.environments,activeMimeName:o.activeMimeName,userClaims:o.userClaims}),(null==o?void 0:o.operation)&&i.set((0,operation_2.operationStore)(o.operation.pointer),(0,operation_2.getDefaultOperationStore)(o.operation.pointer,o.operation.state.requestValues)),i}),[n,o]);return(0,react_1.useEffect)((()=>{(null==o?void 0:o.layout)&&a.set(app_1.layoutAtom,null==o?void 0:o.layout)}),[a,null==o?void 0:o.layout]),(0,jsx_runtime_1.jsxs)(jotai_1.Provider,{store:a,children:[(0,jsx_runtime_1.jsx)(nexus_1.default,{}),e]})}));
|
|
2
2
|
//# sourceMappingURL=Providers.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LayoutVariant } from '@redocly/theme';
|
|
1
|
+
import type { LayoutVariant, UserClaims } from '@redocly/theme';
|
|
2
2
|
import type { CodeSampleConfig } from '../../services';
|
|
3
3
|
import type { RedocConfig } from '@redocly/config';
|
|
4
4
|
import type { OpenAPIDefinition } from '../../types';
|
|
@@ -19,6 +19,7 @@ export interface StoreProviderProps {
|
|
|
19
19
|
activeMimeName?: string;
|
|
20
20
|
environments?: Record<string, Record<string, string>>;
|
|
21
21
|
layout?: LayoutVariant;
|
|
22
|
+
userClaims?: UserClaims;
|
|
22
23
|
operation?: {
|
|
23
24
|
pointer: string;
|
|
24
25
|
state: Partial<OperationStore>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(n,
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(n,a){function i(e){try{u(o.next(e))}catch(e){a(e)}}function s(e){try{u(o.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,s)}u((o=o.apply(e,t||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Replay=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),deepmerge_1=__importDefault(require("deepmerge")),ReplayOverlay=(0,react_1.lazy)((()=>__awaiter(void 0,void 0,void 0,(function*(){return Promise.resolve().then((()=>__importStar(require("@redocly/replay")))).then((e=>({default:e.ReplayOverlay})))})))),store_1=require("../../jotai/store"),replay_1=require("../../jotai/replay"),operation_1=require("../../jotai/operation"),constants_1=require("../../constants"),app_1=require("../../jotai/app"),utils_1=require("./utils"),hooks_1=require("../../hooks"),utils_2=require("../../utils");function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:r}){var o,n;const a=(0,hooks_1.useTranslate)(),i=(0,hooks_1.useOtelTelemetry)(),s=(0,react_1.useRef)(null),{mockServer:u,oAuth2RedirectURI:l,routingBasePath:_}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),c=(0,jotai_1.useAtomValue)(replay_1.allOperationsAtom),{parser:p}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),d=(0,jotai_1.useAtomValue)(app_1.userClaimsAtom),[m,f]=(0,react_1.useState)(!1),[h,y]=(0,jotai_1.useAtom)(replay_1.replayStateAtom),[j,v]=(0,jotai_1.useAtom)(operation_1.allOperations),[[,O],A]=(0,jotai_1.useAtom)(app_1.environmentAtom);(0,theme_1.useFocusTrap)(s),(0,theme_1.useModalScrollLock)(m);const x=(0,react_1.useCallback)((({operations:e,environment:t,environments:r})=>{const o=e.reduce(((e,t)=>{t.requestValues.body=t.requestValues.body instanceof URLSearchParams?Object.fromEntries(t.requestValues.body.entries()):t.requestValues.body;const{path:r,method:o}=t.sourcePath,n=utils_2.JsonPointer.compile(["paths",r,o]);return e[n]=(0,deepmerge_1.default)((0,operation_1.getDefaultOperationStore)(n),t),e}),{});v(Object.assign(Object.assign({},j),o)),A({environment:t,environments:r})}),[j,v,A]),b=()=>{h!==constants_1.LOADING_STATE.LOADING&&(m||i.send("openapi_docs.try_it.opened",{}),f(!m)),h===constants_1.LOADING_STATE.NOT_LOADED&&y(constants_1.LOADING_STATE.LOADING)},g=(0,react_1.useCallback)((e=>{if(!e)return;const t=c.find((t=>t.operationId===e));return _+(null==t?void 0:t.href)}),[c,_]);return r?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(theme_1.Button,{onClick:b,variant:"primary",iconPosition:"left",icon:h===constants_1.LOADING_STATE.LOADING?(0,jsx_runtime_1.jsx)(theme_1.CircleDashIcon,{}):(0,jsx_runtime_1.jsx)(theme_1.RocketIcon,{}),children:h===constants_1.LOADING_STATE.LOADING?a("openapi.loading","Loading..."):a("openapi.tryIt","Try it")}),m&&(0,jsx_runtime_1.jsx)(react_1.Suspense,{children:(0,jsx_runtime_1.jsx)(theme_1.Portal,{mountId:"api-content",children:(0,jsx_runtime_1.jsx)("div",{ref:s,children:(0,jsx_runtime_1.jsx)(ReplayOverlay,{activeOperationId:e.operationId||e.pointer,source:{data:r,type:"openapi"},onRequestChange:x,onClose:b,onLoad:()=>y(constants_1.LOADING_STATE.LOADED),settings:{corsProxyUrl:t,mockServer:u,environment:O,apiId:null===(n=null===(o=null==p?void 0:p.definition.info)||void 0===o?void 0:o["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:l,disableCollectionsTab:!0,disableWorkflowTab:!0,storageKey:_,convertOperationToReplayValue:(e,t,r)=>(0,utils_1.convertOperationToReplayValueForRedoc)(d)(e,t,r),getOperationUrl:g}})})})})]}):null}exports.Replay=(0,react_1.memo)(ReplayComponent);
|
|
2
2
|
//# sourceMappingURL=Replay.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { UserClaims } from '@redocly/theme';
|
|
1
2
|
import type { OpenAPIDefinition } from '../../types';
|
|
2
3
|
import { type SecurityRequirement } from '../../models';
|
|
3
|
-
export declare function convertOperationToReplayValue(path: string, method: string, openAPI: OpenAPIDefinition): {
|
|
4
|
+
export declare function convertOperationToReplayValue(path: string, method: string, openAPI: OpenAPIDefinition, userClaims?: UserClaims): {
|
|
4
5
|
id: string;
|
|
5
6
|
name: string;
|
|
6
7
|
method: string;
|
|
@@ -19,7 +20,7 @@ export declare function convertOperationToReplayValue(path: string, method: stri
|
|
|
19
20
|
};
|
|
20
21
|
};
|
|
21
22
|
} | undefined;
|
|
22
|
-
export declare function convertOperationToReplayValueForRedoc(path: string, method: string, openAPI: OpenAPIDefinition)
|
|
23
|
+
export declare function convertOperationToReplayValueForRedoc(userClaims?: UserClaims): (path: string, method: string, openAPI: OpenAPIDefinition) => {
|
|
23
24
|
operationId: string;
|
|
24
25
|
id: string;
|
|
25
26
|
name: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __rest=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};Object.defineProperty(exports,"__esModule",{value:!0}),exports.convertOperationToReplayValue=convertOperationToReplayValue,exports.convertOperationToReplayValueForRedoc=convertOperationToReplayValueForRedoc,exports.convertRequestSecurity=convertRequestSecurity;const theme_1=require("@redocly/theme"),models_1=require("../../models"),services_1=require("../../services"),utils_1=require("../../utils");function convertOperationToReplayValue(e,t,n){var
|
|
1
|
+
"use strict";var __rest=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};Object.defineProperty(exports,"__esModule",{value:!0}),exports.convertOperationToReplayValue=convertOperationToReplayValue,exports.convertOperationToReplayValueForRedoc=convertOperationToReplayValueForRedoc,exports.convertRequestSecurity=convertRequestSecurity;const theme_1=require("@redocly/theme"),models_1=require("../../models"),services_1=require("../../services"),utils_1=require("../../utils");function convertOperationToReplayValue(e,t,n,r){var a;if(!n)return;const o=new services_1.OpenAPIParser(n),i=null===(a=o.definition.paths)||void 0===a?void 0:a[e],s=null==i?void 0:i[t],l=(0,models_1.getOperation)(o,Object.assign(Object.assign({},s),{pathName:e,httpVerb:t,pathParameters:i.parameters||[],pathServers:i.servers||[]}),void 0,(0,services_1.normalizeOptions)({}),"",{isCallback:!1},r);if(!l)return;const c={id:l.id,name:l.name,method:l.httpVerb,operationId:l.operationId,parameters:convertParameters(l.parameters),body:convertRequestBody(l.requestBody,n),path:l.path,href:l.href,servers:l.servers,security:convertRequestSecurity(l.security),responses:Object.fromEntries(l.responses.map((e=>{var t;return[e.code,{code:e.code,description:e.description,mediaTypes:null===(t=e.content)||void 0===t?void 0:t.mediaTypes.reduce(((e,t)=>{var r;return e[t.name]={name:t.name,schema:getBodySchema(null===(r=t.schema)||void 0===r?void 0:r.rawSchema,n)},e}),{})}]})))};return c}function convertOperationToReplayValueForRedoc(e){return function(t,n,r){const a=convertOperationToReplayValue(t,n,r,e);if(a)return Object.assign(Object.assign({},a),{operationId:a.operationId||utils_1.JsonPointer.compile(["paths",a.path,a.method])})}}function convertParameters(e,t){const n=new Set,r=e.map((e=>{var r;return n.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(r=null==t?void 0:t[String(e.in)])||void 0===r?void 0:r[e.name])||e.example,schema:e.schema}}));for(const[e,a]of Object.entries(t||{}))for(const[t,o]of Object.entries(a||{}))n.has(e+":"+t)||r.push({name:t,in:e,required:!1,description:"",example:String(o),schema:void 0});return r}function getInputType({type:e,format:t,enum:n}){return"string"!==e||"binary"!==t&&"base64"!==t?"object"===e?"multiline":n.length>0?"select":"text":"file"}function getFieldExamples(e,t){var n,r,a,o,i;const s=(null===(n=e[0])||void 0===n?void 0:n.example)||(null===(r=e[0])||void 0===r?void 0:r.examples);if(s)return s;if(null===(a=e.schema)||void 0===a?void 0:a.example)return e.schema.example;const l=(null===(o=null==t?void 0:t.default)||void 0===o?void 0:o.value)||(null===(i=null==t?void 0:t.default)||void 0===i?void 0:i.rawValue);return(null==l?void 0:l[e.name])?(0,theme_1.isPrimitive)(null==l?void 0:l[e.name])?String(null==l?void 0:l[e.name]):JSON.stringify(null==l?void 0:l[e.name]):""}function convertRequestBody(e,t,n){var r;if(!e||!(null===(r=e.content)||void 0===r?void 0:r.mediaTypes)){if(!n)return;const{activeExampleName:e}=n,t=__rest(n,["activeExampleName"]);return{activeExampleName:e,mediaTypes:Object.fromEntries(Object.entries(t).map((([e,t])=>[e,{name:e,examples:{default:{value:t}},schema:{},parameters:[]}])))}}return{required:e.required,activeExampleName:null==n?void 0:n.activeExampleName,mediaTypes:e.content.mediaTypes.reduce(((e,r)=>{var a,o;const i=r.schema,s=(null==n?void 0:n[r.name])?{default:{value:null==n?void 0:n[r.name],rawValue:null==n?void 0:n[r.name],mime:r.name}}:r.examples||r.formExamples;return e[r.name]={name:r.name,examples:s,schema:getBodySchema(null===(a=r.schema)||void 0===a?void 0:a.rawSchema,t),parameters:null===(o=null==i?void 0:i.fields)||void 0===o?void 0:o.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,s)})))},e}),{})}}function getBodySchema(e,t){if(e&&t)return Object.assign(Object.assign({},e),{components:(null==t?void 0:t.components)||{}})}function convertRequestSecurity(e){if(e)return e.map((({schemes:e})=>e.map((e=>{const t={id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows,"x-defaultAccessToken":e["x-defaultAccessToken"],"x-defaultTokenType":e["x-defaultTokenType"],"x-defaultClientId":e["x-defaultClientId"],"x-defaultClientSecret":e["x-defaultClientSecret"],"x-defaultUsername":e["x-defaultUsername"],"x-defaultPassword":e["x-defaultPassword"]};return Object.keys(t).forEach((e=>void 0===t[e]&&delete t[e])),t}))))}
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
package/lib/jotai/app.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LayoutVariant } from '@redocly/theme';
|
|
2
|
+
import type { UserClaims } from '@redocly/theme';
|
|
2
3
|
import type { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
4
|
import type { TabType } from '../models/tab';
|
|
4
5
|
declare global {
|
|
@@ -15,6 +16,7 @@ export type AppStore = {
|
|
|
15
16
|
language: string;
|
|
16
17
|
environment: string;
|
|
17
18
|
environments: Record<string, Record<string, string>>;
|
|
19
|
+
userClaims: UserClaims;
|
|
18
20
|
};
|
|
19
21
|
type LanguageAtom = {
|
|
20
22
|
languages?: (TabType & {
|
|
@@ -35,6 +37,7 @@ export declare const environmentAtom: import("jotai").WritableAtom<[Record<strin
|
|
|
35
37
|
export declare const isSidebarOpenedAtom: import("jotai").WritableAtom<boolean, boolean[], void>;
|
|
36
38
|
export declare const activeMimeNameAtom: import("jotai").WritableAtom<string, [string], void>;
|
|
37
39
|
export declare const layoutAtom: import("jotai").WritableAtom<LayoutVariant, LayoutVariant[], void>;
|
|
40
|
+
export declare const userClaimsAtom: import("jotai").WritableAtom<UserClaims, UserClaims[], void>;
|
|
38
41
|
/**
|
|
39
42
|
* appSessionStore saved to session storage
|
|
40
43
|
*/
|
package/lib/jotai/app.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __rest=this&&this.__rest||function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(o[r[s]]=e[r[s]])}return o};Object.defineProperty(exports,"__esModule",{value:!0}),exports.languageAtom=exports.collapsedSidebarAtom=exports.appSessionStore=exports.layoutAtom=exports.activeMimeNameAtom=exports.isSidebarOpenedAtom=exports.environmentAtom=exports.environmentsAtom=exports.appStoreOverrideAtom=exports.appStore=void 0,exports.getLangKey=getLangKey;const jotai_1=require("jotai"),utils_1=require("jotai/utils"),theme_1=require("@redocly/theme"),cookies_1=require("../utils/cookies"),store_1=require("./store"),environments_1=require("../utils/environments"),utils_2=require("../utils"),defaultAppStoreValue={isSidebarOpened:!0,activeMimeName:"",layout:theme_1.LayoutVariant.THREE_PANEL,language:"",environment:"",environments:{}},customStorage={getItem:e=>{var t,o;const r=(0,utils_2.safeJsonParse)((0,cookies_1.getCookie)(e,null===(o=null===(t=globalThis.redoclyCookieStorage)||void 0===t?void 0:t.getStore)||void 0===o?void 0:o.call(t))),s=(0,utils_2.safeJsonParse)((0,utils_2.fromSessionStorage)(e));return Object.assign(Object.assign(Object.assign({},defaultAppStoreValue),s),r)},setItem:(e,t)=>{const{environments:o}=t,r=__rest(t,["environments"]),s={environments:o};(0,cookies_1.setCookie)(e,JSON.stringify(r)),(0,utils_2.toSessionStorage)(e,JSON.stringify(s))},removeItem:e=>{(0,cookies_1.removeCookie)(e),sessionStorage.removeItem(e)}};function getLangKey({lang:e,label:t}){return(t||e).toLowerCase()}exports.appStore=(0,utils_1.atomWithStorage)("redoc.appStore",defaultAppStoreValue,customStorage),exports.appStoreOverrideAtom=(0,jotai_1.atom)({}),exports.environmentsAtom=(0,jotai_1.atom)((e=>{const t=e(exports.appStore),o=e(exports.appStoreOverrideAtom);return(0,environments_1.mergeEnvData)(t.environments,(null==o?void 0:o.environments)||{})})),exports.environmentAtom=(0,jotai_1.atom)((e=>{const t=e(exports.appStore),o=e(exports.appStoreOverrideAtom),r=(0,environments_1.mergeEnvData)(t.environments,(null==o?void 0:o.environments)||{}),s=(null==o?void 0:o.environment)||t.environment,
|
|
1
|
+
"use strict";var __rest=this&&this.__rest||function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(o[r[s]]=e[r[s]])}return o};Object.defineProperty(exports,"__esModule",{value:!0}),exports.languageAtom=exports.collapsedSidebarAtom=exports.appSessionStore=exports.userClaimsAtom=exports.layoutAtom=exports.activeMimeNameAtom=exports.isSidebarOpenedAtom=exports.environmentAtom=exports.environmentsAtom=exports.appStoreOverrideAtom=exports.appStore=void 0,exports.getLangKey=getLangKey;const jotai_1=require("jotai"),utils_1=require("jotai/utils"),theme_1=require("@redocly/theme"),cookies_1=require("../utils/cookies"),store_1=require("./store"),environments_1=require("../utils/environments"),utils_2=require("../utils"),defaultAppStoreValue={isSidebarOpened:!0,activeMimeName:"",layout:theme_1.LayoutVariant.THREE_PANEL,language:"",environment:"",environments:{},userClaims:{}},customStorage={getItem:e=>{var t,o;const r=(0,utils_2.safeJsonParse)((0,cookies_1.getCookie)(e,null===(o=null===(t=globalThis.redoclyCookieStorage)||void 0===t?void 0:t.getStore)||void 0===o?void 0:o.call(t))),s=(0,utils_2.safeJsonParse)((0,utils_2.fromSessionStorage)(e));return Object.assign(Object.assign(Object.assign({},defaultAppStoreValue),s),r)},setItem:(e,t)=>{const{environments:o}=t,r=__rest(t,["environments"]),s={environments:o};(0,cookies_1.setCookie)(e,JSON.stringify(r)),(0,utils_2.toSessionStorage)(e,JSON.stringify(s))},removeItem:e=>{(0,cookies_1.removeCookie)(e),sessionStorage.removeItem(e)}};function getLangKey({lang:e,label:t}){return(t||e).toLowerCase()}exports.appStore=(0,utils_1.atomWithStorage)("redoc.appStore",defaultAppStoreValue,customStorage),exports.appStoreOverrideAtom=(0,jotai_1.atom)({}),exports.environmentsAtom=(0,jotai_1.atom)((e=>{const t=e(exports.appStore),o=e(exports.appStoreOverrideAtom);return(0,environments_1.mergeEnvData)(t.environments,(null==o?void 0:o.environments)||{})})),exports.environmentAtom=(0,jotai_1.atom)((e=>{const t=e(exports.appStore),o=e(exports.appStoreOverrideAtom),r=(0,environments_1.mergeEnvData)(t.environments,(null==o?void 0:o.environments)||{}),s=(null==o?void 0:o.environment)||t.environment,a=r[s]?s:Object.keys(r)[0];return[r[a]||{},a||""]}),((e,t,{environment:o,environments:r})=>{const s=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},s),{environment:o||s.environment,environments:(0,environments_1.mergeEnvData)(s.environments||{},r)}))})),exports.isSidebarOpenedAtom=(0,jotai_1.atom)((e=>e(exports.appStore).isSidebarOpened),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{isSidebarOpened:o}))})),exports.activeMimeNameAtom=(0,jotai_1.atom)((e=>e(exports.appStore).activeMimeName),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{activeMimeName:o}))})),exports.layoutAtom=(0,jotai_1.atom)((e=>e(exports.appStore).layout),((e,t,o=theme_1.LayoutVariant.STACKED)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{layout:o}))})),exports.userClaimsAtom=(0,jotai_1.atom)((e=>e(exports.appStore).userClaims),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{userClaims:o}))})),exports.appSessionStore=(0,utils_1.atomWithStorage)("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},theme_1.IS_BROWSER?(0,utils_1.createJSONStorage)((()=>sessionStorage)):void 0),exports.collapsedSidebarAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).collapsedSidebar),((e,t,o)=>{const r=e(exports.appSessionStore);t(exports.appSessionStore,Object.assign(Object.assign({},r),{collapsedSidebar:o}))})),exports.languageAtom=(0,jotai_1.atom)((e=>{var t,o,r;const{codeSamples:s}=e(store_1.globalOptionsAtom),a=s.languages.map((({lang:e,label:t},o)=>({key:getLangKey({lang:e,label:t}),lang:e,title:t||e,order:o}))),n=e(exports.appStore).language||(null===(t=a[0])||void 0===t?void 0:t.key);return{languages:a,activeLanguage:(null===(o=a.find((({key:e})=>e===n)))||void 0===o?void 0:o.key)||(null===(r=a[0])||void 0===r?void 0:r.key)}}),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{language:o}))}));
|
|
2
2
|
//# sourceMappingURL=app.js.map
|
package/lib/models/callback.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Options, OpenAPIParser } from '../services';
|
|
2
2
|
import type { OpenAPICallback, Referenced } from '../types';
|
|
3
3
|
import type { CallbackModel, GroupModel } from './types';
|
|
4
|
-
|
|
4
|
+
import type { UserClaims } from '@redocly/theme';
|
|
5
|
+
export declare function getCallback(parser: OpenAPIParser, name: string, infoOrRef: Referenced<OpenAPICallback>, parentPointer: string, options: Options, href: string, parent?: GroupModel, userClaims?: UserClaims): CallbackModel;
|
package/lib/models/callback.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCallback=getCallback;const utils_1=require("../utils"),operation_1=require("./operation"),services_1=require("../services");function getCallback(e,t,r,s,o,a,i){const{resolved:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCallback=getCallback;const utils_1=require("../utils"),operation_1=require("./operation"),services_1=require("../services");function getCallback(e,t,r,s,o,a,i,n){const{resolved:c}=e.deref(r),l=[];for(const r of Object.keys(c)){const p=c[r],u=Object.keys(p).filter(utils_1.isOperationName);for(const c of u){const u=p[c],b=(0,operation_1.getOperation)(e,Object.assign(Object.assign({},u),{pathName:r,pointer:utils_1.JsonPointer.join(s,["callbacks",t,c]),httpVerb:c,pathParameters:p.parameters||[],pathServers:p.servers}),i,o,a,{isCallback:!0,id:(0,services_1.joinWithSeparator)(t,c)},n);l.push(b)}}return{name:t,operations:l}}
|
|
2
2
|
//# sourceMappingURL=callback.js.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { UserClaims } from '@redocly/theme';
|
|
1
2
|
import type { ExtendedOpenAPIOperation, Unstable_ExternalCodeSample, OpenAPIParser, Options } from '../services';
|
|
2
3
|
import type { OpenAPIServer, OpenAPIXCodeSample } from '../types';
|
|
3
4
|
import type { MediaContentModel, OperationModel, GroupModel } from './types';
|
|
@@ -15,5 +16,5 @@ export interface Callback {
|
|
|
15
16
|
id?: string;
|
|
16
17
|
}
|
|
17
18
|
export declare function isPayloadSample(sample: XPayloadSample | OpenAPIXCodeSample | Unstable_ExternalCodeSample): sample is XPayloadSample;
|
|
18
|
-
export declare function getOperation(parser: OpenAPIParser, operationDefinition: ExtendedOpenAPIOperation, parent: GroupModel | undefined, options: Options, href: string, callback?: Callback): OperationModel;
|
|
19
|
+
export declare function getOperation(parser: OpenAPIParser, operationDefinition: ExtendedOpenAPIOperation, parent: GroupModel | undefined, options: Options, href: string, callback?: Callback, userClaims?: UserClaims): OperationModel;
|
|
19
20
|
export declare function mergeInMockServer(servers: OpenAPIServer[], mockServerOptions: Options['mockServer']): OpenAPIServer[];
|
package/lib/models/operation.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isPayloadSample=isPayloadSample,exports.getOperation=getOperation,exports.mergeInMockServer=mergeInMockServer;const theme_1=require("@redocly/theme"),config_1=require("@redocly/config"),utils_1=require("../utils"),callback_1=require("./callback"),field_1=require("./field"),request_1=require("./request"),security_1=require("./security"),response_1=require("./response"),operation_1=require("../services/menu/operation");function isPayloadSample(e){return"Payload"===e.lang&&"requestBodyContent"in e}function getOperation(e,t,r,s,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isPayloadSample=isPayloadSample,exports.getOperation=getOperation,exports.mergeInMockServer=mergeInMockServer;const theme_1=require("@redocly/theme"),config_1=require("@redocly/config"),utils_1=require("../utils"),callback_1=require("./callback"),field_1=require("./field"),request_1=require("./request"),security_1=require("./security"),response_1=require("./response"),operation_1=require("../services/menu/operation");function isPayloadSample(e){return"Payload"===e.lang&&"requestBodyContent"in e}function getOperation(e,t,r,o,s,i,a){var n,l,u,c;const d=t.isWebhook,p={operationDefinition:t,parent:r,pointer:t.pointer,description:(0,utils_1.getValueFromMdParsedExtension)(t,"description"),externalDocs:t.externalDocs,deprecated:!!t.deprecated,httpVerb:t.httpVerb,operationId:t.operationId,path:t.pathName,isWebhook:d,isCallback:Boolean(null==i?void 0:i.isCallback),isEvent:(null==i?void 0:i.isCallback)||d,name:(0,utils_1.getOperationName)(t),defaultExampleName:t.defaultSampleName,[config_1.REDOCLY_TEAMS_RBAC]:t[config_1.REDOCLY_TEAMS_RBAC]||(null==r?void 0:r[config_1.REDOCLY_TEAMS_RBAC]),type:"operation",callbackId:null==i?void 0:i.id,href:s,get callbacks(){return Object.keys(t.callbacks||[]).map((i=>{var n;return(0,callback_1.getCallback)(e,i,null===(n=t.callbacks)||void 0===n?void 0:n[i],p.pointer,o,s,r,a)}))},get responses(){let r=!1;return Object.keys(t.responses||[]).filter((e=>"default"===e||("success"===(0,utils_1.getStatusCodeType)(e)&&(r=!0),(0,utils_1.isStatusCode)(e)))).map((s=>(0,response_1.getResponse)({parser:e,code:s,defaultAsError:r,infoOrRef:t.responses[s],options:o,isEvent:p.isEvent,operation:p})))},get parameters(){return processParameters(e,t,p,o,y)}};if(null==i?void 0:i.isCallback)p.security=(0,security_1.getSecurity)(t.security,e),p.servers=(0,utils_1.normalizeServers)("",t.servers||t.pathServers||[]),p.id=(0,theme_1.removeLeadingSlash)(s);else{p.id=(0,utils_1.getOperationId)(t,r),p.href=p.href||(0,operation_1.getHref)(p),p.security=(0,security_1.getSecurity)(t.security||e.definition.security,e);const s=t.servers||((null===(n=t.pathServers)||void 0===n?void 0:n.length)?t.pathServers:null)||e.definition.servers||[];p.servers=(0,utils_1.normalizeServers)(e.definitionUrl,mergeInMockServer(s,o.mockServer))}o.showExtensions&&(p.extensions=(0,utils_1.extractExtensions)(t,o.showExtensions)),p.requestBody=t.requestBody?(0,request_1.getRequestBody)({parser:e,infoOrRef:t.requestBody,options:o,operation:p,isEvent:p.isEvent}):void 0;const f=null===(l=p.requestBody)||void 0===l?void 0:l.content;p.payload={lang:"Payload",source:"",requestBodyContent:(null==f?void 0:f.hasSample)?f:void 0},p.definitionSamples=t["x-codeSamples"]||[],p.badges=(null===(u=t["x-badges"])||void 0===u?void 0:u.map((({name:e,color:t,position:r})=>({name:e,color:t||"var(--color-info-base)",position:r||"after"}))))||[],p.hasSamples=(null==f?void 0:f.hasSample)||p.definitionSamples.length>0,p.hideReplay=!0===t["x-hideReplay"];const y=(null===(c=(0,theme_1.configure)({userClaims:a,operation:{operationId:p.operationId,name:p.name,path:p.path,href:p.href,method:p.httpVerb}}))||void 0===c?void 0:c.requestValues)||{};return Object.keys(y).length>0&&(updateRequestBodyWithUserValues(p,y),updateSecurityWithUserValues(p,y.security)),p}function updateRequestBodyWithUserValues(e,t){if(!e.requestBody||!(null==t?void 0:t.body))return;const r=e.requestBody.content;if(null==r?void 0:r.mediaTypes){for(const e of r.mediaTypes)e.examples&&Object.keys(e.examples).forEach((r=>{var o,s;const i=null===(s=null===(o=e.examples)||void 0===o?void 0:o[r])||void 0===s?void 0:s.value;let a;a=(0,theme_1.isObject)(i)?updateObjectProperties(i,t.body):t.body,e.examples[r]={value:a,rawValue:a,mime:e.name}}));return e}}function updateSecurityWithUserValues(e,t){if(!t||!e.security.length)return;const r=e=>{var r,o,s;const i={"x-defaultAccessToken":null===(r=t.token)||void 0===r?void 0:r.access_token,"x-defaultTokenType":(null===(o=t.token)||void 0===o?void 0:o.token_type)||"Bearer","x-defaultClientId":t.client_id,"x-defaultClientSecret":t.client_secret,scopes:t.scopes||e.scopes};"http"===e.type&&"basic"===e.scheme?(i["x-defaultUsername"]=t.username,i["x-defaultPassword"]=t.password,delete i["x-defaultAccessToken"],delete i["x-defaultTokenType"]):"oauth2"!==e.type||(null===(s=t.token)||void 0===s?void 0:s.access_token)||(delete i["x-defaultAccessToken"],delete i["x-defaultTokenType"]),Object.assign(e,i)};e.security.forEach((e=>{e.schemes.forEach(r)}))}function processParameters(e,t,r,o,s){let i=(0,utils_1.mergeParams)(e,t.pathParameters,t.parameters,{pathPointer:utils_1.JsonPointer.dirName(r.pointer),operationPointer:r.pointer}).map((({paramOrRef:t,pointer:i})=>{var a;const n=(0,field_1.getField)(e,t,i,o,{operation:r,type:"request"});if(s){const{in:e,name:t}=n,r={header:s.headers,query:s.query,path:s.path,cookie:s.cookie};e&&(null===(a=r[e])||void 0===a?void 0:a[t])&&(n.example=r[e][t])}return n}));return o.sortRequiredPropsFirst&&(i=(0,utils_1.sortByRequired)(i)),(0,utils_1.sortByDeprecated)(i)}function updateObjectProperties(e,t){if(!e||"object"!=typeof e)return t;if(Array.isArray(e)&&Array.isArray(t))return t;const r=Array.isArray(e)?[...e]:Object.assign({},e);for(const[o,s]of Object.entries(t))o in e&&(Array.isArray(e[o])?r[o]=s:"object"==typeof s&&null!==s&&"object"==typeof e[o]?r[o]=updateObjectProperties(e[o],s):r[o]=s);return r}function mergeInMockServer(e,t){if(!t)return e;const r={url:t.url,description:t.description};switch(t.position){case"first":return[r,...e];case"last":return[...e,r];case"replace":return[r];default:return e}}
|
|
2
2
|
//# sourceMappingURL=operation.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row,CustomBadges}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink,joinWithSeparator}from"../../services";import{layoutAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";import{StyledBadge}from"../common/Badges";import{useTranslate}from"../../hooks";function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const l=useTranslate(),{parser:i,options:n}=useAtomValue(globalStoreAtom),r=useAtomValue(layoutAtom),[
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row,CustomBadges}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink,joinWithSeparator}from"../../services";import{layoutAtom,userClaimsAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";import{StyledBadge}from"../common/Badges";import{useTranslate}from"../../hooks";function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const l=useTranslate(),{parser:i,options:n}=useAtomValue(globalStoreAtom),r=useAtomValue(userClaimsAtom),p=useAtomValue(layoutAtom),[d,m]=useState(),{unstable_hooks:c,feedback:u}=n,k=useMemo((()=>getOperation(i,e,a,n,o,void 0,r)),[o,e,n,a,i,r]),{name:S,deprecated:b,isWebhook:x,badges:h}=k||{},j=p===LayoutVariant.STACKED,f=(null==u?void 0:u.type)||"sentiment",g=!0!==(null==u?void 0:u.hide),[_,y]=useState(null),O=useCallback((e=>{d!==e&&m(e)}),[d]),R=useMemo((()=>g?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:f,settings:u.settings,path:joinWithSeparator(n.routingBasePath,k.href)})}):null),[g,f,u.settings,n.routingBasePath,k.href]);return _jsxs(OperationRow,{layout:p,children:[_jsx(OperationSubRowStyled,{layout:p,children:_jsxs(SamplesMiddlePanel,{isStacked:j,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==c?void 0:c.BeforeOperation),props:{operation:k}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${S}`}),_jsx(CustomBadges,{badges:h,children:S}),b&&_jsx(StyledBadge,{deprecated:!0,children:l("openapi.badges.deprecated","Deprecated")}),x&&_jsx(StyledBadge,{children:l("openapi.badges.webhook","Webhook")})]})]})}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:_jsx(RequestDetails,{operation:k,translate:l})}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:k})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:(null===(t=k.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:k.responses,operationId:k.id,operationPointer:k.pointer,callbackId:k.callbackId,activeResponseTab:d,onTabChange:O}):null}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:k,activeResponseTab:d,onTabChange:O})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsxs(SamplesMiddlePanel,{isStacked:j,children:[(null===(s=k.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(k.id,"callbacks")}),l("openapi.callbacks","Callbacks")]}),_jsx(CallbacksList,{callbacks:k.callbacks,onExpand:y,selectedCallback:_})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==c?void 0:c.AfterOperation),props:{operation:k}})]}),_?_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:_,translate:l})}):null]}),_jsx(OperationSubRowStyled,{layout:p,children:_jsx(SamplesMiddlePanel,{isStacked:j,fullWidth:!0,children:R})})]})}export const OperationItem=memo(OperationItemComponent);const OperationSamplesPanel=styled(SamplesPanel)`
|
|
2
2
|
margin-left: auto;
|
|
3
3
|
--code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
|
|
4
4
|
`,FeedbackWrapper=styled.div`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,t,o,i){return new(o||(o=Promise))((function(n,r){function a(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,s)}l((i=i.apply(e,t||[])).next())}))};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{cloneElement,isValidElement,memo,useCallback,useEffect,useMemo,useState}from"react";import{Tag}from"@markdoc/markdoc";import{LayoutVariant,Loading,markdoc}from"@redocly/theme";import{createStore,Provider}from"jotai";import{normalizeOptions,OpenAPIParser}from"../../services";import{getMarkdownHeaderId,loadSingle,useDeepCompareMemoize}from"./utils";import{argValueToBoolean,normalizeServers}from"../../utils";import{SchemaDefinition}from"../SchemaDefinition";import{appStore,appStoreOverrideAtom,environmentAtom,layoutAtom}from"../../jotai/app";import JotaiNexus from"../../jotai/nexus";import{mapObject}from"../../utils/object";import{mergeInMockServer}from"../../models/operation";import{getDefaultOperationStore,operationStore}from"../../jotai/operation";import{getServerEnvName}from"../../utils/environments";import{globalStoreAtom}from"../../jotai/store";export const AppProvider=({options:e,definitionUrl:t,definition:o,activeSampleLanguage:i,children:n})=>{const[,r]=useState(),[a,s]=useState(!0),[l,m]=useState(null);useEffect((()=>{!function(){__awaiter(this,void 0,void 0,(function*(){s(!0);try{m(yield loadSingle(o,t,e))}catch(e){r((()=>{throw e}))}}))}()}),[o,t,e]);const u=useMemo((()=>{var o,n,r;if(l)return(null===(o=null==e?void 0:e.unstable_hooks)||void 0===o?void 0:o.onInit)&&(null===(r=null===(n=e.unstable_hooks)||void 0===n?void 0:n.onInit)||void 0===r||r.call(n,{store:{definition:l,options:e,definitionUrl:t,activeSampleLanguage:i}})),{definition:l,options:e,definitionUrl:t,activeSampleLanguage:i}}),useDeepCompareMemoize([l,e,t]));return useEffect((()=>{u&&s(!1)}),[u]),u?a?argValueToBoolean(null==e?void 0:e.hideLoading,!1)?null:_jsx(Loading,{color:"--loading-spinner-color"}):isValidElement(n)?cloneElement(n,{store:u}):null:null};const DEFAULT_OPTIONS={ignoreNamedSchemas:["java.io.ObjectStreamField"],maxDisplayedEnumValues:10,markdocOptions:{tags:{schemaDefinition:{render:"SchemaDefinition",attributes:{schemaRef:{type:String},exampleRef:{type:String},showReadOnly:{type:Boolean},showWriteOnly:{type:Boolean},htmlWrap:{type:String,default:!1}}}},nodes:{heading:{children:["inline"],attributes:{id:{type:String},level:{type:Number,required:!0,default:1}},transform(e,t){const o=e.transformAttributes(t),i=e.transformChildren(t),n="string"==typeof o.id?o.id:getMarkdownHeaderId(i);return new Tag("Heading",Object.assign(Object.assign({},o),{id:n,level:e.attributes.level}),i)}}},components:{SchemaDefinition:SchemaDefinition,Heading:markdoc.components.Heading}}};export const StoreProvider=memo((({children:e,options:t,definitionUrl:o,definition:i,withState:n})=>{const r=useCallback((()=>{const e=normalizeOptions(t,DEFAULT_OPTIONS);return{options:e,parser:new OpenAPIParser(i,o,e)}}),[i,o,t]),a=useMemo((()=>{var e,t;const o=createStore(),i=r();o.set(globalStoreAtom,i);const a=normalizeServers(i.parser.definitionUrl,mergeInMockServer((null===(e=i.parser.definition)||void 0===e?void 0:e.servers)||[],i.options.mockServer)),s=Object.fromEntries(a.map((e=>[getServerEnvName(e),Object.assign({server:e.url},mapObject(e.variables||{},(e=>e.default||"")))])));return o.sub(appStore,(()=>{})),o.set(layoutAtom,(null===(t=i.options)||void 0===t?void 0:t.layout)||LayoutVariant.THREE_PANEL),o.set(environmentAtom,{environments:s}),n&&o.set(appStoreOverrideAtom,{environment:n.environment,environments:n.environments,activeMimeName:n.activeMimeName}),(null==n?void 0:n.operation)&&o.set(operationStore(n.operation.pointer),getDefaultOperationStore(n.operation.pointer,n.operation.state.requestValues)),o}),[r,n]);return useEffect((()=>{(null==n?void 0:n.layout)&&a.set(layoutAtom,null==n?void 0:n.layout)}),[a,null==n?void 0:n.layout]),_jsxs(Provider,{store:a,children:[_jsx(JotaiNexus,{}),e]})}));
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,t,o,i){return new(o||(o=Promise))((function(n,r){function a(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,s)}l((i=i.apply(e,t||[])).next())}))};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{cloneElement,isValidElement,memo,useCallback,useEffect,useMemo,useState}from"react";import{Tag}from"@markdoc/markdoc";import{LayoutVariant,Loading,markdoc}from"@redocly/theme";import{createStore,Provider}from"jotai";import{normalizeOptions,OpenAPIParser}from"../../services";import{getMarkdownHeaderId,loadSingle,useDeepCompareMemoize}from"./utils";import{argValueToBoolean,normalizeServers}from"../../utils";import{SchemaDefinition}from"../SchemaDefinition";import{appStore,appStoreOverrideAtom,environmentAtom,layoutAtom,userClaimsAtom}from"../../jotai/app";import JotaiNexus from"../../jotai/nexus";import{mapObject}from"../../utils/object";import{mergeInMockServer}from"../../models/operation";import{getDefaultOperationStore,operationStore}from"../../jotai/operation";import{getServerEnvName}from"../../utils/environments";import{globalStoreAtom}from"../../jotai/store";export const AppProvider=({options:e,definitionUrl:t,definition:o,activeSampleLanguage:i,children:n})=>{const[,r]=useState(),[a,s]=useState(!0),[l,m]=useState(null);useEffect((()=>{!function(){__awaiter(this,void 0,void 0,(function*(){s(!0);try{m(yield loadSingle(o,t,e))}catch(e){r((()=>{throw e}))}}))}()}),[o,t,e]);const u=useMemo((()=>{var o,n,r;if(l)return(null===(o=null==e?void 0:e.unstable_hooks)||void 0===o?void 0:o.onInit)&&(null===(r=null===(n=e.unstable_hooks)||void 0===n?void 0:n.onInit)||void 0===r||r.call(n,{store:{definition:l,options:e,definitionUrl:t,activeSampleLanguage:i}})),{definition:l,options:e,definitionUrl:t,activeSampleLanguage:i}}),useDeepCompareMemoize([l,e,t]));return useEffect((()=>{u&&s(!1)}),[u]),u?a?argValueToBoolean(null==e?void 0:e.hideLoading,!1)?null:_jsx(Loading,{color:"--loading-spinner-color"}):isValidElement(n)?cloneElement(n,{store:u}):null:null};const DEFAULT_OPTIONS={ignoreNamedSchemas:["java.io.ObjectStreamField"],maxDisplayedEnumValues:10,markdocOptions:{tags:{schemaDefinition:{render:"SchemaDefinition",attributes:{schemaRef:{type:String},exampleRef:{type:String},showReadOnly:{type:Boolean},showWriteOnly:{type:Boolean},htmlWrap:{type:String,default:!1}}}},nodes:{heading:{children:["inline"],attributes:{id:{type:String},level:{type:Number,required:!0,default:1}},transform(e,t){const o=e.transformAttributes(t),i=e.transformChildren(t),n="string"==typeof o.id?o.id:getMarkdownHeaderId(i);return new Tag("Heading",Object.assign(Object.assign({},o),{id:n,level:e.attributes.level}),i)}}},components:{SchemaDefinition:SchemaDefinition,Heading:markdoc.components.Heading}}};export const StoreProvider=memo((({children:e,options:t,definitionUrl:o,definition:i,withState:n})=>{const r=useCallback((()=>{const e=normalizeOptions(t,DEFAULT_OPTIONS);return{options:e,parser:new OpenAPIParser(i,o,e)}}),[i,o,t]),a=useMemo((()=>{var e,t;const o=createStore(),i=r();o.set(globalStoreAtom,i);const a=normalizeServers(i.parser.definitionUrl,mergeInMockServer((null===(e=i.parser.definition)||void 0===e?void 0:e.servers)||[],i.options.mockServer)),s=Object.fromEntries(a.map((e=>[getServerEnvName(e),Object.assign({server:e.url},mapObject(e.variables||{},(e=>e.default||"")))])));return o.sub(appStore,(()=>{})),o.set(layoutAtom,(null===(t=i.options)||void 0===t?void 0:t.layout)||LayoutVariant.THREE_PANEL),o.set(environmentAtom,{environments:s}),o.set(userClaimsAtom,(null==n?void 0:n.userClaims)||{}),n&&o.set(appStoreOverrideAtom,{environment:n.environment,environments:n.environments,activeMimeName:n.activeMimeName,userClaims:n.userClaims}),(null==n?void 0:n.operation)&&o.set(operationStore(n.operation.pointer),getDefaultOperationStore(n.operation.pointer,n.operation.state.requestValues)),o}),[r,n]);return useEffect((()=>{(null==n?void 0:n.layout)&&a.set(layoutAtom,null==n?void 0:n.layout)}),[a,null==n?void 0:n.layout]),_jsxs(Provider,{store:a,children:[_jsx(JotaiNexus,{}),e]})}));
|
|
2
2
|
//# sourceMappingURL=Providers.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LayoutVariant } from '@redocly/theme';
|
|
1
|
+
import type { LayoutVariant, UserClaims } from '@redocly/theme';
|
|
2
2
|
import type { CodeSampleConfig } from '../../services';
|
|
3
3
|
import type { RedocConfig } from '@redocly/config';
|
|
4
4
|
import type { OpenAPIDefinition } from '../../types';
|
|
@@ -19,6 +19,7 @@ export interface StoreProviderProps {
|
|
|
19
19
|
activeMimeName?: string;
|
|
20
20
|
environments?: Record<string, Record<string, string>>;
|
|
21
21
|
layout?: LayoutVariant;
|
|
22
|
+
userClaims?: UserClaims;
|
|
22
23
|
operation?: {
|
|
23
24
|
pointer: string;
|
|
24
25
|
state: Partial<OperationStore>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,o,t,r){return new(t||(t=Promise))((function(n,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var o;e.done?n(e.value):(o=e.value,o instanceof t?o:new t((function(e){e(o)}))).then(i,s)}l((r=r.apply(e,o||[])).next())}))};import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{lazy,memo,Suspense,useCallback,useRef,useState}from"react";import{Button,CircleDashIcon,Portal,RocketIcon,useFocusTrap,useModalScrollLock}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";import merge from"deepmerge";const ReplayOverlay=lazy((()=>__awaiter(void 0,void 0,void 0,(function*(){return import("@redocly/replay").then((e=>({default:e.ReplayOverlay})))}))));import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{allOperationsAtom,replayStateAtom}from"../../jotai/replay";import{allOperations,getDefaultOperationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{environmentAtom}from"../../jotai/app";import{convertOperationToReplayValueForRedoc}from"./utils";import{useTranslate,useOtelTelemetry}from"../../hooks";import{JsonPointer}from"../../utils";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var r,n;const a=useTranslate(),i=useOtelTelemetry(),s=useRef(null),{mockServer:l,oAuth2RedirectURI:u,routingBasePath:m}=useAtomValue(globalOptionsAtom),p=useAtomValue(allOperationsAtom),{parser:c}=useAtomValue(globalStoreAtom),
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,o,t,r){return new(t||(t=Promise))((function(n,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var o;e.done?n(e.value):(o=e.value,o instanceof t?o:new t((function(e){e(o)}))).then(i,s)}l((r=r.apply(e,o||[])).next())}))};import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{lazy,memo,Suspense,useCallback,useRef,useState}from"react";import{Button,CircleDashIcon,Portal,RocketIcon,useFocusTrap,useModalScrollLock}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";import merge from"deepmerge";const ReplayOverlay=lazy((()=>__awaiter(void 0,void 0,void 0,(function*(){return import("@redocly/replay").then((e=>({default:e.ReplayOverlay})))}))));import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{allOperationsAtom,replayStateAtom}from"../../jotai/replay";import{allOperations,getDefaultOperationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{environmentAtom,userClaimsAtom}from"../../jotai/app";import{convertOperationToReplayValueForRedoc}from"./utils";import{useTranslate,useOtelTelemetry}from"../../hooks";import{JsonPointer}from"../../utils";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var r,n;const a=useTranslate(),i=useOtelTelemetry(),s=useRef(null),{mockServer:l,oAuth2RedirectURI:u,routingBasePath:m}=useAtomValue(globalOptionsAtom),p=useAtomValue(allOperationsAtom),{parser:c}=useAtomValue(globalStoreAtom),d=useAtomValue(userClaimsAtom),[A,f]=useState(!1),[y,O]=useAtom(replayStateAtom),[v,_]=useAtom(allOperations),[[,T],h]=useAtom(environmentAtom);useFocusTrap(s),useModalScrollLock(A);const I=useCallback((({operations:e,environment:o,environments:t})=>{const r=e.reduce(((e,o)=>{o.requestValues.body=o.requestValues.body instanceof URLSearchParams?Object.fromEntries(o.requestValues.body.entries()):o.requestValues.body;const{path:t,method:r}=o.sourcePath,n=JsonPointer.compile(["paths",t,r]);return e[n]=merge(getDefaultOperationStore(n),o),e}),{});_(Object.assign(Object.assign({},v),r)),h({environment:o,environments:t})}),[v,_,h]),S=()=>{y!==LOADING_STATE.LOADING&&(A||i.send("openapi_docs.try_it.opened",{}),f(!A)),y===LOADING_STATE.NOT_LOADED&&O(LOADING_STATE.LOADING)},g=useCallback((e=>{if(!e)return;const o=p.find((o=>o.operationId===e));return m+(null==o?void 0:o.href)}),[p,m]);return t?_jsxs(_Fragment,{children:[_jsx(Button,{onClick:S,variant:"primary",iconPosition:"left",icon:y===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:y===LOADING_STATE.LOADING?a("openapi.loading","Loading..."):a("openapi.tryIt","Try it")}),A&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:s,children:_jsx(ReplayOverlay,{activeOperationId:e.operationId||e.pointer,source:{data:t,type:"openapi"},onRequestChange:I,onClose:S,onLoad:()=>O(LOADING_STATE.LOADED),settings:{corsProxyUrl:o,mockServer:l,environment:T,apiId:null===(n=null===(r=null==c?void 0:c.definition.info)||void 0===r?void 0:r["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:u,disableCollectionsTab:!0,disableWorkflowTab:!0,storageKey:m,convertOperationToReplayValue:(e,o,t)=>convertOperationToReplayValueForRedoc(d)(e,o,t),getOperationUrl:g}})})})})]}):null}export const Replay=memo(ReplayComponent);
|
|
2
2
|
//# sourceMappingURL=Replay.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { UserClaims } from '@redocly/theme';
|
|
1
2
|
import type { OpenAPIDefinition } from '../../types';
|
|
2
3
|
import { type SecurityRequirement } from '../../models';
|
|
3
|
-
export declare function convertOperationToReplayValue(path: string, method: string, openAPI: OpenAPIDefinition): {
|
|
4
|
+
export declare function convertOperationToReplayValue(path: string, method: string, openAPI: OpenAPIDefinition, userClaims?: UserClaims): {
|
|
4
5
|
id: string;
|
|
5
6
|
name: string;
|
|
6
7
|
method: string;
|
|
@@ -19,7 +20,7 @@ export declare function convertOperationToReplayValue(path: string, method: stri
|
|
|
19
20
|
};
|
|
20
21
|
};
|
|
21
22
|
} | undefined;
|
|
22
|
-
export declare function convertOperationToReplayValueForRedoc(path: string, method: string, openAPI: OpenAPIDefinition)
|
|
23
|
+
export declare function convertOperationToReplayValueForRedoc(userClaims?: UserClaims): (path: string, method: string, openAPI: OpenAPIDefinition) => {
|
|
23
24
|
operationId: string;
|
|
24
25
|
id: string;
|
|
25
26
|
name: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __rest=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};import{isPrimitive}from"@redocly/theme";import{getOperation}from"../../models";import{normalizeOptions,OpenAPIParser}from"../../services";import{JsonPointer}from"../../utils";export function convertOperationToReplayValue(e,t,n){var
|
|
1
|
+
var __rest=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};import{isPrimitive}from"@redocly/theme";import{getOperation}from"../../models";import{normalizeOptions,OpenAPIParser}from"../../services";import{JsonPointer}from"../../utils";export function convertOperationToReplayValue(e,t,n,r){var a;if(!n)return;const o=new OpenAPIParser(n),i=null===(a=o.definition.paths)||void 0===a?void 0:a[e],s=null==i?void 0:i[t],l=getOperation(o,Object.assign(Object.assign({},s),{pathName:e,httpVerb:t,pathParameters:i.parameters||[],pathServers:i.servers||[]}),void 0,normalizeOptions({}),"",{isCallback:!1},r);if(!l)return;const m={id:l.id,name:l.name,method:l.httpVerb,operationId:l.operationId,parameters:convertParameters(l.parameters),body:convertRequestBody(l.requestBody,n),path:l.path,href:l.href,servers:l.servers,security:convertRequestSecurity(l.security),responses:Object.fromEntries(l.responses.map((e=>{var t;return[e.code,{code:e.code,description:e.description,mediaTypes:null===(t=e.content)||void 0===t?void 0:t.mediaTypes.reduce(((e,t)=>{var r;return e[t.name]={name:t.name,schema:getBodySchema(null===(r=t.schema)||void 0===r?void 0:r.rawSchema,n)},e}),{})}]})))};return m}export function convertOperationToReplayValueForRedoc(e){return function(t,n,r){const a=convertOperationToReplayValue(t,n,r,e);if(a)return Object.assign(Object.assign({},a),{operationId:a.operationId||JsonPointer.compile(["paths",a.path,a.method])})}}function convertParameters(e,t){const n=new Set,r=e.map((e=>{var r;return n.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(r=null==t?void 0:t[String(e.in)])||void 0===r?void 0:r[e.name])||e.example,schema:e.schema}}));for(const[e,a]of Object.entries(t||{}))for(const[t,o]of Object.entries(a||{}))n.has(e+":"+t)||r.push({name:t,in:e,required:!1,description:"",example:String(o),schema:void 0});return r}function getInputType({type:e,format:t,enum:n}){return"string"!==e||"binary"!==t&&"base64"!==t?"object"===e?"multiline":n.length>0?"select":"text":"file"}function getFieldExamples(e,t){var n,r,a,o,i;const s=(null===(n=e[0])||void 0===n?void 0:n.example)||(null===(r=e[0])||void 0===r?void 0:r.examples);if(s)return s;if(null===(a=e.schema)||void 0===a?void 0:a.example)return e.schema.example;const l=(null===(o=null==t?void 0:t.default)||void 0===o?void 0:o.value)||(null===(i=null==t?void 0:t.default)||void 0===i?void 0:i.rawValue);return(null==l?void 0:l[e.name])?isPrimitive(null==l?void 0:l[e.name])?String(null==l?void 0:l[e.name]):JSON.stringify(null==l?void 0:l[e.name]):""}function convertRequestBody(e,t,n){var r;if(!e||!(null===(r=e.content)||void 0===r?void 0:r.mediaTypes)){if(!n)return;const{activeExampleName:e}=n,t=__rest(n,["activeExampleName"]);return{activeExampleName:e,mediaTypes:Object.fromEntries(Object.entries(t).map((([e,t])=>[e,{name:e,examples:{default:{value:t}},schema:{},parameters:[]}])))}}return{required:e.required,activeExampleName:null==n?void 0:n.activeExampleName,mediaTypes:e.content.mediaTypes.reduce(((e,r)=>{var a,o;const i=r.schema,s=(null==n?void 0:n[r.name])?{default:{value:null==n?void 0:n[r.name],rawValue:null==n?void 0:n[r.name],mime:r.name}}:r.examples||r.formExamples;return e[r.name]={name:r.name,examples:s,schema:getBodySchema(null===(a=r.schema)||void 0===a?void 0:a.rawSchema,t),parameters:null===(o=null==i?void 0:i.fields)||void 0===o?void 0:o.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,s)})))},e}),{})}}function getBodySchema(e,t){if(e&&t)return Object.assign(Object.assign({},e),{components:(null==t?void 0:t.components)||{}})}export function convertRequestSecurity(e){if(e)return e.map((({schemes:e})=>e.map((e=>{const t={id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows,"x-defaultAccessToken":e["x-defaultAccessToken"],"x-defaultTokenType":e["x-defaultTokenType"],"x-defaultClientId":e["x-defaultClientId"],"x-defaultClientSecret":e["x-defaultClientSecret"],"x-defaultUsername":e["x-defaultUsername"],"x-defaultPassword":e["x-defaultPassword"]};return Object.keys(t).forEach((e=>void 0===t[e]&&delete t[e])),t}))))}
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
package/lib-esm/jotai/app.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LayoutVariant } from '@redocly/theme';
|
|
2
|
+
import type { UserClaims } from '@redocly/theme';
|
|
2
3
|
import type { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
4
|
import type { TabType } from '../models/tab';
|
|
4
5
|
declare global {
|
|
@@ -15,6 +16,7 @@ export type AppStore = {
|
|
|
15
16
|
language: string;
|
|
16
17
|
environment: string;
|
|
17
18
|
environments: Record<string, Record<string, string>>;
|
|
19
|
+
userClaims: UserClaims;
|
|
18
20
|
};
|
|
19
21
|
type LanguageAtom = {
|
|
20
22
|
languages?: (TabType & {
|
|
@@ -35,6 +37,7 @@ export declare const environmentAtom: import("jotai").WritableAtom<[Record<strin
|
|
|
35
37
|
export declare const isSidebarOpenedAtom: import("jotai").WritableAtom<boolean, boolean[], void>;
|
|
36
38
|
export declare const activeMimeNameAtom: import("jotai").WritableAtom<string, [string], void>;
|
|
37
39
|
export declare const layoutAtom: import("jotai").WritableAtom<LayoutVariant, LayoutVariant[], void>;
|
|
40
|
+
export declare const userClaimsAtom: import("jotai").WritableAtom<UserClaims, UserClaims[], void>;
|
|
38
41
|
/**
|
|
39
42
|
* appSessionStore saved to session storage
|
|
40
43
|
*/
|
package/lib-esm/jotai/app.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __rest=this&&this.__rest||function(e,t){var o={};for(var
|
|
1
|
+
var __rest=this&&this.__rest||function(e,t){var o={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(o[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(o[a[r]]=e[a[r]])}return o};import{atom}from"jotai";import{atomWithStorage,createJSONStorage}from"jotai/utils";import{IS_BROWSER,LayoutVariant}from"@redocly/theme";import{getCookie,removeCookie,setCookie}from"../utils/cookies";import{globalOptionsAtom}from"./store";import{mergeEnvData}from"../utils/environments";import{fromSessionStorage,safeJsonParse,toSessionStorage}from"../utils";const defaultAppStoreValue={isSidebarOpened:!0,activeMimeName:"",layout:LayoutVariant.THREE_PANEL,language:"",environment:"",environments:{},userClaims:{}},customStorage={getItem:e=>{var t,o;const a=safeJsonParse(getCookie(e,null===(o=null===(t=globalThis.redoclyCookieStorage)||void 0===t?void 0:t.getStore)||void 0===o?void 0:o.call(t))),r=safeJsonParse(fromSessionStorage(e));return Object.assign(Object.assign(Object.assign({},defaultAppStoreValue),r),a)},setItem:(e,t)=>{const{environments:o}=t,a=__rest(t,["environments"]),r={environments:o};setCookie(e,JSON.stringify(a)),toSessionStorage(e,JSON.stringify(r))},removeItem:e=>{removeCookie(e),sessionStorage.removeItem(e)}};export const appStore=atomWithStorage("redoc.appStore",defaultAppStoreValue,customStorage);export const appStoreOverrideAtom=atom({});export const environmentsAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom);return mergeEnvData(t.environments,(null==o?void 0:o.environments)||{})}));export const environmentAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom),a=mergeEnvData(t.environments,(null==o?void 0:o.environments)||{}),r=(null==o?void 0:o.environment)||t.environment,n=a[r]?r:Object.keys(a)[0];return[a[n]||{},n||""]}),((e,t,{environment:o,environments:a})=>{const r=e(appStore);t(appStore,Object.assign(Object.assign({},r),{environment:o||r.environment,environments:mergeEnvData(r.environments||{},a)}))}));export const isSidebarOpenedAtom=atom((e=>e(appStore).isSidebarOpened),((e,t,o)=>{const a=e(appStore);t(appStore,Object.assign(Object.assign({},a),{isSidebarOpened:o}))}));export const activeMimeNameAtom=atom((e=>e(appStore).activeMimeName),((e,t,o)=>{const a=e(appStore);t(appStore,Object.assign(Object.assign({},a),{activeMimeName:o}))}));export const layoutAtom=atom((e=>e(appStore).layout),((e,t,o=LayoutVariant.STACKED)=>{const a=e(appStore);t(appStore,Object.assign(Object.assign({},a),{layout:o}))}));export const userClaimsAtom=atom((e=>e(appStore).userClaims),((e,t,o)=>{const a=e(appStore);t(appStore,Object.assign(Object.assign({},a),{userClaims:o}))}));export const appSessionStore=atomWithStorage("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},IS_BROWSER?createJSONStorage((()=>sessionStorage)):void 0);export const collapsedSidebarAtom=atom((e=>e(appSessionStore).collapsedSidebar),((e,t,o)=>{const a=e(appSessionStore);t(appSessionStore,Object.assign(Object.assign({},a),{collapsedSidebar:o}))}));export function getLangKey({lang:e,label:t}){return(t||e).toLowerCase()}export const languageAtom=atom((e=>{var t,o,a;const{codeSamples:r}=e(globalOptionsAtom),n=r.languages.map((({lang:e,label:t},o)=>({key:getLangKey({lang:e,label:t}),lang:e,title:t||e,order:o}))),s=e(appStore).language||(null===(t=n[0])||void 0===t?void 0:t.key);return{languages:n,activeLanguage:(null===(o=n.find((({key:e})=>e===s)))||void 0===o?void 0:o.key)||(null===(a=n[0])||void 0===a?void 0:a.key)}}),((e,t,o)=>{const a=e(appStore);t(appStore,Object.assign(Object.assign({},a),{language:o}))}));
|
|
2
2
|
//# sourceMappingURL=app.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Options, OpenAPIParser } from '../services';
|
|
2
2
|
import type { OpenAPICallback, Referenced } from '../types';
|
|
3
3
|
import type { CallbackModel, GroupModel } from './types';
|
|
4
|
-
|
|
4
|
+
import type { UserClaims } from '@redocly/theme';
|
|
5
|
+
export declare function getCallback(parser: OpenAPIParser, name: string, infoOrRef: Referenced<OpenAPICallback>, parentPointer: string, options: Options, href: string, parent?: GroupModel, userClaims?: UserClaims): CallbackModel;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{isOperationName,JsonPointer}from"../utils";import{getOperation}from"./operation";import{joinWithSeparator}from"../services";export function getCallback(e,t,r,o,a,s,i){const{resolved:
|
|
1
|
+
import{isOperationName,JsonPointer}from"../utils";import{getOperation}from"./operation";import{joinWithSeparator}from"../services";export function getCallback(e,t,r,o,a,s,i,n){const{resolved:p}=e.deref(r),c=[];for(const r of Object.keys(p)){const m=p[r],f=Object.keys(m).filter(isOperationName);for(const p of f){const f=m[p],l=getOperation(e,Object.assign(Object.assign({},f),{pathName:r,pointer:JsonPointer.join(o,["callbacks",t,p]),httpVerb:p,pathParameters:m.parameters||[],pathServers:m.servers}),i,a,s,{isCallback:!0,id:joinWithSeparator(t,p)},n);c.push(l)}}return{name:t,operations:c}}
|
|
2
2
|
//# sourceMappingURL=callback.js.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { UserClaims } from '@redocly/theme';
|
|
1
2
|
import type { ExtendedOpenAPIOperation, Unstable_ExternalCodeSample, OpenAPIParser, Options } from '../services';
|
|
2
3
|
import type { OpenAPIServer, OpenAPIXCodeSample } from '../types';
|
|
3
4
|
import type { MediaContentModel, OperationModel, GroupModel } from './types';
|
|
@@ -15,5 +16,5 @@ export interface Callback {
|
|
|
15
16
|
id?: string;
|
|
16
17
|
}
|
|
17
18
|
export declare function isPayloadSample(sample: XPayloadSample | OpenAPIXCodeSample | Unstable_ExternalCodeSample): sample is XPayloadSample;
|
|
18
|
-
export declare function getOperation(parser: OpenAPIParser, operationDefinition: ExtendedOpenAPIOperation, parent: GroupModel | undefined, options: Options, href: string, callback?: Callback): OperationModel;
|
|
19
|
+
export declare function getOperation(parser: OpenAPIParser, operationDefinition: ExtendedOpenAPIOperation, parent: GroupModel | undefined, options: Options, href: string, callback?: Callback, userClaims?: UserClaims): OperationModel;
|
|
19
20
|
export declare function mergeInMockServer(servers: OpenAPIServer[], mockServerOptions: Options['mockServer']): OpenAPIServer[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{configure,isObject,removeLeadingSlash}from"@redocly/theme";import{REDOCLY_TEAMS_RBAC}from"@redocly/config";import{extractExtensions,getOperationId,getOperationName,getStatusCodeType,getValueFromMdParsedExtension,isStatusCode,JsonPointer,mergeParams,normalizeServers,sortByDeprecated,sortByRequired}from"../utils";import{getCallback}from"./callback";import{getField}from"./field";import{getRequestBody}from"./request";import{getSecurity}from"./security";import{getResponse}from"./response";import{getHref}from"../services/menu/operation";export function isPayloadSample(e){return"Payload"===e.lang&&"requestBodyContent"in e}export function getOperation(e,t,r,o,s,i){var
|
|
1
|
+
import{configure,isObject,removeLeadingSlash}from"@redocly/theme";import{REDOCLY_TEAMS_RBAC}from"@redocly/config";import{extractExtensions,getOperationId,getOperationName,getStatusCodeType,getValueFromMdParsedExtension,isStatusCode,JsonPointer,mergeParams,normalizeServers,sortByDeprecated,sortByRequired}from"../utils";import{getCallback}from"./callback";import{getField}from"./field";import{getRequestBody}from"./request";import{getSecurity}from"./security";import{getResponse}from"./response";import{getHref}from"../services/menu/operation";export function isPayloadSample(e){return"Payload"===e.lang&&"requestBodyContent"in e}export function getOperation(e,t,r,o,s,i,a){var n,l,d,c;const p=t.isWebhook,u={operationDefinition:t,parent:r,pointer:t.pointer,description:getValueFromMdParsedExtension(t,"description"),externalDocs:t.externalDocs,deprecated:!!t.deprecated,httpVerb:t.httpVerb,operationId:t.operationId,path:t.pathName,isWebhook:p,isCallback:Boolean(null==i?void 0:i.isCallback),isEvent:(null==i?void 0:i.isCallback)||p,name:getOperationName(t),defaultExampleName:t.defaultSampleName,[REDOCLY_TEAMS_RBAC]:t[REDOCLY_TEAMS_RBAC]||(null==r?void 0:r[REDOCLY_TEAMS_RBAC]),type:"operation",callbackId:null==i?void 0:i.id,href:s,get callbacks(){return Object.keys(t.callbacks||[]).map((i=>{var n;return getCallback(e,i,null===(n=t.callbacks)||void 0===n?void 0:n[i],u.pointer,o,s,r,a)}))},get responses(){let r=!1;return Object.keys(t.responses||[]).filter((e=>"default"===e||("success"===getStatusCodeType(e)&&(r=!0),isStatusCode(e)))).map((s=>getResponse({parser:e,code:s,defaultAsError:r,infoOrRef:t.responses[s],options:o,isEvent:u.isEvent,operation:u})))},get parameters(){return processParameters(e,t,u,o,f)}};if(null==i?void 0:i.isCallback)u.security=getSecurity(t.security,e),u.servers=normalizeServers("",t.servers||t.pathServers||[]),u.id=removeLeadingSlash(s);else{u.id=getOperationId(t,r),u.href=u.href||getHref(u),u.security=getSecurity(t.security||e.definition.security,e);const s=t.servers||((null===(n=t.pathServers)||void 0===n?void 0:n.length)?t.pathServers:null)||e.definition.servers||[];u.servers=normalizeServers(e.definitionUrl,mergeInMockServer(s,o.mockServer))}o.showExtensions&&(u.extensions=extractExtensions(t,o.showExtensions)),u.requestBody=t.requestBody?getRequestBody({parser:e,infoOrRef:t.requestBody,options:o,operation:u,isEvent:u.isEvent}):void 0;const m=null===(l=u.requestBody)||void 0===l?void 0:l.content;u.payload={lang:"Payload",source:"",requestBodyContent:(null==m?void 0:m.hasSample)?m:void 0},u.definitionSamples=t["x-codeSamples"]||[],u.badges=(null===(d=t["x-badges"])||void 0===d?void 0:d.map((({name:e,color:t,position:r})=>({name:e,color:t||"var(--color-info-base)",position:r||"after"}))))||[],u.hasSamples=(null==m?void 0:m.hasSample)||u.definitionSamples.length>0,u.hideReplay=!0===t["x-hideReplay"];const f=(null===(c=configure({userClaims:a,operation:{operationId:u.operationId,name:u.name,path:u.path,href:u.href,method:u.httpVerb}}))||void 0===c?void 0:c.requestValues)||{};return Object.keys(f).length>0&&(updateRequestBodyWithUserValues(u,f),updateSecurityWithUserValues(u,f.security)),u}function updateRequestBodyWithUserValues(e,t){if(!e.requestBody||!(null==t?void 0:t.body))return;const r=e.requestBody.content;if(null==r?void 0:r.mediaTypes){for(const e of r.mediaTypes)e.examples&&Object.keys(e.examples).forEach((r=>{var o,s;const i=null===(s=null===(o=e.examples)||void 0===o?void 0:o[r])||void 0===s?void 0:s.value;let a;a=isObject(i)?updateObjectProperties(i,t.body):t.body,e.examples[r]={value:a,rawValue:a,mime:e.name}}));return e}}function updateSecurityWithUserValues(e,t){if(!t||!e.security.length)return;const r=e=>{var r,o,s;const i={"x-defaultAccessToken":null===(r=t.token)||void 0===r?void 0:r.access_token,"x-defaultTokenType":(null===(o=t.token)||void 0===o?void 0:o.token_type)||"Bearer","x-defaultClientId":t.client_id,"x-defaultClientSecret":t.client_secret,scopes:t.scopes||e.scopes};"http"===e.type&&"basic"===e.scheme?(i["x-defaultUsername"]=t.username,i["x-defaultPassword"]=t.password,delete i["x-defaultAccessToken"],delete i["x-defaultTokenType"]):"oauth2"!==e.type||(null===(s=t.token)||void 0===s?void 0:s.access_token)||(delete i["x-defaultAccessToken"],delete i["x-defaultTokenType"]),Object.assign(e,i)};e.security.forEach((e=>{e.schemes.forEach(r)}))}function processParameters(e,t,r,o,s){let i=mergeParams(e,t.pathParameters,t.parameters,{pathPointer:JsonPointer.dirName(r.pointer),operationPointer:r.pointer}).map((({paramOrRef:t,pointer:i})=>{var a;const n=getField(e,t,i,o,{operation:r,type:"request"});if(s){const{in:e,name:t}=n,r={header:s.headers,query:s.query,path:s.path,cookie:s.cookie};e&&(null===(a=r[e])||void 0===a?void 0:a[t])&&(n.example=r[e][t])}return n}));return o.sortRequiredPropsFirst&&(i=sortByRequired(i)),sortByDeprecated(i)}function updateObjectProperties(e,t){if(!e||"object"!=typeof e)return t;if(Array.isArray(e)&&Array.isArray(t))return t;const r=Array.isArray(e)?[...e]:Object.assign({},e);for(const[o,s]of Object.entries(t))o in e&&(Array.isArray(e[o])?r[o]=s:"object"==typeof s&&null!==s&&"object"==typeof e[o]?r[o]=updateObjectProperties(e[o],s):r[o]=s);return r}export function mergeInMockServer(e,t){if(!t)return e;const r={url:t.url,description:t.description};switch(t.position){case"first":return[r,...e];case"last":return[...e,r];case"replace":return[r];default:return e}}
|
|
2
2
|
//# sourceMappingURL=operation.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/openapi-docs",
|
|
3
|
-
"version": "3.8.0-next.
|
|
3
|
+
"version": "3.8.0-next.2",
|
|
4
4
|
"description": "Redocly OpenAPI Docs",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"util": "~0.12.5",
|
|
45
45
|
"web-vitals": "3.3.1",
|
|
46
46
|
"@redocly/config": "0.22.1",
|
|
47
|
-
"@redocly/replay": "0.11.0-next.
|
|
47
|
+
"@redocly/replay": "0.11.0-next.2"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@shikijs/transformers": "1.24.0",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"webpack": "5.94.0",
|
|
94
94
|
"webpack-cli": "5.1.4",
|
|
95
95
|
"webpack-dev-server": "5.1.0",
|
|
96
|
-
"@redocly/theme": "0.52.0-next.
|
|
96
|
+
"@redocly/theme": "0.52.0-next.2"
|
|
97
97
|
},
|
|
98
98
|
"scripts": {
|
|
99
99
|
"start": "npm run copy-highlight-hook && webpack serve --mode=development --hot",
|