zudoku 0.0.0-f865d81 → 0.0.0-fb7d300

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 (392) hide show
  1. package/dist/app/demo.js +0 -2
  2. package/dist/app/demo.js.map +1 -1
  3. package/dist/app/entry.client.js +14 -0
  4. package/dist/app/entry.client.js.map +1 -1
  5. package/dist/app/entry.server.js +6 -6
  6. package/dist/app/entry.server.js.map +1 -1
  7. package/dist/app/main.d.ts +1 -1
  8. package/dist/app/main.js +2 -2
  9. package/dist/app/main.js.map +1 -1
  10. package/dist/app/standalone.js +0 -2
  11. package/dist/app/standalone.js.map +1 -1
  12. package/dist/cli/cli.js +1 -2
  13. package/dist/cli/cli.js.map +1 -1
  14. package/dist/codegen.d.ts +3 -0
  15. package/dist/codegen.js +45 -0
  16. package/dist/codegen.js.map +1 -0
  17. package/dist/config/validators/InputSidebarSchema.d.ts +10 -10
  18. package/dist/config/validators/validate.d.ts +125 -114
  19. package/dist/config/validators/validate.js +6 -5
  20. package/dist/config/validators/validate.js.map +1 -1
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.js +1 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/lib/authentication/AuthenticationPlugin.d.ts +4 -2
  25. package/dist/lib/authentication/AuthenticationPlugin.js +3 -0
  26. package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
  27. package/dist/lib/authentication/authentication.d.ts +3 -3
  28. package/dist/lib/authentication/hook.d.ts +5 -4
  29. package/dist/lib/authentication/hook.js +1 -3
  30. package/dist/lib/authentication/hook.js.map +1 -1
  31. package/dist/lib/authentication/providers/auth0.js +12 -11
  32. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  33. package/dist/lib/authentication/providers/openid.d.ts +0 -1
  34. package/dist/lib/authentication/providers/openid.js +11 -26
  35. package/dist/lib/authentication/providers/openid.js.map +1 -1
  36. package/dist/lib/authentication/state.d.ts +25 -4
  37. package/dist/lib/authentication/state.js +28 -3
  38. package/dist/lib/authentication/state.js.map +1 -1
  39. package/dist/lib/authentication/use-broadcast/shared.d.ts +48 -0
  40. package/dist/lib/authentication/use-broadcast/shared.js +243 -0
  41. package/dist/lib/authentication/use-broadcast/shared.js.map +1 -0
  42. package/dist/lib/authentication/use-broadcast/useBroadcast.d.ts +24 -0
  43. package/dist/lib/authentication/use-broadcast/useBroadcast.js +106 -0
  44. package/dist/lib/authentication/use-broadcast/useBroadcast.js.map +1 -0
  45. package/dist/lib/components/Bootstrap.d.ts +3 -1
  46. package/dist/lib/components/Bootstrap.js +10 -4
  47. package/dist/lib/components/Bootstrap.js.map +1 -1
  48. package/dist/lib/components/ClientOnly.d.ts +4 -2
  49. package/dist/lib/components/ClientOnly.js +1 -1
  50. package/dist/lib/components/ClientOnly.js.map +1 -1
  51. package/dist/lib/components/DeveloperHint.js +2 -1
  52. package/dist/lib/components/DeveloperHint.js.map +1 -1
  53. package/dist/lib/components/Header.js +16 -10
  54. package/dist/lib/components/Header.js.map +1 -1
  55. package/dist/lib/components/Heading.d.ts +1 -1
  56. package/dist/lib/components/Layout.js +12 -4
  57. package/dist/lib/components/Layout.js.map +1 -1
  58. package/dist/lib/components/MobileTopNavigation.js +6 -7
  59. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  60. package/dist/lib/components/SyntaxHighlight.js +16 -12
  61. package/dist/lib/components/SyntaxHighlight.js.map +1 -1
  62. package/dist/lib/components/ThemeSwitch.d.ts +1 -0
  63. package/dist/lib/components/ThemeSwitch.js +13 -0
  64. package/dist/lib/components/ThemeSwitch.js.map +1 -0
  65. package/dist/lib/components/TopNavigation.d.ts +2 -0
  66. package/dist/lib/components/TopNavigation.js +13 -7
  67. package/dist/lib/components/TopNavigation.js.map +1 -1
  68. package/dist/lib/components/{DevPortal.d.ts → Zudoku.d.ts} +3 -3
  69. package/dist/lib/components/{DevPortal.js → Zudoku.js} +13 -14
  70. package/dist/lib/components/Zudoku.js.map +1 -0
  71. package/dist/lib/components/context/ZudokuContext.d.ts +7 -7
  72. package/dist/lib/components/context/ZudokuContext.js +8 -13
  73. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  74. package/dist/lib/components/context/ZudokuProvider.d.ts +2 -2
  75. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  76. package/dist/lib/components/index.d.ts +18 -10
  77. package/dist/lib/components/index.js +2 -3
  78. package/dist/lib/components/index.js.map +1 -1
  79. package/dist/lib/components/navigation/Sidebar.js +1 -1
  80. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  81. package/dist/lib/components/navigation/utils.js +2 -2
  82. package/dist/lib/components/navigation/utils.js.map +1 -1
  83. package/dist/lib/core/{DevPortalContext.d.ts → ZudokuContext.d.ts} +3 -7
  84. package/dist/lib/core/{DevPortalContext.js → ZudokuContext.js} +2 -7
  85. package/dist/lib/core/ZudokuContext.js.map +1 -0
  86. package/dist/lib/core/plugins.d.ts +18 -12
  87. package/dist/lib/core/plugins.js.map +1 -1
  88. package/dist/lib/errors/ErrorAlert.js +1 -1
  89. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  90. package/dist/lib/oas/graphql/index.js +4 -4
  91. package/dist/lib/oas/graphql/index.js.map +1 -1
  92. package/dist/lib/oas/parser/upgrade/index.js +3 -1
  93. package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
  94. package/dist/lib/plugins/api-keys/index.d.ts +9 -9
  95. package/dist/lib/plugins/api-keys/index.js +3 -0
  96. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  97. package/dist/lib/plugins/custom-pages/index.d.ts +2 -2
  98. package/dist/lib/plugins/custom-pages/index.js.map +1 -1
  99. package/dist/lib/plugins/markdown/index.d.ts +2 -2
  100. package/dist/lib/plugins/markdown/index.js.map +1 -1
  101. package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +5 -0
  102. package/dist/lib/plugins/openapi/CollapsibleCode.js +24 -0
  103. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -0
  104. package/dist/lib/plugins/openapi/ColorizedParam.js +13 -9
  105. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  106. package/dist/lib/plugins/openapi/Endpoint.d.ts +1 -1
  107. package/dist/lib/plugins/openapi/Endpoint.js +5 -9
  108. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  109. package/dist/lib/plugins/openapi/OperationList.d.ts +2 -2
  110. package/dist/lib/plugins/openapi/OperationList.js +21 -22
  111. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  112. package/dist/lib/plugins/openapi/ParameterListItem.js +6 -1
  113. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  114. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +7 -3
  115. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  116. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +9 -2
  117. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  118. package/dist/lib/plugins/openapi/Route.d.ts +4 -4
  119. package/dist/lib/plugins/openapi/Route.js +2 -4
  120. package/dist/lib/plugins/openapi/Route.js.map +1 -1
  121. package/dist/lib/plugins/openapi/Sidecar.d.ts +1 -1
  122. package/dist/lib/plugins/openapi/Sidecar.js +35 -33
  123. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  124. package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +8 -0
  125. package/dist/lib/plugins/openapi/client/GraphQLClient.js +102 -0
  126. package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -0
  127. package/dist/lib/plugins/openapi/client/GraphQLContext.d.ts +7 -0
  128. package/dist/lib/plugins/openapi/client/GraphQLContext.js +5 -0
  129. package/dist/lib/plugins/openapi/client/GraphQLContext.js.map +1 -0
  130. package/dist/lib/plugins/openapi/client/createServer.d.ts +1 -0
  131. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +5 -0
  132. package/dist/lib/plugins/openapi/client/useCreateQuery.js +13 -0
  133. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -0
  134. package/dist/lib/plugins/openapi/client/worker.d.ts +4 -1
  135. package/dist/lib/plugins/openapi/client/worker.js +23 -14
  136. package/dist/lib/plugins/openapi/client/worker.js.map +1 -1
  137. package/dist/lib/plugins/openapi/graphql/fragment-masking.d.ts +3 -3
  138. package/dist/lib/plugins/openapi/graphql/fragment-masking.js +3 -4
  139. package/dist/lib/plugins/openapi/graphql/fragment-masking.js.map +1 -1
  140. package/dist/lib/plugins/openapi/graphql/gql.d.ts +5 -51
  141. package/dist/lib/plugins/openapi/graphql/gql.js +4 -2
  142. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  143. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +32 -8
  144. package/dist/lib/plugins/openapi/graphql/graphql.js +194 -662
  145. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  146. package/dist/lib/plugins/openapi/index.d.ts +2 -2
  147. package/dist/lib/plugins/openapi/index.js +40 -53
  148. package/dist/lib/plugins/openapi/index.js.map +1 -1
  149. package/dist/lib/plugins/openapi/schema/SchemaView.js +2 -1
  150. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  151. package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +0 -1
  152. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +25 -36
  153. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  154. package/dist/lib/plugins/openapi-worker.d.ts +1 -1
  155. package/dist/lib/plugins/openapi-worker.js +7 -1
  156. package/dist/lib/plugins/openapi-worker.js.map +1 -1
  157. package/dist/lib/plugins/redirect/index.d.ts +4 -7
  158. package/dist/lib/plugins/redirect/index.js +1 -1
  159. package/dist/lib/plugins/redirect/index.js.map +1 -1
  160. package/dist/lib/plugins/search-inkeep/index.d.ts +2 -2
  161. package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
  162. package/dist/lib/ui/ActionButton.d.ts +4 -0
  163. package/dist/lib/ui/ActionButton.js +10 -0
  164. package/dist/lib/ui/ActionButton.js.map +1 -0
  165. package/dist/lib/util/MdxComponents.d.ts +1 -1
  166. package/dist/lib/util/useIsomorphicLayoutEffect.d.ts +3 -0
  167. package/dist/lib/util/useIsomorphicLayoutEffect.js +4 -0
  168. package/dist/lib/util/useIsomorphicLayoutEffect.js.map +1 -0
  169. package/dist/lib/util/useOnScreen.d.ts +4 -0
  170. package/dist/lib/util/useOnScreen.js +19 -0
  171. package/dist/lib/util/useOnScreen.js.map +1 -0
  172. package/dist/vite/build.js +5 -1
  173. package/dist/vite/build.js.map +1 -1
  174. package/dist/vite/config.d.ts +2 -8
  175. package/dist/vite/config.js +13 -54
  176. package/dist/vite/config.js.map +1 -1
  177. package/dist/vite/html.js +0 -2
  178. package/dist/vite/html.js.map +1 -1
  179. package/dist/vite/output.d.ts +101 -0
  180. package/dist/vite/output.js +33 -0
  181. package/dist/vite/output.js.map +1 -0
  182. package/dist/vite/plugin-component.js +1 -1
  183. package/dist/vite/plugin-component.js.map +1 -1
  184. package/dist/vite/plugin-config.d.ts +2 -3
  185. package/dist/vite/plugin-config.js +2 -3
  186. package/dist/vite/plugin-config.js.map +1 -1
  187. package/dist/vite/plugin-mdx.d.ts +0 -6
  188. package/dist/vite/plugin-mdx.js +3 -2
  189. package/dist/vite/plugin-mdx.js.map +1 -1
  190. package/dist/vite/plugin.js +1 -3
  191. package/dist/vite/plugin.js.map +1 -1
  192. package/dist/vite/prerender.js +3 -2
  193. package/dist/vite/prerender.js.map +1 -1
  194. package/dist/vite/remarkStaticGeneration.d.ts +3 -0
  195. package/dist/vite/remarkStaticGeneration.js +125 -0
  196. package/dist/vite/remarkStaticGeneration.js.map +1 -0
  197. package/lib/{AnchorLink-BbB2q-jx.js → AnchorLink-CDlhr8gL.js} +11 -10
  198. package/lib/{AnchorLink-BbB2q-jx.js.map → AnchorLink-CDlhr8gL.js.map} +1 -1
  199. package/lib/AuthenticationPlugin-D0Em0SwR.js +59 -0
  200. package/lib/{AuthenticationPlugin-C9BHGXlE.js.map → AuthenticationPlugin-D0Em0SwR.js.map} +1 -1
  201. package/lib/Button-jK0EsymC.js +48 -0
  202. package/lib/Button-jK0EsymC.js.map +1 -0
  203. package/lib/{ClientOnly-CVN6leDu.js → ClientOnly-E7hGysn1.js} +4 -4
  204. package/lib/ClientOnly-E7hGysn1.js.map +1 -0
  205. package/lib/Markdown-ievDDhFT.js +15192 -0
  206. package/lib/Markdown-ievDDhFT.js.map +1 -0
  207. package/lib/{MdxPage-DKMH_t0f.js → MdxPage-Bwn-VSsH.js} +5 -5
  208. package/lib/{MdxPage-DKMH_t0f.js.map → MdxPage-Bwn-VSsH.js.map} +1 -1
  209. package/lib/OperationList-BwBl1xrD.js +4691 -0
  210. package/lib/OperationList-BwBl1xrD.js.map +1 -0
  211. package/lib/Route-DlG_HTMu.js +11 -0
  212. package/lib/Route-DlG_HTMu.js.map +1 -0
  213. package/lib/{Select-Bagt3Bme.js → Select-O9ZM3ZgX.js} +7 -7
  214. package/lib/Select-O9ZM3ZgX.js.map +1 -0
  215. package/lib/{Spinner-C6zroowC.js → SidebarBadge-DxFJcJ6V.js} +28 -17
  216. package/lib/SidebarBadge-DxFJcJ6V.js.map +1 -0
  217. package/lib/SlotletProvider-DyomlzGx.js +252 -0
  218. package/lib/SlotletProvider-DyomlzGx.js.map +1 -0
  219. package/lib/Spinner-3cQDBVGr.js +7 -0
  220. package/lib/Spinner-3cQDBVGr.js.map +1 -0
  221. package/lib/SyntaxHighlight-DkLOsjHS.js +2983 -0
  222. package/lib/SyntaxHighlight-DkLOsjHS.js.map +1 -0
  223. package/lib/assets/{worker-Bf8vjASY.js → worker-CPsGZsve.js} +565 -561
  224. package/lib/assets/{worker-Bf8vjASY.js.map → worker-CPsGZsve.js.map} +1 -1
  225. package/lib/context-D1nXWxm7.js +22 -0
  226. package/lib/context-D1nXWxm7.js.map +1 -0
  227. package/lib/createServer-DK-g7kbB.js +16089 -0
  228. package/lib/createServer-DK-g7kbB.js.map +1 -0
  229. package/lib/{hook-sn0zMTkE.js → hook-hEqe7fPB.js} +12 -14
  230. package/lib/hook-hEqe7fPB.js.map +1 -0
  231. package/lib/index-Czzd9rjU.js +899 -0
  232. package/lib/index-Czzd9rjU.js.map +1 -0
  233. package/lib/index-DNxQ_rCt.js +1273 -0
  234. package/lib/index-DNxQ_rCt.js.map +1 -0
  235. package/lib/index-Yn8c3UWE.js +921 -0
  236. package/lib/index-Yn8c3UWE.js.map +1 -0
  237. package/lib/{router-BsfSoK2j.js → router-lfyopgBI.js} +23 -23
  238. package/lib/{router-BsfSoK2j.js.map → router-lfyopgBI.js.map} +1 -1
  239. package/lib/state-tsXBLONe.js +203 -0
  240. package/lib/{state-CsuHT8ZO.js.map → state-tsXBLONe.js.map} +1 -1
  241. package/lib/ui/ActionButton.js +25 -0
  242. package/lib/ui/ActionButton.js.map +1 -0
  243. package/lib/useExposedProps-CTPtylCV.js +10 -0
  244. package/lib/{useExposedProps-ChOIUaS4.js.map → useExposedProps-CTPtylCV.js.map} +1 -1
  245. package/lib/{ZudokuContext-BKXGJTmu.js → utils-DcpDOncX.js} +242 -246
  246. package/lib/utils-DcpDOncX.js.map +1 -0
  247. package/lib/zudoku.auth-auth0.js +24 -18
  248. package/lib/zudoku.auth-auth0.js.map +1 -1
  249. package/lib/zudoku.auth-clerk.js +2 -2
  250. package/lib/zudoku.auth-openid.js +124 -138
  251. package/lib/zudoku.auth-openid.js.map +1 -1
  252. package/lib/zudoku.components.js +1291 -1119
  253. package/lib/zudoku.components.js.map +1 -1
  254. package/lib/zudoku.openapi-worker.js +10 -16336
  255. package/lib/zudoku.openapi-worker.js.map +1 -1
  256. package/lib/zudoku.plugin-api-keys.js +41 -39
  257. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  258. package/lib/zudoku.plugin-custom-pages.js +2 -2
  259. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  260. package/lib/zudoku.plugin-markdown.js +1 -1
  261. package/lib/zudoku.plugin-markdown.js.map +1 -1
  262. package/lib/zudoku.plugin-openapi.js +5 -9
  263. package/lib/zudoku.plugin-openapi.js.map +1 -1
  264. package/lib/zudoku.plugin-redirect.js +2 -2
  265. package/lib/zudoku.plugin-redirect.js.map +1 -1
  266. package/lib/zudoku.plugin-search-inkeep.js +1 -1
  267. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  268. package/package.json +15 -5
  269. package/src/app/demo.tsx +0 -3
  270. package/src/app/entry.client.tsx +14 -0
  271. package/src/app/entry.server.tsx +59 -53
  272. package/src/app/main.css +1 -1
  273. package/src/app/main.tsx +4 -4
  274. package/src/app/standalone.tsx +0 -3
  275. package/src/lib/authentication/AuthenticationPlugin.tsx +4 -1
  276. package/src/lib/authentication/authentication.ts +3 -3
  277. package/src/lib/authentication/hook.ts +1 -3
  278. package/src/lib/authentication/providers/auth0.tsx +17 -11
  279. package/src/lib/authentication/providers/openid.tsx +12 -30
  280. package/src/lib/authentication/state.ts +50 -9
  281. package/{LICENSE.md → src/lib/authentication/use-broadcast/LICENSE.md} +2 -2
  282. package/src/lib/authentication/use-broadcast/shared.ts +372 -0
  283. package/src/lib/authentication/use-broadcast/useBroadcast.ts +146 -0
  284. package/src/lib/components/Bootstrap.tsx +36 -14
  285. package/src/lib/components/ClientOnly.tsx +6 -3
  286. package/src/lib/components/DeveloperHint.tsx +6 -1
  287. package/src/lib/components/Header.tsx +68 -40
  288. package/src/lib/components/Layout.tsx +49 -37
  289. package/src/lib/components/MobileTopNavigation.tsx +15 -18
  290. package/src/lib/components/SyntaxHighlight.tsx +81 -46
  291. package/src/lib/components/ThemeSwitch.tsx +26 -0
  292. package/src/lib/components/TopNavigation.tsx +27 -19
  293. package/src/lib/components/Zudoku.tsx +108 -0
  294. package/src/lib/components/context/ZudokuContext.ts +11 -16
  295. package/src/lib/components/context/ZudokuProvider.tsx +2 -2
  296. package/src/lib/components/index.ts +2 -3
  297. package/src/lib/components/navigation/Sidebar.tsx +3 -3
  298. package/src/lib/components/navigation/utils.ts +2 -2
  299. package/src/lib/core/{DevPortalContext.ts → ZudokuContext.ts} +3 -11
  300. package/src/lib/core/plugins.ts +20 -16
  301. package/src/lib/errors/ErrorAlert.tsx +2 -1
  302. package/src/lib/oas/graphql/index.ts +4 -4
  303. package/src/lib/oas/parser/upgrade/index.ts +3 -1
  304. package/src/lib/plugins/api-keys/index.tsx +12 -9
  305. package/src/lib/plugins/custom-pages/index.tsx +2 -2
  306. package/src/lib/plugins/markdown/index.tsx +2 -2
  307. package/src/lib/plugins/openapi/CollapsibleCode.tsx +80 -0
  308. package/src/lib/plugins/openapi/ColorizedParam.tsx +23 -14
  309. package/src/lib/plugins/openapi/Endpoint.tsx +5 -10
  310. package/src/lib/plugins/openapi/OperationList.tsx +20 -40
  311. package/src/lib/plugins/openapi/ParameterListItem.tsx +37 -31
  312. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +18 -13
  313. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +17 -12
  314. package/src/lib/plugins/openapi/Route.tsx +11 -12
  315. package/src/lib/plugins/openapi/Sidecar.tsx +73 -59
  316. package/src/lib/plugins/openapi/client/GraphQLClient.tsx +140 -0
  317. package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -0
  318. package/src/lib/plugins/openapi/client/createServer.ts +2 -0
  319. package/src/lib/plugins/openapi/client/useCreateQuery.ts +18 -0
  320. package/src/lib/plugins/openapi/client/worker.ts +38 -24
  321. package/src/lib/plugins/openapi/graphql/fragment-masking.ts +11 -18
  322. package/src/lib/plugins/openapi/graphql/gql.ts +10 -27
  323. package/src/lib/plugins/openapi/graphql/graphql.ts +233 -665
  324. package/src/lib/plugins/openapi/index.tsx +42 -67
  325. package/src/lib/plugins/openapi/schema/SchemaView.tsx +5 -2
  326. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +28 -42
  327. package/src/lib/plugins/openapi-worker.ts +11 -1
  328. package/src/lib/plugins/redirect/index.tsx +5 -9
  329. package/src/lib/plugins/search-inkeep/index.tsx +2 -2
  330. package/src/lib/ui/ActionButton.tsx +28 -0
  331. package/src/lib/util/useIsomorphicLayoutEffect.ts +5 -0
  332. package/src/lib/util/useOnScreen.ts +32 -0
  333. package/dist/lib/components/DevPortal.js.map +0 -1
  334. package/dist/lib/components/context/ThemeContext.d.ts +0 -2
  335. package/dist/lib/components/context/ThemeContext.js +0 -7
  336. package/dist/lib/components/context/ThemeContext.js.map +0 -1
  337. package/dist/lib/components/context/ThemeProvider.d.ts +0 -4
  338. package/dist/lib/components/context/ThemeProvider.js +0 -23
  339. package/dist/lib/components/context/ThemeProvider.js.map +0 -1
  340. package/dist/lib/core/DevPortalContext.js.map +0 -1
  341. package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +0 -12
  342. package/dist/lib/plugins/openapi/client/createMemoryClient.js +0 -46
  343. package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +0 -1
  344. package/dist/lib/plugins/openapi/client/createWorkerClient.d.ts +0 -10
  345. package/dist/lib/plugins/openapi/client/createWorkerClient.js +0 -61
  346. package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +0 -1
  347. package/dist/lib/plugins/openapi/client/interfaces.d.ts +0 -4
  348. package/dist/lib/plugins/openapi/client/interfaces.js +0 -2
  349. package/dist/lib/plugins/openapi/client/interfaces.js.map +0 -1
  350. package/dist/lib/themeToggle.d.ts +0 -1
  351. package/dist/lib/themeToggle.js +0 -7
  352. package/dist/lib/themeToggle.js.map +0 -1
  353. package/dist/lib/util/createWaitForNotify.d.ts +0 -1
  354. package/dist/lib/util/createWaitForNotify.js +0 -15
  355. package/dist/lib/util/createWaitForNotify.js.map +0 -1
  356. package/dist/vite/plugin-html-transform.d.ts +0 -2
  357. package/dist/vite/plugin-html-transform.js +0 -15
  358. package/dist/vite/plugin-html-transform.js.map +0 -1
  359. package/lib/AuthenticationPlugin-C9BHGXlE.js +0 -55
  360. package/lib/ClientOnly-CVN6leDu.js.map +0 -1
  361. package/lib/DeveloperHint-DHdLXGHA.js +0 -16
  362. package/lib/DeveloperHint-DHdLXGHA.js.map +0 -1
  363. package/lib/Markdown-BDcCAWwm.js +0 -18059
  364. package/lib/Markdown-BDcCAWwm.js.map +0 -1
  365. package/lib/OperationList-Tj7ubW_t.js +0 -604
  366. package/lib/OperationList-Tj7ubW_t.js.map +0 -1
  367. package/lib/Route-C3DGB6OS.js +0 -13
  368. package/lib/Route-C3DGB6OS.js.map +0 -1
  369. package/lib/Select-Bagt3Bme.js.map +0 -1
  370. package/lib/SlotletProvider-Da7eFgd2.js +0 -241
  371. package/lib/SlotletProvider-Da7eFgd2.js.map +0 -1
  372. package/lib/Spinner-C6zroowC.js.map +0 -1
  373. package/lib/StaggeredRender-DDHSzQKE.js +0 -17
  374. package/lib/StaggeredRender-DDHSzQKE.js.map +0 -1
  375. package/lib/ZudokuContext-BKXGJTmu.js.map +0 -1
  376. package/lib/hook-sn0zMTkE.js.map +0 -1
  377. package/lib/index-AjWCJNGC.js +0 -5690
  378. package/lib/index-AjWCJNGC.js.map +0 -1
  379. package/lib/index-CRo94sKK.js +0 -1783
  380. package/lib/index-CRo94sKK.js.map +0 -1
  381. package/lib/state-CsuHT8ZO.js +0 -183
  382. package/lib/urql-core-KJnLL26g.js +0 -1455
  383. package/lib/urql-core-KJnLL26g.js.map +0 -1
  384. package/lib/useExposedProps-ChOIUaS4.js +0 -9
  385. package/src/lib/components/DevPortal.tsx +0 -111
  386. package/src/lib/components/context/ThemeContext.tsx +0 -8
  387. package/src/lib/components/context/ThemeProvider.tsx +0 -27
  388. package/src/lib/plugins/openapi/client/createMemoryClient.ts +0 -51
  389. package/src/lib/plugins/openapi/client/createWorkerClient.ts +0 -75
  390. package/src/lib/plugins/openapi/client/interfaces.ts +0 -5
  391. package/src/lib/themeToggle.ts +0 -7
  392. package/src/lib/util/createWaitForNotify.ts +0 -18
@@ -0,0 +1,140 @@
1
+ import type { GraphQLError } from "graphql/error/index.js";
2
+ import { ulid } from "ulidx";
3
+ import { initializeWorker } from "zudoku/openapi-worker";
4
+ import { ZudokuError } from "../../../util/invariant.js";
5
+ import type { TypedDocumentString } from "../graphql/graphql.js";
6
+ import type { OpenApiPluginOptions } from "../index.js";
7
+ import type { LocalServer } from "./createServer.js";
8
+ import type { WorkerGraphQLMessage } from "./worker.js";
9
+
10
+ let localServerPromise: Promise<LocalServer> | undefined;
11
+ let worker: SharedWorker | undefined;
12
+
13
+ type GraphQLResponse<TResult> = {
14
+ errors?: GraphQLError[];
15
+ data: TResult;
16
+ };
17
+
18
+ const throwIfError = (response: GraphQLResponse<unknown>) => {
19
+ if (!response.errors?.[0]) return;
20
+
21
+ throw new ZudokuError(response.errors[0].message, {
22
+ developerHint:
23
+ "Check your configuration value `apis.type` and `apis.input` in the Zudoku config.",
24
+ });
25
+ };
26
+
27
+ export class GraphQLClient {
28
+ readonly #mode: "remote" | "in-memory" | "worker";
29
+ #pendingRequests = new Map<string, (value: any) => void>();
30
+ #port: MessagePort | undefined;
31
+
32
+ constructor(private config: OpenApiPluginOptions) {
33
+ if (config.server) {
34
+ this.#mode = "remote";
35
+ } else if (config.inMemory || typeof SharedWorker === "undefined") {
36
+ this.#mode = "in-memory";
37
+ } else {
38
+ this.#mode = "worker";
39
+ }
40
+ }
41
+
42
+ #initializeLocalServer = () =>
43
+ import("./createServer.js").then((m) => m.createServer());
44
+
45
+ fetch = async <TResult, TVariables>(
46
+ query: TypedDocumentString<TResult, TVariables>,
47
+ ...[variables]: TVariables extends Record<string, never> ? [] : [TVariables]
48
+ ) => {
49
+ const operationName = query.match(/query (\w+)/)?.[1];
50
+ const body = JSON.stringify({ query, variables, operationName });
51
+
52
+ switch (this.#mode) {
53
+ case "remote": {
54
+ const response = await fetch(this.config.server!, {
55
+ method: "POST",
56
+ body,
57
+ headers: { "Content-Type": "application/json" },
58
+ });
59
+
60
+ if (!response.ok) {
61
+ throw new Error("Network response was not ok");
62
+ }
63
+
64
+ const result = (await response.json()) as GraphQLResponse<TResult>;
65
+ throwIfError(result);
66
+
67
+ return result.data;
68
+ }
69
+
70
+ case "in-memory": {
71
+ if (!localServerPromise) {
72
+ localServerPromise = this.#initializeLocalServer();
73
+ }
74
+
75
+ const localServer = await localServerPromise;
76
+ if (!localServer) throw new Error("Local server not initialized");
77
+
78
+ const response = await localServer.fetch(
79
+ new Request("http://localhost/graphql", {
80
+ method: "POST",
81
+ body,
82
+ headers: { "Content-Type": "application/json" },
83
+ }),
84
+ );
85
+
86
+ if (!response.ok) {
87
+ throw new Error("Network response was not ok");
88
+ }
89
+
90
+ const result = (await response.json()) as GraphQLResponse<TResult>;
91
+ throwIfError(result);
92
+
93
+ return result.data;
94
+ }
95
+
96
+ case "worker": {
97
+ if (!worker) {
98
+ worker = initializeWorker();
99
+ }
100
+
101
+ if (!this.#port) {
102
+ const channel = new MessageChannel();
103
+
104
+ worker.port.postMessage({ port: channel.port2 }, [channel.port2]);
105
+
106
+ this.#port = channel.port1;
107
+
108
+ this.#port.onmessage = (e: MessageEvent<WorkerGraphQLMessage>) => {
109
+ const { id, body } = e.data;
110
+ const resolve = this.#pendingRequests.get(id);
111
+ if (resolve) {
112
+ const result = JSON.parse(body);
113
+ resolve(result);
114
+ this.#pendingRequests.delete(id);
115
+ } else {
116
+ // eslint-disable-next-line no-console
117
+ console.error(`No pending request found for id: ${id}`);
118
+ }
119
+ };
120
+
121
+ this.#port.start();
122
+ }
123
+
124
+ const id = ulid();
125
+
126
+ const resultPromise = new Promise<GraphQLResponse<TResult>>(
127
+ (resolve) => {
128
+ this.#pendingRequests.set(id, resolve);
129
+ this.#port!.postMessage({ id, body } as WorkerGraphQLMessage);
130
+ },
131
+ );
132
+
133
+ const result = await resultPromise;
134
+ throwIfError(result);
135
+
136
+ return result.data;
137
+ }
138
+ }
139
+ };
140
+ }
@@ -0,0 +1,16 @@
1
+ import { createContext, type ReactNode } from "react";
2
+ import { GraphQLClient } from "./GraphQLClient.js";
3
+
4
+ export const GraphQLContext = createContext<GraphQLClient | undefined>(
5
+ undefined,
6
+ );
7
+
8
+ export const GraphQLProvider = ({
9
+ children,
10
+ client,
11
+ }: {
12
+ children: ReactNode;
13
+ client: GraphQLClient;
14
+ }) => (
15
+ <GraphQLContext.Provider value={client}>{children}</GraphQLContext.Provider>
16
+ );
@@ -31,3 +31,5 @@ export const createServer = () =>
31
31
  }),
32
32
  ],
33
33
  });
34
+
35
+ export type LocalServer = ReturnType<typeof createServer>;
@@ -0,0 +1,18 @@
1
+ import { useContext } from "react";
2
+ import type { TypedDocumentString } from "../graphql/graphql.js";
3
+ import { GraphQLContext } from "./GraphQLContext.js";
4
+
5
+ export const useCreateQuery = <TResult, TVariables>(
6
+ query: TypedDocumentString<TResult, TVariables>,
7
+ ...variables: TVariables extends Record<string, never> ? [] : [TVariables]
8
+ ) => {
9
+ const graphQLClient = useContext(GraphQLContext);
10
+ if (graphQLClient === undefined) {
11
+ throw new Error("useGraphQL must be used within a GraphQLProvider");
12
+ }
13
+
14
+ return {
15
+ queryFn: () => graphQLClient.fetch(query, ...variables),
16
+ queryKey: [query, variables[0]],
17
+ } as const;
18
+ };
@@ -1,30 +1,44 @@
1
1
  import { createServer } from "./createServer.js";
2
- import { type WorkerGraphQLMessage } from "./createWorkerClient.js";
2
+
3
+ export type WorkerGraphQLMessage = { id: string; body: string };
3
4
 
4
5
  const localServer = createServer();
5
6
 
6
7
  const worker = self as unknown as SharedWorkerGlobalScope;
7
8
 
8
- worker.addEventListener(
9
- "connect",
10
- function (event: MessageEvent<{ id: string; body: string }>) {
11
- const port = event.ports[0];
12
-
13
- port!.onmessage = async function (e) {
14
- const response = await localServer.fetch(
15
- new Request("/__z/graphql", {
16
- method: "POST",
17
- body: e.data.body,
18
- headers: {
19
- "Content-Type": "application/json",
20
- },
21
- }),
22
- );
23
-
24
- port!.postMessage({
25
- id: e.data.id,
26
- body: await response.text(),
27
- } satisfies WorkerGraphQLMessage);
28
- };
29
- },
30
- );
9
+ worker.addEventListener("connect", (event) => {
10
+ const mainPort = event.ports[0];
11
+
12
+ mainPort!.onmessage = (e) => {
13
+ if (e.data.port) {
14
+ const clientPort = e.data.port as MessagePort;
15
+
16
+ clientPort.onmessage = async (
17
+ event: MessageEvent<{ id: string; body: string }>,
18
+ ) => {
19
+ const { id, body } = event.data;
20
+
21
+ const response = await localServer.fetch(
22
+ new Request("/__z/graphql", {
23
+ method: "POST",
24
+ body,
25
+ headers: {
26
+ "Content-Type": "application/json",
27
+ },
28
+ }),
29
+ );
30
+
31
+ const responseBody = await response.text();
32
+
33
+ clientPort.postMessage({
34
+ id,
35
+ body: responseBody,
36
+ } as WorkerGraphQLMessage);
37
+ };
38
+
39
+ clientPort.start();
40
+ }
41
+ };
42
+
43
+ mainPort!.start();
44
+ });
@@ -2,10 +2,8 @@
2
2
  import type {
3
3
  DocumentTypeDecoration,
4
4
  ResultOf,
5
- TypedDocumentNode,
6
5
  } from "@graphql-typed-document-node/core";
7
- import type { FragmentDefinitionNode } from "graphql";
8
- import type { Incremental } from "./graphql.js";
6
+ import type { Incremental, TypedDocumentString } from "./graphql.js";
9
7
 
10
8
  export type FragmentType<
11
9
  TDocumentType extends DocumentTypeDecoration<any, any>,
@@ -86,26 +84,21 @@ export function makeFragmentData<
86
84
  return data as FragmentType<F>;
87
85
  }
88
86
  export function isFragmentReady<TQuery, TFrag>(
89
- queryNode: DocumentTypeDecoration<TQuery, any>,
90
- fragmentNode: TypedDocumentNode<TFrag>,
87
+ queryNode: TypedDocumentString<TQuery, any>,
88
+ fragmentNode: TypedDocumentString<TFrag, any>,
91
89
  data:
92
- | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>
90
+ | FragmentType<TypedDocumentString<Incremental<TFrag>, any>>
93
91
  | null
94
92
  | undefined,
95
93
  ): data is FragmentType<typeof fragmentNode> {
96
- const deferredFields = (
97
- queryNode as {
98
- __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };
99
- }
100
- ).__meta__?.deferredFields;
94
+ const deferredFields = queryNode.__meta__?.deferredFields as Record<
95
+ string,
96
+ (keyof TFrag)[]
97
+ >;
98
+ const fragName = fragmentNode.__meta__?.fragmentName as string | undefined;
101
99
 
102
- if (!deferredFields) return true;
100
+ if (!deferredFields || !fragName) return true;
103
101
 
104
- const fragDef = fragmentNode.definitions[0] as
105
- | FragmentDefinitionNode
106
- | undefined;
107
- const fragName = fragDef?.name?.value;
108
-
109
- const fields = (fragName && deferredFields[fragName]) || [];
102
+ const fields = deferredFields[fragName] ?? [];
110
103
  return fields.length > 0 && fields.every((field) => data && field in data);
111
104
  }
@@ -1,5 +1,4 @@
1
1
  /* eslint-disable */
2
- import type { TypedDocumentNode as DocumentNode } from "@graphql-typed-document-node/core";
3
2
  import * as types from "./graphql.js";
4
3
 
5
4
  /**
@@ -11,68 +10,52 @@ import * as types from "./graphql.js";
11
10
  * 3. It does not support dead code elimination, so it will add unused operations.
12
11
  *
13
12
  * Therefore it is highly recommended to use the babel or swc plugin for production.
13
+ * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size
14
14
  */
15
15
  const documents = {
16
16
  "\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n":
17
17
  types.ServersQueryDocument,
18
- "\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n":
18
+ "\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n":
19
19
  types.OperationsFragmentFragmentDoc,
20
20
  "\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n":
21
21
  types.AllOperationsDocument,
22
22
  "\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n":
23
23
  types.GetServerQueryDocument,
24
- "\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n tags {\n __typename\n name\n operations {\n __typename\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n }\n":
24
+ "\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n tags {\n __typename\n name\n operations {\n __typename\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n }\n":
25
25
  types.GetCategoriesDocument,
26
26
  };
27
27
 
28
- /**
29
- * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
30
- *
31
- *
32
- * @example
33
- * ```ts
34
- * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);
35
- * ```
36
- *
37
- * The query argument is unknown!
38
- * Please regenerate the types.
39
- */
40
- export function graphql(source: string): unknown;
41
-
42
28
  /**
43
29
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
44
30
  */
45
31
  export function graphql(
46
32
  source: "\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n",
47
- ): (typeof documents)["\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n"];
33
+ ): typeof import("./graphql.js").ServersQueryDocument;
48
34
  /**
49
35
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
50
36
  */
51
37
  export function graphql(
52
- source: "\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n",
53
- ): (typeof documents)["\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n"];
38
+ source: "\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n",
39
+ ): typeof import("./graphql.js").OperationsFragmentFragmentDoc;
54
40
  /**
55
41
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
56
42
  */
57
43
  export function graphql(
58
44
  source: "\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n",
59
- ): (typeof documents)["\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n"];
45
+ ): typeof import("./graphql.js").AllOperationsDocument;
60
46
  /**
61
47
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
62
48
  */
63
49
  export function graphql(
64
50
  source: "\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n",
65
- ): (typeof documents)["\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n"];
51
+ ): typeof import("./graphql.js").GetServerQueryDocument;
66
52
  /**
67
53
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
68
54
  */
69
55
  export function graphql(
70
- source: "\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n tags {\n __typename\n name\n operations {\n __typename\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n }\n",
71
- ): (typeof documents)["\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n tags {\n __typename\n name\n operations {\n __typename\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n }\n"];
56
+ source: "\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n tags {\n __typename\n name\n operations {\n __typename\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n }\n",
57
+ ): typeof import("./graphql.js").GetCategoriesDocument;
72
58
 
73
59
  export function graphql(source: string) {
74
60
  return (documents as any)[source] ?? {};
75
61
  }
76
-
77
- export type DocumentType<TDocumentNode extends DocumentNode<any, any>> =
78
- TDocumentNode extends DocumentNode<infer TType, any> ? TType : never;