@redocly/openapi-docs 3.9.0-next.1 → 3.9.0-next.3
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 +1919 -1759
- package/lib/components/ApiInfo/ApiInfo.d.ts +3 -1
- package/lib/components/ApiInfo/ApiInfo.js +1 -1
- package/lib/components/ContentItem/ContentItem.d.ts +2 -0
- package/lib/components/ContentItem/ContentItem.js +1 -1
- package/lib/components/ContentItems/useScrollOnRender.js +1 -1
- package/lib/components/Download/types.d.ts +1 -0
- package/lib/components/Download/useDownloadInfo.d.ts +1 -1
- package/lib/components/Download/useDownloadInfo.js +1 -1
- package/lib/components/OperationItem/OperationItem.d.ts +3 -0
- package/lib/components/OperationItem/OperationItem.js +2 -2
- package/lib/components/PanelItem/styled.d.ts +1 -1
- package/lib/components/PanelItem/styled.js +1 -1
- package/lib/components/PropertyDetails/PropertyDetails.js +1 -1
- package/lib/components/PropertyDetails/types.d.ts +1 -0
- package/lib/components/Schema/ObjectSchema.js +1 -1
- package/lib/components/Schema/types.d.ts +2 -0
- package/lib/components/SectionContent/SectionContent.d.ts +9 -0
- package/lib/components/SectionContent/SectionContent.js +3 -3
- package/lib/components/SectionContent/index.d.ts +1 -1
- package/lib/components/SectionContent/index.js +1 -1
- package/lib/components/SectionItem/SectionItem.d.ts +2 -0
- package/lib/components/SectionItem/SectionItem.js +1 -1
- package/lib/components/StickySidebar/SidebarActions.js +1 -1
- package/lib/components/common/Fields/fields.js +1 -0
- package/lib/components/common/linkify.js +1 -1
- package/lib/components/pluggable/RedocSchema.d.ts +3 -1
- package/lib/components/pluggable/RedocSchema.js +1 -1
- package/lib/empty.d.ts +1 -0
- package/lib/empty.js +1 -1
- package/lib/hooks/useOtelTelemetry.d.ts +1 -1
- package/lib/index.d.ts +25 -2
- package/lib/index.js +1 -1
- package/lib/services/code-samples/generator.js +1 -1
- package/lib/services/code-samples/types.d.ts +5 -2
- package/lib/services/menu/markdown.js +1 -1
- package/lib/types/open-api.d.ts +1 -0
- package/lib/utils/helpers.js +1 -1
- package/lib/utils/loadAndBundleSpec.js +1 -1
- package/lib/utils/saveTextBeforeHeading.d.ts +7 -1
- package/lib/utils/saveTextBeforeHeading.js +1 -1
- package/lib/utils/simplifyAstStructure.d.ts +2 -0
- package/lib/utils/simplifyAstStructure.js +2 -0
- package/lib-esm/components/ApiInfo/ApiInfo.d.ts +3 -1
- package/lib-esm/components/ApiInfo/ApiInfo.js +1 -1
- package/lib-esm/components/ContentItem/ContentItem.d.ts +2 -0
- package/lib-esm/components/ContentItem/ContentItem.js +1 -1
- package/lib-esm/components/ContentItems/useScrollOnRender.js +1 -1
- package/lib-esm/components/Download/types.d.ts +1 -0
- package/lib-esm/components/Download/useDownloadInfo.d.ts +1 -1
- package/lib-esm/components/Download/useDownloadInfo.js +1 -1
- package/lib-esm/components/OperationItem/OperationItem.d.ts +3 -0
- package/lib-esm/components/OperationItem/OperationItem.js +2 -2
- package/lib-esm/components/PanelItem/styled.d.ts +1 -1
- package/lib-esm/components/PanelItem/styled.js +1 -1
- package/lib-esm/components/PropertyDetails/PropertyDetails.js +1 -1
- package/lib-esm/components/PropertyDetails/types.d.ts +1 -0
- package/lib-esm/components/Schema/ObjectSchema.js +1 -1
- package/lib-esm/components/Schema/types.d.ts +2 -0
- package/lib-esm/components/SectionContent/SectionContent.d.ts +9 -0
- package/lib-esm/components/SectionContent/SectionContent.js +2 -2
- package/lib-esm/components/SectionContent/index.d.ts +1 -1
- package/lib-esm/components/SectionContent/index.js +1 -1
- package/lib-esm/components/SectionItem/SectionItem.d.ts +2 -0
- package/lib-esm/components/SectionItem/SectionItem.js +1 -1
- package/lib-esm/components/StickySidebar/SidebarActions.js +1 -1
- package/lib-esm/components/common/Fields/fields.js +1 -0
- package/lib-esm/components/common/linkify.js +1 -1
- package/lib-esm/components/pluggable/RedocSchema.d.ts +3 -1
- package/lib-esm/components/pluggable/RedocSchema.js +1 -1
- package/lib-esm/empty.d.ts +1 -0
- package/lib-esm/empty.js +1 -1
- package/lib-esm/hooks/useOtelTelemetry.d.ts +1 -1
- package/lib-esm/index.d.ts +25 -2
- package/lib-esm/index.js +1 -1
- package/lib-esm/services/code-samples/generator.js +1 -1
- package/lib-esm/services/code-samples/types.d.ts +5 -2
- package/lib-esm/services/menu/markdown.js +1 -1
- package/lib-esm/types/open-api.d.ts +1 -0
- package/lib-esm/utils/helpers.js +1 -1
- package/lib-esm/utils/loadAndBundleSpec.js +1 -1
- package/lib-esm/utils/saveTextBeforeHeading.d.ts +7 -1
- package/lib-esm/utils/saveTextBeforeHeading.js +1 -1
- package/lib-esm/utils/simplifyAstStructure.d.ts +2 -0
- package/lib-esm/utils/simplifyAstStructure.js +2 -0
- package/package.json +9 -9
|
@@ -1 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Node } from '@markdoc/markdoc';
|
|
2
|
+
interface DescriptionObject {
|
|
3
|
+
result: string | Node | Node[];
|
|
4
|
+
raw: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function saveTextBeforeHeading(description: string | DescriptionObject): string | DescriptionObject;
|
|
7
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.saveTextBeforeHeading=saveTextBeforeHeading;const markdoc_1=require("@markdoc/markdoc"),theme_1=require("@redocly/theme")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.saveTextBeforeHeading=saveTextBeforeHeading;const markdoc_1=require("@markdoc/markdoc"),theme_1=require("@redocly/theme");function saveTextBeforeHeading(e){if(!e)return"";if(!(0,theme_1.isString)(e))return(null==e?void 0:e.result)?{result:modifyNodeByHeading(markdoc_1.Ast.fromJSON(JSON.stringify(e.result)))||"",raw:saveTextBeforeHeading(e.raw)}:e;const r=new RegExp("^#{1,6}?\\s+","m"),i=e.search(r);return i>-1?e.substring(0,i):e}function modifyNodeByHeading(e){if(Array.isArray(e)){const r=e.findIndex((e=>"heading"===e.type));return-1===r?e:e.slice(0,r)}if(!e.children||!Array.isArray(e.children))return;const r=e.children.findIndex((e=>"heading"===e.type));return-1===r||(e.children=e.children.slice(0,r)),e}
|
|
2
2
|
//# sourceMappingURL=saveTextBeforeHeading.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.simplifyAstStructure=void 0;const simplifyAstStructure=t=>{var e,l;i(t);for(const l of t.walk())i(l),(null===(e=null==l?void 0:l.children)||void 0===e?void 0:e.length)&&(0,exports.simplifyAstStructure)(l);function i(t){(null==t?void 0:t.location)&&delete t.location,void 0===t.tag&&delete t.tag}return"document"===t.type&&(null===(l=null==t?void 0:t.children)||void 0===l?void 0:l.length)?null==t?void 0:t.children:t};exports.simplifyAstStructure=simplifyAstStructure;
|
|
2
|
+
//# sourceMappingURL=simplifyAstStructure.js.map
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { LayoutVariant } from '@redocly/theme';
|
|
1
2
|
import type { ReactElement } from 'react';
|
|
2
3
|
import type { GroupModel } from '../../models';
|
|
3
|
-
export declare function ApiInfo({ item }: {
|
|
4
|
+
export declare function ApiInfo({ item, layout, }: {
|
|
4
5
|
item: GroupModel;
|
|
6
|
+
layout: LayoutVariant;
|
|
5
7
|
}): ReactElement | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as _jsxs,jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{AfterOpenApiTitle,LayoutVariant}from"@redocly/theme";import{
|
|
1
|
+
import{jsxs as _jsxs,jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{AfterOpenApiTitle,LayoutVariant}from"@redocly/theme";import{SamplesMiddlePanel,Row}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{ApiHeader}from"./styled";import{globalStoreAtom}from"../../jotai/store";import{saveTextBeforeHeading}from"../../utils/saveTextBeforeHeading";import{getValueFromMdParsedExtension}from"../../utils/helpers";import{RenderHook}from"../RenderHook";import{Metadata}from"./Metadata";import{useTranslate}from"../../hooks";export function ApiInfo({item:e,layout:o}){const t=useTranslate(),{options:{unstable_hooks:r,hideInfoMetadata:a},parser:{definition:i}}=useAtomValue(globalStoreAtom),n=e.infoDefinition;if(!n)return null;const s=saveTextBeforeHeading(getValueFromMdParsedExtension(n,"description")||""),l=getValueFromMdParsedExtension(n,"summary")||void 0,m=(null==i?void 0:i.externalDocs)||(null==n?void 0:n.externalDocs),d=n.version&&_jsxs("span",{children:["(",n.version,")"]})||null,p=o===LayoutVariant.STACKED;return _jsx(Row,{layout:o,children:_jsxs(SamplesMiddlePanel,{fullWidth:!0,className:"api-info",isStacked:p,children:[_jsxs(ApiHeader,{children:[n.title," ",d]}),_jsx(RenderHook,{Hook:AfterOpenApiTitle||(null==r?void 0:r.AfterApiTitle),props:{info:n}}),l&&_jsx(Markdown,{source:l,"data-role":"redoc-summary"}),s&&_jsx(Markdown,{source:s,"data-role":"redoc-description"}),m&&_jsx(ExternalDocumentation,{externalDocs:m}),!a&&_jsx(Metadata,{metadata:n["x-metadata"],translate:t})]})})}
|
|
2
2
|
//# sourceMappingURL=ApiInfo.js.map
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import type { LayoutVariant } from '@redocly/config';
|
|
1
2
|
import type { ReactNode } from 'react';
|
|
2
3
|
import type { ContentItemModel } from '../../models';
|
|
3
4
|
interface ContentItemProps {
|
|
4
5
|
item: ContentItemModel;
|
|
5
6
|
routingBasePath: string;
|
|
6
7
|
children?: ReactNode;
|
|
8
|
+
layout?: LayoutVariant;
|
|
7
9
|
}
|
|
8
10
|
export declare const ContentItem: import("react").NamedExoticComponent<ContentItemProps>;
|
|
9
11
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{joinWithSeparator}from"../../services";import{TagItem}from"../TagItem";import{OperationItem}from"../OperationItem";import{Section}from"../common";import{useIsExpanded}from"./useIsExpanded";import{SectionItem}from"../SectionItem";import useScrollOnRender from"../ContentItems/useScrollOnRender";import{isRootItem}from"../ContentItems/helpers";import{ApiInfo}from"../ApiInfo";const ContentComponentMap={group:null,tag:TagItem,section:SectionItem,schema:TagItem,operation:OperationItem,root:ApiInfo};function ContentItemComponent({item:
|
|
1
|
+
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{useAtomValue}from"jotai";import{joinWithSeparator}from"../../services";import{TagItem}from"../TagItem";import{OperationItem}from"../OperationItem";import{Section}from"../common";import{useIsExpanded}from"./useIsExpanded";import{SectionItem}from"../SectionItem";import useScrollOnRender from"../ContentItems/useScrollOnRender";import{isRootItem}from"../ContentItems/helpers";import{ApiInfo}from"../ApiInfo";import{layoutAtom}from"../../jotai/app";const ContentComponentMap={group:null,tag:TagItem,section:SectionItem,schema:TagItem,operation:OperationItem,root:ApiInfo};function ContentItemComponent({item:t,routingBasePath:e,children:o,layout:n}){var m;const r=ContentComponentMap[isRootItem(t)?"root":t.type],i="tag"===t.type&&t.items.length>0,a=useIsExpanded({item:t,routingBasePath:e});let s=useScrollOnRender(t,e);const p=useAtomValue(layoutAtom);return _jsxs(_Fragment,{children:[r&&_jsx(Section,{id:t.id,ref:s,sectionId:joinWithSeparator(e,t.id),underlined:"operation"===t.type||"schema"===t.type,expanded:i&&!a,children:_jsx(r,{item:t,routingBasePath:e,isExpanded:a,layout:n||p})}),(a||"tag"!==t.type)&&Boolean(null===(m=t.items)||void 0===m?void 0:m.length)&&_jsx(_Fragment,{children:o})]})}export const ContentItem=memo(ContentItemComponent);
|
|
2
2
|
//# sourceMappingURL=ContentItem.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useEffect,useRef}from"react";import{useLocation}from"react-router-dom";import{removeLeadingSlash}from"@redocly/theme";import{getElementById}from"../Content/useAutoScroll";function useScrollOnRender(e,o){const r=useRef(null),t=useLocation(),n=removeLeadingSlash(t.pathname.replace(o,""));return useEffect((()=>{var o;if(r.current&&removeLeadingSlash(e.href)===n&&("function"==typeof(null===(o=null==r?void 0:r.current)||void 0===o?void 0:o.scrollIntoView)&&r.current.scrollIntoView(),t.hash)){const e=getElementById(t.hash.replace("#","").toLowerCase());e&&e.scrollIntoView()}}),[]),r}export default useScrollOnRender;
|
|
1
|
+
import{useEffect,useRef}from"react";import{useLocation}from"react-router-dom";import{removeLeadingSlash}from"@redocly/theme";import{getElementById}from"../Content/useAutoScroll";function useScrollOnRender(e,o){const r=useRef(null),t=useLocation(),n=removeLeadingSlash(t.pathname.replace(o,""));return useEffect((()=>{var o;if(r.current&&e.href&&removeLeadingSlash(e.href)===n&&("function"==typeof(null===(o=null==r?void 0:r.current)||void 0===o?void 0:o.scrollIntoView)&&r.current.scrollIntoView(),t.hash)){const e=getElementById(t.hash.replace("#","").toLowerCase());e&&e.scrollIntoView()}}),[]),r}export default useScrollOnRender;
|
|
2
2
|
//# sourceMappingURL=useScrollOnRender.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { UseDownloadInfoProps, UseDownloadInfoReturnType } from './types';
|
|
2
|
-
export declare const useDownloadInfo: ({ downloadUrls, }: UseDownloadInfoProps) => UseDownloadInfoReturnType | undefined;
|
|
2
|
+
export declare const useDownloadInfo: ({ downloadUrls, defaultFileName, }: UseDownloadInfoProps) => UseDownloadInfoReturnType | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useMemo}from"react";export const useDownloadInfo=({downloadUrls:e})=>useMemo((()=>{if(e)return e.map((({title:e,url:o})=>({url:o,title:e||getFileNameFromUrl(o,"openapi.yaml"),iconType:getIconTypeFromUrl(o)})))}),[e]);function getFileNameFromUrl(e,
|
|
1
|
+
import{useMemo}from"react";export const useDownloadInfo=({downloadUrls:e,defaultFileName:l})=>useMemo((()=>{if(e)return e.map((({title:e,url:o})=>({url:o,title:e||getFileNameFromUrl(o,l||"openapi.yaml"),iconType:getIconTypeFromUrl(o)})))}),[e,l]);function getFileNameFromUrl(e,l){const o=e.split("?")[0].split(/[\\\/]/).pop();return o&&(o.includes("yaml")||o.includes("json"))?o:l}function getIconTypeFromUrl(e,l){const o=l||e.split("?")[0].split(/[\\\/]/).pop();return o?o.includes("yaml")?"yaml":o.includes("json")?"json":"file":"file"}
|
|
2
2
|
//# sourceMappingURL=useDownloadInfo.js.map
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { OperationItemProps } from './types';
|
|
2
2
|
export declare const OperationItem: import("react").NamedExoticComponent<OperationItemProps>;
|
|
3
|
+
export declare const OperationSamplesPanel: import("styled-components").StyledComponent<"div", any, {
|
|
4
|
+
isStacked: boolean;
|
|
5
|
+
}, never>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row,CustomBadges}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink,joinWithSeparator}from"../../services";import{layoutAtom,userClaimsAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";import{StyledBadge}from"../common/Badges";import{useTranslate}from"../../hooks";function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const l=useTranslate(),{parser:i,options:n}=useAtomValue(globalStoreAtom),r=useAtomValue(userClaimsAtom),p=useAtomValue(layoutAtom),[d,m]=useState(),{unstable_hooks:c,feedback:u}=n,k=useMemo((()=>getOperation(i,e,a,n,o,void 0,r)),[o,e,n,a,i,r]),{name:S,deprecated:b,isWebhook:x,badges:h}=k||{},j=p===LayoutVariant.STACKED,f=(null==u?void 0:u.type)||"sentiment",g=!0!==(null==u?void 0:u.hide),[_,y]=useState(null),O=useCallback((e=>{d!==e&&m(e)}),[d]),R=useMemo((()=>g?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:f,settings:u.settings,path:joinWithSeparator(n.routingBasePath,k.href)})}):null),[g,f,u.settings,n.routingBasePath,k.href]);return _jsxs(OperationRow,{layout:p,children:[_jsx(OperationSubRowStyled,{layout:p,children:_jsxs(SamplesMiddlePanel,{isStacked:j,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==c?void 0:c.BeforeOperation),props:{operation:k}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${S}`}),_jsx(CustomBadges,{badges:h,children:S}),b&&_jsx(StyledBadge,{deprecated:!0,children:l("openapi.badges.deprecated","Deprecated")}),x&&_jsx(StyledBadge,{children:l("openapi.badges.webhook","Webhook")})]})]})}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:_jsx(RequestDetails,{operation:k,translate:l})}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:k})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:(null===(t=k.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:k.responses,operationId:k.id,operationPointer:k.pointer,callbackId:k.callbackId,activeResponseTab:d,onTabChange:O}):null}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:k,activeResponseTab:d,onTabChange:O})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsxs(SamplesMiddlePanel,{isStacked:j,children:[(null===(s=k.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(k.id,"callbacks")}),l("openapi.callbacks","Callbacks")]}),_jsx(CallbacksList,{callbacks:k.callbacks,onExpand:y,selectedCallback:_})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==c?void 0:c.AfterOperation),props:{operation:k}})]}),_?_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:_,translate:l})}):null]}),_jsx(OperationSubRowStyled,{layout:p,children:_jsx(SamplesMiddlePanel,{isStacked:j,fullWidth:!0,children:R})})]})}export const OperationItem=memo(OperationItemComponent);const OperationSamplesPanel=styled(SamplesPanel)`
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row,CustomBadges}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink,joinWithSeparator}from"../../services";import{layoutAtom,userClaimsAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";import{StyledBadge}from"../common/Badges";import{useTranslate}from"../../hooks";function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const l=useTranslate(),{parser:i,options:n}=useAtomValue(globalStoreAtom),r=useAtomValue(userClaimsAtom),p=useAtomValue(layoutAtom),[d,m]=useState(),{unstable_hooks:c,feedback:u}=n,k=useMemo((()=>getOperation(i,e,a,n,o,void 0,r)),[o,e,n,a,i,r]),{name:S,deprecated:b,isWebhook:x,badges:h}=k||{},j=p===LayoutVariant.STACKED,f=(null==u?void 0:u.type)||"sentiment",g=!0!==(null==u?void 0:u.hide),[_,y]=useState(null),O=useCallback((e=>{d!==e&&m(e)}),[d]),R=useMemo((()=>g?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:f,settings:u.settings,path:joinWithSeparator(n.routingBasePath,k.href)})}):null),[g,f,u.settings,n.routingBasePath,k.href]);return _jsxs(OperationRow,{layout:p,children:[_jsx(OperationSubRowStyled,{layout:p,children:_jsxs(SamplesMiddlePanel,{isStacked:j,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==c?void 0:c.BeforeOperation),props:{operation:k}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${S}`}),_jsx(CustomBadges,{badges:h,children:S}),b&&_jsx(StyledBadge,{deprecated:!0,children:l("openapi.badges.deprecated","Deprecated")}),x&&_jsx(StyledBadge,{children:l("openapi.badges.webhook","Webhook")})]})]})}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:_jsx(RequestDetails,{operation:k,translate:l})}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:k})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:(null===(t=k.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:k.responses,operationId:k.id,operationPointer:k.pointer,callbackId:k.callbackId,activeResponseTab:d,onTabChange:O}):null}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:k,activeResponseTab:d,onTabChange:O})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsxs(SamplesMiddlePanel,{isStacked:j,children:[(null===(s=k.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(k.id,"callbacks")}),l("openapi.callbacks","Callbacks")]}),_jsx(CallbacksList,{callbacks:k.callbacks,onExpand:y,selectedCallback:_})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==c?void 0:c.AfterOperation),props:{operation:k}})]}),_?_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:_,translate:l})}):null]}),_jsx(OperationSubRowStyled,{layout:p,children:_jsx(SamplesMiddlePanel,{isStacked:j,fullWidth:!0,children:R})})]})}export const OperationItem=memo(OperationItemComponent);export const OperationSamplesPanel=styled(SamplesPanel)`
|
|
2
2
|
margin-left: auto;
|
|
3
3
|
--code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
|
|
4
|
-
|
|
4
|
+
`;const FeedbackWrapper=styled.div`
|
|
5
5
|
& > div {
|
|
6
6
|
flex: 1 1 auto;
|
|
7
7
|
display: flex;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const PanelItemWrap: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
2
2
|
export declare const Item: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
3
3
|
export declare const Header: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
4
|
-
export declare const Title: import("styled-components").StyledComponent<"
|
|
4
|
+
export declare const Title: import("styled-components").StyledComponent<"p", any, {
|
|
5
5
|
active?: boolean;
|
|
6
6
|
}, never>;
|
|
7
7
|
export declare const ActionsWrap: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -15,7 +15,7 @@ import styled from"styled-components";import{CheckmarkIcon}from"@redocly/theme";
|
|
|
15
15
|
color: var(--menu-content-title-color);
|
|
16
16
|
font-size: var(--h6-font-size);
|
|
17
17
|
line-height: var(--line-height-xsm);
|
|
18
|
-
`;export const Title=styled.
|
|
18
|
+
`;export const Title=styled.p`
|
|
19
19
|
margin: 0;
|
|
20
20
|
color: var(--text-color-secondary);
|
|
21
21
|
font-size: var(--font-size-base);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Schema}from"../Schema";import{FieldDetails}from"./FieldDetails";import{generateDeepLink}from"../common/LinkToField";import{activeMimeNameAtom}from"../../jotai/app";function PropertyDetailsComponent({field:e,skipWriteOnly:i,skipReadOnly:r,level:
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Schema}from"../Schema";import{FieldDetails}from"./FieldDetails";import{generateDeepLink}from"../common/LinkToField";import{activeMimeNameAtom}from"../../jotai/app";function PropertyDetailsComponent({field:e,skipWriteOnly:i,skipReadOnly:r,level:s=1,showTitle:t,renderDiscriminatorSwitch:a,isFirst:o,fieldParentsName:n,disableDeepLinks:m,oneOfLevel:p,slug:l}){const d=useAtomValue(activeMimeNameAtom),c=m?void 0:generateDeepLink(e,d),h=l&&c?`${l}&${c.replace("#","")}`:c,y=!e.schema.isPrimitive&&!e.schema.isCircular;return _jsxs(Wrapper,{isFist:o,expanded:y,className:"property",children:[_jsx(FieldDetails,{field:e,renderDiscriminatorSwitch:a,deepLink:h,fieldParentsName:n}),y&&_jsx(Schema,{schema:e.schema,skipReadOnly:r,skipWriteOnly:i,showTitle:t,expandable:!0,level:s+1,fieldParentsName:[...n||[],e.name],deepLink:h,required:e.required,disableDeepLinks:m,oneOfLevel:p,slug:l})]})}export const PropertyDetails=memo(PropertyDetailsComponent);const Wrapper=styled.div`
|
|
2
2
|
width: 100%;
|
|
3
3
|
padding: ${({isFist:e})=>`var(--schema-${e?"fist-":""}property-details-spacing)`} 0
|
|
4
4
|
${({expanded:e})=>e?0:"var(--schema-property-details-spacing)"};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{useAtomValue}from"jotai";import{PropertiesTableCaption}from"../common";import{Discriminator}from"../Discriminator";import{globalOptionsAtom}from"../../jotai/store";import{PropertyDetails}from"../PropertyDetails";import{SubSchema}from"./SubSchema";import{getExpandByDefault}from"./helpers";import{useTranslate}from"../../hooks";import{ArrayClosingLabel,LabelValue}from"../common/styled";function ObjectSchemaComponent({schema:e,showTitle:a,discriminator:r,level:i,skipWriteOnly:o,skipReadOnly:t,fieldParentsName:n,expandable:l,deepLink:s,required:m,disableDeepLinks:p,shouldCloseArray:c,oneOfLevel:d}){const{fields:
|
|
1
|
+
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{useAtomValue}from"jotai";import{PropertiesTableCaption}from"../common";import{Discriminator}from"../Discriminator";import{globalOptionsAtom}from"../../jotai/store";import{PropertyDetails}from"../PropertyDetails";import{SubSchema}from"./SubSchema";import{getExpandByDefault}from"./helpers";import{useTranslate}from"../../hooks";import{ArrayClosingLabel,LabelValue}from"../common/styled";function ObjectSchemaComponent({schema:e,showTitle:a,discriminator:r,level:i,skipWriteOnly:o,skipReadOnly:t,fieldParentsName:n,expandable:l,deepLink:s,required:m,disableDeepLinks:p,shouldCloseArray:c,oneOfLevel:d,slug:h}){const{fields:u=[],title:f}=e,x=useTranslate(),{schemasExpansionLevel:b}=useAtomValue(globalOptionsAtom),y=t||o?u.filter((e=>!(t&&e.schema.readOnly||o&&e.schema.writeOnly))):u,j=getExpandByDefault({required:m,level:i,schemasExpansionLevel:b});return _jsxs(SubSchema,{expandable:l,expandByDefault:j,level:i,propertyLength:y.length,deepLink:s,operationPointer:e.operationPointer,children:[_jsxs(_Fragment,{children:[a&&_jsx(PropertiesTableCaption,{children:f}),y.map(((e,l)=>_jsx(PropertyDetails,{isFirst:0===l,field:e,fieldParentsName:Number(i)>1?n:[],renderDiscriminatorSwitch:(null==r?void 0:r.fieldName)===e.name&&(null==r?void 0:r.parentSchema)?()=>_jsx(Discriminator,{parent:r.parentSchema,onChange:null==r?void 0:r.onChange,activeOneOfIdx:r.activeOneOfIdx,translate:x}):void 0,skipReadOnly:t,skipWriteOnly:o,showTitle:a,level:i,disableDeepLinks:p,oneOfLevel:d,slug:h},e.name)))]}),c&&_jsx(ArrayClosingLabel,{className:"array-closing-label",children:_jsx(LabelValue,{children:"]"})})]})}export const ObjectSchema=memo(ObjectSchemaComponent);
|
|
2
2
|
//# sourceMappingURL=ObjectSchema.js.map
|
|
@@ -16,6 +16,7 @@ export interface SchemaProps extends SchemaOptions {
|
|
|
16
16
|
fieldParentsName?: string[];
|
|
17
17
|
expandable?: boolean;
|
|
18
18
|
deepLink?: string;
|
|
19
|
+
slug?: string;
|
|
19
20
|
required?: boolean;
|
|
20
21
|
disableDeepLinks?: boolean;
|
|
21
22
|
oneOfLevel?: number;
|
|
@@ -31,6 +32,7 @@ export interface ObjectSchemaProps extends Omit<SchemaProps, 'onDiscriminatorCha
|
|
|
31
32
|
fieldParentsName?: string[];
|
|
32
33
|
expandable?: boolean;
|
|
33
34
|
required?: boolean;
|
|
35
|
+
slug?: string;
|
|
34
36
|
oneOfLevel?: number;
|
|
35
37
|
shouldCloseArray?: boolean;
|
|
36
38
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LayoutVariant } from '@redocly/theme';
|
|
1
2
|
import type { ReactElement } from 'react';
|
|
2
3
|
import type { ContentItemModel } from '../../models';
|
|
3
4
|
interface SectionContentProps {
|
|
@@ -5,4 +6,12 @@ interface SectionContentProps {
|
|
|
5
6
|
hideFooterAndHeader?: boolean;
|
|
6
7
|
}
|
|
7
8
|
export declare function SectionContent({ items, hideFooterAndHeader, }: SectionContentProps): ReactElement | null;
|
|
9
|
+
export declare const SectionContainer: import("styled-components").StyledComponent<"div", any, {
|
|
10
|
+
layout?: LayoutVariant;
|
|
11
|
+
}, never>;
|
|
12
|
+
export declare const RightPanelContainer: import("styled-components").StyledComponent<"div", any, {
|
|
13
|
+
isStacked: boolean;
|
|
14
|
+
} & {
|
|
15
|
+
isStacked: boolean;
|
|
16
|
+
}, never>;
|
|
8
17
|
export {};
|
|
@@ -2,13 +2,13 @@ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";i
|
|
|
2
2
|
align-self: flex-start;
|
|
3
3
|
padding-top: var(--panel-gap-vertical);
|
|
4
4
|
padding-bottom: var(--panel-gap-vertical);
|
|
5
|
-
|
|
5
|
+
`;export const SectionContainer=styled.div`
|
|
6
6
|
width: 100%;
|
|
7
7
|
|
|
8
8
|
@media screen and (min-width: ${breakpoints.large}) {
|
|
9
9
|
width: ${({layout:e})=>e===LayoutVariant.STACKED?"100%":"calc(100% - var(--panel-samples-width))"};
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
`;export const RightPanelContainer=styled(SamplesPanel)`
|
|
12
12
|
margin: var(--spacing-base) 0;
|
|
13
13
|
`;
|
|
14
14
|
//# sourceMappingURL=SectionContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { SectionContent } from './SectionContent';
|
|
1
|
+
export { SectionContent, SectionContainer, RightPanelContainer } from './SectionContent';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{SectionContent}from"./SectionContent";
|
|
1
|
+
export{SectionContent,SectionContainer,RightPanelContainer}from"./SectionContent";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { LayoutVariant } from '@redocly/theme';
|
|
1
2
|
import type { GroupModel } from '../../models';
|
|
2
3
|
export interface SectionItemProps {
|
|
3
4
|
item: GroupModel;
|
|
5
|
+
layout: LayoutVariant;
|
|
4
6
|
}
|
|
5
7
|
export declare const SectionItem: import("react").NamedExoticComponent<SectionItemProps>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{
|
|
1
|
+
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{LayoutVariant}from"@redocly/theme";import{SamplesMiddlePanel,Row}from"../common";import{Markdown}from"../Markdown";import{ExternalDocumentation}from"../ExternalDocumentation";function SectionItemComponent({item:t,layout:e}){const{externalDocs:o,ast:n,description:a}=t,r=e===LayoutVariant.STACKED,m=!t.parent||"tag"!==t.parent.type;return _jsxs(_Fragment,{children:[_jsx(Markdown,{ast:n,source:a,htmlWrap:t=>_jsx(SamplesMiddlePanel,{compact:!0,fullWidth:m,isStacked:r,children:t})}),o&&_jsx(Row,{children:_jsx(SamplesMiddlePanel,{compact:!0,fullWidth:m,isStacked:r,children:_jsx(ExternalDocumentation,{externalDocs:o})})})]})}export const SectionItem=memo(SectionItemComponent);
|
|
2
2
|
//# sourceMappingURL=SectionItem.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import{useAtom}from"jotai";import{LayoutVariant,SidebarActions as ThemeSidebarActions}from"@redocly/theme";import styled from"styled-components";import{collapsedSidebarAtom,layoutAtom}from"../../jotai/app";export const SidebarActions=()=>{const[a,o]=useAtom(layoutAtom),[t,e]=useAtom(collapsedSidebarAtom);return _jsx(_Fragment,{children:_jsx(Wrapper,{children:_jsx(ThemeSidebarActions,{layout:a,onChangeViewClick:()=>o(a===LayoutVariant.STACKED?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED),collapsedSidebar:t,onChangeCollapseSidebarClick:()=>e(!t),
|
|
1
|
+
import{jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import{useAtom}from"jotai";import{LayoutVariant,SidebarActions as ThemeSidebarActions}from"@redocly/theme";import styled from"styled-components";import{collapsedSidebarAtom,layoutAtom}from"../../jotai/app";export const SidebarActions=()=>{const[a,o]=useAtom(layoutAtom),[t,e]=useAtom(collapsedSidebarAtom);return _jsx(_Fragment,{children:_jsx(Wrapper,{children:_jsx(ThemeSidebarActions,{layout:a,onChangeViewClick:()=>o(a===LayoutVariant.STACKED?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED),collapsedSidebar:t,onChangeCollapseSidebarClick:()=>e(!t),isApiDocs:!0})})})};const Wrapper=styled.div`
|
|
2
2
|
position: sticky;
|
|
3
3
|
top: calc(100vh);
|
|
4
4
|
padding: var(--spacing-sm) var(--spacing-md);
|
|
@@ -41,6 +41,7 @@ import styled from"styled-components";import{Button}from"@redocly/theme";export
|
|
|
41
41
|
border-radius: var(--border-radius);
|
|
42
42
|
border: var(--schema-inline-border);
|
|
43
43
|
padding: 0 var(--spacing-unit);
|
|
44
|
+
width: fit-content;
|
|
44
45
|
`;export const RecursiveLabel=styled(Tag)`
|
|
45
46
|
background-color: var(--schema-recursive-bg-color);
|
|
46
47
|
border-color: var(--schema-recursive-border-color);
|
|
@@ -1,4 +1,4 @@
|
|
|
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)`
|
|
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;
|
|
@@ -3,6 +3,8 @@ import type { OpenAPISchema } from '../../types';
|
|
|
3
3
|
interface RedocSchemaProps {
|
|
4
4
|
pointer?: string;
|
|
5
5
|
schema?: OpenAPISchema;
|
|
6
|
+
disableDeepLinks?: boolean;
|
|
7
|
+
slug?: string;
|
|
6
8
|
}
|
|
7
|
-
export declare const RedocSchema: ({ pointer, schema }: RedocSchemaProps) => ReactElement;
|
|
9
|
+
export declare const RedocSchema: ({ pointer, schema, disableDeepLinks, slug, }: RedocSchemaProps) => ReactElement;
|
|
8
10
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{getSchema}from"../../models";import{Row}from"../common";import{FullWidthPanel}from"./styled.components";import{Schema}from"../Schema";import{globalStoreAtom}from"../../jotai/store";export const RedocSchema=({pointer:e,schema:o})=>{const{options:
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{getSchema}from"../../models";import{Row}from"../common";import{FullWidthPanel}from"./styled.components";import{Schema}from"../Schema";import{globalStoreAtom}from"../../jotai/store";export const RedocSchema=({pointer:e,schema:o,disableDeepLinks:r,slug:t})=>{const{options:m,parser:s}=useAtomValue(globalStoreAtom),a=getSchema({parser:s,schemaOrRef:o||{$ref:e},pointer:e||"",options:m,deps:{operation:{pointer:"RedocSchema"}}});return _jsx(Row,{children:_jsx(FullWidthPanel,{children:_jsx(Schema,{schema:a,level:1,disableDeepLinks:r,slug:t})})})};
|
|
2
2
|
//# sourceMappingURL=RedocSchema.js.map
|
package/lib-esm/empty.d.ts
CHANGED
package/lib-esm/empty.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
module.exports={isatty:()=>{}};
|
|
1
|
+
module.exports={isatty:()=>{},createRequire:()=>{}};
|
|
2
2
|
//# sourceMappingURL=empty.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare function useOtelTelemetry(): {
|
|
2
|
-
send(action: "error" | "page.viewed" | "search.ai.query" | "search.query" | "search.result.clicked" | "openapi_docs.viewed" | "openapi_docs.performance_metrics" | "openapi_docs.download_definition.clicked" | "openapi_docs.select_language.clicked" | "openapi_docs.expand_collapse_all.clicked" | "openapi_docs.copy_code_snippet.clicked" | "openapi_docs.switch_servers.clicked" | "openapi_docs.examples_switcher.clicked" | "openapi_docs.try_it.opened", data: unknown): void;
|
|
2
|
+
send(action: "error" | "page.viewed" | "search.ai.query" | "search.query" | "search.result.clicked" | "openapi_docs.viewed" | "openapi_docs.performance_metrics" | "openapi_docs.download_definition.clicked" | "openapi_docs.select_language.clicked" | "openapi_docs.expand_collapse_all.clicked" | "openapi_docs.copy_code_snippet.clicked" | "openapi_docs.switch_servers.clicked" | "openapi_docs.examples_switcher.clicked" | "openapi_docs.try_it.opened" | "asyncapi_docs.performance_metrics" | "asyncapi_docs.viewed" | "asyncapi_docs.switch_message.clicked" | "asyncapi_docs.switch_example.clicked" | "asyncapi_docs.message.clicked", data: unknown): void;
|
|
3
3
|
};
|
package/lib-esm/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export type { Options } from './services/config-options/types';
|
|
2
2
|
export type { IMenuItem } from './services/types';
|
|
3
|
-
export type { OperationModel, SchemaModel, ContentItemModel } from './models/types';
|
|
3
|
+
export type { OperationModel, SchemaModel, ContentItemModel, GroupModel, FieldModel, } from './models/types';
|
|
4
4
|
export type { CodeSampleOptions } from './models/code-sample-options';
|
|
5
5
|
export type { SecurityDetails, OpenAPIDefinition, OpenAPIOperation, OpenAPIParameterLocation, OpenAPISchema, } from './types';
|
|
6
|
+
export type { ServerListProps } from './components/ServerList/types';
|
|
7
|
+
export type { DownloadUrlsConfig, DownloadIconType, UseDownloadInfoProps, UseDownloadInfoReturnType, } from './components/Download/types';
|
|
8
|
+
export { simplifyAstStructure } from './utils/simplifyAstStructure';
|
|
6
9
|
export { getOperation } from './models/operation';
|
|
7
10
|
export { getServerEnvName } from './utils/environments';
|
|
8
11
|
export { getTagOrGroup } from './models/group';
|
|
@@ -13,8 +16,28 @@ export { RedocSchema, RedocExample } from './components/pluggable';
|
|
|
13
16
|
export { RedoclyOpenAPIDocs, RedoclyOpenAPIDocsStandalone, AppProvider, StoreProvider, getMarkdownHeaderId, } from './components/RedoclyOpenAPIDocs';
|
|
14
17
|
export { JsonPointer } from './utils/JsonPointer';
|
|
15
18
|
export { isOperationName } from './utils/openapi';
|
|
19
|
+
export { pathIncludesLink } from './utils/path';
|
|
16
20
|
export { OpenAPIParser } from './services';
|
|
17
|
-
export { buildContentItems, normalizeOptions } from './services';
|
|
21
|
+
export { buildContentItems, normalizeOptions, makeDeepLink } from './services';
|
|
18
22
|
export declare function useOpenapiDocsOptions(): import("./services").Options;
|
|
19
23
|
export { EmbeddedReplay } from './components/Replay/EmbeddedReplay';
|
|
20
24
|
export { convertOperationToReplayValue } from './components/Replay/utils';
|
|
25
|
+
export { SectionContainer } from './components/SectionContent';
|
|
26
|
+
export { Row } from './components/common';
|
|
27
|
+
export { RightPanelContainer } from './components/SectionContent';
|
|
28
|
+
export { Overview } from './components/Overview';
|
|
29
|
+
export { SamplesMiddlePanel, Section, SamplesPanel } from './components/common';
|
|
30
|
+
export { Heading } from './components/common/OperationItemTitle';
|
|
31
|
+
export { Dropdown } from './components/common/Dropdown';
|
|
32
|
+
export { Markdown } from './components/Markdown';
|
|
33
|
+
export { FieldValueLabel, FieldLabel } from './components/common';
|
|
34
|
+
export { CodeBlockPanel } from './components/common';
|
|
35
|
+
export { OperationSamplesPanel } from './components/OperationItem/OperationItem';
|
|
36
|
+
export { ExternalDocumentation } from './components/ExternalDocumentation';
|
|
37
|
+
export { PropertyDetails } from './components/PropertyDetails';
|
|
38
|
+
export { addMarkdownItems } from './services/menu/markdown';
|
|
39
|
+
export { getValueFromMdParsedExtension } from './utils/helpers';
|
|
40
|
+
export { ContentItem } from './components/ContentItem';
|
|
41
|
+
export { ExampleSwitch } from './components/Samples/ExampleSwitch';
|
|
42
|
+
export { useDownloadInfo } from './components/Download/useDownloadInfo';
|
|
43
|
+
export { SECTION_ATTR } from './constants';
|
package/lib-esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useAtomValue}from"jotai";import{globalOptionsAtom}from"./jotai/store";export{getOperation}from"./models/operation";export{getServerEnvName}from"./utils/environments";export{getTagOrGroup}from"./models/group";export{generateDeepLink}from"./components/common";export{RequestSamples}from"./components/RequestSamples";export{ResponseSamples}from"./components/ResponseSamples";export{RedocSchema,RedocExample}from"./components/pluggable";export{RedoclyOpenAPIDocs,RedoclyOpenAPIDocsStandalone,AppProvider,StoreProvider,getMarkdownHeaderId}from"./components/RedoclyOpenAPIDocs";export{JsonPointer}from"./utils/JsonPointer";export{isOperationName}from"./utils/openapi";export{OpenAPIParser}from"./services";export{buildContentItems,normalizeOptions}from"./services";export function useOpenapiDocsOptions(){return useAtomValue(globalOptionsAtom)}export{EmbeddedReplay}from"./components/Replay/EmbeddedReplay";export{convertOperationToReplayValue}from"./components/Replay/utils";
|
|
1
|
+
import{useAtomValue}from"jotai";import{globalOptionsAtom}from"./jotai/store";export{simplifyAstStructure}from"./utils/simplifyAstStructure";export{getOperation}from"./models/operation";export{getServerEnvName}from"./utils/environments";export{getTagOrGroup}from"./models/group";export{generateDeepLink}from"./components/common";export{RequestSamples}from"./components/RequestSamples";export{ResponseSamples}from"./components/ResponseSamples";export{RedocSchema,RedocExample}from"./components/pluggable";export{RedoclyOpenAPIDocs,RedoclyOpenAPIDocsStandalone,AppProvider,StoreProvider,getMarkdownHeaderId}from"./components/RedoclyOpenAPIDocs";export{JsonPointer}from"./utils/JsonPointer";export{isOperationName}from"./utils/openapi";export{pathIncludesLink}from"./utils/path";export{OpenAPIParser}from"./services";export{buildContentItems,normalizeOptions,makeDeepLink}from"./services";export function useOpenapiDocsOptions(){return useAtomValue(globalOptionsAtom)}export{EmbeddedReplay}from"./components/Replay/EmbeddedReplay";export{convertOperationToReplayValue}from"./components/Replay/utils";export{SectionContainer}from"./components/SectionContent";export{Row}from"./components/common";export{RightPanelContainer}from"./components/SectionContent";export{Overview}from"./components/Overview";export{SamplesMiddlePanel,Section,SamplesPanel}from"./components/common";export{Heading}from"./components/common/OperationItemTitle";export{Dropdown}from"./components/common/Dropdown";export{Markdown}from"./components/Markdown";export{FieldValueLabel,FieldLabel}from"./components/common";export{CodeBlockPanel}from"./components/common";export{OperationSamplesPanel}from"./components/OperationItem/OperationItem";export{ExternalDocumentation}from"./components/ExternalDocumentation";export{PropertyDetails}from"./components/PropertyDetails";export{addMarkdownItems}from"./services/menu/markdown";export{getValueFromMdParsedExtension}from"./utils/helpers";export{ContentItem}from"./components/ContentItem";export{ExampleSwitch}from"./components/Samples/ExampleSwitch";export{useDownloadInfo}from"./components/Download/useDownloadInfo";export{SECTION_ATTR}from"./constants";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{isObject}from"@redocly/theme";import{areArraysEqual,serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return areArraysEqual(a,t||[])}))}function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:s,generatedPayloadSamplesMaxDepth:i=8,pathParams:n={},properties:o={},activeMimeName:l=""},{environment:c,requestValues:u,activeSecuritySchemeIds:p}){var d,m,y;const h=c.server,f=e.servers.find((e=>e.url===h))||e.servers[0],g=getSelectedSecurityScheme(e.security,p),{securityHeaders:O,securityCookies:v,securityQueries:S,securityOAuth2ExtraCalls:T,basicAuth:_}=getSecurityData(g||(null===(d=e.security)||void 0===d?void 0:d[0]),r,c),C=(null===(m=null==e?void 0:e.requestBody)||void 0===m?void 0:m.content)&&getActiveMediaType(e.requestBody.content,l),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},k=u;let j=!1;const E=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=k.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||e.example||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(j=!0,e.value=C.name),e))).concat(O);!j&&(null==C?void 0:C.name)&&E.unshift({name:"Content-Type",value:null==C?void 0:C.name});const A=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||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=k.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(v),P=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:isArrayOfObjects(null===(a=k.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=k.query)||void 0===r?void 0:r[i]))||String((null===(s=k.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(S),w=`${null==f?void 0:f.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,x=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=k.path)||void 0===a?void 0:a[s])||t.example||n[s]||getParameterValue(r,s),e}),{}),M=null===(y=null==C?void 0:C.examples)||void 0===y?void 0:y[t],R=(null==C?void 0:C.examples)||{},[D]=Object.values(R),q=null==C?void 0:C.name.toLowerCase(),N=(null==k?void 0:k.body)||(null==M?void 0:M.value)||(null==D?void 0:D.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,Object.assign(Object.assign({},b),{format:q===MediaTypes.XML?"xml":"json"}),s);let H="",U=[];switch(normalizeMimeType(q)){case MediaTypes.JSON:H=JSON.stringify(getDataRequest(N,o));break;case MediaTypes.XML:H=N;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:H=queryString.stringify(getDataRequest(N,o)),U=objectToHarParams(getDataRequest(N,o));break;default:H=String(N||"")}const $=H?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:H,params:U}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:w,httpVersion:"HTTP/1.1",cookies:A,headers:E,queryString:P,postData:$,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:T,basicAuth:_,pathParameters:x,serverVariables:c,allResponseCodes:z}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:s,options:i={},environment:n,translate:o}){try{const{skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,store:d,activeMimeName:m}=i,y=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,activeMimeName:m},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new HTTPSnippet(y);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 c of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(c.id,a),u={access_token:c["x-defaultAccessToken"],token_type:c["x-defaultTokenType"],client_id:c["x-defaultClientId"],client_secret:c["x-defaultClientSecret"]},p=c["x-defaultUsername"],d=c["x-defaultPassword"];switch(c.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${u.token_type||e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";c.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(c.flows.clientCredentials,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))):c.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(c.flows.password,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=u.access_token||e.raw||"YOUR_API_KEY_HERE";"header"===c.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:c.name,value:t})),"cookie"===c.in&&l.securityCookies.push({name:c.name,value:t}),"query"===c.in&&l.securityQueries.push({name:c.name,value:t});break}case"http":if("basic"===c.scheme)l.basicAuth={username:p||e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:d||e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null==u?void 0:u.access_token)||(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${c.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(c.scheme||"bearer")} ${t}`})}}}return l}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}export function getDataRequest(e,t){if(e){if(isObject(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];if(Array.isArray(e))return e.map((e=>({name:`${t}`,value:String(e)})));for(const[r,s]of Object.entries(e)){const e=t?`${t}[${r}]`:r;"object"==typeof s&&null!==s?a.push(...objectToHarParams(s,e)):a.push({name:e,value:String(s)})}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
|
|
1
|
+
import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{isObject}from"@redocly/theme";import{areArraysEqual,serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return areArraysEqual(a,t||[])}))}function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:s,generatedPayloadSamplesMaxDepth:i=8,pathParams:n={},properties:o={},activeMimeName:l=""},{environment:c,requestValues:u,activeSecuritySchemeIds:p}){var d,m,y;const h=c.server,f=e.servers.find((e=>e.url===h))||e.servers[0],g=getSelectedSecurityScheme(e.security,p),{securityHeaders:O,securityCookies:v,securityQueries:S,securityOAuth2ExtraCalls:T,basicAuth:_}=getSecurityData(g||(null===(d=e.security)||void 0===d?void 0:d[0]),r,c),C=(null===(m=null==e?void 0:e.requestBody)||void 0===m?void 0:m.content)&&getActiveMediaType(e.requestBody.content,l),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},k=u;let j=!1;const E=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=k.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||e.example||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(j=!0,e.value=C.name),e))).concat(O);!j&&(null==C?void 0:C.name)&&E.unshift({name:"Content-Type",value:null==C?void 0:C.name});const A=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||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=k.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(v),P=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:isArrayOfObjects(null===(a=k.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=k.query)||void 0===r?void 0:r[i]))||String((null===(s=k.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(S),w=`${null==f?void 0:f.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,x=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=k.path)||void 0===a?void 0:a[s])||t.example||n[s]||getParameterValue(r,s),e}),{}),M=null===(y=null==C?void 0:C.examples)||void 0===y?void 0:y[t],R=(null==C?void 0:C.examples)||{},[D]=Object.values(R),q=null==C?void 0:C.name.toLowerCase(),N=(null==k?void 0:k.body)||(null==M?void 0:M.value)||(null==D?void 0:D.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,Object.assign(Object.assign({},b),{format:q===MediaTypes.XML?"xml":"json"}),s);let H="",U=[];switch(normalizeMimeType(q)){case MediaTypes.JSON:H=JSON.stringify(getDataRequest(N,o));break;case MediaTypes.XML:H=N;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:H=queryString.stringify(getDataRequest(N,o)),U=objectToHarParams(getDataRequest(N,o));break;default:H=String(N||"")}const $=H?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:H,params:U}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:w,httpVersion:"HTTP/1.1",cookies:A,headers:E,queryString:P,postData:$,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:T,basicAuth:_,pathParameters:x,serverVariables:c,allResponseCodes:z}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:s,options:i={},environment:n,translate:o}){try{const{skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,store:d,activeMimeName:m}=i,y=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,activeMimeName:m},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new HTTPSnippet(y);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 c of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(c.id,a),u={access_token:c["x-defaultAccessToken"],token_type:c["x-defaultTokenType"],client_id:c["x-defaultClientId"],client_secret:c["x-defaultClientSecret"]},p=c["x-defaultUsername"],d=c["x-defaultPassword"];switch(c.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${u.token_type||e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";c.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(c.flows.clientCredentials,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))):c.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(c.flows.password,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=u.access_token||e.raw||"YOUR_API_KEY_HERE";"header"===c.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:c.name,value:t})),"cookie"===c.in&&l.securityCookies.push({name:c.name,value:t}),"query"===c.in&&l.securityQueries.push({name:c.name,value:t});break}case"http":if("basic"===c.scheme)l.basicAuth={username:p||e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:d||e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null==u?void 0:u.access_token)||(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${c.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(c.scheme||"bearer")} ${t}`})}}}return l}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}export function getDataRequest(e,t){if(e){if(isObject(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];for(const[r,s]of Object.entries(e)){const i=t?`${t}[${r}]`:r;if("object"==typeof s&&null!==s)a.push(...objectToHarParams(s,i));else{const r=Array.isArray(e)&&"string"==typeof s&&t?t:i;a.push({name:r,value:String(s)})}}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
|
|
2
2
|
//# sourceMappingURL=generator.js.map
|
|
@@ -54,14 +54,17 @@ export interface RCodeSampleConfig extends CodeSampleBasicConfig {
|
|
|
54
54
|
export interface PayloadCodeSampleConfig extends CodeSampleBasicConfig {
|
|
55
55
|
lang: 'Payload';
|
|
56
56
|
}
|
|
57
|
+
export interface CustomLanguageCodeSampleConfig extends Omit<CodeSampleBasicConfig, 'lang'> {
|
|
58
|
+
lang: string;
|
|
59
|
+
}
|
|
57
60
|
export type CodeSampleConfig = CurlCodeSampleConfig | JavaScriptCodeSampleConfig | NodeJsCodeSampleConfig | PythonCodeSampleConfig | Java8CodeSampleConfig | JavaCodeSampleConfig | CSharpCodeSampleConfig | CSharpNewtonsoftCodeSampleConfig | PHPCodeSampleConfig | GoCodeSampleConfig | RubyCodeSampleConfig | RCodeSampleConfig;
|
|
58
61
|
/**
|
|
59
62
|
* Code Samples Generator rules
|
|
60
|
-
* -
|
|
63
|
+
* - Openapi docs displays language from redocly config.
|
|
61
64
|
* - In addition code samples will be generated only for defined languages in array
|
|
62
65
|
*/
|
|
63
66
|
export interface CodeSamplesConfig {
|
|
64
|
-
languages: (CodeSampleConfig | PayloadCodeSampleConfig)[];
|
|
67
|
+
languages: (CodeSampleConfig | PayloadCodeSampleConfig | CustomLanguageCodeSampleConfig)[];
|
|
65
68
|
skipOptionalParameters?: boolean;
|
|
66
69
|
withOAuth2Call?: boolean;
|
|
67
70
|
onSampleTabClick?: (label: string) => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parse,Ast}from"@markdoc/markdoc";import{isString}from"@redocly/theme";import{getTagOrGroup}from"../../models";import{safeSlugify,unescapeHTMLChars}from"../../utils";export function addMarkdownItems(t,e,i){const
|
|
1
|
+
import{parse,Ast}from"@markdoc/markdoc";import{isString}from"@redocly/theme";import{getTagOrGroup}from"../../models";import{safeSlugify,unescapeHTMLChars}from"../../utils";import{simplifyAstStructure}from"../../utils/simplifyAstStructure";export function addMarkdownItems(t,e,i){const r=isString(t)?simplifyAstStructure(parse(t)):Ast.fromJSON(JSON.stringify(null==t?void 0:t.result)),n=[];let o;const s=(t,e,i=n,r,o)=>{let s;t=unescapeHTMLChars(t),r.attributes.id?s=r.attributes.id:(s=o?`${o}/${safeSlugify(t)}`:`section/${safeSlugify(t)}`,r.attributes.id=s);const l={id:s.toLowerCase(),name:t,level:e,items:[],ast:[r]};return i.push(l),l},l=(t,e)=>{var i,r;null===(r=null===(i=t[t.length-1])||void 0===i?void 0:i.ast)||void 0===r||r.push(e)},u=t=>{var e;const i=getMarkdownContent(t)||"";"heading"===t.type&&1===t.attributes.level?o=s(i,t.attributes.level,void 0,t):t.attributes.level?s(i,t.attributes.level,null==o?void 0:o.items,t,null==o?void 0:o.id):(null===(e=null==o?void 0:o.items)||void 0===e?void 0:e.length)?l(null==o?void 0:o.items,t):(null==n?void 0:n.length)&&l(n,t)};if(Array.isArray(r))for(const t of r)u(t);else u(r);return mapHeadingsDeep(e,n,i)}function mapHeadingsDeep(t,e,i=1){return e.map((e=>{const r=getTagOrGroup("section",e,t);return r.depth=i,e.items&&(r.items=mapHeadingsDeep(r,e.items,i+1)),r}))}function getMarkdownContent(t){var e,i;return"string"==typeof(null===(e=null==t?void 0:t.attributes)||void 0===e?void 0:e.content)?null===(i=t.attributes)||void 0===i?void 0:i.content:(null==t?void 0:t.children)?getMarkdownContent(t.children[0]):void 0}
|
|
2
2
|
//# sourceMappingURL=markdown.js.map
|
|
@@ -24,6 +24,7 @@ export interface OpenAPIInfo extends ParsedDescriptionWithSummary {
|
|
|
24
24
|
termsOfService?: string;
|
|
25
25
|
contact?: OpenAPIContact;
|
|
26
26
|
license?: OpenAPILicense;
|
|
27
|
+
externalDocs?: OpenAPIExternalDocumentation;
|
|
27
28
|
'x-logo'?: XLogo;
|
|
28
29
|
'x-metadata'?: XMetadata;
|
|
29
30
|
'x-seo'?: XSEO;
|
package/lib-esm/utils/helpers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{format,parse}from"url";import{IS_BROWSER,isObject,isString}from"@redocly/theme";import{isNamedDefinition}from"./openapi";import{JsonPointer}from"./JsonPointer";export function mapWithLast(t,e){const r=[];for(let n=0;n<t.length-1;n++)r.push(e(t[n],!1));return 0!==t.length&&r.push(e(t[t.length-1],!0)),r}export function mapValues(t,e){const r={};for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=e(t[n],n,t));return r}export function flattenByProp(t,e){const r=[],n=t=>{for(const o of t)r.push(o),o[e]&&n(o[e])};return n(t),r}export function stripTrailingSlash(t){return t.endsWith("/")?t.substring(0,t.length-1):t}export function isNumeric(t){return!isNaN(parseFloat(t))&&isFinite(t)}export function appendToMdHeading(t,e,r){const n=new RegExp(`(^|\\n)#\\s?${e}\\s*\\n`,"i"),o=new RegExp(`((\\n|^)#\\s*${e}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(n.test(t))return t.replace(o,`$1\n\n${r}\n$4`);{const n=""===t||t.endsWith("\n\n")?"":t.endsWith("\n")?"\n":"\n\n";return`${t}${n}# ${e}\n\n${r}`}}export const isArrayOfObjects=t=>Array.isArray(t)&&t.some((t=>isObject(t)));export const deleteEmptyArrayItem=t=>t.filter((t=>!!t));export const isMergeableObject=t=>isObject(t)&&!Array.isArray(t);export function isAbsoluteUrl(t){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(t)}export function resolveUrl(t,e){let r;if(e.startsWith("//")){const{protocol:n}=parse(t);r=`${n||"https:"}${e}`}else if(isAbsoluteUrl(e))r=e;else if(e.startsWith("/")){const n=parse(t);r=format(Object.assign(Object.assign({},n),{pathname:e}))}else r=stripTrailingSlash(t)+"/"+e;return stripTrailingSlash(r)}export function titleize(t){return t.charAt(0).toUpperCase()+t.slice(1)}export function removeQueryStringAndHash(t){try{const e=parseURL(t);return e.search="",e.hash="",e.toString()}catch(e){return t}}function parseURL(t){return"undefined"==typeof URL?new(require("url").URL)(t):new URL(t)}export function escapeHTMLAttrChars(t){return t.replace(/["\\]/g,"\\$&")}export function unescapeHTMLChars(t){return t.replace(/&#(\d+);/g,((t,e)=>String.fromCharCode(parseInt(e,10)))).replace(/&/g,"&").replace(/"/g,'"')}export function sanitizeItemId(t){return t&&t.replace(/#/g,"_").toLowerCase()}export function useSchemaTitle(t,e){return e||isNamedDefinition(t)&&JsonPointer.baseName(t)||""}export function get(t={},e,r){return"string"==typeof e&&(e=e.split(".")),e.reduce(((t,e)=>t&&t[e]?t[e]:r),t)}export function joinStringFactory(t){return(...e)=>e.filter(Boolean).join(t)}export const dottedString=joinStringFactory(".");export function getWindowReferenceOptions(t){var e;return IS_BROWSER?null===(e=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===e?void 0:e[t]:null}export function getJsUrl(){var t;if(!IS_BROWSER)return"";const e=+new Date+Math.random();try{return document.currentScript&&(document.currentScript.async||document.currentScript.defer)||document.write(`<script id="dummy${e}"><\/script>`),(null===(t=document.getElementById("dummy"+e))||void 0===t?void 0:t.previousSibling).src}catch(t){return""}}export const normalizeText=t=>isString(t)?t:null==t?void 0:t.raw;export const getValueFromMdParsedExtension=(t,e)=>{const r=(null==t?void 0:t[`x-parsed-md-${e}`])||(null==t?void 0:t[e]);if("x-enumDescriptions"!==e)return
|
|
1
|
+
import{format,parse}from"url";import{IS_BROWSER,isObject,isString}from"@redocly/theme";import{isNamedDefinition}from"./openapi";import{JsonPointer}from"./JsonPointer";export function mapWithLast(t,e){const r=[];for(let n=0;n<t.length-1;n++)r.push(e(t[n],!1));return 0!==t.length&&r.push(e(t[t.length-1],!0)),r}export function mapValues(t,e){const r={};for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=e(t[n],n,t));return r}export function flattenByProp(t,e){const r=[],n=t=>{for(const o of t)r.push(o),o[e]&&n(o[e])};return n(t),r}export function stripTrailingSlash(t){return t.endsWith("/")?t.substring(0,t.length-1):t}export function isNumeric(t){return!isNaN(parseFloat(t))&&isFinite(t)}export function appendToMdHeading(t,e,r){const n=new RegExp(`(^|\\n)#\\s?${e}\\s*\\n`,"i"),o=new RegExp(`((\\n|^)#\\s*${e}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(n.test(t))return t.replace(o,`$1\n\n${r}\n$4`);{const n=""===t||t.endsWith("\n\n")?"":t.endsWith("\n")?"\n":"\n\n";return`${t}${n}# ${e}\n\n${r}`}}export const isArrayOfObjects=t=>Array.isArray(t)&&t.some((t=>isObject(t)));export const deleteEmptyArrayItem=t=>t.filter((t=>!!t));export const isMergeableObject=t=>isObject(t)&&!Array.isArray(t);export function isAbsoluteUrl(t){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(t)}export function resolveUrl(t,e){let r;if(e.startsWith("//")){const{protocol:n}=parse(t);r=`${n||"https:"}${e}`}else if(isAbsoluteUrl(e))r=e;else if(e.startsWith("/")){const n=parse(t);r=format(Object.assign(Object.assign({},n),{pathname:e}))}else r=stripTrailingSlash(t)+"/"+e;return stripTrailingSlash(r)}export function titleize(t){return t.charAt(0).toUpperCase()+t.slice(1)}export function removeQueryStringAndHash(t){try{const e=parseURL(t);return e.search="",e.hash="",e.toString()}catch(e){return t}}function parseURL(t){return"undefined"==typeof URL?new(require("url").URL)(t):new URL(t)}export function escapeHTMLAttrChars(t){return t.replace(/["\\]/g,"\\$&")}export function unescapeHTMLChars(t){return t.replace(/&#(\d+);/g,((t,e)=>String.fromCharCode(parseInt(e,10)))).replace(/&/g,"&").replace(/"/g,'"')}export function sanitizeItemId(t){return t&&t.replace(/#/g,"_").toLowerCase()}export function useSchemaTitle(t,e){return e||isNamedDefinition(t)&&JsonPointer.baseName(t)||""}export function get(t={},e,r){return"string"==typeof e&&(e=e.split(".")),e.reduce(((t,e)=>t&&t[e]?t[e]:r),t)}export function joinStringFactory(t){return(...e)=>e.filter(Boolean).join(t)}export const dottedString=joinStringFactory(".");export function getWindowReferenceOptions(t){var e;return IS_BROWSER?null===(e=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===e?void 0:e[t]:null}export function getJsUrl(){var t;if(!IS_BROWSER)return"";const e=+new Date+Math.random();try{return document.currentScript&&(document.currentScript.async||document.currentScript.defer)||document.write(`<script id="dummy${e}"><\/script>`),(null===(t=document.getElementById("dummy"+e))||void 0===t?void 0:t.previousSibling).src}catch(t){return""}}export const normalizeText=t=>isString(t)?t:null==t?void 0:t.raw;export const getValueFromMdParsedExtension=(t,e)=>{const r=(null==t?void 0:t[`x-parsed-md-${e}`])||(null==t?void 0:t[e]);if(!(null==t?void 0:t[`x-parsed-md-${e}`]))return null==t?void 0:t[e];if("x-enumDescriptions"!==e)return normalizeMarkdownValue(t,e);let n={};for(const t in r)t.startsWith("x-parsed-md")||(n[t]=(null==r?void 0:r[`x-parsed-md-${t}`])||(null==r?void 0:r[t]));return Object.keys(n).length?n:r};function normalizeMarkdownValue(t,e){var r;const n=(null==t?void 0:t[`x-parsed-md-${e}`])||(null==t?void 0:t[e]);return(null==n?void 0:n.raw)?n:{result:(null==n?void 0:n.result)||(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r.result)||(null==t?void 0:t[e]),raw:null==t?void 0:t[e]}}export function isLastInArray(t,e){return e===t.length-1}export function isLastProperty(t,e){const r=Object.keys(t);return r.indexOf(e)===r.length-1}
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,n,o
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,n,t,o){return new(t||(t=Promise))((function(r,c){function i(e){try{u(o.next(e))}catch(e){c(e)}}function a(e){try{u(o.throw(e))}catch(e){c(e)}}function u(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(i,a)}u((o=o.apply(e,n||[])).next())}))};import{bundle,Config}from"@redocly/openapi-core";import{convertObj}from"swagger2openapi";import{IS_BROWSER}from"@redocly/theme";import{createParsedDocument}from"./createParsedDocument";export function loadAndBundleDefinition(e){return __awaiter(this,void 0,void 0,(function*(){const n=new Config({}),t={config:n,base:IS_BROWSER?window.location.href:process.cwd()};IS_BROWSER&&(n.resolve.http.customFetch=global.fetch),"object"==typeof e&&null!==e?t.doc=createParsedDocument(e):t.ref=e;const{bundle:{parsed:o}}=yield bundle(t);return void 0!==o.swagger?convertSwagger2OpenAPI(o):o}))}export function convertSwagger2OpenAPI(e){return e.paths||(e.paths={}),new Promise(((n,t)=>convertObj(e,{patch:!0,warnOnly:!0,text:"{}",anchors:!0},((e,o)=>{if(e)return t(e);n(null==o?void 0:o.openapi)}))))}
|
|
2
2
|
//# sourceMappingURL=loadAndBundleSpec.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Node } from '@markdoc/markdoc';
|
|
2
|
+
interface DescriptionObject {
|
|
3
|
+
result: string | Node | Node[];
|
|
4
|
+
raw: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function saveTextBeforeHeading(description: string | DescriptionObject): string | DescriptionObject;
|
|
7
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Ast}from"@markdoc/markdoc";import{isString}from"@redocly/theme";
|
|
1
|
+
import{Ast}from"@markdoc/markdoc";import{isString}from"@redocly/theme";export function saveTextBeforeHeading(r){if(!r)return"";if(!isString(r))return(null==r?void 0:r.result)?{result:modifyNodeByHeading(Ast.fromJSON(JSON.stringify(r.result)))||"",raw:saveTextBeforeHeading(r.raw)}:r;const e=new RegExp("^#{1,6}?\\s+","m"),i=r.search(e);return i>-1?r.substring(0,i):r}function modifyNodeByHeading(r){if(Array.isArray(r)){const e=r.findIndex((r=>"heading"===r.type));return-1===e?r:r.slice(0,e)}if(!r.children||!Array.isArray(r.children))return;const e=r.children.findIndex((r=>"heading"===r.type));return-1===e||(r.children=r.children.slice(0,e)),r}
|
|
2
2
|
//# sourceMappingURL=saveTextBeforeHeading.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const simplifyAstStructure=l=>{var t,o;i(l);for(const o of l.walk())i(o),(null===(t=null==o?void 0:o.children)||void 0===t?void 0:t.length)&&simplifyAstStructure(o);function i(l){(null==l?void 0:l.location)&&delete l.location,void 0===l.tag&&delete l.tag}return"document"===l.type&&(null===(o=null==l?void 0:l.children)||void 0===o?void 0:o.length)?null==l?void 0:l.children:l};
|
|
2
|
+
//# sourceMappingURL=simplifyAstStructure.js.map
|