zudoku 0.26.1 → 0.28.0

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 (264) hide show
  1. package/dist/app/main.d.ts +1 -1
  2. package/dist/app/main.js +19 -7
  3. package/dist/app/main.js.map +1 -1
  4. package/dist/config/loader.js +1 -1
  5. package/dist/config/loader.js.map +1 -1
  6. package/dist/config/validators/InputSidebarSchema.d.ts +2 -2
  7. package/dist/config/validators/common.d.ts +67 -0
  8. package/dist/config/validators/common.js +5 -0
  9. package/dist/config/validators/common.js.map +1 -1
  10. package/dist/config/validators/validate.d.ts +29 -0
  11. package/dist/lib/components/AnchorLink.js +5 -2
  12. package/dist/lib/components/AnchorLink.js.map +1 -1
  13. package/dist/lib/components/Header.js +1 -1
  14. package/dist/lib/components/Header.js.map +1 -1
  15. package/dist/lib/components/Heading.d.ts +1 -1
  16. package/dist/lib/components/Markdown.d.ts +2 -2
  17. package/dist/lib/components/Markdown.js +3 -1
  18. package/dist/lib/components/Markdown.js.map +1 -1
  19. package/dist/lib/components/StatusPage.d.ts +7 -0
  20. package/dist/lib/components/StatusPage.js +71 -0
  21. package/dist/lib/components/StatusPage.js.map +1 -0
  22. package/dist/lib/components/SyntaxHighlight.d.ts +2 -1
  23. package/dist/lib/components/SyntaxHighlight.js +2 -2
  24. package/dist/lib/components/SyntaxHighlight.js.map +1 -1
  25. package/dist/lib/components/ThemeSwitch.js +4 -4
  26. package/dist/lib/components/ThemeSwitch.js.map +1 -1
  27. package/dist/lib/components/cache.d.ts +6 -0
  28. package/dist/lib/components/cache.js +13 -0
  29. package/dist/lib/components/cache.js.map +1 -0
  30. package/dist/lib/components/context/ViewportAnchorContext.js +16 -4
  31. package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
  32. package/dist/lib/components/context/ZudokuContext.js +2 -1
  33. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  34. package/dist/lib/components/index.d.ts +9 -2
  35. package/dist/lib/components/index.js +3 -0
  36. package/dist/lib/components/index.js.map +1 -1
  37. package/dist/lib/components/navigation/SidebarCategory.js +3 -3
  38. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  39. package/dist/lib/core/RouteGuard.d.ts +1 -0
  40. package/dist/lib/core/RouteGuard.js +28 -0
  41. package/dist/lib/core/RouteGuard.js.map +1 -0
  42. package/dist/lib/core/ZudokuContext.d.ts +4 -2
  43. package/dist/lib/core/ZudokuContext.js +9 -7
  44. package/dist/lib/core/ZudokuContext.js.map +1 -1
  45. package/dist/lib/oas/graphql/circular.d.ts +3 -0
  46. package/dist/lib/oas/graphql/circular.js +27 -0
  47. package/dist/lib/oas/graphql/circular.js.map +1 -0
  48. package/dist/lib/oas/graphql/index.d.ts +1 -0
  49. package/dist/lib/oas/graphql/index.js +46 -29
  50. package/dist/lib/oas/graphql/index.js.map +1 -1
  51. package/dist/lib/oas/parser/dereference/index.d.ts +0 -1
  52. package/dist/lib/oas/parser/dereference/index.js +1 -1
  53. package/dist/lib/oas/parser/dereference/index.js.map +1 -1
  54. package/dist/lib/plugins/openapi/Endpoint.js +2 -2
  55. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  56. package/dist/lib/plugins/openapi/{Route.d.ts → OpenApiRoute.d.ts} +2 -1
  57. package/dist/lib/plugins/openapi/{Route.js → OpenApiRoute.js} +3 -4
  58. package/dist/lib/plugins/openapi/OpenApiRoute.js.map +1 -0
  59. package/dist/lib/plugins/openapi/OperationList.d.ts +4 -1
  60. package/dist/lib/plugins/openapi/OperationList.js +20 -14
  61. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  62. package/dist/lib/plugins/openapi/OperationListItem.js +1 -1
  63. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  64. package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
  65. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  66. package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +1 -1
  67. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +2 -0
  68. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  69. package/dist/lib/plugins/openapi/Sidecar.js +3 -3
  70. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  71. package/dist/lib/plugins/openapi/SidecarExamples.js +17 -14
  72. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  73. package/dist/lib/plugins/openapi/graphql/gql.d.ts +6 -2
  74. package/dist/lib/plugins/openapi/graphql/gql.js +3 -2
  75. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  76. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +47 -26
  77. package/dist/lib/plugins/openapi/graphql/graphql.js +20 -16
  78. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  79. package/dist/lib/plugins/openapi/index.js +101 -65
  80. package/dist/lib/plugins/openapi/index.js.map +1 -1
  81. package/dist/lib/plugins/openapi/interfaces.d.ts +8 -2
  82. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +5 -5
  83. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
  84. package/dist/lib/plugins/openapi/playground/Headers.js +17 -16
  85. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  86. package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +5 -0
  87. package/dist/lib/plugins/openapi/playground/ParamsGrid.js +4 -0
  88. package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -0
  89. package/dist/lib/plugins/openapi/playground/PathParams.js +4 -12
  90. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  91. package/dist/lib/plugins/openapi/playground/Playground.d.ts +13 -0
  92. package/dist/lib/plugins/openapi/playground/Playground.js +19 -31
  93. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  94. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  95. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  96. package/dist/lib/plugins/openapi/playground/QueryParams.js +4 -3
  97. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  98. package/dist/lib/plugins/openapi/playground/SubmitButton.d.ts +7 -0
  99. package/dist/lib/plugins/openapi/playground/SubmitButton.js +22 -0
  100. package/dist/lib/plugins/openapi/playground/SubmitButton.js.map +1 -0
  101. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.d.ts +7 -0
  102. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +11 -0
  103. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js.map +1 -0
  104. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +8 -0
  105. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +95 -0
  106. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -0
  107. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +7 -0
  108. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +16 -0
  109. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -0
  110. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.d.ts +10 -0
  111. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js +32 -0
  112. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js.map +1 -0
  113. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.d.ts +1 -0
  114. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js +56 -0
  115. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js.map +1 -0
  116. package/dist/lib/plugins/openapi/schema/SchemaComponents.js +1 -1
  117. package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +1 -1
  118. package/dist/lib/ui/Command.js +1 -1
  119. package/dist/lib/ui/Command.js.map +1 -1
  120. package/dist/lib/ui/Select.js +2 -2
  121. package/dist/lib/ui/Select.js.map +1 -1
  122. package/dist/lib/util/MdxComponents.js +2 -2
  123. package/dist/lib/util/MdxComponents.js.map +1 -1
  124. package/dist/lib/util/joinUrl.js +1 -1
  125. package/dist/lib/util/joinUrl.js.map +1 -1
  126. package/dist/lib/util/joinUrl.test.d.ts +1 -0
  127. package/dist/lib/util/joinUrl.test.js +43 -0
  128. package/dist/lib/util/joinUrl.test.js.map +1 -0
  129. package/dist/lib/util/useScrollToAnchor.d.ts +1 -0
  130. package/dist/lib/util/useScrollToAnchor.js +26 -15
  131. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  132. package/dist/vite/plugin-api.js +15 -3
  133. package/dist/vite/plugin-api.js.map +1 -1
  134. package/dist/vite/prerender.js +1 -0
  135. package/dist/vite/prerender.js.map +1 -1
  136. package/dist/zuplo/enrich-with-zuplo.js +1 -1
  137. package/dist/zuplo/enrich-with-zuplo.js.map +1 -1
  138. package/dist/zuplo/with-zuplo.d.ts +2 -1
  139. package/dist/zuplo/with-zuplo.js +3 -1
  140. package/dist/zuplo/with-zuplo.js.map +1 -1
  141. package/lib/{AuthenticationPlugin-C9SwOxkc.js → AuthenticationPlugin-Du8cLBSr.js} +3 -3
  142. package/lib/{AuthenticationPlugin-C9SwOxkc.js.map → AuthenticationPlugin-Du8cLBSr.js.map} +1 -1
  143. package/lib/{Markdown-DFN6p0J-.js → Markdown-Cyrx_JrO.js} +1195 -1185
  144. package/lib/{Markdown-DFN6p0J-.js.map → Markdown-Cyrx_JrO.js.map} +1 -1
  145. package/lib/{MdxPage-D9c4z09Q.js → MdxPage-DewragjB.js} +6 -6
  146. package/lib/{MdxPage-D9c4z09Q.js.map → MdxPage-DewragjB.js.map} +1 -1
  147. package/lib/OpenApiRoute-UrC_t0e5.js +36 -0
  148. package/lib/OpenApiRoute-UrC_t0e5.js.map +1 -0
  149. package/lib/{OperationList-DGJWDx1G.js → OperationList-D_ejrepA.js} +1970 -1957
  150. package/lib/OperationList-D_ejrepA.js.map +1 -0
  151. package/lib/{Select-D3O7wISy.js → Select-CnCZ4WhS.js} +61 -61
  152. package/lib/Select-CnCZ4WhS.js.map +1 -0
  153. package/lib/{SlotletProvider-_3zzX_g_.js → SlotletProvider-mQiPDQIH.js} +4 -4
  154. package/lib/{SlotletProvider-_3zzX_g_.js.map → SlotletProvider-mQiPDQIH.js.map} +1 -1
  155. package/lib/{SyntaxHighlight-CJCSPG1F.js → SyntaxHighlight-B0L4SC_N.js} +309 -298
  156. package/lib/SyntaxHighlight-B0L4SC_N.js.map +1 -0
  157. package/lib/{ZudokuContext-DeQZEp-x.js → ZudokuContext-BTUJPpQl.js} +257 -246
  158. package/lib/ZudokuContext-BTUJPpQl.js.map +1 -0
  159. package/lib/{chunk-SYFQ2XB5-BF5IDYrB.js → chunk-SYFQ2XB5-BPvC-soB.js} +5 -5
  160. package/lib/{chunk-SYFQ2XB5-BF5IDYrB.js.map → chunk-SYFQ2XB5-BPvC-soB.js.map} +1 -1
  161. package/lib/circular-Dgpd6AN-.js +15397 -0
  162. package/lib/circular-Dgpd6AN-.js.map +1 -0
  163. package/lib/{createServer-BcaswoFO.js → createServer-BydbkTsd.js} +3487 -5601
  164. package/lib/createServer-BydbkTsd.js.map +1 -0
  165. package/lib/{hook-BRQEDRbn.js → hook-FT3SJLe_.js} +2 -2
  166. package/lib/{hook-BRQEDRbn.js.map → hook-FT3SJLe_.js.map} +1 -1
  167. package/lib/{index-LNp6rxyU.js → index-CjJS0l4l.js} +2 -2
  168. package/lib/{index-LNp6rxyU.js.map → index-CjJS0l4l.js.map} +1 -1
  169. package/lib/index-DGugJOLc.js +1974 -0
  170. package/lib/index-DGugJOLc.js.map +1 -0
  171. package/lib/{joinUrl-BTy9bvoK.js → joinUrl-nLx9pD-Z.js} +2 -2
  172. package/lib/joinUrl-nLx9pD-Z.js.map +1 -0
  173. package/lib/ui/Command.js +27 -27
  174. package/lib/ui/Command.js.map +1 -1
  175. package/lib/ui/Select.js +2 -2
  176. package/lib/ui/Select.js.map +1 -1
  177. package/lib/{useExposedProps-CetwhZpP.js → useExposedProps-BLKFBylA.js} +2 -2
  178. package/lib/{useExposedProps-CetwhZpP.js.map → useExposedProps-BLKFBylA.js.map} +1 -1
  179. package/lib/useScrollToAnchor-eRM9tVvD.js +289 -0
  180. package/lib/useScrollToAnchor-eRM9tVvD.js.map +1 -0
  181. package/lib/zudoku.auth-clerk.js +1 -1
  182. package/lib/zudoku.auth-openid.js +4 -4
  183. package/lib/zudoku.components.js +740 -979
  184. package/lib/zudoku.components.js.map +1 -1
  185. package/lib/zudoku.plugin-api-catalog.js +4 -4
  186. package/lib/zudoku.plugin-api-keys.js +5 -5
  187. package/lib/zudoku.plugin-custom-pages.js +2 -2
  188. package/lib/zudoku.plugin-markdown.js +1 -1
  189. package/lib/zudoku.plugin-openapi.js +6 -5
  190. package/lib/zudoku.plugin-openapi.js.map +1 -1
  191. package/lib/zudoku.plugin-redirect.js +1 -1
  192. package/package.json +2 -2
  193. package/src/app/main.tsx +26 -7
  194. package/src/lib/components/AnchorLink.tsx +5 -2
  195. package/src/lib/components/Header.tsx +1 -1
  196. package/src/lib/components/Markdown.tsx +14 -15
  197. package/src/lib/components/StatusPage.tsx +91 -0
  198. package/src/lib/components/SyntaxHighlight.tsx +14 -0
  199. package/src/lib/components/ThemeSwitch.tsx +14 -15
  200. package/src/lib/components/cache.ts +15 -0
  201. package/src/lib/components/context/ViewportAnchorContext.tsx +20 -6
  202. package/src/lib/components/context/ZudokuContext.ts +3 -1
  203. package/src/lib/components/index.ts +7 -0
  204. package/src/lib/components/navigation/SidebarCategory.tsx +3 -2
  205. package/src/lib/core/RouteGuard.tsx +35 -0
  206. package/src/lib/core/ZudokuContext.ts +9 -8
  207. package/src/lib/oas/graphql/circular.ts +29 -0
  208. package/src/lib/oas/graphql/index.ts +72 -44
  209. package/src/lib/oas/parser/dereference/index.ts +1 -2
  210. package/src/lib/plugins/openapi/Endpoint.tsx +2 -2
  211. package/src/lib/plugins/openapi/{Route.tsx → OpenApiRoute.tsx} +3 -3
  212. package/src/lib/plugins/openapi/OperationList.tsx +34 -12
  213. package/src/lib/plugins/openapi/OperationListItem.tsx +0 -2
  214. package/src/lib/plugins/openapi/ParameterListItem.tsx +1 -0
  215. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +2 -0
  216. package/src/lib/plugins/openapi/Sidecar.tsx +4 -3
  217. package/src/lib/plugins/openapi/SidecarExamples.tsx +24 -24
  218. package/src/lib/plugins/openapi/graphql/gql.ts +12 -4
  219. package/src/lib/plugins/openapi/graphql/graphql.ts +66 -43
  220. package/src/lib/plugins/openapi/index.tsx +134 -82
  221. package/src/lib/plugins/openapi/interfaces.ts +11 -2
  222. package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +30 -27
  223. package/src/lib/plugins/openapi/playground/Headers.tsx +65 -65
  224. package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +8 -0
  225. package/src/lib/plugins/openapi/playground/PathParams.tsx +34 -74
  226. package/src/lib/plugins/openapi/playground/Playground.tsx +64 -116
  227. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
  228. package/src/lib/plugins/openapi/playground/QueryParams.tsx +46 -45
  229. package/src/lib/plugins/openapi/playground/SubmitButton.tsx +75 -0
  230. package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +73 -0
  231. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +210 -0
  232. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +101 -0
  233. package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.test.ts +64 -0
  234. package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -0
  235. package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +1 -1
  236. package/src/lib/ui/Command.tsx +1 -1
  237. package/src/lib/ui/Select.tsx +1 -1
  238. package/src/lib/util/MdxComponents.tsx +2 -1
  239. package/src/lib/util/joinUrl.test.ts +62 -0
  240. package/src/lib/util/joinUrl.ts +1 -1
  241. package/src/lib/util/useScrollToAnchor.ts +32 -15
  242. package/dist/lib/plugins/openapi/Route.js.map +0 -1
  243. package/dist/lib/plugins/openapi/playground/ResponseTab.d.ts +0 -4
  244. package/dist/lib/plugins/openapi/playground/ResponseTab.js +0 -42
  245. package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +0 -1
  246. package/lib/AnchorLink-bObQitZv.js +0 -34
  247. package/lib/AnchorLink-bObQitZv.js.map +0 -1
  248. package/lib/OperationList-DGJWDx1G.js.map +0 -1
  249. package/lib/Route-VdmEyOD0.js +0 -35
  250. package/lib/Route-VdmEyOD0.js.map +0 -1
  251. package/lib/Select-D3O7wISy.js.map +0 -1
  252. package/lib/StaggeredRender-DgsamH_G.js +0 -17
  253. package/lib/StaggeredRender-DgsamH_G.js.map +0 -1
  254. package/lib/SyntaxHighlight-CJCSPG1F.js.map +0 -1
  255. package/lib/ZudokuContext-DeQZEp-x.js.map +0 -1
  256. package/lib/createServer-BcaswoFO.js.map +0 -1
  257. package/lib/index-Bn6Lc9tq.js +0 -9
  258. package/lib/index-Bn6Lc9tq.js.map +0 -1
  259. package/lib/index-CXRrqOIl.js +0 -1750
  260. package/lib/index-CXRrqOIl.js.map +0 -1
  261. package/lib/index-TaRXY2w1.js +0 -43
  262. package/lib/index-TaRXY2w1.js.map +0 -1
  263. package/lib/joinUrl-BTy9bvoK.js.map +0 -1
  264. package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -76
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../src/lib/components/Markdown.tsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mDAAmD;AACnD,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE;IAChD,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC9C,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC;AAClC,MAAM,aAAa,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AAEzD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAEpE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,OAAO,EACP,SAAS,GAIV,EAAE,EAAE,CAAC,CACJ,KAAC,aAAa,IACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,SAAS,YAEnB,OAAO,GACM,CACjB,CAAC"}
1
+ {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../src/lib/components/Markdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mDAAmD;AACnD,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE;IAChD,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC9C,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC;AAClC,MAAM,aAAa,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AAEzD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAEpE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAC1B,CAAC,EAAE,OAAO,EAAE,SAAS,EAA2C,EAAE,EAAE,CAAC,CACnE,KAAC,aAAa,IACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,SAAS,YAEnB,OAAO,GACM,CACjB,CACF,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ReactNode } from "react";
2
+ type StatusPageProps = {
3
+ statusCode: number;
4
+ message?: ReactNode;
5
+ };
6
+ export declare const StatusPage: ({ statusCode, message }: StatusPageProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ErrorPage } from "./ErrorPage.js";
3
+ const getDefaultContent = (statusCode) => {
4
+ switch (statusCode) {
5
+ case 400:
6
+ return {
7
+ title: "Bad Request",
8
+ message: "The request could not be understood by the server due to malformed syntax.",
9
+ };
10
+ case 403:
11
+ return {
12
+ title: "Forbidden",
13
+ message: "You don't have permission to access this resource.",
14
+ };
15
+ case 404:
16
+ return {
17
+ title: "Not Found",
18
+ message: "The requested resource could not be found.",
19
+ };
20
+ case 405:
21
+ return {
22
+ title: "Method Not Allowed",
23
+ message: "The request method is not supported for the requested resource.",
24
+ };
25
+ case 414:
26
+ return {
27
+ title: "Request URI Too Large",
28
+ message: "The request URI is too large.",
29
+ };
30
+ case 416:
31
+ return {
32
+ title: "Range Not Satisfiable",
33
+ message: "The server cannot satisfy the request range.",
34
+ };
35
+ case 500:
36
+ return {
37
+ title: "Internal Server Error",
38
+ message: "An unexpected error occurred while processing your request.",
39
+ };
40
+ case 501:
41
+ return {
42
+ title: "Not Implemented",
43
+ message: "The server does not support the functionality required to fulfill the request.",
44
+ };
45
+ case 502:
46
+ return {
47
+ title: "Bad Gateway",
48
+ message: "The server received an invalid response from the upstream server.",
49
+ };
50
+ case 503:
51
+ return {
52
+ title: "Service Unavailable",
53
+ message: "The server is temporarily unable to handle the request.",
54
+ };
55
+ case 504:
56
+ return {
57
+ title: "Gateway Timeout",
58
+ message: "The server did not receive a timely response from the upstream server.",
59
+ };
60
+ default:
61
+ return {
62
+ title: "An error occurred",
63
+ message: "Something went wrong while processing your request.",
64
+ };
65
+ }
66
+ };
67
+ export const StatusPage = ({ statusCode, message }) => {
68
+ const defaultContent = getDefaultContent(statusCode);
69
+ return (_jsx(ErrorPage, { title: defaultContent.title, message: message ?? defaultContent.message, category: statusCode }));
70
+ };
71
+ //# sourceMappingURL=StatusPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusPage.js","sourceRoot":"","sources":["../../../src/lib/components/StatusPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C,MAAM,iBAAiB,GAAG,CACxB,UAAkB,EACkB,EAAE;IACtC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,aAAa;gBACpB,OAAO,EACL,4EAA4E;aAC/E,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,oDAAoD;aAC9D,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,4CAA4C;aACtD,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,oBAAoB;gBAC3B,OAAO,EACL,iEAAiE;aACpE,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,+BAA+B;aACzC,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,8CAA8C;aACxD,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,6DAA6D;aACvE,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EACL,gFAAgF;aACnF,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,aAAa;gBACpB,OAAO,EACL,mEAAmE;aACtE,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,qBAAqB;gBAC5B,OAAO,EAAE,yDAAyD;aACnE,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EACL,wEAAwE;aAC3E,CAAC;QACJ;YACE,OAAO;gBACL,KAAK,EAAE,mBAAmB;gBAC1B,OAAO,EAAE,qDAAqD;aAC/D,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAmB,EAAE,EAAE;IACrE,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAErD,OAAO,CACL,KAAC,SAAS,IACR,KAAK,EAAE,cAAc,CAAC,KAAK,EAC3B,OAAO,EAAE,OAAO,IAAI,cAAc,CAAC,OAAO,EAC1C,QAAQ,EAAE,UAAU,GACpB,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -6,6 +6,7 @@ type SyntaxHighlightProps = {
6
6
  copyable?: boolean;
7
7
  showLanguageIndicator?: boolean;
8
8
  language?: string;
9
+ title?: string;
9
10
  } & Omit<HighlightProps, "children" | "language">;
10
- export declare const SyntaxHighlight: ({ copyable, language, ...props }: SyntaxHighlightProps) => import("react/jsx-runtime").JSX.Element | null;
11
+ export declare const SyntaxHighlight: ({ copyable, language, title, ...props }: SyntaxHighlightProps) => import("react/jsx-runtime").JSX.Element | null;
11
12
  export {};
@@ -29,7 +29,7 @@ import { ClientOnly } from "./ClientOnly.js";
29
29
  const remapLang = {
30
30
  mdx: "md",
31
31
  };
32
- export const SyntaxHighlight = ({ copyable = true, language = "plain", ...props }) => {
32
+ export const SyntaxHighlight = ({ copyable = true, language = "plain", title, ...props }) => {
33
33
  const { resolvedTheme } = useTheme();
34
34
  const [isCopied, setIsCopied] = useState(false);
35
35
  if (!props.code) {
@@ -38,7 +38,7 @@ export const SyntaxHighlight = ({ copyable = true, language = "plain", ...props
38
38
  const highlightTheme = resolvedTheme === "dark" ? themes.vsDark : themes.github;
39
39
  // hardcoded values from the themes to avoid color flash in SSR
40
40
  const themeColorClasses = "bg-[#f6f8fa] text-[#393a34] dark:bg-[#1e1e1e] dark:text-[#9cdcfe]";
41
- return (_jsx(ClientOnly, { fallback: _jsxs("div", { className: "relative group", children: [_jsx("pre", { className: cn("relative scrollbar overflow-x-auto", props.className, props.noBackground ? "!bg-transparent" : themeColorClasses, props.wrapLines && "whitespace-pre-wrap break-words"), children: props.code }), props.showLanguageIndicator && (_jsx("span", { className: "absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0", children: language }))] }), children: _jsx(Highlight, { theme: highlightTheme, language: remapLang[language] ?? language, ...props, children: ({ className, style, tokens, getLineProps, getTokenProps }) => (_jsxs("div", { className: "relative group", children: [_jsx("pre", { className: cn("relative scrollbar overflow-x-auto", className, props.className, props.noBackground && "!bg-transparent", props.wrapLines && "whitespace-pre-wrap break-words"), style: style, children: tokens.map((line, i) => (
41
+ return (_jsx(ClientOnly, { fallback: _jsxs("div", { className: "relative group", children: [title && (_jsx("div", { className: "text-xs text-muted-foreground absolute top-2 font-mono border-b w-full pb-2 px-4 ", children: title })), _jsx("pre", { className: cn("relative scrollbar overflow-x-auto", props.className, props.noBackground ? "!bg-transparent" : themeColorClasses, props.wrapLines && "whitespace-pre-wrap break-words", title && "pt-10"), children: props.code }), props.showLanguageIndicator && (_jsx("span", { className: "absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0", children: language }))] }), children: _jsx(Highlight, { theme: highlightTheme, language: remapLang[language] ?? language, ...props, children: ({ className, style, tokens, getLineProps, getTokenProps }) => (_jsxs("div", { className: "relative group", children: [title && (_jsx("div", { className: "text-xs text-muted-foreground absolute top-2 font-mono border-b w-full pb-2 px-4 ", children: title })), _jsx("pre", { className: cn("relative scrollbar overflow-x-auto", className, props.className, props.noBackground && "!bg-transparent", props.wrapLines && "whitespace-pre-wrap break-words", title && "pt-10"), style: style, children: tokens.map((line, i) => (
42
42
  // eslint-disable-next-line react/no-array-index-key
43
43
  _jsx("div", { ...getLineProps({ line }), children: line.map((token, key) => (
44
44
  // eslint-disable-next-line react/no-array-index-key
@@ -1 +1 @@
1
- {"version":3,"file":"SyntaxHighlight.js","sourceRoot":"","sources":["../../../src/lib/components/SyntaxHighlight.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyntaxHighlight.js","sourceRoot":"","sources":["../../../src/lib/components/SyntaxHighlight.tsx"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { MoonStarIcon, SunIcon } from "lucide-react";
3
3
  import { useTheme } from "next-themes";
4
4
  import { Button } from "zudoku/ui/Button.js";
5
- import { ClientOnly } from "./ClientOnly.js";
5
+ import { cn } from "../util/cn.js";
6
6
  export const ThemeSwitch = () => {
7
7
  const { resolvedTheme, setTheme } = useTheme();
8
8
  const ThemeIcon = resolvedTheme === "dark" ? MoonStarIcon : SunIcon;
9
- return (_jsx(ClientOnly, { children: _jsx(Button, { variant: "ghost", "aria-label": resolvedTheme === "dark"
10
- ? "Switch to light mode"
11
- : "Switch to dark mode", className: "p-2.5 -m-2.5 rounded-full", onClick: () => setTheme(resolvedTheme === "dark" ? "light" : "dark"), children: _jsx(ThemeIcon, { size: 18 }) }) }));
9
+ return (_jsx(Button, { variant: "ghost", size: "icon", "aria-label": resolvedTheme === "dark"
10
+ ? "Switch to light mode"
11
+ : "Switch to dark mode", className: cn(resolvedTheme ? "opacity-100" : "opacity-0"), onClick: () => setTheme(resolvedTheme === "dark" ? "light" : "dark"), children: _jsx(ThemeIcon, { size: 18 }) }));
12
12
  };
13
13
  //# sourceMappingURL=ThemeSwitch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeSwitch.js","sourceRoot":"","sources":["../../../src/lib/components/ThemeSwitch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IAEpE,OAAO,CACL,KAAC,UAAU,cACT,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,gBAEb,aAAa,KAAK,MAAM;gBACtB,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,qBAAqB,EAE3B,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAEpE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,GACE,CACd,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ThemeSwitch.js","sourceRoot":"","sources":["../../../src/lib/components/ThemeSwitch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IAEpE,OAAO,CACL,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,gBAET,aAAa,KAAK,MAAM;YACtB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,qBAAqB,EAE3B,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,EAC1D,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAEpE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,CACV,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const CACHE_KEYS: Readonly<{
2
+ API_IDENTITIES: string[];
3
+ }>;
4
+ export declare const useCache: () => {
5
+ invalidateCache: (key: keyof typeof CACHE_KEYS) => Promise<void>;
6
+ };
@@ -0,0 +1,13 @@
1
+ import { useQueryClient } from "@tanstack/react-query";
2
+ export const CACHE_KEYS = Object.freeze({
3
+ API_IDENTITIES: ["api-identities"],
4
+ });
5
+ export const useCache = () => {
6
+ const queryClient = useQueryClient();
7
+ return {
8
+ invalidateCache: async (key) => {
9
+ await queryClient.invalidateQueries({ queryKey: CACHE_KEYS[key] });
10
+ },
11
+ };
12
+ };
13
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/lib/components/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,cAAc,EAAE,CAAC,gBAAgB,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO;QACL,eAAe,EAAE,KAAK,EAAE,GAA4B,EAAE,EAAE;YACtD,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -29,6 +29,7 @@ export const ViewportAnchorProvider = ({ children, }) => {
29
29
  const [activeAnchor, setActiveAnchor] = useState("");
30
30
  const observerRef = useRef(null);
31
31
  const registeredElements = useRef(new Set());
32
+ const pendingElements = useRef(new Set());
32
33
  useEffect(() => {
33
34
  observerRef.current = new IntersectionObserver((entries) => {
34
35
  for (const entry of entries) {
@@ -42,6 +43,12 @@ export const ViewportAnchorProvider = ({ children, }) => {
42
43
  rootMargin: "115px 0px -80% 0px",
43
44
  threshold: 0.75,
44
45
  });
46
+ // Process any elements that tried to register before observer was ready
47
+ pendingElements.current.forEach((element) => {
48
+ registeredElements.current.add(element);
49
+ observerRef.current?.observe(element);
50
+ });
51
+ pendingElements.current.clear();
45
52
  return () => observerRef.current?.disconnect();
46
53
  }, []);
47
54
  useEffect(() => {
@@ -70,20 +77,25 @@ export const ViewportAnchorProvider = ({ children, }) => {
70
77
  const observeFns = useMemo(() => {
71
78
  return {
72
79
  observe: (element) => {
73
- if (!element || !observerRef.current)
80
+ if (!element)
81
+ return;
82
+ if (!observerRef.current) {
83
+ pendingElements.current.add(element);
74
84
  return;
85
+ }
75
86
  registeredElements.current.add(element);
76
87
  observerRef.current.observe(element);
77
88
  },
78
89
  unobserve: (element) => {
79
- if (!element || !observerRef.current)
90
+ if (!element)
80
91
  return;
92
+ pendingElements.current.delete(element);
81
93
  registeredElements.current.delete(element);
82
- observerRef.current.unobserve(element);
94
+ observerRef.current?.unobserve(element);
83
95
  },
84
96
  };
85
97
  }, []);
86
98
  const value = useMemo(() => ({ activeAnchor, setActiveAnchor, ...observeFns }), [activeAnchor, setActiveAnchor, observeFns]);
87
- return (_jsx(ViewportAnchorContext.Provider, { value: value, children: children }));
99
+ return (_jsx(ViewportAnchorContext, { value: value, children: children }));
88
100
  };
89
101
  //# sourceMappingURL=ViewportAnchorContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewportAnchorContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ViewportAnchorContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewportAnchorContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ViewportAnchorContext.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { useQuery, useSuspenseQuery } from "@tanstack/react-query";
2
2
  import { createContext, useContext } from "react";
3
3
  import { matchPath, useLocation } from "react-router";
4
4
  import { joinPath } from "../../util/joinPath.js";
5
+ import { CACHE_KEYS } from "../cache.js";
5
6
  import { traverseSidebar } from "../navigation/utils.js";
6
7
  export const ZudokuReactContext = createContext(undefined);
7
8
  export const useZudoku = () => {
@@ -15,7 +16,7 @@ export const useApiIdentities = () => {
15
16
  const { getApiIdentities } = useZudoku();
16
17
  return useQuery({
17
18
  queryFn: getApiIdentities,
18
- queryKey: ["api-identities"],
19
+ queryKey: [CACHE_KEYS.API_IDENTITIES],
19
20
  });
20
21
  };
21
22
  export const useCurrentNavigation = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ZudokuContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAC7C,SAAS,CACV,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAC;IACzC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;QACvE,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,KAAK,KAAK;gBACjB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI;oBACrC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,CAAC,CAAC,SAAS,CAAC;YAElB,IAAI,MAAM,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GACrB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtE,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAChC,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClD,QAAQ,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC;KAChD,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QACxE,UAAU,EAAE,iBAAiB;KAC9B,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ZudokuContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAC7C,SAAS,CACV,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAC;IAEzC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;KACtC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;QACvE,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,KAAK,KAAK;gBACjB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI;oBACrC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,CAAC,CAAC,SAAS,CAAC;YAElB,IAAI,MAAM,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GACrB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtE,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAChC,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClD,QAAQ,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC;KAChD,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QACxE,UAAU,EAAE,iBAAiB;KAC9B,CAAC;AACJ,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { useMDXComponents as useMDXComponentsImport } from "@mdx-js/react";
2
2
  import { Helmet } from "@zudoku/react-helmet-async";
3
3
  import { RouterError as RouterErrorImport } from "../errors/RouterError.js";
4
4
  import { ServerError as ServerErrorImport } from "../errors/ServerError.js";
5
+ import { CACHE_KEYS as CACHE_KEYS_IMPORT } from "./cache.js";
5
6
  export declare const useMDXComponents: typeof useMDXComponentsImport;
6
7
  export declare const Layout: ({ children }: {
7
8
  children?: import("react").ReactNode;
@@ -29,6 +30,12 @@ export declare const useAuth: () => {
29
30
  providerData: unknown;
30
31
  isAuthEnabled: boolean;
31
32
  };
33
+ export declare const useCache: () => {
34
+ invalidateCache: (key: keyof typeof CACHE_KEYS_IMPORT) => Promise<void>;
35
+ };
36
+ export declare const CACHE_KEYS: Readonly<{
37
+ API_IDENTITIES: string[];
38
+ }>;
32
39
  export declare const Zudoku: {
33
40
  (props: import("../core/ZudokuContext.js").ZudokuContextOptions): import("react/jsx-runtime").JSX.Element;
34
41
  displayName: string;
@@ -39,10 +46,10 @@ export declare const Callout: ({ type, children, title, className }: {
39
46
  children: import("react").ReactNode;
40
47
  className?: string;
41
48
  }) => import("react/jsx-runtime").JSX.Element;
42
- export declare const Markdown: ({ content, className, }: {
49
+ export declare const Markdown: import("react").MemoExoticComponent<({ content, className }: {
43
50
  content: string;
44
51
  className?: string;
45
- }) => import("react/jsx-runtime").JSX.Element;
52
+ }) => import("react/jsx-runtime").JSX.Element>;
46
53
  export declare const Spinner: ({ size }: {
47
54
  size?: number;
48
55
  }) => import("react/jsx-runtime").JSX.Element;
@@ -12,6 +12,7 @@ import { Layout as LayoutImport } from "./Layout.js";
12
12
  import { Markdown as MarkdownImport } from "./Markdown.js";
13
13
  import { Spinner as SpinnerImport } from "./Spinner.js";
14
14
  import { Zudoku as ZudokuImport } from "./Zudoku.js";
15
+ import { CACHE_KEYS as CACHE_KEYS_IMPORT, useCache as useCacheImport, } from "./cache.js";
15
16
  import { useZudoku as useZudokuImport } from "./context/ZudokuContext.js";
16
17
  export const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;
17
18
  export const Layout = /*@__PURE__*/ LayoutImport;
@@ -22,6 +23,8 @@ export const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;
22
23
  export const Head = /*@__PURE__*/ Helmet;
23
24
  export const useZudoku = /*@__PURE__*/ useZudokuImport;
24
25
  export const useAuth = /*@__PURE__*/ useAuthImport;
26
+ export const useCache = /*@__PURE__*/ useCacheImport;
27
+ export const CACHE_KEYS = /*@__PURE__*/ CACHE_KEYS_IMPORT;
25
28
  export const Zudoku = /*@__PURE__*/ ZudokuImport;
26
29
  export const Callout = /*@__PURE__*/ CalloutImport;
27
30
  export const Markdown = /*@__PURE__*/ MarkdownImport;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,SAAS,IAAI,eAAe,EAC5B,eAAe,IAAI,qBAAqB,GACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,qBAAqB,CAAC;AAEnE,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;AAEzC,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC;AACzD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,SAAS,IAAI,eAAe,EAC5B,eAAe,IAAI,qBAAqB,GACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,UAAU,IAAI,iBAAiB,EAC/B,QAAQ,IAAI,cAAc,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,qBAAqB,CAAC;AAEnE,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;AAEzC,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC1D,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC;AACzD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC"}
@@ -31,18 +31,18 @@ export const SidebarCategory = ({ category, onRequestClose, }) => {
31
31
  isActive: false,
32
32
  className: [
33
33
  "text-start font-medium",
34
- isCollapsible
34
+ isCollapsible || typeof category.link !== "undefined"
35
35
  ? "cursor-pointer"
36
36
  : "cursor-default hover:bg-transparent",
37
37
  ],
38
- }), children: [category.icon && (_jsx(category.icon, { size: 16, className: cn("align-[-0.125em] ", isActive && "text-primary") })), category.link?.type === "doc" ? (_jsx(NavLink, { to: joinPath(category.link.id), className: "flex-1", onClick: () => {
38
+ }), children: [category.icon && (_jsx(category.icon, { size: 16, className: cn("align-[-0.125em] ", isActive && "text-primary") })), category.link?.type === "doc" ? (_jsx(NavLink, { to: joinPath(category.link.id), className: "flex-1 truncate", onClick: () => {
39
39
  // if it is the current path and closed then open it because there's no path change to trigger the open
40
40
  if (isActive && !open) {
41
41
  setOpen(true);
42
42
  }
43
43
  }, children: _jsxs("div", { className: cn("flex items-center gap-2 justify-between w-full", isActive ? "text-primary" : "text-foreground/80"), children: [_jsx("div", { className: "truncate", children: category.label }), ToggleButton] }) })) : (_jsxs("div", { className: "flex items-center justify-between w-full", children: [_jsx("div", { className: "flex gap-2 truncate w-full", children: category.label }), ToggleButton] }))] }) }), _jsx(Collapsible.Content, { className: cn(
44
44
  // CollapsibleContent class is used to animate and it should only be applied when the user has triggered the toggle
45
- hasInteracted && "CollapsibleContent", "ms-6 my-1"), children: _jsx("ul", { className: "relative after:absolute after:-left-[--padding-nav-item] after:translate-x-[1.5px] after:top-0 after:bottom-0 after:w-px after:bg-border", children: category.items.map((item) => (_jsx(SidebarItem, { onRequestClose: onRequestClose, item: item }, ("id" in item ? item.id : "") +
45
+ hasInteracted && "CollapsibleContent", category.items.length === 0 && "hidden", "ms-6 my-1"), children: _jsx("ul", { className: "relative after:absolute after:-left-[--padding-nav-item] after:translate-x-[1.5px] after:top-0 after:bottom-0 after:w-px after:bg-border", children: category.items.map((item) => (_jsx(SidebarItem, { onRequestClose: onRequestClose, item: item }, ("id" in item ? item.id : "") +
46
46
  ("href" in item ? item.href : "") +
47
47
  item.label))) }) })] }));
48
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarCategory.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/SidebarCategory.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SidebarCategory.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/SidebarCategory.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const RouteGuard: () => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect } from "react";
3
+ import { matchPath, Outlet, useLocation } from "react-router";
4
+ import { useAuth } from "../authentication/hook.js";
5
+ import { useZudoku } from "../components/context/ZudokuContext.js";
6
+ import { ZudokuError } from "../util/invariant.js";
7
+ export const RouteGuard = () => {
8
+ const auth = useAuth();
9
+ const zudoku = useZudoku();
10
+ const location = useLocation();
11
+ const isProtected = zudoku.options.protectedRoutes?.some((path) => matchPath({ path, end: true }, location.pathname));
12
+ useEffect(() => {
13
+ if (isProtected && !auth.isAuthenticated) {
14
+ void zudoku.authentication?.signIn();
15
+ }
16
+ }, [isProtected, auth.isAuthenticated, zudoku.authentication]);
17
+ if (isProtected && !auth.isAuthenticated) {
18
+ return null;
19
+ }
20
+ if (isProtected && !auth.isAuthEnabled) {
21
+ throw new ZudokuError("Authentication is not enabled", {
22
+ title: "Authentication is not enabled",
23
+ developerHint: "To use protectedRoutes you need authentication to be enabled",
24
+ });
25
+ }
26
+ return _jsx(Outlet, {});
27
+ };
28
+ //# sourceMappingURL=RouteGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteGuard.js","sourceRoot":"","sources":["../../../src/lib/core/RouteGuard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChE,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAClD,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACvC,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAE/D,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,IAAI,WAAW,CAAC,+BAA+B,EAAE;YACrD,KAAK,EAAE,+BAA+B;YACtC,aAAa,EACX,8DAA8D;SACjE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAC,MAAM,KAAG,CAAC;AACpB,CAAC,CAAC"}
@@ -53,16 +53,18 @@ export type ZudokuContextOptions = {
53
53
  components?: MdxComponentsType;
54
54
  };
55
55
  overrides?: ComponentsContextType;
56
+ protectedRoutes?: string[];
56
57
  };
57
58
  export declare class ZudokuContext {
59
+ readonly options: ZudokuContextOptions;
58
60
  plugins: NonNullable<ZudokuContextOptions["plugins"]>;
59
61
  sidebars: SidebarConfig;
60
62
  topNavigation: NonNullable<ZudokuContextOptions["topNavigation"]>;
61
63
  meta: ZudokuContextOptions["metadata"];
62
64
  page: ZudokuContextOptions["page"];
63
65
  authentication?: ZudokuContextOptions["authentication"];
64
- private navigationPlugins;
65
- constructor(config: ZudokuContextOptions);
66
+ private readonly navigationPlugins;
67
+ constructor(options: ZudokuContextOptions);
66
68
  initialize: () => Promise<void>;
67
69
  getApiIdentities: () => Promise<ApiIdentity[]>;
68
70
  getPluginSidebar: (path: string) => Promise<import("../../config/validators/SidebarSchema.js").SidebarItem[]>;
@@ -1,6 +1,7 @@
1
1
  import { joinPath } from "../util/joinPath.js";
2
2
  import { isApiIdentityPlugin, isNavigationPlugin, needsInitialization, } from "./plugins.js";
3
3
  export class ZudokuContext {
4
+ options;
4
5
  plugins;
5
6
  sidebars;
6
7
  topNavigation;
@@ -8,14 +9,15 @@ export class ZudokuContext {
8
9
  page;
9
10
  authentication;
10
11
  navigationPlugins;
11
- constructor(config) {
12
- this.plugins = config.plugins ?? [];
13
- this.topNavigation = config.topNavigation ?? [];
14
- this.sidebars = config.sidebars ?? {};
12
+ constructor(options) {
13
+ this.options = options;
14
+ this.plugins = options.plugins ?? [];
15
+ this.topNavigation = options.topNavigation ?? [];
16
+ this.sidebars = options.sidebars ?? {};
15
17
  this.navigationPlugins = this.plugins.filter(isNavigationPlugin);
16
- this.authentication = config.authentication;
17
- this.meta = config.metadata;
18
- this.page = config.page;
18
+ this.authentication = options.authentication;
19
+ this.meta = options.metadata;
20
+ this.page = options.page;
19
21
  }
20
22
  initialize = async () => {
21
23
  await Promise.all(this.plugins
@@ -1 +1 @@
1
- {"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../src/lib/core/ZudokuContext.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAElB,mBAAmB,GAEpB,MAAM,cAAc,CAAC;AAuDtB,MAAM,OAAO,aAAa;IACjB,OAAO,CAA+C;IACtD,QAAQ,CAAgB;IACxB,aAAa,CAAqD;IAClE,IAAI,CAAmC;IACvC,IAAI,CAA+B;IACnC,cAAc,CAA0C;IACvD,iBAAiB,CAAqB;IAE9C,YAAY,MAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,UAAU,GAAG,KAAK,IAAmB,EAAE;QACrC,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAC9C,CAAC;IACJ,CAAC,CAAC;IAEF,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC/C,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACpC,CACF,CAAC;QAEF,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,WAAW,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;QACvC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QAE/D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,WAAW,EAAE,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;CACH"}
1
+ {"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../src/lib/core/ZudokuContext.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAElB,mBAAmB,GAEpB,MAAM,cAAc,CAAC;AAwDtB,MAAM,OAAO,aAAa;IASI;IARrB,OAAO,CAA+C;IACtD,QAAQ,CAAgB;IACxB,aAAa,CAAqD;IAClE,IAAI,CAAmC;IACvC,IAAI,CAA+B;IACnC,cAAc,CAA0C;IAC9C,iBAAiB,CAAqB;IAEvD,YAA4B,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,UAAU,GAAG,KAAK,IAAmB,EAAE;QACrC,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAC9C,CAAC;IACJ,CAAC,CAAC;IAEF,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC/C,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACpC,CACF,CAAC;QAEF,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,WAAW,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;QACvC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QAE/D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,WAAW,EAAE,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;CACH"}
@@ -0,0 +1,3 @@
1
+ import { GraphQLScalarType } from "graphql/index.js";
2
+ export declare const CIRCULAR_REF = "$[Circular Reference]";
3
+ export declare const GraphQLJSONSchema: GraphQLScalarType<unknown, unknown>;
@@ -0,0 +1,27 @@
1
+ import { GraphQLJSON } from "graphql-type-json";
2
+ import { GraphQLScalarType } from "graphql/index.js";
3
+ export const CIRCULAR_REF = "$[Circular Reference]";
4
+ const handleCircularRefs = (obj, visited = new WeakSet()) => {
5
+ if (obj === CIRCULAR_REF)
6
+ return CIRCULAR_REF;
7
+ if (obj === null || typeof obj !== "object")
8
+ return obj;
9
+ if (visited.has(obj))
10
+ return CIRCULAR_REF;
11
+ visited.add(obj);
12
+ if (Array.isArray(obj)) {
13
+ return obj.map((item) => handleCircularRefs(item, visited));
14
+ }
15
+ const result = {};
16
+ for (const [key, value] of Object.entries(obj)) {
17
+ result[key] = handleCircularRefs(value, visited);
18
+ }
19
+ return result;
20
+ };
21
+ export const GraphQLJSONSchema = new GraphQLScalarType({
22
+ ...GraphQLJSON,
23
+ name: "JSONSchema",
24
+ description: "OpenAPI schema scalar type that handles circular references",
25
+ serialize: (value) => GraphQLJSON.serialize(handleCircularRefs(value)),
26
+ });
27
+ //# sourceMappingURL=circular.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circular.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAC;AACpD,MAAM,kBAAkB,GAAG,CAAC,GAAQ,EAAE,OAAO,GAAG,IAAI,OAAO,EAAE,EAAO,EAAE;IACpE,IAAI,GAAG,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAC9C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAExD,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;IACrD,GAAG,WAAW;IACd,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6DAA6D;IAC1E,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE,CAC5B,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;CACnD,CAAC,CAAC"}
@@ -12,5 +12,6 @@ export declare const createOperationSlug: (slugify: CountableSlugify, operation:
12
12
  export type SchemaImports = Record<string, () => Promise<{
13
13
  schema: OpenAPIDocument;
14
14
  }>>;
15
+ export declare const getAllTags: (schema: OpenAPIDocument) => TagObject[];
15
16
  export declare const schema: import("graphql").GraphQLSchema;
16
17
  export declare const createGraphQLServer: (options?: Omit<YogaServerOptions<any, any>, "schema">) => import("graphql-yoga").YogaServerInstance<any, any>;