@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,332 +0,0 @@
1
- import { isPlainObject, safeStringify } from '@stoplight/json';
2
- import * as Sampler from '@stoplight/json-schema-sampler';
3
- import { IMediaTypeContent, INodeExample, INodeExternalExample } from '@stoplight/types';
4
- import { JSONSchema7 } from 'json-schema';
5
- import React from 'react';
6
-
7
- import { useDocument } from '../../context/InlineRefResolver';
8
- import { getResolvedObject } from '../ref-resolving/resolvedObject';
9
-
10
- type Example = {
11
- label: string;
12
- data: string;
13
- };
14
-
15
- // Merges oneOf/anyOf with their first option because @stoplight/json-schema-sampler cannot handle them.
16
- const mergeOneOfAnyOf = (schema: any): any => {
17
- if (!isPlainObject(schema)) {
18
- return schema;
19
- }
20
-
21
- let result: any = { ...schema };
22
-
23
- if (result.oneOf && result.oneOf.length > 0) {
24
- const firstOption = result.oneOf[0];
25
- const { oneOf, ...rest } = result;
26
- result = { ...rest, ...firstOption };
27
- } else if (result.anyOf && result.anyOf.length > 0) {
28
- const firstOption = result.anyOf[0];
29
- const { anyOf, ...rest } = result;
30
- result = { ...rest, ...firstOption };
31
- }
32
-
33
- if (result.properties) {
34
- result.properties = Object.fromEntries(
35
- Object.entries(result.properties).map(([key, value]) => [key, mergeOneOfAnyOf(value)]),
36
- );
37
- }
38
-
39
- if (result.items) {
40
- result.items = mergeOneOfAnyOf(result.items);
41
- }
42
-
43
- if (result.allOf) {
44
- result.allOf = result.allOf.map((item: any) => mergeOneOfAnyOf(item));
45
- }
46
-
47
- delete result.oneOf;
48
- delete result.anyOf;
49
-
50
- return result;
51
- };
52
-
53
- // Range bounds injected by convertToJsonSchema for OAS numeric formats.
54
- const OAS_FORMAT_RANGES: Record<string, { minimum: number; maximum: number }> = {
55
- int32: { minimum: 0 - 2 ** 31, maximum: 2 ** 31 - 1 },
56
- int64: { minimum: Number.MIN_SAFE_INTEGER, maximum: Number.MAX_SAFE_INTEGER },
57
- float: { minimum: 0 - 2 ** 128, maximum: 2 ** 128 - 1 },
58
- double: { minimum: 0 - Number.MAX_VALUE, maximum: Number.MAX_VALUE },
59
- };
60
-
61
- // Stoplight translation can infer numeric bounds from formats (e.g. int32/float).
62
- // When those bounds were not explicitly authored, omit them so the sampler generates
63
- // representative values instead of format-boundary extremes.
64
- const stripInferredNumericBounds = (schema: any): any => {
65
- if (!isPlainObject(schema)) {
66
- return schema;
67
- }
68
-
69
- const result: any = { ...schema };
70
- const explicitProperties = Array.isArray(result?.['x-stoplight']?.explicitProperties)
71
- ? result['x-stoplight'].explicitProperties
72
- : [];
73
- const isNumericType = result.type === 'integer' || result.type === 'number';
74
- const formatRange = OAS_FORMAT_RANGES[result.format];
75
-
76
- // Strip if not explicit OR if the value exactly matches the format-injected range default.
77
- // The second condition handles schemas that were processed twice, causing the range value
78
- // to appear in explicitProperties even though it was not authored.
79
- const hasExplicitMinimum =
80
- explicitProperties.includes('minimum') && result.minimum !== formatRange?.minimum;
81
- const hasExplicitMaximum =
82
- explicitProperties.includes('maximum') && result.maximum !== formatRange?.maximum;
83
-
84
- if (isNumericType && !hasExplicitMinimum) {
85
- delete result.minimum;
86
- }
87
-
88
- if (isNumericType && !hasExplicitMaximum) {
89
- delete result.maximum;
90
- }
91
-
92
- if (result.properties && isPlainObject(result.properties)) {
93
- result.properties = Object.fromEntries(
94
- Object.entries(result.properties).map(([key, value]) => [key, stripInferredNumericBounds(value)]),
95
- );
96
- }
97
-
98
- if (Array.isArray(result.items)) {
99
- result.items = result.items.map((item: any) => stripInferredNumericBounds(item));
100
- } else if (result.items) {
101
- result.items = stripInferredNumericBounds(result.items);
102
- }
103
-
104
- if (Array.isArray(result.allOf)) {
105
- result.allOf = result.allOf.map((item: any) => stripInferredNumericBounds(item));
106
- }
107
-
108
- if (Array.isArray(result.oneOf)) {
109
- result.oneOf = result.oneOf.map((item: any) => stripInferredNumericBounds(item));
110
- }
111
-
112
- if (Array.isArray(result.anyOf)) {
113
- result.anyOf = result.anyOf.map((item: any) => stripInferredNumericBounds(item));
114
- }
115
-
116
- return result;
117
- };
118
-
119
- // Sentinel replaced with literal 0.0 after JSON stringify to produce a decimal representation.
120
- const FLOAT_ZERO_MARKER = '__FLOAT_ZERO__';
121
-
122
- // Walks sampled value + schema in parallel; replaces 0 with FLOAT_ZERO_MARKER for float/double fields.
123
- const markFloatZeros = (value: any, schema: any): any => {
124
- if (!isPlainObject(schema)) return value;
125
-
126
- if (Array.isArray(schema.allOf)) {
127
- return schema.allOf.reduce((currentValue: any, item: any) => markFloatZeros(currentValue, item), value);
128
- }
129
-
130
- if (Array.isArray(schema.oneOf) && schema.oneOf.length > 0) {
131
- return markFloatZeros(value, schema.oneOf[0]);
132
- }
133
-
134
- if (Array.isArray(schema.anyOf) && schema.anyOf.length > 0) {
135
- return markFloatZeros(value, schema.anyOf[0]);
136
- }
137
-
138
- if (schema.type === 'number' && (schema.format === 'float' || schema.format === 'double') && value === 0) {
139
- return FLOAT_ZERO_MARKER;
140
- }
141
-
142
- if (isPlainObject(value) && isPlainObject(schema.properties)) {
143
- return Object.fromEntries(
144
- Object.entries(value).map(([k, v]) => [k, markFloatZeros(v, (schema.properties as any)[k] ?? {})]),
145
- );
146
- }
147
-
148
- if (Array.isArray(value) && schema.items && !Array.isArray(schema.items)) {
149
- return value.map((item: any) => markFloatZeros(item, schema.items));
150
- }
151
-
152
- return value;
153
- };
154
-
155
- const stringifyWithFloatZeros = (value: any): string => {
156
- // safeStringify returns a bare string (no JSON quotes) for scalar string values,
157
- // so handle the top-level float marker before stringifying.
158
- if (value === FLOAT_ZERO_MARKER) return '0.0';
159
- return (safeStringify(value, undefined, 2) ?? '').replace(/"__FLOAT_ZERO__"/g, '0.0');
160
- };
161
-
162
- const normalizeInferredNumericBounds = (value: any, schema: any): any => {
163
- if (!isPlainObject(schema)) return value;
164
-
165
- const schemaObject: any = schema;
166
-
167
- if (Array.isArray(schemaObject.allOf)) {
168
- return schemaObject.allOf.reduce(
169
- (currentValue: any, item: any) => normalizeInferredNumericBounds(currentValue, item),
170
- value,
171
- );
172
- }
173
-
174
- if (Array.isArray(schemaObject.oneOf) && schemaObject.oneOf.length > 0) {
175
- return normalizeInferredNumericBounds(value, schemaObject.oneOf[0]);
176
- }
177
-
178
- if (Array.isArray(schemaObject.anyOf) && schemaObject.anyOf.length > 0) {
179
- return normalizeInferredNumericBounds(value, schemaObject.anyOf[0]);
180
- }
181
-
182
- const explicitProperties = Array.isArray(schemaObject?.['x-stoplight']?.explicitProperties)
183
- ? schemaObject['x-stoplight'].explicitProperties
184
- : [];
185
- const isNumericType = schemaObject.type === 'integer' || schemaObject.type === 'number';
186
- const formatRange = OAS_FORMAT_RANGES[schemaObject.format];
187
- const hasExplicitMinimum = explicitProperties.includes('minimum') && schemaObject.minimum !== formatRange?.minimum;
188
- const hasExplicitMaximum = explicitProperties.includes('maximum') && schemaObject.maximum !== formatRange?.maximum;
189
-
190
- if (
191
- isNumericType &&
192
- formatRange &&
193
- ((!hasExplicitMinimum && value === formatRange.minimum) || (!hasExplicitMaximum && value === formatRange.maximum))
194
- ) {
195
- return schemaObject.type === 'number' && (schemaObject.format === 'float' || schemaObject.format === 'double')
196
- ? FLOAT_ZERO_MARKER
197
- : 0;
198
- }
199
-
200
- if (isPlainObject(value) && isPlainObject(schemaObject.properties)) {
201
- return Object.fromEntries(
202
- Object.entries(value).map(([key, nestedValue]) => [
203
- key,
204
- normalizeInferredNumericBounds(nestedValue, (schemaObject.properties as any)[key] ?? {}),
205
- ]),
206
- );
207
- }
208
-
209
- if (Array.isArray(value) && schemaObject.items && !Array.isArray(schemaObject.items)) {
210
- return value.map((item: any) => normalizeInferredNumericBounds(item, schemaObject.items));
211
- }
212
-
213
- if (Array.isArray(value) && Array.isArray(schemaObject.items)) {
214
- return value.map((item: any, index: number) => normalizeInferredNumericBounds(item, schemaObject.items[index]));
215
- }
216
-
217
- return value;
218
- };
219
-
220
- export const stringifyExampleWithResolvedSchema = (value: any, schema: any): string => {
221
- const normalizedValue = normalizeInferredNumericBounds(value, schema);
222
- return stringifyWithFloatZeros(markFloatZeros(normalizedValue, schema));
223
- };
224
-
225
- export type GenerateExampleFromMediaTypeContentOptions = Sampler.Options;
226
-
227
- export const useGenerateExampleFromMediaTypeContent = (
228
- mediaTypeContent: IMediaTypeContent | undefined,
229
- chosenExampleIndex?: number,
230
- { skipReadOnly, skipWriteOnly, skipNonRequired, ticks }: GenerateExampleFromMediaTypeContentOptions = {},
231
- ) => {
232
- const document = useDocument();
233
- return React.useMemo(
234
- () =>
235
- generateExampleFromMediaTypeContent(mediaTypeContent, document, chosenExampleIndex, {
236
- skipNonRequired,
237
- skipWriteOnly,
238
- skipReadOnly,
239
- ticks: ticks || 6000,
240
- }),
241
- [mediaTypeContent, document, chosenExampleIndex, skipNonRequired, skipWriteOnly, skipReadOnly, ticks],
242
- );
243
- };
244
-
245
- export const generateExampleFromMediaTypeContent = (
246
- mediaTypeContent: IMediaTypeContent | undefined,
247
- document: any,
248
- chosenExampleIndex = 0,
249
- options?: GenerateExampleFromMediaTypeContentOptions,
250
- ) => {
251
- const textRequestBodySchema = mediaTypeContent?.schema;
252
- const textRequestBodyExamples = mediaTypeContent?.examples;
253
-
254
- try {
255
- if (textRequestBodyExamples?.length) {
256
- return (
257
- safeStringify(
258
- textRequestBodyExamples?.[chosenExampleIndex]['value' as keyof (INodeExample | INodeExternalExample)],
259
- undefined,
260
- 2,
261
- ) ?? ''
262
- );
263
- } else if (textRequestBodySchema) {
264
- let unwrappedSchema = getResolvedObject(textRequestBodySchema) as any;
265
-
266
- unwrappedSchema = stripInferredNumericBounds(unwrappedSchema);
267
- unwrappedSchema = mergeOneOfAnyOf(unwrappedSchema);
268
-
269
- const generated = Sampler.sample(unwrappedSchema, options, document);
270
-
271
- if (generated === null) return '';
272
- return stringifyExampleWithResolvedSchema(generated, unwrappedSchema);
273
- }
274
- } catch (e) {
275
- console.warn(e);
276
- return `Example cannot be created for this schema\n${e}`;
277
- }
278
- return '';
279
- };
280
-
281
- export const generateExamplesFromJsonSchema = (schema: JSONSchema7 & { 'x-examples'?: unknown }): Example[] => {
282
- const examples: Example[] = [];
283
-
284
- if (Array.isArray(schema?.examples)) {
285
- schema.examples.forEach((example, index) => {
286
- examples.push({
287
- data: safeStringify(example, undefined, 2) ?? '',
288
- label: index === 0 ? 'default' : `example-${index}`,
289
- });
290
- });
291
- } else if (isPlainObject(schema?.['x-examples'])) {
292
- for (const [label, example] of Object.entries(schema['x-examples'])) {
293
- if (isPlainObject(example)) {
294
- const val = example.hasOwnProperty('value') && Object.keys(example).length === 1 ? example.value : example;
295
- examples.push({
296
- label,
297
- data: safeStringify(val, undefined, 2) ?? '',
298
- });
299
- }
300
- }
301
- }
302
-
303
- if (examples.length) {
304
- return examples;
305
- }
306
-
307
- try {
308
- let resolvedSchema = getResolvedObject(schema);
309
- resolvedSchema = stripInferredNumericBounds(resolvedSchema);
310
- resolvedSchema = mergeOneOfAnyOf(resolvedSchema);
311
-
312
- const generated = Sampler.sample(resolvedSchema, {
313
- maxSampleDepth: 4,
314
- ticks: 6000,
315
- });
316
-
317
- return generated !== null
318
- ? [
319
- {
320
- label: 'default',
321
- data: stringifyExampleWithResolvedSchema(generated, resolvedSchema),
322
- },
323
- ]
324
- : [{ label: 'default', data: '' }];
325
- } catch (e) {
326
- return [{ label: '', data: `Example cannot be created for this schema\n${e}` }];
327
- }
328
- };
329
-
330
- export const exceedsSize = (example: string, size: number = 500) => {
331
- return example.split(/\r\n|\r|\n/).length > size;
332
- };
@@ -1,11 +0,0 @@
1
- export const fileToBase64 = (file: File) =>
2
- new Promise<string>((resolve, reject) => {
3
- const reader = new FileReader();
4
- reader.readAsDataURL(file);
5
- reader.onload = () => {
6
- const result = reader.result as string;
7
- const base64String = result.replace(/data:.*\/.*;base64,/g, '');
8
- resolve(base64String);
9
- };
10
- reader.onerror = () => reject(reader.error);
11
- });
@@ -1,48 +0,0 @@
1
- import type { IMarkdownViewerProps } from '@stoplight/markdown-viewer';
2
- import { isArray } from '@stoplight/mosaic';
3
- import { IHttpOperation, IHttpService, IHttpWebhookOperation, INode } from '@stoplight/types';
4
- import { JSONSchema7 } from 'json-schema';
5
- import { isObject, isPlainObject } from 'lodash';
6
-
7
- export function isSMDASTRoot(maybeAst: unknown): maybeAst is IMarkdownViewerProps['markdown'] {
8
- return (
9
- isObject(maybeAst) &&
10
- maybeAst['type' as keyof IMarkdownViewerProps['markdown']] === 'root' &&
11
- isArray(maybeAst['children' as keyof IMarkdownViewerProps['markdown']])
12
- );
13
- }
14
-
15
- export function isJSONSchema(maybeSchema: unknown): maybeSchema is JSONSchema7 {
16
- // the trick is, JSONSchema doesn't define any required properties, so technically even an empty object is a valid JSONSchema
17
- return isPlainObject(maybeSchema);
18
- }
19
-
20
- function isStoplightNode(maybeNode: unknown): maybeNode is INode {
21
- return isObject(maybeNode) && 'id' in maybeNode;
22
- }
23
-
24
- export function isHttpService(maybeHttpService: unknown): maybeHttpService is IHttpService {
25
- return isStoplightNode(maybeHttpService) && 'name' in maybeHttpService && 'version' in maybeHttpService;
26
- }
27
-
28
- export function isHttpOperation(maybeHttpOperation: unknown): maybeHttpOperation is IHttpOperation {
29
- return isStoplightNode(maybeHttpOperation) && 'method' in maybeHttpOperation && 'path' in maybeHttpOperation;
30
- }
31
-
32
- export function isHttpWebhookOperation(
33
- maybeHttpWebhookOperation: unknown,
34
- ): maybeHttpWebhookOperation is IHttpWebhookOperation {
35
- return (
36
- isStoplightNode(maybeHttpWebhookOperation) &&
37
- 'method' in maybeHttpWebhookOperation &&
38
- 'name' in maybeHttpWebhookOperation
39
- );
40
- }
41
-
42
- const properUrl = new RegExp(
43
- /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/,
44
- );
45
-
46
- export function isProperUrl(url: string) {
47
- return properUrl.test(url);
48
- }