@stoplight/elements-core 9.0.25-beta-0.3 → 9.0.25

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.
@@ -1,5 +1,6 @@
1
1
  import { IMarkdownViewerProps } from '@stoplight/markdown-viewer';
2
+ import * as React from 'react';
2
3
  import { DocsComponentProps } from '..';
3
4
  declare type ArticleProps = DocsComponentProps<IMarkdownViewerProps['markdown']>;
4
- export declare const Article: import("react").FunctionComponent<ArticleProps & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
5
+ export declare const Article: React.FunctionComponent<ArticleProps & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
5
6
  export {};
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IHttpOperationRequestBody } from '@stoplight/types';
2
3
  export interface BodyProps {
3
4
  body: IHttpOperationRequestBody;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IHttpCallbackOperation } from '@stoplight/types';
2
3
  import { ExtensionAddonRenderer } from '../Docs';
3
4
  export interface CallbacksProps {
@@ -1,7 +1,8 @@
1
1
  import { IHttpEndpointOperation } from '@stoplight/types';
2
+ import * as React from 'react';
2
3
  import { DocsComponentProps } from '..';
3
4
  export declare type HttpOperationProps = DocsComponentProps<IHttpEndpointOperation>;
4
- export declare const HttpOperation: import("react").FunctionComponent<HttpOperationProps & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
5
+ export declare const HttpOperation: React.FunctionComponent<HttpOperationProps & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
5
6
  export declare function OperationHeader({ id, noHeading, hasBadges, name, isDeprecated, isInternal, hideServerUrl, method, path, }: {
6
7
  id: string;
7
8
  noHeading?: boolean;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IHttpOperationResponse } from '@stoplight/types';
2
3
  interface ResponsesProps {
3
4
  responses: IHttpOperationResponse[];
@@ -1,4 +1,5 @@
1
1
  import { IHttpService } from '@stoplight/types';
2
+ import * as React from 'react';
2
3
  import { DocsComponentProps } from '..';
3
4
  export declare type HttpServiceProps = DocsComponentProps<Partial<IHttpService>>;
4
- export declare const HttpService: import("react").FunctionComponent<HttpServiceProps & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
5
+ export declare const HttpService: React.FunctionComponent<HttpServiceProps & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
@@ -1,4 +1,5 @@
1
1
  import { JSONSchema7 } from 'json-schema';
2
+ import * as React from 'react';
2
3
  import { DocsComponentProps } from '..';
3
4
  export declare type ModelProps = DocsComponentProps<JSONSchema7>;
4
- export declare const Model: import("react").FunctionComponent<ModelProps & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
5
+ export declare const Model: React.FunctionComponent<ModelProps & import("@stoplight/react-error-boundary").ErrorBoundaryProps<{}>>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare const DocsSkeleton: ({ className, padding }: {
2
3
  className?: string | undefined;
3
4
  padding?: string | undefined;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ExtensionAddonRenderer } from './Docs';
2
3
  export declare const renderExtensionRenderer: ExtensionAddonRenderer;
3
4
  export declare const wrapOptionsContext: (story: any) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { LogoProps } from '../../types';
2
3
  import type { TableOfContentsItem } from '../TableOfContents';
3
4
  export declare const MobileTopNav: ({ name, logo, tree, pathname, onTocClick, }: {
@@ -1 +1,2 @@
1
+ /// <reference types="react" />
1
2
  export declare const Loading: () => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { LinkProps } from '@stoplight/mosaic';
2
3
  export declare const ReactRouterMarkdownLink: ({ title, to, href: _href, children, }: Omit<LinkProps<"a">, "target" | "rel"> & {
3
4
  to?: string | undefined;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  import { BundledBranchNode } from '../../../types';
3
- export declare const createResolvedImageComponent: (branchNode: BundledBranchNode) => React.NamedExoticComponent<import("react").ImgHTMLAttributes<HTMLImageElement> & import("@stoplight/markdown/ast-types/hast").ImageProperties>;
3
+ export declare const createResolvedImageComponent: (branchNode: BundledBranchNode) => React.NamedExoticComponent<React.ImgHTMLAttributes<HTMLImageElement> & import("@stoplight/markdown/ast-types/hast").ImageProperties>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IMarkdownViewerProps } from '@stoplight/markdown-viewer';
2
3
  export declare const MarkdownViewer: {
3
4
  (props: IMarkdownViewerProps): JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IHttpEndpointOperation } from '@stoplight/types';
2
3
  export interface ResponseExamplesProps {
3
4
  httpOperation: IHttpEndpointOperation;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare type TableOfContentsProps = {
2
3
  tree: TableOfContentsItem[];
3
4
  activeId: string;
@@ -4,7 +4,6 @@ export interface ResponseState {
4
4
  bodyText?: string;
5
5
  contentType: string | null;
6
6
  blob?: Blob;
7
- skipBodyParsing?: boolean;
8
7
  }
9
8
  export interface ErrorState {
10
9
  error: Error;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { IServer } from '@stoplight/types';
2
3
  export declare type ServersDropdownProps = {
3
4
  servers: IServer[];
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- export declare const PersistenceContextProvider: ({ initialValues, scope, children, }: import("react").PropsWithChildren<{
2
+ export declare const PersistenceContextProvider: ({ initialValues, scope, children, }: React.PropsWithChildren<{
3
3
  initialValues?: Iterable<readonly [import("jotai").Atom<unknown>, unknown]> | undefined;
4
4
  scope?: import("jotai/core/atom").Scope | undefined;
5
- }>) => import("react").FunctionComponentElement<import("react").ProviderProps<import("jotai/core/contexts").ScopeContainer>>;
5
+ }>) => React.FunctionComponentElement<React.ProviderProps<import("jotai/core/contexts").ScopeContainer>>;
6
6
  export declare function withPersistenceBoundary<T>(WrappedComponent: React.ComponentType<T>): React.FC<T>;
package/index.esm.js CHANGED
@@ -2,7 +2,7 @@ import { __rest, __awaiter } from 'tslib';
2
2
  import * as React from 'react';
3
3
  import React__default, { useContext, memo, useMemo, useState, useEffect, useRef, useLayoutEffect } from 'react';
4
4
  import { convertToJsonSchema } from '@stoplight/http-spec/oas';
5
- import { resolveInlineRef, hasRef, isPlainObject as isPlainObject$1, safeStringify, safeParse } from '@stoplight/json';
5
+ import { resolveInlineRef, hasRef, isPlainObject as isPlainObject$1, safeParse, safeStringify } from '@stoplight/json';
6
6
  import isArray from 'lodash/isArray.js';
7
7
  import isPlainObject from 'lodash/isPlainObject.js';
8
8
  import { NodeType, HttpParamStyles } from '@stoplight/types';
@@ -16,7 +16,6 @@ export { DefaultSMDComponents } from '@stoplight/markdown-viewer';
16
16
  import cn from 'classnames';
17
17
  import { atomWithStorage, useAtomValue } from 'jotai/utils';
18
18
  import { atom, useAtom, Provider } from 'jotai';
19
- import * as Sampler from '@stoplight/json-schema-sampler';
20
19
  import URI from 'urijs';
21
20
  import isString from 'lodash/isString.js';
22
21
  import { CodeViewer } from '@stoplight/mosaic-code-viewer';
@@ -39,6 +38,7 @@ import map from 'lodash/map.js';
39
38
  import mapValues from 'lodash/mapValues.js';
40
39
  import pickBy from 'lodash/pickBy.js';
41
40
  import { CodeEditor } from '@stoplight/mosaic-code-editor';
41
+ import * as Sampler from '@stoplight/json-schema-sampler';
42
42
  import compact from 'lodash/compact.js';
43
43
  import uniq from 'lodash/uniq.js';
44
44
  import orderBy from 'lodash/orderBy.js';
@@ -652,242 +652,6 @@ function useIsCompact(layoutOptions) {
652
652
 
653
653
  const chosenServerAtom = atom(undefined);
654
654
 
655
- const mergeOneOfAnyOf = (schema) => {
656
- if (!isPlainObject$1(schema)) {
657
- return schema;
658
- }
659
- let result = Object.assign({}, schema);
660
- if (result.oneOf && result.oneOf.length > 0) {
661
- const firstOption = result.oneOf[0];
662
- const { oneOf } = result, rest = __rest(result, ["oneOf"]);
663
- result = Object.assign(Object.assign({}, rest), firstOption);
664
- }
665
- else if (result.anyOf && result.anyOf.length > 0) {
666
- const firstOption = result.anyOf[0];
667
- const { anyOf } = result, rest = __rest(result, ["anyOf"]);
668
- result = Object.assign(Object.assign({}, rest), firstOption);
669
- }
670
- if (result.properties) {
671
- result.properties = Object.fromEntries(Object.entries(result.properties).map(([key, value]) => [key, mergeOneOfAnyOf(value)]));
672
- }
673
- if (result.items) {
674
- result.items = mergeOneOfAnyOf(result.items);
675
- }
676
- if (result.allOf) {
677
- result.allOf = result.allOf.map((item) => mergeOneOfAnyOf(item));
678
- }
679
- delete result.oneOf;
680
- delete result.anyOf;
681
- return result;
682
- };
683
- const OAS_FORMAT_RANGES = {
684
- int32: { minimum: 0 - Math.pow(2, 31), maximum: Math.pow(2, 31) - 1 },
685
- int64: { minimum: Number.MIN_SAFE_INTEGER, maximum: Number.MAX_SAFE_INTEGER },
686
- float: { minimum: 0 - Math.pow(2, 128), maximum: Math.pow(2, 128) - 1 },
687
- double: { minimum: 0 - Number.MAX_VALUE, maximum: Number.MAX_VALUE },
688
- };
689
- const stripInferredNumericBounds = (schema) => {
690
- var _a;
691
- if (!isPlainObject$1(schema)) {
692
- return schema;
693
- }
694
- const result = Object.assign({}, schema);
695
- const explicitProperties = Array.isArray((_a = result === null || result === void 0 ? void 0 : result['x-stoplight']) === null || _a === void 0 ? void 0 : _a.explicitProperties)
696
- ? result['x-stoplight'].explicitProperties
697
- : [];
698
- const isNumericType = result.type === 'integer' || result.type === 'number';
699
- const formatRange = OAS_FORMAT_RANGES[result.format];
700
- const hasExplicitMinimum = explicitProperties.includes('minimum') && result.minimum !== (formatRange === null || formatRange === void 0 ? void 0 : formatRange.minimum);
701
- const hasExplicitMaximum = explicitProperties.includes('maximum') && result.maximum !== (formatRange === null || formatRange === void 0 ? void 0 : formatRange.maximum);
702
- if (isNumericType && !hasExplicitMinimum) {
703
- delete result.minimum;
704
- }
705
- if (isNumericType && !hasExplicitMaximum) {
706
- delete result.maximum;
707
- }
708
- if (result.properties && isPlainObject$1(result.properties)) {
709
- result.properties = Object.fromEntries(Object.entries(result.properties).map(([key, value]) => [key, stripInferredNumericBounds(value)]));
710
- }
711
- if (Array.isArray(result.items)) {
712
- result.items = result.items.map((item) => stripInferredNumericBounds(item));
713
- }
714
- else if (result.items) {
715
- result.items = stripInferredNumericBounds(result.items);
716
- }
717
- if (Array.isArray(result.allOf)) {
718
- result.allOf = result.allOf.map((item) => stripInferredNumericBounds(item));
719
- }
720
- if (Array.isArray(result.oneOf)) {
721
- result.oneOf = result.oneOf.map((item) => stripInferredNumericBounds(item));
722
- }
723
- if (Array.isArray(result.anyOf)) {
724
- result.anyOf = result.anyOf.map((item) => stripInferredNumericBounds(item));
725
- }
726
- return result;
727
- };
728
- const FLOAT_ZERO_MARKER = '__FLOAT_ZERO__';
729
- const markFloatZeros = (value, schema) => {
730
- if (!isPlainObject$1(schema))
731
- return value;
732
- if (Array.isArray(schema.allOf)) {
733
- return schema.allOf.reduce((currentValue, item) => markFloatZeros(currentValue, item), value);
734
- }
735
- if (Array.isArray(schema.oneOf) && schema.oneOf.length > 0) {
736
- return markFloatZeros(value, schema.oneOf[0]);
737
- }
738
- if (Array.isArray(schema.anyOf) && schema.anyOf.length > 0) {
739
- return markFloatZeros(value, schema.anyOf[0]);
740
- }
741
- if (schema.type === 'number' && (schema.format === 'float' || schema.format === 'double') && value === 0) {
742
- return FLOAT_ZERO_MARKER;
743
- }
744
- if (isPlainObject$1(value) && isPlainObject$1(schema.properties)) {
745
- return Object.fromEntries(Object.entries(value).map(([k, v]) => { var _a; return [k, markFloatZeros(v, (_a = schema.properties[k]) !== null && _a !== void 0 ? _a : {})]; }));
746
- }
747
- if (Array.isArray(value) && schema.items && !Array.isArray(schema.items)) {
748
- return value.map((item) => markFloatZeros(item, schema.items));
749
- }
750
- return value;
751
- };
752
- const stringifyWithFloatZeros = (value) => {
753
- var _a;
754
- if (value === FLOAT_ZERO_MARKER)
755
- return '0.0';
756
- return ((_a = safeStringify(value, undefined, 2)) !== null && _a !== void 0 ? _a : '').replace(/"__FLOAT_ZERO__"/g, '0.0');
757
- };
758
- const normalizeInferredNumericBounds = (value, schema) => {
759
- var _a;
760
- if (!isPlainObject$1(schema))
761
- return value;
762
- const schemaObject = schema;
763
- if (Array.isArray(schemaObject.allOf)) {
764
- return schemaObject.allOf.reduce((currentValue, item) => normalizeInferredNumericBounds(currentValue, item), value);
765
- }
766
- if (Array.isArray(schemaObject.oneOf) && schemaObject.oneOf.length > 0) {
767
- return normalizeInferredNumericBounds(value, schemaObject.oneOf[0]);
768
- }
769
- if (Array.isArray(schemaObject.anyOf) && schemaObject.anyOf.length > 0) {
770
- return normalizeInferredNumericBounds(value, schemaObject.anyOf[0]);
771
- }
772
- const explicitProperties = Array.isArray((_a = schemaObject === null || schemaObject === void 0 ? void 0 : schemaObject['x-stoplight']) === null || _a === void 0 ? void 0 : _a.explicitProperties)
773
- ? schemaObject['x-stoplight'].explicitProperties
774
- : [];
775
- const isNumericType = schemaObject.type === 'integer' || schemaObject.type === 'number';
776
- const formatRange = OAS_FORMAT_RANGES[schemaObject.format];
777
- const hasExplicitMinimum = explicitProperties.includes('minimum') && schemaObject.minimum !== (formatRange === null || formatRange === void 0 ? void 0 : formatRange.minimum);
778
- const hasExplicitMaximum = explicitProperties.includes('maximum') && schemaObject.maximum !== (formatRange === null || formatRange === void 0 ? void 0 : formatRange.maximum);
779
- if (isNumericType &&
780
- formatRange &&
781
- ((!hasExplicitMinimum && value === formatRange.minimum) || (!hasExplicitMaximum && value === formatRange.maximum))) {
782
- return schemaObject.type === 'number' && (schemaObject.format === 'float' || schemaObject.format === 'double')
783
- ? FLOAT_ZERO_MARKER
784
- : 0;
785
- }
786
- if (isPlainObject$1(value) && isPlainObject$1(schemaObject.properties)) {
787
- return Object.fromEntries(Object.entries(value).map(([key, nestedValue]) => {
788
- var _a;
789
- return [
790
- key,
791
- normalizeInferredNumericBounds(nestedValue, (_a = schemaObject.properties[key]) !== null && _a !== void 0 ? _a : {}),
792
- ];
793
- }));
794
- }
795
- if (Array.isArray(value) && schemaObject.items && !Array.isArray(schemaObject.items)) {
796
- return value.map((item) => normalizeInferredNumericBounds(item, schemaObject.items));
797
- }
798
- if (Array.isArray(value) && Array.isArray(schemaObject.items)) {
799
- return value.map((item, index) => normalizeInferredNumericBounds(item, schemaObject.items[index]));
800
- }
801
- return value;
802
- };
803
- const stringifyExampleWithResolvedSchema = (value, schema) => {
804
- const normalizedValue = normalizeInferredNumericBounds(value, schema);
805
- return stringifyWithFloatZeros(markFloatZeros(normalizedValue, schema));
806
- };
807
- const useGenerateExampleFromMediaTypeContent = (mediaTypeContent, chosenExampleIndex, { skipReadOnly, skipWriteOnly, skipNonRequired, ticks } = {}) => {
808
- const document = useDocument();
809
- return React__default.useMemo(() => generateExampleFromMediaTypeContent(mediaTypeContent, document, chosenExampleIndex, {
810
- skipNonRequired,
811
- skipWriteOnly,
812
- skipReadOnly,
813
- ticks: ticks || 6000,
814
- }), [mediaTypeContent, document, chosenExampleIndex, skipNonRequired, skipWriteOnly, skipReadOnly, ticks]);
815
- };
816
- const generateExampleFromMediaTypeContent = (mediaTypeContent, document, chosenExampleIndex = 0, options) => {
817
- var _a;
818
- const textRequestBodySchema = mediaTypeContent === null || mediaTypeContent === void 0 ? void 0 : mediaTypeContent.schema;
819
- const textRequestBodyExamples = mediaTypeContent === null || mediaTypeContent === void 0 ? void 0 : mediaTypeContent.examples;
820
- try {
821
- if (textRequestBodyExamples === null || textRequestBodyExamples === void 0 ? void 0 : textRequestBodyExamples.length) {
822
- return ((_a = safeStringify(textRequestBodyExamples === null || textRequestBodyExamples === void 0 ? void 0 : textRequestBodyExamples[chosenExampleIndex]['value'], undefined, 2)) !== null && _a !== void 0 ? _a : '');
823
- }
824
- else if (textRequestBodySchema) {
825
- let unwrappedSchema = getResolvedObject(textRequestBodySchema);
826
- unwrappedSchema = stripInferredNumericBounds(unwrappedSchema);
827
- unwrappedSchema = mergeOneOfAnyOf(unwrappedSchema);
828
- const generated = Sampler.sample(unwrappedSchema, options, document);
829
- if (generated === null)
830
- return '';
831
- return stringifyExampleWithResolvedSchema(generated, unwrappedSchema);
832
- }
833
- }
834
- catch (e) {
835
- console.warn(e);
836
- return `Example cannot be created for this schema\n${e}`;
837
- }
838
- return '';
839
- };
840
- const generateExamplesFromJsonSchema = (schema) => {
841
- var _a;
842
- const examples = [];
843
- if (Array.isArray(schema === null || schema === void 0 ? void 0 : schema.examples)) {
844
- schema.examples.forEach((example, index) => {
845
- var _a;
846
- examples.push({
847
- data: (_a = safeStringify(example, undefined, 2)) !== null && _a !== void 0 ? _a : '',
848
- label: index === 0 ? 'default' : `example-${index}`,
849
- });
850
- });
851
- }
852
- else if (isPlainObject$1(schema === null || schema === void 0 ? void 0 : schema['x-examples'])) {
853
- for (const [label, example] of Object.entries(schema['x-examples'])) {
854
- if (isPlainObject$1(example)) {
855
- const val = example.hasOwnProperty('value') && Object.keys(example).length === 1 ? example.value : example;
856
- examples.push({
857
- label,
858
- data: (_a = safeStringify(val, undefined, 2)) !== null && _a !== void 0 ? _a : '',
859
- });
860
- }
861
- }
862
- }
863
- if (examples.length) {
864
- return examples;
865
- }
866
- try {
867
- let resolvedSchema = getResolvedObject(schema);
868
- resolvedSchema = stripInferredNumericBounds(resolvedSchema);
869
- resolvedSchema = mergeOneOfAnyOf(resolvedSchema);
870
- const generated = Sampler.sample(resolvedSchema, {
871
- maxSampleDepth: 4,
872
- ticks: 6000,
873
- });
874
- return generated !== null
875
- ? [
876
- {
877
- label: 'default',
878
- data: stringifyExampleWithResolvedSchema(generated, resolvedSchema),
879
- },
880
- ]
881
- : [{ label: 'default', data: '' }];
882
- }
883
- catch (e) {
884
- return [{ label: '', data: `Example cannot be created for this schema\n${e}` }];
885
- }
886
- };
887
- const exceedsSize = (example, size = 500) => {
888
- return example.split(/\r\n|\r|\n/).length > size;
889
- };
890
-
891
655
  function isValidServer(server) {
892
656
  return server.url !== null;
893
657
  }
@@ -2054,6 +1818,114 @@ function ExampleMenu({ examples, requestBody, onChange }) {
2054
1818
  return (React.createElement(Menu, { "aria-label": "Examples", items: menuItems, renderTrigger: ({ isOpen }) => (React.createElement(Button, { appearance: "minimal", size: "sm", iconRight: ['fas', 'sort'], active: isOpen }, "Examples")) }));
2055
1819
  }
2056
1820
 
1821
+ const mergeOneOfAnyOf = (schema) => {
1822
+ if (!isPlainObject$1(schema)) {
1823
+ return schema;
1824
+ }
1825
+ let result = Object.assign({}, schema);
1826
+ if (result.oneOf && result.oneOf.length > 0) {
1827
+ const firstOption = result.oneOf[0];
1828
+ const { oneOf } = result, rest = __rest(result, ["oneOf"]);
1829
+ result = Object.assign(Object.assign({}, rest), firstOption);
1830
+ }
1831
+ else if (result.anyOf && result.anyOf.length > 0) {
1832
+ const firstOption = result.anyOf[0];
1833
+ const { anyOf } = result, rest = __rest(result, ["anyOf"]);
1834
+ result = Object.assign(Object.assign({}, rest), firstOption);
1835
+ }
1836
+ if (result.properties) {
1837
+ result.properties = Object.fromEntries(Object.entries(result.properties).map(([key, value]) => [key, mergeOneOfAnyOf(value)]));
1838
+ }
1839
+ if (result.items) {
1840
+ result.items = mergeOneOfAnyOf(result.items);
1841
+ }
1842
+ if (result.allOf) {
1843
+ result.allOf = result.allOf.map((item) => mergeOneOfAnyOf(item));
1844
+ }
1845
+ delete result.oneOf;
1846
+ delete result.anyOf;
1847
+ return result;
1848
+ };
1849
+ const useGenerateExampleFromMediaTypeContent = (mediaTypeContent, chosenExampleIndex, { skipReadOnly, skipWriteOnly, skipNonRequired, ticks } = {}) => {
1850
+ const document = useDocument();
1851
+ return React__default.useMemo(() => generateExampleFromMediaTypeContent(mediaTypeContent, document, chosenExampleIndex, {
1852
+ skipNonRequired,
1853
+ skipWriteOnly,
1854
+ skipReadOnly,
1855
+ ticks: ticks || 6000,
1856
+ }), [mediaTypeContent, document, chosenExampleIndex, skipNonRequired, skipWriteOnly, skipReadOnly, ticks]);
1857
+ };
1858
+ const generateExampleFromMediaTypeContent = (mediaTypeContent, document, chosenExampleIndex = 0, options) => {
1859
+ var _a, _b;
1860
+ const textRequestBodySchema = mediaTypeContent === null || mediaTypeContent === void 0 ? void 0 : mediaTypeContent.schema;
1861
+ const textRequestBodyExamples = mediaTypeContent === null || mediaTypeContent === void 0 ? void 0 : mediaTypeContent.examples;
1862
+ try {
1863
+ if (textRequestBodyExamples === null || textRequestBodyExamples === void 0 ? void 0 : textRequestBodyExamples.length) {
1864
+ return ((_a = safeStringify(textRequestBodyExamples === null || textRequestBodyExamples === void 0 ? void 0 : textRequestBodyExamples[chosenExampleIndex]['value'], undefined, 2)) !== null && _a !== void 0 ? _a : '');
1865
+ }
1866
+ else if (textRequestBodySchema) {
1867
+ let unwrappedSchema = getResolvedObject(textRequestBodySchema);
1868
+ unwrappedSchema = mergeOneOfAnyOf(unwrappedSchema);
1869
+ const generated = Sampler.sample(unwrappedSchema, options, document);
1870
+ return generated !== null ? (_b = safeStringify(generated, undefined, 2)) !== null && _b !== void 0 ? _b : '' : '';
1871
+ }
1872
+ }
1873
+ catch (e) {
1874
+ console.warn(e);
1875
+ return `Example cannot be created for this schema\n${e}`;
1876
+ }
1877
+ return '';
1878
+ };
1879
+ const generateExamplesFromJsonSchema = (schema) => {
1880
+ var _a, _b;
1881
+ const examples = [];
1882
+ if (Array.isArray(schema === null || schema === void 0 ? void 0 : schema.examples)) {
1883
+ schema.examples.forEach((example, index) => {
1884
+ var _a;
1885
+ examples.push({
1886
+ data: (_a = safeStringify(example, undefined, 2)) !== null && _a !== void 0 ? _a : '',
1887
+ label: index === 0 ? 'default' : `example-${index}`,
1888
+ });
1889
+ });
1890
+ }
1891
+ else if (isPlainObject$1(schema === null || schema === void 0 ? void 0 : schema['x-examples'])) {
1892
+ for (const [label, example] of Object.entries(schema['x-examples'])) {
1893
+ if (isPlainObject$1(example)) {
1894
+ const val = example.hasOwnProperty('value') && Object.keys(example).length === 1 ? example.value : example;
1895
+ examples.push({
1896
+ label,
1897
+ data: (_a = safeStringify(val, undefined, 2)) !== null && _a !== void 0 ? _a : '',
1898
+ });
1899
+ }
1900
+ }
1901
+ }
1902
+ if (examples.length) {
1903
+ return examples;
1904
+ }
1905
+ try {
1906
+ let resolvedSchema = getResolvedObject(schema);
1907
+ resolvedSchema = mergeOneOfAnyOf(resolvedSchema);
1908
+ const generated = Sampler.sample(resolvedSchema, {
1909
+ maxSampleDepth: 4,
1910
+ ticks: 6000,
1911
+ });
1912
+ return generated !== null
1913
+ ? [
1914
+ {
1915
+ label: 'default',
1916
+ data: (_b = safeStringify(generated, undefined, 2)) !== null && _b !== void 0 ? _b : '',
1917
+ },
1918
+ ]
1919
+ : [{ label: 'default', data: '' }];
1920
+ }
1921
+ catch (e) {
1922
+ return [{ label: '', data: `Example cannot be created for this schema\n${e}` }];
1923
+ }
1924
+ };
1925
+ const exceedsSize = (example, size = 500) => {
1926
+ return example.split(/\r\n|\r|\n/).length > size;
1927
+ };
1928
+
2057
1929
  const useTextRequestBodyState = (mediaTypeContent, skipReadOnly) => {
2058
1930
  const initialRequestBody = useGenerateExampleFromMediaTypeContent(mediaTypeContent, undefined, {
2059
1931
  skipReadOnly,
@@ -2538,7 +2410,7 @@ const TryItResponse = ({ response }) => {
2538
2410
  React.createElement(Panel.Content, null,
2539
2411
  React.createElement("div", null,
2540
2412
  React.createElement("div", { className: `sl-mb-3 sl-text-${getHttpCodeColor(response.status)}` }, `${response.status} ${(_a = HttpCodeDescriptions[response.status]) !== null && _a !== void 0 ? _a : ''}`),
2541
- response.bodyText && responseType && ['json', 'xml', 'text'].includes(responseType) ? (React.createElement(ResponseCodeViewer, { language: "json", value: responseType && bodyFormat === 'preview' && !response.skipBodyParsing
2413
+ response.bodyText && responseType && ['json', 'xml', 'text'].includes(responseType) ? (React.createElement(ResponseCodeViewer, { language: "json", value: responseType && bodyFormat === 'preview'
2542
2414
  ? parseBody(response.bodyText, responseType)
2543
2415
  : response.bodyText })) : response.blob && responseType === 'image' ? (React.createElement(Flex, { justifyContent: "center" },
2544
2416
  React.createElement(Image, { src: URL.createObjectURL(response.blob), alt: "response image" }))) : !response.bodyText ? null : (React.createElement("p", null,
@@ -2720,7 +2592,6 @@ const TryIt = ({ httpOperation, mockUrl, onRequestChange, requestBodyIndex, embe
2720
2592
  embeddedInMd,
2721
2593
  ]);
2722
2594
  const handleSendRequest = () => __awaiter(void 0, void 0, void 0, function* () {
2723
- var _g, _h, _j;
2724
2595
  setValidateParameters(true);
2725
2596
  if (hasRequiredButEmptyParameters || !isHttpOperation(httpOperation))
2726
2597
  return;
@@ -2753,29 +2624,14 @@ const TryIt = ({ httpOperation, mockUrl, onRequestChange, requestBodyIndex, embe
2753
2624
  if (response) {
2754
2625
  const contentType = response.headers.get('Content-Type');
2755
2626
  const type = contentType ? getResponseType(contentType) : undefined;
2756
- let bodyText = type !== 'image' ? yield response.text() : undefined;
2627
+ const bodyText = type !== 'image' ? yield response.text() : undefined;
2757
2628
  const blob = type === 'image' ? yield response.blob() : undefined;
2758
- let skipBodyParsing = false;
2759
- if (mockData && type === 'json' && bodyText) {
2760
- const responseMediaType = contentType === null || contentType === void 0 ? void 0 : contentType.split(';')[0];
2761
- const responseSchema = (_j = (_h = (_g = httpOperation.responses
2762
- .find(({ code }) => code === String(response === null || response === void 0 ? void 0 : response.status))) === null || _g === void 0 ? void 0 : _g.contents) === null || _h === void 0 ? void 0 : _h.find(({ mediaType }) => mediaType === responseMediaType)) === null || _j === void 0 ? void 0 : _j.schema;
2763
- if (responseSchema) {
2764
- try {
2765
- bodyText = stringifyExampleWithResolvedSchema(JSON.parse(bodyText), responseSchema);
2766
- skipBodyParsing = true;
2767
- }
2768
- catch (_k) {
2769
- }
2770
- }
2771
- }
2772
2629
  setResponse(undefined);
2773
2630
  setResponse({
2774
2631
  status: response.status,
2775
2632
  bodyText,
2776
2633
  blob,
2777
2634
  contentType,
2778
- skipBodyParsing,
2779
2635
  });
2780
2636
  }
2781
2637
  }