zudoku 0.0.0-z25d5d85c → 0.0.0-z2f55b5ae

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 (244) hide show
  1. package/dist/app/main.js +1 -1
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/config/create-plugin.d.ts +2 -0
  4. package/dist/config/create-plugin.js +55 -0
  5. package/dist/config/create-plugin.js.map +1 -0
  6. package/dist/config/loader.js +2 -2
  7. package/dist/config/loader.js.map +1 -1
  8. package/dist/config/validators/InputNavigationSchema.d.ts +118 -68
  9. package/dist/config/validators/InputNavigationSchema.js +17 -0
  10. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  11. package/dist/config/validators/NavigationSchema.d.ts +10 -2
  12. package/dist/config/validators/NavigationSchema.js +7 -0
  13. package/dist/config/validators/NavigationSchema.js.map +1 -1
  14. package/dist/config/validators/validate.d.ts +5 -4
  15. package/dist/config/validators/validate.js +2 -0
  16. package/dist/config/validators/validate.js.map +1 -1
  17. package/dist/flat-config.d.ts +36 -24
  18. package/dist/index.d.ts +2 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/lib/components/Bootstrap.js +1 -2
  22. package/dist/lib/components/Bootstrap.js.map +1 -1
  23. package/dist/lib/components/MobileTopNavigation.js +2 -1
  24. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  25. package/dist/lib/components/Slot.test.js +1 -1
  26. package/dist/lib/components/Slot.test.js.map +1 -1
  27. package/dist/lib/components/TopNavigation.d.ts +7 -1
  28. package/dist/lib/components/TopNavigation.js +7 -2
  29. package/dist/lib/components/TopNavigation.js.map +1 -1
  30. package/dist/lib/components/Zudoku.d.ts +4 -1
  31. package/dist/lib/components/Zudoku.js +4 -7
  32. package/dist/lib/components/Zudoku.js.map +1 -1
  33. package/dist/lib/components/context/ZudokuContext.d.ts +9 -4
  34. package/dist/lib/components/context/ZudokuContext.js +4 -2
  35. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  36. package/dist/lib/components/context/ZudokuProvider.js +1 -1
  37. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  38. package/dist/lib/components/context/ZudokuReactContext.d.ts +11 -0
  39. package/dist/lib/components/context/ZudokuReactContext.js +4 -0
  40. package/dist/lib/components/context/ZudokuReactContext.js.map +1 -0
  41. package/dist/lib/components/navigation/Navigation.js +4 -3
  42. package/dist/lib/components/navigation/Navigation.js.map +1 -1
  43. package/dist/lib/components/navigation/NavigationCategory.js +8 -0
  44. package/dist/lib/components/navigation/NavigationCategory.js.map +1 -1
  45. package/dist/lib/components/navigation/NavigationFilterContext.d.ts +8 -0
  46. package/dist/lib/components/navigation/NavigationFilterContext.js +12 -0
  47. package/dist/lib/components/navigation/NavigationFilterContext.js.map +1 -0
  48. package/dist/lib/components/navigation/NavigationFilterInput.d.ts +3 -0
  49. package/dist/lib/components/navigation/NavigationFilterInput.js +9 -0
  50. package/dist/lib/components/navigation/NavigationFilterInput.js.map +1 -0
  51. package/dist/lib/components/navigation/NavigationItem.js +11 -1
  52. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  53. package/dist/lib/components/navigation/utils.d.ts +2 -1
  54. package/dist/lib/components/navigation/utils.js +22 -1
  55. package/dist/lib/components/navigation/utils.js.map +1 -1
  56. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  57. package/dist/lib/core/ZudokuContext.js +3 -1
  58. package/dist/lib/core/ZudokuContext.js.map +1 -1
  59. package/dist/lib/core/__internal.d.ts +1 -0
  60. package/dist/lib/core/__internal.js +2 -0
  61. package/dist/lib/core/__internal.js.map +1 -1
  62. package/dist/lib/core/plugins.d.ts +5 -1
  63. package/dist/lib/core/plugins.js.map +1 -1
  64. package/dist/lib/core/transform-config.d.ts +4 -2
  65. package/dist/lib/core/transform-config.js +33 -13
  66. package/dist/lib/core/transform-config.js.map +1 -1
  67. package/dist/lib/core/transform-config.test.d.ts +1 -0
  68. package/dist/lib/core/transform-config.test.js +83 -0
  69. package/dist/lib/core/transform-config.test.js.map +1 -0
  70. package/dist/lib/errors/ErrorAlert.js +1 -2
  71. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  72. package/dist/lib/hooks/useEvent.test.js +1 -1
  73. package/dist/lib/hooks/useEvent.test.js.map +1 -1
  74. package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +1 -0
  75. package/dist/lib/plugins/openapi/playground/fileUtils.js +3 -0
  76. package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -1
  77. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.d.ts +6 -0
  78. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js +20 -0
  79. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js.map +1 -0
  80. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +7 -2
  81. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  82. package/dist/lib/ui/Alert.d.ts +3 -2
  83. package/dist/lib/ui/Alert.js +9 -5
  84. package/dist/lib/ui/Alert.js.map +1 -1
  85. package/dist/lib/ui/InputGroup.d.ts +16 -0
  86. package/dist/lib/ui/InputGroup.js +65 -0
  87. package/dist/lib/ui/InputGroup.js.map +1 -0
  88. package/dist/lib/ui/Secret.js +2 -2
  89. package/dist/lib/ui/Secret.js.map +1 -1
  90. package/dist/vite/config.js +5 -2
  91. package/dist/vite/config.js.map +1 -1
  92. package/dist/vite/plugin-config.js +16 -4
  93. package/dist/vite/plugin-config.js.map +1 -1
  94. package/dist/vite/plugin-theme.js +2 -1
  95. package/dist/vite/plugin-theme.js.map +1 -1
  96. package/dist/vite/prerender/prerender.js +3 -1
  97. package/dist/vite/prerender/prerender.js.map +1 -1
  98. package/dist/vite/prerender/worker.js +3 -1
  99. package/dist/vite/prerender/worker.js.map +1 -1
  100. package/lib/{ClaudeLogo-C6q-Xn_l.js → ClaudeLogo-Br8C_vTq.js} +3 -3
  101. package/lib/{ClaudeLogo-C6q-Xn_l.js.map → ClaudeLogo-Br8C_vTq.js.map} +1 -1
  102. package/lib/Drawer-Ch7927PF.js.map +1 -1
  103. package/lib/{HydrationBoundary-CNF2ZV3E.js → HydrationBoundary-CJu4vUlG.js} +6 -6
  104. package/lib/{HydrationBoundary-CNF2ZV3E.js.map → HydrationBoundary-CJu4vUlG.js.map} +1 -1
  105. package/lib/{MdxPage-B1G4W1TK.js → MdxPage-C0QFAsgv.js} +6 -6
  106. package/lib/{MdxPage-B1G4W1TK.js.map → MdxPage-C0QFAsgv.js.map} +1 -1
  107. package/lib/Mermaid-Chx5BPHn.js +104 -0
  108. package/lib/Mermaid-Chx5BPHn.js.map +1 -0
  109. package/lib/{OAuthErrorPage-01Ke086W.js → OAuthErrorPage-CFz_gBFx.js} +11 -10
  110. package/lib/{OAuthErrorPage-01Ke086W.js.map → OAuthErrorPage-CFz_gBFx.js.map} +1 -1
  111. package/lib/{OasProvider-oHPiMJZg.js → OasProvider-BnQ1_ehf.js} +3 -3
  112. package/lib/{OasProvider-oHPiMJZg.js.map → OasProvider-BnQ1_ehf.js.map} +1 -1
  113. package/lib/OperationList-Bw-3OS_8.js +5907 -0
  114. package/lib/OperationList-Bw-3OS_8.js.map +1 -0
  115. package/lib/{RouteGuard-B1lCR0C_.js → RouteGuard-CVs3yvEs.js} +3 -3
  116. package/lib/{RouteGuard-B1lCR0C_.js.map → RouteGuard-CVs3yvEs.js.map} +1 -1
  117. package/lib/{SchemaList-DoQFkJgM.js → SchemaList-IehIWcDV.js} +7 -7
  118. package/lib/{SchemaList-DoQFkJgM.js.map → SchemaList-IehIWcDV.js.map} +1 -1
  119. package/lib/{SchemaView-D2k6ZJck.js → SchemaView-BZLyoQRI.js} +3 -3
  120. package/lib/{SchemaView-D2k6ZJck.js.map → SchemaView-BZLyoQRI.js.map} +1 -1
  121. package/lib/{Secret-BDBqq4p3.js → Secret-DUpgv4V3.js} +92 -72
  122. package/lib/Secret-DUpgv4V3.js.map +1 -0
  123. package/lib/{SignUp-8kDBaLbO.js → SignUp-Dug1jAGC.js} +4 -4
  124. package/lib/{SignUp-8kDBaLbO.js.map → SignUp-Dug1jAGC.js.map} +1 -1
  125. package/lib/{SyntaxHighlight-hZOFnYl0.js → SyntaxHighlight-BMu0b_hF.js} +8 -8
  126. package/lib/{SyntaxHighlight-hZOFnYl0.js.map → SyntaxHighlight-BMu0b_hF.js.map} +1 -1
  127. package/lib/{Toc-qEIii_-W.js → Toc-BiJ2YL0O.js} +2 -2
  128. package/lib/{Toc-qEIii_-W.js.map → Toc-BiJ2YL0O.js.map} +1 -1
  129. package/lib/{Zudoku-DUsdmPME.js → Zudoku-iyiXgWFY.js} +2777 -2622
  130. package/lib/Zudoku-iyiXgWFY.js.map +1 -0
  131. package/lib/ZudokuContext-CYyb_PB_.js +175 -0
  132. package/lib/ZudokuContext-CYyb_PB_.js.map +1 -0
  133. package/lib/ZudokuReactContext-DGJAP1sN.js +222 -0
  134. package/lib/ZudokuReactContext-DGJAP1sN.js.map +1 -0
  135. package/lib/chunk-EPOLDU6W-C6C8jAwd.js.map +1 -1
  136. package/lib/{circular-D9tSKG2c.js → circular-CfBNz-Ot.js} +2 -2
  137. package/lib/{circular-D9tSKG2c.js.map → circular-CfBNz-Ot.js.map} +1 -1
  138. package/lib/{createServer-BprC4n85.js → createServer-BtZPTSEO.js} +4 -4
  139. package/lib/{createServer-BprC4n85.js.map → createServer-BtZPTSEO.js.map} +1 -1
  140. package/lib/{errors-7hgPDs1h.js → errors-B77S9iOc.js} +2 -2
  141. package/lib/{errors-7hgPDs1h.js.map → errors-B77S9iOc.js.map} +1 -1
  142. package/lib/{firebase-Dwn-2ju-.js → firebase-C7XKRGLf.js} +25 -24
  143. package/lib/{firebase-Dwn-2ju-.js.map → firebase-C7XKRGLf.js.map} +1 -1
  144. package/lib/{hook-ZEd1Es7D.js → hook-Dz_n9SoE.js} +16 -15
  145. package/lib/{hook-ZEd1Es7D.js.map → hook-Dz_n9SoE.js.map} +1 -1
  146. package/lib/{index-Dxdhrp-I.js → index-BDp2MTiq.js} +2 -2
  147. package/lib/{index-Dxdhrp-I.js.map → index-BDp2MTiq.js.map} +1 -1
  148. package/lib/{index-CyIW9rHv.js → index-CQ-p1wyT.js} +642 -606
  149. package/lib/index-CQ-p1wyT.js.map +1 -0
  150. package/lib/index-CrcNWbel.js.map +1 -1
  151. package/lib/index-DAWHN3cH.js.map +1 -1
  152. package/lib/index.esm-BYObtETB.js.map +1 -1
  153. package/lib/index.esm-Ca5zvoff.js.map +1 -1
  154. package/lib/{index.esm-DG4KaDKR.js → index.esm-Cth49JBv.js} +2 -2
  155. package/lib/index.esm-Cth49JBv.js.map +1 -0
  156. package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
  157. package/lib/{mutation-BISOc7OM.js → mutation-B7eFBLZY.js} +2 -2
  158. package/lib/{mutation-BISOc7OM.js.map → mutation-B7eFBLZY.js.map} +1 -1
  159. package/lib/ui/Alert.js +32 -20
  160. package/lib/ui/Alert.js.map +1 -1
  161. package/lib/ui/Carousel.js.map +1 -1
  162. package/lib/ui/InputGroup.js +155 -0
  163. package/lib/ui/InputGroup.js.map +1 -0
  164. package/lib/ui/Secret.js +2 -2
  165. package/lib/ui/Secret.js.map +1 -1
  166. package/lib/ui/SyntaxHighlight.js +2 -2
  167. package/lib/useExposedProps-CzTDfXfq.js.map +1 -1
  168. package/lib/{useMutation-CFMGlAMW.js → useMutation-CErliDZ9.js} +5 -5
  169. package/lib/{useMutation-CFMGlAMW.js.map → useMutation-CErliDZ9.js.map} +1 -1
  170. package/lib/{useSuspenseQuery-CSB_rVek.js → useQuery-ht7aWJ3S.js} +432 -446
  171. package/lib/useQuery-ht7aWJ3S.js.map +1 -0
  172. package/lib/useSuspenseQuery-DQH4Bmc2.js +18 -0
  173. package/lib/useSuspenseQuery-DQH4Bmc2.js.map +1 -0
  174. package/lib/zudoku.__internal.js +1518 -1033
  175. package/lib/zudoku.__internal.js.map +1 -1
  176. package/lib/zudoku.auth-auth0.js +6 -5
  177. package/lib/zudoku.auth-auth0.js.map +1 -1
  178. package/lib/zudoku.auth-azureb2c.js +14 -13
  179. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  180. package/lib/zudoku.auth-clerk.js +2 -2
  181. package/lib/zudoku.auth-firebase.js +4 -4
  182. package/lib/zudoku.auth-openid.js +7 -6
  183. package/lib/zudoku.auth-openid.js.map +1 -1
  184. package/lib/zudoku.auth-supabase.js +4 -4
  185. package/lib/zudoku.components.js +3 -3
  186. package/lib/zudoku.hooks.js +3 -3
  187. package/lib/zudoku.mermaid.js +3 -3
  188. package/lib/zudoku.plugin-api-catalog.js +28 -27
  189. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  190. package/lib/zudoku.plugin-api-keys.js +98 -96
  191. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  192. package/lib/zudoku.plugin-custom-pages.js +1 -1
  193. package/lib/zudoku.plugin-markdown.js +1 -1
  194. package/lib/zudoku.plugin-openapi.js +2 -2
  195. package/lib/zudoku.plugin-search-pagefind.js +19 -18
  196. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  197. package/lib/zudoku.plugins.js.map +1 -1
  198. package/lib/zudoku.react-query.js +26 -25
  199. package/lib/zudoku.react-query.js.map +1 -1
  200. package/lib/zudoku.router.js.map +1 -1
  201. package/package.json +15 -9
  202. package/src/app/defaultTheme.css +4 -0
  203. package/src/app/main.css +2 -0
  204. package/src/app/main.tsx +1 -1
  205. package/src/lib/components/Bootstrap.tsx +1 -4
  206. package/src/lib/components/MobileTopNavigation.tsx +13 -8
  207. package/src/lib/components/Slot.test.tsx +1 -1
  208. package/src/lib/components/TopNavigation.tsx +25 -7
  209. package/src/lib/components/Zudoku.tsx +18 -14
  210. package/src/lib/components/context/ZudokuContext.ts +3 -6
  211. package/src/lib/components/context/ZudokuProvider.tsx +1 -1
  212. package/src/lib/components/context/ZudokuReactContext.tsx +17 -0
  213. package/src/lib/components/navigation/Navigation.tsx +4 -3
  214. package/src/lib/components/navigation/NavigationCategory.tsx +9 -0
  215. package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -0
  216. package/src/lib/components/navigation/NavigationFilterInput.tsx +35 -0
  217. package/src/lib/components/navigation/NavigationItem.tsx +17 -1
  218. package/src/lib/components/navigation/utils.ts +32 -1
  219. package/src/lib/core/ZudokuContext.ts +7 -1
  220. package/src/lib/core/__internal.tsx +2 -0
  221. package/src/lib/core/plugins.ts +7 -3
  222. package/src/lib/core/transform-config.test.tsx +99 -0
  223. package/src/lib/core/transform-config.ts +57 -19
  224. package/src/lib/errors/ErrorAlert.tsx +1 -6
  225. package/src/lib/hooks/useEvent.test.tsx +1 -1
  226. package/src/lib/plugins/openapi/playground/fileUtils.ts +4 -0
  227. package/src/lib/plugins/openapi/playground/result-panel/AudioPlayer.tsx +50 -0
  228. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +33 -17
  229. package/src/lib/ui/Alert.tsx +17 -5
  230. package/src/lib/ui/InputGroup.tsx +168 -0
  231. package/src/lib/ui/Secret.tsx +2 -2
  232. package/lib/Mermaid-B1xNo-pf.js +0 -103
  233. package/lib/Mermaid-B1xNo-pf.js.map +0 -1
  234. package/lib/OperationList-CZ4OK8Pm.js +0 -5823
  235. package/lib/OperationList-CZ4OK8Pm.js.map +0 -1
  236. package/lib/Secret-BDBqq4p3.js.map +0 -1
  237. package/lib/Separator-BXt1LYnm.js +0 -27
  238. package/lib/Separator-BXt1LYnm.js.map +0 -1
  239. package/lib/Zudoku-DUsdmPME.js.map +0 -1
  240. package/lib/ZudokuContext-BBI06sOx.js +0 -387
  241. package/lib/ZudokuContext-BBI06sOx.js.map +0 -1
  242. package/lib/index-CyIW9rHv.js.map +0 -1
  243. package/lib/index.esm-DG4KaDKR.js.map +0 -1
  244. package/lib/useSuspenseQuery-CSB_rVek.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.plugin-search-pagefind.js","sources":["../src/lib/ui/Kbd.tsx","../src/lib/plugins/search-pagefind/get-results.tsx","../src/lib/plugins/search-pagefind/ResultList.tsx","../src/lib/plugins/search-pagefind/PagefindSearch.tsx","../src/lib/plugins/search-pagefind/index.tsx"],"sourcesContent":["import { cn } from \"./util.js\";\n\nfunction Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(\n \"bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none\",\n \"[&_svg:not([class*='size-'])]:size-3\",\n \"[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction KbdGroup({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\nexport { Kbd, KbdGroup };\n","import type { AuthState } from \"../../authentication/state.js\";\nimport type { ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport type { PagefindOptions } from \"./index.js\";\nimport type { PagefindSearchFragment, PagefindSearchResults } from \"./types.js\";\n\nexport const getResults = async ({\n search,\n options,\n auth,\n context,\n}: {\n search: PagefindSearchResults;\n options: PagefindOptions;\n auth: AuthState;\n context: ZudokuContext;\n}) => {\n const maxResults = options.maxResults ?? 10;\n const transformFn = options.transformResults ?? (() => true);\n\n const transformedResults: PagefindSearchFragment[] = [];\n\n const generator = searchResultGenerator({\n search,\n transformFn,\n auth,\n context,\n });\n\n for await (const result of generator) {\n transformedResults.push(result);\n if (transformedResults.length >= maxResults) break;\n }\n\n return transformedResults;\n};\n\nasync function* searchResultGenerator({\n search,\n transformFn,\n auth,\n context,\n}: {\n search: PagefindSearchResults;\n transformFn: NonNullable<PagefindOptions[\"transformResults\"]>;\n auth: AuthState<unknown>;\n context: ZudokuContext;\n}) {\n const batchSize = 5;\n let processedCount = 0;\n\n while (processedCount < search.results.length) {\n const batch = search.results.slice(\n processedCount,\n processedCount + batchSize,\n );\n processedCount += batch.length;\n\n const batchData = await Promise.all(batch.map((result) => result.data()));\n\n for (const result of batchData) {\n const transformed = transformFn({ result, auth, context });\n\n if (transformed === false) {\n // Skip this result\n } else if (transformed === true || transformed == null) {\n // Keep the original result\n yield result;\n } else {\n // Return the transformed result\n yield transformed;\n }\n }\n }\n}\n","import { BracketsIcon, FileTextIcon } from \"lucide-react\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { Link, useNavigate } from \"react-router\";\nimport { CommandGroup, CommandItem, CommandList } from \"zudoku/ui/Command.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport type { PagefindSearchFragment, PagefindSubResult } from \"./types.js\";\n\nconst sortSubResults = (a: PagefindSubResult, b: PagefindSubResult) => {\n const aScore = a.weighted_locations.reduce(\n (sum, loc) => sum + loc.balanced_score,\n 0,\n );\n const bScore = b.weighted_locations.reduce(\n (sum, loc) => sum + loc.balanced_score,\n 0,\n );\n return bScore - aScore;\n};\n\nconst hoverClassname = `cursor-pointer border border-transparent data-[selected=true]:border-border`;\n\nexport const ResultList = ({\n basePath,\n searchResults,\n searchTerm,\n onClose,\n maxSubResults = 4,\n}: {\n basePath?: string;\n searchResults: PagefindSearchFragment[];\n searchTerm: string;\n onClose: () => void;\n maxSubResults?: number;\n}) => {\n const navigate = useNavigate();\n const commandListRef = useRef<HTMLDivElement | null>(null);\n\n useLayoutEffect(() => {\n if (!searchTerm) return;\n requestAnimationFrame(() => {\n commandListRef.current?.scrollTo({ top: 0 });\n });\n }, [searchTerm]);\n\n const stripBasePath = (url: string) => {\n if (basePath && url.startsWith(basePath)) {\n return joinUrl(url.slice(basePath.length));\n }\n return url;\n };\n\n return (\n <CommandList className=\"max-h-[450px]\" ref={commandListRef}>\n {searchTerm && searchResults.length > 0 && (\n <CommandGroup\n className=\"text-sm text-muted-foreground\"\n heading={`${searchResults.length} results for \"${searchTerm}\"`}\n />\n )}\n {searchTerm &&\n searchResults.map((result) => (\n <CommandGroup\n key={[result.meta.title ?? result.excerpt, result.url].join(\"-\")}\n >\n <CommandItem\n asChild\n value={`${result.meta.title}-${result.url}`}\n className={hoverClassname}\n onSelect={() => {\n void navigate(stripBasePath(result.url));\n onClose();\n }}\n >\n <Link to={stripBasePath(result.url)}>\n {result.meta.section === \"openapi\" ? (\n <BracketsIcon />\n ) : (\n <FileTextIcon />\n )}\n {result.meta.category && (\n <span className=\"text-muted-foreground\">\n {result.meta.category} &rsaquo;{\" \"}\n </span>\n )}\n {result.meta.title}\n </Link>\n </CommandItem>\n {result.sub_results\n .sort(sortSubResults)\n .slice(0, maxSubResults)\n .map((subResult) => (\n <CommandItem\n asChild\n key={`sub-${result.meta.title}-${subResult.url}`}\n value={`sub-${result.meta.title}-${subResult.url}`}\n className={hoverClassname}\n onSelect={() => {\n void navigate(stripBasePath(subResult.url));\n onClose();\n }}\n >\n <Link to={stripBasePath(subResult.url)} onClick={onClose}>\n <div className=\"flex flex-col items-start gap-2 ms-2.5 ps-5 border-l border-muted-foreground/50\">\n <span className=\"font-bold\">{subResult.title}</span>\n <span\n className=\"line-clamp-2 text-[13px] [&_mark]:bg-primary [&_mark]:text-primary-foreground\"\n // biome-ignore lint/security/noDangerouslySetInnerHtml: Pagefind provides sanitized HTML\n dangerouslySetInnerHTML={{ __html: subResult.excerpt }}\n />\n </div>\n </Link>\n </CommandItem>\n ))}\n </CommandGroup>\n ))}\n </CommandList>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { keepPreviousData, useQuery } from \"@tanstack/react-query\";\nimport { ListPlusIcon } from \"lucide-react\";\nimport { lazy, useEffect, useRef, useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n CommandDialog,\n CommandEmpty,\n CommandInput,\n} from \"zudoku/ui/Command.js\";\nimport { DialogTitle } from \"zudoku/ui/Dialog.js\";\nimport { Kbd, KbdGroup } from \"zudoku/ui/Kbd.js\";\nimport { useAuthState } from \"../../authentication/state.js\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\nimport { SEARCH_PROTECTED_SECTION } from \"../../core/RouteGuard.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { getResults } from \"./get-results.js\";\nimport type { PagefindOptions } from \"./index.js\";\nimport { ResultList } from \"./ResultList.js\";\nimport type { Pagefind } from \"./types.js\";\n\nconst IndexingDialog = lazy(() => import(\"./IndexingDialog.js\"));\n\nconst DEFAULT_RANKING = {\n // Slightly lower than default because API docs tend to have repetitive terms (parameter names, HTTP methods, etc.)\n termFrequency: 0.8,\n // Lower than default because API documentation pages tend to be longer due to comprehensive endpoint documentation\n pageLength: 0.6,\n // Slightly higher than default because in technical documentation, exact matches should be prioritized\n termSimilarity: 1.2,\n // Slightly lower than default because API docs might have legitimate repetition of terms\n termSaturation: 1.2,\n};\n\nconst importPagefind = (basePath?: string): Promise<Pagefind> =>\n import.meta.env.DEV\n ? // @ts-expect-error TypeScript can't resolve the import\n import(/* @vite-ignore */ \"/pagefind/pagefind.js\")\n : import(/* @vite-ignore */ joinUrl(basePath, \"/pagefind/pagefind.js\"));\n\nconst usePagefind = (options: PagefindOptions) => {\n const {\n options: { basePath },\n } = useZudoku();\n const { data: pagefind, ...result } = useQuery<Pagefind>({\n queryKey: [\"pagefind\", options.ranking],\n retry: false,\n queryFn: async () => {\n const pagefind = await importPagefind(basePath);\n await pagefind.init();\n await pagefind.options({\n ranking: {\n termFrequency:\n options.ranking?.termFrequency ?? DEFAULT_RANKING.termFrequency,\n pageLength: options.ranking?.pageLength ?? DEFAULT_RANKING.pageLength,\n termSimilarity:\n options.ranking?.termSimilarity ?? DEFAULT_RANKING.termSimilarity,\n termSaturation:\n options.ranking?.termSaturation ?? DEFAULT_RANKING.termSaturation,\n },\n });\n\n return pagefind;\n },\n enabled: typeof window !== \"undefined\",\n });\n\n if (result.isError && result.error.message !== \"NOT_BUILT_YET\") {\n // biome-ignore lint/suspicious/noConsole: Logging allowed here\n console.error(result.error);\n }\n\n return { ...result, pagefind };\n};\n\nexport const PagefindSearch = ({\n isOpen,\n onClose,\n options,\n}: {\n isOpen: boolean;\n onClose: () => void;\n options: PagefindOptions;\n}) => {\n const { pagefind, error, isError } = usePagefind(options);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [selectedValue, setSelectedValue] = useState<string>(\"\");\n const auth = useAuthState();\n const context = useZudoku();\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { data: searchResults } = useQuery({\n queryKey: [\"pagefind-search\", searchTerm, auth.isAuthenticated],\n queryFn: async () => {\n const filters = auth.isAuthenticated\n ? undefined\n : { not: { section: SEARCH_PROTECTED_SECTION } };\n\n const search = await pagefind?.search(searchTerm, { filters });\n if (!search) return [];\n return getResults({ search, options, auth, context });\n },\n placeholderData: keepPreviousData,\n enabled: !!pagefind && !!searchTerm,\n });\n\n useEffect(() => {\n if (!searchResults?.length) return;\n\n const firstResult = searchResults.at(0);\n if (!firstResult) return;\n\n const firstValue = `${firstResult.meta.title}-${firstResult.url}`;\n setSelectedValue(firstValue);\n }, [searchResults]);\n\n return (\n <CommandDialog\n command={{\n shouldFilter: false,\n loop: true,\n value: selectedValue,\n onValueChange: setSelectedValue,\n }}\n content={{ className: \"max-w-[750px]\" }}\n open={isOpen}\n onOpenChange={onClose}\n >\n <VisuallyHidden>\n <DialogTitle>Search</DialogTitle>\n </VisuallyHidden>\n <CommandInput\n ref={inputRef}\n placeholder=\"Search...\"\n value={searchTerm}\n onValueChange={setSearchTerm}\n disabled={isError}\n />\n <CommandEmpty>\n {searchTerm ? (\n <div className=\"flex flex-col items-center\">\n No results found.\n <Button\n variant=\"link\"\n onClick={() => {\n setSearchTerm(\"\");\n inputRef.current?.focus();\n }}\n >\n Clear search\n </Button>\n </div>\n ) : (\n \"Start typing to search\"\n )}\n </CommandEmpty>\n {isError && error.message !== \"NOT_BUILT_YET\" ? (\n <div className=\"p-4 text-sm\">\n An error occurred while loading search.\n </div>\n ) : (\n <>\n <ResultList\n basePath={context.options.basePath}\n searchResults={searchResults ?? []}\n searchTerm={searchTerm}\n onClose={onClose}\n maxSubResults={options.maxSubResults}\n />\n <div className=\"flex justify-between p-2 items-center\">\n <div className=\"flex items-center text-xs text-muted-foreground\">\n <KbdGroup className=\"ms-0 me-1\">\n <Kbd>↑</Kbd>\n <Kbd>↓</Kbd>\n </KbdGroup>\n Navigate\n <KbdGroup className=\"ms-4 me-1\">\n <Kbd>↵</Kbd>\n </KbdGroup>\n Select\n <KbdGroup className=\"ms-4 me-1\">\n <Kbd>Esc</Kbd>\n </KbdGroup>\n Close dialog\n </div>\n {import.meta.env.DEV && (\n <IndexingDialog>\n <Button\n variant=\"outline\"\n className=\"h-7 text-xs text-muted-foreground\"\n >\n <ListPlusIcon />\n Build Search Index\n </Button>\n </IndexingDialog>\n )}\n </div>\n </>\n )}\n </CommandDialog>\n );\n};\n","import type { ZudokuConfig } from \"../../../config/validators/validate.js\";\nimport { ClientOnly } from \"../../components/ClientOnly.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { PagefindSearch } from \"./PagefindSearch.js\";\n\nexport type PagefindOptions = Extract<\n ZudokuConfig[\"search\"],\n { type: \"pagefind\" }\n>;\n\nexport const pagefindSearchPlugin = (\n options: PagefindOptions,\n): ZudokuPlugin => {\n return {\n renderSearch: ({ isOpen, onClose }) => (\n <ClientOnly>\n <PagefindSearch isOpen={isOpen} onClose={onClose} options={options} />\n </ClientOnly>\n ),\n };\n};\n"],"names":["Kbd","className","props","jsx","cn","KbdGroup","getResults","search","options","auth","context","maxResults","transformFn","transformedResults","generator","searchResultGenerator","result","processedCount","batch","batchData","transformed","sortSubResults","a","b","aScore","sum","loc","hoverClassname","ResultList","basePath","searchResults","searchTerm","onClose","maxSubResults","navigate","useNavigate","commandListRef","useRef","useLayoutEffect","stripBasePath","url","joinUrl","jsxs","CommandList","CommandGroup","CommandItem","Link","BracketsIcon","FileTextIcon","subResult","lazy","DEFAULT_RANKING","importPagefind","usePagefind","useZudoku","pagefind","useQuery","PagefindSearch","isOpen","error","isError","setSearchTerm","useState","selectedValue","setSelectedValue","useAuthState","inputRef","filters","SEARCH_PROTECTED_SECTION","keepPreviousData","useEffect","firstResult","firstValue","CommandDialog","VisuallyHidden","DialogTitle","CommandInput","CommandEmpty","Button","Fragment","pagefindSearchPlugin","ClientOnly"],"mappings":"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"}
1
+ {"version":3,"file":"zudoku.plugin-search-pagefind.js","sources":["../src/lib/ui/Kbd.tsx","../src/lib/plugins/search-pagefind/get-results.tsx","../src/lib/plugins/search-pagefind/ResultList.tsx","../src/lib/plugins/search-pagefind/PagefindSearch.tsx","../src/lib/plugins/search-pagefind/index.tsx"],"sourcesContent":["import { cn } from \"./util.js\";\n\nfunction Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(\n \"bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none\",\n \"[&_svg:not([class*='size-'])]:size-3\",\n \"[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction KbdGroup({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\nexport { Kbd, KbdGroup };\n","import type { AuthState } from \"../../authentication/state.js\";\nimport type { ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport type { PagefindOptions } from \"./index.js\";\nimport type { PagefindSearchFragment, PagefindSearchResults } from \"./types.js\";\n\nexport const getResults = async ({\n search,\n options,\n auth,\n context,\n}: {\n search: PagefindSearchResults;\n options: PagefindOptions;\n auth: AuthState;\n context: ZudokuContext;\n}) => {\n const maxResults = options.maxResults ?? 10;\n const transformFn = options.transformResults ?? (() => true);\n\n const transformedResults: PagefindSearchFragment[] = [];\n\n const generator = searchResultGenerator({\n search,\n transformFn,\n auth,\n context,\n });\n\n for await (const result of generator) {\n transformedResults.push(result);\n if (transformedResults.length >= maxResults) break;\n }\n\n return transformedResults;\n};\n\nasync function* searchResultGenerator({\n search,\n transformFn,\n auth,\n context,\n}: {\n search: PagefindSearchResults;\n transformFn: NonNullable<PagefindOptions[\"transformResults\"]>;\n auth: AuthState<unknown>;\n context: ZudokuContext;\n}) {\n const batchSize = 5;\n let processedCount = 0;\n\n while (processedCount < search.results.length) {\n const batch = search.results.slice(\n processedCount,\n processedCount + batchSize,\n );\n processedCount += batch.length;\n\n const batchData = await Promise.all(batch.map((result) => result.data()));\n\n for (const result of batchData) {\n const transformed = transformFn({ result, auth, context });\n\n if (transformed === false) {\n // Skip this result\n } else if (transformed === true || transformed == null) {\n // Keep the original result\n yield result;\n } else {\n // Return the transformed result\n yield transformed;\n }\n }\n }\n}\n","import { BracketsIcon, FileTextIcon } from \"lucide-react\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { Link, useNavigate } from \"react-router\";\nimport { CommandGroup, CommandItem, CommandList } from \"zudoku/ui/Command.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport type { PagefindSearchFragment, PagefindSubResult } from \"./types.js\";\n\nconst sortSubResults = (a: PagefindSubResult, b: PagefindSubResult) => {\n const aScore = a.weighted_locations.reduce(\n (sum, loc) => sum + loc.balanced_score,\n 0,\n );\n const bScore = b.weighted_locations.reduce(\n (sum, loc) => sum + loc.balanced_score,\n 0,\n );\n return bScore - aScore;\n};\n\nconst hoverClassname = `cursor-pointer border border-transparent data-[selected=true]:border-border`;\n\nexport const ResultList = ({\n basePath,\n searchResults,\n searchTerm,\n onClose,\n maxSubResults = 4,\n}: {\n basePath?: string;\n searchResults: PagefindSearchFragment[];\n searchTerm: string;\n onClose: () => void;\n maxSubResults?: number;\n}) => {\n const navigate = useNavigate();\n const commandListRef = useRef<HTMLDivElement | null>(null);\n\n useLayoutEffect(() => {\n if (!searchTerm) return;\n requestAnimationFrame(() => {\n commandListRef.current?.scrollTo({ top: 0 });\n });\n }, [searchTerm]);\n\n const stripBasePath = (url: string) => {\n if (basePath && url.startsWith(basePath)) {\n return joinUrl(url.slice(basePath.length));\n }\n return url;\n };\n\n return (\n <CommandList className=\"max-h-[450px]\" ref={commandListRef}>\n {searchTerm && searchResults.length > 0 && (\n <CommandGroup\n className=\"text-sm text-muted-foreground\"\n heading={`${searchResults.length} results for \"${searchTerm}\"`}\n />\n )}\n {searchTerm &&\n searchResults.map((result) => (\n <CommandGroup\n key={[result.meta.title ?? result.excerpt, result.url].join(\"-\")}\n >\n <CommandItem\n asChild\n value={`${result.meta.title}-${result.url}`}\n className={hoverClassname}\n onSelect={() => {\n void navigate(stripBasePath(result.url));\n onClose();\n }}\n >\n <Link to={stripBasePath(result.url)}>\n {result.meta.section === \"openapi\" ? (\n <BracketsIcon />\n ) : (\n <FileTextIcon />\n )}\n {result.meta.category && (\n <span className=\"text-muted-foreground\">\n {result.meta.category} &rsaquo;{\" \"}\n </span>\n )}\n {result.meta.title}\n </Link>\n </CommandItem>\n {result.sub_results\n .sort(sortSubResults)\n .slice(0, maxSubResults)\n .map((subResult) => (\n <CommandItem\n asChild\n key={`sub-${result.meta.title}-${subResult.url}`}\n value={`sub-${result.meta.title}-${subResult.url}`}\n className={hoverClassname}\n onSelect={() => {\n void navigate(stripBasePath(subResult.url));\n onClose();\n }}\n >\n <Link to={stripBasePath(subResult.url)} onClick={onClose}>\n <div className=\"flex flex-col items-start gap-2 ms-2.5 ps-5 border-l border-muted-foreground/50\">\n <span className=\"font-bold\">{subResult.title}</span>\n <span\n className=\"line-clamp-2 text-[13px] [&_mark]:bg-primary [&_mark]:text-primary-foreground\"\n // biome-ignore lint/security/noDangerouslySetInnerHtml: Pagefind provides sanitized HTML\n dangerouslySetInnerHTML={{ __html: subResult.excerpt }}\n />\n </div>\n </Link>\n </CommandItem>\n ))}\n </CommandGroup>\n ))}\n </CommandList>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { keepPreviousData, useQuery } from \"@tanstack/react-query\";\nimport { ListPlusIcon } from \"lucide-react\";\nimport { lazy, useEffect, useRef, useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n CommandDialog,\n CommandEmpty,\n CommandInput,\n} from \"zudoku/ui/Command.js\";\nimport { DialogTitle } from \"zudoku/ui/Dialog.js\";\nimport { Kbd, KbdGroup } from \"zudoku/ui/Kbd.js\";\nimport { useAuthState } from \"../../authentication/state.js\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\nimport { SEARCH_PROTECTED_SECTION } from \"../../core/RouteGuard.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { getResults } from \"./get-results.js\";\nimport type { PagefindOptions } from \"./index.js\";\nimport { ResultList } from \"./ResultList.js\";\nimport type { Pagefind } from \"./types.js\";\n\nconst IndexingDialog = lazy(() => import(\"./IndexingDialog.js\"));\n\nconst DEFAULT_RANKING = {\n // Slightly lower than default because API docs tend to have repetitive terms (parameter names, HTTP methods, etc.)\n termFrequency: 0.8,\n // Lower than default because API documentation pages tend to be longer due to comprehensive endpoint documentation\n pageLength: 0.6,\n // Slightly higher than default because in technical documentation, exact matches should be prioritized\n termSimilarity: 1.2,\n // Slightly lower than default because API docs might have legitimate repetition of terms\n termSaturation: 1.2,\n};\n\nconst importPagefind = (basePath?: string): Promise<Pagefind> =>\n import.meta.env.DEV\n ? // @ts-expect-error TypeScript can't resolve the import\n import(/* @vite-ignore */ \"/pagefind/pagefind.js\")\n : import(/* @vite-ignore */ joinUrl(basePath, \"/pagefind/pagefind.js\"));\n\nconst usePagefind = (options: PagefindOptions) => {\n const {\n options: { basePath },\n } = useZudoku();\n const { data: pagefind, ...result } = useQuery<Pagefind>({\n queryKey: [\"pagefind\", options.ranking],\n retry: false,\n queryFn: async () => {\n const pagefind = await importPagefind(basePath);\n await pagefind.init();\n await pagefind.options({\n ranking: {\n termFrequency:\n options.ranking?.termFrequency ?? DEFAULT_RANKING.termFrequency,\n pageLength: options.ranking?.pageLength ?? DEFAULT_RANKING.pageLength,\n termSimilarity:\n options.ranking?.termSimilarity ?? DEFAULT_RANKING.termSimilarity,\n termSaturation:\n options.ranking?.termSaturation ?? DEFAULT_RANKING.termSaturation,\n },\n });\n\n return pagefind;\n },\n enabled: typeof window !== \"undefined\",\n });\n\n if (result.isError && result.error.message !== \"NOT_BUILT_YET\") {\n // biome-ignore lint/suspicious/noConsole: Logging allowed here\n console.error(result.error);\n }\n\n return { ...result, pagefind };\n};\n\nexport const PagefindSearch = ({\n isOpen,\n onClose,\n options,\n}: {\n isOpen: boolean;\n onClose: () => void;\n options: PagefindOptions;\n}) => {\n const { pagefind, error, isError } = usePagefind(options);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [selectedValue, setSelectedValue] = useState<string>(\"\");\n const auth = useAuthState();\n const context = useZudoku();\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { data: searchResults } = useQuery({\n queryKey: [\"pagefind-search\", searchTerm, auth.isAuthenticated],\n queryFn: async () => {\n const filters = auth.isAuthenticated\n ? undefined\n : { not: { section: SEARCH_PROTECTED_SECTION } };\n\n const search = await pagefind?.search(searchTerm, { filters });\n if (!search) return [];\n return getResults({ search, options, auth, context });\n },\n placeholderData: keepPreviousData,\n enabled: !!pagefind && !!searchTerm,\n });\n\n useEffect(() => {\n if (!searchResults?.length) return;\n\n const firstResult = searchResults.at(0);\n if (!firstResult) return;\n\n const firstValue = `${firstResult.meta.title}-${firstResult.url}`;\n setSelectedValue(firstValue);\n }, [searchResults]);\n\n return (\n <CommandDialog\n command={{\n shouldFilter: false,\n loop: true,\n value: selectedValue,\n onValueChange: setSelectedValue,\n }}\n content={{ className: \"max-w-[750px]\" }}\n open={isOpen}\n onOpenChange={onClose}\n >\n <VisuallyHidden>\n <DialogTitle>Search</DialogTitle>\n </VisuallyHidden>\n <CommandInput\n ref={inputRef}\n placeholder=\"Search...\"\n value={searchTerm}\n onValueChange={setSearchTerm}\n disabled={isError}\n />\n <CommandEmpty>\n {searchTerm ? (\n <div className=\"flex flex-col items-center\">\n No results found.\n <Button\n variant=\"link\"\n onClick={() => {\n setSearchTerm(\"\");\n inputRef.current?.focus();\n }}\n >\n Clear search\n </Button>\n </div>\n ) : (\n \"Start typing to search\"\n )}\n </CommandEmpty>\n {isError && error.message !== \"NOT_BUILT_YET\" ? (\n <div className=\"p-4 text-sm\">\n An error occurred while loading search.\n </div>\n ) : (\n <>\n <ResultList\n basePath={context.options.basePath}\n searchResults={searchResults ?? []}\n searchTerm={searchTerm}\n onClose={onClose}\n maxSubResults={options.maxSubResults}\n />\n <div className=\"flex justify-between p-2 items-center\">\n <div className=\"flex items-center text-xs text-muted-foreground\">\n <KbdGroup className=\"ms-0 me-1\">\n <Kbd>↑</Kbd>\n <Kbd>↓</Kbd>\n </KbdGroup>\n Navigate\n <KbdGroup className=\"ms-4 me-1\">\n <Kbd>↵</Kbd>\n </KbdGroup>\n Select\n <KbdGroup className=\"ms-4 me-1\">\n <Kbd>Esc</Kbd>\n </KbdGroup>\n Close dialog\n </div>\n {import.meta.env.DEV && (\n <IndexingDialog>\n <Button\n variant=\"outline\"\n className=\"h-7 text-xs text-muted-foreground\"\n >\n <ListPlusIcon />\n Build Search Index\n </Button>\n </IndexingDialog>\n )}\n </div>\n </>\n )}\n </CommandDialog>\n );\n};\n","import type { ZudokuConfig } from \"../../../config/validators/validate.js\";\nimport { ClientOnly } from \"../../components/ClientOnly.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { PagefindSearch } from \"./PagefindSearch.js\";\n\nexport type PagefindOptions = Extract<\n ZudokuConfig[\"search\"],\n { type: \"pagefind\" }\n>;\n\nexport const pagefindSearchPlugin = (\n options: PagefindOptions,\n): ZudokuPlugin => {\n return {\n renderSearch: ({ isOpen, onClose }) => (\n <ClientOnly>\n <PagefindSearch isOpen={isOpen} onClose={onClose} options={options} />\n </ClientOnly>\n ),\n };\n};\n"],"names":["Kbd","className","props","jsx","cn","KbdGroup","getResults","search","options","auth","context","maxResults","transformFn","transformedResults","generator","searchResultGenerator","result","processedCount","batch","batchData","transformed","sortSubResults","a","b","aScore","sum","loc","hoverClassname","ResultList","basePath","searchResults","searchTerm","onClose","maxSubResults","navigate","useNavigate","commandListRef","useRef","useLayoutEffect","stripBasePath","url","joinUrl","jsxs","CommandList","CommandGroup","CommandItem","Link","BracketsIcon","FileTextIcon","subResult","lazy","DEFAULT_RANKING","importPagefind","usePagefind","useZudoku","pagefind","useQuery","PagefindSearch","isOpen","error","isError","setSearchTerm","useState","selectedValue","setSelectedValue","useAuthState","inputRef","filters","SEARCH_PROTECTED_SECTION","keepPreviousData","useEffect","firstResult","firstValue","CommandDialog","VisuallyHidden","DialogTitle","CommandInput","CommandEmpty","Button","Fragment","pagefindSearchPlugin","ClientOnly"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.plugins.js","sources":["../src/lib/core/plugins.ts"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport type { Location, RouteObject } from \"react-router\";\nimport type { Navigation } from \"../../config/validators/NavigationSchema.js\";\nimport type { ProtectedRoutesInput } from \"../../config/validators/ProtectedRoutesSchema.js\";\nimport type { ZudokuConfig } from \"../../config/validators/validate.js\";\nimport type { AuthenticationPlugin } from \"../authentication/authentication.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport type {\n ApiIdentity,\n ZudokuContext,\n ZudokuEvents,\n} from \"./ZudokuContext.js\";\n\nexport type ZudokuPlugin =\n | CommonPlugin\n | ProfileMenuPlugin\n | NavigationPlugin\n | ApiIdentityPlugin\n | SearchProviderPlugin\n | EventConsumerPlugin\n | AuthenticationPlugin\n | TransformConfigPlugin;\n\nexport type { AuthenticationPlugin, RouteObject };\n\nexport interface NavigationPlugin {\n getRoutes: () => RouteObject[];\n getNavigation?: (path: string, context: ZudokuContext) => Promise<Navigation>;\n getProtectedRoutes?: () => ProtectedRoutesInput;\n}\n\nexport const createApiIdentityPlugin = (\n plugin: ApiIdentityPlugin,\n): ApiIdentityPlugin => plugin;\n\nexport const createProfileMenuPlugin = (\n plugin: ProfileMenuPlugin,\n): ProfileMenuPlugin => plugin;\n\nexport interface ApiIdentityPlugin {\n getIdentities: (context: ZudokuContext) => Promise<ApiIdentity[]>;\n}\n\nexport interface SearchProviderPlugin {\n renderSearch: (o: {\n isOpen: boolean;\n onClose: () => void;\n }) => React.JSX.Element | null;\n}\n\nexport interface ProfileMenuPlugin {\n getProfileMenuItems: (context: ZudokuContext) => ProfileNavigationItem[];\n}\n\nexport type ProfileNavigationItem = {\n label: string;\n path?: string;\n weight?: number;\n category?: \"top\" | \"middle\" | \"bottom\";\n children?: ProfileNavigationItem[];\n icon?: LucideIcon;\n};\n\nexport interface ConfigHookContext {\n mode: typeof process.env.ZUDOKU_ENV;\n rootDir: string;\n configPath: string;\n}\n\nexport interface TransformConfigPlugin {\n transformConfig?: (\n config: ZudokuConfig,\n ctx: ConfigHookContext,\n ) => Partial<ZudokuConfig> | void | Promise<Partial<ZudokuConfig> | void>;\n}\n\nexport interface CommonPlugin {\n initialize?: (\n context: ZudokuContext,\n ) => Promise<void | boolean> | void | boolean;\n getHead?: (args: { location: Location }) => ReactNode | undefined;\n getMdxComponents?: () => MdxComponentsType;\n}\n\nexport type EventConsumerPlugin<Event extends ZudokuEvents = ZudokuEvents> = {\n events: { [K in keyof Event]?: Event[K] };\n};\n\nexport const isEventConsumerPlugin = (\n obj: ZudokuPlugin,\n): obj is EventConsumerPlugin =>\n \"events\" in obj && typeof obj.events === \"object\";\n\nexport const isProfileMenuPlugin = (\n obj: ZudokuPlugin,\n): obj is ProfileMenuPlugin =>\n \"getProfileMenuItems\" in obj && typeof obj.getProfileMenuItems === \"function\";\n\nexport const isNavigationPlugin = (\n obj: ZudokuPlugin,\n): obj is NavigationPlugin =>\n \"getRoutes\" in obj && typeof obj.getRoutes === \"function\";\n\nexport const isAuthenticationPlugin = (\n obj: ZudokuPlugin,\n): obj is AuthenticationPlugin =>\n \"signUp\" in obj && typeof obj.signUp === \"function\";\n\nexport const isSearchPlugin = (\n obj: ZudokuPlugin,\n): obj is SearchProviderPlugin =>\n \"renderSearch\" in obj && typeof obj.renderSearch === \"function\";\n\nexport const needsInitialization = (obj: ZudokuPlugin): obj is CommonPlugin =>\n \"initialize\" in obj && typeof obj.initialize === \"function\";\n\nexport const hasHead = (obj: ZudokuPlugin): obj is CommonPlugin =>\n \"getHead\" in obj && typeof obj.getHead === \"function\";\n\nexport const isMdxProviderPlugin = (obj: ZudokuPlugin): obj is CommonPlugin =>\n \"getMdxComponents\" in obj && typeof obj.getMdxComponents === \"function\";\n\nexport const isApiIdentityPlugin = (\n obj: ZudokuPlugin,\n): obj is ApiIdentityPlugin =>\n \"getIdentities\" in obj && typeof obj.getIdentities === \"function\";\n\nexport const isTransformConfigPlugin = (\n obj: ZudokuPlugin,\n): obj is TransformConfigPlugin =>\n \"transformConfig\" in obj && typeof obj.transformConfig === \"function\";\n"],"names":["createApiIdentityPlugin","plugin","createProfileMenuPlugin","isEventConsumerPlugin","obj","isProfileMenuPlugin","isNavigationPlugin","isAuthenticationPlugin","isSearchPlugin","needsInitialization","hasHead","isMdxProviderPlugin","isApiIdentityPlugin","isTransformConfigPlugin"],"mappings":"AAgCO,MAAMA,IAA0B,CACrCC,MACsBA,GAEXC,IAA0B,CACrCD,MACsBA,GAmDXE,IAAwB,CACnCC,MAEA,YAAYA,KAAO,OAAOA,EAAI,UAAW,UAE9BC,IAAsB,CACjCD,MAEA,yBAAyBA,KAAO,OAAOA,EAAI,uBAAwB,YAExDE,IAAqB,CAChCF,MAEA,eAAeA,KAAO,OAAOA,EAAI,aAAc,YAEpCG,IAAyB,CACpCH,MAEA,YAAYA,KAAO,OAAOA,EAAI,UAAW,YAE9BI,IAAiB,CAC5BJ,MAEA,kBAAkBA,KAAO,OAAOA,EAAI,gBAAiB,YAE1CK,IAAsB,CAACL,MAClC,gBAAgBA,KAAO,OAAOA,EAAI,cAAe,YAEtCM,IAAU,CAACN,MACtB,aAAaA,KAAO,OAAOA,EAAI,WAAY,YAEhCO,IAAsB,CAACP,MAClC,sBAAsBA,KAAO,OAAOA,EAAI,oBAAqB,YAElDQ,IAAsB,CACjCR,MAEA,mBAAmBA,KAAO,OAAOA,EAAI,iBAAkB,YAE5CS,IAA0B,CACrCT,MAEA,qBAAqBA,KAAO,OAAOA,EAAI,mBAAoB;"}
1
+ {"version":3,"file":"zudoku.plugins.js","sources":["../src/lib/core/plugins.ts"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport type { Location, RouteObject } from \"react-router\";\nimport type { Navigation } from \"../../config/validators/NavigationSchema.js\";\nimport type { ProtectedRoutesInput } from \"../../config/validators/ProtectedRoutesSchema.js\";\nimport type { ZudokuConfig } from \"../../config/validators/validate.js\";\nimport type { AuthenticationPlugin } from \"../authentication/authentication.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport type {\n ApiIdentity,\n ZudokuContext,\n ZudokuEvents,\n} from \"./ZudokuContext.js\";\n\nexport type ZudokuPlugin =\n | CommonPlugin\n | ProfileMenuPlugin\n | NavigationPlugin\n | ApiIdentityPlugin\n | SearchProviderPlugin\n | EventConsumerPlugin\n | AuthenticationPlugin\n | TransformConfigPlugin;\n\nexport type { AuthenticationPlugin, RouteObject };\n\nexport interface NavigationPlugin {\n getRoutes: () => RouteObject[];\n getNavigation?: (path: string, context: ZudokuContext) => Promise<Navigation>;\n getProtectedRoutes?: () => ProtectedRoutesInput;\n}\n\nexport const createApiIdentityPlugin = (\n plugin: ApiIdentityPlugin,\n): ApiIdentityPlugin => plugin;\n\nexport const createProfileMenuPlugin = (\n plugin: ProfileMenuPlugin,\n): ProfileMenuPlugin => plugin;\n\nexport interface ApiIdentityPlugin {\n getIdentities: (context: ZudokuContext) => Promise<ApiIdentity[]>;\n}\n\nexport interface SearchProviderPlugin {\n renderSearch: (o: {\n isOpen: boolean;\n onClose: () => void;\n }) => React.JSX.Element | null;\n}\n\nexport interface ProfileMenuPlugin {\n getProfileMenuItems: (context: ZudokuContext) => ProfileNavigationItem[];\n}\n\nexport type ProfileNavigationItem = {\n label: string;\n path?: string;\n weight?: number;\n category?: \"top\" | \"middle\" | \"bottom\";\n children?: ProfileNavigationItem[];\n icon?: LucideIcon;\n};\n\nexport interface ConfigHookContext {\n mode: typeof process.env.ZUDOKU_ENV;\n rootDir: string;\n configPath: string;\n}\n\nexport interface TransformConfigContext {\n config: ZudokuConfig;\n merge: <T extends Partial<ZudokuConfig>>(partial: T) => ZudokuConfig & T;\n}\n\nexport interface TransformConfigPlugin {\n transformConfig?: (\n context: TransformConfigContext,\n ) => ZudokuConfig | void | Promise<ZudokuConfig | void>;\n}\n\nexport interface CommonPlugin {\n initialize?: (\n context: ZudokuContext,\n ) => Promise<void | boolean> | void | boolean;\n getHead?: (args: { location: Location }) => ReactNode | undefined;\n getMdxComponents?: () => MdxComponentsType;\n}\n\nexport type EventConsumerPlugin<Event extends ZudokuEvents = ZudokuEvents> = {\n events: { [K in keyof Event]?: Event[K] };\n};\n\nexport const isEventConsumerPlugin = (\n obj: ZudokuPlugin,\n): obj is EventConsumerPlugin =>\n \"events\" in obj && typeof obj.events === \"object\";\n\nexport const isProfileMenuPlugin = (\n obj: ZudokuPlugin,\n): obj is ProfileMenuPlugin =>\n \"getProfileMenuItems\" in obj && typeof obj.getProfileMenuItems === \"function\";\n\nexport const isNavigationPlugin = (\n obj: ZudokuPlugin,\n): obj is NavigationPlugin =>\n \"getRoutes\" in obj && typeof obj.getRoutes === \"function\";\n\nexport const isAuthenticationPlugin = (\n obj: ZudokuPlugin,\n): obj is AuthenticationPlugin =>\n \"signUp\" in obj && typeof obj.signUp === \"function\";\n\nexport const isSearchPlugin = (\n obj: ZudokuPlugin,\n): obj is SearchProviderPlugin =>\n \"renderSearch\" in obj && typeof obj.renderSearch === \"function\";\n\nexport const needsInitialization = (obj: ZudokuPlugin): obj is CommonPlugin =>\n \"initialize\" in obj && typeof obj.initialize === \"function\";\n\nexport const hasHead = (obj: ZudokuPlugin): obj is CommonPlugin =>\n \"getHead\" in obj && typeof obj.getHead === \"function\";\n\nexport const isMdxProviderPlugin = (obj: ZudokuPlugin): obj is CommonPlugin =>\n \"getMdxComponents\" in obj && typeof obj.getMdxComponents === \"function\";\n\nexport const isApiIdentityPlugin = (\n obj: ZudokuPlugin,\n): obj is ApiIdentityPlugin =>\n \"getIdentities\" in obj && typeof obj.getIdentities === \"function\";\n\nexport const isTransformConfigPlugin = (\n obj: ZudokuPlugin,\n): obj is TransformConfigPlugin =>\n \"transformConfig\" in obj && typeof obj.transformConfig === \"function\";\n"],"names":["createApiIdentityPlugin","plugin","createProfileMenuPlugin","isEventConsumerPlugin","obj","isProfileMenuPlugin","isNavigationPlugin","isAuthenticationPlugin","isSearchPlugin","needsInitialization","hasHead","isMdxProviderPlugin","isApiIdentityPlugin","isTransformConfigPlugin"],"mappings":"AAgCO,MAAMA,IAA0B,CACrCC,MACsBA,GAEXC,IAA0B,CACrCD,MACsBA,GAuDXE,IAAwB,CACnCC,MAEA,YAAYA,KAAO,OAAOA,EAAI,UAAW,UAE9BC,IAAsB,CACjCD,MAEA,yBAAyBA,KAAO,OAAOA,EAAI,uBAAwB,YAExDE,IAAqB,CAChCF,MAEA,eAAeA,KAAO,OAAOA,EAAI,aAAc,YAEpCG,IAAyB,CACpCH,MAEA,YAAYA,KAAO,OAAOA,EAAI,UAAW,YAE9BI,IAAiB,CAC5BJ,MAEA,kBAAkBA,KAAO,OAAOA,EAAI,gBAAiB,YAE1CK,IAAsB,CAACL,MAClC,gBAAgBA,KAAO,OAAOA,EAAI,cAAe,YAEtCM,IAAU,CAACN,MACtB,aAAaA,KAAO,OAAOA,EAAI,WAAY,YAEhCO,IAAsB,CAACP,MAClC,sBAAsBA,KAAO,OAAOA,EAAI,oBAAqB,YAElDQ,IAAsB,CACjCR,MAEA,mBAAmBA,KAAO,OAAOA,EAAI,iBAAkB,YAE5CS,IAA0B,CACrCT,MAEA,qBAAqBA,KAAO,OAAOA,EAAI,mBAAoB;"}
@@ -1,10 +1,11 @@
1
- import { x as Q, S as T, n as m, s as D, y as M, i as F, a as b, z as I, A as K, B, C as H, D as L, b as A, E, F as S, G as _, H as z, w as k, I as q, J as x } from "./useSuspenseQuery-CSB_rVek.js";
2
- import { O as ye, K as pe, Q as ge, L as be, M as me, N as ve, P as Qe, o as Oe, h as Re, T as Ee, U as Se, k as Pe, m as we, l as Ce, p as Me, v as ke, d as qe, V as xe, e as Ne, u as Te } from "./useSuspenseQuery-CSB_rVek.js";
3
- import { i as P, h as U, a as V } from "./HydrationBoundary-CNF2ZV3E.js";
4
- import { H as Fe, M as Ie, Q as Ke, b as Be, d as He, c as Le, e as Ae, f as _e } from "./HydrationBoundary-CNF2ZV3E.js";
5
- import { M as Ue } from "./mutation-BISOc7OM.js";
6
- import { M as je, u as Ge } from "./useMutation-CFMGlAMW.js";
1
+ import { Q, S as T, n as m, a as D, z as M, l as F, b, A as I, B as K, C as B, D as H, E as L, e as A, F as E, G as S, H as _, I as z, s as k, u as q, d as x } from "./useQuery-ht7aWJ3S.js";
2
+ import { N as ye, J as pe, p as ge, K as be, L as me, M as ve, O as Qe, r as Oe, h as Re, P as Ee, T as Se, k as Pe, m as we, q as Ce, v as Me, y as ke, f as qe, U as xe, g as Ne } from "./useQuery-ht7aWJ3S.js";
3
+ import { i as P, h as U, a as j } from "./HydrationBoundary-CJu4vUlG.js";
4
+ import { H as De, M as Fe, Q as Ie, b as Ke, d as Be, c as He, e as Le, f as Ae } from "./HydrationBoundary-CJu4vUlG.js";
5
+ import { M as ze } from "./mutation-B7eFBLZY.js";
6
+ import { M as je, u as Ge } from "./useMutation-CErliDZ9.js";
7
7
  import * as l from "react";
8
+ import { u as Ve } from "./useSuspenseQuery-DQH4Bmc2.js";
8
9
  var N = class extends Q {
9
10
  constructor(e, t) {
10
11
  super(e, t);
@@ -43,7 +44,7 @@ var N = class extends Q {
43
44
  ...n,
44
45
  fetchNextPage: this.fetchNextPage,
45
46
  fetchPreviousPage: this.fetchPreviousPage,
46
- hasNextPage: V(t, s.data),
47
+ hasNextPage: j(t, s.data),
47
48
  hasPreviousPage: U(t, s.data),
48
49
  isFetchNextPageError: y,
49
50
  isFetchingNextPage: a,
@@ -58,11 +59,11 @@ function w(e, t) {
58
59
  const s = new Set(t);
59
60
  return e.filter((n) => !s.has(n));
60
61
  }
61
- function j(e, t, s) {
62
+ function G(e, t, s) {
62
63
  const n = e.slice(0);
63
64
  return n[t] = s, n;
64
65
  }
65
- var G = class extends T {
66
+ var J = class extends T {
66
67
  #r;
67
68
  #e;
68
69
  #n;
@@ -175,7 +176,7 @@ var G = class extends T {
175
176
  }
176
177
  #f(e, t) {
177
178
  const s = this.#t.indexOf(e);
178
- s !== -1 && (this.#e = j(this.#e, s, t), this.#d());
179
+ s !== -1 && (this.#e = G(this.#e, s, t), this.#d());
179
180
  }
180
181
  #d() {
181
182
  if (this.hasListeners()) {
@@ -216,7 +217,7 @@ function Z({
216
217
  };
217
218
  }
218
219
  var $ = Symbol("dataTagSymbol"), ee = Symbol("dataTagErrorSymbol"), te = Symbol("unsetMarker");
219
- function J({
220
+ function V({
220
221
  queries: e,
221
222
  ...t
222
223
  }, s) {
@@ -233,7 +234,7 @@ function J({
233
234
  B(h), H(h, i);
234
235
  }), L(i);
235
236
  const [o] = l.useState(
236
- () => new G(
237
+ () => new J(
237
238
  n,
238
239
  u,
239
240
  t
@@ -298,7 +299,7 @@ function se(e, t) {
298
299
  );
299
300
  }
300
301
  function re(e, t) {
301
- return J(
302
+ return V(
302
303
  {
303
304
  ...e,
304
305
  queries: e.queries.map((s) => (process.env.NODE_ENV !== "production" && s.queryFn === k && console.error("skipToken is not allowed for useSuspenseQueries"), {
@@ -380,16 +381,16 @@ function le(e, t) {
380
381
  }
381
382
  export {
382
383
  ye as CancelledError,
383
- Fe as HydrationBoundary,
384
+ De as HydrationBoundary,
384
385
  N as InfiniteQueryObserver,
385
386
  pe as IsRestoringProvider,
386
- Ue as Mutation,
387
- Ie as MutationCache,
387
+ ze as Mutation,
388
+ Fe as MutationCache,
388
389
  je as MutationObserver,
389
- G as QueriesObserver,
390
+ J as QueriesObserver,
390
391
  ge as Query,
391
- Ke as QueryCache,
392
- Be as QueryClient,
392
+ Ie as QueryCache,
393
+ Ke as QueryClient,
393
394
  be as QueryClientContext,
394
395
  me as QueryClientProvider,
395
396
  ve as QueryErrorResetBoundary,
@@ -397,13 +398,13 @@ export {
397
398
  ee as dataTagErrorSymbol,
398
399
  $ as dataTagSymbol,
399
400
  Qe as defaultScheduler,
400
- He as defaultShouldDehydrateMutation,
401
- Le as defaultShouldDehydrateQuery,
402
- Ae as dehydrate,
401
+ Be as defaultShouldDehydrateMutation,
402
+ He as defaultShouldDehydrateQuery,
403
+ Le as dehydrate,
403
404
  Z as experimental_streamedQuery,
404
405
  Oe as focusManager,
405
406
  Re as hashKey,
406
- _e as hydrate,
407
+ Ae as hydrate,
407
408
  ae as infiniteQueryOptions,
408
409
  Ee as isCancelledError,
409
410
  Se as isServer,
@@ -429,12 +430,12 @@ export {
429
430
  W as useMutationState,
430
431
  ie as usePrefetchInfiniteQuery,
431
432
  ne as usePrefetchQuery,
432
- J as useQueries,
433
+ V as useQueries,
433
434
  Ne as useQuery,
434
435
  b as useQueryClient,
435
436
  K as useQueryErrorResetBoundary,
436
437
  se as useSuspenseInfiniteQuery,
437
438
  re as useSuspenseQueries,
438
- Te as useSuspenseQuery
439
+ Ve as useSuspenseQuery
439
440
  };
440
441
  //# sourceMappingURL=zudoku.react-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.react-query.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.90.12/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../../node_modules/.pnpm/@tanstack+query-core@5.90.12/node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../node_modules/.pnpm/@tanstack+query-core@5.90.12/node_modules/@tanstack/query-core/build/modern/streamedQuery.js","../../../node_modules/.pnpm/@tanstack+query-core@5.90.12/node_modules/@tanstack/query-core/build/modern/types.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/useQueries.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/useSuspenseInfiniteQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/useSuspenseQueries.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/usePrefetchQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/usePrefetchInfiniteQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/queryOptions.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/infiniteQueryOptions.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/useIsFetching.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/useMutationState.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/mutationOptions.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.3/node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js"],"sourcesContent":["// src/infiniteQueryObserver.ts\nimport { QueryObserver } from \"./queryObserver.js\";\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n} from \"./infiniteQueryBehavior.js\";\nvar InfiniteQueryObserver = class extends QueryObserver {\n constructor(client, options) {\n super(client, options);\n }\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n setOptions(options) {\n super.setOptions({\n ...options,\n behavior: infiniteQueryBehavior()\n });\n }\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n fetchNextPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"forward\" }\n }\n });\n }\n fetchPreviousPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"backward\" }\n }\n });\n }\n createResult(query, options) {\n const { state } = query;\n const parentResult = super.createResult(query, options);\n const { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n const fetchDirection = state.fetchMeta?.fetchMore?.direction;\n const isFetchNextPageError = isError && fetchDirection === \"forward\";\n const isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n const isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n const isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n const result = {\n ...parentResult,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchNextPageError,\n isFetchingNextPage,\n isFetchPreviousPageError,\n isFetchingPreviousPage,\n isRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n return result;\n }\n};\nexport {\n InfiniteQueryObserver\n};\n//# sourceMappingURL=infiniteQueryObserver.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n this.#observerMatches = newObserverMatches;\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine) {\n if (combine) {\n if (!this.#combinedResult || this.#result !== this.#lastResult || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult;\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const newResult = this.#combineResult(newTracked, this.#options?.combine);\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","// src/streamedQuery.ts\nimport { addToEnd } from \"./utils.js\";\nfunction streamedQuery({\n streamFn,\n refetchMode = \"reset\",\n reducer = (items, chunk) => addToEnd(items, chunk),\n initialValue = []\n}) {\n return async (context) => {\n const query = context.client.getQueryCache().find({ queryKey: context.queryKey, exact: true });\n const isRefetch = !!query && query.state.data !== void 0;\n if (isRefetch && refetchMode === \"reset\") {\n query.setState({\n status: \"pending\",\n data: void 0,\n error: null,\n fetchStatus: \"fetching\"\n });\n }\n let result = initialValue;\n const stream = await streamFn(context);\n for await (const chunk of stream) {\n if (context.signal.aborted) {\n break;\n }\n if (!isRefetch || refetchMode !== \"replace\") {\n context.client.setQueryData(\n context.queryKey,\n (prev) => reducer(prev === void 0 ? initialValue : prev, chunk)\n );\n }\n result = reducer(result, chunk);\n }\n if (isRefetch && refetchMode === \"replace\" && !context.signal.aborted) {\n context.client.setQueryData(context.queryKey, result);\n }\n return context.client.getQueryData(context.queryKey) ?? initialValue;\n };\n}\nexport {\n streamedQuery\n};\n//# sourceMappingURL=streamedQuery.js.map","// src/types.ts\nvar dataTagSymbol = Symbol(\"dataTagSymbol\");\nvar dataTagErrorSymbol = Symbol(\"dataTagErrorSymbol\");\nvar unsetMarker = Symbol(\"unsetMarker\");\nexport {\n dataTagErrorSymbol,\n dataTagSymbol,\n unsetMarker\n};\n//# sourceMappingURL=types.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((query) => {\n ensureSuspenseTimers(query);\n ensurePreventErrorBoundaryRetry(query, errorResetBoundary);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts) {\n const queryObserver = new QueryObserver(client, opts);\n if (shouldSuspend(opts, result)) {\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n } else if (willFetch(result, isRestoring)) {\n void fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useSuspenseInfiniteQuery.ts\nimport { InfiniteQueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseInfiniteQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseInfiniteQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError\n },\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseInfiniteQuery\n};\n//# sourceMappingURL=useSuspenseInfiniteQuery.js.map","\"use client\";\n\n// src/useSuspenseQueries.ts\nimport { skipToken } from \"@tanstack/query-core\";\nimport { useQueries } from \"./useQueries.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQueries(options, queryClient) {\n return useQueries(\n {\n ...options,\n queries: options.queries.map((query) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (query.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQueries\");\n }\n }\n return {\n ...query,\n suspense: true,\n throwOnError: defaultThrowOnError,\n enabled: true,\n placeholderData: void 0\n };\n })\n },\n queryClient\n );\n}\nexport {\n useSuspenseQueries\n};\n//# sourceMappingURL=useSuspenseQueries.js.map","// src/usePrefetchQuery.tsx\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction usePrefetchQuery(options, queryClient) {\n const client = useQueryClient(queryClient);\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchQuery(options);\n }\n}\nexport {\n usePrefetchQuery\n};\n//# sourceMappingURL=usePrefetchQuery.js.map","// src/usePrefetchInfiniteQuery.tsx\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction usePrefetchInfiniteQuery(options, queryClient) {\n const client = useQueryClient(queryClient);\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchInfiniteQuery(options);\n }\n}\nexport {\n usePrefetchInfiniteQuery\n};\n//# sourceMappingURL=usePrefetchInfiniteQuery.js.map","// src/queryOptions.ts\nfunction queryOptions(options) {\n return options;\n}\nexport {\n queryOptions\n};\n//# sourceMappingURL=queryOptions.js.map","// src/infiniteQueryOptions.ts\nfunction infiniteQueryOptions(options) {\n return options;\n}\nexport {\n infiniteQueryOptions\n};\n//# sourceMappingURL=infiniteQueryOptions.js.map","\"use client\";\n\n// src/useIsFetching.ts\nimport * as React from \"react\";\nimport { notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useIsFetching(filters, queryClient) {\n const client = useQueryClient(queryClient);\n const queryCache = client.getQueryCache();\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache]\n ),\n () => client.isFetching(filters),\n () => client.isFetching(filters)\n );\n}\nexport {\n useIsFetching\n};\n//# sourceMappingURL=useIsFetching.js.map","\"use client\";\n\n// src/useMutationState.ts\nimport * as React from \"react\";\nimport { notifyManager, replaceEqualDeep } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useIsMutating(filters, queryClient) {\n const client = useQueryClient(queryClient);\n return useMutationState(\n { filters: { ...filters, status: \"pending\" } },\n client\n ).length;\n}\nfunction getResult(mutationCache, options) {\n return mutationCache.findAll(options.filters).map(\n (mutation) => options.select ? options.select(mutation) : mutation.state\n );\n}\nfunction useMutationState(options = {}, queryClient) {\n const mutationCache = useQueryClient(queryClient).getMutationCache();\n const optionsRef = React.useRef(options);\n const result = React.useRef(null);\n if (result.current === null) {\n result.current = getResult(mutationCache, options);\n }\n React.useEffect(() => {\n optionsRef.current = options;\n });\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current)\n );\n if (result.current !== nextResult) {\n result.current = nextResult;\n notifyManager.schedule(onStoreChange);\n }\n }),\n [mutationCache]\n ),\n () => result.current,\n () => result.current\n );\n}\nexport {\n useIsMutating,\n useMutationState\n};\n//# sourceMappingURL=useMutationState.js.map","// src/mutationOptions.ts\nfunction mutationOptions(options) {\n return options;\n}\nexport {\n mutationOptions\n};\n//# sourceMappingURL=mutationOptions.js.map","\"use client\";\n\n// src/useInfiniteQuery.ts\nimport { InfiniteQueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useInfiniteQuery(options, queryClient) {\n return useBaseQuery(\n options,\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useInfiniteQuery\n};\n//# sourceMappingURL=useInfiniteQuery.js.map"],"names":["InfiniteQueryObserver","QueryObserver","client","options","infiniteQueryBehavior","query","state","parentResult","isFetching","isRefetching","isError","isRefetchError","fetchDirection","isFetchNextPageError","isFetchingNextPage","isFetchPreviousPageError","isFetchingPreviousPage","hasNextPage","hasPreviousPage","difference","array1","array2","excludeSet","x","replaceAt","array","index","value","copy","QueriesObserver","Subscribable","#client","#result","#queries","#options","#observers","#combinedResult","#lastCombine","#lastResult","#observerMatches","queries","observer","result","#onUpdate","queryHashes","notifyManager","prevObservers","newObserverMatches","#findMatchingObservers","match","newObservers","newResult","hasLengthChange","hasIndexChange","hasStructuralChange","hasResultChange","prev","shallowEqualObjects","#notify","combine","matches","#combineResult","#trackResult","observerResult","accessedProp","m","input","replaceEqualDeep","prevObserversMap","key","previousObservers","observers","defaultedOptions","previousResult","newTracked","listener","streamedQuery","streamFn","refetchMode","reducer","items","chunk","addToEnd","initialValue","context","isRefetch","stream","dataTagSymbol","dataTagErrorSymbol","unsetMarker","useQueries","queryClient","useQueryClient","isRestoring","useIsRestoring","errorResetBoundary","useQueryErrorResetBoundary","defaultedQueries","React","opts","ensureSuspenseTimers","ensurePreventErrorBoundaryRetry","useClearResetErrorBoundary","optimisticResult","getCombinedResult","trackResult","shouldSubscribe","onStoreChange","noop","suspensePromises","shouldSuspend","queryObserver","fetchOptimistic","willFetch","firstSingleResultWhichShouldThrow","getHasError","useSuspenseInfiniteQuery","skipToken","useBaseQuery","defaultThrowOnError","useSuspenseQueries","usePrefetchQuery","usePrefetchInfiniteQuery","queryOptions","infiniteQueryOptions","useIsFetching","filters","queryCache","useIsMutating","useMutationState","getResult","mutationCache","mutation","optionsRef","nextResult","mutationOptions","useInfiniteQuery"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}
1
+ {"version":3,"file":"zudoku.react-query.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.90.12/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../../node_modules/.pnpm/@tanstack+query-core@5.90.12/node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../node_modules/.pnpm/@tanstack+query-core@5.90.12/node_modules/@tanstack/query-core/build/modern/streamedQuery.js","../../../node_modules/.pnpm/@tanstack+query-core@5.90.12/node_modules/@tanstack/query-core/build/modern/types.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/useQueries.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/useSuspenseInfiniteQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/useSuspenseQueries.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/usePrefetchQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/usePrefetchInfiniteQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/queryOptions.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/infiniteQueryOptions.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/useIsFetching.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/useMutationState.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/mutationOptions.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.12_react@19.2.4/node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js"],"sourcesContent":["// src/infiniteQueryObserver.ts\nimport { QueryObserver } from \"./queryObserver.js\";\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n} from \"./infiniteQueryBehavior.js\";\nvar InfiniteQueryObserver = class extends QueryObserver {\n constructor(client, options) {\n super(client, options);\n }\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n setOptions(options) {\n super.setOptions({\n ...options,\n behavior: infiniteQueryBehavior()\n });\n }\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n fetchNextPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"forward\" }\n }\n });\n }\n fetchPreviousPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"backward\" }\n }\n });\n }\n createResult(query, options) {\n const { state } = query;\n const parentResult = super.createResult(query, options);\n const { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n const fetchDirection = state.fetchMeta?.fetchMore?.direction;\n const isFetchNextPageError = isError && fetchDirection === \"forward\";\n const isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n const isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n const isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n const result = {\n ...parentResult,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchNextPageError,\n isFetchingNextPage,\n isFetchPreviousPageError,\n isFetchingPreviousPage,\n isRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n return result;\n }\n};\nexport {\n InfiniteQueryObserver\n};\n//# sourceMappingURL=infiniteQueryObserver.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n this.#observerMatches = newObserverMatches;\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine) {\n if (combine) {\n if (!this.#combinedResult || this.#result !== this.#lastResult || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult;\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const newResult = this.#combineResult(newTracked, this.#options?.combine);\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","// src/streamedQuery.ts\nimport { addToEnd } from \"./utils.js\";\nfunction streamedQuery({\n streamFn,\n refetchMode = \"reset\",\n reducer = (items, chunk) => addToEnd(items, chunk),\n initialValue = []\n}) {\n return async (context) => {\n const query = context.client.getQueryCache().find({ queryKey: context.queryKey, exact: true });\n const isRefetch = !!query && query.state.data !== void 0;\n if (isRefetch && refetchMode === \"reset\") {\n query.setState({\n status: \"pending\",\n data: void 0,\n error: null,\n fetchStatus: \"fetching\"\n });\n }\n let result = initialValue;\n const stream = await streamFn(context);\n for await (const chunk of stream) {\n if (context.signal.aborted) {\n break;\n }\n if (!isRefetch || refetchMode !== \"replace\") {\n context.client.setQueryData(\n context.queryKey,\n (prev) => reducer(prev === void 0 ? initialValue : prev, chunk)\n );\n }\n result = reducer(result, chunk);\n }\n if (isRefetch && refetchMode === \"replace\" && !context.signal.aborted) {\n context.client.setQueryData(context.queryKey, result);\n }\n return context.client.getQueryData(context.queryKey) ?? initialValue;\n };\n}\nexport {\n streamedQuery\n};\n//# sourceMappingURL=streamedQuery.js.map","// src/types.ts\nvar dataTagSymbol = Symbol(\"dataTagSymbol\");\nvar dataTagErrorSymbol = Symbol(\"dataTagErrorSymbol\");\nvar unsetMarker = Symbol(\"unsetMarker\");\nexport {\n dataTagErrorSymbol,\n dataTagSymbol,\n unsetMarker\n};\n//# sourceMappingURL=types.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((query) => {\n ensureSuspenseTimers(query);\n ensurePreventErrorBoundaryRetry(query, errorResetBoundary);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts) {\n const queryObserver = new QueryObserver(client, opts);\n if (shouldSuspend(opts, result)) {\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n } else if (willFetch(result, isRestoring)) {\n void fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useSuspenseInfiniteQuery.ts\nimport { InfiniteQueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseInfiniteQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseInfiniteQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError\n },\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseInfiniteQuery\n};\n//# sourceMappingURL=useSuspenseInfiniteQuery.js.map","\"use client\";\n\n// src/useSuspenseQueries.ts\nimport { skipToken } from \"@tanstack/query-core\";\nimport { useQueries } from \"./useQueries.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQueries(options, queryClient) {\n return useQueries(\n {\n ...options,\n queries: options.queries.map((query) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (query.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQueries\");\n }\n }\n return {\n ...query,\n suspense: true,\n throwOnError: defaultThrowOnError,\n enabled: true,\n placeholderData: void 0\n };\n })\n },\n queryClient\n );\n}\nexport {\n useSuspenseQueries\n};\n//# sourceMappingURL=useSuspenseQueries.js.map","// src/usePrefetchQuery.tsx\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction usePrefetchQuery(options, queryClient) {\n const client = useQueryClient(queryClient);\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchQuery(options);\n }\n}\nexport {\n usePrefetchQuery\n};\n//# sourceMappingURL=usePrefetchQuery.js.map","// src/usePrefetchInfiniteQuery.tsx\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction usePrefetchInfiniteQuery(options, queryClient) {\n const client = useQueryClient(queryClient);\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchInfiniteQuery(options);\n }\n}\nexport {\n usePrefetchInfiniteQuery\n};\n//# sourceMappingURL=usePrefetchInfiniteQuery.js.map","// src/queryOptions.ts\nfunction queryOptions(options) {\n return options;\n}\nexport {\n queryOptions\n};\n//# sourceMappingURL=queryOptions.js.map","// src/infiniteQueryOptions.ts\nfunction infiniteQueryOptions(options) {\n return options;\n}\nexport {\n infiniteQueryOptions\n};\n//# sourceMappingURL=infiniteQueryOptions.js.map","\"use client\";\n\n// src/useIsFetching.ts\nimport * as React from \"react\";\nimport { notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useIsFetching(filters, queryClient) {\n const client = useQueryClient(queryClient);\n const queryCache = client.getQueryCache();\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache]\n ),\n () => client.isFetching(filters),\n () => client.isFetching(filters)\n );\n}\nexport {\n useIsFetching\n};\n//# sourceMappingURL=useIsFetching.js.map","\"use client\";\n\n// src/useMutationState.ts\nimport * as React from \"react\";\nimport { notifyManager, replaceEqualDeep } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useIsMutating(filters, queryClient) {\n const client = useQueryClient(queryClient);\n return useMutationState(\n { filters: { ...filters, status: \"pending\" } },\n client\n ).length;\n}\nfunction getResult(mutationCache, options) {\n return mutationCache.findAll(options.filters).map(\n (mutation) => options.select ? options.select(mutation) : mutation.state\n );\n}\nfunction useMutationState(options = {}, queryClient) {\n const mutationCache = useQueryClient(queryClient).getMutationCache();\n const optionsRef = React.useRef(options);\n const result = React.useRef(null);\n if (result.current === null) {\n result.current = getResult(mutationCache, options);\n }\n React.useEffect(() => {\n optionsRef.current = options;\n });\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current)\n );\n if (result.current !== nextResult) {\n result.current = nextResult;\n notifyManager.schedule(onStoreChange);\n }\n }),\n [mutationCache]\n ),\n () => result.current,\n () => result.current\n );\n}\nexport {\n useIsMutating,\n useMutationState\n};\n//# sourceMappingURL=useMutationState.js.map","// src/mutationOptions.ts\nfunction mutationOptions(options) {\n return options;\n}\nexport {\n mutationOptions\n};\n//# sourceMappingURL=mutationOptions.js.map","\"use client\";\n\n// src/useInfiniteQuery.ts\nimport { InfiniteQueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useInfiniteQuery(options, queryClient) {\n return useBaseQuery(\n options,\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useInfiniteQuery\n};\n//# sourceMappingURL=useInfiniteQuery.js.map"],"names":["InfiniteQueryObserver","QueryObserver","client","options","infiniteQueryBehavior","query","state","parentResult","isFetching","isRefetching","isError","isRefetchError","fetchDirection","isFetchNextPageError","isFetchingNextPage","isFetchPreviousPageError","isFetchingPreviousPage","hasNextPage","hasPreviousPage","difference","array1","array2","excludeSet","x","replaceAt","array","index","value","copy","QueriesObserver","Subscribable","#client","#result","#queries","#options","#observers","#combinedResult","#lastCombine","#lastResult","#observerMatches","queries","observer","result","#onUpdate","queryHashes","notifyManager","prevObservers","newObserverMatches","#findMatchingObservers","match","newObservers","newResult","hasLengthChange","hasIndexChange","hasStructuralChange","hasResultChange","prev","shallowEqualObjects","#notify","combine","matches","#combineResult","#trackResult","observerResult","accessedProp","m","input","replaceEqualDeep","prevObserversMap","key","previousObservers","observers","defaultedOptions","previousResult","newTracked","listener","streamedQuery","streamFn","refetchMode","reducer","items","chunk","addToEnd","initialValue","context","isRefetch","stream","dataTagSymbol","dataTagErrorSymbol","unsetMarker","useQueries","queryClient","useQueryClient","isRestoring","useIsRestoring","errorResetBoundary","useQueryErrorResetBoundary","defaultedQueries","React","opts","ensureSuspenseTimers","ensurePreventErrorBoundaryRetry","useClearResetErrorBoundary","optimisticResult","getCombinedResult","trackResult","shouldSubscribe","onStoreChange","noop","suspensePromises","shouldSuspend","queryObserver","fetchOptimistic","willFetch","firstSingleResultWhichShouldThrow","getHasError","useSuspenseInfiniteQuery","skipToken","useBaseQuery","defaultThrowOnError","useSuspenseQueries","usePrefetchQuery","usePrefetchInfiniteQuery","queryOptions","infiniteQueryOptions","useIsFetching","filters","queryCache","useIsMutating","useMutationState","getResult","mutationCache","mutation","optionsRef","nextResult","mutationOptions","useInfiniteQuery"],"mappings":";;;;;;;;AAOG,IAACA,IAAwB,cAAcC,EAAc;AAAA,EACtD,YAAYC,GAAQC,GAAS;AAC3B,UAAMD,GAAQC,CAAO;AAAA,EACvB;AAAA,EACA,cAAc;AACZ,UAAM,YAAW,GACjB,KAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI,GACjD,KAAK,oBAAoB,KAAK,kBAAkB,KAAK,IAAI;AAAA,EAC3D;AAAA,EACA,WAAWA,GAAS;AAClB,UAAM,WAAW;AAAA,MACf,GAAGA;AAAA,MACH,UAAUC,EAAqB;AAAA,IACrC,CAAK;AAAA,EACH;AAAA,EACA,oBAAoBD,GAAS;AAC3B,WAAAA,EAAQ,WAAWC,EAAqB,GACjC,MAAM,oBAAoBD,CAAO;AAAA,EAC1C;AAAA,EACA,cAAcA,GAAS;AACrB,WAAO,KAAK,MAAM;AAAA,MAChB,GAAGA;AAAA,MACH,MAAM;AAAA,QACJ,WAAW,EAAE,WAAW,UAAS;AAAA,MACzC;AAAA,IACA,CAAK;AAAA,EACH;AAAA,EACA,kBAAkBA,GAAS;AACzB,WAAO,KAAK,MAAM;AAAA,MAChB,GAAGA;AAAA,MACH,MAAM;AAAA,QACJ,WAAW,EAAE,WAAW,WAAU;AAAA,MAC1C;AAAA,IACA,CAAK;AAAA,EACH;AAAA,EACA,aAAaE,GAAOF,GAAS;AAC3B,UAAM,EAAE,OAAAG,EAAK,IAAKD,GACZE,IAAe,MAAM,aAAaF,GAAOF,CAAO,GAChD,EAAE,YAAAK,GAAY,cAAAC,GAAc,SAAAC,GAAS,gBAAAC,EAAc,IAAKJ,GACxDK,IAAiBN,EAAM,WAAW,WAAW,WAC7CO,IAAuBH,KAAWE,MAAmB,WACrDE,IAAqBN,KAAcI,MAAmB,WACtDG,IAA2BL,KAAWE,MAAmB,YACzDI,IAAyBR,KAAcI,MAAmB;AAchE,WAbe;AAAA,MACb,GAAGL;AAAA,MACH,eAAe,KAAK;AAAA,MACpB,mBAAmB,KAAK;AAAA,MACxB,aAAaU,EAAYd,GAASG,EAAM,IAAI;AAAA,MAC5C,iBAAiBY,EAAgBf,GAASG,EAAM,IAAI;AAAA,MACpD,sBAAAO;AAAA,MACA,oBAAAC;AAAA,MACA,0BAAAC;AAAA,MACA,wBAAAC;AAAA,MACA,gBAAgBL,KAAkB,CAACE,KAAwB,CAACE;AAAA,MAC5D,cAAcN,KAAgB,CAACK,KAAsB,CAACE;AAAA,IAC5D;AAAA,EAEE;AACF;AC7DA,SAASG,EAAWC,GAAQC,GAAQ;AAClC,QAAMC,IAAa,IAAI,IAAID,CAAM;AACjC,SAAOD,EAAO,OAAO,CAACG,MAAM,CAACD,EAAW,IAAIC,CAAC,CAAC;AAChD;AACA,SAASC,EAAUC,GAAOC,GAAOC,GAAO;AACtC,QAAMC,IAAOH,EAAM,MAAM,CAAC;AAC1B,SAAAG,EAAKF,CAAK,IAAIC,GACPC;AACT;AACG,IAACC,IAAkB,cAAcC,EAAa;AAAA,EAC/CC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC,KAAmB,CAAA;AAAA,EACnB,YAAYrC,GAAQsC,GAASrC,GAAS;AACpC,UAAK,GACL,KAAK4B,KAAU7B,GACf,KAAKgC,KAAW/B,GAChB,KAAK8B,KAAW,CAAA,GAChB,KAAKE,KAAa,CAAA,GAClB,KAAKH,KAAU,CAAA,GACf,KAAK,WAAWQ,CAAO;AAAA,EACzB;AAAA,EACA,cAAc;AACZ,IAAI,KAAK,UAAU,SAAS,KAC1B,KAAKL,GAAW,QAAQ,CAACM,MAAa;AACpC,MAAAA,EAAS,UAAU,CAACC,MAAW;AAC7B,aAAKC,GAAUF,GAAUC,CAAM;AAAA,MACjC,CAAC;AAAA,IACH,CAAC;AAAA,EAEL;AAAA,EACA,gBAAgB;AACd,IAAK,KAAK,UAAU,QAClB,KAAK,QAAO;AAAA,EAEhB;AAAA,EACA,UAAU;AACR,SAAK,YAA4B,oBAAI,IAAG,GACxC,KAAKP,GAAW,QAAQ,CAACM,MAAa;AACpC,MAAAA,EAAS,QAAO;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EACA,WAAWD,GAASrC,GAAS;AAG3B,QAFA,KAAK8B,KAAWO,GAChB,KAAKN,KAAW/B,GACZ,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAMyC,IAAcJ,EAAQ;AAAA,QAC1B,CAACnC,MAAU,KAAK0B,GAAQ,oBAAoB1B,CAAK,EAAE;AAAA,MAC3D;AACM,MAAI,IAAI,IAAIuC,CAAW,EAAE,SAASA,EAAY,UAC5C,QAAQ;AAAA,QACN;AAAA,MACV;AAAA,IAEI;AACA,IAAAC,EAAc,MAAM,MAAM;AACxB,YAAMC,IAAgB,KAAKX,IACrBY,IAAqB,KAAKC,GAAuB,KAAKf,EAAQ;AACpE,WAAKM,KAAmBQ,GACxBA,EAAmB;AAAA,QACjB,CAACE,MAAUA,EAAM,SAAS,WAAWA,EAAM,qBAAqB;AAAA,MACxE;AACM,YAAMC,IAAeH,EAAmB,IAAI,CAACE,MAAUA,EAAM,QAAQ,GAC/DE,IAAYD,EAAa;AAAA,QAC7B,CAACT,MAAaA,EAAS,iBAAgB;AAAA,MAC/C,GACYW,IAAkBN,EAAc,WAAWI,EAAa,QACxDG,IAAiBH,EAAa;AAAA,QAClC,CAACT,GAAUf,MAAUe,MAAaK,EAAcpB,CAAK;AAAA,MAC7D,GACY4B,IAAsBF,KAAmBC,GACzCE,IAAkBD,IAAsB,KAAOH,EAAU,KAAK,CAACT,GAAQhB,MAAU;AACrF,cAAM8B,IAAO,KAAKxB,GAAQN,CAAK;AAC/B,eAAO,CAAC8B,KAAQ,CAACC,EAAoBf,GAAQc,CAAI;AAAA,MACnD,CAAC;AACD,MAAI,CAACF,KAAuB,CAACC,MACzBD,MACF,KAAKnB,KAAae,IAEpB,KAAKlB,KAAUmB,GACV,KAAK,mBACNG,MACFnC,EAAW2B,GAAeI,CAAY,EAAE,QAAQ,CAACT,MAAa;AAC5D,QAAAA,EAAS,QAAO;AAAA,MAClB,CAAC,GACDtB,EAAW+B,GAAcJ,CAAa,EAAE,QAAQ,CAACL,MAAa;AAC5D,QAAAA,EAAS,UAAU,CAACC,MAAW;AAC7B,eAAKC,GAAUF,GAAUC,CAAM;AAAA,QACjC,CAAC;AAAA,MACH,CAAC,IAEH,KAAKgB,GAAO;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EACA,mBAAmB;AACjB,WAAO,KAAK1B;AAAA,EACd;AAAA,EACA,aAAa;AACX,WAAO,KAAKG,GAAW,IAAI,CAACM,MAAaA,EAAS,iBAAiB;AAAA,EACrE;AAAA,EACA,eAAe;AACb,WAAO,KAAKN;AAAA,EACd;AAAA,EACA,oBAAoBK,GAASmB,GAAS;AACpC,UAAMC,IAAU,KAAKZ,GAAuBR,CAAO,GAC7CE,IAASkB,EAAQ;AAAA,MACrB,CAACX,MAAUA,EAAM,SAAS,oBAAoBA,EAAM,qBAAqB;AAAA,IAC/E;AACI,WAAO;AAAA,MACLP;AAAA,MACA,CAAC,MACQ,KAAKmB,GAAe,KAAKnB,GAAQiB,CAAO;AAAA,MAEjD,MACS,KAAKG,GAAapB,GAAQkB,CAAO;AAAA,IAEhD;AAAA,EACE;AAAA,EACAE,GAAapB,GAAQkB,GAAS;AAC5B,WAAOA,EAAQ,IAAI,CAACX,GAAOvB,MAAU;AACnC,YAAMqC,IAAiBrB,EAAOhB,CAAK;AACnC,aAAQuB,EAAM,sBAAsB,sBAI/Bc,IAJqDd,EAAM,SAAS,YAAYc,GAAgB,CAACC,MAAiB;AACrH,QAAAJ,EAAQ,QAAQ,CAACK,MAAM;AACrB,UAAAA,EAAE,SAAS,UAAUD,CAAY;AAAA,QACnC,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EACAH,GAAeK,GAAOP,GAAS;AAC7B,WAAIA,MACE,CAAC,KAAKvB,MAAmB,KAAKJ,OAAY,KAAKM,MAAeqB,MAAY,KAAKtB,QACjF,KAAKA,KAAesB,GACpB,KAAKrB,KAAc,KAAKN,IACxB,KAAKI,KAAkB+B;AAAA,MACrB,KAAK/B;AAAA,MACLuB,EAAQO,CAAK;AAAA,IACvB,IAEa,KAAK9B,MAEP8B;AAAA,EACT;AAAA,EACAlB,GAAuBR,GAAS;AAC9B,UAAM4B,IAAmC,oBAAI,IAAG;AAChD,SAAKjC,GAAW,QAAQ,CAACM,MAAa;AACpC,YAAM4B,IAAM5B,EAAS,QAAQ;AAC7B,UAAI,CAAC4B,EAAK;AACV,YAAMC,IAAoBF,EAAiB,IAAIC,CAAG;AAClD,MAAIC,IACFA,EAAkB,KAAK7B,CAAQ,IAE/B2B,EAAiB,IAAIC,GAAK,CAAC5B,CAAQ,CAAC;AAAA,IAExC,CAAC;AACD,UAAM8B,IAAY,CAAA;AAClB,WAAA/B,EAAQ,QAAQ,CAACrC,MAAY;AAC3B,YAAMqE,IAAmB,KAAKzC,GAAQ,oBAAoB5B,CAAO,GAE3DsC,IADQ2B,EAAiB,IAAII,EAAiB,SAAS,GAAG,MAAK,KAC3C,IAAIvE,EAAc,KAAK8B,IAASyC,CAAgB;AAC1E,MAAAD,EAAU,KAAK;AAAA,QACb,uBAAuBC;AAAA,QACvB,UAAA/B;AAAA,MACR,CAAO;AAAA,IACH,CAAC,GACM8B;AAAA,EACT;AAAA,EACA5B,GAAUF,GAAUC,GAAQ;AAC1B,UAAMhB,IAAQ,KAAKS,GAAW,QAAQM,CAAQ;AAC9C,IAAIf,MAAU,OACZ,KAAKM,KAAUR,EAAU,KAAKQ,IAASN,GAAOgB,CAAM,GACpD,KAAKgB,GAAO;AAAA,EAEhB;AAAA,EACAA,KAAU;AACR,QAAI,KAAK,gBAAgB;AACvB,YAAMe,IAAiB,KAAKrC,IACtBsC,IAAa,KAAKZ,GAAa,KAAK9B,IAAS,KAAKO,EAAgB,GAClEY,IAAY,KAAKU,GAAea,GAAY,KAAKxC,IAAU,OAAO;AACxE,MAAIuC,MAAmBtB,KACrBN,EAAc,MAAM,MAAM;AACxB,aAAK,UAAU,QAAQ,CAAC8B,MAAa;AACnC,UAAAA,EAAS,KAAK3C,EAAO;AAAA,QACvB,CAAC;AAAA,MACH,CAAC;AAAA,IAEL;AAAA,EACF;AACF;ACpMA,SAAS4C,EAAc;AAAA,EACrB,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,SAAAC,IAAU,CAACC,GAAOC,MAAUC,EAASF,GAAOC,CAAK;AAAA,EACjD,cAAAE,IAAe,CAAA;AACjB,GAAG;AACD,SAAO,OAAOC,MAAY;AACxB,UAAM/E,IAAQ+E,EAAQ,OAAO,cAAa,EAAG,KAAK,EAAE,UAAUA,EAAQ,UAAU,OAAO,GAAI,CAAE,GACvFC,IAAY,CAAC,CAAChF,KAASA,EAAM,MAAM,SAAS;AAClD,IAAIgF,KAAaP,MAAgB,WAC/BzE,EAAM,SAAS;AAAA,MACb,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,IACrB,CAAO;AAEH,QAAIqC,IAASyC;AACb,UAAMG,IAAS,MAAMT,EAASO,CAAO;AACrC,qBAAiBH,KAASK,GAAQ;AAChC,UAAIF,EAAQ,OAAO;AACjB;AAEF,OAAI,CAACC,KAAaP,MAAgB,cAChCM,EAAQ,OAAO;AAAA,QACbA,EAAQ;AAAA,QACR,CAAC5B,MAASuB,EAAQvB,MAAS,SAAS2B,IAAe3B,GAAMyB,CAAK;AAAA,MACxE,GAEMvC,IAASqC,EAAQrC,GAAQuC,CAAK;AAAA,IAChC;AACA,WAAII,KAAaP,MAAgB,aAAa,CAACM,EAAQ,OAAO,WAC5DA,EAAQ,OAAO,aAAaA,EAAQ,UAAU1C,CAAM,GAE/C0C,EAAQ,OAAO,aAAaA,EAAQ,QAAQ,KAAKD;AAAA,EAC1D;AACF;ACrCG,IAACI,IAAgB,OAAO,eAAe,GACtCC,KAAqB,OAAO,oBAAoB,GAChDC,KAAc,OAAO,aAAa;ACqBtC,SAASC,EAAW;AAAA,EAClB,SAAAlD;AAAA,EACA,GAAGrC;AACL,GAAGwF,GAAa;AACd,QAAMzF,IAAS0F,EAAeD,CAAW,GACnCE,IAAcC,EAAc,GAC5BC,IAAqBC,EAA0B,GAC/CC,IAAmBC,EAAM;AAAA,IAC7B,MAAM1D,EAAQ,IAAI,CAAC2D,MAAS;AAC1B,YAAM3B,IAAmBtE,EAAO;AAAA,QAC9BiG;AAAA,MACR;AACM,aAAA3B,EAAiB,qBAAqBqB,IAAc,gBAAgB,cAC7DrB;AAAA,IACT,CAAC;AAAA,IACD,CAAChC,GAAStC,GAAQ2F,CAAW;AAAA,EACjC;AACE,EAAAI,EAAiB,QAAQ,CAAC5F,MAAU;AAClC,IAAA+F,EAAqB/F,CAAK,GAC1BgG,EAAgChG,GAAO0F,CAAkB;AAAA,EAC3D,CAAC,GACDO,EAA2BP,CAAkB;AAC7C,QAAM,CAACtD,CAAQ,IAAIyD,EAAM;AAAA,IACvB,MAAM,IAAIrE;AAAA,MACR3B;AAAA,MACA+F;AAAA,MACA9F;AAAA,IACN;AAAA,EACA,GACQ,CAACoG,GAAkBC,GAAmBC,CAAW,IAAIhE,EAAS;AAAA,IAClEwD;AAAA,IACA9F,EAAQ;AAAA,EACZ,GACQuG,IAAkB,CAACb,KAAe1F,EAAQ,eAAe;AAC/D,EAAA+F,EAAM;AAAA,IACJA,EAAM;AAAA,MACJ,CAACS,MAAkBD,IAAkBjE,EAAS,UAAUI,EAAc,WAAW8D,CAAa,CAAC,IAAIC;AAAA,MACnG,CAACnE,GAAUiE,CAAe;AAAA,IAChC;AAAA,IACI,MAAMjE,EAAS,iBAAgB;AAAA,IAC/B,MAAMA,EAAS,iBAAgB;AAAA,EACnC,GACEyD,EAAM,UAAU,MAAM;AACpB,IAAAzD,EAAS;AAAA,MACPwD;AAAA,MACA9F;AAAA,IACN;AAAA,EACE,GAAG,CAAC8F,GAAkB9F,GAASsC,CAAQ,CAAC;AAIxC,QAAMoE,IAH0BN,EAAiB;AAAA,IAC/C,CAAC7D,GAAQhB,MAAUoF,EAAcb,EAAiBvE,CAAK,GAAGgB,CAAM;AAAA,EACpE,IACqD6D,EAAiB,QAAQ,CAAC7D,GAAQhB,MAAU;AAC7F,UAAMyE,IAAOF,EAAiBvE,CAAK;AACnC,QAAIyE,GAAM;AACR,YAAMY,IAAgB,IAAI9G,EAAcC,GAAQiG,CAAI;AACpD,UAAIW,EAAcX,GAAMzD,CAAM;AAC5B,eAAOsE,EAAgBb,GAAMY,GAAehB,CAAkB;AACzD,MAAIkB,EAAUvE,GAAQmD,CAAW,KACjCmB,EAAgBb,GAAMY,GAAehB,CAAkB;AAAA,IAEhE;AACA,WAAO,CAAA;AAAA,EACT,CAAC,IAAI,CAAA;AACL,MAAIc,EAAiB,SAAS;AAC5B,UAAM,QAAQ,IAAIA,CAAgB;AAEpC,QAAMK,IAAoCX,EAAiB;AAAA,IACzD,CAAC7D,GAAQhB,MAAU;AACjB,YAAMrB,IAAQ4F,EAAiBvE,CAAK;AACpC,aAAOrB,KAAS8G,EAAY;AAAA,QAC1B,QAAAzE;AAAA,QACA,oBAAAqD;AAAA,QACA,cAAc1F,EAAM;AAAA,QACpB,OAAOH,EAAO,cAAa,EAAG,IAAIG,EAAM,SAAS;AAAA,QACjD,UAAUA,EAAM;AAAA,MACxB,CAAO;AAAA,IACH;AAAA,EACJ;AACE,MAAI6G,GAAmC;AACrC,UAAMA,EAAkC;AAE1C,SAAOV,EAAkBC,GAAa;AACxC;ACpGA,SAASW,GAAyBjH,GAASwF,GAAa;AACtD,SAAI,QAAQ,IAAI,aAAa,gBACvBxF,EAAQ,YAAYkH,KACtB,QAAQ,MAAM,uDAAuD,GAGlEC;AAAA,IACL;AAAA,MACE,GAAGnH;AAAA,MACH,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAcoH;AAAA,IACpB;AAAA,IACIvH;AAAA,IACA2F;AAAA,EACJ;AACA;AChBA,SAAS6B,GAAmBrH,GAASwF,GAAa;AAChD,SAAOD;AAAA,IACL;AAAA,MACE,GAAGvF;AAAA,MACH,SAASA,EAAQ,QAAQ,IAAI,CAACE,OACxB,QAAQ,IAAI,aAAa,gBACvBA,EAAM,YAAYgH,KACpB,QAAQ,MAAM,iDAAiD,GAG5D;AAAA,QACL,GAAGhH;AAAA,QACH,UAAU;AAAA,QACV,cAAckH;AAAA,QACd,SAAS;AAAA,QACT,iBAAiB;AAAA,MAC3B,EACO;AAAA,IACP;AAAA,IACI5B;AAAA,EACJ;AACA;ACzBA,SAAS8B,GAAiBtH,GAASwF,GAAa;AAC9C,QAAMzF,IAAS0F,EAAeD,CAAW;AACzC,EAAKzF,EAAO,cAAcC,EAAQ,QAAQ,KACxCD,EAAO,cAAcC,CAAO;AAEhC;ACLA,SAASuH,GAAyBvH,GAASwF,GAAa;AACtD,QAAMzF,IAAS0F,EAAeD,CAAW;AACzC,EAAKzF,EAAO,cAAcC,EAAQ,QAAQ,KACxCD,EAAO,sBAAsBC,CAAO;AAExC;ACNA,SAASwH,GAAaxH,GAAS;AAC7B,SAAOA;AACT;ACFA,SAASyH,GAAqBzH,GAAS;AACrC,SAAOA;AACT;ACGA,SAAS0H,GAAcC,GAASnC,GAAa;AAC3C,QAAMzF,IAAS0F,EAAeD,CAAW,GACnCoC,IAAa7H,EAAO,cAAa;AACvC,SAAOgG,EAAM;AAAA,IACXA,EAAM;AAAA,MACJ,CAACS,MAAkBoB,EAAW,UAAUlF,EAAc,WAAW8D,CAAa,CAAC;AAAA,MAC/E,CAACoB,CAAU;AAAA,IACjB;AAAA,IACI,MAAM7H,EAAO,WAAW4H,CAAO;AAAA,IAC/B,MAAM5H,EAAO,WAAW4H,CAAO;AAAA,EACnC;AACA;ACXA,SAASE,GAAcF,GAASnC,GAAa;AAC3C,QAAMzF,IAAS0F,EAAeD,CAAW;AACzC,SAAOsC;AAAA,IACL,EAAE,SAAS,EAAE,GAAGH,GAAS,QAAQ,UAAS,EAAE;AAAA,IAC5C5H;AAAA,EACJ,EAAI;AACJ;AACA,SAASgI,EAAUC,GAAehI,GAAS;AACzC,SAAOgI,EAAc,QAAQhI,EAAQ,OAAO,EAAE;AAAA,IAC5C,CAACiI,MAAajI,EAAQ,SAASA,EAAQ,OAAOiI,CAAQ,IAAIA,EAAS;AAAA,EACvE;AACA;AACA,SAASH,EAAiB9H,IAAU,CAAA,GAAIwF,GAAa;AACnD,QAAMwC,IAAgBvC,EAAeD,CAAW,EAAE,iBAAgB,GAC5D0C,IAAanC,EAAM,OAAO/F,CAAO,GACjCuC,IAASwD,EAAM,OAAO,IAAI;AAChC,SAAIxD,EAAO,YAAY,SACrBA,EAAO,UAAUwF,EAAUC,GAAehI,CAAO,IAEnD+F,EAAM,UAAU,MAAM;AACpB,IAAAmC,EAAW,UAAUlI;AAAA,EACvB,CAAC,GACM+F,EAAM;AAAA,IACXA,EAAM;AAAA,MACJ,CAACS,MAAkBwB,EAAc,UAAU,MAAM;AAC/C,cAAMG,IAAanE;AAAA,UACjBzB,EAAO;AAAA,UACPwF,EAAUC,GAAeE,EAAW,OAAO;AAAA,QACrD;AACQ,QAAI3F,EAAO,YAAY4F,MACrB5F,EAAO,UAAU4F,GACjBzF,EAAc,SAAS8D,CAAa;AAAA,MAExC,CAAC;AAAA,MACD,CAACwB,CAAa;AAAA,IACpB;AAAA,IACI,MAAMzF,EAAO;AAAA,IACb,MAAMA,EAAO;AAAA,EACjB;AACA;AC5CA,SAAS6F,GAAgBpI,GAAS;AAChC,SAAOA;AACT;ACEA,SAASqI,GAAiBrI,GAASwF,GAAa;AAC9C,SAAO2B;AAAA,IACLnH;AAAA,IACAH;AAAA,IACA2F;AAAA,EACJ;AACA;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}