@stoplight/elements-core 9.0.16-beta-0.3 → 9.0.17

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} +34 -46
  2. package/{dist/index.js → index.js} +33 -45
  3. package/{dist/index.mjs → index.mjs} +34 -46
  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 -1
  10. package/dist/package.json +0 -64
  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 -233
  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 -316
  133. package/src/components/TableOfContents/TableOfContents.stories.tsx +0 -136
  134. package/src/components/TableOfContents/TableOfContents.tsx +0 -530
  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 -172
  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 -1511
  173. package/src/components/TryIt/TryIt.stories.tsx +0 -77
  174. package/src/components/TryIt/TryIt.tsx +0 -384
  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 -358
  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 -18
  211. package/src/utils/exampleGeneration/exampleGeneration.ts +0 -110
  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 -107
  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,125 +0,0 @@
1
- /**
2
- * @jest-environment jest-environment-jsdom-global
3
- */
4
-
5
- import '@testing-library/jest-dom';
6
-
7
- import { jest } from '@jest/globals';
8
- import { render } from '@testing-library/react';
9
- import * as React from 'react';
10
- import { BrowserRouter, HashRouter } from 'react-router-dom';
11
-
12
- import { RouterTypeContext } from '../../context/RouterType';
13
- import { LinkHeading } from '../LinkHeading';
14
-
15
- declare const jsdom: { reconfigure(opts: { url: string }): void };
16
-
17
- describe('LinkHeading', () => {
18
- const scroll = jest.fn();
19
- const scrollIntoView = HTMLElement.prototype.scrollIntoView;
20
-
21
- beforeAll(() => {
22
- jest.useFakeTimers();
23
- HTMLElement.prototype.scrollIntoView = scroll;
24
- });
25
-
26
- afterEach(() => {
27
- scroll.mockRestore();
28
- });
29
-
30
- afterAll(() => {
31
- jest.useRealTimers();
32
- HTMLElement.prototype.scrollIntoView = scrollIntoView;
33
- });
34
-
35
- describe('given browser router', () => {
36
- beforeEach(() => {
37
- jsdom.reconfigure({ url: 'https://elements-demo.stoplight.io/route' });
38
- });
39
-
40
- it('should not append id to the route', () => {
41
- location.hash = 'heading';
42
-
43
- const { baseElement } = render(
44
- <RouterTypeContext.Provider value="history">
45
- <BrowserRouter>
46
- <LinkHeading id="heading" size={1}>
47
- Hello
48
- </LinkHeading>
49
- </BrowserRouter>
50
- </RouterTypeContext.Provider>,
51
- );
52
-
53
- expect(baseElement.querySelector('a')).toHaveProperty('href', 'https://elements-demo.stoplight.io/route#heading');
54
- });
55
-
56
- it('should scroll into view', () => {
57
- location.hash = 'heading';
58
-
59
- render(
60
- <RouterTypeContext.Provider value="history">
61
- <BrowserRouter>
62
- <LinkHeading id="heading" size={1}>
63
- Hello
64
- </LinkHeading>
65
- </BrowserRouter>
66
- </RouterTypeContext.Provider>,
67
- );
68
-
69
- jest.advanceTimersByTime(300);
70
- expect(scroll).toBeCalledWith({
71
- behavior: 'smooth',
72
- block: 'start',
73
- });
74
- });
75
- });
76
-
77
- describe('given hash router', () => {
78
- beforeEach(() => {
79
- jsdom.reconfigure({ url: 'https://elements-demo.stoplight.io' });
80
- });
81
-
82
- afterEach(() => {
83
- window.location.hash = '';
84
- });
85
-
86
- it('should append id to the route', () => {
87
- window.location.hash = '/route#test';
88
-
89
- const { baseElement } = render(
90
- <RouterTypeContext.Provider value="hash">
91
- <HashRouter>
92
- <LinkHeading id="heading" size={1}>
93
- Hello
94
- </LinkHeading>
95
- </HashRouter>
96
- </RouterTypeContext.Provider>,
97
- );
98
-
99
- expect(baseElement.querySelector('a')).toHaveProperty(
100
- 'href',
101
- 'https://elements-demo.stoplight.io/#/route#heading',
102
- );
103
- });
104
-
105
- it('should scroll into view', () => {
106
- window.location.hash = '/route#test';
107
-
108
- render(
109
- <RouterTypeContext.Provider value="hash">
110
- <HashRouter>
111
- <LinkHeading id="test" size={1}>
112
- Hello
113
- </LinkHeading>
114
- </HashRouter>
115
- </RouterTypeContext.Provider>,
116
- );
117
-
118
- jest.advanceTimersByTime(300);
119
- expect(scroll).toBeCalledWith({
120
- behavior: 'smooth',
121
- block: 'start',
122
- });
123
- });
124
- });
125
- });
package/src/constants.ts DELETED
@@ -1,176 +0,0 @@
1
- import {
2
- faBookOpen,
3
- faCloud,
4
- faCrosshairs,
5
- faCube,
6
- faDatabase,
7
- faEnvelope,
8
- faImage,
9
- faQuestionCircle,
10
- IconDefinition,
11
- } from '@fortawesome/free-solid-svg-icons';
12
- import { IntentVals } from '@stoplight/mosaic';
13
- import { Dictionary, HttpMethod, HttpSecurityScheme, NodeType } from '@stoplight/types';
14
-
15
- export const NodeTypeColors: Readonly<Dictionary<string, NodeType>> = {
16
- http_operation: '#6a6acb',
17
- http_webhook: 'primary',
18
- http_service: '#e056fd',
19
- article: '#399da6',
20
- model: '#ef932b',
21
- http_server: '',
22
- generic: '',
23
- unknown: '',
24
- table_of_contents: '',
25
- spectral_ruleset: '',
26
- styleguide: '',
27
- image: '',
28
- http_callback: '',
29
- stoplight_override: '',
30
- stoplight_resolutions: '',
31
- };
32
-
33
- export const NodeTypePrettyName: Readonly<Dictionary<string, NodeType>> = {
34
- http_operation: 'Endpoint',
35
- http_webhook: 'Webhook',
36
- http_service: 'API',
37
- article: 'Article',
38
- model: 'Model',
39
- http_server: 'Server',
40
- generic: '',
41
- unknown: '',
42
- table_of_contents: '',
43
- spectral_ruleset: '',
44
- styleguide: '',
45
- image: '',
46
- http_callback: '',
47
- stoplight_override: '',
48
- stoplight_resolutions: '',
49
- };
50
-
51
- export const NodeTypeIconDefs: Readonly<Dictionary<IconDefinition, NodeType>> = {
52
- http_operation: faCrosshairs,
53
- http_webhook: faEnvelope,
54
- http_service: faCloud,
55
- article: faBookOpen,
56
- model: faCube,
57
- http_server: faDatabase,
58
- unknown: faQuestionCircle,
59
- generic: faQuestionCircle,
60
- table_of_contents: faQuestionCircle,
61
- spectral_ruleset: faQuestionCircle,
62
- styleguide: faQuestionCircle,
63
- image: faImage,
64
- http_callback: faQuestionCircle,
65
- stoplight_override: faQuestionCircle,
66
- stoplight_resolutions: faQuestionCircle,
67
- };
68
-
69
- export const HttpSecuritySchemeColors: Readonly<Partial<Record<HttpSecurityScheme['type'], string>>> = {
70
- apiKey: 'green',
71
- http: 'orange',
72
- oauth2: 'red',
73
- openIdConnect: 'blue',
74
- mutualTLS: 'blue',
75
- };
76
-
77
- export const HttpMethodColors: Readonly<Record<HttpMethod, string>> = {
78
- get: 'success',
79
- post: 'primary',
80
- put: 'warning',
81
- patch: 'warning',
82
- delete: 'danger',
83
- head: '#9061F9',
84
- options: '#0D5AA7',
85
- trace: '#0D0B28',
86
- };
87
-
88
- export const HttpCodeColor: Readonly<Record<number, string>> = {
89
- 0: 'red',
90
- 1: 'gray',
91
- 2: 'green',
92
- 3: 'yellow',
93
- 4: 'orange',
94
- 5: 'red',
95
- };
96
-
97
- /**
98
- * Map of HTTP codes to their common description
99
- */
100
- export const HttpCodeDescriptions: Readonly<Record<number, string>> = {
101
- 100: 'Continue',
102
- 101: 'Switching Protocols',
103
- 200: 'OK',
104
- 201: 'Created',
105
- 202: 'Accepted',
106
- 203: 'Non-Authoritative Information',
107
- 204: 'No Content',
108
- 205: 'Reset Content',
109
- 206: 'Partial Content',
110
- 422: 'Unprocessable Entity',
111
- 226: 'IM Used',
112
- 300: 'Multiple Choices',
113
- 301: 'Moved Permanently',
114
- 302: 'Found',
115
- 303: 'See Other',
116
- 304: 'Not Modified',
117
- 305: 'Use Proxy',
118
- 306: '(Unused)',
119
- 307: 'Temporary Redirect',
120
- 308: 'Permanent Redirect (experiemental)',
121
- 400: 'Bad Request',
122
- 401: 'Unauthorized',
123
- 402: 'Payment Required',
124
- 403: 'Forbidden',
125
- 404: 'Not Found',
126
- 405: 'Method Not Allowed',
127
- 406: 'Not Acceptable',
128
- 407: 'Proxy Authentication Required',
129
- 408: 'Request Timeout',
130
- 409: 'Conflict',
131
- 410: 'Gone',
132
- 411: 'Length Required',
133
- 412: 'Precondition Failed',
134
- 413: 'Request Entity Too Large',
135
- 414: 'Request-URI Too Long',
136
- 415: 'Unsupported Media Type',
137
- 416: 'Requested Range Not Satisfiable',
138
- 417: 'Expectation Failed',
139
- 418: "I'm a teapot (RFC 2324)",
140
- 420: 'Enhance Your Calm (Twitter)',
141
- 426: 'Upgrade Required',
142
- 428: 'Precondition Required',
143
- 429: 'Too Many Requests',
144
- 431: 'Request Header Fields Too Large',
145
- 444: 'No Response (Nginx)',
146
- 449: 'Retry With (Microsoft)',
147
- 450: 'Blocked by Windows Parental Controls (Microsoft)',
148
- 451: 'Unavailable For Legal Reasons',
149
- 499: 'Client Closed Request (Nginx)',
150
- 500: 'Internal Server Error',
151
- 501: 'Not Implemented',
152
- 502: 'Bad Gateway',
153
- 503: 'Service Unavailable',
154
- 504: 'Gateway Timeout',
155
- 505: 'HTTP Version Not Supported',
156
- 506: 'Variant Also Negotiates (Experimental)',
157
- 507: 'Insufficient Storage (WebDAV)',
158
- 508: 'Loop Detected (WebDAV)',
159
- 509: 'Bandwidth Limit Exceeded (Apache)',
160
- 510: 'Not Extended',
161
- 511: 'Network Authentication Required',
162
- 598: 'Network read timeout error',
163
- 599: 'Network connect timeout error',
164
- };
165
-
166
- export const badgeDefaultBackgroundColor = '#293742';
167
- export const badgeDefaultColor = '#FFFFFF';
168
-
169
- export const CodeToIntentMap: Readonly<Record<number, IntentVals>> = {
170
- 2: 'success',
171
- 4: 'warning',
172
- 5: 'danger',
173
- };
174
-
175
- export const OptionalSecurityMessage =
176
- 'Requiring authorization is optional. A user can access data without authorization or with authorization, if provided.';
@@ -1,23 +0,0 @@
1
- import * as React from 'react';
2
-
3
- export const MockingContext = createNamedContext<{
4
- mockUrl?: string;
5
- hideMocking?: boolean;
6
- }>('MockingContext', { mockUrl: undefined, hideMocking: undefined });
7
-
8
- export const MockingProvider: React.FC<{
9
- mockUrl?: string;
10
- hideMocking?: boolean;
11
- }> = ({ mockUrl, hideMocking, children }) => {
12
- const info = {
13
- mockUrl,
14
- hideMocking: hideMocking || !mockUrl, // Mocking is hidden if no mock url is provided or if is forced hidden
15
- };
16
- return <MockingContext.Provider value={info}>{children}</MockingContext.Provider>;
17
- };
18
-
19
- function createNamedContext<T>(name: string, defaultValue: T): React.Context<T> {
20
- const context = React.createContext(defaultValue);
21
- context.displayName = name;
22
- return context;
23
- }
@@ -1,183 +0,0 @@
1
- import { renderHook } from '@testing-library/react-hooks';
2
- import * as React from 'react';
3
-
4
- import type { ReferenceInfo } from '../utils/ref-resolving/ReferenceResolver';
5
- import {
6
- InlineRefResolverProvider,
7
- useDocument,
8
- useInlineRefResolver,
9
- useResolvedObject,
10
- useSchemaInlineRefResolver,
11
- } from './InlineRefResolver';
12
-
13
- describe('InlineRefResolver', () => {
14
- describe('useDocument hook', () => {
15
- it('does not return document if it is not a proper object', () => {
16
- const document = 'This is not an object, so should not be returned from useDocument hook';
17
-
18
- const wrapper: React.FC<{ document: unknown }> = ({ children, document }) => (
19
- <InlineRefResolverProvider document={document}>{children}</InlineRefResolverProvider>
20
- );
21
- const { result } = renderHook(() => useDocument(), { wrapper, initialProps: { document } });
22
-
23
- expect(result.current).toBeUndefined();
24
- });
25
- });
26
-
27
- describe('useInlineRefResolver hook', () => {
28
- it('returns the same function on every rerender', () => {
29
- const document = { some: 'document object' };
30
-
31
- const wrapper: React.FC<{ document: object }> = ({ children, document }) => (
32
- <InlineRefResolverProvider document={document}>{children}</InlineRefResolverProvider>
33
- );
34
- const { result, rerender } = renderHook(() => useInlineRefResolver(), { wrapper, initialProps: { document } });
35
-
36
- const firstReturnedFunction = result.current;
37
-
38
- rerender({ document });
39
-
40
- const secondReturnedFunction = result.current;
41
-
42
- expect(firstReturnedFunction?.resolver).toBe(secondReturnedFunction?.resolver);
43
- });
44
- });
45
-
46
- describe('useResolvedObject hook', () => {
47
- it('returns the same proxy, given the same object', () => {
48
- const wrapper: React.FC = ({ children }) => <InlineRefResolverProvider>{children}</InlineRefResolverProvider>;
49
- const objectToResolve = { some: 'object' };
50
- const { result, rerender } = renderHook(() => useResolvedObject(objectToResolve), { wrapper });
51
-
52
- const firstReturnedObject = result.current;
53
-
54
- rerender();
55
-
56
- const secondReturnedObject = result.current;
57
-
58
- expect(firstReturnedObject).toBe(secondReturnedObject);
59
- });
60
- });
61
-
62
- describe('useSchemaInlineRefResolver', () => {
63
- const wrapper: React.FC<{ document: Record<string, unknown> }> = ({ children, document }) => (
64
- <InlineRefResolverProvider document={document}>{children}</InlineRefResolverProvider>
65
- );
66
-
67
- let document: Record<string, unknown>;
68
-
69
- beforeEach(() => {
70
- document = {
71
- openapi: '3.0.0',
72
- paths: {
73
- '/user': {
74
- post: {
75
- requestBody: {
76
- content: {
77
- 'application/json': {
78
- schema: {
79
- type: 'object',
80
- properties: {
81
- user: {
82
- $ref: '#/components/schemas/User',
83
- },
84
- },
85
- },
86
- },
87
- },
88
- },
89
- },
90
- },
91
- },
92
- components: {
93
- schemas: {
94
- User: {
95
- type: 'object',
96
- nullable: true,
97
- properties: {
98
- id: {
99
- type: 'integer',
100
- nullable: true,
101
- },
102
- stars: {
103
- type: 'number',
104
- format: 'int32',
105
- },
106
- },
107
- },
108
- },
109
- },
110
- };
111
- });
112
-
113
- it('translates resolved schema', () => {
114
- const { result } = renderHook(() => useSchemaInlineRefResolver(), { wrapper, initialProps: { document } });
115
-
116
- const resolved = result.current[0](
117
- {
118
- source: null,
119
- pointer: '#/components/schemas/User',
120
- },
121
- [],
122
- {
123
- type: 'object',
124
- properties: {
125
- user: {
126
- $ref: '#/components/schemas/User',
127
- },
128
- },
129
- $schema: 'http://json-schema.org/draft-07/schema#',
130
- 'x-stoplight': {
131
- id: 'd3bf5ceb7dd53',
132
- },
133
- },
134
- );
135
-
136
- expect(resolved).toEqual({
137
- type: ['object', 'null'],
138
- properties: {
139
- id: {
140
- type: ['integer', 'null'],
141
- },
142
- stars: {
143
- type: 'number',
144
- format: 'int32',
145
- maximum: 2147483647,
146
- minimum: -2147483648,
147
- 'x-stoplight': {
148
- explicitProperties: ['type', 'format'],
149
- },
150
- },
151
- },
152
- });
153
- });
154
-
155
- it('retains the result', () => {
156
- const refInfo: ReferenceInfo = {
157
- source: null,
158
- pointer: '#/components/schemas/User',
159
- };
160
- const currentObject = {
161
- type: 'object',
162
- properties: {
163
- user: {
164
- $ref: '#/components/schemas/User',
165
- },
166
- },
167
- $schema: 'http://json-schema.org/draft-07/schema#',
168
- 'x-stoplight': {
169
- id: 'd3bf5ceb7dd53',
170
- },
171
- };
172
-
173
- const renderedHook = renderHook(() => useSchemaInlineRefResolver(), { wrapper, initialProps: { document } });
174
- const renderedHook2 = renderHook(() => useSchemaInlineRefResolver(), { wrapper, initialProps: { document } });
175
-
176
- const resolved = renderedHook.result.current[0]({ ...refInfo }, [], JSON.parse(JSON.stringify(currentObject)));
177
-
178
- expect(renderedHook2.result.current[0]({ ...refInfo }, [], JSON.parse(JSON.stringify(currentObject)))).toBe(
179
- resolved,
180
- );
181
- });
182
- });
183
- });
@@ -1,94 +0,0 @@
1
- import { convertToJsonSchema } from '@stoplight/http-spec/oas';
2
- import { isPlainObject } from '@stoplight/json';
3
- import type { Dictionary } from '@stoplight/types';
4
- import * as React from 'react';
5
- import { useContext } from 'react';
6
-
7
- import { defaultResolver, ReferenceResolver } from '../utils/ref-resolving/ReferenceResolver';
8
- import { createResolvedObject } from '../utils/ref-resolving/resolvedObject';
9
-
10
- const translatedObjectSymbol = Symbol('TranslatedObject');
11
-
12
- type InlineRefResolverContext = {
13
- resolver: ReferenceResolver | undefined;
14
- maxRefDepth: number | undefined;
15
- };
16
-
17
- const InlineRefResolverContext = React.createContext<InlineRefResolverContext | undefined>(undefined);
18
- InlineRefResolverContext.displayName = 'InlineRefResolverContext';
19
-
20
- const DocumentContext = React.createContext<object | undefined>(undefined);
21
- DocumentContext.displayName = 'DocumentContext';
22
-
23
- type InlineRefResolverProviderProps = {
24
- document?: unknown;
25
- resolver?: ReferenceResolver;
26
- maxRefDepth?: number;
27
- };
28
-
29
- /**
30
- * Populates `InlineRefResolverContext` with either a standard inline ref resolver based on `document`, or a custom resolver function provided by the caller.
31
- */
32
- export const InlineRefResolverProvider: React.FC<InlineRefResolverProviderProps> = ({
33
- children,
34
- document: maybeDocument,
35
- resolver,
36
- maxRefDepth,
37
- }) => {
38
- const document = isPlainObject(maybeDocument) ? maybeDocument : undefined;
39
-
40
- const computedResolver = React.useMemo(
41
- () => resolver || (document !== undefined ? defaultResolver(document) : undefined),
42
- [document, resolver],
43
- );
44
-
45
- return (
46
- <InlineRefResolverContext.Provider value={{ resolver: computedResolver, maxRefDepth }}>
47
- <DocumentContext.Provider value={document}>{children}</DocumentContext.Provider>
48
- </InlineRefResolverContext.Provider>
49
- );
50
- };
51
-
52
- export const useInlineRefResolver = () => useContext(InlineRefResolverContext);
53
-
54
- export const useDocument = () => useContext(DocumentContext);
55
-
56
- export const useResolvedObject = (currentObject: object): object => {
57
- const document = useDocument();
58
- const { resolver } = useInlineRefResolver() ?? {};
59
-
60
- return React.useMemo(
61
- () => createResolvedObject(currentObject, { contextObject: document as object, resolver }),
62
- [currentObject, document, resolver],
63
- );
64
- };
65
-
66
- export const useSchemaInlineRefResolver = (): [ReferenceResolver, number | undefined] => {
67
- const document = useDocument();
68
- const { resolver, maxRefDepth } = useInlineRefResolver() ?? {};
69
-
70
- const referenceResolver = React.useCallback<ReferenceResolver>(
71
- (...args) => {
72
- const resolved = resolver?.(...args);
73
- if (!isPlainObject(resolved)) {
74
- return resolved;
75
- }
76
-
77
- if (translatedObjectSymbol in resolved) {
78
- return (resolved as { [translatedObjectSymbol]: unknown })[translatedObjectSymbol];
79
- }
80
-
81
- const converted = convertToJsonSchema((document ?? {}) as Dictionary<unknown>, resolved);
82
- Reflect.defineProperty(resolved, translatedObjectSymbol, {
83
- configurable: true,
84
- value: converted,
85
- });
86
-
87
- delete converted.$schema;
88
- return converted;
89
- },
90
- [document, resolver],
91
- );
92
-
93
- return [referenceResolver, maxRefDepth];
94
- };
@@ -1,27 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import type { DocsProps } from '../components/Docs';
4
-
5
- const DEFAULT_CONTEXT: ElementsOptionsContextProps = {};
6
-
7
- export type ElementsOptionsContextProps = Pick<DocsProps, 'nodeHasChanged' | 'renderExtensionAddon'>;
8
-
9
- export const ElementsOptionsContext = React.createContext<ElementsOptionsContextProps>(DEFAULT_CONTEXT);
10
-
11
- export const useOptionsCtx = () => {
12
- return React.useContext(ElementsOptionsContext) || DEFAULT_CONTEXT;
13
- };
14
-
15
- export type ProviderProps = Partial<ElementsOptionsContextProps> & {
16
- children: React.ReactNode;
17
- };
18
-
19
- export function ElementsOptionsProvider({ children, nodeHasChanged, renderExtensionAddon }: ProviderProps) {
20
- return (
21
- <ElementsOptionsContext.Provider
22
- value={Object.assign({}, DEFAULT_CONTEXT, { nodeHasChanged, renderExtensionAddon })}
23
- >
24
- {children}
25
- </ElementsOptionsContext.Provider>
26
- );
27
- }
@@ -1,24 +0,0 @@
1
- import { Provider as JotaiProvider } from 'jotai';
2
- import * as React from 'react';
3
-
4
- import { getDisplayName } from '../hoc/utils';
5
-
6
- /**
7
- * Provides a context for storing jotai atom values.
8
- */
9
- export const PersistenceContextProvider = JotaiProvider;
10
-
11
- /**
12
- * HOC that Wraps `WrappedComponent` in a `PersistenceContextProvider`.
13
- */
14
- export function withPersistenceBoundary<T>(WrappedComponent: React.ComponentType<T>) {
15
- const WithPersistenceBoundary: React.FC<T> = props => {
16
- return (
17
- <PersistenceContextProvider>
18
- <WrappedComponent {...props} />
19
- </PersistenceContextProvider>
20
- );
21
- };
22
- WithPersistenceBoundary.displayName = `withPersistenceBoundary(${getDisplayName(WrappedComponent)})`;
23
- return WithPersistenceBoundary;
24
- }
@@ -1,9 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import type { RouterType } from '../types';
4
-
5
- export const RouterTypeContext = React.createContext<RouterType | null>(null);
6
-
7
- export const useRouterType = () => {
8
- return React.useContext(RouterTypeContext);
9
- };