zudoku 0.0.0-monetization-standalone.zada7f04c → 0.0.0-money-plugin.z605c614d

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 (241) hide show
  1. package/dist/config/create-plugin.d.ts +2 -2
  2. package/dist/config/create-plugin.js.map +1 -1
  3. package/dist/config/validators/InputNavigationSchema.d.ts +174 -124
  4. package/dist/config/validators/InputNavigationSchema.js +17 -0
  5. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  6. package/dist/config/validators/NavigationSchema.d.ts +10 -2
  7. package/dist/config/validators/NavigationSchema.js +7 -0
  8. package/dist/config/validators/NavigationSchema.js.map +1 -1
  9. package/dist/config/validators/validate.d.ts +4 -4
  10. package/dist/flat-config.d.ts +35 -24
  11. package/dist/lib/components/Heading.d.ts +1 -1
  12. package/dist/lib/components/MobileTopNavigation.js +2 -1
  13. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  14. package/dist/lib/components/TopNavigation.d.ts +7 -1
  15. package/dist/lib/components/TopNavigation.js +7 -2
  16. package/dist/lib/components/TopNavigation.js.map +1 -1
  17. package/dist/lib/components/context/ZudokuContext.d.ts +8 -1
  18. package/dist/lib/components/context/ZudokuContext.js +2 -0
  19. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  20. package/dist/lib/components/index.d.ts +18 -76
  21. package/dist/lib/components/index.js +19 -36
  22. package/dist/lib/components/index.js.map +1 -1
  23. package/dist/lib/components/navigation/Navigation.js +4 -3
  24. package/dist/lib/components/navigation/Navigation.js.map +1 -1
  25. package/dist/lib/components/navigation/NavigationCategory.js +8 -0
  26. package/dist/lib/components/navigation/NavigationCategory.js.map +1 -1
  27. package/dist/lib/components/navigation/NavigationFilterContext.d.ts +8 -0
  28. package/dist/lib/components/navigation/NavigationFilterContext.js +12 -0
  29. package/dist/lib/components/navigation/NavigationFilterContext.js.map +1 -0
  30. package/dist/lib/components/navigation/NavigationFilterInput.d.ts +3 -0
  31. package/dist/lib/components/navigation/NavigationFilterInput.js +9 -0
  32. package/dist/lib/components/navigation/NavigationFilterInput.js.map +1 -0
  33. package/dist/lib/components/navigation/NavigationItem.js +11 -1
  34. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  35. package/dist/lib/components/navigation/utils.d.ts +2 -1
  36. package/dist/lib/components/navigation/utils.js +22 -1
  37. package/dist/lib/components/navigation/utils.js.map +1 -1
  38. package/dist/lib/core/__internal.d.ts +1 -1
  39. package/dist/lib/core/transform-config.d.ts +2 -2
  40. package/dist/lib/core/transform-config.js.map +1 -1
  41. package/dist/lib/hooks/index.d.ts +7 -30
  42. package/dist/lib/hooks/index.js +7 -15
  43. package/dist/lib/hooks/index.js.map +1 -1
  44. package/dist/lib/oas/graphql/circular.d.ts +1 -1
  45. package/dist/lib/oas/graphql/circular.js +18 -35
  46. package/dist/lib/oas/graphql/circular.js.map +1 -1
  47. package/dist/lib/oas/graphql/circular.test.js +33 -2
  48. package/dist/lib/oas/graphql/circular.test.js.map +1 -1
  49. package/dist/lib/oas/parser/index.js +14 -5
  50. package/dist/lib/oas/parser/index.js.map +1 -1
  51. package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +1 -0
  52. package/dist/lib/plugins/openapi/playground/fileUtils.js +3 -0
  53. package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -1
  54. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.d.ts +6 -0
  55. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js +20 -0
  56. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js.map +1 -0
  57. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +7 -2
  58. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  59. package/dist/lib/ui/Alert.d.ts +3 -2
  60. package/dist/lib/ui/Alert.js +9 -5
  61. package/dist/lib/ui/Alert.js.map +1 -1
  62. package/dist/lib/ui/InputGroup.d.ts +16 -0
  63. package/dist/lib/ui/InputGroup.js +65 -0
  64. package/dist/lib/ui/InputGroup.js.map +1 -0
  65. package/dist/lib/util/flattenAllOf.d.ts +0 -2
  66. package/dist/lib/util/flattenAllOf.js +0 -46
  67. package/dist/lib/util/flattenAllOf.js.map +1 -1
  68. package/dist/lib/util/flattenAllOf.test.js +2 -1
  69. package/dist/lib/util/flattenAllOf.test.js.map +1 -1
  70. package/dist/lib/util/flattenAllOfProcessor.d.ts +2 -0
  71. package/dist/lib/util/flattenAllOfProcessor.js +48 -0
  72. package/dist/lib/util/flattenAllOfProcessor.js.map +1 -0
  73. package/dist/lib/util/readFrontmatter.js +2 -1
  74. package/dist/lib/util/readFrontmatter.js.map +1 -1
  75. package/dist/vite/api/SchemaManager.js +1 -1
  76. package/dist/vite/api/SchemaManager.js.map +1 -1
  77. package/dist/vite/api/SchemaManager.test.js +1 -1
  78. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  79. package/dist/vite/build.js +91 -73
  80. package/dist/vite/build.js.map +1 -1
  81. package/dist/vite/mdx/remark-inject-filepath.js +5 -1
  82. package/dist/vite/mdx/remark-inject-filepath.js.map +1 -1
  83. package/dist/vite/mdx/remark-link-rewrite.js +3 -2
  84. package/dist/vite/mdx/remark-link-rewrite.js.map +1 -1
  85. package/dist/vite/plugin-docs.js +9 -7
  86. package/dist/vite/plugin-docs.js.map +1 -1
  87. package/dist/vite/plugin-markdown-export.js +4 -2
  88. package/dist/vite/plugin-markdown-export.js.map +1 -1
  89. package/dist/vite/prerender/prerender.js +3 -1
  90. package/dist/vite/prerender/prerender.js.map +1 -1
  91. package/dist/vite/prerender/worker.js +3 -1
  92. package/dist/vite/prerender/worker.js.map +1 -1
  93. package/lib/{ClaudeLogo-K64Qm6gS.js → ClaudeLogo-DP6JOmz1.js} +26 -22
  94. package/lib/{ClaudeLogo-K64Qm6gS.js.map → ClaudeLogo-DP6JOmz1.js.map} +1 -1
  95. package/lib/{HydrationBoundary-CNF2ZV3E.js → HydrationBoundary-CJu4vUlG.js} +6 -6
  96. package/lib/{HydrationBoundary-CNF2ZV3E.js.map → HydrationBoundary-CJu4vUlG.js.map} +1 -1
  97. package/lib/{MdxPage-Cr99RARi.js → MdxPage-BR_7-0cT.js} +8 -8
  98. package/lib/{MdxPage-Cr99RARi.js.map → MdxPage-BR_7-0cT.js.map} +1 -1
  99. package/lib/Mermaid-DAWm9rzb.js +104 -0
  100. package/lib/Mermaid-DAWm9rzb.js.map +1 -0
  101. package/lib/{OAuthErrorPage-BRXS5AMu.js → OAuthErrorPage-l0orKh-A.js} +22 -19
  102. package/lib/{OAuthErrorPage-BRXS5AMu.js.map → OAuthErrorPage-l0orKh-A.js.map} +1 -1
  103. package/lib/{OasProvider-sP_SqSM7.js → OasProvider-DPW0x8dk.js} +3 -3
  104. package/lib/{OasProvider-sP_SqSM7.js.map → OasProvider-DPW0x8dk.js.map} +1 -1
  105. package/lib/{OperationList-DR0APPhk.js → OperationList-Dcm9TZG7.js} +952 -948
  106. package/lib/OperationList-Dcm9TZG7.js.map +1 -0
  107. package/lib/{RouteGuard-CZuPjknT.js → RouteGuard-CVs3yvEs.js} +5 -5
  108. package/lib/{RouteGuard-CZuPjknT.js.map → RouteGuard-CVs3yvEs.js.map} +1 -1
  109. package/lib/{SchemaList-DgqAAHSI.js → SchemaList-B7RzviG5.js} +8 -8
  110. package/lib/{SchemaList-DgqAAHSI.js.map → SchemaList-B7RzviG5.js.map} +1 -1
  111. package/lib/{SchemaView-7IyQYEqk.js → SchemaView-Dt5-T06r.js} +3 -3
  112. package/lib/{SchemaView-7IyQYEqk.js.map → SchemaView-Dt5-T06r.js.map} +1 -1
  113. package/lib/{Secret-BE7V0Vb5.js → Secret-DUpgv4V3.js} +4 -4
  114. package/lib/{Secret-BE7V0Vb5.js.map → Secret-DUpgv4V3.js.map} +1 -1
  115. package/lib/{SignUp-D3zhMk7q.js → SignUp-CifBTCq4.js} +31 -26
  116. package/lib/{SignUp-D3zhMk7q.js.map → SignUp-CifBTCq4.js.map} +1 -1
  117. package/lib/{SyntaxHighlight-paLQ8NP8.js → SyntaxHighlight-BMu0b_hF.js} +3 -3
  118. package/lib/{SyntaxHighlight-paLQ8NP8.js.map → SyntaxHighlight-BMu0b_hF.js.map} +1 -1
  119. package/lib/{Toc-GluXkcIk.js → Toc-CeMXYWgp.js} +2 -2
  120. package/lib/{Toc-GluXkcIk.js.map → Toc-CeMXYWgp.js.map} +1 -1
  121. package/lib/{index-DYfX9H7i.js → Zudoku-B5YsolG1.js} +2869 -2710
  122. package/lib/Zudoku-B5YsolG1.js.map +1 -0
  123. package/lib/ZudokuContext-CYyb_PB_.js +175 -0
  124. package/lib/ZudokuContext-CYyb_PB_.js.map +1 -0
  125. package/lib/ZudokuReactContext-DGJAP1sN.js +222 -0
  126. package/lib/ZudokuReactContext-DGJAP1sN.js.map +1 -0
  127. package/lib/{circular-Bunzbpsy.js → circular-BV9K7T3F.js} +1327 -1346
  128. package/lib/{circular-Bunzbpsy.js.map → circular-BV9K7T3F.js.map} +1 -1
  129. package/lib/createServer-DYUdwZG4.js +13036 -0
  130. package/lib/createServer-DYUdwZG4.js.map +1 -0
  131. package/lib/{errors-D2NINcVk.js → errors-C3XsqYso.js} +3 -3
  132. package/lib/{errors-D2NINcVk.js.map → errors-C3XsqYso.js.map} +1 -1
  133. package/lib/{firebase-BVAmGV_v.js → firebase-CL9aCRn0.js} +26 -25
  134. package/lib/firebase-CL9aCRn0.js.map +1 -0
  135. package/lib/{hook-Da8QTnPd.js → hook-Dz_n9SoE.js} +16 -15
  136. package/lib/{hook-Da8QTnPd.js.map → hook-Dz_n9SoE.js.map} +1 -1
  137. package/lib/{index-DTjrb36R.js → index-CFW_9FdI.js} +2 -2
  138. package/lib/{index-DTjrb36R.js.map → index-CFW_9FdI.js.map} +1 -1
  139. package/lib/index-DAWHN3cH.js +86 -0
  140. package/lib/index-DAWHN3cH.js.map +1 -0
  141. package/lib/{index-BfTLawvZ.js → index-DywuWe2u.js} +589 -551
  142. package/lib/index-DywuWe2u.js.map +1 -0
  143. package/lib/{index.esm-B_0dvNjB.js → index.esm-Ca5zvoff.js} +20 -20
  144. package/lib/{index.esm-B_0dvNjB.js.map → index.esm-Ca5zvoff.js.map} +1 -1
  145. package/lib/{index.esm-GMDd_9gw.js → index.esm-ld_S_9qs.js} +2 -2
  146. package/lib/index.esm-ld_S_9qs.js.map +1 -0
  147. package/lib/{invariant-BJAl77rw.js → invariant-B_t_F2s_.js} +3 -3
  148. package/lib/{invariant-BJAl77rw.js.map → invariant-B_t_F2s_.js.map} +1 -1
  149. package/lib/{mutation-BISOc7OM.js → mutation-B7eFBLZY.js} +2 -2
  150. package/lib/{mutation-BISOc7OM.js.map → mutation-B7eFBLZY.js.map} +1 -1
  151. package/lib/ui/Alert.js +36 -24
  152. package/lib/ui/Alert.js.map +1 -1
  153. package/lib/ui/InputGroup.js +155 -0
  154. package/lib/ui/InputGroup.js.map +1 -0
  155. package/lib/ui/SyntaxHighlight.js +3 -3
  156. package/lib/useExposedProps-CzTDfXfq.js +30 -0
  157. package/lib/useExposedProps-CzTDfXfq.js.map +1 -0
  158. package/lib/{useMutation-CFMGlAMW.js → useMutation-CErliDZ9.js} +5 -5
  159. package/lib/{useMutation-CFMGlAMW.js.map → useMutation-CErliDZ9.js.map} +1 -1
  160. package/lib/{useSuspenseQuery-CSB_rVek.js → useQuery-ht7aWJ3S.js} +432 -446
  161. package/lib/useQuery-ht7aWJ3S.js.map +1 -0
  162. package/lib/useSuspenseQuery-DQH4Bmc2.js +18 -0
  163. package/lib/useSuspenseQuery-DQH4Bmc2.js.map +1 -0
  164. package/lib/zudoku.__internal.js +1504 -1041
  165. package/lib/zudoku.__internal.js.map +1 -1
  166. package/lib/zudoku.auth-auth0.js +6 -5
  167. package/lib/zudoku.auth-auth0.js.map +1 -1
  168. package/lib/zudoku.auth-azureb2c.js +14 -13
  169. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  170. package/lib/zudoku.auth-clerk.js +2 -2
  171. package/lib/zudoku.auth-firebase.js +5 -5
  172. package/lib/zudoku.auth-openid.js +8 -7
  173. package/lib/zudoku.auth-openid.js.map +1 -1
  174. package/lib/zudoku.auth-supabase.js +4 -4
  175. package/lib/zudoku.components.js +31 -29
  176. package/lib/zudoku.components.js.map +1 -1
  177. package/lib/zudoku.hooks.js +24 -11
  178. package/lib/zudoku.hooks.js.map +1 -1
  179. package/lib/zudoku.mermaid.js +5 -4
  180. package/lib/zudoku.mermaid.js.map +1 -1
  181. package/lib/zudoku.plugin-api-catalog.js +41 -36
  182. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  183. package/lib/zudoku.plugin-api-keys.js +156 -153
  184. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  185. package/lib/zudoku.plugin-custom-pages.js +1 -1
  186. package/lib/zudoku.plugin-markdown.js +1 -1
  187. package/lib/zudoku.plugin-openapi.js +2 -2
  188. package/lib/zudoku.plugin-search-pagefind.js +19 -18
  189. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  190. package/lib/zudoku.react-query.js +26 -25
  191. package/lib/zudoku.react-query.js.map +1 -1
  192. package/package.json +5 -4
  193. package/src/app/defaultTheme.css +4 -0
  194. package/src/app/main.css +2 -0
  195. package/src/lib/components/MobileTopNavigation.tsx +13 -8
  196. package/src/lib/components/TopNavigation.tsx +25 -7
  197. package/src/lib/components/context/ZudokuContext.ts +1 -0
  198. package/src/lib/components/index.ts +19 -39
  199. package/src/lib/components/navigation/Navigation.tsx +4 -3
  200. package/src/lib/components/navigation/NavigationCategory.tsx +9 -0
  201. package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -0
  202. package/src/lib/components/navigation/NavigationFilterInput.tsx +35 -0
  203. package/src/lib/components/navigation/NavigationItem.tsx +17 -1
  204. package/src/lib/components/navigation/utils.ts +32 -1
  205. package/src/lib/core/transform-config.ts +5 -5
  206. package/src/lib/hooks/index.ts +7 -16
  207. package/src/lib/oas/graphql/circular.test.ts +37 -2
  208. package/src/lib/oas/graphql/circular.ts +25 -51
  209. package/src/lib/oas/parser/index.ts +17 -6
  210. package/src/lib/plugins/openapi/playground/fileUtils.ts +4 -0
  211. package/src/lib/plugins/openapi/playground/result-panel/AudioPlayer.tsx +50 -0
  212. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +33 -17
  213. package/src/lib/ui/Alert.tsx +17 -5
  214. package/src/lib/ui/InputGroup.tsx +168 -0
  215. package/src/lib/util/flattenAllOf.test.ts +2 -1
  216. package/src/lib/util/flattenAllOf.ts +0 -57
  217. package/src/lib/util/flattenAllOfProcessor.ts +58 -0
  218. package/src/lib/util/readFrontmatter.ts +2 -1
  219. package/src/zuplo/enrich-with-zuplo-mcp.ts +168 -0
  220. package/src/zuplo/enrich-with-zuplo.ts +254 -0
  221. package/src/zuplo/policy-types.ts +46 -0
  222. package/src/zuplo/with-zuplo-processors.ts +35 -0
  223. package/src/zuplo/with-zuplo.ts +14 -0
  224. package/lib/Mermaid-DEztDKFw.js +0 -102
  225. package/lib/Mermaid-DEztDKFw.js.map +0 -1
  226. package/lib/OperationList-DR0APPhk.js.map +0 -1
  227. package/lib/Separator-BXt1LYnm.js +0 -27
  228. package/lib/Separator-BXt1LYnm.js.map +0 -1
  229. package/lib/ZudokuContext-CnEI8jPU.js +0 -389
  230. package/lib/ZudokuContext-CnEI8jPU.js.map +0 -1
  231. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js +0 -9
  232. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js.map +0 -1
  233. package/lib/createServer-Dl4Xwsm4.js +0 -16693
  234. package/lib/createServer-Dl4Xwsm4.js.map +0 -1
  235. package/lib/firebase-BVAmGV_v.js.map +0 -1
  236. package/lib/index-Ba6RP577.js +0 -133
  237. package/lib/index-Ba6RP577.js.map +0 -1
  238. package/lib/index-BfTLawvZ.js.map +0 -1
  239. package/lib/index-DYfX9H7i.js.map +0 -1
  240. package/lib/index.esm-GMDd_9gw.js.map +0 -1
  241. package/lib/useSuspenseQuery-CSB_rVek.js.map +0 -1
@@ -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,QAAQ,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EACL,UAAU,IAAI,iBAAiB,EAC/B,QAAQ,IAAI,cAAc,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;AACzC,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,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;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC;AACzD,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAE3D,qDAAqD;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC,sBAAsB,CAAC;AACrE,qDAAqD;AACrD,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,qDAAqD;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,qDAAqD;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC;AACrD,qDAAqD;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC1D,qDAAqD;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,EAAE;AAEF,qDAAqD;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,qDAAqD;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,qDAAqD;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,qDAAqD;AACrD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClD,qDAAqD;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,12 +1,13 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
3
3
  import { DrawerContent, DrawerTitle } from "../../ui/Drawer.js";
4
4
  import { Slot } from "../Slot.js";
5
+ import { NavigationFilterProvider } from "./NavigationFilterContext.js";
5
6
  import { NavigationItem } from "./NavigationItem.js";
6
7
  import { NavigationWrapper } from "./NavigationWrapper.js";
7
- export const Navigation = ({ onRequestClose, navigation, }) => (_jsxs(_Fragment, { children: [_jsxs(NavigationWrapper, { children: [_jsx(Slot.Target, { name: "navigation-before" }), navigation.map((item) => (_jsx(NavigationItem, { item: item }, item.type +
8
+ export const Navigation = ({ onRequestClose, navigation, }) => (_jsxs(NavigationFilterProvider, { children: [_jsxs(NavigationWrapper, { children: [_jsx(Slot.Target, { name: "navigation-before" }), navigation.map((item) => (_jsx(NavigationItem, { item: item }, item.type +
8
9
  (item.label ?? "") +
9
10
  ("path" in item ? item.path : "") +
10
11
  ("file" in item ? item.file : "") +
11
- ("to" in item ? item.to : "")))), _jsx(Slot.Target, { name: "navigation-after" })] }), _jsx(DrawerContent, { className: "lg:hidden h-[100dvh] start-0 w-[320px] rounded-none", "aria-describedby": undefined, children: _jsxs("div", { className: "p-4 overflow-y-auto overscroll-none", children: [_jsx(VisuallyHidden, { children: _jsx(DrawerTitle, { children: "Navigation" }) }), navigation.map((item) => (_jsx(NavigationItem, { item: item, onRequestClose: onRequestClose }, item.label)))] }) })] }));
12
+ ("to" in item ? item.to : "")))), _jsx(Slot.Target, { name: "navigation-after" })] }), _jsx(DrawerContent, { className: "lg:hidden h-dvh start-0 w-[320px] rounded-none", "aria-describedby": undefined, children: _jsxs("div", { className: "p-4 overflow-y-auto overscroll-none", children: [_jsx(VisuallyHidden, { children: _jsx(DrawerTitle, { children: "Navigation" }) }), navigation.map((item) => (_jsx(NavigationItem, { item: item, onRequestClose: onRequestClose }, item.label)))] }) })] }));
12
13
  //# sourceMappingURL=Navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/Navigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,cAAc,EACd,UAAU,GAIX,EAAE,EAAE,CAAC,CACJ,8BACE,MAAC,iBAAiB,eAChB,KAAC,IAAI,CAAC,MAAM,IAAC,IAAI,EAAC,mBAAmB,GAAG,EACvC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,KAAC,cAAc,IAQb,IAAI,EAAE,IAAI,IANR,IAAI,CAAC,IAAI;oBACT,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAClB,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAG/B,CACH,CAAC,EACF,KAAC,IAAI,CAAC,MAAM,IAAC,IAAI,EAAC,kBAAkB,GAAG,IACrB,EACpB,KAAC,aAAa,IACZ,SAAS,EAAC,qDAAqD,sBAC7C,SAAS,YAE3B,eAAK,SAAS,EAAC,qCAAqC,aAClD,KAAC,cAAc,cACb,KAAC,WAAW,6BAAyB,GACtB,EAChB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,KAAC,cAAc,IAEb,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,IAFzB,IAAI,CAAC,KAAK,CAGf,CACH,CAAC,IACE,GACQ,IACf,CACJ,CAAC"}
1
+ {"version":3,"file":"Navigation.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/Navigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,cAAc,EACd,UAAU,GAIX,EAAE,EAAE,CAAC,CACJ,MAAC,wBAAwB,eACvB,MAAC,iBAAiB,eAChB,KAAC,IAAI,CAAC,MAAM,IAAC,IAAI,EAAC,mBAAmB,GAAG,EACvC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,KAAC,cAAc,IAQb,IAAI,EAAE,IAAI,IANR,IAAI,CAAC,IAAI;oBACT,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAClB,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAG/B,CACH,CAAC,EACF,KAAC,IAAI,CAAC,MAAM,IAAC,IAAI,EAAC,kBAAkB,GAAG,IACrB,EACpB,KAAC,aAAa,IACZ,SAAS,EAAC,gDAAgD,sBACxC,SAAS,YAE3B,eAAK,SAAS,EAAC,qCAAqC,aAClD,KAAC,cAAc,cACb,KAAC,WAAW,6BAAyB,GACtB,EAChB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,KAAC,cAAc,IAEb,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,IAFzB,IAAI,CAAC,KAAK,CAGf,CACH,CAAC,IACE,GACQ,IACS,CAC5B,CAAC"}
@@ -7,12 +7,14 @@ import { NavLink, useLocation, useMatch } from "react-router";
7
7
  import { Button } from "zudoku/ui/Button.js";
8
8
  import { cn } from "../../util/cn.js";
9
9
  import { joinUrl } from "../../util/joinUrl.js";
10
+ import { useNavigationFilter } from "./NavigationFilterContext.js";
10
11
  import { NavigationItem } from "./NavigationItem.js";
11
12
  import { navigationListItem, useIsCategoryOpen } from "./utils.js";
12
13
  const NavigationCategoryInner = ({ category, onRequestClose, }) => {
13
14
  const isCategoryOpen = useIsCategoryOpen(category);
14
15
  const [hasInteracted, setHasInteracted] = useState(false);
15
16
  const location = useLocation();
17
+ const { query: filterQuery } = useNavigationFilter();
16
18
  const isCollapsible = category.collapsible ?? true;
17
19
  const isCollapsed = category.collapsed ?? true;
18
20
  const isDefaultOpen = Boolean(!isCollapsible || !isCollapsed || isCategoryOpen);
@@ -25,6 +27,12 @@ const NavigationCategoryInner = ({ category, onRequestClose, }) => {
25
27
  setOpen(true);
26
28
  }
27
29
  }, [isCategoryOpen]);
30
+ // Auto-expand when there's an active filter query
31
+ useEffect(() => {
32
+ if (filterQuery.trim()) {
33
+ setOpen(true);
34
+ }
35
+ }, [filterQuery]);
28
36
  const ToggleButton = isCollapsible && (_jsx(Button, { onClick: (e) => {
29
37
  e.preventDefault();
30
38
  setOpen((prev) => !prev);
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationCategory.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/NavigationCategory.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NavigationCategory.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/NavigationCategory.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type PropsWithChildren } from "react";
2
+ type NavigationFilterContextType = {
3
+ query: string;
4
+ setQuery: (query: string) => void;
5
+ };
6
+ export declare const NavigationFilterProvider: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const useNavigationFilter: () => NavigationFilterContextType;
8
+ export {};
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useState, } from "react";
3
+ const NavigationFilterContext = createContext({
4
+ query: "",
5
+ setQuery: () => { },
6
+ });
7
+ export const NavigationFilterProvider = ({ children }) => {
8
+ const [query, setQuery] = useState("");
9
+ return (_jsx(NavigationFilterContext.Provider, { value: { query, setQuery }, children: children }));
10
+ };
11
+ export const useNavigationFilter = () => useContext(NavigationFilterContext);
12
+ //# sourceMappingURL=NavigationFilterContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationFilterContext.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/NavigationFilterContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EAEb,UAAU,EACV,QAAQ,GACT,MAAM,OAAO,CAAC;AAOf,MAAM,uBAAuB,GAAG,aAAa,CAA8B;IACzE,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EAAE,QAAQ,EAAqB,EAAE,EAAE;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YACzD,QAAQ,GACwB,CACpC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const NavigationFilterInput: ({ placeholder, }: {
2
+ placeholder?: string;
3
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { SearchIcon, XIcon } from "lucide-react";
3
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, } from "zudoku/ui/InputGroup.js";
4
+ import { useNavigationFilter } from "./NavigationFilterContext.js";
5
+ export const NavigationFilterInput = ({ placeholder, }) => {
6
+ const { query, setQuery } = useNavigationFilter();
7
+ return (_jsxs(InputGroup, { className: "my-2", children: [_jsx(InputGroupAddon, { children: _jsx(SearchIcon, { className: "size-3.5" }) }), _jsx(InputGroupInput, { type: "text", placeholder: placeholder, value: query, onChange: (e) => setQuery(e.target.value) }), query && (_jsx(InputGroupButton, { onClick: () => setQuery(""), children: _jsx(XIcon, { className: "size-3" }) }))] }));
8
+ };
9
+ //# sourceMappingURL=NavigationFilterInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationFilterInput.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/NavigationFilterInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,WAAW,GAGZ,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAElD,OAAO,CACL,MAAC,UAAU,IAAC,SAAS,EAAC,MAAM,aAC1B,KAAC,eAAe,cACd,KAAC,UAAU,IAAC,SAAS,EAAC,UAAU,GAAG,GACnB,EAClB,KAAC,eAAe,IACd,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACzC,EACD,KAAK,IAAI,CACR,KAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,YAC3C,KAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,GAAG,GACX,CACpB,IACU,CACd,CAAC;AACJ,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { ExternalLinkIcon } from "lucide-react";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { NavLink, useLocation } from "react-router";
5
+ import { Separator } from "zudoku/ui/Separator.js";
5
6
  import { Tooltip, TooltipContent, TooltipTrigger } from "zudoku/ui/Tooltip.js";
6
7
  import { useAuth } from "../../authentication/hook.js";
7
8
  import { cn } from "../../util/cn.js";
@@ -11,6 +12,8 @@ import { useViewportAnchor } from "../context/ViewportAnchorContext.js";
11
12
  import { useZudoku } from "../context/ZudokuContext.js";
12
13
  import { NavigationBadge } from "./NavigationBadge.js";
13
14
  import { NavigationCategory } from "./NavigationCategory.js";
15
+ import { useNavigationFilter } from "./NavigationFilterContext.js";
16
+ import { NavigationFilterInput } from "./NavigationFilterInput.js";
14
17
  import { navigationListItem, shouldShowItem } from "./utils.js";
15
18
  const TruncatedLabel = ({ label, className, }) => {
16
19
  const ref = useRef(null);
@@ -30,12 +33,19 @@ export const NavigationItem = ({ item, onRequestClose, }) => {
30
33
  const { activeAnchor } = useViewportAnchor();
31
34
  const auth = useAuth();
32
35
  const context = useZudoku();
33
- if (!shouldShowItem(auth, context)(item)) {
36
+ const { query } = useNavigationFilter();
37
+ if (!shouldShowItem(auth, context, query)(item)) {
34
38
  return null;
35
39
  }
36
40
  switch (item.type) {
37
41
  case "category":
38
42
  return (_jsx(NavigationCategory, { category: item, onRequestClose: onRequestClose }));
43
+ case "separator":
44
+ return (_jsx(Separator, { className: "my-1 mx-auto w-[calc(100%-var(--padding-nav-item)*2)]!" }));
45
+ case "section":
46
+ return (_jsx("div", { className: "mt-4 px-(--padding-nav-item) text-xs font-semibold text-muted-foreground uppercase tracking-wider", children: item.label }));
47
+ case "filter":
48
+ return _jsx(NavigationFilterInput, { placeholder: item.placeholder });
39
49
  case "doc":
40
50
  return (_jsxs(NavLink, { viewTransition: true, className: ({ isActive, isPending }) => navigationListItem({ isActive, isPending }), to: joinUrl(item.path), onClick: onRequestClose, end: true, children: [item.icon && (_jsx(item.icon, { size: 16, className: "align-[-0.125em] shrink-0" })), item.badge ? (_jsxs(_Fragment, { children: [item.label && (_jsx(TruncatedLabel, { label: item.label, className: "flex-1" })), _jsx(NavigationBadge, { ...item.badge })] })) : (item.label)] }));
41
51
  case "link":
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationItem.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/NavigationItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NavigationItem.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/NavigationItem.tsx"],"names":[],"mappings":"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"}
@@ -21,4 +21,5 @@ export declare const navigationListItem: (props?: ({
21
21
  isMuted?: boolean | null | undefined;
22
22
  isPending?: boolean | null | undefined;
23
23
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
24
- export declare const shouldShowItem: (auth: UseAuthReturn, context: ZudokuContext) => (item: NavigationItem) => boolean;
24
+ export declare const itemMatchesFilter: (item: NavigationItem, query: string) => boolean;
25
+ export declare const shouldShowItem: (auth: UseAuthReturn, context: ZudokuContext, filterQuery?: string) => (item: NavigationItem) => boolean;
@@ -57,6 +57,10 @@ export const usePrevNext = () => {
57
57
  let next;
58
58
  let foundCurrent = false;
59
59
  traverseNavigation(navigation, (item) => {
60
+ if (item.type === "separator" ||
61
+ item.type === "section" ||
62
+ item.type === "filter")
63
+ return;
60
64
  const itemId = item.type === "doc"
61
65
  ? joinUrl(item.path)
62
66
  : item.type === "category" && item.link
@@ -96,7 +100,24 @@ export const navigationListItem = cva("relative flex items-center gap-2 px-(--pa
96
100
  isActive: false,
97
101
  },
98
102
  });
99
- export const shouldShowItem = (auth, context) => (item) => {
103
+ export const itemMatchesFilter = (item, query) => {
104
+ if (["separator", "section", "filter"].includes(item.type)) {
105
+ return true;
106
+ }
107
+ if (item.label?.toLowerCase().includes(query.toLowerCase())) {
108
+ return true;
109
+ }
110
+ if (item.type === "category") {
111
+ return item.items.some((child) => itemMatchesFilter(child, query));
112
+ }
113
+ return false;
114
+ };
115
+ export const shouldShowItem = (auth, context, filterQuery) => (item) => {
116
+ if (item.type === "filter")
117
+ return true;
118
+ if (filterQuery?.trim() && !itemMatchesFilter(item, filterQuery)) {
119
+ return false;
120
+ }
100
121
  if (typeof item.display === "function") {
101
122
  return item.display({ context, auth });
102
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/utils.ts"],"names":[],"mappings":"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"}
@@ -35,4 +35,4 @@ export declare const BuildCheck: ({ buildId, environmentType, endpoint, }: {
35
35
  endpoint?: string;
36
36
  }) => import("react/jsx-runtime").JSX.Element | null;
37
37
  export declare const Meta: ({ children }: import("react").PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
38
- export declare const runPluginTransformConfig: (config: import("../../config/loader.js").ConfigWithMeta) => Promise<import("../../config/loader.js").ConfigWithMeta>;
38
+ export declare const runPluginTransformConfig: <T extends import("../../index.js").ZudokuConfig>(config: T) => Promise<T>;
@@ -1,4 +1,4 @@
1
- import type { ConfigWithMeta } from "../../config/loader.js";
1
+ import type { ZudokuConfig } from "../../config/validators/validate.js";
2
2
  export declare const isPlainObject: (value: unknown) => value is Record<string, unknown>;
3
3
  export declare const mergeConfig: <T extends Record<string, unknown>, S extends Record<string, unknown>>(target: T, source: S) => T & S;
4
- export declare const runPluginTransformConfig: (config: ConfigWithMeta) => Promise<ConfigWithMeta>;
4
+ export declare const runPluginTransformConfig: <T extends ZudokuConfig>(config: T) => Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"transform-config.js","sourceRoot":"","sources":["../../../src/lib/core/transform-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAc,EACoB,EAAE,CACpC,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IACrB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAIzB,MAAS,EACT,MAAS,EACF,EAAE;IACT,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAW,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAgB,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAc,CAAC,CAAC;QAE3C,0EAA0E;QAC1E,IACE,cAAc,CAAC,WAAW,CAAC;YAC3B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC1B,CAAC,aAAa,CAAC,WAAW,CAAC,EAC3B,CAAC;YACA,MAAkC,CAAC,GAAa,CAAC,GAAG,WAAW,CAAC;QACnE,CAAC;aAAM,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAkC,CAAC,GAAa,CAAC,GAAG,WAAW,CAC9D,WAAW,EACX,WAAW,CACZ,CAAC;QACJ,CAAC;aAAM,CAAC;YACL,MAAkC,CAAC,GAAa,CAAC,GAAG,WAAW,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,MAAsB,EACG,EAAE;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAErC,IAAI,MAAM,GAAG,MAAM,CAAC;IAEpB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,CAAoC,OAAU,EAAE,EAAE,CAC9D,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,EAAE,MAAM;YACd,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,GAAG,WAA6B,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"transform-config.js","sourceRoot":"","sources":["../../../src/lib/core/transform-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAc,EACoB,EAAE,CACpC,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IACrB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAIzB,MAAS,EACT,MAAS,EACF,EAAE;IACT,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAW,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAgB,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAc,CAAC,CAAC;QAE3C,0EAA0E;QAC1E,IACE,cAAc,CAAC,WAAW,CAAC;YAC3B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC1B,CAAC,aAAa,CAAC,WAAW,CAAC,EAC3B,CAAC;YACA,MAAkC,CAAC,GAAa,CAAC,GAAG,WAAW,CAAC;QACnE,CAAC;aAAM,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAkC,CAAC,GAAa,CAAC,GAAG,WAAW,CAC9D,WAAW,EACX,WAAW,CACZ,CAAC;QACJ,CAAC;aAAM,CAAC;YACL,MAAkC,CAAC,GAAa,CAAC,GAAG,WAAW,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,MAAS,EACG,EAAE;IACd,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAErC,IAAI,MAAM,GAAG,MAAM,CAAC;IAEpB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,CAAoC,OAAU,EAAE,EAAE,CAC9D,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,EAAE,MAAM;YACd,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,GAAG,WAAgB,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1,30 +1,7 @@
1
- import { useMDXComponents as useMDXComponentsImport } from "@mdx-js/react";
2
- import { CACHE_KEYS } from "../components/cache.js";
3
- import { useEvent as useEventImport } from "./useEvent.js";
4
- export declare const useEvent: typeof useEventImport;
5
- export declare const useTheme: () => import("next-themes").UseThemeProps;
6
- export declare const useExposedProps: () => import("../util/useExposedProps.js").ExposedComponentProps;
7
- export declare const useMDXComponents: typeof useMDXComponentsImport;
8
- export declare const useAuth: () => {
9
- login: (options?: import("../authentication/authentication.js").AuthActionOptions) => Promise<void>;
10
- logout: () => Promise<void>;
11
- signup: (options?: import("../authentication/authentication.js").AuthActionOptions) => Promise<void>;
12
- supportsEmailVerification: boolean;
13
- requestEmailVerification: (options?: import("../authentication/authentication.js").AuthActionOptions) => Promise<void>;
14
- isAuthenticated: boolean;
15
- isPending: boolean;
16
- profile: import("../authentication/state.js").UserProfile | null;
17
- providerData: unknown;
18
- setAuthenticationPending: () => void;
19
- setLoggedOut: () => void;
20
- setLoggedIn: ({ profile, providerData, }: {
21
- profile: import("../authentication/state.js").UserProfile;
22
- providerData: unknown;
23
- }) => void;
24
- isAuthEnabled: boolean;
25
- };
26
- export declare const useZudoku: () => import("../core/ZudokuContext.js").ZudokuContext;
27
- export declare const useCache: () => {
28
- invalidateCache: (key: "API_IDENTITIES") => Promise<void>;
29
- };
30
- export { CACHE_KEYS };
1
+ export { useMDXComponents } from "@mdx-js/react";
2
+ export { useTheme } from "next-themes";
3
+ export { useAuth } from "../authentication/hook.js";
4
+ export { CACHE_KEYS, useCache } from "../components/cache.js";
5
+ export { useZudoku } from "../components/context/ZudokuContext.js";
6
+ export { useExposedProps } from "../util/useExposedProps.js";
7
+ export { useEvent } from "./useEvent.js";
@@ -1,16 +1,8 @@
1
- import { useMDXComponents as useMDXComponentsImport } from "@mdx-js/react";
2
- import { useTheme as useThemeImport } from "next-themes";
3
- import { useAuth as useAuthImport } from "../authentication/hook.js";
4
- import { CACHE_KEYS, useCache as useCacheImport } from "../components/cache.js";
5
- import { useZudoku as useZudokuImport } from "../components/context/ZudokuContext.js";
6
- import { useExposedProps as useExposedPropsImport } from "../util/useExposedProps.js";
7
- import { useEvent as useEventImport } from "./useEvent.js";
8
- export const useEvent = /*@__PURE__*/ useEventImport;
9
- export const useTheme = /*@__PURE__*/ useThemeImport;
10
- export const useExposedProps = /*@__PURE__*/ useExposedPropsImport;
11
- export const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;
12
- export const useAuth = /*@__PURE__*/ useAuthImport;
13
- export const useZudoku = /*@__PURE__*/ useZudokuImport;
14
- export const useCache = /*@__PURE__*/ useCacheImport;
15
- export { CACHE_KEYS };
1
+ export { useMDXComponents } from "@mdx-js/react";
2
+ export { useTheme } from "next-themes";
3
+ export { useAuth } from "../authentication/hook.js";
4
+ export { CACHE_KEYS, useCache } from "../components/cache.js";
5
+ export { useZudoku } from "../components/context/ZudokuContext.js";
6
+ export { useExposedProps } from "../util/useExposedProps.js";
7
+ export { useEvent } from "./useEvent.js";
16
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,qBAAqB,CAAC;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { GraphQLScalarType } from "graphql/index.js";
2
2
  export declare const CIRCULAR_REF = "$[Circular Reference]";
3
3
  export declare const SCHEMA_REF_PREFIX = "$ref:";
4
- export declare const handleCircularRefs: (obj: any, visited?: WeakSet<WeakKey>, refs?: WeakMap<WeakKey, any>, path?: string[], seenRefPaths?: Set<string>) => any;
4
+ export declare const handleCircularRefs: (obj: any, currentPath?: WeakSet<WeakKey>, refs?: WeakMap<WeakKey, any>, path?: string[], currentRefPaths?: Set<string>) => any;
5
5
  export declare const GraphQLJSONSchema: GraphQLScalarType<unknown, unknown>;
@@ -12,48 +12,31 @@ const OPENAPI_PROPS = new Set([
12
12
  ]);
13
13
  export const handleCircularRefs = (
14
14
  // biome-ignore lint/suspicious/noExplicitAny: Allow any type
15
- obj, visited = new WeakSet(), refs = new WeakMap(), path = [], seenRefPaths = new Set()) => {
15
+ obj, currentPath = new WeakSet(), refs = new WeakMap(), path = [], currentRefPaths = new Set()) => {
16
16
  if (obj === null || typeof obj !== "object")
17
17
  return obj;
18
18
  const refPath = obj.__$ref;
19
- // Check if this object has a __$ref marker (set during schema code generation)
20
- // If we've already fully processed this ref path, return a reference marker
21
- // instead of the full data to avoid JSON.stringify serializing duplicates
22
- if (typeof refPath === "string" && seenRefPaths.has(refPath)) {
23
- return SCHEMA_REF_PREFIX + refPath;
24
- }
25
- if (visited.has(obj)) {
26
- const cached = refs.get(obj);
27
- if (cached) {
28
- return typeof refPath === "string"
29
- ? // If already processed, return ref marker to avoid duplicate serialization
30
- SCHEMA_REF_PREFIX + refPath
31
- : cached;
32
- }
19
+ const isCircular = currentPath.has(obj) ||
20
+ (typeof refPath === "string" && currentRefPaths.has(refPath));
21
+ if (isCircular) {
22
+ if (typeof refPath === "string")
23
+ return SCHEMA_REF_PREFIX + refPath;
33
24
  const circularProp = path.find((p) => !OPENAPI_PROPS.has(p)) || path[0];
34
25
  return [CIRCULAR_REF, circularProp].filter(Boolean).join(":");
35
26
  }
36
- visited.add(obj);
37
- // Add refPath BEFORE recursing to detect cycles within this branch
38
- // This will be removed after processing to allow siblings with the same ref
39
- if (typeof refPath === "string") {
40
- seenRefPaths.add(refPath);
41
- }
42
- let result;
43
- if (Array.isArray(obj)) {
44
- result = obj.map((item, index) => handleCircularRefs(item, visited, refs, [...path, index.toString()], seenRefPaths));
45
- }
46
- else {
47
- result = {};
48
- for (const [key, value] of Object.entries(obj)) {
49
- result[key] = handleCircularRefs(value, visited, refs, [...path, key], seenRefPaths);
50
- }
51
- }
27
+ if (refs.has(obj))
28
+ return refs.get(obj);
29
+ currentPath.add(obj);
30
+ if (typeof refPath === "string")
31
+ currentRefPaths.add(refPath);
32
+ const recurse = (value, key) => handleCircularRefs(value, currentPath, refs, [...path, key], currentRefPaths);
33
+ const result = Array.isArray(obj)
34
+ ? obj.map((item, i) => recurse(item, i.toString()))
35
+ : Object.fromEntries(Object.entries(obj).map(([k, v]) => [k, recurse(v, k)]));
52
36
  refs.set(obj, result);
53
- // Remove refPath after processing so sibling refs aren't incorrectly marked
54
- if (typeof refPath === "string") {
55
- seenRefPaths.delete(refPath);
56
- }
37
+ currentPath.delete(obj);
38
+ if (typeof refPath === "string")
39
+ currentRefPaths.delete(refPath);
57
40
  return result;
58
41
  };
59
42
  export const GraphQLJSONSchema = new GraphQLScalarType({
@@ -1 +1 @@
1
- {"version":3,"file":"circular.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"circular.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.ts"],"names":[],"mappings":"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"}
@@ -125,15 +125,19 @@ describe("handleCircularRefs", () => {
125
125
  type: "object",
126
126
  });
127
127
  });
128
- it("should deduplicate shared object instances with __$ref", () => {
128
+ it("should handle shared object instances with __$ref without marking circular", () => {
129
129
  const shared = { __$ref: "#/components/schemas/Foo", type: "string" };
130
130
  const obj = { a: shared, b: shared };
131
131
  const result = handleCircularRefs(obj);
132
+ // Both should return the cached result, not mark as circular
132
133
  expect(result.a).toEqual({
133
134
  __$ref: "#/components/schemas/Foo",
134
135
  type: "string",
135
136
  });
136
- expect(result.b).toBe(`${SCHEMA_REF_PREFIX}#/components/schemas/Foo`);
137
+ expect(result.b).toEqual({
138
+ __$ref: "#/components/schemas/Foo",
139
+ type: "string",
140
+ });
137
141
  });
138
142
  it("should mark circular ref with property name from path", () => {
139
143
  const parent = {
@@ -148,5 +152,32 @@ describe("handleCircularRefs", () => {
148
152
  const result = handleCircularRefs(parent);
149
153
  expect(result.properties.child.properties.back).toContain(CIRCULAR_REF);
150
154
  });
155
+ // Exact reproduction of #1869 - shared object instances with __$ref
156
+ it("should NOT mark shared object instances with __$ref as circular (issue #1869)", () => {
157
+ // When dereferencing, the SAME object instance is returned for all refs to the same schema
158
+ const timestampSchema = {
159
+ __$ref: "#/components/schemas/timestamp",
160
+ type: "string",
161
+ format: "date-time",
162
+ };
163
+ // Both created_at and updated_at point to the SAME object instance
164
+ const obj = {
165
+ type: "object",
166
+ properties: {
167
+ created_at: timestampSchema,
168
+ updated_at: timestampSchema,
169
+ },
170
+ };
171
+ const result = handleCircularRefs(obj);
172
+ // The first one should be fully expanded
173
+ expect(result.properties.created_at).toEqual({
174
+ __$ref: "#/components/schemas/timestamp",
175
+ type: "string",
176
+ format: "date-time",
177
+ });
178
+ // The second one should ALSO be fully expanded (not marked as circular)
179
+ expect(typeof result.properties.updated_at).toBe("object");
180
+ expect(result.properties.updated_at).not.toContain(CIRCULAR_REF);
181
+ });
151
182
  });
152
183
  //# sourceMappingURL=circular.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"circular.test.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"circular.test.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,GAAG,GAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACxD,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAEf,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,2BAA2B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG;YACV,MAAM,EAAE,2BAA2B;YACnC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,KAAK;aACb;SACF,CAAC;QACD,KAAiC,CAAC,UAAU,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAEhE,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAClC,GAAG,iBAAiB,2BAA2B,CAChD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,gBAAgB,GAAG;YACvB,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,MAAM,gBAAgB,GAAG;YACvB,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC;QAEF,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE,gBAAgB;gBAC5B,UAAU,EAAE,gBAAgB;aAC7B;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC3C,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC3C,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,EAAE,EAAE,EAAE,MAAM,EAAE,iCAAiC,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACjE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACzB;iBACF;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,EAAE,EAAE,EAAE,MAAM,EAAE,iCAAiC,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACjE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC1B;iBACF;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CACnD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAC3C,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CACnD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;SAC3D,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACvC,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACvC,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,2BAA2B,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvD,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;aAC9D;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9B,MAAM,EAAE,2BAA2B;YACnC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,0BAA0B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,6DAA6D;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,0BAA0B;YAClC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,0BAA0B;YAClC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,MAAM,GAA4B;YACtC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAA6B;SAC1C,CAAC;QACF,MAAM,KAAK,GAA4B;YACrC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC7B,CAAC;QACD,MAAM,CAAC,UAAsC,CAAC,KAAK,GAAG,KAAK,CAAC;QAE7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE1C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,oEAAoE;IACpE,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,2FAA2F;QAC3F,MAAM,eAAe,GAAG;YACtB,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC;QAEF,mEAAmE;QACnE,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE,eAAe;gBAC3B,UAAU,EAAE,eAAe;aAC5B;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,yCAAyC;QACzC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC3C,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QACH,wEAAwE;QACxE,MAAM,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { GraphQLError } from "graphql/error/index.js";
2
2
  import { OpenAPIV3 } from "openapi-types";
3
- import { flattenAllOfProcessor } from "../../util/flattenAllOf.js";
3
+ import { flattenAllOf } from "../../util/flattenAllOf.js";
4
+ import { traverse } from "../../util/traverse.js";
4
5
  import { dereference } from "./dereference/index.js";
5
6
  import { upgradeSchema } from "./upgrade/index.js";
6
7
  export const HttpMethods = Object.values(OpenAPIV3.HttpMethods);
@@ -69,10 +70,18 @@ export const validate = async (schemaInput) => {
69
70
  }
70
71
  const dereferenced = await dereference(schema);
71
72
  const upgraded = upgradeSchema(dereferenced);
72
- const flattened = await flattenAllOfProcessor({
73
- schema: upgraded,
74
- file: "schema.json",
75
- dereference: async (schema) => schema,
73
+ const flattened = traverse(upgraded, (spec) => {
74
+ if (!spec || typeof spec !== "object" || Array.isArray(spec)) {
75
+ return spec;
76
+ }
77
+ const isSchemaObject = "type" in spec ||
78
+ "properties" in spec ||
79
+ "allOf" in spec ||
80
+ "anyOf" in spec ||
81
+ "oneOf" in spec;
82
+ if (!isSchemaObject)
83
+ return spec;
84
+ return flattenAllOf(spec);
76
85
  });
77
86
  return flattened;
78
87
  };