@stoplight/elements-core 7.5.3 → 7.5.7

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.
@@ -0,0 +1,3 @@
1
+ import { IHttpOperation } from '@stoplight/types';
2
+ export declare const httpOperation: IHttpOperation;
3
+ export default httpOperation;
package/index.esm.js CHANGED
@@ -987,7 +987,7 @@ const booleanOptions = [
987
987
  { label: 'True', value: 'true' },
988
988
  ];
989
989
  function enumOptions(enumValues, required) {
990
- const options = map(enumValues, v => ({ value: Number.isNaN(Number(v)) ? String(v) : Number(v) }));
990
+ const options = map(enumValues, v => ({ value: typeof v === 'number' ? v : String(v) }));
991
991
  return required ? options : [{ label: 'Not Set', value: '' }, ...options];
992
992
  }
993
993
  function parameterOptions(parameter) {
@@ -1015,7 +1015,11 @@ function parameterSupportsFileUpload(parameter) {
1015
1015
  ((_c = parameter.schema) === null || _c === void 0 ? void 0 : _c.contentMediaType) === 'application/octet-stream'));
1016
1016
  }
1017
1017
  function exampleValue(example) {
1018
- return 'value' in example ? String(example.value) : String(example.externalValue);
1018
+ const value = 'value' in example ? example.value : example.externalValue;
1019
+ return escapeQuotes(String(value));
1020
+ }
1021
+ function escapeQuotes(value) {
1022
+ return value.replace(/"/g, '\\"');
1019
1023
  }
1020
1024
  function getPlaceholderForParameter(parameter) {
1021
1025
  var _a, _b;
@@ -1316,7 +1320,9 @@ function buildFetchRequest({ httpOperation, mediaTypeContent, bodyInput, paramet
1316
1320
  const serverUrl = getServerUrl({ httpOperation, mockData, chosenServer, corsProxy });
1317
1321
  const shouldIncludeBody = ['PUT', 'POST', 'PATCH'].includes(httpOperation.method.toUpperCase());
1318
1322
  const queryParams = (_c = (_b = (_a = httpOperation.request) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.map(param => { var _a; return ({ name: param.name, value: (_a = parameterValues[param.name]) !== null && _a !== void 0 ? _a : '' }); }).filter(({ value }) => value.length > 0)) !== null && _c !== void 0 ? _c : [];
1319
- const rawHeaders = filterOutAuthorizationParams((_e = (_d = httpOperation.request) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : [], httpOperation.security).map(header => { var _a; return ({ name: header.name, value: (_a = parameterValues[header.name]) !== null && _a !== void 0 ? _a : '' }); });
1323
+ const rawHeaders = filterOutAuthorizationParams((_e = (_d = httpOperation.request) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : [], httpOperation.security)
1324
+ .map(header => { var _a; return ({ name: header.name, value: (_a = parameterValues[header.name]) !== null && _a !== void 0 ? _a : '' }); })
1325
+ .filter(({ value }) => value.length > 0);
1320
1326
  const [queryParamsWithAuth, headersWithAuth] = runAuthRequestEhancements(auth, queryParams, rawHeaders);
1321
1327
  const expandedPath = uriExpand(httpOperation.path, parameterValues);
1322
1328
  const url = new URL(URI(serverUrl).segment(expandedPath).toString());
@@ -2008,7 +2014,7 @@ const Body = ({ body, onChange }) => {
2008
2014
  React.createElement(SectionSubtitle, { title: "Body", id: "request-body" }, contents.length > 0 && (React.createElement(Flex, { flex: 1, justify: "end" },
2009
2015
  React.createElement(Select, { "aria-label": "Request 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" })))),
2010
2016
  description && React.createElement(MarkdownViewer, { markdown: description }),
2011
- isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, schema: getOriginalObject(schema), viewMode: "write", hideExamples: true, renderRootTreeLines: true }))));
2017
+ isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, schema: getOriginalObject(schema), viewMode: "write", renderRootTreeLines: true }))));
2012
2018
  };
2013
2019
  Body.displayName = 'HttpOperation.Body';
2014
2020
 
@@ -2142,7 +2148,7 @@ const Response = ({ response, onMediaTypeChange }) => {
2142
2148
  React.createElement(SectionSubtitle, { title: "Body", id: "response-body" },
2143
2149
  React.createElement(Flex, { flex: 1, justify: "end" },
2144
2150
  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" }))),
2145
- schema && (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, viewMode: "read", hideExamples: true, parentCrumbs: ['responses', response.code], renderRootTreeLines: true }))))));
2151
+ schema && (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true }))))));
2146
2152
  };
2147
2153
  Response.displayName = 'HttpOperation.Response';
2148
2154
  const codeToIntentVal = (code) => {
@@ -2465,23 +2471,40 @@ function parseHttpRequest(data) {
2465
2471
  method: data.method,
2466
2472
  path: uri.is('absolute') ? uri.path() : data.url,
2467
2473
  servers: [{ url: uri.is('absolute') ? uri.origin() : data.baseUrl || '' }],
2468
- request: Object.assign({ query: Object.entries(data.query || {}).map(([key, value]) => ({
2469
- name: key,
2470
- style: HttpParamStyles.Form,
2471
- schema: { default: Array.isArray(value) && value.length > 0 ? value[0] : value },
2472
- })), headers: Object.entries(data.headers || {}).map(([key, value]) => ({
2474
+ request: Object.assign({ query: Object.entries(data.query || {}).map(([key, value]) => {
2475
+ const defaultVal = Array.isArray(value) ? value[0] : value;
2476
+ return {
2477
+ name: key,
2478
+ style: HttpParamStyles.Form,
2479
+ schema: { default: defaultVal },
2480
+ required: isHttpRequestParamRequired(defaultVal),
2481
+ };
2482
+ }), headers: Object.entries(data.headers || {}).map(([key, value]) => ({
2473
2483
  name: key,
2474
2484
  style: HttpParamStyles.Simple,
2475
2485
  schema: { default: value },
2486
+ required: isHttpRequestParamRequired(value),
2476
2487
  })), path: pathParam === null || pathParam === void 0 ? void 0 : pathParam.map(name => ({
2477
2488
  name,
2478
2489
  style: HttpParamStyles.Simple,
2479
2490
  required: true,
2480
2491
  })) }, (data.body
2481
- ? { body: { contents: [{ mediaType: 'application/json', schema: { default: data.body } }] } }
2492
+ ? {
2493
+ body: {
2494
+ contents: [
2495
+ {
2496
+ mediaType: 'application/json',
2497
+ schema: { default: data.body },
2498
+ },
2499
+ ],
2500
+ },
2501
+ }
2482
2502
  : null)),
2483
2503
  responses: [],
2484
2504
  };
2505
+ }
2506
+ function isHttpRequestParamRequired(value) {
2507
+ return typeof value !== 'undefined';
2485
2508
  }
2486
2509
 
2487
2510
  const MarkdownComponentsProvider = ({ value, children }) => {
package/index.js CHANGED
@@ -1042,7 +1042,7 @@ const booleanOptions = [
1042
1042
  { label: 'True', value: 'true' },
1043
1043
  ];
1044
1044
  function enumOptions(enumValues, required) {
1045
- const options = map__default["default"](enumValues, v => ({ value: Number.isNaN(Number(v)) ? String(v) : Number(v) }));
1045
+ const options = map__default["default"](enumValues, v => ({ value: typeof v === 'number' ? v : String(v) }));
1046
1046
  return required ? options : [{ label: 'Not Set', value: '' }, ...options];
1047
1047
  }
1048
1048
  function parameterOptions(parameter) {
@@ -1070,7 +1070,11 @@ function parameterSupportsFileUpload(parameter) {
1070
1070
  ((_c = parameter.schema) === null || _c === void 0 ? void 0 : _c.contentMediaType) === 'application/octet-stream'));
1071
1071
  }
1072
1072
  function exampleValue(example) {
1073
- return 'value' in example ? String(example.value) : String(example.externalValue);
1073
+ const value = 'value' in example ? example.value : example.externalValue;
1074
+ return escapeQuotes(String(value));
1075
+ }
1076
+ function escapeQuotes(value) {
1077
+ return value.replace(/"/g, '\\"');
1074
1078
  }
1075
1079
  function getPlaceholderForParameter(parameter) {
1076
1080
  var _a, _b;
@@ -1371,7 +1375,9 @@ function buildFetchRequest({ httpOperation, mediaTypeContent, bodyInput, paramet
1371
1375
  const serverUrl = getServerUrl({ httpOperation, mockData, chosenServer, corsProxy });
1372
1376
  const shouldIncludeBody = ['PUT', 'POST', 'PATCH'].includes(httpOperation.method.toUpperCase());
1373
1377
  const queryParams = (_c = (_b = (_a = httpOperation.request) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.map(param => { var _a; return ({ name: param.name, value: (_a = parameterValues[param.name]) !== null && _a !== void 0 ? _a : '' }); }).filter(({ value }) => value.length > 0)) !== null && _c !== void 0 ? _c : [];
1374
- const rawHeaders = filterOutAuthorizationParams((_e = (_d = httpOperation.request) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : [], httpOperation.security).map(header => { var _a; return ({ name: header.name, value: (_a = parameterValues[header.name]) !== null && _a !== void 0 ? _a : '' }); });
1378
+ const rawHeaders = filterOutAuthorizationParams((_e = (_d = httpOperation.request) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : [], httpOperation.security)
1379
+ .map(header => { var _a; return ({ name: header.name, value: (_a = parameterValues[header.name]) !== null && _a !== void 0 ? _a : '' }); })
1380
+ .filter(({ value }) => value.length > 0);
1375
1381
  const [queryParamsWithAuth, headersWithAuth] = runAuthRequestEhancements(auth, queryParams, rawHeaders);
1376
1382
  const expandedPath = uriExpand(httpOperation.path, parameterValues);
1377
1383
  const url = new URL(URI__default["default"](serverUrl).segment(expandedPath).toString());
@@ -2063,7 +2069,7 @@ const Body = ({ body, onChange }) => {
2063
2069
  React__namespace.createElement(SectionSubtitle, { title: "Body", id: "request-body" }, contents.length > 0 && (React__namespace.createElement(mosaic.Flex, { flex: 1, justify: "end" },
2064
2070
  React__namespace.createElement(mosaic.Select, { "aria-label": "Request 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" })))),
2065
2071
  description && React__namespace.createElement(MarkdownViewer, { markdown: description }),
2066
- isJSONSchema(schema) && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: refResolver, schema: getOriginalObject(schema), viewMode: "write", hideExamples: true, renderRootTreeLines: true }))));
2072
+ isJSONSchema(schema) && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: refResolver, schema: getOriginalObject(schema), viewMode: "write", renderRootTreeLines: true }))));
2067
2073
  };
2068
2074
  Body.displayName = 'HttpOperation.Body';
2069
2075
 
@@ -2197,7 +2203,7 @@ const Response = ({ response, onMediaTypeChange }) => {
2197
2203
  React__namespace.createElement(SectionSubtitle, { title: "Body", id: "response-body" },
2198
2204
  React__namespace.createElement(mosaic.Flex, { flex: 1, justify: "end" },
2199
2205
  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" }))),
2200
- schema && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, viewMode: "read", hideExamples: true, parentCrumbs: ['responses', response.code], renderRootTreeLines: true }))))));
2206
+ schema && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true }))))));
2201
2207
  };
2202
2208
  Response.displayName = 'HttpOperation.Response';
2203
2209
  const codeToIntentVal = (code) => {
@@ -2520,23 +2526,40 @@ function parseHttpRequest(data) {
2520
2526
  method: data.method,
2521
2527
  path: uri.is('absolute') ? uri.path() : data.url,
2522
2528
  servers: [{ url: uri.is('absolute') ? uri.origin() : data.baseUrl || '' }],
2523
- request: Object.assign({ query: Object.entries(data.query || {}).map(([key, value]) => ({
2524
- name: key,
2525
- style: types.HttpParamStyles.Form,
2526
- schema: { default: Array.isArray(value) && value.length > 0 ? value[0] : value },
2527
- })), headers: Object.entries(data.headers || {}).map(([key, value]) => ({
2529
+ request: Object.assign({ query: Object.entries(data.query || {}).map(([key, value]) => {
2530
+ const defaultVal = Array.isArray(value) ? value[0] : value;
2531
+ return {
2532
+ name: key,
2533
+ style: types.HttpParamStyles.Form,
2534
+ schema: { default: defaultVal },
2535
+ required: isHttpRequestParamRequired(defaultVal),
2536
+ };
2537
+ }), headers: Object.entries(data.headers || {}).map(([key, value]) => ({
2528
2538
  name: key,
2529
2539
  style: types.HttpParamStyles.Simple,
2530
2540
  schema: { default: value },
2541
+ required: isHttpRequestParamRequired(value),
2531
2542
  })), path: pathParam === null || pathParam === void 0 ? void 0 : pathParam.map(name => ({
2532
2543
  name,
2533
2544
  style: types.HttpParamStyles.Simple,
2534
2545
  required: true,
2535
2546
  })) }, (data.body
2536
- ? { body: { contents: [{ mediaType: 'application/json', schema: { default: data.body } }] } }
2547
+ ? {
2548
+ body: {
2549
+ contents: [
2550
+ {
2551
+ mediaType: 'application/json',
2552
+ schema: { default: data.body },
2553
+ },
2554
+ ],
2555
+ },
2556
+ }
2537
2557
  : null)),
2538
2558
  responses: [],
2539
2559
  };
2560
+ }
2561
+ function isHttpRequestParamRequired(value) {
2562
+ return typeof value !== 'undefined';
2540
2563
  }
2541
2564
 
2542
2565
  const MarkdownComponentsProvider = ({ value, children }) => {
package/index.mjs CHANGED
@@ -987,7 +987,7 @@ const booleanOptions = [
987
987
  { label: 'True', value: 'true' },
988
988
  ];
989
989
  function enumOptions(enumValues, required) {
990
- const options = map(enumValues, v => ({ value: Number.isNaN(Number(v)) ? String(v) : Number(v) }));
990
+ const options = map(enumValues, v => ({ value: typeof v === 'number' ? v : String(v) }));
991
991
  return required ? options : [{ label: 'Not Set', value: '' }, ...options];
992
992
  }
993
993
  function parameterOptions(parameter) {
@@ -1015,7 +1015,11 @@ function parameterSupportsFileUpload(parameter) {
1015
1015
  ((_c = parameter.schema) === null || _c === void 0 ? void 0 : _c.contentMediaType) === 'application/octet-stream'));
1016
1016
  }
1017
1017
  function exampleValue(example) {
1018
- return 'value' in example ? String(example.value) : String(example.externalValue);
1018
+ const value = 'value' in example ? example.value : example.externalValue;
1019
+ return escapeQuotes(String(value));
1020
+ }
1021
+ function escapeQuotes(value) {
1022
+ return value.replace(/"/g, '\\"');
1019
1023
  }
1020
1024
  function getPlaceholderForParameter(parameter) {
1021
1025
  var _a, _b;
@@ -1316,7 +1320,9 @@ function buildFetchRequest({ httpOperation, mediaTypeContent, bodyInput, paramet
1316
1320
  const serverUrl = getServerUrl({ httpOperation, mockData, chosenServer, corsProxy });
1317
1321
  const shouldIncludeBody = ['PUT', 'POST', 'PATCH'].includes(httpOperation.method.toUpperCase());
1318
1322
  const queryParams = (_c = (_b = (_a = httpOperation.request) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.map(param => { var _a; return ({ name: param.name, value: (_a = parameterValues[param.name]) !== null && _a !== void 0 ? _a : '' }); }).filter(({ value }) => value.length > 0)) !== null && _c !== void 0 ? _c : [];
1319
- const rawHeaders = filterOutAuthorizationParams((_e = (_d = httpOperation.request) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : [], httpOperation.security).map(header => { var _a; return ({ name: header.name, value: (_a = parameterValues[header.name]) !== null && _a !== void 0 ? _a : '' }); });
1323
+ const rawHeaders = filterOutAuthorizationParams((_e = (_d = httpOperation.request) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : [], httpOperation.security)
1324
+ .map(header => { var _a; return ({ name: header.name, value: (_a = parameterValues[header.name]) !== null && _a !== void 0 ? _a : '' }); })
1325
+ .filter(({ value }) => value.length > 0);
1320
1326
  const [queryParamsWithAuth, headersWithAuth] = runAuthRequestEhancements(auth, queryParams, rawHeaders);
1321
1327
  const expandedPath = uriExpand(httpOperation.path, parameterValues);
1322
1328
  const url = new URL(URI(serverUrl).segment(expandedPath).toString());
@@ -2008,7 +2014,7 @@ const Body = ({ body, onChange }) => {
2008
2014
  React.createElement(SectionSubtitle, { title: "Body", id: "request-body" }, contents.length > 0 && (React.createElement(Flex, { flex: 1, justify: "end" },
2009
2015
  React.createElement(Select, { "aria-label": "Request 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" })))),
2010
2016
  description && React.createElement(MarkdownViewer, { markdown: description }),
2011
- isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, schema: getOriginalObject(schema), viewMode: "write", hideExamples: true, renderRootTreeLines: true }))));
2017
+ isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, schema: getOriginalObject(schema), viewMode: "write", renderRootTreeLines: true }))));
2012
2018
  };
2013
2019
  Body.displayName = 'HttpOperation.Body';
2014
2020
 
@@ -2142,7 +2148,7 @@ const Response = ({ response, onMediaTypeChange }) => {
2142
2148
  React.createElement(SectionSubtitle, { title: "Body", id: "response-body" },
2143
2149
  React.createElement(Flex, { flex: 1, justify: "end" },
2144
2150
  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" }))),
2145
- schema && (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, viewMode: "read", hideExamples: true, parentCrumbs: ['responses', response.code], renderRootTreeLines: true }))))));
2151
+ schema && (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true }))))));
2146
2152
  };
2147
2153
  Response.displayName = 'HttpOperation.Response';
2148
2154
  const codeToIntentVal = (code) => {
@@ -2465,23 +2471,40 @@ function parseHttpRequest(data) {
2465
2471
  method: data.method,
2466
2472
  path: uri.is('absolute') ? uri.path() : data.url,
2467
2473
  servers: [{ url: uri.is('absolute') ? uri.origin() : data.baseUrl || '' }],
2468
- request: Object.assign({ query: Object.entries(data.query || {}).map(([key, value]) => ({
2469
- name: key,
2470
- style: HttpParamStyles.Form,
2471
- schema: { default: Array.isArray(value) && value.length > 0 ? value[0] : value },
2472
- })), headers: Object.entries(data.headers || {}).map(([key, value]) => ({
2474
+ request: Object.assign({ query: Object.entries(data.query || {}).map(([key, value]) => {
2475
+ const defaultVal = Array.isArray(value) ? value[0] : value;
2476
+ return {
2477
+ name: key,
2478
+ style: HttpParamStyles.Form,
2479
+ schema: { default: defaultVal },
2480
+ required: isHttpRequestParamRequired(defaultVal),
2481
+ };
2482
+ }), headers: Object.entries(data.headers || {}).map(([key, value]) => ({
2473
2483
  name: key,
2474
2484
  style: HttpParamStyles.Simple,
2475
2485
  schema: { default: value },
2486
+ required: isHttpRequestParamRequired(value),
2476
2487
  })), path: pathParam === null || pathParam === void 0 ? void 0 : pathParam.map(name => ({
2477
2488
  name,
2478
2489
  style: HttpParamStyles.Simple,
2479
2490
  required: true,
2480
2491
  })) }, (data.body
2481
- ? { body: { contents: [{ mediaType: 'application/json', schema: { default: data.body } }] } }
2492
+ ? {
2493
+ body: {
2494
+ contents: [
2495
+ {
2496
+ mediaType: 'application/json',
2497
+ schema: { default: data.body },
2498
+ },
2499
+ ],
2500
+ },
2501
+ }
2482
2502
  : null)),
2483
2503
  responses: [],
2484
2504
  };
2505
+ }
2506
+ function isHttpRequestParamRequired(value) {
2507
+ return typeof value !== 'undefined';
2485
2508
  }
2486
2509
 
2487
2510
  const MarkdownComponentsProvider = ({ value, children }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stoplight/elements-core",
3
- "version": "7.5.3",
3
+ "version": "7.5.7",
4
4
  "main": "./index.js",
5
5
  "sideEffects": [
6
6
  "web-components.min.js",
@@ -28,12 +28,12 @@
28
28
  "@stoplight/json": "^3.10.0",
29
29
  "@stoplight/json-schema-ref-parser": "^9.0.5",
30
30
  "@stoplight/json-schema-sampler": "0.2.2",
31
- "@stoplight/json-schema-viewer": "^4.4.2",
31
+ "@stoplight/json-schema-viewer": "^4.5.0",
32
32
  "@stoplight/markdown": "^3.1.1",
33
33
  "@stoplight/markdown-viewer": "^5.3.2",
34
- "@stoplight/mosaic": "^1.14.0",
35
- "@stoplight/mosaic-code-editor": "^1.14.0",
36
- "@stoplight/mosaic-code-viewer": "^1.14.0",
34
+ "@stoplight/mosaic": "^1.15.2",
35
+ "@stoplight/mosaic-code-editor": "^1.15.2",
36
+ "@stoplight/mosaic-code-viewer": "^1.15.2",
37
37
  "@stoplight/path": "^1.3.2",
38
38
  "@stoplight/react-error-boundary": "^2.0.0",
39
39
  "@stoplight/types": "^12.0.0",