@redocly/openapi-docs 3.4.20 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/redocly-openapi-docs.min.js +1200 -1198
- package/lib/components/OperationItem/OperationItem.js +1 -1
- package/lib/components/OperationItem/_tests_/OperationItem.test.js +1 -1
- package/lib/components/OperationItem/_tests_/__mocks__/mock-intersection-observer.d.ts +15 -0
- package/lib/components/OperationItem/_tests_/__mocks__/mock-intersection-observer.js +2 -0
- package/lib/components/PayloadSamples/PayloadSamples.js +1 -1
- package/lib/components/RedoclyOpenAPIDocs/Providers.js +1 -1
- package/lib/components/Replay/utils.js +1 -1
- package/lib/components/common/linkify.d.ts +0 -8
- package/lib/components/common/linkify.js +2 -2
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +1 -1
- package/lib/hooks/useIsContentVisible.d.ts +8 -0
- package/lib/hooks/useIsContentVisible.js +2 -0
- package/lib/models/mediaType.js +1 -1
- package/lib/models/operation.d.ts +1 -1
- package/lib/models/operation.js +1 -1
- package/lib/services/code-samples/generator.js +1 -1
- package/lib/services/config-options/normalizeOptions.js +1 -1
- package/lib/types/open-api.d.ts +8 -0
- package/lib-esm/components/OperationItem/OperationItem.js +1 -1
- package/lib-esm/components/OperationItem/_tests_/OperationItem.test.js +1 -1
- package/lib-esm/components/OperationItem/_tests_/__mocks__/mock-intersection-observer.d.ts +15 -0
- package/lib-esm/components/OperationItem/_tests_/__mocks__/mock-intersection-observer.js +2 -0
- package/lib-esm/components/PayloadSamples/PayloadSamples.js +1 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/Providers.js +1 -1
- package/lib-esm/components/Replay/utils.js +1 -1
- package/lib-esm/components/common/linkify.d.ts +0 -8
- package/lib-esm/components/common/linkify.js +2 -2
- package/lib-esm/hooks/index.d.ts +1 -0
- package/lib-esm/hooks/index.js +1 -1
- package/lib-esm/hooks/useIsContentVisible.d.ts +8 -0
- package/lib-esm/hooks/useIsContentVisible.js +2 -0
- package/lib-esm/models/mediaType.js +1 -1
- package/lib-esm/models/operation.d.ts +1 -1
- package/lib-esm/models/operation.js +1 -1
- package/lib-esm/services/code-samples/generator.js +1 -1
- package/lib-esm/services/config-options/normalizeOptions.js +1 -1
- package/lib-esm/types/open-api.d.ts +8 -0
- package/package.json +4 -4
- package/lib/utils/convertExamplesFormat.d.ts +0 -2
- package/lib/utils/convertExamplesFormat.js +0 -2
- package/lib-esm/utils/convertExamplesFormat.d.ts +0 -2
- package/lib-esm/utils/convertExamplesFormat.js +0 -2
|
@@ -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"),react_router_dom_1=require("react-router-dom"),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"),utils_1=require("../../utils");function OperationItemComponent({item:{operationDefinition:e,parent:t,href:s}}){var a,o;const i=(0,react_router_dom_1.useLocation)(),n=(0,react_1.useMemo)((()=>!theme_1.IS_BROWSER||"undefined"!=typeof window||(0,utils_1.pathIncludesLink)(i,e.operationId)),[i,e.operationId]),{isVisible:r,targetRef:l}=(0,hooks_1.useIsContentVisible)({defaultVisible:n}),_=(0,hooks_1.useTranslate)(),{parser:d,options:p}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),m=(0,jotai_1.useAtomValue)(app_1.layoutAtom),[u,c]=(0,react_1.useState)(),{unstable_hooks:x,feedback:j}=p,k=(0,react_1.useMemo)((()=>(0,operation_1.getOperation)(d,e,t,p,s,void 0,r)),[s,r,e,p,t,d]),{name:h,deprecated:b,isWebhook:S,badges:R}=k||{},g=m===theme_1.LayoutVariant.STACKED,f=(null==j?void 0:j.type)||"sentiment",q=!0!==(null==j?void 0:j.hide),[v,O]=(0,react_1.useState)(null),y=(0,react_1.useCallback)((e=>{u!==e&&c(e)}),[u]),C=(0,react_1.useMemo)((()=>q?(0,jsx_runtime_1.jsx)(FeedbackWrapper,{children:(0,jsx_runtime_1.jsx)(theme_1.Feedback,{type:f,settings:j.settings,path:(0,services_1.joinWithSeparator)(p.routingBasePath,k.href)})}):null),[q,f,j.settings,p.routingBasePath,k.href]);return(0,jsx_runtime_1.jsxs)(OperationRow,{layout:m,ref:l,children:[(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:m,children:(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:g,children:[(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.BeforeOpenApiOperation||(null==x?void 0:x.BeforeOperation),props:{operation:k}}),(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 ${h}`}),(0,jsx_runtime_1.jsx)(common_1.CustomBadges,{badges:R,children:h}),b&&(0,jsx_runtime_1.jsx)(Badges_1.StyledBadge,{deprecated:!0,children:_("openapi.badges.deprecated","Deprecated")}),S&&(0,jsx_runtime_1.jsx)(Badges_1.StyledBadge,{children:_("openapi.badges.webhook","Webhook")})]})]})}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:m,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:g,children:(0,jsx_runtime_1.jsx)(RequestDetails_1.RequestDetails,{operation:k,translate:_})}),r&&(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:g,"data-testid":"samples-block",className:"panel-container-request-samples",children:(0,jsx_runtime_1.jsx)(RequestSamples_1.RequestSamples,{operation:k})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:m,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:g,children:(null===(a=k.responses)||void 0===a?void 0:a.length)?(0,jsx_runtime_1.jsx)(Responses_1.OperationResponseList,{responses:k.responses,operationId:k.id,operationPointer:k.pointer,callbackId:k.callbackId,activeResponseTab:u,onTabChange:y}):null}),r&&(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:g,"data-testid":"samples-block",className:"panel-container-response-samples",children:(0,jsx_runtime_1.jsx)(ResponseSamples_1.ResponseSamples,{operation:k,activeResponseTab:u,onTabChange:y})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:m,children:[(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:g,children:[(null===(o=k.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)(k.id,"callbacks")}),_("openapi.callbacks","Callbacks")]}),(0,jsx_runtime_1.jsx)(Callbacks_1.CallbacksList,{callbacks:k.callbacks,onExpand:O,selectedCallback:v})]}):null,(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiOperation||(null==x?void 0:x.AfterOperation),props:{operation:k}})]}),v?(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:g,"data-testid":"samples-block",children:(0,jsx_runtime_1.jsx)(CallbackSamples_1.CallbackSamples,{callback:v,translate:_})}):null]}),(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:m,children:(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:g,fullWidth:!0,children:C})})]})}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 __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("@testing-library/react"),react_router_dom_1=require("react-router-dom"),OperationItem_1=require("../OperationItem"),services_1=require("../../../services"),petstore_json_1=__importDefault(require("./fixtures/petstore.json")),operationDefinition_json_1=__importDefault(require("./fixtures/operationDefinition.json")),app_1=require("../../../jotai/app"),store_1=require("../../../jotai/store");jest.mock("jotai",(()=>Object.assign(Object.assign({},jest.requireActual("jotai")),{useAtomValue:jest.fn((e=>e===store_1.globalStoreAtom?{parser:{definition:petstore_json_1.default},options:(0,services_1.normalizeOptions)({codeSamples:{languages:[{lang:"curl",label:"curl"}]}})}:e===app_1.environmentAtom?[{},""]:{})),useAtom:jest.fn((e=>e===app_1.environmentAtom?[[{server:{}}],jest.fn()]:[{activeOneOf:{"/paths/~1pet/post":0},requestValues:{},request:{expandedFields:{}},response:{expandedFields:{}},activeLanguage:"curl"},jest.fn()]))}))),describe("OperationItem",(()=>{it("should render badges with correct position",(()=>{const{getByTestId:e}=(0,react_1.render)((0,jsx_runtime_1.jsx)(OperationItem_1.OperationItem,{item:{operationDefinition:operationDefinition_json_1.default,parent:void 0,href:"test"}}),{wrapper:react_router_dom_1.BrowserRouter}),t=e("operation-item-header").childNodes;expect(t[1].textContent).toBe("Alpha"),expect(t[3].textContent).toBe("Beta"),expect(t[4].textContent).toBe("Gamma")}))}));
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("@testing-library/react"),react_router_dom_1=require("react-router-dom"),OperationItem_1=require("../OperationItem"),services_1=require("../../../services"),petstore_json_1=__importDefault(require("./fixtures/petstore.json")),operationDefinition_json_1=__importDefault(require("./fixtures/operationDefinition.json")),app_1=require("../../../jotai/app"),store_1=require("../../../jotai/store"),mock_intersection_observer_1=require("./__mocks__/mock-intersection-observer");jest.mock("jotai",(()=>Object.assign(Object.assign({},jest.requireActual("jotai")),{useAtomValue:jest.fn((e=>e===store_1.globalStoreAtom?{parser:{definition:petstore_json_1.default},options:(0,services_1.normalizeOptions)({codeSamples:{languages:[{lang:"curl",label:"curl"}]}})}:e===app_1.environmentAtom?[{},""]:{})),useAtom:jest.fn((e=>e===app_1.environmentAtom?[[{server:{}}],jest.fn()]:[{activeOneOf:{"/paths/~1pet/post":0},requestValues:{},request:{expandedFields:{}},response:{expandedFields:{}},activeLanguage:"curl"},jest.fn()]))}))),describe("OperationItem",(()=>{beforeAll((()=>{window.IntersectionObserver=mock_intersection_observer_1.MockIntersectionObserver})),it("should render badges with correct position",(()=>{const{getByTestId:e}=(0,react_1.render)((0,jsx_runtime_1.jsx)(OperationItem_1.OperationItem,{item:{operationDefinition:operationDefinition_json_1.default,parent:void 0,href:"test"}}),{wrapper:react_router_dom_1.BrowserRouter}),t=e("operation-item-header").childNodes;expect(t[1].textContent).toBe("Alpha"),expect(t[3].textContent).toBe("Beta"),expect(t[4].textContent).toBe("Gamma")}))}));
|
|
2
2
|
//# sourceMappingURL=OperationItem.test.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class MockIntersectionObserver {
|
|
2
|
+
readonly root: Element | Document | null;
|
|
3
|
+
readonly rootMargin: string;
|
|
4
|
+
readonly thresholds: ReadonlyArray<number>;
|
|
5
|
+
private viewPort;
|
|
6
|
+
private entries;
|
|
7
|
+
private readonly callback;
|
|
8
|
+
constructor(callback: IntersectionObserverCallback, options?: IntersectionObserverInit);
|
|
9
|
+
private intersect;
|
|
10
|
+
isInViewPort(target: HTMLElement): boolean;
|
|
11
|
+
observe(target: HTMLElement): void;
|
|
12
|
+
unobserve(target: HTMLElement): void;
|
|
13
|
+
disconnect(): void;
|
|
14
|
+
takeRecords(): any[];
|
|
15
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MockIntersectionObserver=void 0;class MockIntersectionObserver{constructor(e,t){Object.defineProperty(this,"root",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"rootMargin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thresholds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"viewPort",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"entries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"callback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"intersect",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.entries.map((e=>{e.isIntersecting=this.isInViewPort(e.target)})),this.callback(this.entries,this)}}),this.viewPort=(null==t?void 0:t.root)?t.root:window,this.entries=[],this.root=null,this.rootMargin="0px",this.thresholds=[1],this.callback=e,this.viewPort.addEventListener("scroll",this.intersect)}isInViewPort(e){return"toc-0"!==e.id}observe(e){this.entries.push({isIntersecting:!1,target:e})}unobserve(e){this.entries=this.entries.filter((t=>t.target!==e))}disconnect(){this.viewPort.removeEventListener("scroll",this.intersect),this.entries=[]}takeRecords(){return this.entries}}exports.MockIntersectionObserver=MockIntersectionObserver;
|
|
2
|
+
//# sourceMappingURL=mock-intersection-observer.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __rest=this&&this.__rest||function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]])}return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PayloadSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),SelectOrLabel_1=require("../SelectOrLabel"),MediaTypeSwitch_1=require("../MediaTypeSwitch"),common_1=require("../common"),MediaTypeSamples_1=require("./MediaTypeSamples"),styled_1=require("./styled"),app_1=require("../../jotai/app"),hooks_1=require("../../hooks")
|
|
1
|
+
"use strict";var __rest=this&&this.__rest||function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]])}return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PayloadSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),SelectOrLabel_1=require("../SelectOrLabel"),MediaTypeSwitch_1=require("../MediaTypeSwitch"),common_1=require("../common"),MediaTypeSamples_1=require("./MediaTypeSamples"),styled_1=require("./styled"),app_1=require("../../jotai/app"),hooks_1=require("../../hooks");function PayloadSamplesComponent(e){var{onlyDefaultMimeType:t,content:r}=e,a=__rest(e,["onlyDefaultMimeType","content"]);const o=(0,hooks_1.useActivateExample)(r),l=(0,jotai_1.useAtomValue)(app_1.activeMimeNameAtom),s=t&&l,i=(0,hooks_1.useTranslate)(),n=(0,react_1.useCallback)((e=>s?null:(0,jsx_runtime_1.jsx)(styled_1.SelectWrapper,{children:(0,jsx_runtime_1.jsx)(SelectOrLabel_1.SelectOrLabel,Object.assign({Label:common_1.MimeLabel,Select:common_1.Select,variant:"dark",fullWidth:!0},e))})),[s]),p=e=>o(e);return r?(0,jsx_runtime_1.jsx)(MediaTypeSwitch_1.MediaTypesSwitch,{content:r,renderSelect:n,children:e=>(0,jsx_runtime_1.jsx)(MediaTypeSamples_1.MediaTypeSamples,Object.assign({mediaType:e},a,{onChange:p}),"samples")}):(0,jsx_runtime_1.jsx)(styled_1.StyledCodeBlock,{lang:"text",source:i("openapi.noRequestPayload","No request payload"),header:{controls:!1}})}exports.PayloadSamples=(0,react_1.memo)(PayloadSamplesComponent);
|
|
2
2
|
//# sourceMappingURL=PayloadSamples.js.map
|
|
@@ -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"),
|
|
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]})}));
|
|
2
2
|
//# sourceMappingURL=Providers.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.convertOperationToReplayValue=convertOperationToReplayValue,exports.convertRequestSecurity=convertRequestSecurity;const theme_1=require("@redocly/theme");function convertOperationToReplayValue(e,n,
|
|
1
|
+
"use strict";var __rest=this&&this.__rest||function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[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])&&(n[a[r]]=e[a[r]])}return n};Object.defineProperty(exports,"__esModule",{value:!0}),exports.convertOperationToReplayValue=convertOperationToReplayValue,exports.convertRequestSecurity=convertRequestSecurity;const theme_1=require("@redocly/theme");function convertOperationToReplayValue(e,t,n,a){var r,i;const o=(null==a?void 0:a.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==n?void 0:n.requestValues),body:convertRequestBody(e.requestBody,t,(null===(r=null==n?void 0:n.requestValues)||void 0===r?void 0:r.body)?{activeExampleName:null==n?void 0:n.activeExampleName,[o]:null===(i=null==n?void 0:n.requestValues)||void 0===i?void 0:i.body}:{activeExampleName:null==n?void 0:n.activeExampleName}),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,t){const n=new Set,a=e.map((e=>{var a;return n.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(a=null==t?void 0:t[String(e.in)])||void 0===a?void 0:a[e.name])||e.example,schema:e.schema}}));for(const[e,r]of Object.entries(t||{}))for(const[t,i]of Object.entries(r||{}))n.has(e+":"+t)||a.push({name:t,in:e,required:!1,description:"",example:String(i),schema:void 0});return a}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,a,r,i,o;const l=(null===(n=e[0])||void 0===n?void 0:n.example)||(null===(a=e[0])||void 0===a?void 0:a.examples);if(l)return l;if(null===(r=e.schema)||void 0===r?void 0:r.example)return e.schema.example;const m=(null===(i=null==t?void 0:t.default)||void 0===i?void 0:i.value)||(null===(o=null==t?void 0:t.default)||void 0===o?void 0:o.rawValue);return(null==m?void 0:m[e.name])?(0,theme_1.isPrimitive)(null==m?void 0:m[e.name])?String(null==m?void 0:m[e.name]):JSON.stringify(null==m?void 0:m[e.name]):""}function convertRequestBody(e,t,n){var a;if(!e||!(null===(a=e.content)||void 0===a?void 0:a.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,a)=>{var r,i;const o=a.schema,l=(null==n?void 0:n[a.name])?{default:{value:null==n?void 0:n[a.name],rawValue:null==n?void 0:n[a.name],mime:a.name}}:a.examples||a.formExamples;return e[a.name]={name:a.name,examples:l,schema:getBodySchema(null===(r=a.schema)||void 0===r?void 0:r.rawSchema,t),parameters:null===(i=null==o?void 0:o.fields)||void 0===i?void 0:i.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},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=>({id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -8,11 +8,3 @@ export declare function Link(props: PropsWithChildren<{
|
|
|
8
8
|
}>): ReactElement | null;
|
|
9
9
|
export declare const StyledShareLink: import("styled-components").StyledComponent<typeof Link, any, {}, never>;
|
|
10
10
|
export declare function ShareLink(props: any): ReactElement;
|
|
11
|
-
export declare function MarkdownHeading({ level, id, children, 'data-source': dataSource, 'data-hash': dataHash, className, }: PropsWithChildren<{
|
|
12
|
-
level: number;
|
|
13
|
-
id: string;
|
|
14
|
-
'data-source'?: string;
|
|
15
|
-
'data-hash'?: string;
|
|
16
|
-
className?: string;
|
|
17
|
-
source?: string | 'openapi-docs';
|
|
18
|
-
}>): JSX.Element;
|
|
@@ -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.StyledShareLink=void 0,exports.Link=Link,exports.ShareLink=ShareLink
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.StyledShareLink=void 0,exports.Link=Link,exports.ShareLink=ShareLink;const jsx_runtime_1=require("react/jsx-runtime"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),react_router_dom_1=require("react-router-dom"),theme_1=require("@redocly/theme"),store_1=require("../../jotai/store"),utils_1=require("../../utils");function Link(e){var t;const{routingBasePath:i,unstable_hooks:r,onDeepLinkClick:n}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),o=e.security?null===(t=null==r?void 0:r.replaceSecurityLink)||void 0===t?void 0:t.call(r,{securityRequirementId:e.to}):e.to,s=n&&{onClick:e=>{e.preventDefault(),n(i+o)}};return o?(0,jsx_runtime_1.jsx)(react_router_dom_1.Link,Object.assign({"aria-label":e["aria-label"]||`link to ${o}`,id:(0,utils_1.tryDecodeURIComponent)(e.id||""),className:e.className||"",to:(null==o?void 0:o.startsWith("#"))?o:i+o},s,{children:e.children})):e.children?(0,jsx_runtime_1.jsxs)("span",{"aria-label":e["aria-label"]||`link to ${o}`,className:e.className,children:[" ",e.children," "]}):null}function ShareLink(e){return(0,jsx_runtime_1.jsx)(exports.StyledShareLink,Object.assign({},e,{children:(0,jsx_runtime_1.jsx)(theme_1.LinkIcon,{size:"13px",color:"--heading-anchor-color"})}))}exports.StyledShareLink=(0,styled_components_1.default)(Link)`
|
|
2
2
|
position: absolute;
|
|
3
3
|
top: 50%;
|
|
4
4
|
left: 0;
|
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
visibility: visible;
|
|
18
18
|
opacity: 1;
|
|
19
19
|
}
|
|
20
|
-
`;
|
|
20
|
+
`;
|
|
21
21
|
//# sourceMappingURL=linkify.js.map
|
package/lib/hooks/index.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export { useContentItems } from './useContentItems';
|
|
|
6
6
|
export { useActiveWithFallback } from './useActiveWithFallback';
|
|
7
7
|
export { useUppercase2LowercaseRedirect } from './useUppercase2LowercaseRedirect';
|
|
8
8
|
export { useTranslate } from './useTranslate';
|
|
9
|
+
export { useIsContentVisible } from './useIsContentVisible';
|
package/lib/hooks/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useTranslate=exports.useUppercase2LowercaseRedirect=exports.useActiveWithFallback=exports.useContentItems=exports.useRouter=exports.useActivateExample=exports.usePrevious=exports.useDimensions=void 0;var useDimensions_1=require("./useDimensions");Object.defineProperty(exports,"useDimensions",{enumerable:!0,get:function(){return useDimensions_1.useDimensions}});var usePrevious_1=require("./usePrevious");Object.defineProperty(exports,"usePrevious",{enumerable:!0,get:function(){return usePrevious_1.usePrevious}});var useActivateExample_1=require("./useActivateExample");Object.defineProperty(exports,"useActivateExample",{enumerable:!0,get:function(){return useActivateExample_1.useActivateExample}});var useRouter_1=require("./useRouter");Object.defineProperty(exports,"useRouter",{enumerable:!0,get:function(){return useRouter_1.useRouter}});var useContentItems_1=require("./useContentItems");Object.defineProperty(exports,"useContentItems",{enumerable:!0,get:function(){return useContentItems_1.useContentItems}});var useActiveWithFallback_1=require("./useActiveWithFallback");Object.defineProperty(exports,"useActiveWithFallback",{enumerable:!0,get:function(){return useActiveWithFallback_1.useActiveWithFallback}});var useUppercase2LowercaseRedirect_1=require("./useUppercase2LowercaseRedirect");Object.defineProperty(exports,"useUppercase2LowercaseRedirect",{enumerable:!0,get:function(){return useUppercase2LowercaseRedirect_1.useUppercase2LowercaseRedirect}});var useTranslate_1=require("./useTranslate");Object.defineProperty(exports,"useTranslate",{enumerable:!0,get:function(){return useTranslate_1.useTranslate}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useIsContentVisible=exports.useTranslate=exports.useUppercase2LowercaseRedirect=exports.useActiveWithFallback=exports.useContentItems=exports.useRouter=exports.useActivateExample=exports.usePrevious=exports.useDimensions=void 0;var useDimensions_1=require("./useDimensions");Object.defineProperty(exports,"useDimensions",{enumerable:!0,get:function(){return useDimensions_1.useDimensions}});var usePrevious_1=require("./usePrevious");Object.defineProperty(exports,"usePrevious",{enumerable:!0,get:function(){return usePrevious_1.usePrevious}});var useActivateExample_1=require("./useActivateExample");Object.defineProperty(exports,"useActivateExample",{enumerable:!0,get:function(){return useActivateExample_1.useActivateExample}});var useRouter_1=require("./useRouter");Object.defineProperty(exports,"useRouter",{enumerable:!0,get:function(){return useRouter_1.useRouter}});var useContentItems_1=require("./useContentItems");Object.defineProperty(exports,"useContentItems",{enumerable:!0,get:function(){return useContentItems_1.useContentItems}});var useActiveWithFallback_1=require("./useActiveWithFallback");Object.defineProperty(exports,"useActiveWithFallback",{enumerable:!0,get:function(){return useActiveWithFallback_1.useActiveWithFallback}});var useUppercase2LowercaseRedirect_1=require("./useUppercase2LowercaseRedirect");Object.defineProperty(exports,"useUppercase2LowercaseRedirect",{enumerable:!0,get:function(){return useUppercase2LowercaseRedirect_1.useUppercase2LowercaseRedirect}});var useTranslate_1=require("./useTranslate");Object.defineProperty(exports,"useTranslate",{enumerable:!0,get:function(){return useTranslate_1.useTranslate}});var useIsContentVisible_1=require("./useIsContentVisible");Object.defineProperty(exports,"useIsContentVisible",{enumerable:!0,get:function(){return useIsContentVisible_1.useIsContentVisible}});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useIsContentVisible=useIsContentVisible;const react_1=require("react"),theme_1=require("@redocly/theme");function useIsContentVisible({defaultVisible:e=!0}){const[t,r]=(0,react_1.useState)(e),n=(0,react_1.useRef)(null);return(0,theme_1.useMount)((()=>{const e=new IntersectionObserver((([e])=>{t||r(e.isIntersecting)}),{root:null,rootMargin:theme_1.IS_BROWSER&&"undefined"==typeof window?"200px":"50px",threshold:.01});return(null==n?void 0:n.current)&&e.observe(n.current),()=>{n.current&&e.unobserve(n.current)}})),{isVisible:t,targetRef:n}}
|
|
2
|
+
//# sourceMappingURL=useIsContentVisible.js.map
|
package/lib/models/mediaType.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,a
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,a){void 0===a&&(a=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,a,r)}:function(e,t,i,a){void 0===a&&(a=i),e[a]=t[i]}),__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 i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&__createBinding(t,e,i);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMediaType=getMediaType;const Sampler=__importStar(require("openapi-sampler")),schema_1=require("./schema"),utils_1=require("../utils"),example_1=require("./example");function generateExamples({parser:e,info:{encoding:t,schema:i},schema:a,mime:r,options:{isRequestType:n,onlyRequiredInSamples:s,generatedSamplesMaxDepth:o,format:l="json"}}){const p={skipReadOnly:n,skipWriteOnly:!n,skipNonRequired:n&&s,maxSampleDepth:o,quiet:!0,format:l};let m={};if(a&&a.oneOf)for(const i of a.oneOf){const n=Sampler.sample(i.rawSchema,p,e.definition);a.discriminatorProp&&"object"==typeof n&&n&&n[a.discriminatorProp]&&(n[a.discriminatorProp]=i.title),m[i.title]=(0,example_1.getExamples)({parser:e,infoOrRef:{value:n},mime:r,encoding:t})}else m=a?{default:(0,example_1.getExamples)({parser:e,infoOrRef:{value:Sampler.sample(i,p,e.definition)},mime:r,encoding:t})}:{default:{value:null,rawValue:"null"}};return m}function getMediaType(e,t,i,a,r,{operation:n,type:s,response:o,absolutePointer:l=""}){let p,m;const u=a.schema&&(0,schema_1.getSchema)({parser:e,schemaOrRef:a.schema,pointer:"",absolutePointer:utils_1.JsonPointer.join(l,["content",t,"schema"]),options:r,deps:{operation:n,type:s,response:o}}),{onlyRequiredInSamples:c,generatedSamplesMaxDepth:d}=r,{encoding:f,examples:_,example:g}=a;return r.unstable_skipSamples||(void 0!==_?p=(0,utils_1.mapValues)(_,(i=>(0,example_1.getExamples)({parser:e,infoOrRef:i,mime:t,encoding:f}))):void 0!==g?p={default:(0,example_1.getExamples)({parser:e,infoOrRef:{value:e.deref(g).resolved},mime:t,encoding:f})}:(0,utils_1.isJsonLike)(t)||(0,utils_1.isXmlLike)(t)?p=generateExamples({parser:e,info:a,schema:u,mime:t,options:{isRequestType:i,onlyRequiredInSamples:c,generatedSamplesMaxDepth:d,format:(0,utils_1.isXmlLike)(t)?"xml":"json"}}):((0,utils_1.isFormUrlEncoded)(t)||(0,utils_1.isMultipartFormData)(t))&&(m=generateExamples({parser:e,info:a,schema:u,mime:t,options:{isRequestType:i,onlyRequiredInSamples:c,generatedSamplesMaxDepth:d}}))),{examples:p,schema:u,name:t,isRequestType:i,formExamples:m,onlyRequiredInSamples:c,operation:n}}
|
|
2
2
|
//# sourceMappingURL=mediaType.js.map
|
|
@@ -15,5 +15,5 @@ export interface Callback {
|
|
|
15
15
|
id?: string;
|
|
16
16
|
}
|
|
17
17
|
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;
|
|
18
|
+
export declare function getOperation(parser: OpenAPIParser, operationDefinition: ExtendedOpenAPIOperation, parent: GroupModel | undefined, options: Options, href: string, callback?: Callback, isVisible?: boolean): OperationModel;
|
|
19
19
|
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,r,t,i,o,s){var a,
|
|
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,r,t,i,o,s,n=!0){var a,l;const u=r.isWebhook,p={operationDefinition:r,parent:t,pointer:r.pointer,description:n?(0,utils_1.getValueFromMdParsedExtension)(r,"description"):"",externalDocs:r.externalDocs,deprecated:!!r.deprecated,httpVerb:r.httpVerb,operationId:r.operationId,path:r.pathName,isWebhook:u,isCallback:Boolean(null==s?void 0:s.isCallback),isEvent:(null==s?void 0:s.isCallback)||u,name:(0,utils_1.getOperationName)(r),defaultExampleName:r.defaultSampleName,[config_1.REDOCLY_TEAMS_RBAC]:r[config_1.REDOCLY_TEAMS_RBAC]||(null==t?void 0:t[config_1.REDOCLY_TEAMS_RBAC]),type:"operation",callbackId:null==s?void 0:s.id,href:o,get callbacks(){return n?Object.keys(r.callbacks||[]).map((s=>{var n;return(0,callback_1.getCallback)(e,s,null===(n=r.callbacks)||void 0===n?void 0:n[s],p.pointer,i,o,t)})):[]},get responses(){let t=!1;return n?Object.keys(r.responses||[]).filter((e=>"default"===e||("success"===(0,utils_1.getStatusCodeType)(e)&&(t=!0),(0,utils_1.isStatusCode)(e)))).map((o=>(0,response_1.getResponse)({parser:e,code:o,defaultAsError:t,infoOrRef:r.responses[o],options:i,isEvent:p.isEvent,operation:p}))):[]},get parameters(){if(!n)return[];let t=(0,utils_1.mergeParams)(e,r.pathParameters,r.parameters,{pathPointer:utils_1.JsonPointer.dirName(p.pointer),operationPointer:p.pointer}).map((({paramOrRef:r,pointer:t})=>(0,field_1.getField)(e,r,t,i,{operation:p,type:"request"})));return i.sortRequiredPropsFirst&&(t=(0,utils_1.sortByRequired)(t)),(0,utils_1.sortByDeprecated)(t)}};(null==s?void 0:s.isCallback)?(p.security=(0,security_1.getSecurity)(r.security,e),p.servers=(0,utils_1.normalizeServers)("",r.servers||r.pathServers||[]),p.id=(0,theme_1.removeLeadingSlash)(o)):(p.id=(0,utils_1.getOperationId)(r,t),p.href=p.href||(0,operation_1.getHref)(p),p.security=n?(0,security_1.getSecurity)(r.security||e.definition.security,e):[],p.servers=n?(0,utils_1.normalizeServers)(e.definitionUrl,mergeInMockServer(r.servers||r.pathServers||e.definition.servers||[],i.mockServer)):[]),i.showExtensions&&(p.extensions=(0,utils_1.extractExtensions)(r,i.showExtensions)),p.requestBody=n&&r.requestBody?(0,request_1.getRequestBody)({parser:e,infoOrRef:r.requestBody,options:i,operation:p,isEvent:p.isEvent}):void 0;const c=null===(a=p.requestBody)||void 0===a?void 0:a.content;return p.payload={lang:"Payload",source:"",requestBodyContent:(null==c?void 0:c.hasSample)?c:void 0},p.definitionSamples=r["x-codeSamples"]||[],p.badges=(null===(l=r["x-badges"])||void 0===l?void 0:l.map((({name:e,color:r,position:t})=>({name:e,color:r||"var(--color-info-base)",position:t||"after"}))))||[],p.hasSamples=(null==c?void 0:c.hasSample)||p.definitionSamples.length>0,p.hideReplay=!0===r["x-hideReplay"],p}function mergeInMockServer(e,r){if(!r)return e;const t={url:r.url,description:r.description};switch(r.position){case"first":return[t,...e];case"last":return[...e,t];case"replace":return[t];default:return e}}
|
|
2
2
|
//# sourceMappingURL=operation.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var s=Object.getOwnPropertyDescriptor(t,a);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,s)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),__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 a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&__createBinding(t,e,a);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCodeSample=getCodeSample,exports.getDataRequest=getDataRequest,exports.isDefined=isDefined,exports.capitalizeFirst=capitalizeFirst;const Sampler=__importStar(require("openapi-sampler")),deepmerge_1=__importDefault(require("deepmerge")),jstoxml_1=require("jstoxml"),theme_1=require("@redocly/theme"),utils_1=require("../../utils"),utils_2=require("../utils"),constants_1=require("../../constants"),httpsnippet_1=require("./httpsnippet"),mediaContent_1=require("../../models/mediaContent"),string_utility_1=__importDefault(require("./httpsnippet/helpers/string-utility"));function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return(0,utils_1.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:c}){var p,d,m;const h=l.server,f=e.servers.find((e=>e.url===h))||e.servers[0],_=getSelectedSecurityScheme(e.security,c),{securityHeaders:g,securityCookies:y,securityQueries:v,securityOAuth2ExtraCalls:O,basicAuth:S}=getSecurityData(_||(null===(p=e.security)||void 0===p?void 0:p[0]),r,l),T=(null===(d=null==e?void 0:e.requestBody)||void 0===d?void 0:d.content)&&(0,mediaContent_1.getActiveMediaType)(e.requestBody.content),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},C=u;let j=!1;const D=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=C.header)||void 0===t?void 0:t[e.name])||(0,utils_1.getParameterValue)("header",e.name)||(0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==T?void 0:T.name)&&"content-type"===e.name.toLowerCase()&&(j=!0,e.value=T.name),e))).concat(g);!j&&(null==T?void 0:T.name)&&D.unshift({name:"Content-Type",value:null==T?void 0:T.name});const E=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>utils_1.queryString.parse((0,utils_1.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=C.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(y),q=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>utils_1.queryString.parse((0,utils_1.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:(0,utils_1.isArrayOfObjects)(null===(a=C.query)||void 0===a?void 0:a[i])&&JSON.stringify((0,utils_1.deleteEmptyArrayItem)(null===(r=C.query)||void 0===r?void 0:r[i]))||String((null===(s=C.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(v),k=`${null==f?void 0:f.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,P=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=C.path)||void 0===a?void 0:a[s])||n[s]||(0,utils_1.getParameterValue)(r,s),e}),{}),w=null===(m=null==T?void 0:T.examples)||void 0===m?void 0:m[t],R=(null==T?void 0:T.examples)||{},[A]=Object.values(R),M=(null==C?void 0:C.body)||(null==w?void 0:w.value)||(null==A?void 0:A.value)||(null==T?void 0:T.schema)&&Sampler.sample(null==T?void 0:T.schema.rawSchema,b,s),x=null==T?void 0:T.name.toLowerCase();let N="",H=[];switch((0,utils_2.normalizeMimeType)(x)){case constants_1.MediaTypes.JSON:N=JSON.stringify(getDataRequest(M,o));break;case constants_1.MediaTypes.XML:N="object"==typeof M?(0,jstoxml_1.toXML)(getDataRequest(M,o),{indent:" "}):M;break;case constants_1.MediaTypes.URL_ENCODED:case constants_1.MediaTypes.MULTIPART:N=utils_1.queryString.stringify(getDataRequest(M,o)),H=objectToHarParams(getDataRequest(M,o));break;default:N=String(M||"")}const U=N?{mimeType:(null==T?void 0:T.name)||constants_1.MediaTypes.OCTET_STREAM,text:N,params:H}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:k,httpVersion:"HTTP/1.1",cookies:E,headers:D,queryString:q,postData:U,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:O,basicAuth:S,pathParameters:P,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)}};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:c,generatedPayloadSamplesMaxDepth:p,store:d}=i,m=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:u,spec:c,generatedPayloadSamplesMaxDepth:p},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new httpsnippet_1.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=(0,utils_1.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||`<${string_utility_1.default.toSnakeCase("Username")}>`,password:e.password||`<${string_utility_1.default.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:constants_1.MediaTypes.URL_ENCODED},{name:"Accept",value:constants_1.MediaTypes.JSON}],queryString:[],postData:{mimeType:constants_1.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:constants_1.MediaTypes.URL_ENCODED},{name:"Accept",value:constants_1.MediaTypes.JSON}],queryString:[],postData:{mimeType:constants_1.MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getDataRequest(e,t){if(e){if((0,theme_1.isObject)(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:(0,deepmerge_1.default)(e,t,{arrayMerge:utils_2.arrayMergeStrategy});try{return(0,deepmerge_1.default)(JSON.parse(e),t,{arrayMerge:utils_2.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}function isDefined(e){return void 0!==e}function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var s=Object.getOwnPropertyDescriptor(t,a);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,s)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),__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 a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&__createBinding(t,e,a);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCodeSample=getCodeSample,exports.getDataRequest=getDataRequest,exports.isDefined=isDefined,exports.capitalizeFirst=capitalizeFirst;const Sampler=__importStar(require("openapi-sampler")),deepmerge_1=__importDefault(require("deepmerge")),theme_1=require("@redocly/theme"),utils_1=require("../../utils"),utils_2=require("../utils"),constants_1=require("../../constants"),httpsnippet_1=require("./httpsnippet"),mediaContent_1=require("../../models/mediaContent"),string_utility_1=__importDefault(require("./httpsnippet/helpers/string-utility"));function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return(0,utils_1.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:c}){var p,d,m;const h=l.server,f=e.servers.find((e=>e.url===h))||e.servers[0],_=getSelectedSecurityScheme(e.security,c),{securityHeaders:g,securityCookies:y,securityQueries:O,securityOAuth2ExtraCalls:v,basicAuth:S}=getSecurityData(_||(null===(p=e.security)||void 0===p?void 0:p[0]),r,l),T=(null===(d=null==e?void 0:e.requestBody)||void 0===d?void 0:d.content)&&(0,mediaContent_1.getActiveMediaType)(e.requestBody.content),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},C=u;let j=!1;const D=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=C.header)||void 0===t?void 0:t[e.name])||(0,utils_1.getParameterValue)("header",e.name)||(0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==T?void 0:T.name)&&"content-type"===e.name.toLowerCase()&&(j=!0,e.value=T.name),e))).concat(g);!j&&(null==T?void 0:T.name)&&D.unshift({name:"Content-Type",value:null==T?void 0:T.name});const E=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>utils_1.queryString.parse((0,utils_1.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=C.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(y),k=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>utils_1.queryString.parse((0,utils_1.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:(0,utils_1.isArrayOfObjects)(null===(a=C.query)||void 0===a?void 0:a[i])&&JSON.stringify((0,utils_1.deleteEmptyArrayItem)(null===(r=C.query)||void 0===r?void 0:r[i]))||String((null===(s=C.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(O),q=`${null==f?void 0:f.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,P=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=C.path)||void 0===a?void 0:a[s])||n[s]||(0,utils_1.getParameterValue)(r,s),e}),{}),w=null===(m=null==T?void 0:T.examples)||void 0===m?void 0:m[t],A=(null==T?void 0:T.examples)||{},[R]=Object.values(A),M=null==T?void 0:T.name.toLowerCase(),x=(null==C?void 0:C.body)||(null==w?void 0:w.value)||(null==R?void 0:R.value)||(null==T?void 0:T.schema)&&Sampler.sample(null==T?void 0:T.schema.rawSchema,Object.assign(Object.assign({},b),{format:M===constants_1.MediaTypes.XML?"xml":"json"}),s);let N="",H=[];switch((0,utils_2.normalizeMimeType)(M)){case constants_1.MediaTypes.JSON:N=JSON.stringify(getDataRequest(x,o));break;case constants_1.MediaTypes.XML:N=x;break;case constants_1.MediaTypes.URL_ENCODED:case constants_1.MediaTypes.MULTIPART:N=utils_1.queryString.stringify(getDataRequest(x,o)),H=objectToHarParams(getDataRequest(x,o));break;default:N=String(x||"")}const U=N?{mimeType:(null==T?void 0:T.name)||constants_1.MediaTypes.OCTET_STREAM,text:N,params:H}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:q,httpVersion:"HTTP/1.1",cookies:E,headers:D,queryString:k,postData:U,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:v,basicAuth:S,pathParameters:P,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)}};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:c,generatedPayloadSamplesMaxDepth:p,store:d}=i,m=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:u,spec:c,generatedPayloadSamplesMaxDepth:p},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new httpsnippet_1.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=(0,utils_1.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||`<${string_utility_1.default.toSnakeCase("Username")}>`,password:e.password||`<${string_utility_1.default.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:constants_1.MediaTypes.URL_ENCODED},{name:"Accept",value:constants_1.MediaTypes.JSON}],queryString:[],postData:{mimeType:constants_1.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:constants_1.MediaTypes.URL_ENCODED},{name:"Accept",value:constants_1.MediaTypes.JSON}],queryString:[],postData:{mimeType:constants_1.MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getDataRequest(e,t){if(e){if((0,theme_1.isObject)(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:(0,deepmerge_1.default)(e,t,{arrayMerge:utils_2.arrayMergeStrategy});try{return(0,deepmerge_1.default)(JSON.parse(e),t,{arrayMerge:utils_2.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}function isDefined(e){return void 0!==e}function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
|
|
2
2
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.normalizeOptions=normalizeOptions;const theme_1=require("@redocly/theme"),constants_1=require("../../constants"),utils_1=require("../../utils"),helpers_1=require("./helpers"),constants_2=require("../code-samples/constants")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.normalizeOptions=normalizeOptions;const theme_1=require("@redocly/theme"),constants_1=require("../../constants"),utils_1=require("../../utils"),helpers_1=require("./helpers"),constants_2=require("../code-samples/constants");function normalizeOptions(e,o){var s,n,i,a,l,t,r,d,u,c,p;e=Object.assign(Object.assign(Object.assign({},o),e),{markdocOptions:Object.assign(Object.assign({},null==e?void 0:e.markdocOptions),{components:Object.assign(Object.assign({},null===(s=null==o?void 0:o.markdocOptions)||void 0===s?void 0:s.components),null===(n=null==e?void 0:e.markdocOptions)||void 0===n?void 0:n.components),tags:Object.assign(Object.assign({},null===(i=null==o?void 0:o.markdocOptions)||void 0===i?void 0:i.tags),null===(a=null==e?void 0:e.markdocOptions)||void 0===a?void 0:a.tags),nodes:Object.assign(Object.assign(Object.assign({},null===(l=null==o?void 0:o.markdocOptions)||void 0===l?void 0:l.nodes),null===(t=null==e?void 0:e.markdocOptions)||void 0===t?void 0:t.nodes),{heading:(null===(d=null===(r=null==o?void 0:o.markdocOptions)||void 0===r?void 0:r.nodes)||void 0===d?void 0:d.heading)||(null===(u=null==e?void 0:e.markdocOptions)||void 0===u?void 0:u.nodes.heading)})})});const m=Array.isArray(e.ignoreNamedSchemas)?e.ignoreNamedSchemas:null===(c=e.ignoreNamedSchemas)||void 0===c?void 0:c.split(",").map((e=>e.trim()));return{downloadUrls:e.downloadUrls,schemaDefinitionsTagName:e.schemaDefinitionsTagName,corsProxyUrl:e.corsProxyUrl&&(0,theme_1.addTrailingSlash)(e.corsProxyUrl),hideSidebar:(0,utils_1.argValueToBoolean)(e.hideSidebar,!1),jsonSamplesExpandLevel:(0,utils_1.argValueToExpandLevel)(e.jsonSamplesExpandLevel,2),generatedSamplesMaxDepth:(0,utils_1.argValueToInt)(e.generatedSamplesMaxDepth,8),hideDownloadButtons:(0,utils_1.argValueToBoolean)(e.hideDownloadButtons,!1),hideInfoMetadata:(0,utils_1.argValueToBoolean)(e.hideInfoMetadata,!1),hideLoading:(0,utils_1.argValueToBoolean)(e.hideLoading,!1),hideSchemaTitles:(0,utils_1.argValueToBoolean)(e.hideSchemaTitles,!1),maxDisplayedEnumValues:(0,utils_1.argValueToNumber)(e.maxDisplayedEnumValues),mockServer:(null===(p=e.mockServer)||void 0===p?void 0:p.url)?{url:e.mockServer.url,position:e.mockServer.position||"first",description:e.mockServer.description||"Mock server"}:void 0,hideReplay:(0,utils_1.argValueToBoolean)(e.hideReplay,!1),oAuth2RedirectURI:e.oAuth2RedirectURI||null,onlyRequiredInSamples:(0,utils_1.argValueToBoolean)(e.onlyRequiredInSamples,!1),onDeepLinkClick:e.onDeepLinkClick||(0,utils_1.getWindowReferenceOptions)(constants_1.WindowReferenceOptions.ON_DEEP_LINK_CLICK),requestInterceptor:e.requestInterceptor||(0,utils_1.getWindowReferenceOptions)(constants_1.WindowReferenceOptions.REQUEST_INTERCEPTOR),routingBasePath:(0,theme_1.isUndefined)(e.disableRouter)?"":e.routingBasePath&&(0,utils_1.normalizePath)(e.routingBasePath)||"",schemasExpansionLevel:(0,utils_1.argValueToExpandLevel)(e.schemasExpansionLevel),feedback:e.feedback||{hide:!1},sortRequiredPropsFirst:(0,utils_1.argValueToBoolean)(e.sortRequiredPropsFirst,!1),scrollYOffset:(0,helpers_1.normalizeScrollYOffset)(e.scrollYOffset),showExtensions:(0,helpers_1.normalizeShowExtensions)(e.showExtensions),sanitize:(0,utils_1.argValueToBoolean)(e.sanitize,!1),skipBundle:(0,utils_1.argValueToBoolean)(e.skipBundle,!1),ignoreNamedSchemas:new Set(m),markdocOptions:null==e?void 0:e.markdocOptions,codeSamples:e.codeSamples||{languages:Object.values(constants_2.Languages).map((e=>({lang:e})))},layout:e.layout||theme_1.LayoutVariant.THREE_PANEL,events:e.events||{},unstable_hooks:e.unstable_hooks||(0,utils_1.getWindowReferenceOptions)(constants_1.WindowReferenceOptions.HOOKS)||{},unstable_skipSamples:(0,utils_1.argValueToBoolean)(e.unstable_skipSamples,!1),unstable_externalCodeSamples:e.unstable_externalCodeSamples||[],hidePropertiesPrefix:(0,utils_1.argValueToBoolean)(null==e?void 0:e.hidePropertiesPrefix,!1)}}
|
|
2
2
|
//# sourceMappingURL=normalizeOptions.js.map
|
package/lib/types/open-api.d.ts
CHANGED
|
@@ -132,6 +132,13 @@ export interface OpenAPIExample extends ParsedDescriptionWithSummary {
|
|
|
132
132
|
description?: string;
|
|
133
133
|
externalValue?: string;
|
|
134
134
|
}
|
|
135
|
+
export interface XMLObject {
|
|
136
|
+
name?: string;
|
|
137
|
+
namespace?: string;
|
|
138
|
+
prefix?: string;
|
|
139
|
+
attribute?: boolean;
|
|
140
|
+
wrapped?: boolean;
|
|
141
|
+
}
|
|
135
142
|
export interface OpenAPISchema extends ParsedDescription {
|
|
136
143
|
$ref?: string;
|
|
137
144
|
type?: string | string[];
|
|
@@ -183,6 +190,7 @@ export interface OpenAPISchema extends ParsedDescription {
|
|
|
183
190
|
then?: OpenAPISchema;
|
|
184
191
|
prefixItems?: OpenAPISchema[];
|
|
185
192
|
additionalItems?: OpenAPISchema | boolean;
|
|
193
|
+
xml?: XMLObject;
|
|
186
194
|
}
|
|
187
195
|
export interface OpenAPIDiscriminator {
|
|
188
196
|
propertyName: string;
|
|
@@ -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:
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import{useLocation}from"react-router-dom";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation,IS_BROWSER}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,useIsContentVisible}from"../../hooks";import{pathIncludesLink}from"../../utils";function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const i=useLocation(),l=useMemo((()=>!IS_BROWSER||"undefined"!=typeof window||pathIncludesLink(i,e.operationId)),[i,e.operationId]),{isVisible:n,targetRef:r}=useIsContentVisible({defaultVisible:l}),p=useTranslate(),{parser:d,options:m}=useAtomValue(globalStoreAtom),c=useAtomValue(layoutAtom),[u,k]=useState(),{unstable_hooks:S,feedback:b}=m,h=useMemo((()=>getOperation(d,e,a,m,o,void 0,n)),[o,n,e,m,a,d]),{name:x,deprecated:f,isWebhook:j,badges:g}=h||{},_=c===LayoutVariant.STACKED,R=(null==b?void 0:b.type)||"sentiment",O=!0!==(null==b?void 0:b.hide),[y,v]=useState(null),C=useCallback((e=>{u!==e&&k(e)}),[u]),w=useMemo((()=>O?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:R,settings:b.settings,path:joinWithSeparator(m.routingBasePath,h.href)})}):null),[O,R,b.settings,m.routingBasePath,h.href]);return _jsxs(OperationRow,{layout:c,ref:r,children:[_jsx(OperationSubRowStyled,{layout:c,children:_jsxs(SamplesMiddlePanel,{isStacked:_,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==S?void 0:S.BeforeOperation),props:{operation:h}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${x}`}),_jsx(CustomBadges,{badges:g,children:x}),f&&_jsx(StyledBadge,{deprecated:!0,children:p("openapi.badges.deprecated","Deprecated")}),j&&_jsx(StyledBadge,{children:p("openapi.badges.webhook","Webhook")})]})]})}),_jsxs(OperationSubRowStyled,{layout:c,children:[_jsx(SamplesMiddlePanel,{isStacked:_,children:_jsx(RequestDetails,{operation:h,translate:p})}),n&&_jsx(OperationSamplesPanel,{isStacked:_,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:h})})]}),_jsxs(OperationSubRowStyled,{layout:c,children:[_jsx(SamplesMiddlePanel,{isStacked:_,children:(null===(t=h.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:h.responses,operationId:h.id,operationPointer:h.pointer,callbackId:h.callbackId,activeResponseTab:u,onTabChange:C}):null}),n&&_jsx(OperationSamplesPanel,{isStacked:_,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:h,activeResponseTab:u,onTabChange:C})})]}),_jsxs(OperationSubRowStyled,{layout:c,children:[_jsxs(SamplesMiddlePanel,{isStacked:_,children:[(null===(s=h.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(h.id,"callbacks")}),p("openapi.callbacks","Callbacks")]}),_jsx(CallbacksList,{callbacks:h.callbacks,onExpand:v,selectedCallback:y})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==S?void 0:S.AfterOperation),props:{operation:h}})]}),y?_jsx(OperationSamplesPanel,{isStacked:_,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:y,translate:p})}):null]}),_jsx(OperationSubRowStyled,{layout:c,children:_jsx(SamplesMiddlePanel,{isStacked:_,fullWidth:!0,children:w})})]})}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
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{render}from"@testing-library/react";import{BrowserRouter}from"react-router-dom";import{OperationItem}from"../OperationItem";import{normalizeOptions}from"../../../services";import spec from"./fixtures/petstore.json";import definition from"./fixtures/operationDefinition.json";import{environmentAtom}from"../../../jotai/app";import{globalStoreAtom}from"../../../jotai/store";jest.mock("jotai",(()=>Object.assign(Object.assign({},jest.requireActual("jotai")),{useAtomValue:jest.fn((e=>e===globalStoreAtom?{parser:{definition:spec},options:normalizeOptions({codeSamples:{languages:[{lang:"curl",label:"curl"}]}})}:e===environmentAtom?[{},""]:{})),useAtom:jest.fn((e=>e===environmentAtom?[[{server:{}}],jest.fn()]:[{activeOneOf:{"/paths/~1pet/post":0},requestValues:{},request:{expandedFields:{}},response:{expandedFields:{}},activeLanguage:"curl"},jest.fn()]))}))),describe("OperationItem",(()=>{it("should render badges with correct position",(()=>{const{getByTestId:e}=render(_jsx(OperationItem,{item:{operationDefinition:definition,parent:void 0,href:"test"}}),{wrapper:BrowserRouter}),t=e("operation-item-header").childNodes;expect(t[1].textContent).toBe("Alpha"),expect(t[3].textContent).toBe("Beta"),expect(t[4].textContent).toBe("Gamma")}))}));
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import{render}from"@testing-library/react";import{BrowserRouter}from"react-router-dom";import{OperationItem}from"../OperationItem";import{normalizeOptions}from"../../../services";import spec from"./fixtures/petstore.json";import definition from"./fixtures/operationDefinition.json";import{environmentAtom}from"../../../jotai/app";import{globalStoreAtom}from"../../../jotai/store";import{MockIntersectionObserver}from"./__mocks__/mock-intersection-observer";jest.mock("jotai",(()=>Object.assign(Object.assign({},jest.requireActual("jotai")),{useAtomValue:jest.fn((e=>e===globalStoreAtom?{parser:{definition:spec},options:normalizeOptions({codeSamples:{languages:[{lang:"curl",label:"curl"}]}})}:e===environmentAtom?[{},""]:{})),useAtom:jest.fn((e=>e===environmentAtom?[[{server:{}}],jest.fn()]:[{activeOneOf:{"/paths/~1pet/post":0},requestValues:{},request:{expandedFields:{}},response:{expandedFields:{}},activeLanguage:"curl"},jest.fn()]))}))),describe("OperationItem",(()=>{beforeAll((()=>{window.IntersectionObserver=MockIntersectionObserver})),it("should render badges with correct position",(()=>{const{getByTestId:e}=render(_jsx(OperationItem,{item:{operationDefinition:definition,parent:void 0,href:"test"}}),{wrapper:BrowserRouter}),t=e("operation-item-header").childNodes;expect(t[1].textContent).toBe("Alpha"),expect(t[3].textContent).toBe("Beta"),expect(t[4].textContent).toBe("Gamma")}))}));
|
|
2
2
|
//# sourceMappingURL=OperationItem.test.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class MockIntersectionObserver {
|
|
2
|
+
readonly root: Element | Document | null;
|
|
3
|
+
readonly rootMargin: string;
|
|
4
|
+
readonly thresholds: ReadonlyArray<number>;
|
|
5
|
+
private viewPort;
|
|
6
|
+
private entries;
|
|
7
|
+
private readonly callback;
|
|
8
|
+
constructor(callback: IntersectionObserverCallback, options?: IntersectionObserverInit);
|
|
9
|
+
private intersect;
|
|
10
|
+
isInViewPort(target: HTMLElement): boolean;
|
|
11
|
+
observe(target: HTMLElement): void;
|
|
12
|
+
unobserve(target: HTMLElement): void;
|
|
13
|
+
disconnect(): void;
|
|
14
|
+
takeRecords(): any[];
|
|
15
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export class MockIntersectionObserver{constructor(e,t){Object.defineProperty(this,"root",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"rootMargin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thresholds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"viewPort",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"entries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"callback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"intersect",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.entries.map((e=>{e.isIntersecting=this.isInViewPort(e.target)})),this.callback(this.entries,this)}}),this.viewPort=(null==t?void 0:t.root)?t.root:window,this.entries=[],this.root=null,this.rootMargin="0px",this.thresholds=[1],this.callback=e,this.viewPort.addEventListener("scroll",this.intersect)}isInViewPort(e){return"toc-0"!==e.id}observe(e){this.entries.push({isIntersecting:!1,target:e})}unobserve(e){this.entries=this.entries.filter((t=>t.target!==e))}disconnect(){this.viewPort.removeEventListener("scroll",this.intersect),this.entries=[]}takeRecords(){return this.entries}}
|
|
2
|
+
//# sourceMappingURL=mock-intersection-observer.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __rest=this&&this.__rest||function(e,t){var
|
|
1
|
+
var __rest=this&&this.__rest||function(e,t){var a={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(a[o[r]]=e[o[r]])}return a};import{jsx as _jsx}from"react/jsx-runtime";import{memo,useCallback}from"react";import{useAtomValue}from"jotai";import{SelectOrLabel}from"../SelectOrLabel";import{MediaTypesSwitch}from"../MediaTypeSwitch";import{MimeLabel,Select}from"../common";import{MediaTypeSamples}from"./MediaTypeSamples";import{SelectWrapper,StyledCodeBlock}from"./styled";import{activeMimeNameAtom}from"../../jotai/app";import{useActivateExample,useTranslate}from"../../hooks";function PayloadSamplesComponent(e){var{onlyDefaultMimeType:t,content:a}=e,o=__rest(e,["onlyDefaultMimeType","content"]);const r=useActivateExample(a),l=useAtomValue(activeMimeNameAtom),m=t&&l,p=useTranslate(),s=useCallback((e=>m?null:_jsx(SelectWrapper,{children:_jsx(SelectOrLabel,Object.assign({Label:MimeLabel,Select:Select,variant:"dark",fullWidth:!0},e))})),[m]),i=e=>r(e);return a?_jsx(MediaTypesSwitch,{content:a,renderSelect:s,children:e=>_jsx(MediaTypeSamples,Object.assign({mediaType:e},o,{onChange:i}),"samples")}):_jsx(StyledCodeBlock,{lang:"text",source:p("openapi.noRequestPayload","No request payload"),header:{controls:!1}})}export const PayloadSamples=memo(PayloadSamplesComponent);
|
|
2
2
|
//# sourceMappingURL=PayloadSamples.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,o,
|
|
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]})}));
|
|
2
2
|
//# sourceMappingURL=Providers.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{isPrimitive}from"@redocly/theme";export function convertOperationToReplayValue(e,n,a
|
|
1
|
+
var __rest=this&&this.__rest||function(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)n.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(t[a[i]]=e[a[i]])}return t};import{isPrimitive}from"@redocly/theme";export function convertOperationToReplayValue(e,n,t,a){var i,r;const o=(null==a?void 0:a.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==t?void 0:t.requestValues),body:convertRequestBody(e.requestBody,n,(null===(i=null==t?void 0:t.requestValues)||void 0===i?void 0:i.body)?{activeExampleName:null==t?void 0:t.activeExampleName,[o]:null===(r=null==t?void 0:t.requestValues)||void 0===r?void 0:r.body}:{activeExampleName:null==t?void 0:t.activeExampleName}),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const t=new Set,a=e.map((e=>{var a;return t.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(a=null==n?void 0:n[String(e.in)])||void 0===a?void 0:a[e.name])||e.example,schema:e.schema}}));for(const[e,i]of Object.entries(n||{}))for(const[n,r]of Object.entries(i||{}))t.has(e+":"+n)||a.push({name:n,in:e,required:!1,description:"",example:String(r),schema:void 0});return a}function getInputType({type:e,format:n,enum:t}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":t.length>0?"select":"text":"file"}function getFieldExamples(e,n){var t,a,i,r,o;const l=(null===(t=e[0])||void 0===t?void 0:t.example)||(null===(a=e[0])||void 0===a?void 0:a.examples);if(l)return l;if(null===(i=e.schema)||void 0===i?void 0:i.example)return e.schema.example;const m=(null===(r=null==n?void 0:n.default)||void 0===r?void 0:r.value)||(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.rawValue);return(null==m?void 0:m[e.name])?isPrimitive(null==m?void 0:m[e.name])?String(null==m?void 0:m[e.name]):JSON.stringify(null==m?void 0:m[e.name]):""}function convertRequestBody(e,n,t){var a;if(!e||!(null===(a=e.content)||void 0===a?void 0:a.mediaTypes)){if(!t)return;const{activeExampleName:e}=t,n=__rest(t,["activeExampleName"]);return{activeExampleName:e,mediaTypes:Object.fromEntries(Object.entries(n).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,activeExampleName:null==t?void 0:t.activeExampleName,mediaTypes:e.content.mediaTypes.reduce(((e,a)=>{var i,r;const o=a.schema,l=(null==t?void 0:t[a.name])?{default:{value:null==t?void 0:t[a.name],rawValue:null==t?void 0:t[a.name],mime:a.name}}:a.examples||a.formExamples;return e[a.name]={name:a.name,examples:l,schema:getBodySchema(null===(i=a.schema)||void 0===i?void 0:i.rawSchema,n),parameters:null===(r=null==o?void 0:o.fields)||void 0===r?void 0:r.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}export function convertRequestSecurity(e){if(e)return e.map((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -8,11 +8,3 @@ export declare function Link(props: PropsWithChildren<{
|
|
|
8
8
|
}>): ReactElement | null;
|
|
9
9
|
export declare const StyledShareLink: import("styled-components").StyledComponent<typeof Link, any, {}, never>;
|
|
10
10
|
export declare function ShareLink(props: any): ReactElement;
|
|
11
|
-
export declare function MarkdownHeading({ level, id, children, 'data-source': dataSource, 'data-hash': dataHash, className, }: PropsWithChildren<{
|
|
12
|
-
level: number;
|
|
13
|
-
id: string;
|
|
14
|
-
'data-source'?: string;
|
|
15
|
-
'data-hash'?: string;
|
|
16
|
-
className?: string;
|
|
17
|
-
source?: string | 'openapi-docs';
|
|
18
|
-
}>): JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import styled from"styled-components";import{useAtomValue}from"jotai";import{Link as LinkRouter}from"react-router-dom";import{LinkIcon}from"@redocly/theme";import{globalOptionsAtom}from"../../jotai/store";import{tryDecodeURIComponent}from"../../utils";export function Link(i){var o;const{routingBasePath:t,unstable_hooks:e,onDeepLinkClick:n}=useAtomValue(globalOptionsAtom),r=i.security?null===(o=null==e?void 0:e.replaceSecurityLink)||void 0===o?void 0:o.call(e,{securityRequirementId:i.to}):i.to,a=n&&{onClick:i=>{i.preventDefault(),n(t+r)}};return r?_jsx(LinkRouter,Object.assign({"aria-label":i["aria-label"]||`link to ${r}`,id:tryDecodeURIComponent(i.id||""),className:i.className||"",to:(null==r?void 0:r.startsWith("#"))?r:t+r},a,{children:i.children})):i.children?_jsxs("span",{"aria-label":i["aria-label"]||`link to ${r}`,className:i.className,children:[" ",i.children," "]}):null}export const StyledShareLink=styled(Link)`
|
|
2
2
|
position: absolute;
|
|
3
3
|
top: 50%;
|
|
4
4
|
left: 0;
|
|
@@ -17,5 +17,5 @@ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";i
|
|
|
17
17
|
visibility: visible;
|
|
18
18
|
opacity: 1;
|
|
19
19
|
}
|
|
20
|
-
`;export function ShareLink(
|
|
20
|
+
`;export function ShareLink(i){return _jsx(StyledShareLink,Object.assign({},i,{children:_jsx(LinkIcon,{size:"13px",color:"--heading-anchor-color"})}))}
|
|
21
21
|
//# sourceMappingURL=linkify.js.map
|
package/lib-esm/hooks/index.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export { useContentItems } from './useContentItems';
|
|
|
6
6
|
export { useActiveWithFallback } from './useActiveWithFallback';
|
|
7
7
|
export { useUppercase2LowercaseRedirect } from './useUppercase2LowercaseRedirect';
|
|
8
8
|
export { useTranslate } from './useTranslate';
|
|
9
|
+
export { useIsContentVisible } from './useIsContentVisible';
|
package/lib-esm/hooks/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{useDimensions}from"./useDimensions";export{usePrevious}from"./usePrevious";export{useActivateExample}from"./useActivateExample";export{useRouter}from"./useRouter";export{useContentItems}from"./useContentItems";export{useActiveWithFallback}from"./useActiveWithFallback";export{useUppercase2LowercaseRedirect}from"./useUppercase2LowercaseRedirect";export{useTranslate}from"./useTranslate";
|
|
1
|
+
export{useDimensions}from"./useDimensions";export{usePrevious}from"./usePrevious";export{useActivateExample}from"./useActivateExample";export{useRouter}from"./useRouter";export{useContentItems}from"./useContentItems";export{useActiveWithFallback}from"./useActiveWithFallback";export{useUppercase2LowercaseRedirect}from"./useUppercase2LowercaseRedirect";export{useTranslate}from"./useTranslate";export{useIsContentVisible}from"./useIsContentVisible";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useRef,useState}from"react";import{IS_BROWSER,useMount}from"@redocly/theme";export function useIsContentVisible({defaultVisible:e=!0}){const[t,r]=useState(e),n=useRef(null);return useMount((()=>{const e=new IntersectionObserver((([e])=>{t||r(e.isIntersecting)}),{root:null,rootMargin:IS_BROWSER&&"undefined"==typeof window?"200px":"50px",threshold:.01});return(null==n?void 0:n.current)&&e.observe(n.current),()=>{n.current&&e.unobserve(n.current)}})),{isVisible:t,targetRef:n}}
|
|
2
|
+
//# sourceMappingURL=useIsContentVisible.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as Sampler from"openapi-sampler";import{getSchema}from"./schema";import{isFormUrlEncoded,isJsonLike,isXmlLike,isMultipartFormData,JsonPointer,mapValues}from"../utils";import{getExamples}from"./example";function generateExamples({parser:e,info:{encoding:a,schema:i},schema:s,mime:
|
|
1
|
+
import*as Sampler from"openapi-sampler";import{getSchema}from"./schema";import{isFormUrlEncoded,isJsonLike,isXmlLike,isMultipartFormData,JsonPointer,mapValues}from"../utils";import{getExamples}from"./example";function generateExamples({parser:e,info:{encoding:a,schema:i},schema:s,mime:o,options:{isRequestType:n,onlyRequiredInSamples:r,generatedSamplesMaxDepth:m,format:t="json"}}){const p={skipReadOnly:n,skipWriteOnly:!n,skipNonRequired:n&&r,maxSampleDepth:m,quiet:!0,format:t};let l={};if(s&&s.oneOf)for(const i of s.oneOf){const n=Sampler.sample(i.rawSchema,p,e.definition);s.discriminatorProp&&"object"==typeof n&&n&&n[s.discriminatorProp]&&(n[s.discriminatorProp]=i.title),l[i.title]=getExamples({parser:e,infoOrRef:{value:n},mime:o,encoding:a})}else l=s?{default:getExamples({parser:e,infoOrRef:{value:Sampler.sample(i,p,e.definition)},mime:o,encoding:a})}:{default:{value:null,rawValue:"null"}};return l}export function getMediaType(e,a,i,s,o,{operation:n,type:r,response:m,absolutePointer:t=""}){let p,l;const d=s.schema&&getSchema({parser:e,schemaOrRef:s.schema,pointer:"",absolutePointer:JsonPointer.join(t,["content",a,"schema"]),options:o,deps:{operation:n,type:r,response:m}}),{onlyRequiredInSamples:f,generatedSamplesMaxDepth:u}=o,{encoding:c,examples:g,example:x}=s;return o.unstable_skipSamples||(void 0!==g?p=mapValues(g,(i=>getExamples({parser:e,infoOrRef:i,mime:a,encoding:c}))):void 0!==x?p={default:getExamples({parser:e,infoOrRef:{value:e.deref(x).resolved},mime:a,encoding:c})}:isJsonLike(a)||isXmlLike(a)?p=generateExamples({parser:e,info:s,schema:d,mime:a,options:{isRequestType:i,onlyRequiredInSamples:f,generatedSamplesMaxDepth:u,format:isXmlLike(a)?"xml":"json"}}):(isFormUrlEncoded(a)||isMultipartFormData(a))&&(l=generateExamples({parser:e,info:s,schema:d,mime:a,options:{isRequestType:i,onlyRequiredInSamples:f,generatedSamplesMaxDepth:u}}))),{examples:p,schema:d,name:a,isRequestType:i,formExamples:l,onlyRequiredInSamples:f,operation:n}}
|
|
2
2
|
//# sourceMappingURL=mediaType.js.map
|