@redocly/api-docs 0.2.0-next.4 → 0.2.0-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/RedocStandalone.d.ts +38 -0
- package/lib/RedocStandalone.js +1 -0
- package/lib/RedoclyApiDocs.js +1 -1
- package/lib/RedoclyApiDocsStandalone.d.ts +2 -0
- package/lib/adapters/asyncapi/items/overview/content.js +1 -1
- package/lib/adapters/graphql/utils/createApiItem.js +1 -1
- package/lib/adapters/helpers.d.ts +2 -0
- package/lib/adapters/helpers.js +1 -1
- package/lib/adapters/openapi/build-code-sample-source.d.ts +1 -1
- package/lib/adapters/openapi/build-code-sample-source.js +1 -1
- package/lib/adapters/openapi/configure/merge-utils.d.ts +1 -1
- package/lib/adapters/openapi/index.js +1 -1
- package/lib/adapters/openapi/items/operation/content.js +1 -1
- package/lib/adapters/openapi/items/operation/item.js +1 -1
- package/lib/adapters/openapi/items/overview/content.js +1 -1
- package/lib/adapters/openapi/store.js +1 -1
- package/lib/adapters/openapi/utils/merge-mock-server.d.ts +2 -2
- package/lib/adapters/utils/markdoc.d.ts +4 -1
- package/lib/adapters/utils/markdoc.js +1 -1
- package/lib/components/ErrorBoundary.d.ts +4 -2
- package/lib/components/ErrorBoundary.js +1 -1
- package/lib/components/Header/HeaderItem.js +1 -1
- package/lib/components/ItemContent/sections/MessagesSection.js +1 -1
- package/lib/components/Schema/styled.js +4 -4
- package/lib/components/Schema/views/ArrayRenderer.js +1 -1
- package/lib/components/Search/index.d.ts +15 -0
- package/lib/components/Search/index.js +1 -0
- package/lib/components/Security/styled.js +7 -7
- package/lib/components/StickySidebar/FloatingButton.d.ts +1 -0
- package/lib/components/StickySidebar/FloatingButton.js +32 -0
- package/lib/components/StickySidebar/RedoclyAttributionLogo.d.ts +5 -0
- package/lib/components/StickySidebar/RedoclyAttributionLogo.js +1 -0
- package/lib/components/StickySidebar/StickySidebar.js +33 -9
- package/lib/components/common/Breadcrumbs.js +2 -2
- package/lib/components/common/ResponseCodeTabs.js +1 -1
- package/lib/components/common/Tag.js +1 -1
- package/lib/components/common/ViewNested.js +2 -2
- package/lib/components/graphql/GraphQLFieldView.js +1 -1
- package/lib/components/graphql/RequiresScopesModal.js +3 -3
- package/lib/components/graphql/sections/GraphQLArgsSection.js +1 -1
- package/lib/components/panels/ExampleItem/CallbackPayloadItem.js +2 -2
- package/lib/components/panels/ExampleItem/CodeSampleItem.js +1 -1
- package/lib/components/panels/ExampleItem/PayloadExampleItem.js +2 -2
- package/lib/components/panels/ExampleItem/ResponseExampleItem.js +1 -1
- package/lib/components/panels/ExampleItem/SecuritySchemeSelector.d.ts +9 -0
- package/lib/components/panels/ExampleItem/SecuritySchemeSelector.js +1 -0
- package/lib/components/panels/ExampleItem/ServerDropdown.js +1 -1
- package/lib/components/panels/ExampleItem/generate-request-sample.d.ts +28 -0
- package/lib/components/panels/ExampleItem/generate-request-sample.js +1 -0
- package/lib/components/panels/ExampleItem/selectors.d.ts +5 -2
- package/lib/components/panels/ExampleItem/selectors.js +1 -1
- package/lib/components/panels/ExampleItem/styled.d.ts +2 -49
- package/lib/components/panels/ExampleItem/styled.js +11 -5
- package/lib/components/panels/ExampleItem/useActiveServer.d.ts +17 -0
- package/lib/components/panels/ExampleItem/useActiveServer.js +1 -0
- package/lib/components/panels/ExampleItem/useCodeSampleLanguages.d.ts +23 -0
- package/lib/components/panels/ExampleItem/useCodeSampleLanguages.js +1 -0
- package/lib/components/panels/ExampleItem/useReplayRequestState.d.ts +18 -0
- package/lib/components/panels/ExampleItem/useReplayRequestState.js +1 -0
- package/lib/components/panels/ExampleItem/useTryItFooter.d.ts +3 -0
- package/lib/components/panels/ExampleItem/useTryItFooter.js +7 -0
- package/lib/components/panels/GroupPanelItem.js +1 -1
- package/lib/components/panels/McpPanelItem.js +2 -2
- package/lib/components/panels/ServerItem/ServerItem.js +1 -1
- package/lib/components/panels/asyncapi/BrokerItem/BrokerModal.js +1 -1
- package/lib/components/panels/asyncapi/BrokerItem/BrokerPanelItem.js +1 -1
- package/lib/components/panels/shared-panel-styles.js +1 -1
- package/lib/components/pluggable/RedocExample.js +5 -2
- package/lib/hoc/withStoreProvider.js +1 -1
- package/lib/hooks/useInitialTelemetry.d.ts +2 -0
- package/lib/hooks/useInitialTelemetry.js +1 -0
- package/lib/hooks/useScrollSpyUrlSync.js +1 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.js +1 -1
- package/lib/jotai/app.d.ts +6 -0
- package/lib/jotai/app.js +1 -1
- package/lib/jotai/examples.js +1 -1
- package/lib/jotai/itemStore.d.ts +1 -0
- package/lib/jotai/itemStore.js +1 -1
- package/lib/options/editionOverrides.d.ts +3 -0
- package/lib/options/editionOverrides.js +1 -0
- package/lib/options/helpers.d.ts +1 -1
- package/lib/options/normalizeOptions.d.ts +1 -1
- package/lib/options/normalizeOptions.js +1 -1
- package/lib/pages/ItemPage.js +4 -2
- package/lib/services/code-samples/apply-env-variables.d.ts +8 -0
- package/lib/services/code-samples/apply-env-variables.js +1 -0
- package/lib/services/code-samples/builder.d.ts +3 -5
- package/lib/services/code-samples/builder.js +1 -1
- package/lib/services/code-samples/discriminator.d.ts +16 -10
- package/lib/services/code-samples/discriminator.js +1 -1
- package/lib/services/code-samples/language-availability.d.ts +4 -0
- package/lib/services/code-samples/language-availability.js +1 -0
- package/lib/services/code-samples/{replay/normalize-servers.d.ts → normalize-servers.d.ts} +1 -1
- package/lib/services/code-samples/normalize-servers.js +1 -0
- package/lib/services/code-samples/replay/from-openapi-document.js +1 -1
- package/lib/services/code-samples/replay/replay-predefined-env.d.ts +1 -2
- package/lib/services/code-samples/replay/replay-predefined-env.js +1 -1
- package/lib/services/code-samples/resolvers.js +1 -1
- package/lib/services/code-samples/server-env.d.ts +3 -0
- package/lib/services/code-samples/server-env.js +1 -0
- package/lib/services/code-samples/source.d.ts +3 -3
- package/lib/services/operation-samples/index.js +1 -1
- package/lib/services/schema/dialects/jsonSchema.d.ts +5 -1
- package/lib/services/schema/dialects/jsonSchema.js +1 -1
- package/lib/services/schema/propertyTreeBuilder.js +1 -1
- package/lib/services/search/indexer.d.ts +9 -0
- package/lib/services/search/indexer.js +1 -0
- package/lib/services/search/types.d.ts +27 -0
- package/lib/services/search/types.js +0 -0
- package/lib/standalone.d.ts +19 -0
- package/lib/standalone.js +2 -0
- package/lib/standaloneThemeConfig.d.ts +3 -0
- package/lib/standaloneThemeConfig.js +1 -0
- package/lib/telemetry/RedocTelemetry.d.ts +3 -0
- package/lib/telemetry/RedocTelemetry.js +1 -1
- package/lib/telemetry/defaults.d.ts +2 -0
- package/lib/telemetry/defaults.js +1 -0
- package/lib/types/code-samples-config.d.ts +68 -0
- package/lib/types/code-samples-config.js +0 -0
- package/lib/types/common.d.ts +1 -1
- package/lib/types/content.d.ts +2 -1
- package/lib/types/edition-config.d.ts +4 -0
- package/lib/types/edition-config.js +0 -0
- package/lib/types/events.d.ts +2 -2
- package/lib/types/openapi.d.ts +2 -1
- package/lib/types/options.d.ts +27 -85
- package/lib/types/store.d.ts +1 -1
- package/lib/utils/deep-link.d.ts +1 -0
- package/lib/utils/deep-link.js +1 -1
- package/lib/utils/extract-extensions.js +1 -1
- package/lib/utils/scroll-anchoring.d.ts +2 -1
- package/lib/utils/x-logo.d.ts +13 -0
- package/lib/utils/x-logo.js +1 -0
- package/package.json +28 -7
- package/lib/services/code-samples/replay/normalize-servers.js +0 -1
|
@@ -21,55 +21,7 @@ export declare const PathLabel: import("styled-components/dist/types").IStyledCo
|
|
|
21
21
|
export declare const ResponsePanelHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
22
22
|
export declare const MediaTypeRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
23
23
|
export declare const DisabledMimeSelect: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never>>> & string;
|
|
24
|
-
export declare const StyledSelectDropdown: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<{
|
|
25
|
-
trigger: React.ReactNode;
|
|
26
|
-
triggerEvent?: 'click' | 'hover';
|
|
27
|
-
placement?: 'top' | 'bottom';
|
|
28
|
-
alignment?: 'start' | 'end';
|
|
29
|
-
active?: boolean;
|
|
30
|
-
closeOnClick?: boolean;
|
|
31
|
-
dataAttributes?: Record<string, string>;
|
|
32
|
-
className?: string;
|
|
33
|
-
withArrow?: boolean;
|
|
34
|
-
portalled?: boolean;
|
|
35
|
-
onClick?: (event: React.UIEvent) => void;
|
|
36
|
-
onClose?: () => void;
|
|
37
|
-
onOpen?: () => void;
|
|
38
|
-
} & {
|
|
39
|
-
children?: React.ReactNode | undefined;
|
|
40
|
-
} & import("react").RefAttributes<HTMLDivElement>, never> & Partial<Pick<{
|
|
41
|
-
trigger: React.ReactNode;
|
|
42
|
-
triggerEvent?: 'click' | 'hover';
|
|
43
|
-
placement?: 'top' | 'bottom';
|
|
44
|
-
alignment?: 'start' | 'end';
|
|
45
|
-
active?: boolean;
|
|
46
|
-
closeOnClick?: boolean;
|
|
47
|
-
dataAttributes?: Record<string, string>;
|
|
48
|
-
className?: string;
|
|
49
|
-
withArrow?: boolean;
|
|
50
|
-
portalled?: boolean;
|
|
51
|
-
onClick?: (event: React.UIEvent) => void;
|
|
52
|
-
onClose?: () => void;
|
|
53
|
-
onOpen?: () => void;
|
|
54
|
-
} & {
|
|
55
|
-
children?: React.ReactNode | undefined;
|
|
56
|
-
} & import("react").RefAttributes<HTMLDivElement>, never>>> & string & Omit<import("react").ForwardRefExoticComponent<{
|
|
57
|
-
trigger: React.ReactNode;
|
|
58
|
-
triggerEvent?: 'click' | 'hover';
|
|
59
|
-
placement?: 'top' | 'bottom';
|
|
60
|
-
alignment?: 'start' | 'end';
|
|
61
|
-
active?: boolean;
|
|
62
|
-
closeOnClick?: boolean;
|
|
63
|
-
dataAttributes?: Record<string, string>;
|
|
64
|
-
className?: string;
|
|
65
|
-
withArrow?: boolean;
|
|
66
|
-
portalled?: boolean;
|
|
67
|
-
onClick?: (event: React.UIEvent) => void;
|
|
68
|
-
onClose?: () => void;
|
|
69
|
-
onOpen?: () => void;
|
|
70
|
-
} & {
|
|
71
|
-
children?: React.ReactNode | undefined;
|
|
72
|
-
} & import("react").RefAttributes<HTMLDivElement>>, keyof import("react").Component<any, {}, any>>;
|
|
24
|
+
export declare const StyledSelectDropdown: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("@redocly/theme").DropdownProps & import("react").RefAttributes<HTMLDivElement>, never> & Partial<Pick<import("@redocly/theme").DropdownProps & import("react").RefAttributes<HTMLDivElement>, never>>> & string & Omit<import("react").ForwardRefExoticComponent<import("@redocly/theme").DropdownProps & import("react").RefAttributes<HTMLDivElement>>, keyof import("react").Component<any, {}, any>>;
|
|
73
25
|
export declare const SelectDropdownMenu: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("@redocly/theme").DropdownMenuProps & import("styled-components/dist/types").BaseObject, never> & Partial<Pick<import("@redocly/theme").DropdownMenuProps & import("styled-components/dist/types").BaseObject, never>>> & string & Omit<typeof DropdownMenu, keyof import("react").Component<any, {}, any>>;
|
|
74
26
|
export declare const SelectDropdownMenuItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Partial<Pick<import("@redocly/theme").LinkProps, "external" | "target" | "to">> & {
|
|
75
27
|
prefix?: import("react").ReactNode;
|
|
@@ -161,4 +113,5 @@ export declare const SelectDropdownTriggerButton: import("styled-components/dist
|
|
|
161
113
|
}, never>>> & string;
|
|
162
114
|
export declare const VariablesContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
163
115
|
export declare const VariablesTitle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
116
|
+
export declare const ExampleDescriptionWrap: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
164
117
|
export declare const TryItPanelFooter: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{styled as e}from"styled-components";import{PanelHeader as
|
|
1
|
+
import{styled as e}from"styled-components";import{PanelHeader as o}from"@redocly/theme/components/Panel/PanelHeader";import{Tag as a}from"@redocly/theme/components/Tag/Tag";import{Button as r}from"@redocly/theme/components/Button/Button";import{Dropdown as n}from"@redocly/theme/components/Dropdown/Dropdown";import{DropdownMenu as t}from"@redocly/theme/components/Dropdown/DropdownMenu";import{DropdownMenuItem as i}from"@redocly/theme/components/Dropdown/DropdownMenuItem";import{CheckmarkIcon as p}from"@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon";const v=e(o)`
|
|
2
2
|
flex-wrap: nowrap;
|
|
3
3
|
column-gap: var(--spacing-xs);
|
|
4
4
|
padding: var(--spacing-sm) var(--spacing-md) var(--spacing-xs);
|
|
@@ -10,7 +10,7 @@ import{styled as e}from"styled-components";import{PanelHeader as r}from"@redocly
|
|
|
10
10
|
> :last-child {
|
|
11
11
|
flex-shrink: 0;
|
|
12
12
|
}
|
|
13
|
-
`,
|
|
13
|
+
`,x=e(r)`
|
|
14
14
|
display: inline-flex;
|
|
15
15
|
overflow-x: hidden;
|
|
16
16
|
font-weight: var(--font-weight-regular);
|
|
@@ -75,6 +75,10 @@ import{styled as e}from"styled-components";import{PanelHeader as r}from"@redocly
|
|
|
75
75
|
max-width: 100%;
|
|
76
76
|
}
|
|
77
77
|
`,S=e(t)`
|
|
78
|
+
/* The portalled menu wrapper gets the trigger width as an inline min-width;
|
|
79
|
+
width: 0 keeps the menu content from growing the wrapper past it, so the
|
|
80
|
+
menu ends up exactly as wide as the trigger. */
|
|
81
|
+
width: 0;
|
|
78
82
|
min-width: 100%;
|
|
79
83
|
`,P=e(i)`
|
|
80
84
|
--dropdown-menu-item-justify-content: space-between;
|
|
@@ -90,12 +94,12 @@ import{styled as e}from"styled-components";import{PanelHeader as r}from"@redocly
|
|
|
90
94
|
overflow: hidden;
|
|
91
95
|
text-overflow: ellipsis;
|
|
92
96
|
white-space: nowrap;
|
|
93
|
-
`,
|
|
97
|
+
`,T=e(p)`
|
|
94
98
|
width: 16px;
|
|
95
99
|
height: 16px;
|
|
96
100
|
margin-left: auto;
|
|
97
101
|
flex-shrink: 0;
|
|
98
|
-
`,
|
|
102
|
+
`,I=e(r)`
|
|
99
103
|
width: 100%;
|
|
100
104
|
justify-content: space-between;
|
|
101
105
|
background-color: var(--bg-color);
|
|
@@ -120,9 +124,11 @@ import{styled as e}from"styled-components";import{PanelHeader as r}from"@redocly
|
|
|
120
124
|
font-weight: var(--font-weight-semibold);
|
|
121
125
|
color: var(--panel-samples-text-color, #cfd8dc);
|
|
122
126
|
`,C=e.div`
|
|
127
|
+
margin: 0 var(--spacing-md) var(--spacing-sm);
|
|
128
|
+
`,V=e.div`
|
|
123
129
|
display: flex;
|
|
124
130
|
justify-content: flex-end;
|
|
125
131
|
align-items: center;
|
|
126
132
|
border-top: var(--panel-border);
|
|
127
133
|
padding: var(--spacing-xs) var(--spacing-md) var(--spacing-sm) var(--spacing-md);
|
|
128
|
-
`;export{z as DisabledMimeSelect,b as HttpVerb,k as MediaTypeRow,u as PathLabel,
|
|
134
|
+
`;export{z as DisabledMimeSelect,C as ExampleDescriptionWrap,b as HttpVerb,k as MediaTypeRow,u as PathLabel,x as PathWrapper,y as ResponsePanelHeader,T as SelectDropdownCheckmarkIcon,M as SelectDropdownLabel,S as SelectDropdownMenu,P as SelectDropdownMenuItem,I as SelectDropdownTriggerButton,w as StaticPathWrapper,v as StyledPanelHeader,D as StyledSelectDropdown,V as TryItPanelFooter,j as VariablesContainer,H as VariablesTitle};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CodeSamplePanelItem } from '../../../types/content.js';
|
|
2
|
+
type ActiveServer = {
|
|
3
|
+
/** Environment atom value — the first entry holds the active env variables. */
|
|
4
|
+
environment: [Record<string, string>, string];
|
|
5
|
+
/** Variable-substituted URL of the active server. */
|
|
6
|
+
url: string | undefined;
|
|
7
|
+
/** Raw (templated) spec URL — keys `requestValues.serverBody`/`serverEnvVariables`. */
|
|
8
|
+
specUrl: string | undefined;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* The active server for the code-sample panel.
|
|
12
|
+
* `requestValues.serverBody`/`serverEnvVariables` are keyed by the raw
|
|
13
|
+
* (templated) spec server URL, while the environment may hold the
|
|
14
|
+
* variable-substituted URL — keep both forms of the active server.
|
|
15
|
+
*/
|
|
16
|
+
export declare function useActiveServer(node: CodeSamplePanelItem): ActiveServer;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useMemo as c}from"react";import{useAtomValue as l}from"jotai";import{environmentAtom as v}from"../../../jotai/app.js";import{replaceServerVariables as m,serverMatchesUrl as i}from"../../../services/code-samples/server-variables.js";function A(e){const t=e.source,r=l(v);return c(()=>{const s=r[0].server,u=s?e.servers?.find(n=>i(n,s)):void 0;if(s&&u)return{environment:r,url:s,specUrl:u.url};const o=e.servers?.[0];return o?{environment:r,url:m(o),specUrl:o.url}:{environment:r,url:t.servers[0]?.url,specUrl:t.servers[0]?.url}},[r,e.servers,t.servers])}export{A as useActiveServer};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CodeSamplePanelItem } from '../../../types/content.js';
|
|
2
|
+
export declare const PAYLOAD_LANGUAGE: import("../../../index.js").Language;
|
|
3
|
+
export declare const WEBHOOK_LANGUAGE_SAMPLES: {
|
|
4
|
+
key: string;
|
|
5
|
+
lang: string;
|
|
6
|
+
title: string;
|
|
7
|
+
}[];
|
|
8
|
+
type LanguageTab = {
|
|
9
|
+
key: string;
|
|
10
|
+
lang: string;
|
|
11
|
+
title: string;
|
|
12
|
+
};
|
|
13
|
+
type CodeSampleLanguages = {
|
|
14
|
+
/** Language tabs offered for this panel. */
|
|
15
|
+
languages: LanguageTab[];
|
|
16
|
+
/** `x-codeSamples` limited to the configured languages. */
|
|
17
|
+
filteredDefinitionSamples: CodeSamplePanelItem['definitionSamples'];
|
|
18
|
+
activeLanguage: string;
|
|
19
|
+
setLanguage: (key: string) => void;
|
|
20
|
+
};
|
|
21
|
+
/** Which language tabs the code-sample panel offers and which one is active. */
|
|
22
|
+
export declare function useCodeSampleLanguages(node: CodeSamplePanelItem, hasPayloadData: boolean): CodeSampleLanguages;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useMemo as c}from"react";import{useAtom as b}from"jotai";import{filterAvailableLanguages as E}from"../../../services/code-samples/language-availability.js";import{DEFAULT_LANGUAGES as A,getLangKey as y}from"../../../utils/languages.js";import{languageAtom as h}from"../../../jotai/app.js";const l=A.find(n=>n.key==="payload")??A[0],f={key:l.key,lang:l.lang,title:l.label},O=[f];function W(n,u){const[{activeLanguage:L,languages:o},k]=b(h),r=n.isWebhook?"payload":L||"curl",i=n.definitionSamples,s=c(()=>{if(!i?.length)return i;const a=new Set((o??[]).map(t=>t.key));return i.filter(t=>a.has(y(t)))},[i,o]),g=c(()=>{const a=(o??[]).map(({key:e,lang:S,title:G})=>({key:e,lang:S,title:G}));let t=u?a:a.filter(e=>e.key!=="payload");const m=new Set(s?.map(e=>y(e))??[]);n.isWebhook&&(t=t.filter(e=>e.key==="payload"||m.has(e.key)));const p=E(t,m);return p.length?p:[a.find(e=>e.key===f.key)??f]},[u,o,n.isWebhook,s]),d=g.some(a=>a.key===r)?r:g[0]?.key??r;return{languages:g,filteredDefinitionSamples:s,activeLanguage:d,setLanguage:k}}export{l as PAYLOAD_LANGUAGE,O as WEBHOOK_LANGUAGE_SAMPLES,W as useCodeSampleLanguages};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CodeSampleSource } from '../../../services/code-samples/index.js';
|
|
2
|
+
import type { HARBuildResolvers, HARBuildSelections } from '../../../services/code-samples/index.js';
|
|
3
|
+
type ReplayRequestState = {
|
|
4
|
+
/** Raw body the user edited in Replay — feeds sample generation. */
|
|
5
|
+
body: unknown;
|
|
6
|
+
/** Replay body parsed for PayloadDisplay (JSON strings become objects). */
|
|
7
|
+
displayBody: unknown;
|
|
8
|
+
/** Example the user selected in Replay. */
|
|
9
|
+
exampleName: string | undefined;
|
|
10
|
+
harRequestValues: HARBuildSelections['requestValues'];
|
|
11
|
+
resolvers: HARBuildResolvers;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Request values the user edited in Replay (Try It) for this operation.
|
|
15
|
+
* Excluded from the community edition.
|
|
16
|
+
*/
|
|
17
|
+
export declare function useReplayRequestState(source: CodeSampleSource): ReplayRequestState;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useMemo as m}from"react";import{useAtomValue as p}from"jotai";import{requestValuesAtom as c}from"../../../jotai/app.js";import{mapReplayAtomValuesToHarRequestValues as y,useCodeSampleResolvers as f}from"../../../services/code-samples/index.js";function x(e){const s=p(c),t=f(),i=`${e.method.toLowerCase()}:${e.path}`,r=s[i],a=m(()=>{const l=y(r??{});return e.requestValues?.security?{...l,security:e.requestValues.security}:l},[r,e.requestValues?.security]),o=r?.body,u=r?.activeExampleName,n=typeof u=="string"?u:void 0;return m(()=>({body:o,displayBody:V(o),exampleName:n,harRequestValues:a,resolvers:t}),[o,n,a,t])}function V(e){if(typeof e!="string")return e;const s=e.trim();if(!s)return e;try{const t=JSON.parse(s);if(t!==null&&typeof t=="object")return t}catch{}return e}export{x as useReplayRequestState};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{useMemo as n}from"react";import{useAtomValue as p}from"jotai";import{styled as a}from"styled-components";import{globalOptionsAtom as s}from"../../../jotai/store.js";import{useOpenApiDefinition as l}from"../../../hoc/withReplayPrefetch.js";import{pickReplayDefinitionDownloadUrl as m}from"../../../utils/fetch-openapi-definition.js";import{Replay as d}from"../../Replay/index.js";function A(o){const e=p(s),t=l(),i=!(e.hideReplay||o.hideReplay)&&!o.isWebhook&&!!(t??m(e.downloadUrls));return n(()=>i?r(f,{children:r(d,{node:o})}):void 0,[i,o])}const f=a.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: flex-end;
|
|
4
|
+
align-items: center;
|
|
5
|
+
border-top: var(--panel-border);
|
|
6
|
+
padding: var(--spacing-xs) var(--spacing-md) var(--spacing-sm) var(--spacing-md);
|
|
7
|
+
`;export{A as useTryItFooter};
|
|
@@ -53,7 +53,7 @@ import{Fragment as G,jsx as t,jsxs as l}from"react/jsx-runtime";import{styled as
|
|
|
53
53
|
margin-left: 0;
|
|
54
54
|
}
|
|
55
55
|
`,S=o(z)`
|
|
56
|
-
border-radius: var(--border-radius);
|
|
56
|
+
border-radius: var(--border-radius-lg);
|
|
57
57
|
background: var(--bg-color);
|
|
58
58
|
justify-content: space-between;
|
|
59
59
|
width: 100%;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as n,jsxs as s}from"react/jsx-runtime";import{styled as a}from"styled-components";import{memo as
|
|
1
|
+
import{jsx as n,jsxs as s}from"react/jsx-runtime";import{styled as a}from"styled-components";import{memo as g}from"react";import{PageActions as v}from"@redocly/theme/components/PageActions/PageActions";import{panelKind as o}from"../../types/common.js";import{useSpecTranslate as u}from"../../hooks/useTranslate.js";import{resolveText as d}from"../../utils/resolveText.js";import{OverviewPanel as m}from"./styled.js";function K({node:e}){const r=e,l=u(),i=r.children,c=d(l,e.titleTranslationKey,e.title);return n(m,{header:c,className:"panel-api-docs",isExpandable:!1,children:n(y,{children:i.map((t,h)=>n(b,{item:t,translate:l},x(t,h)))})})}function x(e,r){return e.kind===o.ATTRIBUTE?`${e.label}-${r}`:e.kind===o.TAGS?`${e.title||"tags"}-${r}`:e.kind===o.EXTERNAL_LINK?`${e.url}-${r}`:e.kind===o.CONNECT_MCP_BUTTON?`${e.mcpUrl}-${r}`:`mcp-item-${r}`}const b=g(function({item:r,translate:l}){const i=d(l,r.titleTranslationKey,r.title),c="label"in r?d(l,r.labelTranslationKey,r.label):"";return r.kind===o.ATTRIBUTE?s(p,{children:[n(f,{children:r.title||c}),n(k,{children:r.value})]}):r.kind===o.TAGS?s(p,{children:[n(f,{children:i||"Tags"}),n(P,{children:r.tags.map(t=>s(w,{variant:t.color==="green"?"success":void 0,children:[t.icon==="checkmark"&&n(T,{})," ",t.text]},t.text))})]}):r.kind===o.EXTERNAL_LINK?s(p,{children:[n(f,{children:i||"Link"}),n($,{href:r.url,target:"_blank",rel:"noopener noreferrer",children:r.label})]}):r.kind===o.CONNECT_MCP_BUTTON?n(N,{children:n(v,{actions:r.actions,mcpUrl:r.mcpUrl})}):null});function T(){return n("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:n("polyline",{points:"20 6 9 17 4 12"})})}const y=a.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
gap: var(--spacing-sm);
|
|
@@ -29,7 +29,7 @@ import{jsx as n,jsxs as s}from"react/jsx-runtime";import{styled as a}from"styled
|
|
|
29
29
|
font-size: var(--font-size-sm);
|
|
30
30
|
line-height: var(--line-height-sm);
|
|
31
31
|
padding: 0 var(--spacing-xxs);
|
|
32
|
-
border-radius: var(--border-radius);
|
|
32
|
+
border-radius: var(--tag-border-radius);
|
|
33
33
|
font-family: var(--font-family-monospaced);
|
|
34
34
|
background: ${({variant:e})=>e==="success"?"var(--badge-ok-bg-color, var(--tag-bg-color))":"var(--tag-bg-color, var(--border-color-secondary))"};
|
|
35
35
|
color: ${({variant:e})=>e==="success"?"var(--badge-ok-text-color, var(--text-color-secondary))":"var(--text-color-secondary)"};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as i,jsxs as t}from"react/jsx-runtime";import{styled as o}from"styled-components";import{CopyButton as f}from"@redocly/theme/components/Buttons/CopyButton";import{PanelItem as x,PanelItemDescription as b,Title as v,ServerTitleWrapper as u,TitleWrap as y}from"../../common/PanelItem.js";import{Tag as h}from"../../common/Tag.js";import{useSpecTranslate as w}from"../../../hooks/useTranslate.js";import{Markdown as S}from"../../common/Markdown.js";import{ViewNested as T}from"../../common/ViewNested.js";import{ServerDescriptionTooltip as D}from"./ServerDescriptionTooltip.js";import{resolveServerUrl as j}from"../../../services/code-samples/
|
|
1
|
+
import{jsx as i,jsxs as t}from"react/jsx-runtime";import{styled as o}from"styled-components";import{CopyButton as f}from"@redocly/theme/components/Buttons/CopyButton";import{PanelItem as x,PanelItemDescription as b,Title as v,ServerTitleWrapper as u,TitleWrap as y}from"../../common/PanelItem.js";import{Tag as h}from"../../common/Tag.js";import{useSpecTranslate as w}from"../../../hooks/useTranslate.js";import{Markdown as S}from"../../common/Markdown.js";import{ViewNested as T}from"../../common/ViewNested.js";import{ServerDescriptionTooltip as D}from"./ServerDescriptionTooltip.js";import{resolveServerUrl as j}from"../../../services/code-samples/normalize-servers.js";function U({server:e}){const n=w(),a=j(e.url),p=Object.keys(e.variables||{}).length,l=p===1?"variable":"variables",d=`${p||""} ${n(l,l)}`,g=!!e.name&&!!e.description;return t(x,{children:[t(u,{children:[i(b,{"data-testid":"server-panel-item-name",children:e.name||e.description}),g&&i(D,{description:e.description})]}),t(y,{children:[i(v,{suppressHydrationWarning:!0,children:a}),i(f,{data:a},a)]}),e.variables&&i(T,{expandText:`${n("actions.show","Show")} ${d}`,hideText:`${n("actions.hide","Hide")} ${d}`,expandByDefault:!1,expandable:!0,hideDivider:!0,children:i($,{children:Object.entries(e.variables||{}).map(([c,r])=>t(z,{children:[i(k,{children:c}),t(s,{children:[n("default","Default")," ",i(h,{className:"tag-grey",children:r.default})]}),r.description&&(typeof r.description=="string"?i("div",{children:r.description}):i(W,{source:r.description})),r.enum&&t(s,{children:[n("enum","Enum")," ",i(C,{children:r.enum.map(m=>i(h,{className:"tag-grey",children:m},m))})]})]},c))})})]},e.url)}const $=o.div`
|
|
2
2
|
padding-left: var(--spacing-xxs);
|
|
3
3
|
& > div {
|
|
4
4
|
border-bottom: 1px solid var(--border-color-secondary);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as o,jsxs as i}from"react/jsx-runtime";import{styled as e}from"styled-components";import{useState as d,useRef as m}from"react";import{Button as g}from"@redocly/theme/components/Button/Button";import{Typography as f}from"@redocly/theme/components/Typography/Typography";import{Segmented as h}from"@redocly/theme/components/Segmented/Segmented";import{CloseIcon as v}from"@redocly/theme/icons/CloseIcon/CloseIcon";import{DatabaseIcon as u}from"@redocly/theme/icons/DatabaseIcon/DatabaseIcon";import{KafkaIcon as x}from"@redocly/theme/icons/KafkaIcon/KafkaIcon";import{RabbitMQIcon as b}from"@redocly/theme/icons/RabbitMQIcon/RabbitMQIcon";import{useOutsideClick as k}from"@redocly/theme/core/hooks";import{useFocusTrap as w}from"@redocly/theme/core/
|
|
1
|
+
import{jsx as o,jsxs as i}from"react/jsx-runtime";import{styled as e}from"styled-components";import{useState as d,useRef as m}from"react";import{Button as g}from"@redocly/theme/components/Button/Button";import{Typography as f}from"@redocly/theme/components/Typography/Typography";import{Segmented as h}from"@redocly/theme/components/Segmented/Segmented";import{CloseIcon as v}from"@redocly/theme/icons/CloseIcon/CloseIcon";import{DatabaseIcon as u}from"@redocly/theme/icons/DatabaseIcon/DatabaseIcon";import{KafkaIcon as x}from"@redocly/theme/icons/KafkaIcon/KafkaIcon";import{RabbitMQIcon as b}from"@redocly/theme/icons/RabbitMQIcon/RabbitMQIcon";import{useOutsideClick as k}from"@redocly/theme/core/hooks";import{useFocusTrap as w}from"@redocly/theme/core/openapi";import{BrokerOverviewSection as B}from"./BrokerOverviewSection.js";import{BrokerBindingsSection as z}from"./BrokerBindingsSection.js";const y=[{label:"Overview",value:0}],S=({protocol:t})=>{switch(t){case"kafka":return o(x,{size:"24px"});case"amqp":return o(b,{size:"24px"});default:return o(u,{size:"24px"})}},A=({broker:t,onClose:n,panelLabel:l})=>{const[r,p]=d(0),a=m(null);k(a,n),w(a);const s=[...y];return t.bindings&&s.push({label:"Configuration",value:2}),o(I,{"data-component-name":"BrokerModal/BrokerModal",children:i(C,{ref:a,tabIndex:0,children:[o(M,{onClick:n,"data-testid":"close",variant:"ghost",icon:o(v,{})}),i(O,{children:[o(S,{protocol:t.protocol||""}),o(T,{children:t.protocol}),": ",t.name]}),o(h,{value:r,onChange:({value:c})=>p(c),options:s}),i(j,{children:[r===0&&o(B,{broker:t}),r===2&&o(z,{broker:t,panelLabel:l})]})]})})},I=e.div`
|
|
2
2
|
background: var(--bg-color-modal-overlay);
|
|
3
3
|
position: fixed;
|
|
4
4
|
width: 100vw;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{styled as o}from"styled-components";import{memo as b,useCallback as h,useState as B}from"react";import{CopyButton as k}from"@redocly/theme/components/Buttons/CopyButton";import{DatabaseIcon as y}from"@redocly/theme/icons/DatabaseIcon/DatabaseIcon";import{KafkaIcon as M}from"@redocly/theme/icons/KafkaIcon/KafkaIcon";import{RabbitMQIcon as w}from"@redocly/theme/icons/RabbitMQIcon/RabbitMQIcon";import{useModalScrollLock as I}from"@redocly/theme/core/
|
|
1
|
+
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{styled as o}from"styled-components";import{memo as b,useCallback as h,useState as B}from"react";import{CopyButton as k}from"@redocly/theme/components/Buttons/CopyButton";import{DatabaseIcon as y}from"@redocly/theme/icons/DatabaseIcon/DatabaseIcon";import{KafkaIcon as M}from"@redocly/theme/icons/KafkaIcon/KafkaIcon";import{RabbitMQIcon as w}from"@redocly/theme/icons/RabbitMQIcon/RabbitMQIcon";import{useModalScrollLock as I}from"@redocly/theme/core/openapi";import{Portal as L}from"@redocly/theme/components/Portal/Portal";import{Panel as S}from"@redocly/theme/components/Panel/Panel";import{MoreDetailsButton as j}from"../../../common/MoreDetailsButton.js";import{useSpecTranslate as P}from"../../../../hooks/useTranslate.js";import{useTelemetry as z}from"../../../../hooks/useTelemetry.js";import{resolveText as C}from"../../../../utils/resolveText.js";import{BrokerModal as T}from"./BrokerModal.js";import{HostList as D}from"./BrokerPanel.styled.js";function H(t){switch(t){case"kafka":return e(M,{size:"20px"});case"amqp":return e(w,{size:"20px"});default:return e(y,{size:"20px"})}}const O=b(function({broker:r,showMoreDetailsButton:i,onOpenModal:s}){return a(Q,{"data-component-name":"BrokerPanel/BrokerItem",children:[a(_,{children:[e(W,{children:H(r.protocol)}),e(q,{children:r.name})]}),r.url&&a(E,{children:[e(D,{children:r.url.split(" ").map((l,c)=>e("span",{children:l},c))}),e(k,{data:r.url},r.url)]}),!i&&e(N,{onClick:()=>s(r),children:e(j,{expanded:!1})})]})});function ie({node:t}){const r=t.children[0],i=r?.brokers??[],s=P(),l=z(),c=C(s,t.titleTranslationKey,t.title),v=r?.panelLabel||c||"Brokers",p=!t.title,[d,m]=B(null);I(d!==null);const g=h(n=>{l.sendServerModalOpenedMessage([{id:"serverModalButton",object:"button",uri:"urn:redocly:redoc:ui:button:serverModalButton",server:n.name??n.url??"unknown"}]),m(n)},[l]),x=h(()=>{m(null)},[]),u=e(A,{children:i.map(n=>e(O,{broker:n,showMoreDetailsButton:p,onOpenModal:g},n.name))}),f=d&&e(L,{mountId:"api-content",children:e(T,{broker:d,onClose:x,panelLabel:v})});return p?a(K,{children:[u,f]}):a(R,{header:t.title,className:"panel-api-docs",isExpandable:!1,children:[u,f]})}const R=o(S)`
|
|
2
2
|
[data-component-name='Panel/PanelBody'] {
|
|
3
3
|
padding: 0;
|
|
4
4
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import{jsx as r,jsxs as e}from"react/jsx-runtime";import{styled as o}from"styled-components";const s=o.div`
|
|
2
2
|
border: 1px solid var(--border-color-secondary, var(--border-color-primary));
|
|
3
|
-
border-radius: var(--border-radius);
|
|
3
|
+
border-radius: var(--panel-border-radius);
|
|
4
4
|
background-color: var(--panel-bg-color, var(--bg-color));
|
|
5
5
|
margin-top: var(--spacing-base);
|
|
6
6
|
`,l=o.div`
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import{Fragment as
|
|
1
|
+
import{Fragment as i,jsx as e,jsxs as c}from"react/jsx-runtime";import{useAtomValue as u}from"jotai";import{styled as n}from"styled-components";import{refPointerToStoreId as s}from"../../utils/refPointer.js";import{ContentWrapper as f}from"../common/ContentWrapper.js";import{exampleStoreAtom as x}from"../../jotai/examples.js";import{ExampleDescription as b,PayloadDisplay as v}from"../panels/ExampleItem/selectors.js";const _=({pointer:r,value:o,mimeType:p})=>{const t=u(x);if(o===void 0&&!r)return e(i,{});const m=r?s(r):void 0,l=r&&/\/value$/.test(r)?s(r.replace(/\/value$/,"")):void 0,a=t[m??""]??t[l??""],d=o!==void 0?o:a?.value;return d===void 0?e(i,{}):e(f,{children:c(g,{children:[a?.description?e(y,{children:e(b,{description:a.description})}):null,e(v,{payload:d,mediaType:p})]})})},g=n.div`
|
|
2
2
|
padding: calc(var(--spacing-unit) * 4);
|
|
3
3
|
border-radius: var(--panel-border-radius);
|
|
4
4
|
border: var(--panel-samples-border);
|
|
5
5
|
background-color: var(--panel-samples-bg-color);
|
|
6
6
|
width: 100%;
|
|
7
|
-
|
|
7
|
+
`,y=n.div`
|
|
8
|
+
border-bottom: 1px solid var(--border-color-primary);
|
|
9
|
+
margin-bottom: var(--spacing-sm);
|
|
10
|
+
`;export{_ as RedocExample};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as p}from"react/jsx-runtime";import{memo as x,useMemo as h,useEffect as L}from"react";import{createStore as A,Provider as E,useStore as j,getDefaultStore as N}from"jotai";import{LayoutVariant as _}from"@redocly/config";import{createStoreContext as k,toRecord as M}from"../adapters/helpers.js";import{populateOpenApiStore as T}from"../adapters/openapi/store.js";import{DEFAULT_MAX_DISPLAYED_ENUM_VALUES as F}from"../options/constants.js";import{normalizeOptions as U}from"../options/normalizeOptions.js";import{globalStoreAtom as d}from"../jotai/store.js";import{appStore as O,environmentAtom as V,layoutAtom as v,userClaimsAtom as y}from"../jotai/app.js";import{buildServerEnvValues as w}from"../services/code-samples/
|
|
1
|
+
import{jsx as p}from"react/jsx-runtime";import{memo as x,useMemo as h,useEffect as L}from"react";import{createStore as A,Provider as E,useStore as j,getDefaultStore as N}from"jotai";import{LayoutVariant as _}from"@redocly/config";import{createStoreContext as k,toRecord as M}from"../adapters/helpers.js";import{populateOpenApiStore as T}from"../adapters/openapi/store.js";import{DEFAULT_MAX_DISPLAYED_ENUM_VALUES as F}from"../options/constants.js";import{normalizeOptions as U}from"../options/normalizeOptions.js";import{globalStoreAtom as d}from"../jotai/store.js";import{appStore as O,environmentAtom as V,layoutAtom as v,userClaimsAtom as y}from"../jotai/app.js";import{buildServerEnvValues as w}from"../services/code-samples/server-env.js";const z={ignoreNamedSchemas:["java.io.ObjectStreamField"],maxDisplayedEnumValues:F};function P(e,n){const t={...z,...e,basePath:n};return U(t)}const C=new WeakSet;function g(e){C.has(e)||(C.add(e),e.sub(O,()=>{}))}function b(e,n){if(!n?.servers?.length)return;g(e);const t=w(n.servers),i=e.get(O).environments??{},m={};for(const[s,a]of Object.entries(t)){const c=i[s],r=c?Object.fromEntries(Object.entries(a).filter(([o])=>!(o in c))):a;Object.keys(r).length>0&&(m[s]=r)}Object.keys(m).length!==0&&e.set(V,{environments:m})}function Z(e){const n=x(t=>{const{items:i,options:m,store:s,layout:a,basePath:c=""}=t,r=j(),o=r!==N()?r:void 0,u=h(()=>P(m,c),[m,c]),S=a??u.layout;L(()=>{if(o){const f=o.get(d);b(o,s??f.store),o.set(v,S),o.set(y,u.userClaims??{}),o.set(d,{items:i,store:s??f.store,options:u,replayDefinition:f.replayDefinition})}},[S,u,o,i,s]);const D=h(()=>{if(o)return null;const f={items:i,store:s,options:u,replayDefinition:null},l=A();return l.set(d,f),g(l),l.set(v,S),u.userClaims&&l.set(y,u.userClaims),b(l,s),l},[o,i,s,u,S]);return o||!D?p(e,{...t}):p(E,{store:D,children:p(e,{...t})})});return n.displayName=`WithStoreProvider(${I(e)})`,n}function I(e){return e.displayName||e.name||"Component"}function q(e,n){const t=k(M(e));return T(e,t,n),{schemaStore:t.schemaStore,exampleStore:t.exampleStore,securitySchemeStore:t.securitySchemeStore,mcp:t.document["x-mcp"],schemaCatalogLink:t.document["x-schema-catalog-link"]}}const ee=x(function({children:n,definition:t,apiStore:i,options:m}){const s=h(()=>{const a=P({specType:"openapi",...m},m?.basePath??"");let c;if(i)c=i;else if(t)c=q(t,a);else throw new Error("StoreProvider requires either apiStore or definition");const r=A();return r.set(d,{items:[],store:c,options:a,replayDefinition:null}),g(r),r.set(v,_.STACKED),a.userClaims&&r.set(y,a.userClaims),b(r,c),r},[i,t,m]);return p(E,{store:s,children:n})});export{ee as StoreProvider,Z as withStoreProvider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(){}export{e as useInitialTelemetry};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useEffect as
|
|
1
|
+
import{useEffect as c}from"react";import{useAtomValue as s,useSetAtom as l}from"jotai";import{useHref as m,useLocation as a}from"react-router";import{IS_BROWSER as f,useActiveSectionId as u}from"@redocly/theme/core/openapi";import{activeScrollSectionAtom as p}from"../jotai/app.js";import{routingBasePathAtom as S}from"../jotai/store.js";import{encodeBackSlashes as d}from"../utils/string.js";import{normalizePath as h}from"../utils/url.js";import{useUserScrollIntent as w}from"./useUserScrollIntent.js";import{URL_REPLACE_EVENT as E}from"./useRouterHashBridge.js";function A(t){window.history.replaceState({},"",t),window.dispatchEvent(new Event(E))}function k(){const t=a(),e=l(p),r=s(S),o=u(t,!1,!1),n=m(h(d(o||"/"))),i=w(t.key);c(()=>{e(null)},[t.pathname,e]),c(()=>{!f||!o||(e(o),i.current&&(o===r||!window.location.pathname.includes(o)&&!window.location.hash.includes(o))&&A(n))},[o,n,r,e,i])}export{k as useScrollSpyUrlSync};
|
package/lib/index.d.ts
CHANGED
|
@@ -33,6 +33,9 @@ export { RedoclyApiDocs } from './RedoclyApiDocs.js';
|
|
|
33
33
|
export type { RedoclyApiDocsProps } from './RedoclyApiDocs.js';
|
|
34
34
|
export { RedoclyApiDocsStandalone } from './RedoclyApiDocsStandalone.js';
|
|
35
35
|
export type { RedoclyApiDocsStandaloneProps } from './RedoclyApiDocsStandalone.js';
|
|
36
|
+
export type { RedocStandaloneProps } from './RedocStandalone.js';
|
|
37
|
+
export { ApiDocsSearchIndexer } from './services/search/indexer.js';
|
|
38
|
+
export type { SearchDocument, SearchItemData } from './services/search/types.js';
|
|
36
39
|
export { RedocTelemetry } from './telemetry/RedocTelemetry.js';
|
|
37
40
|
export type { RedocTelemetryConfig, SpecType } from './telemetry/RedocTelemetry.js';
|
|
38
41
|
export { Replay, EmbeddedReplay } from './components/Replay/index.js';
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from"./types/common.js";import{buildItems as t,buildNavItems as p}from"./adapters/build.js";import{buildGraphqlStoreFromSdl as m}from"./adapters/graphql/buildStoreFromSdl.js";import{simplifyAstStructure as d}from"./adapters/utils/simplifyAstStructure.js";import{extractFullText as f}from"./adapters/utils/markdoc.js";import{normalizeOptions as l}from"./options/normalizeOptions.js";import{excludeMockServers as c}from"./adapters/openapi/utils/merge-mock-server.js";import{appendUndeclaredConfigureParameters as S}from"./services/code-samples/replay/merge-configure-into-source.js";import{isGraphqlDocsSidebarHidden as y}from"./options/helpers.js";import{findFirstBinding as
|
|
1
|
+
export*from"./types/common.js";import{buildItems as t,buildNavItems as p}from"./adapters/build.js";import{buildGraphqlStoreFromSdl as m}from"./adapters/graphql/buildStoreFromSdl.js";import{simplifyAstStructure as d}from"./adapters/utils/simplifyAstStructure.js";import{extractFullText as f}from"./adapters/utils/markdoc.js";import{normalizeOptions as l}from"./options/normalizeOptions.js";import{excludeMockServers as c}from"./adapters/openapi/utils/merge-mock-server.js";import{appendUndeclaredConfigureParameters as S}from"./services/code-samples/replay/merge-configure-into-source.js";import{isGraphqlDocsSidebarHidden as y}from"./options/helpers.js";import{findFirstBinding as D}from"./adapters/asyncapi/build/utils.js";import{resolveRequestValues as M,applyRequestValuesToOperationInfo as P}from"./adapters/openapi/configure/index.js";import{updateObjectProperties as A,isDirectRequestValues as b,getEffectiveRequestValues as h,createSecurityUpdates as k,mergeSecurityIntoScheme as E,applyServerVariableDefaults as O}from"./adapters/openapi/configure/merge-utils.js";import{MarkdownAdapterProvider as q,useMarkdownAdapter as V}from"./contexts/markdownAdapter.js";import{markdocParser as C}from"./components/markdoc/markdocParser.js";import{createMarkdocAdapter as N}from"./components/markdoc/markdocAdapter.js";import{parseMarkdown as B}from"./adapters/utils/parseMarkdown.js";import{isPlainText as H}from"./adapters/utils/isPlainText.js";import{buildMarkdocOptions as J}from"./components/markdoc/buildMarkdocOptions.js";import{apiDocsMarkdocTags as Y,apiDocsMarkdocNodes as j}from"./components/markdoc/defaultMarkdocConfig.js";import{apiDocsMarkdocComponents as K}from"./components/markdoc/apiDocsMarkdocComponents.js";import{RedoclyApiDocs as W}from"./RedoclyApiDocs.js";import{RedoclyApiDocsStandalone as Z}from"./RedoclyApiDocsStandalone.js";import{ApiDocsSearchIndexer as ee}from"./services/search/indexer.js";import{RedocTelemetry as oe}from"./telemetry/RedocTelemetry.js";import{Replay as pe,EmbeddedReplay as ae}from"./components/Replay/index.js";import{REPLAY_TRY_IT_LOADING_STATE as ie}from"./services/code-samples/index.js";import{findExampleIdByKey as se}from"./services/code-samples/example-key.js";import{RedocSchema as xe,RedocExample as le,RedocResponseSamples as ne,RedocCodeSample as ce}from"./components/pluggable/index.js";import{StoreProvider as Se}from"./hoc/withStoreProvider.js";import{GraphQLTypeViewByName as ye}from"./components/graphql/GraphQLTypeView.js";import{mcpTagSchemas as De}from"./components/markdoc/tags/mcp-tag-schemas.js";import{schemaDefinitionTag as Me}from"./components/markdoc/tags/schema-definition-tag.js";import{withReplayPrefetch as ve,useOpenApiDefinition as Ae}from"./hoc/withReplayPrefetch.js";import{mergeEnvData as he}from"./utils/environments.js";import{buildReplayPredefinedEnvValues as Ee}from"./services/code-samples/replay/replay-predefined-env.js";import{encodeJsonPointerSegment as Ie}from"./utils/refPointer.js";import{JsonPointer as Ve}from"./adapters/openapi/utils/JsonPointer.js";import{langFromMime as Ce,encodeExampleForMediaType as Fe}from"./utils/media-type.js";import{isOperationName as _e,HTTP_METHODS as Be}from"./utils/http-methods.js";import{convertSampleToString as He}from"./services/code-samples/convertSampleToString.js";import{resolveOperationSampleContext as Je,buildCodeSamples as Ue,getRequestBodySamples as Ye,getResponseSamples as je}from"./services/operation-samples/index.js";export{ee as ApiDocsSearchIndexer,ae as EmbeddedReplay,ye as GraphQLTypeViewByName,Be as HTTP_METHODS,Ve as JsonPointer,q as MarkdownAdapterProvider,ie as REPLAY_TRY_IT_LOADING_STATE,ce as RedocCodeSample,le as RedocExample,ne as RedocResponseSamples,xe as RedocSchema,oe as RedocTelemetry,W as RedoclyApiDocs,Z as RedoclyApiDocsStandalone,pe as Replay,Se as StoreProvider,K as apiDocsMarkdocComponents,j as apiDocsMarkdocNodes,Y as apiDocsMarkdocTags,S as appendUndeclaredConfigureParameters,P as applyRequestValuesToOperationInfo,O as applyServerVariableDefaults,Ue as buildCodeSamples,m as buildGraphqlStoreFromSdl,t as buildItems,J as buildMarkdocOptions,p as buildNavItems,Ee as buildReplayPredefinedEnvValues,He as convertSampleToString,N as createMarkdocAdapter,k as createSecurityUpdates,Fe as encodeExampleForMediaType,Ie as encodeJsonPointerSegment,c as excludeMockServers,f as extractFullText,se as findExampleIdByKey,D as findFirstBinding,h as getEffectiveRequestValues,Ye as getRequestBodySamples,je as getResponseSamples,b as isDirectRequestValues,y as isGraphqlDocsSidebarHidden,_e as isOperationName,H as isPlainText,Ce as langFromMime,C as markdocParser,De as mcpTagSchemas,he as mergeEnvData,E as mergeSecurityIntoScheme,l as normalizeOptions,B as parseMarkdown,Je as resolveOperationSampleContext,M as resolveRequestValues,Me as schemaDefinitionTag,d as simplifyAstStructure,A as updateObjectProperties,V as useMarkdownAdapter,Ae as useOpenApiDefinition,ve as withReplayPrefetch};
|
package/lib/jotai/app.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export type AppSessionStore = {
|
|
|
15
15
|
export type AppStore = {
|
|
16
16
|
activeMimeName: string;
|
|
17
17
|
layout: LayoutVariant;
|
|
18
|
+
colorMode: string;
|
|
18
19
|
language: string;
|
|
19
20
|
environment: string;
|
|
20
21
|
environments: Record<string, Record<string, string>>;
|
|
@@ -47,6 +48,11 @@ export declare const allowedEnvironmentsAtom: import("jotai").WritableAtom<strin
|
|
|
47
48
|
* appSessionStore saved to session storage
|
|
48
49
|
*/
|
|
49
50
|
export declare const appSessionStore: import("jotai").WritableAtom<AppSessionStore, [typeof import("jotai/utils").RESET | AppSessionStore | ((prev: AppSessionStore) => typeof import("jotai/utils").RESET | AppSessionStore)], void>;
|
|
51
|
+
/** Mobile sidebar drawer — open state is per-view, never persisted. */
|
|
52
|
+
export declare const isSidebarOpenedAtom: import("jotai").PrimitiveAtom<boolean> & {
|
|
53
|
+
init: boolean;
|
|
54
|
+
};
|
|
55
|
+
export declare const colorModeAtom: import("jotai").WritableAtom<string, string[], void>;
|
|
50
56
|
export declare const collapsedSidebarAtom: import("jotai").WritableAtom<boolean, boolean[], void>;
|
|
51
57
|
export declare const languageAtom: import("jotai").WritableAtom<LanguageAtom, [string], void>;
|
|
52
58
|
export declare const selectedSecuritySchemeIdxAtom: import("jotai").PrimitiveAtom<number> & {
|
package/lib/jotai/app.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{atom as r}from"jotai";import{atomWithStorage as
|
|
1
|
+
import{atom as r}from"jotai";import{atomWithStorage as g,createJSONStorage as y}from"jotai/utils";import{LayoutVariant as O}from"@redocly/config";import{DEFAULT_COLOR_MODES as c}from"@redocly/theme/core/constants";import{getCookie as E,removeCookie as L,setCookie as k}from"../utils/cookies.js";import{mergeEnvData as p,IS_BROWSER as d}from"../utils/environments.js";import{keepReadingSectionAnchored as C}from"../utils/scroll-anchoring.js";import{safeJsonParse as S}from"../utils/string.js";import{fromSessionStorage as M,toSessionStorage as h}from"../utils/session-storage.js";import{DEFAULT_LAYOUT as N}from"../options/constants.js";import{globalOptionsAtom as T}from"./store.js";const f={activeMimeName:"",layout:N,colorMode:"",language:"",environment:"",environments:{},userClaims:{},allowedEnvironments:null},b={getItem:e=>{const o=S(E(e,globalThis.redoclyCookieStorage?.getStore?.())),t=S(M(e));return{...f,...t,...o}},setItem:(e,o)=>{const{environments:t,...n}=o,a={environments:t};k(e,JSON.stringify(n)),h(e,JSON.stringify(a))},removeItem:e=>{L(e),sessionStorage.removeItem(e)}},s=g("redoc.appStore",f,b),H=r(e=>{const o=e(s);return p(o.environments,{})}),W=r(e=>{const o=e(s),t=p(o.environments,{}),n=o.environment,a=Object.keys(t).find(l=>t[l]?.server===n),i=t[n]?n:a??Object.keys(t)[0];let m=t[i]||{};return!m.server&&a&&(m={...t[a],...m}),[m,i||""]},(e,o,{environment:t,environments:n})=>{const a=e(s);o(s,{...a,environment:t||a.environment,environments:p(a.environments||{},n)})}),B=r(e=>e(s).environment),u=r(e=>e(s).activeMimeName,(e,o,t)=>{const n=e(s);o(s,{...n,activeMimeName:t})}),A=r(void 0),P=r(e=>e(A)??(e(u)||void 0),(e,o,t)=>{o(A,void 0),(t??"")!==e(u)&&C(),o(u,t??"")}),Y=r(e=>e(s).layout,(e,o,t=O.STACKED)=>{const n=e(s);o(s,{...n,layout:t})}),z=r(e=>e(s).userClaims,(e,o,t)=>{const n=e(s);o(s,{...n,userClaims:t})}),Q=r(e=>e(s).allowedEnvironments,(e,o,t)=>{const n=e(s);o(s,{...n,allowedEnvironments:t})}),v=g("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},d?y(()=>sessionStorage):void 0),X=r(!1),D=[c.LIGHT,c.DARK];function I(e){const o=document.documentElement;D.forEach(t=>o.classList.remove(t)),o.classList.add(e,"notransition"),window.requestAnimationFrame(()=>{o.classList.remove("notransition")})}const Z=r(e=>{const o=e(s).colorMode||(d&&window.matchMedia?.("(prefers-color-scheme: dark)").matches?c.DARK:c.LIGHT);return d&&I(o),o},(e,o,t)=>{const n=e(s);o(s,{...n,colorMode:t})}),$=r(e=>e(v).collapsedSidebar,(e,o,t)=>{const n=e(v);o(v,{...n,collapsedSidebar:t})}),ee=r(e=>{const o=e(T),{codeSamples:t}=o;if(!t?.languages)return{languages:[],activeLanguage:e(s).language||""};const n=t.languages.map(({key:i,label:m,lang:l},x)=>({key:i,lang:l,title:m,order:x})),a=e(s).language||n[0]?.key;return{languages:n,activeLanguage:n.find(({key:i})=>i===a)?.key||n[0]?.key}},(e,o,t)=>{const n=e(s);o(s,{...n,language:t})}),oe=r(0),te=r({}),ne=r(null),se=r([]);export{P as activeMediaTypeAtom,u as activeMimeNameAtom,ne as activeScrollSectionAtom,Q as allowedEnvironmentsAtom,v as appSessionStore,s as appStore,$ as collapsedSidebarAtom,Z as colorModeAtom,W as environmentAtom,H as environmentsAtom,X as isSidebarOpenedAtom,ee as languageAtom,Y as layoutAtom,A as mediaTypeOverrideAtom,te as requestValuesAtom,B as savedEnvironmentNameAtom,oe as selectedSecuritySchemeIdxAtom,z as userClaimsAtom,se as visitedChannelsAtom};
|
package/lib/jotai/examples.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{atom as m}from"jotai";import{atomFamily as f}from"jotai-family";import*as
|
|
1
|
+
import{atom as m}from"jotai";import{atomFamily as f}from"jotai-family";import*as E from"openapi-sampler";import{schemaKind as g}from"../types/common.js";import{convertSampleToString as y}from"../services/code-samples/index.js";import{applyActiveVariantsToStore as h}from"../services/code-samples/discriminator.js";import{isSequentialMediaType as M}from"../utils/media-type.js";import{storeAtom as j,globalOptionsAtom as x}from"./store.js";import{schemaStoreAtom as l}from"./schema.js";import{activeDiscriminatorSelectAtom as F,activeOneOfSelectAtom as N}from"./itemStore.js";const G=m(t=>t(j).exampleStore??{});function A(t){const e={};for(const[n,r]of Object.entries(t)){const o=n.startsWith("components/schemas/")?n.replace("components/schemas/",""):n;e[o]=r}return{openapi:"3.0.0",info:{title:"",version:""},paths:{},components:{schemas:e}}}function R(t,e){return!!t&&Object.keys(t).length>0||!!e&&Object.keys(e).length>0}const u=m(t=>h(t(l))),O=f(t=>m(e=>{if(!t)return e(u);const n=e(F(t)),r=e(N(t));return R(n,r)?h(e(l),n,r):e(u)})),V=m(t=>A(t(u))),C=f(t=>m(e=>{const n=e(O(t));return n===e(u)?e(V):A(n)})),D="";function Q(t,e,n,r){return t?JSON.stringify({itemId:r??"",schemaId:t,context:e??"",mediaType:n??""}):D}function J(t){if(t)try{const e=JSON.parse(t);if(!e||typeof e.schemaId!="string"||!e.schemaId)return;const n=typeof e.itemId=="string"?e.itemId:"",r=typeof e.context=="string"?e.context:"",o=typeof e.mediaType=="string"?e.mediaType:"";return{itemId:n,schemaId:e.schemaId,context:r==="request"||r==="response"?r:void 0,mediaType:o||void 0}}catch{return}}const U=f(t=>{const e=J(t);return m(n=>{if(!e)return;const{itemId:r,schemaId:o,context:i,mediaType:p}=e,s=n(l)[o];if(!s||s.kind!==g.JSON_SCHEMA)return;const d=n(C(r)),v=n(O(r))[o]??s.data,{onlyRequiredInSamples:I,generatedSamplesMaxDepth:T}=n(x),{unstable_skipSamples:k}=n(x);if(k)return;const a=p?.toLowerCase(),q=a?a.includes("xml"):!1;try{const S={context:i,skipNonRequired:i==="request"&&I,maxSampleDepth:T,isXml:q},c=b(v,d,S);return c==null?c:a&&M(a)?K(s.data,c,d,S,a):c}catch{return}})});function K(t,e,n,r,o){const i=_(t);if(i.length>0){const p=i.map(s=>b(s,n,r)).filter(s=>s!=null);if(p.length>0)return y(p,o,t,!1)}return y(e,o,t,!0)}function _(t){const e=t.oneOf;return Array.isArray(e)?e.filter(n=>typeof n=="object"&&n!==null):[]}function b(t,e,{context:n,skipNonRequired:r,maxSampleDepth:o,isXml:i}){return E.sample(t,{skipReadOnly:n==="request",skipWriteOnly:n==="response",quiet:!0,skipNonRequired:r,maxSampleDepth:o,...i&&{format:"xml"}},e)}export{Q as buildExampleAtomKey,G as exampleStoreAtom,U as generatedExampleAtom,C as itemSpecForSamplerAtom};
|
package/lib/jotai/itemStore.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export type ItemStore = {
|
|
|
3
3
|
activeDiscriminator: Record<string, number>;
|
|
4
4
|
activeOneOf: Record<string, number>;
|
|
5
5
|
activeResponseCode: string;
|
|
6
|
+
activeExampleKey: string;
|
|
6
7
|
activeMessageKey: string;
|
|
7
8
|
selectedCallback: string;
|
|
8
9
|
expandableSections: Record<string, boolean | undefined>;
|
package/lib/jotai/itemStore.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{atom as p}from"jotai";import{selectAtom as
|
|
1
|
+
import{atom as p}from"jotai";import{selectAtom as s}from"jotai/utils";import{atomFamily as c}from"jotai-family";import{keepReadingSectionAnchored as S}from"../utils/scroll-anchoring.js";const d=Object.freeze({activeDiscriminator:Object.freeze({}),activeOneOf:Object.freeze({}),activeResponseCode:"",activeExampleKey:"",activeMessageKey:"",selectedCallback:"",expandableSections:Object.freeze({}),collapsibles:Object.freeze({})});function u(){return d}const l=p({}),O=["activeResponseCode","activeMessageKey","activeExampleKey","activeOneOf","activeDiscriminator"],f=c(e=>p(t=>t(l)[e]??u(),(t,n,o)=>{const i=t(l),r=i[e]??u(),a=typeof o=="function"?o(r):o;O.some(m=>m in a&&a[m]!==r[m])&&S(),n(l,{...i,[e]:{...r,...a}})})),A=c(e=>s(f(e.itemId),t=>t[e.key]),(e,t)=>e.itemId===t.itemId&&e.key===t.key);function x(e){return A(e)}function g(e,t){const n=e?.length?e.join("/"):"";return n?`${n}/${t}`:t}function j(e){return x({itemId:e,key:"activeDiscriminator"})}function R(e){return x({itemId:e,key:"activeOneOf"})}const b=c(e=>s(f(e.itemId),t=>t.expandableSections[e.key]),(e,t)=>e.itemId===t.itemId&&e.key===t.key);function D(e,t){return b({itemId:e,key:t})}const y="#";function F(e,t){return`${e}${y}${t}`}function T(e){const t=e.indexOf(y);return t===-1?e:e.slice(0,t)}const v=c(e=>s(f(e),t=>Object.keys(t.expandableSections),(t,n)=>t.length===n.length&&t.every((o,i)=>o===n[i])));function _(e){return v(e)}export{j as activeDiscriminatorSelectAtom,R as activeOneOfSelectAtom,F as buildCollapsibleEntryKey,g as buildVariantStateKey,T as collapsibleEntrySection,D as expandableSectionAtom,_ as expandableSectionKeysAtom,f as itemStoreAtom,x as itemStoreFieldAtom};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RawApiDocsOptions } from '../types/options.js';
|
|
2
|
+
/** Option overrides applied on top of host options in `normalizeOptions`. The community edition forces enterprise options off here. */
|
|
3
|
+
export declare const EDITION_OPTION_OVERRIDES: Partial<RawApiDocsOptions>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const I={};export{I as EDITION_OPTION_OVERRIDES};
|
package/lib/options/helpers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LayoutVariant, type RedocConfig } from '@redocly/config';
|
|
2
2
|
import type { ApiSpecType } from '../types/common.js';
|
|
3
3
|
import type { RawApiDocsOptions } from '../types/options.js';
|
|
4
|
-
import type { CodeSamplesConfig } from '../types/
|
|
4
|
+
import type { CodeSamplesConfig } from '../types/code-samples-config.js';
|
|
5
5
|
export declare function argValueToBoolean(val?: string | boolean, defaultValue?: boolean): boolean;
|
|
6
6
|
export declare function argValueToNumber(value: number | string | undefined, defaultValue?: number): number;
|
|
7
7
|
export declare function argValueToInt(value: number | string | undefined, defaultValue?: number): number;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { ApiDocsOptions, RawApiDocsOptions } from '../types/options.js';
|
|
2
|
-
export declare function normalizeOptions(
|
|
2
|
+
export declare function normalizeOptions(rawOptions: RawApiDocsOptions): ApiDocsOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{addTrailingSlash as
|
|
1
|
+
import{addTrailingSlash as r}from"@redocly/theme/core/openapi";import{WindowReferenceOptions as n}from"../constants/openapi.js";import{argValueToBoolean as a,argValueToExpandLevel as o,argValueToInt as s,argValueToNumber as t,normalizeCodeSamples as d,normalizeDownloadUrls as m,normalizeIgnoreNamedSchemas as p,normalizeLayout as S,normalizePath as E,normalizeScrollYOffset as h,normalizeShowExtensions as c}from"./helpers.js";import{ASYNCAPI_DEFAULT_JSON_SAMPLES_DEPTH as _,DEFAULT_FEEDBACK as u,DEFAULT_MAX_DISPLAYED_ENUM_VALUES as L,GENERATED_SAMPLES_MAX_DEPTH_DEFAULT as f,GRAPHQL_DEFAULT_FIELD_EXPAND_LEVEL as P,GRAPHQL_DEFAULT_JSON_SAMPLES_DEPTH as A,GRAPHQL_DEFAULT_SAMPLES_MAX_INLINE_ARGS as D,JSON_SAMPLES_EXPAND_LEVEL_DEFAULT as i,MOCK_SERVER_DEFAULT_DESCRIPTION as T,MOCK_SERVER_DEFAULT_POSITION as I,DEFAULT_ROUTING_BASE_PATH as R}from"./constants.js";import{apiSpecType as x}from"../types/common.js";import{EDITION_OPTION_OVERRIDES as N}from"./editionOverrides.js";function b(l){const e={...l,...N};return{specType:e.specType,licenseKey:e.licenseKey,metadata:e.metadata??{},downloadUrls:m(e.downloadUrls??[],e.specType),userClaims:e.userClaims,dynamicRequestValues:e.dynamicRequestValues,schemaDefinitionsTagName:e.schemaDefinitionsTagName,corsProxyUrl:e.corsProxyUrl?r(e.corsProxyUrl):void 0,hideSidebar:a(e.hideSidebar,!1),hideSearch:a(e.hideSearch,!1),jsonSamplesExpandLevel:o(e.jsonSamplesExpandLevel,i)??i,generatedSamplesMaxDepth:s(e.generatedSamplesMaxDepth,f),hideDownloadButtons:a(e.hideDownloadButtons,!1),hideInfoMetadata:a(e.hideInfoMetadata,!1),hideLoading:a(e.hideLoading,!1),hideSchemaTitles:a(e.hideSchemaTitles,!1),hideSchemaPattern:a(e.hideSchemaPattern,!1),maxDisplayedEnumValues:t(e.maxDisplayedEnumValues,L),mockServer:e.mockServer?.url?{url:e.mockServer.url,position:e.mockServer.position||I,description:e.mockServer.description||T}:void 0,hideReplay:a(e.hideReplay,!1),oAuth2RedirectURI:e.oAuth2RedirectURI,onlyRequiredInSamples:a(e.onlyRequiredInSamples,!1),[n.ON_DEEP_LINK_CLICK]:e.onDeepLinkClick??null,basePath:e.basePath?E(e.basePath):R,schemasExpansionLevel:o(e.schemasExpansionLevel),feedback:e.feedback??u,sortRequiredPropsFirst:a(e.sortRequiredPropsFirst??e.requiredPropsFirst,!1),scrollYOffset:h(e.scrollYOffset),showExtensions:c(e.showExtensions),sanitize:a(e.sanitize,!1),skipBundle:a(e.skipBundle,!1),ignoreNamedSchemas:new Set(p(e.ignoreNamedSchemas)),markdocOptions:e.markdocOptions,markdownParser:e.markdownParser,codeSamples:d(e.codeSamples),layout:S(e.layout),events:e.events??{},unstable_hooks:e.unstable_hooks??{},unstable_skipSamples:a(e.unstable_skipSamples,!1),unstable_externalCodeSamples:e.unstable_externalCodeSamples??[],hidePropertiesPrefix:a(e?.hidePropertiesPrefix,!1),showSchemaCatalogLinks:a(e?.showSchemaCatalogLinks,!1),baseUrlPath:e.baseUrlPath,jsonSamplesDepth:s(e.jsonSamplesDepth,e.specType===x.ASYNCAPI?_:A),samplesMaxInlineArgs:s(e.samplesMaxInlineArgs,D),fieldExpandLevel:s(e.fieldExpandLevel,P),menu:e.menu,sidebar:e.sidebar,showBuiltInScalars:e.showBuiltInScalars,showBuiltInDirectives:e.showBuiltInDirectives,info:e.info,markdown:e.markdown,apiLogo:e.apiLogo,protocol:e.protocol}}export{b as normalizeOptions};
|
package/lib/pages/ItemPage.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as r,jsxs as
|
|
1
|
+
import{jsx as r,jsxs as d}from"react/jsx-runtime";import{Fragment as v,memo as u}from"react";import{styled as p}from"styled-components";import{useAtomValue as s}from"jotai";import{ComponentMapper as k}from"../components/Mapper.js";import{SchemaCatalogLink as y}from"../components/SchemaCatalogLink.js";import{RenderHook as c}from"../components/RenderHook.js";import{ContentWrapper as l}from"../components/common/ContentWrapper.js";import{globalOptionsAtom as I}from"../jotai/store.js";import{routingBasePathAtom as x}from"../jotai/store.js";import{compose as A}from"../utils/compose.js";import{toElementId as O}from"../utils/url.js";import{withItemId as C}from"../hoc/withItemId.js";import{SECTION_ATTR as T}from"../constants/openapi.js";function j({content:o,itemPath:e,sectionId:i}){const{children:f}=o||{},a=o?.meta?.pointer,{unstable_hooks:n}=s(I),g=s(x),b=i?{[T]:i}:{},h=e?O(e,g):void 0;return d(P,{id:h,...b,"data-item-kind":o.itemVariant,"data-has-divider":o.showDivider||void 0,children:[r(c,{Hook:n?.BeforeOperation,props:{operation:o}}),f?.map((t,m)=>d(v,{children:[r(k,{type:t.nodeType,node:t,itemPath:e}),m===0&&a&&r(l,{children:r(y,{schemaRef:"#"+a})})]},`${e}-${t.nodeType}-${m}`)),r(c,{Hook:n?.AfterOperation,props:{operation:o}}),o.showDivider&&r(l,{children:r(w,{})})]})}const q=A(C,u)(j),w=p.div`
|
|
2
2
|
border-bottom: 1px solid var(--border-color-secondary);
|
|
3
3
|
`,P=p.div`
|
|
4
4
|
padding-top: calc(var(--spacing-unit) * 16);
|
|
@@ -10,9 +10,11 @@ import{jsx as r,jsxs as m}from"react/jsx-runtime";import{Fragment as v,memo as u
|
|
|
10
10
|
padding-top: calc(var(--spacing-unit) * 16);
|
|
11
11
|
padding-bottom: 0;
|
|
12
12
|
|
|
13
|
+
// @community-ignore
|
|
13
14
|
[data-component-name='FeedbackItem'] {
|
|
14
15
|
margin: 0;
|
|
15
16
|
}
|
|
17
|
+
// @community-ignore-end
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
&[data-item-kind='channel'],
|
|
@@ -23,4 +25,4 @@ import{jsx as r,jsxs as m}from"react/jsx-runtime";import{Fragment as v,memo as u
|
|
|
23
25
|
&[data-item-kind='channelOperation']:not([data-has-divider]) {
|
|
24
26
|
border-bottom: 1px solid var(--border-color-secondary);
|
|
25
27
|
}
|
|
26
|
-
`;export{
|
|
28
|
+
`;export{q as ItemPage};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CodeSampleRequestValues } from './source.js';
|
|
2
|
+
/**
|
|
3
|
+
* Substitutes `{{name}}` environment-variable placeholders in a sample using
|
|
4
|
+
* the base env variables plus the active server's scoped overrides.
|
|
5
|
+
* `requestValues.serverEnvVariables` is keyed by the raw (templated) spec
|
|
6
|
+
* server URL.
|
|
7
|
+
*/
|
|
8
|
+
export declare function applyEnvVariables(sample: string, requestValues: CodeSampleRequestValues | undefined, activeServerSpecUrl: string | undefined): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function o(a,n,r){const l={...n?.envVariables,...r&&n?.serverEnvVariables?.[r]};let e=a;for(const[s,t]of Object.entries(l))e=e.replaceAll(`{{${s}}}`,t);return e}export{o as applyEnvVariables};
|