zudoku 0.22.0 → 0.23.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 (335) hide show
  1. package/dist/app/demo.js +1 -1
  2. package/dist/app/demo.js.map +1 -1
  3. package/dist/app/entry.client.js +1 -15
  4. package/dist/app/entry.client.js.map +1 -1
  5. package/dist/app/entry.server.js +1 -2
  6. package/dist/app/entry.server.js.map +1 -1
  7. package/dist/app/main.d.ts +1 -1
  8. package/dist/app/sentry.js +1 -1
  9. package/dist/app/sentry.js.map +1 -1
  10. package/dist/app/standalone.js +1 -1
  11. package/dist/app/standalone.js.map +1 -1
  12. package/dist/cli/cmds/build.js +1 -0
  13. package/dist/cli/cmds/build.js.map +1 -1
  14. package/dist/config/validators/common.d.ts +104 -104
  15. package/dist/config/validators/icon-types.d.ts +1 -1
  16. package/dist/config/validators/validate.d.ts +90 -90
  17. package/dist/lib/authentication/components/CallbackHandler.js +1 -1
  18. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  19. package/dist/lib/authentication/components/SignIn.js +1 -1
  20. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  21. package/dist/lib/authentication/components/SignOut.js +1 -1
  22. package/dist/lib/authentication/components/SignOut.js.map +1 -1
  23. package/dist/lib/components/AnchorLink.d.ts +1 -1
  24. package/dist/lib/components/AnchorLink.js +1 -1
  25. package/dist/lib/components/AnchorLink.js.map +1 -1
  26. package/dist/lib/components/Bootstrap.d.ts +1 -2
  27. package/dist/lib/components/Bootstrap.js +3 -3
  28. package/dist/lib/components/Bootstrap.js.map +1 -1
  29. package/dist/lib/components/Header.js +1 -1
  30. package/dist/lib/components/Header.js.map +1 -1
  31. package/dist/lib/components/Layout.js +1 -1
  32. package/dist/lib/components/Layout.js.map +1 -1
  33. package/dist/lib/components/NotFoundPage.js +1 -1
  34. package/dist/lib/components/NotFoundPage.js.map +1 -1
  35. package/dist/lib/components/SlotletProvider.d.ts +2 -2
  36. package/dist/lib/components/TopNavigation.js +1 -1
  37. package/dist/lib/components/TopNavigation.js.map +1 -1
  38. package/dist/lib/components/Zudoku.js +1 -1
  39. package/dist/lib/components/Zudoku.js.map +1 -1
  40. package/dist/lib/components/context/ZudokuContext.js +1 -1
  41. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  42. package/dist/lib/components/index.d.ts +4 -4
  43. package/dist/lib/components/index.js +1 -1
  44. package/dist/lib/components/index.js.map +1 -1
  45. package/dist/lib/components/navigation/SidebarCategory.js +1 -1
  46. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  47. package/dist/lib/components/navigation/SidebarItem.js +1 -1
  48. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  49. package/dist/lib/components/navigation/utils.js +1 -1
  50. package/dist/lib/components/navigation/utils.js.map +1 -1
  51. package/dist/lib/core/plugins.d.ts +3 -5
  52. package/dist/lib/core/plugins.js.map +1 -1
  53. package/dist/lib/errors/RouterError.js +1 -1
  54. package/dist/lib/errors/RouterError.js.map +1 -1
  55. package/dist/lib/plugins/api-keys/CreateApiKey.js +1 -1
  56. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  57. package/dist/lib/plugins/api-keys/ProtectedRoute.js +1 -1
  58. package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
  59. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +1 -1
  60. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  61. package/dist/lib/plugins/markdown/MdxPage.js +1 -1
  62. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  63. package/dist/lib/plugins/markdown/index.d.ts +1 -0
  64. package/dist/lib/plugins/markdown/index.js.map +1 -1
  65. package/dist/lib/plugins/openapi/Route.js +1 -1
  66. package/dist/lib/plugins/openapi/Route.js.map +1 -1
  67. package/dist/lib/plugins/openapi/Sidecar.js +1 -1
  68. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  69. package/dist/lib/plugins/openapi/index.js +1 -1
  70. package/dist/lib/plugins/openapi/index.js.map +1 -1
  71. package/dist/lib/plugins/redirect/index.js +1 -1
  72. package/dist/lib/plugins/redirect/index.js.map +1 -1
  73. package/dist/lib/util/MdxComponents.d.ts +16 -16
  74. package/dist/lib/util/MdxComponents.js +1 -3
  75. package/dist/lib/util/MdxComponents.js.map +1 -1
  76. package/dist/lib/util/createVariantComponent.d.ts +2 -2
  77. package/dist/lib/util/useExposedProps.js +1 -1
  78. package/dist/lib/util/useExposedProps.js.map +1 -1
  79. package/dist/lib/util/useOnScreen.d.ts +1 -1
  80. package/dist/lib/util/useScrollToAnchor.js +1 -1
  81. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  82. package/dist/lib/util/useScrollToTop.js +1 -1
  83. package/dist/lib/util/useScrollToTop.js.map +1 -1
  84. package/dist/vite/config.js +15 -8
  85. package/dist/vite/config.js.map +1 -1
  86. package/dist/vite/css/collect.d.ts +2 -0
  87. package/dist/vite/css/collect.js +27 -0
  88. package/dist/vite/css/collect.js.map +1 -0
  89. package/dist/vite/css/plugin.d.ts +5 -0
  90. package/dist/vite/css/plugin.js +79 -0
  91. package/dist/vite/css/plugin.js.map +1 -0
  92. package/dist/vite/dev-server.js +7 -3
  93. package/dist/vite/dev-server.js.map +1 -1
  94. package/dist/vite/plugin-mdx.js +2 -0
  95. package/dist/vite/plugin-mdx.js.map +1 -1
  96. package/dist/vite/plugin.js +4 -0
  97. package/dist/vite/plugin.js.map +1 -1
  98. package/lib/{AnchorLink-BR0MvI7n.js → AnchorLink-DFZZbmvr.js} +13 -14
  99. package/lib/AnchorLink-DFZZbmvr.js.map +1 -0
  100. package/lib/{AuthenticationPlugin-D0Em0SwR.js → AuthenticationPlugin-DQy635W9.js} +15 -16
  101. package/lib/AuthenticationPlugin-DQy635W9.js.map +1 -0
  102. package/lib/{Button-jK0EsymC.js → Button-DeAoTouo.js} +4 -4
  103. package/lib/{Button-jK0EsymC.js.map → Button-DeAoTouo.js.map} +1 -1
  104. package/lib/{CategoryHeading-Bb9dqxD3.js → CategoryHeading-CBconmtI.js} +3 -3
  105. package/lib/{CategoryHeading-Bb9dqxD3.js.map → CategoryHeading-CBconmtI.js.map} +1 -1
  106. package/lib/ClientOnly-E7hGysn1.js.map +1 -1
  107. package/lib/{Dialog-k70Qfukb.js → Dialog-Bxv1yEIg.js} +3 -3
  108. package/lib/{Dialog-k70Qfukb.js.map → Dialog-Bxv1yEIg.js.map} +1 -1
  109. package/lib/{Markdown-CRsmPPfY.js → Markdown-CZDLNOFc.js} +3080 -3058
  110. package/lib/{Markdown-CRsmPPfY.js.map → Markdown-CZDLNOFc.js.map} +1 -1
  111. package/lib/{MdxPage-Wp8QU0-q.js → MdxPage-CBa4X6L5.js} +9 -9
  112. package/lib/MdxPage-CBa4X6L5.js.map +1 -0
  113. package/lib/OperationList-Bj-6EKhp.js +4889 -0
  114. package/lib/{OperationList-u8xHU9-b.js.map → OperationList-Bj-6EKhp.js.map} +1 -1
  115. package/lib/Route-C9cYcP-j.js +11 -0
  116. package/lib/Route-C9cYcP-j.js.map +1 -0
  117. package/lib/{Select-O9ZM3ZgX.js → Select-Bb_Hqc70.js} +5 -5
  118. package/lib/{Select-O9ZM3ZgX.js.map → Select-Bb_Hqc70.js.map} +1 -1
  119. package/lib/{SidebarBadge-DxFJcJ6V.js → SidebarBadge-Bm793GDY.js} +3 -3
  120. package/lib/{SidebarBadge-DxFJcJ6V.js.map → SidebarBadge-Bm793GDY.js.map} +1 -1
  121. package/lib/SlotletProvider-pfc9oejW.js +221 -0
  122. package/lib/SlotletProvider-pfc9oejW.js.map +1 -0
  123. package/lib/{Spinner-3cQDBVGr.js → Spinner-DuxJLLNE.js} +2 -2
  124. package/lib/{Spinner-3cQDBVGr.js.map → Spinner-DuxJLLNE.js.map} +1 -1
  125. package/lib/{SyntaxHighlight-C31iouiO.js → SyntaxHighlight-Bz-lOJtH.js} +8 -10
  126. package/lib/{SyntaxHighlight-C31iouiO.js.map → SyntaxHighlight-Bz-lOJtH.js.map} +1 -1
  127. package/lib/assets/{index-B_Jk_Yzp.js → index-C7jnHK4b.js} +218 -197
  128. package/lib/assets/index-C7jnHK4b.js.map +1 -0
  129. package/lib/assets/{worker-C_2va8B8.js → worker-BmEAZjUP.js} +5249 -4922
  130. package/lib/assets/worker-BmEAZjUP.js.map +1 -0
  131. package/lib/chunk-D52XG6IA-Dl7HLe6j.js +1823 -0
  132. package/lib/chunk-D52XG6IA-Dl7HLe6j.js.map +1 -0
  133. package/lib/{cn-BmFQLtkS.js → cn-qaFjX9_3.js} +2 -2
  134. package/lib/cn-qaFjX9_3.js.map +1 -0
  135. package/lib/{context-D1nXWxm7.js → context-h_UkBLvr.js} +2 -2
  136. package/lib/{context-D1nXWxm7.js.map → context-h_UkBLvr.js.map} +1 -1
  137. package/lib/{createServer-BCAHdrpE.js → createServer-BVFp6Bl3.js} +4521 -4195
  138. package/lib/createServer-BVFp6Bl3.js.map +1 -0
  139. package/lib/{hook-hEqe7fPB.js → hook-DMHiUaIV.js} +3 -3
  140. package/lib/{hook-hEqe7fPB.js.map → hook-DMHiUaIV.js.map} +1 -1
  141. package/lib/{index-CmdLGbbk.js → index-B6rTMjdI.js} +47 -47
  142. package/lib/{index-CmdLGbbk.js.map → index-B6rTMjdI.js.map} +1 -1
  143. package/lib/{index-CkwDvuPt.js → index-CBXSgjaE.js} +259 -238
  144. package/lib/index-CBXSgjaE.js.map +1 -0
  145. package/lib/index-CPNSgwSb.js +36 -0
  146. package/lib/index-CPNSgwSb.js.map +1 -0
  147. package/lib/index-LNp6rxyU.js.map +1 -1
  148. package/lib/index.esm-BSV1C092.js +692 -0
  149. package/lib/{index.esm-Bm8pj-bc.js.map → index.esm-BSV1C092.js.map} +1 -1
  150. package/lib/index.esm-BnnBRKJX.js +1214 -0
  151. package/lib/index.esm-BnnBRKJX.js.map +1 -0
  152. package/lib/invariant-Caa8-XvF.js.map +1 -1
  153. package/lib/jsx-runtime-Dx-03ztt.js +446 -0
  154. package/lib/jsx-runtime-Dx-03ztt.js.map +1 -0
  155. package/lib/object_hash-BNWPnMN9.js +787 -0
  156. package/lib/object_hash-BNWPnMN9.js.map +1 -0
  157. package/lib/post-processors/removeExtensions.js.map +1 -1
  158. package/lib/post-processors/removePaths.js.map +1 -1
  159. package/lib/post-processors/traverse.js.map +1 -1
  160. package/lib/prism-csharp.min-DUwvItt4.js +63 -0
  161. package/lib/{prism-csharp.min-Yizuc34Y.js.map → prism-csharp.min-DUwvItt4.js.map} +1 -1
  162. package/lib/prism-java.min-BtgBR4yd.js +35 -0
  163. package/lib/{prism-java.min-d5iT_mOd.js.map → prism-java.min-BtgBR4yd.js.map} +1 -1
  164. package/lib/prism-markup-BNGj0Tvm.js.map +1 -1
  165. package/lib/prism-ruby.min-DeDXCp1r.js +38 -0
  166. package/lib/{prism-ruby.min-C7LwcKyz.js.map → prism-ruby.min-DeDXCp1r.js.map} +1 -1
  167. package/lib/prism-typescript.min-CD7H2IYQ.js +34 -0
  168. package/lib/{prism-typescript.min-oSVeWCAd.js.map → prism-typescript.min-CD7H2IYQ.js.map} +1 -1
  169. package/lib/state-CFQsUZUP.js +202 -0
  170. package/lib/state-CFQsUZUP.js.map +1 -0
  171. package/lib/ui/Accordion.js +2 -2
  172. package/lib/ui/Accordion.js.map +1 -1
  173. package/lib/ui/ActionButton.js +4 -4
  174. package/lib/ui/ActionButton.js.map +1 -1
  175. package/lib/ui/Alert.js +3 -3
  176. package/lib/ui/Alert.js.map +1 -1
  177. package/lib/ui/AlertDialog.js +2 -2
  178. package/lib/ui/AlertDialog.js.map +1 -1
  179. package/lib/ui/Badge.js +3 -3
  180. package/lib/ui/Badge.js.map +1 -1
  181. package/lib/ui/Breadcrumb.js +2 -2
  182. package/lib/ui/Breadcrumb.js.map +1 -1
  183. package/lib/ui/Button.js +3 -3
  184. package/lib/ui/Button.js.map +1 -1
  185. package/lib/ui/Callout.js +2 -2
  186. package/lib/ui/Callout.js.map +1 -1
  187. package/lib/ui/Card.js +2 -2
  188. package/lib/ui/Card.js.map +1 -1
  189. package/lib/ui/Carousel.js +407 -401
  190. package/lib/ui/Carousel.js.map +1 -1
  191. package/lib/ui/Checkbox.js +2 -2
  192. package/lib/ui/Checkbox.js.map +1 -1
  193. package/lib/ui/Command.js +111 -108
  194. package/lib/ui/Command.js.map +1 -1
  195. package/lib/ui/Dialog.js +2 -2
  196. package/lib/ui/Dialog.js.map +1 -1
  197. package/lib/ui/Drawer.js +2 -2
  198. package/lib/ui/Drawer.js.map +1 -1
  199. package/lib/ui/DropdownMenu.js +2 -2
  200. package/lib/ui/DropdownMenu.js.map +1 -1
  201. package/lib/ui/Form.js +3 -3
  202. package/lib/ui/Form.js.map +1 -1
  203. package/lib/ui/HoverCard.js +2 -2
  204. package/lib/ui/Input.js +2 -2
  205. package/lib/ui/Input.js.map +1 -1
  206. package/lib/ui/Label.js +3 -3
  207. package/lib/ui/Pagination.js +2 -2
  208. package/lib/ui/Pagination.js.map +1 -1
  209. package/lib/ui/Popover.js +2 -2
  210. package/lib/ui/Popover.js.map +1 -1
  211. package/lib/ui/Progress.js +2 -2
  212. package/lib/ui/Progress.js.map +1 -1
  213. package/lib/ui/RadioGroup.js +2 -2
  214. package/lib/ui/RadioGroup.js.map +1 -1
  215. package/lib/ui/ScrollArea.js +2 -2
  216. package/lib/ui/ScrollArea.js.map +1 -1
  217. package/lib/ui/Select.js +2 -2
  218. package/lib/ui/Select.js.map +1 -1
  219. package/lib/ui/Skeleton.js +2 -2
  220. package/lib/ui/Skeleton.js.map +1 -1
  221. package/lib/ui/Slider.js +2 -2
  222. package/lib/ui/Switch.js +2 -2
  223. package/lib/ui/Switch.js.map +1 -1
  224. package/lib/ui/Tabs.js +2 -2
  225. package/lib/ui/Textarea.js +2 -2
  226. package/lib/ui/Textarea.js.map +1 -1
  227. package/lib/ui/Toggle.js +3 -3
  228. package/lib/ui/Toggle.js.map +1 -1
  229. package/lib/ui/ToggleGroup.js +2 -2
  230. package/lib/ui/ToggleGroup.js.map +1 -1
  231. package/lib/ui/Tooltip.js +2 -2
  232. package/lib/useExposedProps-DE9lR6MF.js +9 -0
  233. package/lib/useExposedProps-DE9lR6MF.js.map +1 -0
  234. package/lib/{utils-DcpDOncX.js → utils-R0j3Raw1.js} +30 -31
  235. package/lib/{utils-DcpDOncX.js.map → utils-R0j3Raw1.js.map} +1 -1
  236. package/lib/zudoku.auth-auth0.js +1 -1
  237. package/lib/zudoku.auth-auth0.js.map +1 -1
  238. package/lib/zudoku.auth-clerk.js +2 -2
  239. package/lib/zudoku.auth-clerk.js.map +1 -1
  240. package/lib/zudoku.auth-openid.js +348 -346
  241. package/lib/zudoku.auth-openid.js.map +1 -1
  242. package/lib/zudoku.components.js +679 -939
  243. package/lib/zudoku.components.js.map +1 -1
  244. package/lib/zudoku.openapi-worker.js +1 -1
  245. package/lib/zudoku.openapi-worker.js.map +1 -1
  246. package/lib/zudoku.plugin-api-catalog.js +3 -3
  247. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  248. package/lib/zudoku.plugin-api-keys.js +15 -16
  249. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  250. package/lib/zudoku.plugin-custom-pages.js +4 -4
  251. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  252. package/lib/zudoku.plugin-markdown.js +2 -2
  253. package/lib/zudoku.plugin-markdown.js.map +1 -1
  254. package/lib/zudoku.plugin-openapi.js +5 -5
  255. package/lib/zudoku.plugin-redirect.js +1 -1
  256. package/lib/zudoku.plugin-redirect.js.map +1 -1
  257. package/lib/zudoku.plugin-search-inkeep.js +1 -1
  258. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  259. package/package.json +35 -35
  260. package/src/app/demo.tsx +1 -1
  261. package/src/app/entry.client.tsx +1 -15
  262. package/src/app/entry.server.tsx +2 -2
  263. package/src/app/main.tsx +1 -1
  264. package/src/app/sentry.ts +1 -1
  265. package/src/app/standalone.tsx +1 -1
  266. package/src/lib/authentication/components/CallbackHandler.tsx +1 -1
  267. package/src/lib/authentication/components/SignIn.tsx +1 -1
  268. package/src/lib/authentication/components/SignOut.tsx +1 -1
  269. package/src/lib/components/AnchorLink.tsx +1 -1
  270. package/src/lib/components/Bootstrap.tsx +4 -6
  271. package/src/lib/components/Header.tsx +1 -1
  272. package/src/lib/components/Layout.tsx +1 -1
  273. package/src/lib/components/NotFoundPage.tsx +1 -1
  274. package/src/lib/components/SlotletProvider.tsx +1 -1
  275. package/src/lib/components/TopNavigation.tsx +1 -1
  276. package/src/lib/components/Zudoku.tsx +1 -1
  277. package/src/lib/components/context/ZudokuContext.ts +1 -1
  278. package/src/lib/components/index.ts +1 -1
  279. package/src/lib/components/navigation/SidebarCategory.tsx +1 -1
  280. package/src/lib/components/navigation/SidebarItem.tsx +1 -1
  281. package/src/lib/components/navigation/utils.ts +1 -1
  282. package/src/lib/core/plugins.ts +3 -7
  283. package/src/lib/errors/RouterError.tsx +1 -1
  284. package/src/lib/plugins/api-keys/CreateApiKey.tsx +1 -1
  285. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +1 -1
  286. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +1 -1
  287. package/src/lib/plugins/api-keys/index.tsx +1 -1
  288. package/src/lib/plugins/custom-pages/index.tsx +1 -1
  289. package/src/lib/plugins/markdown/MdxPage.tsx +1 -1
  290. package/src/lib/plugins/markdown/index.tsx +2 -1
  291. package/src/lib/plugins/openapi/Route.tsx +1 -1
  292. package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
  293. package/src/lib/plugins/openapi/index.tsx +1 -1
  294. package/src/lib/plugins/redirect/index.tsx +1 -1
  295. package/src/lib/util/MdxComponents.tsx +1 -3
  296. package/src/lib/util/createVariantComponent.tsx +2 -2
  297. package/src/lib/util/useExposedProps.tsx +1 -1
  298. package/src/lib/util/useScrollToAnchor.ts +1 -1
  299. package/src/lib/util/useScrollToTop.ts +1 -1
  300. package/lib/AnchorLink-BR0MvI7n.js.map +0 -1
  301. package/lib/AuthenticationPlugin-D0Em0SwR.js.map +0 -1
  302. package/lib/MdxPage-Wp8QU0-q.js.map +0 -1
  303. package/lib/OperationList-u8xHU9-b.js +0 -4706
  304. package/lib/Route-DlG_HTMu.js +0 -11
  305. package/lib/Route-DlG_HTMu.js.map +0 -1
  306. package/lib/SlotletProvider-BgvYIPQe.js +0 -252
  307. package/lib/SlotletProvider-BgvYIPQe.js.map +0 -1
  308. package/lib/assets/index-B_Jk_Yzp.js.map +0 -1
  309. package/lib/assets/worker-C_2va8B8.js.map +0 -1
  310. package/lib/cn-BmFQLtkS.js.map +0 -1
  311. package/lib/createServer-BCAHdrpE.js.map +0 -1
  312. package/lib/index-BuAyrJe3.js +0 -46
  313. package/lib/index-BuAyrJe3.js.map +0 -1
  314. package/lib/index-CkwDvuPt.js.map +0 -1
  315. package/lib/index-Czzd9rjU.js +0 -899
  316. package/lib/index-Czzd9rjU.js.map +0 -1
  317. package/lib/index-Yn8c3UWE.js +0 -921
  318. package/lib/index-Yn8c3UWE.js.map +0 -1
  319. package/lib/index.esm-Bm8pj-bc.js +0 -675
  320. package/lib/index.esm-C5mr_sKO.js +0 -1193
  321. package/lib/index.esm-C5mr_sKO.js.map +0 -1
  322. package/lib/jsx-runtime-B6kdoens.js +0 -635
  323. package/lib/jsx-runtime-B6kdoens.js.map +0 -1
  324. package/lib/object_hash-CvlLgU-M.js +0 -785
  325. package/lib/object_hash-CvlLgU-M.js.map +0 -1
  326. package/lib/prism-csharp.min-Yizuc34Y.js +0 -35
  327. package/lib/prism-java.min-d5iT_mOd.js +0 -7
  328. package/lib/prism-ruby.min-C7LwcKyz.js +0 -10
  329. package/lib/prism-typescript.min-oSVeWCAd.js +0 -6
  330. package/lib/router-lfyopgBI.js +0 -3024
  331. package/lib/router-lfyopgBI.js.map +0 -1
  332. package/lib/state-tsXBLONe.js +0 -203
  333. package/lib/state-tsXBLONe.js.map +0 -1
  334. package/lib/useExposedProps-CTPtylCV.js +0 -10
  335. package/lib/useExposedProps-CTPtylCV.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils-DcpDOncX.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/utils.js","../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/thenable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/retryer.js","../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/removable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/query.js","../../../node_modules/.pnpm/@tanstack+query-core@5.60.6/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.61.0_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../../node_modules/.pnpm/@tanstack+react-query@5.61.0_react@18.3.1/node_modules/@tanstack/react-query/build/modern/isRestoring.js","../../../node_modules/.pnpm/@tanstack+react-query@5.61.0_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../node_modules/.pnpm/@tanstack+react-query@5.61.0_react@18.3.1/node_modules/@tanstack/react-query/build/modern/utils.js","../../../node_modules/.pnpm/@tanstack+react-query@5.61.0_react@18.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../node_modules/.pnpm/@tanstack+react-query@5.61.0_react@18.3.1/node_modules/@tanstack/react-query/build/modern/suspense.js","../../../node_modules/.pnpm/@tanstack+react-query@5.61.0_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.61.0_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.61.0_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useSuspenseQuery.js","../src/lib/util/joinPath.tsx","../src/lib/components/context/ZudokuContext.ts","../src/lib/components/navigation/utils.ts"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/utils.ts\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) && isPlainArray(b);\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nexport {\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/thenable.ts\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nexport {\n pendingThenable\n};\n//# sourceMappingURL=thenable.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n const thenable = pendingThenable();\n const cancel = (cancelOptions) => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/notifyManager.ts\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = (cb) => setTimeout(cb, 0);\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/removable.ts\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { canFetch, createRetryer, isCancelledError } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const queryFnContext = {\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n const onError = (error) => {\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n }\n this.scheduleGc();\n };\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n try {\n this.setData(data);\n } catch (error) {\n onError(error);\n return;\n }\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n this.scheduleGc();\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n return this.#retryer.start();\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n if (!this.options.experimental_prefetchInRender) {\n this.#currentThenable.reject(\n new Error(\"experimental_prefetchInRender feature flag is not enabled\")\n );\n }\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult(notifyOptions);\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackProp(key);\n onPropTracked?.(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n if (options.select && newState.data !== void 0) {\n if (prevResult && newState.data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(newState.data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n } else {\n data = newState.data;\n }\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n if (options.select && placeholderData !== void 0) {\n try {\n placeholderData = options.select(placeholderData);\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const finalizeThenableIfPossible = (thenable) => {\n if (nextResult.status === \"error\") {\n thenable.reject(nextResult.error);\n } else if (nextResult.data !== void 0) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (nextResult.status === \"error\" || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (nextResult.status !== \"error\" || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult(notifyOptions) {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const defaultNotifyOptions = {};\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false) {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/isRestoring.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=isRestoring.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","// src/utils.ts\nfunction shouldThrowError(throwError, params) {\n if (typeof throwError === \"function\") {\n return throwError(...params);\n }\n return !!throwError;\n}\nfunction noop() {\n}\nexport {\n noop,\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"./utils.js\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.throwOnError || options.experimental_prefetchInRender) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && shouldThrowError(throwOnError, [result.error, query]);\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n if (defaultedOptions.staleTime === void 0) {\n defaultedOptions.staleTime = 1e3;\n }\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, 1e3);\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nimport { noop } from \"./utils.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = isRestoring ? noop : observer.subscribe(notifyManager.batchCalls(onStoreChange));\n observer.updateResult();\n return unsubscribe;\n },\n [observer, isRestoring]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: client.getQueryCache().get(defaultedOptions.queryHash)\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n client.getQueryCache().get(defaultedOptions.queryHash)?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useSuspenseQuery.ts\nimport { QueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: void 0\n },\n QueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseQuery\n};\n//# sourceMappingURL=useSuspenseQuery.js.map","export const joinPath = (\n ...parts: Array<string | null | undefined | boolean>\n) => {\n const cleanPath = parts\n .filter((part): part is string => Boolean(part))\n .map((part) => part.replace(/(^\\/+|\\/+$)/g, \"\")) // Strip leading and trailing slashes\n .join(\"/\")\n .replace(/(^\\/+|\\/+$)/g, \"\");\n\n return cleanPath ? `/${cleanPath}` : \"/\";\n};\n","import { useQuery, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createContext, useContext } from \"react\";\nimport { matchPath, useLocation } from \"react-router-dom\";\nimport { ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { traverseSidebar } from \"../navigation/utils.js\";\n\nexport const ZudokuReactContext = createContext<ZudokuContext | undefined>(\n undefined,\n);\n\nexport const useZudoku = () => {\n const context = useContext(ZudokuReactContext);\n\n if (!context) {\n throw new Error(\"useZudoku must be used within a ZudokuProvider.\");\n }\n\n return context;\n};\n\nexport const useApiIdentities = () => {\n const { getApiIdentities } = useZudoku();\n return useQuery({\n queryFn: getApiIdentities,\n queryKey: [\"api-identities\"],\n });\n};\n\nexport const useCurrentNavigation = () => {\n const { getPluginSidebar, sidebars, topNavigation } = useZudoku();\n const location = useLocation();\n\n const currentSidebarItem = Object.entries(sidebars).find(([, sidebar]) => {\n return traverseSidebar(sidebar, (item) => {\n const itemId =\n item.type === \"doc\"\n ? joinPath(item.id)\n : item.type === \"category\" && item.link\n ? joinPath(item.link.id)\n : undefined;\n\n if (itemId === location.pathname) {\n return item;\n }\n });\n });\n const currentTopNavItem =\n topNavigation.find((t) => t.id === currentSidebarItem?.[0]) ??\n topNavigation.find((item) => matchPath(item.id, location.pathname));\n\n const { data } = useSuspenseQuery({\n queryFn: () => getPluginSidebar(location.pathname),\n queryKey: [\"plugin-sidebar\", location.pathname],\n });\n\n return {\n sidebar: [...(currentSidebarItem ? currentSidebarItem[1] : []), ...data],\n topNavItem: currentTopNavItem,\n };\n};\n","import { useLocation } from \"react-router-dom\";\nimport type {\n SidebarItem,\n SidebarItemCategory,\n} from \"../../../config/validators/SidebarSchema.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { useCurrentNavigation } from \"../context/ZudokuContext.js\";\n\nexport type TraverseCallback<T> = (\n item: SidebarItem,\n parentCategories: SidebarItem[],\n) => T | void;\n\nexport const traverseSidebar = <T>(\n sidebar: SidebarItem[],\n callback: TraverseCallback<T>,\n): T | undefined => {\n for (const item of sidebar) {\n const result = traverseSidebarItem(item, callback);\n if (result !== undefined) return result;\n }\n};\n\nexport const traverseSidebarItem = <T>(\n item: SidebarItem,\n callback: TraverseCallback<T>,\n parentCategories: SidebarItem[] = [],\n): T | undefined => {\n const result = callback(item, parentCategories);\n if (result !== undefined) return result;\n\n if (item.type === \"category\") {\n for (const child of item.items) {\n const childResult = traverseSidebarItem(child, callback, [\n ...parentCategories,\n item,\n ]);\n if (childResult !== undefined) return childResult;\n }\n }\n};\n\nexport const useCurrentItem = () => {\n const location = useLocation();\n const nav = useCurrentNavigation();\n\n const currentSidebar = nav.sidebar;\n\n return traverseSidebar(currentSidebar, (item) => {\n if (item.type === \"doc\" && joinPath(item.id) === location.pathname) {\n return item;\n }\n });\n};\n\nexport const useIsCategoryOpen = (category: SidebarItemCategory) => {\n const location = useLocation();\n\n return traverseSidebarItem(category, (item) => {\n if (item.type === \"category\" && item.link) {\n const categoryLinkPath = joinPath(item.link.id);\n if (categoryLinkPath === location.pathname) {\n return true;\n }\n }\n\n if (item.type === \"doc\") {\n const docPath = joinPath(item.id);\n if (docPath === location.pathname) {\n return true;\n }\n }\n });\n};\n\nexport const usePrevNext = (): {\n prev?: { label: string; id: string };\n next?: { label: string; id: string };\n} => {\n const currentId = useLocation().pathname;\n const nav = useCurrentNavigation();\n const currentSidebar = nav.sidebar;\n\n let prev;\n let next;\n\n let foundCurrent = false;\n\n traverseSidebar(currentSidebar, (item) => {\n const itemId =\n item.type === \"doc\"\n ? joinPath(item.id)\n : item.type === \"category\" && item.link\n ? joinPath(item.link.id)\n : undefined;\n\n if (!itemId) return;\n\n if (foundCurrent) {\n next = { label: item.label, id: itemId };\n return true;\n }\n\n if (currentId === itemId) {\n foundCurrent = true;\n } else {\n prev = { label: item.label, id: itemId };\n }\n });\n\n return { prev, next };\n};\n"],"names":["Subscribable","listener","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveEnabled","enabled","matchQuery","filters","type","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","key","a","b","replaceEqualDeep","array","isPlainArray","aItems","aSize","bItems","bSize","copy","equalItems","i","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","error","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","FocusManager","_a","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","setup","focused","isFocused","focusManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","cancel","cancelOptions","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","delay","shouldRetry","createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","scheduleFn","cb","schedule","flush","originalQueue","args","fn","notifyManager","Removable","_gcTimeout","newGcTime","Query","_Query_instances","_initialState","_revertState","_cache","_retryer","_defaultOptions","_abortSignalConsumed","getDefaultState","newData","__privateMethod","dispatch_fn","state","setStateOptions","promise","_b","observer","x","abortController","addSignalProperty","object","fetchFn","queryFn","queryFnContext","context","_c","onError","_d","action","reducer","fetchState","hasData","initialDataUpdatedAt","QueryObserver","client","_QueryObserver_instances","_client","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_currentThenable","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","notifyOptions","prevOptions","prevQuery","updateQuery_fn","mounted","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","defaultedOptions","prevResult","prevResultState","prevResultOptions","queryInitialState","newState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","selectError","placeholderData","isFetching","isPending","isError","isLoading","nextResult","isStale","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","nextInterval","shouldLoadOnMount","field","optimisticResult","QueryClientContext","React","useQueryClient","queryClient","QueryClientProvider","children","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","throwError","params","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","throwOnError","defaultThrowOnError","_error","ensureSuspenseTimers","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useBaseQuery","Observer","isNewCacheEntry","onStoreChange","unsubscribe","_e","useQuery","useSuspenseQuery","joinPath","parts","cleanPath","part","ZudokuReactContext","createContext","useZudoku","useContext","useApiIdentities","getApiIdentities","useCurrentNavigation","getPluginSidebar","sidebars","topNavigation","location","useLocation","currentSidebarItem","sidebar","traverseSidebar","currentTopNavItem","t","matchPath","traverseSidebarItem","parentCategories","child","childResult","useCurrentItem","currentSidebar","useIsCategoryOpen","category","usePrevNext","currentId","prev","next","foundCurrent","itemId"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]}
1
+ {"version":3,"file":"utils-R0j3Raw1.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/utils.js","../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/thenable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/retryer.js","../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/removable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/query.js","../../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@19.0.0/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@19.0.0/node_modules/@tanstack/react-query/build/modern/isRestoring.js","../../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@19.0.0/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@19.0.0/node_modules/@tanstack/react-query/build/modern/utils.js","../../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@19.0.0/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@19.0.0/node_modules/@tanstack/react-query/build/modern/suspense.js","../../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@19.0.0/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@19.0.0/node_modules/@tanstack/react-query/build/modern/useQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@19.0.0/node_modules/@tanstack/react-query/build/modern/useSuspenseQuery.js","../src/lib/util/joinPath.tsx","../src/lib/components/context/ZudokuContext.ts","../src/lib/components/navigation/utils.ts"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/utils.ts\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) && isPlainArray(b);\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nexport {\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/thenable.ts\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nexport {\n pendingThenable\n};\n//# sourceMappingURL=thenable.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n const thenable = pendingThenable();\n const cancel = (cancelOptions) => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/notifyManager.ts\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = (cb) => setTimeout(cb, 0);\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/removable.ts\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { canFetch, createRetryer, isCancelledError } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const queryFnContext = {\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n const onError = (error) => {\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n }\n this.scheduleGc();\n };\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n try {\n this.setData(data);\n } catch (error) {\n onError(error);\n return;\n }\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n this.scheduleGc();\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n return this.#retryer.start();\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n if (!this.options.experimental_prefetchInRender) {\n this.#currentThenable.reject(\n new Error(\"experimental_prefetchInRender feature flag is not enabled\")\n );\n }\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult(notifyOptions);\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackProp(key);\n onPropTracked?.(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n if (options.select && newState.data !== void 0) {\n if (prevResult && newState.data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(newState.data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n } else {\n data = newState.data;\n }\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n if (options.select && placeholderData !== void 0) {\n try {\n placeholderData = options.select(placeholderData);\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const finalizeThenableIfPossible = (thenable) => {\n if (nextResult.status === \"error\") {\n thenable.reject(nextResult.error);\n } else if (nextResult.data !== void 0) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (nextResult.status === \"error\" || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (nextResult.status !== \"error\" || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult(notifyOptions) {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const defaultNotifyOptions = {};\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false) {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/isRestoring.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=isRestoring.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","// src/utils.ts\nfunction shouldThrowError(throwError, params) {\n if (typeof throwError === \"function\") {\n return throwError(...params);\n }\n return !!throwError;\n}\nfunction noop() {\n}\nexport {\n noop,\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"./utils.js\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.throwOnError || options.experimental_prefetchInRender) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && shouldThrowError(throwOnError, [result.error, query]);\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n if (defaultedOptions.staleTime === void 0) {\n defaultedOptions.staleTime = 1e3;\n }\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, 1e3);\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nimport { noop } from \"./utils.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = isRestoring ? noop : observer.subscribe(notifyManager.batchCalls(onStoreChange));\n observer.updateResult();\n return unsubscribe;\n },\n [observer, isRestoring]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: client.getQueryCache().get(defaultedOptions.queryHash)\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n client.getQueryCache().get(defaultedOptions.queryHash)?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useSuspenseQuery.ts\nimport { QueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: void 0\n },\n QueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseQuery\n};\n//# sourceMappingURL=useSuspenseQuery.js.map","export const joinPath = (\n ...parts: Array<string | null | undefined | boolean>\n) => {\n const cleanPath = parts\n .filter((part): part is string => Boolean(part))\n .map((part) => part.replace(/(^\\/+|\\/+$)/g, \"\")) // Strip leading and trailing slashes\n .join(\"/\")\n .replace(/(^\\/+|\\/+$)/g, \"\");\n\n return cleanPath ? `/${cleanPath}` : \"/\";\n};\n","import { useQuery, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createContext, useContext } from \"react\";\nimport { matchPath, useLocation } from \"react-router\";\nimport { ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { traverseSidebar } from \"../navigation/utils.js\";\n\nexport const ZudokuReactContext = createContext<ZudokuContext | undefined>(\n undefined,\n);\n\nexport const useZudoku = () => {\n const context = useContext(ZudokuReactContext);\n\n if (!context) {\n throw new Error(\"useZudoku must be used within a ZudokuProvider.\");\n }\n\n return context;\n};\n\nexport const useApiIdentities = () => {\n const { getApiIdentities } = useZudoku();\n return useQuery({\n queryFn: getApiIdentities,\n queryKey: [\"api-identities\"],\n });\n};\n\nexport const useCurrentNavigation = () => {\n const { getPluginSidebar, sidebars, topNavigation } = useZudoku();\n const location = useLocation();\n\n const currentSidebarItem = Object.entries(sidebars).find(([, sidebar]) => {\n return traverseSidebar(sidebar, (item) => {\n const itemId =\n item.type === \"doc\"\n ? joinPath(item.id)\n : item.type === \"category\" && item.link\n ? joinPath(item.link.id)\n : undefined;\n\n if (itemId === location.pathname) {\n return item;\n }\n });\n });\n const currentTopNavItem =\n topNavigation.find((t) => t.id === currentSidebarItem?.[0]) ??\n topNavigation.find((item) => matchPath(item.id, location.pathname));\n\n const { data } = useSuspenseQuery({\n queryFn: () => getPluginSidebar(location.pathname),\n queryKey: [\"plugin-sidebar\", location.pathname],\n });\n\n return {\n sidebar: [...(currentSidebarItem ? currentSidebarItem[1] : []), ...data],\n topNavItem: currentTopNavItem,\n };\n};\n","import { useLocation } from \"react-router\";\nimport type {\n SidebarItem,\n SidebarItemCategory,\n} from \"../../../config/validators/SidebarSchema.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { useCurrentNavigation } from \"../context/ZudokuContext.js\";\n\nexport type TraverseCallback<T> = (\n item: SidebarItem,\n parentCategories: SidebarItem[],\n) => T | void;\n\nexport const traverseSidebar = <T>(\n sidebar: SidebarItem[],\n callback: TraverseCallback<T>,\n): T | undefined => {\n for (const item of sidebar) {\n const result = traverseSidebarItem(item, callback);\n if (result !== undefined) return result;\n }\n};\n\nexport const traverseSidebarItem = <T>(\n item: SidebarItem,\n callback: TraverseCallback<T>,\n parentCategories: SidebarItem[] = [],\n): T | undefined => {\n const result = callback(item, parentCategories);\n if (result !== undefined) return result;\n\n if (item.type === \"category\") {\n for (const child of item.items) {\n const childResult = traverseSidebarItem(child, callback, [\n ...parentCategories,\n item,\n ]);\n if (childResult !== undefined) return childResult;\n }\n }\n};\n\nexport const useCurrentItem = () => {\n const location = useLocation();\n const nav = useCurrentNavigation();\n\n const currentSidebar = nav.sidebar;\n\n return traverseSidebar(currentSidebar, (item) => {\n if (item.type === \"doc\" && joinPath(item.id) === location.pathname) {\n return item;\n }\n });\n};\n\nexport const useIsCategoryOpen = (category: SidebarItemCategory) => {\n const location = useLocation();\n\n return traverseSidebarItem(category, (item) => {\n if (item.type === \"category\" && item.link) {\n const categoryLinkPath = joinPath(item.link.id);\n if (categoryLinkPath === location.pathname) {\n return true;\n }\n }\n\n if (item.type === \"doc\") {\n const docPath = joinPath(item.id);\n if (docPath === location.pathname) {\n return true;\n }\n }\n });\n};\n\nexport const usePrevNext = (): {\n prev?: { label: string; id: string };\n next?: { label: string; id: string };\n} => {\n const currentId = useLocation().pathname;\n const nav = useCurrentNavigation();\n const currentSidebar = nav.sidebar;\n\n let prev;\n let next;\n\n let foundCurrent = false;\n\n traverseSidebar(currentSidebar, (item) => {\n const itemId =\n item.type === \"doc\"\n ? joinPath(item.id)\n : item.type === \"category\" && item.link\n ? joinPath(item.link.id)\n : undefined;\n\n if (!itemId) return;\n\n if (foundCurrent) {\n next = { label: item.label, id: itemId };\n return true;\n }\n\n if (currentId === itemId) {\n foundCurrent = true;\n } else {\n prev = { label: item.label, id: itemId };\n }\n });\n\n return { prev, next };\n};\n"],"names":["Subscribable","listener","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveEnabled","enabled","matchQuery","filters","type","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","key","a","b","replaceEqualDeep","array","isPlainArray","aItems","aSize","bItems","bSize","copy","equalItems","i","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","error","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","FocusManager","_a","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","setup","focused","isFocused","focusManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","cancel","cancelOptions","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","delay","shouldRetry","createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","scheduleFn","cb","schedule","flush","originalQueue","args","fn","notifyManager","Removable","_gcTimeout","newGcTime","Query","_Query_instances","_initialState","_revertState","_cache","_retryer","_defaultOptions","_abortSignalConsumed","getDefaultState","newData","__privateMethod","dispatch_fn","state","setStateOptions","promise","_b","observer","x","abortController","addSignalProperty","object","fetchFn","queryFn","queryFnContext","context","_c","onError","_d","action","reducer","fetchState","hasData","initialDataUpdatedAt","QueryObserver","client","_QueryObserver_instances","_client","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_currentThenable","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","notifyOptions","prevOptions","prevQuery","updateQuery_fn","mounted","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","defaultedOptions","prevResult","prevResultState","prevResultOptions","queryInitialState","newState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","selectError","placeholderData","isFetching","isPending","isError","isLoading","nextResult","isStale","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","nextInterval","shouldLoadOnMount","field","optimisticResult","QueryClientContext","React","useQueryClient","queryClient","QueryClientProvider","children","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","throwError","params","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","throwOnError","defaultThrowOnError","_error","ensureSuspenseTimers","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useBaseQuery","Observer","isNewCacheEntry","onStoreChange","unsubscribe","_e","useQuery","useSuspenseQuery","joinPath","parts","cleanPath","part","ZudokuReactContext","createContext","useZudoku","useContext","useApiIdentities","getApiIdentities","useCurrentNavigation","getPluginSidebar","sidebars","topNavigation","location","useLocation","currentSidebarItem","sidebar","traverseSidebar","currentTopNavItem","t","matchPath","traverseSidebarItem","parentCategories","child","childResult","useCurrentItem","currentSidebar","useIsCategoryOpen","category","usePrevNext","currentId","prev","next","foundCurrent","itemId"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]}
@@ -1,7 +1,7 @@
1
1
  var a = Object.defineProperty;
2
2
  var c = (e, s, t) => s in e ? a(e, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[s] = t;
3
3
  var n = (e, s, t) => c(e, typeof s != "symbol" ? s + "" : s, t);
4
- import { u } from "./state-tsXBLONe.js";
4
+ import { u } from "./state-CFQsUZUP.js";
5
5
  import { OpenIDAuthenticationProvider as d } from "./zudoku.auth-openid.js";
6
6
  class h extends d {
7
7
  constructor(t) {
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import { Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport { AuthenticationProviderInitializer } from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider extends OpenIDAuthenticationProvider {\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}`,\n clientId: config.clientId,\n audience: config.audience,\n });\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n url.searchParams.set(\"prompt\", \"login\");\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (): Promise<void> => {\n const as = await this.getAuthServer();\n const idToken = await this.getAccessToken();\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n\n const redirectUrl = new URL(\n window.location.origin + this.logoutRedirectUrlPath,\n );\n\n redirectUrl.pathname = this.logoutRedirectUrlPath;\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The endSessionEndpoint is set, the IdP supports some form of logout,\n // so we use the IdP logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n // window.location.href = logoutUrl.toString();\n } else {\n const logoutUrl = new URL(\n `${this.issuer.replace(/\\/$/, \"\")}/oidc/logout`,\n );\n // window.location.href = logoutUrl.toString();\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","__publicField","url","isSignUp","as","idToken","useAuthState","redirectUrl","logoutUrl","auth0Auth","options"],"mappings":";;;;;AAKA,MAAMA,UAAoCC,EAA6B;AAAA,EACrE,YAAYC,GAAmC;AACvC,UAAA;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,IAAA,CAClB;AAGH,IAAAC,EAAA,4BAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACC,MAAAD,EAAA,aAAa,IAAI,UAAU,OAAO,GAClCC,KACED,EAAA,aAAa,IAAI,eAAe,QAAQ;AAAA,IAC9C;AAGF,IAAAD,EAAA,iBAAU,YAA2B;AAC7B,YAAAG,IAAK,MAAM,KAAK,iBAChBC,IAAU,MAAM,KAAK;AAE3B,MAAAC,EAAa,SAAS;AAAA,QACpB,iBAAiB;AAAA,QACjB,WAAW;AAAA,QACX,SAAS;AAAA,QACT,cAAc;AAAA,MAAA,CACf;AAED,YAAMC,IAAc,IAAI;AAAA,QACtB,OAAO,SAAS,SAAS,KAAK;AAAA,MAAA;AAYhC,UATAA,EAAY,WAAW,KAAK,uBASxBH,EAAG,sBAAsB;AAC3B,cAAMI,IAAY,IAAI,IAAIJ,EAAG,oBAAoB;AACjD,QAAIC,KACQG,EAAA,aAAa,IAAI,iBAAiBH,CAAO,GAErDG,EAAU,aAAa;AAAA,UACrB;AAAA,UACAD,EAAY,SAAS;AAAA,QAAA;AAAA,MACvB;AAIkB,YAAI;AAAA,UACpB,GAAG,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,QACnC;AAAA,IAEF;AAAA,EApDF;AAsDF;AAEA,MAAME,IAEF,CAACC,MAAY,IAAIZ,EAA4BY,CAAO;"}
1
+ {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import { Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport { AuthenticationProviderInitializer } from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider extends OpenIDAuthenticationProvider {\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}`,\n clientId: config.clientId,\n audience: config.audience,\n });\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n url.searchParams.set(\"prompt\", \"login\");\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (): Promise<void> => {\n const as = await this.getAuthServer();\n const idToken = await this.getAccessToken();\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n\n const redirectUrl = new URL(\n window.location.origin + this.logoutRedirectUrlPath,\n );\n\n redirectUrl.pathname = this.logoutRedirectUrlPath;\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The endSessionEndpoint is set, the IdP supports some form of logout,\n // so we use the IdP logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n // window.location.href = logoutUrl.toString();\n } else {\n const logoutUrl = new URL(\n `${this.issuer.replace(/\\/$/, \"\")}/oidc/logout`,\n );\n // window.location.href = logoutUrl.toString();\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","__publicField","url","isSignUp","as","idToken","useAuthState","redirectUrl","logoutUrl","auth0Auth","options"],"mappings":";;;;;AAKA,MAAMA,UAAoCC,EAA6B;AAAA,EACrE,YAAYC,GAAmC;AACvC,UAAA;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,IAAA,CAClB;AAGH,IAAAC,EAAA,4BAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACC,MAAAD,EAAA,aAAa,IAAI,UAAU,OAAO,GAClCC,KACED,EAAA,aAAa,IAAI,eAAe,QAAQ;AAAA,IAEhD;AAEA,IAAAD,EAAA,iBAAU,YAA2B;AAC7B,YAAAG,IAAK,MAAM,KAAK,cAAc,GAC9BC,IAAU,MAAM,KAAK,eAAe;AAE1C,MAAAC,EAAa,SAAS;AAAA,QACpB,iBAAiB;AAAA,QACjB,WAAW;AAAA,QACX,SAAS;AAAA,QACT,cAAc;AAAA,MAAA,CACf;AAED,YAAMC,IAAc,IAAI;AAAA,QACtB,OAAO,SAAS,SAAS,KAAK;AAAA,MAChC;AAWA,UATAA,EAAY,WAAW,KAAK,uBASxBH,EAAG,sBAAsB;AAC3B,cAAMI,IAAY,IAAI,IAAIJ,EAAG,oBAAoB;AACjD,QAAIC,KACQG,EAAA,aAAa,IAAI,iBAAiBH,CAAO,GAErDG,EAAU,aAAa;AAAA,UACrB;AAAA,UACAD,EAAY,SAAS;AAAA,QACvB;AAAA,MAAA;AAIkB,YAAI;AAAA,UACpB,GAAG,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,QAAA;AAAA,IAIvC;AAAA,EAtDG;AAuDL;AAEA,MAAME,IAEF,CAACC,MAAY,IAAIZ,EAA4BY,CAAO;"}
@@ -1,8 +1,8 @@
1
1
  var u = Object.defineProperty;
2
2
  var d = (n, i, e) => i in n ? u(n, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[i] = e;
3
3
  var a = (n, i, e) => d(n, typeof i != "symbol" ? i + "" : i, e);
4
- import { A as w } from "./AuthenticationPlugin-D0Em0SwR.js";
5
- import { u as l } from "./state-tsXBLONe.js";
4
+ import { A as w } from "./AuthenticationPlugin-DQy635W9.js";
5
+ import { u as l } from "./state-CFQsUZUP.js";
6
6
  class g extends w {
7
7
  constructor(e) {
8
8
  super();