@stoplight/elements-core 9.0.25-beta-0.2 → 9.0.25-beta-0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/{dist/index.esm.js → index.esm.js} +7 -2
  2. package/{dist/index.js → index.js} +7 -2
  3. package/{dist/index.mjs → index.mjs} +7 -2
  4. package/package.json +14 -74
  5. package/.storybook/main.js +0 -6
  6. package/.storybook/manager.js +0 -1
  7. package/.storybook/preview.jsx +0 -50
  8. package/dist/LICENSE +0 -190
  9. package/dist/README.md +0 -46
  10. package/dist/package.json +0 -65
  11. package/jest.config.js +0 -10
  12. package/src/__fixtures__/articles/basic.md +0 -10
  13. package/src/__fixtures__/articles/kitchen-sink.md +0 -318
  14. package/src/__fixtures__/articles/long-page-heading.md +0 -955
  15. package/src/__fixtures__/articles/multiple-try-its.md +0 -54
  16. package/src/__fixtures__/articles/schema-with-refs.ts +0 -82
  17. package/src/__fixtures__/http-request.json +0 -11
  18. package/src/__fixtures__/models/model-with-no-examples.json +0 -15
  19. package/src/__fixtures__/models/model-with-one-example.json +0 -23
  20. package/src/__fixtures__/models/model-with-three-examples.json +0 -35
  21. package/src/__fixtures__/operations/application-octet-stream-post.ts +0 -39
  22. package/src/__fixtures__/operations/base64-file-upload.ts +0 -43
  23. package/src/__fixtures__/operations/big-response.ts +0 -4690
  24. package/src/__fixtures__/operations/bundled-parameter.ts +0 -128
  25. package/src/__fixtures__/operations/empty-response.ts +0 -15
  26. package/src/__fixtures__/operations/examples-request-body.ts +0 -135
  27. package/src/__fixtures__/operations/head-todos.ts +0 -49
  28. package/src/__fixtures__/operations/invalid-response-example.ts +0 -45
  29. package/src/__fixtures__/operations/multipart-formdata-post.ts +0 -61
  30. package/src/__fixtures__/operations/operation-minimal.ts +0 -11
  31. package/src/__fixtures__/operations/operation-parameters.ts +0 -337
  32. package/src/__fixtures__/operations/operation-with-examples.ts +0 -113
  33. package/src/__fixtures__/operations/operation-without-servers.ts +0 -16
  34. package/src/__fixtures__/operations/patch-todos.ts +0 -49
  35. package/src/__fixtures__/operations/put-todos.ts +0 -862
  36. package/src/__fixtures__/operations/referenced-body.ts +0 -62
  37. package/src/__fixtures__/operations/request-body-empty-schema.ts +0 -35
  38. package/src/__fixtures__/operations/request-body.ts +0 -62
  39. package/src/__fixtures__/operations/securedOperation.ts +0 -118
  40. package/src/__fixtures__/operations/security-basic.ts +0 -24
  41. package/src/__fixtures__/operations/security-bearer.ts +0 -25
  42. package/src/__fixtures__/operations/simple-get.ts +0 -17
  43. package/src/__fixtures__/operations/simple.ts +0 -103
  44. package/src/__fixtures__/operations/string-numeric-enums.ts +0 -32
  45. package/src/__fixtures__/operations/urlencoded-post-oneof.ts +0 -81
  46. package/src/__fixtures__/operations/urlencoded-post.ts +0 -54
  47. package/src/__fixtures__/operations/vendor-extensions.ts +0 -337
  48. package/src/__fixtures__/operations/with-url-variables.ts +0 -47
  49. package/src/__fixtures__/operations/x-code-samples.ts +0 -348
  50. package/src/__fixtures__/schemas/circular.ts +0 -1906
  51. package/src/__fixtures__/schemas/contact.json +0 -293
  52. package/src/__fixtures__/schemas/media-entry.json +0 -69
  53. package/src/__fixtures__/schemas/simple.json +0 -27
  54. package/src/__fixtures__/schemas/todo-full.v1.json +0 -35
  55. package/src/__fixtures__/schemas/todo-partial.v1.json +0 -14
  56. package/src/__fixtures__/schemas/user.v1.json +0 -17
  57. package/src/__fixtures__/security-schemes/index.ts +0 -38
  58. package/src/__fixtures__/services/petstore.ts +0 -167
  59. package/src/__fixtures__/services/with-unnamed-servers.ts +0 -38
  60. package/src/__fixtures__/services/with-url-variables.ts +0 -83
  61. package/src/__fixtures__/services/without-origin.ts +0 -20
  62. package/src/__fixtures__/table-of-contents/nested.ts +0 -44
  63. package/src/__fixtures__/table-of-contents/studio-template.ts +0 -100
  64. package/src/__fixtures__/table-of-contents/studio.ts +0 -559
  65. package/src/components/Docs/Article/Article.spec.tsx +0 -38
  66. package/src/components/Docs/Article/Article.stories.tsx +0 -17
  67. package/src/components/Docs/Article/index.tsx +0 -38
  68. package/src/components/Docs/Docs.stories.tsx +0 -33
  69. package/src/components/Docs/Docs.tsx +0 -231
  70. package/src/components/Docs/HttpOperation/Badges.tsx +0 -49
  71. package/src/components/Docs/HttpOperation/Body.tsx +0 -79
  72. package/src/components/Docs/HttpOperation/Callbacks.tsx +0 -89
  73. package/src/components/Docs/HttpOperation/HttpOperation.spec.tsx +0 -787
  74. package/src/components/Docs/HttpOperation/HttpOperation.stories.ts +0 -14
  75. package/src/components/Docs/HttpOperation/HttpOperation.tsx +0 -255
  76. package/src/components/Docs/HttpOperation/Parameters.spec.tsx +0 -101
  77. package/src/components/Docs/HttpOperation/Parameters.tsx +0 -118
  78. package/src/components/Docs/HttpOperation/Request.tsx +0 -140
  79. package/src/components/Docs/HttpOperation/Responses.tsx +0 -247
  80. package/src/components/Docs/HttpOperation/index.ts +0 -1
  81. package/src/components/Docs/HttpService/AdditionalInfo.stories.ts +0 -48
  82. package/src/components/Docs/HttpService/AdditionalInfo.tsx +0 -61
  83. package/src/components/Docs/HttpService/ExportButton.tsx +0 -35
  84. package/src/components/Docs/HttpService/HttpService.spec.tsx +0 -429
  85. package/src/components/Docs/HttpService/HttpService.stories.ts +0 -14
  86. package/src/components/Docs/HttpService/HttpService.tsx +0 -99
  87. package/src/components/Docs/HttpService/SecuritySchemes.tsx +0 -82
  88. package/src/components/Docs/HttpService/ServerInfo.tsx +0 -196
  89. package/src/components/Docs/HttpService/index.ts +0 -1
  90. package/src/components/Docs/Model/Model.spec.tsx +0 -241
  91. package/src/components/Docs/Model/Model.stories.tsx +0 -16
  92. package/src/components/Docs/Model/Model.tsx +0 -160
  93. package/src/components/Docs/Model/index.ts +0 -1
  94. package/src/components/Docs/NodeVendorExtensions.tsx +0 -55
  95. package/src/components/Docs/Sections.tsx +0 -54
  96. package/src/components/Docs/Security/PanelContent.tsx +0 -38
  97. package/src/components/Docs/Security/index.ts +0 -1
  98. package/src/components/Docs/Skeleton.tsx +0 -12
  99. package/src/components/Docs/TwoColumnLayout.tsx +0 -28
  100. package/src/components/Docs/index.ts +0 -1
  101. package/src/components/Docs/story-helper.ts +0 -46
  102. package/src/components/Docs/story-renderer-helper.tsx +0 -56
  103. package/src/components/Layout/MobileTopNav.tsx +0 -78
  104. package/src/components/Layout/ResponsiveSidebarLayout.tsx +0 -175
  105. package/src/components/Layout/SidebarLayout.tsx +0 -107
  106. package/src/components/LinkHeading.tsx +0 -21
  107. package/src/components/LoadMore.tsx +0 -20
  108. package/src/components/Loading/Loading.tsx +0 -9
  109. package/src/components/Logo.tsx +0 -25
  110. package/src/components/MarkdownViewer/CustomComponents/CodeComponent.spec.ts +0 -90
  111. package/src/components/MarkdownViewer/CustomComponents/CodeComponent.tsx +0 -164
  112. package/src/components/MarkdownViewer/CustomComponents/Provider.tsx +0 -20
  113. package/src/components/MarkdownViewer/CustomComponents/ReactRouterLink.tsx +0 -27
  114. package/src/components/MarkdownViewer/CustomComponents/ResolvedImage.tsx +0 -86
  115. package/src/components/MarkdownViewer/CustomComponents/ScrollToHashElement.tsx +0 -96
  116. package/src/components/MarkdownViewer/MarkdownViewer.spec.tsx +0 -170
  117. package/src/components/MarkdownViewer/index.tsx +0 -10
  118. package/src/components/NonIdealState.tsx +0 -20
  119. package/src/components/PoweredByLink.tsx +0 -30
  120. package/src/components/RequestSamples/RequestSamples.stories.tsx +0 -67
  121. package/src/components/RequestSamples/RequestSamples.tsx +0 -246
  122. package/src/components/RequestSamples/__tests__/RequestSamples.test.tsx +0 -131
  123. package/src/components/RequestSamples/__tests__/__snapshots__/convertRequestToSample.spec.ts.snap +0 -746
  124. package/src/components/RequestSamples/__tests__/convertRequestToSample.spec.ts +0 -118
  125. package/src/components/RequestSamples/convertRequestToSample.ts +0 -56
  126. package/src/components/RequestSamples/extractCodeSamples.ts +0 -50
  127. package/src/components/RequestSamples/index.ts +0 -2
  128. package/src/components/RequestSamples/requestSampleConfigs.ts +0 -182
  129. package/src/components/ResponseExamples/ResponseExamples.spec.tsx +0 -121
  130. package/src/components/ResponseExamples/ResponseExamples.stories.tsx +0 -21
  131. package/src/components/ResponseExamples/ResponseExamples.tsx +0 -79
  132. package/src/components/TableOfContents/TableOfContents.spec.tsx +0 -699
  133. package/src/components/TableOfContents/TableOfContents.stories.tsx +0 -136
  134. package/src/components/TableOfContents/TableOfContents.tsx +0 -536
  135. package/src/components/TableOfContents/constants.ts +0 -45
  136. package/src/components/TableOfContents/index.ts +0 -2
  137. package/src/components/TableOfContents/types.ts +0 -59
  138. package/src/components/TableOfContents/utils.ts +0 -84
  139. package/src/components/TryIt/Auth/APIKeyAuth.tsx +0 -19
  140. package/src/components/TryIt/Auth/Auth.tsx +0 -169
  141. package/src/components/TryIt/Auth/AuthTokenInput.tsx +0 -37
  142. package/src/components/TryIt/Auth/BasicAuth.tsx +0 -62
  143. package/src/components/TryIt/Auth/BearerAuth.tsx +0 -19
  144. package/src/components/TryIt/Auth/DigestAuth.tsx +0 -35
  145. package/src/components/TryIt/Auth/OAuth2Auth.tsx +0 -19
  146. package/src/components/TryIt/Auth/authentication-utils.ts +0 -113
  147. package/src/components/TryIt/Body/BinaryBody.tsx +0 -52
  148. package/src/components/TryIt/Body/FormDataBody.tsx +0 -145
  149. package/src/components/TryIt/Body/RequestBody.tsx +0 -71
  150. package/src/components/TryIt/Body/__tests__/BinaryBody.test.tsx +0 -29
  151. package/src/components/TryIt/Body/__tests__/FormDataBody.test.tsx +0 -94
  152. package/src/components/TryIt/Body/request-body-utils.ts +0 -127
  153. package/src/components/TryIt/Body/useTextRequestBodyState.ts +0 -27
  154. package/src/components/TryIt/Mocking/MockingButton.tsx +0 -98
  155. package/src/components/TryIt/Mocking/mocking-utils.ts +0 -56
  156. package/src/components/TryIt/Mocking/useMockingOptions.ts +0 -6
  157. package/src/components/TryIt/Parameters/FileUploadParameterEditors.tsx +0 -62
  158. package/src/components/TryIt/Parameters/OperationParameters.tsx +0 -39
  159. package/src/components/TryIt/Parameters/ParameterEditor.tsx +0 -135
  160. package/src/components/TryIt/Parameters/__tests__/parameter-utils.spec.ts +0 -60
  161. package/src/components/TryIt/Parameters/parameter-utils.spec.ts +0 -118
  162. package/src/components/TryIt/Parameters/parameter-utils.ts +0 -245
  163. package/src/components/TryIt/Parameters/useOperationParameters.ts +0 -60
  164. package/src/components/TryIt/Response/ReponseCodeViewer.tsx +0 -28
  165. package/src/components/TryIt/Response/Response.spec.tsx +0 -174
  166. package/src/components/TryIt/Response/Response.tsx +0 -173
  167. package/src/components/TryIt/Response/hooks/useLineCount.ts +0 -7
  168. package/src/components/TryIt/Servers/ServerVariables.tsx +0 -33
  169. package/src/components/TryIt/Servers/ServersDropdown.tsx +0 -53
  170. package/src/components/TryIt/Servers/VariableEditor.tsx +0 -64
  171. package/src/components/TryIt/Servers/useServerVariables.ts +0 -19
  172. package/src/components/TryIt/TryIt.spec.tsx +0 -1571
  173. package/src/components/TryIt/TryIt.stories.tsx +0 -77
  174. package/src/components/TryIt/TryIt.tsx +0 -404
  175. package/src/components/TryIt/TryItWithRequestSamples.spec.tsx +0 -143
  176. package/src/components/TryIt/TryItWithRequestSamples.stories.tsx +0 -32
  177. package/src/components/TryIt/TryItWithRequestSamples.tsx +0 -42
  178. package/src/components/TryIt/build-request.spec.ts +0 -261
  179. package/src/components/TryIt/build-request.ts +0 -357
  180. package/src/components/TryIt/chosenServer.ts +0 -5
  181. package/src/components/TryIt/index.ts +0 -3
  182. package/src/components/__tests__/LinkHeading.spec.tsx +0 -125
  183. package/src/constants.ts +0 -176
  184. package/src/containers/MockingProvider.tsx +0 -23
  185. package/src/context/InlineRefResolver.spec.tsx +0 -183
  186. package/src/context/InlineRefResolver.tsx +0 -94
  187. package/src/context/Options.tsx +0 -27
  188. package/src/context/Persistence.tsx +0 -24
  189. package/src/context/RouterType.tsx +0 -9
  190. package/src/core.css +0 -97
  191. package/src/hoc/utils.ts +0 -5
  192. package/src/hoc/withMosaicProvider.spec.tsx +0 -48
  193. package/src/hoc/withMosaicProvider.tsx +0 -28
  194. package/src/hoc/withQueryClientProvider.spec.tsx +0 -38
  195. package/src/hoc/withQueryClientProvider.tsx +0 -35
  196. package/src/hoc/withRouter.tsx +0 -71
  197. package/src/hooks/useBundleRefsIntoDocument.ts +0 -60
  198. package/src/hooks/useFirstRender.ts +0 -8
  199. package/src/hooks/useIsCompact.ts +0 -26
  200. package/src/hooks/useParsedData.ts +0 -99
  201. package/src/hooks/useParsedValue.ts +0 -19
  202. package/src/hooks/useResponsiveLayout.tsx +0 -51
  203. package/src/hooks/useRouter.tsx +0 -31
  204. package/src/hooks/useUniqueId.ts +0 -4
  205. package/src/index.ts +0 -48
  206. package/src/styled.tsx +0 -22
  207. package/src/styles.css +0 -4
  208. package/src/types.ts +0 -170
  209. package/src/utils/__tests__/securitySchemes.spec.ts +0 -137
  210. package/src/utils/exampleGeneration/exampleGeneration.spec.tsx +0 -664
  211. package/src/utils/exampleGeneration/exampleGeneration.ts +0 -332
  212. package/src/utils/fileToBase64.ts +0 -11
  213. package/src/utils/guards.ts +0 -48
  214. package/src/utils/headers.ts +0 -316
  215. package/src/utils/http-spec/IServer.ts +0 -100
  216. package/src/utils/http-spec/__tests__/IServer.spec.ts +0 -51
  217. package/src/utils/http-spec/examples.ts +0 -5
  218. package/src/utils/http.ts +0 -9
  219. package/src/utils/jotai/persistAtom.ts +0 -31
  220. package/src/utils/node.ts +0 -19
  221. package/src/utils/oas/__tests__/security.spec.ts +0 -18
  222. package/src/utils/oas/security.ts +0 -76
  223. package/src/utils/ref-resolving/ReferenceResolver.ts +0 -29
  224. package/src/utils/ref-resolving/resolvedObject.test.ts +0 -415
  225. package/src/utils/ref-resolving/resolvedObject.ts +0 -189
  226. package/src/utils/securitySchemes.ts +0 -117
  227. package/src/utils/string.ts +0 -15
  228. package/src/utils/tests/chooseOption.ts +0 -7
  229. package/src/web-components/createElementClass.ts +0 -154
  230. package/tsconfig.build.json +0 -14
  231. package/tsconfig.json +0 -7
  232. /package/{dist/__fixtures__ → __fixtures__}/articles/schema-with-refs.d.ts +0 -0
  233. /package/{dist/__fixtures__ → __fixtures__}/operations/application-octet-stream-post.d.ts +0 -0
  234. /package/{dist/__fixtures__ → __fixtures__}/operations/base64-file-upload.d.ts +0 -0
  235. /package/{dist/__fixtures__ → __fixtures__}/operations/big-response.d.ts +0 -0
  236. /package/{dist/__fixtures__ → __fixtures__}/operations/examples-request-body.d.ts +0 -0
  237. /package/{dist/__fixtures__ → __fixtures__}/operations/head-todos.d.ts +0 -0
  238. /package/{dist/__fixtures__ → __fixtures__}/operations/multipart-formdata-post.d.ts +0 -0
  239. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-minimal.d.ts +0 -0
  240. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-parameters.d.ts +0 -0
  241. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-with-examples.d.ts +0 -0
  242. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-without-servers.d.ts +0 -0
  243. /package/{dist/__fixtures__ → __fixtures__}/operations/patch-todos.d.ts +0 -0
  244. /package/{dist/__fixtures__ → __fixtures__}/operations/put-todos.d.ts +0 -0
  245. /package/{dist/__fixtures__ → __fixtures__}/operations/referenced-body.d.ts +0 -0
  246. /package/{dist/__fixtures__ → __fixtures__}/operations/request-body-empty-schema.d.ts +0 -0
  247. /package/{dist/__fixtures__ → __fixtures__}/operations/request-body.d.ts +0 -0
  248. /package/{dist/__fixtures__ → __fixtures__}/operations/securedOperation.d.ts +0 -0
  249. /package/{dist/__fixtures__ → __fixtures__}/operations/security-basic.d.ts +0 -0
  250. /package/{dist/__fixtures__ → __fixtures__}/operations/security-bearer.d.ts +0 -0
  251. /package/{dist/__fixtures__ → __fixtures__}/operations/simple-get.d.ts +0 -0
  252. /package/{dist/__fixtures__ → __fixtures__}/operations/string-numeric-enums.d.ts +0 -0
  253. /package/{dist/__fixtures__ → __fixtures__}/operations/urlencoded-post-oneof.d.ts +0 -0
  254. /package/{dist/__fixtures__ → __fixtures__}/operations/urlencoded-post.d.ts +0 -0
  255. /package/{dist/__fixtures__ → __fixtures__}/operations/with-url-variables.d.ts +0 -0
  256. /package/{dist/__fixtures__ → __fixtures__}/security-schemes/index.d.ts +0 -0
  257. /package/{dist/__fixtures__ → __fixtures__}/services/petstore.d.ts +0 -0
  258. /package/{dist/__fixtures__ → __fixtures__}/services/with-unnamed-servers.d.ts +0 -0
  259. /package/{dist/__fixtures__ → __fixtures__}/services/with-url-variables.d.ts +0 -0
  260. /package/{dist/__fixtures__ → __fixtures__}/services/without-origin.d.ts +0 -0
  261. /package/{dist/components → components}/Docs/Article/Article.spec.d.ts +0 -0
  262. /package/{dist/components → components}/Docs/Article/Article.stories.d.ts +0 -0
  263. /package/{dist/components → components}/Docs/Article/index.d.ts +0 -0
  264. /package/{dist/components → components}/Docs/Docs.d.ts +0 -0
  265. /package/{dist/components → components}/Docs/Docs.stories.d.ts +0 -0
  266. /package/{dist/components → components}/Docs/HttpOperation/Badges.d.ts +0 -0
  267. /package/{dist/components → components}/Docs/HttpOperation/Body.d.ts +0 -0
  268. /package/{dist/components → components}/Docs/HttpOperation/Callbacks.d.ts +0 -0
  269. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.d.ts +0 -0
  270. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.spec.d.ts +0 -0
  271. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.stories.d.ts +0 -0
  272. /package/{dist/components → components}/Docs/HttpOperation/Parameters.d.ts +0 -0
  273. /package/{dist/components → components}/Docs/HttpOperation/Parameters.spec.d.ts +0 -0
  274. /package/{dist/components → components}/Docs/HttpOperation/Request.d.ts +0 -0
  275. /package/{dist/components → components}/Docs/HttpOperation/Responses.d.ts +0 -0
  276. /package/{dist/components → components}/Docs/HttpOperation/index.d.ts +0 -0
  277. /package/{dist/components → components}/Docs/HttpService/AdditionalInfo.d.ts +0 -0
  278. /package/{dist/components → components}/Docs/HttpService/AdditionalInfo.stories.d.ts +0 -0
  279. /package/{dist/components → components}/Docs/HttpService/ExportButton.d.ts +0 -0
  280. /package/{dist/components → components}/Docs/HttpService/HttpService.d.ts +0 -0
  281. /package/{dist/components → components}/Docs/HttpService/HttpService.spec.d.ts +0 -0
  282. /package/{dist/components → components}/Docs/HttpService/HttpService.stories.d.ts +0 -0
  283. /package/{dist/components → components}/Docs/HttpService/SecuritySchemes.d.ts +0 -0
  284. /package/{dist/components → components}/Docs/HttpService/ServerInfo.d.ts +0 -0
  285. /package/{dist/components → components}/Docs/HttpService/index.d.ts +0 -0
  286. /package/{dist/components → components}/Docs/Model/Model.d.ts +0 -0
  287. /package/{dist/components → components}/Docs/Model/Model.spec.d.ts +0 -0
  288. /package/{dist/components → components}/Docs/Model/Model.stories.d.ts +0 -0
  289. /package/{dist/components → components}/Docs/Model/index.d.ts +0 -0
  290. /package/{dist/components → components}/Docs/NodeVendorExtensions.d.ts +0 -0
  291. /package/{dist/components → components}/Docs/Sections.d.ts +0 -0
  292. /package/{dist/components → components}/Docs/Security/PanelContent.d.ts +0 -0
  293. /package/{dist/components → components}/Docs/Security/index.d.ts +0 -0
  294. /package/{dist/components → components}/Docs/Skeleton.d.ts +0 -0
  295. /package/{dist/components → components}/Docs/TwoColumnLayout.d.ts +0 -0
  296. /package/{dist/components → components}/Docs/index.d.ts +0 -0
  297. /package/{dist/components → components}/Docs/story-helper.d.ts +0 -0
  298. /package/{dist/components → components}/Docs/story-renderer-helper.d.ts +0 -0
  299. /package/{dist/components → components}/Layout/MobileTopNav.d.ts +0 -0
  300. /package/{dist/components → components}/Layout/ResponsiveSidebarLayout.d.ts +0 -0
  301. /package/{dist/components → components}/Layout/SidebarLayout.d.ts +0 -0
  302. /package/{dist/components → components}/LinkHeading.d.ts +0 -0
  303. /package/{dist/components → components}/LoadMore.d.ts +0 -0
  304. /package/{dist/components → components}/Loading/Loading.d.ts +0 -0
  305. /package/{dist/components → components}/Logo.d.ts +0 -0
  306. /package/{dist/components → components}/MarkdownViewer/CustomComponents/CodeComponent.d.ts +0 -0
  307. /package/{dist/components → components}/MarkdownViewer/CustomComponents/CodeComponent.spec.d.ts +0 -0
  308. /package/{dist/components → components}/MarkdownViewer/CustomComponents/Provider.d.ts +0 -0
  309. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ReactRouterLink.d.ts +0 -0
  310. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ResolvedImage.d.ts +0 -0
  311. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ScrollToHashElement.d.ts +0 -0
  312. /package/{dist/components → components}/MarkdownViewer/MarkdownViewer.spec.d.ts +0 -0
  313. /package/{dist/components → components}/MarkdownViewer/index.d.ts +0 -0
  314. /package/{dist/components → components}/NonIdealState.d.ts +0 -0
  315. /package/{dist/components → components}/PoweredByLink.d.ts +0 -0
  316. /package/{dist/components → components}/RequestSamples/RequestSamples.d.ts +0 -0
  317. /package/{dist/components → components}/RequestSamples/RequestSamples.stories.d.ts +0 -0
  318. /package/{dist/components → components}/RequestSamples/convertRequestToSample.d.ts +0 -0
  319. /package/{dist/components → components}/RequestSamples/extractCodeSamples.d.ts +0 -0
  320. /package/{dist/components → components}/RequestSamples/index.d.ts +0 -0
  321. /package/{dist/components → components}/RequestSamples/requestSampleConfigs.d.ts +0 -0
  322. /package/{dist/components → components}/ResponseExamples/ResponseExamples.d.ts +0 -0
  323. /package/{dist/components → components}/ResponseExamples/ResponseExamples.spec.d.ts +0 -0
  324. /package/{dist/components → components}/ResponseExamples/ResponseExamples.stories.d.ts +0 -0
  325. /package/{dist/components → components}/TableOfContents/TableOfContents.d.ts +0 -0
  326. /package/{dist/components → components}/TableOfContents/TableOfContents.spec.d.ts +0 -0
  327. /package/{dist/components → components}/TableOfContents/TableOfContents.stories.d.ts +0 -0
  328. /package/{dist/components → components}/TableOfContents/constants.d.ts +0 -0
  329. /package/{dist/components → components}/TableOfContents/index.d.ts +0 -0
  330. /package/{dist/components → components}/TableOfContents/types.d.ts +0 -0
  331. /package/{dist/components → components}/TableOfContents/utils.d.ts +0 -0
  332. /package/{dist/components → components}/TryIt/Auth/APIKeyAuth.d.ts +0 -0
  333. /package/{dist/components → components}/TryIt/Auth/Auth.d.ts +0 -0
  334. /package/{dist/components → components}/TryIt/Auth/AuthTokenInput.d.ts +0 -0
  335. /package/{dist/components → components}/TryIt/Auth/BasicAuth.d.ts +0 -0
  336. /package/{dist/components → components}/TryIt/Auth/BearerAuth.d.ts +0 -0
  337. /package/{dist/components → components}/TryIt/Auth/DigestAuth.d.ts +0 -0
  338. /package/{dist/components → components}/TryIt/Auth/OAuth2Auth.d.ts +0 -0
  339. /package/{dist/components → components}/TryIt/Auth/authentication-utils.d.ts +0 -0
  340. /package/{dist/components → components}/TryIt/Body/BinaryBody.d.ts +0 -0
  341. /package/{dist/components → components}/TryIt/Body/FormDataBody.d.ts +0 -0
  342. /package/{dist/components → components}/TryIt/Body/RequestBody.d.ts +0 -0
  343. /package/{dist/components → components}/TryIt/Body/request-body-utils.d.ts +0 -0
  344. /package/{dist/components → components}/TryIt/Body/useTextRequestBodyState.d.ts +0 -0
  345. /package/{dist/components → components}/TryIt/Mocking/MockingButton.d.ts +0 -0
  346. /package/{dist/components → components}/TryIt/Mocking/mocking-utils.d.ts +0 -0
  347. /package/{dist/components → components}/TryIt/Mocking/useMockingOptions.d.ts +0 -0
  348. /package/{dist/components → components}/TryIt/Parameters/FileUploadParameterEditors.d.ts +0 -0
  349. /package/{dist/components → components}/TryIt/Parameters/OperationParameters.d.ts +0 -0
  350. /package/{dist/components → components}/TryIt/Parameters/ParameterEditor.d.ts +0 -0
  351. /package/{dist/components → components}/TryIt/Parameters/parameter-utils.d.ts +0 -0
  352. /package/{dist/components → components}/TryIt/Parameters/parameter-utils.spec.d.ts +0 -0
  353. /package/{dist/components → components}/TryIt/Parameters/useOperationParameters.d.ts +0 -0
  354. /package/{dist/components → components}/TryIt/Response/ReponseCodeViewer.d.ts +0 -0
  355. /package/{dist/components → components}/TryIt/Response/Response.d.ts +0 -0
  356. /package/{dist/components → components}/TryIt/Response/Response.spec.d.ts +0 -0
  357. /package/{dist/components → components}/TryIt/Response/hooks/useLineCount.d.ts +0 -0
  358. /package/{dist/components → components}/TryIt/Servers/ServerVariables.d.ts +0 -0
  359. /package/{dist/components → components}/TryIt/Servers/ServersDropdown.d.ts +0 -0
  360. /package/{dist/components → components}/TryIt/Servers/VariableEditor.d.ts +0 -0
  361. /package/{dist/components → components}/TryIt/Servers/useServerVariables.d.ts +0 -0
  362. /package/{dist/components → components}/TryIt/TryIt.d.ts +0 -0
  363. /package/{dist/components → components}/TryIt/TryIt.spec.d.ts +0 -0
  364. /package/{dist/components → components}/TryIt/TryIt.stories.d.ts +0 -0
  365. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.d.ts +0 -0
  366. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.spec.d.ts +0 -0
  367. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.stories.d.ts +0 -0
  368. /package/{dist/components → components}/TryIt/build-request.d.ts +0 -0
  369. /package/{dist/components → components}/TryIt/build-request.spec.d.ts +0 -0
  370. /package/{dist/components → components}/TryIt/chosenServer.d.ts +0 -0
  371. /package/{dist/components → components}/TryIt/index.d.ts +0 -0
  372. /package/{dist/constants.d.ts → constants.d.ts} +0 -0
  373. /package/{dist/containers → containers}/MockingProvider.d.ts +0 -0
  374. /package/{dist/context → context}/InlineRefResolver.d.ts +0 -0
  375. /package/{dist/context → context}/InlineRefResolver.spec.d.ts +0 -0
  376. /package/{dist/context → context}/Options.d.ts +0 -0
  377. /package/{dist/context → context}/Persistence.d.ts +0 -0
  378. /package/{dist/context → context}/RouterType.d.ts +0 -0
  379. /package/{dist/core.css → core.css} +0 -0
  380. /package/{dist/hoc → hoc}/utils.d.ts +0 -0
  381. /package/{dist/hoc → hoc}/withMosaicProvider.d.ts +0 -0
  382. /package/{dist/hoc → hoc}/withMosaicProvider.spec.d.ts +0 -0
  383. /package/{dist/hoc → hoc}/withQueryClientProvider.d.ts +0 -0
  384. /package/{dist/hoc → hoc}/withQueryClientProvider.spec.d.ts +0 -0
  385. /package/{dist/hoc → hoc}/withRouter.d.ts +0 -0
  386. /package/{dist/hooks → hooks}/useBundleRefsIntoDocument.d.ts +0 -0
  387. /package/{dist/hooks → hooks}/useFirstRender.d.ts +0 -0
  388. /package/{dist/hooks → hooks}/useIsCompact.d.ts +0 -0
  389. /package/{dist/hooks → hooks}/useParsedData.d.ts +0 -0
  390. /package/{dist/hooks → hooks}/useParsedValue.d.ts +0 -0
  391. /package/{dist/hooks → hooks}/useResponsiveLayout.d.ts +0 -0
  392. /package/{dist/hooks → hooks}/useRouter.d.ts +0 -0
  393. /package/{dist/hooks → hooks}/useUniqueId.d.ts +0 -0
  394. /package/{dist/index.d.ts → index.d.ts} +0 -0
  395. /package/{dist/styled.d.ts → styled.d.ts} +0 -0
  396. /package/{dist/styles.min.css → styles.min.css} +0 -0
  397. /package/{dist/types.d.ts → types.d.ts} +0 -0
  398. /package/{dist/utils → utils}/exampleGeneration/exampleGeneration.d.ts +0 -0
  399. /package/{dist/utils → utils}/exampleGeneration/exampleGeneration.spec.d.ts +0 -0
  400. /package/{dist/utils → utils}/fileToBase64.d.ts +0 -0
  401. /package/{dist/utils → utils}/guards.d.ts +0 -0
  402. /package/{dist/utils → utils}/headers.d.ts +0 -0
  403. /package/{dist/utils → utils}/http-spec/IServer.d.ts +0 -0
  404. /package/{dist/utils → utils}/http-spec/examples.d.ts +0 -0
  405. /package/{dist/utils → utils}/http.d.ts +0 -0
  406. /package/{dist/utils → utils}/jotai/persistAtom.d.ts +0 -0
  407. /package/{dist/utils → utils}/node.d.ts +0 -0
  408. /package/{dist/utils → utils}/oas/security.d.ts +0 -0
  409. /package/{dist/utils → utils}/ref-resolving/ReferenceResolver.d.ts +0 -0
  410. /package/{dist/utils → utils}/ref-resolving/resolvedObject.d.ts +0 -0
  411. /package/{dist/utils → utils}/ref-resolving/resolvedObject.test.d.ts +0 -0
  412. /package/{dist/utils → utils}/securitySchemes.d.ts +0 -0
  413. /package/{dist/utils → utils}/string.d.ts +0 -0
  414. /package/{dist/utils → utils}/tests/chooseOption.d.ts +0 -0
  415. /package/{dist/web-components → web-components}/createElementClass.d.ts +0 -0
@@ -1,664 +0,0 @@
1
- import * as Sampler from '@stoplight/json-schema-sampler';
2
- import { JSONSchema7 } from 'json-schema';
3
-
4
- import {
5
- generateExampleFromMediaTypeContent,
6
- generateExamplesFromJsonSchema,
7
- stringifyExampleWithResolvedSchema,
8
- } from './exampleGeneration';
9
-
10
- const modelWithNoExamples: JSONSchema7 = require('../../__fixtures__/models/model-with-no-examples.json');
11
-
12
- describe('generateExamplesFromJsonSchema', () => {
13
- it('returns error message when example generation fails ', () => {
14
- const errorMessage = 'This is a mocked Error message';
15
- jest.spyOn(Sampler, 'sample').mockImplementationOnce(() => {
16
- throw Error(errorMessage);
17
- });
18
-
19
- const example = generateExamplesFromJsonSchema(modelWithNoExamples);
20
- expect(example).toEqual([{ label: '', data: `Example cannot be created for this schema\nError: ${errorMessage}` }]);
21
- });
22
-
23
- it('generates examples for schemas with oneOf', () => {
24
- const schemaWithOneOf: JSONSchema7 = {
25
- oneOf: [
26
- {
27
- type: 'object',
28
- properties: {
29
- name: { type: 'string' },
30
- age: { type: 'number' },
31
- },
32
- },
33
- {
34
- type: 'object',
35
- properties: {
36
- title: { type: 'string' },
37
- description: { type: 'string' },
38
- },
39
- },
40
- ],
41
- };
42
-
43
- const examples = generateExamplesFromJsonSchema(schemaWithOneOf);
44
- expect(examples.length).toBeGreaterThan(0);
45
- expect(examples[0].data).not.toContain('Example cannot be created');
46
-
47
- const parsed = JSON.parse(examples[0].data);
48
- expect(parsed).toHaveProperty('name');
49
- expect(parsed).toHaveProperty('age');
50
- });
51
-
52
- it('generates examples for schemas with anyOf', () => {
53
- const schemaWithAnyOf: JSONSchema7 = {
54
- anyOf: [
55
- {
56
- type: 'object',
57
- properties: {
58
- username: { type: 'string' },
59
- password: { type: 'string' },
60
- },
61
- },
62
- {
63
- type: 'object',
64
- properties: {
65
- token: { type: 'string' },
66
- },
67
- },
68
- ],
69
- };
70
-
71
- const examples = generateExamplesFromJsonSchema(schemaWithAnyOf);
72
- expect(examples.length).toBeGreaterThan(0);
73
- expect(examples[0].data).not.toContain('Example cannot be created');
74
-
75
- const parsed = JSON.parse(examples[0].data);
76
- expect(parsed).toHaveProperty('username');
77
- expect(parsed).toHaveProperty('password');
78
- });
79
- });
80
-
81
- describe('generateExampleFromMediaTypeContent', () => {
82
- it('generates examples for media type content with oneOf in schema', () => {
83
- const mediaTypeContent = {
84
- mediaType: 'application/json',
85
- schema: {
86
- oneOf: [
87
- {
88
- type: 'object',
89
- properties: {
90
- id: { type: 'number' },
91
- name: { type: 'string' },
92
- },
93
- },
94
- {
95
- type: 'object',
96
- properties: {
97
- code: { type: 'string' },
98
- message: { type: 'string' },
99
- },
100
- },
101
- ],
102
- },
103
- };
104
-
105
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
106
- expect(example).not.toContain('Example cannot be created');
107
-
108
- const parsed = JSON.parse(example);
109
- expect(parsed).toHaveProperty('id');
110
- expect(parsed).toHaveProperty('name');
111
- });
112
-
113
- it('does not use format-injected int32 minimum as generated value (double-processed internal model)', () => {
114
- const mediaTypeContent = {
115
- mediaType: 'application/json',
116
- schema: {
117
- type: 'integer',
118
- format: 'int32',
119
- minimum: 0 - 2 ** 31,
120
- maximum: 2 ** 31 - 1,
121
- 'x-stoplight': { explicitProperties: ['type', 'format', 'minimum', 'maximum'] },
122
- },
123
- };
124
-
125
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
126
- const parsed = JSON.parse(example);
127
- expect(parsed).not.toBe(0 - 2 ** 31);
128
- });
129
-
130
- it('does not use format-injected int64 minimum as generated value', () => {
131
- const mediaTypeContent = {
132
- mediaType: 'application/json',
133
- schema: {
134
- type: 'integer',
135
- format: 'int64',
136
- minimum: Number.MIN_SAFE_INTEGER,
137
- maximum: Number.MAX_SAFE_INTEGER,
138
- 'x-stoplight': { explicitProperties: ['type', 'format', 'minimum', 'maximum'] },
139
- },
140
- };
141
-
142
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
143
- const parsed = JSON.parse(example);
144
- expect(parsed).not.toBe(Number.MIN_SAFE_INTEGER);
145
- });
146
-
147
- it('preserves user-set minimum in request body schema that differs from format default', () => {
148
- const mediaTypeContent = {
149
- mediaType: 'application/json',
150
- schema: {
151
- type: 'integer',
152
- format: 'int32',
153
- minimum: 0, // user-authored, different from int32 default (-2147483648)
154
- 'x-stoplight': { explicitProperties: ['type', 'format', 'minimum'] },
155
- },
156
- };
157
-
158
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
159
- const parsed = JSON.parse(example);
160
- expect(parsed).toBeGreaterThanOrEqual(0);
161
- });
162
-
163
- it('strips format-injected bounds from nested object properties in request body', () => {
164
- const mediaTypeContent = {
165
- mediaType: 'application/json',
166
- schema: {
167
- type: 'object',
168
- properties: {
169
- count: {
170
- type: 'integer',
171
- format: 'int32',
172
- minimum: 0 - 2 ** 31,
173
- maximum: 2 ** 31 - 1,
174
- 'x-stoplight': { explicitProperties: ['type', 'format', 'minimum', 'maximum'] },
175
- },
176
- },
177
- },
178
- };
179
-
180
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
181
- const parsed = JSON.parse(example);
182
- expect(parsed.count).not.toBe(0 - 2 ** 31);
183
- });
184
-
185
- it('does not use format-injected float minimum as generated value', () => {
186
- const mediaTypeContent = {
187
- mediaType: 'application/json',
188
- schema: {
189
- type: 'number',
190
- format: 'float',
191
- minimum: 0 - 2 ** 128,
192
- maximum: 2 ** 128 - 1,
193
- 'x-stoplight': { explicitProperties: ['type', 'format', 'minimum', 'maximum'] },
194
- },
195
- };
196
-
197
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
198
- const parsed = JSON.parse(example);
199
- expect(parsed).not.toBe(0 - 2 ** 128);
200
- expect(typeof parsed).toBe('number');
201
- });
202
-
203
- it('does not use format-injected double minimum as generated value', () => {
204
- const mediaTypeContent = {
205
- mediaType: 'application/json',
206
- schema: {
207
- type: 'number',
208
- format: 'double',
209
- minimum: 0 - Number.MAX_VALUE,
210
- maximum: Number.MAX_VALUE,
211
- 'x-stoplight': { explicitProperties: ['type', 'format', 'minimum', 'maximum'] },
212
- },
213
- };
214
-
215
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
216
- const parsed = JSON.parse(example);
217
- expect(parsed).not.toBe(0 - Number.MAX_VALUE);
218
- expect(typeof parsed).toBe('number');
219
- });
220
-
221
- it('strips format-injected bounds from component model schema (no x-stoplight metadata)', () => {
222
- const mediaTypeContent = {
223
- mediaType: 'application/json',
224
- schema: {
225
- type: 'integer',
226
- format: 'int32',
227
- // no x-stoplight — raw OpenAPI component model, minimum injected by convertToJsonSchema
228
- minimum: 0 - 2 ** 31,
229
- maximum: 2 ** 31 - 1,
230
- },
231
- };
232
-
233
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
234
- const parsed = JSON.parse(example);
235
- expect(parsed).not.toBe(0 - 2 ** 31);
236
- expect(typeof parsed).toBe('number');
237
- });
238
-
239
- it('strips format-injected bounds from allOf members in request body', () => {
240
- const mediaTypeContent = {
241
- mediaType: 'application/json',
242
- schema: {
243
- allOf: [
244
- {
245
- type: 'integer',
246
- format: 'int32',
247
- minimum: 0 - 2 ** 31,
248
- maximum: 2 ** 31 - 1,
249
- 'x-stoplight': { explicitProperties: ['type', 'format', 'minimum', 'maximum'] },
250
- },
251
- ],
252
- },
253
- };
254
-
255
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
256
- const parsed = JSON.parse(example);
257
- expect(parsed).not.toBe(0 - 2 ** 31);
258
- expect(typeof parsed).toBe('number');
259
- });
260
-
261
- it('strips format-injected bounds from oneOf members in request body', () => {
262
- const mediaTypeContent = {
263
- mediaType: 'application/json',
264
- schema: {
265
- oneOf: [
266
- {
267
- type: 'integer',
268
- format: 'int32',
269
- minimum: 0 - 2 ** 31,
270
- maximum: 2 ** 31 - 1,
271
- 'x-stoplight': { explicitProperties: ['type', 'format', 'minimum', 'maximum'] },
272
- },
273
- ],
274
- },
275
- };
276
-
277
- const example = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
278
- const parsed = JSON.parse(example);
279
- expect(parsed).not.toBe(0 - 2 ** 31);
280
- expect(typeof parsed).toBe('number');
281
- });
282
-
283
- it('renders float field with no default as "0.0" not "0"', () => {
284
- const mediaTypeContent = {
285
- mediaType: 'application/json',
286
- schema: { type: 'number', format: 'float' },
287
- };
288
-
289
- expect(generateExampleFromMediaTypeContent(mediaTypeContent as any, {}).trim()).toBe('0.0');
290
- });
291
-
292
- it('renders double field with no default as "0.0" not "0"', () => {
293
- const mediaTypeContent = {
294
- mediaType: 'application/json',
295
- schema: { type: 'number', format: 'double' },
296
- };
297
-
298
- expect(generateExampleFromMediaTypeContent(mediaTypeContent as any, {}).trim()).toBe('0.0');
299
- });
300
-
301
- it('renders float property inside object as 0.0 in the output string', () => {
302
- const mediaTypeContent = {
303
- mediaType: 'application/json',
304
- schema: {
305
- type: 'object',
306
- properties: {
307
- price: { type: 'number', format: 'float' },
308
- qty: { type: 'integer' },
309
- },
310
- },
311
- };
312
-
313
- const raw = generateExampleFromMediaTypeContent(mediaTypeContent as any, {});
314
- expect(raw).toContain('"price": 0.0');
315
- expect(raw).toContain('"qty": 0');
316
- });
317
-
318
- it('does not render plain number (no format) as 0.0', () => {
319
- const mediaTypeContent = {
320
- mediaType: 'application/json',
321
- schema: { type: 'number' },
322
- };
323
-
324
- expect(generateExampleFromMediaTypeContent(mediaTypeContent as any, {}).trim()).toBe('0');
325
- });
326
- });
327
-
328
- describe('stripInferredNumericBounds - Format-injected min/max handling', () => {
329
- it('strips format-injected minimum/maximum from int32 (internal model case - double-processed)', () => {
330
- const internalModelSchema: JSONSchema7 = {
331
- type: 'integer',
332
- format: 'int32',
333
- minimum: 0 - 2 ** 31, // -2147483648
334
- maximum: 2 ** 31 - 1, // 2147483647
335
- ['x-stoplight']: {
336
- explicitProperties: ['type', 'format', 'minimum', 'maximum'], // incorrectly includes min/max due to double-processing
337
- },
338
- } as any;
339
-
340
- const examples = generateExamplesFromJsonSchema(internalModelSchema);
341
- const parsed = JSON.parse(examples[0].data);
342
- // After stripping, sampler should generate a normal value like 0, not -2147483648
343
- expect(parsed).not.toBe(-2147483648);
344
- expect(parsed).not.toBe(2147483647);
345
- expect(typeof parsed).toBe('number');
346
- });
347
-
348
- it('strips format-injected bounds from int64', () => {
349
- const schema: JSONSchema7 = {
350
- type: 'integer',
351
- format: 'int64',
352
- minimum: Number.MIN_SAFE_INTEGER,
353
- maximum: Number.MAX_SAFE_INTEGER,
354
- ['x-stoplight']: {
355
- explicitProperties: ['type', 'format', 'minimum', 'maximum'],
356
- },
357
- } as any;
358
-
359
- const examples = generateExamplesFromJsonSchema(schema);
360
- const parsed = JSON.parse(examples[0].data);
361
- expect(parsed).not.toBe(Number.MIN_SAFE_INTEGER);
362
- expect(parsed).not.toBe(Number.MAX_SAFE_INTEGER);
363
- expect(typeof parsed).toBe('number');
364
- });
365
-
366
- it('strips format-injected bounds from float', () => {
367
- const schema: JSONSchema7 = {
368
- type: 'number',
369
- format: 'float',
370
- minimum: 0 - 2 ** 128,
371
- maximum: 2 ** 128 - 1,
372
- ['x-stoplight']: {
373
- explicitProperties: ['type', 'format', 'minimum', 'maximum'],
374
- },
375
- } as any;
376
-
377
- const examples = generateExamplesFromJsonSchema(schema);
378
- const parsed = JSON.parse(examples[0].data);
379
- expect(typeof parsed).toBe('number');
380
- expect(parsed).not.toBe(0 - 2 ** 128);
381
- });
382
-
383
- it('keeps user-set minimum/maximum that differ from format default', () => {
384
- const schema: JSONSchema7 = {
385
- type: 'integer',
386
- format: 'int32',
387
- minimum: 0, // User explicitly set to 0, not the format default -2147483648
388
- maximum: 100,
389
- ['x-stoplight']: {
390
- explicitProperties: ['type', 'format', 'minimum', 'maximum'],
391
- },
392
- } as any;
393
-
394
- const examples = generateExamplesFromJsonSchema(schema);
395
- const parsed = JSON.parse(examples[0].data);
396
- // Sampler should respect user's constraints
397
- expect(parsed).toBeGreaterThanOrEqual(0);
398
- expect(parsed).toBeLessThanOrEqual(100);
399
- });
400
-
401
- it('does not affect component model schemas (no x-stoplight)', () => {
402
- const componentModelSchema: JSONSchema7 = {
403
- type: 'integer',
404
- format: 'int32',
405
- // No minimum/maximum, no x-stoplight
406
- };
407
-
408
- const examples = generateExamplesFromJsonSchema(componentModelSchema);
409
- const parsed = JSON.parse(examples[0].data);
410
- expect(typeof parsed).toBe('number');
411
- expect(parsed).not.toBe(0 - 2 ** 31); // Should not be format boundary
412
- });
413
-
414
- it('handles nested properties with format-injected bounds', () => {
415
- const schema: JSONSchema7 = {
416
- type: 'object',
417
- properties: {
418
- count: {
419
- type: 'integer',
420
- format: 'int32',
421
- minimum: 0 - 2 ** 31,
422
- maximum: 2 ** 31 - 1,
423
- ['x-stoplight']: {
424
- explicitProperties: ['type', 'format', 'minimum', 'maximum'],
425
- },
426
- },
427
- total: {
428
- type: 'number',
429
- format: 'float',
430
- minimum: 0 - 2 ** 128,
431
- maximum: 2 ** 128 - 1,
432
- ['x-stoplight']: {
433
- explicitProperties: ['type', 'format', 'minimum', 'maximum'],
434
- },
435
- },
436
- },
437
- } as any;
438
-
439
- const examples = generateExamplesFromJsonSchema(schema);
440
- const parsed = JSON.parse(examples[0].data);
441
- expect(parsed).toHaveProperty('count');
442
- expect(parsed).toHaveProperty('total');
443
- expect(typeof parsed.count).toBe('number');
444
- expect(typeof parsed.total).toBe('number');
445
- // Neither should be format boundary values
446
- expect(parsed.count).not.toBe(0 - 2 ** 31);
447
- expect(parsed.total).not.toBe(0 - 2 ** 128);
448
- });
449
-
450
- it('handles allOf with format-injected bounds', () => {
451
- const schema: JSONSchema7 = {
452
- allOf: [
453
- {
454
- type: 'object',
455
- properties: {
456
- value: {
457
- type: 'integer',
458
- format: 'int32',
459
- minimum: 0 - 2 ** 31,
460
- maximum: 2 ** 31 - 1,
461
- ['x-stoplight']: {
462
- explicitProperties: ['type', 'format', 'minimum', 'maximum'],
463
- },
464
- },
465
- },
466
- },
467
- ],
468
- } as any;
469
-
470
- const examples = generateExamplesFromJsonSchema(schema);
471
- const parsed = JSON.parse(examples[0].data);
472
- expect(parsed).toHaveProperty('value');
473
- expect(typeof parsed.value).toBe('number');
474
- expect(parsed.value).not.toBe(0 - 2 ** 31);
475
- });
476
-
477
- it('handles oneOf with format-injected bounds in options', () => {
478
- const schema: JSONSchema7 = {
479
- oneOf: [
480
- {
481
- type: 'integer',
482
- format: 'int32',
483
- minimum: 0 - 2 ** 31,
484
- maximum: 2 ** 31 - 1,
485
- ['x-stoplight']: {
486
- explicitProperties: ['type', 'format', 'minimum', 'maximum'],
487
- },
488
- },
489
- {
490
- type: 'string',
491
- },
492
- ],
493
- } as any;
494
-
495
- const examples = generateExamplesFromJsonSchema(schema);
496
- const parsed = JSON.parse(examples[0].data);
497
- // Should be either string or a reasonable integer, not format boundary
498
- expect(parsed === 0 - 2 ** 31 ? false : true).toBe(true);
499
- });
500
-
501
- it('keeps minimum only without maximum when only minimum is user-set', () => {
502
- const schema: JSONSchema7 = {
503
- type: 'integer',
504
- format: 'int32',
505
- minimum: 10, // User-set, differs from format default
506
- ['x-stoplight']: {
507
- explicitProperties: ['type', 'format', 'minimum'],
508
- },
509
- } as any;
510
-
511
- const examples = generateExamplesFromJsonSchema(schema);
512
- const parsed = JSON.parse(examples[0].data);
513
- expect(parsed).toBeGreaterThanOrEqual(10);
514
- });
515
-
516
- it('handles double-processed schema correctly - does not throw error', () => {
517
- const doubleProcessedSchema: JSONSchema7 = {
518
- type: 'integer',
519
- format: 'int32',
520
- minimum: 0 - 2 ** 31,
521
- maximum: 2 ** 31 - 1,
522
- ['x-stoplight']: {
523
- explicitProperties: ['type', 'format', 'minimum', 'maximum'],
524
- },
525
- description: 'This was processed twice',
526
- } as any;
527
-
528
- expect(() => {
529
- generateExamplesFromJsonSchema(doubleProcessedSchema);
530
- }).not.toThrow();
531
-
532
- const examples = generateExamplesFromJsonSchema(doubleProcessedSchema);
533
- expect(examples.length).toBeGreaterThan(0);
534
- expect(examples[0].data).not.toContain('Example cannot be created');
535
- });
536
-
537
- it('renders float field in Example section as "0.0" not "0"', () => {
538
- const schema: JSONSchema7 = { type: 'number', format: 'float' };
539
- expect(generateExamplesFromJsonSchema(schema)[0].data.trim()).toBe('0.0');
540
- });
541
-
542
- it('renders double field in Example section as "0.0" not "0"', () => {
543
- const schema: JSONSchema7 = { type: 'number', format: 'double' };
544
- expect(generateExamplesFromJsonSchema(schema)[0].data.trim()).toBe('0.0');
545
- });
546
-
547
- it('renders float property inside object as 0.0 in Example section', () => {
548
- const schema: JSONSchema7 = {
549
- type: 'object',
550
- properties: {
551
- rate: { type: 'number', format: 'float' } as any,
552
- code: { type: 'integer' },
553
- },
554
- };
555
-
556
- const data = generateExamplesFromJsonSchema(schema)[0].data;
557
- expect(data).toContain('"rate": 0.0');
558
- expect(data).toContain('"code": 0');
559
- });
560
- });
561
-
562
- describe('stringifyExampleWithResolvedSchema', () => {
563
- it('normalizes inferred numeric bounds inside array items', () => {
564
- const schema: JSONSchema7 = {
565
- type: 'array',
566
- items: {
567
- type: 'object',
568
- properties: {
569
- age: {
570
- type: 'integer',
571
- format: 'int32',
572
- minimum: 0 - 2 ** 31,
573
- maximum: 2 ** 31 - 1,
574
- ['x-stoplight']: { explicitProperties: ['type', 'format'] },
575
- },
576
- price: {
577
- type: 'number',
578
- format: 'float',
579
- minimum: 0 - 2 ** 128,
580
- maximum: 2 ** 128 - 1,
581
- ['x-stoplight']: { explicitProperties: ['type', 'format'] },
582
- },
583
- },
584
- },
585
- } as any;
586
-
587
- const data = stringifyExampleWithResolvedSchema([{ age: 0 - 2 ** 31, price: 0 - 2 ** 128 }], schema);
588
- expect(data).toContain('"age": 0');
589
- expect(data).toContain('"price": 0.0');
590
- });
591
-
592
- it('normalizes inferred numeric bounds inside allOf response schemas', () => {
593
- const schema: JSONSchema7 = {
594
- allOf: [
595
- {
596
- type: 'object',
597
- properties: {
598
- age: {
599
- type: 'integer',
600
- format: 'int32',
601
- minimum: 0 - 2 ** 31,
602
- maximum: 2 ** 31 - 1,
603
- ['x-stoplight']: { explicitProperties: ['type', 'format'] },
604
- },
605
- },
606
- },
607
- {
608
- type: 'object',
609
- properties: {
610
- price: {
611
- type: 'number',
612
- format: 'float',
613
- minimum: 0 - 2 ** 128,
614
- maximum: 2 ** 128 - 1,
615
- ['x-stoplight']: { explicitProperties: ['type', 'format'] },
616
- },
617
- },
618
- },
619
- ],
620
- } as any;
621
-
622
- const data = stringifyExampleWithResolvedSchema({ age: 0 - 2 ** 31, price: 0 - 2 ** 128 }, schema);
623
- expect(data).toContain('"age": 0');
624
- expect(data).toContain('"price": 0.0');
625
- });
626
-
627
- it('normalizes inferred numeric bounds inside oneOf and anyOf response schemas', () => {
628
- const oneOfSchema: JSONSchema7 = {
629
- oneOf: [
630
- {
631
- type: 'object',
632
- properties: {
633
- age: {
634
- type: 'integer',
635
- format: 'int32',
636
- minimum: 0 - 2 ** 31,
637
- maximum: 2 ** 31 - 1,
638
- ['x-stoplight']: { explicitProperties: ['type', 'format'] },
639
- },
640
- },
641
- },
642
- ],
643
- } as any;
644
- const anyOfSchema: JSONSchema7 = {
645
- anyOf: [
646
- {
647
- type: 'object',
648
- properties: {
649
- price: {
650
- type: 'number',
651
- format: 'float',
652
- minimum: 0 - 2 ** 128,
653
- maximum: 2 ** 128 - 1,
654
- ['x-stoplight']: { explicitProperties: ['type', 'format'] },
655
- },
656
- },
657
- },
658
- ],
659
- } as any;
660
-
661
- expect(stringifyExampleWithResolvedSchema({ age: 0 - 2 ** 31 }, oneOfSchema)).toContain('"age": 0');
662
- expect(stringifyExampleWithResolvedSchema({ price: 0 - 2 ** 128 }, anyOfSchema)).toContain('"price": 0.0');
663
- });
664
- });