zudoku 0.0.0-zc17c4c22 → 0.0.0-zd57c18df
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.
- package/dist/app/main.js +1 -1
- package/dist/app/main.js.map +1 -1
- package/dist/config/create-plugin.d.ts +2 -0
- package/dist/config/create-plugin.js +55 -0
- package/dist/config/create-plugin.js.map +1 -0
- package/dist/config/loader.js +2 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/InputNavigationSchema.d.ts +118 -68
- package/dist/config/validators/InputNavigationSchema.js +17 -0
- package/dist/config/validators/InputNavigationSchema.js.map +1 -1
- package/dist/config/validators/NavigationSchema.d.ts +10 -2
- package/dist/config/validators/NavigationSchema.js +7 -0
- package/dist/config/validators/NavigationSchema.js.map +1 -1
- package/dist/config/validators/validate.d.ts +5 -4
- package/dist/config/validators/validate.js +2 -0
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/flat-config.d.ts +12 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/components/Bootstrap.js +1 -2
- package/dist/lib/components/Bootstrap.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +2 -1
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/Slot.test.js +1 -1
- package/dist/lib/components/Slot.test.js.map +1 -1
- package/dist/lib/components/TopNavigation.d.ts +7 -1
- package/dist/lib/components/TopNavigation.js +7 -2
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/Zudoku.d.ts +4 -1
- package/dist/lib/components/Zudoku.js +4 -7
- package/dist/lib/components/Zudoku.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +9 -4
- package/dist/lib/components/context/ZudokuContext.js +4 -2
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuProvider.js +1 -1
- package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
- package/dist/lib/components/context/ZudokuReactContext.d.ts +11 -0
- package/dist/lib/components/context/ZudokuReactContext.js +4 -0
- package/dist/lib/components/context/ZudokuReactContext.js.map +1 -0
- package/dist/lib/components/navigation/Navigation.js +4 -3
- package/dist/lib/components/navigation/Navigation.js.map +1 -1
- package/dist/lib/components/navigation/NavigationCategory.js +8 -0
- package/dist/lib/components/navigation/NavigationCategory.js.map +1 -1
- package/dist/lib/components/navigation/NavigationFilterContext.d.ts +8 -0
- package/dist/lib/components/navigation/NavigationFilterContext.js +12 -0
- package/dist/lib/components/navigation/NavigationFilterContext.js.map +1 -0
- package/dist/lib/components/navigation/NavigationFilterInput.d.ts +3 -0
- package/dist/lib/components/navigation/NavigationFilterInput.js +9 -0
- package/dist/lib/components/navigation/NavigationFilterInput.js.map +1 -0
- package/dist/lib/components/navigation/NavigationItem.js +11 -1
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
- package/dist/lib/components/navigation/utils.d.ts +2 -1
- package/dist/lib/components/navigation/utils.js +22 -1
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +2 -1
- package/dist/lib/core/ZudokuContext.js +3 -1
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/core/__internal.d.ts +1 -0
- package/dist/lib/core/__internal.js +2 -0
- package/dist/lib/core/__internal.js.map +1 -1
- package/dist/lib/core/plugins.d.ts +5 -1
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/core/transform-config.d.ts +4 -2
- package/dist/lib/core/transform-config.js +33 -13
- package/dist/lib/core/transform-config.js.map +1 -1
- package/dist/lib/core/transform-config.test.d.ts +1 -0
- package/dist/lib/core/transform-config.test.js +83 -0
- package/dist/lib/core/transform-config.test.js.map +1 -0
- package/dist/lib/errors/ErrorAlert.js +1 -2
- package/dist/lib/errors/ErrorAlert.js.map +1 -1
- package/dist/lib/hooks/useEvent.test.js +1 -1
- package/dist/lib/hooks/useEvent.test.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js +3 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.d.ts +6 -0
- package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js +20 -0
- package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +7 -2
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
- package/dist/lib/ui/Alert.d.ts +3 -2
- package/dist/lib/ui/Alert.js +9 -5
- package/dist/lib/ui/Alert.js.map +1 -1
- package/dist/lib/ui/InputGroup.d.ts +16 -0
- package/dist/lib/ui/InputGroup.js +65 -0
- package/dist/lib/ui/InputGroup.js.map +1 -0
- package/dist/lib/ui/Secret.js +2 -2
- package/dist/lib/ui/Secret.js.map +1 -1
- package/dist/vite/config.js +5 -2
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/plugin-config.js +16 -4
- package/dist/vite/plugin-config.js.map +1 -1
- package/dist/vite/plugin-theme.js +2 -1
- package/dist/vite/plugin-theme.js.map +1 -1
- package/dist/vite/prerender/prerender.js +3 -1
- package/dist/vite/prerender/prerender.js.map +1 -1
- package/dist/vite/prerender/worker.js +3 -1
- package/dist/vite/prerender/worker.js.map +1 -1
- package/lib/{ClaudeLogo-C6q-Xn_l.js → ClaudeLogo-Br8C_vTq.js} +3 -3
- package/lib/{ClaudeLogo-C6q-Xn_l.js.map → ClaudeLogo-Br8C_vTq.js.map} +1 -1
- package/lib/{HydrationBoundary-CNF2ZV3E.js → HydrationBoundary-CJu4vUlG.js} +6 -6
- package/lib/{HydrationBoundary-CNF2ZV3E.js.map → HydrationBoundary-CJu4vUlG.js.map} +1 -1
- package/lib/{MdxPage-B1G4W1TK.js → MdxPage-C0QFAsgv.js} +6 -6
- package/lib/{MdxPage-B1G4W1TK.js.map → MdxPage-C0QFAsgv.js.map} +1 -1
- package/lib/Mermaid-Chx5BPHn.js +104 -0
- package/lib/Mermaid-Chx5BPHn.js.map +1 -0
- package/lib/{OAuthErrorPage-01Ke086W.js → OAuthErrorPage-CFz_gBFx.js} +11 -10
- package/lib/{OAuthErrorPage-01Ke086W.js.map → OAuthErrorPage-CFz_gBFx.js.map} +1 -1
- package/lib/{OasProvider-oHPiMJZg.js → OasProvider-BQ60YgAd.js} +3 -3
- package/lib/{OasProvider-oHPiMJZg.js.map → OasProvider-BQ60YgAd.js.map} +1 -1
- package/lib/{OperationList-CZ4OK8Pm.js → OperationList-D31urxqy.js} +40 -39
- package/lib/{OperationList-CZ4OK8Pm.js.map → OperationList-D31urxqy.js.map} +1 -1
- package/lib/{RouteGuard-B1lCR0C_.js → RouteGuard-CVs3yvEs.js} +3 -3
- package/lib/{RouteGuard-B1lCR0C_.js.map → RouteGuard-CVs3yvEs.js.map} +1 -1
- package/lib/{SchemaList-DoQFkJgM.js → SchemaList-CSVFH585.js} +7 -7
- package/lib/{SchemaList-DoQFkJgM.js.map → SchemaList-CSVFH585.js.map} +1 -1
- package/lib/{SchemaView-D2k6ZJck.js → SchemaView-D4marpgk.js} +3 -3
- package/lib/{SchemaView-D2k6ZJck.js.map → SchemaView-D4marpgk.js.map} +1 -1
- package/lib/{Secret-BDBqq4p3.js → Secret-DUpgv4V3.js} +92 -72
- package/lib/Secret-DUpgv4V3.js.map +1 -0
- package/lib/{SignUp-8kDBaLbO.js → SignUp-Dug1jAGC.js} +4 -4
- package/lib/{SignUp-8kDBaLbO.js.map → SignUp-Dug1jAGC.js.map} +1 -1
- package/lib/{SyntaxHighlight-hZOFnYl0.js → SyntaxHighlight-BMu0b_hF.js} +8 -8
- package/lib/{SyntaxHighlight-hZOFnYl0.js.map → SyntaxHighlight-BMu0b_hF.js.map} +1 -1
- package/lib/{Toc-qEIii_-W.js → Toc-BiJ2YL0O.js} +2 -2
- package/lib/{Toc-qEIii_-W.js.map → Toc-BiJ2YL0O.js.map} +1 -1
- package/lib/{Zudoku-DUsdmPME.js → Zudoku-iyiXgWFY.js} +2777 -2622
- package/lib/Zudoku-iyiXgWFY.js.map +1 -0
- package/lib/ZudokuContext-CYyb_PB_.js +175 -0
- package/lib/ZudokuContext-CYyb_PB_.js.map +1 -0
- package/lib/ZudokuReactContext-DGJAP1sN.js +222 -0
- package/lib/ZudokuReactContext-DGJAP1sN.js.map +1 -0
- package/lib/{circular-D9tSKG2c.js → circular-cPOX8BVJ.js} +2 -2
- package/lib/{circular-D9tSKG2c.js.map → circular-cPOX8BVJ.js.map} +1 -1
- package/lib/{createServer-BprC4n85.js → createServer-SJT25uZH.js} +4 -4
- package/lib/{createServer-BprC4n85.js.map → createServer-SJT25uZH.js.map} +1 -1
- package/lib/{errors-7hgPDs1h.js → errors-B77S9iOc.js} +2 -2
- package/lib/{errors-7hgPDs1h.js.map → errors-B77S9iOc.js.map} +1 -1
- package/lib/{firebase-Dwn-2ju-.js → firebase-C7XKRGLf.js} +25 -24
- package/lib/{firebase-Dwn-2ju-.js.map → firebase-C7XKRGLf.js.map} +1 -1
- package/lib/{hook-ZEd1Es7D.js → hook-Dz_n9SoE.js} +16 -15
- package/lib/{hook-ZEd1Es7D.js.map → hook-Dz_n9SoE.js.map} +1 -1
- package/lib/{index-Dxdhrp-I.js → index-BDp2MTiq.js} +2 -2
- package/lib/{index-Dxdhrp-I.js.map → index-BDp2MTiq.js.map} +1 -1
- package/lib/{index-CyIW9rHv.js → index-Bc2mE-53.js} +642 -606
- package/lib/index-Bc2mE-53.js.map +1 -0
- package/lib/{index.esm-DG4KaDKR.js → index.esm-Cth49JBv.js} +2 -2
- package/lib/index.esm-Cth49JBv.js.map +1 -0
- package/lib/{mutation-BISOc7OM.js → mutation-B7eFBLZY.js} +2 -2
- package/lib/{mutation-BISOc7OM.js.map → mutation-B7eFBLZY.js.map} +1 -1
- package/lib/ui/Alert.js +32 -20
- package/lib/ui/Alert.js.map +1 -1
- package/lib/ui/InputGroup.js +155 -0
- package/lib/ui/InputGroup.js.map +1 -0
- package/lib/ui/Secret.js +2 -2
- package/lib/ui/Secret.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +2 -2
- package/lib/{useMutation-CFMGlAMW.js → useMutation-CErliDZ9.js} +5 -5
- package/lib/{useMutation-CFMGlAMW.js.map → useMutation-CErliDZ9.js.map} +1 -1
- package/lib/{useSuspenseQuery-CSB_rVek.js → useQuery-ht7aWJ3S.js} +432 -446
- package/lib/useQuery-ht7aWJ3S.js.map +1 -0
- package/lib/useSuspenseQuery-DQH4Bmc2.js +18 -0
- package/lib/useSuspenseQuery-DQH4Bmc2.js.map +1 -0
- package/lib/zudoku.__internal.js +524 -500
- package/lib/zudoku.__internal.js.map +1 -1
- package/lib/zudoku.auth-auth0.js +6 -5
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-azureb2c.js +14 -13
- package/lib/zudoku.auth-azureb2c.js.map +1 -1
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-firebase.js +4 -4
- package/lib/zudoku.auth-openid.js +7 -6
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.auth-supabase.js +4 -4
- package/lib/zudoku.components.js +3 -3
- package/lib/zudoku.hooks.js +3 -3
- package/lib/zudoku.mermaid.js +3 -3
- package/lib/zudoku.plugin-api-catalog.js +28 -27
- package/lib/zudoku.plugin-api-catalog.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +98 -96
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +2 -2
- package/lib/zudoku.plugin-search-pagefind.js +19 -18
- package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
- package/lib/zudoku.plugins.js.map +1 -1
- package/lib/zudoku.react-query.js +26 -25
- package/lib/zudoku.react-query.js.map +1 -1
- package/package.json +9 -3
- package/src/app/defaultTheme.css +4 -0
- package/src/app/main.css +2 -0
- package/src/app/main.tsx +1 -1
- package/src/lib/components/Bootstrap.tsx +1 -4
- package/src/lib/components/MobileTopNavigation.tsx +13 -8
- package/src/lib/components/Slot.test.tsx +1 -1
- package/src/lib/components/TopNavigation.tsx +25 -7
- package/src/lib/components/Zudoku.tsx +18 -14
- package/src/lib/components/context/ZudokuContext.ts +3 -6
- package/src/lib/components/context/ZudokuProvider.tsx +1 -1
- package/src/lib/components/context/ZudokuReactContext.tsx +17 -0
- package/src/lib/components/navigation/Navigation.tsx +4 -3
- package/src/lib/components/navigation/NavigationCategory.tsx +9 -0
- package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -0
- package/src/lib/components/navigation/NavigationFilterInput.tsx +35 -0
- package/src/lib/components/navigation/NavigationItem.tsx +17 -1
- package/src/lib/components/navigation/utils.ts +32 -1
- package/src/lib/core/ZudokuContext.ts +7 -1
- package/src/lib/core/__internal.tsx +2 -0
- package/src/lib/core/plugins.ts +7 -3
- package/src/lib/core/transform-config.test.tsx +99 -0
- package/src/lib/core/transform-config.ts +57 -19
- package/src/lib/errors/ErrorAlert.tsx +1 -6
- package/src/lib/hooks/useEvent.test.tsx +1 -1
- package/src/lib/plugins/openapi/playground/fileUtils.ts +4 -0
- package/src/lib/plugins/openapi/playground/result-panel/AudioPlayer.tsx +50 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +33 -17
- package/src/lib/ui/Alert.tsx +17 -5
- package/src/lib/ui/InputGroup.tsx +168 -0
- package/src/lib/ui/Secret.tsx +2 -2
- package/lib/Mermaid-B1xNo-pf.js +0 -103
- package/lib/Mermaid-B1xNo-pf.js.map +0 -1
- package/lib/Secret-BDBqq4p3.js.map +0 -1
- package/lib/Separator-BXt1LYnm.js +0 -27
- package/lib/Separator-BXt1LYnm.js.map +0 -1
- package/lib/Zudoku-DUsdmPME.js.map +0 -1
- package/lib/ZudokuContext-BBI06sOx.js +0 -387
- package/lib/ZudokuContext-BBI06sOx.js.map +0 -1
- package/lib/index-CyIW9rHv.js.map +0 -1
- package/lib/index.esm-DG4KaDKR.js.map +0 -1
- 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} ›{\" \"}\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} ›{\" \"}\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
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
import { i as P, h as U, a as
|
|
4
|
-
import { H as
|
|
5
|
-
import { M as
|
|
6
|
-
import { M as je, u as Ge } from "./useMutation-
|
|
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:
|
|
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
|
|
62
|
+
function G(e, t, s) {
|
|
62
63
|
const n = e.slice(0);
|
|
63
64
|
return n[t] = s, n;
|
|
64
65
|
}
|
|
65
|
-
var
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
384
|
+
De as HydrationBoundary,
|
|
384
385
|
N as InfiniteQueryObserver,
|
|
385
386
|
pe as IsRestoringProvider,
|
|
386
|
-
|
|
387
|
-
|
|
387
|
+
ze as Mutation,
|
|
388
|
+
Fe as MutationCache,
|
|
388
389
|
je as MutationObserver,
|
|
389
|
-
|
|
390
|
+
J as QueriesObserver,
|
|
390
391
|
ge as Query,
|
|
391
|
-
|
|
392
|
-
|
|
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
|
-
|
|
401
|
-
|
|
402
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.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":";;;;;;;;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]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zudoku",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-zd57c18df",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"homepage": "https://zudoku.dev",
|
|
6
6
|
"repository": {
|
|
@@ -155,7 +155,6 @@
|
|
|
155
155
|
"dependencies": {
|
|
156
156
|
"@apidevtools/json-schema-ref-parser": "14.1.1",
|
|
157
157
|
"@envelop/core": "5.3.2",
|
|
158
|
-
"@fastify/deepmerge": "3.1.0",
|
|
159
158
|
"@graphql-typed-document-node/core": "3.2.0",
|
|
160
159
|
"@lekoarts/rehype-meta-as-attributes": "3.0.3",
|
|
161
160
|
"@mdx-js/react": "3.1.1",
|
|
@@ -309,6 +308,13 @@
|
|
|
309
308
|
"react": ">=19.2.0",
|
|
310
309
|
"react-dom": ">=19.2.0"
|
|
311
310
|
},
|
|
311
|
+
"typesVersions": {
|
|
312
|
+
"*": {
|
|
313
|
+
"ui/*": [
|
|
314
|
+
"./src/lib/ui/*"
|
|
315
|
+
]
|
|
316
|
+
}
|
|
317
|
+
},
|
|
312
318
|
"peerDependenciesMeta": {
|
|
313
319
|
"@azure/msal-browser": {
|
|
314
320
|
"optional": true
|
|
@@ -337,7 +343,7 @@
|
|
|
337
343
|
},
|
|
338
344
|
"scripts": {
|
|
339
345
|
"build": "tsc --project tsconfig.app.json",
|
|
340
|
-
"build:dev": "esbuild './src/**/*.ts' --format=esm --platform=node --target=node22 --outdir=dist --splitting --log-level=warning",
|
|
346
|
+
"build:dev": "esbuild './src/**/*.ts' './src/**/*.tsx' --format=esm --platform=node --target=node22 --outdir=dist --splitting --log-level=warning",
|
|
341
347
|
"build:vite": "vite build",
|
|
342
348
|
"generate:types": "tsx scripts/generate-types.js && tsx scripts/generate-flat-config.js",
|
|
343
349
|
"build:standalone:vite": "vite build --mode standalone --config vite.standalone.config.ts",
|
package/src/app/defaultTheme.css
CHANGED
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
--accent: oklch(0.967 0.001 286.375);
|
|
21
21
|
--accent-foreground: oklch(0.21 0.006 285.885);
|
|
22
22
|
--destructive: oklch(0.577 0.245 27.325);
|
|
23
|
+
--warning: oklch(0.84 0.16 84);
|
|
24
|
+
--warning-foreground: oklch(0.47 0.14 46.2);
|
|
23
25
|
--border: oklch(0.92 0.004 286.32);
|
|
24
26
|
--input: oklch(0.92 0.004 286.32);
|
|
25
27
|
--ring: oklch(0.705 0.015 286.067);
|
|
@@ -54,6 +56,8 @@
|
|
|
54
56
|
--accent: oklch(0.274 0.006 286.033);
|
|
55
57
|
--accent-foreground: oklch(0.985 0 0);
|
|
56
58
|
--destructive: oklch(0.704 0.191 22.216);
|
|
59
|
+
--warning: oklch(0.41 0.11 46);
|
|
60
|
+
--warning-foreground: oklch(0.99 0.02 95);
|
|
57
61
|
--border: oklch(1 0 0 / 10%);
|
|
58
62
|
--input: oklch(1 0 0 / 15%);
|
|
59
63
|
--ring: oklch(0.552 0.016 285.938);
|
package/src/app/main.css
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
@custom-variant dark (&:is(.dark *));
|
|
9
9
|
|
|
10
10
|
@theme inline {
|
|
11
|
+
--color-warning: var(--warning);
|
|
12
|
+
--color-warning-foreground: var(--warning-foreground);
|
|
11
13
|
--color-background: var(--background);
|
|
12
14
|
--color-foreground: var(--foreground);
|
|
13
15
|
--color-card: var(--card);
|
package/src/app/main.tsx
CHANGED
|
@@ -111,7 +111,7 @@ export const getRoutesByConfig = (config: ZudokuConfig): RouteObject[] => {
|
|
|
111
111
|
return [
|
|
112
112
|
{
|
|
113
113
|
element: (
|
|
114
|
-
<Zudoku {...options}>
|
|
114
|
+
<Zudoku {...options} env={import.meta.env}>
|
|
115
115
|
<BuildCheck
|
|
116
116
|
buildId={import.meta.env.ZUPLO_BUILD_ID}
|
|
117
117
|
environmentType={import.meta.env.ZUPLO_ENVIRONMENT_TYPE}
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
StaticRouterProvider,
|
|
13
13
|
} from "react-router";
|
|
14
14
|
import { RouterProvider } from "react-router/dom";
|
|
15
|
-
import { StaggeredRenderContext } from "../plugins/openapi/StaggeredRender.js";
|
|
16
15
|
import { BypassProtectedRoutesContext } from "./context/BypassProtectedRoutesContext.js";
|
|
17
16
|
|
|
18
17
|
const queryClient = new QueryClient({
|
|
@@ -36,9 +35,7 @@ const Bootstrap = ({
|
|
|
36
35
|
<HydrationBoundary state={hydrate ? (window as any).DATA : undefined}>
|
|
37
36
|
<BypassProtectedRoutesContext value={false}>
|
|
38
37
|
<HelmetProvider>
|
|
39
|
-
<
|
|
40
|
-
<RouterProvider router={router} />
|
|
41
|
-
</StaggeredRenderContext.Provider>
|
|
38
|
+
<RouterProvider router={router} />
|
|
42
39
|
</HelmetProvider>
|
|
43
40
|
</BypassProtectedRoutesContext>
|
|
44
41
|
</HydrationBoundary>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
|
|
2
2
|
import { MenuIcon } from "lucide-react";
|
|
3
3
|
import { useState } from "react";
|
|
4
|
+
import { Separator } from "zudoku/ui/Separator.js";
|
|
4
5
|
import { Skeleton } from "zudoku/ui/Skeleton.js";
|
|
5
6
|
import { useAuth } from "../authentication/hook.js";
|
|
6
7
|
import {
|
|
@@ -43,7 +44,7 @@ export const MobileTopNavigation = () => {
|
|
|
43
44
|
<PageProgress />
|
|
44
45
|
</div>
|
|
45
46
|
<DrawerContent
|
|
46
|
-
className="lg:hidden h-
|
|
47
|
+
className="lg:hidden h-dvh end-0 start-auto w-[320px] rounded-none"
|
|
47
48
|
aria-describedby={undefined}
|
|
48
49
|
>
|
|
49
50
|
<div className="p-4 overflow-y-auto overscroll-none h-full flex flex-col justify-between">
|
|
@@ -84,13 +85,17 @@ export const MobileTopNavigation = () => {
|
|
|
84
85
|
)}
|
|
85
86
|
</ClientOnly>
|
|
86
87
|
)}
|
|
87
|
-
{filteredItems.map((item) =>
|
|
88
|
-
|
|
89
|
-
<
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
{filteredItems.map((item) =>
|
|
89
|
+
item.type === "separator" ? (
|
|
90
|
+
<Separator className="w-full" key={item.label} />
|
|
91
|
+
) : item.type !== "section" && item.type !== "filter" ? (
|
|
92
|
+
<li key={item.label}>
|
|
93
|
+
<button type="button" onClick={() => setDrawerOpen(false)}>
|
|
94
|
+
<TopNavItem {...item} />
|
|
95
|
+
</button>
|
|
96
|
+
</li>
|
|
97
|
+
) : null,
|
|
98
|
+
)}
|
|
94
99
|
{isAuthEnabled && isAuthenticated && accountItems.length > 0 && (
|
|
95
100
|
<ClientOnly
|
|
96
101
|
fallback={<Skeleton className="rounded-sm h-5 w-24 mr-4" />}
|
|
@@ -20,7 +20,7 @@ import { Slot } from "./Slot.js";
|
|
|
20
20
|
|
|
21
21
|
const createWrapper = (slots: Record<string, ReactNode> = {}) => {
|
|
22
22
|
const queryClient = new QueryClient();
|
|
23
|
-
const context = new ZudokuContext({}, queryClient);
|
|
23
|
+
const context = new ZudokuContext({}, queryClient, {});
|
|
24
24
|
|
|
25
25
|
const wrapper = ({ children }: PropsWithChildren) => (
|
|
26
26
|
<MemoryRouter initialEntries={["/", "/page"]}>
|