@stoplight/elements-core 8.2.0 → 8.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__fixtures__/articles/schema-with-refs.d.ts +1 -1
- package/components/Docs/Article/Article.stories.d.ts +4 -0
- package/components/Docs/Docs.d.ts +9 -0
- package/components/Docs/HttpOperation/Callbacks.d.ts +2 -0
- package/components/Docs/HttpOperation/HttpOperation.stories.d.ts +2 -3
- package/components/Docs/HttpService/HttpService.stories.d.ts +2 -0
- package/components/Docs/Model/Model.stories.d.ts +2 -0
- package/components/Docs/NodeVendorExtensions.d.ts +7 -0
- package/components/Docs/story-helper.d.ts +2 -0
- package/components/Docs/story-renderer-helper.d.ts +3 -0
- package/components/TableOfContents/constants.d.ts +3 -0
- package/constants.d.ts +3 -0
- package/context/Options.d.ts +2 -2
- package/index.d.ts +2 -1
- package/index.esm.js +50 -14
- package/index.js +51 -13
- package/index.mjs +50 -14
- package/package.json +5 -5
- package/__fixtures__/operations/x-code-samples.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const schemaWithRefs = "---\ntitle: Schema with refs\n---\n\n# Schema with refs (Swr)\n\n### Schema\n\nThis is bundled schema with refs\n\n```json jsonSchema\n{\n \"title\": \"DerefTest\",\n \"type\": \"object\",\n \"description\": \"Dereferencing test object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"inner\": {\n \"description\": \"Inner object\",\n \"title\": \"Inner\",\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"referencedObject\": {\n \"$ref\": \"#/properties/referencedObject\",\n \"description\": \"Inner referenced object\"\n }\n },\n \"required\": [\n \"id\",\n \"bookingRate\"\n ]\n },\n \"referencedObject\": {\n \"description\": \"Referenced object\",\n \"title\": \"ReferencedObject\",\n \"type\": \"object\",\n \"required\": [\n \"property1\",\n \"property2\",\n \"property3\"\n ],\n \"properties\": {\n \"property1\": {\n \"type\": \"integer\",\n \"description\": \"Property 1\"\n },\n \"property2\": {\n \"type\": \"string\",\n \"description\": \"Property 2\"\n },\n \"property3\": {\n \"type\": \"boolean\",\n \"description\": \"Property 3\"\n }\n }\n }\n },\n \"required\": [\n \"id\",\n \"inner\",\n \"referencedObject\"\n ]\n}\n```";
|
|
1
|
+
export declare const schemaWithRefs = "---\ntitle: Schema with refs\n---\n\n# Schema with refs (Swr)\n\n### Schema\n\nThis is bundled schema with refs\n\n```json jsonSchema\n{\n \"title\": \"DerefTest\",\n \"type\": \"object\",\n \"description\": \"Dereferencing test object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"inner\": {\n \"description\": \"Inner object\",\n \"title\": \"Inner\",\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"referencedObject\": {\n \"$ref\": \"#/properties/referencedObject\",\n \"description\": \"Inner referenced object\"\n }\n },\n \"required\": [\n \"id\",\n \"bookingRate\"\n ]\n },\n \"referencedObject\": {\n \"description\": \"Referenced object\",\n \"title\": \"ReferencedObject\",\n \"type\": \"object\",\n \"required\": [\n \"property1\",\n \"property2\",\n \"property3\"\n ],\n \"properties\": {\n \"property1\": {\n \"type\": \"integer\",\n \"description\": \"Property 1\"\n },\n \"property2\": {\n \"type\": \"string\",\n \"description\": \"Property 2\"\n },\n \"property3\": {\n \"type\": \"boolean\",\n \"description\": \"Property 3\"\n },\n \"property4\": {\n \"type\": \"string\",\n \"enum\": [\n \"BUSINESS\",\n \"PERSONAL\",\n \"OTHER\"\n ],\n \"x-enum-descriptions\": {\n \"BUSINESS\": \"Enum description for BUSINESS\",\n \"PERSONAL\": \"Enum description for PERSONAL\",\n \"OTHER\": \"Enum description for OTHER\"\n }\n }\n }\n }\n },\n \"required\": [\n \"id\",\n \"inner\",\n \"referencedObject\"\n ]\n}\n```";
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
declare const meta: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
2
2
|
data: any;
|
|
3
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
3
4
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
4
5
|
export default meta;
|
|
5
6
|
export declare const Basic: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
6
7
|
data: any;
|
|
8
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
7
9
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
8
10
|
export declare const KitchenSink: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
9
11
|
data: any;
|
|
12
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
10
13
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
11
14
|
export declare const MultipleTryIts: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
12
15
|
data: any;
|
|
16
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
13
17
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SchemaNode } from '@stoplight/json-schema-tree';
|
|
1
2
|
import type { NodeHasChangedFn, NodeType } from '@stoplight/types';
|
|
2
3
|
import { Location } from 'history';
|
|
3
4
|
import * as React from 'react';
|
|
@@ -5,6 +6,13 @@ import { ParsedNode } from '../../types';
|
|
|
5
6
|
import { ReferenceResolver } from '../../utils/ref-resolving/ReferenceResolver';
|
|
6
7
|
import { ExportButtonProps } from './HttpService/ExportButton';
|
|
7
8
|
declare type NodeUnsupportedFn = (err: 'dataEmpty' | 'invalidType' | Error) => void;
|
|
9
|
+
export declare type VendorExtensionsData = Record<string, unknown>;
|
|
10
|
+
export declare type ExtensionRowProps = {
|
|
11
|
+
schemaNode: SchemaNode;
|
|
12
|
+
nestingLevel: number;
|
|
13
|
+
vendorExtensions: VendorExtensionsData;
|
|
14
|
+
};
|
|
15
|
+
export declare type ExtensionAddonRenderer = (props: ExtensionRowProps) => React.ReactNode;
|
|
8
16
|
interface BaseDocsProps {
|
|
9
17
|
className?: string;
|
|
10
18
|
uri?: string;
|
|
@@ -27,6 +35,7 @@ interface BaseDocsProps {
|
|
|
27
35
|
};
|
|
28
36
|
nodeHasChanged?: NodeHasChangedFn<React.ReactNode>;
|
|
29
37
|
nodeUnsupported?: NodeUnsupportedFn;
|
|
38
|
+
renderExtensionAddon?: ExtensionAddonRenderer;
|
|
30
39
|
}
|
|
31
40
|
export interface DocsProps extends BaseDocsProps {
|
|
32
41
|
nodeType: NodeType;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IHttpCallbackOperation } from '@stoplight/types';
|
|
2
|
+
import { ExtensionAddonRenderer } from '../Docs';
|
|
2
3
|
export interface CallbacksProps {
|
|
3
4
|
callbacks: IHttpCallbackOperation[];
|
|
4
5
|
isCompact?: boolean;
|
|
@@ -6,6 +7,7 @@ export interface CallbacksProps {
|
|
|
6
7
|
export interface CallbackProps {
|
|
7
8
|
data: IHttpCallbackOperation;
|
|
8
9
|
isCompact?: boolean;
|
|
10
|
+
renderExtensionAddon?: ExtensionAddonRenderer;
|
|
9
11
|
}
|
|
10
12
|
export declare const Callbacks: {
|
|
11
13
|
({ callbacks, isCompact }: CallbacksProps): JSX.Element;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
declare const meta: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
2
2
|
data: any;
|
|
3
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
3
4
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
4
5
|
export default meta;
|
|
5
6
|
export declare const Story: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
6
7
|
data: any;
|
|
7
|
-
|
|
8
|
-
export declare const StoryWithCustomCodeSamples: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
9
|
-
data: any;
|
|
8
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
10
9
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
declare const meta: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
2
2
|
data: any;
|
|
3
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
3
4
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
4
5
|
export default meta;
|
|
5
6
|
export declare const Story: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
6
7
|
data: any;
|
|
8
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
7
9
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
declare const meta: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
2
2
|
data: any;
|
|
3
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
3
4
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
4
5
|
export default meta;
|
|
5
6
|
export declare const Story: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
|
|
6
7
|
data: any;
|
|
8
|
+
renderExtensionAddon?: import("..").ExtensionAddonRenderer | undefined;
|
|
7
9
|
} & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { INode } from '@stoplight/types';
|
|
2
|
+
import type { JSONSchema7 } from 'json-schema';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
export declare type NodeVendorExtensionsProps = {
|
|
5
|
+
data: INode | JSONSchema7;
|
|
6
|
+
};
|
|
7
|
+
export declare const NodeVendorExtensions: React.NamedExoticComponent<NodeVendorExtensionsProps>;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { ErrorBoundaryProps } from '@stoplight/react-error-boundary';
|
|
2
2
|
import type { Meta, StoryFn } from '@storybook/react';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
+
import { ExtensionAddonRenderer } from './Docs';
|
|
4
5
|
declare type DocsProps = {
|
|
5
6
|
data: any;
|
|
7
|
+
renderExtensionAddon?: ExtensionAddonRenderer;
|
|
6
8
|
} & ErrorBoundaryProps;
|
|
7
9
|
declare type storyOptions = DocsProps & {
|
|
8
10
|
layoutOptions?: object;
|
package/constants.d.ts
CHANGED
|
@@ -11,6 +11,9 @@ export declare const HttpMethodColors: {
|
|
|
11
11
|
readonly put: "warning";
|
|
12
12
|
readonly patch: "warning";
|
|
13
13
|
readonly delete: "danger";
|
|
14
|
+
readonly head: "#9061F9";
|
|
15
|
+
readonly options: "#0D5AA7";
|
|
16
|
+
readonly trace: "#0D0B28";
|
|
14
17
|
};
|
|
15
18
|
export declare const HttpCodeColor: {
|
|
16
19
|
readonly 0: "red";
|
package/context/Options.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { DocsProps } from '../components/Docs';
|
|
3
|
-
export declare type ElementsOptionsContextProps = Pick<DocsProps, 'nodeHasChanged'>;
|
|
3
|
+
export declare type ElementsOptionsContextProps = Pick<DocsProps, 'nodeHasChanged' | 'renderExtensionAddon'>;
|
|
4
4
|
export declare const ElementsOptionsContext: React.Context<ElementsOptionsContextProps>;
|
|
5
5
|
export declare const useOptionsCtx: () => ElementsOptionsContextProps;
|
|
6
6
|
export declare type ProviderProps = Partial<ElementsOptionsContextProps> & {
|
|
7
7
|
children: React.ReactNode;
|
|
8
8
|
};
|
|
9
|
-
export declare function ElementsOptionsProvider({ children, nodeHasChanged }: ProviderProps): JSX.Element;
|
|
9
|
+
export declare function ElementsOptionsProvider({ children, nodeHasChanged, renderExtensionAddon }: ProviderProps): JSX.Element;
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Docs, DocsProps, ParsedDocs } from './components/Docs';
|
|
1
|
+
export { Docs, DocsProps, ExtensionAddonRenderer, ExtensionRowProps, ParsedDocs } from './components/Docs';
|
|
2
2
|
export { DeprecatedBadge } from './components/Docs/HttpOperation/Badges';
|
|
3
3
|
export { ExportButton, ExportButtonProps } from './components/Docs/HttpService/ExportButton';
|
|
4
4
|
export { ResponsiveSidebarLayout } from './components/Layout/ResponsiveSidebarLayout';
|
|
@@ -17,6 +17,7 @@ export { TryIt, TryItProps, TryItWithRequestSamples, TryItWithRequestSamplesProp
|
|
|
17
17
|
export { HttpMethodColors, NodeTypeColors, NodeTypeIconDefs, NodeTypePrettyName } from './constants';
|
|
18
18
|
export { MockingProvider } from './containers/MockingProvider';
|
|
19
19
|
export { InlineRefResolverProvider } from './context/InlineRefResolver';
|
|
20
|
+
export { ElementsOptionsProvider } from './context/Options';
|
|
20
21
|
export { PersistenceContextProvider, withPersistenceBoundary } from './context/Persistence';
|
|
21
22
|
export { RouterTypeContext } from './context/RouterType';
|
|
22
23
|
export { withMosaicProvider } from './hoc/withMosaicProvider';
|
package/index.esm.js
CHANGED
|
@@ -44,6 +44,7 @@ import uniq from 'lodash/uniq.js';
|
|
|
44
44
|
import orderBy from 'lodash/orderBy.js';
|
|
45
45
|
import uniqBy from 'lodash/uniqBy.js';
|
|
46
46
|
import formatXml from 'xml-formatter';
|
|
47
|
+
import memoize from 'lodash/memoize.js';
|
|
47
48
|
import entries from 'lodash/entries.js';
|
|
48
49
|
import keys from 'lodash/keys.js';
|
|
49
50
|
import sortBy from 'lodash/sortBy.js';
|
|
@@ -164,8 +165,8 @@ const ElementsOptionsContext = React.createContext(DEFAULT_CONTEXT);
|
|
|
164
165
|
const useOptionsCtx = () => {
|
|
165
166
|
return React.useContext(ElementsOptionsContext) || DEFAULT_CONTEXT;
|
|
166
167
|
};
|
|
167
|
-
function ElementsOptionsProvider({ children, nodeHasChanged }) {
|
|
168
|
-
return (React.createElement(ElementsOptionsContext.Provider, { value: Object.assign({}, DEFAULT_CONTEXT, { nodeHasChanged }) }, children));
|
|
168
|
+
function ElementsOptionsProvider({ children, nodeHasChanged, renderExtensionAddon }) {
|
|
169
|
+
return (React.createElement(ElementsOptionsContext.Provider, { value: Object.assign({}, DEFAULT_CONTEXT, { nodeHasChanged, renderExtensionAddon }) }, children));
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
function isSMDASTRoot(maybeAst) {
|
|
@@ -450,6 +451,9 @@ const HttpMethodColors = {
|
|
|
450
451
|
put: 'warning',
|
|
451
452
|
patch: 'warning',
|
|
452
453
|
delete: 'danger',
|
|
454
|
+
head: '#9061F9',
|
|
455
|
+
options: '#0D5AA7',
|
|
456
|
+
trace: '#0D0B28',
|
|
453
457
|
};
|
|
454
458
|
const HttpCodeColor = {
|
|
455
459
|
0: 'red',
|
|
@@ -2444,6 +2448,32 @@ const TryItWithRequestSamples = (_a) => {
|
|
|
2444
2448
|
React.createElement(ResponseExamples, Object.assign({}, props))));
|
|
2445
2449
|
};
|
|
2446
2450
|
|
|
2451
|
+
const getVendorExtensions = memoize((data) => {
|
|
2452
|
+
const vendorExtensionNames = Object.keys(data).filter(item => item.startsWith('x-'));
|
|
2453
|
+
const vendorExtensions = vendorExtensionNames.reduce((previousValue, currentValue, currentIndex) => {
|
|
2454
|
+
return Object.assign(Object.assign({}, previousValue), { [currentValue]: data[currentValue] });
|
|
2455
|
+
}, {});
|
|
2456
|
+
return vendorExtensions;
|
|
2457
|
+
});
|
|
2458
|
+
const NodeVendorExtensions = React.memo(({ data }) => {
|
|
2459
|
+
const { renderExtensionAddon } = useOptionsCtx();
|
|
2460
|
+
if (!renderExtensionAddon) {
|
|
2461
|
+
return null;
|
|
2462
|
+
}
|
|
2463
|
+
const originalObject = getOriginalObject(data);
|
|
2464
|
+
const vendorExtensions = originalObject.extensions ? originalObject.extensions : getVendorExtensions(originalObject);
|
|
2465
|
+
const vendorExtensionKeys = Object.keys(vendorExtensions);
|
|
2466
|
+
if (vendorExtensionKeys.length === 0) {
|
|
2467
|
+
return null;
|
|
2468
|
+
}
|
|
2469
|
+
return (React.createElement(React.Fragment, null, renderExtensionAddon({
|
|
2470
|
+
nestingLevel: -1,
|
|
2471
|
+
schemaNode: originalObject,
|
|
2472
|
+
vendorExtensions,
|
|
2473
|
+
})));
|
|
2474
|
+
});
|
|
2475
|
+
NodeVendorExtensions.displayName = 'NodeVendorExtensions';
|
|
2476
|
+
|
|
2447
2477
|
const TwoColumnLayout = React__default.forwardRef(({ header, right, left, className }, ref) => (React__default.createElement(VStack, { ref: ref, w: "full", className: className, spacing: 8 },
|
|
2448
2478
|
header,
|
|
2449
2479
|
React__default.createElement(Flex, null,
|
|
@@ -2601,7 +2631,7 @@ const Body = ({ body, onChange }) => {
|
|
|
2601
2631
|
var _a;
|
|
2602
2632
|
const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
|
|
2603
2633
|
const [chosenContent, setChosenContent] = React.useState(0);
|
|
2604
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
2634
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
2605
2635
|
React.useEffect(() => {
|
|
2606
2636
|
onChange === null || onChange === void 0 ? void 0 : onChange(chosenContent);
|
|
2607
2637
|
}, [chosenContent]);
|
|
@@ -2616,7 +2646,7 @@ const Body = ({ body, onChange }) => {
|
|
|
2616
2646
|
description && (React.createElement(Box, { pos: "relative" },
|
|
2617
2647
|
React.createElement(MarkdownViewer, { markdown: description }),
|
|
2618
2648
|
React.createElement(NodeAnnotation, { change: descriptionChanged }))),
|
|
2619
|
-
isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: "write", renderRootTreeLines: true, nodeHasChanged: nodeHasChanged }))));
|
|
2649
|
+
isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: "write", renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))));
|
|
2620
2650
|
};
|
|
2621
2651
|
Body.displayName = 'HttpOperation.Body';
|
|
2622
2652
|
|
|
@@ -2640,12 +2670,12 @@ const defaultStyle = {
|
|
|
2640
2670
|
cookie: HttpParamStyles.Form,
|
|
2641
2671
|
};
|
|
2642
2672
|
const Parameters = ({ parameters, parameterType }) => {
|
|
2643
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
2673
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
2644
2674
|
const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
|
|
2645
2675
|
const schema = React.useMemo(() => httpOperationParamsToSchema({ parameters, parameterType }), [parameters, parameterType]);
|
|
2646
2676
|
if (!schema)
|
|
2647
2677
|
return null;
|
|
2648
|
-
return (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: schema, disableCrumbs: true, nodeHasChanged: nodeHasChanged }));
|
|
2678
|
+
return (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: schema, disableCrumbs: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }));
|
|
2649
2679
|
};
|
|
2650
2680
|
Parameters.displayName = 'HttpOperation.Parameters';
|
|
2651
2681
|
const httpOperationParamsToSchema = ({ parameters, parameterType }) => {
|
|
@@ -2785,7 +2815,7 @@ const Response = ({ response, onMediaTypeChange }) => {
|
|
|
2785
2815
|
const { contents = [], headers = [], description } = response;
|
|
2786
2816
|
const [chosenContent, setChosenContent] = React.useState(0);
|
|
2787
2817
|
const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
|
|
2788
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
2818
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
2789
2819
|
const responseContent = contents[chosenContent];
|
|
2790
2820
|
const schema = responseContent === null || responseContent === void 0 ? void 0 : responseContent.schema;
|
|
2791
2821
|
React.useEffect(() => {
|
|
@@ -2803,7 +2833,7 @@ const Response = ({ response, onMediaTypeChange }) => {
|
|
|
2803
2833
|
React.createElement(SectionSubtitle, { title: "Body", id: "response-body" },
|
|
2804
2834
|
React.createElement(Flex, { flex: 1, justify: "end" },
|
|
2805
2835
|
React.createElement(Select, { "aria-label": "Response Body Content Type", value: String(chosenContent), onChange: value => setChosenContent(parseInt(String(value), 10)), options: contents.map((content, index) => ({ label: content.mediaType, value: index })), size: "sm" }))),
|
|
2806
|
-
schema && (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged }))))));
|
|
2836
|
+
schema && (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))))));
|
|
2807
2837
|
};
|
|
2808
2838
|
Response.displayName = 'HttpOperation.Response';
|
|
2809
2839
|
const codeToIntentVal = (code) => {
|
|
@@ -2879,6 +2909,7 @@ const HttpOperationComponent = React.memo(({ className, data: unresolvedData, la
|
|
|
2879
2909
|
data.description && (React.createElement(Box, { pos: "relative" },
|
|
2880
2910
|
React.createElement(MarkdownViewer, { className: "HttpOperation__Description", markdown: data.description }),
|
|
2881
2911
|
React.createElement(NodeAnnotation, { change: descriptionChanged }))),
|
|
2912
|
+
React.createElement(NodeVendorExtensions, { data: data }),
|
|
2882
2913
|
React.createElement(Request, { onChange: setTextRequestBodyIndex, operation: data }),
|
|
2883
2914
|
data.responses && (React.createElement(Responses, { responses: data.responses, onMediaTypeChange: setResponseMediaType, onStatusCodeChange: setResponseStatusCode, isCompact: isCompact })),
|
|
2884
2915
|
((_a = data.callbacks) === null || _a === void 0 ? void 0 : _a.length) ? React.createElement(Callbacks, { callbacks: data.callbacks, isCompact: isCompact }) : null,
|
|
@@ -3130,7 +3161,7 @@ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOpti
|
|
|
3130
3161
|
var _a, _b;
|
|
3131
3162
|
const [resolveRef, maxRefDepth] = useSchemaInlineRefResolver();
|
|
3132
3163
|
const data = useResolvedObject(unresolvedData);
|
|
3133
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
3164
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
3134
3165
|
const { ref: layoutRef, isCompact } = useIsCompact(layoutOptions);
|
|
3135
3166
|
const nodeId = (_a = data === null || data === void 0 ? void 0 : data['x-stoplight']) === null || _a === void 0 ? void 0 : _a.id;
|
|
3136
3167
|
const title = (_b = data.title) !== null && _b !== void 0 ? _b : nodeTitle;
|
|
@@ -3153,8 +3184,9 @@ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOpti
|
|
|
3153
3184
|
data.description && data.type === 'object' && (React.createElement(Box, { pos: "relative" },
|
|
3154
3185
|
React.createElement(MarkdownViewer, { role: "textbox", markdown: data.description }),
|
|
3155
3186
|
React.createElement(NodeAnnotation, { change: descriptionChanged }))),
|
|
3187
|
+
React.createElement(NodeVendorExtensions, { data: data }),
|
|
3156
3188
|
isCompact && modelExamples,
|
|
3157
|
-
React.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, skipTopLevelDescription: true })));
|
|
3189
|
+
React.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon, skipTopLevelDescription: true })));
|
|
3158
3190
|
return (React.createElement(TwoColumnLayout, { ref: layoutRef, className: cn('Model', className), header: header, left: description, right: !isCompact && modelExamples }));
|
|
3159
3191
|
};
|
|
3160
3192
|
const ModelExamples = React.memo(({ data, isCollapsible = false }) => {
|
|
@@ -3177,7 +3209,7 @@ const Model = withErrorBoundary(ModelComponent, { recoverableProps: ['data'] });
|
|
|
3177
3209
|
|
|
3178
3210
|
const Docs = React.memo((_a) => {
|
|
3179
3211
|
var _b;
|
|
3180
|
-
var { nodeType, nodeData, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged } = _a, commonProps = __rest(_a, ["nodeType", "nodeData", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged"]);
|
|
3212
|
+
var { nodeType, nodeData, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged, renderExtensionAddon } = _a, commonProps = __rest(_a, ["nodeType", "nodeData", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged", "renderExtensionAddon"]);
|
|
3181
3213
|
const parsedNode = useParsedData(nodeType, nodeData);
|
|
3182
3214
|
if (!parsedNode) {
|
|
3183
3215
|
(_b = commonProps.nodeUnsupported) === null || _b === void 0 ? void 0 : _b.call(commonProps, 'dataEmpty');
|
|
@@ -3187,7 +3219,7 @@ const Docs = React.memo((_a) => {
|
|
|
3187
3219
|
if (useNodeForRefResolving) {
|
|
3188
3220
|
elem = (React.createElement(InlineRefResolverProvider, { document: parsedNode.data, resolver: refResolver, maxRefDepth: maxRefDepth }, elem));
|
|
3189
3221
|
}
|
|
3190
|
-
return React.createElement(ElementsOptionsProvider, { nodeHasChanged: nodeHasChanged }, elem);
|
|
3222
|
+
return (React.createElement(ElementsOptionsProvider, { nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }, elem));
|
|
3191
3223
|
});
|
|
3192
3224
|
const ParsedDocs = (_a) => {
|
|
3193
3225
|
var { node, nodeUnsupported } = _a, commonProps = __rest(_a, ["node", "nodeUnsupported"]);
|
|
@@ -3293,6 +3325,9 @@ const NODE_META_COLOR = {
|
|
|
3293
3325
|
put: 'warning',
|
|
3294
3326
|
patch: 'warning',
|
|
3295
3327
|
delete: 'danger',
|
|
3328
|
+
head: '#9061F9',
|
|
3329
|
+
options: '#0D5AA7',
|
|
3330
|
+
trace: '#0D0B28',
|
|
3296
3331
|
};
|
|
3297
3332
|
|
|
3298
3333
|
function getHtmlIdFromItemId(id) {
|
|
@@ -3646,12 +3681,13 @@ function isPartialHttpRequest(maybeHttpRequest) {
|
|
|
3646
3681
|
}
|
|
3647
3682
|
const SchemaAndDescription = ({ title: titleProp, schema }) => {
|
|
3648
3683
|
const [resolveRef, maxRefDepth] = useSchemaInlineRefResolver();
|
|
3684
|
+
const { renderExtensionAddon } = useOptionsCtx();
|
|
3649
3685
|
const title = titleProp !== null && titleProp !== void 0 ? titleProp : schema.title;
|
|
3650
3686
|
return (React__default.createElement(Box, { py: 2 },
|
|
3651
3687
|
title && (React__default.createElement(Flex, { alignItems: "center", p: 2 },
|
|
3652
3688
|
React__default.createElement(Icon, { icon: NodeTypeIconDefs[NodeType.Model], color: NodeTypeColors[NodeType.Model] }),
|
|
3653
3689
|
React__default.createElement(Box, { color: "muted", px: 2 }, title))),
|
|
3654
|
-
React__default.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema) })));
|
|
3690
|
+
React__default.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), renderExtensionAddon: renderExtensionAddon })));
|
|
3655
3691
|
};
|
|
3656
3692
|
const CodeComponent = props => {
|
|
3657
3693
|
const { title, jsonSchema, http, resolved, children } = props;
|
|
@@ -3996,4 +4032,4 @@ const createElementClass = (Component, propDescriptors) => {
|
|
|
3996
4032
|
};
|
|
3997
4033
|
};
|
|
3998
4034
|
|
|
3999
|
-
export { DeprecatedBadge, Docs, ExportButton, HttpMethodColors, InlineRefResolverProvider, LinkHeading, Logo, MarkdownComponentsProvider, MockingProvider, NodeTypeColors, NodeTypeIconDefs, NodeTypePrettyName, NonIdealState, ParsedDocs, PersistenceContextProvider, PoweredByLink, ReactRouterMarkdownLink, ResponsiveSidebarLayout, RouterTypeContext, SidebarLayout, Styled, TableOfContents, TryIt, TryItWithRequestSamples, createElementClass, createResolvedObject, findFirstNode, isHttpOperation, isHttpService, isHttpWebhookOperation, slugify, useBundleRefsIntoDocument, useParsedData, useParsedValue, useResponsiveLayout, useRouter, withMosaicProvider, withPersistenceBoundary, withQueryClientProvider, withRouter, withStyles };
|
|
4035
|
+
export { DeprecatedBadge, Docs, ElementsOptionsProvider, ExportButton, HttpMethodColors, InlineRefResolverProvider, LinkHeading, Logo, MarkdownComponentsProvider, MockingProvider, NodeTypeColors, NodeTypeIconDefs, NodeTypePrettyName, NonIdealState, ParsedDocs, PersistenceContextProvider, PoweredByLink, ReactRouterMarkdownLink, ResponsiveSidebarLayout, RouterTypeContext, SidebarLayout, Styled, TableOfContents, TryIt, TryItWithRequestSamples, createElementClass, createResolvedObject, findFirstNode, isHttpOperation, isHttpService, isHttpWebhookOperation, slugify, useBundleRefsIntoDocument, useParsedData, useParsedValue, useResponsiveLayout, useRouter, withMosaicProvider, withPersistenceBoundary, withQueryClientProvider, withRouter, withStyles };
|
package/index.js
CHANGED
|
@@ -46,6 +46,7 @@ var uniq = require('lodash/uniq.js');
|
|
|
46
46
|
var orderBy = require('lodash/orderBy.js');
|
|
47
47
|
var uniqBy = require('lodash/uniqBy.js');
|
|
48
48
|
var formatXml = require('xml-formatter');
|
|
49
|
+
var memoize = require('lodash/memoize.js');
|
|
49
50
|
var entries = require('lodash/entries.js');
|
|
50
51
|
var keys = require('lodash/keys.js');
|
|
51
52
|
var sortBy = require('lodash/sortBy.js');
|
|
@@ -106,6 +107,7 @@ var uniq__default = /*#__PURE__*/_interopDefaultLegacy(uniq);
|
|
|
106
107
|
var orderBy__default = /*#__PURE__*/_interopDefaultLegacy(orderBy);
|
|
107
108
|
var uniqBy__default = /*#__PURE__*/_interopDefaultLegacy(uniqBy);
|
|
108
109
|
var formatXml__default = /*#__PURE__*/_interopDefaultLegacy(formatXml);
|
|
110
|
+
var memoize__default = /*#__PURE__*/_interopDefaultLegacy(memoize);
|
|
109
111
|
var entries__default = /*#__PURE__*/_interopDefaultLegacy(entries);
|
|
110
112
|
var keys__default = /*#__PURE__*/_interopDefaultLegacy(keys);
|
|
111
113
|
var sortBy__default = /*#__PURE__*/_interopDefaultLegacy(sortBy);
|
|
@@ -224,8 +226,8 @@ const ElementsOptionsContext = React__namespace.createContext(DEFAULT_CONTEXT);
|
|
|
224
226
|
const useOptionsCtx = () => {
|
|
225
227
|
return React__namespace.useContext(ElementsOptionsContext) || DEFAULT_CONTEXT;
|
|
226
228
|
};
|
|
227
|
-
function ElementsOptionsProvider({ children, nodeHasChanged }) {
|
|
228
|
-
return (React__namespace.createElement(ElementsOptionsContext.Provider, { value: Object.assign({}, DEFAULT_CONTEXT, { nodeHasChanged }) }, children));
|
|
229
|
+
function ElementsOptionsProvider({ children, nodeHasChanged, renderExtensionAddon }) {
|
|
230
|
+
return (React__namespace.createElement(ElementsOptionsContext.Provider, { value: Object.assign({}, DEFAULT_CONTEXT, { nodeHasChanged, renderExtensionAddon }) }, children));
|
|
229
231
|
}
|
|
230
232
|
|
|
231
233
|
function isSMDASTRoot(maybeAst) {
|
|
@@ -510,6 +512,9 @@ const HttpMethodColors = {
|
|
|
510
512
|
put: 'warning',
|
|
511
513
|
patch: 'warning',
|
|
512
514
|
delete: 'danger',
|
|
515
|
+
head: '#9061F9',
|
|
516
|
+
options: '#0D5AA7',
|
|
517
|
+
trace: '#0D0B28',
|
|
513
518
|
};
|
|
514
519
|
const HttpCodeColor = {
|
|
515
520
|
0: 'red',
|
|
@@ -2504,6 +2509,32 @@ const TryItWithRequestSamples = (_a) => {
|
|
|
2504
2509
|
React__namespace.createElement(ResponseExamples, Object.assign({}, props))));
|
|
2505
2510
|
};
|
|
2506
2511
|
|
|
2512
|
+
const getVendorExtensions = memoize__default["default"]((data) => {
|
|
2513
|
+
const vendorExtensionNames = Object.keys(data).filter(item => item.startsWith('x-'));
|
|
2514
|
+
const vendorExtensions = vendorExtensionNames.reduce((previousValue, currentValue, currentIndex) => {
|
|
2515
|
+
return Object.assign(Object.assign({}, previousValue), { [currentValue]: data[currentValue] });
|
|
2516
|
+
}, {});
|
|
2517
|
+
return vendorExtensions;
|
|
2518
|
+
});
|
|
2519
|
+
const NodeVendorExtensions = React__namespace.memo(({ data }) => {
|
|
2520
|
+
const { renderExtensionAddon } = useOptionsCtx();
|
|
2521
|
+
if (!renderExtensionAddon) {
|
|
2522
|
+
return null;
|
|
2523
|
+
}
|
|
2524
|
+
const originalObject = getOriginalObject(data);
|
|
2525
|
+
const vendorExtensions = originalObject.extensions ? originalObject.extensions : getVendorExtensions(originalObject);
|
|
2526
|
+
const vendorExtensionKeys = Object.keys(vendorExtensions);
|
|
2527
|
+
if (vendorExtensionKeys.length === 0) {
|
|
2528
|
+
return null;
|
|
2529
|
+
}
|
|
2530
|
+
return (React__namespace.createElement(React__namespace.Fragment, null, renderExtensionAddon({
|
|
2531
|
+
nestingLevel: -1,
|
|
2532
|
+
schemaNode: originalObject,
|
|
2533
|
+
vendorExtensions,
|
|
2534
|
+
})));
|
|
2535
|
+
});
|
|
2536
|
+
NodeVendorExtensions.displayName = 'NodeVendorExtensions';
|
|
2537
|
+
|
|
2507
2538
|
const TwoColumnLayout = React__default["default"].forwardRef(({ header, right, left, className }, ref) => (React__default["default"].createElement(mosaic.VStack, { ref: ref, w: "full", className: className, spacing: 8 },
|
|
2508
2539
|
header,
|
|
2509
2540
|
React__default["default"].createElement(mosaic.Flex, null,
|
|
@@ -2661,7 +2692,7 @@ const Body = ({ body, onChange }) => {
|
|
|
2661
2692
|
var _a;
|
|
2662
2693
|
const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
|
|
2663
2694
|
const [chosenContent, setChosenContent] = React__namespace.useState(0);
|
|
2664
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
2695
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
2665
2696
|
React__namespace.useEffect(() => {
|
|
2666
2697
|
onChange === null || onChange === void 0 ? void 0 : onChange(chosenContent);
|
|
2667
2698
|
}, [chosenContent]);
|
|
@@ -2676,7 +2707,7 @@ const Body = ({ body, onChange }) => {
|
|
|
2676
2707
|
description && (React__namespace.createElement(mosaic.Box, { pos: "relative" },
|
|
2677
2708
|
React__namespace.createElement(MarkdownViewer, { markdown: description }),
|
|
2678
2709
|
React__namespace.createElement(mosaic.NodeAnnotation, { change: descriptionChanged }))),
|
|
2679
|
-
isJSONSchema(schema) && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: "write", renderRootTreeLines: true, nodeHasChanged: nodeHasChanged }))));
|
|
2710
|
+
isJSONSchema(schema) && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: "write", renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))));
|
|
2680
2711
|
};
|
|
2681
2712
|
Body.displayName = 'HttpOperation.Body';
|
|
2682
2713
|
|
|
@@ -2700,12 +2731,12 @@ const defaultStyle = {
|
|
|
2700
2731
|
cookie: types.HttpParamStyles.Form,
|
|
2701
2732
|
};
|
|
2702
2733
|
const Parameters = ({ parameters, parameterType }) => {
|
|
2703
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
2734
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
2704
2735
|
const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
|
|
2705
2736
|
const schema = React__namespace.useMemo(() => httpOperationParamsToSchema({ parameters, parameterType }), [parameters, parameterType]);
|
|
2706
2737
|
if (!schema)
|
|
2707
2738
|
return null;
|
|
2708
|
-
return (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: schema, disableCrumbs: true, nodeHasChanged: nodeHasChanged }));
|
|
2739
|
+
return (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: schema, disableCrumbs: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }));
|
|
2709
2740
|
};
|
|
2710
2741
|
Parameters.displayName = 'HttpOperation.Parameters';
|
|
2711
2742
|
const httpOperationParamsToSchema = ({ parameters, parameterType }) => {
|
|
@@ -2845,7 +2876,7 @@ const Response = ({ response, onMediaTypeChange }) => {
|
|
|
2845
2876
|
const { contents = [], headers = [], description } = response;
|
|
2846
2877
|
const [chosenContent, setChosenContent] = React__namespace.useState(0);
|
|
2847
2878
|
const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
|
|
2848
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
2879
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
2849
2880
|
const responseContent = contents[chosenContent];
|
|
2850
2881
|
const schema = responseContent === null || responseContent === void 0 ? void 0 : responseContent.schema;
|
|
2851
2882
|
React__namespace.useEffect(() => {
|
|
@@ -2863,7 +2894,7 @@ const Response = ({ response, onMediaTypeChange }) => {
|
|
|
2863
2894
|
React__namespace.createElement(SectionSubtitle, { title: "Body", id: "response-body" },
|
|
2864
2895
|
React__namespace.createElement(mosaic.Flex, { flex: 1, justify: "end" },
|
|
2865
2896
|
React__namespace.createElement(mosaic.Select, { "aria-label": "Response Body Content Type", value: String(chosenContent), onChange: value => setChosenContent(parseInt(String(value), 10)), options: contents.map((content, index) => ({ label: content.mediaType, value: index })), size: "sm" }))),
|
|
2866
|
-
schema && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged }))))));
|
|
2897
|
+
schema && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))))));
|
|
2867
2898
|
};
|
|
2868
2899
|
Response.displayName = 'HttpOperation.Response';
|
|
2869
2900
|
const codeToIntentVal = (code) => {
|
|
@@ -2939,6 +2970,7 @@ const HttpOperationComponent = React__namespace.memo(({ className, data: unresol
|
|
|
2939
2970
|
data.description && (React__namespace.createElement(mosaic.Box, { pos: "relative" },
|
|
2940
2971
|
React__namespace.createElement(MarkdownViewer, { className: "HttpOperation__Description", markdown: data.description }),
|
|
2941
2972
|
React__namespace.createElement(mosaic.NodeAnnotation, { change: descriptionChanged }))),
|
|
2973
|
+
React__namespace.createElement(NodeVendorExtensions, { data: data }),
|
|
2942
2974
|
React__namespace.createElement(Request, { onChange: setTextRequestBodyIndex, operation: data }),
|
|
2943
2975
|
data.responses && (React__namespace.createElement(Responses, { responses: data.responses, onMediaTypeChange: setResponseMediaType, onStatusCodeChange: setResponseStatusCode, isCompact: isCompact })),
|
|
2944
2976
|
((_a = data.callbacks) === null || _a === void 0 ? void 0 : _a.length) ? React__namespace.createElement(Callbacks, { callbacks: data.callbacks, isCompact: isCompact }) : null,
|
|
@@ -3190,7 +3222,7 @@ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOpti
|
|
|
3190
3222
|
var _a, _b;
|
|
3191
3223
|
const [resolveRef, maxRefDepth] = useSchemaInlineRefResolver();
|
|
3192
3224
|
const data = useResolvedObject(unresolvedData);
|
|
3193
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
3225
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
3194
3226
|
const { ref: layoutRef, isCompact } = useIsCompact(layoutOptions);
|
|
3195
3227
|
const nodeId = (_a = data === null || data === void 0 ? void 0 : data['x-stoplight']) === null || _a === void 0 ? void 0 : _a.id;
|
|
3196
3228
|
const title = (_b = data.title) !== null && _b !== void 0 ? _b : nodeTitle;
|
|
@@ -3213,8 +3245,9 @@ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOpti
|
|
|
3213
3245
|
data.description && data.type === 'object' && (React__namespace.createElement(mosaic.Box, { pos: "relative" },
|
|
3214
3246
|
React__namespace.createElement(MarkdownViewer, { role: "textbox", markdown: data.description }),
|
|
3215
3247
|
React__namespace.createElement(mosaic.NodeAnnotation, { change: descriptionChanged }))),
|
|
3248
|
+
React__namespace.createElement(NodeVendorExtensions, { data: data }),
|
|
3216
3249
|
isCompact && modelExamples,
|
|
3217
|
-
React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, skipTopLevelDescription: true })));
|
|
3250
|
+
React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon, skipTopLevelDescription: true })));
|
|
3218
3251
|
return (React__namespace.createElement(TwoColumnLayout, { ref: layoutRef, className: cn__default["default"]('Model', className), header: header, left: description, right: !isCompact && modelExamples }));
|
|
3219
3252
|
};
|
|
3220
3253
|
const ModelExamples = React__namespace.memo(({ data, isCollapsible = false }) => {
|
|
@@ -3237,7 +3270,7 @@ const Model = reactErrorBoundary.withErrorBoundary(ModelComponent, { recoverable
|
|
|
3237
3270
|
|
|
3238
3271
|
const Docs = React__namespace.memo((_a) => {
|
|
3239
3272
|
var _b;
|
|
3240
|
-
var { nodeType, nodeData, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged } = _a, commonProps = tslib.__rest(_a, ["nodeType", "nodeData", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged"]);
|
|
3273
|
+
var { nodeType, nodeData, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged, renderExtensionAddon } = _a, commonProps = tslib.__rest(_a, ["nodeType", "nodeData", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged", "renderExtensionAddon"]);
|
|
3241
3274
|
const parsedNode = useParsedData(nodeType, nodeData);
|
|
3242
3275
|
if (!parsedNode) {
|
|
3243
3276
|
(_b = commonProps.nodeUnsupported) === null || _b === void 0 ? void 0 : _b.call(commonProps, 'dataEmpty');
|
|
@@ -3247,7 +3280,7 @@ const Docs = React__namespace.memo((_a) => {
|
|
|
3247
3280
|
if (useNodeForRefResolving) {
|
|
3248
3281
|
elem = (React__namespace.createElement(InlineRefResolverProvider, { document: parsedNode.data, resolver: refResolver, maxRefDepth: maxRefDepth }, elem));
|
|
3249
3282
|
}
|
|
3250
|
-
return React__namespace.createElement(ElementsOptionsProvider, { nodeHasChanged: nodeHasChanged }, elem);
|
|
3283
|
+
return (React__namespace.createElement(ElementsOptionsProvider, { nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }, elem));
|
|
3251
3284
|
});
|
|
3252
3285
|
const ParsedDocs = (_a) => {
|
|
3253
3286
|
var { node, nodeUnsupported } = _a, commonProps = tslib.__rest(_a, ["node", "nodeUnsupported"]);
|
|
@@ -3353,6 +3386,9 @@ const NODE_META_COLOR = {
|
|
|
3353
3386
|
put: 'warning',
|
|
3354
3387
|
patch: 'warning',
|
|
3355
3388
|
delete: 'danger',
|
|
3389
|
+
head: '#9061F9',
|
|
3390
|
+
options: '#0D5AA7',
|
|
3391
|
+
trace: '#0D0B28',
|
|
3356
3392
|
};
|
|
3357
3393
|
|
|
3358
3394
|
function getHtmlIdFromItemId(id) {
|
|
@@ -3706,12 +3742,13 @@ function isPartialHttpRequest(maybeHttpRequest) {
|
|
|
3706
3742
|
}
|
|
3707
3743
|
const SchemaAndDescription = ({ title: titleProp, schema }) => {
|
|
3708
3744
|
const [resolveRef, maxRefDepth] = useSchemaInlineRefResolver();
|
|
3745
|
+
const { renderExtensionAddon } = useOptionsCtx();
|
|
3709
3746
|
const title = titleProp !== null && titleProp !== void 0 ? titleProp : schema.title;
|
|
3710
3747
|
return (React__default["default"].createElement(mosaic.Box, { py: 2 },
|
|
3711
3748
|
title && (React__default["default"].createElement(mosaic.Flex, { alignItems: "center", p: 2 },
|
|
3712
3749
|
React__default["default"].createElement(mosaic.Icon, { icon: NodeTypeIconDefs[types.NodeType.Model], color: NodeTypeColors[types.NodeType.Model] }),
|
|
3713
3750
|
React__default["default"].createElement(mosaic.Box, { color: "muted", px: 2 }, title))),
|
|
3714
|
-
React__default["default"].createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema) })));
|
|
3751
|
+
React__default["default"].createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), renderExtensionAddon: renderExtensionAddon })));
|
|
3715
3752
|
};
|
|
3716
3753
|
const CodeComponent = props => {
|
|
3717
3754
|
const { title, jsonSchema, http, resolved, children } = props;
|
|
@@ -4062,6 +4099,7 @@ Object.defineProperty(exports, 'DefaultSMDComponents', {
|
|
|
4062
4099
|
});
|
|
4063
4100
|
exports.DeprecatedBadge = DeprecatedBadge;
|
|
4064
4101
|
exports.Docs = Docs;
|
|
4102
|
+
exports.ElementsOptionsProvider = ElementsOptionsProvider;
|
|
4065
4103
|
exports.ExportButton = ExportButton;
|
|
4066
4104
|
exports.HttpMethodColors = HttpMethodColors;
|
|
4067
4105
|
exports.InlineRefResolverProvider = InlineRefResolverProvider;
|
package/index.mjs
CHANGED
|
@@ -44,6 +44,7 @@ import uniq from 'lodash/uniq.js';
|
|
|
44
44
|
import orderBy from 'lodash/orderBy.js';
|
|
45
45
|
import uniqBy from 'lodash/uniqBy.js';
|
|
46
46
|
import formatXml from 'xml-formatter';
|
|
47
|
+
import memoize from 'lodash/memoize.js';
|
|
47
48
|
import entries from 'lodash/entries.js';
|
|
48
49
|
import keys from 'lodash/keys.js';
|
|
49
50
|
import sortBy from 'lodash/sortBy.js';
|
|
@@ -164,8 +165,8 @@ const ElementsOptionsContext = React.createContext(DEFAULT_CONTEXT);
|
|
|
164
165
|
const useOptionsCtx = () => {
|
|
165
166
|
return React.useContext(ElementsOptionsContext) || DEFAULT_CONTEXT;
|
|
166
167
|
};
|
|
167
|
-
function ElementsOptionsProvider({ children, nodeHasChanged }) {
|
|
168
|
-
return (React.createElement(ElementsOptionsContext.Provider, { value: Object.assign({}, DEFAULT_CONTEXT, { nodeHasChanged }) }, children));
|
|
168
|
+
function ElementsOptionsProvider({ children, nodeHasChanged, renderExtensionAddon }) {
|
|
169
|
+
return (React.createElement(ElementsOptionsContext.Provider, { value: Object.assign({}, DEFAULT_CONTEXT, { nodeHasChanged, renderExtensionAddon }) }, children));
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
function isSMDASTRoot(maybeAst) {
|
|
@@ -450,6 +451,9 @@ const HttpMethodColors = {
|
|
|
450
451
|
put: 'warning',
|
|
451
452
|
patch: 'warning',
|
|
452
453
|
delete: 'danger',
|
|
454
|
+
head: '#9061F9',
|
|
455
|
+
options: '#0D5AA7',
|
|
456
|
+
trace: '#0D0B28',
|
|
453
457
|
};
|
|
454
458
|
const HttpCodeColor = {
|
|
455
459
|
0: 'red',
|
|
@@ -2444,6 +2448,32 @@ const TryItWithRequestSamples = (_a) => {
|
|
|
2444
2448
|
React.createElement(ResponseExamples, Object.assign({}, props))));
|
|
2445
2449
|
};
|
|
2446
2450
|
|
|
2451
|
+
const getVendorExtensions = memoize((data) => {
|
|
2452
|
+
const vendorExtensionNames = Object.keys(data).filter(item => item.startsWith('x-'));
|
|
2453
|
+
const vendorExtensions = vendorExtensionNames.reduce((previousValue, currentValue, currentIndex) => {
|
|
2454
|
+
return Object.assign(Object.assign({}, previousValue), { [currentValue]: data[currentValue] });
|
|
2455
|
+
}, {});
|
|
2456
|
+
return vendorExtensions;
|
|
2457
|
+
});
|
|
2458
|
+
const NodeVendorExtensions = React.memo(({ data }) => {
|
|
2459
|
+
const { renderExtensionAddon } = useOptionsCtx();
|
|
2460
|
+
if (!renderExtensionAddon) {
|
|
2461
|
+
return null;
|
|
2462
|
+
}
|
|
2463
|
+
const originalObject = getOriginalObject(data);
|
|
2464
|
+
const vendorExtensions = originalObject.extensions ? originalObject.extensions : getVendorExtensions(originalObject);
|
|
2465
|
+
const vendorExtensionKeys = Object.keys(vendorExtensions);
|
|
2466
|
+
if (vendorExtensionKeys.length === 0) {
|
|
2467
|
+
return null;
|
|
2468
|
+
}
|
|
2469
|
+
return (React.createElement(React.Fragment, null, renderExtensionAddon({
|
|
2470
|
+
nestingLevel: -1,
|
|
2471
|
+
schemaNode: originalObject,
|
|
2472
|
+
vendorExtensions,
|
|
2473
|
+
})));
|
|
2474
|
+
});
|
|
2475
|
+
NodeVendorExtensions.displayName = 'NodeVendorExtensions';
|
|
2476
|
+
|
|
2447
2477
|
const TwoColumnLayout = React__default.forwardRef(({ header, right, left, className }, ref) => (React__default.createElement(VStack, { ref: ref, w: "full", className: className, spacing: 8 },
|
|
2448
2478
|
header,
|
|
2449
2479
|
React__default.createElement(Flex, null,
|
|
@@ -2601,7 +2631,7 @@ const Body = ({ body, onChange }) => {
|
|
|
2601
2631
|
var _a;
|
|
2602
2632
|
const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
|
|
2603
2633
|
const [chosenContent, setChosenContent] = React.useState(0);
|
|
2604
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
2634
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
2605
2635
|
React.useEffect(() => {
|
|
2606
2636
|
onChange === null || onChange === void 0 ? void 0 : onChange(chosenContent);
|
|
2607
2637
|
}, [chosenContent]);
|
|
@@ -2616,7 +2646,7 @@ const Body = ({ body, onChange }) => {
|
|
|
2616
2646
|
description && (React.createElement(Box, { pos: "relative" },
|
|
2617
2647
|
React.createElement(MarkdownViewer, { markdown: description }),
|
|
2618
2648
|
React.createElement(NodeAnnotation, { change: descriptionChanged }))),
|
|
2619
|
-
isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: "write", renderRootTreeLines: true, nodeHasChanged: nodeHasChanged }))));
|
|
2649
|
+
isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: "write", renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))));
|
|
2620
2650
|
};
|
|
2621
2651
|
Body.displayName = 'HttpOperation.Body';
|
|
2622
2652
|
|
|
@@ -2640,12 +2670,12 @@ const defaultStyle = {
|
|
|
2640
2670
|
cookie: HttpParamStyles.Form,
|
|
2641
2671
|
};
|
|
2642
2672
|
const Parameters = ({ parameters, parameterType }) => {
|
|
2643
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
2673
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
2644
2674
|
const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
|
|
2645
2675
|
const schema = React.useMemo(() => httpOperationParamsToSchema({ parameters, parameterType }), [parameters, parameterType]);
|
|
2646
2676
|
if (!schema)
|
|
2647
2677
|
return null;
|
|
2648
|
-
return (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: schema, disableCrumbs: true, nodeHasChanged: nodeHasChanged }));
|
|
2678
|
+
return (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: schema, disableCrumbs: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }));
|
|
2649
2679
|
};
|
|
2650
2680
|
Parameters.displayName = 'HttpOperation.Parameters';
|
|
2651
2681
|
const httpOperationParamsToSchema = ({ parameters, parameterType }) => {
|
|
@@ -2785,7 +2815,7 @@ const Response = ({ response, onMediaTypeChange }) => {
|
|
|
2785
2815
|
const { contents = [], headers = [], description } = response;
|
|
2786
2816
|
const [chosenContent, setChosenContent] = React.useState(0);
|
|
2787
2817
|
const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
|
|
2788
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
2818
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
2789
2819
|
const responseContent = contents[chosenContent];
|
|
2790
2820
|
const schema = responseContent === null || responseContent === void 0 ? void 0 : responseContent.schema;
|
|
2791
2821
|
React.useEffect(() => {
|
|
@@ -2803,7 +2833,7 @@ const Response = ({ response, onMediaTypeChange }) => {
|
|
|
2803
2833
|
React.createElement(SectionSubtitle, { title: "Body", id: "response-body" },
|
|
2804
2834
|
React.createElement(Flex, { flex: 1, justify: "end" },
|
|
2805
2835
|
React.createElement(Select, { "aria-label": "Response Body Content Type", value: String(chosenContent), onChange: value => setChosenContent(parseInt(String(value), 10)), options: contents.map((content, index) => ({ label: content.mediaType, value: index })), size: "sm" }))),
|
|
2806
|
-
schema && (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged }))))));
|
|
2836
|
+
schema && (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))))));
|
|
2807
2837
|
};
|
|
2808
2838
|
Response.displayName = 'HttpOperation.Response';
|
|
2809
2839
|
const codeToIntentVal = (code) => {
|
|
@@ -2879,6 +2909,7 @@ const HttpOperationComponent = React.memo(({ className, data: unresolvedData, la
|
|
|
2879
2909
|
data.description && (React.createElement(Box, { pos: "relative" },
|
|
2880
2910
|
React.createElement(MarkdownViewer, { className: "HttpOperation__Description", markdown: data.description }),
|
|
2881
2911
|
React.createElement(NodeAnnotation, { change: descriptionChanged }))),
|
|
2912
|
+
React.createElement(NodeVendorExtensions, { data: data }),
|
|
2882
2913
|
React.createElement(Request, { onChange: setTextRequestBodyIndex, operation: data }),
|
|
2883
2914
|
data.responses && (React.createElement(Responses, { responses: data.responses, onMediaTypeChange: setResponseMediaType, onStatusCodeChange: setResponseStatusCode, isCompact: isCompact })),
|
|
2884
2915
|
((_a = data.callbacks) === null || _a === void 0 ? void 0 : _a.length) ? React.createElement(Callbacks, { callbacks: data.callbacks, isCompact: isCompact }) : null,
|
|
@@ -3130,7 +3161,7 @@ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOpti
|
|
|
3130
3161
|
var _a, _b;
|
|
3131
3162
|
const [resolveRef, maxRefDepth] = useSchemaInlineRefResolver();
|
|
3132
3163
|
const data = useResolvedObject(unresolvedData);
|
|
3133
|
-
const { nodeHasChanged } = useOptionsCtx();
|
|
3164
|
+
const { nodeHasChanged, renderExtensionAddon } = useOptionsCtx();
|
|
3134
3165
|
const { ref: layoutRef, isCompact } = useIsCompact(layoutOptions);
|
|
3135
3166
|
const nodeId = (_a = data === null || data === void 0 ? void 0 : data['x-stoplight']) === null || _a === void 0 ? void 0 : _a.id;
|
|
3136
3167
|
const title = (_b = data.title) !== null && _b !== void 0 ? _b : nodeTitle;
|
|
@@ -3153,8 +3184,9 @@ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOpti
|
|
|
3153
3184
|
data.description && data.type === 'object' && (React.createElement(Box, { pos: "relative" },
|
|
3154
3185
|
React.createElement(MarkdownViewer, { role: "textbox", markdown: data.description }),
|
|
3155
3186
|
React.createElement(NodeAnnotation, { change: descriptionChanged }))),
|
|
3187
|
+
React.createElement(NodeVendorExtensions, { data: data }),
|
|
3156
3188
|
isCompact && modelExamples,
|
|
3157
|
-
React.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, skipTopLevelDescription: true })));
|
|
3189
|
+
React.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon, skipTopLevelDescription: true })));
|
|
3158
3190
|
return (React.createElement(TwoColumnLayout, { ref: layoutRef, className: cn('Model', className), header: header, left: description, right: !isCompact && modelExamples }));
|
|
3159
3191
|
};
|
|
3160
3192
|
const ModelExamples = React.memo(({ data, isCollapsible = false }) => {
|
|
@@ -3177,7 +3209,7 @@ const Model = withErrorBoundary(ModelComponent, { recoverableProps: ['data'] });
|
|
|
3177
3209
|
|
|
3178
3210
|
const Docs = React.memo((_a) => {
|
|
3179
3211
|
var _b;
|
|
3180
|
-
var { nodeType, nodeData, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged } = _a, commonProps = __rest(_a, ["nodeType", "nodeData", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged"]);
|
|
3212
|
+
var { nodeType, nodeData, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged, renderExtensionAddon } = _a, commonProps = __rest(_a, ["nodeType", "nodeData", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged", "renderExtensionAddon"]);
|
|
3181
3213
|
const parsedNode = useParsedData(nodeType, nodeData);
|
|
3182
3214
|
if (!parsedNode) {
|
|
3183
3215
|
(_b = commonProps.nodeUnsupported) === null || _b === void 0 ? void 0 : _b.call(commonProps, 'dataEmpty');
|
|
@@ -3187,7 +3219,7 @@ const Docs = React.memo((_a) => {
|
|
|
3187
3219
|
if (useNodeForRefResolving) {
|
|
3188
3220
|
elem = (React.createElement(InlineRefResolverProvider, { document: parsedNode.data, resolver: refResolver, maxRefDepth: maxRefDepth }, elem));
|
|
3189
3221
|
}
|
|
3190
|
-
return React.createElement(ElementsOptionsProvider, { nodeHasChanged: nodeHasChanged }, elem);
|
|
3222
|
+
return (React.createElement(ElementsOptionsProvider, { nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }, elem));
|
|
3191
3223
|
});
|
|
3192
3224
|
const ParsedDocs = (_a) => {
|
|
3193
3225
|
var { node, nodeUnsupported } = _a, commonProps = __rest(_a, ["node", "nodeUnsupported"]);
|
|
@@ -3293,6 +3325,9 @@ const NODE_META_COLOR = {
|
|
|
3293
3325
|
put: 'warning',
|
|
3294
3326
|
patch: 'warning',
|
|
3295
3327
|
delete: 'danger',
|
|
3328
|
+
head: '#9061F9',
|
|
3329
|
+
options: '#0D5AA7',
|
|
3330
|
+
trace: '#0D0B28',
|
|
3296
3331
|
};
|
|
3297
3332
|
|
|
3298
3333
|
function getHtmlIdFromItemId(id) {
|
|
@@ -3646,12 +3681,13 @@ function isPartialHttpRequest(maybeHttpRequest) {
|
|
|
3646
3681
|
}
|
|
3647
3682
|
const SchemaAndDescription = ({ title: titleProp, schema }) => {
|
|
3648
3683
|
const [resolveRef, maxRefDepth] = useSchemaInlineRefResolver();
|
|
3684
|
+
const { renderExtensionAddon } = useOptionsCtx();
|
|
3649
3685
|
const title = titleProp !== null && titleProp !== void 0 ? titleProp : schema.title;
|
|
3650
3686
|
return (React__default.createElement(Box, { py: 2 },
|
|
3651
3687
|
title && (React__default.createElement(Flex, { alignItems: "center", p: 2 },
|
|
3652
3688
|
React__default.createElement(Icon, { icon: NodeTypeIconDefs[NodeType.Model], color: NodeTypeColors[NodeType.Model] }),
|
|
3653
3689
|
React__default.createElement(Box, { color: "muted", px: 2 }, title))),
|
|
3654
|
-
React__default.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema) })));
|
|
3690
|
+
React__default.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), renderExtensionAddon: renderExtensionAddon })));
|
|
3655
3691
|
};
|
|
3656
3692
|
const CodeComponent = props => {
|
|
3657
3693
|
const { title, jsonSchema, http, resolved, children } = props;
|
|
@@ -3996,4 +4032,4 @@ const createElementClass = (Component, propDescriptors) => {
|
|
|
3996
4032
|
};
|
|
3997
4033
|
};
|
|
3998
4034
|
|
|
3999
|
-
export { DeprecatedBadge, Docs, ExportButton, HttpMethodColors, InlineRefResolverProvider, LinkHeading, Logo, MarkdownComponentsProvider, MockingProvider, NodeTypeColors, NodeTypeIconDefs, NodeTypePrettyName, NonIdealState, ParsedDocs, PersistenceContextProvider, PoweredByLink, ReactRouterMarkdownLink, ResponsiveSidebarLayout, RouterTypeContext, SidebarLayout, Styled, TableOfContents, TryIt, TryItWithRequestSamples, createElementClass, createResolvedObject, findFirstNode, isHttpOperation, isHttpService, isHttpWebhookOperation, slugify, useBundleRefsIntoDocument, useParsedData, useParsedValue, useResponsiveLayout, useRouter, withMosaicProvider, withPersistenceBoundary, withQueryClientProvider, withRouter, withStyles };
|
|
4035
|
+
export { DeprecatedBadge, Docs, ElementsOptionsProvider, ExportButton, HttpMethodColors, InlineRefResolverProvider, LinkHeading, Logo, MarkdownComponentsProvider, MockingProvider, NodeTypeColors, NodeTypeIconDefs, NodeTypePrettyName, NonIdealState, ParsedDocs, PersistenceContextProvider, PoweredByLink, ReactRouterMarkdownLink, ResponsiveSidebarLayout, RouterTypeContext, SidebarLayout, Styled, TableOfContents, TryIt, TryItWithRequestSamples, createElementClass, createResolvedObject, findFirstNode, isHttpOperation, isHttpService, isHttpWebhookOperation, slugify, useBundleRefsIntoDocument, useParsedData, useParsedValue, useResponsiveLayout, useRouter, withMosaicProvider, withPersistenceBoundary, withQueryClientProvider, withRouter, withStyles };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stoplight/elements-core",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.1",
|
|
4
4
|
"main": "./index.js",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"web-components.min.js",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@stoplight/http-spec": "^7.0.3",
|
|
28
|
-
"@stoplight/json": "^3.
|
|
29
|
-
"@stoplight/json-schema-ref-parser": "^9.
|
|
30
|
-
"@stoplight/json-schema-sampler": "0.
|
|
28
|
+
"@stoplight/json": "^3.21.0",
|
|
29
|
+
"@stoplight/json-schema-ref-parser": "^9.2.7",
|
|
30
|
+
"@stoplight/json-schema-sampler": "0.3.0",
|
|
31
31
|
"@stoplight/json-schema-tree": "^4.0.0",
|
|
32
32
|
"@stoplight/json-schema-viewer": "4.16.1",
|
|
33
33
|
"@stoplight/markdown-viewer": "^5.7.0",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@stoplight/path": "^1.3.2",
|
|
38
38
|
"@stoplight/react-error-boundary": "^3.0.0",
|
|
39
39
|
"@stoplight/types": "^14.1.1",
|
|
40
|
-
"@stoplight/yaml": "^4.
|
|
40
|
+
"@stoplight/yaml": "^4.3.0",
|
|
41
41
|
"classnames": "^2.2.6",
|
|
42
42
|
"httpsnippet-lite": "^3.0.5",
|
|
43
43
|
"jotai": "1.3.9",
|