redoc 2.0.0-rc.9 → 2.1.0

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 (146) hide show
  1. package/CHANGELOG.md +920 -10
  2. package/README.md +244 -187
  3. package/bundles/756674defce81e90acea.worker.js.LICENSE.txt +68 -0
  4. package/bundles/756674defce81e90acea.worker.js.map +1 -0
  5. package/bundles/redoc.browser.lib.js +1820 -0
  6. package/bundles/redoc.browser.lib.js.LICENSE.txt +6 -0
  7. package/bundles/redoc.browser.lib.js.map +1 -0
  8. package/bundles/redoc.lib.js +1744 -13438
  9. package/bundles/redoc.lib.js.LICENSE.txt +6 -0
  10. package/bundles/redoc.lib.js.map +1 -1
  11. package/bundles/redoc.standalone.js +1819 -122
  12. package/bundles/redoc.standalone.js.LICENSE.txt +95 -0
  13. package/bundles/redoc.standalone.js.map +1 -1
  14. package/package.json +131 -112
  15. package/typings/common-elements/CopyButtonWrapper.d.ts +4 -10
  16. package/typings/common-elements/Dropdown/Dropdown.d.ts +3 -0
  17. package/typings/common-elements/Dropdown/index.d.ts +2 -0
  18. package/typings/common-elements/Dropdown/styled.d.ts +8 -0
  19. package/typings/common-elements/Dropdown/types.d.ts +24 -0
  20. package/typings/common-elements/fields.d.ts +7 -2
  21. package/typings/common-elements/headers.d.ts +1 -1
  22. package/typings/common-elements/index.d.ts +1 -1
  23. package/typings/common-elements/linkify.d.ts +4 -8
  24. package/typings/common-elements/mixins.d.ts +1 -1
  25. package/typings/common-elements/panels.d.ts +4 -3
  26. package/typings/common-elements/samples.d.ts +3 -1
  27. package/typings/common-elements/schema.d.ts +3 -2
  28. package/typings/common-elements/shelfs.d.ts +2 -6
  29. package/typings/components/ApiInfo/styled.elements.d.ts +3 -1
  30. package/typings/components/ApiLogo/styled.elements.d.ts +1 -0
  31. package/typings/components/CallbackSamples/CallbackReqSamples.d.ts +11 -0
  32. package/typings/components/CallbackSamples/CallbackSamples.d.ts +13 -0
  33. package/typings/components/Callbacks/CallbackDetails.d.ts +8 -0
  34. package/typings/components/Callbacks/CallbackOperation.d.ts +8 -0
  35. package/typings/components/Callbacks/CallbackTitle.d.ts +10 -0
  36. package/typings/components/Callbacks/CallbacksList.d.ts +8 -0
  37. package/typings/components/Callbacks/index.d.ts +3 -0
  38. package/typings/components/Callbacks/styled.elements.d.ts +3 -0
  39. package/typings/components/ContentItems/ContentItems.d.ts +2 -2
  40. package/typings/components/DropdownOrLabel/DropdownOrLabel.d.ts +6 -3
  41. package/typings/components/Endpoint/Endpoint.d.ts +1 -0
  42. package/typings/components/Endpoint/styled.elements.d.ts +3 -2
  43. package/typings/components/ErrorBoundary.d.ts +2 -2
  44. package/typings/components/Fields/ArrayItemDetails.d.ts +5 -0
  45. package/typings/components/Fields/EnumValues.d.ts +8 -2
  46. package/typings/components/Fields/Examples.d.ts +5 -0
  47. package/typings/components/Fields/Field.d.ts +4 -2
  48. package/typings/components/Fields/FieldDetail.d.ts +1 -3
  49. package/typings/components/Fields/FieldDetails.d.ts +2 -3
  50. package/typings/components/Fields/Pattern.d.ts +5 -0
  51. package/typings/components/GenericChildrenSwitcher/GenericChildrenSwitcher.d.ts +22 -0
  52. package/typings/components/JsonViewer/JsonViewer.d.ts +2 -15
  53. package/typings/components/JsonViewer/style.d.ts +1 -1
  54. package/typings/components/Loading/Spinner.svg.d.ts +2 -1
  55. package/typings/components/Markdown/AdvancedMarkdown.d.ts +1 -0
  56. package/typings/components/Markdown/Markdown.d.ts +2 -1
  57. package/typings/components/Markdown/SanitizedMdBlock.d.ts +2 -0
  58. package/typings/components/Markdown/styled.elements.d.ts +1 -1
  59. package/typings/components/MediaTypeSwitch/MediaTypesSwitch.d.ts +3 -4
  60. package/typings/components/Operation/Operation.d.ts +4 -6
  61. package/typings/components/OptionsProvider.d.ts +2 -2
  62. package/typings/components/Parameters/Parameters.d.ts +7 -1
  63. package/typings/components/PayloadSamples/Example.d.ts +1 -0
  64. package/typings/components/PayloadSamples/ExampleValue.d.ts +1 -0
  65. package/typings/components/PayloadSamples/MediaTypeSamples.d.ts +11 -1
  66. package/typings/components/PayloadSamples/styled.elements.d.ts +6 -2
  67. package/typings/components/RedocStandalone.d.ts +2 -11
  68. package/typings/components/Responses/Response.d.ts +3 -5
  69. package/typings/components/Responses/ResponseTitle.d.ts +1 -3
  70. package/typings/components/Responses/ResponsesList.d.ts +1 -0
  71. package/typings/components/Responses/styled.elements.d.ts +6 -3
  72. package/typings/components/Schema/DiscriminatorDropdown.d.ts +2 -4
  73. package/typings/components/Schema/ObjectSchema.d.ts +2 -5
  74. package/typings/components/Schema/RecursiveSchema.d.ts +3 -0
  75. package/typings/components/Schema/Schema.d.ts +2 -1
  76. package/typings/components/SchemaDefinition/SchemaDefinition.d.ts +18 -0
  77. package/typings/components/SearchBox/SearchBox.d.ts +6 -4
  78. package/typings/components/SearchBox/styled.elements.d.ts +2 -1
  79. package/typings/components/SecurityRequirement/OAuthFlow.d.ts +9 -0
  80. package/typings/components/SecurityRequirement/RequiredScopesRow.d.ts +4 -0
  81. package/typings/components/SecurityRequirement/SecurityDetails.d.ts +8 -0
  82. package/typings/components/SecurityRequirement/SecurityHeader.d.ts +8 -0
  83. package/typings/components/SecurityRequirement/SecurityRequirement.d.ts +2 -10
  84. package/typings/components/SecurityRequirement/styled.elements.d.ts +17 -0
  85. package/typings/components/SecuritySchemes/SecuritySchemes.d.ts +7 -9
  86. package/typings/components/SeeMore/SeeMore.d.ts +7 -0
  87. package/typings/components/SelectOnClick/SelectOnClick.d.ts +1 -1
  88. package/typings/components/SideMenu/Logo.d.ts +2 -0
  89. package/typings/components/SideMenu/MenuItem.d.ts +7 -4
  90. package/typings/components/SideMenu/MenuItems.d.ts +1 -1
  91. package/typings/components/SideMenu/SideMenu.d.ts +3 -1
  92. package/typings/components/SideMenu/styled.elements.d.ts +12 -13
  93. package/typings/components/SourceCode/SourceCode.d.ts +3 -7
  94. package/typings/components/StickySidebar/ChevronSvg.d.ts +1 -0
  95. package/typings/components/StickySidebar/StickyResponsiveSidebar.d.ts +10 -3
  96. package/typings/components/StoreBuilder.d.ts +7 -18
  97. package/typings/components/index.d.ts +6 -0
  98. package/typings/index.d.ts +3 -1
  99. package/typings/services/AppStore.d.ts +4 -13
  100. package/typings/services/HistoryService.d.ts +1 -1
  101. package/typings/services/Labels.d.ts +1 -12
  102. package/typings/services/MarkdownRenderer.d.ts +7 -16
  103. package/typings/services/MenuBuilder.d.ts +16 -21
  104. package/typings/services/MenuStore.d.ts +10 -23
  105. package/typings/services/OpenAPIParser.d.ts +21 -23
  106. package/typings/services/RedocNormalizedOptions.d.ts +61 -6
  107. package/typings/services/ScrollService.d.ts +1 -1
  108. package/typings/services/SearchStore.d.ts +5 -3
  109. package/typings/services/SearchWorker.worker.d.ts +5 -9
  110. package/typings/services/SpecStore.d.ts +6 -4
  111. package/typings/services/index.d.ts +1 -0
  112. package/typings/services/models/ApiInfo.d.ts +6 -3
  113. package/typings/services/models/Callback.d.ts +11 -0
  114. package/typings/services/models/Example.d.ts +2 -2
  115. package/typings/services/models/Field.d.ts +12 -6
  116. package/typings/services/models/Group.model.d.ts +3 -4
  117. package/typings/services/models/MediaContent.d.ts +6 -7
  118. package/typings/services/models/MediaType.d.ts +4 -3
  119. package/typings/services/models/Operation.d.ts +29 -11
  120. package/typings/services/models/RequestBody.d.ts +12 -5
  121. package/typings/services/models/Response.d.ts +14 -4
  122. package/typings/services/models/Schema.d.ts +16 -7
  123. package/typings/services/models/SecurityRequirement.d.ts +3 -2
  124. package/typings/services/models/SecuritySchemes.d.ts +3 -2
  125. package/typings/services/models/Webhook.d.ts +9 -0
  126. package/typings/services/models/index.d.ts +1 -0
  127. package/typings/services/types.d.ts +107 -0
  128. package/typings/styled-components.d.ts +6 -9
  129. package/typings/styled-patch.d.ts +0 -10
  130. package/typings/theme.d.ts +32 -6
  131. package/typings/types/index.d.ts +0 -6
  132. package/typings/types/index.ts +3 -0
  133. package/typings/types/open-api.d.ts +251 -213
  134. package/typings/types/open-api.ts +297 -0
  135. package/typings/utils/dom.d.ts +1 -0
  136. package/typings/utils/helpers.d.ts +10 -5
  137. package/typings/utils/highlight.d.ts +6 -2
  138. package/typings/utils/index.d.ts +1 -0
  139. package/typings/utils/jsonToHtml.d.ts +1 -1
  140. package/typings/utils/openapi.d.ts +23 -14
  141. package/typings/utils/sort.d.ts +6 -0
  142. package/bundles/63bafba847dac11ff66b.worker.js.map +0 -1
  143. package/bundles/ad47ff28a70e23aac7c4.worker.js.map +0 -1
  144. package/typings/common-elements/dropdown.d.ts +0 -13
  145. package/typings/types/components.d.ts +0 -5
  146. /package/typings/components/Fields/{FieldContstraints.d.ts → FieldConstraints.d.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ interface SeeMoreProps {
3
+ children?: React.ReactNode;
4
+ height: string;
5
+ }
6
+ export declare function SeeMore({ children, height }: SeeMoreProps): JSX.Element;
7
+ export {};
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  export declare class SelectOnClick extends React.PureComponent {
3
3
  private child;
4
- handleClick: () => void;
4
+ selectElement: () => void;
5
5
  render(): JSX.Element;
6
6
  }
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function RedoclyLogo(): JSX.Element | null;
@@ -1,19 +1,22 @@
1
1
  import * as React from 'react';
2
- import { IMenuItem, OperationModel } from '../../services';
2
+ import { OperationModel } from '../../services';
3
+ import type { IMenuItem } from '../../services';
3
4
  export interface MenuItemProps {
4
5
  item: IMenuItem;
5
6
  onActivate?: (item: IMenuItem) => void;
6
7
  withoutChildren?: boolean;
8
+ children?: React.ReactChild;
7
9
  }
8
10
  export declare class MenuItem extends React.Component<MenuItemProps> {
9
- ref: Element | null;
10
- activate: (evt: React.MouseEvent<HTMLElement, MouseEvent>) => void;
11
+ ref: React.RefObject<HTMLLabelElement>;
12
+ activate: (evt: React.MouseEvent<HTMLElement>) => void;
11
13
  componentDidMount(): void;
12
14
  componentDidUpdate(): void;
13
15
  scrollIntoViewIfActive(): void;
14
- saveRef: (ref: any) => void;
15
16
  render(): JSX.Element;
16
17
  }
17
18
  export interface OperationMenuItemContentProps {
18
19
  item: OperationModel;
20
+ children?: React.ReactChild;
19
21
  }
22
+ export declare const OperationMenuItemContent: (props: OperationMenuItemContentProps) => JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { IMenuItem } from '../../services';
2
+ import type { IMenuItem } from '../../services';
3
3
  export interface MenuItemsProps {
4
4
  items: IMenuItem[];
5
5
  expanded?: boolean;
@@ -1,9 +1,11 @@
1
1
  import * as React from 'react';
2
- import { IMenuItem, MenuStore } from '../../services/MenuStore';
2
+ import { MenuStore } from '../../services';
3
+ import type { IMenuItem } from '../../services';
3
4
  export declare class SideMenu extends React.Component<{
4
5
  menu: MenuStore;
5
6
  className?: string;
6
7
  }> {
8
+ static contextType: React.Context<import("../../services").RedocNormalizedOptions>;
7
9
  private _updateScroll?;
8
10
  render(): JSX.Element;
9
11
  activate: (item: IMenuItem) => void;
@@ -1,18 +1,18 @@
1
- export declare const OperationBadge: import("styled-components").StyledComponent<"span", import("../../theme").ResolvedThemeInterface, {
2
- className: string;
1
+ import { ResolvedThemeInterface } from '../../styled-components';
2
+ export declare const OperationBadge: import("styled-components").StyledComponent<"span", ResolvedThemeInterface, {
3
+ className: `operation-type ${string}`;
3
4
  } & {
4
5
  type: string;
5
6
  }, "className">;
6
- export declare const MenuItemUl: import("styled-components").StyledComponent<"ul", import("../../theme").ResolvedThemeInterface, {
7
+ export declare const MenuItemUl: import("styled-components").StyledComponent<"ul", ResolvedThemeInterface, {
7
8
  expanded: boolean;
8
9
  }, never>;
9
- export declare const MenuItemLi: import("styled-components").StyledComponent<"li", import("../../theme").ResolvedThemeInterface, {
10
+ export declare const MenuItemLi: import("styled-components").StyledComponent<"li", ResolvedThemeInterface, {
10
11
  depth: number;
11
12
  }, never>;
12
13
  export declare const menuItemDepth: {
13
- 0: import("styled-components").FlattenInterpolation<import("styled-components").ThemeProps<import("../../theme").ResolvedThemeInterface>>;
14
- 1: import("styled-components").FlattenInterpolation<import("styled-components").ThemeProps<import("../../theme").ResolvedThemeInterface>>;
15
- 2: import("styled-components").FlattenInterpolation<import("styled-components").ThemeProps<import("../../theme").ResolvedThemeInterface>>;
14
+ 0: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, ResolvedThemeInterface>>;
15
+ 1: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, ResolvedThemeInterface>>;
16
16
  };
17
17
  export interface MenuItemLabelType {
18
18
  depth: number;
@@ -20,11 +20,10 @@ export interface MenuItemLabelType {
20
20
  deprecated?: boolean;
21
21
  type?: string;
22
22
  }
23
- export declare const MenuItemLabel: import("styled-components").StyledComponent<"label", import("../../theme").ResolvedThemeInterface, {
24
- role: "menuitem";
25
- className: any;
26
- } & MenuItemLabelType, "className" | "role">;
27
- export declare const MenuItemTitle: import("styled-components").StyledComponent<"span", import("../../theme").ResolvedThemeInterface, {
23
+ export declare const MenuItemLabel: import("styled-components").StyledComponent<"label", ResolvedThemeInterface, {
24
+ className: string;
25
+ } & MenuItemLabelType, "className">;
26
+ export declare const MenuItemTitle: import("styled-components").StyledComponent<"span", ResolvedThemeInterface, {
28
27
  width?: string | undefined;
29
28
  }, never>;
30
- export declare const RedocAttribution: import("styled-components").StyledComponent<"div", import("../../theme").ResolvedThemeInterface, {}, never>;
29
+ export declare const RedocAttribution: import("styled-components").StyledComponent<"div", ResolvedThemeInterface, {}, never>;
@@ -1,11 +1,7 @@
1
- import * as React from 'react';
1
+ /// <reference types="react" />
2
2
  export interface SourceCodeProps {
3
3
  source: string;
4
4
  lang: string;
5
5
  }
6
- export declare class SourceCode extends React.PureComponent<SourceCodeProps> {
7
- render(): JSX.Element;
8
- }
9
- export declare class SourceCodeWithCopy extends React.PureComponent<SourceCodeProps> {
10
- render(): JSX.Element;
11
- }
6
+ export declare const SourceCode: (props: SourceCodeProps) => JSX.Element;
7
+ export declare const SourceCodeWithCopy: (props: SourceCodeProps) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare const AnimatedChevronButton: ({ open }: {
2
3
  open: boolean;
3
4
  }) => JSX.Element;
@@ -1,16 +1,23 @@
1
1
  import * as React from 'react';
2
2
  import { MenuStore } from '../../services/MenuStore';
3
- import { RedocRawOptions } from '../../services/RedocNormalizedOptions';
3
+ import { RedocNormalizedOptions, RedocRawOptions } from '../../services/RedocNormalizedOptions';
4
+ import { OptionsContext } from '../OptionsProvider';
4
5
  export interface StickySidebarProps {
5
6
  className?: string;
6
7
  scrollYOffset?: RedocRawOptions['scrollYOffset'];
7
8
  menu: MenuStore;
8
9
  }
9
- export declare class StickyResponsiveSidebar extends React.Component<StickySidebarProps> {
10
+ export interface StickySidebarState {
11
+ offsetTop?: string;
12
+ }
13
+ export declare class StickyResponsiveSidebar extends React.Component<StickySidebarProps, StickySidebarState> {
14
+ static contextType: React.Context<RedocNormalizedOptions>;
15
+ context: React.ContextType<typeof OptionsContext>;
16
+ state: StickySidebarState;
10
17
  stickyElement: Element;
11
18
  componentDidMount(): void;
12
19
  componentWillUnmount(): void;
13
- getScrollYOffset(options: any): string;
20
+ getScrollYOffset(options: RedocNormalizedOptions): string;
14
21
  render(): JSX.Element;
15
22
  private toggleNavMenu;
16
23
  }
@@ -1,4 +1,4 @@
1
- import { Component } from 'react';
1
+ import * as React from 'react';
2
2
  import { AppStore } from '../services/';
3
3
  import { RedocRawOptions } from '../services/RedocNormalizedOptions';
4
4
  export interface StoreBuilderProps {
@@ -9,7 +9,7 @@ export interface StoreBuilderProps {
9
9
  onLoaded?: (e?: Error) => void;
10
10
  children: (props: {
11
11
  loading: boolean;
12
- store?: AppStore;
12
+ store: AppStore | null;
13
13
  }) => any;
14
14
  }
15
15
  export interface StoreBuilderState {
@@ -19,19 +19,8 @@ export interface StoreBuilderState {
19
19
  prevSpec?: any;
20
20
  prevSpecUrl?: string;
21
21
  }
22
- declare const Provider: import("react").ProviderExoticComponent<import("react").ProviderProps<AppStore | undefined>>, Consumer: import("react").ExoticComponent<import("react").ConsumerProps<AppStore | undefined>>;
23
- export { Provider as StoreProvider, Consumer as StoreConsumer };
24
- export declare class StoreBuilder extends Component<StoreBuilderProps, StoreBuilderState> {
25
- static getDerivedStateFromProps(nextProps: StoreBuilderProps, prevState: StoreBuilderState): {
26
- loading: boolean;
27
- resolvedSpec: null;
28
- prevSpec: object | undefined;
29
- prevSpecUrl: string | undefined;
30
- } | null;
31
- state: StoreBuilderState;
32
- makeStore(spec: any, specUrl: any, options: any): AppStore | undefined;
33
- componentDidMount(): void;
34
- componentDidUpdate(): void;
35
- load(): Promise<void>;
36
- render(): any;
37
- }
22
+ declare const StoreContext: React.Context<AppStore | undefined>;
23
+ declare const Provider: React.Provider<AppStore | undefined>, Consumer: React.Consumer<AppStore | undefined>;
24
+ export { Provider as StoreProvider, Consumer as StoreConsumer, StoreContext };
25
+ export declare function StoreBuilder(props: StoreBuilderProps): any;
26
+ export declare function useStore(): AppStore | undefined;
@@ -19,10 +19,16 @@ export * from './Responses/ResponsesList';
19
19
  export * from './Responses/ResponseTitle';
20
20
  export * from './ResponseSamples/ResponseSamples';
21
21
  export * from './PayloadSamples/PayloadSamples';
22
+ export * from './PayloadSamples/styled.elements';
22
23
  export * from './MediaTypeSwitch/MediaTypesSwitch';
24
+ export * from './Parameters/Parameters';
25
+ export * from './PayloadSamples/Example';
26
+ export * from './DropdownOrLabel/DropdownOrLabel';
23
27
  export * from './ErrorBoundary';
24
28
  export * from './StoreBuilder';
25
29
  export * from './OptionsProvider';
26
30
  export * from './SideMenu/';
27
31
  export * from './StickySidebar/StickyResponsiveSidebar';
28
32
  export * from './SearchBox/SearchBox';
33
+ export * from './SchemaDefinition/SchemaDefinition';
34
+ export * from './SourceCode/SourceCode';
@@ -1,5 +1,7 @@
1
1
  export * from './components';
2
- export { MiddlePanel, Row, RightPanel, Section } from './common-elements/';
2
+ export { MiddlePanel, Row, RightPanel, Section, Dropdown, SimpleDropdown, } from './common-elements/';
3
+ export type { DropdownOption } from './common-elements';
4
+ export type { OpenAPIEncoding } from './types';
3
5
  export * from './services';
4
6
  export * from './utils';
5
7
  export * from './styled-components';
@@ -1,20 +1,11 @@
1
- import { OpenAPISpec } from '../types';
1
+ import type { OpenAPISpec } from '../types';
2
2
  import { MarkerService } from './MarkerService';
3
3
  import { MenuStore } from './MenuStore';
4
4
  import { SpecStore } from './models';
5
- import { RedocNormalizedOptions, RedocRawOptions } from './RedocNormalizedOptions';
5
+ import { RedocNormalizedOptions } from './RedocNormalizedOptions';
6
+ import type { RedocRawOptions } from './RedocNormalizedOptions';
6
7
  import { SearchStore } from './SearchStore';
7
- export interface StoreState {
8
- menu: {
9
- activeItemIdx: number;
10
- };
11
- spec: {
12
- url?: string;
13
- data: any;
14
- };
15
- searchIndex: any;
16
- options: RedocRawOptions;
17
- }
8
+ import type { StoreState } from './types';
18
9
  export declare function createStore(spec: object, specUrl: string | undefined, options?: RedocRawOptions): Promise<AppStore>;
19
10
  export declare class AppStore {
20
11
  /**
@@ -1,7 +1,7 @@
1
1
  export declare class HistoryService {
2
2
  private _emiter;
3
3
  constructor();
4
- readonly currentId: string;
4
+ get currentId(): string;
5
5
  linkForId(id: string): string;
6
6
  subscribe(cb: any): () => void;
7
7
  emit: () => void;
@@ -1,14 +1,3 @@
1
- export interface LabelsConfig {
2
- enum: string;
3
- enumSingleValue: string;
4
- enumArray: string;
5
- default: string;
6
- deprecated: string;
7
- example: string;
8
- nullable: string;
9
- recursive: string;
10
- arrayOf: string;
11
- }
12
- export declare type LabelsConfigRaw = Partial<LabelsConfig>;
1
+ import type { LabelsConfig, LabelsConfigRaw } from './types';
13
2
  export declare function setRedocLabels(_labels?: LabelsConfigRaw): void;
14
3
  export declare function l(key: keyof LabelsConfig, idx?: number): string;
@@ -1,34 +1,25 @@
1
- import * as marked from 'marked';
2
- import { AppStore } from './AppStore';
1
+ import { marked } from 'marked';
3
2
  import { RedocNormalizedOptions } from './RedocNormalizedOptions';
3
+ import type { MarkdownHeading, MDXComponentMeta } from './types';
4
4
  export declare const LEGACY_REGEXP = "^ {0,3}<!-- ReDoc-Inject:\\s+?<({component}).*?/?>\\s+?-->\\s*$";
5
5
  export declare const MDX_COMPONENT_REGEXP: string;
6
6
  export declare const COMPONENT_REGEXP: string;
7
- export interface MDXComponentMeta {
8
- component: React.ComponentType;
9
- propsSelector: (store?: AppStore) => any;
10
- props?: object;
11
- }
12
- export interface MarkdownHeading {
13
- id: string;
14
- name: string;
15
- level: number;
16
- items?: MarkdownHeading[];
17
- description?: string;
18
- }
19
7
  export declare function buildComponentComment(name: string): string;
20
8
  export declare class MarkdownRenderer {
21
9
  options?: RedocNormalizedOptions | undefined;
10
+ parentId?: string | undefined;
22
11
  static containsComponent(rawText: string, componentName: string): boolean;
12
+ static getTextBeforeHading(md: string, heading: string): string;
23
13
  headings: MarkdownHeading[];
24
14
  currentTopHeading: MarkdownHeading;
15
+ parser: marked.Parser;
25
16
  private headingEnhanceRenderer;
26
17
  private originalHeadingRule;
27
- constructor(options?: RedocNormalizedOptions | undefined);
18
+ constructor(options?: RedocNormalizedOptions | undefined, parentId?: string | undefined);
28
19
  saveHeading(name: string, level: number, container?: MarkdownHeading[], parentId?: string): MarkdownHeading;
29
20
  flattenHeadings(container?: MarkdownHeading[]): MarkdownHeading[];
30
21
  attachHeadingsDescriptions(rawText: string): void;
31
- headingRule: (text: string, level: number, raw: string, slugger: marked.Slugger) => string;
22
+ headingRule: (text: string, level: 1 | 2 | 3 | 4 | 5 | 6, raw: string, slugger: marked.Slugger) => string;
32
23
  renderMd(rawText: string, extractHeadings?: boolean): string;
33
24
  extractHeadings(rawText: string): MarkdownHeading[];
34
25
  renderMdWithComponents(rawText: string): Array<string | MDXComponentMeta>;
@@ -1,23 +1,9 @@
1
- import { OpenAPIOperation, OpenAPIParameter, OpenAPISpec, OpenAPITag, Referenced } from '../types';
1
+ import type { OpenAPISpec } from '../types';
2
2
  import { GroupModel, OperationModel } from './models';
3
- import { OpenAPIParser } from './OpenAPIParser';
4
- import { RedocNormalizedOptions } from './RedocNormalizedOptions';
5
- export declare type TagInfo = OpenAPITag & {
6
- operations: ExtendedOpenAPIOperation[];
7
- used?: boolean;
8
- };
9
- export declare type ExtendedOpenAPIOperation = {
10
- pathName: string;
11
- httpVerb: string;
12
- pathParameters: Array<Referenced<OpenAPIParameter>>;
13
- } & OpenAPIOperation;
14
- export declare type TagsInfoMap = Dict<TagInfo>;
15
- export interface TagGroup {
16
- name: string;
17
- tags: string[];
18
- }
3
+ import type { OpenAPIParser } from './OpenAPIParser';
4
+ import type { RedocNormalizedOptions } from './RedocNormalizedOptions';
5
+ import type { ContentItemModel, TagGroup, TagInfo, TagsInfoMap } from './types';
19
6
  export declare const GROUP_DEPTH = 0;
20
- export declare type ContentItemModel = GroupModel | OperationModel;
21
7
  export declare class MenuBuilder {
22
8
  /**
23
9
  * Builds page content structure based on tags
@@ -27,28 +13,37 @@ export declare class MenuBuilder {
27
13
  * extracts items from markdown description
28
14
  * @param description - markdown source
29
15
  */
30
- static addMarkdownItems(description: string, options: RedocNormalizedOptions): ContentItemModel[];
16
+ static addMarkdownItems(description: string, parent: GroupModel | undefined, initialDepth: number, options: RedocNormalizedOptions): ContentItemModel[];
31
17
  /**
32
- * Returns array of OperationsGroup items for the tag groups (x-tagGroups vendor extenstion)
18
+ * Returns array of OperationsGroup items for the tag groups (x-tagGroups vendor extension)
33
19
  * @param tags value of `x-tagGroups` vendor extension
34
20
  */
35
21
  static getTagGroupsItems(parser: OpenAPIParser, parent: GroupModel | undefined, groups: TagGroup[], tags: TagsInfoMap, options: RedocNormalizedOptions): GroupModel[];
36
22
  /**
37
23
  * Returns array of OperationsGroup items for the tags of the group or for all tags
24
+ * @param parser
38
25
  * @param tagsMap tags info returned from `getTagsWithOperations`
39
26
  * @param parent parent item
40
27
  * @param group group which this tag belongs to. if not provided gets all tags
28
+ * @param options normalized options
41
29
  */
42
30
  static getTagsItems(parser: OpenAPIParser, tagsMap: TagsInfoMap, parent: GroupModel | undefined, group: TagGroup | undefined, options: RedocNormalizedOptions): ContentItemModel[];
43
31
  /**
44
32
  * Returns array of Operation items for the tag
33
+ * @param parser
45
34
  * @param parent parent OperationsGroup
46
35
  * @param tag tag info returned from `getTagsWithOperations`
47
36
  * @param depth items depth
37
+ * @param options - normalized options
48
38
  */
49
39
  static getOperationsItems(parser: OpenAPIParser, parent: GroupModel | undefined, tag: TagInfo, depth: number, options: RedocNormalizedOptions): OperationModel[];
50
40
  /**
51
41
  * collects tags and maps each tag to list of operations belonging to this tag
52
42
  */
53
- static getTagsWithOperations(spec: OpenAPISpec): TagsInfoMap;
43
+ static getTagsWithOperations(parser: OpenAPIParser, spec: OpenAPISpec): TagsInfoMap;
44
+ static getTagRelatedSchema({ parser, tag, parent, }: {
45
+ parser: OpenAPIParser;
46
+ tag: TagInfo;
47
+ parent: GroupModel;
48
+ }): GroupModel[];
54
49
  }
@@ -1,26 +1,8 @@
1
- import { SpecStore } from './models';
2
1
  import { HistoryService } from './HistoryService';
3
- import { ScrollService } from './ScrollService';
4
- export declare type MenuItemGroupType = 'group' | 'tag' | 'section';
5
- export declare type MenuItemType = MenuItemGroupType | 'operation';
2
+ import type { SpecStore } from './models';
3
+ import type { ScrollService } from './ScrollService';
4
+ import type { IMenuItem } from './types';
6
5
  /** Generic interface for MenuItems */
7
- export interface IMenuItem {
8
- id: string;
9
- absoluteIdx?: number;
10
- name: string;
11
- description?: string;
12
- depth: number;
13
- active: boolean;
14
- expanded: boolean;
15
- items: IMenuItem[];
16
- parent?: IMenuItem;
17
- deprecated?: boolean;
18
- type: MenuItemType;
19
- deactivate(): void;
20
- activate(): void;
21
- collapse(): void;
22
- expand(): void;
23
- }
24
6
  export declare const SECTION_ATTR = "data-section-id";
25
7
  /**
26
8
  * Stores all side-menu related information
@@ -72,16 +54,21 @@ export declare class MenuStore {
72
54
  * @param idx item absolute index
73
55
  */
74
56
  getElementAt(idx: number): Element | null;
57
+ /**
58
+ * get section/operation DOM Node related to the item or if it is group item, returns first item of the group
59
+ * @param idx item absolute index
60
+ */
61
+ getElementAtOrFirstChild(idx: number): Element | null;
75
62
  /**
76
63
  * current active item
77
64
  */
78
- readonly activeItem: IMenuItem;
65
+ get activeItem(): IMenuItem;
79
66
  getItemById: (id: string) => IMenuItem | undefined;
80
67
  /**
81
68
  * activate menu item
82
69
  * @param item item to activate
83
70
  * @param updateLocation [true] whether to update location
84
- * @param rewriteHistory [false] whether to rewrite browser history (do not create new enrty)
71
+ * @param rewriteHistory [false] whether to rewrite browser history (do not create new entry)
85
72
  */
86
73
  activate(item: IMenuItem | undefined, updateLocation?: boolean, rewriteHistory?: boolean): void;
87
74
  /**
@@ -1,52 +1,50 @@
1
- import { OpenAPIRef, OpenAPISchema, OpenAPISpec, Referenced } from '../types';
1
+ import type { OpenAPIRef, OpenAPISpec } from '../types';
2
2
  import { RedocNormalizedOptions } from './RedocNormalizedOptions';
3
- export declare type MergedOpenAPISchema = OpenAPISchema & {
4
- parentRefs?: string[];
5
- };
3
+ import type { MergedOpenAPISchema } from './types';
6
4
  /**
7
5
  * Loads and keeps spec. Provides raw spec operations
8
6
  */
7
+ export declare function pushRef(stack: string[], ref?: string): string[];
8
+ export declare function concatRefStacks(base: string[], stack?: string[]): string[];
9
9
  export declare class OpenAPIParser {
10
10
  private options;
11
11
  specUrl?: string;
12
12
  spec: OpenAPISpec;
13
- private _refCounter;
13
+ private readonly allowMergeRefs;
14
14
  constructor(spec: OpenAPISpec, specUrl?: string, options?: RedocNormalizedOptions);
15
- validate(spec: any): void;
16
- preprocess(spec: OpenAPISpec): void;
15
+ validate(spec: Record<string, any>): void;
17
16
  /**
18
17
  * get spec part by JsonPointer ($ref)
19
18
  */
20
- byRef: <T extends any = any>(ref: string) => T | undefined;
19
+ byRef: <T extends unknown = any>(ref: string) => T | undefined;
21
20
  /**
22
- * checks if the objectt is OpenAPI reference (containts $ref property)
21
+ * checks if the object is OpenAPI reference (contains $ref property)
23
22
  */
24
- isRef(obj: any): obj is OpenAPIRef;
25
- /**
26
- * resets visited enpoints. should be run after
27
- */
28
- resetVisited(): void;
29
- exitRef<T>(ref: Referenced<T>): void;
23
+ isRef<T extends unknown>(obj: OpenAPIRef | T): obj is OpenAPIRef;
30
24
  /**
31
25
  * Resolve given reference object or return as is if it is not a reference
32
26
  * @param obj object to dereference
33
- * @param forceCircular whether to dereference even if it is cirular ref
27
+ * @param forceCircular whether to dereference even if it is circular ref
28
+ * @param mergeAsAllOf
34
29
  */
35
- deref<T extends object>(obj: OpenAPIRef | T, forceCircular?: boolean): T;
36
- shalowDeref<T extends object>(obj: OpenAPIRef | T): T;
30
+ deref<T extends unknown>(obj: OpenAPIRef | T, baseRefsStack?: string[], mergeAsAllOf?: boolean): {
31
+ resolved: T;
32
+ refsStack: string[];
33
+ };
34
+ mergeRefs<T extends unknown>(ref: OpenAPIRef, resolved: T, mergeAsAllOf: boolean): T;
37
35
  /**
38
- * Merge allOf contsraints.
36
+ * Merge allOf constraints.
39
37
  * @param schema schema with allOF
40
38
  * @param $ref pointer of the schema
41
- * @param forceCircular whether to dereference children even if it is a cirular ref
39
+ * @param forceCircular whether to dereference children even if it is a circular ref
40
+ * @param used$Refs
42
41
  */
43
- mergeAllOf(schema: OpenAPISchema, $ref?: string, forceCircular?: boolean): MergedOpenAPISchema;
42
+ mergeAllOf(schema: MergedOpenAPISchema, $ref: string | undefined, refsStack: string[]): MergedOpenAPISchema;
44
43
  /**
45
44
  * Find all derived definitions among #/components/schemas from any of $refs
46
45
  * returns map of definition pointer to definition name
47
46
  * @param $refs array of references to find derived from
48
47
  */
49
- findDerived($refs: string[]): Dict<string>;
50
- exitParents(shema: MergedOpenAPISchema): void;
48
+ findDerived($refs: string[]): Record<string, string[] | string>;
51
49
  private hoistOneOfs;
52
50
  }
@@ -1,6 +1,6 @@
1
1
  import { ResolvedThemeInterface, ThemeInterface } from '../theme';
2
- import { LabelsConfigRaw } from './Labels';
3
- import { MDXComponentMeta } from './MarkdownRenderer';
2
+ import { SideNavStyleEnum } from './types';
3
+ import type { LabelsConfigRaw, MDXComponentMeta } from './types';
4
4
  export interface RedocRawOptions {
5
5
  theme?: ThemeInterface;
6
6
  scrollYOffset?: number | string | (() => number);
@@ -8,25 +8,55 @@ export interface RedocRawOptions {
8
8
  expandResponses?: string | 'all';
9
9
  requiredPropsFirst?: boolean | string;
10
10
  sortPropsAlphabetically?: boolean | string;
11
- noAutoAuth?: boolean | string;
11
+ sortEnumValuesAlphabetically?: boolean | string;
12
+ sortOperationsAlphabetically?: boolean | string;
13
+ sortTagsAlphabetically?: boolean | string;
12
14
  nativeScrollbars?: boolean | string;
13
15
  pathInMiddlePanel?: boolean | string;
14
16
  untrustedSpec?: boolean | string;
15
17
  hideLoading?: boolean | string;
16
18
  hideDownloadButton?: boolean | string;
19
+ downloadFileName?: string;
20
+ downloadDefinitionUrl?: string;
17
21
  disableSearch?: boolean | string;
18
22
  onlyRequiredInSamples?: boolean | string;
19
23
  showExtensions?: boolean | string | string[];
24
+ sideNavStyle?: SideNavStyleEnum;
20
25
  hideSingleRequestSampleTab?: boolean | string;
26
+ menuToggle?: boolean | string;
27
+ jsonSampleExpandLevel?: number | string | 'all';
28
+ hideSchemaTitles?: boolean | string;
29
+ simpleOneOfTypeLabel?: boolean | string;
30
+ payloadSampleIdx?: number;
31
+ expandSingleSchemaField?: boolean | string;
32
+ schemaExpansionLevel?: number | string | 'all';
33
+ showObjectSchemaExamples?: boolean | string;
34
+ showSecuritySchemeType?: boolean;
35
+ hideSecuritySection?: boolean;
21
36
  unstable_ignoreMimeParameters?: boolean;
22
- allowedMdComponents?: Dict<MDXComponentMeta>;
37
+ allowedMdComponents?: Record<string, MDXComponentMeta>;
23
38
  labels?: LabelsConfigRaw;
39
+ enumSkipQuotes?: boolean | string;
40
+ expandDefaultServerVariables?: boolean;
41
+ maxDisplayedEnumValues?: number;
42
+ ignoreNamedSchemas?: string[] | string;
43
+ hideSchemaPattern?: boolean;
44
+ generatedPayloadSamplesMaxDepth?: number;
45
+ nonce?: string;
46
+ hideFab?: boolean;
47
+ minCharacterLengthToInitSearch?: number;
48
+ showWebhookVerb?: boolean;
24
49
  }
50
+ export declare function argValueToBoolean(val?: string | boolean, defaultValue?: boolean): boolean;
25
51
  export declare class RedocNormalizedOptions {
26
52
  static normalizeExpandResponses(value: RedocRawOptions['expandResponses']): {};
27
53
  static normalizeHideHostname(value: RedocRawOptions['hideHostname']): boolean;
28
54
  static normalizeScrollYOffset(value: RedocRawOptions['scrollYOffset']): () => number;
29
55
  static normalizeShowExtensions(value: RedocRawOptions['showExtensions']): string[] | boolean;
56
+ static normalizeSideNavStyle(value: RedocRawOptions['sideNavStyle']): SideNavStyleEnum;
57
+ static normalizePayloadSampleIdx(value: RedocRawOptions['payloadSampleIdx']): number;
58
+ private static normalizeJsonSampleExpandLevel;
59
+ private static normalizeGeneratedPayloadSamplesMaxDepth;
30
60
  theme: ResolvedThemeInterface;
31
61
  scrollYOffset: () => number;
32
62
  hideHostname: boolean;
@@ -35,16 +65,41 @@ export declare class RedocNormalizedOptions {
35
65
  } | 'all';
36
66
  requiredPropsFirst: boolean;
37
67
  sortPropsAlphabetically: boolean;
38
- noAutoAuth: boolean;
68
+ sortEnumValuesAlphabetically: boolean;
69
+ sortOperationsAlphabetically: boolean;
70
+ sortTagsAlphabetically: boolean;
39
71
  nativeScrollbars: boolean;
40
72
  pathInMiddlePanel: boolean;
41
73
  untrustedSpec: boolean;
42
74
  hideDownloadButton: boolean;
75
+ downloadFileName?: string;
76
+ downloadDefinitionUrl?: string;
43
77
  disableSearch: boolean;
44
78
  onlyRequiredInSamples: boolean;
45
79
  showExtensions: boolean | string[];
80
+ sideNavStyle: SideNavStyleEnum;
46
81
  hideSingleRequestSampleTab: boolean;
82
+ menuToggle: boolean;
83
+ jsonSampleExpandLevel: number;
84
+ enumSkipQuotes: boolean;
85
+ hideSchemaTitles: boolean;
86
+ simpleOneOfTypeLabel: boolean;
87
+ payloadSampleIdx: number;
88
+ expandSingleSchemaField: boolean;
89
+ schemaExpansionLevel: number;
90
+ showObjectSchemaExamples: boolean;
91
+ showSecuritySchemeType?: boolean;
92
+ hideSecuritySection?: boolean;
47
93
  unstable_ignoreMimeParameters: boolean;
48
- allowedMdComponents: Dict<MDXComponentMeta>;
94
+ allowedMdComponents: Record<string, MDXComponentMeta>;
95
+ expandDefaultServerVariables: boolean;
96
+ maxDisplayedEnumValues?: number;
97
+ ignoreNamedSchemas: Set<string>;
98
+ hideSchemaPattern: boolean;
99
+ generatedPayloadSamplesMaxDepth: number;
100
+ hideFab: boolean;
101
+ minCharacterLengthToInitSearch: number;
102
+ showWebhookVerb: boolean;
103
+ nonce?: string;
49
104
  constructor(raw: RedocRawOptions, defaults?: RedocRawOptions);
50
105
  }
@@ -1,4 +1,4 @@
1
- import { RedocNormalizedOptions } from './RedocNormalizedOptions';
1
+ import type { RedocNormalizedOptions } from './RedocNormalizedOptions';
2
2
  export declare class ScrollService {
3
3
  private options;
4
4
  private _scrollParent;