@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,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
- }