@redocly/openapi-docs 3.24.0-next.2 → 3.24.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.
Files changed (49) hide show
  1. package/dist/redocly-openapi-docs.min.js +2408 -2408
  2. package/lib/components/ApiInfo/ApiInfo.d.ts +1 -1
  3. package/lib/components/Callbacks/CallbackSummary.d.ts +1 -1
  4. package/lib/components/ContentItem/useIsExpanded.d.ts +1 -1
  5. package/lib/components/ContentItems/VirtualList.d.ts +4 -2
  6. package/lib/components/Download/DownloadSpecification.d.ts +1 -1
  7. package/lib/components/ExpandAllButton/ExpandAllButton.js +2 -2
  8. package/lib/components/ExpandAllButton/helpers.d.ts +5 -0
  9. package/lib/components/ExpandAllButton/helpers.js +1 -0
  10. package/lib/components/McpOverview/McpOverview.d.ts +1 -1
  11. package/lib/components/PayloadSamples/Example.d.ts +1 -1
  12. package/lib/components/PayloadSamples/ExampleValue.d.ts +1 -1
  13. package/lib/components/PropertyDetails/DescriptionEnums.d.ts +1 -1
  14. package/lib/components/PropertyDetails/SimpleEnums.d.ts +1 -1
  15. package/lib/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.d.ts +1 -1
  16. package/lib/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocsStandalone.d.ts +1 -1
  17. package/lib/components/Replay/EmbeddedReplay.d.ts +1 -1
  18. package/lib/components/Request/RequestDetails.js +4 -4
  19. package/lib/components/RequestParameters/RequestParameters.d.ts +1 -1
  20. package/lib/components/RequestSamples/useCodeSamples.d.ts +1 -1
  21. package/lib/components/ResponseSamples/ResponseSamples.d.ts +1 -1
  22. package/lib/components/Responses/OperationResponseList.js +2 -2
  23. package/lib/components/Schema/SubSchema.js +1 -1
  24. package/lib/components/Schema/helpers.d.ts +1 -1
  25. package/lib/components/SectionContent/SectionContent.d.ts +1 -1
  26. package/lib/components/Security/RequiredScopesList.d.ts +1 -1
  27. package/lib/components/Security/ScopeTagWithTooltip.d.ts +1 -1
  28. package/lib/components/Security/SecurityFlow.d.ts +1 -1
  29. package/lib/components/TagItem/OperationNavigationItems.d.ts +1 -1
  30. package/lib/components/TagItem/OperationsNavigation.d.ts +1 -1
  31. package/lib/components/TagItem/TagItem.d.ts +1 -1
  32. package/lib/components/ViewNested/ViewNested.d.ts +1 -0
  33. package/lib/components/ViewNested/ViewNested.js +6 -6
  34. package/lib/components/common/Dropdown/Dropdown.d.ts +1 -1
  35. package/lib/components/common/SchemaSelection/SchemaSelection.d.ts +1 -1
  36. package/lib/contexts/expand-all-depth.d.ts +2 -0
  37. package/lib/contexts/expand-all-depth.js +1 -0
  38. package/lib/jotai/operation.d.ts +1 -1
  39. package/lib/models/mediaContent.d.ts +1 -1
  40. package/lib/models/mediaType.d.ts +1 -1
  41. package/lib/models/request.d.ts +1 -1
  42. package/lib/models/response.d.ts +1 -1
  43. package/lib/models/schema.d.ts +1 -1
  44. package/lib/models/schema.js +2 -2
  45. package/lib/models/security.d.ts +1 -1
  46. package/lib/services/code-samples/generator.d.ts +1 -1
  47. package/lib/services/code-samples/httpsnippet/helpers/code-builder.d.ts +1 -1
  48. package/lib/services/code-samples/httpsnippet/helpers/code-helpers.d.ts +1 -1
  49. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { LayoutVariant } from '@redocly/config';
2
2
  import type { ReactElement } from 'react';
3
3
  import type { GroupModel } from '../../models/index.js';
4
- export declare function ApiInfo({ item, layout }: {
4
+ export declare function ApiInfo({ item, layout, }: {
5
5
  item: GroupModel;
6
6
  layout: LayoutVariant;
7
7
  }): ReactElement | null;
@@ -6,4 +6,4 @@ export interface CallbackTitleProps extends PanelHeaderProps {
6
6
  callback: OperationModel;
7
7
  translate: TFunction;
8
8
  }
9
- export declare function CallbackSummary({ expanded, toggle, callback: { name, httpVerb, deprecated, callbackId, id }, translate }: CallbackTitleProps): ReactElement;
9
+ export declare function CallbackSummary({ expanded, toggle, callback: { name, httpVerb, deprecated, callbackId, id }, translate, }: CallbackTitleProps): ReactElement;
@@ -1,5 +1,5 @@
1
1
  import type { ContentItemModel } from '../../models/index.js';
2
- export declare function useIsExpanded({ item, routingBasePath }: {
2
+ export declare function useIsExpanded({ item, routingBasePath, }: {
3
3
  item: ContentItemModel;
4
4
  routingBasePath: string;
5
5
  }): boolean;
@@ -1,7 +1,9 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { ContentItemModel } from '../../models/index.js';
3
- export declare const VirtualList: import("react").MemoExoticComponent<({ items, renderItem, routingBasePath, }: {
3
+ declare const VirtualListComponent: ({ items, renderItem, routingBasePath, }: {
4
4
  items: ContentItemModel[];
5
5
  renderItem: (item: ContentItemModel) => ReactElement;
6
6
  routingBasePath: string;
7
- }) => import("react/jsx-runtime").JSX.Element>;
7
+ }) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const VirtualList: import("react").MemoExoticComponent<typeof VirtualListComponent>;
9
+ export {};
@@ -1,6 +1,6 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { UseDownloadInfoReturnType } from './types';
3
- declare function DownloadSpecificationComponent({ downloadObjects }: {
3
+ declare function DownloadSpecificationComponent({ downloadObjects, }: {
4
4
  downloadObjects: UseDownloadInfoReturnType;
5
5
  }): ReactElement;
6
6
  export declare const DownloadSpecification: import("react").MemoExoticComponent<typeof DownloadSpecificationComponent>;
@@ -1,3 +1,3 @@
1
- import{jsx as n}from"react/jsx-runtime";import{useAtom as d}from"jotai";import{MaximizeIcon as m}from"@redocly/theme/icons/MaximizeIcon/MaximizeIcon";import{Button as c}from"@redocly/theme/components/Button/Button";import{operationStore as u}from"../../jotai/operation.js";import{useTelemetry as x,useTranslate as A}from"../../hooks/index.js";import{styled as f}from"../../styled-components.js";const T=({operationPointer:a,type:o,onPanelToggle:r})=>{const t=A(),[l,s]=d(u(a)),i=x(),p=()=>{const e=!l[o].expandedAll;i.sendExpandCollapseAllClickedMessage([{object:"button",id:`expandCollapseAllButton_${o}`,uri:`urn:redocly:redoc:ui:button:expandCollapseAllButton_${o}`,isExpanded:e}]),s({[o]:{expandedAll:e}}),r?.(e,o==="request"?"request":"responses")};return n(g,{icon:n(m,{}),iconPosition:"right",size:"small",variant:"ghost",onClick:p,children:l[o].expandedAll?t("openapi.collapseAll","Collapse all"):t("openapi.expandAll","Expand all")})},g=f(c)`
1
+ import{jsx as n}from"react/jsx-runtime";import{useAtom as d}from"jotai";import{startTransition as m}from"react";import{MaximizeIcon as c}from"@redocly/theme/icons/MaximizeIcon/MaximizeIcon";import{Button as u}from"@redocly/theme/components/Button/Button";import{operationStore as x}from"../../jotai/operation.js";import{useTelemetry as A,useTranslate as f}from"../../hooks/index.js";import{styled as g}from"../../styled-components.js";const k=({operationPointer:r,type:o,onPanelToggle:a})=>{const e=f(),[l,s]=d(x(r)),i=A(),p=()=>{const t=!l[o].expandedAll;i.sendExpandCollapseAllClickedMessage([{object:"button",id:`expandCollapseAllButton_${o}`,uri:`urn:redocly:redoc:ui:button:expandCollapseAllButton_${o}`,isExpanded:t}]),m(()=>{s({[o]:{expandedAll:t}})}),a?.(t,o==="request"?"request":"responses")};return n(C,{icon:n(c,{}),iconPosition:"right",size:"small",variant:"ghost",onClick:p,children:l[o].expandedAll?e("openapi.collapseAll","Collapse all"):e("openapi.expandAll","Expand all")})},C=g(u)`
2
2
  margin-left: auto;
3
- `;export{T as ExpandAllButton};
3
+ `;export{k as ExpandAllButton};
@@ -0,0 +1,5 @@
1
+ import type { OpenAPIParser } from '../../services/index.js';
2
+ import type { SchemaModel } from '../../models/index.js';
3
+ export declare const MAX_EXPAND_ALL_DEPTH = 10;
4
+ export declare const EXPAND_ALL_ROW_BUDGET = 2000;
5
+ export declare function computeExpandAllDepth(parser: OpenAPIParser | undefined, schemas: Array<SchemaModel | undefined>, budget?: number, ceiling?: number): number;
@@ -0,0 +1 @@
1
+ import{isObject as o}from"@redocly/theme/core/openapi";const u=10,A=2e3;function c(n,l,i){const r=(a,s)=>{if(!o(a)||Array.isArray(a)||s>15)return;let e;try{e=n.deref(a).resolved}catch{return}if(!o(e))return;o(e.properties)&&i.push(...Object.values(e.properties)),o(e.patternProperties)&&i.push(...Object.values(e.patternProperties));const t=e.additionalProperties||e.unevaluatedProperties;if((o(t)||t===!0)&&i.push(t===!0?{}:t),Array.isArray(e.prefixItems)&&i.push(...e.prefixItems),Array.isArray(e.allOf))for(const p of e.allOf)r(p,s+1);const f=e.oneOf||e.anyOf;Array.isArray(f)&&f.length&&r(f[0],s+1),e.items&&(Array.isArray(e.items)||e.prefixItems?i.push(...Array.isArray(e.items)?e.items:[e.items]):r(e.items,s+1))};r(l,0)}function y(n,l,i=A,r=u){if(typeof n?.deref!="function")return r;let a=l.map(e=>e&&(e.schema||e.rawSchema)).filter(Boolean),s=0;for(let e=1;e<=r;e++){const t=[];for(const f of a)if(c(n,f,t),s+t.length>i)return Math.max(e-1,1);if(!t.length)return r;s+=t.length,a=t}return r}export{A as EXPAND_ALL_ROW_BUDGET,u as MAX_EXPAND_ALL_DEPTH,y as computeExpandAllDepth};
@@ -1,5 +1,5 @@
1
1
  import type { OpenAPIMcp, OpenAPIServer } from '../../types/open-api.js';
2
- export declare function McpOverview({ mcpInfo, mcpServers }: {
2
+ export declare function McpOverview({ mcpInfo, mcpServers, }: {
3
3
  mcpInfo: OpenAPIMcp;
4
4
  mcpServers: OpenAPIServer[];
5
5
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,3 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { ExampleProps } from './types.js';
3
- export declare function Example({ example, mimeType, onCopyClick, onPanelToggle }: ExampleProps): ReactElement;
3
+ export declare function Example({ example, mimeType, onCopyClick, onPanelToggle, }: ExampleProps): ReactElement;
@@ -1,2 +1,2 @@
1
1
  import type { ExampleValueProps } from './types.js';
2
- export declare function ExampleValue({ value, mimeType, encoding, onCopyClick, onPanelToggle }: ExampleValueProps): React.ReactNode;
2
+ export declare function ExampleValue({ value, mimeType, encoding, onCopyClick, onPanelToggle, }: ExampleValueProps): React.ReactNode;
@@ -1,4 +1,4 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { DescriptionEnumsProps } from './types.js';
3
- export declare function DescriptionEnumsComponent({ enums, toggle, showToggleButton, toggleButtonText, type, translate }: DescriptionEnumsProps): ReactElement;
3
+ export declare function DescriptionEnumsComponent({ enums, toggle, showToggleButton, toggleButtonText, type, translate, }: DescriptionEnumsProps): ReactElement;
4
4
  export declare const DescriptionEnums: import("react").NamedExoticComponent<DescriptionEnumsProps>;
@@ -1,4 +1,4 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { SimpleEnumsProps } from './types.js';
3
- export declare function SimpleEnumsComponent({ enums, type, toggle, showToggleButton, toggleButtonText, translate }: SimpleEnumsProps): ReactElement;
3
+ export declare function SimpleEnumsComponent({ enums, type, toggle, showToggleButton, toggleButtonText, translate, }: SimpleEnumsProps): ReactElement;
4
4
  export declare const SimpleEnums: import("react").NamedExoticComponent<SimpleEnumsProps>;
@@ -1,3 +1,3 @@
1
1
  import type { PropsWithChildren } from 'react';
2
2
  import type { RedoclyOpenAPIDocsProps } from './types.js';
3
- export declare function RedoclyOpenAPIDocs({ onLoaded, children, store, withCommonStyles, router, telemetryConfig }: PropsWithChildren<Partial<RedoclyOpenAPIDocsProps>>): import("react/jsx-runtime").JSX.Element | null;
3
+ export declare function RedoclyOpenAPIDocs({ onLoaded, children, store, withCommonStyles, router, telemetryConfig, }: PropsWithChildren<Partial<RedoclyOpenAPIDocsProps>>): import("react/jsx-runtime").JSX.Element | null;
@@ -5,4 +5,4 @@ import type { RedocConfig } from '@redocly/config';
5
5
  export declare function loadSingle(spec: any, specUrl: any, options?: RedocConfig): Promise<OpenAPIDefinition>;
6
6
  export declare function loadAndBundleSpecOrMd(url: string, title?: string): Promise<OpenAPIDefinition>;
7
7
  export declare const AppProvider: ({ options, definitionUrl, definition, activeSampleLanguage, children, }: PropsWithChildren<AppProviderProps>) => ReactElement | null;
8
- export declare function RedoclyOpenAPIDocsStandalone({ definition, definitionUrl, options, activeItemId, activeSampleLanguage, activeDeepLink, router }: RedoclyOpenAPIDocsStandaloneProps): ReactElement;
8
+ export declare function RedoclyOpenAPIDocsStandalone({ definition, definitionUrl, options, activeItemId, activeSampleLanguage, activeDeepLink, router, }: RedoclyOpenAPIDocsStandaloneProps): ReactElement;
@@ -6,6 +6,6 @@ export type ReplayProps = {
6
6
  pointer: string;
7
7
  hideOtherSecuritySchemes?: boolean;
8
8
  };
9
- declare function EmbeddedReplayComponent({ activeOperationId, corsProxyUrl, fullOpenApi, pointer, hideOtherSecuritySchemes }: ReplayProps): import("react/jsx-runtime").JSX.Element;
9
+ declare function EmbeddedReplayComponent({ activeOperationId, corsProxyUrl, fullOpenApi, pointer, hideOtherSecuritySchemes, }: ReplayProps): import("react/jsx-runtime").JSX.Element;
10
10
  export declare const EmbeddedReplay: import("react").MemoExoticComponent<typeof EmbeddedReplayComponent>;
11
11
  export {};
@@ -1,9 +1,9 @@
1
- import{Fragment as T,jsx as e,jsxs as o}from"react/jsx-runtime";import{memo as j,useMemo as k}from"react";import{useAtomValue as A}from"jotai";import{Title as P}from"../common/OperationItemTitle.js";import{LinkToField as y}from"../common/LinkToField.js";import{makeDeepLink as D}from"../../services/index.js";import{Description as E}from"../OperationItem/Description.js";import{Security as F}from"../Security/index.js";import{hasNestedFields as M}from"../../utils/index.js";import{ExpandAllButton as N}from"../ExpandAllButton/index.js";import{RequestParameters as b}from"../RequestParameters/index.js";import{activeMimeNameAtom as C}from"../../jotai/app.js";import{getActiveMediaType as _}from"../../models/mediaContent.js";import{styled as n}from"../../styled-components.js";import{Extensions as w}from"../common/Extensions.js";function I({operation:{id:i,description:s,externalDocs:m,parameters:r,requestBody:t,pointer:u,security:f,extensions:a,callbackId:d},title:x,translate:h,onPanelToggle:g}){const p=A(C),v=k(()=>{const c=r.some(({schema:l})=>!l.isPrimitive&&!l.isCircular);if(!t?.content||c)return c;const{schema:R}=_(t.content,p)||{};return M(R)},[p,r,t?.content]),q=Object.keys(a||{}).length>0;return o(T,{children:[o(L,{children:[o(H,{children:[o(O,{children:[i&&e(y,{to:D(i,"request")}),x||h?.("openapi.request","Request"),v&&e(N,{operationPointer:u,type:"request",onPanelToggle:g})]}),e(E,{description:s||m?s:void 0,externalDocs:m})]}),q&&e(w,{extensions:a}),e(F,{securities:f})]}),e(b,{parameters:r,body:t,operationId:i,callbackId:d})]})}const L=n.div`
1
+ import{Fragment as T,jsx as e,jsxs as r}from"react/jsx-runtime";import{memo as j,useMemo as h}from"react";import{useAtomValue as x}from"jotai";import{Title as k}from"../common/OperationItemTitle.js";import{LinkToField as y}from"../common/LinkToField.js";import{makeDeepLink as S}from"../../services/index.js";import{Description as C}from"../OperationItem/Description.js";import{Security as F}from"../Security/index.js";import{hasNestedFields as M}from"../../utils/index.js";import{ExpandAllButton as w}from"../ExpandAllButton/index.js";import{computeExpandAllDepth as N}from"../ExpandAllButton/helpers.js";import{ExpandAllDepthContext as _}from"../../contexts/expand-all-depth.js";import{RequestParameters as I}from"../RequestParameters/index.js";import{activeMimeNameAtom as L}from"../../jotai/app.js";import{globalParserAtom as H}from"../../jotai/store.js";import{getActiveMediaType as O}from"../../models/mediaContent.js";import{styled as m}from"../../styled-components.js";import{Extensions as V}from"../common/Extensions.js";function W({operation:{id:i,description:s,externalDocs:a,parameters:n,requestBody:t,pointer:g,security:A,extensions:p,callbackId:v},title:b,translate:D,onPanelToggle:E}){const l=x(L),c=x(H),{showExpandAllButton:P,expandableSchemas:d}=h(()=>{const f=n.filter(({schema:o})=>!o.isPrimitive&&!o.isCircular).map(({schema:o})=>o),{schema:u}=t?.content?O(t.content,l)||{}:{};return{showExpandAllButton:f.length>0||M(u),expandableSchemas:[...f,u]}},[l,n,t?.content]),q=h(()=>N(c,d),[c,d]),R=Object.keys(p||{}).length>0;return r(T,{children:[r(z,{children:[r(B,{children:[r(G,{children:[i&&e(y,{to:S(i,"request")}),b||D?.("openapi.request","Request"),P&&e(w,{operationPointer:g,type:"request",onPanelToggle:E})]}),e(C,{description:s||a?s:void 0,externalDocs:a})]}),R&&e(V,{extensions:p}),e(F,{securities:A})]}),e(_.Provider,{value:q,children:e(I,{parameters:n,body:t,operationId:i,callbackId:v})})]})}const z=m.div`
2
2
  width: 100%;
3
- `,H=n.div`
3
+ `,B=m.div`
4
4
  display: flex;
5
5
  flex-direction: column;
6
6
  gap: var(--spacing-xs);
7
- `,O=n(P)`
7
+ `,G=m(k)`
8
8
  margin: 0;
9
- `,te=j(I);export{te as RequestDetails};
9
+ `,le=j(W);export{le as RequestDetails};
@@ -6,4 +6,4 @@ export interface ParametersProps {
6
6
  operationId: string;
7
7
  callbackId: string;
8
8
  }
9
- export declare function RequestParameters({ body, parameters, operationId, callbackId }: ParametersProps): ReactElement | null;
9
+ export declare function RequestParameters({ body, parameters, operationId, callbackId, }: ParametersProps): ReactElement | null;
@@ -1,7 +1,7 @@
1
1
  import type { Unstable_ExternalCodeSample } from '../../services/index.js';
2
2
  import type { OperationModel } from '../../models/index.js';
3
3
  import type { OpenAPIXCodeSample } from '../../types/index.js';
4
- export declare function useCodeSamples({ payload, isWebhook, definitionSamples, pointer, envVariables }: OperationModel): {
4
+ export declare function useCodeSamples({ payload, isWebhook, definitionSamples, pointer, envVariables, }: OperationModel): {
5
5
  samples: Array<{
6
6
  key: string;
7
7
  title: string;
@@ -7,6 +7,6 @@ export interface ResponseSamplesProps {
7
7
  onTabChange: (tab: string) => void;
8
8
  onPanelToggle?: (isExpanded: boolean, panelType?: PanelType) => void;
9
9
  }
10
- declare function ResponseSamplesComponent({ operation, activeResponseTab, onTabChange, onPanelToggle }: ResponseSamplesProps): ReactElement | null;
10
+ declare function ResponseSamplesComponent({ operation, activeResponseTab, onTabChange, onPanelToggle, }: ResponseSamplesProps): ReactElement | null;
11
11
  export declare const ResponseSamples: import("react").MemoExoticComponent<typeof ResponseSamplesComponent>;
12
12
  export {};
@@ -1,5 +1,5 @@
1
- import{Fragment as v,jsx as n,jsxs as s}from"react/jsx-runtime";import{memo as A,useMemo as L}from"react";import{useLocation as j}from"react-router-dom";import{useAtomValue as w}from"jotai";import{Tabs as F,useTabsState as M}from"../Tabs/index.js";import{ResponseDetails as C}from"./ResponseDetails.js";import{makeDeepLink as N}from"../../services/index.js";import{Row as R,StyledTitle as _}from"./styled.js";import{LinkToField as B}from"../common/LinkToField.js";import{pathIncludesLink as c,hasNestedFields as D}from"../../utils/index.js";import{ExpandAllButton as E}from"../ExpandAllButton/index.js";import{useTranslate as P}from"../../hooks/index.js";import{getActiveMediaType as S}from"../../models/index.js";import{activeMimeNameAtom as $}from"../../jotai/app.js";import{styled as I}from"../../styled-components.js";const oe=A(({responses:i,renderTitle:f,operationId:a,operationPointer:d,activeResponseTab:m,onTabChange:u,callbackId:g,onPanelToggle:h})=>{const p=j(),T=P(),l=w($),r=i.map(({code:e})=>({key:e,title:e})),b=r.find(({key:e})=>e===m||c(p,a)&&c(p,`c=${e}`)),{activeTab:k,handleTabChange:x}=M({tabs:r,defaultTab:b?.key,onChange:u}),o=r.find(e=>e.key===(m||k)),t=i.find(e=>e.code===o?.key),y=L(()=>{if(!t?.content)return!1;const{schema:e}=S(t?.content,l)||{};return D(e)},[l,t?.content]);return o?s(v,{children:[s(O,{children:[f?.(o)||s(_,{children:[n(B,{to:N(a,`response&c=${o.key}`)}),T("openapi.responses","Responses")]}),n(F,{tabs:r,activeTab:o,onChange:x}),y&&n(E,{type:"response",operationPointer:d,onPanelToggle:h})]}),t?n("div",{children:n(C,{response:t,operationId:a,callbackId:g})},t.code):null]}):null}),O=I(R)`
1
+ import{Fragment as w,jsx as o,jsxs as i}from"react/jsx-runtime";import{memo as C,useMemo as f}from"react";import{useLocation as E}from"react-router-dom";import{useAtomValue as u}from"jotai";import{Tabs as F,useTabsState as M}from"../Tabs/index.js";import{ResponseDetails as P}from"./ResponseDetails.js";import{makeDeepLink as N}from"../../services/index.js";import{Row as R,StyledTitle as S}from"./styled.js";import{LinkToField as _}from"../common/LinkToField.js";import{pathIncludesLink as h,hasNestedFields as B}from"../../utils/index.js";import{ExpandAllButton as $}from"../ExpandAllButton/index.js";import{computeExpandAllDepth as I}from"../ExpandAllButton/helpers.js";import{ExpandAllDepthContext as O}from"../../contexts/expand-all-depth.js";import{useTranslate as V}from"../../hooks/index.js";import{getActiveMediaType as W}from"../../models/index.js";import{activeMimeNameAtom as q}from"../../jotai/app.js";import{globalParserAtom as z}from"../../jotai/store.js";import{styled as G}from"../../styled-components.js";const ce=C(({responses:m,renderTitle:g,operationId:a,operationPointer:x,activeResponseTab:p,onTabChange:T,callbackId:b,onPanelToggle:v})=>{const l=E(),k=V(),c=u(q),d=u(z),r=m.map(({code:e})=>({key:e,title:e})),A=r.find(({key:e})=>e===p||h(l,a)&&h(l,`c=${e}`)),{activeTab:y,handleTabChange:D}=M({tabs:r,defaultTab:A?.key,onChange:T}),n=r.find(e=>e.key===(p||y)),t=m.find(e=>e.code===n?.key),s=f(()=>{if(!t?.content)return;const{schema:e}=W(t?.content,c)||{};return e},[c,t?.content]),L=B(s),j=f(()=>I(d,[s]),[d,s]);return n?i(w,{children:[i(H,{children:[g?.(n)||i(S,{children:[o(_,{to:N(a,`response&c=${n.key}`)}),k("openapi.responses","Responses")]}),o(F,{tabs:r,activeTab:n,onChange:D}),L&&o($,{type:"response",operationPointer:x,onPanelToggle:v})]}),t?o(O.Provider,{value:j,children:o("div",{children:o(P,{response:t,operationId:a,callbackId:b})},t.code)}):null]}):null}),H=G(R)`
2
2
  flex-wrap: wrap;
3
3
  gap: var(--spacing-unit);
4
4
  margin-top: var(--spacing-xl);
5
- `;export{oe as OperationResponseList};
5
+ `;export{ce as OperationResponseList};
@@ -1 +1 @@
1
- import{jsx as u}from"react/jsx-runtime";import{memo as S}from"react";import{useLocation as y}from"react-router-dom";import{useAtomValue as b}from"jotai/index";import{pathIncludesLink as h}from"../../utils/index.js";import{operationStore as A}from"../../jotai/operation.js";import{extractTypeFromDeepLink as T}from"./helpers.js";import{ViewNested as $}from"../ViewNested/index.js";import{useTranslate as w}from"../../hooks/index.js";function N({expandByDefault:t,deepLink:e,level:r,expandable:a=!1,isNestedArray:n=!1,isArray:m="",propertyLength:o="",children:p,operationPointer:s}){const i=w(),c=y(),l=h(c,e),f=T(e),x=b(A(s||"")),d=`${i("openapi.actions.show","Show")} ${Number(o)===1?"":o} ${m&&"array "}${o!==1?"properties":"property"}`;return u($,{expandByDefault:t||l,level:r,isNestedArray:n,expandable:a,expandText:d,children:p,expandedAll:x[f]?.expandedAll})}const L=S(N);export{L as SubSchema};
1
+ import{jsx as h}from"react/jsx-runtime";import{memo as A}from"react";import{useLocation as S}from"react-router-dom";import{useAtomValue as y}from"jotai/index";import{pathIncludesLink as D}from"../../utils/index.js";import{operationStore as b}from"../../jotai/operation.js";import{extractTypeFromDeepLink as T}from"./helpers.js";import{ViewNested as $}from"../ViewNested/index.js";import{useTranslate as w}from"../../hooks/index.js";import{useExpandAllDepth as N}from"../../contexts/expand-all-depth.js";function j({expandByDefault:t,deepLink:o,level:r,expandable:a=!1,isNestedArray:n=!1,isArray:p="",propertyLength:e="",children:m,operationPointer:s}){const i=w(),l=S(),c=D(l,o),x=T(o),d=y(b(s||"")),f=N(),u=`${i("openapi.actions.show","Show")} ${Number(e)===1?"":e} ${p&&"array "}${e!==1?"properties":"property"}`;return h($,{expandByDefault:t||c,level:r,isNestedArray:n,expandable:a,expandText:u,children:m,expandedAll:d[x]?.expandedAll,expandAllDepth:f})}const q=A(j);export{q as SubSchema};
@@ -1,5 +1,5 @@
1
1
  import type { SchemaProps } from './types.js';
2
2
  export declare const extractTypeFromDeepLink: (str?: string) => string;
3
- export declare function getExpandByDefault({ schemasExpansionLevel, level, required }: Pick<SchemaProps, 'level' | 'required'> & {
3
+ export declare function getExpandByDefault({ schemasExpansionLevel, level, required, }: Pick<SchemaProps, 'level' | 'required'> & {
4
4
  schemasExpansionLevel?: number;
5
5
  }): boolean;
@@ -4,7 +4,7 @@ interface SectionContentProps {
4
4
  items: ContentItemModel[];
5
5
  hideFooterAndHeader?: boolean;
6
6
  }
7
- export declare function SectionContent({ items, hideFooterAndHeader }: SectionContentProps): ReactElement | null;
7
+ export declare function SectionContent({ items, hideFooterAndHeader, }: SectionContentProps): ReactElement | null;
8
8
  export declare const SectionContainer: any;
9
9
  export declare const RightPanelContainer: any;
10
10
  export {};
@@ -10,5 +10,5 @@ interface RequiredScopesListProps {
10
10
  children: ReactNode;
11
11
  }>;
12
12
  }
13
- export declare function RequiredScopesList({ schemeId, securities, flows, TagComponent }: RequiredScopesListProps): ReactElement | null;
13
+ export declare function RequiredScopesList({ schemeId, securities, flows, TagComponent, }: RequiredScopesListProps): ReactElement | null;
14
14
  export {};
@@ -13,5 +13,5 @@ interface ScopeTagWithTooltipProps {
13
13
  arrowPosition?: 'left' | 'right' | 'center';
14
14
  compact?: boolean;
15
15
  }
16
- export declare function ScopeTagWithTooltip({ className, text, maxChars, tip, ariaLabel, TagComponent, arrowPosition, compact }: ScopeTagWithTooltipProps): ReactElement;
16
+ export declare function ScopeTagWithTooltip({ className, text, maxChars, tip, ariaLabel, TagComponent, arrowPosition, compact, }: ScopeTagWithTooltipProps): ReactElement;
17
17
  export {};
@@ -1,5 +1,5 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { SecurityRequirement, ExtendedOpenAPISecurityScheme } from '../../models/index.js';
3
- export declare function SecurityFlow({ type, bearerFormat, name, flows, openIdConnectUrl, description, id, securities, in: apiKeyIn, deprecated, oauth2MetadataUrl }: Partial<ExtendedOpenAPISecurityScheme> & {
3
+ export declare function SecurityFlow({ type, bearerFormat, name, flows, openIdConnectUrl, description, id, securities, in: apiKeyIn, deprecated, oauth2MetadataUrl, }: Partial<ExtendedOpenAPISecurityScheme> & {
4
4
  securities: SecurityRequirement[];
5
5
  }): ReactElement | null;
@@ -6,6 +6,6 @@ type OperationNavigationItemsProps = OperationsNavigationProps & {
6
6
  translate: TFunction;
7
7
  disableTooltip?: boolean;
8
8
  };
9
- declare function OperationNavigationItemsComponent({ title, items, onClick, routingBasePath, translate, disableTooltip }: OperationNavigationItemsProps): import("react/jsx-runtime").JSX.Element;
9
+ declare function OperationNavigationItemsComponent({ title, items, onClick, routingBasePath, translate, disableTooltip, }: OperationNavigationItemsProps): import("react/jsx-runtime").JSX.Element;
10
10
  export declare const OperationNavigationItems: import("react").MemoExoticComponent<typeof OperationNavigationItemsComponent>;
11
11
  export {};
@@ -1,3 +1,3 @@
1
1
  import type { OperationsNavigationProps } from './types.js';
2
- export declare function OperationsNavigationComponent({ items, routingBasePath }: OperationsNavigationProps): import("react/jsx-runtime").JSX.Element | null;
2
+ export declare function OperationsNavigationComponent({ items, routingBasePath, }: OperationsNavigationProps): import("react/jsx-runtime").JSX.Element | null;
3
3
  export declare const OperationsNavigation: import("react").NamedExoticComponent<OperationsNavigationProps>;
@@ -4,6 +4,6 @@ interface TagItemProps extends SectionItemProps {
4
4
  routingBasePath?: string;
5
5
  isExpanded: boolean;
6
6
  }
7
- export declare function TagItemComponent({ item, routingBasePath, isExpanded }: TagItemProps): ReactElement;
7
+ export declare function TagItemComponent({ item, routingBasePath, isExpanded, }: TagItemProps): ReactElement;
8
8
  export declare const TagItem: import("react").NamedExoticComponent<TagItemProps>;
9
9
  export {};
@@ -7,6 +7,7 @@ interface ViewNestedProps {
7
7
  hideText?: string;
8
8
  hideDivider?: boolean;
9
9
  expandedAll?: boolean;
10
+ expandAllDepth?: number;
10
11
  isNestedArray?: boolean;
11
12
  }
12
13
  export declare const ViewNested: import("react").NamedExoticComponent<PropsWithChildren<ViewNestedProps>>;
@@ -1,4 +1,4 @@
1
- import{Fragment as l,jsx as o,jsxs as s}from"react/jsx-runtime";import{css as d}from"styled-components";import{memo as w,useEffect as $,useState as j}from"react";import{isUndefined as C}from"@redocly/theme/core/openapi";import{cycleColorsByLevel as N}from"../PropertyDetails/cycleColorsByLevel.js";import{CircleIcon as S}from"../PropertyDetails/PlusCircleIcon.js";import{LabelValue as V}from"../common/styled.js";import{styled as c}from"../../styled-components.js";function _({expandByDefault:e,level:g,expandable:h=!1,expandText:v,hideText:x,hideDivider:y=!1,children:i,expandedAll:t,isNestedArray:n}){const[r,p]=j((e||n)??!1);$(()=>{C(t)||p(t)},[t]);const a=r?N(g):void 0;if(!h)return i;const b=()=>{p(u=>!u)};return n?s(l,{children:[o(V,{children:"Array ["}),o(f,{$isArrayInsideArray:n,className:"view-nested-wrapper",children:o(m,{color:a,children:i})})]}):o(l,{children:s(f,{$divider:!y&&!r,className:"view-nested-wrapper",children:[s(k,{onClick:b,children:[o(S,{sign:r?"-":"+",color:a}),!r&&v,r&&(x||"")]}),r&&o(m,{color:a,children:i})]})})}const U=w(_),k=c.button`
1
+ import{Fragment as f,jsx as o,jsxs as d}from"react/jsx-runtime";import{css as c}from"styled-components";import{memo as j,useEffect as C,useState as E}from"react";import{isUndefined as g}from"@redocly/theme/core/openapi";import{cycleColorsByLevel as A}from"../PropertyDetails/cycleColorsByLevel.js";import{CircleIcon as P}from"../PropertyDetails/PlusCircleIcon.js";import{MAX_EXPAND_ALL_DEPTH as h}from"../ExpandAllButton/helpers.js";import{LabelValue as S}from"../common/styled.js";import{styled as p}from"../../styled-components.js";function V({expandByDefault:e,level:m,expandable:b=!1,expandText:y,hideText:u,hideDivider:w=!1,children:i,expandedAll:t,expandAllDepth:$,isNestedArray:a}){const _=Math.min($??h,h),n=g(t)||t&&Number(m)>_?void 0:t,[r,l]=E(n??(e||a)??!1);C(()=>{g(n)||l(n)},[n]);const s=r?A(m):void 0;if(!b)return i;const L=()=>{l(N=>!N)};return a?d(f,{children:[o(S,{children:"Array ["}),o(v,{$isArrayInsideArray:a,className:"view-nested-wrapper",children:o(x,{color:s,children:i})})]}):o(f,{children:d(v,{$divider:!w&&!r,className:"view-nested-wrapper",children:[d(k,{onClick:L,children:[o(P,{sign:r?"-":"+",color:s}),!r&&y,r&&(u||"")]}),r&&o(x,{color:s,children:i})]})})}const U=j(V),k=p.button`
2
2
  background: none;
3
3
  border: none;
4
4
  cursor: pointer;
@@ -12,22 +12,22 @@ import{Fragment as l,jsx as o,jsxs as s}from"react/jsx-runtime";import{css as d}
12
12
  line-height: var(--line-height-base);
13
13
  margin-top: var(--spacing-xxs);
14
14
  width: 100%;
15
- `,m=c.div`
15
+ `,x=p.div`
16
16
  padding-left: var(--schema-nested-offset);
17
17
  border-left: 1px solid ${({color:e})=>e||"var(--border-color-primary)"};
18
18
  margin: -10px 0 0 9px;
19
- ${({color:e})=>e&&d`
19
+ ${({color:e})=>e&&c`
20
20
  .schema-name {
21
21
  color: ${e};
22
22
  }
23
23
  `}
24
- `,f=c.div`
24
+ `,v=p.div`
25
25
  width: 100%;
26
- ${({$isArrayInsideArray:e})=>e&&d`
26
+ ${({$isArrayInsideArray:e})=>e&&c`
27
27
  padding-top: var(--schema-property-details-spacing);
28
28
  `}
29
29
 
30
- ${({$divider:e})=>e&&d`
30
+ ${({$divider:e})=>e&&c`
31
31
  border-bottom: 1px solid var(--border-color-primary);
32
32
  padding-bottom: var(--schema-property-details-spacing);
33
33
  `}
@@ -8,6 +8,6 @@ export interface DropdownProps<T> {
8
8
  triggerSize?: string;
9
9
  fullWidth?: boolean;
10
10
  }
11
- declare function DropdownComponent<T>({ options, value, onChange, className, triggerVariant, triggerSize, fullWidth }: DropdownProps<T>): import("react/jsx-runtime").JSX.Element;
11
+ declare function DropdownComponent<T>({ options, value, onChange, className, triggerVariant, triggerSize, fullWidth, }: DropdownProps<T>): import("react/jsx-runtime").JSX.Element;
12
12
  export declare const Dropdown: typeof DropdownComponent;
13
13
  export {};
@@ -7,6 +7,6 @@ interface SchemaSelectionProps {
7
7
  schema: SchemaModel;
8
8
  defaultOneOfIdx: number;
9
9
  }
10
- declare function SchemaSelectionComponent({ options, onChange, pointer, schema, defaultOneOfIdx }: SchemaSelectionProps): import("react/jsx-runtime").JSX.Element | null;
10
+ declare function SchemaSelectionComponent({ options, onChange, pointer, schema, defaultOneOfIdx, }: SchemaSelectionProps): import("react/jsx-runtime").JSX.Element | null;
11
11
  export declare const SchemaSelection: typeof SchemaSelectionComponent;
12
12
  export {};
@@ -0,0 +1,2 @@
1
+ export declare const ExpandAllDepthContext: import("react").Context<number | undefined>;
2
+ export declare function useExpandAllDepth(): number | undefined;
@@ -0,0 +1 @@
1
+ import{createContext as t,useContext as e}from"react";const n=t(void 0);function p(){return e(n)}export{n as ExpandAllDepthContext,p as useExpandAllDepth};
@@ -19,7 +19,7 @@ export declare function getDefaultOperationStore(pointer: string, requestValues?
19
19
  }, activeExampleName?: string): {
20
20
  activeExampleName: string | undefined;
21
21
  activeOneOf: {
22
- [x: string]: number;
22
+ [pointer]: number;
23
23
  };
24
24
  requestValues: {
25
25
  [field: string]: any;
@@ -3,5 +3,5 @@ import type { MediaContentModel, MediaContentModelInput } from './types.js';
3
3
  * MediaContent model ready to be sued by React components
4
4
  * Contains multiple MediaTypes and keeps track of the currently active one
5
5
  */
6
- export declare function getMediaContent({ parser, info, isRequestType, options, data: { operation, type, response, absolutePointer } }: MediaContentModelInput): MediaContentModel;
6
+ export declare function getMediaContent({ parser, info, isRequestType, options, data: { operation, type, response, absolutePointer }, }: MediaContentModelInput): MediaContentModel;
7
7
  export declare function getActiveMediaType(content: MediaContentModel, activeMimeName?: string): import("./types.js").MediaTypeModel;
@@ -11,7 +11,7 @@ import type { MediaTypeModel, ResponseModel, OperationModel } from './types.js';
11
11
  * @param type
12
12
  * @param response
13
13
  */
14
- export declare function getMediaType(parser: OpenAPIParser, name: string, isRequestType: boolean, info: OpenAPIMediaType, options: Options, { operation, type, response, absolutePointer }: {
14
+ export declare function getMediaType(parser: OpenAPIParser, name: string, isRequestType: boolean, info: OpenAPIMediaType, options: Options, { operation, type, response, absolutePointer, }: {
15
15
  operation: OperationModel;
16
16
  type?: 'request' | 'response';
17
17
  response?: ResponseModel;
@@ -8,5 +8,5 @@ type GetRequestBodyInput = {
8
8
  isEvent?: boolean;
9
9
  operation: OperationModel;
10
10
  };
11
- export declare function getRequestBody({ parser, infoOrRef, options, isEvent, operation }: GetRequestBodyInput): RequestBodyModel;
11
+ export declare function getRequestBody({ parser, infoOrRef, options, isEvent, operation, }: GetRequestBodyInput): RequestBodyModel;
12
12
  export {};
@@ -10,5 +10,5 @@ type ResponseProps = {
10
10
  operation: OperationModel;
11
11
  isEvent?: boolean;
12
12
  };
13
- export declare function getResponse({ parser, code, defaultAsError, infoOrRef, options, isEvent, operation }: ResponseProps): ResponseModel;
13
+ export declare function getResponse({ parser, code, defaultAsError, infoOrRef, options, isEvent, operation, }: ResponseProps): ResponseModel;
14
14
  export {};
@@ -1,7 +1,7 @@
1
1
  import type { OpenAPISchema, Referenced } from '../types/index.js';
2
2
  import type { OpenAPIParser, Options } from '../services/index.js';
3
3
  import type { Deps, SchemaModel } from './types.js';
4
- export declare function getSchema({ parser, schemaOrRef, pointer, options, isChild, isDefaultMapping, baseRefsStack, deps, absolutePointer }: {
4
+ export declare function getSchema({ parser, schemaOrRef, pointer, options, isChild, isDefaultMapping, baseRefsStack, deps, absolutePointer, }: {
5
5
  parser: OpenAPIParser;
6
6
  schemaOrRef: Referenced<OpenAPISchema>;
7
7
  pointer: string;
@@ -1,2 +1,2 @@
1
- import{REDOCLY_TEAMS_RBAC as S}from"@redocly/config";import{isObject as I}from"@redocly/theme/core/openapi";import{pushRef as w}from"../services/OpenAPIParser.js";import{detectType as q,extractExtensions as C,getValueFromMdParsedExtension as M,humanizeConstraints as E,isNamedDefinition as h,isPrimitiveType as B,JsonPointer as A,pluralizeType as z,sortByDeprecated as L,sortByRequired as J}from"../utils/index.js";import{getField as b}from"./field.js";function F({parser:i,schemaOrRef:n,pointer:u,options:l,isChild:P=!1,isDefaultMapping:f=!1,baseRefsStack:m=[],deps:a,absolutePointer:y}){const{resolved:p,refsStack:c}=i.deref(n,m,!0),s=n.$ref||u||y||"",r=w(c,s),t=i.mergeAllOf(p,s,r,n.$ref||y),O=t.type||q(t),e={operationPointer:a.operation?.pointer||y||"",schemaOrRef:n,isChild:P,isDefaultMapping:f,typePrefix:"",pointer:s,absolutePointer:y,refsStack:r,rawSchema:p,type:O,isCircular:!!t["x-circular-ref"],isComplex:!!t["x-complex"],title:t.title||h(s)&&A.baseName(s)||"",description:M(t,"description")||"",format:t.format,enum:t.enum||[],example:t.example,deprecated:!!t.deprecated,pattern:t.pattern,externalDocs:t.externalDocs,displayFormat:t.format,isPrimitive:B(t,O),constraints:E(t),default:t.default,readOnly:!!t.readOnly,writeOnly:!!t.writeOnly,const:t.const||"",contentEncoding:t.contentEncoding,contentMediaType:t.contentMediaType,minItems:t.minItems,maxItems:t.maxItems,nullable:t.nullable||t["x-nullable"],schema:t,displayType:"",items:void 0,extensions:void 0,oneOfType:"",discriminatorProp:void 0,oneOf:void 0,[S]:t[S],"x-enumDescriptions":M(t,"x-enumDescriptions"),get fields(){if(!e.isCircular&&!e.isComplex&&($(e,"object")||$(e,"array")&&v(t)))return K(i,t,s,l,r,a)}};if((t.nullable||t["x-nullable"])&&(Array.isArray(e.type)&&!e.type.some(d=>d===null||d==="null")?e.type=[...e.type,"null"]:!Array.isArray(e.type)&&(e.type!==null||e.type!=="null")&&(e.type=[e.type,"null"])),e.displayType=Array.isArray(e.type)?e.type.map(d=>d===null?"null":d).join(" or "):e.type,e.isCircular)return e;if(t.if&&t.then||t.if&&t.else){const{oneOf:d,oneOfType:o}=_({schema:t,parser:i,pointer:s,options:l,deps:a,refsStack:r});return e.oneOf=d,e.oneOfType=o,e}if(!P&&j(t)!==void 0){const{oneOf:d,discriminatorProp:o}=V({schema:t,parser:i,deps:a,mergedSchema:t,options:l,pointer:s,refsStack:r});return e.oneOf=d,e.discriminatorProp=o,e}else P&&Array.isArray(t.oneOf)&&t.oneOf.find(d=>d.$ref===s)&&delete t.oneOf;if(t.oneOf!==void 0){const{oneOf:d,displayType:o}=k({schemaOneOf:t.oneOf,parser:i,deps:a,options:l,pointer:s,refsStack:r,schema:t});return e.oneOfType="One of",d&&(e.oneOf=d),e.displayType=o,t.anyOf!==void 0&&console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${s}`),e}if(t.anyOf!==void 0){const{oneOf:d,displayType:o}=k({schemaOneOf:t.anyOf,parser:i,deps:a,options:l,pointer:s,refsStack:r,schema:t});return d&&(e.oneOf=d),e.displayType=o,e.oneOfType="Any of",e}if($(e,"array")&&(t.items&&!v(t)&&(e.items=F({parser:i,schemaOrRef:t.items,pointer:s+"/items",options:l,baseRefsStack:r,deps:a,absolutePointer:A.join(t.absolutePointer||"",["items"])}),e.items.isPrimitive&&(e.description=e.items.description||e.description,e.pattern=e.items.pattern||e.pattern,e.format=e.items.format||e.format,e.constraints=[...e.constraints,...e.items.constraints])),e.displayType=t.prefixItems||Array.isArray(t.items)?"items":z(e.items?.displayType||e.displayType),e.displayFormat=e.items?.format||"",e.typePrefix=e.items?.typePrefix||"Array of ",e.title=e.title||e.items?.title||"",e.isPrimitive=e.items?.isPrimitive!==void 0?e.items?.isPrimitive:e.isPrimitive,e.example===void 0&&e.items?.example!==void 0&&(e.example=[e.items.example]),e.items?.isPrimitive&&(e.enum=e.items.enum,e["x-enumDescriptions"]=M(e.items,"x-enumDescriptions")),Array.isArray(e.type))){const d=e.type.filter(o=>o!=="array");d.length&&(e.displayType+=` or ${d.join(" or ")}`)}return l.showExtensions&&(e.extensions=C(t,l.showExtensions)),e}function V({schema:i,parser:n,pointer:u,options:l,refsStack:P,deps:f,mergedSchema:m}){const a=j(i),y=a?.propertyName,p=n.findDerived([...m["x-parentRefs"]||[],u]);if(i.oneOf)for(const o of i.oneOf){if(o.$ref===void 0)continue;const x=A.baseName(o.$ref);p[o.$ref]=x}const c=a?.mapping||{},s=a?.["x-explicitMappingOnly"]??Object.keys(c).length>0,r={};for(const o in c){const x=c[o];Array.isArray(r[x])?r[x].push(o):r[x]=[o]}const t=s?{...r}:{...p,...r};let O=[];for(const o of Object.keys(t)){const x=t[o];if(Array.isArray(x))for(const g of x)O.push({$ref:o,name:g});else O.push({$ref:o,name:x})}if(a?.defaultMapping){const o=O.findIndex(g=>g.name===A.baseName(a.defaultMapping)),x="Default mapping";~o?O[o]={$ref:a.defaultMapping,name:x,isDefaultMapping:!0}:O.push({$ref:a.defaultMapping,name:x,isDefaultMapping:!0})}const e=Object.keys(c);return e.length!==0&&(O=O.sort((o,x)=>{if(o.isDefaultMapping&&!x.isDefaultMapping)return 1;if(!o.isDefaultMapping&&x.isDefaultMapping)return-1;const g=e.indexOf(o.name),T=e.indexOf(x.name);return g<0&&T<0?o.name.localeCompare(x.name):g<0?1:T<0?-1:g-T})),{oneOf:O.map(({$ref:o,name:x,isDefaultMapping:g},T)=>{const D=F({parser:n,schemaOrRef:{$ref:o},pointer:o,options:l,isChild:!0,isDefaultMapping:g,baseRefsStack:P.slice(0,-1),deps:{...f,parentFieldFullPath:f.parentFieldFullPath?f.parentFieldFullPath+"&d="+T:"&d="+T.toString()},absolutePointer:m.absolutePointer});return D.title=x,D}),discriminatorProp:y}}function k({schemaOneOf:i,parser:n,refsStack:u,pointer:l,schema:P,options:f,deps:m}){const a=i.map((p,c)=>{const{resolved:s,refsStack:r}=n.deref(p,u,!0),t=n.mergeAllOf(s,l+"/oneOf/"+c,r),O=h(p.$ref)&&!t.title?A.baseName(p.$ref):`${t.title||""}${t.const&&JSON.stringify(t.const)||""}`;return F({parser:n,schemaOrRef:{...t,title:O,allOf:[{...P,oneOf:void 0,anyOf:void 0}],discriminator:s.allOf?void 0:t.discriminator},pointer:p.$ref||l+"/oneOf/"+c,options:f,baseRefsStack:r,deps:{...m,parentFieldFullPath:m.parentFieldFullPath?m.parentFieldFullPath+"&oneOf="+c:"&oneOf="+c.toString()}})}),y=[...new Set(a.map(p=>{let c=p.typePrefix+(p.title&&!f.hideSchemaTitles?`${p.title} (${p.displayType})`:p.displayType);return c.indexOf(" or ")>-1&&(c=`(${c})`),c}))].join(" or ");return{oneOf:a,displayType:y}}function _({schema:i,parser:n,pointer:u,options:l,refsStack:P,deps:f}){const{if:m,else:a={},then:y={},...p}=i;return{oneOf:[{allOf:[p,y,m],title:m&&m["x-displayName"]||m?.title||"case 1"},{allOf:[p,a],title:a&&a["x-displayName"]||a?.title||"case 2"}].map((t,O)=>F({parser:n,schemaOrRef:{...t},pointer:u+"/oneOf/"+O,options:l,baseRefsStack:P,deps:{...f,parentFieldFullPath:f.parentFieldFullPath?f.parentFieldFullPath+"&oneOf="+O:"&oneOf="+O.toString()}})),oneOfType:"One of"}}function R(i,n,u){return i||(console.warn(`Field "${n}" is invalid, skipping.
2
- Field must be an object but got ${typeof i} at "${u}"`),{})}function K(i,n,u,l,P,f){let m=n.properties||($(n,"array")?n.prefixItems||n.items:void 0)||{};const a=n.patternProperties||{},y=n.additionalProperties||n.unevaluatedProperties,p=n.prefixItems?n.items:n.additionalItems,c=n.default||{};let s=Object.keys(m).map(r=>{const t=R(m[r],r,u),O=n.required===void 0?!1:n.required.indexOf(r)>-1;return b(i,{name:n.properties?r:`[${r}]`,required:O,schema:{...t,example:n.example?.[r]||t.example,default:t.default===void 0&&c?c[r]:t.default}},u+"/properties/"+r,l,f,P,A.join(n.absolutePointer||"",["properties",r]))});return l.sortRequiredPropsFirst&&(s=J(s,n.required)),s.push(...Object.keys(a).map(r=>{const t=R(a[r],r,u);return b(i,{name:r,required:!1,schema:t,kind:"patternProperties"},`${u}/patternProperties/${r}`,l,f,P)})),(I(y)||y===!0)&&s.push(b(i,{name:(I(y)&&y["x-additionalPropertiesName"]||"property name").concat("*"),required:!1,schema:y===!0?{}:y,kind:"additionalProperties"},u+"/additionalProperties",l,f,P,A.join(n.absolutePointer||"",["additionalProperties"]))),s.push(...Y({parser:i,schema:p,fieldsCount:s.length,$ref:u,options:l,refsStack:P,deps:f})),L(s)}function Y({parser:i,schema:n=!1,fieldsCount:u,$ref:l,options:P,refsStack:f,deps:m}){return typeof n=="boolean"?n?[b(i,{name:`[${u}...]`,schema:{},kind:"additionalItems"},`${l}/additionalItems`,P,m,f)]:[]:Array.isArray(n)?[...n.map((a,y)=>b(i,{name:`[${u+y}]`,schema:a,kind:"additionalItems"},`${l}/additionalItems/${y}`,P,m,f))]:I(n)?[b(i,{name:`[${u}...]`,schema:n,kind:"additionalItems"},`${l}/additionalItems`,P,m,f)]:[]}function j(i){return i.discriminator||i["x-discriminator"]}function $(i,n){return i.type===n||Array.isArray(i.type)&&i.type.includes(n)}function v(i){return!!(Array.isArray(i.items)||Array.isArray(i.prefixItems))}export{F as getSchema};
1
+ import{REDOCLY_TEAMS_RBAC as S}from"@redocly/config";import{isObject as I}from"@redocly/theme/core/openapi";import{pushRef as C}from"../services/OpenAPIParser.js";import{detectType as w,extractExtensions as q,getValueFromMdParsedExtension as M,humanizeConstraints as E,isNamedDefinition as h,isPrimitiveType as B,JsonPointer as g,pluralizeType as z,sortByDeprecated as L,sortByRequired as J}from"../utils/index.js";import{getField as T}from"./field.js";function b({parser:r,schemaOrRef:n,pointer:d,options:l,isChild:x=!1,isDefaultMapping:f=!1,baseRefsStack:u=[],deps:a,absolutePointer:m}){const{resolved:p,refsStack:y}=r.deref(n,u,!0),s=n.$ref||d||m||"",o=C(y,s),t=r.mergeAllOf(p,s,o,n.$ref||m),c=t.type||w(t);let P,$=!1;const e={operationPointer:a.operation?.pointer||m||"",schemaOrRef:n,isChild:x,isDefaultMapping:f,typePrefix:"",pointer:s,absolutePointer:m,refsStack:o,rawSchema:p,type:c,isCircular:!!t["x-circular-ref"],isComplex:!!t["x-complex"],title:t.title||h(s)&&g.baseName(s)||"",description:M(t,"description")||"",format:t.format,enum:t.enum||[],example:t.example,deprecated:!!t.deprecated,pattern:t.pattern,externalDocs:t.externalDocs,displayFormat:t.format,isPrimitive:B(t,c),constraints:E(t),default:t.default,readOnly:!!t.readOnly,writeOnly:!!t.writeOnly,const:t.const||"",contentEncoding:t.contentEncoding,contentMediaType:t.contentMediaType,minItems:t.minItems,maxItems:t.maxItems,nullable:t.nullable||t["x-nullable"],schema:t,displayType:"",items:void 0,extensions:void 0,oneOfType:"",discriminatorProp:void 0,oneOf:void 0,[S]:t[S],"x-enumDescriptions":M(t,"x-enumDescriptions"),get fields(){return $||($=!0,!e.isCircular&&!e.isComplex&&(F(e,"object")||F(e,"array")&&v(t))&&(P=K(r,t,s,l,o,a))),P}};if((t.nullable||t["x-nullable"])&&(Array.isArray(e.type)&&!e.type.some(i=>i===null||i==="null")?e.type=[...e.type,"null"]:!Array.isArray(e.type)&&(e.type!==null||e.type!=="null")&&(e.type=[e.type,"null"])),e.displayType=Array.isArray(e.type)?e.type.map(i=>i===null?"null":i).join(" or "):e.type,e.isCircular)return e;if(t.if&&t.then||t.if&&t.else){const{oneOf:i,oneOfType:O}=_({schema:t,parser:r,pointer:s,options:l,deps:a,refsStack:o});return e.oneOf=i,e.oneOfType=O,e}if(!x&&j(t)!==void 0){const{oneOf:i,discriminatorProp:O}=V({schema:t,parser:r,deps:a,mergedSchema:t,options:l,pointer:s,refsStack:o});return e.oneOf=i,e.discriminatorProp=O,e}else x&&Array.isArray(t.oneOf)&&t.oneOf.find(i=>i.$ref===s)&&delete t.oneOf;if(t.oneOf!==void 0){const{oneOf:i,displayType:O}=k({schemaOneOf:t.oneOf,parser:r,deps:a,options:l,pointer:s,refsStack:o,schema:t});return e.oneOfType="One of",i&&(e.oneOf=i),e.displayType=O,t.anyOf!==void 0&&console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${s}`),e}if(t.anyOf!==void 0){const{oneOf:i,displayType:O}=k({schemaOneOf:t.anyOf,parser:r,deps:a,options:l,pointer:s,refsStack:o,schema:t});return i&&(e.oneOf=i),e.displayType=O,e.oneOfType="Any of",e}if(F(e,"array")&&(t.items&&!v(t)&&(e.items=b({parser:r,schemaOrRef:t.items,pointer:s+"/items",options:l,baseRefsStack:o,deps:a,absolutePointer:g.join(t.absolutePointer||"",["items"])}),e.items.isPrimitive&&(e.description=e.items.description||e.description,e.pattern=e.items.pattern||e.pattern,e.format=e.items.format||e.format,e.constraints=[...e.constraints,...e.items.constraints])),e.displayType=t.prefixItems||Array.isArray(t.items)?"items":z(e.items?.displayType||e.displayType),e.displayFormat=e.items?.format||"",e.typePrefix=e.items?.typePrefix||"Array of ",e.title=e.title||e.items?.title||"",e.isPrimitive=e.items?.isPrimitive!==void 0?e.items?.isPrimitive:e.isPrimitive,e.example===void 0&&e.items?.example!==void 0&&(e.example=[e.items.example]),e.items?.isPrimitive&&(e.enum=e.items.enum,e["x-enumDescriptions"]=M(e.items,"x-enumDescriptions")),Array.isArray(e.type))){const i=e.type.filter(O=>O!=="array");i.length&&(e.displayType+=` or ${i.join(" or ")}`)}return l.showExtensions&&(e.extensions=q(t,l.showExtensions)),e}function V({schema:r,parser:n,pointer:d,options:l,refsStack:x,deps:f,mergedSchema:u}){const a=j(r),m=a?.propertyName,p=n.findDerived([...u["x-parentRefs"]||[],d]);if(r.oneOf)for(const e of r.oneOf){if(e.$ref===void 0)continue;const i=g.baseName(e.$ref);p[e.$ref]=i}const y=a?.mapping||{},s=a?.["x-explicitMappingOnly"]??Object.keys(y).length>0,o={};for(const e in y){const i=y[e];Array.isArray(o[i])?o[i].push(e):o[i]=[e]}const t=s?{...o}:{...p,...o};let c=[];for(const e of Object.keys(t)){const i=t[e];if(Array.isArray(i))for(const O of i)c.push({$ref:e,name:O});else c.push({$ref:e,name:i})}if(a?.defaultMapping){const e=c.findIndex(O=>O.name===g.baseName(a.defaultMapping)),i="Default mapping";~e?c[e]={$ref:a.defaultMapping,name:i,isDefaultMapping:!0}:c.push({$ref:a.defaultMapping,name:i,isDefaultMapping:!0})}const P=Object.keys(y);return P.length!==0&&(c=c.sort((e,i)=>{if(e.isDefaultMapping&&!i.isDefaultMapping)return 1;if(!e.isDefaultMapping&&i.isDefaultMapping)return-1;const O=P.indexOf(e.name),A=P.indexOf(i.name);return O<0&&A<0?e.name.localeCompare(i.name):O<0?1:A<0?-1:O-A})),{oneOf:c.map(({$ref:e,name:i,isDefaultMapping:O},A)=>{const D=b({parser:n,schemaOrRef:{$ref:e},pointer:e,options:l,isChild:!0,isDefaultMapping:O,baseRefsStack:x.slice(0,-1),deps:{...f,parentFieldFullPath:f.parentFieldFullPath?f.parentFieldFullPath+"&d="+A:"&d="+A.toString()},absolutePointer:u.absolutePointer});return D.title=i,D}),discriminatorProp:m}}function k({schemaOneOf:r,parser:n,refsStack:d,pointer:l,schema:x,options:f,deps:u}){const a=r.map((p,y)=>{const{resolved:s,refsStack:o}=n.deref(p,d,!0),t=n.mergeAllOf(s,l+"/oneOf/"+y,o),c=h(p.$ref)&&!t.title?g.baseName(p.$ref):`${t.title||""}${t.const&&JSON.stringify(t.const)||""}`;return b({parser:n,schemaOrRef:{...t,title:c,allOf:[{...x,oneOf:void 0,anyOf:void 0}],discriminator:s.allOf?void 0:t.discriminator},pointer:p.$ref||l+"/oneOf/"+y,options:f,baseRefsStack:o,deps:{...u,parentFieldFullPath:u.parentFieldFullPath?u.parentFieldFullPath+"&oneOf="+y:"&oneOf="+y.toString()}})}),m=[...new Set(a.map(p=>{let y=p.typePrefix+(p.title&&!f.hideSchemaTitles?`${p.title} (${p.displayType})`:p.displayType);return y.indexOf(" or ")>-1&&(y=`(${y})`),y}))].join(" or ");return{oneOf:a,displayType:m}}function _({schema:r,parser:n,pointer:d,options:l,refsStack:x,deps:f}){const{if:u,else:a={},then:m={},...p}=r;return{oneOf:[{allOf:[p,m,u],title:u&&u["x-displayName"]||u?.title||"case 1"},{allOf:[p,a],title:a&&a["x-displayName"]||a?.title||"case 2"}].map((t,c)=>b({parser:n,schemaOrRef:{...t},pointer:d+"/oneOf/"+c,options:l,baseRefsStack:x,deps:{...f,parentFieldFullPath:f.parentFieldFullPath?f.parentFieldFullPath+"&oneOf="+c:"&oneOf="+c.toString()}})),oneOfType:"One of"}}function R(r,n,d){return r||(console.warn(`Field "${n}" is invalid, skipping.
2
+ Field must be an object but got ${typeof r} at "${d}"`),{})}function K(r,n,d,l,x,f){let u=n.properties||(F(n,"array")?n.prefixItems||n.items:void 0)||{};const a=n.patternProperties||{},m=n.additionalProperties||n.unevaluatedProperties,p=n.prefixItems?n.items:n.additionalItems,y=n.default||{};let s=Object.keys(u).map(o=>{const t=R(u[o],o,d),c=n.required===void 0?!1:n.required.indexOf(o)>-1;return T(r,{name:n.properties?o:`[${o}]`,required:c,schema:{...t,example:n.example?.[o]||t.example,default:t.default===void 0&&y?y[o]:t.default}},d+"/properties/"+o,l,f,x,g.join(n.absolutePointer||"",["properties",o]))});return l.sortRequiredPropsFirst&&(s=J(s,n.required)),s.push(...Object.keys(a).map(o=>{const t=R(a[o],o,d);return T(r,{name:o,required:!1,schema:t,kind:"patternProperties"},`${d}/patternProperties/${o}`,l,f,x)})),(I(m)||m===!0)&&s.push(T(r,{name:(I(m)&&m["x-additionalPropertiesName"]||"property name").concat("*"),required:!1,schema:m===!0?{}:m,kind:"additionalProperties"},d+"/additionalProperties",l,f,x,g.join(n.absolutePointer||"",["additionalProperties"]))),s.push(...Y({parser:r,schema:p,fieldsCount:s.length,$ref:d,options:l,refsStack:x,deps:f})),L(s)}function Y({parser:r,schema:n=!1,fieldsCount:d,$ref:l,options:x,refsStack:f,deps:u}){return typeof n=="boolean"?n?[T(r,{name:`[${d}...]`,schema:{},kind:"additionalItems"},`${l}/additionalItems`,x,u,f)]:[]:Array.isArray(n)?[...n.map((a,m)=>T(r,{name:`[${d+m}]`,schema:a,kind:"additionalItems"},`${l}/additionalItems/${m}`,x,u,f))]:I(n)?[T(r,{name:`[${d}...]`,schema:n,kind:"additionalItems"},`${l}/additionalItems`,x,u,f)]:[]}function j(r){return r.discriminator||r["x-discriminator"]}function F(r,n){return r.type===n||Array.isArray(r.type)&&r.type.includes(n)}function v(r){return!!(Array.isArray(r.items)||Array.isArray(r.prefixItems))}export{b as getSchema};
@@ -3,6 +3,6 @@ import type { OpenAPIParser } from '../services/index.js';
3
3
  import type { SecurityRequirement, SecurityScheme } from './types.js';
4
4
  export declare function getSecurity(requirements: OpenAPISecurityRequirement[] | undefined, parser: OpenAPIParser): SecurityRequirement[];
5
5
  export declare function getSecurityScheme(parser: Partial<OpenAPIParser>, id: string, scheme: Referenced<OpenAPISecurityScheme>): SecurityScheme;
6
- export declare function getSecuritySchemes({ parser }: {
6
+ export declare function getSecuritySchemes({ parser, }: {
7
7
  parser: Partial<OpenAPIParser>;
8
8
  }): Array<SecurityScheme>;
@@ -18,7 +18,7 @@ export type CustomHAR = HAR.Request & {
18
18
  };
19
19
  export declare function safeSample(schema: JSONSchema7, options: Sampler.Options, document: object): any;
20
20
  export declare function objectToHarParams(obj: GenericObject, parentKey?: string): HAR.Param[];
21
- export declare function getCodeSample({ lang, operation, exampleName, pathParams, properties, options, environment, translate }: {
21
+ export declare function getCodeSample({ lang, operation, exampleName, pathParams, properties, options, environment, translate, }: {
22
22
  lang: Languages;
23
23
  operation: OperationModel;
24
24
  exampleName?: string;
@@ -25,7 +25,7 @@ export declare class CodeBuilder {
25
25
  urlFieldName: string;
26
26
  rawName: boolean;
27
27
  };
28
- constructor({ indentation, lineJoin, variablesPrefix, capitalize, lang }: {
28
+ constructor({ indentation, lineJoin, variablesPrefix, capitalize, lang, }: {
29
29
  indentation: string;
30
30
  lineJoin?: string;
31
31
  variablesPrefix?: string;
@@ -1,6 +1,6 @@
1
1
  import type { SnippetRequest } from '../index.js';
2
2
  import type { CodeBuilder } from './code-builder.js';
3
- export declare function getPreserveTransformer({ body, authorizationHeader }: {
3
+ export declare function getPreserveTransformer({ body, authorizationHeader, }: {
4
4
  body?: boolean;
5
5
  authorizationHeader?: boolean;
6
6
  }): (input: GenericObject, prop: string, originalResult: string) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.24.0-next.2",
3
+ "version": "3.24.0-next.3",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",