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

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/package.json +14 -74
  2. package/.storybook/main.js +0 -6
  3. package/.storybook/manager.js +0 -1
  4. package/.storybook/preview.jsx +0 -50
  5. package/dist/LICENSE +0 -190
  6. package/dist/README.md +0 -46
  7. package/dist/package.json +0 -65
  8. package/jest.config.js +0 -10
  9. package/src/__fixtures__/articles/basic.md +0 -10
  10. package/src/__fixtures__/articles/kitchen-sink.md +0 -318
  11. package/src/__fixtures__/articles/long-page-heading.md +0 -955
  12. package/src/__fixtures__/articles/multiple-try-its.md +0 -54
  13. package/src/__fixtures__/articles/schema-with-refs.ts +0 -82
  14. package/src/__fixtures__/http-request.json +0 -11
  15. package/src/__fixtures__/models/model-with-no-examples.json +0 -15
  16. package/src/__fixtures__/models/model-with-one-example.json +0 -23
  17. package/src/__fixtures__/models/model-with-three-examples.json +0 -35
  18. package/src/__fixtures__/operations/application-octet-stream-post.ts +0 -39
  19. package/src/__fixtures__/operations/base64-file-upload.ts +0 -43
  20. package/src/__fixtures__/operations/big-response.ts +0 -4690
  21. package/src/__fixtures__/operations/bundled-parameter.ts +0 -128
  22. package/src/__fixtures__/operations/empty-response.ts +0 -15
  23. package/src/__fixtures__/operations/examples-request-body.ts +0 -135
  24. package/src/__fixtures__/operations/head-todos.ts +0 -49
  25. package/src/__fixtures__/operations/invalid-response-example.ts +0 -45
  26. package/src/__fixtures__/operations/multipart-formdata-post.ts +0 -61
  27. package/src/__fixtures__/operations/operation-minimal.ts +0 -11
  28. package/src/__fixtures__/operations/operation-parameters.ts +0 -337
  29. package/src/__fixtures__/operations/operation-with-examples.ts +0 -113
  30. package/src/__fixtures__/operations/operation-without-servers.ts +0 -16
  31. package/src/__fixtures__/operations/patch-todos.ts +0 -49
  32. package/src/__fixtures__/operations/put-todos.ts +0 -862
  33. package/src/__fixtures__/operations/referenced-body.ts +0 -62
  34. package/src/__fixtures__/operations/request-body-empty-schema.ts +0 -35
  35. package/src/__fixtures__/operations/request-body.ts +0 -62
  36. package/src/__fixtures__/operations/securedOperation.ts +0 -118
  37. package/src/__fixtures__/operations/security-basic.ts +0 -24
  38. package/src/__fixtures__/operations/security-bearer.ts +0 -25
  39. package/src/__fixtures__/operations/simple-get.ts +0 -17
  40. package/src/__fixtures__/operations/simple.ts +0 -103
  41. package/src/__fixtures__/operations/string-numeric-enums.ts +0 -32
  42. package/src/__fixtures__/operations/urlencoded-post-oneof.ts +0 -81
  43. package/src/__fixtures__/operations/urlencoded-post.ts +0 -54
  44. package/src/__fixtures__/operations/vendor-extensions.ts +0 -337
  45. package/src/__fixtures__/operations/with-url-variables.ts +0 -47
  46. package/src/__fixtures__/operations/x-code-samples.ts +0 -348
  47. package/src/__fixtures__/schemas/circular.ts +0 -1906
  48. package/src/__fixtures__/schemas/contact.json +0 -293
  49. package/src/__fixtures__/schemas/media-entry.json +0 -69
  50. package/src/__fixtures__/schemas/simple.json +0 -27
  51. package/src/__fixtures__/schemas/todo-full.v1.json +0 -35
  52. package/src/__fixtures__/schemas/todo-partial.v1.json +0 -14
  53. package/src/__fixtures__/schemas/user.v1.json +0 -17
  54. package/src/__fixtures__/security-schemes/index.ts +0 -38
  55. package/src/__fixtures__/services/petstore.ts +0 -167
  56. package/src/__fixtures__/services/with-unnamed-servers.ts +0 -38
  57. package/src/__fixtures__/services/with-url-variables.ts +0 -83
  58. package/src/__fixtures__/services/without-origin.ts +0 -20
  59. package/src/__fixtures__/table-of-contents/nested.ts +0 -44
  60. package/src/__fixtures__/table-of-contents/studio-template.ts +0 -100
  61. package/src/__fixtures__/table-of-contents/studio.ts +0 -559
  62. package/src/components/Docs/Article/Article.spec.tsx +0 -38
  63. package/src/components/Docs/Article/Article.stories.tsx +0 -17
  64. package/src/components/Docs/Article/index.tsx +0 -38
  65. package/src/components/Docs/Docs.stories.tsx +0 -33
  66. package/src/components/Docs/Docs.tsx +0 -231
  67. package/src/components/Docs/HttpOperation/Badges.tsx +0 -49
  68. package/src/components/Docs/HttpOperation/Body.tsx +0 -79
  69. package/src/components/Docs/HttpOperation/Callbacks.tsx +0 -89
  70. package/src/components/Docs/HttpOperation/HttpOperation.spec.tsx +0 -787
  71. package/src/components/Docs/HttpOperation/HttpOperation.stories.ts +0 -14
  72. package/src/components/Docs/HttpOperation/HttpOperation.tsx +0 -255
  73. package/src/components/Docs/HttpOperation/Parameters.spec.tsx +0 -101
  74. package/src/components/Docs/HttpOperation/Parameters.tsx +0 -118
  75. package/src/components/Docs/HttpOperation/Request.tsx +0 -140
  76. package/src/components/Docs/HttpOperation/Responses.tsx +0 -247
  77. package/src/components/Docs/HttpOperation/index.ts +0 -1
  78. package/src/components/Docs/HttpService/AdditionalInfo.stories.ts +0 -48
  79. package/src/components/Docs/HttpService/AdditionalInfo.tsx +0 -61
  80. package/src/components/Docs/HttpService/ExportButton.tsx +0 -35
  81. package/src/components/Docs/HttpService/HttpService.spec.tsx +0 -429
  82. package/src/components/Docs/HttpService/HttpService.stories.ts +0 -14
  83. package/src/components/Docs/HttpService/HttpService.tsx +0 -99
  84. package/src/components/Docs/HttpService/SecuritySchemes.tsx +0 -82
  85. package/src/components/Docs/HttpService/ServerInfo.tsx +0 -196
  86. package/src/components/Docs/HttpService/index.ts +0 -1
  87. package/src/components/Docs/Model/Model.spec.tsx +0 -241
  88. package/src/components/Docs/Model/Model.stories.tsx +0 -16
  89. package/src/components/Docs/Model/Model.tsx +0 -160
  90. package/src/components/Docs/Model/index.ts +0 -1
  91. package/src/components/Docs/NodeVendorExtensions.tsx +0 -55
  92. package/src/components/Docs/Sections.tsx +0 -54
  93. package/src/components/Docs/Security/PanelContent.tsx +0 -38
  94. package/src/components/Docs/Security/index.ts +0 -1
  95. package/src/components/Docs/Skeleton.tsx +0 -12
  96. package/src/components/Docs/TwoColumnLayout.tsx +0 -28
  97. package/src/components/Docs/index.ts +0 -1
  98. package/src/components/Docs/story-helper.ts +0 -46
  99. package/src/components/Docs/story-renderer-helper.tsx +0 -56
  100. package/src/components/Layout/MobileTopNav.tsx +0 -78
  101. package/src/components/Layout/ResponsiveSidebarLayout.tsx +0 -175
  102. package/src/components/Layout/SidebarLayout.tsx +0 -107
  103. package/src/components/LinkHeading.tsx +0 -21
  104. package/src/components/LoadMore.tsx +0 -20
  105. package/src/components/Loading/Loading.tsx +0 -9
  106. package/src/components/Logo.tsx +0 -25
  107. package/src/components/MarkdownViewer/CustomComponents/CodeComponent.spec.ts +0 -90
  108. package/src/components/MarkdownViewer/CustomComponents/CodeComponent.tsx +0 -164
  109. package/src/components/MarkdownViewer/CustomComponents/Provider.tsx +0 -20
  110. package/src/components/MarkdownViewer/CustomComponents/ReactRouterLink.tsx +0 -27
  111. package/src/components/MarkdownViewer/CustomComponents/ResolvedImage.tsx +0 -86
  112. package/src/components/MarkdownViewer/CustomComponents/ScrollToHashElement.tsx +0 -96
  113. package/src/components/MarkdownViewer/MarkdownViewer.spec.tsx +0 -170
  114. package/src/components/MarkdownViewer/index.tsx +0 -10
  115. package/src/components/NonIdealState.tsx +0 -20
  116. package/src/components/PoweredByLink.tsx +0 -30
  117. package/src/components/RequestSamples/RequestSamples.stories.tsx +0 -67
  118. package/src/components/RequestSamples/RequestSamples.tsx +0 -246
  119. package/src/components/RequestSamples/__tests__/RequestSamples.test.tsx +0 -131
  120. package/src/components/RequestSamples/__tests__/__snapshots__/convertRequestToSample.spec.ts.snap +0 -746
  121. package/src/components/RequestSamples/__tests__/convertRequestToSample.spec.ts +0 -118
  122. package/src/components/RequestSamples/convertRequestToSample.ts +0 -56
  123. package/src/components/RequestSamples/extractCodeSamples.ts +0 -50
  124. package/src/components/RequestSamples/index.ts +0 -2
  125. package/src/components/RequestSamples/requestSampleConfigs.ts +0 -182
  126. package/src/components/ResponseExamples/ResponseExamples.spec.tsx +0 -121
  127. package/src/components/ResponseExamples/ResponseExamples.stories.tsx +0 -21
  128. package/src/components/ResponseExamples/ResponseExamples.tsx +0 -79
  129. package/src/components/TableOfContents/TableOfContents.spec.tsx +0 -699
  130. package/src/components/TableOfContents/TableOfContents.stories.tsx +0 -136
  131. package/src/components/TableOfContents/TableOfContents.tsx +0 -536
  132. package/src/components/TableOfContents/constants.ts +0 -45
  133. package/src/components/TableOfContents/index.ts +0 -2
  134. package/src/components/TableOfContents/types.ts +0 -59
  135. package/src/components/TableOfContents/utils.ts +0 -84
  136. package/src/components/TryIt/Auth/APIKeyAuth.tsx +0 -19
  137. package/src/components/TryIt/Auth/Auth.tsx +0 -169
  138. package/src/components/TryIt/Auth/AuthTokenInput.tsx +0 -37
  139. package/src/components/TryIt/Auth/BasicAuth.tsx +0 -62
  140. package/src/components/TryIt/Auth/BearerAuth.tsx +0 -19
  141. package/src/components/TryIt/Auth/DigestAuth.tsx +0 -35
  142. package/src/components/TryIt/Auth/OAuth2Auth.tsx +0 -19
  143. package/src/components/TryIt/Auth/authentication-utils.ts +0 -113
  144. package/src/components/TryIt/Body/BinaryBody.tsx +0 -52
  145. package/src/components/TryIt/Body/FormDataBody.tsx +0 -145
  146. package/src/components/TryIt/Body/RequestBody.tsx +0 -71
  147. package/src/components/TryIt/Body/__tests__/BinaryBody.test.tsx +0 -29
  148. package/src/components/TryIt/Body/__tests__/FormDataBody.test.tsx +0 -94
  149. package/src/components/TryIt/Body/request-body-utils.ts +0 -127
  150. package/src/components/TryIt/Body/useTextRequestBodyState.ts +0 -27
  151. package/src/components/TryIt/Mocking/MockingButton.tsx +0 -98
  152. package/src/components/TryIt/Mocking/mocking-utils.ts +0 -56
  153. package/src/components/TryIt/Mocking/useMockingOptions.ts +0 -6
  154. package/src/components/TryIt/Parameters/FileUploadParameterEditors.tsx +0 -62
  155. package/src/components/TryIt/Parameters/OperationParameters.tsx +0 -39
  156. package/src/components/TryIt/Parameters/ParameterEditor.tsx +0 -135
  157. package/src/components/TryIt/Parameters/__tests__/parameter-utils.spec.ts +0 -60
  158. package/src/components/TryIt/Parameters/parameter-utils.spec.ts +0 -118
  159. package/src/components/TryIt/Parameters/parameter-utils.ts +0 -245
  160. package/src/components/TryIt/Parameters/useOperationParameters.ts +0 -60
  161. package/src/components/TryIt/Response/ReponseCodeViewer.tsx +0 -28
  162. package/src/components/TryIt/Response/Response.spec.tsx +0 -174
  163. package/src/components/TryIt/Response/Response.tsx +0 -173
  164. package/src/components/TryIt/Response/hooks/useLineCount.ts +0 -7
  165. package/src/components/TryIt/Servers/ServerVariables.tsx +0 -33
  166. package/src/components/TryIt/Servers/ServersDropdown.tsx +0 -53
  167. package/src/components/TryIt/Servers/VariableEditor.tsx +0 -64
  168. package/src/components/TryIt/Servers/useServerVariables.ts +0 -19
  169. package/src/components/TryIt/TryIt.spec.tsx +0 -1571
  170. package/src/components/TryIt/TryIt.stories.tsx +0 -77
  171. package/src/components/TryIt/TryIt.tsx +0 -404
  172. package/src/components/TryIt/TryItWithRequestSamples.spec.tsx +0 -143
  173. package/src/components/TryIt/TryItWithRequestSamples.stories.tsx +0 -32
  174. package/src/components/TryIt/TryItWithRequestSamples.tsx +0 -42
  175. package/src/components/TryIt/build-request.spec.ts +0 -261
  176. package/src/components/TryIt/build-request.ts +0 -357
  177. package/src/components/TryIt/chosenServer.ts +0 -5
  178. package/src/components/TryIt/index.ts +0 -3
  179. package/src/components/__tests__/LinkHeading.spec.tsx +0 -125
  180. package/src/constants.ts +0 -176
  181. package/src/containers/MockingProvider.tsx +0 -23
  182. package/src/context/InlineRefResolver.spec.tsx +0 -183
  183. package/src/context/InlineRefResolver.tsx +0 -94
  184. package/src/context/Options.tsx +0 -27
  185. package/src/context/Persistence.tsx +0 -24
  186. package/src/context/RouterType.tsx +0 -9
  187. package/src/core.css +0 -97
  188. package/src/hoc/utils.ts +0 -5
  189. package/src/hoc/withMosaicProvider.spec.tsx +0 -48
  190. package/src/hoc/withMosaicProvider.tsx +0 -28
  191. package/src/hoc/withQueryClientProvider.spec.tsx +0 -38
  192. package/src/hoc/withQueryClientProvider.tsx +0 -35
  193. package/src/hoc/withRouter.tsx +0 -71
  194. package/src/hooks/useBundleRefsIntoDocument.ts +0 -60
  195. package/src/hooks/useFirstRender.ts +0 -8
  196. package/src/hooks/useIsCompact.ts +0 -26
  197. package/src/hooks/useParsedData.ts +0 -99
  198. package/src/hooks/useParsedValue.ts +0 -19
  199. package/src/hooks/useResponsiveLayout.tsx +0 -51
  200. package/src/hooks/useRouter.tsx +0 -31
  201. package/src/hooks/useUniqueId.ts +0 -4
  202. package/src/index.ts +0 -48
  203. package/src/styled.tsx +0 -22
  204. package/src/styles.css +0 -4
  205. package/src/types.ts +0 -170
  206. package/src/utils/__tests__/securitySchemes.spec.ts +0 -137
  207. package/src/utils/exampleGeneration/exampleGeneration.spec.tsx +0 -664
  208. package/src/utils/exampleGeneration/exampleGeneration.ts +0 -332
  209. package/src/utils/fileToBase64.ts +0 -11
  210. package/src/utils/guards.ts +0 -48
  211. package/src/utils/headers.ts +0 -316
  212. package/src/utils/http-spec/IServer.ts +0 -100
  213. package/src/utils/http-spec/__tests__/IServer.spec.ts +0 -51
  214. package/src/utils/http-spec/examples.ts +0 -5
  215. package/src/utils/http.ts +0 -9
  216. package/src/utils/jotai/persistAtom.ts +0 -31
  217. package/src/utils/node.ts +0 -19
  218. package/src/utils/oas/__tests__/security.spec.ts +0 -18
  219. package/src/utils/oas/security.ts +0 -76
  220. package/src/utils/ref-resolving/ReferenceResolver.ts +0 -29
  221. package/src/utils/ref-resolving/resolvedObject.test.ts +0 -415
  222. package/src/utils/ref-resolving/resolvedObject.ts +0 -189
  223. package/src/utils/securitySchemes.ts +0 -117
  224. package/src/utils/string.ts +0 -15
  225. package/src/utils/tests/chooseOption.ts +0 -7
  226. package/src/web-components/createElementClass.ts +0 -154
  227. package/tsconfig.build.json +0 -14
  228. package/tsconfig.json +0 -7
  229. /package/{dist/__fixtures__ → __fixtures__}/articles/schema-with-refs.d.ts +0 -0
  230. /package/{dist/__fixtures__ → __fixtures__}/operations/application-octet-stream-post.d.ts +0 -0
  231. /package/{dist/__fixtures__ → __fixtures__}/operations/base64-file-upload.d.ts +0 -0
  232. /package/{dist/__fixtures__ → __fixtures__}/operations/big-response.d.ts +0 -0
  233. /package/{dist/__fixtures__ → __fixtures__}/operations/examples-request-body.d.ts +0 -0
  234. /package/{dist/__fixtures__ → __fixtures__}/operations/head-todos.d.ts +0 -0
  235. /package/{dist/__fixtures__ → __fixtures__}/operations/multipart-formdata-post.d.ts +0 -0
  236. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-minimal.d.ts +0 -0
  237. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-parameters.d.ts +0 -0
  238. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-with-examples.d.ts +0 -0
  239. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-without-servers.d.ts +0 -0
  240. /package/{dist/__fixtures__ → __fixtures__}/operations/patch-todos.d.ts +0 -0
  241. /package/{dist/__fixtures__ → __fixtures__}/operations/put-todos.d.ts +0 -0
  242. /package/{dist/__fixtures__ → __fixtures__}/operations/referenced-body.d.ts +0 -0
  243. /package/{dist/__fixtures__ → __fixtures__}/operations/request-body-empty-schema.d.ts +0 -0
  244. /package/{dist/__fixtures__ → __fixtures__}/operations/request-body.d.ts +0 -0
  245. /package/{dist/__fixtures__ → __fixtures__}/operations/securedOperation.d.ts +0 -0
  246. /package/{dist/__fixtures__ → __fixtures__}/operations/security-basic.d.ts +0 -0
  247. /package/{dist/__fixtures__ → __fixtures__}/operations/security-bearer.d.ts +0 -0
  248. /package/{dist/__fixtures__ → __fixtures__}/operations/simple-get.d.ts +0 -0
  249. /package/{dist/__fixtures__ → __fixtures__}/operations/string-numeric-enums.d.ts +0 -0
  250. /package/{dist/__fixtures__ → __fixtures__}/operations/urlencoded-post-oneof.d.ts +0 -0
  251. /package/{dist/__fixtures__ → __fixtures__}/operations/urlencoded-post.d.ts +0 -0
  252. /package/{dist/__fixtures__ → __fixtures__}/operations/with-url-variables.d.ts +0 -0
  253. /package/{dist/__fixtures__ → __fixtures__}/security-schemes/index.d.ts +0 -0
  254. /package/{dist/__fixtures__ → __fixtures__}/services/petstore.d.ts +0 -0
  255. /package/{dist/__fixtures__ → __fixtures__}/services/with-unnamed-servers.d.ts +0 -0
  256. /package/{dist/__fixtures__ → __fixtures__}/services/with-url-variables.d.ts +0 -0
  257. /package/{dist/__fixtures__ → __fixtures__}/services/without-origin.d.ts +0 -0
  258. /package/{dist/components → components}/Docs/Article/Article.spec.d.ts +0 -0
  259. /package/{dist/components → components}/Docs/Article/Article.stories.d.ts +0 -0
  260. /package/{dist/components → components}/Docs/Article/index.d.ts +0 -0
  261. /package/{dist/components → components}/Docs/Docs.d.ts +0 -0
  262. /package/{dist/components → components}/Docs/Docs.stories.d.ts +0 -0
  263. /package/{dist/components → components}/Docs/HttpOperation/Badges.d.ts +0 -0
  264. /package/{dist/components → components}/Docs/HttpOperation/Body.d.ts +0 -0
  265. /package/{dist/components → components}/Docs/HttpOperation/Callbacks.d.ts +0 -0
  266. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.d.ts +0 -0
  267. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.spec.d.ts +0 -0
  268. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.stories.d.ts +0 -0
  269. /package/{dist/components → components}/Docs/HttpOperation/Parameters.d.ts +0 -0
  270. /package/{dist/components → components}/Docs/HttpOperation/Parameters.spec.d.ts +0 -0
  271. /package/{dist/components → components}/Docs/HttpOperation/Request.d.ts +0 -0
  272. /package/{dist/components → components}/Docs/HttpOperation/Responses.d.ts +0 -0
  273. /package/{dist/components → components}/Docs/HttpOperation/index.d.ts +0 -0
  274. /package/{dist/components → components}/Docs/HttpService/AdditionalInfo.d.ts +0 -0
  275. /package/{dist/components → components}/Docs/HttpService/AdditionalInfo.stories.d.ts +0 -0
  276. /package/{dist/components → components}/Docs/HttpService/ExportButton.d.ts +0 -0
  277. /package/{dist/components → components}/Docs/HttpService/HttpService.d.ts +0 -0
  278. /package/{dist/components → components}/Docs/HttpService/HttpService.spec.d.ts +0 -0
  279. /package/{dist/components → components}/Docs/HttpService/HttpService.stories.d.ts +0 -0
  280. /package/{dist/components → components}/Docs/HttpService/SecuritySchemes.d.ts +0 -0
  281. /package/{dist/components → components}/Docs/HttpService/ServerInfo.d.ts +0 -0
  282. /package/{dist/components → components}/Docs/HttpService/index.d.ts +0 -0
  283. /package/{dist/components → components}/Docs/Model/Model.d.ts +0 -0
  284. /package/{dist/components → components}/Docs/Model/Model.spec.d.ts +0 -0
  285. /package/{dist/components → components}/Docs/Model/Model.stories.d.ts +0 -0
  286. /package/{dist/components → components}/Docs/Model/index.d.ts +0 -0
  287. /package/{dist/components → components}/Docs/NodeVendorExtensions.d.ts +0 -0
  288. /package/{dist/components → components}/Docs/Sections.d.ts +0 -0
  289. /package/{dist/components → components}/Docs/Security/PanelContent.d.ts +0 -0
  290. /package/{dist/components → components}/Docs/Security/index.d.ts +0 -0
  291. /package/{dist/components → components}/Docs/Skeleton.d.ts +0 -0
  292. /package/{dist/components → components}/Docs/TwoColumnLayout.d.ts +0 -0
  293. /package/{dist/components → components}/Docs/index.d.ts +0 -0
  294. /package/{dist/components → components}/Docs/story-helper.d.ts +0 -0
  295. /package/{dist/components → components}/Docs/story-renderer-helper.d.ts +0 -0
  296. /package/{dist/components → components}/Layout/MobileTopNav.d.ts +0 -0
  297. /package/{dist/components → components}/Layout/ResponsiveSidebarLayout.d.ts +0 -0
  298. /package/{dist/components → components}/Layout/SidebarLayout.d.ts +0 -0
  299. /package/{dist/components → components}/LinkHeading.d.ts +0 -0
  300. /package/{dist/components → components}/LoadMore.d.ts +0 -0
  301. /package/{dist/components → components}/Loading/Loading.d.ts +0 -0
  302. /package/{dist/components → components}/Logo.d.ts +0 -0
  303. /package/{dist/components → components}/MarkdownViewer/CustomComponents/CodeComponent.d.ts +0 -0
  304. /package/{dist/components → components}/MarkdownViewer/CustomComponents/CodeComponent.spec.d.ts +0 -0
  305. /package/{dist/components → components}/MarkdownViewer/CustomComponents/Provider.d.ts +0 -0
  306. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ReactRouterLink.d.ts +0 -0
  307. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ResolvedImage.d.ts +0 -0
  308. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ScrollToHashElement.d.ts +0 -0
  309. /package/{dist/components → components}/MarkdownViewer/MarkdownViewer.spec.d.ts +0 -0
  310. /package/{dist/components → components}/MarkdownViewer/index.d.ts +0 -0
  311. /package/{dist/components → components}/NonIdealState.d.ts +0 -0
  312. /package/{dist/components → components}/PoweredByLink.d.ts +0 -0
  313. /package/{dist/components → components}/RequestSamples/RequestSamples.d.ts +0 -0
  314. /package/{dist/components → components}/RequestSamples/RequestSamples.stories.d.ts +0 -0
  315. /package/{dist/components → components}/RequestSamples/convertRequestToSample.d.ts +0 -0
  316. /package/{dist/components → components}/RequestSamples/extractCodeSamples.d.ts +0 -0
  317. /package/{dist/components → components}/RequestSamples/index.d.ts +0 -0
  318. /package/{dist/components → components}/RequestSamples/requestSampleConfigs.d.ts +0 -0
  319. /package/{dist/components → components}/ResponseExamples/ResponseExamples.d.ts +0 -0
  320. /package/{dist/components → components}/ResponseExamples/ResponseExamples.spec.d.ts +0 -0
  321. /package/{dist/components → components}/ResponseExamples/ResponseExamples.stories.d.ts +0 -0
  322. /package/{dist/components → components}/TableOfContents/TableOfContents.d.ts +0 -0
  323. /package/{dist/components → components}/TableOfContents/TableOfContents.spec.d.ts +0 -0
  324. /package/{dist/components → components}/TableOfContents/TableOfContents.stories.d.ts +0 -0
  325. /package/{dist/components → components}/TableOfContents/constants.d.ts +0 -0
  326. /package/{dist/components → components}/TableOfContents/index.d.ts +0 -0
  327. /package/{dist/components → components}/TableOfContents/types.d.ts +0 -0
  328. /package/{dist/components → components}/TableOfContents/utils.d.ts +0 -0
  329. /package/{dist/components → components}/TryIt/Auth/APIKeyAuth.d.ts +0 -0
  330. /package/{dist/components → components}/TryIt/Auth/Auth.d.ts +0 -0
  331. /package/{dist/components → components}/TryIt/Auth/AuthTokenInput.d.ts +0 -0
  332. /package/{dist/components → components}/TryIt/Auth/BasicAuth.d.ts +0 -0
  333. /package/{dist/components → components}/TryIt/Auth/BearerAuth.d.ts +0 -0
  334. /package/{dist/components → components}/TryIt/Auth/DigestAuth.d.ts +0 -0
  335. /package/{dist/components → components}/TryIt/Auth/OAuth2Auth.d.ts +0 -0
  336. /package/{dist/components → components}/TryIt/Auth/authentication-utils.d.ts +0 -0
  337. /package/{dist/components → components}/TryIt/Body/BinaryBody.d.ts +0 -0
  338. /package/{dist/components → components}/TryIt/Body/FormDataBody.d.ts +0 -0
  339. /package/{dist/components → components}/TryIt/Body/RequestBody.d.ts +0 -0
  340. /package/{dist/components → components}/TryIt/Body/request-body-utils.d.ts +0 -0
  341. /package/{dist/components → components}/TryIt/Body/useTextRequestBodyState.d.ts +0 -0
  342. /package/{dist/components → components}/TryIt/Mocking/MockingButton.d.ts +0 -0
  343. /package/{dist/components → components}/TryIt/Mocking/mocking-utils.d.ts +0 -0
  344. /package/{dist/components → components}/TryIt/Mocking/useMockingOptions.d.ts +0 -0
  345. /package/{dist/components → components}/TryIt/Parameters/FileUploadParameterEditors.d.ts +0 -0
  346. /package/{dist/components → components}/TryIt/Parameters/OperationParameters.d.ts +0 -0
  347. /package/{dist/components → components}/TryIt/Parameters/ParameterEditor.d.ts +0 -0
  348. /package/{dist/components → components}/TryIt/Parameters/parameter-utils.d.ts +0 -0
  349. /package/{dist/components → components}/TryIt/Parameters/parameter-utils.spec.d.ts +0 -0
  350. /package/{dist/components → components}/TryIt/Parameters/useOperationParameters.d.ts +0 -0
  351. /package/{dist/components → components}/TryIt/Response/ReponseCodeViewer.d.ts +0 -0
  352. /package/{dist/components → components}/TryIt/Response/Response.d.ts +0 -0
  353. /package/{dist/components → components}/TryIt/Response/Response.spec.d.ts +0 -0
  354. /package/{dist/components → components}/TryIt/Response/hooks/useLineCount.d.ts +0 -0
  355. /package/{dist/components → components}/TryIt/Servers/ServerVariables.d.ts +0 -0
  356. /package/{dist/components → components}/TryIt/Servers/ServersDropdown.d.ts +0 -0
  357. /package/{dist/components → components}/TryIt/Servers/VariableEditor.d.ts +0 -0
  358. /package/{dist/components → components}/TryIt/Servers/useServerVariables.d.ts +0 -0
  359. /package/{dist/components → components}/TryIt/TryIt.d.ts +0 -0
  360. /package/{dist/components → components}/TryIt/TryIt.spec.d.ts +0 -0
  361. /package/{dist/components → components}/TryIt/TryIt.stories.d.ts +0 -0
  362. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.d.ts +0 -0
  363. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.spec.d.ts +0 -0
  364. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.stories.d.ts +0 -0
  365. /package/{dist/components → components}/TryIt/build-request.d.ts +0 -0
  366. /package/{dist/components → components}/TryIt/build-request.spec.d.ts +0 -0
  367. /package/{dist/components → components}/TryIt/chosenServer.d.ts +0 -0
  368. /package/{dist/components → components}/TryIt/index.d.ts +0 -0
  369. /package/{dist/constants.d.ts → constants.d.ts} +0 -0
  370. /package/{dist/containers → containers}/MockingProvider.d.ts +0 -0
  371. /package/{dist/context → context}/InlineRefResolver.d.ts +0 -0
  372. /package/{dist/context → context}/InlineRefResolver.spec.d.ts +0 -0
  373. /package/{dist/context → context}/Options.d.ts +0 -0
  374. /package/{dist/context → context}/Persistence.d.ts +0 -0
  375. /package/{dist/context → context}/RouterType.d.ts +0 -0
  376. /package/{dist/core.css → core.css} +0 -0
  377. /package/{dist/hoc → hoc}/utils.d.ts +0 -0
  378. /package/{dist/hoc → hoc}/withMosaicProvider.d.ts +0 -0
  379. /package/{dist/hoc → hoc}/withMosaicProvider.spec.d.ts +0 -0
  380. /package/{dist/hoc → hoc}/withQueryClientProvider.d.ts +0 -0
  381. /package/{dist/hoc → hoc}/withQueryClientProvider.spec.d.ts +0 -0
  382. /package/{dist/hoc → hoc}/withRouter.d.ts +0 -0
  383. /package/{dist/hooks → hooks}/useBundleRefsIntoDocument.d.ts +0 -0
  384. /package/{dist/hooks → hooks}/useFirstRender.d.ts +0 -0
  385. /package/{dist/hooks → hooks}/useIsCompact.d.ts +0 -0
  386. /package/{dist/hooks → hooks}/useParsedData.d.ts +0 -0
  387. /package/{dist/hooks → hooks}/useParsedValue.d.ts +0 -0
  388. /package/{dist/hooks → hooks}/useResponsiveLayout.d.ts +0 -0
  389. /package/{dist/hooks → hooks}/useRouter.d.ts +0 -0
  390. /package/{dist/hooks → hooks}/useUniqueId.d.ts +0 -0
  391. /package/{dist/index.d.ts → index.d.ts} +0 -0
  392. /package/{dist/index.esm.js → index.esm.js} +0 -0
  393. /package/{dist/index.js → index.js} +0 -0
  394. /package/{dist/index.mjs → index.mjs} +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
- });