zudoku 0.0.0-f3786a4 → 0.0.0-f3d517c
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/README.md +1 -1
- package/cli.js +9 -0
- package/dist/app/ZuploBuildConfig.d.ts +155 -0
- package/dist/app/ZuploBuildConfig.js +29 -0
- package/dist/app/ZuploBuildConfig.js.map +1 -0
- package/dist/app/entry.client.d.ts +5 -0
- package/dist/app/entry.client.js +37 -0
- package/dist/app/entry.client.js.map +1 -1
- package/dist/app/entry.server.d.ts +8 -6
- package/dist/app/entry.server.js +12 -8
- package/dist/app/entry.server.js.map +1 -1
- package/dist/app/env.d.ts +33 -0
- package/dist/app/env.js +29 -0
- package/dist/app/env.js.map +1 -0
- package/dist/app/main.js +23 -30
- package/dist/app/main.js.map +1 -1
- package/dist/cli/build/handler.d.ts +1 -3
- package/dist/cli/build/handler.js +9 -1
- package/dist/cli/build/handler.js.map +1 -1
- package/dist/cli/cli.js +17 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/cmds/build.d.ts +11 -3
- package/dist/cli/cmds/build.js +20 -13
- package/dist/cli/cmds/build.js.map +1 -1
- package/dist/cli/cmds/dev.d.ts +1 -1
- package/dist/cli/cmds/dev.js.map +1 -1
- package/dist/cli/cmds/preview.d.ts +16 -0
- package/dist/cli/cmds/preview.js +25 -0
- package/dist/cli/cmds/preview.js.map +1 -0
- package/dist/cli/common/machine-id/lib.js +1 -0
- package/dist/cli/common/machine-id/lib.js.map +1 -1
- package/dist/cli/common/output.js.map +1 -1
- package/dist/cli/common/utils/ports.d.ts +1 -1
- package/dist/cli/common/utils/ports.js +16 -15
- package/dist/cli/common/utils/ports.js.map +1 -1
- package/dist/cli/dev/handler.js +15 -12
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/cli/preview/handler.d.ts +3 -0
- package/dist/cli/preview/handler.js +35 -0
- package/dist/cli/preview/handler.js.map +1 -0
- package/dist/config/config.d.ts +27 -14
- package/dist/config/file-exists.d.ts +1 -0
- package/dist/config/file-exists.js +5 -0
- package/dist/config/file-exists.js.map +1 -0
- package/dist/config/loader.d.ts +19 -18
- package/dist/config/loader.js +108 -117
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/BuildSchema.d.ts +60 -0
- package/dist/config/validators/BuildSchema.js +31 -0
- package/dist/config/validators/BuildSchema.js.map +1 -0
- package/dist/config/validators/InputSidebarSchema.d.ts +21 -18
- package/dist/config/validators/InputSidebarSchema.js +11 -1
- package/dist/config/validators/InputSidebarSchema.js.map +1 -1
- package/dist/config/validators/SidebarSchema.d.ts +1 -1
- package/dist/config/validators/icon-types.d.ts +1 -1
- package/dist/config/validators/validate.d.ts +4273 -421
- package/dist/config/validators/validate.js +408 -11
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/config/validators/validate.test.js +80 -0
- package/dist/config/validators/validate.test.js.map +1 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/MissingIcon.d.ts +2 -0
- package/dist/lib/MissingIcon.js +7 -0
- package/dist/lib/MissingIcon.js.map +1 -0
- package/dist/lib/auth/issuer.d.ts +2 -0
- package/dist/lib/auth/issuer.js +34 -0
- package/dist/lib/auth/issuer.js.map +1 -0
- package/dist/lib/auth/issuer.test.js +81 -0
- package/dist/lib/auth/issuer.test.js.map +1 -0
- package/dist/lib/authentication/AuthenticationPlugin.d.ts +2 -2
- package/dist/lib/authentication/AuthenticationPlugin.js +1 -1
- package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
- package/dist/lib/authentication/authentication.d.ts +3 -4
- package/dist/lib/authentication/components/CallbackHandler.js +5 -1
- package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
- package/dist/lib/authentication/components/SignIn.d.ts +1 -1
- package/dist/lib/authentication/components/SignIn.js +5 -2
- package/dist/lib/authentication/components/SignIn.js.map +1 -1
- package/dist/lib/authentication/components/SignUp.d.ts +1 -1
- package/dist/lib/authentication/components/SignUp.js +4 -1
- package/dist/lib/authentication/components/SignUp.js.map +1 -1
- package/dist/lib/authentication/hook.d.ts +7 -0
- package/dist/lib/authentication/hook.js +11 -1
- package/dist/lib/authentication/hook.js.map +1 -1
- package/dist/lib/authentication/providers/auth0.d.ts +2 -2
- package/dist/lib/authentication/providers/auth0.js +3 -2
- package/dist/lib/authentication/providers/auth0.js.map +1 -1
- package/dist/lib/authentication/providers/azureb2c.d.ts +28 -0
- package/dist/lib/authentication/providers/azureb2c.js +145 -0
- package/dist/lib/authentication/providers/azureb2c.js.map +1 -0
- package/dist/lib/authentication/providers/clerk.d.ts +2 -2
- package/dist/lib/authentication/providers/clerk.js +92 -55
- package/dist/lib/authentication/providers/clerk.js.map +1 -1
- package/dist/lib/authentication/providers/openid.d.ts +16 -19
- package/dist/lib/authentication/providers/openid.js +78 -43
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/authentication/providers/supabase.d.ts +4 -0
- package/dist/lib/authentication/providers/supabase.js +108 -0
- package/dist/lib/authentication/providers/supabase.js.map +1 -0
- package/dist/lib/authentication/state.d.ts +6 -22
- package/dist/lib/authentication/state.js +28 -13
- package/dist/lib/authentication/state.js.map +1 -1
- package/dist/lib/components/AnchorLink.d.ts +2 -2
- package/dist/lib/components/AnchorLink.js +5 -4
- package/dist/lib/components/AnchorLink.js.map +1 -1
- package/dist/lib/components/Autocomplete.d.ts +4 -3
- package/dist/lib/components/Autocomplete.js +3 -3
- package/dist/lib/components/Autocomplete.js.map +1 -1
- package/dist/lib/components/Banner.js +1 -1
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/Bootstrap.d.ts +2 -1
- package/dist/lib/components/Bootstrap.js +3 -2
- package/dist/lib/components/Bootstrap.js.map +1 -1
- package/dist/lib/components/BuildCheck.d.ts +4 -0
- package/dist/lib/components/BuildCheck.js +38 -0
- package/dist/lib/components/BuildCheck.js.map +1 -0
- package/dist/lib/components/ErrorPage.js +1 -1
- package/dist/lib/components/Footer.d.ts +1 -0
- package/dist/lib/components/Footer.js +32 -0
- package/dist/lib/components/Footer.js.map +1 -0
- package/dist/lib/components/Header.js +17 -9
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +3 -3
- package/dist/lib/components/Heading.js +6 -1
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/InlineCode.d.ts +2 -1
- package/dist/lib/components/InlineCode.js +2 -9
- package/dist/lib/components/InlineCode.js.map +1 -1
- package/dist/lib/components/Layout.js +9 -29
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Main.d.ts +2 -0
- package/dist/lib/components/Main.js +18 -0
- package/dist/lib/components/Main.js.map +1 -0
- package/dist/lib/components/Markdown.d.ts +3 -1
- package/dist/lib/components/Markdown.js +13 -14
- package/dist/lib/components/Markdown.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +7 -3
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/NotFoundPage.js +1 -1
- package/dist/lib/components/Pagination.d.ts +11 -0
- package/dist/lib/components/Pagination.js +10 -0
- package/dist/lib/components/Pagination.js.map +1 -0
- package/dist/lib/components/PathRenderer.d.ts +11 -0
- package/dist/lib/components/PathRenderer.js +28 -0
- package/dist/lib/components/PathRenderer.js.map +1 -0
- package/dist/lib/components/Search.js +7 -1
- package/dist/lib/components/Search.js.map +1 -1
- package/dist/lib/components/Slot.d.ts +17 -0
- package/dist/lib/components/Slot.js +24 -0
- package/dist/lib/components/Slot.js.map +1 -0
- package/dist/lib/components/Slot.test.js +168 -0
- package/dist/lib/components/Slot.test.js.map +1 -0
- package/dist/lib/components/ThemeSwitch.js +9 -6
- package/dist/lib/components/ThemeSwitch.js.map +1 -1
- package/dist/lib/components/TopNavigation.d.ts +2 -4
- package/dist/lib/components/TopNavigation.js +26 -20
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/Zudoku.d.ts +1 -1
- package/dist/lib/components/Zudoku.js +14 -9
- package/dist/lib/components/Zudoku.js.map +1 -1
- package/dist/lib/components/cache.d.ts +7 -0
- package/dist/lib/components/cache.js +7 -0
- package/dist/lib/components/cache.js.map +1 -1
- package/dist/lib/components/context/BypassProtectedRoutesContext.d.ts +1 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.js +3 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.js.map +1 -0
- package/dist/lib/components/context/RouterEventsEmitter.d.ts +1 -0
- package/dist/lib/components/context/RouterEventsEmitter.js +17 -0
- package/dist/lib/components/context/RouterEventsEmitter.js.map +1 -0
- package/dist/lib/components/context/SlotProvider.d.ts +26 -0
- package/dist/lib/components/context/SlotProvider.js +83 -0
- package/dist/lib/components/context/SlotProvider.js.map +1 -0
- package/dist/lib/components/context/ViewportAnchorContext.d.ts +2 -4
- package/dist/lib/components/context/ViewportAnchorContext.js +13 -19
- package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +2 -2
- package/dist/lib/components/context/ZudokuContext.js +18 -7
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuProvider.d.ts +1 -1
- package/dist/lib/components/context/ZudokuProvider.js +2 -1
- package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
- package/dist/lib/components/index.d.ts +50 -24
- package/dist/lib/components/index.js +22 -8
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/PoweredByZudoku.d.ts +3 -0
- package/dist/lib/components/navigation/PoweredByZudoku.js +7 -0
- package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -0
- package/dist/lib/components/navigation/Sidebar.d.ts +3 -1
- package/dist/lib/components/navigation/Sidebar.js +4 -8
- package/dist/lib/components/navigation/Sidebar.js.map +1 -1
- package/dist/lib/components/navigation/SidebarBadge.d.ts +2 -0
- package/dist/lib/components/navigation/SidebarBadge.js +3 -1
- package/dist/lib/components/navigation/SidebarBadge.js.map +1 -1
- package/dist/lib/components/navigation/SidebarCategory.d.ts +2 -2
- package/dist/lib/components/navigation/SidebarCategory.js +33 -23
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
- package/dist/lib/components/navigation/SidebarItem.d.ts +0 -4
- package/dist/lib/components/navigation/SidebarItem.js +28 -27
- package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
- package/dist/lib/components/navigation/SidebarWrapper.d.ts +7 -6
- package/dist/lib/components/navigation/SidebarWrapper.js +18 -3
- package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -1
- package/dist/lib/{plugins/markdown → components/navigation}/Toc.js +6 -8
- package/dist/lib/components/navigation/Toc.js.map +1 -0
- package/dist/lib/components/navigation/ZudokuLogo.d.ts +6 -0
- package/dist/lib/components/navigation/ZudokuLogo.js +5 -0
- package/dist/lib/components/navigation/ZudokuLogo.js.map +1 -0
- package/dist/lib/components/navigation/ZuploLogo.d.ts +3 -0
- package/dist/lib/components/navigation/ZuploLogo.js +4 -0
- package/dist/lib/components/navigation/ZuploLogo.js.map +1 -0
- package/dist/lib/components/navigation/utils.d.ts +8 -0
- package/dist/lib/components/navigation/utils.js +34 -6
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/RouteGuard.d.ts +2 -1
- package/dist/lib/core/RouteGuard.js +35 -11
- package/dist/lib/core/RouteGuard.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +50 -11
- package/dist/lib/core/ZudokuContext.js +33 -9
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/core/plugins.d.ts +21 -8
- package/dist/lib/core/plugins.js +4 -0
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/errors/ErrorAlert.js +6 -1
- package/dist/lib/errors/ErrorAlert.js.map +1 -1
- package/dist/lib/hooks/index.d.ts +28 -0
- package/dist/lib/hooks/index.js +16 -0
- package/dist/lib/hooks/index.js.map +1 -0
- package/dist/lib/hooks/useEvent.d.ts +11 -0
- package/dist/lib/hooks/useEvent.js +19 -0
- package/dist/lib/hooks/useEvent.js.map +1 -0
- package/dist/lib/hooks/useEvent.test.js +100 -0
- package/dist/lib/hooks/useEvent.test.js.map +1 -0
- package/dist/lib/icons.d.ts +1 -0
- package/dist/lib/icons.js +1 -0
- package/dist/lib/icons.js.map +1 -1
- package/dist/lib/oas/graphql/circular.js +23 -7
- package/dist/lib/oas/graphql/circular.js.map +1 -1
- package/dist/lib/oas/graphql/index.d.ts +24 -3
- package/dist/lib/oas/graphql/index.js +182 -49
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/oas/parser/dereference/index.js +2 -0
- package/dist/lib/oas/parser/dereference/index.js.map +1 -1
- package/dist/lib/oas/parser/index.d.ts +8 -3
- package/dist/lib/oas/parser/index.js +7 -23
- package/dist/lib/oas/parser/index.js.map +1 -1
- package/dist/lib/oas/parser/upgrade/index.d.ts +1 -0
- package/dist/lib/oas/parser/upgrade/index.js +76 -23
- package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
- package/dist/lib/plugins/api-catalog/Catalog.d.ts +4 -2
- package/dist/lib/plugins/api-catalog/Catalog.js +16 -26
- package/dist/lib/plugins/api-catalog/Catalog.js.map +1 -1
- package/dist/lib/plugins/api-catalog/index.d.ts +1 -0
- package/dist/lib/plugins/api-catalog/index.js +39 -8
- package/dist/lib/plugins/api-catalog/index.js.map +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
- package/dist/lib/plugins/api-keys/CreateApiKey.js +15 -7
- package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +152 -26
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +21 -11
- package/dist/lib/plugins/api-keys/index.js +48 -32
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/custom-pages/index.d.ts +1 -1
- package/dist/lib/plugins/markdown/MdxPage.d.ts +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js +3 -9
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/index.d.ts +1 -1
- package/dist/lib/plugins/markdown/resolver.d.ts +1 -7
- package/dist/lib/plugins/markdown/resolver.js +0 -29
- package/dist/lib/plugins/markdown/resolver.js.map +1 -1
- package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
- package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
- package/dist/lib/plugins/openapi/ColorizedParam.js +3 -1
- package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
- package/dist/lib/plugins/openapi/Endpoint.js +6 -7
- package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
- package/dist/lib/plugins/openapi/{Route.d.ts → OasProvider.d.ts} +2 -2
- package/dist/lib/plugins/openapi/OasProvider.js +29 -0
- package/dist/lib/plugins/openapi/OasProvider.js.map +1 -0
- package/dist/lib/plugins/openapi/OperationList.d.ts +5 -2
- package/dist/lib/plugins/openapi/OperationList.js +81 -24
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.d.ts +3 -2
- package/dist/lib/plugins/openapi/OperationListItem.js +10 -14
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParamInfos.d.ts +6 -0
- package/dist/lib/plugins/openapi/ParamInfos.js +45 -0
- package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -0
- package/dist/lib/plugins/openapi/ParameterList.d.ts +2 -1
- package/dist/lib/plugins/openapi/ParameterList.js +3 -2
- package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js +16 -4
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +2 -2
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +14 -4
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +2 -0
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +2 -4
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -4
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaList.d.ts +1 -0
- package/dist/lib/plugins/openapi/SchemaList.js +53 -0
- package/dist/lib/plugins/openapi/SchemaList.js.map +1 -0
- package/dist/lib/plugins/openapi/Sidecar.js +53 -79
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.js +26 -15
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -1
- package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +1 -1
- package/dist/lib/plugins/openapi/client/GraphQLClient.js +1 -1
- package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -1
- package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +11 -2
- package/dist/lib/plugins/openapi/client/useCreateQuery.js +14 -7
- package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
- package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
- package/dist/lib/plugins/openapi/components/EnumValues.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/EnumValues.js +15 -0
- package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js +21 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.js +16 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.js.map +1 -0
- package/dist/lib/plugins/openapi/graphql/gql.d.ts +11 -3
- package/dist/lib/plugins/openapi/graphql/gql.js +5 -14
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +112 -22
- package/dist/lib/plugins/openapi/graphql/graphql.js +54 -11
- package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
- package/dist/lib/plugins/openapi/index.d.ts +10 -8
- package/dist/lib/plugins/openapi/index.js +62 -74
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +41 -11
- package/dist/lib/plugins/openapi/playground/BodyPanel.d.ts +5 -0
- package/dist/lib/plugins/openapi/playground/BodyPanel.js +22 -0
- package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.d.ts +2 -2
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +2 -5
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.d.ts +4 -4
- package/dist/lib/plugins/openapi/playground/Headers.js +42 -25
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/IdentityDialog.d.ts +11 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js +14 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js +8 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +9 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js +5 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/PathParams.d.ts +3 -2
- package/dist/lib/plugins/openapi/playground/PathParams.js +5 -12
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +26 -3
- package/dist/lib/plugins/openapi/playground/Playground.js +146 -105
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.js +21 -20
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +8 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +2 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js +22 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.d.ts +17 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js +11 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +110 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +9 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +17 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.d.ts +10 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js +32 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js +56 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.d.ts +16 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js +10 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.d.ts +8 -0
- package/dist/lib/plugins/openapi/{post-processors → processors}/removeExtensions.js +1 -1
- package/dist/lib/plugins/openapi/processors/removeExtensions.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/{post-processors → processors}/removeExtensions.test.js +26 -6
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.js.map +1 -0
- package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.d.ts +3 -1
- package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.js +1 -1
- package/dist/lib/plugins/openapi/processors/removeParameters.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.test.js +53 -25
- package/dist/lib/plugins/openapi/processors/removeParameters.test.js.map +1 -0
- package/dist/lib/plugins/openapi/{post-processors → processors}/removePaths.d.ts +3 -1
- package/dist/lib/plugins/openapi/{post-processors → processors}/removePaths.js +1 -1
- package/dist/lib/plugins/openapi/processors/removePaths.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.js +144 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/traverse.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.d.ts +1 -2
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +2 -2
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.d.ts +2 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js +2 -2
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +1 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.d.ts +4 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +15 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/{SchemaComponents.d.ts → SchemaPropertyItem.d.ts} +2 -4
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +45 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +2 -2
- package/dist/lib/plugins/openapi/schema/SchemaView.js +38 -50
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/utils.d.ts +8 -1
- package/dist/lib/plugins/openapi/schema/utils.js +15 -4
- package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
- package/dist/lib/plugins/openapi/state.d.ts +25 -0
- package/dist/lib/plugins/openapi/state.js +18 -0
- package/dist/lib/plugins/openapi/state.js.map +1 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.d.ts +11 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.js +89 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -0
- package/dist/lib/plugins/openapi/util/createSidebarCategory.d.ts +9 -0
- package/dist/lib/plugins/openapi/util/createSidebarCategory.js +23 -0
- package/dist/lib/plugins/openapi/util/createSidebarCategory.js.map +1 -0
- package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +1 -1
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js +44 -0
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
- package/dist/lib/plugins/openapi/util/getRoutes.d.ts +10 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js +117 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.d.ts +2 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js +10 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js.map +1 -0
- package/dist/lib/plugins/redirect/index.d.ts +1 -1
- package/dist/lib/plugins/search-pagefind/PagefindSearch.d.ts +6 -0
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js +80 -0
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/ResultList.d.ts +8 -0
- package/dist/lib/plugins/search-pagefind/ResultList.js +32 -0
- package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/get-results.d.ts +10 -0
- package/dist/lib/plugins/search-pagefind/get-results.js +42 -0
- package/dist/lib/plugins/search-pagefind/get-results.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/index.d.ts +6 -0
- package/dist/lib/plugins/search-pagefind/index.js +9 -0
- package/dist/lib/plugins/search-pagefind/index.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/types.d.ts +85 -0
- package/dist/lib/plugins/search-pagefind/types.js +2 -0
- package/dist/lib/plugins/search-pagefind/types.js.map +1 -0
- package/dist/lib/shiki.d.ts +31 -0
- package/dist/lib/shiki.js +101 -0
- package/dist/lib/shiki.js.map +1 -0
- package/dist/lib/ui/Badge.d.ts +2 -2
- package/dist/lib/ui/Badge.js +1 -1
- package/dist/lib/ui/Badge.js.map +1 -1
- package/dist/lib/ui/Button.d.ts +3 -3
- package/dist/lib/ui/Button.js +9 -6
- package/dist/lib/ui/Button.js.map +1 -1
- package/dist/lib/ui/Callout.d.ts +2 -1
- package/dist/lib/ui/Callout.js +3 -2
- package/dist/lib/ui/Callout.js.map +1 -1
- package/dist/lib/ui/Card.js +1 -1
- package/dist/lib/ui/Checkbox.d.ts +2 -8
- package/dist/lib/ui/Checkbox.js +1 -13
- package/dist/lib/ui/Checkbox.js.map +1 -1
- package/dist/lib/ui/CodeBlock.d.ts +16 -0
- package/dist/lib/ui/CodeBlock.js +18 -0
- package/dist/lib/ui/CodeBlock.js.map +1 -0
- package/dist/lib/ui/Command.d.ts +8 -2
- package/dist/lib/ui/Command.js +5 -5
- package/dist/lib/ui/Command.js.map +1 -1
- package/dist/lib/ui/Dialog.d.ts +3 -1
- package/dist/lib/ui/Dialog.js +2 -2
- package/dist/lib/ui/Dialog.js.map +1 -1
- package/dist/lib/ui/DropdownMenu.js +4 -4
- package/dist/lib/ui/DropdownMenu.js.map +1 -1
- package/dist/lib/ui/Form.d.ts +1 -1
- package/dist/lib/ui/HoverCard.js +1 -1
- package/dist/lib/ui/HoverCard.js.map +1 -1
- package/dist/lib/ui/Input.d.ts +1 -2
- package/dist/lib/ui/Input.js +1 -1
- package/dist/lib/ui/Input.js.map +1 -1
- package/dist/lib/ui/Popover.js +1 -1
- package/dist/lib/ui/Popover.js.map +1 -1
- package/dist/lib/ui/RadioGroup.js +1 -1
- package/dist/lib/ui/RadioGroup.js.map +1 -1
- package/dist/lib/ui/Select.js +4 -4
- package/dist/lib/ui/Select.js.map +1 -1
- package/dist/lib/ui/Slider.js +1 -1
- package/dist/lib/ui/Slider.js.map +1 -1
- package/dist/lib/ui/Stepper.d.ts +3 -0
- package/dist/lib/ui/Stepper.js +7 -0
- package/dist/lib/ui/Stepper.js.map +1 -0
- package/dist/lib/ui/Switch.js +1 -1
- package/dist/lib/ui/Switch.js.map +1 -1
- package/dist/lib/ui/SyntaxHighlight.d.ts +10 -0
- package/dist/lib/ui/SyntaxHighlight.js +14 -0
- package/dist/lib/ui/SyntaxHighlight.js.map +1 -0
- package/dist/lib/ui/Tabs.js +2 -2
- package/dist/lib/ui/Tabs.js.map +1 -1
- package/dist/lib/ui/Textarea.js +1 -1
- package/dist/lib/ui/Textarea.js.map +1 -1
- package/dist/lib/ui/Toggle.js +1 -1
- package/dist/lib/ui/Toggle.js.map +1 -1
- package/dist/lib/ui/Tooltip.d.ts +2 -1
- package/dist/lib/ui/Tooltip.js +2 -1
- package/dist/lib/ui/Tooltip.js.map +1 -1
- package/dist/lib/ui/util.d.ts +2 -0
- package/dist/lib/ui/util.js +3 -0
- package/dist/lib/ui/util.js.map +1 -0
- package/dist/lib/util/MdxComponents.d.ts +14 -4
- package/dist/lib/util/MdxComponents.js +18 -14
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/detectOS.d.ts +1 -0
- package/dist/lib/util/detectOS.js +11 -0
- package/dist/lib/util/detectOS.js.map +1 -0
- package/dist/lib/util/ensureArray.d.ts +1 -0
- package/dist/lib/util/ensureArray.js +2 -0
- package/dist/lib/util/ensureArray.js.map +1 -0
- package/dist/lib/util/humanFileSize.d.ts +6 -0
- package/dist/lib/util/humanFileSize.js +14 -0
- package/dist/lib/util/humanFileSize.js.map +1 -0
- package/dist/lib/util/humanFileSize.test.d.ts +1 -0
- package/dist/lib/util/humanFileSize.test.js +22 -0
- package/dist/lib/util/humanFileSize.test.js.map +1 -0
- package/dist/lib/util/joinPath.d.ts +3 -0
- package/dist/lib/util/joinPath.js +3 -0
- package/dist/lib/util/joinPath.js.map +1 -1
- package/dist/lib/util/joinUrl.js +1 -1
- package/dist/lib/util/joinUrl.js.map +1 -1
- package/dist/lib/util/joinUrl.test.d.ts +1 -0
- package/dist/lib/util/joinUrl.test.js +43 -0
- package/dist/lib/util/joinUrl.test.js.map +1 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.d.ts +1 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.js +14 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.js.map +1 -0
- package/dist/lib/util/traverse.d.ts +3 -9
- package/dist/lib/util/traverse.js +7 -6
- package/dist/lib/util/traverse.js.map +1 -1
- package/dist/lib/util/types.d.ts +7 -0
- package/dist/lib/util/types.js +2 -0
- package/dist/lib/util/types.js.map +1 -0
- package/dist/lib/util/url.d.ts +4 -0
- package/dist/lib/util/url.js +13 -0
- package/dist/lib/util/url.js.map +1 -0
- package/dist/lib/util/url.test.d.ts +1 -0
- package/dist/lib/util/url.test.js +26 -0
- package/dist/lib/util/url.test.js.map +1 -0
- package/dist/lib/util/useExposedProps.d.ts +8 -1
- package/dist/lib/util/useExposedProps.js.map +1 -1
- package/dist/lib/util/useLatest.d.ts +1 -0
- package/dist/lib/util/useLatest.js +15 -0
- package/dist/lib/util/useLatest.js.map +1 -0
- package/dist/lib/util/useOnScreen.d.ts +3 -2
- package/dist/lib/util/useOnScreen.js +3 -3
- package/dist/lib/util/useOnScreen.js.map +1 -1
- package/dist/lib/util/useScrollToAnchor.js +27 -33
- package/dist/lib/util/useScrollToAnchor.js.map +1 -1
- package/dist/lib/util/useScrollToTop.js +6 -4
- package/dist/lib/util/useScrollToTop.js.map +1 -1
- package/dist/vite/api/SchemaManager.d.ts +36 -0
- package/dist/vite/api/SchemaManager.js +137 -0
- package/dist/vite/api/SchemaManager.js.map +1 -0
- package/dist/vite/api/SchemaManager.test.d.ts +1 -0
- package/dist/vite/api/SchemaManager.test.js +106 -0
- package/dist/vite/api/SchemaManager.test.js.map +1 -0
- package/dist/vite/api/schema-codegen.d.ts +1 -1
- package/dist/vite/api/schema-codegen.js +34 -11
- package/dist/vite/api/schema-codegen.js.map +1 -1
- package/dist/vite/api/schema-codegen.test.js +66 -0
- package/dist/vite/api/schema-codegen.test.js.map +1 -1
- package/dist/vite/build.js +42 -22
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.d.ts +2 -12
- package/dist/vite/config.js +90 -149
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/config.test.js +2 -2
- package/dist/vite/config.test.js.map +1 -1
- package/dist/vite/create-pagefind-index.d.ts +4 -0
- package/dist/vite/create-pagefind-index.js +12 -0
- package/dist/vite/create-pagefind-index.js.map +1 -0
- package/dist/vite/css/plugin.d.ts +1 -2
- package/dist/vite/css/plugin.js +3 -2
- package/dist/vite/css/plugin.js.map +1 -1
- package/dist/vite/dev-server.d.ts +4 -3
- package/dist/vite/dev-server.js +53 -22
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/error-handler.d.ts +1 -1
- package/dist/vite/error-handler.js +1 -1
- package/dist/vite/error-handler.js.map +1 -1
- package/dist/vite/html.d.ts +7 -3
- package/dist/vite/html.js +15 -9
- package/dist/vite/html.js.map +1 -1
- package/dist/vite/output.d.ts +14 -2
- package/dist/vite/output.js +12 -14
- package/dist/vite/output.js.map +1 -1
- package/dist/vite/plugin-api-keys.d.ts +1 -2
- package/dist/vite/plugin-api-keys.js +13 -7
- package/dist/vite/plugin-api-keys.js.map +1 -1
- package/dist/vite/plugin-api.d.ts +1 -2
- package/dist/vite/plugin-api.js +136 -154
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-auth.d.ts +1 -2
- package/dist/vite/plugin-auth.js +6 -5
- package/dist/vite/plugin-auth.js.map +1 -1
- package/dist/vite/plugin-component.d.ts +1 -2
- package/dist/vite/plugin-component.js +10 -4
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/vite/plugin-config-reload.d.ts +3 -3
- package/dist/vite/plugin-config-reload.js +29 -23
- package/dist/vite/plugin-config-reload.js.map +1 -1
- package/dist/vite/plugin-config.d.ts +1 -2
- package/dist/vite/plugin-config.js +11 -6
- package/dist/vite/plugin-config.js.map +1 -1
- package/dist/vite/plugin-configure-tailwind.d.ts +2 -0
- package/dist/vite/plugin-configure-tailwind.js +38 -0
- package/dist/vite/plugin-configure-tailwind.js.map +1 -0
- package/dist/vite/plugin-custom-pages.d.ts +1 -2
- package/dist/vite/plugin-custom-pages.js +6 -5
- package/dist/vite/plugin-custom-pages.js.map +1 -1
- package/dist/vite/plugin-docs.d.ts +2 -3
- package/dist/vite/plugin-docs.js +26 -8
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/plugin-frontmatter.d.ts +1 -2
- package/dist/vite/plugin-frontmatter.js +8 -6
- package/dist/vite/plugin-frontmatter.js.map +1 -1
- package/dist/vite/plugin-mdx.d.ts +1 -2
- package/dist/vite/plugin-mdx.js +37 -32
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-redirect.d.ts +1 -2
- package/dist/vite/plugin-redirect.js +6 -5
- package/dist/vite/plugin-redirect.js.map +1 -1
- package/dist/vite/plugin-search.d.ts +1 -2
- package/dist/vite/plugin-search.js +8 -3
- package/dist/vite/plugin-search.js.map +1 -1
- package/dist/vite/plugin-shiki-register.d.ts +2 -0
- package/dist/vite/plugin-shiki-register.js +39 -0
- package/dist/vite/plugin-shiki-register.js.map +1 -0
- package/dist/vite/plugin-sidebar.d.ts +4 -3
- package/dist/vite/plugin-sidebar.js +24 -8
- package/dist/vite/plugin-sidebar.js.map +1 -1
- package/dist/vite/plugin-theme-css.d.ts +1 -2
- package/dist/vite/plugin-theme-css.js +21 -58
- package/dist/vite/plugin-theme-css.js.map +1 -1
- package/dist/vite/plugin.d.ts +1 -2
- package/dist/vite/plugin.js +23 -20
- package/dist/vite/plugin.js.map +1 -1
- package/dist/vite/prerender/FileWritingResponse.d.ts +25 -0
- package/dist/vite/prerender/FileWritingResponse.js +51 -0
- package/dist/vite/prerender/FileWritingResponse.js.map +1 -0
- package/dist/vite/prerender/InMemoryResponse.d.ts +16 -0
- package/dist/vite/prerender/InMemoryResponse.js +32 -0
- package/dist/vite/prerender/InMemoryResponse.js.map +1 -0
- package/dist/vite/prerender/PrerenderResponse.d.ts +10 -0
- package/dist/vite/prerender/PrerenderResponse.js +2 -0
- package/dist/vite/prerender/PrerenderResponse.js.map +1 -0
- package/dist/vite/prerender/prerender.d.ts +15 -0
- package/dist/vite/prerender/prerender.js +109 -0
- package/dist/vite/prerender/prerender.js.map +1 -0
- package/dist/vite/prerender/worker.d.ts +13 -0
- package/dist/vite/prerender/worker.js +59 -0
- package/dist/vite/prerender/worker.js.map +1 -0
- package/dist/vite/reporter.d.ts +3 -0
- package/dist/vite/reporter.js +33 -0
- package/dist/vite/reporter.js.map +1 -0
- package/dist/vite/sitemap.d.ts +1 -1
- package/dist/vite/sitemap.js +2 -1
- package/dist/vite/sitemap.js.map +1 -1
- package/dist/zuplo/enrich-with-zuplo.d.ts +3 -3
- package/dist/zuplo/enrich-with-zuplo.js +18 -17
- package/dist/zuplo/enrich-with-zuplo.js.map +1 -1
- package/dist/zuplo/with-zuplo-processors.d.ts +2 -2
- package/dist/zuplo/with-zuplo-processors.js +7 -7
- package/dist/zuplo/with-zuplo-processors.js.map +1 -1
- package/dist/zuplo/with-zuplo.d.ts +5 -2
- package/dist/zuplo/with-zuplo.js +6 -5
- package/dist/zuplo/with-zuplo.js.map +1 -1
- package/lib/Button-BE9IVkWV.js +51 -0
- package/lib/Button-BE9IVkWV.js.map +1 -0
- package/lib/Callout-CoVxYafP.js +231 -0
- package/lib/Callout-CoVxYafP.js.map +1 -0
- package/lib/Card-DPhGbYUM.js +61 -0
- package/lib/Card-DPhGbYUM.js.map +1 -0
- package/lib/{CategoryHeading-MYL1u_6K.js → CategoryHeading-Cu2RwgjC.js} +3 -3
- package/lib/{CategoryHeading-MYL1u_6K.js.map → CategoryHeading-Cu2RwgjC.js.map} +1 -1
- package/lib/Dialog-BxpuVLh9.js +99 -0
- package/lib/Dialog-BxpuVLh9.js.map +1 -0
- package/lib/Drawer-BzkOKwgC.js +1133 -0
- package/lib/Drawer-BzkOKwgC.js.map +1 -0
- package/lib/{Markdown-B8o9Qz4q.js → Markdown-BUE2ViaD.js} +14451 -14312
- package/lib/Markdown-BUE2ViaD.js.map +1 -0
- package/lib/MdxPage-By4UkRkI.js +84 -0
- package/lib/MdxPage-By4UkRkI.js.map +1 -0
- package/lib/OasProvider-C6_Kx5O7.js +33 -0
- package/lib/OasProvider-C6_Kx5O7.js.map +1 -0
- package/lib/OperationList-BISd29LY.js +5153 -0
- package/lib/OperationList-BISd29LY.js.map +1 -0
- package/lib/Pagination-CCxhL836.js +36 -0
- package/lib/Pagination-CCxhL836.js.map +1 -0
- package/lib/RouteGuard-CgmsSw7T.js +55 -0
- package/lib/RouteGuard-CgmsSw7T.js.map +1 -0
- package/lib/SchemaList-BqnRo5ov.js +160 -0
- package/lib/SchemaList-BqnRo5ov.js.map +1 -0
- package/lib/SchemaView-CtYJpxQI.js +375 -0
- package/lib/SchemaView-CtYJpxQI.js.map +1 -0
- package/lib/SignUp-CrjeBbqN.js +63 -0
- package/lib/SignUp-CrjeBbqN.js.map +1 -0
- package/lib/Slot-DANV2b7_.js +160 -0
- package/lib/Slot-DANV2b7_.js.map +1 -0
- package/lib/Spinner-mNLZ6awP.js +7 -0
- package/lib/Spinner-mNLZ6awP.js.map +1 -0
- package/lib/SyntaxHighlight-DtvR7RLF.js +10305 -0
- package/lib/SyntaxHighlight-DtvR7RLF.js.map +1 -0
- package/lib/Toc-ClJBmdtI.js +92 -0
- package/lib/Toc-ClJBmdtI.js.map +1 -0
- package/lib/chunk-DQRVZFIR-BblmKnHy.js +1839 -0
- package/lib/chunk-DQRVZFIR-BblmKnHy.js.map +1 -0
- package/lib/{circular-Dgpd6AN-.js → circular-pOdgLzpG.js} +3739 -4202
- package/lib/circular-pOdgLzpG.js.map +1 -0
- package/lib/clerk-yAKDC3Qz.js +24812 -0
- package/lib/clerk-yAKDC3Qz.js.map +1 -0
- package/lib/clsx-OuTLNxxd.js +17 -0
- package/lib/clsx-OuTLNxxd.js.map +1 -0
- package/lib/{cn-qaFjX9_3.js → cn-wvCW-ho6.js} +1015 -563
- package/lib/cn-wvCW-ho6.js.map +1 -0
- package/lib/createServer-qAtUf99r.js +12659 -0
- package/lib/createServer-qAtUf99r.js.map +1 -0
- package/lib/errors-Bpodza84.js +78 -0
- package/lib/errors-Bpodza84.js.map +1 -0
- package/lib/hook-wIlTGE-2.js +1486 -0
- package/lib/hook-wIlTGE-2.js.map +1 -0
- package/lib/index--oeBayMa.js +86 -0
- package/lib/index--oeBayMa.js.map +1 -0
- package/lib/{index-LNp6rxyU.js → index-BvvmIczU.js} +2 -2
- package/lib/{index-LNp6rxyU.js.map → index-BvvmIczU.js.map} +1 -1
- package/lib/index-CrcNWbel.js +316 -0
- package/lib/index-CrcNWbel.js.map +1 -0
- package/lib/index-DI5SPFK9.js +36 -0
- package/lib/{index-Djenk2Hj.js.map → index-DI5SPFK9.js.map} +1 -1
- package/lib/index-QzXzw_ra.js +24 -0
- package/lib/index-QzXzw_ra.js.map +1 -0
- package/lib/index-RFzRn4fM.js +3226 -0
- package/lib/index-RFzRn4fM.js.map +1 -0
- package/lib/{index-Dl3Yl0yb.js → index-zddirpDj.js} +621 -636
- package/lib/index-zddirpDj.js.map +1 -0
- package/lib/index.esm-BFcSKCe-.js +683 -0
- package/lib/{index.esm-9-TF9KQB.js.map → index.esm-BFcSKCe-.js.map} +1 -1
- package/lib/index.esm-Cp4wkyud.js +1236 -0
- package/lib/index.esm-Cp4wkyud.js.map +1 -0
- package/lib/invariant-DAFpPywt.js +48 -0
- package/lib/{invariant-Caa8-XvF.js.map → invariant-DAFpPywt.js.map} +1 -1
- package/lib/joinPath-B7kNnUX4.js +8 -0
- package/lib/joinPath-B7kNnUX4.js.map +1 -0
- package/lib/jsx-runtime-C5mzlN2N.js +285 -0
- package/lib/jsx-runtime-C5mzlN2N.js.map +1 -0
- package/lib/mutation-C-kdA_1r.js +196 -0
- package/lib/mutation-C-kdA_1r.js.map +1 -0
- package/lib/objectEntries-yMIkr2mI.js +5 -0
- package/lib/objectEntries-yMIkr2mI.js.map +1 -0
- package/lib/processors/removeExtensions.js +11 -0
- package/lib/processors/removeExtensions.js.map +1 -0
- package/lib/processors/removeParameters.js +47 -0
- package/lib/processors/removeParameters.js.map +1 -0
- package/lib/processors/removePaths.js +28 -0
- package/lib/processors/removePaths.js.map +1 -0
- package/lib/processors/traverse.js +17 -0
- package/lib/processors/traverse.js.map +1 -0
- package/lib/react-nprogress.esm-C2MPXjiJ.js +389 -0
- package/lib/react-nprogress.esm-C2MPXjiJ.js.map +1 -0
- package/lib/ui/Accordion.js +2 -2
- package/lib/ui/ActionButton.js +11 -10
- package/lib/ui/ActionButton.js.map +1 -1
- package/lib/ui/Alert.js +3 -3
- package/lib/ui/AlertDialog.js +2 -2
- package/lib/ui/Badge.js +4 -4
- package/lib/ui/Badge.js.map +1 -1
- package/lib/ui/Breadcrumb.js +5 -5
- package/lib/ui/Button.js +22 -19
- package/lib/ui/Button.js.map +1 -1
- package/lib/ui/Callout.js +40 -20
- package/lib/ui/Callout.js.map +1 -1
- package/lib/ui/Card.js +9 -9
- package/lib/ui/Card.js.map +1 -1
- package/lib/ui/Carousel.js +348 -348
- package/lib/ui/Carousel.js.map +1 -1
- package/lib/ui/Checkbox.js +16 -26
- package/lib/ui/Checkbox.js.map +1 -1
- package/lib/ui/CodeBlock.js +84 -0
- package/lib/ui/CodeBlock.js.map +1 -0
- package/lib/ui/Command.js +108 -81
- package/lib/ui/Command.js.map +1 -1
- package/lib/ui/Dialog.js +27 -27
- package/lib/ui/Dialog.js.map +1 -1
- package/lib/ui/Drawer.js +14 -1151
- package/lib/ui/Drawer.js.map +1 -1
- package/lib/ui/DropdownMenu.js +35 -35
- package/lib/ui/DropdownMenu.js.map +1 -1
- package/lib/ui/Form.js +6 -6
- package/lib/ui/HoverCard.js +6 -6
- package/lib/ui/HoverCard.js.map +1 -1
- package/lib/ui/Input.js +3 -3
- package/lib/ui/Input.js.map +1 -1
- package/lib/ui/Label.js +3 -3
- package/lib/ui/Pagination.js +11 -11
- package/lib/ui/Popover.js +3 -3
- package/lib/ui/Popover.js.map +1 -1
- package/lib/ui/Progress.js +2 -2
- package/lib/ui/RadioGroup.js +11 -11
- package/lib/ui/RadioGroup.js.map +1 -1
- package/lib/ui/ScrollArea.js +2 -2
- package/lib/ui/Select.js +34 -34
- package/lib/ui/Select.js.map +1 -1
- package/lib/ui/Skeleton.js +2 -2
- package/lib/ui/Slider.js +6 -6
- package/lib/ui/Slider.js.map +1 -1
- package/lib/ui/Stepper.js +6 -0
- package/lib/ui/Stepper.js.map +1 -0
- package/lib/ui/Switch.js +6 -6
- package/lib/ui/Switch.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +10 -0
- package/lib/ui/SyntaxHighlight.js.map +1 -0
- package/lib/ui/Tabs.js +17 -17
- package/lib/ui/Tabs.js.map +1 -1
- package/lib/ui/Textarea.js +6 -6
- package/lib/ui/Textarea.js.map +1 -1
- package/lib/ui/Toggle.js +8 -8
- package/lib/ui/Toggle.js.map +1 -1
- package/lib/ui/ToggleGroup.js +2 -2
- package/lib/ui/Tooltip.js +15 -8
- package/lib/ui/Tooltip.js.map +1 -1
- package/lib/ui/util.js +6 -0
- package/lib/ui/util.js.map +1 -0
- package/lib/{useExposedProps-BLKFBylA.js → useExposedProps-BZQkZneR.js} +2 -2
- package/lib/useExposedProps-BZQkZneR.js.map +1 -0
- package/lib/useLatest-hmRS46UF.js +11 -0
- package/lib/useLatest-hmRS46UF.js.map +1 -0
- package/lib/useMutation-3Ph3x6En.js +97 -0
- package/lib/useMutation-3Ph3x6En.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +34 -36
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-azureb2c.js +9974 -0
- package/lib/zudoku.auth-azureb2c.js.map +1 -0
- package/lib/zudoku.auth-clerk.js +104 -84
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +503 -543
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +3931 -929
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +28 -0
- package/lib/zudoku.hooks.js.map +1 -0
- package/lib/zudoku.icons.js +10 -0
- package/lib/zudoku.icons.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +106 -112
- package/lib/zudoku.plugin-api-catalog.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +518 -205
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +4 -4
- package/lib/zudoku.plugin-custom-pages.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +25 -49
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +7 -6
- package/lib/zudoku.plugin-openapi.js.map +1 -1
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/lib/zudoku.plugin-redirect.js.map +1 -1
- package/lib/zudoku.plugin-search-inkeep.js +25 -26
- package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +230 -0
- package/lib/zudoku.plugin-search-pagefind.js.map +1 -0
- package/lib/zudoku.plugins.js +15 -0
- package/lib/zudoku.plugins.js.map +1 -0
- package/package.json +143 -89
- package/src/app/ZuploBuildConfig.ts +33 -0
- package/src/app/defaultTheme.css +54 -0
- package/src/app/demo-cdn.html +31 -31
- package/src/app/demo.html +1 -1
- package/src/app/entry.client.tsx +51 -0
- package/src/app/entry.server.tsx +23 -13
- package/src/app/env.ts +35 -0
- package/src/app/font.geist.css +73 -0
- package/src/app/main.css +200 -144
- package/src/app/main.tsx +38 -33
- package/src/lib/MissingIcon.tsx +22 -0
- package/src/lib/auth/issuer.test.ts +104 -0
- package/src/lib/auth/issuer.ts +38 -0
- package/src/lib/authentication/AuthenticationPlugin.tsx +4 -4
- package/src/lib/authentication/authentication.ts +4 -5
- package/src/lib/authentication/components/CallbackHandler.tsx +11 -1
- package/src/lib/authentication/components/SignIn.tsx +35 -2
- package/src/lib/authentication/components/SignUp.tsx +35 -1
- package/src/lib/authentication/hook.ts +12 -1
- package/src/lib/authentication/providers/auth0.tsx +12 -5
- package/src/lib/authentication/providers/azureb2c.tsx +196 -0
- package/src/lib/authentication/providers/clerk.tsx +105 -62
- package/src/lib/authentication/providers/openid.tsx +112 -57
- package/src/lib/authentication/providers/supabase.tsx +150 -0
- package/src/lib/authentication/state.ts +46 -26
- package/src/lib/components/AnchorLink.tsx +9 -7
- package/src/lib/components/Autocomplete.tsx +7 -5
- package/src/lib/components/Banner.tsx +3 -2
- package/src/lib/components/Bootstrap.tsx +13 -6
- package/src/lib/components/BuildCheck.tsx +75 -0
- package/src/lib/components/ErrorPage.tsx +1 -1
- package/src/lib/components/Footer.tsx +136 -0
- package/src/lib/components/Header.tsx +40 -36
- package/src/lib/components/Heading.tsx +11 -7
- package/src/lib/components/InlineCode.tsx +13 -16
- package/src/lib/components/Layout.tsx +30 -71
- package/src/lib/components/Main.tsx +51 -0
- package/src/lib/components/Markdown.tsx +39 -24
- package/src/lib/components/MobileTopNavigation.tsx +30 -20
- package/src/lib/components/NotFoundPage.tsx +1 -1
- package/src/lib/components/Pagination.tsx +44 -0
- package/src/lib/components/PathRenderer.tsx +61 -0
- package/src/lib/components/Search.tsx +15 -4
- package/src/lib/components/Slot.test.tsx +465 -0
- package/src/lib/components/Slot.tsx +64 -0
- package/src/lib/components/ThemeSwitch.tsx +36 -15
- package/src/lib/components/TopNavigation.tsx +49 -34
- package/src/lib/components/Zudoku.tsx +27 -16
- package/src/lib/components/cache.ts +8 -0
- package/src/lib/components/context/BypassProtectedRoutesContext.ts +3 -0
- package/src/lib/components/context/RouterEventsEmitter.tsx +19 -0
- package/src/lib/components/context/SlotProvider.tsx +149 -0
- package/src/lib/components/context/ViewportAnchorContext.tsx +14 -30
- package/src/lib/components/context/ZudokuContext.ts +27 -8
- package/src/lib/components/context/ZudokuProvider.tsx +3 -2
- package/src/lib/components/index.ts +26 -14
- package/src/lib/components/navigation/PoweredByZudoku.tsx +33 -0
- package/src/lib/components/navigation/Sidebar.tsx +38 -39
- package/src/lib/components/navigation/SidebarBadge.tsx +4 -1
- package/src/lib/components/navigation/SidebarCategory.tsx +63 -53
- package/src/lib/components/navigation/SidebarItem.tsx +75 -54
- package/src/lib/components/navigation/SidebarWrapper.tsx +42 -23
- package/src/lib/{plugins/markdown → components/navigation}/Toc.tsx +9 -18
- package/src/lib/components/navigation/ZudokuLogo.tsx +25 -0
- package/src/lib/components/navigation/ZuploLogo.tsx +14 -0
- package/src/lib/components/navigation/utils.ts +42 -6
- package/src/lib/core/RouteGuard.tsx +73 -12
- package/src/lib/core/ZudokuContext.ts +86 -17
- package/src/lib/core/plugins.ts +38 -8
- package/src/lib/errors/ErrorAlert.tsx +24 -17
- package/src/lib/hooks/index.ts +16 -0
- package/src/lib/hooks/useEvent.test.tsx +149 -0
- package/src/lib/hooks/useEvent.ts +41 -0
- package/src/lib/icons.ts +1 -0
- package/src/lib/oas/graphql/circular.ts +35 -6
- package/src/lib/oas/graphql/index.ts +257 -79
- package/src/lib/oas/parser/dereference/index.ts +2 -0
- package/src/lib/oas/parser/index.ts +14 -30
- package/src/lib/oas/parser/upgrade/index.ts +97 -26
- package/src/lib/plugins/api-catalog/Catalog.tsx +50 -100
- package/src/lib/plugins/api-catalog/index.tsx +66 -15
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +61 -45
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +438 -113
- package/src/lib/plugins/api-keys/index.tsx +113 -57
- package/src/lib/plugins/custom-pages/index.tsx +1 -1
- package/src/lib/plugins/markdown/MdxPage.tsx +15 -47
- package/src/lib/plugins/markdown/index.tsx +2 -2
- package/src/lib/plugins/markdown/resolver.ts +4 -35
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +8 -5
- package/src/lib/plugins/openapi/ColorizedParam.tsx +4 -4
- package/src/lib/plugins/openapi/Endpoint.tsx +11 -9
- package/src/lib/plugins/openapi/OasProvider.tsx +51 -0
- package/src/lib/plugins/openapi/OperationList.tsx +205 -75
- package/src/lib/plugins/openapi/OperationListItem.tsx +109 -109
- package/src/lib/plugins/openapi/ParamInfos.tsx +90 -0
- package/src/lib/plugins/openapi/ParameterList.tsx +4 -0
- package/src/lib/plugins/openapi/ParameterListItem.tsx +65 -22
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +23 -5
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +2 -0
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +5 -16
- package/src/lib/plugins/openapi/SchemaList.tsx +163 -0
- package/src/lib/plugins/openapi/Sidecar.tsx +79 -105
- package/src/lib/plugins/openapi/SidecarExamples.tsx +32 -27
- package/src/lib/plugins/openapi/SimpleSelect.tsx +1 -1
- package/src/lib/plugins/openapi/client/GraphQLClient.tsx +1 -1
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +34 -7
- package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
- package/src/lib/plugins/openapi/components/EnumValues.tsx +58 -0
- package/src/lib/plugins/openapi/components/ResponseContent.tsx +104 -0
- package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -0
- package/src/lib/plugins/openapi/graphql/gql.ts +36 -11
- package/src/lib/plugins/openapi/graphql/graphql.ts +170 -37
- package/src/lib/plugins/openapi/index.tsx +94 -97
- package/src/lib/plugins/openapi/interfaces.ts +50 -24
- package/src/lib/plugins/openapi/playground/BodyPanel.tsx +46 -0
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +28 -24
- package/src/lib/plugins/openapi/playground/Headers.tsx +126 -91
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +74 -0
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +43 -0
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +13 -0
- package/src/lib/plugins/openapi/playground/PathParams.tsx +43 -77
- package/src/lib/plugins/openapi/playground/Playground.tsx +312 -357
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +7 -3
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +88 -86
- package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +51 -0
- package/src/lib/plugins/openapi/playground/fileUtils.ts +32 -0
- package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -0
- package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +73 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +265 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +126 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.test.ts +64 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -0
- package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +20 -0
- package/src/lib/plugins/openapi/{post-processors → processors}/removeExtensions.test.ts +29 -9
- package/src/lib/plugins/openapi/{post-processors → processors}/removeExtensions.ts +5 -3
- package/src/lib/plugins/openapi/{post-processors → processors}/removeParameters.test.ts +67 -33
- package/src/lib/plugins/openapi/{post-processors → processors}/removeParameters.ts +5 -3
- package/src/lib/plugins/openapi/processors/removePaths.test.ts +167 -0
- package/src/lib/plugins/openapi/{post-processors → processors}/removePaths.ts +5 -3
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx +1 -8
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx +3 -0
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +6 -3
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -0
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +160 -0
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +105 -141
- package/src/lib/plugins/openapi/schema/utils.ts +32 -5
- package/src/lib/plugins/openapi/state.ts +36 -0
- package/src/lib/plugins/openapi/util/createHttpSnippet.ts +107 -0
- package/src/lib/plugins/openapi/util/createSidebarCategory.tsx +37 -0
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +51 -1
- package/src/lib/plugins/openapi/util/getRoutes.tsx +198 -0
- package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -0
- package/src/lib/plugins/redirect/index.tsx +1 -1
- package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +164 -0
- package/src/lib/plugins/search-pagefind/ResultList.tsx +105 -0
- package/src/lib/plugins/search-pagefind/get-results.tsx +75 -0
- package/src/lib/plugins/search-pagefind/index.tsx +21 -0
- package/src/lib/plugins/search-pagefind/types.ts +118 -0
- package/src/lib/shiki.ts +132 -0
- package/src/lib/ui/Badge.tsx +2 -2
- package/src/lib/ui/Button.tsx +12 -7
- package/src/lib/ui/Callout.tsx +30 -10
- package/src/lib/ui/Card.tsx +1 -1
- package/src/lib/ui/Checkbox.tsx +8 -24
- package/src/lib/ui/CodeBlock.tsx +103 -0
- package/src/lib/ui/Command.tsx +29 -7
- package/src/lib/ui/Dialog.tsx +11 -7
- package/src/lib/ui/DropdownMenu.tsx +4 -4
- package/src/lib/ui/HoverCard.tsx +1 -1
- package/src/lib/ui/Input.tsx +2 -3
- package/src/lib/ui/Popover.tsx +1 -1
- package/src/lib/ui/RadioGroup.tsx +1 -1
- package/src/lib/ui/Select.tsx +4 -4
- package/src/lib/ui/Slider.tsx +1 -1
- package/src/lib/ui/Stepper.tsx +8 -0
- package/src/lib/ui/Switch.tsx +1 -1
- package/src/lib/ui/SyntaxHighlight.tsx +27 -0
- package/src/lib/ui/Tabs.tsx +2 -2
- package/src/lib/ui/Textarea.tsx +1 -1
- package/src/lib/ui/Toggle.tsx +1 -1
- package/src/lib/ui/Tooltip.tsx +16 -1
- package/src/lib/ui/util.tsx +3 -0
- package/src/lib/util/MdxComponents.tsx +37 -19
- package/src/lib/util/detectOS.ts +9 -0
- package/src/lib/util/ensureArray.ts +3 -0
- package/src/lib/util/humanFileSize.test.ts +24 -0
- package/src/lib/util/humanFileSize.ts +16 -0
- package/src/lib/util/joinPath.tsx +3 -0
- package/src/lib/util/joinUrl.test.ts +62 -0
- package/src/lib/util/joinUrl.ts +1 -1
- package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -0
- package/src/lib/util/traverse.ts +12 -13
- package/src/lib/util/types.ts +7 -0
- package/src/lib/util/url.test.ts +51 -0
- package/src/lib/util/url.ts +18 -0
- package/src/lib/util/useExposedProps.tsx +12 -1
- package/src/lib/util/useLatest.ts +18 -0
- package/src/lib/util/useOnScreen.ts +6 -4
- package/src/lib/util/useScrollToAnchor.ts +31 -39
- package/src/lib/util/useScrollToTop.ts +8 -3
- package/src/shiki/langs/abap.js +1 -0
- package/src/shiki/langs/actionscript-3.js +1 -0
- package/src/shiki/langs/ada.js +1 -0
- package/src/shiki/langs/angular-expression.js +1 -0
- package/src/shiki/langs/angular-html.js +1 -0
- package/src/shiki/langs/angular-inline-style.js +1 -0
- package/src/shiki/langs/angular-inline-template.js +1 -0
- package/src/shiki/langs/angular-let-declaration.js +1 -0
- package/src/shiki/langs/angular-template-blocks.js +1 -0
- package/src/shiki/langs/angular-template.js +1 -0
- package/src/shiki/langs/angular-ts.js +1 -0
- package/src/shiki/langs/apache.js +1 -0
- package/src/shiki/langs/apex.js +1 -0
- package/src/shiki/langs/apl.js +1 -0
- package/src/shiki/langs/applescript.js +1 -0
- package/src/shiki/langs/ara.js +1 -0
- package/src/shiki/langs/asciidoc.js +1 -0
- package/src/shiki/langs/asm.js +1 -0
- package/src/shiki/langs/astro.js +1 -0
- package/src/shiki/langs/awk.js +1 -0
- package/src/shiki/langs/ballerina.js +1 -0
- package/src/shiki/langs/bat.js +1 -0
- package/src/shiki/langs/beancount.js +1 -0
- package/src/shiki/langs/berry.js +1 -0
- package/src/shiki/langs/bibtex.js +1 -0
- package/src/shiki/langs/bicep.js +1 -0
- package/src/shiki/langs/blade.js +1 -0
- package/src/shiki/langs/bsl.js +1 -0
- package/src/shiki/langs/c.js +1 -0
- package/src/shiki/langs/cadence.js +1 -0
- package/src/shiki/langs/cairo.js +1 -0
- package/src/shiki/langs/clarity.js +1 -0
- package/src/shiki/langs/clojure.js +1 -0
- package/src/shiki/langs/cmake.js +1 -0
- package/src/shiki/langs/cobol.js +1 -0
- package/src/shiki/langs/codeowners.js +1 -0
- package/src/shiki/langs/codeql.js +1 -0
- package/src/shiki/langs/coffee.js +1 -0
- package/src/shiki/langs/common-lisp.js +1 -0
- package/src/shiki/langs/coq.js +1 -0
- package/src/shiki/langs/cpp-macro.js +1 -0
- package/src/shiki/langs/cpp.js +1 -0
- package/src/shiki/langs/crystal.js +1 -0
- package/src/shiki/langs/csharp.js +1 -0
- package/src/shiki/langs/css.js +1 -0
- package/src/shiki/langs/csv.js +1 -0
- package/src/shiki/langs/cue.js +1 -0
- package/src/shiki/langs/cypher.js +1 -0
- package/src/shiki/langs/d.js +1 -0
- package/src/shiki/langs/dart.js +1 -0
- package/src/shiki/langs/dax.js +1 -0
- package/src/shiki/langs/desktop.js +1 -0
- package/src/shiki/langs/diff.js +1 -0
- package/src/shiki/langs/docker.js +1 -0
- package/src/shiki/langs/dotenv.js +1 -0
- package/src/shiki/langs/dream-maker.js +1 -0
- package/src/shiki/langs/edge.js +1 -0
- package/src/shiki/langs/elixir.js +1 -0
- package/src/shiki/langs/elm.js +1 -0
- package/src/shiki/langs/emacs-lisp.js +1 -0
- package/src/shiki/langs/erb.js +1 -0
- package/src/shiki/langs/erlang.js +1 -0
- package/src/shiki/langs/es-tag-css.js +1 -0
- package/src/shiki/langs/es-tag-glsl.js +1 -0
- package/src/shiki/langs/es-tag-html.js +1 -0
- package/src/shiki/langs/es-tag-sql.js +1 -0
- package/src/shiki/langs/es-tag-xml.js +1 -0
- package/src/shiki/langs/fennel.js +1 -0
- package/src/shiki/langs/fish.js +1 -0
- package/src/shiki/langs/fluent.js +1 -0
- package/src/shiki/langs/fortran-fixed-form.js +1 -0
- package/src/shiki/langs/fortran-free-form.js +1 -0
- package/src/shiki/langs/fsharp.js +1 -0
- package/src/shiki/langs/gdresource.js +1 -0
- package/src/shiki/langs/gdscript.js +1 -0
- package/src/shiki/langs/gdshader.js +1 -0
- package/src/shiki/langs/genie.js +1 -0
- package/src/shiki/langs/gherkin.js +1 -0
- package/src/shiki/langs/git-commit.js +1 -0
- package/src/shiki/langs/git-rebase.js +1 -0
- package/src/shiki/langs/gleam.js +1 -0
- package/src/shiki/langs/glimmer-js.js +1 -0
- package/src/shiki/langs/glimmer-ts.js +1 -0
- package/src/shiki/langs/glsl.js +1 -0
- package/src/shiki/langs/gnuplot.js +1 -0
- package/src/shiki/langs/go.js +1 -0
- package/src/shiki/langs/graphql.js +1 -0
- package/src/shiki/langs/groovy.js +1 -0
- package/src/shiki/langs/hack.js +1 -0
- package/src/shiki/langs/haml.js +1 -0
- package/src/shiki/langs/handlebars.js +1 -0
- package/src/shiki/langs/haskell.js +1 -0
- package/src/shiki/langs/haxe.js +1 -0
- package/src/shiki/langs/hcl.js +1 -0
- package/src/shiki/langs/hjson.js +1 -0
- package/src/shiki/langs/hlsl.js +1 -0
- package/src/shiki/langs/html-derivative.js +1 -0
- package/src/shiki/langs/html.js +1 -0
- package/src/shiki/langs/http.js +1 -0
- package/src/shiki/langs/hxml.js +1 -0
- package/src/shiki/langs/hy.js +1 -0
- package/src/shiki/langs/imba.js +1 -0
- package/src/shiki/langs/ini.js +1 -0
- package/src/shiki/langs/java.js +1 -0
- package/src/shiki/langs/javascript.js +1 -0
- package/src/shiki/langs/jinja-html.js +1 -0
- package/src/shiki/langs/jinja.js +1 -0
- package/src/shiki/langs/jison.js +1 -0
- package/src/shiki/langs/json.js +1 -0
- package/src/shiki/langs/json5.js +1 -0
- package/src/shiki/langs/jsonc.js +1 -0
- package/src/shiki/langs/jsonl.js +1 -0
- package/src/shiki/langs/jsonnet.js +1 -0
- package/src/shiki/langs/jssm.js +1 -0
- package/src/shiki/langs/jsx.js +1 -0
- package/src/shiki/langs/julia.js +1 -0
- package/src/shiki/langs/kotlin.js +1 -0
- package/src/shiki/langs/kusto.js +1 -0
- package/src/shiki/langs/latex.js +1 -0
- package/src/shiki/langs/lean.js +1 -0
- package/src/shiki/langs/less.js +1 -0
- package/src/shiki/langs/liquid.js +1 -0
- package/src/shiki/langs/llvm.js +1 -0
- package/src/shiki/langs/log.js +1 -0
- package/src/shiki/langs/logo.js +1 -0
- package/src/shiki/langs/lua.js +1 -0
- package/src/shiki/langs/luau.js +1 -0
- package/src/shiki/langs/make.js +1 -0
- package/src/shiki/langs/markdown-vue.js +1 -0
- package/src/shiki/langs/markdown.js +1 -0
- package/src/shiki/langs/marko.js +1 -0
- package/src/shiki/langs/matlab.js +1 -0
- package/src/shiki/langs/mdc.js +1 -0
- package/src/shiki/langs/mdx.js +1 -0
- package/src/shiki/langs/mermaid.js +1 -0
- package/src/shiki/langs/mipsasm.js +1 -0
- package/src/shiki/langs/mojo.js +1 -0
- package/src/shiki/langs/move.js +1 -0
- package/src/shiki/langs/narrat.js +1 -0
- package/src/shiki/langs/nextflow.js +1 -0
- package/src/shiki/langs/nginx.js +1 -0
- package/src/shiki/langs/nim.js +1 -0
- package/src/shiki/langs/nix.js +1 -0
- package/src/shiki/langs/nushell.js +1 -0
- package/src/shiki/langs/objective-c.js +1 -0
- package/src/shiki/langs/objective-cpp.js +1 -0
- package/src/shiki/langs/ocaml.js +1 -0
- package/src/shiki/langs/pascal.js +1 -0
- package/src/shiki/langs/perl.js +1 -0
- package/src/shiki/langs/php.js +1 -0
- package/src/shiki/langs/plsql.js +1 -0
- package/src/shiki/langs/po.js +1 -0
- package/src/shiki/langs/polar.js +1 -0
- package/src/shiki/langs/postcss.js +1 -0
- package/src/shiki/langs/powerquery.js +1 -0
- package/src/shiki/langs/powershell.js +1 -0
- package/src/shiki/langs/prisma.js +1 -0
- package/src/shiki/langs/prolog.js +1 -0
- package/src/shiki/langs/proto.js +1 -0
- package/src/shiki/langs/pug.js +1 -0
- package/src/shiki/langs/puppet.js +1 -0
- package/src/shiki/langs/purescript.js +1 -0
- package/src/shiki/langs/python.js +1 -0
- package/src/shiki/langs/qml.js +1 -0
- package/src/shiki/langs/qmldir.js +1 -0
- package/src/shiki/langs/qss.js +1 -0
- package/src/shiki/langs/r.js +1 -0
- package/src/shiki/langs/racket.js +1 -0
- package/src/shiki/langs/raku.js +1 -0
- package/src/shiki/langs/razor.js +1 -0
- package/src/shiki/langs/reg.js +1 -0
- package/src/shiki/langs/regexp.js +1 -0
- package/src/shiki/langs/rel.js +1 -0
- package/src/shiki/langs/riscv.js +1 -0
- package/src/shiki/langs/rst.js +1 -0
- package/src/shiki/langs/ruby.js +1 -0
- package/src/shiki/langs/rust.js +1 -0
- package/src/shiki/langs/sas.js +1 -0
- package/src/shiki/langs/sass.js +1 -0
- package/src/shiki/langs/scala.js +1 -0
- package/src/shiki/langs/scheme.js +1 -0
- package/src/shiki/langs/scss.js +1 -0
- package/src/shiki/langs/sdbl.js +1 -0
- package/src/shiki/langs/shaderlab.js +1 -0
- package/src/shiki/langs/shellscript.js +1 -0
- package/src/shiki/langs/shellsession.js +1 -0
- package/src/shiki/langs/smalltalk.js +1 -0
- package/src/shiki/langs/solidity.js +1 -0
- package/src/shiki/langs/soy.js +1 -0
- package/src/shiki/langs/sparql.js +1 -0
- package/src/shiki/langs/splunk.js +1 -0
- package/src/shiki/langs/sql.js +1 -0
- package/src/shiki/langs/ssh-config.js +1 -0
- package/src/shiki/langs/stata.js +1 -0
- package/src/shiki/langs/stylus.js +1 -0
- package/src/shiki/langs/svelte.js +1 -0
- package/src/shiki/langs/swift.js +1 -0
- package/src/shiki/langs/system-verilog.js +1 -0
- package/src/shiki/langs/systemd.js +1 -0
- package/src/shiki/langs/talonscript.js +1 -0
- package/src/shiki/langs/tasl.js +1 -0
- package/src/shiki/langs/tcl.js +1 -0
- package/src/shiki/langs/templ.js +1 -0
- package/src/shiki/langs/terraform.js +1 -0
- package/src/shiki/langs/tex.js +1 -0
- package/src/shiki/langs/toml.js +1 -0
- package/src/shiki/langs/ts-tags.js +1 -0
- package/src/shiki/langs/tsv.js +1 -0
- package/src/shiki/langs/tsx.js +1 -0
- package/src/shiki/langs/turtle.js +1 -0
- package/src/shiki/langs/twig.js +1 -0
- package/src/shiki/langs/typescript.js +1 -0
- package/src/shiki/langs/typespec.js +1 -0
- package/src/shiki/langs/typst.js +1 -0
- package/src/shiki/langs/v.js +1 -0
- package/src/shiki/langs/vala.js +1 -0
- package/src/shiki/langs/vb.js +1 -0
- package/src/shiki/langs/verilog.js +1 -0
- package/src/shiki/langs/vhdl.js +1 -0
- package/src/shiki/langs/viml.js +1 -0
- package/src/shiki/langs/vue-directives.js +1 -0
- package/src/shiki/langs/vue-html.js +1 -0
- package/src/shiki/langs/vue-interpolations.js +1 -0
- package/src/shiki/langs/vue-sfc-style-variable-injection.js +1 -0
- package/src/shiki/langs/vue.js +1 -0
- package/src/shiki/langs/vyper.js +1 -0
- package/src/shiki/langs/wasm.js +1 -0
- package/src/shiki/langs/wenyan.js +1 -0
- package/src/shiki/langs/wgsl.js +1 -0
- package/src/shiki/langs/wikitext.js +1 -0
- package/src/shiki/langs/wit.js +1 -0
- package/src/shiki/langs/wolfram.js +1 -0
- package/src/shiki/langs/xml.js +1 -0
- package/src/shiki/langs/xsl.js +1 -0
- package/src/shiki/langs/yaml.js +1 -0
- package/src/shiki/langs/zenscript.js +1 -0
- package/src/shiki/langs/zig.js +1 -0
- package/src/shiki/themes/andromeeda.js +1 -0
- package/src/shiki/themes/aurora-x.js +1 -0
- package/src/shiki/themes/ayu-dark.js +1 -0
- package/src/shiki/themes/catppuccin-frappe.js +1 -0
- package/src/shiki/themes/catppuccin-latte.js +1 -0
- package/src/shiki/themes/catppuccin-macchiato.js +1 -0
- package/src/shiki/themes/catppuccin-mocha.js +1 -0
- package/src/shiki/themes/dark-plus.js +1 -0
- package/src/shiki/themes/dracula-soft.js +1 -0
- package/src/shiki/themes/dracula.js +1 -0
- package/src/shiki/themes/everforest-dark.js +1 -0
- package/src/shiki/themes/everforest-light.js +1 -0
- package/src/shiki/themes/github-dark-default.js +1 -0
- package/src/shiki/themes/github-dark-dimmed.js +1 -0
- package/src/shiki/themes/github-dark-high-contrast.js +1 -0
- package/src/shiki/themes/github-dark.js +1 -0
- package/src/shiki/themes/github-light-default.js +1 -0
- package/src/shiki/themes/github-light-high-contrast.js +1 -0
- package/src/shiki/themes/github-light.js +1 -0
- package/src/shiki/themes/gruvbox-dark-hard.js +1 -0
- package/src/shiki/themes/gruvbox-dark-medium.js +1 -0
- package/src/shiki/themes/gruvbox-dark-soft.js +1 -0
- package/src/shiki/themes/gruvbox-light-hard.js +1 -0
- package/src/shiki/themes/gruvbox-light-medium.js +1 -0
- package/src/shiki/themes/gruvbox-light-soft.js +1 -0
- package/src/shiki/themes/houston.js +1 -0
- package/src/shiki/themes/kanagawa-dragon.js +1 -0
- package/src/shiki/themes/kanagawa-lotus.js +1 -0
- package/src/shiki/themes/kanagawa-wave.js +1 -0
- package/src/shiki/themes/laserwave.js +1 -0
- package/src/shiki/themes/light-plus.js +1 -0
- package/src/shiki/themes/material-theme-darker.js +1 -0
- package/src/shiki/themes/material-theme-lighter.js +1 -0
- package/src/shiki/themes/material-theme-ocean.js +1 -0
- package/src/shiki/themes/material-theme-palenight.js +1 -0
- package/src/shiki/themes/material-theme.js +1 -0
- package/src/shiki/themes/min-dark.js +1 -0
- package/src/shiki/themes/min-light.js +1 -0
- package/src/shiki/themes/monokai.js +1 -0
- package/src/shiki/themes/night-owl.js +1 -0
- package/src/shiki/themes/nord.js +1 -0
- package/src/shiki/themes/one-dark-pro.js +1 -0
- package/src/shiki/themes/one-light.js +1 -0
- package/src/shiki/themes/plastic.js +1 -0
- package/src/shiki/themes/poimandres.js +1 -0
- package/src/shiki/themes/red.js +1 -0
- package/src/shiki/themes/rose-pine-dawn.js +1 -0
- package/src/shiki/themes/rose-pine-moon.js +1 -0
- package/src/shiki/themes/rose-pine.js +1 -0
- package/src/shiki/themes/slack-dark.js +1 -0
- package/src/shiki/themes/slack-ochin.js +1 -0
- package/src/shiki/themes/snazzy-light.js +1 -0
- package/src/shiki/themes/solarized-dark.js +1 -0
- package/src/shiki/themes/solarized-light.js +1 -0
- package/src/shiki/themes/synthwave-84.js +1 -0
- package/src/shiki/themes/tokyo-night.js +1 -0
- package/src/shiki/themes/vesper.js +1 -0
- package/src/shiki/themes/vitesse-black.js +1 -0
- package/src/shiki/themes/vitesse-dark.js +1 -0
- package/src/shiki/themes/vitesse-light.js +1 -0
- package/client.d.ts +0 -8
- package/dist/app/tailwind.d.ts +0 -4
- package/dist/app/tailwind.js +0 -77
- package/dist/app/tailwind.js.map +0 -1
- package/dist/config/common.d.ts +0 -8
- package/dist/config/common.js +0 -2
- package/dist/config/common.js.map +0 -1
- package/dist/config/validators/common.d.ts +0 -5034
- package/dist/config/validators/common.js +0 -287
- package/dist/config/validators/common.js.map +0 -1
- package/dist/lib/components/SlotletProvider.d.ts +0 -17
- package/dist/lib/components/SlotletProvider.js +0 -18
- package/dist/lib/components/SlotletProvider.js.map +0 -1
- package/dist/lib/components/SyntaxHighlight.d.ts +0 -12
- package/dist/lib/components/SyntaxHighlight.js +0 -53
- package/dist/lib/components/SyntaxHighlight.js.map +0 -1
- package/dist/lib/components/context/PluginSystem.js +0 -2
- package/dist/lib/components/context/PluginSystem.js.map +0 -1
- package/dist/lib/plugins/markdown/Toc.js.map +0 -1
- package/dist/lib/plugins/openapi/Route.js +0 -26
- package/dist/lib/plugins/openapi/Route.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/ResponseTab.js +0 -42
- package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +0 -1
- package/dist/lib/plugins/openapi/post-processors/removeExtensions.d.ts +0 -7
- package/dist/lib/plugins/openapi/post-processors/removeExtensions.js.map +0 -1
- package/dist/lib/plugins/openapi/post-processors/removeExtensions.test.js.map +0 -1
- package/dist/lib/plugins/openapi/post-processors/removeParameters.js.map +0 -1
- package/dist/lib/plugins/openapi/post-processors/removeParameters.test.js.map +0 -1
- package/dist/lib/plugins/openapi/post-processors/removePaths.js.map +0 -1
- package/dist/lib/plugins/openapi/post-processors/removePaths.test.js +0 -104
- package/dist/lib/plugins/openapi/post-processors/removePaths.test.js.map +0 -1
- package/dist/lib/plugins/openapi/post-processors/traverse.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js +0 -35
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +0 -1
- package/dist/vite/plugin-docs.test.js +0 -22
- package/dist/vite/plugin-docs.test.js.map +0 -1
- package/dist/vite/prerender.d.ts +0 -22
- package/dist/vite/prerender.js +0 -90
- package/dist/vite/prerender.js.map +0 -1
- package/dist/zuplo/env.d.ts +0 -7
- package/dist/zuplo/env.js +0 -12
- package/dist/zuplo/env.js.map +0 -1
- package/lib/AuthenticationPlugin-CvwlQWjV.js +0 -58
- package/lib/AuthenticationPlugin-CvwlQWjV.js.map +0 -1
- package/lib/Markdown-B8o9Qz4q.js.map +0 -1
- package/lib/MdxPage-DiWukCrZ.js +0 -193
- package/lib/MdxPage-DiWukCrZ.js.map +0 -1
- package/lib/OperationList-CyNwMHMV.js +0 -5146
- package/lib/OperationList-CyNwMHMV.js.map +0 -1
- package/lib/Route-DH64hIrR.js +0 -35
- package/lib/Route-DH64hIrR.js.map +0 -1
- package/lib/Select-4kIgJ1bc.js +0 -223
- package/lib/Select-4kIgJ1bc.js.map +0 -1
- package/lib/SlotletProvider-CtIp8rP3.js +0 -221
- package/lib/SlotletProvider-CtIp8rP3.js.map +0 -1
- package/lib/Spinner-BlzrEEk1.js +0 -51
- package/lib/Spinner-BlzrEEk1.js.map +0 -1
- package/lib/StaggeredRender-DgsamH_G.js +0 -17
- package/lib/StaggeredRender-DgsamH_G.js.map +0 -1
- package/lib/SyntaxHighlight-C1w1QPdY.js +0 -2980
- package/lib/SyntaxHighlight-C1w1QPdY.js.map +0 -1
- package/lib/ZudokuContext-Bp2uQx1d.js +0 -1228
- package/lib/ZudokuContext-Bp2uQx1d.js.map +0 -1
- package/lib/__vite-browser-external-BYRIRx8p.js +0 -9
- package/lib/__vite-browser-external-BYRIRx8p.js.map +0 -1
- package/lib/_commonjsHelpers-BkfeUUK-.js +0 -29
- package/lib/_commonjsHelpers-BkfeUUK-.js.map +0 -1
- package/lib/chunk-SYFQ2XB5-BPvC-soB.js +0 -1821
- package/lib/chunk-SYFQ2XB5-BPvC-soB.js.map +0 -1
- package/lib/circular-Dgpd6AN-.js.map +0 -1
- package/lib/cn-qaFjX9_3.js.map +0 -1
- package/lib/context-rwLGh-6_.js +0 -22
- package/lib/context-rwLGh-6_.js.map +0 -1
- package/lib/createServer-BV0tHzLK.js +0 -12590
- package/lib/createServer-BV0tHzLK.js.map +0 -1
- package/lib/hook-BDmay56y.js +0 -227
- package/lib/hook-BDmay56y.js.map +0 -1
- package/lib/index-B7mqiOei.js +0 -509
- package/lib/index-B7mqiOei.js.map +0 -1
- package/lib/index-BtNudmKQ.js +0 -1744
- package/lib/index-BtNudmKQ.js.map +0 -1
- package/lib/index-Djenk2Hj.js +0 -36
- package/lib/index-Dl3Yl0yb.js.map +0 -1
- package/lib/index.esm-9-TF9KQB.js +0 -692
- package/lib/index.esm-CrSoEshU.js +0 -1207
- package/lib/index.esm-CrSoEshU.js.map +0 -1
- package/lib/invariant-Caa8-XvF.js +0 -26
- package/lib/joinUrl-BTy9bvoK.js +0 -20
- package/lib/joinUrl-BTy9bvoK.js.map +0 -1
- package/lib/jsx-runtime-Bdg6XQ1m.js +0 -446
- package/lib/jsx-runtime-Bdg6XQ1m.js.map +0 -1
- package/lib/post-processors/removeExtensions.js +0 -11
- package/lib/post-processors/removeExtensions.js.map +0 -1
- package/lib/post-processors/removeParameters.js +0 -48
- package/lib/post-processors/removeParameters.js.map +0 -1
- package/lib/post-processors/removePaths.js +0 -28
- package/lib/post-processors/removePaths.js.map +0 -1
- package/lib/post-processors/traverse.js +0 -15
- package/lib/post-processors/traverse.js.map +0 -1
- package/lib/prism-bash.min-HHIMdNJ_.js +0 -7
- package/lib/prism-bash.min-HHIMdNJ_.js.map +0 -1
- package/lib/prism-csharp.min-bQAo2pmx.js +0 -63
- package/lib/prism-csharp.min-bQAo2pmx.js.map +0 -1
- package/lib/prism-java.min-BpvsOuIa.js +0 -35
- package/lib/prism-java.min-BpvsOuIa.js.map +0 -1
- package/lib/prism-javascript.min-CEqHqgbm.js +0 -9
- package/lib/prism-javascript.min-CEqHqgbm.js.map +0 -1
- package/lib/prism-json.min-B1GJqK1k.js +0 -2
- package/lib/prism-json.min-B1GJqK1k.js.map +0 -1
- package/lib/prism-markdown.min-C0Qn0m-5.js +0 -61
- package/lib/prism-markdown.min-C0Qn0m-5.js.map +0 -1
- package/lib/prism-markup-BNGj0Tvm.js +0 -174
- package/lib/prism-markup-BNGj0Tvm.js.map +0 -1
- package/lib/prism-objectivec.min-BXSWqpJJ.js +0 -2
- package/lib/prism-objectivec.min-BXSWqpJJ.js.map +0 -1
- package/lib/prism-ruby.min-Dx9KO9ds.js +0 -38
- package/lib/prism-ruby.min-Dx9KO9ds.js.map +0 -1
- package/lib/prism-typescript.min-CD7H2IYQ.js +0 -34
- package/lib/prism-typescript.min-CD7H2IYQ.js.map +0 -1
- package/lib/state-mM7uaXTW.js +0 -202
- package/lib/state-mM7uaXTW.js.map +0 -1
- package/lib/useExposedProps-BLKFBylA.js.map +0 -1
- package/lib/useScrollToAnchor-S-NbG5Za.js +0 -288
- package/lib/useScrollToAnchor-S-NbG5Za.js.map +0 -1
- package/src/app/tailwind.ts +0 -83
- package/src/lib/components/SlotletProvider.tsx +0 -55
- package/src/lib/components/SyntaxHighlight.tsx +0 -171
- package/src/lib/components/context/PluginSystem.ts +0 -0
- package/src/lib/plugins/openapi/Route.tsx +0 -51
- package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -76
- package/src/lib/plugins/openapi/post-processors/removePaths.test.ts +0 -126
- package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +0 -147
- /package/dist/{lib/components/context/PluginSystem.d.ts → config/validators/validate.test.d.ts} +0 -0
- /package/dist/lib/{plugins/openapi/post-processors/removeExtensions.test.d.ts → auth/issuer.test.d.ts} +0 -0
- /package/dist/lib/{plugins/openapi/post-processors/removeParameters.test.d.ts → components/Slot.test.d.ts} +0 -0
- /package/dist/lib/{plugins/markdown → components/navigation}/Toc.d.ts +0 -0
- /package/dist/lib/{plugins/openapi/post-processors/removePaths.test.d.ts → hooks/useEvent.test.d.ts} +0 -0
- /package/dist/{vite/plugin-docs.test.d.ts → lib/plugins/openapi/playground/result-panel/convertToTypes.test.d.ts} +0 -0
- /package/dist/lib/plugins/openapi/{post-processors → processors}/traverse.d.ts +0 -0
- /package/dist/lib/plugins/openapi/{post-processors → processors}/traverse.js +0 -0
- /package/src/lib/plugins/openapi/{post-processors → processors}/traverse.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zudoku.components.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.64.2/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.64.2/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.64.2/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../node_modules/.pnpm/@tanstack+query-core@5.64.2/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../node_modules/.pnpm/@tanstack+query-core@5.64.2/node_modules/@tanstack/query-core/build/modern/hydration.js","../../../node_modules/.pnpm/@tanstack+react-query@5.64.2_react@19.0.0/node_modules/@tanstack/react-query/build/modern/HydrationBoundary.js","../src/lib/errors/ServerError.tsx","../../../node_modules/.pnpm/react-router@7.1.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/react-router/dist/development/dom-export.mjs","../src/lib/components/Bootstrap.tsx","../../../node_modules/.pnpm/spin-delay@2.0.1_react@19.0.0/node_modules/spin-delay/dist/index.js","../src/lib/util/useScrollToTop.ts","../src/lib/ui/Skeleton.tsx","../src/lib/core/plugins.ts","../src/lib/components/Banner.tsx","../src/lib/components/Search.tsx","../src/lib/components/ThemeSwitch.tsx","../src/lib/components/TopNavigation.tsx","../src/lib/components/MobileTopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/components/navigation/SidebarWrapper.tsx","../src/lib/components/navigation/Sidebar.tsx","../src/lib/components/Layout.tsx","../../../node_modules/.pnpm/react-error-boundary@5.0.0_react@19.0.0/node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../src/lib/core/ZudokuContext.ts","../src/lib/errors/TopLevelError.tsx","../src/lib/util/requestIdleCallbackPolyfill.ts","../src/lib/components/context/ComponentsContext.tsx","../src/lib/components/context/ZudokuProvider.tsx","../src/lib/components/Zudoku.tsx","../src/lib/components/index.ts"],"sourcesContent":["// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1)\n return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0)\n return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n const refetchFilters = {\n type: \"active\",\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n const refetchFilters = {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","// src/hydration.ts\nfunction defaultTransformerFn(data) {\n return data;\n}\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.options.scope && { scope: mutation.options.scope },\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query, serializeData) {\n return {\n state: {\n ...query.state,\n ...query.state.data !== void 0 && {\n data: serializeData(query.state.data)\n }\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.state.status === \"pending\" && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`\n );\n }\n return Promise.reject(new Error(\"redacted\"));\n })\n },\n ...query.meta && { meta: query.meta }\n };\n}\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === \"success\";\n}\nfunction dehydrate(client, options = {}) {\n const filterMutation = options.shouldDehydrateMutation ?? client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn;\n const queries = client.getQueryCache().getAll().flatMap(\n (query) => filterQuery(query) ? [dehydrateQuery(query, serializeData)] : []\n );\n return { mutations, queries };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== \"object\" || dehydratedState === null) {\n return;\n }\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache();\n const deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn;\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions\n },\n state\n );\n });\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash);\n const data = state.data === void 0 ? state.data : deserializeData(state.data);\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n const { fetchStatus: _ignored, ...serializedState } = state;\n query.setState({\n ...serializedState,\n data\n });\n }\n } else {\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: \"idle\"\n }\n );\n }\n if (promise) {\n const initialPromise = Promise.resolve(promise).then(deserializeData);\n void query.fetch(void 0, { initialPromise });\n }\n });\n}\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate\n};\n//# sourceMappingURL=hydration.js.map","\"use client\";\n\n// src/HydrationBoundary.tsx\nimport * as React from \"react\";\nimport { hydrate } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nvar HydrationBoundary = ({\n children,\n options = {},\n state,\n queryClient\n}) => {\n const client = useQueryClient(queryClient);\n const [hydrationQueue, setHydrationQueue] = React.useState();\n const optionsRef = React.useRef(options);\n optionsRef.current = options;\n React.useMemo(() => {\n if (state) {\n if (typeof state !== \"object\") {\n return;\n }\n const queryCache = client.getQueryCache();\n const queries = state.queries || [];\n const newQueries = [];\n const existingQueries = [];\n for (const dehydratedQuery of queries) {\n const existingQuery = queryCache.get(dehydratedQuery.queryHash);\n if (!existingQuery) {\n newQueries.push(dehydratedQuery);\n } else {\n const hydrationIsNewer = dehydratedQuery.state.dataUpdatedAt > existingQuery.state.dataUpdatedAt;\n const queryAlreadyQueued = hydrationQueue?.find(\n (query) => query.queryHash === dehydratedQuery.queryHash\n );\n if (hydrationIsNewer && (!queryAlreadyQueued || dehydratedQuery.state.dataUpdatedAt > queryAlreadyQueued.state.dataUpdatedAt)) {\n existingQueries.push(dehydratedQuery);\n }\n }\n }\n if (newQueries.length > 0) {\n hydrate(client, { queries: newQueries }, optionsRef.current);\n }\n if (existingQueries.length > 0) {\n setHydrationQueue(\n (prev) => prev ? [...prev, ...existingQueries] : existingQueries\n );\n }\n }\n }, [client, hydrationQueue, state]);\n React.useEffect(() => {\n if (hydrationQueue) {\n hydrate(client, { queries: hydrationQueue }, optionsRef.current);\n setHydrationQueue(void 0);\n }\n }, [client, hydrationQueue]);\n return children;\n};\nexport {\n HydrationBoundary\n};\n//# sourceMappingURL=HydrationBoundary.js.map","import { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function ServerError({ error }: { error: unknown }) {\n return <ErrorAlert error={error} />;\n}\n","/**\n * react-router v7.1.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport {\n FrameworkContext,\n RemixErrorBoundary,\n RouterProvider,\n createBrowserHistory,\n createClientRoutes,\n createClientRoutesWithHMRRevalidationOptOut,\n createRouter,\n decodeViaTurboStream,\n deserializeErrors,\n getPatchRoutesOnNavigationFunction,\n getSingleFetchDataStrategy,\n invariant,\n mapRouteProperties,\n matchRoutes,\n shouldHydrateRouteLoader,\n useFogOFWarDiscovery\n} from \"./chunk-SYFQ2XB5.mjs\";\n\n// lib/dom-export/dom-router-provider.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nfunction RouterProvider2(props) {\n return /* @__PURE__ */ React.createElement(RouterProvider, { flushSync: ReactDOM.flushSync, ...props });\n}\n\n// lib/dom-export/hydrated-router.tsx\nimport * as React2 from \"react\";\nvar ssrInfo = null;\nvar router = null;\nfunction initSsrInfo() {\n if (!ssrInfo && window.__reactRouterContext && window.__reactRouterManifest && window.__reactRouterRouteModules) {\n ssrInfo = {\n context: window.__reactRouterContext,\n manifest: window.__reactRouterManifest,\n routeModules: window.__reactRouterRouteModules,\n stateDecodingPromise: void 0,\n router: void 0,\n routerInitialized: false\n };\n }\n}\nfunction createHydratedRouter() {\n initSsrInfo();\n if (!ssrInfo) {\n throw new Error(\n \"You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`\"\n );\n }\n let localSsrInfo = ssrInfo;\n if (!ssrInfo.stateDecodingPromise) {\n let stream = ssrInfo.context.stream;\n invariant(stream, \"No stream found for single fetch decoding\");\n ssrInfo.context.stream = void 0;\n ssrInfo.stateDecodingPromise = decodeViaTurboStream(stream, window).then((value) => {\n ssrInfo.context.state = value.value;\n localSsrInfo.stateDecodingPromise.value = true;\n }).catch((e) => {\n localSsrInfo.stateDecodingPromise.error = e;\n });\n }\n if (ssrInfo.stateDecodingPromise.error) {\n throw ssrInfo.stateDecodingPromise.error;\n }\n if (!ssrInfo.stateDecodingPromise.value) {\n throw ssrInfo.stateDecodingPromise;\n }\n let routes = createClientRoutes(\n ssrInfo.manifest.routes,\n ssrInfo.routeModules,\n ssrInfo.context.state,\n ssrInfo.context.isSpaMode\n );\n let hydrationData = void 0;\n if (!ssrInfo.context.isSpaMode) {\n hydrationData = {\n ...ssrInfo.context.state,\n loaderData: { ...ssrInfo.context.state.loaderData }\n };\n let initialMatches = matchRoutes(\n routes,\n window.location,\n window.__reactRouterContext?.basename\n );\n if (initialMatches) {\n for (let match of initialMatches) {\n let routeId = match.route.id;\n let route = ssrInfo.routeModules[routeId];\n let manifestRoute = ssrInfo.manifest.routes[routeId];\n if (route && manifestRoute && shouldHydrateRouteLoader(\n manifestRoute,\n route,\n ssrInfo.context.isSpaMode\n ) && (route.HydrateFallback || !manifestRoute.hasLoader)) {\n delete hydrationData.loaderData[routeId];\n } else if (manifestRoute && !manifestRoute.hasLoader) {\n hydrationData.loaderData[routeId] = null;\n }\n }\n }\n if (hydrationData && hydrationData.errors) {\n hydrationData.errors = deserializeErrors(hydrationData.errors);\n }\n }\n let router2 = createRouter({\n routes,\n history: createBrowserHistory(),\n basename: ssrInfo.context.basename,\n hydrationData,\n mapRouteProperties,\n dataStrategy: getSingleFetchDataStrategy(\n ssrInfo.manifest,\n ssrInfo.routeModules,\n () => router2\n ),\n patchRoutesOnNavigation: getPatchRoutesOnNavigationFunction(\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.isSpaMode,\n ssrInfo.context.basename\n )\n });\n ssrInfo.router = router2;\n if (router2.state.initialized) {\n ssrInfo.routerInitialized = true;\n router2.initialize();\n }\n router2.createRoutesForHMR = /* spacer so ts-ignore does not affect the right hand of the assignment */\n createClientRoutesWithHMRRevalidationOptOut;\n window.__reactRouterDataRouter = router2;\n return router2;\n}\nfunction HydratedRouter() {\n if (!router) {\n router = createHydratedRouter();\n }\n let [criticalCss, setCriticalCss] = React2.useState(\n process.env.NODE_ENV === \"development\" ? ssrInfo?.context.criticalCss : void 0\n );\n if (process.env.NODE_ENV === \"development\") {\n if (ssrInfo) {\n window.__reactRouterClearCriticalCss = () => setCriticalCss(void 0);\n }\n }\n let [location, setLocation] = React2.useState(router.state.location);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router && !ssrInfo.routerInitialized) {\n ssrInfo.routerInitialized = true;\n ssrInfo.router.initialize();\n }\n }, []);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router) {\n return ssrInfo.router.subscribe((newState) => {\n if (newState.location !== location) {\n setLocation(newState.location);\n }\n });\n }\n }, [location]);\n invariant(ssrInfo, \"ssrInfo unavailable for HydratedRouter\");\n useFogOFWarDiscovery(\n router,\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.isSpaMode\n );\n return (\n // This fragment is important to ensure we match the <ServerRouter> JSX\n // structure so that useId values hydrate correctly\n /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\n FrameworkContext.Provider,\n {\n value: {\n manifest: ssrInfo.manifest,\n routeModules: ssrInfo.routeModules,\n future: ssrInfo.context.future,\n criticalCss,\n isSpaMode: ssrInfo.context.isSpaMode\n }\n },\n /* @__PURE__ */ React2.createElement(RemixErrorBoundary, { location }, /* @__PURE__ */ React2.createElement(RouterProvider2, { router }))\n ), /* @__PURE__ */ React2.createElement(React2.Fragment, null))\n );\n}\nexport {\n HydratedRouter,\n RouterProvider2 as RouterProvider\n};\n","import {\n HydrationBoundary,\n QueryClient,\n QueryClientProvider,\n} from \"@tanstack/react-query\";\nimport { type HelmetData, HelmetProvider } from \"@zudoku/react-helmet-async\";\nimport { StrictMode } from \"react\";\nimport {\n type createBrowserRouter,\n type createStaticRouter,\n type StaticHandlerContext,\n StaticRouterProvider,\n} from \"react-router\";\nimport { RouterProvider } from \"react-router/dom\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 1000 * 60 * 5,\n },\n },\n});\n\nconst Bootstrap = ({\n router,\n hydrate = false,\n}: {\n hydrate?: boolean;\n router: ReturnType<typeof createBrowserRouter>;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HydrationBoundary state={hydrate ? (window as any).DATA : undefined}>\n <HelmetProvider>\n <StaggeredRenderContext.Provider value={{ stagger: !hydrate }}>\n <RouterProvider router={router} />\n </StaggeredRenderContext.Provider>\n </HelmetProvider>\n </HydrationBoundary>\n </QueryClientProvider>\n </StrictMode>\n);\n\nconst BootstrapStatic = ({\n router,\n context,\n queryClient,\n helmetContext,\n}: {\n helmetContext: HelmetData[\"context\"];\n context: StaticHandlerContext;\n queryClient: QueryClient;\n router: ReturnType<typeof createStaticRouter>;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HelmetProvider context={helmetContext}>\n <StaticRouterProvider router={router} context={context} />\n </HelmetProvider>\n </QueryClientProvider>\n </StrictMode>\n);\n\nexport { Bootstrap, BootstrapStatic };\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = global || self, factory(global.spinDelay = {}, global.react));\n}(this, (function (exports, react) {\n const defaultOptions = {\n delay: 500,\n minDuration: 200,\n ssr: true\n };\n\n function useIsSSR() {\n const [isSSR, setIsSSR] = react.useState(true);\n react.useEffect(() => {\n setIsSSR(false);\n }, []);\n return isSSR;\n }\n\n function useSpinDelay(loading, options) {\n options = Object.assign({}, defaultOptions, options);\n const isSSR = useIsSSR() && options.ssr;\n const initialState = isSSR && loading ? 'DISPLAY' : 'IDLE';\n const [state, setState] = react.useState(initialState);\n const timeout = react.useRef(null);\n react.useEffect(() => {\n if (loading && (state === 'IDLE' || isSSR)) {\n clearTimeout(timeout.current);\n const delay = isSSR ? 0 : options.delay;\n timeout.current = setTimeout(() => {\n if (!loading) {\n return setState('IDLE');\n }\n\n timeout.current = setTimeout(() => {\n setState('EXPIRE');\n }, options.minDuration);\n setState('DISPLAY');\n }, delay);\n\n if (!isSSR) {\n setState('DELAY');\n }\n }\n\n if (!loading && state !== 'DISPLAY') {\n clearTimeout(timeout.current);\n setState('IDLE');\n }\n }, [loading, state, options.delay, options.minDuration, isSSR]);\n react.useEffect(() => {\n return () => clearTimeout(timeout.current);\n }, []);\n return state === 'DISPLAY' || state === 'EXPIRE';\n }\n\n exports.defaultOptions = defaultOptions;\n exports.useSpinDelay = useSpinDelay;\n\n})));\n//# sourceMappingURL=index.js.map\n","import { useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router\";\n\nexport const useScrollToTop = () => {\n const location = useLocation();\n const previousPath = useRef(location.pathname);\n\n useEffect(() => {\n if (previousPath.current === location.pathname) return;\n window.scrollTo(0, 0);\n previousPath.current = location.pathname;\n }, [location.pathname]);\n};\n","import { cn } from \"../util/cn.js\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import type { LucideIcon } from \"lucide-react\";\nimport { type ReactElement } from \"react\";\nimport { type RouteObject } from \"react-router\";\nimport type { Sidebar } from \"../../config/validators/SidebarSchema.js\";\nimport { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport { ZudokuContext, type ApiIdentity } from \"./ZudokuContext.js\";\n\nexport type ZudokuPlugin =\n | CommonPlugin\n | ProfileMenuPlugin\n | NavigationPlugin\n | ApiIdentityPlugin\n | SearchProviderPlugin;\n\nexport type { RouteObject };\n\nexport interface NavigationPlugin {\n getRoutes: () => RouteObject[];\n getSidebar?: (path: string) => Promise<Sidebar>;\n}\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 CommonPlugin {\n initialize?: (\n context: ZudokuContext,\n ) => Promise<void | boolean> | void | boolean;\n getHead?: () => ReactElement | undefined;\n getMdxComponents?: () => MdxComponentsType;\n}\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 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","import { CircleXIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nconst COLOR_MAP = {\n info: \"bg-blue-500\",\n note: \"bg-gray-500\",\n tip: \"bg-green-600\",\n caution: \"bg-orange-500\",\n danger: \"bg-rose-500\",\n} as const;\n\nexport const Banner = () => {\n const { page } = useZudoku();\n const [isBannerOpen, setIsBannerOpen] = useState(true);\n\n if (!page?.banner || !isBannerOpen) {\n return <style>{`:root { --banner-height: 0px; }`}</style>;\n }\n\n const mappedColor =\n page.banner.color && page.banner.color in COLOR_MAP\n ? COLOR_MAP[page.banner.color as keyof typeof COLOR_MAP]\n : !page.banner.color\n ? \"bg-primary\"\n : undefined;\n\n const style = !mappedColor ? { backgroundColor: page.banner.color } : {};\n\n return (\n <div\n className={cn(\n \"relative text-primary-foreground text-sm font-medium px-4 py-2 flex gap-2 items-center\",\n mappedColor,\n )}\n style={style}\n >\n <div className=\"w-full\">{page.banner.message}</div>\n {page.banner.dismissible && (\n <button\n type=\"button\"\n className=\"md:absolute md:right-4 -m-1.5 p-1.5 hover:bg-accent-foreground/10 rounded-md\"\n onClick={() => setIsBannerOpen(false)}\n >\n <CircleXIcon size={16} />\n </button>\n )}\n </div>\n );\n};\n","import { SearchIcon } from \"lucide-react\";\nimport { Suspense, useCallback, useEffect, useState } from \"react\";\nimport { isSearchPlugin } from \"../core/plugins.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const Search = ({ className }: { className?: string }) => {\n const ctx = useZudoku();\n const [isOpen, setIsOpen] = useState(false);\n\n const onClose = useCallback(() => setIsOpen(false), []);\n\n useEffect(() => {\n if (isOpen) {\n return;\n }\n\n function onKeyDown(event: KeyboardEvent) {\n if (event.key === \"k\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n setIsOpen(true);\n }\n }\n\n window.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [isOpen, setIsOpen]);\n\n const searchPlugin = ctx.plugins.find(isSearchPlugin);\n\n if (!searchPlugin) {\n return null;\n }\n\n return (\n <div className={className}>\n <button\n type=\"button\"\n onClick={() => setIsOpen(true)}\n className=\"flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-full sm:w-72\"\n >\n <div className=\"flex items-center gap-2 flex-grow\">\n <SearchIcon size={14} />\n Search\n </div>\n <kbd className=\"absolute right-[0.3rem] top-[0.3rem] hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex\">\n ⌘K\n </kbd>\n </button>\n <Suspense fallback={null}>\n {searchPlugin.renderSearch({\n isOpen,\n onClose,\n })}\n </Suspense>\n </div>\n );\n};\n","import { MoonStarIcon, SunIcon } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../util/cn.js\";\n\nexport const ThemeSwitch = () => {\n const { resolvedTheme, setTheme } = useTheme();\n const ThemeIcon = resolvedTheme === \"dark\" ? MoonStarIcon : SunIcon;\n\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label={\n resolvedTheme === \"dark\"\n ? \"Switch to light mode\"\n : \"Switch to dark mode\"\n }\n className={cn(resolvedTheme ? \"opacity-100\" : \"opacity-0\")}\n onClick={() => setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\")}\n >\n <ThemeIcon size={18} />\n </Button>\n );\n};\n","import { cx } from \"class-variance-authority\";\nimport { Suspense } from \"react\";\nimport { NavLink, useNavigation } from \"react-router\";\nimport { TopNavigationItem } from \"../../config/validators/common.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { ZudokuError } from \"../util/invariant.js\";\nimport { joinPath } from \"../util/joinPath.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { traverseSidebar } from \"./navigation/utils.js\";\n\nexport const isHiddenItem =\n (isAuthenticated?: boolean) =>\n (item: { display?: \"auth\" | \"anon\" | \"always\" }) => {\n return (\n (item.display === \"auth\" && isAuthenticated) ||\n (item.display === \"anon\" && !isAuthenticated) ||\n !item.display ||\n item.display === \"always\"\n );\n };\n\nexport const TopNavigation = () => {\n const { topNavigation } = useZudoku();\n const { isAuthenticated } = useAuth();\n\n // Hide top nav if there is only one item\n if (topNavigation.length <= 1) {\n return <style>{`:root { --top-nav-height: 0px; }`}</style>;\n }\n\n return (\n <Suspense>\n <nav className=\"hidden lg:block text-sm px-12 h-[--top-nav-height]\">\n <ul className=\"flex flex-row items-center gap-8\">\n {topNavigation.filter(isHiddenItem(isAuthenticated)).map((item) => (\n <li key={item.id}>\n <TopNavItem {...item} />\n </li>\n ))}\n </ul>\n </nav>\n </Suspense>\n );\n};\n\nexport const TopNavItem = ({\n id,\n label,\n default: defaultLink,\n}: TopNavigationItem) => {\n const { sidebars } = useZudoku();\n const currentSidebar = sidebars[id];\n const currentNav = useCurrentNavigation();\n const isNavigating = Boolean(useNavigation().location);\n const isActive = currentNav.topNavItem?.id === id && !isNavigating;\n\n // TODO: This is a bit of a hack to get the first link in the sidebar\n // We should really process this when we load the config so we can validate\n // that the sidebar is actually set. In this case we just fall back to linking\n // to the id if we can't resolve a sidebar.\n const first =\n defaultLink ??\n (currentSidebar\n ? traverseSidebar(currentSidebar, (item) => {\n if (item.type === \"doc\") return joinPath(item.id);\n })\n : joinPath(id));\n\n if (!first) {\n throw new ZudokuError(\"Page not found.\", {\n developerHint: `No links found in top navigation for '${id}'. Check that the sidebar isn't empty or that a default link is set.`,\n });\n }\n\n return (\n // We don't use isActive here because it has to be inside the sidebar,\n // the top nav id doesn't necessarily start with the sidebar id\n <NavLink\n className={({ isPending }) =>\n cx(\n \"block lg:py-3.5 font-medium -mb-px\",\n isActive || isPending\n ? \"border-primary text-foreground\"\n : \"border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25\",\n )\n }\n to={first}\n >\n {label}\n </NavLink>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { MenuIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n Drawer,\n DrawerContent,\n DrawerTitle,\n DrawerTrigger,\n} from \"../ui/Drawer.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Search } from \"./Search.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { isHiddenItem, TopNavItem } from \"./TopNavigation.js\";\n\nexport const MobileTopNavigation = () => {\n const { topNavigation } = useZudoku();\n const { isAuthenticated } = useAuth();\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n return (\n <Drawer\n direction=\"right\"\n open={drawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n <div className=\"flex lg:hidden justify-self-end\">\n <DrawerTrigger className=\"lg:hidden\">\n <MenuIcon size={22} />\n </DrawerTrigger>\n </div>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] right-0 left-auto w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none\">\n <VisuallyHidden>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n <Search className=\"flex p-4\" />\n <ul className=\"flex flex-col items-center gap-4 p-4\">\n <li>\n <ThemeSwitch />\n </li>\n {topNavigation.filter(isHiddenItem(isAuthenticated)).map((item) => (\n <li key={item.label}>\n <button onClick={() => setDrawerOpen(false)}>\n <TopNavItem {...item} />\n </button>\n </li>\n ))}\n </ul>\n </div>\n </DrawerContent>\n </Drawer>\n );\n};\n","import { memo } from \"react\";\nimport { Link } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Skeleton } from \"zudoku/ui/Skeleton.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { isProfileMenuPlugin, ProfileNavigationItem } from \"../core/plugins.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../ui/DropdownMenu.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { Banner } from \"./Banner.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { MobileTopNavigation } from \"./MobileTopNavigation.js\";\nimport { Search } from \"./Search.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { TopNavigation } from \"./TopNavigation.js\";\n\nconst RecursiveMenu = ({ item }: { item: ProfileNavigationItem }) => {\n return item.children ? (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n {item.children.map((item, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <RecursiveMenu key={i} item={item} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label} className=\"flex gap-2\">\n {item.icon && (\n <item.icon size={16} strokeWidth={1} absoluteStrokeWidth />\n )}\n {item.label}\n </DropdownMenuItem>\n </Link>\n );\n};\n\nexport const Header = memo(function HeaderInner() {\n const auth = useAuth();\n const { isAuthenticated, profile, isAuthEnabled } = useAuth();\n const context = useZudoku();\n const { page, plugins } = context;\n\n const accountItems = plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .sort((i) => i.weight ?? 0);\n\n return (\n <header className=\"sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full\">\n <Banner />\n <div className=\"border-b\">\n <div className=\"max-w-screen-2xl border-l border-r mx-auto grid grid-cols-[1fr_auto] lg:grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center px-4 lg:px-12 h-[--top-header-height]\">\n <div className=\"flex\">\n <Link to=\"/\">\n <div className=\"flex items-center gap-3.5\">\n {page?.logo && (\n <>\n <img\n src={\n /https?:\\/\\//.test(page.logo.src.light)\n ? page.logo.src.light\n : joinUrl(\n import.meta.env.BASE_URL,\n page.logo.src.light,\n )\n }\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"h-10 dark:hidden\"\n loading=\"lazy\"\n />\n <img\n src={\n /https?:\\/\\//.test(page.logo.src.dark)\n ? page.logo.src.dark\n : joinUrl(\n import.meta.env.BASE_URL,\n page.logo.src.dark,\n )\n }\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"h-10 hidden dark:block\"\n loading=\"lazy\"\n />\n </>\n )}\n <span className=\"font-bold text-2xl text-foreground/85 tracking-wide\">\n {page?.pageTitle}\n </span>\n </div>\n </Link>\n </div>\n <div className=\"grid grid-cols-1 lg:grid-cols-[--sidecar-grid-cols] items-center gap-8\">\n <div className=\"w-full justify-center hidden lg:flex\">\n <Search />\n </div>\n\n <MobileTopNavigation />\n <div className=\"hidden lg:flex items-center justify-self-end text-sm gap-2\">\n <Slotlet name=\"head-navigation-start\" />\n {isAuthEnabled && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded h-5 w-24 mr-4\" />}\n >\n {!isAuthenticated ? (\n <Button variant=\"ghost\" onClick={() => auth.login()}>\n Login\n </Button>\n ) : (\n Object.values(accountItems).length > 0 && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\">\n {profile?.name ? `${profile.name}` : \"My Account\"}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>\n {profile?.name ? `${profile.name}` : \"My Account\"}\n {profile?.email && (\n <div className=\"font-normal text-muted-foreground\">\n {profile.email}\n </div>\n )}\n </DropdownMenuLabel>\n {accountItems.filter((i) => i.category === \"top\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"top\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter(\n (i) => !i.category || i.category === \"middle\",\n ).length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter(\n (i) => !i.category || i.category === \"middle\",\n )\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter((i) => i.category === \"bottom\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"bottom\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n )}\n </ClientOnly>\n )}\n <Slotlet name=\"head-navigation-end\" />\n <ThemeSwitch />\n </div>\n </div>\n </div>\n </div>\n <div className=\"border-b\">\n <div className=\"max-w-screen-2xl mx-auto border-l border-r\">\n <Slotlet name=\"top-navigation-before\" />\n <TopNavigation />\n <Slotlet name=\"top-navigation-after\" />\n </div>\n </div>\n </header>\n );\n});\n","import { forwardRef, type PropsWithChildren } from \"react\";\nimport { cn } from \"../../util/cn.js\";\n\nexport const SidebarWrapper = forwardRef<\n HTMLDivElement,\n PropsWithChildren<{ pushMainContent?: boolean; className?: string }>\n>(({ children, className, pushMainContent }, ref) => (\n <nav\n // this data attribute is used in `Layout.tsx` to determine if side navigation\n // is present for the current page so the main content is pushed to the right\n // it's also important to set `peer` class here.\n // maybe this could be simplified by adjusting the layout\n data-navigation={String(pushMainContent)}\n className={cn(\n \"scrollbar peer hidden lg:flex flex-col fixed text-sm overflow-y-auto shrink-0 border-r pr-10\",\n \"-mx-[--padding-nav-item] pb-20 pt-[--padding-content-top]\",\n \"w-[--side-nav-width] h-[calc(100%-var(--header-height))] scroll-pt-2 gap-2\",\n !pushMainContent && \"border-r-0\",\n className,\n )}\n ref={ref}\n >\n {children}\n </nav>\n));\n\nSidebarWrapper.displayName = \"SidebarWrapper\";\n","import { useRef } from \"react\";\n\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { DrawerContent, DrawerTitle } from \"../../ui/Drawer.js\";\nimport { useCurrentNavigation } from \"../context/ZudokuContext.js\";\nimport { Slotlet } from \"../SlotletProvider.js\";\nimport { SidebarItem } from \"./SidebarItem.js\";\nimport { SidebarWrapper } from \"./SidebarWrapper.js\";\n\nexport const Sidebar = ({\n onRequestClose,\n}: {\n onRequestClose?: () => void;\n}) => {\n const navRef = useRef<HTMLDivElement | null>(null);\n const navigation = useCurrentNavigation();\n\n return (\n <>\n <SidebarWrapper\n ref={navRef}\n pushMainContent={navigation.sidebar.length > 0}\n >\n <Slotlet name=\"zudoku-before-navigation\" />\n {navigation.sidebar.map((item) => (\n <SidebarItem key={item.label} item={item} />\n ))}\n <Slotlet name=\"zudoku-after-navigation\" />\n </SidebarWrapper>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] left-0 w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none\">\n <VisuallyHidden>\n <DrawerTitle>Sidebar</DrawerTitle>\n </VisuallyHidden>\n {navigation.sidebar.map((item) => (\n <SidebarItem\n key={item.label}\n item={item}\n onRequestClose={onRequestClose}\n />\n ))}\n </div>\n </DrawerContent>\n </>\n );\n};\n","import { Helmet } from \"@zudoku/react-helmet-async\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport { Suspense, useEffect, useRef, useState, type ReactNode } from \"react\";\nimport { Outlet, useLocation, useNavigation } from \"react-router\";\nimport { useSpinDelay } from \"spin-delay\";\nimport { Drawer, DrawerTrigger } from \"../ui/Drawer.js\";\nimport { cn } from \"../util/cn.js\";\nimport { useScrollToAnchor } from \"../util/useScrollToAnchor.js\";\nimport { useScrollToTop } from \"../util/useScrollToTop.js\";\nimport { useViewportAnchor } from \"./context/ViewportAnchorContext.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Header } from \"./Header.js\";\nimport { Sidebar } from \"./navigation/Sidebar.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nconst LoadingFallback = () => (\n <main className=\"grid h-[calc(100vh-var(--header-height))] place-items-center\">\n <Spinner />\n </main>\n);\n\nexport const Layout = ({ children }: { children?: ReactNode }) => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n const { meta, authentication } = useZudoku();\n\n useScrollToAnchor();\n useScrollToTop();\n\n const previousLocationPath = useRef(location.pathname);\n\n useEffect(() => {\n // Initialize the authentication plugin\n authentication?.onPageLoad?.();\n }, [authentication]);\n\n useEffect(() => {\n // always reset on location change\n if (location.pathname !== previousLocationPath.current) {\n setActiveAnchor(\"\");\n }\n previousLocationPath.current = location.pathname;\n }, [location.pathname, setActiveAnchor]);\n\n // Page transition is happening: https://reactrouter.com/start/framework/pending-ui#global-pending-navigation\n const isNavigating = Boolean(useNavigation().location);\n const showSpinner = useSpinDelay(isNavigating, {\n delay: 300,\n minDuration: 500,\n });\n const [isDrawerOpen, setDrawerOpen] = useState(false);\n\n return (\n <>\n {import.meta.env.MODE === \"standalone\" && (\n <style>{`:root { --top-nav-height: 0px; }`}</style>\n )}\n <Helmet titleTemplate={meta?.title}>\n {meta?.description && (\n <meta name=\"description\" content={meta.description} />\n )}\n {meta?.favicon && <link rel=\"icon\" href={meta.favicon} />}\n </Helmet>\n <Slotlet name=\"layout-before-head\" />\n <Header />\n <Slotlet name=\"layout-after-head\" />\n\n <div className=\"w-full max-w-screen-2xl mx-auto px-4 lg:px-12 border-l border-r\">\n {showSpinner ? (\n <LoadingFallback />\n ) : (\n <Suspense fallback={<LoadingFallback />}>\n <Drawer\n direction=\"left\"\n open={isDrawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n <Sidebar onRequestClose={() => setDrawerOpen(false)} />\n <div\n className={cn(\n \"lg:hidden -mx-10 px-10 py-2 sticky bg-background/80 backdrop-blur z-10 top-0 left-0 right-0 border-b\",\n \"peer-data-[navigation=false]:hidden\",\n )}\n >\n <DrawerTrigger className=\"flex items-center gap-2\">\n <PanelLeftIcon size={16} strokeWidth={1.5} />\n <span className=\"text-sm\">Menu</span>\n </DrawerTrigger>\n </div>\n <main\n className={cn(\n \"h-full dark:border-white/10 translate-x-0\",\n \"lg:overflow-visible\",\n // This works in tandem with the `SidebarWrapper` component\n \"lg:peer-data-[navigation=true]:w-[calc(100%-var(--side-nav-width))]\",\n \"lg:peer-data-[navigation=true]:translate-x-[--side-nav-width] lg:peer-data-[navigation=true]:pl-12\",\n )}\n >\n <Slotlet name=\"zudoku-before-content\" />\n {children ?? <Outlet />}\n <Slotlet name=\"zudoku-after-content\" />\n </main>\n </Drawer>\n </Suspense>\n )}\n </div>\n </>\n );\n};\n","'use client';\nimport { createContext, Component, createElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback !== undefined) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","import { ReactNode } from \"react\";\nimport { TopNavigationItem } from \"../../config/validators/common.js\";\nimport type { SidebarConfig } from \"../../config/validators/SidebarSchema.js\";\nimport { type AuthenticationProvider } from \"../authentication/authentication.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport { Slotlets } from \"../components/SlotletProvider.js\";\nimport { joinPath } from \"../util/joinPath.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport {\n isApiIdentityPlugin,\n isNavigationPlugin,\n type NavigationPlugin,\n needsInitialization,\n type ZudokuPlugin,\n} from \"./plugins.js\";\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Request;\n label: string;\n id: string;\n}\n\nexport type ApiKeyCache = \"api-keys\";\n\ntype Metadata = Partial<{\n title: string;\n description: string;\n logo: string;\n favicon: string;\n generator: string;\n applicationName: string;\n referrer: string;\n keywords: string[];\n authors: string[];\n creator: string;\n publisher: string;\n}>;\n\ntype Page = Partial<{\n pageTitle?: string;\n logo?: {\n src: {\n light: string;\n dark: string;\n };\n width?: string;\n alt?: string;\n };\n banner?: {\n message: ReactNode;\n color?: \"note\" | \"tip\" | \"info\" | \"caution\" | \"danger\" | (string & {});\n dismissible?: boolean;\n };\n}>;\n\nexport type ZudokuContextOptions = {\n metadata?: Metadata;\n page?: Page;\n authentication?: AuthenticationProvider;\n topNavigation?: TopNavigationItem[];\n sidebars?: SidebarConfig;\n plugins?: ZudokuPlugin[];\n slotlets?: Slotlets;\n mdx?: {\n components?: MdxComponentsType;\n };\n overrides?: ComponentsContextType;\n protectedRoutes?: string[];\n};\n\nexport class ZudokuContext {\n public plugins: NonNullable<ZudokuContextOptions[\"plugins\"]>;\n public sidebars: SidebarConfig;\n public topNavigation: NonNullable<ZudokuContextOptions[\"topNavigation\"]>;\n public meta: ZudokuContextOptions[\"metadata\"];\n public page: ZudokuContextOptions[\"page\"];\n public authentication?: ZudokuContextOptions[\"authentication\"];\n private readonly navigationPlugins: NavigationPlugin[];\n\n constructor(public readonly options: ZudokuContextOptions) {\n this.plugins = options.plugins ?? [];\n this.topNavigation = options.topNavigation ?? [];\n this.sidebars = options.sidebars ?? {};\n this.navigationPlugins = this.plugins.filter(isNavigationPlugin);\n this.authentication = options.authentication;\n this.meta = options.metadata;\n this.page = options.page;\n }\n\n initialize = async (): Promise<void> => {\n await Promise.all(\n this.plugins\n .filter(needsInitialization)\n .map((plugin) => plugin.initialize?.(this)),\n );\n };\n\n getApiIdentities = async () => {\n const keys = await Promise.all(\n this.plugins\n .filter(isApiIdentityPlugin)\n .map((plugin) => plugin.getIdentities(this)),\n );\n\n return keys.flat();\n };\n\n getPluginSidebar = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map((plugin) =>\n plugin.getSidebar?.(joinPath(path)),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n const accessToken = await this.authentication.getAccessToken();\n\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n\n return request;\n };\n}\n","import { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error, resetErrorBoundary }: FallbackProps) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return <ErrorAlert error={error} />;\n}\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","import {\n createContext,\n useContext,\n type ComponentProps,\n type ComponentType,\n} from \"react\";\nimport { Header } from \"../Header.js\";\n\nexport const DEFAULT_COMPONENTS = {\n Header,\n};\n\nexport type ComponentsContextType = {\n Header?: ComponentType<ComponentProps<typeof Header>>;\n};\n\nconst ComponentsContext =\n createContext<Required<ComponentsContextType>>(DEFAULT_COMPONENTS);\n\nexport const ComponentsProvider = ComponentsContext.Provider;\n\nexport const useComponents = () => {\n return useContext(ComponentsContext);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport type { PropsWithChildren } from \"react\";\nimport { ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { ZudokuReactContext } from \"./ZudokuContext.js\";\n\nexport const ZudokuProvider = ({\n children,\n context,\n}: PropsWithChildren<{ context: ZudokuContext }>) => {\n useSuspenseQuery({\n queryFn: async () => {\n await context.initialize();\n return true;\n },\n queryKey: [\"zudoku-initialize\"],\n });\n\n return (\n <ZudokuReactContext.Provider value={context}>\n {children}\n </ZudokuReactContext.Provider>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { ThemeProvider } from \"next-themes\";\nimport {\n Fragment,\n memo,\n type PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, useNavigation } from \"react-router\";\nimport { hasHead, isMdxProviderPlugin } from \"../core/plugins.js\";\nimport { ZudokuContext, ZudokuContextOptions } from \"../core/ZudokuContext.js\";\nimport { TopLevelError } from \"../errors/TopLevelError.js\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { MdxComponents } from \"../util/MdxComponents.js\";\nimport \"../util/requestIdleCallbackPolyfill.js\";\nimport {\n ComponentsProvider,\n DEFAULT_COMPONENTS,\n} from \"./context/ComponentsContext.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { ZudokuProvider } from \"./context/ZudokuProvider.js\";\nimport { SlotletProvider } from \"./SlotletProvider.js\";\n\nconst ZudokoInner = memo(\n ({ children, ...props }: PropsWithChildren<ZudokuContextOptions>) => {\n const components = useMemo(\n () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),\n [props.overrides],\n );\n\n const mdxComponents = useMemo(() => {\n const componentsFromPlugins = (props.plugins ?? [])\n .filter(isMdxProviderPlugin)\n .flatMap((plugin) =>\n plugin.getMdxComponents ? [plugin.getMdxComponents()] : [],\n );\n\n return {\n ...componentsFromPlugins.reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n {},\n ),\n ...MdxComponents,\n ...props.mdx?.components,\n };\n }, [props.mdx?.components, props.plugins]);\n const { stagger } = useContext(StaggeredRenderContext);\n const [didNavigate, setDidNavigate] = useState(false);\n const staggeredValue = useMemo(\n () => (didNavigate ? { stagger: true } : { stagger }),\n [stagger, didNavigate],\n );\n const navigation = useNavigation();\n\n useEffect(() => {\n if (didNavigate) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n const [zudokuContext] = useState(() => new ZudokuContext(props));\n\n const heads = props.plugins\n ?.filter(hasHead)\n // eslint-disable-next-line react/no-array-index-key\n .map((plugin, i) => <Fragment key={i}>{plugin.getHead?.()}</Fragment>);\n\n return (\n <>\n <Helmet>{heads}</Helmet>\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <ZudokuProvider context={zudokuContext}>\n <MDXProvider components={mdxComponents}>\n <ThemeProvider attribute=\"class\" disableTransitionOnChange>\n <ComponentsProvider value={components}>\n <SlotletProvider slotlets={props.slotlets}>\n <ViewportAnchorProvider>\n {children ?? <Outlet />}\n </ViewportAnchorProvider>\n </SlotletProvider>\n </ComponentsProvider>\n </ThemeProvider>\n </MDXProvider>\n </ZudokuProvider>\n </StaggeredRenderContext.Provider>\n </>\n );\n },\n);\n\nZudokoInner.displayName = \"ZudokoInner\";\n\nconst Zudoku = (props: ZudokuContextOptions) => {\n return (\n <ErrorBoundary FallbackComponent={TopLevelError}>\n <ZudokoInner {...props} />\n </ErrorBoundary>\n );\n};\nZudoku.displayName = \"Zudoku\";\n\nexport { Zudoku };\n","import { useMDXComponents as useMDXComponentsImport } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { Link as LinkImport } from \"react-router\";\nimport { useAuth as useAuthImport } from \"../authentication/hook.js\";\nimport { RouterError as RouterErrorImport } from \"../errors/RouterError.js\";\nimport { ServerError as ServerErrorImport } from \"../errors/ServerError.js\";\nimport { Button as ButtonImport } from \"../ui/Button.js\";\nimport { Callout as CalloutImport } from \"../ui/Callout.js\";\nimport {\n Bootstrap as BootstrapImport,\n BootstrapStatic as BootstrapStaticImport,\n} from \"./Bootstrap.js\";\nimport { ClientOnly as ClientOnlyImport } from \"./ClientOnly.js\";\nimport { Layout as LayoutImport } from \"./Layout.js\";\nimport { Markdown as MarkdownImport } from \"./Markdown.js\";\nimport { Spinner as SpinnerImport } from \"./Spinner.js\";\nimport { Zudoku as ZudokuImport } from \"./Zudoku.js\";\nimport {\n CACHE_KEYS as CACHE_KEYS_IMPORT,\n useCache as useCacheImport,\n} from \"./cache.js\";\nimport { useZudoku as useZudokuImport } from \"./context/ZudokuContext.js\";\n\nexport const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;\nexport const Layout = /*@__PURE__*/ LayoutImport;\nexport const RouterError = /*@__PURE__*/ RouterErrorImport;\nexport const ServerError = /*@__PURE__*/ ServerErrorImport;\nexport const Bootstrap = /*@__PURE__*/ BootstrapImport;\nexport const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;\n\nexport const Head = /*@__PURE__*/ Helmet;\n\nexport const useZudoku = /*@__PURE__*/ useZudokuImport;\nexport const useAuth = /*@__PURE__*/ useAuthImport;\nexport const useCache = /*@__PURE__*/ useCacheImport;\nexport const CACHE_KEYS = /*@__PURE__*/ CACHE_KEYS_IMPORT;\nexport const Zudoku = /*@__PURE__*/ ZudokuImport;\n\nexport const Callout = /*@__PURE__*/ CalloutImport;\nexport const Markdown = /*@__PURE__*/ MarkdownImport;\nexport const Spinner = /*@__PURE__*/ SpinnerImport;\nexport const ClientOnly = /*@__PURE__*/ ClientOnlyImport;\nexport const Button = /*@__PURE__*/ ButtonImport;\nexport const Link = /*@__PURE__*/ LinkImport;\n"],"names":["QueryCache","_a","Subscribable","config","__privateAdd","_queries","__privateSet","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","Query","__privateGet","queryInMap","notifyManager","filters","defaultedFilters","matchQuery","queries","event","listener","MutationCache","_mutations","_scopes","_mutationId","mutation","Mutation","__privateWrapper","scope","scopeFor","scopedMutations","index","mutationsWithSameScope","firstPendingMutation","m","foundMutation","matchMutation","pausedMutations","x","noop","infiniteQueryBehavior","pages","context","direction","_c","_b","oldPages","_d","oldPageParams","_e","result","currentPage","fetchFn","cancelled","addSignalProperty","object","queryFn","ensureQueryFn","fetchPage","data","param","previous","queryFnContext","page","maxPages","addTo","addToStart","addToEnd","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","QueryClient","_queryCache","_mutationCache","_defaultOptions","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","focusManager","focused","onlineManager","online","defaultedOptions","cachedData","resolveStaleTime","updater","prevData","functionalUpdate","queryCache","refetchFilters","cancelOptions","defaultedCancelOptions","promises","fetchOptions","promise","hashKey","defaults","queryDefault","partialMatchKey","mutationKey","skipToken","defaultTransformerFn","hydrate","dehydratedState","mutationCache","deserializeData","mutations","mutationOptions","meta","_ignored","serializedState","initialPromise","HydrationBoundary","children","queryClient","useQueryClient","hydrationQueue","setHydrationQueue","React","optionsRef","newQueries","existingQueries","dehydratedQuery","existingQuery","hydrationIsNewer","queryAlreadyQueued","prev","ServerError","error","jsx","ErrorAlert","RouterProvider2","props","RouterProvider","ReactDOM","Bootstrap","router","StrictMode","QueryClientProvider","HelmetProvider","StaggeredRenderContext","BootstrapStatic","helmetContext","StaticRouterProvider","global","factory","exports","require$$0","this","react","defaultOptions","useIsSSR","isSSR","setIsSSR","useSpinDelay","loading","initialState","setState","timeout","delay","useScrollToTop","location","useLocation","previousPath","useRef","useEffect","Skeleton","className","cn","isProfileMenuPlugin","obj","isNavigationPlugin","isSearchPlugin","needsInitialization","hasHead","isMdxProviderPlugin","isApiIdentityPlugin","COLOR_MAP","Banner","useZudoku","isBannerOpen","setIsBannerOpen","useState","mappedColor","style","jsxs","CircleXIcon","Search","ctx","isOpen","setIsOpen","onClose","useCallback","onKeyDown","searchPlugin","SearchIcon","Suspense","ThemeSwitch","resolvedTheme","setTheme","useTheme","ThemeIcon","MoonStarIcon","SunIcon","Button","isHiddenItem","isAuthenticated","item","TopNavigation","topNavigation","useAuth","TopNavItem","id","label","defaultLink","sidebars","currentSidebar","currentNav","useCurrentNavigation","isNavigating","useNavigation","isActive","first","traverseSidebar","joinPath","ZudokuError","NavLink","isPending","cx","MobileTopNavigation","drawerOpen","setDrawerOpen","Drawer","open","DrawerTrigger","MenuIcon","DrawerContent","VisuallyHidden","DrawerTitle","RecursiveMenu","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuPortal","DropdownMenuSubContent","i","Link","DropdownMenuItem","Header","memo","auth","profile","isAuthEnabled","plugins","accountItems","p","Fragment","joinUrl","Slotlet","ClientOnly","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","SidebarWrapper","forwardRef","pushMainContent","ref","Sidebar","onRequestClose","navRef","navigation","SidebarItem","LoadingFallback","Spinner","Layout","setActiveAnchor","useViewportAnchor","authentication","useScrollToAnchor","previousLocationPath","showSpinner","isDrawerOpen","Helmet","PanelLeftIcon","Outlet","ErrorBoundaryContext","createContext","ErrorBoundary","Component","_this$props$onReset","_this$props","_len","args","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","fallback","childToRender","createElement","a","b","ZudokuContext","__publicField","plugin","path","nav","request","accessToken","TopLevelError","resetErrorBoundary","root","cb","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","ZudokuProvider","useSuspenseQuery","ZudokuReactContext","ZudokoInner","components","useMemo","mdxComponents","acc","curr","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","zudokuContext","heads","MDXProvider","ThemeProvider","SlotletProvider","ViewportAnchorProvider","Zudoku","useMDXComponents","useMDXComponentsImport","LayoutImport","RouterError","RouterErrorImport","ServerErrorImport","BootstrapImport","BootstrapStaticImport","Head","useZudokuImport","useAuthImport","useCache","useCacheImport","CACHE_KEYS","CACHE_KEYS_IMPORT","ZudokuImport","Callout","CalloutImport","Markdown","MarkdownImport","SpinnerImport","ClientOnlyImport","ButtonImport","LinkImport"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAKIA,MAAaC,KAAA,cAAcC,GAAa;AAAA,EAC1C,YAAYC,IAAS,IAAI;AACvB,UAAO;AAIT,IAAAC,EAAA,MAAAC;AAHE,SAAK,SAASF,GACdG,EAAA,MAAKD,GAA2B,oBAAI,IAAK;AAAA,EAC7C;AAAA,EAEE,MAAME,GAAQC,GAASC,GAAO;AAC5B,UAAMC,IAAWF,EAAQ,UACnBG,IAAYH,EAAQ,aAAaI,GAAsBF,GAAUF,CAAO;AAC9E,QAAIK,IAAQ,KAAK,IAAIF,CAAS;AAC9B,WAAKE,MACHA,IAAQ,IAAIC,GAAM;AAAA,MAChB,OAAO;AAAA,MACP,UAAAJ;AAAA,MACA,WAAAC;AAAA,MACA,SAASJ,EAAO,oBAAoBC,CAAO;AAAA,MAC3C,OAAAC;AAAA,MACA,gBAAgBF,EAAO,iBAAiBG,CAAQ;AAAA,IACxD,CAAO,GACD,KAAK,IAAIG,CAAK,IAETA;AAAA,EACX;AAAA,EACE,IAAIA,GAAO;AACT,IAAKE,EAAA,MAAKV,GAAS,IAAIQ,EAAM,SAAS,MACpCE,EAAA,MAAKV,GAAS,IAAIQ,EAAM,WAAWA,CAAK,GACxC,KAAK,OAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAAA;AAAA,IACR,CAAO;AAAA,EAEP;AAAA,EACE,OAAOA,GAAO;AACZ,UAAMG,IAAaD,EAAA,MAAKV,GAAS,IAAIQ,EAAM,SAAS;AACpD,IAAIG,MACFH,EAAM,QAAS,GACXG,MAAeH,KACjBE,EAAA,MAAKV,GAAS,OAAOQ,EAAM,SAAS,GAEtC,KAAK,OAAO,EAAE,MAAM,WAAW,OAAAA,EAAK,CAAE;AAAA,EAE5C;AAAA,EACE,QAAQ;AACN,IAAAI,EAAc,MAAM,MAAM;AACxB,WAAK,OAAM,EAAG,QAAQ,CAACJ,MAAU;AAC/B,aAAK,OAAOA,CAAK;AAAA,MACzB,CAAO;AAAA,IACP,CAAK;AAAA,EACL;AAAA,EACE,IAAIF,GAAW;AACb,WAAOI,EAAA,MAAKV,GAAS,IAAIM,CAAS;AAAA,EACtC;AAAA,EACE,SAAS;AACP,WAAO,CAAC,GAAGI,EAAA,MAAKV,GAAS,OAAM,CAAE;AAAA,EACrC;AAAA,EACE,KAAKa,GAAS;AACZ,UAAMC,IAAmB,EAAE,OAAO,IAAM,GAAGD,EAAS;AACpD,WAAO,KAAK,OAAM,EAAG;AAAA,MACnB,CAACL,MAAUO,GAAWD,GAAkBN,CAAK;AAAA,IAC9C;AAAA,EACL;AAAA,EACE,QAAQK,IAAU,IAAI;AACpB,UAAMG,IAAU,KAAK,OAAQ;AAC7B,WAAO,OAAO,KAAKH,CAAO,EAAE,SAAS,IAAIG,EAAQ,OAAO,CAACR,MAAUO,GAAWF,GAASL,CAAK,CAAC,IAAIQ;AAAA,EACrG;AAAA,EACE,OAAOC,GAAO;AACZ,IAAAL,EAAc,MAAM,MAAM;AACxB,WAAK,UAAU,QAAQ,CAACM,MAAa;AACnC,QAAAA,EAASD,CAAK;AAAA,MACtB,CAAO;AAAA,IACP,CAAK;AAAA,EACL;AAAA,EACE,UAAU;AACR,IAAAL,EAAc,MAAM,MAAM;AACxB,WAAK,OAAM,EAAG,QAAQ,CAACJ,MAAU;AAC/B,QAAAA,EAAM,QAAS;AAAA,MACvB,CAAO;AAAA,IACP,CAAK;AAAA,EACL;AAAA,EACE,WAAW;AACT,IAAAI,EAAc,MAAM,MAAM;AACxB,WAAK,OAAM,EAAG,QAAQ,CAACJ,MAAU;AAC/B,QAAAA,EAAM,SAAU;AAAA,MACxB,CAAO;AAAA,IACP,CAAK;AAAA,EACL;AACA,GAjFER,IAAA,eANeJ,kBCAbuB,MAAgBvB,KAAA,cAAcC,GAAa;AAAA,EAC7C,YAAYC,IAAS,IAAI;AACvB,UAAO;AAMT,IAAAC,EAAA,MAAAqB;AACA,IAAArB,EAAA,MAAAsB;AACA,IAAAtB,EAAA,MAAAuB;AAPE,SAAK,SAASxB,GACdG,EAAA,MAAKmB,GAA6B,oBAAI,IAAK,IAC3CnB,EAAA,MAAKoB,GAA0B,oBAAI,IAAK,IACxCpB,EAAA,MAAKqB,GAAc;AAAA,EACvB;AAAA,EAIE,MAAMpB,GAAQC,GAASC,GAAO;AAC5B,UAAMmB,IAAW,IAAIC,GAAS;AAAA,MAC5B,eAAe;AAAA,MACf,YAAmB,EAALC,EAAA,MAAKH,GAAL;AAAA,MACd,SAASpB,EAAO,uBAAuBC,CAAO;AAAA,MAC9C,OAAAC;AAAA,IACN,CAAK;AACD,gBAAK,IAAImB,CAAQ,GACVA;AAAA,EACX;AAAA,EACE,IAAIA,GAAU;AACZ,IAAAb,EAAA,MAAKU,GAAW,IAAIG,CAAQ;AAC5B,UAAMG,IAAQC,EAASJ,CAAQ;AAC/B,QAAI,OAAOG,KAAU,UAAU;AAC7B,YAAME,IAAkBlB,EAAA,MAAKW,GAAQ,IAAIK,CAAK;AAC9C,MAAIE,IACFA,EAAgB,KAAKL,CAAQ,IAE7Bb,EAAA,MAAKW,GAAQ,IAAIK,GAAO,CAACH,CAAQ,CAAC;AAAA,IAE1C;AACI,SAAK,OAAO,EAAE,MAAM,SAAS,UAAAA,EAAQ,CAAE;AAAA,EAC3C;AAAA,EACE,OAAOA,GAAU;AACf,QAAIb,EAAA,MAAKU,GAAW,OAAOG,CAAQ,GAAG;AACpC,YAAMG,IAAQC,EAASJ,CAAQ;AAC/B,UAAI,OAAOG,KAAU,UAAU;AAC7B,cAAME,IAAkBlB,EAAA,MAAKW,GAAQ,IAAIK,CAAK;AAC9C,YAAIE;AACF,cAAIA,EAAgB,SAAS,GAAG;AAC9B,kBAAMC,IAAQD,EAAgB,QAAQL,CAAQ;AAC9C,YAAIM,MAAU,MACZD,EAAgB,OAAOC,GAAO,CAAC;AAAA,UAElC,MAAM,CAAID,EAAgB,CAAC,MAAML,KAChCb,EAAA,MAAKW,GAAQ,OAAOK,CAAK;AAAA,MAGrC;AAAA,IACA;AACI,SAAK,OAAO,EAAE,MAAM,WAAW,UAAAH,EAAQ,CAAE;AAAA,EAC7C;AAAA,EACE,OAAOA,GAAU;AACf,UAAMG,IAAQC,EAASJ,CAAQ;AAC/B,QAAI,OAAOG,KAAU,UAAU;AAC7B,YAAMI,IAAyBpB,EAAA,MAAKW,GAAQ,IAAIK,CAAK,GAC/CK,IAAuBD,KAAA,gBAAAA,EAAwB;AAAA,QACnD,CAACE,MAAMA,EAAE,MAAM,WAAW;AAAA;AAE5B,aAAO,CAACD,KAAwBA,MAAyBR;AAAA,IAC/D;AACM,aAAO;AAAA,EAEb;AAAA,EACE,QAAQA,GAAU;;AAChB,UAAMG,IAAQC,EAASJ,CAAQ;AAC/B,QAAI,OAAOG,KAAU,UAAU;AAC7B,YAAMO,KAAgBrC,IAAAc,EAAA,MAAKW,GAAQ,IAAIK,CAAK,MAAtB,gBAAA9B,EAAyB,KAAK,CAACoC,MAAMA,MAAMT,KAAYS,EAAE,MAAM;AACrF,cAAOC,KAAA,gBAAAA,EAAe,eAAc,QAAQ,QAAS;AAAA,IAC3D;AACM,aAAO,QAAQ,QAAS;AAAA,EAE9B;AAAA,EACE,QAAQ;AACN,IAAArB,EAAc,MAAM,MAAM;AACxB,MAAAF,EAAA,MAAKU,GAAW,QAAQ,CAACG,MAAa;AACpC,aAAK,OAAO,EAAE,MAAM,WAAW,UAAAA,EAAQ,CAAE;AAAA,MACjD,CAAO,GACDb,EAAA,MAAKU,GAAW,MAAO,GACvBV,EAAA,MAAKW,GAAQ,MAAO;AAAA,IAC1B,CAAK;AAAA,EACL;AAAA,EACE,SAAS;AACP,WAAO,MAAM,KAAKX,EAAA,MAAKU,EAAU;AAAA,EACrC;AAAA,EACE,KAAKP,GAAS;AACZ,UAAMC,IAAmB,EAAE,OAAO,IAAM,GAAGD,EAAS;AACpD,WAAO,KAAK,OAAM,EAAG;AAAA,MACnB,CAACU,MAAaW,GAAcpB,GAAkBS,CAAQ;AAAA,IACvD;AAAA,EACL;AAAA,EACE,QAAQV,IAAU,IAAI;AACpB,WAAO,KAAK,OAAM,EAAG,OAAO,CAACU,MAAaW,GAAcrB,GAASU,CAAQ,CAAC;AAAA,EAC9E;AAAA,EACE,OAAON,GAAO;AACZ,IAAAL,EAAc,MAAM,MAAM;AACxB,WAAK,UAAU,QAAQ,CAACM,MAAa;AACnC,QAAAA,EAASD,CAAK;AAAA,MACtB,CAAO;AAAA,IACP,CAAK;AAAA,EACL;AAAA,EACE,wBAAwB;AACtB,UAAMkB,IAAkB,KAAK,SAAS,OAAO,CAACC,MAAMA,EAAE,MAAM,QAAQ;AACpE,WAAOxB,EAAc;AAAA,MACnB,MAAM,QAAQ;AAAA,QACZuB,EAAgB,IAAI,CAACZ,MAAaA,EAAS,SAAU,EAAC,MAAMc,CAAI,CAAC;AAAA,MACzE;AAAA,IACK;AAAA,EACL;AACA,GAtGEjB,IAAA,eACAC,IAAA,eACAC,IAAA,eAVkB1B;AA+GpB,SAAS+B,EAASJ,GAAU;;AAC1B,UAAO3B,IAAA2B,EAAS,QAAQ,UAAjB,gBAAA3B,EAAwB;AACjC;ACpHA,SAAS0C,GAAsBC,GAAO;AACpC,SAAO;AAAA,IACL,SAAS,CAACC,GAAShC,MAAU;;AAC3B,YAAML,IAAUqC,EAAQ,SAClBC,KAAYC,KAAAC,KAAA/C,IAAA4C,EAAQ,iBAAR,gBAAA5C,EAAsB,SAAtB,gBAAA+C,EAA4B,cAA5B,gBAAAD,EAAuC,WACnDE,MAAWC,IAAAL,EAAQ,MAAM,SAAd,gBAAAK,EAAoB,UAAS,CAAE,GAC1CC,MAAgBC,IAAAP,EAAQ,MAAM,SAAd,gBAAAO,EAAoB,eAAc,CAAE;AAC1D,UAAIC,IAAS,EAAE,OAAO,CAAA,GAAI,YAAY,CAAA,EAAI,GACtCC,IAAc;AAClB,YAAMC,IAAU,YAAY;AAC1B,YAAIC,IAAY;AAChB,cAAMC,IAAoB,CAACC,MAAW;AACpC,iBAAO,eAAeA,GAAQ,UAAU;AAAA,YACtC,YAAY;AAAA,YACZ,KAAK,OACCb,EAAQ,OAAO,UACjBW,IAAY,KAEZX,EAAQ,OAAO,iBAAiB,SAAS,MAAM;AAC7C,cAAAW,IAAY;AAAA,YAC9B,CAAiB,GAEIX,EAAQ;AAAA,UAE7B,CAAW;AAAA,QACF,GACKc,IAAUC,GAAcf,EAAQ,SAASA,EAAQ,YAAY,GAC7DgB,IAAY,OAAOC,GAAMC,GAAOC,MAAa;AACjD,cAAIR;AACF,mBAAO,QAAQ,OAAQ;AAEzB,cAAIO,KAAS,QAAQD,EAAK,MAAM;AAC9B,mBAAO,QAAQ,QAAQA,CAAI;AAE7B,gBAAMG,IAAiB;AAAA,YACrB,UAAUpB,EAAQ;AAAA,YAClB,WAAWkB;AAAA,YACX,WAAWC,IAAW,aAAa;AAAA,YACnC,MAAMnB,EAAQ,QAAQ;AAAA,UACvB;AACD,UAAAY,EAAkBQ,CAAc;AAChC,gBAAMC,KAAO,MAAMP;AAAA,YACjBM;AAAA,UACD,GACK,EAAE,UAAAE,OAAatB,EAAQ,SACvBuB,KAAQJ,IAAWK,KAAaC;AACtC,iBAAO;AAAA,YACL,OAAOF,GAAMN,EAAK,OAAOI,IAAMC,EAAQ;AAAA,YACvC,YAAYC,GAAMN,EAAK,YAAYC,GAAOI,EAAQ;AAAA,UACnD;AAAA,QACF;AACD,YAAIrB,KAAaG,EAAS,QAAQ;AAChC,gBAAMe,IAAWlB,MAAc,YACzByB,IAAcP,IAAWQ,KAAuBC,IAChDC,IAAU;AAAA,YACd,OAAOzB;AAAA,YACP,YAAYE;AAAA,UACb,GACKY,IAAQQ,EAAY/D,GAASkE,CAAO;AAC1C,UAAArB,IAAS,MAAMQ,EAAUa,GAASX,GAAOC,CAAQ;AAAA,QAC3D,OAAe;AACL,gBAAMW,IAAiB/B,KAASK,EAAS;AACzC,aAAG;AACD,kBAAMc,IAAQT,MAAgB,IAAIH,EAAc,CAAC,KAAK3C,EAAQ,mBAAmBiE,GAAiBjE,GAAS6C,CAAM;AACjH,gBAAIC,IAAc,KAAKS,KAAS;AAC9B;AAEF,YAAAV,IAAS,MAAMQ,EAAUR,GAAQU,CAAK,GACtCT;AAAA,UACD,SAAQA,IAAcqB;AAAA,QACjC;AACQ,eAAOtB;AAAA,MACR;AACD,MAAIR,EAAQ,QAAQ,YAClBA,EAAQ,UAAU,MAAM;;AACtB,gBAAOG,KAAA/C,IAAA4C,EAAQ,SAAQ,cAAhB,gBAAAG,EAAA;AAAA,UAAA/C;AAAA,UACLsD;AAAA,UACA;AAAA,YACE,UAAUV,EAAQ;AAAA,YAClB,MAAMA,EAAQ,QAAQ;AAAA,YACtB,QAAQA,EAAQ;AAAA,UACjB;AAAA,UACDhC;AAAA;AAAA,MAEH,IAEDgC,EAAQ,UAAUU;AAAA,IAE1B;AAAA,EACG;AACH;AACA,SAASkB,GAAiBjE,GAAS,EAAE,OAAAoC,GAAO,YAAAgC,EAAU,GAAI;AACxD,QAAMC,IAAYjC,EAAM,SAAS;AACjC,SAAOA,EAAM,SAAS,IAAIpC,EAAQ;AAAA,IAChCoC,EAAMiC,CAAS;AAAA,IACfjC;AAAA,IACAgC,EAAWC,CAAS;AAAA,IACpBD;AAAA,EACJ,IAAM;AACN;AACA,SAASJ,GAAqBhE,GAAS,EAAE,OAAAoC,GAAO,YAAAgC,EAAU,GAAI;;AAC5D,SAAOhC,EAAM,SAAS,KAAI3C,IAAAO,EAAQ,yBAAR,gBAAAP,EAAA,KAAAO,GAA+BoC,EAAM,CAAC,GAAGA,GAAOgC,EAAW,CAAC,GAAGA,KAAc;AACzG;gCCxFIE,MAAc7E,KAAA,MAAM;AAAA,EAStB,YAAYE,IAAS,IAAI;AARzB,IAAAC,EAAA,MAAA2E;AACA,IAAA3E,EAAA,MAAA4E;AACA,IAAA5E,EAAA,MAAA6E;AACA,IAAA7E,EAAA,MAAA8E;AACA,IAAA9E,EAAA,MAAA+E;AACA,IAAA/E,EAAA,MAAAgF;AACA,IAAAhF,EAAA,MAAAiF;AACA,IAAAjF,EAAA,MAAAkF;AAEE,IAAAhF,EAAA,MAAKyE,GAAc5E,EAAO,cAAc,IAAIH,GAAY,IACxDM,EAAA,MAAK0E,GAAiB7E,EAAO,iBAAiB,IAAIqB,GAAe,IACjElB,EAAA,MAAK2E,GAAkB9E,EAAO,kBAAkB,CAAE,IAClDG,EAAA,MAAK4E,GAAiC,oBAAI,IAAK,IAC/C5E,EAAA,MAAK6E,GAAoC,oBAAI,IAAK,IAClD7E,EAAA,MAAK8E,GAAc;AAAA,EACvB;AAAA,EACE,QAAQ;AAEN,IADAtD,EAAA,MAAKsD,GAAL,KACIrE,EAAA,MAAKqE,OAAgB,MAEzB9E,EAAA,MAAK+E,GAAoBE,GAAa,UAAU,OAAOC,MAAY;AACjE,MAAIA,MACF,MAAM,KAAK,sBAAuB,GAClCzE,EAAA,MAAKgE,GAAY,QAAS;AAAA,IAElC,CAAK,IACDzE,EAAA,MAAKgF,GAAqBG,GAAc,UAAU,OAAOC,MAAW;AAClE,MAAIA,MACF,MAAM,KAAK,sBAAuB,GAClC3E,EAAA,MAAKgE,GAAY,SAAU;AAAA,IAEnC,CAAK;AAAA,EACL;AAAA,EACE,UAAU;;AAER,IADAjD,EAAA,MAAKsD,GAAL,KACIrE,EAAA,MAAKqE,OAAgB,OAEzBnF,IAAAc,EAAA,MAAKsE,OAAL,QAAApF,EAAA,YACAK,EAAA,MAAK+E,GAAoB,UACzBrC,IAAAjC,EAAA,MAAKuE,OAAL,QAAAtC,EAAA,YACA1C,EAAA,MAAKgF,GAAqB;AAAA,EAC9B;AAAA,EACE,WAAWpE,GAAS;AAClB,WAAOH,EAAA,MAAKgE,GAAY,QAAQ,EAAE,GAAG7D,GAAS,aAAa,WAAY,CAAA,EAAE;AAAA,EAC7E;AAAA,EACE,WAAWA,GAAS;AAClB,WAAOH,EAAA,MAAKiE,GAAe,QAAQ,EAAE,GAAG9D,GAAS,QAAQ,UAAW,CAAA,EAAE;AAAA,EAC1E;AAAA,EACE,aAAaR,GAAU;;AACrB,UAAMF,IAAU,KAAK,oBAAoB,EAAE,UAAAE,EAAQ,CAAE;AACrD,YAAOT,IAAAc,EAAA,MAAKgE,GAAY,IAAIvE,EAAQ,SAAS,MAAtC,gBAAAP,EAAyC,MAAM;AAAA,EAC1D;AAAA,EACE,gBAAgBO,GAAS;AACvB,UAAMmF,IAAmB,KAAK,oBAAoBnF,CAAO,GACnDK,IAAQE,EAAA,MAAKgE,GAAY,MAAM,MAAMY,CAAgB,GACrDC,IAAa/E,EAAM,MAAM;AAC/B,WAAI+E,MAAe,SACV,KAAK,WAAWpF,CAAO,KAE5BA,EAAQ,qBAAqBK,EAAM,cAAcgF,GAAiBF,EAAiB,WAAW9E,CAAK,CAAC,KACjG,KAAK,cAAc8E,CAAgB,GAEnC,QAAQ,QAAQC,CAAU;AAAA,EACrC;AAAA,EACE,eAAe1E,GAAS;AACtB,WAAOH,EAAA,MAAKgE,GAAY,QAAQ7D,CAAO,EAAE,IAAI,CAAC,EAAE,UAAAR,GAAU,OAAAD,QAAY;AACpE,YAAMqD,IAAOrD,EAAM;AACnB,aAAO,CAACC,GAAUoD,CAAI;AAAA,IAC5B,CAAK;AAAA,EACL;AAAA,EACE,aAAapD,GAAUoF,GAAStF,GAAS;AACvC,UAAMmF,IAAmB,KAAK,oBAAoB,EAAE,UAAAjF,EAAQ,CAAE,GACxDG,IAAQE,EAAA,MAAKgE,GAAY;AAAA,MAC7BY,EAAiB;AAAA,IAClB,GACKI,IAAWlF,KAAA,gBAAAA,EAAO,MAAM,MACxBiD,IAAOkC,GAAiBF,GAASC,CAAQ;AAC/C,QAAIjC,MAAS;AAGb,aAAO/C,EAAA,MAAKgE,GAAY,MAAM,MAAMY,CAAgB,EAAE,QAAQ7B,GAAM,EAAE,GAAGtD,GAAS,QAAQ,GAAI,CAAE;AAAA,EACpG;AAAA,EACE,eAAeU,GAAS4E,GAAStF,GAAS;AACxC,WAAOS,EAAc;AAAA,MACnB,MAAMF,EAAA,MAAKgE,GAAY,QAAQ7D,CAAO,EAAE,IAAI,CAAC,EAAE,UAAAR,QAAe;AAAA,QAC5DA;AAAA,QACA,KAAK,aAAaA,GAAUoF,GAAStF,CAAO;AAAA,MAC7C,CAAA;AAAA,IACF;AAAA,EACL;AAAA,EACE,cAAcE,GAAU;;AACtB,UAAMF,IAAU,KAAK,oBAAoB,EAAE,UAAAE,EAAQ,CAAE;AACrD,YAAOT,IAAAc,EAAA,MAAKgE,GAAY;AAAA,MACtBvE,EAAQ;AAAA,IACd,MAFW,gBAAAP,EAEJ;AAAA,EACP;AAAA,EACE,cAAciB,GAAS;AACrB,UAAM+E,IAAalF,EAAA,MAAKgE;AACxB,IAAA9D,EAAc,MAAM,MAAM;AACxB,MAAAgF,EAAW,QAAQ/E,CAAO,EAAE,QAAQ,CAACL,MAAU;AAC7C,QAAAoF,EAAW,OAAOpF,CAAK;AAAA,MAC/B,CAAO;AAAA,IACP,CAAK;AAAA,EACL;AAAA,EACE,aAAaK,GAASV,GAAS;AAC7B,UAAMyF,IAAalF,EAAA,MAAKgE,IAClBmB,IAAiB;AAAA,MACrB,MAAM;AAAA,MACN,GAAGhF;AAAA,IACJ;AACD,WAAOD,EAAc,MAAM,OACzBgF,EAAW,QAAQ/E,CAAO,EAAE,QAAQ,CAACL,MAAU;AAC7C,MAAAA,EAAM,MAAO;AAAA,IACrB,CAAO,GACM,KAAK,eAAeqF,GAAgB1F,CAAO,EACnD;AAAA,EACL;AAAA,EACE,cAAcU,GAASiF,IAAgB,IAAI;AACzC,UAAMC,IAAyB,EAAE,QAAQ,IAAM,GAAGD,EAAe,GAC3DE,IAAWpF,EAAc;AAAA,MAC7B,MAAMF,EAAA,MAAKgE,GAAY,QAAQ7D,CAAO,EAAE,IAAI,CAACL,MAAUA,EAAM,OAAOuF,CAAsB,CAAC;AAAA,IAC5F;AACD,WAAO,QAAQ,IAAIC,CAAQ,EAAE,KAAK3D,CAAI,EAAE,MAAMA,CAAI;AAAA,EACtD;AAAA,EACE,kBAAkBxB,GAASV,IAAU,IAAI;AACvC,WAAOS,EAAc,MAAM,MAAM;AAI/B,UAHAF,EAAA,MAAKgE,GAAY,QAAQ7D,CAAO,EAAE,QAAQ,CAACL,MAAU;AACnD,QAAAA,EAAM,WAAY;AAAA,MAC1B,CAAO,IACGK,KAAA,gBAAAA,EAAS,iBAAgB;AAC3B,eAAO,QAAQ,QAAS;AAE1B,YAAMgF,IAAiB;AAAA,QACrB,GAAGhF;AAAA,QACH,OAAMA,KAAA,gBAAAA,EAAS,iBAAeA,KAAA,gBAAAA,EAAS,SAAQ;AAAA,MAChD;AACD,aAAO,KAAK,eAAegF,GAAgB1F,CAAO;AAAA,IACxD,CAAK;AAAA,EACL;AAAA,EACE,eAAeU,GAASV,IAAU,IAAI;AACpC,UAAM8F,IAAe;AAAA,MACnB,GAAG9F;AAAA,MACH,eAAeA,EAAQ,iBAAiB;AAAA,IACzC,GACK6F,IAAWpF,EAAc;AAAA,MAC7B,MAAMF,EAAA,MAAKgE,GAAY,QAAQ7D,CAAO,EAAE,OAAO,CAACL,MAAU,CAACA,EAAM,WAAU,CAAE,EAAE,IAAI,CAACA,MAAU;AAC5F,YAAI0F,IAAU1F,EAAM,MAAM,QAAQyF,CAAY;AAC9C,eAAKA,EAAa,iBAChBC,IAAUA,EAAQ,MAAM7D,CAAI,IAEvB7B,EAAM,MAAM,gBAAgB,WAAW,QAAQ,QAAO,IAAK0F;AAAA,MACnE,CAAA;AAAA,IACF;AACD,WAAO,QAAQ,IAAIF,CAAQ,EAAE,KAAK3D,CAAI;AAAA,EAC1C;AAAA,EACE,WAAWlC,GAAS;AAClB,UAAMmF,IAAmB,KAAK,oBAAoBnF,CAAO;AACzD,IAAImF,EAAiB,UAAU,WAC7BA,EAAiB,QAAQ;AAE3B,UAAM9E,IAAQE,EAAA,MAAKgE,GAAY,MAAM,MAAMY,CAAgB;AAC3D,WAAO9E,EAAM;AAAA,MACXgF,GAAiBF,EAAiB,WAAW9E,CAAK;AAAA,IACxD,IAAQA,EAAM,MAAM8E,CAAgB,IAAI,QAAQ,QAAQ9E,EAAM,MAAM,IAAI;AAAA,EACxE;AAAA,EACE,cAAcL,GAAS;AACrB,WAAO,KAAK,WAAWA,CAAO,EAAE,KAAKkC,CAAI,EAAE,MAAMA,CAAI;AAAA,EACzD;AAAA,EACE,mBAAmBlC,GAAS;AAC1B,WAAAA,EAAQ,WAAWmC,GAAsBnC,EAAQ,KAAK,GAC/C,KAAK,WAAWA,CAAO;AAAA,EAClC;AAAA,EACE,sBAAsBA,GAAS;AAC7B,WAAO,KAAK,mBAAmBA,CAAO,EAAE,KAAKkC,CAAI,EAAE,MAAMA,CAAI;AAAA,EACjE;AAAA,EACE,wBAAwBlC,GAAS;AAC/B,WAAAA,EAAQ,WAAWmC,GAAsBnC,EAAQ,KAAK,GAC/C,KAAK,gBAAgBA,CAAO;AAAA,EACvC;AAAA,EACE,wBAAwB;AACtB,WAAIiF,GAAc,aACT1E,EAAA,MAAKiE,GAAe,sBAAuB,IAE7C,QAAQ,QAAS;AAAA,EAC5B;AAAA,EACE,gBAAgB;AACd,WAAOjE,EAAA,MAAKgE;AAAA,EAChB;AAAA,EACE,mBAAmB;AACjB,WAAOhE,EAAA,MAAKiE;AAAA,EAChB;AAAA,EACE,oBAAoB;AAClB,WAAOjE,EAAA,MAAKkE;AAAA,EAChB;AAAA,EACE,kBAAkBzE,GAAS;AACzB,IAAAF,EAAA,MAAK2E,GAAkBzE;AAAA,EAC3B;AAAA,EACE,iBAAiBE,GAAUF,GAAS;AAClC,IAAAO,EAAA,MAAKmE,GAAe,IAAIsB,GAAQ9F,CAAQ,GAAG;AAAA,MACzC,UAAAA;AAAA,MACA,gBAAgBF;AAAA,IACtB,CAAK;AAAA,EACL;AAAA,EACE,iBAAiBE,GAAU;AACzB,UAAM+F,IAAW,CAAC,GAAG1F,EAAA,MAAKmE,GAAe,OAAM,CAAE,GAC3C7B,IAAS,CAAE;AACjB,WAAAoD,EAAS,QAAQ,CAACC,MAAiB;AACjC,MAAIC,GAAgBjG,GAAUgG,EAAa,QAAQ,KACjD,OAAO,OAAOrD,GAAQqD,EAAa,cAAc;AAAA,IAEzD,CAAK,GACMrD;AAAA,EACX;AAAA,EACE,oBAAoBuD,GAAapG,GAAS;AACxC,IAAAO,EAAA,MAAKoE,GAAkB,IAAIqB,GAAQI,CAAW,GAAG;AAAA,MAC/C,aAAAA;AAAA,MACA,gBAAgBpG;AAAA,IACtB,CAAK;AAAA,EACL;AAAA,EACE,oBAAoBoG,GAAa;AAC/B,UAAMH,IAAW,CAAC,GAAG1F,EAAA,MAAKoE,GAAkB,OAAM,CAAE;AACpD,QAAI9B,IAAS,CAAE;AACf,WAAAoD,EAAS,QAAQ,CAACC,MAAiB;AACjC,MAAIC,GAAgBC,GAAaF,EAAa,WAAW,MACvDrD,IAAS,EAAE,GAAGA,GAAQ,GAAGqD,EAAa,eAAgB;AAAA,IAE9D,CAAK,GACMrD;AAAA,EACX;AAAA,EACE,oBAAoB7C,GAAS;AAC3B,QAAIA,EAAQ;AACV,aAAOA;AAET,UAAMmF,IAAmB;AAAA,MACvB,GAAG5E,EAAA,MAAKkE,GAAgB;AAAA,MACxB,GAAG,KAAK,iBAAiBzE,EAAQ,QAAQ;AAAA,MACzC,GAAGA;AAAA,MACH,YAAY;AAAA,IACb;AACD,WAAKmF,EAAiB,cACpBA,EAAiB,YAAY/E;AAAA,MAC3B+E,EAAiB;AAAA,MACjBA;AAAA,IACD,IAECA,EAAiB,uBAAuB,WAC1CA,EAAiB,qBAAqBA,EAAiB,gBAAgB,WAErEA,EAAiB,iBAAiB,WACpCA,EAAiB,eAAe,CAAC,CAACA,EAAiB,WAEjD,CAACA,EAAiB,eAAeA,EAAiB,cACpDA,EAAiB,cAAc,iBAE7BA,EAAiB,YAAYkB,OAC/BlB,EAAiB,UAAU,KAEtBA;AAAA,EACX;AAAA,EACE,uBAAuBnF,GAAS;AAC9B,WAAIA,KAAA,QAAAA,EAAS,aACJA,IAEF;AAAA,MACL,GAAGO,EAAA,MAAKkE,GAAgB;AAAA,MACxB,IAAGzE,KAAA,gBAAAA,EAAS,gBAAe,KAAK,oBAAoBA,EAAQ,WAAW;AAAA,MACvE,GAAGA;AAAA,MACH,YAAY;AAAA,IACb;AAAA,EACL;AAAA,EACE,QAAQ;AACN,IAAAO,EAAA,MAAKgE,GAAY,MAAO,GACxBhE,EAAA,MAAKiE,GAAe,MAAO;AAAA,EAC/B;AACA,GAlRED,IAAA,eACAC,IAAA,eACAC,IAAA,eACAC,IAAA,eACAC,IAAA,eACAC,IAAA,eACAC,IAAA,eACAC,IAAA,eARgBrF;ACflB,SAAS6G,GAAqBhD,GAAM;AAClC,SAAOA;AACT;AAkDA,SAASiD,GAAQxG,GAAQyG,GAAiBxG,GAAS;;AACjD,MAAI,OAAOwG,KAAoB,YAAYA,MAAoB;AAC7D;AAEF,QAAMC,IAAgB1G,EAAO,iBAAkB,GACzC0F,IAAa1F,EAAO,cAAe,GACnC2G,MAAkBjH,IAAAO,KAAA,gBAAAA,EAAS,mBAAT,gBAAAP,EAAyB,sBAAmB+C,IAAAzC,EAAO,kBAAmB,EAAC,YAA3B,gBAAAyC,EAAoC,oBAAmB8D,IACrHK,IAAYH,EAAgB,aAAa,CAAE,GAC3C3F,IAAU2F,EAAgB,WAAW,CAAE;AAC7C,EAAAG,EAAU,QAAQ,CAAC,EAAE,OAAA1G,GAAO,GAAG2G,EAAe,MAAO;;AACnD,IAAAH,EAAc;AAAA,MACZ1G;AAAA,MACA;AAAA,QACE,IAAGN,IAAAM,EAAO,oBAAoB,YAA3B,gBAAAN,EAAoC;AAAA,QACvC,IAAG+C,IAAAxC,KAAA,gBAAAA,EAAS,mBAAT,gBAAAwC,EAAyB;AAAA,QAC5B,GAAGoE;AAAA,MACJ;AAAA,MACD3G;AAAA,IACD;AAAA,EACL,CAAG,GACDY,EAAQ,QAAQ,CAAC,EAAE,UAAAX,GAAU,OAAAD,GAAO,WAAAE,GAAW,MAAA0G,GAAM,SAAAd,QAAc;;AACjE,QAAI1F,IAAQoF,EAAW,IAAItF,CAAS;AACpC,UAAMmD,IAAOrD,EAAM,SAAS,SAASA,EAAM,OAAOyG,EAAgBzG,EAAM,IAAI;AAC5E,QAAII;AACF,UAAIA,EAAM,MAAM,gBAAgBJ,EAAM,eAAe;AACnD,cAAM,EAAE,aAAa6G,GAAU,GAAGC,EAAiB,IAAG9G;AACtD,QAAAI,EAAM,SAAS;AAAA,UACb,GAAG0G;AAAA,UACH,MAAAzD;AAAA,QACV,CAAS;AAAA,MACT;AAAA;AAEM,MAAAjD,IAAQoF,EAAW;AAAA,QACjB1F;AAAA,QACA;AAAA,UACE,IAAGN,IAAAM,EAAO,oBAAoB,YAA3B,gBAAAN,EAAoC;AAAA,UACvC,IAAG+C,IAAAxC,KAAA,gBAAAA,EAAS,mBAAT,gBAAAwC,EAAyB;AAAA,UAC5B,UAAAtC;AAAA,UACA,WAAAC;AAAA,UACA,MAAA0G;AAAA,QACD;AAAA;AAAA;AAAA,QAGD;AAAA,UACE,GAAG5G;AAAA,UACH,MAAAqD;AAAA,UACA,aAAa;AAAA,QACvB;AAAA,MACO;AAEH,QAAIyC,GAAS;AACX,YAAMiB,IAAiB,QAAQ,QAAQjB,CAAO,EAAE,KAAKW,CAAe;AACpE,MAAKrG,EAAM,MAAM,QAAQ,EAAE,gBAAA2G,EAAc,CAAE;AAAA,IACjD;AAAA,EACA,CAAG;AACH;ACtGA,IAAIC,KAAoB,CAAC;AAAA,EACvB,UAAAC;AAAA,EACA,SAAAlH,IAAU,CAAE;AAAA,EACZ,OAAAC;AAAA,EACA,aAAAkH;AACF,MAAM;AACJ,QAAMpH,IAASqH,GAAeD,CAAW,GACnC,CAACE,GAAgBC,CAAiB,IAAIC,EAAM,SAAU,GACtDC,IAAaD,EAAM,OAAOvH,CAAO;AACvC,SAAAwH,EAAW,UAAUxH,GACrBuH,EAAM,QAAQ,MAAM;AAClB,QAAItH,GAAO;AACT,UAAI,OAAOA,KAAU;AACnB;AAEF,YAAMwF,IAAa1F,EAAO,cAAe,GACnCc,IAAUZ,EAAM,WAAW,CAAE,GAC7BwH,IAAa,CAAE,GACfC,IAAkB,CAAE;AAC1B,iBAAWC,KAAmB9G,GAAS;AACrC,cAAM+G,IAAgBnC,EAAW,IAAIkC,EAAgB,SAAS;AAC9D,YAAI,CAACC;AACH,UAAAH,EAAW,KAAKE,CAAe;AAAA,aAC1B;AACL,gBAAME,IAAmBF,EAAgB,MAAM,gBAAgBC,EAAc,MAAM,eAC7EE,IAAqBT,KAAA,gBAAAA,EAAgB;AAAA,YACzC,CAAChH,MAAUA,EAAM,cAAcsH,EAAgB;AAAA;AAEjD,UAAIE,MAAqB,CAACC,KAAsBH,EAAgB,MAAM,gBAAgBG,EAAmB,MAAM,kBAC7GJ,EAAgB,KAAKC,CAAe;AAAA,QAEhD;AAAA,MACA;AACM,MAAIF,EAAW,SAAS,KACtBlB,GAAQxG,GAAQ,EAAE,SAAS0H,EAAY,GAAED,EAAW,OAAO,GAEzDE,EAAgB,SAAS,KAC3BJ;AAAA,QACE,CAACS,MAASA,IAAO,CAAC,GAAGA,GAAM,GAAGL,CAAe,IAAIA;AAAA,MAClD;AAAA,IAET;AAAA,EACG,GAAE,CAAC3H,GAAQsH,GAAgBpH,CAAK,CAAC,GAClCsH,EAAM,UAAU,MAAM;AACpB,IAAIF,MACFd,GAAQxG,GAAQ,EAAE,SAASsH,EAAgB,GAAEG,EAAW,OAAO,GAC/DF,EAAkB,MAAM;AAAA,EAE9B,GAAK,CAACvH,GAAQsH,CAAc,CAAC,GACpBH;AACT;ACtDgB,SAAAc,GAAY,EAAE,OAAAC,KAA6B;AAClD,SAAAC,gBAAAA,MAACC,MAAW,OAAAF,GAAc;AACnC;ACJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgCA,SAASG,GAAgBC,GAAO;AAC9B,SAAuB,gBAAAd,EAAM,cAAce,IAAgB,EAAE,WAAWC,GAAS,WAAW,GAAGF,GAAO;AACxG;AClBA,MAAMlB,KAAc,IAAI7C,GAAY;AAAA,EAClC,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,WAAW,MAAO,KAAK;AAAA,IAAA;AAAA,EACzB;AAEJ,CAAC,GAEKkE,KAAY,CAAC;AAAA,EACjB,QAAAC;AAAA,EACA,SAAAlC,IAAU;AACZ,MAIG2B,gBAAAA,EAAA,IAAAQ,IAAA,EACC,UAACR,gBAAAA,EAAA,IAAAS,IAAA,EAAoB,QAAQxB,IAC3B,UAAAe,gBAAAA,EAAAA,IAACjB,IAAkB,EAAA,OAAOV,IAAW,OAAe,OAAO,QACzD,gCAACqC,IACC,EAAA,UAAAV,gBAAAA,EAAAA,IAACW,GAAuB,UAAvB,EAAgC,OAAO,EAAE,SAAS,CAACtC,EAAQ,GAC1D,UAAC2B,gBAAAA,MAAAI,IAAA,EAAe,QAAAG,EAAgB,CAAA,EAClC,CAAA,GACF,EAAA,CACF,EACF,CAAA,GACF,GAGIK,KAAkB,CAAC;AAAA,EACvB,QAAAL;AAAA,EACA,SAAApG;AAAA,EACA,aAAA8E;AAAAA,EACA,eAAA4B;AACF,4BAMGL,IACC,EAAA,UAAAR,gBAAAA,EAAA,IAACS,IAAoB,EAAA,QAAQxB,GAC3B,UAACe,gBAAAA,MAAAU,IAAA,EAAe,SAASG,GACvB,gCAACC,IAAqB,EAAA,QAAAP,GAAgB,SAAApG,EAAkB,CAAA,GAC1D,GACF,EACF,CAAA;;;;AC7DF,KAAC,SAAU4G,GAAQC,GAAS;AACqC,MAAAA,EAAQC,GAASC,EAAgB;AAAA,IAGlG,GAAEC,IAAO,SAAUF,GAASG,GAAO;AACjC,YAAMC,IAAiB;AAAA,QACrB,OAAO;AAAA,QACP,aAAa;AAAA,QACb,KAAK;AAAA,MACN;AAED,eAASC,IAAW;AAClB,cAAM,CAACC,GAAOC,CAAQ,IAAIJ,EAAM,SAAS,EAAI;AAC7C,eAAAA,EAAM,UAAU,MAAM;AACpB,UAAAI,EAAS,EAAK;AAAA,QACf,GAAE,EAAE,GACED;AAAA,MACX;AAEE,eAASE,EAAaC,GAAS5J,GAAS;AACtC,QAAAA,IAAU,OAAO,OAAO,CAAA,GAAIuJ,GAAgBvJ,CAAO;AACnD,cAAMyJ,IAAQD,OAAcxJ,EAAQ,KAC9B6J,IAAeJ,KAASG,IAAU,YAAY,QAC9C,CAAC3J,GAAO6J,CAAQ,IAAIR,EAAM,SAASO,CAAY,GAC/CE,IAAUT,EAAM,OAAO,IAAI;AACjC,eAAAA,EAAM,UAAU,MAAM;AACpB,cAAIM,MAAY3J,MAAU,UAAUwJ,IAAQ;AAC1C,yBAAaM,EAAQ,OAAO;AAC5B,kBAAMC,IAAQP,IAAQ,IAAIzJ,EAAQ;AAClC,YAAA+J,EAAQ,UAAU,WAAW,MAAM;AACjC,kBAAI,CAACH;AACH,uBAAOE,EAAS,MAAM;AAGxB,cAAAC,EAAQ,UAAU,WAAW,MAAM;AACjC,gBAAAD,EAAS,QAAQ;AAAA,cAC7B,GAAa9J,EAAQ,WAAW,GACtB8J,EAAS,SAAS;AAAA,YACnB,GAAEE,CAAK,GAEHP,KACHK,EAAS,OAAO;AAAA,UAE1B;AAEM,UAAI,CAACF,KAAW3J,MAAU,cACxB,aAAa8J,EAAQ,OAAO,GAC5BD,EAAS,MAAM;AAAA,QAEvB,GAAO,CAACF,GAAS3J,GAAOD,EAAQ,OAAOA,EAAQ,aAAayJ,CAAK,CAAC,GAC9DH,EAAM,UAAU,MACP,MAAM,aAAaS,EAAQ,OAAO,GACxC,EAAE,GACE9J,MAAU,aAAaA,MAAU;AAAA,MAC5C;AAEE,MAAAkJ,EAAQ,iBAAiBI,GACzBJ,EAAQ,eAAeQ;AAAA,IAEzB,CAAG;AAAA;;;ACxDI,MAAMM,KAAiB,MAAM;AAClC,QAAMC,IAAWC,GAAY,GACvBC,IAAeC,GAAOH,EAAS,QAAQ;AAE7C,EAAAI,EAAU,MAAM;AACV,IAAAF,EAAa,YAAYF,EAAS,aAC/B,OAAA,SAAS,GAAG,CAAC,GACpBE,EAAa,UAAUF,EAAS;AAAA,EAAA,GAC/B,CAACA,EAAS,QAAQ,CAAC;AACxB;ACVA,SAASK,GAAS;AAAA,EAChB,WAAAC;AAAA,EACA,GAAGnC;AACL,GAAyC;AAErC,SAAAH,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWuC,EAAG,qCAAqCD,CAAS;AAAA,MAC3D,GAAGnC;AAAA,IAAA;AAAA,EACN;AAEJ;ACyCO,MAAMqC,KAAsB,CACjCC,MAEA,yBAAyBA,KAAO,OAAOA,EAAI,uBAAwB,YAExDC,KAAqB,CAChCD,MAEA,eAAeA,KAAO,OAAOA,EAAI,aAAc,YAEpCE,KAAiB,CAC5BF,MAEA,kBAAkBA,KAAO,OAAOA,EAAI,gBAAiB,YAE1CG,KAAsB,CAACH,MAClC,gBAAgBA,KAAO,OAAOA,EAAI,cAAe,YAEtCI,KAAU,CAACJ,MACtB,aAAaA,KAAO,OAAOA,EAAI,WAAY,YAEhCK,KAAsB,CAACL,MAClC,sBAAsBA,KAAO,OAAOA,EAAI,oBAAqB,YAElDM,KAAsB,CACjCN,MAEA,mBAAmBA,KAAO,OAAOA,EAAI,iBAAkB,YC3EnDO,KAAY;AAAA,EAChB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,QAAQ;AACV,GAEaC,KAAS,MAAM;AACpB,QAAA,EAAE,MAAAzH,EAAK,IAAI0H,EAAU,GACrB,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAI;AAErD,MAAI,EAAC7H,KAAA,QAAAA,EAAM,WAAU,CAAC2H;AACb,WAAAnD,gBAAAA,EAAAA,IAAC,WAAO,UAAkC,kCAAA,CAAA;AAGnD,QAAMsD,IACJ9H,EAAK,OAAO,SAASA,EAAK,OAAO,SAASwH,KACtCA,GAAUxH,EAAK,OAAO,KAA+B,IACpDA,EAAK,OAAO,QAEX,SADA,cAGF+H,IAASD,IAAuD,CAAC,IAA1C,EAAE,iBAAiB9H,EAAK,OAAO,MAAM;AAGhE,SAAAgI,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWjB;AAAA,QACT;AAAA,QACAe;AAAA,MACF;AAAA,MACA,OAAAC;AAAA,MAEA,UAAA;AAAA,QAAAvD,gBAAAA,MAAC,OAAI,EAAA,WAAU,UAAU,UAAAxE,EAAK,OAAO,SAAQ;AAAA,QAC5CA,EAAK,OAAO,eACXwE,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAS,MAAMoD,EAAgB,EAAK;AAAA,YAEpC,UAAApD,gBAAAA,EAAAA,IAACyD,IAAY,EAAA,MAAM,GAAI,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACzB;AAAA,IAAA;AAAA,EAEJ;AAEJ,GC7CaC,KAAS,CAAC,EAAE,WAAApB,QAAwC;AAC/D,QAAMqB,IAAMT,EAAU,GAChB,CAACU,GAAQC,CAAS,IAAIR,EAAS,EAAK,GAEpCS,IAAUC,GAAY,MAAMF,EAAU,EAAK,GAAG,CAAA,CAAE;AAEtD,EAAAzB,EAAU,MAAM;AACd,QAAIwB;AACF;AAGF,aAASI,EAAUpL,GAAsB;AACvC,MAAIA,EAAM,QAAQ,QAAQA,EAAM,WAAWA,EAAM,aAC/CA,EAAM,eAAe,GACrBiL,EAAU,EAAI;AAAA,IAChB;AAGK,kBAAA,iBAAiB,WAAWG,CAAS,GAErC,MAAM;AACJ,aAAA,oBAAoB,WAAWA,CAAS;AAAA,IACjD;AAAA,EAAA,GACC,CAACJ,GAAQC,CAAS,CAAC;AAEtB,QAAMI,IAAeN,EAAI,QAAQ,KAAKhB,EAAc;AAEpD,SAAKsB,IAKHT,gBAAAA,OAAC,SAAI,WAAAlB,GACH,UAAA;AAAA,IAAAkB,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS,MAAMK,EAAU,EAAI;AAAA,QAC7B,WAAU;AAAA,QAEV,UAAA;AAAA,UAACL,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,YAACxD,gBAAAA,EAAAA,IAAAkE,IAAA,EAAW,MAAM,GAAI,CAAA;AAAA,YAAE;AAAA,UAAA,GAE1B;AAAA,UACClE,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,uKAAsK,UAErL,KAAA,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,IACCA,gBAAAA,EAAA,IAAAmE,IAAA,EAAS,UAAU,MACjB,YAAa,aAAa;AAAA,MACzB,QAAAP;AAAA,MACA,SAAAE;AAAA,IAAA,CACD,EACH,CAAA;AAAA,EAAA,GACF,IAxBO;AA0BX,GCtDaM,KAAc,MAAM;AAC/B,QAAM,EAAE,eAAAC,GAAe,UAAAC,EAAS,IAAIC,GAAS,GACvCC,IAAYH,MAAkB,SAASI,KAAeC;AAG1D,SAAA1E,gBAAAA,EAAA;AAAA,IAAC2E;AAAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,cACEN,MAAkB,SACd,yBACA;AAAA,MAEN,WAAW9B,EAAG8B,IAAgB,gBAAgB,WAAW;AAAA,MACzD,SAAS,MAAMC,EAASD,MAAkB,SAAS,UAAU,MAAM;AAAA,MAEnE,UAAArE,gBAAAA,EAAAA,IAACwE,GAAU,EAAA,MAAM,GAAI,CAAA;AAAA,IAAA;AAAA,EACvB;AAEJ,GCdaI,KACX,CAACC,MACD,CAACC,MAEIA,EAAK,YAAY,UAAUD,KAC3BC,EAAK,YAAY,UAAU,CAACD,KAC7B,CAACC,EAAK,WACNA,EAAK,YAAY,UAIVC,KAAgB,MAAM;AAC3B,QAAA,EAAE,eAAAC,EAAc,IAAI9B,EAAU,GAC9B,EAAE,iBAAA2B,EAAgB,IAAII,EAAQ;AAGhC,SAAAD,EAAc,UAAU,IACnBhF,gBAAAA,EAAAA,IAAC,WAAO,UAAmC,mCAAA,CAAA,IAIjDA,gBAAAA,EAAAA,IAAAmE,IAAA,EACC,UAACnE,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAU,sDACb,UAACA,gBAAAA,EAAA,IAAA,MAAA,EAAG,WAAU,oCACX,UAAcgF,EAAA,OAAOJ,GAAaC,CAAe,CAAC,EAAE,IAAI,CAACC,MACvD9E,gBAAAA,EAAA,IAAA,MAAA,EACC,gCAACkF,IAAY,EAAA,GAAGJ,EAAM,CAAA,EAAA,GADfA,EAAK,EAEd,CACD,EACH,CAAA,EACF,CAAA,GACF;AAEJ,GAEaI,KAAa,CAAC;AAAA,EACzB,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAASC;AACX,MAAyB;;AACjB,QAAA,EAAE,UAAAC,EAAS,IAAIpC,EAAU,GACzBqC,IAAiBD,EAASH,CAAE,GAC5BK,IAAaC,GAAqB,GAClCC,IAAe,EAAQC,GAAc,EAAE,UACvCC,MAAWrO,IAAAiO,EAAW,eAAX,gBAAAjO,EAAuB,QAAO4N,KAAM,CAACO,GAMhDG,IACJR,MACCE,IACGO,GAAgBP,GAAgB,CAACT,MAAS;AACxC,QAAIA,EAAK,SAAS,MAAc,QAAAiB,GAASjB,EAAK,EAAE;AAAA,EAAA,CACjD,IACDiB,GAASZ,CAAE;AAEjB,MAAI,CAACU;AACG,UAAA,IAAIG,GAAY,mBAAmB;AAAA,MACvC,eAAe,yCAAyCb,CAAE;AAAA,IAAA,CAC3D;AAGH;AAAA;AAAA;AAAA,IAGEnF,gBAAAA,EAAA;AAAA,MAACiG;AAAA,MAAA;AAAA,QACC,WAAW,CAAC,EAAE,WAAAC,EAAA,MACZC;AAAA,UACE;AAAA,UACAP,KAAYM,IACR,mCACA;AAAA,QACN;AAAA,QAEF,IAAIL;AAAA,QAEH,UAAAT;AAAA,MAAA;AAAA,IAAA;AAAA;AAGP,GC5EagB,KAAsB,MAAM;AACjC,QAAA,EAAE,eAAApB,EAAc,IAAI9B,EAAU,GAC9B,EAAE,iBAAA2B,EAAgB,IAAII,EAAQ,GAC9B,CAACoB,GAAYC,CAAa,IAAIjD,EAAS,EAAK;AAGhD,SAAAG,gBAAAA,EAAA;AAAA,IAAC+C;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAMF;AAAA,MACN,cAAc,CAACG,MAASF,EAAcE,CAAI;AAAA,MAE1C,UAAA;AAAA,QAAAxG,gBAAAA,EAAA,IAAC,OAAI,EAAA,WAAU,mCACb,UAAAA,gBAAAA,EAAAA,IAACyG,IAAc,EAAA,WAAU,aACvB,UAAAzG,gBAAAA,EAAA,IAAC0G,IAAS,EAAA,MAAM,GAAI,CAAA,EACtB,CAAA,GACF;AAAA,QACA1G,gBAAAA,EAAA;AAAA,UAAC2G;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,oBAAkB;AAAA,YAElB,UAAAnD,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,uCACb,UAAA;AAAA,cAAAxD,gBAAAA,MAAC4G,IACC,EAAA,UAAA5G,gBAAAA,EAAA,IAAC6G,IAAY,EAAA,UAAA,aAAU,CAAA,GACzB;AAAA,cACA7G,gBAAAA,EAAAA,IAAC0D,IAAO,EAAA,WAAU,WAAW,CAAA;AAAA,cAC7BF,gBAAAA,EAAAA,KAAC,MAAG,EAAA,WAAU,wCACZ,UAAA;AAAA,gBAACxD,gBAAAA,EAAA,IAAA,MAAA,EACC,UAACA,gBAAAA,EAAA,IAAAoE,IAAA,CAAY,CAAA,GACf;AAAA,gBACCY,EAAc,OAAOJ,GAAaC,CAAe,CAAC,EAAE,IAAI,CAACC,MACvD9E,gBAAAA,EAAA,IAAA,MAAA,EACC,UAACA,gBAAAA,EAAA,IAAA,UAAA,EAAO,SAAS,MAAMsG,EAAc,EAAK,GACxC,UAACtG,gBAAAA,EAAAA,IAAAkF,IAAA,EAAY,GAAGJ,EAAA,CAAM,EACxB,CAAA,EAAA,GAHOA,EAAK,KAId,CACD;AAAA,cAAA,EACH,CAAA;AAAA,YAAA,EACF,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EACF;AAEJ,GC5BMgC,IAAgB,CAAC,EAAE,MAAAhC,QAChBA,EAAK,WACTtB,gBAAAA,EAAA,KAAAuD,IACC,EAAA,UAAA;AAAA,wBAACC,IAAA,EAAwB,YAAK,OAAM;AAAA,EACnChH,gBAAAA,EAAAA,IAAAiH,MACC,UAACjH,gBAAAA,EAAA,IAAAkH,IAAA,EACE,YAAK,SAAS,IAAI,CAACpC,GAAMqC;AAAA;AAAA,0BAEvBL,GAAA,EAAsB,MAAMhC,KAATqC,CAAe;AAAA,GACpC,EACH,CAAA,EACF,CAAA;AAAA,EAToB,GAAArC,EAAK,KAU3B,IAEA9E,gBAAAA,EAAA,IAACoH,IAAK,EAAA,IAAItC,EAAK,QAAQ,IACrB,UAAAtB,gBAAAA,OAAC6D,IAAkC,EAAA,WAAU,cAC1C,UAAA;AAAA,EAAKvC,EAAA,QACH9E,gBAAAA,MAAA8E,EAAK,MAAL,EAAU,MAAM,IAAI,aAAa,GAAG,qBAAmB,GAAA,CAAC;AAAA,EAE1DA,EAAK;AAAA,KAJeA,EAAK,KAK5B,GACF,GAISwC,KAASC,GAAK,WAAuB;AAChD,QAAMC,IAAOvC,EAAQ,GACf,EAAE,iBAAAJ,GAAiB,SAAA4C,GAAS,eAAAC,EAAA,IAAkBzC,EAAQ,GACtD9K,IAAU+I,EAAU,GACpB,EAAE,MAAA1H,GAAM,SAAAmM,EAAA,IAAYxN,GAEpByN,IAAeD,EAClB,OAAO,CAACE,MAAMrF,GAAoBqF,CAAC,CAAC,EACpC,QAAQ,CAACA,MAAMA,EAAE,oBAAoB1N,CAAO,CAAC,EAC7C,KAAK,CAACgN,MAAMA,EAAE,UAAU,CAAC;AAG1B,SAAC3D,gBAAAA,EAAA,KAAA,UAAO,EAAA,WAAU,8DAChB,UAAA;AAAA,IAAAxD,gBAAAA,EAAA,IAACiD,IAAO,EAAA;AAAA,0BACP,OAAI,EAAA,WAAU,YACb,UAACO,gBAAAA,EAAA,KAAA,OAAA,EAAI,WAAU,oLACb,UAAA;AAAA,4BAAC,OAAA,EAAI,WAAU,QACb,UAACxD,gBAAAA,EAAA,IAAAoH,IAAA,EAAK,IAAG,KACP,UAAA5D,gBAAAA,OAAC,OAAI,EAAA,WAAU,6BACZ,UAAA;AAAA,SAAAhI,KAAA,gBAAAA,EAAM,SAEHgI,gBAAAA,EAAAA,KAAAsE,EAAA,UAAA,EAAA,UAAA;AAAA,UAAA9H,gBAAAA,EAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KACE,cAAc,KAAKxE,EAAK,KAAK,IAAI,KAAK,IAClCA,EAAK,KAAK,IAAI,QACduM;AAAA,gBACE;AAAA,gBACAvM,EAAK,KAAK,IAAI;AAAA,cAChB;AAAA,cAEN,KAAKA,EAAK,KAAK,OAAOA,EAAK;AAAA,cAC3B,OAAO,EAAE,OAAOA,EAAK,KAAK,MAAM;AAAA,cAChC,WAAU;AAAA,cACV,SAAQ;AAAA,YAAA;AAAA,UACV;AAAA,UACAwE,gBAAAA,EAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KACE,cAAc,KAAKxE,EAAK,KAAK,IAAI,IAAI,IACjCA,EAAK,KAAK,IAAI,OACduM;AAAA,gBACE;AAAA,gBACAvM,EAAK,KAAK,IAAI;AAAA,cAChB;AAAA,cAEN,KAAKA,EAAK,KAAK,OAAOA,EAAK;AAAA,cAC3B,OAAO,EAAE,OAAOA,EAAK,KAAK,MAAM;AAAA,cAChC,WAAU;AAAA,cACV,SAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QACV,GACF;AAAA,QAEDwE,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,uDACb,iCAAM,UACT,CAAA;AAAA,MAAA,EACF,CAAA,EACF,CAAA,GACF;AAAA,MACCwD,gBAAAA,EAAAA,KAAA,OAAI,EAAA,WAAU,0EACb,UAAA;AAAA,QAAAxD,gBAAAA,MAAC,OAAI,EAAA,WAAU,wCACb,UAAAA,gBAAAA,MAAC0D,KAAO,CAAA,GACV;AAAA,8BAEC0C,IAAoB,EAAA;AAAA,QACpB5C,gBAAAA,EAAAA,KAAA,OAAI,EAAA,WAAU,8DACb,UAAA;AAAA,UAACxD,gBAAAA,EAAAA,IAAAgI,GAAA,EAAQ,MAAK,yBAAwB;AAAA,UACrCN,KACC1H,gBAAAA,EAAA;AAAA,YAACiI;AAAAA,YAAA;AAAA,cACC,UAAWjI,gBAAAA,EAAAA,IAAAqC,IAAS,EAAA,WAAU,yBAAwB;AAAA,cAErD,UAACwC,IAKA,OAAO,OAAO+C,CAAY,EAAE,SAAS,KACnCpE,gBAAAA,EAAAA,KAAC0E,IAAa,EAAA,OAAO,IACnB,UAAA;AAAA,gBAAAlI,gBAAAA,MAACmI,IAAoB,EAAA,SAAO,IAC1B,UAAAnI,gBAAAA,EAAA,IAAC2E,MAAO,SAAQ,SACb,UAAS8C,KAAA,QAAAA,EAAA,OAAO,GAAGA,EAAQ,IAAI,KAAK,aACvC,CAAA,GACF;AAAA,gBACCjE,gBAAAA,EAAAA,KAAA4E,IAAoB,EAAA,WAAU,QAC7B,UAAA;AAAA,kBAAA5E,gBAAAA,OAAC6E,IACE,EAAA,UAAA;AAAA,oBAAAZ,KAAA,QAAAA,EAAS,OAAO,GAAGA,EAAQ,IAAI,KAAK;AAAA,qBACpCA,KAAA,gBAAAA,EAAS,UACRzH,gBAAAA,EAAA,IAAC,SAAI,WAAU,qCACZ,YAAQ,MACX,CAAA;AAAA,kBAAA,GAEJ;AAAA,kBACC4H,EAAa,OAAO,CAACT,MAAMA,EAAE,aAAa,KAAK,EAC7C,SAAS,KAAMnH,gBAAAA,MAAAsI,IAAsB,CAAA,CAAA;AAAA,kBACvCV,EACE,OAAO,CAACT,MAAMA,EAAE,aAAa,KAAK,EAClC,IAAI,CAACA,MACHnH,gBAAAA,EAAAA,IAAA8G,GAAA,EAA4B,MAAMK,KAAfA,EAAE,KAAgB,CACvC;AAAA,kBACFS,EAAa;AAAA,oBACZ,CAACT,MAAM,CAACA,EAAE,YAAYA,EAAE,aAAa;AAAA,oBACrC,SAAS,KAAMnH,gBAAAA,MAAAsI,IAAsB,CAAA,CAAA;AAAA,kBACtCV,EACE;AAAA,oBACC,CAACT,MAAM,CAACA,EAAE,YAAYA,EAAE,aAAa;AAAA,kBAEtC,EAAA,IAAI,CAACA,MACHnH,gBAAAA,EAAAA,IAAA8G,KAA4B,MAAMK,EAAA,GAAfA,EAAE,KAAgB,CACvC;AAAA,kBACFS,EAAa,OAAO,CAACT,MAAMA,EAAE,aAAa,QAAQ,EAChD,SAAS,KAAMnH,gBAAAA,MAAAsI,IAAsB,CAAA,CAAA;AAAA,kBACvCV,EACE,OAAO,CAACT,MAAMA,EAAE,aAAa,QAAQ,EACrC,IAAI,CAACA,MACHnH,gBAAAA,EAAAA,IAAA8G,GAAA,EAA4B,MAAMK,EAAf,GAAAA,EAAE,KAAgB,CACvC;AAAA,gBAAA,EACL,CAAA;AAAA,cAAA,EACF,CAAA,IA7CDnH,gBAAAA,EAAA,IAAA2E,IAAA,EAAO,SAAQ,SAAQ,SAAS,MAAM6C,EAAK,MAAS,GAAA,kBAErD,CAAA;AAAA,YA2CE;AAAA,UAGN;AAAA,UAEDxH,gBAAAA,EAAAA,IAAAgI,GAAQ,EAAA,MAAK,uBAAsB;AAAA,gCACnC5D,IAAY,CAAA,CAAA;AAAA,QAAA,EACf,CAAA;AAAA,MAAA,EACF,CAAA;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,0BACC,OAAI,EAAA,WAAU,YACb,UAACZ,gBAAAA,EAAA,KAAA,OAAA,EAAI,WAAU,8CACb,UAAA;AAAA,MAACxD,gBAAAA,EAAAA,IAAAgI,GAAA,EAAQ,MAAK,yBAAwB;AAAA,4BACrCjD,IAAc,EAAA;AAAA,MACd/E,gBAAAA,EAAAA,IAAAgI,GAAQ,EAAA,MAAK,uBAAuB,CAAA;AAAA,IAAA,EAAA,CACvC,EACF,CAAA;AAAA,EAAA,GACF;AAEJ,CAAC,GCzLYO,KAAiBC,GAG5B,CAAC,EAAE,UAAAxJ,GAAU,WAAAsD,GAAW,iBAAAmG,EAAA,GAAmBC,MAC3C1I,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IAKC,mBAAiB,OAAOyI,CAAe;AAAA,IACvC,WAAWlG;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAACkG,KAAmB;AAAA,MACpBnG;AAAA,IACF;AAAA,IACA,KAAAoG;AAAA,IAEC,UAAA1J;AAAA,EAAA;AACH,CACD;AAEDuJ,GAAe,cAAc;ACjBtB,MAAMI,KAAU,CAAC;AAAA,EACtB,gBAAAC;AACF,MAEM;AACE,QAAAC,IAAS1G,GAA8B,IAAI,GAC3C2G,IAAarD,GAAqB;AAExC,SAEIjC,gBAAAA,EAAA,KAAAsE,YAAA,EAAA,UAAA;AAAA,IAAAtE,gBAAAA,EAAA;AAAA,MAAC+E;AAAA,MAAA;AAAA,QACC,KAAKM;AAAA,QACL,iBAAiBC,EAAW,QAAQ,SAAS;AAAA,QAE7C,UAAA;AAAA,UAAC9I,gBAAAA,EAAAA,IAAAgI,GAAA,EAAQ,MAAK,2BAA2B,CAAA;AAAA,UACxCc,EAAW,QAAQ,IAAI,CAAChE,4BACtBiE,IAA6B,EAAA,MAAAjE,EAAA,GAAZA,EAAK,KAAmB,CAC3C;AAAA,UACD9E,gBAAAA,EAAAA,IAACgI,GAAQ,EAAA,MAAK,0BAA0B,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1C;AAAA,IACAhI,gBAAAA,EAAA;AAAA,MAAC2G;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,oBAAkB;AAAA,QAElB,UAAAnD,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,uCACb,UAAA;AAAA,UAAAxD,gBAAAA,MAAC4G,IACC,EAAA,UAAA5G,gBAAAA,EAAA,IAAC6G,IAAY,EAAA,UAAA,UAAO,CAAA,GACtB;AAAA,UACCiC,EAAW,QAAQ,IAAI,CAAChE,MACvB9E,gBAAAA,EAAA;AAAA,YAAC+I;AAAA,YAAA;AAAA,cAEC,MAAAjE;AAAA,cACA,gBAAA8D;AAAA,YAAA;AAAA,YAFK9D,EAAK;AAAA,UAIb,CAAA;AAAA,QAAA,EACH,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ,GChCMkE,KAAkB,MACrBhJ,gBAAAA,EAAAA,IAAA,QAAA,EAAK,WAAU,gEACd,UAACA,gBAAAA,EAAA,IAAAiJ,MAAQ,GACX,GAGWC,KAAS,CAAC,EAAE,UAAAlK,QAAyC;AAChE,QAAMgD,IAAWC,GAAY,GACvB,EAAE,iBAAAkH,EAAgB,IAAIC,GAAkB,GACxC,EAAE,MAAAzK,GAAM,gBAAA0K,EAAe,IAAInG,EAAU;AAEzB,EAAAoG,GAAA,GACHvH,GAAA;AAET,QAAAwH,IAAuBpH,GAAOH,EAAS,QAAQ;AAErD,EAAAI,EAAU,MAAM;;AAEd,KAAA7K,IAAA8R,KAAA,gBAAAA,EAAgB,eAAhB,QAAA9R,EAAA,KAAA8R;AAAA,EAA6B,GAC5B,CAACA,CAAc,CAAC,GAEnBjH,EAAU,MAAM;AAEV,IAAAJ,EAAS,aAAauH,EAAqB,WAC7CJ,EAAgB,EAAE,GAEpBI,EAAqB,UAAUvH,EAAS;AAAA,EACvC,GAAA,CAACA,EAAS,UAAUmH,CAAe,CAAC;AAGvC,QAAMzD,IAAe,EAAQC,GAAc,EAAE,UACvC6D,IAAc/H,gBAAaiE,GAAc;AAAA,IAC7C,OAAO;AAAA,IACP,aAAa;AAAA,EAAA,CACd,GACK,CAAC+D,GAAcnD,CAAa,IAAIjD,EAAS,EAAK;AAI/C,SAAAG,gBAAAA,EAAA,KAAAsE,YAAA,EAAA,UAAA;AAAA,IAAA;AAAA,2BAGA4B,IAAA,EAAO,eAAe/K,KAAA,gBAAAA,EAAM,OAC1B,UAAA;AAAA,OAAAA,KAAA,gBAAAA,EAAM,gBACJqB,gBAAAA,EAAA,IAAA,QAAA,EAAK,MAAK,eAAc,SAASrB,EAAK,aAAa;AAAA,OAErDA,KAAA,gBAAAA,EAAM,YAAYqB,gBAAAA,EAAA,IAAA,QAAA,EAAK,KAAI,QAAO,MAAMrB,EAAK,QAAS,CAAA;AAAA,IAAA,GACzD;AAAA,IACCqB,gBAAAA,EAAAA,IAAAgI,GAAQ,EAAA,MAAK,sBAAqB;AAAA,0BAClCV,IAAO,EAAA;AAAA,IACPtH,gBAAAA,EAAAA,IAAAgI,GAAQ,EAAA,MAAK,qBAAoB;AAAA,IAEjChI,gBAAAA,MAAA,OAAA,EAAI,WAAU,mEACZ,UACCwJ,0BAACR,IAAgB,CAAA,CAAA,IAEhBhJ,gBAAAA,MAAAmE,IAAA,EAAS,gCAAW6E,KAAgB,CAAA,GACnC,UAAAxF,gBAAAA,EAAA;AAAA,MAAC+C;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,MAAMkD;AAAA,QACN,cAAc,CAACjD,MAASF,EAAcE,CAAI;AAAA,QAE1C,UAAA;AAAA,UAAAxG,gBAAAA,EAAA,IAAC2I,IAAQ,EAAA,gBAAgB,MAAMrC,EAAc,EAAK,GAAG;AAAA,UACrDtG,gBAAAA,EAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWuC;AAAA,gBACT;AAAA,gBACA;AAAA,cACF;AAAA,cAEA,UAACiB,gBAAAA,EAAA,KAAAiD,IAAc,EAAA,WAAU,2BACvB,UAAA;AAAA,sCAACkD,IAAc,EAAA,MAAM,IAAI,aAAa,KAAK;AAAA,sCAC1C,QAAA,EAAK,WAAU,WAAU,UAAI,OAAA,CAAA;AAAA,cAAA,EAChC,CAAA;AAAA,YAAA;AAAA,UACF;AAAA,UACAnG,gBAAAA,EAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWjB;AAAA,gBACT;AAAA,gBACA;AAAA;AAAA,gBAEA;AAAA,gBACA;AAAA,cACF;AAAA,cAEA,UAAA;AAAA,gBAACvC,gBAAAA,EAAAA,IAAAgI,GAAA,EAAQ,MAAK,yBAAwB;AAAA,gBACrChJ,2BAAa4K,IAAO,EAAA;AAAA,gBACpB5J,gBAAAA,EAAAA,IAAAgI,GAAQ,EAAA,MAAK,uBAAuB,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACvC;AAAA,MAAA;AAAA,IACF,EAAA,CACF,EAEJ,CAAA;AAAA,EAAA,GACF;AAEJ,GC1GM6B,KAAuBC,GAAc,IAAI,GAEzCnI,KAAe;AAAA,EACnB,UAAU;AAAA,EACV,OAAO;AACT;AACA,MAAMoI,WAAsBC,GAAU;AAAA,EACpC,YAAY7J,GAAO;AACjB,UAAMA,CAAK,GACX,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,IAAI,GAC3D,KAAK,QAAQwB;AAAA,EACjB;AAAA,EACE,OAAO,yBAAyB5B,GAAO;AACrC,WAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAAA;AAAA,IACD;AAAA,EACL;AAAA,EACE,qBAAqB;AACnB,UAAM;AAAA,MACJ,OAAAA;AAAA,IACD,IAAG,KAAK;AACT,QAAIA,MAAU,MAAM;AAElB,eADIkK,GAAqBC,GAChBC,IAAO,UAAU,QAAQC,IAAO,IAAI,MAAMD,CAAI,GAAGE,IAAO,GAAGA,IAAOF,GAAME;AAC/E,QAAAD,EAAKC,CAAI,IAAI,UAAUA,CAAI;AAE7B,OAACJ,KAAuBC,IAAc,KAAK,OAAO,aAAa,QAAQD,MAAwB,UAAkBA,EAAoB,KAAKC,GAAa;AAAA,QACrJ,MAAAE;AAAA,QACA,QAAQ;AAAA,MAChB,CAAO,GACD,KAAK,SAASzI,EAAY;AAAA,IAChC;AAAA,EACA;AAAA,EACE,kBAAkB5B,GAAOuK,GAAM;AAC7B,QAAIC,GAAqBC;AACzB,KAACD,KAAuBC,IAAe,KAAK,OAAO,aAAa,QAAQD,MAAwB,UAAkBA,EAAoB,KAAKC,GAAczK,GAAOuK,CAAI;AAAA,EACxK;AAAA,EACE,mBAAmBG,GAAWC,GAAW;AACvC,UAAM;AAAA,MACJ,UAAAC;AAAA,IACD,IAAG,KAAK,OACH;AAAA,MACJ,WAAAC;AAAA,IACD,IAAG,KAAK;AAOT,QAAID,KAAYD,EAAU,UAAU,QAAQG,GAAgBJ,EAAU,WAAWG,CAAS,GAAG;AAC3F,UAAIE,GAAsBC;AAC1B,OAACD,KAAwBC,IAAe,KAAK,OAAO,aAAa,QAAQD,MAAyB,UAAkBA,EAAqB,KAAKC,GAAc;AAAA,QAC1J,MAAMH;AAAA,QACN,MAAMH,EAAU;AAAA,QAChB,QAAQ;AAAA,MAChB,CAAO,GACD,KAAK,SAAS9I,EAAY;AAAA,IAChC;AAAA,EACA;AAAA,EACE,SAAS;AACP,UAAM;AAAA,MACJ,UAAA3C;AAAA,MACA,gBAAAgM;AAAA,MACA,mBAAAC;AAAA,MACA,UAAAC;AAAA,IACD,IAAG,KAAK,OACH;AAAA,MACJ,UAAAP;AAAA,MACA,OAAA5K;AAAA,IACD,IAAG,KAAK;AACT,QAAIoL,IAAgBnM;AACpB,QAAI2L,GAAU;AACZ,YAAMxK,IAAQ;AAAA,QACZ,OAAAJ;AAAA,QACA,oBAAoB,KAAK;AAAA,MAC1B;AACD,UAAI,OAAOiL,KAAmB;AAC5B,QAAAG,IAAgBH,EAAe7K,CAAK;AAAA,eAC3B8K;AACT,QAAAE,IAAgBC,GAAcH,GAAmB9K,CAAK;AAAA,eAC7C+K,MAAa;AACtB,QAAAC,IAAgBD;AAAA;AAEhB,cAAMnL;AAAA,IAEd;AACI,WAAOqL,GAAcvB,GAAqB,UAAU;AAAA,MAClD,OAAO;AAAA,QACL,UAAAc;AAAA,QACA,OAAA5K;AAAA,QACA,oBAAoB,KAAK;AAAA,MACjC;AAAA,IACK,GAAEoL,CAAa;AAAA,EACpB;AACA;AACA,SAASN,KAAkB;AACzB,MAAIQ,IAAI,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAE,GAC1EC,IAAI,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAE;AAC9E,SAAOD,EAAE,WAAWC,EAAE,UAAUD,EAAE,KAAK,CAACvG,GAAMtL,MAAU,CAAC,OAAO,GAAGsL,GAAMwG,EAAE9R,CAAK,CAAC,CAAC;AACpF;AClCO,MAAM+R,GAAc;AAAA,EASzB,YAA4BzT,GAA+B;AARpD,IAAA0T,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACU,IAAAA,EAAA;AAYjB,IAAAA,EAAA,oBAAa,YAA2B;AACtC,YAAM,QAAQ;AAAA,QACZ,KAAK,QACF,OAAO5I,EAAmB,EAC1B,IAAI,CAAC6I,MAAW;;AAAA,kBAAAlU,IAAAkU,EAAO,eAAP,gBAAAlU,EAAA,KAAAkU,GAAoB;AAAA,SAAK;AAAA,MAC9C;AAAA,IACF;AAEA,IAAAD,EAAA,0BAAmB,aACJ,MAAM,QAAQ;AAAA,MACzB,KAAK,QACF,OAAOzI,EAAmB,EAC1B,IAAI,CAAC0I,MAAWA,EAAO,cAAc,IAAI,CAAC;AAAA,IAC/C,GAEY,KAAK;AAGnB,IAAAD,EAAA,0BAAmB,OAAOE,OACJ,MAAM,QAAQ;AAAA,MAChC,KAAK,kBAAkB;AAAA,QAAI,CAACD,MAC1B;;AAAA,kBAAAlU,IAAAkU,EAAO,eAAP,gBAAAlU,EAAA,KAAAkU,GAAoB1F,GAAS2F,CAAI;AAAA;AAAA,MAAC;AAAA,IAEtC,GAEmB,QAAQ,CAACC,MAAQA,KAAO,CAAA,CAAE;AAG/C,IAAAH,EAAA,qBAAc,OAAOI,MAAqB;AACpC,UAAA,CAAC,KAAK;AACF,cAAA,IAAI,MAAM,uCAAuC;AAGzD,YAAMC,IAAc,MAAM,KAAK,eAAe,eAAe;AAE7D,aAAAD,EAAQ,QAAQ,IAAI,iBAAiB,UAAUC,CAAW,EAAE,GAErDD;AAAA,IACT;AAhD4B,SAAA,UAAA9T,GACrB,KAAA,UAAUA,EAAQ,WAAW,CAAC,GAC9B,KAAA,gBAAgBA,EAAQ,iBAAiB,CAAC,GAC1C,KAAA,WAAWA,EAAQ,YAAY,CAAC,GACrC,KAAK,oBAAoB,KAAK,QAAQ,OAAO4K,EAAkB,GAC/D,KAAK,iBAAiB5K,EAAQ,gBAC9B,KAAK,OAAOA,EAAQ,UACpB,KAAK,OAAOA,EAAQ;AAAA,EAAA;AA0CxB;AC7HO,SAASgU,GAAc,EAAE,OAAA/L,GAAO,oBAAAgM,KAAqC;AAGnE,SAAA/L,gBAAAA,MAACC,MAAW,OAAAF,GAAc;AACnC;ACPA,MAAMiM,IAAO;AAAA,CAET,CAACA,EAAK,uBAAuB,CAACA,EAAK,wBACrCA,EAAK,sBAAsB,CAACC,MAA4B,WAAWA,GAAI,CAAC,GACxED,EAAK,qBAAqB;ACIrB,MAAME,KAAqB;AAAA,EAChC,QAAA5E;AACF,GAMM6E,KACJrC,GAA+CoC,EAAkB,GAEtDE,KAAqBD,GAAkB,UCdvCE,KAAiB,CAAC;AAAA,EAC7B,UAAArN;AAAA,EACA,SAAA7E;AACF,OACmBmS,GAAA;AAAA,EACf,SAAS,aACP,MAAMnS,EAAQ,WAAW,GAClB;AAAA,EAET,UAAU,CAAC,mBAAmB;AAAA,CAC/B,yBAGEoS,GAAmB,UAAnB,EAA4B,OAAOpS,GACjC,UAAA6E,GACH,ICQEwN,KAAcjF;AAAA,EAClB,CAAC,EAAE,UAAAvI,GAAU,GAAGmB,QAAqD;;AACnE,UAAMsM,IAAaC;AAAA,MACjB,OAAO,EAAE,GAAGR,IAAoB,GAAG/L,EAAM,UAAU;AAAA,MACnD,CAACA,EAAM,SAAS;AAAA,IAClB,GAEMwM,IAAgBD,GAAQ,MAAM;;AAO3B,aAAA;AAAA,QACL,IAP6BvM,EAAM,WAAW,CAAA,GAC7C,OAAO2C,EAAmB,EAC1B;AAAA,UAAQ,CAAC2I,MACRA,EAAO,mBAAmB,CAACA,EAAO,iBAAA,CAAkB,IAAI,CAAA;AAAA,QAC1D,EAGyB;AAAA,UACvB,CAACmB,GAAKC,OAAU,EAAE,GAAGD,GAAK,GAAGC,EAAK;AAAA,UAClC,CAAA;AAAA,QACF;AAAA,QACA,GAAGC;AAAA,QACH,IAAGvV,IAAA4I,EAAM,QAAN,gBAAA5I,EAAW;AAAA,MAChB;AAAA,IAAA,GACC,EAACA,IAAA4I,EAAM,QAAN,gBAAA5I,EAAW,YAAY4I,EAAM,OAAO,CAAC,GACnC,EAAE,SAAA4M,EAAA,IAAYC,GAAWrM,EAAsB,GAC/C,CAACsM,GAAaC,CAAc,IAAI7J,EAAS,EAAK,GAC9C8J,IAAiBT;AAAA,MACrB,MAAOO,IAAc,EAAE,SAAS,GAAK,IAAI,EAAE,SAAAF,EAAQ;AAAA,MACnD,CAACA,GAASE,CAAW;AAAA,IACvB,GACMnE,IAAanD,GAAc;AAEjC,IAAAvD,EAAU,MAAM;AACd,MAAI6K,KAGJC,EAAe,EAAI;AAAA,IAClB,GAAA,CAACD,GAAanE,EAAW,QAAQ,CAAC;AAE/B,UAAA,CAACsE,CAAa,IAAI/J,EAAS,MAAM,IAAIkI,GAAcpL,CAAK,CAAC,GAEzDkN,KAAQ/S,IAAA6F,EAAM,YAAN,gBAAA7F,EACV,OAAOuI,IAER,IAAI,CAAC4I,GAAQtE,MAAA;;mCAAOW,IAAA,EAAkB,iBAAO,sCAAU,GAArBX,CAAuB;AAAA;AAE5D,WAEI3D,gBAAAA,EAAA,KAAAsE,YAAA,EAAA,UAAA;AAAA,MAAA9H,gBAAAA,EAAAA,IAAC0J,MAAQ,UAAM2D,EAAA,CAAA;AAAA,4BACd1M,GAAuB,UAAvB,EAAgC,OAAOwM,GACtC,gCAACd,IAAe,EAAA,SAASe,GACvB,UAAApN,gBAAAA,MAACsN,MAAY,YAAYX,GACvB,gCAACY,IAAc,EAAA,WAAU,SAAQ,2BAAyB,IACxD,UAACvN,gBAAAA,MAAAoM,IAAA,EAAmB,OAAOK,GACzB,UAAAzM,gBAAAA,EAAA,IAACwN,MAAgB,UAAUrN,EAAM,UAC/B,UAACH,gBAAAA,EAAA,IAAAyN,IAAA,EACE,UAAYzO,KAAAgB,gBAAAA,EAAA,IAAC4J,KAAO,CAAA,GACvB,EAAA,CACF,GACF,EACF,CAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,IAAA,GACF;AAAA,EAAA;AAGN;AAEA4C,GAAY,cAAc;AAE1B,MAAMkB,KAAS,CAACvN,MAEZH,gBAAAA,MAAC+J,MAAc,mBAAmB+B,IAChC,gCAACU,IAAa,EAAA,GAAGrM,GAAO,EAC1B,CAAA;AAGJuN,GAAO,cAAc;AClFd,MAAMC,KAAiCC,IACjC1E,KAAuB2E,IACvBC,KAA4BC,IAC5BjO,KAA4BkO,IAC5B1N,KAA0B2N,IAC1BrN,KAAgCsN,IAEhCC,KAAqBzE,IAErBxG,KAA0BkL,GAC1BnJ,KAAwBoJ,GACxBC,KAAyBC,IACzBC,KAA2BC,IAC3Bf,KAAuBgB,IAEvBC,KAAwBC,IACxBC,KAAyBC,IACzB7F,KAAwB8F,IACxB9G,KAA2B+G,IAC3BrK,KAAuBsK,IACvB7H,KAAqB8H;","x_google_ignoreList":[0,1,2,3,4,5,7,9,22]}
|
|
1
|
+
{"version":3,"file":"zudoku.components.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/hydration.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/HydrationBoundary.js","../src/lib/errors/ServerError.tsx","../../../node_modules/.pnpm/react-router@7.6.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/react-router/dist/development/dom-export.mjs","../src/lib/plugins/openapi/StaggeredRender.tsx","../src/lib/components/Bootstrap.tsx","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/helpers/util.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/ZodError.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/locales/en.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/errors.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/helpers/parseUtil.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/helpers/errorUtil.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/types.js","../src/lib/components/BuildCheck.tsx","../src/lib/util/useScrollToTop.ts","../src/lib/components/Footer.tsx","../src/lib/ui/Skeleton.tsx","../src/lib/components/Banner.tsx","../src/lib/components/navigation/ZudokuLogo.tsx","../src/lib/components/navigation/PoweredByZudoku.tsx","../src/lib/util/detectOS.ts","../src/lib/components/Search.tsx","../src/lib/components/ThemeSwitch.tsx","../src/lib/components/TopNavigation.tsx","../src/lib/components/MobileTopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/ui/Drawer.tsx","../src/lib/components/navigation/SidebarWrapper.tsx","../src/lib/components/navigation/Sidebar.tsx","../src/lib/components/Main.tsx","../src/lib/components/Layout.tsx","../src/lib/components/ErrorPage.tsx","../src/lib/components/StatusPage.tsx","../../../node_modules/.pnpm/react-error-boundary@5.0.0_react@19.1.0/node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../../../node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js","../src/lib/core/ZudokuContext.ts","../src/lib/errors/TopLevelError.tsx","../src/lib/util/requestIdleCallbackPolyfill.ts","../src/lib/components/context/ComponentsContext.tsx","../src/lib/components/context/RouterEventsEmitter.tsx","../src/lib/components/context/ZudokuProvider.tsx","../src/lib/components/Zudoku.tsx","../src/lib/components/index.ts"],"sourcesContent":["// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","// src/hydration.ts\nfunction defaultTransformerFn(data) {\n return data;\n}\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.options.scope && { scope: mutation.options.scope },\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query, serializeData, shouldRedactErrors) {\n return {\n state: {\n ...query.state,\n ...query.state.data !== void 0 && {\n data: serializeData(query.state.data)\n }\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.state.status === \"pending\" && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (!shouldRedactErrors(error)) {\n return Promise.reject(error);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`\n );\n }\n return Promise.reject(new Error(\"redacted\"));\n })\n },\n ...query.meta && { meta: query.meta }\n };\n}\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === \"success\";\n}\nfunction defaultShouldRedactErrors(_) {\n return true;\n}\nfunction dehydrate(client, options = {}) {\n const filterMutation = options.shouldDehydrateMutation ?? client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const shouldRedactErrors = options.shouldRedactErrors ?? client.getDefaultOptions().dehydrate?.shouldRedactErrors ?? defaultShouldRedactErrors;\n const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn;\n const queries = client.getQueryCache().getAll().flatMap(\n (query) => filterQuery(query) ? [dehydrateQuery(query, serializeData, shouldRedactErrors)] : []\n );\n return { mutations, queries };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== \"object\" || dehydratedState === null) {\n return;\n }\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache();\n const deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn;\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions\n },\n state\n );\n });\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash);\n const data = state.data === void 0 ? state.data : deserializeData(state.data);\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n const { fetchStatus: _ignored, ...serializedState } = state;\n query.setState({\n ...serializedState,\n data\n });\n }\n } else {\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: \"idle\"\n }\n );\n }\n if (promise) {\n const initialPromise = Promise.resolve(promise).then(deserializeData);\n void query.fetch(void 0, { initialPromise });\n }\n });\n}\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate\n};\n//# sourceMappingURL=hydration.js.map","\"use client\";\n\n// src/HydrationBoundary.tsx\nimport * as React from \"react\";\nimport { hydrate } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nvar hasProperty = (obj, key) => {\n return typeof obj === \"object\" && obj !== null && key in obj;\n};\nvar HydrationBoundary = ({\n children,\n options = {},\n state,\n queryClient\n}) => {\n const client = useQueryClient(queryClient);\n const [hydrationQueue, setHydrationQueue] = React.useState();\n const optionsRef = React.useRef(options);\n optionsRef.current = options;\n React.useMemo(() => {\n if (state) {\n if (typeof state !== \"object\") {\n return;\n }\n const queryCache = client.getQueryCache();\n const queries = state.queries || [];\n const newQueries = [];\n const existingQueries = [];\n for (const dehydratedQuery of queries) {\n const existingQuery = queryCache.get(dehydratedQuery.queryHash);\n if (!existingQuery) {\n newQueries.push(dehydratedQuery);\n } else {\n const hydrationIsNewer = dehydratedQuery.state.dataUpdatedAt > existingQuery.state.dataUpdatedAt || // RSC special serialized then-able chunks\n hasProperty(dehydratedQuery.promise, \"status\") && hasProperty(existingQuery.promise, \"status\") && dehydratedQuery.promise.status !== existingQuery.promise.status;\n const queryAlreadyQueued = hydrationQueue?.find(\n (query) => query.queryHash === dehydratedQuery.queryHash\n );\n if (hydrationIsNewer && (!queryAlreadyQueued || dehydratedQuery.state.dataUpdatedAt > queryAlreadyQueued.state.dataUpdatedAt)) {\n existingQueries.push(dehydratedQuery);\n }\n }\n }\n if (newQueries.length > 0) {\n hydrate(client, { queries: newQueries }, optionsRef.current);\n }\n if (existingQueries.length > 0) {\n setHydrationQueue(\n (prev) => prev ? [...prev, ...existingQueries] : existingQueries\n );\n }\n }\n }, [client, hydrationQueue, state]);\n React.useEffect(() => {\n if (hydrationQueue) {\n hydrate(client, { queries: hydrationQueue }, optionsRef.current);\n setHydrationQueue(void 0);\n }\n }, [client, hydrationQueue]);\n return children;\n};\nexport {\n HydrationBoundary\n};\n//# sourceMappingURL=HydrationBoundary.js.map","import { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function ServerError({ error }: { error: unknown }) {\n return <ErrorAlert error={error} />;\n}\n","/**\n * react-router v7.6.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport {\n FrameworkContext,\n RemixErrorBoundary,\n RouterProvider,\n createBrowserHistory,\n createClientRoutes,\n createClientRoutesWithHMRRevalidationOptOut,\n createRouter,\n decodeViaTurboStream,\n deserializeErrors,\n getHydrationData,\n getPatchRoutesOnNavigationFunction,\n getTurboStreamSingleFetchDataStrategy,\n hydrationRouteProperties,\n invariant,\n mapRouteProperties,\n useFogOFWarDiscovery\n} from \"./chunk-DQRVZFIR.mjs\";\n\n// lib/dom-export/dom-router-provider.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nfunction RouterProvider2(props) {\n return /* @__PURE__ */ React.createElement(RouterProvider, { flushSync: ReactDOM.flushSync, ...props });\n}\n\n// lib/dom-export/hydrated-router.tsx\nimport * as React2 from \"react\";\nvar ssrInfo = null;\nvar router = null;\nfunction initSsrInfo() {\n if (!ssrInfo && window.__reactRouterContext && window.__reactRouterManifest && window.__reactRouterRouteModules) {\n if (window.__reactRouterManifest.sri === true) {\n const importMap = document.querySelector(\"script[rr-importmap]\");\n if (importMap?.textContent) {\n try {\n window.__reactRouterManifest.sri = JSON.parse(\n importMap.textContent\n ).integrity;\n } catch (err) {\n console.error(\"Failed to parse import map\", err);\n }\n }\n }\n ssrInfo = {\n context: window.__reactRouterContext,\n manifest: window.__reactRouterManifest,\n routeModules: window.__reactRouterRouteModules,\n stateDecodingPromise: void 0,\n router: void 0,\n routerInitialized: false\n };\n }\n}\nfunction createHydratedRouter({\n unstable_getContext\n}) {\n initSsrInfo();\n if (!ssrInfo) {\n throw new Error(\n \"You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`\"\n );\n }\n let localSsrInfo = ssrInfo;\n if (!ssrInfo.stateDecodingPromise) {\n let stream = ssrInfo.context.stream;\n invariant(stream, \"No stream found for single fetch decoding\");\n ssrInfo.context.stream = void 0;\n ssrInfo.stateDecodingPromise = decodeViaTurboStream(stream, window).then((value) => {\n ssrInfo.context.state = value.value;\n localSsrInfo.stateDecodingPromise.value = true;\n }).catch((e) => {\n localSsrInfo.stateDecodingPromise.error = e;\n });\n }\n if (ssrInfo.stateDecodingPromise.error) {\n throw ssrInfo.stateDecodingPromise.error;\n }\n if (!ssrInfo.stateDecodingPromise.value) {\n throw ssrInfo.stateDecodingPromise;\n }\n let routes = createClientRoutes(\n ssrInfo.manifest.routes,\n ssrInfo.routeModules,\n ssrInfo.context.state,\n ssrInfo.context.ssr,\n ssrInfo.context.isSpaMode\n );\n let hydrationData = void 0;\n if (ssrInfo.context.isSpaMode) {\n let { loaderData } = ssrInfo.context.state;\n if (ssrInfo.manifest.routes.root?.hasLoader && loaderData && \"root\" in loaderData) {\n hydrationData = {\n loaderData: {\n root: loaderData.root\n }\n };\n }\n } else {\n hydrationData = getHydrationData(\n ssrInfo.context.state,\n routes,\n (routeId) => ({\n clientLoader: ssrInfo.routeModules[routeId]?.clientLoader,\n hasLoader: ssrInfo.manifest.routes[routeId]?.hasLoader === true,\n hasHydrateFallback: ssrInfo.routeModules[routeId]?.HydrateFallback != null\n }),\n window.location,\n window.__reactRouterContext?.basename,\n ssrInfo.context.isSpaMode\n );\n if (hydrationData && hydrationData.errors) {\n hydrationData.errors = deserializeErrors(hydrationData.errors);\n }\n }\n let router2 = createRouter({\n routes,\n history: createBrowserHistory(),\n basename: ssrInfo.context.basename,\n unstable_getContext,\n hydrationData,\n hydrationRouteProperties,\n mapRouteProperties,\n future: {\n unstable_middleware: ssrInfo.context.future.unstable_middleware\n },\n dataStrategy: getTurboStreamSingleFetchDataStrategy(\n () => router2,\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\n ssrInfo.context.basename\n ),\n patchRoutesOnNavigation: getPatchRoutesOnNavigationFunction(\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\n ssrInfo.context.routeDiscovery,\n ssrInfo.context.isSpaMode,\n ssrInfo.context.basename\n )\n });\n ssrInfo.router = router2;\n if (router2.state.initialized) {\n ssrInfo.routerInitialized = true;\n router2.initialize();\n }\n router2.createRoutesForHMR = /* spacer so ts-ignore does not affect the right hand of the assignment */\n createClientRoutesWithHMRRevalidationOptOut;\n window.__reactRouterDataRouter = router2;\n return router2;\n}\nfunction HydratedRouter(props) {\n if (!router) {\n router = createHydratedRouter({\n unstable_getContext: props.unstable_getContext\n });\n }\n let [criticalCss, setCriticalCss] = React2.useState(\n process.env.NODE_ENV === \"development\" ? ssrInfo?.context.criticalCss : void 0\n );\n if (process.env.NODE_ENV === \"development\") {\n if (ssrInfo) {\n window.__reactRouterClearCriticalCss = () => setCriticalCss(void 0);\n }\n }\n let [location, setLocation] = React2.useState(router.state.location);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router && !ssrInfo.routerInitialized) {\n ssrInfo.routerInitialized = true;\n ssrInfo.router.initialize();\n }\n }, []);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router) {\n return ssrInfo.router.subscribe((newState) => {\n if (newState.location !== location) {\n setLocation(newState.location);\n }\n });\n }\n }, [location]);\n invariant(ssrInfo, \"ssrInfo unavailable for HydratedRouter\");\n useFogOFWarDiscovery(\n router,\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\n ssrInfo.context.routeDiscovery,\n ssrInfo.context.isSpaMode\n );\n return (\n // This fragment is important to ensure we match the <ServerRouter> JSX\n // structure so that useId values hydrate correctly\n /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\n FrameworkContext.Provider,\n {\n value: {\n manifest: ssrInfo.manifest,\n routeModules: ssrInfo.routeModules,\n future: ssrInfo.context.future,\n criticalCss,\n ssr: ssrInfo.context.ssr,\n isSpaMode: ssrInfo.context.isSpaMode,\n routeDiscovery: ssrInfo.context.routeDiscovery\n }\n },\n /* @__PURE__ */ React2.createElement(RemixErrorBoundary, { location }, /* @__PURE__ */ React2.createElement(RouterProvider2, { router }))\n ), /* @__PURE__ */ React2.createElement(React2.Fragment, null))\n );\n}\nexport {\n HydratedRouter,\n RouterProvider2 as RouterProvider\n};\n","import {\n Children,\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nexport const StaggeredRenderContext = createContext({ stagger: false });\n\nconst StaggeredRender = ({ children }: { children: ReactNode[] }) => {\n const { stagger } = useContext(StaggeredRenderContext);\n const [renderAll, setRenderAll] = useState(!stagger);\n\n useEffect(() => {\n if (renderAll) {\n return;\n }\n\n const idle = requestIdleCallback(() => {\n setRenderAll(true);\n });\n\n return () => cancelIdleCallback(idle);\n }, [renderAll]);\n\n return !renderAll ? Children.toArray(children).slice(0, 3) : children;\n};\n\nexport default StaggeredRender;\n","import {\n HydrationBoundary,\n QueryClient,\n QueryClientProvider,\n} from \"@tanstack/react-query\";\nimport { type HelmetData, HelmetProvider } from \"@zudoku/react-helmet-async\";\nimport { StrictMode } from \"react\";\nimport {\n type createBrowserRouter,\n type createStaticRouter,\n type StaticHandlerContext,\n StaticRouterProvider,\n} from \"react-router\";\nimport { RouterProvider } from \"react-router/dom\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { BypassProtectedRoutesContext } from \"./context/BypassProtectedRoutesContext.js\";\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 1000 * 60 * 5,\n },\n },\n});\n\nconst Bootstrap = ({\n router,\n hydrate = false,\n}: {\n hydrate?: boolean;\n router: ReturnType<typeof createBrowserRouter>;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HydrationBoundary state={hydrate ? (window as any).DATA : undefined}>\n <BypassProtectedRoutesContext value={false}>\n <HelmetProvider>\n <StaggeredRenderContext.Provider value={{ stagger: !hydrate }}>\n <RouterProvider router={router} />\n </StaggeredRenderContext.Provider>\n </HelmetProvider>\n </BypassProtectedRoutesContext>\n </HydrationBoundary>\n </QueryClientProvider>\n </StrictMode>\n);\n\nconst BootstrapStatic = ({\n router,\n context,\n queryClient,\n helmetContext,\n bypassProtection = false,\n}: {\n helmetContext: HelmetData[\"context\"];\n context: StaticHandlerContext;\n queryClient: QueryClient;\n router: ReturnType<typeof createStaticRouter>;\n bypassProtection?: boolean;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HelmetProvider context={helmetContext}>\n <BypassProtectedRoutesContext value={bypassProtection}>\n <StaticRouterProvider router={router} context={context} />\n </BypassProtectedRoutesContext>\n </HelmetProvider>\n </QueryClientProvider>\n </StrictMode>\n);\n\nexport { Bootstrap, BootstrapStatic };\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { CircleFadingArrowUpIcon, LoaderCircleIcon } from \"lucide-react\";\nimport { z } from \"zod\";\nimport { Button } from \"../ui/Button.js\";\n\nconst BuildStatusSchema = z.object({\n buildId: z.string(),\n timestamp: z.string(),\n status: z.enum([\"in-progress\", \"success\", \"failed\"]),\n});\n\nexport const BuildCheck = ({\n buildId,\n endpoint = \"/__zuplo/docs\",\n}: {\n buildId?: string;\n endpoint?: string;\n}) => {\n const buildStatusQuery = useQuery({\n queryKey: [\"zuplo-build-check\", buildId, endpoint],\n refetchInterval: 3000,\n enabled:\n typeof buildId !== \"undefined\" &&\n import.meta.env.ZUPLO_ENVIRONMENT_TYPE === \"WORKING_COPY\",\n retry: false,\n queryFn: () =>\n fetch(endpoint, { signal: AbortSignal.timeout(2000) })\n .then((res) => {\n if (!res.ok) throw new Error(\"Failed to fetch build status\");\n return res.json();\n })\n .then((data) => BuildStatusSchema.parse(data)),\n });\n\n if (\n buildStatusQuery.isError ||\n !buildStatusQuery.data ||\n buildStatusQuery.data.buildId === buildId\n ) {\n return null;\n }\n\n const isCompleted = buildStatusQuery.data.status === \"success\";\n\n return (\n <div className=\"fixed flex flex-col gap-3 p-4 rounded-xl w-96 border z-20 bg-background left-0 right-0 top-4 mx-auto shadow-lg\">\n {isCompleted ? (\n <div className=\"flex flex-row items-center gap-2\">\n <CircleFadingArrowUpIcon size={16} />\n <span className=\"text-sm\">New version available</span>\n </div>\n ) : (\n <div className=\"flex flex-row items-center gap-2\">\n <LoaderCircleIcon size={16} className=\"animate-spin\" />\n <span className=\"text-sm\">Building new version...</span>\n </div>\n )}\n <span className=\"text-xs\">\n {!isCompleted\n ? \"A new version of the developer portal will be available soon.\"\n : \"To see the new version, reload the page now.\"}\n </span>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={() => {\n window.location.reload();\n }}\n >\n Reload\n </Button>\n </div>\n );\n};\n","import { useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router\";\n\nexport const useScrollToTop = () => {\n const location = useLocation();\n const previousPath = useRef(location.pathname);\n\n useEffect(() => {\n const isNewPage = previousPath.current !== location.pathname;\n const hasAnchor = location.hash !== \"\";\n\n if (isNewPage && !hasAnchor) {\n window.scrollTo(0, 0);\n }\n\n previousPath.current = location.pathname;\n }, [location.pathname, location.hash]);\n};\n","import { ExternalLink as ExternalLinkIcon } from \"lucide-react\";\nimport type { CSSProperties, ReactNode } from \"react\";\nimport type { FooterSocialIcons } from \"../../config/validators/validate.js\";\nimport { cn } from \"../util/cn.js\";\nimport { AnchorLink } from \"./AnchorLink.js\";\nimport { useZudoku } from \"./index.js\";\nimport { Slot } from \"./Slot.js\";\n\nconst SocialIcon = ({\n icon,\n}: {\n icon: (typeof FooterSocialIcons)[number] | ReactNode;\n}) => {\n if (typeof icon === \"string\") {\n return (\n <img\n src={`https://cdn.simpleicons.org/${icon}/000000/ffffff`}\n className=\"size-5\"\n alt={icon}\n />\n );\n }\n return icon;\n};\n\nconst isExternalUrl = (href: string) => /^https?:/.test(href);\n\nexport const Footer = () => {\n const { page } = useZudoku();\n const footer = page?.footer;\n\n if (!footer) return null;\n\n return (\n <footer className=\"border-t bg-background\">\n <div className=\"mx-auto max-w-screen-2xl px-4 lg:px-8 py-8 pt-20\">\n <div\n className={cn(\"flex flex-row gap-8\", {\n \"justify-center\": !footer.position || footer.position === \"center\",\n \"justify-start\": footer.position === \"start\",\n \"justify-end\": footer.position === \"end\",\n })}\n >\n <Slot.Target name=\"footer-before\" />\n {footer.columns && (\n <div\n className=\"w-full md:max-w-screen-md grid grid-cols-[1fr_1fr] gap-8 md:grid-cols-[repeat(var(--columns),minmax(0,1fr))]\"\n style={{ \"--columns\": footer.columns.length } as CSSProperties}\n >\n {footer.columns.map((column) => (\n <div\n className={cn({\n \"justify-self-center\":\n !column.position || column.position === \"center\",\n \"justify-self-start\": column.position === \"start\",\n \"justify-self-end\": column.position === \"end\",\n })}\n key={column.title}\n >\n <span className=\"text-sm font-semibold\">{column.title}</span>\n <ul className=\"mt-4 space-y-2\">\n {column.links.map((link) => {\n const className =\n \"flex flex-row gap-1 items-center text-sm text-muted-foreground hover:text-accent-foreground\";\n\n return (\n <li key={link.href + link.label}>\n {isExternalUrl(link.href) ? (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={className}\n >\n <span>{link.label}</span>\n <ExternalLinkIcon size={12} />\n </a>\n ) : (\n <AnchorLink to={link.href} className={className}>\n <span>{link.label}</span>\n </AnchorLink>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n ))}\n </div>\n )}\n <Slot.Target name=\"footer-after\" />\n </div>\n <div\n className={cn(\n \"flex items-center justify-between\",\n footer.columns && \"border-t mt-8 pt-8\",\n )}\n >\n {footer.logo && (\n <>\n <img\n src={footer.logo.src.light}\n alt={footer.logo.alt}\n className=\"w-8 dark:hidden\"\n style={{ width: footer.logo.width }}\n />\n <img\n src={footer.logo.src.dark}\n alt={footer.logo.alt}\n className=\"w-8 hidden dark:block\"\n style={{ width: footer.logo.width }}\n />\n </>\n )}\n {footer.copyright && (\n <p className=\"text-sm text-muted-foreground\">{footer.copyright}</p>\n )}\n <div className=\"flex items-center gap-2\">\n {footer.social?.map((social) => (\n <a\n key={social.href}\n href={social.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"w-auto gap-2 flex text-muted-foreground hover:text-accent-foreground\"\n >\n <SocialIcon icon={social.icon} />\n {social.label}\n </a>\n ))}\n </div>\n </div>\n </div>\n </footer>\n );\n};\n","import { cn } from \"../util/cn.js\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import { CircleXIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nconst COLOR_MAP = {\n info: \"bg-blue-500\",\n note: \"bg-gray-500\",\n tip: \"bg-green-600\",\n caution: \"bg-orange-500\",\n danger: \"bg-rose-500\",\n} as const;\n\nexport const Banner = () => {\n const { page } = useZudoku();\n const [isBannerOpen, setIsBannerOpen] = useState(true);\n\n if (!page?.banner || !isBannerOpen) {\n return <style>{`:root { --banner-height: 0px; }`}</style>;\n }\n\n const mappedColor =\n page.banner.color && page.banner.color in COLOR_MAP\n ? COLOR_MAP[page.banner.color as keyof typeof COLOR_MAP]\n : !page.banner.color\n ? \"bg-primary\"\n : undefined;\n\n const style = !mappedColor ? { backgroundColor: page.banner.color } : {};\n\n return (\n <div\n className={cn(\n \"relative text-primary-foreground text-sm font-medium px-4 py-2 flex gap-2 items-center lg:h-(--banner-height)\",\n mappedColor,\n )}\n data-pagefind-ignore=\"all\"\n style={style}\n >\n <div className=\"w-full\">{page.banner.message}</div>\n {page.banner.dismissible && (\n <button\n type=\"button\"\n className=\"md:absolute md:end-4 -m-1.5 p-1.5 hover:bg-accent-foreground/10 rounded-md\"\n onClick={() => setIsBannerOpen(false)}\n >\n <CircleXIcon size={16} />\n </button>\n )}\n </div>\n );\n};\n","import * as React from \"react\";\n\nconst ZudokuLogo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 132 100\"\n fill=\"none\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M80.092 2.963A4.66 4.66 0 0 1 84.449 0h34.049c6.325 0 10.835 6.135 8.948 12.172L116.653 46.71a4.688 4.688 0 0 1-4.474 3.29H75c-5.178 0-7.813 4.687-9.375 9.374-1.288 3.864-11.07 28.963-14.467 37.662A4.66 4.66 0 0 1 46.801 100H12.75c-6.324 0-10.834-6.134-8.947-12.171l10.793-34.54A4.688 4.688 0 0 1 19.071 50H56.25c5.178 0 7.813-4.687 9.375-9.375 1.288-3.864 11.07-28.962 14.467-37.662Z\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"currentColor\"\n d=\"M83.54 57.813a7.813 7.813 0 0 0-7.316 5.07L63.888 95.777c-.766 2.043.744 4.222 2.926 4.222h36.828c5.211 0 9.875-3.232 11.704-8.11l8.821-23.522c1.915-5.107-1.861-10.555-7.315-10.555H83.539ZM29.17 0a12.5 12.5 0 0 0-11.704 8.111l-8.82 23.521c-1.915 5.107 1.86 10.556 7.315 10.556h33.312a7.813 7.813 0 0 0 7.316-5.07L68.924 4.223C69.691 2.18 68.18 0 65.998 0H29.17Z\"\n />\n </svg>\n);\n\nZudokuLogo.displayName = \"ZudokuLogo\";\n\nexport default ZudokuLogo;\n","import { ChevronRightIcon } from \"lucide-react\";\nimport { cn } from \"../../util/cn.js\";\nimport ZudokuLogo from \"./ZudokuLogo.js\";\nimport ZuploLogo from \"./ZuploLogo.js\";\n\nexport const PoweredByZudoku = ({ className }: { className?: string }) => (\n <a\n href={import.meta.env.IS_ZUPLO ? \"https://zuplo.com\" : \"https://zudoku.dev\"}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"flex justify-between items-center w-full border border-transparent hover:border-border rounded-full hover:shadow-xs h-7 px-3 text-nowrap hover:bg-muted/80 transition-all\",\n className,\n )}\n >\n <div className=\"opacity-70 hover:opacity-100 transition-opacity gap-1.5 text-[11px] font-medium rounded-full h-7 flex items-center text-nowrap\">\n {import.meta.env.IS_ZUPLO ? (\n <ZuploLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n ) : (\n <ZudokuLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n )}\n powered by {import.meta.env.IS_ZUPLO ? \"Zuplo\" : \"Zudoku\"}\n </div>\n <div className=\"text-xs font-medium opacity-70 hover:text-foreground transition-colors cursor-pointer\">\n <ChevronRightIcon\n size={12}\n absoluteStrokeWidth\n strokeWidth={1.5}\n className=\"rtl:rotate-180\"\n />\n </div>\n </a>\n);\n","export function detectOS() {\n const userAgent = navigator.userAgent.toLowerCase();\n\n if (userAgent.includes(\"win\")) return \"Windows\";\n if (userAgent.includes(\"mac\")) return \"macOS\";\n if (userAgent.includes(\"linux\")) return \"Linux\";\n\n return undefined;\n}\n","import { SearchIcon } from \"lucide-react\";\nimport { Suspense, useCallback, useEffect, useState } from \"react\";\nimport { isSearchPlugin } from \"../core/plugins.js\";\nimport { detectOS } from \"../util/detectOS.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const Search = ({ className }: { className?: string }) => {\n const ctx = useZudoku();\n const [isOpen, setIsOpen] = useState(false);\n\n const onClose = useCallback(() => setIsOpen(false), []);\n\n useEffect(() => {\n if (isOpen) {\n return;\n }\n\n function onKeyDown(event: KeyboardEvent) {\n if (event.key === \"k\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n setIsOpen(true);\n }\n }\n\n window.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [isOpen, setIsOpen]);\n\n const searchPlugin = ctx.plugins.find(isSearchPlugin);\n\n if (!searchPlugin) {\n return null;\n }\n\n return (\n <div className={className}>\n <button\n type=\"button\"\n onClick={() => setIsOpen(true)}\n className=\"flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-full sm:w-72\"\n >\n <div className=\"flex items-center gap-2 grow\">\n <SearchIcon size={14} />\n Search\n </div>\n <ClientOnly>\n <KbdShortcut />\n </ClientOnly>\n </button>\n <Suspense fallback={null}>\n {searchPlugin.renderSearch({\n isOpen,\n onClose,\n })}\n </Suspense>\n </div>\n );\n};\n\nconst KbdShortcut = () => {\n const os = detectOS();\n return (\n <kbd className=\"absolute end-1.5 hidden h-5 select-none items-center gap-1 rounded-sm border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex\">\n {os === \"macOS\" ? \"⌘\" : \"Ctrl\"}+K\n </kbd>\n );\n};\n","import { MoonIcon, SunIcon } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\n\nexport const ThemeSwitch = () => {\n const { resolvedTheme, setTheme } = useTheme();\n\n return (\n <ClientOnly fallback={<Button variant=\"ghost\" size=\"icon\" />}>\n <button\n type=\"button\"\n className=\"flex rounded-full border p-0.5 gap-0.5 group\"\n onClick={() => setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\")}\n aria-label={\n resolvedTheme === \"dark\"\n ? \"Switch to light mode\"\n : \"Switch to dark mode\"\n }\n >\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 [&>svg>circle]:transition-colors [&>svg>path]:transition-transform transition-all [&>svg>path]:duration-200 [&>svg>circle]:duration-500 [&>svg>circle]:fill-transparent\",\n resolvedTheme === \"light\" && \"border-border bg-muted\",\n resolvedTheme === \"dark\" &&\n \"group-hover:[&>svg>path]:scale-110 group-hover:[&>svg>path]:-translate-x-[1px] group-hover:[&>svg>path]:-translate-y-[1px] group-hover:rotate-[15deg] \",\n )}\n >\n <SunIcon size={16} />\n </div>\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 transition-transform transform-gpu duration-500\",\n resolvedTheme === \"dark\" &&\n \"border-border bg-muted [&>svg>path]:fill-white [&>svg>path]:stroke-transparent\",\n resolvedTheme === \"light\" &&\n \"group-hover:rotate-[-10deg] [&>svg>path]:stroke-currentColor\",\n )}\n >\n <MoonIcon size={16} />\n </div>\n </button>\n </ClientOnly>\n );\n};\n","import { useNProgress } from \"@tanem/react-nprogress\";\nimport { cx } from \"class-variance-authority\";\nimport { Suspense, useEffect, useState } from \"react\";\nimport { NavLink, useNavigation } from \"react-router\";\nimport type { TopNavigationItem } from \"../../config/validators/validate.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { isHiddenItem, traverseSidebar } from \"./navigation/utils.js\";\nimport { Slot } from \"./Slot.js\";\n\nexport const PageProgress = () => {\n const navigation = useNavigation();\n const isNavigating = navigation.state === \"loading\";\n // delay the animation to avoid flickering\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => setIsAnimating(isNavigating), 100);\n\n return () => clearTimeout(timer);\n }, [isNavigating]);\n\n const { isFinished, progress } = useNProgress({ isAnimating });\n\n return (\n <div\n className=\"absolute w-0 left-0 right-0 bottom-[-1px] h-[2px] bg-primary transition-all duration-300 ease-in-out\"\n style={{\n opacity: isFinished ? 0 : 1,\n width: isFinished ? 0 : `${progress * 100}%`,\n }}\n />\n );\n};\n\nexport const TopNavigation = () => {\n const { topNavigation } = useZudoku();\n const { isAuthenticated } = useAuth();\n\n const filteredItems = topNavigation.filter(isHiddenItem(isAuthenticated));\n\n if (filteredItems.length === 0 || import.meta.env.MODE === \"standalone\") {\n return <style>{`:root { --top-nav-height: 0px; }`}</style>;\n }\n\n return (\n <Suspense>\n <div className=\"items-center justify-between px-8 h-(--top-nav-height) hidden lg:flex text-sm relative\">\n <nav className=\"text-sm\">\n <ul className=\"flex flex-row items-center gap-8\">\n {filteredItems.map((item) => (\n <li key={item.id}>\n <TopNavItem {...item} />\n </li>\n ))}\n </ul>\n </nav>\n <Slot.Target name=\"top-navigation-side\" />\n </div>\n <PageProgress />\n </Suspense>\n );\n};\n\nexport const TopNavItem = ({\n id,\n label,\n default: defaultLink,\n}: TopNavigationItem) => {\n const { sidebars } = useZudoku();\n const currentSidebar = sidebars[id];\n const currentNav = useCurrentNavigation();\n const isNavigating = Boolean(useNavigation().location);\n const isActive = currentNav.topNavItem?.id === id && !isNavigating;\n\n // TODO: This is a bit of a hack to get the first link in the sidebar\n // We should really process this when we load the config so we can validate\n // that the sidebar is actually set. In this case we just fall back to linking\n // to the id if we can't resolve a sidebar.\n const first =\n defaultLink ??\n (currentSidebar\n ? traverseSidebar(currentSidebar, (item) => {\n if (item.type === \"doc\") return joinUrl(item.id);\n })\n : joinUrl(id)) ??\n joinUrl(id);\n\n return (\n // We don't use isActive here because it has to be inside the sidebar,\n // the top nav id doesn't necessarily start with the sidebar id\n <NavLink\n className={({ isPending }) =>\n cx(\n \"block lg:py-3.5 font-medium -mb-px\",\n isActive || isPending\n ? \"border-primary text-foreground\"\n : \"border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25\",\n )\n }\n to={first}\n >\n {label}\n </NavLink>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { MenuIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n Drawer,\n DrawerContent,\n DrawerTitle,\n DrawerTrigger,\n} from \"../ui/Drawer.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { PoweredByZudoku } from \"./navigation/PoweredByZudoku.js\";\nimport { isHiddenItem } from \"./navigation/utils.js\";\nimport { Search } from \"./Search.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { PageProgress, TopNavItem } from \"./TopNavigation.js\";\n\nexport const MobileTopNavigation = () => {\n const { topNavigation, options } = useZudoku();\n const { isAuthenticated } = useAuth();\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n return (\n <Drawer\n direction={options.page?.dir === \"rtl\" ? \"left\" : \"right\"}\n open={drawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n <div className=\"flex lg:hidden justify-self-end\">\n <DrawerTrigger className=\"lg:hidden\">\n <MenuIcon size={22} />\n </DrawerTrigger>\n <PageProgress />\n </div>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] end-0 start-auto w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none h-full flex flex-col justify-between\">\n <div>\n <VisuallyHidden>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n <Search className=\"flex p-4\" />\n <ul className=\"flex flex-col items-center gap-4 p-4\">\n <li>\n <ThemeSwitch />\n </li>\n {topNavigation\n .filter(isHiddenItem(isAuthenticated))\n .map((item) => (\n <li key={item.label}>\n <button type=\"button\" onClick={() => setDrawerOpen(false)}>\n <TopNavItem {...item} />\n </button>\n </li>\n ))}\n </ul>\n </div>\n {options.page?.showPoweredBy !== false && (\n <PoweredByZudoku className=\"grow-0 justify-center gap-1\" />\n )}\n </div>\n </DrawerContent>\n </Drawer>\n );\n};\n","import { memo } from \"react\";\nimport { Link } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Skeleton } from \"zudoku/ui/Skeleton.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n isProfileMenuPlugin,\n type ProfileNavigationItem,\n} from \"../core/plugins.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../ui/DropdownMenu.js\";\nimport { cn } from \"../util/cn.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { Banner } from \"./Banner.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { MobileTopNavigation } from \"./MobileTopNavigation.js\";\nimport { Search } from \"./Search.js\";\nimport { Slot } from \"./Slot.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { TopNavigation } from \"./TopNavigation.js\";\n\nconst RecursiveMenu = ({ item }: { item: ProfileNavigationItem }) => {\n return item.children ? (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n {item.children.map((item, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <RecursiveMenu key={i} item={item} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label} className=\"flex gap-2\">\n {item.icon && (\n <item.icon size={16} strokeWidth={1} absoluteStrokeWidth />\n )}\n {item.label}\n </DropdownMenuItem>\n </Link>\n );\n};\n\nexport const Header = memo(function HeaderInner() {\n const auth = useAuth();\n const { isAuthenticated, profile, isAuthEnabled } = useAuth();\n const context = useZudoku();\n const { page, plugins, options } = context;\n\n const accountItems = plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .sort((i) => i.weight ?? 0);\n\n const logoLightSrc = page?.logo\n ? /https?:\\/\\//.test(page.logo.src.light)\n ? page.logo.src.light\n : joinUrl(options.basePath, page.logo.src.light)\n : undefined;\n const logoDarkSrc = page?.logo\n ? /https?:\\/\\//.test(page.logo.src.dark)\n ? page.logo.src.dark\n : joinUrl(options.basePath, page.logo.src.dark)\n : undefined;\n\n const borderBottom = \"inset-shadow-[0_-1px_0_0_var(--border)]\";\n\n return (\n <header className=\"sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full\">\n <Banner />\n <div className={borderBottom}>\n <div className=\"max-w-screen-2xl mx-auto flex relative items-center justify-between h-(--top-header-height) px-4 lg:px-8 border-transparent\">\n <div className=\"flex\">\n <Link to=\"/\">\n <div className=\"flex items-center gap-3.5\">\n {page?.logo && (\n <>\n <img\n src={logoLightSrc}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"max-h-(--top-header-height) dark:hidden\"\n loading=\"lazy\"\n />\n <img\n src={logoDarkSrc}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"max-h-(--top-header-height) hidden dark:block\"\n loading=\"lazy\"\n />\n </>\n )}\n <span className=\"font-semibold text-2xl\">\n {page?.pageTitle}\n </span>\n </div>\n </Link>\n </div>\n\n <div className=\"absolute inset-x-0 justify-center items-center hidden lg:flex w-full pointer-events-none\">\n <Search className=\"pointer-events-auto\" />\n </div>\n\n <div className=\"flex items-center gap-8\">\n <MobileTopNavigation />\n <div className=\"hidden lg:flex items-center justify-self-end text-sm gap-2\">\n <Slot.Target name=\"head-navigation-start\" />\n {isAuthEnabled && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded-sm h-5 w-24 mr-4\" />}\n >\n {!isAuthenticated ? (\n <Button variant=\"ghost\" onClick={() => auth.login()}>\n Login\n </Button>\n ) : (\n Object.values(accountItems).length > 0 && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\">\n {profile?.name ?? \"My Account\"}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>\n {profile?.name ? `${profile.name}` : \"My Account\"}\n {profile?.email && (\n <div className=\"font-normal text-muted-foreground\">\n {profile.email}\n </div>\n )}\n </DropdownMenuLabel>\n {accountItems.filter((i) => i.category === \"top\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"top\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter(\n (i) => !i.category || i.category === \"middle\",\n ).length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter(\n (i) => !i.category || i.category === \"middle\",\n )\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter((i) => i.category === \"bottom\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"bottom\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n )}\n </ClientOnly>\n )}\n <Slot.Target name=\"head-navigation-end\" />\n <ThemeSwitch />\n </div>\n </div>\n </div>\n </div>\n <div className={cn(\"hidden lg:block\", borderBottom)}>\n <div className=\"max-w-screen-2xl mx-auto border-transparent\">\n <Slot.Target name=\"top-navigation-before\" />\n <TopNavigation />\n <Slot.Target name=\"top-navigation-after\" />\n </div>\n </div>\n </header>\n );\n});\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../util/cn.js\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger: typeof DrawerPrimitive.Trigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal: typeof DrawerPrimitive.Portal = DrawerPrimitive.Portal;\n\nconst DrawerClose: typeof DrawerPrimitive.Close = DrawerPrimitive.Close;\n\nconst DrawerOverlay: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Overlay>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & {\n hideBar?: boolean;\n } & React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Content>>\n> = React.forwardRef(\n ({ className, children, hideBar = true, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className,\n )}\n {...props}\n >\n {!hideBar && (\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n )}\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n ),\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Title>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Description>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n};\n","import { useEffect, useRef, type PropsWithChildren } from \"react\";\nimport { cn } from \"../../util/cn.js\";\nimport { scrollIntoViewIfNeeded } from \"../../util/scrollIntoViewIfNeeded.js\";\nimport { useZudoku } from \"../context/ZudokuContext.js\";\nimport { PoweredByZudoku } from \"./PoweredByZudoku.js\";\n\nexport const SidebarWrapper = ({\n children,\n className,\n}: PropsWithChildren<{\n className?: string;\n}>) => {\n const { options } = useZudoku();\n const navRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const active = navRef.current?.querySelector('[aria-current=\"page\"]');\n scrollIntoViewIfNeeded(active ?? null);\n }, []);\n\n return (\n <div className=\"grid sticky top-(--header-height) lg:h-[calc(100vh-var(--header-height))] grid-rows-[1fr_min-content] border-r\">\n <nav\n ref={navRef}\n className={cn(\n \"hidden max-w-[calc(var(--side-nav-width)+var(--padding-nav-item))] lg:flex scrollbar flex-col overflow-y-auto shrink-0 text-sm pe-3 ps-4 lg:ps-8\",\n \"-mx-(--padding-nav-item) pb-[8vh] pt-(--padding-content-top) scroll-pt-2 gap-1\",\n // Revert the padding/margin on the first child\n \"-mt-2.5\",\n className,\n )}\n style={{\n maskImage: `linear-gradient(180deg, transparent 1%, rgba(0, 0, 0, 1) 20px, rgba(0, 0, 0, 1) 90%, transparent 99%)`,\n }}\n >\n {children}\n </nav>\n\n <div className=\"bg-background border-t p-2 mx-5 gap-2 items-center mt-2 drop-shadow-[0_-3px_1px_rgba(0,0,0,0.015)] hidden lg:[&:has(>_:nth-child(1):last-child)]:flex\">\n {options.page?.showPoweredBy !== false && <PoweredByZudoku />}\n </div>\n </div>\n );\n};\n\nSidebarWrapper.displayName = \"SidebarWrapper\";\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport type { SidebarItem as SidebarItemType } from \"../../../config/validators/SidebarSchema.js\";\nimport { DrawerContent, DrawerTitle } from \"../../ui/Drawer.js\";\nimport { Slot } from \"../Slot.js\";\nimport { SidebarItem } from \"./SidebarItem.js\";\nimport { SidebarWrapper } from \"./SidebarWrapper.js\";\n\nexport const Sidebar = ({\n onRequestClose,\n sidebar,\n}: {\n onRequestClose?: () => void;\n sidebar: SidebarItemType[];\n}) => (\n <>\n <SidebarWrapper>\n <Slot.Target name=\"navigation-before\" />\n {sidebar.map((item) => (\n <SidebarItem\n key={\n (\"id\" in item ? item.id : \"\") +\n (\"href\" in item ? item.href : \"\") +\n item.label\n }\n item={item}\n />\n ))}\n <Slot.Target name=\"navigation-after\" />\n </SidebarWrapper>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] start-0 w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none\">\n <VisuallyHidden>\n <DrawerTitle>Sidebar</DrawerTitle>\n </VisuallyHidden>\n {sidebar.map((item) => (\n <SidebarItem\n key={item.label}\n item={item}\n onRequestClose={onRequestClose}\n />\n ))}\n </div>\n </DrawerContent>\n </>\n);\n","import { PanelLeftIcon } from \"lucide-react\";\nimport { type PropsWithChildren, useState } from \"react\";\nimport { useNavigation } from \"react-router\";\nimport { Drawer, DrawerTrigger } from \"zudoku/ui/Drawer.js\";\nimport { cn } from \"../util/cn.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { Sidebar } from \"./navigation/Sidebar.js\";\nimport { Slot } from \"./Slot.js\";\n\nexport const Main = ({ children }: PropsWithChildren) => {\n const [isDrawerOpen, setDrawerOpen] = useState(false);\n const { sidebar } = useCurrentNavigation();\n const hasSidebar = sidebar.length > 0;\n const isNavigating = useNavigation().state === \"loading\";\n const { options } = useZudoku();\n\n return (\n <Drawer\n direction={options.page?.dir === \"rtl\" ? \"right\" : \"left\"}\n open={isDrawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n {hasSidebar && (\n <Sidebar\n onRequestClose={() => setDrawerOpen(false)}\n sidebar={sidebar}\n />\n )}\n {hasSidebar && (\n <div className=\"lg:hidden -mx-4 px-4 py-2 sticky bg-background/80 backdrop-blur-xs z-10 top-0 start-0 end-0 border-b\">\n <DrawerTrigger className=\"flex items-center gap-2 px-4\">\n <PanelLeftIcon size={16} strokeWidth={1.5} />\n <span className=\"text-sm\">Menu</span>\n </DrawerTrigger>\n </div>\n )}\n <main\n data-pagefind-body\n className={cn(\n \"px-4 lg:pe-8 lg:px-8\",\n !hasSidebar && \"col-span-full\",\n isNavigating && \"animate-pulse\",\n )}\n >\n <Slot.Target name=\"content-before\" />\n {children}\n <Slot.Target name=\"content-after\" />\n </main>\n </Drawer>\n );\n};\n","import { Helmet } from \"@zudoku/react-helmet-async\";\nimport { Suspense, useEffect, type ReactNode } from \"react\";\nimport { Outlet, useLocation } from \"react-router\";\nimport { cn } from \"../util/cn.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { useScrollToAnchor } from \"../util/useScrollToAnchor.js\";\nimport { useScrollToTop } from \"../util/useScrollToTop.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Footer } from \"./Footer.js\";\nimport { Header } from \"./Header.js\";\nimport { Main } from \"./Main.js\";\nimport { Slot } from \"./Slot.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nconst LoadingFallback = () => (\n <main className=\"col-span-full row-span-full grid place-items-center\">\n <Spinner />\n </main>\n);\n\nexport const Layout = ({ children }: { children?: ReactNode }) => {\n const { meta, authentication, options } = useZudoku();\n const location = useLocation();\n\n useScrollToAnchor();\n useScrollToTop();\n\n useEffect(() => {\n // Initialize the authentication plugin\n authentication?.onPageLoad?.();\n }, [authentication]);\n\n return (\n <>\n <Helmet titleTemplate={meta?.title}>\n {options.canonicalUrlOrigin && (\n <link\n rel=\"canonical\"\n href={joinUrl(\n options.canonicalUrlOrigin,\n options.basePath,\n location.pathname,\n )}\n />\n )}\n {meta?.description && (\n <meta name=\"description\" content={meta.description} />\n )}\n {meta?.favicon && <link rel=\"icon\" href={meta.favicon} />}\n </Helmet>\n <Slot.Target name=\"layout-before-head\" />\n <Header />\n <Slot.Target name=\"layout-after-head\" />\n\n <div\n className={cn(\n \"grid max-w-screen-2xl w-full lg:mx-auto\",\n \"[&:has(>:only-child)]:grid-rows-1 grid-rows-[0_min-content_1fr] lg:grid-rows-[min-content_1fr]\",\n \"grid-cols-1 lg:grid-cols-[var(--side-nav-width)_1fr]\",\n )}\n >\n <Suspense fallback={<LoadingFallback />}>\n <Main>{children ?? <Outlet />}</Main>\n </Suspense>\n </div>\n <Footer />\n </>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const ErrorPage = ({\n title = \"An error occurred\",\n message,\n category,\n}: {\n title?: ReactNode;\n message?: ReactNode;\n category?: ReactNode;\n}) => {\n return (\n <div className={ProseClasses + \" h-full pt-(--padding-content-top)\"}>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n {title}\n </Heading>\n )}\n <p>{message}</p>\n </div>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { ErrorPage } from \"./ErrorPage.js\";\n\ntype StatusPageProps = {\n statusCode: number;\n message?: ReactNode;\n};\n\nconst getDefaultContent = (\n statusCode: number,\n): { title: string; message: string } => {\n switch (statusCode) {\n case 400:\n return {\n title: \"Bad Request\",\n message:\n \"The request could not be understood by the server due to malformed syntax.\",\n };\n case 403:\n return {\n title: \"Forbidden\",\n message: \"You don't have permission to access this resource.\",\n };\n case 404:\n return {\n title: \"Not Found\",\n message: \"The requested resource could not be found.\",\n };\n case 405:\n return {\n title: \"Method Not Allowed\",\n message:\n \"The request method is not supported for the requested resource.\",\n };\n case 414:\n return {\n title: \"Request URI Too Large\",\n message: \"The request URI is too large.\",\n };\n case 416:\n return {\n title: \"Range Not Satisfiable\",\n message: \"The server cannot satisfy the request range.\",\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n message: \"An unexpected error occurred while processing your request.\",\n };\n case 501:\n return {\n title: \"Not Implemented\",\n message:\n \"The server does not support the functionality required to fulfill the request.\",\n };\n case 502:\n return {\n title: \"Bad Gateway\",\n message:\n \"The server received an invalid response from the upstream server.\",\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n message: \"The server is temporarily unable to handle the request.\",\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n message:\n \"The server did not receive a timely response from the upstream server.\",\n };\n default:\n return {\n title: \"An error occurred\",\n message: \"Something went wrong while processing your request.\",\n };\n }\n};\n\nexport const StatusPage = ({ statusCode, message }: StatusPageProps) => {\n const defaultContent = getDefaultContent(statusCode);\n\n return (\n <ErrorPage\n title={defaultContent.title}\n message={message ?? defaultContent.message}\n category={statusCode}\n />\n );\n};\n","'use client';\nimport { createContext, Component, createElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback !== undefined) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","import type { QueryClient } from \"@tanstack/react-query\";\nimport { createNanoEvents } from \"nanoevents\";\nimport type { ReactNode } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { BundledTheme, HighlighterCore } from \"shiki\";\nimport type { z } from \"zod\";\nimport type { SidebarConfig } from \"../../config/validators/SidebarSchema.js\";\nimport type {\n FooterSchema,\n TopNavigationItem,\n} from \"../../config/validators/validate.js\";\nimport type { AuthenticationPlugin } from \"../authentication/authentication.js\";\nimport { type AuthState, useAuthState } from \"../authentication/state.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport type { SlotType } from \"../components/context/SlotProvider.js\";\nimport { joinPath } from \"../util/joinPath.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport { objectEntries } from \"../util/objectEntries.js\";\nimport {\n isApiIdentityPlugin,\n isAuthenticationPlugin,\n isEventConsumerPlugin,\n isNavigationPlugin,\n type NavigationPlugin,\n needsInitialization,\n type ZudokuPlugin,\n} from \"./plugins.js\";\n\nexport interface ZudokuEvents {\n location: (event: { from?: Location; to: Location }) => void;\n auth: (auth: { prev: AuthState; next: AuthState }) => void;\n}\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Promise<Request> | Request;\n authorizationFields?: {\n headers?: string[];\n queryParams?: string[];\n };\n label: string;\n id: string;\n}\n\nexport type ApiKeyCache = \"api-keys\";\n\ntype Metadata = Partial<{\n title: string;\n description: string;\n logo: string;\n favicon: string;\n generator: string;\n applicationName: string;\n referrer: string;\n keywords: string[];\n authors: string[];\n creator: string;\n publisher: string;\n}>;\n\ntype Page = Partial<{\n dir?: \"ltr\" | \"rtl\";\n showPoweredBy?: boolean;\n pageTitle?: string;\n logo?: {\n src: {\n light: string;\n dark: string;\n };\n width?: string | number;\n alt?: string;\n };\n banner?: {\n message: ReactNode;\n color?: \"note\" | \"tip\" | \"info\" | \"caution\" | \"danger\" | (string & {});\n dismissible?: boolean;\n };\n footer?: z.infer<typeof FooterSchema>;\n}>;\n\nexport type ZudokuContextOptions = {\n basePath?: string;\n canonicalUrlOrigin?: string;\n metadata?: Metadata;\n page?: Page;\n authentication?: AuthenticationPlugin;\n topNavigation?: TopNavigationItem[];\n sidebars?: SidebarConfig;\n plugins?: ZudokuPlugin[];\n slots?: Record<string, SlotType>;\n /**\n * @deprecated Use `slots` instead\n */\n UNSAFE_slotlets?: Record<string, SlotType>;\n mdx?: {\n components?: MdxComponentsType;\n };\n overrides?: ComponentsContextType;\n protectedRoutes?: string[];\n syntaxHighlighting?: {\n highlighter: HighlighterCore;\n themes?: { light: BundledTheme; dark: BundledTheme };\n };\n};\n\nexport class ZudokuContext {\n public plugins: NonNullable<ZudokuContextOptions[\"plugins\"]>;\n public sidebars: SidebarConfig;\n public topNavigation: NonNullable<ZudokuContextOptions[\"topNavigation\"]>;\n public meta: ZudokuContextOptions[\"metadata\"];\n public page: ZudokuContextOptions[\"page\"];\n public readonly authentication?: ZudokuContextOptions[\"authentication\"];\n public readonly queryClient: QueryClient;\n public readonly options: ZudokuContextOptions;\n private readonly navigationPlugins: NavigationPlugin[];\n private emitter = createNanoEvents<ZudokuEvents>();\n\n constructor(options: ZudokuContextOptions, queryClient: QueryClient) {\n const protectedRoutes = (options.protectedRoutes ?? []).concat(\n options.plugins?.flatMap((plugin) =>\n isNavigationPlugin(plugin) ? (plugin.getProtectedRoutes?.() ?? []) : [],\n ) ?? [],\n );\n\n this.queryClient = queryClient;\n this.options = { ...options, protectedRoutes };\n this.plugins = options.plugins ?? [];\n this.topNavigation = options.topNavigation ?? [];\n this.sidebars = options.sidebars ?? {};\n this.navigationPlugins = this.plugins.filter(isNavigationPlugin);\n this.authentication = this.plugins.find(isAuthenticationPlugin);\n this.meta = options.metadata;\n this.page = options.page;\n this.plugins.forEach((plugin) => {\n if (!isEventConsumerPlugin(plugin)) return;\n\n objectEntries(plugin.events).forEach(([event, handler]) => {\n this.emitter.on(event, handler!);\n });\n });\n\n useAuthState.subscribe((state, prevState) => {\n this.emitEvent(\"auth\", {\n prev: prevState,\n next: state,\n });\n });\n }\n\n initialize = async (): Promise<void> => {\n await Promise.all(\n this.plugins\n .filter(needsInitialization)\n .map((plugin) => plugin.initialize?.(this)),\n );\n };\n\n getApiIdentities = async () => {\n const keys = await Promise.all(\n this.plugins\n .filter(isApiIdentityPlugin)\n .map((plugin) => plugin.getIdentities(this)),\n );\n\n return keys.flat();\n };\n\n addEventListener<E extends keyof ZudokuEvents>(\n event: E,\n callback: ZudokuEvents[E],\n ) {\n return this.emitter.on(event, callback);\n }\n\n emitEvent = <E extends keyof ZudokuEvents>(\n event: E,\n ...data: Parameters<ZudokuEvents[E]>\n ) => {\n return this.emitter.emit(event, ...data);\n };\n\n getPluginSidebar = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map((plugin) =>\n plugin.getSidebar?.(joinPath(path), this),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n return await this.authentication.signRequest(request);\n };\n}\n","import { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error, resetErrorBoundary }: FallbackProps) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return <ErrorAlert error={error} />;\n}\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","import {\n createContext,\n useContext,\n type ComponentProps,\n type ComponentType,\n} from \"react\";\nimport { Header } from \"../Header.js\";\n\nexport const DEFAULT_COMPONENTS = {\n Header,\n};\n\nexport type ComponentsContextType = {\n Header?: ComponentType<ComponentProps<typeof Header>>;\n};\n\nconst ComponentsContext =\n createContext<Required<ComponentsContextType>>(DEFAULT_COMPONENTS);\n\nexport const ComponentsProvider = ComponentsContext.Provider;\n\nexport const useComponents = () => {\n return useContext(ComponentsContext);\n};\n","import { useEffect, useRef } from \"react\";\nimport { useLocation, type Location } from \"react-router\";\nimport { useZudoku } from \"./ZudokuContext.js\";\n\nexport const RouterEventsEmitter = () => {\n const location = useLocation();\n const zudoku = useZudoku();\n const previousLocation = useRef<Location | undefined>(undefined);\n\n useEffect(() => {\n zudoku.emitEvent(\"location\", {\n from: previousLocation.current,\n to: location,\n });\n previousLocation.current = location;\n }, [zudoku, location]);\n\n return null;\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport type { PropsWithChildren } from \"react\";\nimport { type ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { NO_DEHYDRATE } from \"../cache.js\";\nimport { ZudokuReactContext } from \"./ZudokuContext.js\";\n\nexport const ZudokuProvider = ({\n children,\n context,\n}: PropsWithChildren<{ context: ZudokuContext }>) => {\n useSuspenseQuery({\n queryFn: async () => {\n await context.initialize();\n return true;\n },\n queryKey: [\"zudoku-initialize\", NO_DEHYDRATE],\n });\n\n return (\n <ZudokuReactContext.Provider value={context}>\n {children}\n </ZudokuReactContext.Provider>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { ThemeProvider } from \"next-themes\";\nimport {\n memo,\n type PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, useLocation, useNavigation } from \"react-router\";\nimport { hasHead, isMdxProviderPlugin } from \"../core/plugins.js\";\nimport {\n ZudokuContext,\n type ZudokuContextOptions,\n} from \"../core/ZudokuContext.js\";\nimport { TopLevelError } from \"../errors/TopLevelError.js\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { MdxComponents } from \"../util/MdxComponents.js\";\nimport \"../util/requestIdleCallbackPolyfill.js\";\nimport {\n ComponentsProvider,\n DEFAULT_COMPONENTS,\n} from \"./context/ComponentsContext.js\";\nimport { RouterEventsEmitter } from \"./context/RouterEventsEmitter.js\";\nimport { SlotProvider } from \"./context/SlotProvider.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { ZudokuProvider } from \"./context/ZudokuProvider.js\";\n\nlet zudokuContext: ZudokuContext | undefined;\n\nconst ZudokoInner = memo(\n ({ children, ...props }: PropsWithChildren<ZudokuContextOptions>) => {\n const components = useMemo(\n () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),\n [props.overrides],\n );\n\n const location = useLocation();\n const mdxComponents = useMemo(() => {\n const componentsFromPlugins = (props.plugins ?? [])\n .filter(isMdxProviderPlugin)\n .flatMap((plugin) =>\n plugin.getMdxComponents ? [plugin.getMdxComponents()] : [],\n );\n\n return {\n ...componentsFromPlugins.reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n {},\n ),\n ...MdxComponents,\n ...props.mdx?.components,\n };\n }, [props.mdx?.components, props.plugins]);\n const { stagger } = useContext(StaggeredRenderContext);\n const [didNavigate, setDidNavigate] = useState(false);\n const staggeredValue = useMemo(\n () => (didNavigate ? { stagger: true } : { stagger }),\n [stagger, didNavigate],\n );\n const navigation = useNavigation();\n const queryClient = useQueryClient();\n\n useEffect(() => {\n if (didNavigate) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n zudokuContext ??= new ZudokuContext(props, queryClient);\n\n const heads = props.plugins\n ?.flatMap((plugin) =>\n hasHead(plugin) ? (plugin.getHead?.({ location }) ?? []) : [],\n )\n // eslint-disable-next-line react/no-array-index-key\n .map((entry, i) => <Helmet key={i}>{entry}</Helmet>);\n\n return (\n <>\n {heads}\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <ZudokuProvider context={zudokuContext}>\n <RouterEventsEmitter />\n <SlotProvider slots={props.slots ?? props.UNSAFE_slotlets}>\n <MDXProvider components={mdxComponents}>\n <ThemeProvider attribute=\"class\" disableTransitionOnChange>\n <ComponentsProvider value={components}>\n <ViewportAnchorProvider>\n {children ?? <Outlet />}\n </ViewportAnchorProvider>\n </ComponentsProvider>\n </ThemeProvider>\n </MDXProvider>\n </SlotProvider>\n </ZudokuProvider>\n </StaggeredRenderContext.Provider>\n </>\n );\n },\n);\n\nZudokoInner.displayName = \"ZudokoInner\";\n\nconst Zudoku = (props: ZudokuContextOptions) => {\n return (\n <ErrorBoundary FallbackComponent={TopLevelError}>\n <ZudokoInner {...props} />\n </ErrorBoundary>\n );\n};\nZudoku.displayName = \"Zudoku\";\n\nexport { Zudoku };\n","import { useMDXComponents as useMDXComponentsImport } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useTheme as useThemeImport } from \"next-themes\";\nimport { Link as LinkImport } from \"react-router\";\nimport { useAuth as useAuthImport } from \"../authentication/hook.js\";\nimport { RouteGuard as RouteGuardImport } from \"../core/RouteGuard.js\";\nimport { RouterError as RouterErrorImport } from \"../errors/RouterError.js\";\nimport { ServerError as ServerErrorImport } from \"../errors/ServerError.js\";\nimport { Button as ButtonImport } from \"../ui/Button.js\";\nimport { Callout as CalloutImport } from \"../ui/Callout.js\";\nimport {\n Bootstrap as BootstrapImport,\n BootstrapStatic as BootstrapStaticImport,\n} from \"./Bootstrap.js\";\nimport { BuildCheck as BuildCheckImport } from \"./BuildCheck.js\";\nimport {\n CACHE_KEYS as CACHE_KEYS_IMPORT,\n useCache as useCacheImport,\n} from \"./cache.js\";\nimport { ClientOnly as ClientOnlyImport } from \"./ClientOnly.js\";\nimport { useZudoku as useZudokuImport } from \"./context/ZudokuContext.js\";\nimport { Layout as LayoutImport } from \"./Layout.js\";\nimport { Markdown as MarkdownImport } from \"./Markdown.js\";\nimport { Spinner as SpinnerImport } from \"./Spinner.js\";\nimport { StatusPage as StatusPageImport } from \"./StatusPage.js\";\nimport { Zudoku as ZudokuImport } from \"./Zudoku.js\";\n\nexport const Layout = /*@__PURE__*/ LayoutImport;\nexport const RouterError = /*@__PURE__*/ RouterErrorImport;\nexport const ServerError = /*@__PURE__*/ ServerErrorImport;\nexport const Bootstrap = /*@__PURE__*/ BootstrapImport;\nexport const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;\nexport const RouteGuard = /*@__PURE__*/ RouteGuardImport;\nexport const Head = /*@__PURE__*/ Helmet;\nexport const StatusPage = /*@__PURE__*/ StatusPageImport;\nexport const Callout = /*@__PURE__*/ CalloutImport;\nexport const Markdown = /*@__PURE__*/ MarkdownImport;\nexport const Spinner = /*@__PURE__*/ SpinnerImport;\nexport const ClientOnly = /*@__PURE__*/ ClientOnlyImport;\nexport const Button = /*@__PURE__*/ ButtonImport;\nexport const Link = /*@__PURE__*/ LinkImport;\nexport const BuildCheck = /*@__PURE__*/ BuildCheckImport;\nexport const Zudoku = /*@__PURE__*/ ZudokuImport;\n\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useZudoku = /*@__PURE__*/ useZudokuImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useAuth = /*@__PURE__*/ useAuthImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useCache = /*@__PURE__*/ useCacheImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const CACHE_KEYS = /*@__PURE__*/ CACHE_KEYS_IMPORT;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useTheme = /*@__PURE__*/ useThemeImport;\n"],"names":["QueryCache","Subscribable","config","#queries","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","Query","queryInMap","notifyManager","filters","defaultedFilters","matchQuery","queries","event","listener","MutationCache","#mutations","#scopes","#mutationId","mutation","Mutation","scope","scopeFor","scopedMutations","index","firstPendingMutation","m","matchMutation","pausedMutations","x","noop","infiniteQueryBehavior","pages","context","direction","oldPages","oldPageParams","result","currentPage","fetchFn","cancelled","addSignalProperty","object","queryFn","ensureQueryFn","fetchPage","data","param","previous","queryFnContext","page","maxPages","addTo","addToStart","addToEnd","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","QueryClient","#queryCache","#mutationCache","#defaultOptions","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","focusManager","focused","onlineManager","online","defaultedOptions","cachedData","resolveStaleTime","updater","prevData","functionalUpdate","queryCache","cancelOptions","defaultedCancelOptions","promises","fetchOptions","promise","hashKey","defaults","queryDefault","partialMatchKey","mutationKey","skipToken","defaultTransformerFn","hydrate","dehydratedState","mutationCache","deserializeData","mutations","mutationOptions","meta","_ignored","serializedState","initialPromise","hasProperty","obj","key","HydrationBoundary","children","queryClient","useQueryClient","hydrationQueue","setHydrationQueue","React","optionsRef","newQueries","existingQueries","dehydratedQuery","existingQuery","hydrationIsNewer","queryAlreadyQueued","prev","ServerError","error","jsx","ErrorAlert","RouterProvider2","props","RouterProvider","ReactDOM","StaggeredRenderContext","createContext","Bootstrap","router","StrictMode","QueryClientProvider","BypassProtectedRoutesContext","HelmetProvider","BootstrapStatic","helmetContext","bypassProtection","StaticRouterProvider","util","_","assertIs","_arg","assertNever","_x","items","item","validKeys","k","filtered","e","keys","arr","checker","val","joinValues","array","separator","value","objectUtil","first","second","ZodParsedType","getParsedType","ZodIssueCode","ZodError","issues","sub","subs","actualProto","_mapper","mapper","issue","fieldErrors","processError","curr","i","el","formErrors","errorMap","_ctx","message","overrideErrorMap","defaultErrorMap","getErrorMap","makeIssue","params","path","errorMaps","issueData","fullPath","fullIssue","errorMessage","maps","map","addIssueToContext","ctx","overrideMap","ParseStatus","status","results","arrayValue","s","INVALID","pairs","syncPairs","pair","finalObject","DIRTY","OK","isAborted","isDirty","isValid","isAsync","errorUtil","ParseInputLazyPath","parent","handleResult","processCreateParams","invalid_type_error","required_error","description","iss","ZodType","input","err","maybeAsyncResult","check","getIssueProperties","setError","refinementData","refinement","ZodEffects","ZodFirstPartyTypeKind","def","ZodOptional","ZodNullable","ZodArray","ZodPromise","option","ZodUnion","incoming","ZodIntersection","transform","defaultValueFunc","ZodDefault","ZodBranded","catchValueFunc","ZodCatch","This","target","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","jwtRegex","durationRegex","emailRegex","_emojiRegex","emojiRegex","ipv4Regex","ipv4CidrRegex","ipv6Regex","ipv6CidrRegex","base64Regex","base64urlRegex","dateRegexSource","dateRegex","timeRegexSource","args","secondsRegexSource","secondsQuantifier","timeRegex","datetimeRegex","regex","opts","isValidIP","ip","version","isValidJWT","jwt","alg","header","base64","decoded","isValidCidr","ZodString","tooBig","tooSmall","validation","minLength","maxLength","len","ch","min","max","floatSafeRemainder","step","valDecCount","stepDecCount","decCount","valInt","stepInt","ZodNumber","kind","inclusive","ZodBigInt","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","schema","deepPartialify","ZodObject","newShape","fieldSchema","ZodTuple","shape","shapeKeys","extraKeys","keyValidator","unknownKeys","catchall","defaultError","augmentation","merging","mask","newField","createZodEnum","handleResults","unionErrors","childCtx","dirty","types","mergeValues","a","b","aType","bType","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","handleParsed","parsedLeft","parsedRight","merged","left","right","itemIndex","rest","schemas","ZodMap","keyType","valueType","finalMap","ZodSet","finalizeSet","elements","parsedSet","element","minSize","maxSize","size","ZodLazy","getter","ZodLiteral","values","ZodEnum","expectedValues","enumValues","newDef","opt","ZodNativeEnum","nativeEnumValues","promisified","effect","checkCtx","arg","processed","executeRefinement","acc","inner","base","preprocess","type","newCtx","ZodNaN","inResult","freeze","stringType","objectType","enumType","BuildStatusSchema","z.object","z.string","z.enum","BuildCheck","buildId","endpoint","buildStatusQuery","useQuery","res","isCompleted","jsxs","CircleFadingArrowUpIcon","LoaderCircleIcon","Button","useScrollToTop","location","useLocation","previousPath","useRef","useEffect","isNewPage","hasAnchor","SocialIcon","icon","isExternalUrl","href","Footer","useZudoku","footer","cn","Slot","column","link","className","ExternalLinkIcon","AnchorLink","Fragment","social","Skeleton","COLOR_MAP","Banner","isBannerOpen","setIsBannerOpen","useState","mappedColor","style","CircleXIcon","ZudokuLogo","PoweredByZudoku","ChevronRightIcon","detectOS","userAgent","Search","isOpen","setIsOpen","onClose","useCallback","onKeyDown","searchPlugin","isSearchPlugin","SearchIcon","ClientOnly","KbdShortcut","Suspense","os","ThemeSwitch","resolvedTheme","setTheme","useTheme","SunIcon","MoonIcon","PageProgress","isNavigating","useNavigation","isAnimating","setIsAnimating","timer","isFinished","progress","useNProgress","TopNavigation","topNavigation","isAuthenticated","useAuth","filteredItems","isHiddenItem","TopNavItem","id","label","defaultLink","sidebars","currentSidebar","currentNav","useCurrentNavigation","isActive","traverseSidebar","joinUrl","NavLink","isPending","cx","MobileTopNavigation","drawerOpen","setDrawerOpen","Drawer","open","DrawerTrigger","MenuIcon","DrawerContent","VisuallyHidden","DrawerTitle","RecursiveMenu","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuPortal","DropdownMenuSubContent","Link","DropdownMenuItem","Header","memo","auth","profile","isAuthEnabled","plugins","accountItems","isProfileMenuPlugin","logoLightSrc","logoDarkSrc","borderBottom","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","shouldScaleBackground","DrawerPrimitive","DrawerPortal","DrawerOverlay","ref","hideBar","DrawerDescription","SidebarWrapper","navRef","active","scrollIntoViewIfNeeded","Sidebar","onRequestClose","sidebar","SidebarItem","Main","isDrawerOpen","hasSidebar","PanelLeftIcon","LoadingFallback","Spinner","Layout","authentication","useScrollToAnchor","Helmet","Outlet","ErrorPage","title","category","ProseClasses","CategoryHeading","Heading","getDefaultContent","statusCode","StatusPage","defaultContent","ErrorBoundaryContext","initialState","ErrorBoundary","Component","_this$props$onReset","_this$props","_len","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","fallback","childToRender","createElement","createNanoEvents","callbacks","length","cb","ZudokuContext","protectedRoutes","plugin","isNavigationPlugin","isAuthenticationPlugin","isEventConsumerPlugin","objectEntries","handler","useAuthState","needsInitialization","isApiIdentityPlugin","callback","joinPath","nav","request","TopLevelError","resetErrorBoundary","root","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","RouterEventsEmitter","zudoku","previousLocation","ZudokuProvider","useSuspenseQuery","NO_DEHYDRATE","ZudokuReactContext","zudokuContext","ZudokoInner","components","useMemo","mdxComponents","isMdxProviderPlugin","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","navigation","heads","hasHead","entry","SlotProvider","MDXProvider","ThemeProvider","ViewportAnchorProvider","Zudoku","LayoutImport","RouterError","RouterErrorImport","ServerErrorImport","BootstrapImport","BootstrapStaticImport","RouteGuard","RouteGuardImport","Head","StatusPageImport","Callout","CalloutImport","Markdown","MarkdownImport","SpinnerImport","ClientOnlyImport","ButtonImport","LinkImport","BuildCheckImport","ZudokuImport","useMDXComponents","useMDXComponentsImport","useZudokuImport","useAuthImport","useCache","useCacheImport","CACHE_KEYS","CACHE_KEYS_IMPORT","useThemeImport"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,7,10,11,12,13,14,15,16,37,38]}
|