From 30bb37c7b99695bff2ccec7ee154392debf70246 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Thu, 10 Jul 2025 09:47:11 +0800 Subject: [PATCH] feat: referral (#3761) Co-authored-by: DIYgod Co-authored-by: Innei --- .../src/hooks/biz/useEntryActions.tsx | 4 +- .../renderer/src/hooks/biz/useFollow.tsx | 2 +- apps/desktop/layer/renderer/src/lib/auth.ts | 1 + .../src/modules/auth/LoginModalContent.tsx | 5 + .../src/modules/auth/ReferralForm.tsx | 102 + .../src/modules/command/commands/entry.tsx | 4 +- .../modules/discover/DiscoverInboxList.tsx | 2 +- .../src/modules/settings/tabs/plan.tsx | 508 + .../src/modules/settings/tabs/referral.tsx | 139 + .../renderer/src/modules/settings/title.tsx | 8 +- .../renderer/src/modules/settings/utils.ts | 1 + .../src/modules/user/ProfileButton.tsx | 31 +- .../renderer/src/modules/user/UserAvatar.tsx | 20 +- .../src/modules/user/UserProBadge.tsx | 34 + .../(layer)/(subview)/discover/index.tsx | 2 +- .../pages/settings/(settings)/invitations.tsx | 7 +- .../src/pages/settings/(settings)/list.tsx | 5 +- .../settings/(settings)/notifications.tsx | 5 +- .../src/pages/settings/(settings)/plan.tsx | 23 + .../pages/settings/(settings)/referral.tsx | 23 + .../renderer/src/providers/user-provider.tsx | 53 +- .../layer/renderer/src/queries/referral.ts | 21 + .../renderer/src/queries/server-configs.ts | 13 +- .../ios/Folo - Follow everything.storekit | 95 + .../mobile/ios/Folo.xcodeproj/project.pbxproj | 6 + .../xcshareddata/xcschemes/Folo.xcscheme | 3 + apps/mobile/package.json | 1 + .../src/components/ui/avatar/UserAvatar.tsx | 40 +- apps/mobile/src/icons/check_cute_re.tsx | 24 + apps/mobile/src/icons/paste_cute_re.tsx | 24 + apps/mobile/src/lib/auth.ts | 10 + apps/mobile/src/modules/login/email.tsx | 10 + apps/mobile/src/modules/login/index.tsx | 100 +- apps/mobile/src/modules/login/referral.tsx | 32 + apps/mobile/src/modules/login/social.tsx | 17 +- .../src/modules/settings/SettingsList.tsx | 30 +- .../src/modules/settings/UserHeaderBanner.tsx | 45 +- .../src/modules/settings/routes/Plan.tsx | 307 + .../src/modules/settings/routes/Referral.tsx | 177 + .../src/screens/(stack)/(tabs)/settings.tsx | 6 +- apps/ssr/client/atoms/server-configs.ts | 7 + apps/ssr/client/components/ui/user-avatar.tsx | 5 +- apps/ssr/client/modules/referral/index.tsx | 101 + apps/ssr/client/pages/(login)/register.tsx | 4 + apps/ssr/client/providers/root-providers.tsx | 2 + .../providers/server-configs-provider.tsx | 23 + icons/mgc/check_cute_re.svg | 1 + locales/app/en.json | 4 + locales/errors/en.json | 3 +- locales/external/en.json | 4 + locales/settings/en.json | 12 + packages/internal/components/package.json | 1 + .../components/src/ui/button/index.tsx | 4 +- .../components/src/ui/progress/index.tsx | 28 + packages/internal/constants/src/enums.ts | 24 +- packages/internal/models/src/types.ts | 1 + packages/internal/shared/package.json | 2 + packages/internal/shared/src/auth.ts | 20 +- packages/internal/shared/src/hono.ts | 46151 +++++++++------- packages/internal/store/src/user/hooks.ts | 4 + packages/internal/store/src/user/store.ts | 10 +- pnpm-lock.yaml | 71 + 62 files changed, 27487 insertions(+), 20935 deletions(-) create mode 100644 apps/desktop/layer/renderer/src/modules/auth/ReferralForm.tsx create mode 100644 apps/desktop/layer/renderer/src/modules/settings/tabs/plan.tsx create mode 100644 apps/desktop/layer/renderer/src/modules/settings/tabs/referral.tsx create mode 100644 apps/desktop/layer/renderer/src/modules/user/UserProBadge.tsx create mode 100644 apps/desktop/layer/renderer/src/pages/settings/(settings)/plan.tsx create mode 100644 apps/desktop/layer/renderer/src/pages/settings/(settings)/referral.tsx create mode 100644 apps/desktop/layer/renderer/src/queries/referral.ts create mode 100644 apps/mobile/ios/Folo - Follow everything.storekit create mode 100644 apps/mobile/src/icons/check_cute_re.tsx create mode 100644 apps/mobile/src/icons/paste_cute_re.tsx create mode 100644 apps/mobile/src/modules/login/referral.tsx create mode 100644 apps/mobile/src/modules/settings/routes/Plan.tsx create mode 100644 apps/mobile/src/modules/settings/routes/Referral.tsx create mode 100644 apps/ssr/client/atoms/server-configs.ts create mode 100644 apps/ssr/client/modules/referral/index.tsx create mode 100644 apps/ssr/client/providers/server-configs-provider.tsx create mode 100644 icons/mgc/check_cute_re.svg create mode 100644 packages/internal/components/src/ui/progress/index.tsx diff --git a/apps/desktop/layer/renderer/src/hooks/biz/useEntryActions.tsx b/apps/desktop/layer/renderer/src/hooks/biz/useEntryActions.tsx index 4dc56b6b6..a705e5f9d 100644 --- a/apps/desktop/layer/renderer/src/hooks/biz/useEntryActions.tsx +++ b/apps/desktop/layer/renderer/src/hooks/biz/useEntryActions.tsx @@ -287,7 +287,7 @@ export const useEntryActions = ({ view, ), active: isShowAISummaryOnce, - disabled: userRole === UserRole.Trial, + disabled: userRole === UserRole.Free || userRole === UserRole.Trial, entryId, }), new EntryActionMenuItem({ @@ -299,7 +299,7 @@ export const useEntryActions = ({ view, ), active: isShowAITranslationOnce, - disabled: userRole === UserRole.Trial, + disabled: userRole === UserRole.Free || userRole === UserRole.Trial, entryId, }), new EntryActionMenuItem({ diff --git a/apps/desktop/layer/renderer/src/hooks/biz/useFollow.tsx b/apps/desktop/layer/renderer/src/hooks/biz/useFollow.tsx index ad4178cad..f560a7bba 100644 --- a/apps/desktop/layer/renderer/src/hooks/biz/useFollow.tsx +++ b/apps/desktop/layer/renderer/src/hooks/biz/useFollow.tsx @@ -28,7 +28,7 @@ const useCanFollowMoreInboxAndNotify = () => { const serverConfigs = useServerConfigs() return useEventCallback((type: "list" | "feed") => { - if (role === UserRole.Trial) { + if (role === UserRole.Free || role === UserRole.Trial) { const LIMIT = (type !== "list" ? serverConfigs?.MAX_TRIAL_USER_FEED_SUBSCRIPTION diff --git a/apps/desktop/layer/renderer/src/lib/auth.ts b/apps/desktop/layer/renderer/src/lib/auth.ts index ac6fc6b4f..09e308de8 100644 --- a/apps/desktop/layer/renderer/src/lib/auth.ts +++ b/apps/desktop/layer/renderer/src/lib/auth.ts @@ -32,6 +32,7 @@ export const { signIn, signOut, signUp, + subscription, twoFactor, unlinkAccount, updateUser, diff --git a/apps/desktop/layer/renderer/src/modules/auth/LoginModalContent.tsx b/apps/desktop/layer/renderer/src/modules/auth/LoginModalContent.tsx index 76c489d2e..04f93cb0f 100644 --- a/apps/desktop/layer/renderer/src/modules/auth/LoginModalContent.tsx +++ b/apps/desktop/layer/renderer/src/modules/auth/LoginModalContent.tsx @@ -12,12 +12,14 @@ import { m } from "motion/react" import { useState } from "react" import { Trans, useTranslation } from "react-i18next" +import { useServerConfigs } from "~/atoms/server-configs" import { useCurrentModal, useModalStack } from "~/components/ui/modal/stacked/hooks" import { loginHandler } from "~/lib/auth" import { useAuthProviders } from "~/queries/users" import { LoginWithPassword, RegisterForm } from "./Form" import { LegalModalContent } from "./LegalModal" +import { ReferralForm } from "./ReferralForm" import { TokenModalContent } from "./TokenModal" interface LoginModalContentProps { @@ -26,6 +28,8 @@ interface LoginModalContentProps { } export const LoginModalContent = (props: LoginModalContentProps) => { + const serverConfigs = useServerConfigs() + const modal = useCurrentModal() const { present } = useModalStack() @@ -149,6 +153,7 @@ export const LoginModalContent = (props: LoginModalContentProps) => { )} + {isRegister && serverConfigs?.REFERRAL_ENABLED && } {!isEmail && ( <> diff --git a/apps/desktop/layer/renderer/src/modules/auth/ReferralForm.tsx b/apps/desktop/layer/renderer/src/modules/auth/ReferralForm.tsx new file mode 100644 index 000000000..4d5f78cb1 --- /dev/null +++ b/apps/desktop/layer/renderer/src/modules/auth/ReferralForm.tsx @@ -0,0 +1,102 @@ +// sync this file with apps/ssr/client/modules/referral/index.tsx +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from "@follow/components/ui/form/index.jsx" +import { Input } from "@follow/components/ui/input/Input.jsx" +import { getStorageNS } from "@follow/utils/ns" +import { cn } from "@follow/utils/utils" +import { zodResolver } from "@hookform/resolvers/zod" +import { useQuery } from "@tanstack/react-query" +import { useEffect } from "react" +import { useForm } from "react-hook-form" +import { useTranslation } from "react-i18next" +import { z } from "zod" + +import { apiClient } from "~/lib/api-fetch" + +const formSchema = z.object({ + referral: z.string().optional(), +}) + +function getDefaultReferralCode() { + const urlParams = new URLSearchParams(window.location.search) + const referralCodeFromUrl = urlParams.get("referral") + + if (referralCodeFromUrl) { + localStorage.setItem(getStorageNS("referral-code"), referralCodeFromUrl) + } + + const referralCodeFromLocalStorage = localStorage.getItem(getStorageNS("referral-code")) + return referralCodeFromUrl || referralCodeFromLocalStorage || "" +} + +async function getReferralCycleDays(code: string) { + return apiClient.referrals.days.$get({ query: { code } }) +} + +export function ReferralForm({ className }: { className?: string }) { + const { t } = useTranslation() + const form = useForm>({ + resolver: zodResolver(formSchema), + defaultValues: { + referral: getDefaultReferralCode(), + }, + }) + + const { watch } = form + useEffect(() => { + const sub = watch((value) => { + const referralCode = value.referral + if (referralCode) { + localStorage.setItem(getStorageNS("referral-code"), referralCode) + } + }) + return () => sub.unsubscribe() + }, [watch]) + + const referral = watch("referral") + + const { data } = useQuery({ + queryKey: ["referral", "days", referral], + queryFn: () => getReferralCycleDays(referral || ""), + enabled: !!referral, + refetchOnWindowFocus: false, + refetchOnReconnect: false, + }) + const days = data?.data.referralCycleDays || 0 + + return ( +
+ + ( + + {t("register.referral.label")} + + + + + {days || !referral + ? days + ? t("register.referral.days", { + days, + }) + : t("register.referral.description") + : t("register.referral.invalid")} + + + + )} + /> + + + ) +} diff --git a/apps/desktop/layer/renderer/src/modules/command/commands/entry.tsx b/apps/desktop/layer/renderer/src/modules/command/commands/entry.tsx index b1352cc4f..505edd291 100644 --- a/apps/desktop/layer/renderer/src/modules/command/commands/entry.tsx +++ b/apps/desktop/layer/renderer/src/modules/command/commands/entry.tsx @@ -418,7 +418,7 @@ export const useRegisterEntryCommands = () => { icon: , category, run: () => { - if (role === UserRole.Trial) { + if (role === UserRole.Free || role === UserRole.Trial) { presentActivationModal() return } @@ -431,7 +431,7 @@ export const useRegisterEntryCommands = () => { icon: , category, run: () => { - if (role === UserRole.Trial) { + if (role === UserRole.Free || role === UserRole.Trial) { presentActivationModal() return } diff --git a/apps/desktop/layer/renderer/src/modules/discover/DiscoverInboxList.tsx b/apps/desktop/layer/renderer/src/modules/discover/DiscoverInboxList.tsx index 109da6fce..ee28724c9 100644 --- a/apps/desktop/layer/renderer/src/modules/discover/DiscoverInboxList.tsx +++ b/apps/desktop/layer/renderer/src/modules/discover/DiscoverInboxList.tsx @@ -17,7 +17,7 @@ const useCanCreateMoreInboxAndNotify = () => { const presentActivationModal = useActivationModal() return useEventCallback(() => { - if (role === UserRole.Trial) { + if (role === UserRole.Free || role === UserRole.Trial) { const can = false if (!can) { presentActivationModal() diff --git a/apps/desktop/layer/renderer/src/modules/settings/tabs/plan.tsx b/apps/desktop/layer/renderer/src/modules/settings/tabs/plan.tsx new file mode 100644 index 000000000..92dfaf54e --- /dev/null +++ b/apps/desktop/layer/renderer/src/modules/settings/tabs/plan.tsx @@ -0,0 +1,508 @@ +import { Button } from "@follow/components/ui/button/index.js" +import { Divider } from "@follow/components/ui/divider/Divider.js" +import { UserRole, UserRoleName } from "@follow/constants" +import { IN_ELECTRON } from "@follow/shared" +import { env } from "@follow/shared/env.desktop" +import { useRoleEndAt, useUserRole } from "@follow/store/user/hooks" +import { cn } from "@follow/utils/utils" +import dayjs from "dayjs" +import { Trans } from "react-i18next" + +import { useServerConfigs } from "~/atoms/server-configs" +import { subscription } from "~/lib/auth" +import { useReferralInfo } from "~/queries/referral" + +import { useSetSettingTab } from "../modal/context" + +// Plan configuration types +interface Plan { + id: string + title: string + price: string + period: string + features: string[] + isPopular?: boolean + role: UserRole + isComingSoon?: boolean + tier: number // Add tier for hierarchy comparison +} + +// Plan hierarchy: Free (1) < Pro Preview (2) < Pro (3) +const PLAN_TIER_MAP: Record = { + [UserRole.Admin]: 4, // Admin has highest tier + [UserRole.Free]: 1, + [UserRole.Trial]: 1, // Same as Free (deprecated) + [UserRole.PreProTrial]: 2, // Same tier as PrePro + [UserRole.PrePro]: 2, + [UserRole.Pro]: 3, +} + +// Plan configurations +const PLAN_CONFIGS: Plan[] = [ + { + id: "free", + title: UserRoleName[UserRole.Free], + price: "$0", + period: "", + features: ["50 feeds", "10 lists"], + isPopular: false, + role: UserRole.Free, + tier: PLAN_TIER_MAP[UserRole.Free], + }, + { + id: "pro-preview", + title: UserRoleName[UserRole.PrePro], + price: "$1 or 3 invitations", + period: "", + features: ["1000 feeds and lists", "10 inboxes", "10 actions", "100 webhooks"], + isPopular: false, + role: UserRole.PrePro, + tier: PLAN_TIER_MAP[UserRole.PrePro], + }, + { + id: "pro", + title: UserRoleName[UserRole.Pro], + price: "Coming soon", + period: "", + features: [`Everything in ${UserRoleName[UserRole.PrePro]}`, "Advanced AI features"], + isPopular: false, + role: UserRole.Pro, + isComingSoon: true, + tier: PLAN_TIER_MAP[UserRole.Pro], + }, +] + +export function SettingPlan() { + const serverConfigs = useServerConfigs() + const requiredInvitationsAmount = serverConfigs?.REFERRAL_REQUIRED_INVITATIONS || 3 + const skipPrice = serverConfigs?.REFERRAL_PRO_PREVIEW_STRIPE_PRICE_IN_DOLLAR || 1 + const ruleLink = serverConfigs?.REFERRAL_RULE_LINK + const { data: referralInfo } = useReferralInfo() + const validInvitationsAmount = referralInfo?.invitations.filter((i) => i.usedAt).length || 0 + const role = useUserRole() + const roleEndDate = useRoleEndAt() + const daysLeft = roleEndDate + ? Math.ceil((roleEndDate.getTime() - Date.now()) / (1000 * 60 * 60 * 24)) + : null + + return ( +
+ {/* Description Section */} +
+

+ + ), + }} + /> +

+
+ + {/* Plans Grid */} +
+
+ {PLAN_CONFIGS.map((plan) => ( + + ))} +
+
+ + + {/* Current Status Card */} + { + const res = await subscription.upgrade({ + plan: "folo pro preview", + successUrl: env.VITE_WEB_URL, + cancelUrl: env.VITE_WEB_URL, + disableRedirect: IN_ELECTRON, + }) + if (IN_ELECTRON && res.data?.url) { + window.open(res.data.url, "_blank") + } + }} + /> +
+ ) +} + +// Reusable StatusCard Component +interface StatusCardProps { + role: UserRole + roleEndDate: Date | null + daysLeft: number | null + validInvitationsAmount: number + requiredInvitationsAmount: number + skipPrice: number + onUpgrade: () => void +} + +const StatusCard = ({ + role, + roleEndDate, + daysLeft, + validInvitationsAmount, + requiredInvitationsAmount, + skipPrice, + onUpgrade, +}: StatusCardProps) => { + const getStatusInfo = () => { + if (role === UserRole.PrePro) { + return { + title: "You have an active Pro Preview plan", + icon: "i-mgc-check-cute-fi", + iconBg: "bg-green", + } + } + if (role === UserRole.PreProTrial) { + return { + title: `Pro Preview trial expires ${dayjs(roleEndDate).format("MMMM D, YYYY")} (${daysLeft} days left)`, + icon: "i-mgc-time-cute-re", + iconBg: "bg-accent", + } + } + return { + title: "Start your journey with our referral program", + icon: "i-mgc-time-cute-re", + iconBg: "bg-accent", + } + } + + const statusInfo = getStatusInfo() + + return ( +
+
+
+ + + + + {role === UserRole.PreProTrial && ( + + )} +
+
+ ) +} + +// Reusable StatusHeader Component +interface StatusHeaderProps { + title: string + description: string + icon: string + iconBg: string +} + +const StatusHeader = ({ title, description, icon, iconBg }: StatusHeaderProps) => ( +
+
+ +
+
+

{title}

+

{description}

+
+
+) + +// Reusable ReferralProgress Component +interface ReferralProgressProps { + validInvitationsAmount: number + requiredInvitationsAmount: number +} + +const ReferralProgress = ({ + validInvitationsAmount, + requiredInvitationsAmount, +}: ReferralProgressProps) => ( +
+
+ Referral Progress + + {validInvitationsAmount} / {requiredInvitationsAmount} + +
+ +
+
+
+
+ {validInvitationsAmount >= requiredInvitationsAmount && } +
+
+) + +// Reusable CompletionBadge Component +const CompletionBadge = () => ( +
+ +
+) + +// Reusable UpgradeSection Component +interface UpgradeSectionProps { + skipPrice: number + onUpgrade: () => void +} + +const UpgradeSection = ({ skipPrice, onUpgrade }: UpgradeSectionProps) => { + const setTab = useSetSettingTab() + + return ( +
+
+ + or + +
+
+ ) +} + +// Reusable PlanCard Component +interface PlanCardProps { + plan: Plan + currentUserRole: UserRole | null + isCurrentPlan: boolean + daysLeft: number | null +} + +const PlanCard = ({ plan, currentUserRole, isCurrentPlan, daysLeft }: PlanCardProps) => { + const getPlanActionType = (): "current" | "upgrade" | "coming-soon" | "in-trial" | null => { + if (plan.isComingSoon) return "coming-soon" + + if (!currentUserRole) { + return plan.tier > PLAN_TIER_MAP[UserRole.Free] ? "upgrade" : "current" + } + + const currentTier = PLAN_TIER_MAP[currentUserRole] + const targetTier = plan.tier + + if (currentTier === targetTier) { + if (currentUserRole === UserRole.PreProTrial) { + return "in-trial" + } else { + return "current" + } + } + if (targetTier > currentTier) return "upgrade" + return null + } + + const actionType = getPlanActionType() + + return ( +
+ + +
+
+ + +
+
+ + { + if ( + !plan.isComingSoon && + !isCurrentPlan && // Handle plan selection logic + plan.role === UserRole.PrePro + ) { + // Trigger upgrade to Pro Preview + const res = await subscription.upgrade({ + plan: "folo pro preview", + successUrl: env.VITE_WEB_URL, + cancelUrl: env.VITE_WEB_URL, + disableRedirect: IN_ELECTRON, + }) + if (IN_ELECTRON && res.data?.url) { + window.open(res.data.url, "_blank") + } + } + // Add other plan selection logic as needed + }} + /> +
+ + {/* Subtle gradient line at bottom */} +
+
+ ) +} + +// Plan card sub-components +const PlanBadges = ({ isPopular }: { isPopular: boolean }) => ( + <> + {isPopular && ( +
+
+ Most Popular +
+
+ )} + +) + +const PlanHeader = ({ title, price, period }: { title: string; price: string; period: string }) => ( +
+

{title}

+
+ {price} + {period && /{period}} +
+
+) + +const PlanFeatures = ({ features }: { features: string[] }) => ( +
+ {features.map((feature, index) => ( +
+
+ +
+ {feature} +
+ ))} +
+) + +const PlanAction = ({ + isPopular, + actionType, + onSelect, + daysLeft, +}: { + isPopular: boolean + actionType: "current" | "upgrade" | "coming-soon" | "in-trial" | null + onSelect?: () => void + daysLeft: number | null +}) => { + const getButtonConfig = () => { + switch (actionType) { + case "coming-soon": { + return { + text: "Coming Soon", + variant: "outline" as const, + className: "w-full h-9 @md:h-10 text-xs @md:text-sm", + disabled: true, + } + } + case "current": { + return { + text: "Current Plan", + variant: "outline" as const, + className: "w-full h-9 @md:h-10 text-xs @md:text-sm text-text-secondary", + disabled: true, + } + } + case "in-trial": { + return { + text: `In Trial (${daysLeft} days left)`, + variant: "outline" as const, + className: "w-full h-9 @md:h-10 text-xs @md:text-sm", + disabled: false, + } + } + case "upgrade": { + return { + text: "Upgrade", + variant: isPopular ? undefined : ("outline" as const), + className: isPopular + ? "w-full h-9 @md:h-10 text-xs @md:text-sm bg-gradient-to-r from-accent to-accent/80 hover:from-accent/90 hover:to-accent/70" + : "w-full h-9 @md:h-10 text-xs @md:text-sm", + disabled: false, + } + } + case null: { + return null + } + } + } + + const buttonConfig = getButtonConfig() + + if (!buttonConfig) { + return null + } + + return ( +
+ +
+ ) +} diff --git a/apps/desktop/layer/renderer/src/modules/settings/tabs/referral.tsx b/apps/desktop/layer/renderer/src/modules/settings/tabs/referral.tsx new file mode 100644 index 000000000..274ded20f --- /dev/null +++ b/apps/desktop/layer/renderer/src/modules/settings/tabs/referral.tsx @@ -0,0 +1,139 @@ +import { Card } from "@follow/components/ui/card/index.js" +import { Divider } from "@follow/components/ui/divider/Divider.js" +import { Progress } from "@follow/components/ui/progress/index.js" +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@follow/components/ui/table/index.jsx" +import { + Tooltip, + TooltipContent, + TooltipPortal, + TooltipTrigger, +} from "@follow/components/ui/tooltip/index.js" +import { UserRole, UserRoleName } from "@follow/constants" +import { env } from "@follow/shared/env.desktop" +import { useUserRole, useWhoami } from "@follow/store/user/hooks" +import dayjs from "dayjs" +import { Trans, useTranslation } from "react-i18next" + +import { useServerConfigs } from "~/atoms/server-configs" +import { CopyButton } from "~/components/ui/button/CopyButton" +import { usePresentUserProfileModal } from "~/modules/profile/hooks" +import { UserAvatar } from "~/modules/user/UserAvatar" +import { useReferralInfo } from "~/queries/referral" + +export function SettingReferral() { + const { t } = useTranslation("settings") + const serverConfigs = useServerConfigs() + const requiredInvitationsAmount = serverConfigs?.REFERRAL_REQUIRED_INVITATIONS || 3 + const ruleLink = serverConfigs?.REFERRAL_RULE_LINK + const { data: referralInfo } = useReferralInfo() + const validInvitationsAmount = referralInfo?.invitations.filter((i) => i.usedAt).length || 0 + const user = useWhoami() + const role = useUserRole() + const referralLink = `${env.VITE_WEB_URL}/register?referral=${user?.handle || user?.id}` + const presentUserProfile = usePresentUserProfileModal("drawer") + return ( +
+
+

+ , + }} + /> +

+
+ +

{t("referral.link")}

+ + {referralLink} + + + {role !== UserRole.PrePro && ( +
+

+ Referral Progress for the Free {UserRoleName[UserRole.PrePro]}: +

+
+ + + {validInvitationsAmount} / {requiredInvitationsAmount} + +
+
+ )} + {!!referralInfo?.invitations.length && ( + <> + +

Your Invited Friends

+ + + + Friend (Email/ID) + Joined On + Status + + + + {referralInfo?.invitations?.map((row) => ( + + + + + + + {row.user?.name && ( + + {row.user?.name} + + )} + + + {dayjs(row.createdAt).format("MMMM D, YYYY")} + + {row.usedAt ? ( + t("referral.invited_friend_status.valid") + ) : ( + + + {t("referral.invited_friend_status.pending")} + + + Active status are refreshed daily + + + )} + + + ))} + +
+ + )} +
+ ) +} diff --git a/apps/desktop/layer/renderer/src/modules/settings/title.tsx b/apps/desktop/layer/renderer/src/modules/settings/title.tsx index 90a167ebe..3db9a11f6 100644 --- a/apps/desktop/layer/renderer/src/modules/settings/title.tsx +++ b/apps/desktop/layer/renderer/src/modules/settings/title.tsx @@ -39,13 +39,15 @@ export const SettingsTitle = ({ const { t } = useTranslation("settings") const { icon: iconName, - name: title, + name, + title, headerIcon, } = (useLoaderData() || loader || {}) as SettingPageConfig const usedIcon = headerIcon || iconName + const usedTitle = title || name const isInSettingIndependentWindow = use(IsInSettingIndependentWindowContext) - if (!title) { + if (!usedTitle) { return null } return ( @@ -58,7 +60,7 @@ export const SettingsTitle = ({ )} > {typeof usedIcon === "string" ? : usedIcon} - {t(title as any)} + {t(usedTitle)}
) } diff --git a/apps/desktop/layer/renderer/src/modules/settings/utils.ts b/apps/desktop/layer/renderer/src/modules/settings/utils.ts index 2aafb53e4..e3ae649fe 100644 --- a/apps/desktop/layer/renderer/src/modules/settings/utils.ts +++ b/apps/desktop/layer/renderer/src/modules/settings/utils.ts @@ -14,6 +14,7 @@ export enum DisableWhy { export interface SettingPageConfig { icon: string | React.ReactNode name: I18nKeysForSettings + title?: I18nKeysForSettings priority: number headerIcon?: string | React.ReactNode hideIf?: (ctx: SettingPageContext, serverConfigs?: ServerConfigs | null) => boolean diff --git a/apps/desktop/layer/renderer/src/modules/user/ProfileButton.tsx b/apps/desktop/layer/renderer/src/modules/user/ProfileButton.tsx index 8c07fd2ab..18ea738df 100644 --- a/apps/desktop/layer/renderer/src/modules/user/ProfileButton.tsx +++ b/apps/desktop/layer/renderer/src/modules/user/ProfileButton.tsx @@ -13,7 +13,7 @@ import { useTranslation } from "react-i18next" import { useNavigate } from "react-router" import rsshubLogoUrl from "~/assets/rsshub-icon.png?url" -import { useIsInMASReview } from "~/atoms/server-configs" +import { useIsInMASReview, useServerConfigs } from "~/atoms/server-configs" import { useIsZenMode, useSetZenMode } from "~/atoms/settings/ui" import { DropdownMenu, @@ -35,6 +35,7 @@ import { useCommandShortcuts } from "../command/hooks/use-command-binding" import type { LoginProps } from "./LoginButton" import { LoginButton } from "./LoginButton" import { UserAvatar } from "./UserAvatar" +import { UserProBadge } from "./UserProBadge" const rsshubLogo = new URL(rsshubLogoUrl, import.meta.url).href @@ -43,6 +44,7 @@ export type ProfileButtonProps = LoginProps & { } export const ProfileButton: FC = memo((props) => { + const serverConfig = useServerConfigs() const { status, session } = useSession() const { user } = session || {} const settingModalPresent = useSettingModal() @@ -89,12 +91,25 @@ export const ProfileButton: FC = memo((props) => { {user?.name} - {!!user?.handle && ( - - - @{user.handle} - - + {serverConfig?.REFERRAL_ENABLED ? ( + { + settingModalPresent("plan") + }} + /> + ) : ( + <> + {!!user?.handle && ( + + + @{user.handle} + + + )} + )}
@@ -114,7 +129,7 @@ export const ProfileButton: FC = memo((props) => { { - if (role !== UserRole.Trial) { + if (role !== UserRole.Trial && role !== UserRole.Free) { presentAchievement() } else { presentActivationModal() diff --git a/apps/desktop/layer/renderer/src/modules/user/UserAvatar.tsx b/apps/desktop/layer/renderer/src/modules/user/UserAvatar.tsx index dc4271b80..9432fc5da 100644 --- a/apps/desktop/layer/renderer/src/modules/user/UserAvatar.tsx +++ b/apps/desktop/layer/renderer/src/modules/user/UserAvatar.tsx @@ -1,14 +1,17 @@ import { Avatar, AvatarFallback, AvatarImage } from "@follow/components/ui/avatar/index.jsx" -import { usePrefetchUser, useUserById, useWhoami } from "@follow/store/user/hooks" +import { UserRole } from "@follow/constants" +import { usePrefetchUser, useUserById, useUserRole, useWhoami } from "@follow/store/user/hooks" import { getColorScheme, stringToHue } from "@follow/utils/color" import { cn } from "@follow/utils/utils" +import { useServerConfigs } from "~/atoms/server-configs" import { replaceImgUrlIfNeed } from "~/lib/img-proxy" import { usePresentUserProfileModal } from "~/modules/profile/hooks" import { useSession } from "~/queries/auth" import type { LoginProps } from "./LoginButton" import { LoginButton } from "./LoginButton" +import { UserProBadge } from "./UserProBadge" export const UserAvatar = ({ ref, @@ -28,10 +31,13 @@ export const UserAvatar = ({ enableModal?: boolean } & LoginProps & React.HTMLAttributes & { ref?: React.Ref }) => { + const serverConfig = useServerConfigs() + const { status } = useSession({ enabled: !userId, }) const whoami = useWhoami() + const role = useUserRole() const presentUserProfile = usePresentUserProfileModal("drawer") usePrefetchUser(userId) @@ -55,7 +61,7 @@ export const UserAvatar = ({ }} {...props} className={cn( - "text-text-secondary flex h-20 items-center justify-center gap-2 px-5 py-2 font-medium", + "text-text-secondary relative flex h-20 items-center justify-center gap-2 px-5 py-2 font-medium", className, )} > @@ -76,6 +82,16 @@ export const UserAvatar = ({ {renderUserData?.name?.[0]} + {serverConfig?.REFERRAL_ENABLED && + !userId && + role !== UserRole.Free && + role !== UserRole.Trial && ( + + )} {!hideName &&
{renderUserData?.name || renderUserData?.handle}
}
) diff --git a/apps/desktop/layer/renderer/src/modules/user/UserProBadge.tsx b/apps/desktop/layer/renderer/src/modules/user/UserProBadge.tsx new file mode 100644 index 000000000..4a3a8684e --- /dev/null +++ b/apps/desktop/layer/renderer/src/modules/user/UserProBadge.tsx @@ -0,0 +1,34 @@ +import { UserRole, UserRoleName } from "@follow/constants" +import { cn } from "@follow/utils" + +export const UserProBadge = ({ + className, + withText, + iconClassName, + role, + onClick, +}: { + className?: string + withText?: boolean + iconClassName?: string + role?: UserRole | null + onClick?: () => void +}) => { + if (!role) { + return null + } + + return ( +
+ + {withText && {UserRoleName[role]}} +
+ ) +} diff --git a/apps/desktop/layer/renderer/src/pages/(main)/(layer)/(subview)/discover/index.tsx b/apps/desktop/layer/renderer/src/pages/(main)/(layer)/(subview)/discover/index.tsx index 2f5c0e03f..4423e2a15 100644 --- a/apps/desktop/layer/renderer/src/pages/(main)/(layer)/(subview)/discover/index.tsx +++ b/apps/desktop/layer/renderer/src/pages/(main)/(layer)/(subview)/discover/index.tsx @@ -67,7 +67,7 @@ export function Component() { const { onUpdateMaxScroll } = useScrollElementUpdate() const currentTabs = tabs.map((tab) => { - const disabled = tab.disableForTrial && role === UserRole.Trial + const disabled = tab.disableForTrial && (role === UserRole.Free || role === UserRole.Trial) return { ...tab, disabled, diff --git a/apps/desktop/layer/renderer/src/pages/settings/(settings)/invitations.tsx b/apps/desktop/layer/renderer/src/pages/settings/(settings)/invitations.tsx index 73abaa3bd..757c57f34 100644 --- a/apps/desktop/layer/renderer/src/pages/settings/(settings)/invitations.tsx +++ b/apps/desktop/layer/renderer/src/pages/settings/(settings)/invitations.tsx @@ -11,8 +11,11 @@ export const loader = defineSettingPageData({ icon: iconName, name: "titles.invitations", priority, - disableIf: (ctx) => [ctx.role === UserRole.Trial, DisableWhy.NotActivation], - hideIf: (ctx, serverConfigs) => ctx.isInMASReview || !serverConfigs?.INVITATION_ENABLED, + disableIf: (ctx) => [ + ctx.role === UserRole.Free || ctx.role === UserRole.Trial, + DisableWhy.NotActivation, + ], + hideIf: (_, serverConfigs) => !serverConfigs?.INVITATION_ENABLED, }) export function Component() { diff --git a/apps/desktop/layer/renderer/src/pages/settings/(settings)/list.tsx b/apps/desktop/layer/renderer/src/pages/settings/(settings)/list.tsx index 77f42a1c3..54c9fee64 100644 --- a/apps/desktop/layer/renderer/src/pages/settings/(settings)/list.tsx +++ b/apps/desktop/layer/renderer/src/pages/settings/(settings)/list.tsx @@ -11,7 +11,10 @@ export const loader = defineSettingPageData({ icon: iconName, name: "titles.lists", priority, - disableIf: (ctx) => [ctx.role === UserRole.Trial, DisableWhy.NotActivation], + disableIf: (ctx) => [ + ctx.role === UserRole.Free || ctx.role === UserRole.Trial, + DisableWhy.NotActivation, + ], hideIf: (ctx) => ctx.isInMASReview, }) diff --git a/apps/desktop/layer/renderer/src/pages/settings/(settings)/notifications.tsx b/apps/desktop/layer/renderer/src/pages/settings/(settings)/notifications.tsx index 5f22f37aa..2cc901417 100644 --- a/apps/desktop/layer/renderer/src/pages/settings/(settings)/notifications.tsx +++ b/apps/desktop/layer/renderer/src/pages/settings/(settings)/notifications.tsx @@ -11,7 +11,10 @@ export const loader = defineSettingPageData({ icon: iconName, name: "titles.notifications", priority, - disableIf: (ctx) => [ctx.role === UserRole.Trial, DisableWhy.NotActivation], + disableIf: (ctx) => [ + ctx.role === UserRole.Free || ctx.role === UserRole.Trial, + DisableWhy.NotActivation, + ], }) export function Component() { diff --git a/apps/desktop/layer/renderer/src/pages/settings/(settings)/plan.tsx b/apps/desktop/layer/renderer/src/pages/settings/(settings)/plan.tsx new file mode 100644 index 000000000..4493c4b13 --- /dev/null +++ b/apps/desktop/layer/renderer/src/pages/settings/(settings)/plan.tsx @@ -0,0 +1,23 @@ +import { SettingPlan } from "~/modules/settings/tabs/plan" +import { SettingsTitle } from "~/modules/settings/title" +import { defineSettingPageData } from "~/modules/settings/utils" + +const iconName = "i-mgc-power-outline" +const priority = (1000 << 2) + 30 + +export const loader = defineSettingPageData({ + icon: iconName, + name: "titles.plan.short", + title: "titles.plan.long", + priority, + hideIf: (ctx, serverConfigs) => ctx.isInMASReview || !serverConfigs?.REFERRAL_ENABLED, +}) + +export function Component() { + return ( + <> + + + + ) +} diff --git a/apps/desktop/layer/renderer/src/pages/settings/(settings)/referral.tsx b/apps/desktop/layer/renderer/src/pages/settings/(settings)/referral.tsx new file mode 100644 index 000000000..99d7e5b2d --- /dev/null +++ b/apps/desktop/layer/renderer/src/pages/settings/(settings)/referral.tsx @@ -0,0 +1,23 @@ +import { SettingReferral } from "~/modules/settings/tabs/referral" +import { SettingsTitle } from "~/modules/settings/title" +import { defineSettingPageData } from "~/modules/settings/utils" + +const iconName = "i-mgc-love-cute-re" +const priority = (1000 << 2) + 40 + +export const loader = defineSettingPageData({ + icon: iconName, + name: "titles.referral.short", + title: "titles.referral.long", + priority, + hideIf: (ctx, serverConfigs) => ctx.isInMASReview || !serverConfigs?.REFERRAL_ENABLED, +}) + +export function Component() { + return ( + <> + + + + ) +} diff --git a/apps/desktop/layer/renderer/src/providers/user-provider.tsx b/apps/desktop/layer/renderer/src/providers/user-provider.tsx index f847b9cba..3f84e3032 100644 --- a/apps/desktop/layer/renderer/src/providers/user-provider.tsx +++ b/apps/desktop/layer/renderer/src/providers/user-provider.tsx @@ -1,16 +1,65 @@ -import { useEffect } from "react" +import { UserRole, UserRoleName } from "@follow/constants" +import { getStorageNS } from "@follow/utils/ns" +import { useEffect, useMemo } from "react" +import { toast } from "sonner" import { setIntegrationIdentify } from "~/initialize/helper" +import { useSettingModal } from "~/modules/settings/modal/useSettingModal" import { useSession } from "~/queries/auth" export const UserProvider = () => { const { session } = useSession() + const settingModalPresent = useSettingModal() + useEffect(() => { if (!session?.user) return // @ts-expect-error FIXME setIntegrationIdentify(session.user) - }, [session?.role, session?.user]) + }, [session?.user]) + + const roleEndDate = useMemo( + () => + session?.roleEndAt + ? typeof session.roleEndAt === "string" + ? new Date(session.roleEndAt) + : session.roleEndAt + : undefined, + [session?.roleEndAt], + ) + useEffect(() => { + if (!session?.role) return + + const itemKey = getStorageNS("pro-preview-toast-dismissed") + + const isToastDismissed = localStorage.getItem(itemKey) + + if (session.role && session.role !== UserRole.PrePro && !isToastDismissed) { + const message = + session.role === UserRole.Free || session.role === UserRole.Trial + ? `You are currently on the ${UserRoleName[UserRole.Free]} plan. Some features may be limited.` + : session.role === UserRole.PreProTrial + ? `You are currently on the ${UserRoleName[UserRole.PreProTrial]} plan.${roleEndDate ? ` It will end on ${roleEndDate.toLocaleDateString()}.` : ""}` + : "" + if (!message) { + localStorage.setItem(itemKey, "true") + return + } + toast.warning(message, { + duration: Number.POSITIVE_INFINITY, + action: { + label: "More", + onClick: () => { + settingModalPresent("referral") + localStorage.setItem(itemKey, "true") + }, + }, + onDismiss: () => { + localStorage.setItem(itemKey, "true") + }, + }) + } + }, [roleEndDate, session?.role, settingModalPresent]) return null } diff --git a/apps/desktop/layer/renderer/src/queries/referral.ts b/apps/desktop/layer/renderer/src/queries/referral.ts new file mode 100644 index 000000000..43f4d0d5b --- /dev/null +++ b/apps/desktop/layer/renderer/src/queries/referral.ts @@ -0,0 +1,21 @@ +import { useAuthQuery } from "~/hooks/common/useBizQuery" +import { apiClient } from "~/lib/api-fetch" +import { defineQuery } from "~/lib/defineQuery" + +export const referral = { + get: () => + defineQuery( + ["referral"], + async () => { + const res = await apiClient.referrals.$get() + return res.data + }, + { + rootKey: ["referral"], + }, + ), +} + +export function useReferralInfo() { + return useAuthQuery(referral.get()) +} diff --git a/apps/desktop/layer/renderer/src/queries/server-configs.ts b/apps/desktop/layer/renderer/src/queries/server-configs.ts index 108341586..272ff62ed 100644 --- a/apps/desktop/layer/renderer/src/queries/server-configs.ts +++ b/apps/desktop/layer/renderer/src/queries/server-configs.ts @@ -1,12 +1,11 @@ -import { useAuthQuery } from "~/hooks/common" -import { apiClient } from "~/lib/api-fetch" -import { defineQuery } from "~/lib/defineQuery" +import { useQuery } from "@tanstack/react-query" -export const serverConfigs = { - get: () => defineQuery(["server-configs"], async () => await apiClient.status.configs.$get()), -} +import { apiClient } from "~/lib/api-fetch" export const useServerConfigsQuery = () => { - const { data } = useAuthQuery(serverConfigs.get()) + const { data } = useQuery({ + queryKey: ["server-configs"], + queryFn: () => apiClient.status.configs.$get(), + }) return data?.data } diff --git a/apps/mobile/ios/Folo - Follow everything.storekit b/apps/mobile/ios/Folo - Follow everything.storekit new file mode 100644 index 000000000..054e58173 --- /dev/null +++ b/apps/mobile/ios/Folo - Follow everything.storekit @@ -0,0 +1,95 @@ +{ + "appPolicies" : { + "eula" : "", + "policies" : [ + { + "locale" : "en_US", + "policyText" : "", + "policyURL" : "" + } + ] + }, + "identifier" : "33F52C22", + "nonRenewingSubscriptions" : [ + + ], + "products" : [ + { + "displayPrice" : "1.0", + "familyShareable" : false, + "internalID" : "6747998552", + "localizations" : [ + { + "description" : "Pro Preview", + "displayName" : "Pro Preview", + "locale" : "en_US" + } + ], + "productID" : "is.follow.propreview", + "referenceName" : "Pro Preview", + "type" : "NonConsumable" + } + ], + "settings" : { + "_applicationInternalID" : "6739802604", + "_developerTeamID" : "492J8Q67PF", + "_failTransactionsEnabled" : false, + "_lastSynchronizedDate" : 773246215.31770396, + "_locale" : "en_US", + "_storefront" : "USA", + "_storeKitErrors" : [ + { + "current" : null, + "enabled" : false, + "name" : "Load Products" + }, + { + "current" : null, + "enabled" : false, + "name" : "Purchase" + }, + { + "current" : null, + "enabled" : false, + "name" : "Verification" + }, + { + "current" : null, + "enabled" : false, + "name" : "App Store Sync" + }, + { + "current" : null, + "enabled" : false, + "name" : "Subscription Status" + }, + { + "current" : null, + "enabled" : false, + "name" : "App Transaction" + }, + { + "current" : null, + "enabled" : false, + "name" : "Manage Subscriptions Sheet" + }, + { + "current" : null, + "enabled" : false, + "name" : "Refund Request Sheet" + }, + { + "current" : null, + "enabled" : false, + "name" : "Offer Code Redeem Sheet" + } + ] + }, + "subscriptionGroups" : [ + + ], + "version" : { + "major" : 4, + "minor" : 0 + } +} diff --git a/apps/mobile/ios/Folo.xcodeproj/project.pbxproj b/apps/mobile/ios/Folo.xcodeproj/project.pbxproj index 8279ae128..9cddeb403 100644 --- a/apps/mobile/ios/Folo.xcodeproj/project.pbxproj +++ b/apps/mobile/ios/Folo.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 21D47042A21541638A8813FF /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 771F66ABFAD64B3D89ABAB8A /* GoogleService-Info.plist */; }; 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; 948BDAD26FE9D66B8735BBD0 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CEF90D1FA529DB2CC2AE941 /* ExpoModulesProvider.swift */; }; + A6C8B6012E13C44000D28090 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6C8B6002E13C44000D28090 /* StoreKit.framework */; }; A6D4133120E003E1031C2B48 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = BB62D7D685AF319E0A030204 /* PrivacyInfo.xcprivacy */; }; BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11748412D0307B40044C1D9 /* AppDelegate.swift */; }; @@ -27,6 +28,8 @@ 5D1548572A564A709411B1D2 /* Pods-Folo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Folo.release.xcconfig"; path = "Target Support Files/Pods-Folo/Pods-Folo.release.xcconfig"; sourceTree = ""; }; 771F66ABFAD64B3D89ABAB8A /* GoogleService-Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Folo/GoogleService-Info.plist"; sourceTree = ""; }; 84F18C4CB344992039541AAC /* Pods-Folo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Folo.debug.xcconfig"; path = "Target Support Files/Pods-Folo/Pods-Folo.debug.xcconfig"; sourceTree = ""; }; + A652EE6C2E16CCFF00371A74 /* Folo - Follow everything.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = "Folo - Follow everything.storekit"; sourceTree = ""; }; + A6C8B6002E13C44000D28090 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = Folo/SplashScreen.storyboard; sourceTree = ""; }; B69598E8ACBE445EA3C3DCEE /* rn-web */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "rn-web"; path = "../../../out/rn-web"; sourceTree = ""; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; @@ -42,6 +45,7 @@ buildActionMask = 2147483647; files = ( 08804409FAE316B2F4286290 /* Pods_Folo.framework in Frameworks */, + A6C8B6012E13C44000D28090 /* StoreKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -74,6 +78,7 @@ 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { isa = PBXGroup; children = ( + A6C8B6002E13C44000D28090 /* StoreKit.framework */, ED297162215061F000B7C4FE /* JavaScriptCore.framework */, 2C9A37CAFE9FFED2FCC141E3 /* Pods_Folo.framework */, ); @@ -115,6 +120,7 @@ 83CBB9F61A601CBA00E9B192 = { isa = PBXGroup; children = ( + A652EE6C2E16CCFF00371A74 /* Folo - Follow everything.storekit */, 13B07FAE1A68108700A75B9A /* Folo */, 832341AE1AAA6A7D00B99B32 /* Libraries */, 83CBBA001A601CBA00E9B192 /* Products */, diff --git a/apps/mobile/ios/Folo.xcodeproj/xcshareddata/xcschemes/Folo.xcscheme b/apps/mobile/ios/Folo.xcodeproj/xcshareddata/xcschemes/Folo.xcscheme index 47bb4350a..5ad1ca70c 100644 --- a/apps/mobile/ios/Folo.xcodeproj/xcshareddata/xcschemes/Folo.xcscheme +++ b/apps/mobile/ios/Folo.xcodeproj/xcshareddata/xcschemes/Folo.xcscheme @@ -60,6 +60,9 @@ ReferencedContainer = "container:Folo.xcodeproj"> + + { const { openLightbox } = useLightboxControls() const aviRef = useAnimatedRef() @@ -58,6 +62,16 @@ export const UserAvatar = ({ })() }, [aviRef, image, openLightbox]) + const avatarBadge = + role && role !== UserRole.Free && role !== UserRole.Trial ? ( + + + + ) : null + if (!image) { return ( )} + {avatarBadge} ) } const imageContent = ( - + + + {avatarBadge} + ) return preview ? ( diff --git a/apps/mobile/src/icons/check_cute_re.tsx b/apps/mobile/src/icons/check_cute_re.tsx new file mode 100644 index 000000000..fe3008d75 --- /dev/null +++ b/apps/mobile/src/icons/check_cute_re.tsx @@ -0,0 +1,24 @@ +import * as React from "react" +import Svg, { Path } from "react-native-svg" + +interface CheckCuteReIconProps { + width?: number + height?: number + color?: string +} + +export const CheckCuteReIcon = ({ + width = 24, + height = 24, + color = "#10161F", +}: CheckCuteReIconProps) => { + return ( + + + + ) +} diff --git a/apps/mobile/src/icons/paste_cute_re.tsx b/apps/mobile/src/icons/paste_cute_re.tsx new file mode 100644 index 000000000..bdbec444e --- /dev/null +++ b/apps/mobile/src/icons/paste_cute_re.tsx @@ -0,0 +1,24 @@ +import * as React from "react" +import Svg, { Path } from "react-native-svg" + +interface PasteCuteReIconProps { + width?: number + height?: number + color?: string +} + +export const PasteCuteReIcon = ({ + width = 24, + height = 24, + color = "#10161F", +}: PasteCuteReIconProps) => { + return ( + + + + ) +} diff --git a/apps/mobile/src/lib/auth.ts b/apps/mobile/src/lib/auth.ts index 66931ef1a..8ecda4cfb 100644 --- a/apps/mobile/src/lib/auth.ts +++ b/apps/mobile/src/lib/auth.ts @@ -8,6 +8,7 @@ import { createAuthClient } from "better-auth/react" import { nativeApplicationVersion } from "expo-application" import * as FileSystem from "expo-file-system" import * as SecureStore from "expo-secure-store" +import Storage from "expo-sqlite/kv-store" import { Platform } from "react-native" import DeviceInfo from "react-native-device-info" @@ -63,6 +64,15 @@ export const authClient = createAuthClient({ ctx.headers.set(key, value) }) ctx.headers.set("User-Agent", await getUserAgent()) + + const value = Storage.getItemSync("referral-code") + if (value) { + const referralCode = JSON.parse(value) + if (referralCode) { + ctx.headers.set("folo-referral-code", referralCode) + } + } + return ctx }, headers: { diff --git a/apps/mobile/src/modules/login/email.tsx b/apps/mobile/src/modules/login/email.tsx index 61068b438..7a836d71c 100644 --- a/apps/mobile/src/modules/login/email.tsx +++ b/apps/mobile/src/modules/login/email.tsx @@ -9,6 +9,7 @@ import { Alert, Text, TouchableOpacity, View } from "react-native" import { KeyboardController } from "react-native-keyboard-controller" import { z } from "zod" +import { useServerConfigs } from "@/src/atoms/server-configs" import { SubmitButton } from "@/src/components/common/SubmitButton" import { PlainTextField } from "@/src/components/ui/form/TextField" import { signIn, signUp } from "@/src/lib/auth" @@ -20,6 +21,8 @@ import { ForgetPasswordScreen } from "@/src/screens/(modal)/ForgetPasswordScreen import { TwoFactorAuthScreen } from "@/src/screens/(modal)/TwoFactorAuthScreen" import { accentColor } from "@/src/theme/colors" +import { ReferralForm } from "./referral" + const formSchema = z.object({ email: z.string().email(), password: z.string().min(8).max(128), @@ -170,6 +173,7 @@ function SignupInput({ } export function EmailSignUp() { + const serverConfigs = useServerConfigs() const { control, handleSubmit, formState } = useForm({ resolver: zodResolver(signupFormSchema), defaultValues: { @@ -261,6 +265,12 @@ export function EmailSignUp() { }} /> + {serverConfigs?.REFERRAL_ENABLED && ( + <> + + + + )} - { - KeyboardController.dismiss() - }} - accessible={false} - > - + { + KeyboardController.dismiss() }} + accessible={false} > - - - {`${isRegister ? t("signin.sign_up_to") : t("signin.sign_in_to")} `} - Folo - - {isEmail ? ( - isRegister ? ( - + + + {`${isRegister ? t("signin.sign_up_to") : t("signin.sign_in_to")} `} + Folo + + {isEmail ? ( + isRegister ? ( + + ) : ( + + ) ) : ( - - ) + setIsEmail(true)} isRegister={isRegister} /> + )} + + + + + {isEmail ? ( + setIsEmail(false)} + > + {t("login.back")} + ) : ( - setIsEmail(true)} /> + setIsRegister(!isRegister)}> + + , + }} + /> + + )} - - - - {isEmail ? ( - setIsEmail(false)} - > - {t("login.back")} - - ) : ( - setIsRegister(!isRegister)}> - - , - }} - /> - - - )} - + ) } diff --git a/apps/mobile/src/modules/login/referral.tsx b/apps/mobile/src/modules/login/referral.tsx new file mode 100644 index 000000000..83efdd46f --- /dev/null +++ b/apps/mobile/src/modules/login/referral.tsx @@ -0,0 +1,32 @@ +import { useAtom } from "jotai" +import { atomWithStorage } from "jotai/utils" +import { View } from "react-native" + +import { PlainTextField } from "@/src/components/ui/form/TextField" +import { JotaiPersistSyncStorage } from "@/src/lib/jotai" +import { accentColor } from "@/src/theme/colors" + +const referralCodeAtom = atomWithStorage("referral-code", "", JotaiPersistSyncStorage, { + getOnInit: true, +}) + +export function ReferralForm() { + const [referralCode, setReferralCode] = useAtom(referralCodeAtom) + + return ( + + { + setReferralCode(text) + }} + selectionColor={accentColor} + hitSlop={20} + autoCapitalize="none" + autoCorrect={false} + placeholder="Referral Code (optional)" + className="text-text flex-1" + /> + + ) +} diff --git a/apps/mobile/src/modules/login/social.tsx b/apps/mobile/src/modules/login/social.tsx index 2b5555e7b..a18dda225 100644 --- a/apps/mobile/src/modules/login/social.tsx +++ b/apps/mobile/src/modules/login/social.tsx @@ -4,11 +4,21 @@ import { useColorScheme } from "nativewind" import { useTranslation } from "react-i18next" import { Text, TouchableOpacity, View } from "react-native" +import { useServerConfigs } from "@/src/atoms/server-configs" import { Image } from "@/src/components/ui/image/Image" import { PlatformActivityIndicator } from "@/src/components/ui/loading/PlatformActivityIndicator" import { signIn, useAuthProviders } from "@/src/lib/auth" -export function SocialLogin({ onPressEmail }: { onPressEmail: () => void }) { +import { ReferralForm } from "./referral" + +export function SocialLogin({ + onPressEmail, + isRegister, +}: { + isRegister: boolean + onPressEmail: () => void +}) { + const serverConfigs = useServerConfigs() const { data: authProviders, isLoading } = useAuthProviders() const { colorScheme } = useColorScheme() const providers = Object.entries(authProviders || []) @@ -87,6 +97,11 @@ export function SocialLogin({ onPressEmail }: { onPressEmail: () => void }) { ) })} + {isRegister && serverConfigs?.REFERRAL_ENABLED && ( + + + + )} ) } diff --git a/apps/mobile/src/modules/settings/SettingsList.tsx b/apps/mobile/src/modules/settings/SettingsList.tsx index f44cc0cfa..905488dc8 100644 --- a/apps/mobile/src/modules/settings/SettingsList.tsx +++ b/apps/mobile/src/modules/settings/SettingsList.tsx @@ -20,6 +20,7 @@ import { LoveCuteFiIcon } from "@/src/icons/love_cute_fi" import { Magic2CuteFiIcon } from "@/src/icons/magic_2_cute_fi" import { NotificationCuteReIcon } from "@/src/icons/notification_cute_re" import { PaletteCuteFiIcon } from "@/src/icons/palette_cute_fi" +import { PowerOutlineIcon } from "@/src/icons/power_outline" import { RadaCuteFiIcon } from "@/src/icons/rada_cute_fi" import { SafeLockFilledIcon } from "@/src/icons/safe_lock_filled" import { Settings1CuteFiIcon } from "@/src/icons/settings_1_cute_fi" @@ -29,6 +30,7 @@ import { signOut } from "@/src/lib/auth" import { useNavigation } from "@/src/lib/navigation/hooks" import type { Navigation } from "@/src/lib/navigation/Navigation" import { InvitationScreen } from "@/src/screens/(modal)/InvitationScreen" +import { accentColor } from "@/src/theme/colors" import { AboutScreen } from "./routes/About" import { AccountScreen } from "./routes/Account" @@ -40,7 +42,9 @@ import { GeneralScreen } from "./routes/General" import { InvitationsScreen } from "./routes/Invitations" import { ListsScreen } from "./routes/Lists" import { NotificationsScreen } from "./routes/Notifications" +import { PlanScreen } from "./routes/Plan" import { PrivacyScreen } from "./routes/Privacy" +import { ReferralScreen } from "./routes/Referral" interface GroupNavigationLink { label: Extract, `titles.${string}`> @@ -113,6 +117,29 @@ const BetaGroupNavigationLinks: GroupNavigationLink[] = [ }, ] +const ReferralGroupNavigationLinks: GroupNavigationLink[] = [ + { + label: "titles.plan.short", + icon: PowerOutlineIcon, + onPress: ({ navigation }) => { + navigation.pushControllerView(PlanScreen) + }, + iconBackgroundColor: accentColor, + anonymous: false, + hideIf: (serverConfigs) => !serverConfigs?.REFERRAL_ENABLED, + }, + { + label: "titles.referral.short", + icon: LoveCuteFiIcon, + onPress: ({ navigation }) => { + navigation.pushControllerView(ReferralScreen) + }, + iconBackgroundColor: "#EC4899", + anonymous: false, + hideIf: (serverConfigs) => !serverConfigs?.REFERRAL_ENABLED, + }, +] + const DataGroupNavigationLinks: GroupNavigationLink[] = [ { label: "titles.actions", @@ -210,7 +237,7 @@ const NavigationLinkGroup: FC<{ } onPress={() => { - if (link.trialNotAllowed && role === UserRole.Trial) { + if (link.trialNotAllowed && (role === UserRole.Free || role === UserRole.Trial)) { navigation.presentControllerView(InvitationScreen) } else { link.onPress({ navigation }) @@ -226,6 +253,7 @@ const NavigationLinkGroup: FC<{ const navigationGroups = [ SettingGroupNavigationLinks, DataGroupNavigationLinks, + ReferralGroupNavigationLinks, BetaGroupNavigationLinks, PrivacyGroupNavigationLinks, ActionGroupNavigationLinks, diff --git a/apps/mobile/src/modules/settings/UserHeaderBanner.tsx b/apps/mobile/src/modules/settings/UserHeaderBanner.tsx index f3d4d006d..767f0825b 100644 --- a/apps/mobile/src/modules/settings/UserHeaderBanner.tsx +++ b/apps/mobile/src/modules/settings/UserHeaderBanner.tsx @@ -1,5 +1,6 @@ +import { UserRole, UserRoleName } from "@follow/constants" import { useImageColors } from "@follow/store/image/hooks" -import { useUserById } from "@follow/store/user/hooks" +import { useUserById, useUserRole } from "@follow/store/user/hooks" import { cn, getLuminance } from "@follow/utils" import { LinearGradient } from "expo-linear-gradient" import type { FC } from "react" @@ -10,18 +11,21 @@ import ReAnimated, { FadeIn, FadeOut, interpolate, useAnimatedStyle } from "reac import { useSafeAreaInsets } from "react-native-safe-area-context" import { useColor } from "react-native-uikit-colors" +import { useServerConfigs } from "@/src/atoms/server-configs" import { UserAvatar } from "@/src/components/ui/avatar/UserAvatar" import { DiscordCuteFiIcon } from "@/src/icons/discord_cute_fi" import { FacebookCuteFiIcon } from "@/src/icons/facebook_cute_fi" import { GithubCuteFiIcon } from "@/src/icons/github_cute_fi" import { InstagramCuteFiIcon } from "@/src/icons/instagram_cute_fi" import { LinkCuteReIcon } from "@/src/icons/link_cute_re" +import { PowerIcon } from "@/src/icons/power" import { TwitterCuteFiIcon } from "@/src/icons/twitter_cute_fi" import { WebCuteReIcon } from "@/src/icons/web_cute_re" import { YoutubeCuteFiIcon } from "@/src/icons/youtube_cute_fi" import { useNavigation } from "@/src/lib/navigation/hooks" import { LoginScreen } from "@/src/screens/(modal)/LoginScreen" import { usePrefetchImageColors } from "@/src/store/image/hooks" +import { accentColor } from "@/src/theme/colors" const defaultGradientColors = ["#000", "#100", "#200"] @@ -40,14 +44,19 @@ const PlatformInfoMap: Record< export const UserHeaderBanner = ({ scrollY, userId, + showRoleBadge, }: { scrollY: SharedValue userId?: string + showRoleBadge?: boolean }) => { + const serverConfigs = useServerConfigs() const bgColor = useColor("systemGroupedBackground") const avatarIconColor = useColor("secondaryLabel") const user = useUserById(userId) + const role = useUserRole() + usePrefetchImageColors(user?.image) const insets = useSafeAreaInsets() @@ -146,13 +155,11 @@ export const UserHeaderBanner = ({ )} - + Folo Account )} + {!!role && serverConfigs?.REFERRAL_ENABLED && ( + + + + {UserRoleName[role]} + + + )} + {user?.handle ? ( @{user.handle} diff --git a/apps/mobile/src/modules/settings/routes/Plan.tsx b/apps/mobile/src/modules/settings/routes/Plan.tsx new file mode 100644 index 000000000..305337233 --- /dev/null +++ b/apps/mobile/src/modules/settings/routes/Plan.tsx @@ -0,0 +1,307 @@ +import { UserRole, UserRoleName } from "@follow/constants" +import { useRoleEndAt, useUserRole } from "@follow/store/user/hooks" +import { cn } from "@follow/utils" +import { useQuery } from "@tanstack/react-query" +import dayjs from "dayjs" +import type { ProductPurchase } from "expo-iap" +import { useIAP } from "expo-iap" +import { openURL } from "expo-linking" +import { useEffect } from "react" +import { Trans, useTranslation } from "react-i18next" +import { Linking, Pressable, ScrollView, Text, View } from "react-native" + +import { useServerConfigs } from "@/src/atoms/server-configs" +import { + NavigationBlurEffectHeaderView, + SafeNavigationScrollView, +} from "@/src/components/layouts/views/SafeNavigationScrollView" +import { + GroupedInformationCell, + GroupedInsetListCard, +} from "@/src/components/ui/grouped/GroupedList" +import { CheckLineIcon } from "@/src/icons/check_line" +import { PowerOutlineIcon } from "@/src/icons/power_outline" +import { TimeCuteReIcon } from "@/src/icons/time_cute_re" +import { apiClient } from "@/src/lib/api-fetch" +import { authClient } from "@/src/lib/auth" +import { useNavigation } from "@/src/lib/navigation/hooks" +import type { NavigationControllerView } from "@/src/lib/navigation/types" +import { isIOS } from "@/src/lib/platform" +import { proxyEnv } from "@/src/lib/proxy-env" +import { accentColor } from "@/src/theme/colors" + +import { ReferralScreen } from "./Referral" + +// Plan configuration types +interface Plan { + id: string + title: string + price: string + period: string + features: string[] + isPopular?: boolean + role: UserRole + isComingSoon?: boolean + tier: number // Add tier for hierarchy comparison +} + +// Plan hierarchy: Free (1) < Pro Preview (2) < Pro (3) +const PLAN_TIER_MAP: Record = { + [UserRole.Admin]: 4, // Admin has highest tier + [UserRole.Free]: 1, + [UserRole.Trial]: 1, // Same as Free (deprecated) + [UserRole.PreProTrial]: 2, // Same tier as PrePro + [UserRole.PrePro]: 2, + [UserRole.Pro]: 3, +} + +// Plan configurations +const PLAN_CONFIGS: Plan[] = [ + { + id: "free", + title: UserRoleName[UserRole.Free], + price: "$0", + period: "", + features: ["50 feeds", "10 lists"], + isPopular: false, + role: UserRole.Free, + tier: PLAN_TIER_MAP[UserRole.Free], + }, + { + id: "pro-preview", + title: UserRoleName[UserRole.PrePro], + price: "$1 or 3 invitations", + period: "", + features: ["1000 feeds and lists", "10 inboxes", "10 actions", "100 webhooks"], + isPopular: false, + role: UserRole.PrePro, + tier: PLAN_TIER_MAP[UserRole.PrePro], + }, + { + id: "pro", + title: UserRoleName[UserRole.Pro], + price: "Coming soon", + period: "", + features: [`Everything in ${UserRoleName[UserRole.PrePro]}`, "Advanced AI features"], + isPopular: false, + role: UserRole.Pro, + isComingSoon: true, + tier: PLAN_TIER_MAP[UserRole.Pro], + }, +] + +const useReferralInfoQuery = () => { + return useQuery({ + queryKey: ["referral", "info"], + queryFn: () => apiClient.referrals.$get().then((res) => res.data), + }) +} + +export const PlanScreen: NavigationControllerView = () => { + const { connected, getProducts, requestPurchase, validateReceipt } = useIAP({ + onPurchaseSuccess: (purchase) => { + validatePurchase(purchase) + }, + onPurchaseError: (error) => { + console.error("Purchase failed:", error) + }, + }) + + useEffect(() => { + if (connected) { + getProducts(["is.follow.propreview"]) + } + }, [connected]) + + const validatePurchase = async (purchase: ProductPurchase) => { + if (!purchase.transactionId) { + return + } + try { + const result = await validateReceipt(purchase.transactionId) + if (result.isValid) { + apiClient.referrals["verify-receipt"].$post({ json: { appReceipt: result.receiptData } }) + } + } catch (error) { + console.error("Validation failed:", error) + } + } + + const navigation = useNavigation() + const { t } = useTranslation("settings") + const serverConfigs = useServerConfigs() + const ruleLink = serverConfigs?.REFERRAL_RULE_LINK + const requiredInvitationsAmount = serverConfigs?.REFERRAL_REQUIRED_INVITATIONS || 3 + + const { data: referralInfo } = useReferralInfoQuery() + const validInvitationsAmount = referralInfo?.invitations.filter((i) => i.usedAt).length || 0 + + const role = useUserRole() + const roleEndDate = useRoleEndAt() + const daysLeft = roleEndDate + ? Math.ceil((roleEndDate.getTime() - Date.now()) / (1000 * 60 * 60 * 24)) + : null + const progress = (validInvitationsAmount / requiredInvitationsAmount) * 100 + return ( + } + > + + + } + iconBackgroundColor={accentColor} + > + ( + + {children} + + )} + components={{ + Link: ( + { + if (ruleLink) { + Linking.openURL(ruleLink) + } + }} + > + Learn more + + ), + }} + /> + + + + + + {PLAN_CONFIGS.map((plan) => ( + + ))} + + + + + + + + + Current Status + + {role === UserRole.PrePro + ? "You have an active Pro Preview plan" + : role === UserRole.PreProTrial + ? `Pro Preview trial expires ${dayjs(roleEndDate).format("MMMM D, YYYY")} (${daysLeft} days left)` + : "Start your journey with our referral program"} + + + + + + Referral Progress + + {validInvitationsAmount} / {requiredInvitationsAmount} + + + + + + + {role !== UserRole.PrePro && ( + + { + navigation.pushControllerView(ReferralScreen) + }} + > + {`Invite ${serverConfigs?.REFERRAL_REQUIRED_INVITATIONS || 3} friends`} + + or + { + if (isIOS) { + requestPurchase({ request: { sku: "is.follow.propreview" } }) + } else { + const res = await authClient.subscription.upgrade({ + plan: "folo pro preview", + successUrl: proxyEnv.WEB_URL, + cancelUrl: proxyEnv.WEB_URL, + disableRedirect: true, + }) + if (res.data?.url) { + openURL(res.data.url) + } + } + }} + > + {`Pay $${serverConfigs?.REFERRAL_PRO_PREVIEW_STRIPE_PRICE_IN_DOLLAR || 1}`} + + + )} + + + ) +} + +interface PlanCardProps { + plan: Plan + currentUserRole: UserRole | null + isCurrentPlan: boolean + daysLeft: number | null +} + +function PlanCard({ plan, isCurrentPlan, daysLeft }: PlanCardProps) { + return ( + + {plan.title} + {plan.price} + + {plan.features.map((feature, index) => ( + + + + + {feature} + + ))} + + {plan.isComingSoon ? ( + + Coming soon + + ) : isCurrentPlan && daysLeft !== null ? ( + + {`In Trial (${daysLeft} days left)`} + + ) : null} + + ) +} diff --git a/apps/mobile/src/modules/settings/routes/Referral.tsx b/apps/mobile/src/modules/settings/routes/Referral.tsx new file mode 100644 index 000000000..4bd2c99eb --- /dev/null +++ b/apps/mobile/src/modules/settings/routes/Referral.tsx @@ -0,0 +1,177 @@ +import { UserRole, UserRoleName } from "@follow/constants" +import { env } from "@follow/shared/env.rn" +import { useWhoami } from "@follow/store/user/hooks" +import { cn } from "@follow/utils" +import { useQuery } from "@tanstack/react-query" +import dayjs from "dayjs" +import { setStringAsync } from "expo-clipboard" +import { Trans, useTranslation } from "react-i18next" +import { Linking, Pressable, Share, Text, View } from "react-native" + +import { useServerConfigs } from "@/src/atoms/server-configs" +import { + NavigationBlurEffectHeaderView, + SafeNavigationScrollView, +} from "@/src/components/layouts/views/SafeNavigationScrollView" +import { UserAvatar } from "@/src/components/ui/avatar/UserAvatar" +import { ContextMenu } from "@/src/components/ui/context-menu" +import { + GroupedInformationCell, + GroupedInsetActivityIndicatorCell, + GroupedInsetListBaseCell, + GroupedInsetListCard, + GroupedInsetListSectionHeader, +} from "@/src/components/ui/grouped/GroupedList" +import { MonoText } from "@/src/components/ui/typography/MonoText" +import { LoveCuteFiIcon } from "@/src/icons/love_cute_fi" +import { apiClient } from "@/src/lib/api-fetch" +import type { NavigationControllerView } from "@/src/lib/navigation/types" +import { toast } from "@/src/lib/toast" +import { useColor } from "@/src/theme/colors" + +const useReferralInfoQuery = () => { + return useQuery({ + queryKey: ["referral", "info"], + queryFn: () => apiClient.referrals.$get().then((res) => res.data), + }) +} + +export const ReferralScreen: NavigationControllerView = () => { + const { t } = useTranslation("settings") + const serverConfigs = useServerConfigs() + const ruleLink = serverConfigs?.REFERRAL_RULE_LINK + const requiredInvitationsAmount = serverConfigs?.REFERRAL_REQUIRED_INVITATIONS || 3 + + const { data: referralInfo, isLoading } = useReferralInfoQuery() + const invitations = referralInfo?.invitations + const validInvitationsAmount = referralInfo?.invitations.filter((i) => i.usedAt).length || 0 + const user = useWhoami() + const referralLink = `${env.WEB_URL}/register?referral=${user?.handle || user?.id}` + + const secondaryLabelColor = useColor("secondaryLabel") + + const progress = (validInvitationsAmount / requiredInvitationsAmount) * 100 + return ( + } + > + + + } + iconBackgroundColor={"#EC4899"} + > + ( + + {children} + + )} + components={{ + Link: ( + { + if (ruleLink) { + Linking.openURL(ruleLink) + } + }} + > + Learn more + + ), + }} + /> + + + + + + + + + + { + Share.share({ url: referralLink }) + }} + > + {referralLink} + + + + + { + setStringAsync(referralLink) + toast.success("Referral link copied to clipboard") + }} + > + Copy + + + + + + + + + + + + + + + + + {isLoading && } + {invitations?.map((invitation) => ( + + + + + + {invitation.user?.name || (!invitation.user ? t("invitation.notUsed") : "")} + + + {t("invitation.created_at")} {dayjs(invitation.createdAt).format("YYYY/MM/DD")} + + + + + {invitation.usedAt + ? t("referral.invited_friend_status.valid") + : t("referral.invited_friend_status.pending")} + + + ))} + + + ) +} diff --git a/apps/mobile/src/screens/(stack)/(tabs)/settings.tsx b/apps/mobile/src/screens/(stack)/(tabs)/settings.tsx index 5a26c8871..f2c1a1d01 100644 --- a/apps/mobile/src/screens/(stack)/(tabs)/settings.tsx +++ b/apps/mobile/src/screens/(stack)/(tabs)/settings.tsx @@ -34,7 +34,11 @@ export function Settings() { className="bg-system-grouped-background flex-1" contentViewClassName="-mt-24 pb-8" > - + diff --git a/apps/ssr/client/atoms/server-configs.ts b/apps/ssr/client/atoms/server-configs.ts new file mode 100644 index 000000000..be21a1a8c --- /dev/null +++ b/apps/ssr/client/atoms/server-configs.ts @@ -0,0 +1,7 @@ +import type { ServerConfigs } from "@follow/models/types" +import { createAtomHooks } from "@follow/utils/jotai" +import { atom } from "jotai" + +export const [, , useServerConfigs, , getServerConfigs, setServerConfigs] = createAtomHooks( + atom>(null), +) diff --git a/apps/ssr/client/components/ui/user-avatar.tsx b/apps/ssr/client/components/ui/user-avatar.tsx index 0c67f0fd5..f33e34dcf 100644 --- a/apps/ssr/client/components/ui/user-avatar.tsx +++ b/apps/ssr/client/components/ui/user-avatar.tsx @@ -1,5 +1,6 @@ import { useWhoami } from "@client/atoms/user" import { Avatar, AvatarFallback, AvatarImage } from "@follow/components/ui/avatar/index.jsx" +import { UserRole } from "@follow/constants" import { getBackgroundGradient } from "@follow/utils/color" import { cn } from "@follow/utils/utils" import { useMemo } from "react" @@ -26,13 +27,15 @@ export const UserAvatar = ({ className }: { className?: string }) => { name: "Innei", image: "https://avatars-githubusercontent-webp.webp.se/u/41265413?v=4", handle: "innei", + role: UserRole.Free, + roleEndAt: new Date(), deleted: false, } } else { return null } } - const { name, image } = user + const { name, image } = user! return (
>({ + resolver: zodResolver(formSchema), + defaultValues: { + referral: getDefaultReferralCode(), + }, + }) + + const { watch } = form + useEffect(() => { + const sub = watch((value) => { + const referralCode = value.referral + if (referralCode) { + localStorage.setItem(getStorageNS("referral-code"), referralCode) + } + }) + return () => sub.unsubscribe() + }, [watch]) + + const referral = watch("referral") + + const { data } = useQuery({ + queryKey: ["referral", "days", referral], + queryFn: () => getReferralCycleDays(referral || ""), + enabled: !!referral, + refetchOnWindowFocus: false, + refetchOnReconnect: false, + }) + const days = data?.data.referralCycleDays || 0 + + return ( +
+ + ( + + {t("register.referral.label")} + + + + + {days || !referral + ? days + ? t("register.referral.days", { + days, + }) + : t("register.referral.description") + : t("register.referral.invalid")} + + + + )} + /> + + + ) +} diff --git a/apps/ssr/client/pages/(login)/register.tsx b/apps/ssr/client/pages/(login)/register.tsx index e18fa39af..16dfdf2a3 100644 --- a/apps/ssr/client/pages/(login)/register.tsx +++ b/apps/ssr/client/pages/(login)/register.tsx @@ -1,4 +1,6 @@ +import { useServerConfigs } from "@client/atoms/server-configs" import { loginHandler, signUp } from "@client/lib/auth" +import { ReferralForm } from "@client/modules/referral" import { useAuthProviders } from "@client/query/users" import { Logo } from "@follow/components/icons/logo.jsx" import { Button, MotionButtonBase } from "@follow/components/ui/button/index.jsx" @@ -46,6 +48,7 @@ const formSchema = z }) function RegisterForm() { + const serverConfigs = useServerConfigs() const { t } = useTranslation() const [isSubmitting, setIsSubmitting] = useState(false) const navigate = useNavigate() @@ -185,6 +188,7 @@ function RegisterForm() {
)} + {serverConfigs?.REFERRAL_ENABLED && } {isEmail ? (
setIsEmail(false)}> Back diff --git a/apps/ssr/client/providers/root-providers.tsx b/apps/ssr/client/providers/root-providers.tsx index 937f2644e..2864f1e4d 100644 --- a/apps/ssr/client/providers/root-providers.tsx +++ b/apps/ssr/client/providers/root-providers.tsx @@ -10,6 +10,7 @@ import type { FC, PropsWithChildren } from "react" import { queryClient } from "../lib/query-client" import { jotaiStore } from "../lib/store" +import { ServerConfigsProvider } from "./server-configs-provider" import { UserProvider } from "./user-provider" const ThemeProvider = () => { @@ -21,6 +22,7 @@ export const RootProviders: FC = ({ children }) => ( + diff --git a/apps/ssr/client/providers/server-configs-provider.tsx b/apps/ssr/client/providers/server-configs-provider.tsx new file mode 100644 index 000000000..aecb4063a --- /dev/null +++ b/apps/ssr/client/providers/server-configs-provider.tsx @@ -0,0 +1,23 @@ +import { setServerConfigs } from "@client/atoms/server-configs" +import { apiClient } from "@client/lib/api-fetch" +import { useQuery } from "@tanstack/react-query" +import { useEffect } from "react" + +const useServerConfigsQuery = () => { + const { data } = useQuery({ + queryKey: ["server-configs"], + queryFn: async () => await apiClient.status.configs.$get(), + }) + return data?.data +} + +export const ServerConfigsProvider = () => { + const serverConfigs = useServerConfigsQuery() + + useEffect(() => { + if (!serverConfigs) return + setServerConfigs(serverConfigs) + }, [serverConfigs]) + + return null +} diff --git a/icons/mgc/check_cute_re.svg b/icons/mgc/check_cute_re.svg new file mode 100644 index 000000000..ebcfcaeeb --- /dev/null +++ b/icons/mgc/check_cute_re.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/locales/app/en.json b/locales/app/en.json index de19769c9..77472c7af 100644 --- a/locales/app/en.json +++ b/locales/app/en.json @@ -322,6 +322,10 @@ "register.email": "Email", "register.login": "Login", "register.password": "Password", + "register.referral.days": "Sign up with this referral code to get {{days}} days of Pro Preview", + "register.referral.description": "Sign up with referral code to get extra days of Pro Preview", + "register.referral.invalid": "Invalid referral code", + "register.referral.label": "Referral Code", "register.submit": "Create account", "resize.tooltip.double_click_to_collapse": "Double click to reset to default size", "resize.tooltip.drag_to_resize": "Drag to resize", diff --git a/locales/errors/en.json b/locales/errors/en.json index 1d1cab113..d3d62f84e 100644 --- a/locales/errors/en.json +++ b/locales/errors/en.json @@ -67,5 +67,6 @@ "13007": "This RSSHub instance is unavailable currently", "14000": "Invalid file", "14001": "File too large", - "14002": "Upload failed" + "14002": "Upload failed", + "15000": "AI token limit exceeded. Please try again later." } diff --git a/locales/external/en.json b/locales/external/en.json index 4bda047f7..cde38f445 100644 --- a/locales/external/en.json +++ b/locales/external/en.json @@ -78,6 +78,10 @@ "register.label": "Sign up to {{app_name}}", "register.login": "Sign in", "register.password": "Password", + "register.referral.days": "Sign up with this referral code to get {{days}} days of Pro Preview", + "register.referral.description": "Sign up with referral code to get extra days of Pro Preview", + "register.referral.invalid": "Invalid referral code", + "register.referral.label": "Referral Code", "register.submit": "Create account", "words.email": "Email" } diff --git a/locales/settings/en.json b/locales/settings/en.json index a23901ef5..5b041f92f 100644 --- a/locales/settings/en.json +++ b/locales/settings/en.json @@ -397,6 +397,7 @@ "notifications.test": "Test Notification", "notifications.test_success": "Test notification sent successfully.", "notifications.token": "Client Token", + "plan.description": "Enjoy every Pro feature from day one—new users get a full‑access trial, and you can keep those perks simply by inviting friends or making a small support contribution. Learn more.", "privacy.privacy": "Privacy", "privacy.terms": "Terms", "profile.avatar.cropInstructions": "Drag the crop area to adjust your avatar", @@ -470,6 +471,13 @@ "profile.two_factor.no_password": "You need to set a password before enabling 2FA.", "profile.updateSuccess": "Profile updated.", "profile.update_password_success": "Password updated.", + "referral.description": "Share Folo with your friends! For every friend who signs up and activates their account, your Pro Preview will be extended. Friends you invite will also get {{day}} days of Pro Preview! Learn more.", + "referral.invited_friend_status.pending": "Pending validation", + "referral.invited_friend_status.valid": "Valid", + "referral.link": "Your Invite Link:", + "referral.pro_status.preview": "Your Pro Preview Status: Expires {{dateString}} ({{daysLeft}} days left)", + "referral.pro_status.trial": "Your Current Tier: Free", + "referral.pro_status.user": "Your Pro Preview Status: Active", "rsshub.addModal.access_key_label": "Access Key (Optional)", "rsshub.addModal.add": "Add", "rsshub.addModal.base_url_label": "Base URL", @@ -511,8 +519,12 @@ "titles.invitations": "Invitations", "titles.lists": "Lists", "titles.notifications": "Notifications", + "titles.plan.long": "Upgrade your plan", + "titles.plan.short": "Plan", "titles.power": "Power", "titles.privacy": "Privacy", + "titles.referral.long": "Invite Friends & Extend Pro", + "titles.referral.short": "Invite & Earn", "titles.shortcuts": "Shortcuts", "titles.sign_out": "Sign Out", "wallet.balance.activePoints": "Active Points", diff --git a/packages/internal/components/package.json b/packages/internal/components/package.json index 9d7eb2041..22e240ea0 100644 --- a/packages/internal/components/package.json +++ b/packages/internal/components/package.json @@ -38,6 +38,7 @@ "@radix-ui/react-label": "2.1.7", "@radix-ui/react-navigation-menu": "1.2.13", "@radix-ui/react-popover": "1.1.14", + "@radix-ui/react-progress": "1.1.7", "@radix-ui/react-radio-group": "1.3.7", "@radix-ui/react-scroll-area": "1.2.9", "@radix-ui/react-select": "2.2.5", diff --git a/packages/internal/components/src/ui/button/index.tsx b/packages/internal/components/src/ui/button/index.tsx index 58af7bc23..a21b9a404 100644 --- a/packages/internal/components/src/ui/button/index.tsx +++ b/packages/internal/components/src/ui/button/index.tsx @@ -28,6 +28,7 @@ const motionBaseMap = { export const MotionButtonBase = ({ ref, children, + disabled, ...rest }: HTMLMotionProps<"button"> & { ref?: React.Ref }) => { const isMobile = useMobile() @@ -35,7 +36,8 @@ export const MotionButtonBase = ({ diff --git a/packages/internal/components/src/ui/progress/index.tsx b/packages/internal/components/src/ui/progress/index.tsx new file mode 100644 index 000000000..6ef9c27a3 --- /dev/null +++ b/packages/internal/components/src/ui/progress/index.tsx @@ -0,0 +1,28 @@ +"use client" + +import { cn } from "@follow/utils/utils" +import * as ProgressPrimitive from "@radix-ui/react-progress" +import * as React from "react" + +const Progress = ({ + ref, + className, + value, + ...props +}: React.ComponentPropsWithoutRef & { + ref?: React.RefObject | null> +}) => ( + + + +) +Progress.displayName = ProgressPrimitive.Root.displayName + +export { Progress } diff --git a/packages/internal/constants/src/enums.ts b/packages/internal/constants/src/enums.ts index 1c6b7133d..be03cc7fe 100644 --- a/packages/internal/constants/src/enums.ts +++ b/packages/internal/constants/src/enums.ts @@ -13,6 +13,28 @@ export enum Routes { } export enum UserRole { + Admin = "admin", + PreProTrial = "pre_pro_trial", + PrePro = "pre_pro", + Free = "free", + /** + * @deprecated + * @see UserRole.Free + */ + // TODO: remove this Trial = "trial", - User = "user", + Pro = "pro", } + +export const UserRoleName: Record = { + [UserRole.Admin]: "Admin", + [UserRole.PreProTrial]: "Pro Preview Trial", + [UserRole.PrePro]: "Pro Preview", + [UserRole.Free]: "Free", + /** + * @deprecated + * @see UserRole.Free + */ + [UserRole.Trial]: "Free", + [UserRole.Pro]: "Pro", +} as const diff --git a/packages/internal/models/src/types.ts b/packages/internal/models/src/types.ts index 893878290..75ed8b217 100644 --- a/packages/internal/models/src/types.ts +++ b/packages/internal/models/src/types.ts @@ -16,6 +16,7 @@ export type UserModel = OptionalKey< | "bio" | "website" | "socialLinks" + | "stripeCustomerId" > export type ExtractBizResponse any> = Exclude< diff --git a/packages/internal/shared/package.json b/packages/internal/shared/package.json index d57ff0835..58befecbc 100644 --- a/packages/internal/shared/package.json +++ b/packages/internal/shared/package.json @@ -31,6 +31,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { + "@better-auth/stripe": "1.2.9", "@electron-toolkit/preload": "3.0.2", "@electron-toolkit/tsconfig": "1.0.1", "@hono/node-server": "1.15.0", @@ -40,6 +41,7 @@ "drizzle-orm": "0.44.2", "hono": "4.8.1", "sonner": "2.0.6", + "stripe": "18.2.1", "zod": "3.25.75" } } diff --git a/packages/internal/shared/src/auth.ts b/packages/internal/shared/src/auth.ts index da4d26548..0cdaae774 100644 --- a/packages/internal/shared/src/auth.ts +++ b/packages/internal/shared/src/auth.ts @@ -1,3 +1,4 @@ +import { stripeClient } from "@better-auth/stripe/client" import { IN_ELECTRON } from "@follow/shared" import type { authPlugins } from "@follow/shared/hono" import type { BetterAuthClientPlugin, BetterFetchOption } from "better-auth/client" @@ -31,6 +32,7 @@ export const baseAuthPlugins = [ }, }), twoFactorClient(), + stripeClient({ subscription: true }), ] satisfies BetterAuthClientPlugin[] export type AuthClient = ReturnType< @@ -54,7 +56,19 @@ export class Auth { this.authClient = createAuthClient({ baseURL: `${this.options.apiURL}/better-auth`, plugins: baseAuthPlugins, - fetchOptions: this.options.fetchOptions, + fetchOptions: { + ...this.options.fetchOptions, + onRequest: (context) => { + const referralCode = localStorage.getItem(getStorageNS("referral-code")) + if (referralCode) { + context.headers.set("folo-referral-code", referralCode) + } + + this.options.fetchOptions?.onRequest?.(context) + + return context + }, + }, }) } @@ -86,3 +100,7 @@ export class Auth { } } } + +// copy from packages/internal/utils/src/ns.ts +const ns = "follow" +const getStorageNS = (key: string) => `${ns}:${key}` diff --git a/packages/internal/shared/src/hono.ts b/packages/internal/shared/src/hono.ts index 3009379e7..4b8b31c20 100644 --- a/packages/internal/shared/src/hono.ts +++ b/packages/internal/shared/src/hono.ts @@ -1,1271 +1,1298 @@ -import * as hono_hono_base from 'hono/hono-base'; -import * as hono_types from 'hono/types'; -import * as hono_utils_http_status from 'hono/utils/http-status'; -import { HttpBindings } from '@hono/node-server'; -import * as ai from 'ai'; -import * as zod from 'zod'; -import { z } from 'zod'; -import * as zod_v4_core from 'zod/v4/core'; -import * as zod_v4 from 'zod/v4'; -import * as better_call from 'better-call'; -import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core'; -import { AnyPgColumn } from 'drizzle-orm/pg-core'; -import * as drizzle_orm from 'drizzle-orm'; -import { InferInsertModel, SQL } from 'drizzle-orm'; -import * as better_auth_plugins from 'better-auth/plugins'; -import * as better_auth from 'better-auth'; -import { BetterAuthOptions } from 'better-auth'; +// @ts-nocheck +import { HttpBindings } from "@hono/node-server"; +import * as zod1169 from "zod"; +import { z } from "zod"; +import * as better_auth246 from "better-auth"; +import { BetterAuthOptions } from "better-auth"; +import * as better_auth_plugins332 from "better-auth/plugins"; +import * as better_call38 from "better-call"; +import Stripe from "stripe"; +import * as drizzle_orm_pg_core1159 from "drizzle-orm/pg-core"; +import { AnyPgColumn } from "drizzle-orm/pg-core"; +import * as drizzle_orm1055 from "drizzle-orm"; +import { InferInsertModel, InferSelectModel, SQL } from "drizzle-orm"; +import * as zod_v441 from "zod/v4"; +import * as ai56 from "ai"; +import * as hono_utils_http_status0 from "hono/utils/http-status"; +import * as hono_types2 from "hono/types"; +import * as hono_hono_base37 from "hono/hono-base"; +import * as zod_v4_core42 from "zod/v4/core"; +//#region src/types/env.d.ts type Env = { - Bindings: HttpBindings; + Bindings: HttpBindings; }; - -declare const tools: { - displayFeeds: ai.Tool<{ - feedIds: string[]; - }, { - feedList: { - feed: { - id: string; - url: string; - title: string | null; - description: string | null; - siteUrl: string | null; - image: string | null; - checkedAt: Date; - lastModifiedHeader: string | null; - etagHeader: string | null; - ttl: number | null; - errorMessage: string | null; - errorAt: Date | null; - ownerUserId: string | null; - language: string | null; - migrateTo: string | null; - rsshubRoute: string | null; - rsshubNamespace: string | null; - nsfw: boolean | null; - }; - analytics: { - feedId: string; - updatesPerWeek: number | null; - subscriptionCount: number | null; - latestEntryPublishedAt: Date | null; - view: number | null; - } | null; - }[]; - }>; - getFeeds: ai.Tool<{ - select: ("id" | "image" | "description" | "title" | "url" | "siteUrl" | "checkedAt" | "lastModifiedHeader" | "etagHeader" | "ttl" | "errorMessage" | "errorAt" | "ownerUserId" | "language" | "migrateTo" | "rsshubRoute" | "rsshubNamespace" | "nsfw")[]; - ids: string[]; - }, { - feeds: Record[]; - }>; - getFeedEntries: ai.Tool<{ - select: ("id" | "description" | "title" | "content" | "author" | "url" | "language" | "feedId" | "guid" | "media" | "categories" | "attachments" | "extra" | "authorUrl" | "authorAvatar" | "insertedAt" | "publishedAt")[]; - feedId: string; - }, { - entries: Record[]; - }>; - getEntry: ai.Tool<{ - id: string; - select: ("id" | "description" | "title" | "content" | "author" | "url" | "language" | "feedId" | "guid" | "media" | "categories" | "attachments" | "extra" | "authorUrl" | "authorAvatar" | "insertedAt" | "publishedAt")[]; - }, Record | null>; -}; - -declare const authPlugins: ({ - id: "customGetProviders"; - endpoints: { - customGetProviders: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: any; - } : any>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-providers"; - }; - }; -} | { - id: "getAccountInfo"; - endpoints: { - getAccountInfo: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null; - } : ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-account-info"; - }; - }; -} | { - id: "deleteUserCustom"; - endpoints: { - deleteUserCustom: { - (inputCtx_0: { - body: { - TOTPCode: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: void; - } : void>; - options: { - method: "POST"; - body: zod_v4.ZodObject<{ - TOTPCode: zod_v4.ZodString; - }, zod_v4_core.$strip>; - } & { - use: any[]; - }; - path: "/delete-user-custom"; - }; - }; -} | { - id: "oneTimeToken"; - endpoints: { - generateOneTimeToken: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string; - }; - } : { - token: string; - }>; - options: { - method: "GET"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - } & { - use: any[]; - }; - path: "/one-time-token/generate"; - }; - applyOneTimeToken: { - (inputCtx_0: { - body: { - token: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - } & Record; - }; - } : { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - } & Record; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - token: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - token: string; - }, { - token: string; - }>; - } & { - use: any[]; - }; - path: "/one-time-token/apply"; - }; - }; -})[]; - -declare const achievements: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "achievements"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "achievements"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "achievements"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - type: drizzle_orm_pg_core.PgColumn<{ - name: "type"; - tableName: "achievements"; - dataType: "string"; - columnType: "PgText"; - data: "checking" | "completed" | "incomplete" | "audit" | "received"; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: ["checking", "completed", "incomplete", "audit", "received"]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - actionId: drizzle_orm_pg_core.PgColumn<{ - name: "action_id"; - tableName: "achievements"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - progress: drizzle_orm_pg_core.PgColumn<{ - name: "progress"; - tableName: "achievements"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - progressMax: drizzle_orm_pg_core.PgColumn<{ - name: "progress_max"; - tableName: "achievements"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - done: drizzle_orm_pg_core.PgColumn<{ - name: "done"; - tableName: "achievements"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - doneAt: drizzle_orm_pg_core.PgColumn<{ - name: "done_at"; - tableName: "achievements"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - tx: drizzle_orm_pg_core.PgColumn<{ - name: "tx"; - tableName: "achievements"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/lib/ai/tools/utilities/types.d.ts +interface ConversationContext { + currentFeedId?: string; + currentEntryId?: string; + selectedText?: string; + sessionTopic?: string; + userIntent?: string; +} +interface UserPreferences { + contentTypes: string[]; + languages: string[]; + categories: string[]; + readingPatterns: { + timeOfDay: string[]; + frequency: string; + velocity: number; + }; + aiInteractionStyle: string; + helpTopics: string[]; +} +//#endregion +//#region src/schema/achievements.d.ts +declare const achievements: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "achievements"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "achievements"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "achievements"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + type: drizzle_orm_pg_core1159.PgColumn<{ + name: "type"; + tableName: "achievements"; + dataType: "string"; + columnType: "PgText"; + data: "checking" | "completed" | "incomplete" | "audit" | "received"; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: ["checking", "completed", "incomplete", "audit", "received"]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + actionId: drizzle_orm_pg_core1159.PgColumn<{ + name: "action_id"; + tableName: "achievements"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + progress: drizzle_orm_pg_core1159.PgColumn<{ + name: "progress"; + tableName: "achievements"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + progressMax: drizzle_orm_pg_core1159.PgColumn<{ + name: "progress_max"; + tableName: "achievements"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + done: drizzle_orm_pg_core1159.PgColumn<{ + name: "done"; + tableName: "achievements"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + doneAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "done_at"; + tableName: "achievements"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + tx: drizzle_orm_pg_core1159.PgColumn<{ + name: "tx"; + tableName: "achievements"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const achievementsOpenAPISchema: zod.ZodObject<{ - id: zod.ZodString; - userId: zod.ZodString; - type: zod.ZodEnum<["checking", "completed", "incomplete", "audit", "received"]>; - actionId: zod.ZodNumber; - progress: zod.ZodNumber; - progressMax: zod.ZodNumber; - done: zod.ZodBoolean; - doneAt: zod.ZodNullable; - tx: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - id: string; - userId: string; - type: "checking" | "completed" | "incomplete" | "audit" | "received"; - actionId: number; - progress: number; - progressMax: number; - done: boolean; - doneAt: string | null; - tx: string | null; +declare const achievementsOpenAPISchema: zod1169.ZodObject<{ + id: zod1169.ZodString; + userId: zod1169.ZodString; + type: zod1169.ZodEnum<["checking", "completed", "incomplete", "audit", "received"]>; + actionId: zod1169.ZodNumber; + progress: zod1169.ZodNumber; + progressMax: zod1169.ZodNumber; + done: zod1169.ZodBoolean; + doneAt: zod1169.ZodNullable; + tx: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + id: string; + userId: string; + type: "checking" | "completed" | "incomplete" | "audit" | "received"; + actionId: number; + progress: number; + progressMax: number; + done: boolean; + doneAt: string | null; + tx: string | null; }, { - id: string; - userId: string; - type: "checking" | "completed" | "incomplete" | "audit" | "received"; - actionId: number; - progress: number; - progressMax: number; - done: boolean; - doneAt: string | null; - tx: string | null; + id: string; + userId: string; + type: "checking" | "completed" | "incomplete" | "audit" | "received"; + actionId: number; + progress: number; + progressMax: number; + done: boolean; + doneAt: string | null; + tx: string | null; }>; - +//#endregion +//#region src/schema/actions.d.ts declare const languageSchema: z.ZodEnum<["en", "ja", "zh-CN", "zh-TW"]>; declare const conditionItemSchema: z.ZodObject<{ + field: z.ZodEnum<["view", "title", "site_url", "feed_url", "category", "entry_title", "entry_content", "entry_url", "entry_author", "entry_media_length", "entry_attachments_duration", "status"]>; + operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; + value: z.ZodString; +}, "strip", z.ZodTypeAny, { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; +}, { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; +}>; +type ConditionItem = z.infer; +declare const actions: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "actions"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "actions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "actions"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + updatedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "updated_at"; + tableName: "actions"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + rules: drizzle_orm_pg_core1159.PgColumn<{ + name: "rules"; + tableName: "actions"; + dataType: "json"; + columnType: "PgJsonb"; + data: { + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + }[]; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: { + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + }[]; + }>; + }; + dialect: "pg"; +}>; +declare const actionsItemOpenAPISchema: z.ZodObject<{ + name: z.ZodString; + condition: z.ZodUnion<[z.ZodArray; operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; value: z.ZodString; -}, "strip", z.ZodTypeAny, { + }, "strip", z.ZodTypeAny, { value: string; field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; -}, { + }, { value: string; field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; -}>; -type ConditionItem = z.infer; -declare const actions: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "actions"; - schema: undefined; - columns: { - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "actions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "actions"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - updatedAt: drizzle_orm_pg_core.PgColumn<{ - name: "updated_at"; - tableName: "actions"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - rules: drizzle_orm_pg_core.PgColumn<{ - name: "rules"; - tableName: "actions"; - dataType: "json"; - columnType: "PgJsonb"; - data: { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; - }[]; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; - }[]; - }>; - }; - dialect: "pg"; -}>; -declare const actionsItemOpenAPISchema: z.ZodObject<{ - name: z.ZodString; - condition: z.ZodUnion<[z.ZodArray; - operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; - value: z.ZodString; + }>, "many">, z.ZodArray; + operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; + value: z.ZodString; + }, "strip", z.ZodTypeAny, { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }, { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }>, "many">, "many">]>; + result: z.ZodObject<{ + disabled: z.ZodOptional; + translation: z.ZodOptional, z.ZodBoolean]>>; + summary: z.ZodOptional; + readability: z.ZodOptional; + sourceContent: z.ZodOptional; + silence: z.ZodOptional; + block: z.ZodOptional; + star: z.ZodOptional; + newEntryNotification: z.ZodOptional; + rewriteRules: z.ZodOptional, "many">, z.ZodArray; - operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; - value: z.ZodString; + from: string; + to: string; + }>, "many">>; + blockRules: z.ZodOptional; + operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; + value: z.ZodUnion<[z.ZodString, z.ZodNumber]>; }, "strip", z.ZodTypeAny, { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; }, { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }>, "many">, "many">]>; - result: z.ZodObject<{ - disabled: z.ZodOptional; - translation: z.ZodOptional, z.ZodBoolean]>>; - summary: z.ZodOptional; - readability: z.ZodOptional; - sourceContent: z.ZodOptional; - silence: z.ZodOptional; - block: z.ZodOptional; - star: z.ZodOptional; - newEntryNotification: z.ZodOptional; - rewriteRules: z.ZodOptional, "many">>; - blockRules: z.ZodOptional; - operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; - value: z.ZodUnion<[z.ZodString, z.ZodNumber]>; - }, "strip", z.ZodTypeAny, { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }, { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }>, "many">>; - webhooks: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }, { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }>; + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }>, "many">>; + webhooks: z.ZodOptional>; + }, "strip", z.ZodTypeAny, { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }, { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }>; }, "strip", z.ZodTypeAny, { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; }, { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; }>; type ActionItem = z.infer; declare const actionsOpenAPISchema: z.ZodObject; - updatedAt: z.ZodNullable; - rules: z.ZodNullable>; + userId: z.ZodString; + createdAt: z.ZodNullable; + updatedAt: z.ZodNullable; + rules: z.ZodNullable>; }, "rules"> & { - rules: z.ZodNullable; - operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }, { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }>, "many">, z.ZodArray; - operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }, { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }>, "many">, "many">]>; - result: z.ZodObject<{ - disabled: z.ZodOptional; - translation: z.ZodOptional, z.ZodBoolean]>>; - summary: z.ZodOptional; - readability: z.ZodOptional; - sourceContent: z.ZodOptional; - silence: z.ZodOptional; - block: z.ZodOptional; - star: z.ZodOptional; - newEntryNotification: z.ZodOptional; - rewriteRules: z.ZodOptional, "many">>; - blockRules: z.ZodOptional; - operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; - value: z.ZodUnion<[z.ZodString, z.ZodNumber]>; - }, "strip", z.ZodTypeAny, { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }, { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }>, "many">>; - webhooks: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }, { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }>; + rules: z.ZodNullable; + operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; + value: z.ZodString; }, "strip", z.ZodTypeAny, { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; }, { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; - }>, "many">>>; + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }>, "many">, z.ZodArray; + operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; + value: z.ZodString; + }, "strip", z.ZodTypeAny, { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }, { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }>, "many">, "many">]>; + result: z.ZodObject<{ + disabled: z.ZodOptional; + translation: z.ZodOptional, z.ZodBoolean]>>; + summary: z.ZodOptional; + readability: z.ZodOptional; + sourceContent: z.ZodOptional; + silence: z.ZodOptional; + block: z.ZodOptional; + star: z.ZodOptional; + newEntryNotification: z.ZodOptional; + rewriteRules: z.ZodOptional, "many">>; + blockRules: z.ZodOptional; + operator: z.ZodEnum<["contains", "not_contains", "eq", "not_eq", "gt", "lt", "regex"]>; + value: z.ZodUnion<[z.ZodString, z.ZodNumber]>; + }, "strip", z.ZodTypeAny, { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }, { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }>, "many">>; + webhooks: z.ZodOptional>; + }, "strip", z.ZodTypeAny, { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }, { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }>; + }, "strip", z.ZodTypeAny, { + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + }, { + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + }>, "many">>>; }, "strip", z.ZodTypeAny, { - createdAt: string | null; - updatedAt: string | null; - userId: string; - rules?: { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; - }[] | null | undefined; + createdAt: string | null; + updatedAt: string | null; + userId: string; + rules?: { + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + }[] | null | undefined; }, { - createdAt: string | null; - updatedAt: string | null; - userId: string; - rules?: { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; - }[] | null | undefined; + createdAt: string | null; + updatedAt: string | null; + userId: string; + rules?: { + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + }[] | null | undefined; }>; -declare const actionsRelations: drizzle_orm.Relations<"actions", { - users: drizzle_orm.One<"user", true>; +declare const actionsRelations: drizzle_orm1055.Relations<"actions", { + users: drizzle_orm1055.One<"user", true>; }>; type ActionsModel = z.infer; type SettingsModel = Exclude["result"], undefined>; - -declare const activities: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "activities"; - schema: undefined; - columns: { - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "activities"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - activeAt: drizzle_orm_pg_core.PgColumn<{ - name: "active_at"; - tableName: "activities"; - dataType: "date"; - columnType: "PgDate"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - platform: drizzle_orm_pg_core.PgColumn<{ - name: "platform"; - tableName: "activities"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - version: drizzle_orm_pg_core.PgColumn<{ - name: "version"; - tableName: "activities"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/activities.d.ts +declare const activities: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "activities"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "activities"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + activeAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "active_at"; + tableName: "activities"; + dataType: "date"; + columnType: "PgDate"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + platform: drizzle_orm_pg_core1159.PgColumn<{ + name: "platform"; + tableName: "activities"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + version: drizzle_orm_pg_core1159.PgColumn<{ + name: "version"; + tableName: "activities"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const activitiesOpenAPISchema: zod.ZodObject<{ - userId: zod.ZodString; - activeAt: zod.ZodString; - platform: zod.ZodString; - version: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - userId: string; - activeAt: string; - platform: string; - version: string | null; +declare const activitiesOpenAPISchema: zod1169.ZodObject<{ + userId: zod1169.ZodString; + activeAt: zod1169.ZodString; + platform: zod1169.ZodString; + version: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + userId: string; + activeAt: string; + platform: string; + version: string | null; }, { - userId: string; - activeAt: string; - platform: string; - version: string | null; + userId: string; + activeAt: string; + platform: string; + version: string | null; }>; - +//#endregion +//#region src/schema/airdrops.d.ts declare const detailModelSchema: z.ZodNullable>; +type DetailModel = z.infer; +declare const activityEnum: readonly ["public_beta"]; +type AirdropActivity = typeof activityEnum[number]; +declare const airdrops: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "airdrops"; + schema: undefined; + columns: { + activity: drizzle_orm_pg_core1159.PgColumn<{ + name: "activity"; + tableName: "airdrops"; + dataType: "string"; + columnType: "PgText"; + data: "public_beta"; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: ["public_beta"]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "airdrops"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + amount: drizzle_orm_pg_core1159.PgColumn<{ + name: "amount"; + tableName: "airdrops"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + rank: drizzle_orm_pg_core1159.PgColumn<{ + name: "rank"; + tableName: "airdrops"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + detail: drizzle_orm_pg_core1159.PgColumn<{ + name: "detail"; + tableName: "airdrops"; + dataType: "json"; + columnType: "PgJsonb"; + data: { + "Invitations count": number; + "Purchase lists cost": number; + "Total tip amount": number; + "Feeds subscriptions count": number; + "Lists subscriptions count": number; + "Inbox subscriptions count": number; + "Recent read count in the last month": number; + "Mint count": number; + "Claimed feeds count": number; + "Claimed feeds subscriptions count": number; + "Lists with more than 1 feed count": number; + "Created lists subscriptions count": number; + "Created lists income amount": number; + "GitHub Community Contributions": number; + "Invitations count Rank": number; + "Purchase lists cost Rank": number; + "Total tip amount Rank": number; + "Feeds subscriptions count Rank": number; + "Lists subscriptions count Rank": number; + "Inbox subscriptions count Rank": number; + "Recent read count in the last month Rank": number; + "Mint count Rank": number; + "Claimed feeds count Rank": number; + "Claimed feeds subscriptions count Rank": number; + "Lists with more than 1 feed count Rank": number; + "Created lists subscriptions count Rank": number; + "Created lists income amount Rank": number; + "GitHub Community Contributions Rank": number; + } | null; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: { + "Invitations count": number; + "Purchase lists cost": number; + "Total tip amount": number; + "Feeds subscriptions count": number; + "Lists subscriptions count": number; + "Inbox subscriptions count": number; + "Recent read count in the last month": number; + "Mint count": number; + "Claimed feeds count": number; + "Claimed feeds subscriptions count": number; + "Lists with more than 1 feed count": number; + "Created lists subscriptions count": number; + "Created lists income amount": number; + "GitHub Community Contributions": number; + "Invitations count Rank": number; + "Purchase lists cost Rank": number; + "Total tip amount Rank": number; + "Feeds subscriptions count Rank": number; + "Lists subscriptions count Rank": number; + "Inbox subscriptions count Rank": number; + "Recent read count in the last month Rank": number; + "Mint count Rank": number; + "Claimed feeds count Rank": number; + "Claimed feeds subscriptions count Rank": number; + "Lists with more than 1 feed count Rank": number; + "Created lists subscriptions count Rank": number; + "Created lists income amount Rank": number; + "GitHub Community Contributions Rank": number; + } | null; + }>; + verify: drizzle_orm_pg_core1159.PgColumn<{ + name: "verify"; + tableName: "airdrops"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + tx: drizzle_orm_pg_core1159.PgColumn<{ + name: "tx"; + tableName: "airdrops"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const airdropsOpenAPISchema: z.ZodObject; + userId: z.ZodString; + amount: z.ZodString; + rank: z.ZodNullable; + detail: z.ZodNullable>; + verify: z.ZodNullable; + tx: z.ZodNullable; +}, "detail"> & { + detail: z.ZodNullable>; -type DetailModel = z.infer; -declare const activityEnum: readonly ["public_beta"]; -type AirdropActivity = typeof activityEnum[number]; -declare const airdrops: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "airdrops"; - schema: undefined; - columns: { - activity: drizzle_orm_pg_core.PgColumn<{ - name: "activity"; - tableName: "airdrops"; - dataType: "string"; - columnType: "PgText"; - data: "public_beta"; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: ["public_beta"]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "airdrops"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - amount: drizzle_orm_pg_core.PgColumn<{ - name: "amount"; - tableName: "airdrops"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - rank: drizzle_orm_pg_core.PgColumn<{ - name: "rank"; - tableName: "airdrops"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - detail: drizzle_orm_pg_core.PgColumn<{ - name: "detail"; - tableName: "airdrops"; - dataType: "json"; - columnType: "PgJsonb"; - data: { - "Invitations count": number; - "Purchase lists cost": number; - "Total tip amount": number; - "Feeds subscriptions count": number; - "Lists subscriptions count": number; - "Inbox subscriptions count": number; - "Recent read count in the last month": number; - "Mint count": number; - "Claimed feeds count": number; - "Claimed feeds subscriptions count": number; - "Lists with more than 1 feed count": number; - "Created lists subscriptions count": number; - "Created lists income amount": number; - "GitHub Community Contributions": number; - "Invitations count Rank": number; - "Purchase lists cost Rank": number; - "Total tip amount Rank": number; - "Feeds subscriptions count Rank": number; - "Lists subscriptions count Rank": number; - "Inbox subscriptions count Rank": number; - "Recent read count in the last month Rank": number; - "Mint count Rank": number; - "Claimed feeds count Rank": number; - "Claimed feeds subscriptions count Rank": number; - "Lists with more than 1 feed count Rank": number; - "Created lists subscriptions count Rank": number; - "Created lists income amount Rank": number; - "GitHub Community Contributions Rank": number; - } | null; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: { - "Invitations count": number; - "Purchase lists cost": number; - "Total tip amount": number; - "Feeds subscriptions count": number; - "Lists subscriptions count": number; - "Inbox subscriptions count": number; - "Recent read count in the last month": number; - "Mint count": number; - "Claimed feeds count": number; - "Claimed feeds subscriptions count": number; - "Lists with more than 1 feed count": number; - "Created lists subscriptions count": number; - "Created lists income amount": number; - "GitHub Community Contributions": number; - "Invitations count Rank": number; - "Purchase lists cost Rank": number; - "Total tip amount Rank": number; - "Feeds subscriptions count Rank": number; - "Lists subscriptions count Rank": number; - "Inbox subscriptions count Rank": number; - "Recent read count in the last month Rank": number; - "Mint count Rank": number; - "Claimed feeds count Rank": number; - "Claimed feeds subscriptions count Rank": number; - "Lists with more than 1 feed count Rank": number; - "Created lists subscriptions count Rank": number; - "Created lists income amount Rank": number; - "GitHub Community Contributions Rank": number; - } | null; - }>; - verify: drizzle_orm_pg_core.PgColumn<{ - name: "verify"; - tableName: "airdrops"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - tx: drizzle_orm_pg_core.PgColumn<{ - name: "tx"; - tableName: "airdrops"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; -}>; -declare const airdropsOpenAPISchema: z.ZodObject; - userId: z.ZodString; - amount: z.ZodString; - rank: z.ZodNullable; - detail: z.ZodNullable>; - verify: z.ZodNullable; - tx: z.ZodNullable; -}, "detail"> & { - detail: z.ZodNullable>; + }>>; }, "strip", z.ZodTypeAny, { - userId: string; - tx: string | null; - activity: "public_beta"; - amount: string; - rank: string | null; - detail: { - "Invitations count": number; - "Purchase lists cost": number; - "Total tip amount": number; - "Feeds subscriptions count": number; - "Lists subscriptions count": number; - "Inbox subscriptions count": number; - "Recent read count in the last month": number; - "Mint count": number; - "Claimed feeds count": number; - "Claimed feeds subscriptions count": number; - "Lists with more than 1 feed count": number; - "Created lists subscriptions count": number; - "Created lists income amount": number; - "GitHub Community Contributions": number; - "Invitations count Rank": number; - "Purchase lists cost Rank": number; - "Total tip amount Rank": number; - "Feeds subscriptions count Rank": number; - "Lists subscriptions count Rank": number; - "Inbox subscriptions count Rank": number; - "Recent read count in the last month Rank": number; - "Mint count Rank": number; - "Claimed feeds count Rank": number; - "Claimed feeds subscriptions count Rank": number; - "Lists with more than 1 feed count Rank": number; - "Created lists subscriptions count Rank": number; - "Created lists income amount Rank": number; - "GitHub Community Contributions Rank": number; - } | null; - verify: string | null; + userId: string; + tx: string | null; + activity: "public_beta"; + amount: string; + rank: string | null; + detail: { + "Invitations count": number; + "Purchase lists cost": number; + "Total tip amount": number; + "Feeds subscriptions count": number; + "Lists subscriptions count": number; + "Inbox subscriptions count": number; + "Recent read count in the last month": number; + "Mint count": number; + "Claimed feeds count": number; + "Claimed feeds subscriptions count": number; + "Lists with more than 1 feed count": number; + "Created lists subscriptions count": number; + "Created lists income amount": number; + "GitHub Community Contributions": number; + "Invitations count Rank": number; + "Purchase lists cost Rank": number; + "Total tip amount Rank": number; + "Feeds subscriptions count Rank": number; + "Lists subscriptions count Rank": number; + "Inbox subscriptions count Rank": number; + "Recent read count in the last month Rank": number; + "Mint count Rank": number; + "Claimed feeds count Rank": number; + "Claimed feeds subscriptions count Rank": number; + "Lists with more than 1 feed count Rank": number; + "Created lists subscriptions count Rank": number; + "Created lists income amount Rank": number; + "GitHub Community Contributions Rank": number; + } | null; + verify: string | null; }, { - userId: string; - tx: string | null; - activity: "public_beta"; - amount: string; - rank: string | null; - detail: { - "Invitations count": number; - "Purchase lists cost": number; - "Total tip amount": number; - "Feeds subscriptions count": number; - "Lists subscriptions count": number; - "Inbox subscriptions count": number; - "Recent read count in the last month": number; - "Mint count": number; - "Claimed feeds count": number; - "Claimed feeds subscriptions count": number; - "Lists with more than 1 feed count": number; - "Created lists subscriptions count": number; - "Created lists income amount": number; - "GitHub Community Contributions": number; - "Invitations count Rank": number; - "Purchase lists cost Rank": number; - "Total tip amount Rank": number; - "Feeds subscriptions count Rank": number; - "Lists subscriptions count Rank": number; - "Inbox subscriptions count Rank": number; - "Recent read count in the last month Rank": number; - "Mint count Rank": number; - "Claimed feeds count Rank": number; - "Claimed feeds subscriptions count Rank": number; - "Lists with more than 1 feed count Rank": number; - "Created lists subscriptions count Rank": number; - "Created lists income amount Rank": number; - "GitHub Community Contributions Rank": number; - } | null; - verify: string | null; + userId: string; + tx: string | null; + activity: "public_beta"; + amount: string; + rank: string | null; + detail: { + "Invitations count": number; + "Purchase lists cost": number; + "Total tip amount": number; + "Feeds subscriptions count": number; + "Lists subscriptions count": number; + "Inbox subscriptions count": number; + "Recent read count in the last month": number; + "Mint count": number; + "Claimed feeds count": number; + "Claimed feeds subscriptions count": number; + "Lists with more than 1 feed count": number; + "Created lists subscriptions count": number; + "Created lists income amount": number; + "GitHub Community Contributions": number; + "Invitations count Rank": number; + "Purchase lists cost Rank": number; + "Total tip amount Rank": number; + "Feeds subscriptions count Rank": number; + "Lists subscriptions count Rank": number; + "Inbox subscriptions count Rank": number; + "Recent read count in the last month Rank": number; + "Mint count Rank": number; + "Claimed feeds count Rank": number; + "Claimed feeds subscriptions count Rank": number; + "Lists with more than 1 feed count Rank": number; + "Created lists subscriptions count Rank": number; + "Created lists income amount Rank": number; + "GitHub Community Contributions Rank": number; + } | null; + verify: string | null; }>; - -declare const captcha: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "captcha"; - schema: undefined; - columns: { - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "captcha"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - failedCount: drizzle_orm_pg_core.PgColumn<{ - name: "failed_count"; - tableName: "captcha"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - passedCount: drizzle_orm_pg_core.PgColumn<{ - name: "passed_count"; - tableName: "captcha"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/captcha.d.ts +declare const captcha: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "captcha"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "captcha"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + failedCount: drizzle_orm_pg_core1159.PgColumn<{ + name: "failed_count"; + tableName: "captcha"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + passedCount: drizzle_orm_pg_core1159.PgColumn<{ + name: "passed_count"; + tableName: "captcha"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; - -declare const collections: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "collections"; - schema: undefined; - columns: { - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "collections"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - feedId: drizzle_orm_pg_core.PgColumn<{ - name: "feed_id"; - tableName: "collections"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - entryId: drizzle_orm_pg_core.PgColumn<{ - name: "entry_id"; - tableName: "collections"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "collections"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - view: drizzle_orm_pg_core.PgColumn<{ - name: "view"; - tableName: "collections"; - dataType: "number"; - columnType: "PgSmallInt"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/collections.d.ts +declare const collections: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "collections"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "collections"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + feedId: drizzle_orm_pg_core1159.PgColumn<{ + name: "feed_id"; + tableName: "collections"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + entryId: drizzle_orm_pg_core1159.PgColumn<{ + name: "entry_id"; + tableName: "collections"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "collections"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + view: drizzle_orm_pg_core1159.PgColumn<{ + name: "view"; + tableName: "collections"; + dataType: "number"; + columnType: "PgSmallInt"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const collectionsOpenAPISchema: zod.ZodObject<{ - userId: zod.ZodString; - feedId: zod.ZodString; - entryId: zod.ZodString; - createdAt: zod.ZodString; - view: zod.ZodNumber; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - createdAt: string; - userId: string; - view: number; - feedId: string; - entryId: string; +declare const collectionsOpenAPISchema: zod1169.ZodObject<{ + userId: zod1169.ZodString; + feedId: zod1169.ZodString; + entryId: zod1169.ZodString; + createdAt: zod1169.ZodString; + view: zod1169.ZodNumber; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + createdAt: string; + userId: string; + view: number; + feedId: string; + entryId: string; }, { - createdAt: string; - userId: string; - view: number; - feedId: string; - entryId: string; + createdAt: string; + userId: string; + view: number; + feedId: string; + entryId: string; }>; -declare const collectionsRelations: drizzle_orm.Relations<"collections", { - users: drizzle_orm.One<"user", true>; - entries: drizzle_orm.One<"entries", true>; - feeds: drizzle_orm.One<"feeds", true>; +declare const collectionsRelations: drizzle_orm1055.Relations<"collections", { + users: drizzle_orm1055.One<"user", true>; + entries: drizzle_orm1055.One<"entries", true>; + feeds: drizzle_orm1055.One<"feeds", true>; }>; - +//#endregion +//#region src/schema/entries.d.ts type MediaModel = { - url: string; - type: "photo" | "video"; - preview_image_url?: string; - width?: number; - height?: number; - blurhash?: string; + url: string; + type: "photo" | "video"; + preview_image_url?: string; + width?: number; + height?: number; + blurhash?: string; }; type AttachmentsModel = { - url: string; - duration_in_seconds?: number | string; - mime_type?: string; - size_in_bytes?: number; - title?: string; + url: string; + duration_in_seconds?: number | string; + mime_type?: string; + size_in_bytes?: number; + title?: string; }; type ExtraModel = { - links?: { - url: string; - type: string; - content_html?: string; - }[]; + links?: { + url: string; + type: string; + content_html?: string; + }[]; }; declare const CommonEntryFields: { - id: drizzle_orm.HasRuntimeDefault>>>>; - title: drizzle_orm_pg_core.PgTextBuilderInitial<"title", [string, ...string[]]>; - url: drizzle_orm_pg_core.PgTextBuilderInitial<"url", [string, ...string[]]>; - content: drizzle_orm_pg_core.PgTextBuilderInitial<"content", [string, ...string[]]>; - description: drizzle_orm_pg_core.PgTextBuilderInitial<"description", [string, ...string[]]>; - guid: drizzle_orm.NotNull>; - author: drizzle_orm_pg_core.PgTextBuilderInitial<"author", [string, ...string[]]>; - authorUrl: drizzle_orm_pg_core.PgTextBuilderInitial<"author_url", [string, ...string[]]>; - authorAvatar: drizzle_orm_pg_core.PgTextBuilderInitial<"author_avatar", [string, ...string[]]>; - insertedAt: drizzle_orm.NotNull>; - publishedAt: drizzle_orm.NotNull>; - media: drizzle_orm.$Type, MediaModel[]>; - categories: drizzle_orm_pg_core.PgArrayBuilder<{ + id: drizzle_orm1055.HasRuntimeDefault>>>>; + title: drizzle_orm_pg_core1159.PgTextBuilderInitial<"title", [string, ...string[]]>; + url: drizzle_orm_pg_core1159.PgTextBuilderInitial<"url", [string, ...string[]]>; + content: drizzle_orm_pg_core1159.PgTextBuilderInitial<"content", [string, ...string[]]>; + description: drizzle_orm_pg_core1159.PgTextBuilderInitial<"description", [string, ...string[]]>; + guid: drizzle_orm1055.NotNull>; + author: drizzle_orm_pg_core1159.PgTextBuilderInitial<"author", [string, ...string[]]>; + authorUrl: drizzle_orm_pg_core1159.PgTextBuilderInitial<"author_url", [string, ...string[]]>; + authorAvatar: drizzle_orm_pg_core1159.PgTextBuilderInitial<"author_avatar", [string, ...string[]]>; + insertedAt: drizzle_orm1055.NotNull>; + publishedAt: drizzle_orm1055.NotNull>; + media: drizzle_orm1055.$Type, MediaModel[]>; + categories: drizzle_orm_pg_core1159.PgArrayBuilder<{ + name: "categories"; + dataType: "array"; + columnType: "PgArray"; + data: string[]; + driverParam: string | string[]; + enumValues: [string, ...string[]]; + size: undefined; + baseBuilder: { + name: "categories"; + dataType: "string"; + columnType: "PgText"; + data: string; + enumValues: [string, ...string[]]; + driverParam: string; + }; + }, { + name: "categories"; + dataType: "string"; + columnType: "PgText"; + data: string; + enumValues: [string, ...string[]]; + driverParam: string; + }>; + attachments: drizzle_orm1055.$Type, AttachmentsModel[]>; + extra: drizzle_orm1055.$Type, ExtraModel>; + language: drizzle_orm_pg_core1159.PgTextBuilderInitial<"language", [string, ...string[]]>; +}; +declare const entries: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "entries"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + title: drizzle_orm_pg_core1159.PgColumn<{ + name: "title"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + url: drizzle_orm_pg_core1159.PgColumn<{ + name: "url"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + content: drizzle_orm_pg_core1159.PgColumn<{ + name: "content"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + description: drizzle_orm_pg_core1159.PgColumn<{ + name: "description"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + guid: drizzle_orm_pg_core1159.PgColumn<{ + name: "guid"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + author: drizzle_orm_pg_core1159.PgColumn<{ + name: "author"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + authorUrl: drizzle_orm_pg_core1159.PgColumn<{ + name: "author_url"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + authorAvatar: drizzle_orm_pg_core1159.PgColumn<{ + name: "author_avatar"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + insertedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "inserted_at"; + tableName: "entries"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + publishedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "published_at"; + tableName: "entries"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + media: drizzle_orm_pg_core1159.PgColumn<{ + name: "media"; + tableName: "entries"; + dataType: "json"; + columnType: "PgJsonb"; + data: MediaModel[]; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: MediaModel[]; + }>; + categories: drizzle_orm_pg_core1159.PgColumn<{ + name: "categories"; + tableName: "entries"; + dataType: "array"; + columnType: "PgArray"; + data: string[]; + driverParam: string | string[]; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: drizzle_orm1055.Column<{ name: "categories"; - dataType: "array"; - columnType: "PgArray"; - data: string[]; - driverParam: string | string[]; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; enumValues: [string, ...string[]]; - size: undefined; - baseBuilder: { - name: "categories"; - dataType: "string"; - columnType: "PgText"; - data: string; - enumValues: [string, ...string[]]; - driverParam: string; - }; - }, { + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + identity: undefined; + generated: undefined; + }, {}, { + baseBuilder: drizzle_orm_pg_core1159.PgColumnBuilder<{ name: "categories"; dataType: "string"; columnType: "PgText"; data: string; enumValues: [string, ...string[]]; driverParam: string; + }, {}, {}, drizzle_orm1055.ColumnBuilderExtraConfig>; + size: undefined; }>; - attachments: drizzle_orm.$Type, AttachmentsModel[]>; - extra: drizzle_orm.$Type, ExtraModel>; - language: drizzle_orm_pg_core.PgTextBuilderInitial<"language", [string, ...string[]]>; -}; -declare const entries: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "entries"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - title: drizzle_orm_pg_core.PgColumn<{ - name: "title"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - url: drizzle_orm_pg_core.PgColumn<{ - name: "url"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - content: drizzle_orm_pg_core.PgColumn<{ - name: "content"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - description: drizzle_orm_pg_core.PgColumn<{ - name: "description"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - guid: drizzle_orm_pg_core.PgColumn<{ - name: "guid"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - author: drizzle_orm_pg_core.PgColumn<{ - name: "author"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - authorUrl: drizzle_orm_pg_core.PgColumn<{ - name: "author_url"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - authorAvatar: drizzle_orm_pg_core.PgColumn<{ - name: "author_avatar"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - insertedAt: drizzle_orm_pg_core.PgColumn<{ - name: "inserted_at"; - tableName: "entries"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - publishedAt: drizzle_orm_pg_core.PgColumn<{ - name: "published_at"; - tableName: "entries"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - media: drizzle_orm_pg_core.PgColumn<{ - name: "media"; - tableName: "entries"; - dataType: "json"; - columnType: "PgJsonb"; - data: MediaModel[]; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: MediaModel[]; - }>; - categories: drizzle_orm_pg_core.PgColumn<{ - name: "categories"; - tableName: "entries"; - dataType: "array"; - columnType: "PgArray"; - data: string[]; - driverParam: string | string[]; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: drizzle_orm.Column<{ - name: "categories"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - identity: undefined; - generated: undefined; - }, {}, { - baseBuilder: drizzle_orm_pg_core.PgColumnBuilder<{ - name: "categories"; - dataType: "string"; - columnType: "PgText"; - data: string; - enumValues: [string, ...string[]]; - driverParam: string; - }, {}, {}, drizzle_orm.ColumnBuilderExtraConfig>; - size: undefined; - }>; - attachments: drizzle_orm_pg_core.PgColumn<{ - name: "attachments"; - tableName: "entries"; - dataType: "json"; - columnType: "PgJsonb"; - data: AttachmentsModel[]; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: AttachmentsModel[]; - }>; - extra: drizzle_orm_pg_core.PgColumn<{ - name: "extra"; - tableName: "entries"; - dataType: "json"; - columnType: "PgJsonb"; - data: ExtraModel; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: ExtraModel; - }>; - language: drizzle_orm_pg_core.PgColumn<{ - name: "language"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - feedId: drizzle_orm_pg_core.PgColumn<{ - name: "feed_id"; - tableName: "entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; + attachments: drizzle_orm_pg_core1159.PgColumn<{ + name: "attachments"; + tableName: "entries"; + dataType: "json"; + columnType: "PgJsonb"; + data: AttachmentsModel[]; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: AttachmentsModel[]; + }>; + extra: drizzle_orm_pg_core1159.PgColumn<{ + name: "extra"; + tableName: "entries"; + dataType: "json"; + columnType: "PgJsonb"; + data: ExtraModel; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: ExtraModel; + }>; + language: drizzle_orm_pg_core1159.PgColumn<{ + name: "language"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + feedId: drizzle_orm_pg_core1159.PgColumn<{ + name: "feed_id"; + tableName: "entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; declare const attachmentsZodSchema: z.ZodNullable>; + mime_type: z.ZodOptional; + size_in_bytes: z.ZodOptional; + title: z.ZodOptional; +}, "strip", z.ZodTypeAny, { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; +}, { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; +}>, "many">>>; +declare const mediaZodSchema: z.ZodNullable; + width: z.ZodOptional; + height: z.ZodOptional; + preview_image_url: z.ZodOptional; + blurhash: z.ZodOptional; +}, "strip", z.ZodTypeAny, { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; +}, { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; +}>, "many">>>; +declare const extraZodSchema: z.ZodNullable; + }, "strip", z.ZodTypeAny, { + type: string; + url: string; + content_html?: string | undefined; + }, { + type: string; + url: string; + content_html?: string | undefined; + }>, "many">>>; +}, "strip", z.ZodTypeAny, { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; +}, { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; +}>>>; +declare const entriesOpenAPISchema: z.ZodObject; + url: z.ZodNullable; + content: z.ZodNullable; + description: z.ZodNullable; + guid: z.ZodString; + author: z.ZodNullable; + authorUrl: z.ZodNullable; + authorAvatar: z.ZodNullable; + insertedAt: z.ZodString; + publishedAt: z.ZodString; + media: z.ZodNullable>; + categories: z.ZodNullable>; + attachments: z.ZodNullable>; + extra: z.ZodNullable>; + language: z.ZodNullable; + feedId: z.ZodString; +}, "media" | "attachments" | "extra"> & { + attachments: z.ZodNullable>; mime_type: z.ZodOptional; size_in_bytes: z.ZodOptional; title: z.ZodOptional; -}, "strip", z.ZodTypeAny, { + }, "strip", z.ZodTypeAny, { url: string; title?: string | undefined; duration_in_seconds?: string | number | undefined; mime_type?: string | undefined; size_in_bytes?: number | undefined; -}, { + }, { url: string; title?: string | undefined; duration_in_seconds?: string | number | undefined; mime_type?: string | undefined; size_in_bytes?: number | undefined; -}>, "many">>>; -declare const mediaZodSchema: z.ZodNullable, "many">>>; + media: z.ZodNullable; width: z.ZodOptional; height: z.ZodOptional; preview_image_url: z.ZodOptional; blurhash: z.ZodOptional; -}, "strip", z.ZodTypeAny, { + }, "strip", z.ZodTypeAny, { type: "photo" | "video"; url: string; width?: number | undefined; height?: number | undefined; preview_image_url?: string | undefined; blurhash?: string | undefined; -}, { + }, { type: "photo" | "video"; url: string; width?: number | undefined; height?: number | undefined; preview_image_url?: string | undefined; blurhash?: string | undefined; -}>, "many">>>; -declare const extraZodSchema: z.ZodNullable, "many">>>; + extra: z.ZodNullable; + url: z.ZodString; + type: z.ZodString; + content_html: z.ZodOptional; }, "strip", z.ZodTypeAny, { - type: string; - url: string; - content_html?: string | undefined; + type: string; + url: string; + content_html?: string | undefined; }, { - type: string; - url: string; - content_html?: string | undefined; + type: string; + url: string; + content_html?: string | undefined; }>, "many">>>; -}, "strip", z.ZodTypeAny, { + }, "strip", z.ZodTypeAny, { links?: { - type: string; - url: string; - content_html?: string | undefined; + type: string; + url: string; + content_html?: string | undefined; }[] | null | undefined; -}, { + }, { links?: { - type: string; - url: string; - content_html?: string | undefined; + type: string; + url: string; + content_html?: string | undefined; }[] | null | undefined; -}>>>; -declare const entriesOpenAPISchema: z.ZodObject; - url: z.ZodNullable; - content: z.ZodNullable; - description: z.ZodNullable; - guid: z.ZodString; - author: z.ZodNullable; - authorUrl: z.ZodNullable; - authorAvatar: z.ZodNullable; - insertedAt: z.ZodString; - publishedAt: z.ZodString; - media: z.ZodNullable>; - categories: z.ZodNullable>; - attachments: z.ZodNullable>; - extra: z.ZodNullable>; - language: z.ZodNullable; - feedId: z.ZodString; -}, "media" | "attachments" | "extra"> & { - attachments: z.ZodNullable>; - mime_type: z.ZodOptional; - size_in_bytes: z.ZodOptional; - title: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }, { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }>, "many">>>; - media: z.ZodNullable; - width: z.ZodOptional; - height: z.ZodOptional; - preview_image_url: z.ZodOptional; - blurhash: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }, { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }>, "many">>>; - extra: z.ZodNullable; - }, "strip", z.ZodTypeAny, { - type: string; - url: string; - content_html?: string | undefined; - }, { - type: string; - url: string; - content_html?: string | undefined; - }>, "many">>>; - }, "strip", z.ZodTypeAny, { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - }, { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - }>>>; + }>>>; }, "strip", z.ZodTypeAny, { - id: string; - description: string | null; - title: string | null; - content: string | null; - author: string | null; - url: string | null; - language: string | null; - feedId: string; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - insertedAt: string; - publishedAt: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; + id: string; + description: string | null; + title: string | null; + content: string | null; + author: string | null; + url: string | null; + language: string | null; + feedId: string; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: string; + publishedAt: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; + } | null | undefined; }, { - id: string; - description: string | null; - title: string | null; - content: string | null; - author: string | null; - url: string | null; - language: string | null; - feedId: string; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - insertedAt: string; - publishedAt: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; + id: string; + description: string | null; + title: string | null; + content: string | null; + author: string | null; + url: string | null; + language: string | null; + feedId: string; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: string; + publishedAt: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; + } | null | undefined; }>; -declare const entriesRelations: drizzle_orm.Relations<"entries", { - feeds: drizzle_orm.One<"feeds", true>; - collections: drizzle_orm.Many<"collections">; - feedPowerTokens: drizzle_orm.One<"feedPowerTokens", true>; +declare const entriesRelations: drizzle_orm1055.Relations<"entries", { + feeds: drizzle_orm1055.One<"feeds", true>; + collections: drizzle_orm1055.Many<"collections">; + feedPowerTokens: drizzle_orm1055.One<"feedPowerTokens", true>; }>; type EntriesModel = InferInsertModel & { - attachments?: AttachmentsModel[] | null; - media?: MediaModel[] | null; + attachments?: AttachmentsModel[] | null; + media?: MediaModel[] | null; }; -declare const urlReads: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "urlReads"; - schema: undefined; - columns: { - url: drizzle_orm_pg_core.PgColumn<{ - name: "url"; - tableName: "urlReads"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userIds: drizzle_orm_pg_core.PgColumn<{ - name: "user_ids"; - tableName: "urlReads"; - dataType: "array"; - columnType: "PgArray"; - data: string[]; - driverParam: string | string[]; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: drizzle_orm.Column<{ - name: "user_ids"; - tableName: "urlReads"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - identity: undefined; - generated: undefined; - }, {}, { - baseBuilder: drizzle_orm_pg_core.PgColumnBuilder<{ - name: "user_ids"; - dataType: "string"; - columnType: "PgText"; - data: string; - enumValues: [string, ...string[]]; - driverParam: string; - }, {}, {}, drizzle_orm.ColumnBuilderExtraConfig>; - size: undefined; - }>; - count: drizzle_orm_pg_core.PgColumn<{ - name: "count"; - tableName: "urlReads"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +declare const urlReads: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "urlReads"; + schema: undefined; + columns: { + url: drizzle_orm_pg_core1159.PgColumn<{ + name: "url"; + tableName: "urlReads"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userIds: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_ids"; + tableName: "urlReads"; + dataType: "array"; + columnType: "PgArray"; + data: string[]; + driverParam: string | string[]; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: drizzle_orm1055.Column<{ + name: "user_ids"; + tableName: "urlReads"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + identity: undefined; + generated: undefined; + }, {}, { + baseBuilder: drizzle_orm_pg_core1159.PgColumnBuilder<{ + name: "user_ids"; + dataType: "string"; + columnType: "PgText"; + data: string; + enumValues: [string, ...string[]]; + driverParam: string; + }, {}, {}, drizzle_orm1055.ColumnBuilderExtraConfig>; + size: undefined; + }>; + count: drizzle_orm_pg_core1159.PgColumn<{ + name: "count"; + tableName: "urlReads"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; type UrlReadsModel = InferInsertModel; declare const urlReadsOpenAPISchema: z.ZodObject<{ - url: z.ZodString; - userIds: z.ZodArray; - count: z.ZodNumber; + url: z.ZodString; + userIds: z.ZodArray; + count: z.ZodNumber; }, z.UnknownKeysParam, z.ZodTypeAny, { - url: string; - userIds: string[]; - count: number; + url: string; + userIds: string[]; + count: number; }, { - url: string; - userIds: string[]; - count: number; + url: string; + userIds: string[]; + count: number; }>; - -declare const feedAnalytics: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "feed_analytics"; - schema: undefined; - columns: { - feedId: drizzle_orm_pg_core.PgColumn<{ - name: "feed_id"; - tableName: "feed_analytics"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - updatesPerWeek: drizzle_orm_pg_core.PgColumn<{ - name: "updates_per_week"; - tableName: "feed_analytics"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - subscriptionCount: drizzle_orm_pg_core.PgColumn<{ - name: "subscription_count"; - tableName: "feed_analytics"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - latestEntryPublishedAt: drizzle_orm_pg_core.PgColumn<{ - name: "latest_entry_published_at"; - tableName: "feed_analytics"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - view: drizzle_orm_pg_core.PgColumn<{ - name: "view"; - tableName: "feed_analytics"; - dataType: "number"; - columnType: "PgSmallInt"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/feeds/analytics.d.ts +declare const feedAnalytics: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "feed_analytics"; + schema: undefined; + columns: { + feedId: drizzle_orm_pg_core1159.PgColumn<{ + name: "feed_id"; + tableName: "feed_analytics"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + updatesPerWeek: drizzle_orm_pg_core1159.PgColumn<{ + name: "updates_per_week"; + tableName: "feed_analytics"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + subscriptionCount: drizzle_orm_pg_core1159.PgColumn<{ + name: "subscription_count"; + tableName: "feed_analytics"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + latestEntryPublishedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "latest_entry_published_at"; + tableName: "feed_analytics"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + view: drizzle_orm_pg_core1159.PgColumn<{ + name: "view"; + tableName: "feed_analytics"; + dataType: "number"; + columnType: "PgSmallInt"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const feedAnalyticsOpenAPISchema: zod.ZodObject<{ - feedId: zod.ZodString; - updatesPerWeek: zod.ZodNullable; - subscriptionCount: zod.ZodNullable; - latestEntryPublishedAt: zod.ZodNullable; - view: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - view: number | null; - feedId: string; - updatesPerWeek: number | null; - subscriptionCount: number | null; - latestEntryPublishedAt: string | null; +declare const feedAnalyticsOpenAPISchema: zod1169.ZodObject<{ + feedId: zod1169.ZodString; + updatesPerWeek: zod1169.ZodNullable; + subscriptionCount: zod1169.ZodNullable; + latestEntryPublishedAt: zod1169.ZodNullable; + view: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + view: number | null; + feedId: string; + updatesPerWeek: number | null; + subscriptionCount: number | null; + latestEntryPublishedAt: string | null; }, { - view: number | null; - feedId: string; - updatesPerWeek: number | null; - subscriptionCount: number | null; - latestEntryPublishedAt: string | null; + view: number | null; + feedId: string; + updatesPerWeek: number | null; + subscriptionCount: number | null; + latestEntryPublishedAt: string | null; }>; -declare const feedAnalyticsRelations: drizzle_orm.Relations<"feed_analytics", { - feed: drizzle_orm.One<"feeds", true>; +declare const feedAnalyticsRelations: drizzle_orm1055.Relations<"feed_analytics", { + feed: drizzle_orm1055.One<"feeds", true>; }>; - -declare const feeds: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "feeds"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - url: drizzle_orm_pg_core.PgColumn<{ - name: "url"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - title: drizzle_orm_pg_core.PgColumn<{ - name: "title"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - description: drizzle_orm_pg_core.PgColumn<{ - name: "description"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - siteUrl: drizzle_orm_pg_core.PgColumn<{ - name: "site_url"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - image: drizzle_orm_pg_core.PgColumn<{ - name: "image"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - checkedAt: drizzle_orm_pg_core.PgColumn<{ - name: "checked_at"; - tableName: "feeds"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - lastModifiedHeader: drizzle_orm_pg_core.PgColumn<{ - name: "last_modified_header"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - etagHeader: drizzle_orm_pg_core.PgColumn<{ - name: "etag_header"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - ttl: drizzle_orm_pg_core.PgColumn<{ - name: "ttl"; - tableName: "feeds"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - errorMessage: drizzle_orm_pg_core.PgColumn<{ - name: "error_message"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - errorAt: drizzle_orm_pg_core.PgColumn<{ - name: "error_at"; - tableName: "feeds"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - ownerUserId: drizzle_orm_pg_core.PgColumn<{ - name: "owner_user_id"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - language: drizzle_orm_pg_core.PgColumn<{ - name: "language"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - migrateTo: drizzle_orm_pg_core.PgColumn<{ - name: "migrate_to"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - rsshubRoute: drizzle_orm_pg_core.PgColumn<{ - name: "rsshub_route"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - rsshubNamespace: drizzle_orm_pg_core.PgColumn<{ - name: "rsshub_namespace"; - tableName: "feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - nsfw: drizzle_orm_pg_core.PgColumn<{ - name: "nsfw"; - tableName: "feeds"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/feeds/feeds.d.ts +declare const feeds: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "feeds"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + url: drizzle_orm_pg_core1159.PgColumn<{ + name: "url"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + title: drizzle_orm_pg_core1159.PgColumn<{ + name: "title"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + description: drizzle_orm_pg_core1159.PgColumn<{ + name: "description"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + siteUrl: drizzle_orm_pg_core1159.PgColumn<{ + name: "site_url"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + image: drizzle_orm_pg_core1159.PgColumn<{ + name: "image"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + checkedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "checked_at"; + tableName: "feeds"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + lastModifiedHeader: drizzle_orm_pg_core1159.PgColumn<{ + name: "last_modified_header"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + etagHeader: drizzle_orm_pg_core1159.PgColumn<{ + name: "etag_header"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + ttl: drizzle_orm_pg_core1159.PgColumn<{ + name: "ttl"; + tableName: "feeds"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + errorMessage: drizzle_orm_pg_core1159.PgColumn<{ + name: "error_message"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + errorAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "error_at"; + tableName: "feeds"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + ownerUserId: drizzle_orm_pg_core1159.PgColumn<{ + name: "owner_user_id"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + language: drizzle_orm_pg_core1159.PgColumn<{ + name: "language"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + migrateTo: drizzle_orm_pg_core1159.PgColumn<{ + name: "migrate_to"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + rsshubRoute: drizzle_orm_pg_core1159.PgColumn<{ + name: "rsshub_route"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + rsshubNamespace: drizzle_orm_pg_core1159.PgColumn<{ + name: "rsshub_namespace"; + tableName: "feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + nsfw: drizzle_orm_pg_core1159.PgColumn<{ + name: "nsfw"; + tableName: "feeds"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const feedsOpenAPISchema: zod.ZodObject<{ - id: zod.ZodString; - url: zod.ZodString; - title: zod.ZodNullable; - description: zod.ZodNullable; - siteUrl: zod.ZodNullable; - image: zod.ZodNullable; - checkedAt: zod.ZodString; - lastModifiedHeader: zod.ZodNullable; - etagHeader: zod.ZodNullable; - ttl: zod.ZodNullable; - errorMessage: zod.ZodNullable; - errorAt: zod.ZodNullable; - ownerUserId: zod.ZodNullable; - language: zod.ZodNullable; - migrateTo: zod.ZodNullable; - rsshubRoute: zod.ZodNullable; - rsshubNamespace: zod.ZodNullable; - nsfw: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - id: string; - image: string | null; - description: string | null; - title: string | null; - url: string; - siteUrl: string | null; - checkedAt: string; - lastModifiedHeader: string | null; - etagHeader: string | null; - ttl: number | null; - errorMessage: string | null; - errorAt: string | null; - ownerUserId: string | null; - language: string | null; - migrateTo: string | null; - rsshubRoute: string | null; - rsshubNamespace: string | null; - nsfw: boolean | null; +declare const feedsOpenAPISchema: zod1169.ZodObject<{ + id: zod1169.ZodString; + url: zod1169.ZodString; + title: zod1169.ZodNullable; + description: zod1169.ZodNullable; + siteUrl: zod1169.ZodNullable; + image: zod1169.ZodNullable; + checkedAt: zod1169.ZodString; + lastModifiedHeader: zod1169.ZodNullable; + etagHeader: zod1169.ZodNullable; + ttl: zod1169.ZodNullable; + errorMessage: zod1169.ZodNullable; + errorAt: zod1169.ZodNullable; + ownerUserId: zod1169.ZodNullable; + language: zod1169.ZodNullable; + migrateTo: zod1169.ZodNullable; + rsshubRoute: zod1169.ZodNullable; + rsshubNamespace: zod1169.ZodNullable; + nsfw: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + id: string; + image: string | null; + description: string | null; + title: string | null; + url: string; + siteUrl: string | null; + checkedAt: string; + lastModifiedHeader: string | null; + etagHeader: string | null; + ttl: number | null; + errorMessage: string | null; + errorAt: string | null; + ownerUserId: string | null; + language: string | null; + migrateTo: string | null; + rsshubRoute: string | null; + rsshubNamespace: string | null; + nsfw: boolean | null; }, { - id: string; - image: string | null; - description: string | null; - title: string | null; - url: string; - siteUrl: string | null; - checkedAt: string; - lastModifiedHeader: string | null; - etagHeader: string | null; - ttl: number | null; - errorMessage: string | null; - errorAt: string | null; - ownerUserId: string | null; - language: string | null; - migrateTo: string | null; - rsshubRoute: string | null; - rsshubNamespace: string | null; - nsfw: boolean | null; + id: string; + image: string | null; + description: string | null; + title: string | null; + url: string; + siteUrl: string | null; + checkedAt: string; + lastModifiedHeader: string | null; + etagHeader: string | null; + ttl: number | null; + errorMessage: string | null; + errorAt: string | null; + ownerUserId: string | null; + language: string | null; + migrateTo: string | null; + rsshubRoute: string | null; + rsshubNamespace: string | null; + nsfw: boolean | null; }>; -declare const feedsRelations: drizzle_orm.Relations<"feeds", { - subscriptions: drizzle_orm.Many<"subscriptions">; - entries: drizzle_orm.Many<"entries">; - owner: drizzle_orm.One<"user", false>; - migrateTo: drizzle_orm.One<"feeds", false>; - trendingFeeds: drizzle_orm.Many<"trendings_feeds">; +declare const feedsRelations: drizzle_orm1055.Relations<"feeds", { + subscriptions: drizzle_orm1055.Many<"subscriptions">; + entries: drizzle_orm1055.Many<"entries">; + owner: drizzle_orm1055.One<"user", false>; + migrateTo: drizzle_orm1055.One<"feeds", false>; + trendingFeeds: drizzle_orm1055.Many<"trendings_feeds">; }>; type FeedModel = InferInsertModel; - -declare const subscriptions: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "subscriptions"; - schema: undefined; - columns: { - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "subscriptions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - feedId: drizzle_orm_pg_core.PgColumn<{ - name: "feed_id"; - tableName: "subscriptions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - view: drizzle_orm_pg_core.PgColumn<{ - name: "view"; - tableName: "subscriptions"; - dataType: "number"; - columnType: "PgSmallInt"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - category: drizzle_orm_pg_core.PgColumn<{ - name: "category"; - tableName: "subscriptions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - title: drizzle_orm_pg_core.PgColumn<{ - name: "title"; - tableName: "subscriptions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "subscriptions"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - isPrivate: drizzle_orm_pg_core.PgColumn<{ - name: "is_private"; - tableName: "subscriptions"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/feeds/subscriptions.d.ts +declare const subscriptions: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "subscriptions"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + feedId: drizzle_orm_pg_core1159.PgColumn<{ + name: "feed_id"; + tableName: "subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + view: drizzle_orm_pg_core1159.PgColumn<{ + name: "view"; + tableName: "subscriptions"; + dataType: "number"; + columnType: "PgSmallInt"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + category: drizzle_orm_pg_core1159.PgColumn<{ + name: "category"; + tableName: "subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + title: drizzle_orm_pg_core1159.PgColumn<{ + name: "title"; + tableName: "subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "subscriptions"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + isPrivate: drizzle_orm_pg_core1159.PgColumn<{ + name: "is_private"; + tableName: "subscriptions"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const subscriptionsOpenAPISchema: zod.ZodObject<{ - userId: zod.ZodString; - feedId: zod.ZodString; - view: zod.ZodNumber; - category: zod.ZodNullable; - title: zod.ZodNullable; - createdAt: zod.ZodString; - isPrivate: zod.ZodBoolean; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - createdAt: string; - userId: string; - title: string | null; - view: number; - category: string | null; - feedId: string; - isPrivate: boolean; +declare const subscriptionsOpenAPISchema: zod1169.ZodObject<{ + userId: zod1169.ZodString; + feedId: zod1169.ZodString; + view: zod1169.ZodNumber; + category: zod1169.ZodNullable; + title: zod1169.ZodNullable; + createdAt: zod1169.ZodString; + isPrivate: zod1169.ZodBoolean; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + createdAt: string; + userId: string; + title: string | null; + view: number; + category: string | null; + feedId: string; + isPrivate: boolean; }, { - createdAt: string; - userId: string; - title: string | null; - view: number; - category: string | null; - feedId: string; - isPrivate: boolean; + createdAt: string; + userId: string; + title: string | null; + view: number; + category: string | null; + feedId: string; + isPrivate: boolean; }>; -declare const subscriptionsRelations: drizzle_orm.Relations<"subscriptions", { - users: drizzle_orm.One<"user", true>; - feeds: drizzle_orm.One<"feeds", true>; - timeline: drizzle_orm.Many<"timeline">; - rsshubUsage: drizzle_orm.One<"rsshub_usage", true>; +declare const subscriptionsRelations: drizzle_orm1055.Relations<"subscriptions", { + users: drizzle_orm1055.One<"user", true>; + feeds: drizzle_orm1055.One<"feeds", true>; + timeline: drizzle_orm1055.Many<"timeline">; + rsshubUsage: drizzle_orm1055.One<"rsshub_usage", true>; }>; - -declare const inboxesEntries: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "inboxes_entries"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - title: drizzle_orm_pg_core.PgColumn<{ - name: "title"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - url: drizzle_orm_pg_core.PgColumn<{ - name: "url"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - content: drizzle_orm_pg_core.PgColumn<{ - name: "content"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - description: drizzle_orm_pg_core.PgColumn<{ - name: "description"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - guid: drizzle_orm_pg_core.PgColumn<{ - name: "guid"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - author: drizzle_orm_pg_core.PgColumn<{ - name: "author"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - authorUrl: drizzle_orm_pg_core.PgColumn<{ - name: "author_url"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - authorAvatar: drizzle_orm_pg_core.PgColumn<{ - name: "author_avatar"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - insertedAt: drizzle_orm_pg_core.PgColumn<{ - name: "inserted_at"; - tableName: "inboxes_entries"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - publishedAt: drizzle_orm_pg_core.PgColumn<{ - name: "published_at"; - tableName: "inboxes_entries"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - media: drizzle_orm_pg_core.PgColumn<{ - name: "media"; - tableName: "inboxes_entries"; - dataType: "json"; - columnType: "PgJsonb"; - data: MediaModel[]; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: MediaModel[]; - }>; - categories: drizzle_orm_pg_core.PgColumn<{ - name: "categories"; - tableName: "inboxes_entries"; - dataType: "array"; - columnType: "PgArray"; - data: string[]; - driverParam: string | string[]; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: drizzle_orm.Column<{ - name: "categories"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - identity: undefined; - generated: undefined; - }, {}, { - baseBuilder: drizzle_orm_pg_core.PgColumnBuilder<{ - name: "categories"; - dataType: "string"; - columnType: "PgText"; - data: string; - enumValues: [string, ...string[]]; - driverParam: string; - }, {}, {}, drizzle_orm.ColumnBuilderExtraConfig>; - size: undefined; - }>; - attachments: drizzle_orm_pg_core.PgColumn<{ - name: "attachments"; - tableName: "inboxes_entries"; - dataType: "json"; - columnType: "PgJsonb"; - data: AttachmentsModel[]; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: AttachmentsModel[]; - }>; - extra: drizzle_orm_pg_core.PgColumn<{ - name: "extra"; - tableName: "inboxes_entries"; - dataType: "json"; - columnType: "PgJsonb"; - data: ExtraModel; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: ExtraModel; - }>; - language: drizzle_orm_pg_core.PgColumn<{ - name: "language"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - inboxHandle: drizzle_orm_pg_core.PgColumn<{ - name: "inbox_handle"; - tableName: "inboxes_entries"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - read: drizzle_orm_pg_core.PgColumn<{ - name: "read"; - tableName: "inboxes_entries"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/inboxes/entries.d.ts +declare const inboxesEntries: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "inboxes_entries"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + title: drizzle_orm_pg_core1159.PgColumn<{ + name: "title"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + url: drizzle_orm_pg_core1159.PgColumn<{ + name: "url"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + content: drizzle_orm_pg_core1159.PgColumn<{ + name: "content"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + description: drizzle_orm_pg_core1159.PgColumn<{ + name: "description"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + guid: drizzle_orm_pg_core1159.PgColumn<{ + name: "guid"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + author: drizzle_orm_pg_core1159.PgColumn<{ + name: "author"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + authorUrl: drizzle_orm_pg_core1159.PgColumn<{ + name: "author_url"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + authorAvatar: drizzle_orm_pg_core1159.PgColumn<{ + name: "author_avatar"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + insertedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "inserted_at"; + tableName: "inboxes_entries"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + publishedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "published_at"; + tableName: "inboxes_entries"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + media: drizzle_orm_pg_core1159.PgColumn<{ + name: "media"; + tableName: "inboxes_entries"; + dataType: "json"; + columnType: "PgJsonb"; + data: MediaModel[]; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: MediaModel[]; + }>; + categories: drizzle_orm_pg_core1159.PgColumn<{ + name: "categories"; + tableName: "inboxes_entries"; + dataType: "array"; + columnType: "PgArray"; + data: string[]; + driverParam: string | string[]; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: drizzle_orm1055.Column<{ + name: "categories"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + identity: undefined; + generated: undefined; + }, {}, { + baseBuilder: drizzle_orm_pg_core1159.PgColumnBuilder<{ + name: "categories"; + dataType: "string"; + columnType: "PgText"; + data: string; + enumValues: [string, ...string[]]; + driverParam: string; + }, {}, {}, drizzle_orm1055.ColumnBuilderExtraConfig>; + size: undefined; + }>; + attachments: drizzle_orm_pg_core1159.PgColumn<{ + name: "attachments"; + tableName: "inboxes_entries"; + dataType: "json"; + columnType: "PgJsonb"; + data: AttachmentsModel[]; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: AttachmentsModel[]; + }>; + extra: drizzle_orm_pg_core1159.PgColumn<{ + name: "extra"; + tableName: "inboxes_entries"; + dataType: "json"; + columnType: "PgJsonb"; + data: ExtraModel; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: ExtraModel; + }>; + language: drizzle_orm_pg_core1159.PgColumn<{ + name: "language"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + inboxHandle: drizzle_orm_pg_core1159.PgColumn<{ + name: "inbox_handle"; + tableName: "inboxes_entries"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + read: drizzle_orm_pg_core1159.PgColumn<{ + name: "read"; + tableName: "inboxes_entries"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; declare const inboxesEntriesOpenAPISchema: z.ZodObject; - url: z.ZodNullable; - content: z.ZodNullable; - description: z.ZodNullable; - guid: z.ZodString; - author: z.ZodNullable; - authorUrl: z.ZodNullable; - authorAvatar: z.ZodNullable; - insertedAt: z.ZodString; - publishedAt: z.ZodString; - media: z.ZodNullable>; - categories: z.ZodNullable>; - attachments: z.ZodNullable>; - extra: z.ZodNullable>; - language: z.ZodNullable; - inboxHandle: z.ZodString; - read: z.ZodNullable; + id: z.ZodString; + title: z.ZodNullable; + url: z.ZodNullable; + content: z.ZodNullable; + description: z.ZodNullable; + guid: z.ZodString; + author: z.ZodNullable; + authorUrl: z.ZodNullable; + authorAvatar: z.ZodNullable; + insertedAt: z.ZodString; + publishedAt: z.ZodString; + media: z.ZodNullable>; + categories: z.ZodNullable>; + attachments: z.ZodNullable>; + extra: z.ZodNullable>; + language: z.ZodNullable; + inboxHandle: z.ZodString; + read: z.ZodNullable; }, "media" | "attachments" | "extra"> & { - attachments: z.ZodNullable>; - mime_type: z.ZodOptional; - size_in_bytes: z.ZodOptional; - title: z.ZodOptional; + attachments: z.ZodNullable>; + mime_type: z.ZodOptional; + size_in_bytes: z.ZodOptional; + title: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }, { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }>, "many">>>; + media: z.ZodNullable; + width: z.ZodOptional; + height: z.ZodOptional; + preview_image_url: z.ZodOptional; + blurhash: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }, { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }>, "many">>>; + extra: z.ZodNullable; }, "strip", z.ZodTypeAny, { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; + type: string; + url: string; + content_html?: string | undefined; }, { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; + type: string; + url: string; + content_html?: string | undefined; }>, "many">>>; - media: z.ZodNullable; - width: z.ZodOptional; - height: z.ZodOptional; - preview_image_url: z.ZodOptional; - blurhash: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }, { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }>, "many">>>; - extra: z.ZodNullable; - }, "strip", z.ZodTypeAny, { - type: string; - url: string; - content_html?: string | undefined; - }, { - type: string; - url: string; - content_html?: string | undefined; - }>, "many">>>; - }, "strip", z.ZodTypeAny, { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - }, { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - }>>>; + }, "strip", z.ZodTypeAny, { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + }, { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + }>>>; }, "strip", z.ZodTypeAny, { - id: string; - description: string | null; - title: string | null; - content: string | null; - author: string | null; - url: string | null; - language: string | null; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - insertedAt: string; - publishedAt: string; - read: boolean | null; - inboxHandle: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; + id: string; + description: string | null; + title: string | null; + content: string | null; + author: string | null; + url: string | null; + language: string | null; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: string; + publishedAt: string; + read: boolean | null; + inboxHandle: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; + } | null | undefined; }, { - id: string; - description: string | null; - title: string | null; - content: string | null; - author: string | null; - url: string | null; - language: string | null; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - insertedAt: string; - publishedAt: string; - read: boolean | null; - inboxHandle: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; + id: string; + description: string | null; + title: string | null; + content: string | null; + author: string | null; + url: string | null; + language: string | null; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: string; + publishedAt: string; + read: boolean | null; + inboxHandle: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; + } | null | undefined; }>; declare const inboxesEntriesInsertOpenAPISchema: z.ZodObject; - description: z.ZodOptional>; - title: z.ZodOptional>; - content: z.ZodOptional>; - author: z.ZodOptional>; - url: z.ZodOptional>; - language: z.ZodOptional>; - guid: z.ZodString; - media: z.ZodOptional>>; - categories: z.ZodOptional>>; - attachments: z.ZodOptional>>; - extra: z.ZodOptional>>; - authorUrl: z.ZodOptional>; - authorAvatar: z.ZodOptional>; - insertedAt: z.ZodString; - publishedAt: z.ZodString; - read: z.ZodOptional>; - inboxHandle: z.ZodString; + id: z.ZodOptional; + description: z.ZodOptional>; + title: z.ZodOptional>; + content: z.ZodOptional>; + author: z.ZodOptional>; + url: z.ZodOptional>; + language: z.ZodOptional>; + guid: z.ZodString; + media: z.ZodOptional>>; + categories: z.ZodOptional>>; + attachments: z.ZodOptional>>; + extra: z.ZodOptional>>; + authorUrl: z.ZodOptional>; + authorAvatar: z.ZodOptional>; + insertedAt: z.ZodString; + publishedAt: z.ZodString; + read: z.ZodOptional>; + inboxHandle: z.ZodString; }, "id" | "media" | "attachments" | "extra" | "insertedAt" | "publishedAt" | "inboxHandle"> & { - attachments: z.ZodNullable>; - mime_type: z.ZodOptional; - size_in_bytes: z.ZodOptional; - title: z.ZodOptional; + attachments: z.ZodNullable>; + mime_type: z.ZodOptional; + size_in_bytes: z.ZodOptional; + title: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }, { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }>, "many">>>; + media: z.ZodNullable; + width: z.ZodOptional; + height: z.ZodOptional; + preview_image_url: z.ZodOptional; + blurhash: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }, { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }>, "many">>>; + extra: z.ZodNullable; }, "strip", z.ZodTypeAny, { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; + type: string; + url: string; + content_html?: string | undefined; }, { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; + type: string; + url: string; + content_html?: string | undefined; }>, "many">>>; - media: z.ZodNullable; - width: z.ZodOptional; - height: z.ZodOptional; - preview_image_url: z.ZodOptional; - blurhash: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }, { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }>, "many">>>; - extra: z.ZodNullable; - }, "strip", z.ZodTypeAny, { - type: string; - url: string; - content_html?: string | undefined; - }, { - type: string; - url: string; - content_html?: string | undefined; - }>, "many">>>; - }, "strip", z.ZodTypeAny, { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - }, { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - }>>>; - publishedAt: z.ZodString; + }, "strip", z.ZodTypeAny, { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + }, { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + }>>>; + publishedAt: z.ZodString; }, "strip", z.ZodTypeAny, { - guid: string; - publishedAt: string; - description?: string | null | undefined; - title?: string | null | undefined; - content?: string | null | undefined; - author?: string | null | undefined; - url?: string | null | undefined; - language?: string | null | undefined; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; + guid: string; + publishedAt: string; + description?: string | null | undefined; + title?: string | null | undefined; + content?: string | null | undefined; + author?: string | null | undefined; + url?: string | null | undefined; + language?: string | null | undefined; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + categories?: string[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; }[] | null | undefined; - categories?: string[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; - authorUrl?: string | null | undefined; - authorAvatar?: string | null | undefined; - read?: boolean | null | undefined; + } | null | undefined; + authorUrl?: string | null | undefined; + authorAvatar?: string | null | undefined; + read?: boolean | null | undefined; }, { - guid: string; - publishedAt: string; - description?: string | null | undefined; - title?: string | null | undefined; - content?: string | null | undefined; - author?: string | null | undefined; - url?: string | null | undefined; - language?: string | null | undefined; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; + guid: string; + publishedAt: string; + description?: string | null | undefined; + title?: string | null | undefined; + content?: string | null | undefined; + author?: string | null | undefined; + url?: string | null | undefined; + language?: string | null | undefined; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + categories?: string[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; }[] | null | undefined; - categories?: string[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; - authorUrl?: string | null | undefined; - authorAvatar?: string | null | undefined; - read?: boolean | null | undefined; + } | null | undefined; + authorUrl?: string | null | undefined; + authorAvatar?: string | null | undefined; + read?: boolean | null | undefined; }>; -declare const inboxesEntriesRelations: drizzle_orm.Relations<"inboxes_entries", { - inboxes: drizzle_orm.One<"inboxes", true>; +declare const inboxesEntriesRelations: drizzle_orm1055.Relations<"inboxes_entries", { + inboxes: drizzle_orm1055.One<"inboxes", true>; }>; type inboxesEntriesModel = InferInsertModel & { - attachments?: AttachmentsModel[] | null; - media?: MediaModel[] | null; + attachments?: AttachmentsModel[] | null; + media?: MediaModel[] | null; }; - -declare const inboxes: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "inboxes"; - schema: undefined; - columns: { - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "inboxes"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - handle: drizzle_orm_pg_core.PgColumn<{ - name: "handle"; - tableName: "inboxes"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - secret: drizzle_orm_pg_core.PgColumn<{ - name: "secret"; - tableName: "inboxes"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - title: drizzle_orm_pg_core.PgColumn<{ - name: "title"; - tableName: "inboxes"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/inboxes/inboxes.d.ts +declare const inboxes: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "inboxes"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "inboxes"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + handle: drizzle_orm_pg_core1159.PgColumn<{ + name: "handle"; + tableName: "inboxes"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + secret: drizzle_orm_pg_core1159.PgColumn<{ + name: "secret"; + tableName: "inboxes"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + title: drizzle_orm_pg_core1159.PgColumn<{ + name: "title"; + tableName: "inboxes"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; declare const inboxesOpenAPISchema: z.ZodObject<{ - userId: z.ZodString; - handle: z.ZodString; - secret: z.ZodString; - title: z.ZodNullable; + userId: z.ZodString; + handle: z.ZodString; + secret: z.ZodString; + title: z.ZodNullable; }, z.UnknownKeysParam, z.ZodTypeAny, { - handle: string; - userId: string; - title: string | null; - secret: string; + handle: string; + userId: string; + title: string | null; + secret: string; }, { - handle: string; - userId: string; - title: string | null; - secret: string; + handle: string; + userId: string; + title: string | null; + secret: string; }>; -declare const inboxesRelations: drizzle_orm.Relations<"inboxes", { - users: drizzle_orm.One<"user", true>; - entries: drizzle_orm.Many<"inboxes_entries">; +declare const inboxesRelations: drizzle_orm1055.Relations<"inboxes", { + users: drizzle_orm1055.One<"user", true>; + entries: drizzle_orm1055.Many<"inboxes_entries">; }>; declare const inboxHandleSchema: z.ZodString; - -declare const invitations: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "invitations"; - schema: undefined; - columns: { - code: drizzle_orm_pg_core.PgColumn<{ - name: "code"; - tableName: "invitations"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "invitations"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - usedAt: drizzle_orm_pg_core.PgColumn<{ - name: "used_at"; - tableName: "invitations"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - fromUserId: drizzle_orm_pg_core.PgColumn<{ - name: "from_user_id"; - tableName: "invitations"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - toUserId: drizzle_orm_pg_core.PgColumn<{ - name: "to_user_id"; - tableName: "invitations"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/invitations.d.ts +declare const invitations: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "invitations"; + schema: undefined; + columns: { + code: drizzle_orm_pg_core1159.PgColumn<{ + name: "code"; + tableName: "invitations"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "invitations"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + usedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "used_at"; + tableName: "invitations"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + fromUserId: drizzle_orm_pg_core1159.PgColumn<{ + name: "from_user_id"; + tableName: "invitations"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + toUserId: drizzle_orm_pg_core1159.PgColumn<{ + name: "to_user_id"; + tableName: "invitations"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const invitationsOpenAPISchema: zod.ZodObject<{ - code: zod.ZodString; - createdAt: zod.ZodNullable; - usedAt: zod.ZodNullable; - fromUserId: zod.ZodString; - toUserId: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - code: string; - createdAt: string | null; - usedAt: string | null; - fromUserId: string; - toUserId: string | null; +declare const invitationsOpenAPISchema: zod1169.ZodObject<{ + code: zod1169.ZodString; + createdAt: zod1169.ZodNullable; + usedAt: zod1169.ZodNullable; + fromUserId: zod1169.ZodString; + toUserId: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + code: string; + createdAt: string | null; + usedAt: string | null; + fromUserId: string; + toUserId: string | null; }, { - code: string; - createdAt: string | null; - usedAt: string | null; - fromUserId: string; - toUserId: string | null; + code: string; + createdAt: string | null; + usedAt: string | null; + fromUserId: string; + toUserId: string | null; }>; -declare const invitationsRelations: drizzle_orm.Relations<"invitations", { - users: drizzle_orm.One<"user", false>; +type InvitationDB = typeof invitations.$inferSelect; +declare const invitationsRelations: drizzle_orm1055.Relations<"invitations", { + users: drizzle_orm1055.One<"user", false>; }>; - -declare const listAnalytics: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "list_analytics"; - schema: undefined; - columns: { - listId: drizzle_orm_pg_core.PgColumn<{ - name: "list_id"; - tableName: "list_analytics"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - subscriptionCount: drizzle_orm_pg_core.PgColumn<{ - name: "subscription_count"; - tableName: "list_analytics"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/lists/analytics.d.ts +declare const listAnalytics: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "list_analytics"; + schema: undefined; + columns: { + listId: drizzle_orm_pg_core1159.PgColumn<{ + name: "list_id"; + tableName: "list_analytics"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + subscriptionCount: drizzle_orm_pg_core1159.PgColumn<{ + name: "subscription_count"; + tableName: "list_analytics"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const listAnalyticsOpenAPISchema: zod.ZodObject<{ - listId: zod.ZodString; - subscriptionCount: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - subscriptionCount: number | null; - listId: string; +declare const listAnalyticsOpenAPISchema: zod1169.ZodObject<{ + listId: zod1169.ZodString; + subscriptionCount: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + subscriptionCount: number | null; + listId: string; }, { - subscriptionCount: number | null; - listId: string; + subscriptionCount: number | null; + listId: string; }>; -declare const listAnalyticsRelations: drizzle_orm.Relations<"list_analytics", { - list: drizzle_orm.One<"lists", true>; +declare const listAnalyticsRelations: drizzle_orm1055.Relations<"list_analytics", { + list: drizzle_orm1055.One<"lists", true>; }>; - -declare const lists: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "lists"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "lists"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - feedIds: drizzle_orm_pg_core.PgColumn<{ - name: "feed_ids"; - tableName: "lists"; - dataType: "array"; - columnType: "PgArray"; - data: string[]; - driverParam: string | string[]; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: drizzle_orm.Column<{ - name: "feed_ids"; - tableName: "lists"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - identity: undefined; - generated: undefined; - }, {}, { - baseBuilder: drizzle_orm_pg_core.PgColumnBuilder<{ - name: "feed_ids"; - dataType: "string"; - columnType: "PgText"; - data: string; - enumValues: [string, ...string[]]; - driverParam: string; - }, {}, {}, drizzle_orm.ColumnBuilderExtraConfig>; - size: undefined; - }>; - title: drizzle_orm_pg_core.PgColumn<{ - name: "title"; - tableName: "lists"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - description: drizzle_orm_pg_core.PgColumn<{ - name: "description"; - tableName: "lists"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - image: drizzle_orm_pg_core.PgColumn<{ - name: "image"; - tableName: "lists"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - view: drizzle_orm_pg_core.PgColumn<{ - name: "view"; - tableName: "lists"; - dataType: "number"; - columnType: "PgSmallInt"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - fee: drizzle_orm_pg_core.PgColumn<{ - name: "fee"; - tableName: "lists"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - language: drizzle_orm_pg_core.PgColumn<{ - name: "language"; - tableName: "lists"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - ownerUserId: drizzle_orm_pg_core.PgColumn<{ - name: "owner_user_id"; - tableName: "lists"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "lists"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - updatedAt: drizzle_orm_pg_core.PgColumn<{ - name: "updated_at"; - tableName: "lists"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/lists/lists.d.ts +declare const lists: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "lists"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "lists"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + feedIds: drizzle_orm_pg_core1159.PgColumn<{ + name: "feed_ids"; + tableName: "lists"; + dataType: "array"; + columnType: "PgArray"; + data: string[]; + driverParam: string | string[]; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: drizzle_orm1055.Column<{ + name: "feed_ids"; + tableName: "lists"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + identity: undefined; + generated: undefined; + }, {}, { + baseBuilder: drizzle_orm_pg_core1159.PgColumnBuilder<{ + name: "feed_ids"; + dataType: "string"; + columnType: "PgText"; + data: string; + enumValues: [string, ...string[]]; + driverParam: string; + }, {}, {}, drizzle_orm1055.ColumnBuilderExtraConfig>; + size: undefined; + }>; + title: drizzle_orm_pg_core1159.PgColumn<{ + name: "title"; + tableName: "lists"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + description: drizzle_orm_pg_core1159.PgColumn<{ + name: "description"; + tableName: "lists"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + image: drizzle_orm_pg_core1159.PgColumn<{ + name: "image"; + tableName: "lists"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + view: drizzle_orm_pg_core1159.PgColumn<{ + name: "view"; + tableName: "lists"; + dataType: "number"; + columnType: "PgSmallInt"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + fee: drizzle_orm_pg_core1159.PgColumn<{ + name: "fee"; + tableName: "lists"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + language: drizzle_orm_pg_core1159.PgColumn<{ + name: "language"; + tableName: "lists"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + ownerUserId: drizzle_orm_pg_core1159.PgColumn<{ + name: "owner_user_id"; + tableName: "lists"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "lists"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + updatedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "updated_at"; + tableName: "lists"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const listsOpenAPISchema: zod.ZodObject<{ - id: zod.ZodString; - feedIds: zod.ZodArray; - title: zod.ZodString; - description: zod.ZodNullable; - image: zod.ZodNullable; - view: zod.ZodNumber; - fee: zod.ZodNumber; - language: zod.ZodNullable; - ownerUserId: zod.ZodString; - createdAt: zod.ZodNullable; - updatedAt: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - id: string; - image: string | null; - createdAt: string | null; - updatedAt: string | null; - description: string | null; - title: string; - view: number; - ownerUserId: string; - language: string | null; - feedIds: string[]; - fee: number; +declare const listsOpenAPISchema: zod1169.ZodObject<{ + id: zod1169.ZodString; + feedIds: zod1169.ZodArray; + title: zod1169.ZodString; + description: zod1169.ZodNullable; + image: zod1169.ZodNullable; + view: zod1169.ZodNumber; + fee: zod1169.ZodNumber; + language: zod1169.ZodNullable; + ownerUserId: zod1169.ZodString; + createdAt: zod1169.ZodNullable; + updatedAt: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + id: string; + image: string | null; + createdAt: string | null; + updatedAt: string | null; + description: string | null; + title: string; + view: number; + ownerUserId: string; + language: string | null; + feedIds: string[]; + fee: number; }, { - id: string; - image: string | null; - createdAt: string | null; - updatedAt: string | null; - description: string | null; - title: string; - view: number; - ownerUserId: string; - language: string | null; - feedIds: string[]; - fee: number; + id: string; + image: string | null; + createdAt: string | null; + updatedAt: string | null; + description: string | null; + title: string; + view: number; + ownerUserId: string; + language: string | null; + feedIds: string[]; + fee: number; }>; -declare const listsRelations: drizzle_orm.Relations<"lists", { - owner: drizzle_orm.One<"user", true>; - listsSubscriptions: drizzle_orm.Many<"lists_subscriptions">; +declare const listsRelations: drizzle_orm1055.Relations<"lists", { + owner: drizzle_orm1055.One<"user", true>; + listsSubscriptions: drizzle_orm1055.Many<"lists_subscriptions">; }>; type ListModel = InferInsertModel; - -declare const listsSubscriptions: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "lists_subscriptions"; - schema: undefined; - columns: { - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "lists_subscriptions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - listId: drizzle_orm_pg_core.PgColumn<{ - name: "list_id"; - tableName: "lists_subscriptions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - view: drizzle_orm_pg_core.PgColumn<{ - name: "view"; - tableName: "lists_subscriptions"; - dataType: "number"; - columnType: "PgSmallInt"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - title: drizzle_orm_pg_core.PgColumn<{ - name: "title"; - tableName: "lists_subscriptions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "lists_subscriptions"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - isPrivate: drizzle_orm_pg_core.PgColumn<{ - name: "is_private"; - tableName: "lists_subscriptions"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/lists/subscriptions.d.ts +declare const listsSubscriptions: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "lists_subscriptions"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "lists_subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + listId: drizzle_orm_pg_core1159.PgColumn<{ + name: "list_id"; + tableName: "lists_subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + view: drizzle_orm_pg_core1159.PgColumn<{ + name: "view"; + tableName: "lists_subscriptions"; + dataType: "number"; + columnType: "PgSmallInt"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + title: drizzle_orm_pg_core1159.PgColumn<{ + name: "title"; + tableName: "lists_subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "lists_subscriptions"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + isPrivate: drizzle_orm_pg_core1159.PgColumn<{ + name: "is_private"; + tableName: "lists_subscriptions"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const listsSubscriptionsOpenAPISchema: zod.ZodObject<{ - userId: zod.ZodString; - listId: zod.ZodString; - view: zod.ZodNumber; - title: zod.ZodNullable; - createdAt: zod.ZodString; - isPrivate: zod.ZodBoolean; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - createdAt: string; - userId: string; - title: string | null; - view: number; - isPrivate: boolean; - listId: string; +declare const listsSubscriptionsOpenAPISchema: zod1169.ZodObject<{ + userId: zod1169.ZodString; + listId: zod1169.ZodString; + view: zod1169.ZodNumber; + title: zod1169.ZodNullable; + createdAt: zod1169.ZodString; + isPrivate: zod1169.ZodBoolean; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + createdAt: string; + userId: string; + title: string | null; + view: number; + isPrivate: boolean; + listId: string; }, { - createdAt: string; - userId: string; - title: string | null; - view: number; - isPrivate: boolean; - listId: string; + createdAt: string; + userId: string; + title: string | null; + view: number; + isPrivate: boolean; + listId: string; }>; -declare const listsSubscriptionsRelations: drizzle_orm.Relations<"lists_subscriptions", { - users: drizzle_orm.One<"user", true>; - lists: drizzle_orm.One<"lists", true>; +declare const listsSubscriptionsRelations: drizzle_orm1055.Relations<"lists_subscriptions", { + users: drizzle_orm1055.One<"user", true>; + lists: drizzle_orm1055.One<"lists", true>; }>; - -declare const messaging: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "messaging"; - schema: undefined; - columns: { - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "messaging"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - token: drizzle_orm_pg_core.PgColumn<{ - name: "token"; - tableName: "messaging"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - channel: drizzle_orm_pg_core.PgColumn<{ - name: "channel"; - tableName: "messaging"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/messaging.d.ts +declare const messaging: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "messaging"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "messaging"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + token: drizzle_orm_pg_core1159.PgColumn<{ + name: "token"; + tableName: "messaging"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + channel: drizzle_orm_pg_core1159.PgColumn<{ + name: "channel"; + tableName: "messaging"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; declare const messagingOpenAPISchema: z.ZodObject; - token: z.ZodString; - channel: z.ZodString; + userId: z.ZodNullable; + token: z.ZodString; + channel: z.ZodString; }, "channel"> & { - channel: z.ZodEnum<["macos", "windows", "linux", "ios", "android", "web", "desktop"]>; + channel: z.ZodEnum<["macos", "windows", "linux", "ios", "android", "web", "desktop"]>; }, "strip", z.ZodTypeAny, { - userId: string | null; - token: string; - channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; + userId: string | null; + token: string; + channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; }, { - userId: string | null; - token: string; - channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; + userId: string | null; + token: string; + channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; }>; -declare const messagingRelations: drizzle_orm.Relations<"messaging", { - users: drizzle_orm.One<"user", false>; +declare const messagingRelations: drizzle_orm1055.Relations<"messaging", { + users: drizzle_orm1055.One<"user", false>; }>; declare enum MessagingType { - NewEntry = "new-entry" + NewEntry = "new-entry", } type MessagingData = { - type: MessagingType.NewEntry; - feedId: string; - entryId: string; - view: string; - title: string; - description: string; + type: MessagingType.NewEntry; + feedId: string; + entryId: string; + view: string; + title: string; + description: string; }; - -declare const readabilities: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "readabilities"; - schema: undefined; - columns: { - entryId: drizzle_orm_pg_core.PgColumn<{ - name: "entry_id"; - tableName: "readabilities"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - content: drizzle_orm_pg_core.PgColumn<{ - name: "content"; - tableName: "readabilities"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - updatedAt: drizzle_orm_pg_core.PgColumn<{ - name: "updated_at"; - tableName: "readabilities"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/readability.d.ts +declare const readabilities: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "readabilities"; + schema: undefined; + columns: { + entryId: drizzle_orm_pg_core1159.PgColumn<{ + name: "entry_id"; + tableName: "readabilities"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + content: drizzle_orm_pg_core1159.PgColumn<{ + name: "content"; + tableName: "readabilities"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + updatedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "updated_at"; + tableName: "readabilities"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; - -declare const rsshub: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "rsshub"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "rsshub"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - baseUrl: drizzle_orm_pg_core.PgColumn<{ - name: "base_url"; - tableName: "rsshub"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - accessKey: drizzle_orm_pg_core.PgColumn<{ - name: "access_key"; - tableName: "rsshub"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - ownerUserId: drizzle_orm_pg_core.PgColumn<{ - name: "owner_user_id"; - tableName: "rsshub"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - price: drizzle_orm_pg_core.PgColumn<{ - name: "price"; - tableName: "rsshub"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - description: drizzle_orm_pg_core.PgColumn<{ - name: "description"; - tableName: "rsshub"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userLimit: drizzle_orm_pg_core.PgColumn<{ - name: "user_limit"; - tableName: "rsshub"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - errorMessage: drizzle_orm_pg_core.PgColumn<{ - name: "error_message"; - tableName: "rsshub"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - errorAt: drizzle_orm_pg_core.PgColumn<{ - name: "error_at"; - tableName: "rsshub"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/rsshub.d.ts +declare const rsshub: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "rsshub"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "rsshub"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + baseUrl: drizzle_orm_pg_core1159.PgColumn<{ + name: "base_url"; + tableName: "rsshub"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + accessKey: drizzle_orm_pg_core1159.PgColumn<{ + name: "access_key"; + tableName: "rsshub"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + ownerUserId: drizzle_orm_pg_core1159.PgColumn<{ + name: "owner_user_id"; + tableName: "rsshub"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + price: drizzle_orm_pg_core1159.PgColumn<{ + name: "price"; + tableName: "rsshub"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + description: drizzle_orm_pg_core1159.PgColumn<{ + name: "description"; + tableName: "rsshub"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userLimit: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_limit"; + tableName: "rsshub"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + errorMessage: drizzle_orm_pg_core1159.PgColumn<{ + name: "error_message"; + tableName: "rsshub"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + errorAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "error_at"; + tableName: "rsshub"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const rsshubOpenAPISchema: zod.ZodObject<{ - id: zod.ZodString; - baseUrl: zod.ZodString; - accessKey: zod.ZodNullable; - ownerUserId: zod.ZodString; - price: zod.ZodNumber; - description: zod.ZodNullable; - userLimit: zod.ZodNullable; - errorMessage: zod.ZodNullable; - errorAt: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - id: string; - description: string | null; - errorMessage: string | null; - errorAt: string | null; - ownerUserId: string; - baseUrl: string; - accessKey: string | null; - price: number; - userLimit: number | null; +declare const rsshubOpenAPISchema: zod1169.ZodObject<{ + id: zod1169.ZodString; + baseUrl: zod1169.ZodString; + accessKey: zod1169.ZodNullable; + ownerUserId: zod1169.ZodString; + price: zod1169.ZodNumber; + description: zod1169.ZodNullable; + userLimit: zod1169.ZodNullable; + errorMessage: zod1169.ZodNullable; + errorAt: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + id: string; + description: string | null; + errorMessage: string | null; + errorAt: string | null; + ownerUserId: string; + baseUrl: string; + accessKey: string | null; + price: number; + userLimit: number | null; }, { - id: string; - description: string | null; - errorMessage: string | null; - errorAt: string | null; - ownerUserId: string; - baseUrl: string; - accessKey: string | null; - price: number; - userLimit: number | null; + id: string; + description: string | null; + errorMessage: string | null; + errorAt: string | null; + ownerUserId: string; + baseUrl: string; + accessKey: string | null; + price: number; + userLimit: number | null; }>; -declare const rsshubUsage: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "rsshub_usage"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "rsshub_usage"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - rsshubId: drizzle_orm_pg_core.PgColumn<{ - name: "rsshub_id"; - tableName: "rsshub_usage"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "rsshub_usage"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +declare const rsshubUsage: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "rsshub_usage"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "rsshub_usage"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + rsshubId: drizzle_orm_pg_core1159.PgColumn<{ + name: "rsshub_id"; + tableName: "rsshub_usage"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "rsshub_usage"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const rsshubUsageOpenAPISchema: zod.ZodObject<{ - id: zod.ZodString; - rsshubId: zod.ZodString; - userId: zod.ZodString; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - id: string; - userId: string; - rsshubId: string; +declare const rsshubUsageOpenAPISchema: zod1169.ZodObject<{ + id: zod1169.ZodString; + rsshubId: zod1169.ZodString; + userId: zod1169.ZodString; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + id: string; + userId: string; + rsshubId: string; }, { - id: string; - userId: string; - rsshubId: string; + id: string; + userId: string; + rsshubId: string; }>; -declare const rsshubUsageRelations: drizzle_orm.Relations<"rsshub_usage", { - rsshub: drizzle_orm.One<"rsshub", true>; +declare const rsshubUsageRelations: drizzle_orm1055.Relations<"rsshub_usage", { + rsshub: drizzle_orm1055.One<"rsshub", true>; }>; - -declare const rsshubAnalytics: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "rsshub_analytics"; - schema: undefined; - columns: { - rsshubId: drizzle_orm_pg_core.PgColumn<{ - name: "rsshub_id"; - tableName: "rsshub_analytics"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - rsshubRoute: drizzle_orm_pg_core.PgColumn<{ - name: "rsshub_route"; - tableName: "rsshub_analytics"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - rsshubNamespace: drizzle_orm_pg_core.PgColumn<{ - name: "rsshub_namespace"; - tableName: "rsshub_analytics"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - successCount: drizzle_orm_pg_core.PgColumn<{ - name: "success_count"; - tableName: "rsshub_analytics"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - errorCount: drizzle_orm_pg_core.PgColumn<{ - name: "error_count"; - tableName: "rsshub_analytics"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - timestamp: drizzle_orm_pg_core.PgColumn<{ - name: "timestamp"; - tableName: "rsshub_analytics"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/rsshub-analytics.d.ts +declare const rsshubAnalytics: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "rsshub_analytics"; + schema: undefined; + columns: { + rsshubId: drizzle_orm_pg_core1159.PgColumn<{ + name: "rsshub_id"; + tableName: "rsshub_analytics"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + rsshubRoute: drizzle_orm_pg_core1159.PgColumn<{ + name: "rsshub_route"; + tableName: "rsshub_analytics"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + rsshubNamespace: drizzle_orm_pg_core1159.PgColumn<{ + name: "rsshub_namespace"; + tableName: "rsshub_analytics"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + successCount: drizzle_orm_pg_core1159.PgColumn<{ + name: "success_count"; + tableName: "rsshub_analytics"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + errorCount: drizzle_orm_pg_core1159.PgColumn<{ + name: "error_count"; + tableName: "rsshub_analytics"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + timestamp: drizzle_orm_pg_core1159.PgColumn<{ + name: "timestamp"; + tableName: "rsshub_analytics"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const rsshubAnalyticsOpenAPISchema: zod.ZodObject<{ - rsshubId: zod.ZodString; - rsshubRoute: zod.ZodString; - rsshubNamespace: zod.ZodString; - successCount: zod.ZodNumber; - errorCount: zod.ZodNumber; - timestamp: zod.ZodString; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - rsshubRoute: string; - rsshubNamespace: string; - rsshubId: string; - successCount: number; - errorCount: number; - timestamp: string; +declare const rsshubAnalyticsOpenAPISchema: zod1169.ZodObject<{ + rsshubId: zod1169.ZodString; + rsshubRoute: zod1169.ZodString; + rsshubNamespace: zod1169.ZodString; + successCount: zod1169.ZodNumber; + errorCount: zod1169.ZodNumber; + timestamp: zod1169.ZodString; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + rsshubRoute: string; + rsshubNamespace: string; + rsshubId: string; + successCount: number; + errorCount: number; + timestamp: string; }, { - rsshubRoute: string; - rsshubNamespace: string; - rsshubId: string; - successCount: number; - errorCount: number; - timestamp: string; + rsshubRoute: string; + rsshubNamespace: string; + rsshubId: string; + successCount: number; + errorCount: number; + timestamp: string; }>; - -declare const settings: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "settings"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "settings"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "settings"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - tab: drizzle_orm_pg_core.PgColumn<{ - name: "tab"; - tableName: "settings"; - dataType: "string"; - columnType: "PgText"; - data: "general" | "appearance" | "integration"; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: ["general", "appearance", "integration"]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - payload: drizzle_orm_pg_core.PgColumn<{ - name: "payload"; - tableName: "settings"; - dataType: "json"; - columnType: "PgJsonb"; - data: Record; - driverParam: unknown; - notNull: false; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: Record; - }>; - updateAt: drizzle_orm_pg_core.PgColumn<{ - name: "update_at"; - tableName: "settings"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - version: drizzle_orm_pg_core.PgColumn<{ - name: "version"; - tableName: "settings"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/settings.d.ts +declare const settings: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "settings"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "settings"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "settings"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + tab: drizzle_orm_pg_core1159.PgColumn<{ + name: "tab"; + tableName: "settings"; + dataType: "string"; + columnType: "PgText"; + data: "general" | "appearance" | "integration"; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: ["general", "appearance", "integration"]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + payload: drizzle_orm_pg_core1159.PgColumn<{ + name: "payload"; + tableName: "settings"; + dataType: "json"; + columnType: "PgJsonb"; + data: Record; + driverParam: unknown; + notNull: false; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: Record; + }>; + updateAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "update_at"; + tableName: "settings"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + version: drizzle_orm_pg_core1159.PgColumn<{ + name: "version"; + tableName: "settings"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; - -declare const timeline: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "timeline"; - schema: undefined; - columns: { - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "timeline"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - feedId: drizzle_orm_pg_core.PgColumn<{ - name: "feedId"; - tableName: "timeline"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - entryId: drizzle_orm_pg_core.PgColumn<{ - name: "entry_id"; - tableName: "timeline"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - publishedAt: drizzle_orm_pg_core.PgColumn<{ - name: "published_at"; - tableName: "timeline"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - insertedAt: drizzle_orm_pg_core.PgColumn<{ - name: "inserted_at"; - tableName: "timeline"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - view: drizzle_orm_pg_core.PgColumn<{ - name: "view"; - tableName: "timeline"; - dataType: "number"; - columnType: "PgSmallInt"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - read: drizzle_orm_pg_core.PgColumn<{ - name: "read"; - tableName: "timeline"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - from: drizzle_orm_pg_core.PgColumn<{ - name: "from"; - tableName: "timeline"; - dataType: "array"; - columnType: "PgArray"; - data: string[]; - driverParam: string | string[]; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: drizzle_orm.Column<{ - name: "from"; - tableName: "timeline"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - identity: undefined; - generated: undefined; - }, {}, { - baseBuilder: drizzle_orm_pg_core.PgColumnBuilder<{ - name: "from"; - dataType: "string"; - columnType: "PgText"; - data: string; - enumValues: [string, ...string[]]; - driverParam: string; - }, {}, {}, drizzle_orm.ColumnBuilderExtraConfig>; - size: undefined; - }>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/timeline.d.ts +declare const timeline: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "timeline"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "timeline"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + feedId: drizzle_orm_pg_core1159.PgColumn<{ + name: "feedId"; + tableName: "timeline"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + entryId: drizzle_orm_pg_core1159.PgColumn<{ + name: "entry_id"; + tableName: "timeline"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + publishedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "published_at"; + tableName: "timeline"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + insertedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "inserted_at"; + tableName: "timeline"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + view: drizzle_orm_pg_core1159.PgColumn<{ + name: "view"; + tableName: "timeline"; + dataType: "number"; + columnType: "PgSmallInt"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + read: drizzle_orm_pg_core1159.PgColumn<{ + name: "read"; + tableName: "timeline"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + from: drizzle_orm_pg_core1159.PgColumn<{ + name: "from"; + tableName: "timeline"; + dataType: "array"; + columnType: "PgArray"; + data: string[]; + driverParam: string | string[]; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: drizzle_orm1055.Column<{ + name: "from"; + tableName: "timeline"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + identity: undefined; + generated: undefined; + }, {}, { + baseBuilder: drizzle_orm_pg_core1159.PgColumnBuilder<{ + name: "from"; + dataType: "string"; + columnType: "PgText"; + data: string; + enumValues: [string, ...string[]]; + driverParam: string; + }, {}, {}, drizzle_orm1055.ColumnBuilderExtraConfig>; + size: undefined; + }>; + }; + dialect: "pg"; }>; -declare const timelineOpenAPISchema: zod.ZodObject<{ - userId: zod.ZodString; - feedId: zod.ZodString; - entryId: zod.ZodString; - publishedAt: zod.ZodString; - insertedAt: zod.ZodString; - view: zod.ZodNumber; - read: zod.ZodNullable; - from: zod.ZodNullable>; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - userId: string; - view: number; - from: string[] | null; - feedId: string; - insertedAt: string; - publishedAt: string; - entryId: string; - read: boolean | null; +declare const timelineOpenAPISchema: zod1169.ZodObject<{ + userId: zod1169.ZodString; + feedId: zod1169.ZodString; + entryId: zod1169.ZodString; + publishedAt: zod1169.ZodString; + insertedAt: zod1169.ZodString; + view: zod1169.ZodNumber; + read: zod1169.ZodNullable; + from: zod1169.ZodNullable>; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + userId: string; + view: number; + from: string[] | null; + feedId: string; + insertedAt: string; + publishedAt: string; + entryId: string; + read: boolean | null; }, { - userId: string; - view: number; - from: string[] | null; - feedId: string; - insertedAt: string; - publishedAt: string; - entryId: string; - read: boolean | null; + userId: string; + view: number; + from: string[] | null; + feedId: string; + insertedAt: string; + publishedAt: string; + entryId: string; + read: boolean | null; }>; -declare const timelineRelations: drizzle_orm.Relations<"timeline", { - entries: drizzle_orm.One<"entries", true>; - feeds: drizzle_orm.One<"feeds", true>; - collections: drizzle_orm.One<"collections", true>; - subscriptions: drizzle_orm.One<"subscriptions", true>; +declare const timelineRelations: drizzle_orm1055.Relations<"timeline", { + entries: drizzle_orm1055.One<"entries", true>; + feeds: drizzle_orm1055.One<"feeds", true>; + collections: drizzle_orm1055.One<"collections", true>; + subscriptions: drizzle_orm1055.One<"subscriptions", true>; }>; - -declare const trendingFeeds: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "trendings_feeds"; - schema: undefined; - columns: { - feedId: drizzle_orm_pg_core.PgColumn<{ - name: "feed_id"; - tableName: "trendings_feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - rankedAt: drizzle_orm_pg_core.PgColumn<{ - name: "ranked_at"; - tableName: "trendings_feeds"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - score1d: drizzle_orm_pg_core.PgColumn<{ - name: "score_1d"; - tableName: "trendings_feeds"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - score3d: drizzle_orm_pg_core.PgColumn<{ - name: "score_3d"; - tableName: "trendings_feeds"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - score7d: drizzle_orm_pg_core.PgColumn<{ - name: "score_7d"; - tableName: "trendings_feeds"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - score30d: drizzle_orm_pg_core.PgColumn<{ - name: "score_30d"; - tableName: "trendings_feeds"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - view: drizzle_orm_pg_core.PgColumn<{ - name: "view"; - tableName: "trendings_feeds"; - dataType: "number"; - columnType: "PgSmallInt"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - language: drizzle_orm_pg_core.PgColumn<{ - name: "language"; - tableName: "trendings_feeds"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - nsfw: drizzle_orm_pg_core.PgColumn<{ - name: "nsfw"; - tableName: "trendings_feeds"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/trendings/feeds.d.ts +declare const trendingFeeds: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "trendings_feeds"; + schema: undefined; + columns: { + feedId: drizzle_orm_pg_core1159.PgColumn<{ + name: "feed_id"; + tableName: "trendings_feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + rankedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "ranked_at"; + tableName: "trendings_feeds"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + score1d: drizzle_orm_pg_core1159.PgColumn<{ + name: "score_1d"; + tableName: "trendings_feeds"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + score3d: drizzle_orm_pg_core1159.PgColumn<{ + name: "score_3d"; + tableName: "trendings_feeds"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + score7d: drizzle_orm_pg_core1159.PgColumn<{ + name: "score_7d"; + tableName: "trendings_feeds"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + score30d: drizzle_orm_pg_core1159.PgColumn<{ + name: "score_30d"; + tableName: "trendings_feeds"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + view: drizzle_orm_pg_core1159.PgColumn<{ + name: "view"; + tableName: "trendings_feeds"; + dataType: "number"; + columnType: "PgSmallInt"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + language: drizzle_orm_pg_core1159.PgColumn<{ + name: "language"; + tableName: "trendings_feeds"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + nsfw: drizzle_orm_pg_core1159.PgColumn<{ + name: "nsfw"; + tableName: "trendings_feeds"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const trendingFeedsRelations: drizzle_orm.Relations<"trendings_feeds", { - feed: drizzle_orm.One<"feeds", true>; +declare const trendingFeedsRelations: drizzle_orm1055.Relations<"trendings_feeds", { + feed: drizzle_orm1055.One<"feeds", true>; }>; -declare const trendingFeedsOpenAPISchema: zod.ZodObject<{ - feedId: zod.ZodString; - rankedAt: zod.ZodString; - score1d: zod.ZodString; - score3d: zod.ZodString; - score7d: zod.ZodString; - score30d: zod.ZodString; - view: zod.ZodNumber; - language: zod.ZodString; - nsfw: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - view: number; - language: string; - nsfw: boolean | null; - feedId: string; - rankedAt: string; - score1d: string; - score3d: string; - score7d: string; - score30d: string; +declare const trendingFeedsOpenAPISchema: zod1169.ZodObject<{ + feedId: zod1169.ZodString; + rankedAt: zod1169.ZodString; + score1d: zod1169.ZodString; + score3d: zod1169.ZodString; + score7d: zod1169.ZodString; + score30d: zod1169.ZodString; + view: zod1169.ZodNumber; + language: zod1169.ZodString; + nsfw: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + view: number; + language: string; + nsfw: boolean | null; + feedId: string; + rankedAt: string; + score1d: string; + score3d: string; + score7d: string; + score30d: string; }, { - view: number; - language: string; - nsfw: boolean | null; - feedId: string; - rankedAt: string; - score1d: string; - score3d: string; - score7d: string; - score30d: string; + view: number; + language: string; + nsfw: boolean | null; + feedId: string; + rankedAt: string; + score1d: string; + score3d: string; + score7d: string; + score30d: string; }>; - +//#endregion +//#region src/lib/constants.d.ts declare enum UploadType { - Avatar = "avatar" + Avatar = "avatar", } - -declare const uploads: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "uploads"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "uploads"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "uploads"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - url: drizzle_orm_pg_core.PgColumn<{ - name: "url"; - tableName: "uploads"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - md5: drizzle_orm_pg_core.PgColumn<{ - name: "md5"; - tableName: "uploads"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - mimeType: drizzle_orm_pg_core.PgColumn<{ - name: "mime_type"; - tableName: "uploads"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - size: drizzle_orm_pg_core.PgColumn<{ - name: "size"; - tableName: "uploads"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - type: drizzle_orm_pg_core.PgColumn<{ - name: "type"; - tableName: "uploads"; - dataType: "string"; - columnType: "PgText"; - data: UploadType; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [UploadType]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/uploads.d.ts +declare const uploads: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "uploads"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "uploads"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "uploads"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + url: drizzle_orm_pg_core1159.PgColumn<{ + name: "url"; + tableName: "uploads"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + md5: drizzle_orm_pg_core1159.PgColumn<{ + name: "md5"; + tableName: "uploads"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + mimeType: drizzle_orm_pg_core1159.PgColumn<{ + name: "mime_type"; + tableName: "uploads"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + size: drizzle_orm_pg_core1159.PgColumn<{ + name: "size"; + tableName: "uploads"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + type: drizzle_orm_pg_core1159.PgColumn<{ + name: "type"; + tableName: "uploads"; + dataType: "string"; + columnType: "PgText"; + data: UploadType; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [UploadType]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; - -declare const user: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "user"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "user"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - name: drizzle_orm_pg_core.PgColumn<{ - name: "name"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 64; - }>; - email: drizzle_orm_pg_core.PgColumn<{ - name: "email"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 64; - }>; - emailVerified: drizzle_orm_pg_core.PgColumn<{ - name: "emailVerified"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - image: drizzle_orm_pg_core.PgColumn<{ - name: "image"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 256; - }>; - handle: drizzle_orm_pg_core.PgColumn<{ - name: "handle"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 36; - }>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "user"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - updatedAt: drizzle_orm_pg_core.PgColumn<{ - name: "updatedAt"; - tableName: "user"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - twoFactorEnabled: drizzle_orm_pg_core.PgColumn<{ - name: "two_factor_enabled"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - isAnonymous: drizzle_orm_pg_core.PgColumn<{ - name: "is_anonymous"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - suspended: drizzle_orm_pg_core.PgColumn<{ - name: "suspended"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - deleted: drizzle_orm_pg_core.PgColumn<{ - name: "deleted"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - bio: drizzle_orm_pg_core.PgColumn<{ - name: "bio"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 256; - }>; - website: drizzle_orm_pg_core.PgColumn<{ - name: "website"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 256; - }>; - socialLinks: drizzle_orm_pg_core.PgColumn<{ - name: "social_links"; - tableName: "user"; - dataType: "json"; - columnType: "PgJsonb"; - data: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - }; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - }; - }>; - }; - dialect: "pg"; +//#endregion +//#region src/schema/users.d.ts +declare const user$1: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "user"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "user"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + name: drizzle_orm_pg_core1159.PgColumn<{ + name: "name"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 64; + }>; + email: drizzle_orm_pg_core1159.PgColumn<{ + name: "email"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 64; + }>; + emailVerified: drizzle_orm_pg_core1159.PgColumn<{ + name: "emailVerified"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + image: drizzle_orm_pg_core1159.PgColumn<{ + name: "image"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 256; + }>; + handle: drizzle_orm_pg_core1159.PgColumn<{ + name: "handle"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 36; + }>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "user"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + updatedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "updatedAt"; + tableName: "user"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + twoFactorEnabled: drizzle_orm_pg_core1159.PgColumn<{ + name: "two_factor_enabled"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + isAnonymous: drizzle_orm_pg_core1159.PgColumn<{ + name: "is_anonymous"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + suspended: drizzle_orm_pg_core1159.PgColumn<{ + name: "suspended"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + deleted: drizzle_orm_pg_core1159.PgColumn<{ + name: "deleted"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + bio: drizzle_orm_pg_core1159.PgColumn<{ + name: "bio"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 256; + }>; + website: drizzle_orm_pg_core1159.PgColumn<{ + name: "website"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 256; + }>; + socialLinks: drizzle_orm_pg_core1159.PgColumn<{ + name: "social_links"; + tableName: "user"; + dataType: "json"; + columnType: "PgJsonb"; + data: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + }; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + }; + }>; + stripeCustomerId: drizzle_orm_pg_core1159.PgColumn<{ + name: "stripe_customer_id"; + tableName: "user"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + role: drizzle_orm_pg_core1159.PgColumn<{ + name: "role"; + tableName: "user"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + roleEndAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "role_end_at"; + tableName: "user"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; -declare const users: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "user"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "user"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - name: drizzle_orm_pg_core.PgColumn<{ - name: "name"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 64; - }>; - email: drizzle_orm_pg_core.PgColumn<{ - name: "email"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 64; - }>; - emailVerified: drizzle_orm_pg_core.PgColumn<{ - name: "emailVerified"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - image: drizzle_orm_pg_core.PgColumn<{ - name: "image"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 256; - }>; - handle: drizzle_orm_pg_core.PgColumn<{ - name: "handle"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 36; - }>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "user"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - updatedAt: drizzle_orm_pg_core.PgColumn<{ - name: "updatedAt"; - tableName: "user"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - twoFactorEnabled: drizzle_orm_pg_core.PgColumn<{ - name: "two_factor_enabled"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - isAnonymous: drizzle_orm_pg_core.PgColumn<{ - name: "is_anonymous"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - suspended: drizzle_orm_pg_core.PgColumn<{ - name: "suspended"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - deleted: drizzle_orm_pg_core.PgColumn<{ - name: "deleted"; - tableName: "user"; - dataType: "boolean"; - columnType: "PgBoolean"; - data: boolean; - driverParam: boolean; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - bio: drizzle_orm_pg_core.PgColumn<{ - name: "bio"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 256; - }>; - website: drizzle_orm_pg_core.PgColumn<{ - name: "website"; - tableName: "user"; - dataType: "string"; - columnType: "PgVarchar"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - length: 256; - }>; - socialLinks: drizzle_orm_pg_core.PgColumn<{ - name: "social_links"; - tableName: "user"; - dataType: "json"; - columnType: "PgJsonb"; - data: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - }; - driverParam: unknown; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, { - $type: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - }; - }>; - }; - dialect: "pg"; +declare const users: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "user"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "user"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + name: drizzle_orm_pg_core1159.PgColumn<{ + name: "name"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 64; + }>; + email: drizzle_orm_pg_core1159.PgColumn<{ + name: "email"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 64; + }>; + emailVerified: drizzle_orm_pg_core1159.PgColumn<{ + name: "emailVerified"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + image: drizzle_orm_pg_core1159.PgColumn<{ + name: "image"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 256; + }>; + handle: drizzle_orm_pg_core1159.PgColumn<{ + name: "handle"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 36; + }>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "user"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + updatedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "updatedAt"; + tableName: "user"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + twoFactorEnabled: drizzle_orm_pg_core1159.PgColumn<{ + name: "two_factor_enabled"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + isAnonymous: drizzle_orm_pg_core1159.PgColumn<{ + name: "is_anonymous"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + suspended: drizzle_orm_pg_core1159.PgColumn<{ + name: "suspended"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + deleted: drizzle_orm_pg_core1159.PgColumn<{ + name: "deleted"; + tableName: "user"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + bio: drizzle_orm_pg_core1159.PgColumn<{ + name: "bio"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 256; + }>; + website: drizzle_orm_pg_core1159.PgColumn<{ + name: "website"; + tableName: "user"; + dataType: "string"; + columnType: "PgVarchar"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + length: 256; + }>; + socialLinks: drizzle_orm_pg_core1159.PgColumn<{ + name: "social_links"; + tableName: "user"; + dataType: "json"; + columnType: "PgJsonb"; + data: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + }; + driverParam: unknown; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, { + $type: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + }; + }>; + stripeCustomerId: drizzle_orm_pg_core1159.PgColumn<{ + name: "stripe_customer_id"; + tableName: "user"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + role: drizzle_orm_pg_core1159.PgColumn<{ + name: "role"; + tableName: "user"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + roleEndAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "role_end_at"; + tableName: "user"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; }>; declare function lower(handle: AnyPgColumn): SQL; -declare const usersOpenApiSchema: zod.ZodObject; - email: zod.ZodString; - emailVerified: zod.ZodNullable; - image: zod.ZodNullable; - handle: zod.ZodNullable; - createdAt: zod.ZodDate; - updatedAt: zod.ZodDate; - twoFactorEnabled: zod.ZodNullable; - isAnonymous: zod.ZodNullable; - suspended: zod.ZodNullable; - deleted: zod.ZodNullable; - bio: zod.ZodNullable; - website: zod.ZodNullable; - socialLinks: zod.ZodNullable>; -}, "email">, "strip", zod.ZodTypeAny, { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: Date; - updatedAt: Date; - twoFactorEnabled: boolean | null; - isAnonymous: boolean | null; - suspended: boolean | null; - deleted: boolean | null; - bio: string | null; - website: string | null; - socialLinks: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - } | null; +declare const usersOpenApiSchema: zod1169.ZodObject; + email: zod1169.ZodString; + emailVerified: zod1169.ZodNullable; + image: zod1169.ZodNullable; + handle: zod1169.ZodNullable; + createdAt: zod1169.ZodDate; + updatedAt: zod1169.ZodDate; + twoFactorEnabled: zod1169.ZodNullable; + isAnonymous: zod1169.ZodNullable; + suspended: zod1169.ZodNullable; + deleted: zod1169.ZodNullable; + bio: zod1169.ZodNullable; + website: zod1169.ZodNullable; + socialLinks: zod1169.ZodNullable>; + stripeCustomerId: zod1169.ZodNullable; + role: zod1169.ZodNullable; + roleEndAt: zod1169.ZodNullable; +}, "email">, "strip", zod1169.ZodTypeAny, { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: Date; + updatedAt: Date; + twoFactorEnabled: boolean | null; + isAnonymous: boolean | null; + suspended: boolean | null; + deleted: boolean | null; + bio: string | null; + website: string | null; + socialLinks: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + } | null; + stripeCustomerId: string | null; + role: string | null; + roleEndAt: Date | null; }, { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: Date; - updatedAt: Date; - twoFactorEnabled: boolean | null; - isAnonymous: boolean | null; - suspended: boolean | null; - deleted: boolean | null; - bio: string | null; - website: string | null; - socialLinks: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - } | null; + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: Date; + updatedAt: Date; + twoFactorEnabled: boolean | null; + isAnonymous: boolean | null; + suspended: boolean | null; + deleted: boolean | null; + bio: string | null; + website: string | null; + socialLinks: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + } | null; + stripeCustomerId: string | null; + role: string | null; + roleEndAt: Date | null; }>; -declare const account: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "account"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "account"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "userId"; - tableName: "account"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - providerId: drizzle_orm_pg_core.PgColumn<{ - name: "provider"; - tableName: "account"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - accountId: drizzle_orm_pg_core.PgColumn<{ - name: "providerAccountId"; - tableName: "account"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - refreshToken: drizzle_orm_pg_core.PgColumn<{ - name: "refresh_token"; - tableName: "account"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - accessToken: drizzle_orm_pg_core.PgColumn<{ - name: "access_token"; - tableName: "account"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - accessTokenExpiresAt: drizzle_orm_pg_core.PgColumn<{ - name: "expires_at"; - tableName: "account"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - refreshTokenExpiresAt: drizzle_orm_pg_core.PgColumn<{ - name: "refreshTokenExpiresAt"; - tableName: "account"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - scope: drizzle_orm_pg_core.PgColumn<{ - name: "scope"; - tableName: "account"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - idToken: drizzle_orm_pg_core.PgColumn<{ - name: "id_token"; - tableName: "account"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - password: drizzle_orm_pg_core.PgColumn<{ - name: "password"; - tableName: "account"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "createdAt"; - tableName: "account"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - updatedAt: drizzle_orm_pg_core.PgColumn<{ - name: "updatedAt"; - tableName: "account"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; +declare const account: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "account"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "account"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "userId"; + tableName: "account"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + providerId: drizzle_orm_pg_core1159.PgColumn<{ + name: "provider"; + tableName: "account"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + accountId: drizzle_orm_pg_core1159.PgColumn<{ + name: "providerAccountId"; + tableName: "account"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + refreshToken: drizzle_orm_pg_core1159.PgColumn<{ + name: "refresh_token"; + tableName: "account"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + accessToken: drizzle_orm_pg_core1159.PgColumn<{ + name: "access_token"; + tableName: "account"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + accessTokenExpiresAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "expires_at"; + tableName: "account"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + refreshTokenExpiresAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "refreshTokenExpiresAt"; + tableName: "account"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + scope: drizzle_orm_pg_core1159.PgColumn<{ + name: "scope"; + tableName: "account"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + idToken: drizzle_orm_pg_core1159.PgColumn<{ + name: "id_token"; + tableName: "account"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + password: drizzle_orm_pg_core1159.PgColumn<{ + name: "password"; + tableName: "account"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "createdAt"; + tableName: "account"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + updatedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "updatedAt"; + tableName: "account"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const session: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "session"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "session"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + token: drizzle_orm_pg_core1159.PgColumn<{ + name: "sessionToken"; + tableName: "session"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "userId"; + tableName: "session"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + expiresAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "expires"; + tableName: "session"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "createdAt"; + tableName: "session"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + updatedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "updatedAt"; + tableName: "session"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + ipAddress: drizzle_orm_pg_core1159.PgColumn<{ + name: "ipAddress"; + tableName: "session"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userAgent: drizzle_orm_pg_core1159.PgColumn<{ + name: "userAgent"; + tableName: "session"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const verification: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "verificationToken"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "verificationToken"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + identifier: drizzle_orm_pg_core1159.PgColumn<{ + name: "identifier"; + tableName: "verificationToken"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + value: drizzle_orm_pg_core1159.PgColumn<{ + name: "token"; + tableName: "verificationToken"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + expiresAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "expires"; + tableName: "verificationToken"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "createdAt"; + tableName: "verificationToken"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + updatedAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "updatedAt"; + tableName: "verificationToken"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const twoFactor: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "two_factor"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "two_factor"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + secret: drizzle_orm_pg_core1159.PgColumn<{ + name: "secret"; + tableName: "two_factor"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + backupCodes: drizzle_orm_pg_core1159.PgColumn<{ + name: "backup_codes"; + tableName: "two_factor"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "user_id"; + tableName: "two_factor"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const stripeSubscriptions: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "stripe_subscriptions"; + schema: undefined; + columns: { + id: drizzle_orm_pg_core1159.PgColumn<{ + name: "id"; + tableName: "stripe_subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: true; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + plan: drizzle_orm_pg_core1159.PgColumn<{ + name: "plan"; + tableName: "stripe_subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + referenceId: drizzle_orm_pg_core1159.PgColumn<{ + name: "reference_id"; + tableName: "stripe_subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + stripeCustomerId: drizzle_orm_pg_core1159.PgColumn<{ + name: "stripe_customer_id"; + tableName: "stripe_subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + stripeSubscriptionId: drizzle_orm_pg_core1159.PgColumn<{ + name: "stripe_subscription_id"; + tableName: "stripe_subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + status: drizzle_orm_pg_core1159.PgColumn<{ + name: "status"; + tableName: "stripe_subscriptions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + periodStart: drizzle_orm_pg_core1159.PgColumn<{ + name: "period_start"; + tableName: "stripe_subscriptions"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + periodEnd: drizzle_orm_pg_core1159.PgColumn<{ + name: "period_end"; + tableName: "stripe_subscriptions"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + cancelAtPeriodEnd: drizzle_orm_pg_core1159.PgColumn<{ + name: "cancel_at_period_end"; + tableName: "stripe_subscriptions"; + dataType: "boolean"; + columnType: "PgBoolean"; + data: boolean; + driverParam: boolean; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + seats: drizzle_orm_pg_core1159.PgColumn<{ + name: "seats"; + tableName: "stripe_subscriptions"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + trialStart: drizzle_orm_pg_core1159.PgColumn<{ + name: "trial_start"; + tableName: "stripe_subscriptions"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + trialEnd: drizzle_orm_pg_core1159.PgColumn<{ + name: "trial_end"; + tableName: "stripe_subscriptions"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const applePayTransactions: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "apple_pay_transactions"; + schema: undefined; + columns: { + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "userId"; + tableName: "apple_pay_transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + signedTransaction: drizzle_orm_pg_core1159.PgColumn<{ + name: "signed_transaction"; + tableName: "apple_pay_transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const usersRelations: drizzle_orm1055.Relations<"user", { + subscriptions: drizzle_orm1055.Many<"subscriptions">; + listsSubscriptions: drizzle_orm1055.Many<"lists_subscriptions">; + collections: drizzle_orm1055.Many<"collections">; + actions: drizzle_orm1055.One<"actions", true>; + wallets: drizzle_orm1055.One<"wallets", true>; + feeds: drizzle_orm1055.Many<"feeds">; + inboxes: drizzle_orm1055.One<"inboxes", true>; + messaging: drizzle_orm1055.Many<"messaging">; +}>; +//#endregion +//#region src/schema/wallets.d.ts +declare const wallets: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "wallets"; + schema: undefined; + columns: { + addressIndex: drizzle_orm_pg_core1159.PgColumn<{ + name: "address_index"; + tableName: "wallets"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: true; + hasDefault: true; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: "always"; + generated: undefined; + }, {}, {}>; + address: drizzle_orm_pg_core1159.PgColumn<{ + name: "address"; + tableName: "wallets"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "userId"; + tableName: "wallets"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "wallets"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + powerToken: drizzle_orm_pg_core1159.PgColumn<{ + name: "power_token"; + tableName: "wallets"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + dailyPowerToken: drizzle_orm_pg_core1159.PgColumn<{ + name: "daily_power_token"; + tableName: "wallets"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + cashablePowerToken: drizzle_orm_pg_core1159.PgColumn<{ + name: "cashable_power_token"; + tableName: "wallets"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const walletsOpenAPISchema: zod1169.ZodObject<{ + addressIndex: zod1169.ZodNumber; + address: zod1169.ZodNullable; + userId: zod1169.ZodString; + createdAt: zod1169.ZodString; + powerToken: zod1169.ZodString; + dailyPowerToken: zod1169.ZodString; + cashablePowerToken: zod1169.ZodString; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + createdAt: string; + userId: string; + powerToken: string; + addressIndex: number; + address: string | null; + dailyPowerToken: string; + cashablePowerToken: string; +}, { + createdAt: string; + userId: string; + powerToken: string; + addressIndex: number; + address: string | null; + dailyPowerToken: string; + cashablePowerToken: string; +}>; +declare const walletsRelations: drizzle_orm1055.Relations<"wallets", { + user: drizzle_orm1055.One<"user", true>; + transactionsFrom: drizzle_orm1055.Many<"transactions">; + transactionTo: drizzle_orm1055.Many<"transactions">; + level: drizzle_orm1055.One<"levels", false>; +}>; +declare const transactionType: drizzle_orm_pg_core1159.PgEnum<["tip", "mint", "burn", "withdraw", "purchase", "airdrop"]>; +declare const transactions: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "transactions"; + schema: undefined; + columns: { + hash: drizzle_orm_pg_core1159.PgColumn<{ + name: "hash"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + type: drizzle_orm_pg_core1159.PgColumn<{ + name: "type"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgEnumColumn"; + data: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop"; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: ["tip", "mint", "burn", "withdraw", "purchase", "airdrop"]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + fromUserId: drizzle_orm_pg_core1159.PgColumn<{ + name: "from_user_id"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + toUserId: drizzle_orm_pg_core1159.PgColumn<{ + name: "to_user_id"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + toFeedId: drizzle_orm_pg_core1159.PgColumn<{ + name: "to_feed_id"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + toListId: drizzle_orm_pg_core1159.PgColumn<{ + name: "to_list_id"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + toEntryId: drizzle_orm_pg_core1159.PgColumn<{ + name: "to_entry_id"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + toRSSHubId: drizzle_orm_pg_core1159.PgColumn<{ + name: "to_rsshub_id"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + powerToken: drizzle_orm_pg_core1159.PgColumn<{ + name: "power_token"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + tax: drizzle_orm_pg_core1159.PgColumn<{ + name: "tax"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + createdAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "created_at"; + tableName: "transactions"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + comment: drizzle_orm_pg_core1159.PgColumn<{ + name: "comment"; + tableName: "transactions"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const transactionsOpenAPISchema: zod1169.ZodObject<{ + hash: zod1169.ZodString; + type: zod1169.ZodEnum<["tip", "mint", "burn", "withdraw", "purchase", "airdrop"]>; + fromUserId: zod1169.ZodNullable; + toUserId: zod1169.ZodNullable; + toFeedId: zod1169.ZodNullable; + toListId: zod1169.ZodNullable; + toEntryId: zod1169.ZodNullable; + toRSSHubId: zod1169.ZodNullable; + powerToken: zod1169.ZodString; + tax: zod1169.ZodString; + createdAt: zod1169.ZodString; + comment: zod1169.ZodNullable; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + createdAt: string; + type: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop"; + hash: string; + powerToken: string; + fromUserId: string | null; + toUserId: string | null; + toFeedId: string | null; + toListId: string | null; + toEntryId: string | null; + toRSSHubId: string | null; + tax: string; + comment: string | null; +}, { + createdAt: string; + type: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop"; + hash: string; + powerToken: string; + fromUserId: string | null; + toUserId: string | null; + toFeedId: string | null; + toListId: string | null; + toEntryId: string | null; + toRSSHubId: string | null; + tax: string; + comment: string | null; +}>; +declare const transactionsRelations: drizzle_orm1055.Relations<"transactions", { + fromUser: drizzle_orm1055.One<"user", false>; + toUser: drizzle_orm1055.One<"user", false>; + toFeed: drizzle_orm1055.One<"feeds", false>; + fromWallet: drizzle_orm1055.One<"wallets", false>; + toWallet: drizzle_orm1055.One<"wallets", false>; +}>; +declare const feedPowerTokens: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "feedPowerTokens"; + schema: undefined; + columns: { + feedId: drizzle_orm_pg_core1159.PgColumn<{ + name: "feed_id"; + tableName: "feedPowerTokens"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + powerToken: drizzle_orm_pg_core1159.PgColumn<{ + name: "power_token"; + tableName: "feedPowerTokens"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const feedPowerTokensOpenAPISchema: zod1169.ZodObject<{ + feedId: zod1169.ZodString; + powerToken: zod1169.ZodString; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + feedId: string; + powerToken: string; +}, { + feedId: string; + powerToken: string; +}>; +declare const feedPowerTokensRelations: drizzle_orm1055.Relations<"feedPowerTokens", { + feed: drizzle_orm1055.One<"feeds", true>; +}>; +declare const levels: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "levels"; + schema: undefined; + columns: { + address: drizzle_orm_pg_core1159.PgColumn<{ + name: "address"; + tableName: "levels"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + rank: drizzle_orm_pg_core1159.PgColumn<{ + name: "rank"; + tableName: "levels"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + level: drizzle_orm_pg_core1159.PgColumn<{ + name: "level"; + tableName: "levels"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + prevActivityPoints: drizzle_orm_pg_core1159.PgColumn<{ + name: "prev_activity_points"; + tableName: "levels"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + activityPoints: drizzle_orm_pg_core1159.PgColumn<{ + name: "activity_points"; + tableName: "levels"; + dataType: "number"; + columnType: "PgInteger"; + data: number; + driverParam: string | number; + notNull: false; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + powerToken: drizzle_orm_pg_core1159.PgColumn<{ + name: "power_token"; + tableName: "levels"; + dataType: "string"; + columnType: "PgNumeric"; + data: string; + driverParam: string; + notNull: true; + hasDefault: true; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + userId: drizzle_orm_pg_core1159.PgColumn<{ + name: "userId"; + tableName: "levels"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const levelsOpenAPISchema: zod1169.ZodObject<{ + address: zod1169.ZodString; + rank: zod1169.ZodNullable; + level: zod1169.ZodNullable; + prevActivityPoints: zod1169.ZodNullable; + activityPoints: zod1169.ZodNullable; + powerToken: zod1169.ZodString; + userId: zod1169.ZodString; +}, zod1169.UnknownKeysParam, zod1169.ZodTypeAny, { + userId: string; + rank: number | null; + powerToken: string; + address: string; + level: number | null; + prevActivityPoints: number | null; + activityPoints: number | null; +}, { + userId: string; + rank: number | null; + powerToken: string; + address: string; + level: number | null; + prevActivityPoints: number | null; + activityPoints: number | null; +}>; +declare const levelsRelations: drizzle_orm1055.Relations<"levels", { + wallet: drizzle_orm1055.One<"wallets", true>; + user: drizzle_orm1055.One<"user", true>; +}>; +declare const boosts: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "boosts"; + schema: undefined; + columns: { + hash: drizzle_orm_pg_core1159.PgColumn<{ + name: "hash"; + tableName: "boosts"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + expiresAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "expires_at"; + tableName: "boosts"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +declare const rsshubPurchase: drizzle_orm_pg_core1159.PgTableWithColumns<{ + name: "rsshub_purchase"; + schema: undefined; + columns: { + hash: drizzle_orm_pg_core1159.PgColumn<{ + name: "hash"; + tableName: "rsshub_purchase"; + dataType: "string"; + columnType: "PgText"; + data: string; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: true; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: [string, ...string[]]; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + expiresAt: drizzle_orm_pg_core1159.PgColumn<{ + name: "expires_at"; + tableName: "rsshub_purchase"; + dataType: "date"; + columnType: "PgTimestamp"; + data: Date; + driverParam: string; + notNull: true; + hasDefault: false; + isPrimaryKey: false; + isAutoincrement: false; + hasRuntimeDefault: false; + enumValues: undefined; + baseColumn: never; + identity: undefined; + generated: undefined; + }, {}, {}>; + }; + dialect: "pg"; +}>; +//#endregion +//#region src/lib/ai/tools/display/types.d.ts +type FeedWithAnalytics = { + feed: InferSelectModel; + analytics: InferSelectModel | null; +}; +type SubscriptionWithFeedAndAnalytics = { + subscription: InferSelectModel; + feed: InferSelectModel | null; + analytics: InferSelectModel | null; +}; +type TimelineStats = { + count: number; + date: string; +}; +type TrendingFeedData = { + feed: InferSelectModel; + analytics: InferSelectModel | null; + recentSubscribers: number; + totalSubscribers: number; + growthRate: number; +}; +type TrendingTopicData = { + topic: string | null; + feedCount: number; + recentSubscribers: number; + totalSubscribers: number; +}; +type TrendingAuthorData = { + author: string | null; + feedCount: number; + recentSubscribers: number; + totalSubscribers: number; +}; +type TrendingCategoryData = { + category: string | null; + feedCount: number; + recentSubscribers: number; + totalSubscribers: number; + averageQuality: number; +}; +type OverviewStats = { + totalFeeds: number; + totalSubscriptions: number; + totalReads: number; +}; +//#endregion +//#region src/lib/ai/tools/management/types.d.ts +interface ActionSuggestion { + type: string; + name: string; + description: string; + condition: ActionItem["condition"]; + result: SettingsModel; + useCase: string; +} +interface RuleTypes { + filter: number; + translation: number; + webhook: number; + notification: number; + automation: number; +} +interface ComplexityAnalysis { + average: number; + max: number; + distribution: { + simple: number; + moderate: number; + complex: number; + }; +} +//#endregion +//#region src/lib/ai/tools/analytics/types.d.ts +interface FeedEngagement { + feedId: string; + title: string; + reads: number; + lastRead: Date; + category: string; + avgReadTime: number; +} +interface FeedPerformance { + feedId: string; + title: string; + reads: number; + totalEntries: number; + readRate: number; + avgTimeToRead: number; + quality: number; + reliability: number; +} +interface QualityMetric { + feedId: string; + title: string; + category: string | null; + qualityScore: number; + reliability: number; + avgContentLength: number; + totalReads: number; + hasErrors: boolean; + language: string | null; + nsfw: boolean | null; +} +interface CategoryDistribution { + category: string; + count: number; +} +interface LanguageDistribution { + language: string; + count: number; +} +interface ViewTypeDistribution { + view: number; + name: string; + count: number; +} +interface PerformanceAnalyticsResult { + performance: { + totalFeeds: number; + analyzedFeeds: number; + avgQuality: number; + avgReliability: number; + performanceDistribution: { + high: number; + medium: number; + low: number; }; - dialect: "pg"; -}>; -declare const session: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "session"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "session"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - token: drizzle_orm_pg_core.PgColumn<{ - name: "sessionToken"; - tableName: "session"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "userId"; - tableName: "session"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - expiresAt: drizzle_orm_pg_core.PgColumn<{ - name: "expires"; - tableName: "session"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "createdAt"; - tableName: "session"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - updatedAt: drizzle_orm_pg_core.PgColumn<{ - name: "updatedAt"; - tableName: "session"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - ipAddress: drizzle_orm_pg_core.PgColumn<{ - name: "ipAddress"; - tableName: "session"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userAgent: drizzle_orm_pg_core.PgColumn<{ - name: "userAgent"; - tableName: "session"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; -}>; -declare const verification: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "verificationToken"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "verificationToken"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - identifier: drizzle_orm_pg_core.PgColumn<{ - name: "identifier"; - tableName: "verificationToken"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - value: drizzle_orm_pg_core.PgColumn<{ - name: "token"; - tableName: "verificationToken"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - expiresAt: drizzle_orm_pg_core.PgColumn<{ - name: "expires"; - tableName: "verificationToken"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "createdAt"; - tableName: "verificationToken"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - updatedAt: drizzle_orm_pg_core.PgColumn<{ - name: "updatedAt"; - tableName: "verificationToken"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: false; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; -}>; -declare const twoFactor: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "two_factor"; - schema: undefined; - columns: { - id: drizzle_orm_pg_core.PgColumn<{ - name: "id"; - tableName: "two_factor"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: true; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - secret: drizzle_orm_pg_core.PgColumn<{ - name: "secret"; - tableName: "two_factor"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - backupCodes: drizzle_orm_pg_core.PgColumn<{ - name: "backup_codes"; - tableName: "two_factor"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "user_id"; - tableName: "two_factor"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; -}>; -declare const usersRelations: drizzle_orm.Relations<"user", { - subscriptions: drizzle_orm.Many<"subscriptions">; - listsSubscriptions: drizzle_orm.Many<"lists_subscriptions">; - collections: drizzle_orm.Many<"collections">; - actions: drizzle_orm.One<"actions", true>; - wallets: drizzle_orm.One<"wallets", true>; - feeds: drizzle_orm.Many<"feeds">; - inboxes: drizzle_orm.One<"inboxes", true>; - messaging: drizzle_orm.Many<"messaging">; -}>; - -declare const wallets: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "wallets"; - schema: undefined; - columns: { - addressIndex: drizzle_orm_pg_core.PgColumn<{ - name: "address_index"; - tableName: "wallets"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: true; - hasDefault: true; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: "always"; - generated: undefined; - }, {}, {}>; - address: drizzle_orm_pg_core.PgColumn<{ - name: "address"; - tableName: "wallets"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "userId"; - tableName: "wallets"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "wallets"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - powerToken: drizzle_orm_pg_core.PgColumn<{ - name: "power_token"; - tableName: "wallets"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - dailyPowerToken: drizzle_orm_pg_core.PgColumn<{ - name: "daily_power_token"; - tableName: "wallets"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - cashablePowerToken: drizzle_orm_pg_core.PgColumn<{ - name: "cashable_power_token"; - tableName: "wallets"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; -}>; -declare const walletsOpenAPISchema: zod.ZodObject<{ - addressIndex: zod.ZodNumber; - address: zod.ZodNullable; - userId: zod.ZodString; - createdAt: zod.ZodString; - powerToken: zod.ZodString; - dailyPowerToken: zod.ZodString; - cashablePowerToken: zod.ZodString; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - createdAt: string; + }; + topPerformers: FeedPerformance[]; + needsAttention: FeedPerformance[]; + metrics: { + totalReads: number; + avgReadsPerFeed: number; + }; + detailed?: { + qualityFactors: Record; + reliabilityFactors: Record; + }; +} +//#endregion +//#region src/lib/ai/tools/index.d.ts +declare const tools: { + aiMemory: ai56.Tool<{ userId: string; - powerToken: string; - addressIndex: number; - address: string | null; - dailyPowerToken: string; - cashablePowerToken: string; -}, { - createdAt: string; + operation: "store_conversation" | "retrieve_context" | "update_preferences" | "get_insights" | "analyze_patterns" | "personalize_response" | "clear_memory"; + data?: { + query?: string | undefined; + conversation?: { + context?: { + selectedText?: string | undefined; + currentFeedId?: string | undefined; + currentEntryId?: string | undefined; + sessionTopic?: string | undefined; + userIntent?: string | undefined; + } | undefined; + userMessage?: string | undefined; + assistantResponse?: string | undefined; + toolsUsed?: string[] | undefined; + } | undefined; + preferences?: { + categories?: string[] | undefined; + contentTypes?: string[] | undefined; + languages?: string[] | undefined; + aiInteractionStyle?: string | undefined; + } | undefined; + timeframe?: "all" | "1d" | "7d" | "30d" | undefined; + } | undefined; + }, { + style: string; + context: any; + preferences: UserPreferences; + suggestedTools: string[]; + personalizedResponse: string; + } | { + success: boolean; + stored: { + conversationId: number; + timestamp: Date; + contextStored: boolean; + }; + recentContext?: undefined; + preferences?: undefined; + insights?: undefined; + updatedPreferences?: undefined; + conversationInsights?: undefined; + behaviorInsights?: undefined; + recommendations?: undefined; + patterns?: undefined; + message?: undefined; + timestamp?: undefined; + error?: undefined; + details?: undefined; + } | { + recentContext: { + conversations: number; + lastInteraction: Date; + activeTopics: (string | undefined)[]; + toolsUsed: string[]; + currentContext: ConversationContext; + }; + preferences: UserPreferences; + insights: { + commonQuestions: string[]; + workflows: string[]; + contentInterests: string[]; + automationPatterns: string[]; + }; + success?: undefined; + stored?: undefined; + updatedPreferences?: undefined; + conversationInsights?: undefined; + behaviorInsights?: undefined; + recommendations?: undefined; + patterns?: undefined; + message?: undefined; + timestamp?: undefined; + error?: undefined; + details?: undefined; + } | { + success: boolean; + updatedPreferences: UserPreferences; + stored?: undefined; + recentContext?: undefined; + preferences?: undefined; + insights?: undefined; + conversationInsights?: undefined; + behaviorInsights?: undefined; + recommendations?: undefined; + patterns?: undefined; + message?: undefined; + timestamp?: undefined; + error?: undefined; + details?: undefined; + } | { + conversationInsights: { + totalConversations: number; + recentActivity: number; + commonTopics: (string | undefined)[]; + frequentTools: string[]; + userIntents: (string | undefined)[]; + conversationLength: number; + }; + behaviorInsights: { + subscriptionCount: number; + categories: (string | null)[]; + recentReads: number; + readingVelocity: number; + activeFeeds: number; + }; + preferences: UserPreferences; + recommendations: string[]; + success?: undefined; + stored?: undefined; + recentContext?: undefined; + insights?: undefined; + updatedPreferences?: undefined; + patterns?: undefined; + message?: undefined; + timestamp?: undefined; + error?: undefined; + details?: undefined; + } | { + patterns: { + communication: { + avgMessageLength: number; + questionTypes: string[]; + interactionStyle: string; + }; + content: { + categories: string[]; + languages: string[]; + contentTypes: string[]; + }; + workflow: { + commonWorkflows: string[]; + toolPreferences: string[]; + }; + temporal: { + activityTimes: number[]; + conversationFrequency: string; + }; + }; + insights: string[]; + recommendations: string[]; + success?: undefined; + stored?: undefined; + recentContext?: undefined; + preferences?: undefined; + updatedPreferences?: undefined; + conversationInsights?: undefined; + behaviorInsights?: undefined; + message?: undefined; + timestamp?: undefined; + error?: undefined; + details?: undefined; + } | { + success: boolean; + message: string; + timestamp: Date; + stored?: undefined; + recentContext?: undefined; + preferences?: undefined; + insights?: undefined; + updatedPreferences?: undefined; + conversationInsights?: undefined; + behaviorInsights?: undefined; + recommendations?: undefined; + patterns?: undefined; + error?: undefined; + details?: undefined; + } | { + error: string; + details: string; + success?: undefined; + stored?: undefined; + recentContext?: undefined; + preferences?: undefined; + insights?: undefined; + updatedPreferences?: undefined; + conversationInsights?: undefined; + behaviorInsights?: undefined; + recommendations?: undefined; + patterns?: undefined; + message?: undefined; + timestamp?: undefined; + }>; + displayFeeds: ai56.Tool<{ + feedIds: string[]; + title?: string | undefined; + displayType?: "list" | "grid" | "card" | undefined; + showAnalytics?: boolean | undefined; + }, { + feeds: { + feed: { + id: string; + url: string; + title: string | null; + description: string | null; + siteUrl: string | null; + image: string | null; + checkedAt: Date; + lastModifiedHeader: string | null; + etagHeader: string | null; + ttl: number | null; + errorMessage: string | null; + errorAt: Date | null; + ownerUserId: string | null; + language: string | null; + migrateTo: string | null; + rsshubRoute: string | null; + rsshubNamespace: string | null; + nsfw: boolean | null; + }; + analytics: { + feedId: string; + updatesPerWeek: number | null; + subscriptionCount: number | null; + latestEntryPublishedAt: Date | null; + view: number | null; + } | null; + }[]; + displayType: "list" | "grid" | "card" | undefined; + showAnalytics: boolean | undefined; + title: string | undefined; + }>; + displayEntries: ai56.Tool<{ + entryIds: string[]; + title?: string | undefined; + groupBy?: "date" | "feed" | "none" | undefined; + displayType?: "timeline" | "list" | "grid" | "card" | "magazine" | undefined; + showSummary?: boolean | undefined; + showMetadata?: boolean | undefined; + }, { + entries: { + entry: { + id: string; + title: string | null; + url: string | null; + content: string | null; + description: string | null; + guid: string; + author: string | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: Date; + publishedAt: Date; + media: MediaModel[] | null; + categories: string[] | null; + attachments: AttachmentsModel[] | null; + extra: ExtraModel | null; + language: string | null; + feedId: string; + }; + feed: { + id: string; + url: string; + title: string | null; + description: string | null; + siteUrl: string | null; + image: string | null; + checkedAt: Date; + lastModifiedHeader: string | null; + etagHeader: string | null; + ttl: number | null; + errorMessage: string | null; + errorAt: Date | null; + ownerUserId: string | null; + language: string | null; + migrateTo: string | null; + rsshubRoute: string | null; + rsshubNamespace: string | null; + nsfw: boolean | null; + } | null; + analytics: { + feedId: string; + updatesPerWeek: number | null; + subscriptionCount: number | null; + latestEntryPublishedAt: Date | null; + view: number | null; + } | null; + }[]; + displayType: "timeline" | "list" | "grid" | "card" | "magazine" | undefined; + showSummary: boolean | undefined; + showMetadata: boolean | undefined; + title: string | undefined; + groupBy: "date" | "feed" | "none" | undefined; + }>; + displaySubscriptions: ai56.Tool<{ userId: string; - powerToken: string; - addressIndex: number; - address: string | null; - dailyPowerToken: string; - cashablePowerToken: string; -}>; -declare const walletsRelations: drizzle_orm.Relations<"wallets", { - user: drizzle_orm.One<"user", true>; - transactionsFrom: drizzle_orm.Many<"transactions">; - transactionTo: drizzle_orm.Many<"transactions">; - level: drizzle_orm.One<"levels", false>; -}>; -declare const transactionType: drizzle_orm_pg_core.PgEnum<["tip", "mint", "burn", "withdraw", "purchase", "airdrop"]>; -declare const transactions: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "transactions"; - schema: undefined; - columns: { - hash: drizzle_orm_pg_core.PgColumn<{ - name: "hash"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - type: drizzle_orm_pg_core.PgColumn<{ - name: "type"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgEnumColumn"; - data: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop"; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: ["tip", "mint", "burn", "withdraw", "purchase", "airdrop"]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - fromUserId: drizzle_orm_pg_core.PgColumn<{ - name: "from_user_id"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - toUserId: drizzle_orm_pg_core.PgColumn<{ - name: "to_user_id"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - toFeedId: drizzle_orm_pg_core.PgColumn<{ - name: "to_feed_id"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - toListId: drizzle_orm_pg_core.PgColumn<{ - name: "to_list_id"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - toEntryId: drizzle_orm_pg_core.PgColumn<{ - name: "to_entry_id"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - toRSSHubId: drizzle_orm_pg_core.PgColumn<{ - name: "to_rsshub_id"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - powerToken: drizzle_orm_pg_core.PgColumn<{ - name: "power_token"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - tax: drizzle_orm_pg_core.PgColumn<{ - name: "tax"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - createdAt: drizzle_orm_pg_core.PgColumn<{ - name: "created_at"; - tableName: "transactions"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - comment: drizzle_orm_pg_core.PgColumn<{ - name: "comment"; - tableName: "transactions"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; + title?: string | undefined; + groupBy?: "status" | "category" | "none" | undefined; + displayType?: "list" | "grid" | "card" | "compact" | undefined; + showAnalytics?: boolean | undefined; + showCategories?: boolean | undefined; + filterBy?: "all" | "active" | "inactive" | "recent" | undefined; + }, { + subscriptions: { + subscription: { + userId: string; + feedId: string; + view: number; + category: string | null; + title: string | null; + createdAt: Date; + isPrivate: boolean; + }; + feed: { + id: string; + url: string; + title: string | null; + description: string | null; + siteUrl: string | null; + image: string | null; + checkedAt: Date; + lastModifiedHeader: string | null; + etagHeader: string | null; + ttl: number | null; + errorMessage: string | null; + errorAt: Date | null; + ownerUserId: string | null; + language: string | null; + migrateTo: string | null; + rsshubRoute: string | null; + rsshubNamespace: string | null; + nsfw: boolean | null; + } | null; + analytics: { + feedId: string; + updatesPerWeek: number | null; + subscriptionCount: number | null; + latestEntryPublishedAt: Date | null; + view: number | null; + } | null; + }[]; + displayType: "list" | "grid" | "card" | "compact" | undefined; + showAnalytics: boolean | undefined; + showCategories: boolean | undefined; + title: string | undefined; + groupBy: "status" | "category" | "none" | undefined; + filterBy: "all" | "active" | "inactive" | "recent" | undefined; + }>; + displayAnalytics: ai56.Tool<{ + analyticsType: "feed" | "subscription" | "reading" | "trending" | "overview"; + userId?: string | undefined; + title?: string | undefined; + feedId?: string | undefined; + displayType?: "table" | "card" | "chart" | "dashboard" | undefined; + timeRange?: "all" | "7d" | "30d" | "90d" | "1y" | undefined; + showComparison?: boolean | undefined; + }, { + analyticsData: { + feedData?: FeedWithAnalytics; + subscriptionStats?: SubscriptionWithFeedAndAnalytics[]; + readingStats?: TimelineStats[]; + trendingFeeds?: FeedWithAnalytics[]; + overviewStats?: OverviewStats; }; - dialect: "pg"; -}>; -declare const transactionsOpenAPISchema: zod.ZodObject<{ - hash: zod.ZodString; - type: zod.ZodEnum<["tip", "mint", "burn", "withdraw", "purchase", "airdrop"]>; - fromUserId: zod.ZodNullable; - toUserId: zod.ZodNullable; - toFeedId: zod.ZodNullable; - toListId: zod.ZodNullable; - toEntryId: zod.ZodNullable; - toRSSHubId: zod.ZodNullable; - powerToken: zod.ZodString; - tax: zod.ZodString; - createdAt: zod.ZodString; - comment: zod.ZodNullable; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { - createdAt: string; - type: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop"; - hash: string; - powerToken: string; - fromUserId: string | null; - toUserId: string | null; - toFeedId: string | null; - toListId: string | null; - toEntryId: string | null; - toRSSHubId: string | null; - tax: string; - comment: string | null; -}, { - createdAt: string; - type: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop"; - hash: string; - powerToken: string; - fromUserId: string | null; - toUserId: string | null; - toFeedId: string | null; - toListId: string | null; - toEntryId: string | null; - toRSSHubId: string | null; - tax: string; - comment: string | null; -}>; -declare const transactionsRelations: drizzle_orm.Relations<"transactions", { - fromUser: drizzle_orm.One<"user", false>; - toUser: drizzle_orm.One<"user", false>; - toFeed: drizzle_orm.One<"feeds", false>; - fromWallet: drizzle_orm.One<"wallets", false>; - toWallet: drizzle_orm.One<"wallets", false>; -}>; -declare const feedPowerTokens: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "feedPowerTokens"; - schema: undefined; - columns: { - feedId: drizzle_orm_pg_core.PgColumn<{ - name: "feed_id"; - tableName: "feedPowerTokens"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - powerToken: drizzle_orm_pg_core.PgColumn<{ - name: "power_token"; - tableName: "feedPowerTokens"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; + analyticsType: "feed" | "subscription" | "reading" | "trending" | "overview"; + timeRange: "all" | "7d" | "30d" | "90d" | "1y"; + displayType: "table" | "card" | "chart" | "dashboard" | undefined; + showComparison: boolean | undefined; + title: string | undefined; + }>; + displayTrending: ai56.Tool<{ + trendingType: "feeds" | "categories" | "topics" | "authors"; + title?: string | undefined; + limit?: number | undefined; + displayType?: "list" | "ranking" | "grid" | "card" | undefined; + timeRange?: "1d" | "7d" | "30d" | "90d" | undefined; + showGrowth?: boolean | undefined; + showMetrics?: boolean | undefined; + }, { + trendingData: { + trendingFeeds?: TrendingFeedData[]; + trendingTopics?: TrendingTopicData[]; + trendingAuthors?: TrendingAuthorData[]; + trendingCategories?: TrendingCategoryData[]; }; - dialect: "pg"; -}>; -declare const feedPowerTokensOpenAPISchema: zod.ZodObject<{ - feedId: zod.ZodString; - powerToken: zod.ZodString; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { + trendingType: "feeds" | "categories" | "topics" | "authors"; + timeRange: "1d" | "7d" | "30d" | "90d"; + displayType: "list" | "ranking" | "grid" | "card" | undefined; + showGrowth: boolean | undefined; + showMetrics: boolean | undefined; + limit: number; + title: string | undefined; + }>; + getFeeds: ai56.Tool<{ + select: ("id" | "image" | "description" | "title" | "url" | "siteUrl" | "checkedAt" | "lastModifiedHeader" | "etagHeader" | "ttl" | "errorMessage" | "errorAt" | "ownerUserId" | "language" | "migrateTo" | "rsshubRoute" | "rsshubNamespace" | "nsfw")[]; + ids: string[]; + }, { + feeds: Record[]; + }>; + getFeedEntries: ai56.Tool<{ + select: ("id" | "description" | "title" | "content" | "author" | "url" | "language" | "feedId" | "guid" | "media" | "categories" | "attachments" | "extra" | "authorUrl" | "authorAvatar" | "insertedAt" | "publishedAt")[]; feedId: string; - powerToken: string; -}, { - feedId: string; - powerToken: string; -}>; -declare const feedPowerTokensRelations: drizzle_orm.Relations<"feedPowerTokens", { - feed: drizzle_orm.One<"feeds", true>; -}>; -declare const levels: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "levels"; - schema: undefined; - columns: { - address: drizzle_orm_pg_core.PgColumn<{ - name: "address"; - tableName: "levels"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - rank: drizzle_orm_pg_core.PgColumn<{ - name: "rank"; - tableName: "levels"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - level: drizzle_orm_pg_core.PgColumn<{ - name: "level"; - tableName: "levels"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - prevActivityPoints: drizzle_orm_pg_core.PgColumn<{ - name: "prev_activity_points"; - tableName: "levels"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - activityPoints: drizzle_orm_pg_core.PgColumn<{ - name: "activity_points"; - tableName: "levels"; - dataType: "number"; - columnType: "PgInteger"; - data: number; - driverParam: string | number; - notNull: false; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - powerToken: drizzle_orm_pg_core.PgColumn<{ - name: "power_token"; - tableName: "levels"; - dataType: "string"; - columnType: "PgNumeric"; - data: string; - driverParam: string; - notNull: true; - hasDefault: true; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - userId: drizzle_orm_pg_core.PgColumn<{ - name: "userId"; - tableName: "levels"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - }; - dialect: "pg"; -}>; -declare const levelsOpenAPISchema: zod.ZodObject<{ - address: zod.ZodString; - rank: zod.ZodNullable; - level: zod.ZodNullable; - prevActivityPoints: zod.ZodNullable; - activityPoints: zod.ZodNullable; - powerToken: zod.ZodString; - userId: zod.ZodString; -}, zod.UnknownKeysParam, zod.ZodTypeAny, { + }, { + entries: Record[]; + }>; + getEntry: ai56.Tool<{ + id: string; + select: ("id" | "description" | "title" | "content" | "author" | "url" | "language" | "feedId" | "guid" | "media" | "categories" | "attachments" | "extra" | "authorUrl" | "authorAvatar" | "insertedAt" | "publishedAt")[]; + }, Record | null>; + getUserSubscriptions: ai56.Tool<{ userId: string; - rank: number | null; - powerToken: string; - address: string; - level: number | null; - prevActivityPoints: number | null; - activityPoints: number | null; -}, { + view?: number | undefined; + category?: string | undefined; + limit?: number | undefined; + }, { + subscriptions: { + feedId: string; + title: string | null; + description: string | null; + url: string; + siteUrl: string | null; + category: string | null; + view: number; + language: string | null; + nsfw: boolean | null; + subscribedAt: Date; + isPrivate: boolean; + }[]; + summary: { + totalSubscriptions: number; + categories: (string | null)[]; + views: number[]; + languages: (string | null)[]; + nsfwCount: number; + privateCount: number; + }; + }>; + getTrendingFeeds: ai56.Tool<{ + language?: string | undefined; + limit?: number | undefined; + timeframe?: "1d" | "3d" | "7d" | "30d" | undefined; + excludeNsfw?: boolean | undefined; + minimumScore?: number | undefined; + }, { + trending: { + feedId: string; + title: string | null; + description: string | null; + url: string; + siteUrl: string | null; + image: string | null; + language: string | null; + nsfw: boolean | null; + trendingScore: number; + scores: { + "1d": string; + "3d": string; + "7d": string; + "30d": string; + }; + isHealthy: boolean; + lastChecked: Date; + rankedAt: Date; + view: number; + }[]; + summary: { + totalFeeds: number; + timeframeUsed: "1d" | "3d" | "7d" | "30d"; + averageScore: number; + languages: (string | null)[]; + healthyFeeds: number; + }; + }>; + searchFeeds: ai56.Tool<{ + query: string; + language?: string | undefined; + limit?: number | undefined; + excludeNsfw?: boolean | undefined; + }, { + results: { + feedId: string; + title: string | null; + description: string | null; + url: string; + siteUrl: string | null; + image: string | null; + language: string | null; + nsfw: boolean | null; + relevanceScore: number; + isHealthy: boolean; + lastChecked: Date; + updateFrequency: number | null; + }[]; + summary: { + totalResults: number; + query: string; + averageRelevanceScore: number; + languages: (string | null)[]; + healthyFeeds: number; + }; + }>; + getUserReadingHistory: ai56.Tool<{ userId: string; - rank: number | null; - powerToken: string; - address: string; - level: number | null; - prevActivityPoints: number | null; - activityPoints: number | null; -}>; -declare const levelsRelations: drizzle_orm.Relations<"levels", { - wallet: drizzle_orm.One<"wallets", true>; - user: drizzle_orm.One<"user", true>; -}>; -declare const boosts: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "boosts"; - schema: undefined; - columns: { - hash: drizzle_orm_pg_core.PgColumn<{ - name: "hash"; - tableName: "boosts"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - expiresAt: drizzle_orm_pg_core.PgColumn<{ - name: "expires_at"; - tableName: "boosts"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; + limit?: number | undefined; + timeframeDays?: number | undefined; + }, { + recentReads: { + readAt: Date; + entryId: string; + feedId: string; + readCount: number; + entry: { + id: string; + title: string | null; + description: string | null; + url: string | null; + author: string | null; + publishedAt: Date; + language: string | null; + categories: string[] | null; + feedId: string; + }; + feed: { + id: string; + title: string | null; + description: string | null; + language: string | null; + nsfw: boolean | null; + } | undefined; + }[]; + statistics: { + totalReads: number; + uniqueFeeds: number; + uniqueAuthors: number; + readingVelocity: number; + timeframeDays: number; }; - dialect: "pg"; -}>; -declare const rsshubPurchase: drizzle_orm_pg_core.PgTableWithColumns<{ - name: "rsshub_purchase"; - schema: undefined; - columns: { - hash: drizzle_orm_pg_core.PgColumn<{ - name: "hash"; - tableName: "rsshub_purchase"; - dataType: "string"; - columnType: "PgText"; - data: string; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: true; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: [string, ...string[]]; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; - expiresAt: drizzle_orm_pg_core.PgColumn<{ - name: "expires_at"; - tableName: "rsshub_purchase"; - dataType: "date"; - columnType: "PgTimestamp"; - data: Date; - driverParam: string; - notNull: true; - hasDefault: false; - isPrimaryKey: false; - isAutoincrement: false; - hasRuntimeDefault: false; - enumValues: undefined; - baseColumn: never; - identity: undefined; - generated: undefined; - }, {}, {}>; + patterns: { + topFeeds: { + feedId: string; + feedTitle: string; + readCount: number; + }[]; + languagePreferences: { + language: string; + count: number; + }[]; + topCategories: { + category: string; + count: number; + }[]; }; - dialect: "pg"; -}>; - + insights: { + mostActiveLanguage: string; + diversityScore: number; + readingConsistency: string; + }; + }>; + getContentRecommendations: ai56.Tool<{ + userId: string; + limit?: number | undefined; + excludeNsfw?: boolean | undefined; + timeframeDays?: number | undefined; + recommendationType?: "entries" | "feeds" | "both" | undefined; + excludeRead?: boolean | undefined; + includeLanguages?: string[] | undefined; + }, { + recommendations: any; + summary: { + userPreferences: { + topLanguages: { + language: string; + readCount: number; + }[]; + topCategories: { + category: string; + readCount: number; + }[]; + favoriteAuthors: { + author: string; + readCount: number; + }[]; + }; + recommendationMetadata: { + totalSubscriptions: number; + recentReads: number; + timeframeDays: number; + recommendationType: "entries" | "feeds" | "both"; + filters: { + excludeRead: boolean; + excludeNsfw: boolean; + languages: string[]; + }; + }; + }; + }>; + manageSubscriptions: ai56.Tool<{ + userId: string; + action: "analyze" | "categorize" | "cleanup" | "optimize"; + options?: { + maxSuggestions?: number | undefined; + } | undefined; + }, { + analysis: { + totalSubscriptions: number; + categories: number; + languages: number; + uncategorized: number; + inactive: number; + nsfw: number; + private: number; + utilizationRate: number; + }; + details: { + categoriesUsed: (string | null)[]; + languagesUsed: (string | null)[]; + uncategorizedFeeds: { + feedId: string; + title: string | null; + description: string | null; + language: string | null; + }[]; + inactiveFeeds: { + feedId: string; + title: string | null; + errorMessage: string | null; + lastChecked: Date; + }[]; + }; + recommendations: (string | false)[]; + totalUncategorized?: undefined; + existingCategories?: undefined; + suggestions?: undefined; + totalCandidates?: undefined; + candidates?: undefined; + potentialSavings?: undefined; + optimization?: undefined; + error?: undefined; + } | { + totalUncategorized: number; + existingCategories: string[]; + suggestions: { + feedId: string; + title: string | null; + description: string | null; + currentCategory: string | null; + suggestedCategory: string; + confidence: number; + reasons: string[]; + }[]; + analysis?: undefined; + details?: undefined; + recommendations?: undefined; + totalCandidates?: undefined; + candidates?: undefined; + potentialSavings?: undefined; + optimization?: undefined; + error?: undefined; + } | { + totalCandidates: number; + candidates: { + feedId: string; + title: string; + category: string | null; + issues: string[]; + severity: number; + recommendation: string; + }[]; + potentialSavings: number; + recommendations: string[]; + analysis?: undefined; + details?: undefined; + totalUncategorized?: undefined; + existingCategories?: undefined; + suggestions?: undefined; + optimization?: undefined; + error?: undefined; + } | { + optimization: { + totalSubscriptions: number; + utilizationRate: number; + categorizedFeeds: number; + uncategorizedFeeds: number; + languageDiversity: number; + }; + recommendations: { + type: string; + description: string; + impact: string; + count?: number; + }[]; + analysis?: undefined; + details?: undefined; + totalUncategorized?: undefined; + existingCategories?: undefined; + suggestions?: undefined; + totalCandidates?: undefined; + candidates?: undefined; + potentialSavings?: undefined; + error?: undefined; + } | { + error: string; + details: string; + analysis?: undefined; + recommendations?: undefined; + totalUncategorized?: undefined; + existingCategories?: undefined; + suggestions?: undefined; + totalCandidates?: undefined; + candidates?: undefined; + potentialSavings?: undefined; + optimization?: undefined; + }>; + manageActions: ai56.Tool<{ + userId: string; + operation: "examples" | "analyze" | "optimize" | "suggest" | "validate"; + context?: { + pattern?: string | undefined; + ruleType?: "custom" | "filter" | "translation" | "webhook" | "notification" | undefined; + } | undefined; + }, { + analysis: { + totalActions: number; + maxActions: number; + utilizationRate: number; + ruleTypes: RuleTypes; + complexity: ComplexityAnalysis; + potentialIssues: string[]; + }; + recommendations: string[]; + actions: { + id: number; + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + complexity: number; + }[]; + suggestions?: undefined; + currentCount?: undefined; + availableSlots?: undefined; + context?: undefined; + overallValid?: undefined; + totalErrors?: undefined; + totalWarnings?: undefined; + validationResults?: undefined; + optimizations?: undefined; + summary?: undefined; + examples?: undefined; + usage?: undefined; + categories?: undefined; + error?: undefined; + details?: undefined; + } | { + suggestions: ActionSuggestion[]; + currentCount: number; + availableSlots: number; + context: { + pattern?: string | undefined; + ruleType?: "custom" | "filter" | "translation" | "webhook" | "notification" | undefined; + }; + analysis?: undefined; + recommendations?: undefined; + actions?: undefined; + overallValid?: undefined; + totalErrors?: undefined; + totalWarnings?: undefined; + validationResults?: undefined; + optimizations?: undefined; + summary?: undefined; + examples?: undefined; + usage?: undefined; + categories?: undefined; + error?: undefined; + details?: undefined; + } | { + overallValid: boolean; + totalErrors: number; + totalWarnings: number; + validationResults: { + id: number; + name: string; + isValid: boolean; + errors: string[]; + warnings: string[]; + suggestions: string[]; + }[]; + recommendations: (string | false)[]; + analysis?: undefined; + actions?: undefined; + suggestions?: undefined; + currentCount?: undefined; + availableSlots?: undefined; + context?: undefined; + optimizations?: undefined; + summary?: undefined; + examples?: undefined; + usage?: undefined; + categories?: undefined; + error?: undefined; + details?: undefined; + } | { + optimizations: { + id: number; + name: string; + currentComplexity: number; + optimizedComplexity: number; + improvements: string[]; + optimizedAction: { + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + }; + performanceGain: number; + }[]; + summary: { + totalRules: number; + totalImprovements: number; + averagePerformanceGain: number; + recommendations: (string | false)[]; + }; + analysis?: undefined; + recommendations?: undefined; + actions?: undefined; + suggestions?: undefined; + currentCount?: undefined; + availableSlots?: undefined; + context?: undefined; + overallValid?: undefined; + totalErrors?: undefined; + totalWarnings?: undefined; + validationResults?: undefined; + examples?: undefined; + usage?: undefined; + categories?: undefined; + error?: undefined; + details?: undefined; + } | { + examples: { + contentFiltering: ({ + name: string; + condition: { + field: "entry_title"; + operator: "regex"; + value: string; + }[]; + result: { + block: boolean; + star?: undefined; + }; + description: string; + } | { + name: string; + condition: { + field: "entry_content"; + operator: "gt"; + value: string; + }[]; + result: { + star: boolean; + block?: undefined; + }; + description: string; + })[]; + automation: ({ + name: string; + condition: { + field: "entry_content"; + operator: "gt"; + value: string; + }[]; + result: { + summary: boolean; + translation?: undefined; + }; + description: string; + } | { + name: string; + condition: ({ + field: "category"; + operator: "eq"; + value: string; + } | { + field: "entry_title"; + operator: "not_eq"; + value: string; + })[]; + result: { + translation: string; + summary?: undefined; + }; + description: string; + })[]; + notifications: { + name: string; + condition: { + field: "entry_author"; + operator: "contains"; + value: string; + }[]; + result: { + newEntryNotification: boolean; + }; + description: string; + }[]; + }; + usage: { + howToUse: string; + customization: string; + testing: string; + }; + categories: string[]; + analysis?: undefined; + recommendations?: undefined; + actions?: undefined; + suggestions?: undefined; + currentCount?: undefined; + availableSlots?: undefined; + context?: undefined; + overallValid?: undefined; + totalErrors?: undefined; + totalWarnings?: undefined; + validationResults?: undefined; + optimizations?: undefined; + summary?: undefined; + error?: undefined; + details?: undefined; + } | { + error: string; + details: string; + analysis?: undefined; + recommendations?: undefined; + actions?: undefined; + suggestions?: undefined; + currentCount?: undefined; + availableSlots?: undefined; + context?: undefined; + overallValid?: undefined; + totalErrors?: undefined; + totalWarnings?: undefined; + validationResults?: undefined; + optimizations?: undefined; + summary?: undefined; + examples?: undefined; + usage?: undefined; + categories?: undefined; + }>; + subscriptionAnalytics: ai56.Tool<{ + userId: string; + analysisType: "overview" | "engagement" | "performance" | "trends" | "quality" | "recommendations" | "comparative"; + options?: { + includeInactive?: boolean | undefined; + minReadThreshold?: number | undefined; + compareWithAverage?: boolean | undefined; + detailedBreakdown?: boolean | undefined; + } | undefined; + timeRange?: "all" | "7d" | "30d" | "90d" | "1y" | undefined; + }, { + overview: { + totalSubscriptions: number; + activeFeeds: number; + inactiveFeeds: number; + totalReads: number; + uniqueActiveFeeds: number; + readingVelocity: number; + timeRange: string; + healthScore: number; + }; + distribution: { + categories: CategoryDistribution[]; + languages: LanguageDistribution[]; + viewTypes: ViewTypeDistribution[]; + }; + insights: { + mostActiveCategory: string; + primaryLanguage: string; + subscriptionUtilization: number; + engagementLevel: string; + }; + } | { + engagement: { + totalFeeds: number; + activeFeeds: number; + dormantFeeds: number; + engagementTiers: { + high: number; + medium: number; + low: number; + }; + }; + topPerformers: FeedEngagement[]; + underperformers: FeedEngagement[]; + dormantFeeds: { + feedId: string; + title: string | null; + category: string | null; + subscribedAt: Date; + lastChecked: Date; + }[]; + recommendations: (string | false)[]; + } | PerformanceAnalyticsResult | { + trends: { + timeRange: string; + totalDataPoints: number; + growthTrend: number; + seasonalPatterns: string[]; + }; + timeline: { + uniqueFeeds: number; + period: string; + reads: number; + avgEngagement: number; + }[]; + insights: { + trendDirection: string; + peakPeriod: string; + avgDailyReads: number; + }; + recommendations: (string | false)[]; + } | { + quality: { + totalFeeds: number; + avgQualityScore: number; + avgReliability: number; + qualityDistribution: { + high: number; + medium: number; + low: number; + }; + }; + highQualityFeeds: QualityMetric[]; + lowQualityFeeds: QualityMetric[]; + problemFeeds: QualityMetric[]; + recommendations: (string | false)[]; + } | { + recommendations: { + contentGaps: string[]; + languageOpportunities: string[]; + similarUserPatterns: { + similarUsers: number; + commonPatterns: never[]; + recommendations: never[]; + }; + }; + opportunities: { + newCategories: string[]; + underrepresentedLanguages: string[]; + trendingTopics: never[]; + }; + insights: { + diversityScore: number; + explorationPotential: number; + recommendationReadiness: number; + }; + } | { + comparative: { + timeRange: string; + compareWithAverage: boolean; + userMetrics: { + subscriptions: number; + dailyReads: number; + categories: number; + languages: number; + engagementRate: number; + }; + platformAverages: { + subscriptions: number; + dailyReads: number; + categories: number; + languages: number; + engagementRate: number; + } | null; + comparisons: { + metric: string; + userValue: number; + platformAverage: number; + percentile: number; + status: string; + }[]; + }; + insights: { + overallRank: string; + strengths: string[]; + improvements: string[]; + }; + } | { + error: string; + details: string; + }>; + getWhoami: ai56.Tool<{ + userId: string; + select?: ("id" | "name" | "email" | "emailVerified" | "image" | "handle" | "createdAt" | "updatedAt" | "twoFactorEnabled" | "isAnonymous" | "suspended" | "deleted" | "bio" | "website" | "socialLinks")[] | undefined; + }, { + error: string; + user: null; + selectedFields?: undefined; + metadata?: undefined; + } | { + error: null; + user: any; + selectedFields: ("id" | "name" | "email" | "emailVerified" | "image" | "handle" | "createdAt" | "updatedAt" | "twoFactorEnabled" | "isAnonymous" | "suspended" | "deleted" | "bio" | "website" | "socialLinks")[]; + metadata: { + hasProfile: boolean; + hasImage: boolean; + hasSocialLinks: boolean; + accountAge: number | null; + }; + }>; +}; +//#endregion +//#region src/lib/auth-plugins/index.d.ts +declare const authPlugins: ({ + id: "customGetProviders"; + endpoints: { + customGetProviders: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: any; + } : any>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-providers"; + }; + }; +} | { + id: "getAccountInfo"; + endpoints: { + getAccountInfo: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null; + } : ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-account-info"; + }; + }; +} | { + id: "deleteUserCustom"; + endpoints: { + deleteUserCustom: { + (inputCtx_0: { + body: { + TOTPCode: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: void; + } : void>; + options: { + method: "POST"; + body: zod_v441.ZodObject<{ + TOTPCode: zod_v441.ZodString; + }, zod_v4_core42.$strip>; + } & { + use: any[]; + }; + path: "/delete-user-custom"; + }; + }; +} | { + id: "oneTimeToken"; + endpoints: { + generateOneTimeToken: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + }; + } : { + token: string; + }>; + options: { + method: "GET"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + } & { + use: any[]; + }; + path: "/one-time-token/generate"; + }; + applyOneTimeToken: { + (inputCtx_0: { + body: { + token: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }; + } : { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + token: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + token: string; + }, { + token: string; + }>; + } & { + use: any[]; + }; + path: "/one-time-token/apply"; + }; + }; +})[]; +//#endregion +//#region src/common/auth/get-auth-user.d.ts +declare enum UserRole { + Admin = "admin", + PreProTrial = "pre_pro_trial", + PrePro = "pre_pro", + Free = "free", + /** + * @deprecated use `UserRole.Free` instead + * + */ + Trial = "trial", +} +//#endregion +//#region src/lib/auth.d.ts declare const auth: { - handler: (request: Request) => Promise; - api: better_auth.InferAPI<{ - ok: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - ok: boolean; - }; - } : { - ok: boolean; - }>; - options: { - method: "GET"; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - ok: { - type: string; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - isAction: false; - }; - } & { - use: any[]; - }; - path: "/ok"; + handler: (request: Request) => Promise; + api: better_auth246.InferAPI<{ + ok: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + ok: boolean; }; - error: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: Response; - } : Response>; - options: { - method: "GET"; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "text/html": { - schema: { - type: "string"; - description: string; - }; - }; - }; - }; + } : { + ok: boolean; + }>; + options: { + method: "GET"; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + ok: { + type: string; + description: string; }; + }; + required: string[]; }; - isAction: false; + }; }; - } & { - use: any[]; + }; }; - path: "/error"; + }; + isAction: false; }; - signInSocial: { - (inputCtx_0: { - body: { - provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; - scopes?: string[] | undefined; - loginHint?: string | undefined; - idToken?: { - token: string; - refreshToken?: string | undefined; - accessToken?: string | undefined; - expiresAt?: number | undefined; - nonce?: string | undefined; - } | undefined; - callbackURL?: string | undefined; - requestSignUp?: boolean | undefined; - errorCallbackURL?: string | undefined; - newUserCallbackURL?: string | undefined; + } & { + use: any[]; + }; + path: "/ok"; + }; + error: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: Response; + } : Response>; + options: { + method: "GET"; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "text/html": { + schema: { + type: "string"; + description: string; + }; + }; + }; + }; + }; + }; + isAction: false; + }; + } & { + use: any[]; + }; + path: "/error"; + }; + signInSocial: { + (inputCtx_0: { + body: { + provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; + scopes?: string[] | undefined; + loginHint?: string | undefined; + idToken?: { + token: string; + refreshToken?: string | undefined; + accessToken?: string | undefined; + expiresAt?: number | undefined; + nonce?: string | undefined; + } | undefined; + callbackURL?: string | undefined; + requestSignUp?: boolean | undefined; + errorCallbackURL?: string | undefined; + newUserCallbackURL?: string | undefined; + disableRedirect?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + redirect: boolean; + token: string; + url: undefined; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + } | { + url: string; + redirect: boolean; + }; + } : { + redirect: boolean; + token: string; + url: undefined; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + } | { + url: string; + redirect: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + callbackURL: zod1169.ZodOptional; + newUserCallbackURL: zod1169.ZodOptional; + errorCallbackURL: zod1169.ZodOptional; + provider: zod1169.ZodEnum<["github", ...("apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom")[]]>; + disableRedirect: zod1169.ZodOptional; + idToken: zod1169.ZodOptional; + accessToken: zod1169.ZodOptional; + refreshToken: zod1169.ZodOptional; + expiresAt: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + token: string; + refreshToken?: string | undefined; + accessToken?: string | undefined; + expiresAt?: number | undefined; + nonce?: string | undefined; + }, { + token: string; + refreshToken?: string | undefined; + accessToken?: string | undefined; + expiresAt?: number | undefined; + nonce?: string | undefined; + }>>; + scopes: zod1169.ZodOptional>; + requestSignUp: zod1169.ZodOptional; + loginHint: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; + scopes?: string[] | undefined; + loginHint?: string | undefined; + idToken?: { + token: string; + refreshToken?: string | undefined; + accessToken?: string | undefined; + expiresAt?: number | undefined; + nonce?: string | undefined; + } | undefined; + callbackURL?: string | undefined; + requestSignUp?: boolean | undefined; + errorCallbackURL?: string | undefined; + newUserCallbackURL?: string | undefined; + disableRedirect?: boolean | undefined; + }, { + provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; + scopes?: string[] | undefined; + loginHint?: string | undefined; + idToken?: { + token: string; + refreshToken?: string | undefined; + accessToken?: string | undefined; + expiresAt?: number | undefined; + nonce?: string | undefined; + } | undefined; + callbackURL?: string | undefined; + requestSignUp?: boolean | undefined; + errorCallbackURL?: string | undefined; + newUserCallbackURL?: string | undefined; + disableRedirect?: boolean | undefined; + }>; + metadata: { + openapi: { + description: string; + operationId: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + description: string; + properties: { + redirect: { + type: string; + enum: boolean[]; + }; + token: { + type: string; + description: string; + url: { + type: string; + nullable: boolean; + }; + user: { + type: string; + properties: { + id: { + type: string; + }; + email: { + type: string; + }; + name: { + type: string; + nullable: boolean; + }; + image: { + type: string; + nullable: boolean; + }; + emailVerified: { + type: string; + }; + createdAt: { + type: string; + format: string; + }; + updatedAt: { + type: string; + format: string; + }; + }; + required: string[]; + }; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/sign-in/social"; + }; + callbackOAuth: { + (inputCtx_0: { + body?: { + state?: string | undefined; + code?: string | undefined; + device_id?: string | undefined; + error?: string | undefined; + user?: string | undefined; + error_description?: string | undefined; + } | undefined; + } & { + method: "GET" | "POST"; + } & { + query?: { + state?: string | undefined; + code?: string | undefined; + device_id?: string | undefined; + error?: string | undefined; + user?: string | undefined; + error_description?: string | undefined; + } | undefined; + } & { + params: { + id: string; + }; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: void; + } : void>; + options: { + method: ("GET" | "POST")[]; + body: zod1169.ZodOptional; + error: zod1169.ZodOptional; + device_id: zod1169.ZodOptional; + error_description: zod1169.ZodOptional; + state: zod1169.ZodOptional; + user: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + state?: string | undefined; + code?: string | undefined; + device_id?: string | undefined; + error?: string | undefined; + user?: string | undefined; + error_description?: string | undefined; + }, { + state?: string | undefined; + code?: string | undefined; + device_id?: string | undefined; + error?: string | undefined; + user?: string | undefined; + error_description?: string | undefined; + }>>; + query: zod1169.ZodOptional; + error: zod1169.ZodOptional; + device_id: zod1169.ZodOptional; + error_description: zod1169.ZodOptional; + state: zod1169.ZodOptional; + user: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + state?: string | undefined; + code?: string | undefined; + device_id?: string | undefined; + error?: string | undefined; + user?: string | undefined; + error_description?: string | undefined; + }, { + state?: string | undefined; + code?: string | undefined; + device_id?: string | undefined; + error?: string | undefined; + user?: string | undefined; + error_description?: string | undefined; + }>>; + metadata: { + isAction: false; + }; + } & { + use: any[]; + }; + path: "/callback/:id"; + }; + getSession: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: { + disableCookieCache?: string | boolean | undefined; + disableRefresh?: string | boolean | undefined; + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }; + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + handle: string; + deleted: boolean; + bio: string; + website: string; + socialLinks: string; + role: string; + roleEndAt: Date; + } & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + stripeCustomerId?: string | null | undefined; + handle: string; + deleted: boolean; + bio: string; + website: string; + socialLinks: string; + role: string; + roleEndAt: Date; + } & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + twoFactorEnabled: boolean | null | undefined; + handle: string; + deleted: boolean; + bio: string; + website: string; + socialLinks: string; + role: string; + roleEndAt: Date; + }; + } | null; + } : { + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }; + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + handle: string; + deleted: boolean; + bio: string; + website: string; + socialLinks: string; + role: string; + roleEndAt: Date; + } & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + stripeCustomerId?: string | null | undefined; + handle: string; + deleted: boolean; + bio: string; + website: string; + socialLinks: string; + role: string; + roleEndAt: Date; + } & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + twoFactorEnabled: boolean | null | undefined; + handle: string; + deleted: boolean; + bio: string; + website: string; + socialLinks: string; + role: string; + roleEndAt: Date; + }; + } | null>; + options: { + method: "GET"; + query: zod1169.ZodOptional]>>>; + disableRefresh: zod1169.ZodOptional]>>; + }, "strip", zod1169.ZodTypeAny, { + disableCookieCache?: boolean | undefined; + disableRefresh?: boolean | undefined; + }, { + disableCookieCache?: string | boolean | undefined; + disableRefresh?: string | boolean | undefined; + }>>; + requireHeaders: true; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + session: { + $ref: string; + }; + user: { + $ref: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/get-session"; + }; + signOut: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + success: boolean; + }; + } : { + success: boolean; + }>; + options: { + method: "POST"; + requireHeaders: true; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + success: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/sign-out"; + }; + signUpEmail: { + (inputCtx_0: { + body: ({ + name: string; + email: string; + password: string; + callbackURL?: string; + } & ({} | ({} & { + stripeCustomerId?: string | null | undefined; + }) | ({} & {}))) & { + handle: string; + deleted: boolean; + bio: string; + website: string; + socialLinks: string; + role: string; + roleEndAt: Date; + } & { + handle?: string | null | undefined; + deleted?: boolean | null | undefined; + bio?: string | null | undefined; + website?: string | null | undefined; + socialLinks?: string | null | undefined; + role?: string | null | undefined; + roleEndAt?: Date | null | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: null; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + } | { + token: string; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + }; + } : { + token: null; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + } | { + token: string; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodRecord; + metadata: { + $Infer: { + body: ({ + name: string; + email: string; + password: string; + callbackURL?: string; + } & ({} | ({} & { + stripeCustomerId?: string | null | undefined; + }) | ({} & {}))) & { + handle: string; + deleted: boolean; + bio: string; + website: string; + socialLinks: string; + role: string; + roleEndAt: Date; + } & { + handle?: string | null | undefined; + deleted?: boolean | null | undefined; + bio?: string | null | undefined; + website?: string | null | undefined; + socialLinks?: string | null | undefined; + role?: string | null | undefined; + roleEndAt?: Date | null | undefined; + }; + }; + openapi: { + description: string; + requestBody: { + content: { + "application/json": { + schema: { + type: "object"; + properties: { + name: { + type: string; + description: string; + }; + email: { + type: string; + description: string; + }; + password: { + type: string; + description: string; + }; + callbackURL: { + type: string; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + token: { + type: string; + nullable: boolean; + description: string; + }; + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + description: string; + }; + name: { + type: string; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/sign-up/email"; + }; + signInEmail: { + (inputCtx_0: { + body: { + password: string; + email: string; + callbackURL?: string | undefined; + rememberMe?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + redirect: boolean; + token: string; + url: string | undefined; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + }; + } : { + redirect: boolean; + token: string; + url: string | undefined; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + email: zod1169.ZodString; + password: zod1169.ZodString; + callbackURL: zod1169.ZodOptional; + rememberMe: zod1169.ZodOptional>; + }, "strip", zod1169.ZodTypeAny, { + password: string; + email: string; + callbackURL?: string | undefined; + rememberMe?: boolean | undefined; + }, { + password: string; + email: string; + callbackURL?: string | undefined; + rememberMe?: boolean | undefined; + }>; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + description: string; + properties: { + redirect: { + type: string; + enum: boolean[]; + }; + token: { + type: string; + description: string; + }; + url: { + type: string; + nullable: boolean; + }; + user: { + type: string; + properties: { + id: { + type: string; + }; + email: { + type: string; + }; + name: { + type: string; + nullable: boolean; + }; + image: { + type: string; + nullable: boolean; + }; + emailVerified: { + type: string; + }; + createdAt: { + type: string; + format: string; + }; + updatedAt: { + type: string; + format: string; + }; + }; + required: string[]; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/sign-in/email"; + }; + forgetPassword: { + (inputCtx_0: { + body: { + email: string; + redirectTo?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + email: zod1169.ZodString; + redirectTo: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + email: string; + redirectTo?: string | undefined; + }, { + email: string; + redirectTo?: string | undefined; + }>; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/forget-password"; + }; + resetPassword: { + (inputCtx_0: { + body: { + newPassword: string; + token?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: { + token?: string | undefined; + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + query: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + token?: string | undefined; + }, { + token?: string | undefined; + }>>; + body: zod1169.ZodObject<{ + newPassword: zod1169.ZodString; + token: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + newPassword: string; + token?: string | undefined; + }, { + newPassword: string; + token?: string | undefined; + }>; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/reset-password"; + }; + verifyEmail: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query: { + token: string; + callbackURL?: string | undefined; + }; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: void | { + status: boolean; + user: { + id: any; + email: any; + name: any; + image: any; + emailVerified: any; + createdAt: any; + updatedAt: any; + }; + } | { + status: boolean; + user: null; + }; + } : void | { + status: boolean; + user: { + id: any; + email: any; + name: any; + image: any; + emailVerified: any; + createdAt: any; + updatedAt: any; + }; + } | { + status: boolean; + user: null; + }>; + options: { + method: "GET"; + query: zod1169.ZodObject<{ + token: zod1169.ZodString; + callbackURL: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + token: string; + callbackURL?: string | undefined; + }, { + token: string; + callbackURL?: string | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + metadata: { + openapi: { + description: string; + parameters: ({ + name: string; + in: "query"; + description: string; + required: true; + schema: { + type: "string"; + }; + } | { + name: string; + in: "query"; + description: string; + required: false; + schema: { + type: "string"; + }; + })[]; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + description: string; + }; + name: { + type: string; + description: string; + }; + image: { + type: string; + description: string; + }; + emailVerified: { + type: string; + description: string; + }; + createdAt: { + type: string; + description: string; + }; + updatedAt: { + type: string; + description: string; + }; + }; + required: string[]; + }; + status: { + type: string; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/verify-email"; + }; + sendVerificationEmail: { + (inputCtx_0: { + body: { + email: string; + callbackURL?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + email: zod1169.ZodString; + callbackURL: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + email: string; + callbackURL?: string | undefined; + }, { + email: string; + callbackURL?: string | undefined; + }>; + metadata: { + openapi: { + description: string; + requestBody: { + content: { + "application/json": { + schema: { + type: "object"; + properties: { + email: { + type: string; + description: string; + example: string; + }; + callbackURL: { + type: string; + description: string; + example: string; + nullable: boolean; + }; + }; + required: string[]; + }; + }; + }; + }; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + example: boolean; + }; + }; + }; + }; + }; + }; + "400": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + message: { + type: string; + description: string; + example: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/send-verification-email"; + }; + changeEmail: { + (inputCtx_0: { + body: { + newEmail: string; + callbackURL?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + newEmail: zod1169.ZodString; + callbackURL: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + newEmail: string; + callbackURL?: string | undefined; + }, { + newEmail: string; + callbackURL?: string | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + }; + message: { + type: string; + enum: string[]; + description: string; + nullable: boolean; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/change-email"; + }; + changePassword: { + (inputCtx_0: { + body: { + newPassword: string; + currentPassword: string; + revokeOtherSessions?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string | null; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + }; + } : { + token: string | null; + user: { + id: string; + email: string; + name: string; + image: string | null | undefined; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + newPassword: zod1169.ZodString; + currentPassword: zod1169.ZodString; + revokeOtherSessions: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + newPassword: string; + currentPassword: string; + revokeOtherSessions?: boolean | undefined; + }, { + newPassword: string; + currentPassword: string; + revokeOtherSessions?: boolean | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + token: { + type: string; + nullable: boolean; + description: string; + }; + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + description: string; + }; + name: { + type: string; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/change-password"; + }; + setPassword: { + (inputCtx_0: { + body: { + newPassword: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + newPassword: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + newPassword: string; + }, { + newPassword: string; + }>; + metadata: { + SERVER_ONLY: true; + }; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + } & { + use: any[]; + }; + path: "/set-password"; + }; + updateUser: { + (inputCtx_0: { + body: Partial better_auth246.Adapter; + databaseHooks: { + user: { + create: { + after: (newUser: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }, context: better_auth246.GenericEndpointContext | undefined) => Promise; + }; + }; + }; + advanced: { + database: { + generateId: false; + }; + defaultCookieAttributes: { + sameSite: "none"; + secure: true; + }; + }; + session: { + updateAge: number; + expiresIn: number; + }; + basePath: string; + trustedOrigins: string[]; + user: { + additionalFields: { + handle: { + type: "string"; + }; + socialLinks: { + type: "string"; + transform: { + input: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => string; + output: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => any; + }; + }; + bio: { + type: "string"; + }; + website: { + type: "string"; + }; + deleted: { + type: "boolean"; + }; + role: { + type: "string"; + }; + roleEndAt: { + type: "date"; + }; + }; + changeEmail: { + enabled: true; + sendChangeEmailVerification: ({ + user, + url + }: { + user: better_auth246.User; + newEmail: string; + url: string; + token: string; + }) => Promise; + }; + }; + account: { + accountLinking: { + enabled: true; + trustedProviders: ("github" | "apple" | "google")[]; + allowDifferentEmails: true; + }; + }; + socialProviders: { + google: { + clientId: string; + clientSecret: string; + }; + github: { + clientId: string; + clientSecret: string; + }; + apple: { + enabled: boolean; + clientId: string; + clientSecret: string; + appBundleIdentifier: string | undefined; + }; + }; + emailAndPassword: { + enabled: true; + sendResetPassword({ + user, + url + }: { + user: better_auth246.User; + url: string; + token: string; + }): Promise; + }; + emailVerification: { + sendOnSignUp: true; + sendVerificationEmail({ + user, + url + }: { + user: better_auth246.User; + url: string; + token: string; + }): Promise; + }; + plugins: ({ + id: "stripe"; + endpoints: { + stripeWebhook: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_1 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_1] extends [true] ? { + headers: Headers; + response: { + success: boolean; + }; + } : { + success: boolean; + }>; + options: { + method: "POST"; + metadata: { + isAction: boolean; + }; + cloneRequest: true; + } & { + use: any[]; + }; + path: "/stripe/webhook"; + }; + } & { + readonly upgradeSubscription: { + (inputCtx_0: { + body: { + plan: string; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + successUrl?: string | undefined; + cancelUrl?: string | undefined; + returnUrl?: string | undefined; disableRedirect?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - redirect: boolean; - token: string; - url: undefined; - user: { - id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - } | { + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_2 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_2] extends [true] ? { + headers: Headers; + response: { url: string; redirect: boolean; - }; - } : { - redirect: boolean; - token: string; - url: undefined; - user: { + } | { + redirect: boolean; id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - } | { - url: string; - redirect: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - callbackURL: zod.ZodOptional; - newUserCallbackURL: zod.ZodOptional; - errorCallbackURL: zod.ZodOptional; - provider: zod.ZodEnum<["github", ...("apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom")[]]>; - disableRedirect: zod.ZodOptional; - idToken: zod.ZodOptional; - accessToken: zod.ZodOptional; - refreshToken: zod.ZodOptional; - expiresAt: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - token: string; - refreshToken?: string | undefined; - accessToken?: string | undefined; - expiresAt?: number | undefined; - nonce?: string | undefined; - }, { - token: string; - refreshToken?: string | undefined; - accessToken?: string | undefined; - expiresAt?: number | undefined; - nonce?: string | undefined; - }>>; - scopes: zod.ZodOptional>; - requestSignUp: zod.ZodOptional; - loginHint: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; - scopes?: string[] | undefined; - loginHint?: string | undefined; - idToken?: { - token: string; - refreshToken?: string | undefined; - accessToken?: string | undefined; - expiresAt?: number | undefined; - nonce?: string | undefined; - } | undefined; - callbackURL?: string | undefined; - requestSignUp?: boolean | undefined; - errorCallbackURL?: string | undefined; - newUserCallbackURL?: string | undefined; - disableRedirect?: boolean | undefined; - }, { - provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; - scopes?: string[] | undefined; - loginHint?: string | undefined; - idToken?: { - token: string; - refreshToken?: string | undefined; - accessToken?: string | undefined; - expiresAt?: number | undefined; - nonce?: string | undefined; - } | undefined; - callbackURL?: string | undefined; - requestSignUp?: boolean | undefined; - errorCallbackURL?: string | undefined; - newUserCallbackURL?: string | undefined; - disableRedirect?: boolean | undefined; - }>; - metadata: { - openapi: { - description: string; - operationId: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - description: string; - properties: { - redirect: { - type: string; - enum: boolean[]; - }; - token: { - type: string; - description: string; - url: { - type: string; - nullable: boolean; - }; - user: { - type: string; - properties: { - id: { - type: string; - }; - email: { - type: string; - }; - name: { - type: string; - nullable: boolean; - }; - image: { - type: string; - nullable: boolean; - }; - emailVerified: { - type: string; - }; - createdAt: { - type: string; - format: string; - }; - updatedAt: { - type: string; - format: string; - }; - }; - required: string[]; - }; - }; - }; - required: string[]; - }; - }; - }; - }; - }; + object: "checkout.session"; + adaptive_pricing: Stripe.Checkout.Session.AdaptivePricing | null; + after_expiration: Stripe.Checkout.Session.AfterExpiration | null; + allow_promotion_codes: boolean | null; + amount_subtotal: number | null; + amount_total: number | null; + automatic_tax: Stripe.Checkout.Session.AutomaticTax; + billing_address_collection: Stripe.Checkout.Session.BillingAddressCollection | null; + cancel_url: string | null; + client_reference_id: string | null; + client_secret: string | null; + collected_information: Stripe.Checkout.Session.CollectedInformation | null; + consent: Stripe.Checkout.Session.Consent | null; + consent_collection: Stripe.Checkout.Session.ConsentCollection | null; + created: number; + currency: string | null; + currency_conversion: Stripe.Checkout.Session.CurrencyConversion | null; + custom_fields: Array; + custom_text: Stripe.Checkout.Session.CustomText; + customer: string | Stripe.Customer | Stripe.DeletedCustomer | null; + customer_creation: Stripe.Checkout.Session.CustomerCreation | null; + customer_details: Stripe.Checkout.Session.CustomerDetails | null; + customer_email: string | null; + discounts: Array | null; + expires_at: number; + invoice: string | Stripe.Invoice | null; + invoice_creation: Stripe.Checkout.Session.InvoiceCreation | null; + line_items?: Stripe.ApiList; + livemode: boolean; + locale: Stripe.Checkout.Session.Locale | null; + metadata: Stripe.Metadata | null; + mode: Stripe.Checkout.Session.Mode; + optional_items?: Array | null; + payment_intent: string | Stripe.PaymentIntent | null; + payment_link: string | Stripe.PaymentLink | null; + payment_method_collection: Stripe.Checkout.Session.PaymentMethodCollection | null; + payment_method_configuration_details: Stripe.Checkout.Session.PaymentMethodConfigurationDetails | null; + payment_method_options: Stripe.Checkout.Session.PaymentMethodOptions | null; + payment_method_types: Array; + payment_status: Stripe.Checkout.Session.PaymentStatus; + permissions: Stripe.Checkout.Session.Permissions | null; + phone_number_collection?: Stripe.Checkout.Session.PhoneNumberCollection; + presentment_details?: Stripe.Checkout.Session.PresentmentDetails; + recovered_from: string | null; + redirect_on_completion?: Stripe.Checkout.Session.RedirectOnCompletion; + return_url?: string; + saved_payment_method_options: Stripe.Checkout.Session.SavedPaymentMethodOptions | null; + setup_intent: string | Stripe.SetupIntent | null; + shipping_address_collection: Stripe.Checkout.Session.ShippingAddressCollection | null; + shipping_cost: Stripe.Checkout.Session.ShippingCost | null; + shipping_options: Array; + status: Stripe.Checkout.Session.Status | null; + submit_type: Stripe.Checkout.Session.SubmitType | null; + subscription: string | Stripe.Subscription | null; + success_url: string | null; + tax_id_collection?: Stripe.Checkout.Session.TaxIdCollection; + total_details: Stripe.Checkout.Session.TotalDetails | null; + ui_mode: Stripe.Checkout.Session.UiMode | null; + url: string | null; + lastResponse: { + headers: { + [key: string]: string; + }; + requestId: string; + statusCode: number; + apiVersion?: string; + idempotencyKey?: string; + stripeAccount?: string; }; - }; - } & { - use: any[]; - }; - path: "/sign-in/social"; - }; - callbackOAuth: { - (inputCtx_0: { - body?: { - state?: string | undefined; - code?: string | undefined; - device_id?: string | undefined; - error?: string | undefined; - user?: string | undefined; - error_description?: string | undefined; - } | undefined; - } & { - method: "GET" | "POST"; - } & { - query?: { - state?: string | undefined; - code?: string | undefined; - device_id?: string | undefined; - error?: string | undefined; - user?: string | undefined; - error_description?: string | undefined; - } | undefined; - } & { - params: { - id: string; - }; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: void; - } : void>; - options: { - method: ("GET" | "POST")[]; - body: zod.ZodOptional; - error: zod.ZodOptional; - device_id: zod.ZodOptional; - error_description: zod.ZodOptional; - state: zod.ZodOptional; - user: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - state?: string | undefined; - code?: string | undefined; - device_id?: string | undefined; - error?: string | undefined; - user?: string | undefined; - error_description?: string | undefined; - }, { - state?: string | undefined; - code?: string | undefined; - device_id?: string | undefined; - error?: string | undefined; - user?: string | undefined; - error_description?: string | undefined; - }>>; - query: zod.ZodOptional; - error: zod.ZodOptional; - device_id: zod.ZodOptional; - error_description: zod.ZodOptional; - state: zod.ZodOptional; - user: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - state?: string | undefined; - code?: string | undefined; - device_id?: string | undefined; - error?: string | undefined; - user?: string | undefined; - error_description?: string | undefined; - }, { - state?: string | undefined; - code?: string | undefined; - device_id?: string | undefined; - error?: string | undefined; - user?: string | undefined; - error_description?: string | undefined; - }>>; - metadata: { - isAction: false; - }; - } & { - use: any[]; - }; - path: "/callback/:id"; - }; - getSession: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: { - disableCookieCache?: string | boolean | undefined; - disableRefresh?: string | boolean | undefined; - } | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + }; + } : { + url: string; + redirect: boolean; + } | { + redirect: boolean; + id: string; + object: "checkout.session"; + adaptive_pricing: Stripe.Checkout.Session.AdaptivePricing | null; + after_expiration: Stripe.Checkout.Session.AfterExpiration | null; + allow_promotion_codes: boolean | null; + amount_subtotal: number | null; + amount_total: number | null; + automatic_tax: Stripe.Checkout.Session.AutomaticTax; + billing_address_collection: Stripe.Checkout.Session.BillingAddressCollection | null; + cancel_url: string | null; + client_reference_id: string | null; + client_secret: string | null; + collected_information: Stripe.Checkout.Session.CollectedInformation | null; + consent: Stripe.Checkout.Session.Consent | null; + consent_collection: Stripe.Checkout.Session.ConsentCollection | null; + created: number; + currency: string | null; + currency_conversion: Stripe.Checkout.Session.CurrencyConversion | null; + custom_fields: Array; + custom_text: Stripe.Checkout.Session.CustomText; + customer: string | Stripe.Customer | Stripe.DeletedCustomer | null; + customer_creation: Stripe.Checkout.Session.CustomerCreation | null; + customer_details: Stripe.Checkout.Session.CustomerDetails | null; + customer_email: string | null; + discounts: Array | null; + expires_at: number; + invoice: string | Stripe.Invoice | null; + invoice_creation: Stripe.Checkout.Session.InvoiceCreation | null; + line_items?: Stripe.ApiList; + livemode: boolean; + locale: Stripe.Checkout.Session.Locale | null; + metadata: Stripe.Metadata | null; + mode: Stripe.Checkout.Session.Mode; + optional_items?: Array | null; + payment_intent: string | Stripe.PaymentIntent | null; + payment_link: string | Stripe.PaymentLink | null; + payment_method_collection: Stripe.Checkout.Session.PaymentMethodCollection | null; + payment_method_configuration_details: Stripe.Checkout.Session.PaymentMethodConfigurationDetails | null; + payment_method_options: Stripe.Checkout.Session.PaymentMethodOptions | null; + payment_method_types: Array; + payment_status: Stripe.Checkout.Session.PaymentStatus; + permissions: Stripe.Checkout.Session.Permissions | null; + phone_number_collection?: Stripe.Checkout.Session.PhoneNumberCollection; + presentment_details?: Stripe.Checkout.Session.PresentmentDetails; + recovered_from: string | null; + redirect_on_completion?: Stripe.Checkout.Session.RedirectOnCompletion; + return_url?: string; + saved_payment_method_options: Stripe.Checkout.Session.SavedPaymentMethodOptions | null; + setup_intent: string | Stripe.SetupIntent | null; + shipping_address_collection: Stripe.Checkout.Session.ShippingAddressCollection | null; + shipping_cost: Stripe.Checkout.Session.ShippingCost | null; + shipping_options: Array; + status: Stripe.Checkout.Session.Status | null; + submit_type: Stripe.Checkout.Session.SubmitType | null; + subscription: string | Stripe.Subscription | null; + success_url: string | null; + tax_id_collection?: Stripe.Checkout.Session.TaxIdCollection; + total_details: Stripe.Checkout.Session.TotalDetails | null; + ui_mode: Stripe.Checkout.Session.UiMode | null; + url: string | null; + lastResponse: { + headers: { + [key: string]: string; + }; + requestId: string; + statusCode: number; + apiVersion?: string; + idempotencyKey?: string; + stripeAccount?: string; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + plan: zod1169.ZodString; + annual: zod1169.ZodOptional; + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + metadata: zod1169.ZodOptional>; + seats: zod1169.ZodOptional; + successUrl: zod1169.ZodDefault; + cancelUrl: zod1169.ZodDefault; + returnUrl: zod1169.ZodOptional; + disableRedirect: zod1169.ZodDefault; + }, "strip", zod1169.ZodTypeAny, { + plan: string; + successUrl: string; + cancelUrl: string; + disableRedirect: boolean; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + returnUrl?: string | undefined; + }, { + plan: string; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + successUrl?: string | undefined; + cancelUrl?: string | undefined; + returnUrl?: string | undefined; + disableRedirect?: boolean | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ session: { + session: Record & { id: string; createdAt: Date; updatedAt: Date; userId: string; expiresAt: Date; token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }; - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - handle: string; - deleted: boolean; - bio: string; - website: string; - socialLinks: string; - } & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - twoFactorEnabled: boolean | null | undefined; - handle: string; - deleted: boolean; - bio: string; - website: string; - socialLinks: string; - }; - } | null; - } : { - session: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }; - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - handle: string; - deleted: boolean; - bio: string; - website: string; - socialLinks: string; - } & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - twoFactorEnabled: boolean | null | undefined; - handle: string; - deleted: boolean; - bio: string; - website: string; - socialLinks: string; - }; - } | null>; - options: { - method: "GET"; - query: zod.ZodOptional]>>>; - disableRefresh: zod.ZodOptional]>>; - }, "strip", zod.ZodTypeAny, { - disableCookieCache?: boolean | undefined; - disableRefresh?: boolean | undefined; - }, { - disableCookieCache?: string | boolean | undefined; - disableRefresh?: string | boolean | undefined; - }>>; - requireHeaders: true; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - session: { - $ref: string; - }; - user: { - $ref: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/get-session"; - }; - signOut: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - success: boolean; - }; - } : { - success: boolean; - }>; - options: { - method: "POST"; - requireHeaders: true; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - success: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/sign-out"; - }; - signUpEmail: { - (inputCtx_0: { - body: ({ - name: string; - email: string; - password: string; - callbackURL?: string; - } | ({ - name: string; - email: string; - password: string; - callbackURL?: string; - } & {} & {})) & { - handle: string; - deleted: boolean; - bio: string; - website: string; - socialLinks: string; - } & { - handle?: string | null | undefined; - deleted?: boolean | null | undefined; - bio?: string | null | undefined; - website?: string | null | undefined; - socialLinks?: string | null | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: null; - user: { - id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - } | { - token: string; - user: { - id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - }; - } : { - token: null; - user: { - id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - } | { - token: string; - user: { - id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodRecord; - metadata: { - $Infer: { - body: ({ - name: string; - email: string; - password: string; - callbackURL?: string; - } | ({ - name: string; - email: string; - password: string; - callbackURL?: string; - } & {} & {})) & { - handle: string; - deleted: boolean; - bio: string; - website: string; - socialLinks: string; - } & { - handle?: string | null | undefined; - deleted?: boolean | null | undefined; - bio?: string | null | undefined; - website?: string | null | undefined; - socialLinks?: string | null | undefined; - }; - }; - openapi: { - description: string; - requestBody: { - content: { - "application/json": { - schema: { - type: "object"; - properties: { - name: { - type: string; - description: string; - }; - email: { - type: string; - description: string; - }; - password: { - type: string; - description: string; - }; - callbackURL: { - type: string; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - token: { - type: string; - nullable: boolean; - description: string; - }; - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - description: string; - }; - name: { - type: string; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/sign-up/email"; - }; - signInEmail: { - (inputCtx_0: { - body: { - password: string; - email: string; - callbackURL?: string | undefined; - rememberMe?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - redirect: boolean; - token: string; - url: string | undefined; - user: { - id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - }; - } : { - redirect: boolean; - token: string; - url: string | undefined; - user: { - id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - email: zod.ZodString; - password: zod.ZodString; - callbackURL: zod.ZodOptional; - rememberMe: zod.ZodOptional>; - }, "strip", zod.ZodTypeAny, { - password: string; - email: string; - callbackURL?: string | undefined; - rememberMe?: boolean | undefined; - }, { - password: string; - email: string; - callbackURL?: string | undefined; - rememberMe?: boolean | undefined; - }>; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - description: string; - properties: { - redirect: { - type: string; - enum: boolean[]; - }; - token: { - type: string; - description: string; - }; - url: { - type: string; - nullable: boolean; - }; - user: { - type: string; - properties: { - id: { - type: string; - }; - email: { - type: string; - }; - name: { - type: string; - nullable: boolean; - }; - image: { - type: string; - nullable: boolean; - }; - emailVerified: { - type: string; - }; - createdAt: { - type: string; - format: string; - }; - updatedAt: { - type: string; - format: string; - }; - }; - required: string[]; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/sign-in/email"; - }; - forgetPassword: { - (inputCtx_0: { - body: { - email: string; - redirectTo?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - email: zod.ZodString; - redirectTo: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - email: string; - redirectTo?: string | undefined; - }, { - email: string; - redirectTo?: string | undefined; - }>; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/forget-password"; - }; - resetPassword: { - (inputCtx_0: { - body: { - newPassword: string; - token?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: { - token?: string | undefined; - } | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - query: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - token?: string | undefined; - }, { - token?: string | undefined; - }>>; - body: zod.ZodObject<{ - newPassword: zod.ZodString; - token: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - newPassword: string; - token?: string | undefined; - }, { - newPassword: string; - token?: string | undefined; - }>; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/reset-password"; - }; - verifyEmail: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query: { - token: string; - callbackURL?: string | undefined; - }; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: void | { - status: boolean; - user: { - id: any; - email: any; - name: any; - image: any; - emailVerified: any; - createdAt: any; - updatedAt: any; - }; - } | { - status: boolean; - user: null; - }; - } : void | { - status: boolean; - user: { - id: any; - email: any; - name: any; - image: any; - emailVerified: any; - createdAt: any; - updatedAt: any; - }; - } | { - status: boolean; - user: null; - }>; - options: { - method: "GET"; - query: zod.ZodObject<{ - token: zod.ZodString; - callbackURL: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - token: string; - callbackURL?: string | undefined; - }, { - token: string; - callbackURL?: string | undefined; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise)[]; - metadata: { - openapi: { - description: string; - parameters: ({ - name: string; - in: "query"; - description: string; - required: true; - schema: { - type: "string"; - }; - } | { - name: string; - in: "query"; - description: string; - required: false; - schema: { - type: "string"; - }; - })[]; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - description: string; - }; - name: { - type: string; - description: string; - }; - image: { - type: string; - description: string; - }; - emailVerified: { - type: string; - description: string; - }; - createdAt: { - type: string; - description: string; - }; - updatedAt: { - type: string; - description: string; - }; - }; - required: string[]; - }; - status: { - type: string; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/verify-email"; - }; - sendVerificationEmail: { - (inputCtx_0: { - body: { - email: string; - callbackURL?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - email: zod.ZodString; - callbackURL: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - email: string; - callbackURL?: string | undefined; - }, { - email: string; - callbackURL?: string | undefined; - }>; - metadata: { - openapi: { - description: string; - requestBody: { - content: { - "application/json": { - schema: { - type: "object"; - properties: { - email: { - type: string; - description: string; - example: string; - }; - callbackURL: { - type: string; - description: string; - example: string; - nullable: boolean; - }; - }; - required: string[]; - }; - }; - }; - }; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - example: boolean; - }; - }; - }; - }; - }; - }; - "400": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - message: { - type: string; - description: string; - example: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/send-verification-email"; - }; - changeEmail: { - (inputCtx_0: { - body: { - newEmail: string; - callbackURL?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - newEmail: zod.ZodString; - callbackURL: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - newEmail: string; - callbackURL?: string | undefined; - }, { - newEmail: string; - callbackURL?: string | undefined; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - }; - message: { - type: string; - enum: string[]; - description: string; - nullable: boolean; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/change-email"; - }; - changePassword: { - (inputCtx_0: { - body: { - newPassword: string; - currentPassword: string; - revokeOtherSessions?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string | null; - user: { - id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - }; - } : { - token: string | null; - user: { - id: string; - email: string; - name: string; - image: string | null | undefined; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - newPassword: zod.ZodString; - currentPassword: zod.ZodString; - revokeOtherSessions: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - newPassword: string; - currentPassword: string; - revokeOtherSessions?: boolean | undefined; - }, { - newPassword: string; - currentPassword: string; - revokeOtherSessions?: boolean | undefined; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - token: { - type: string; - nullable: boolean; - description: string; - }; - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - description: string; - }; - name: { - type: string; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/change-password"; - }; - setPassword: { - (inputCtx_0: { - body: { - newPassword: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - newPassword: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - newPassword: string; - }, { - newPassword: string; - }>; - metadata: { - SERVER_ONLY: true; - }; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - } & { - use: any[]; - }; - path: "/set-password"; - }; - updateUser: { - (inputCtx_0: { - body: Partial better_auth.Adapter; - advanced: { - database: { - generateId: false; - }; - defaultCookieAttributes: { - sameSite: "none"; - secure: true; - }; - }; - session: { - updateAge: number; - expiresIn: number; - }; - basePath: string; - trustedOrigins: string[]; - user: { - additionalFields: { - handle: { - type: "string"; - }; - socialLinks: { - type: "string"; - transform: { - input: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => string; - output: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => any; - }; - }; - bio: { - type: "string"; - }; - website: { - type: "string"; - }; - deleted: { - type: "boolean"; - }; - }; - changeEmail: { - enabled: true; - sendChangeEmailVerification: ({ user, url }: { - user: better_auth.User; - newEmail: string; - url: string; - token: string; - }) => Promise; - }; - }; - account: { - accountLinking: { - enabled: true; - trustedProviders: ("github" | "apple" | "google")[]; - allowDifferentEmails: true; - }; - }; - socialProviders: { - google: { - clientId: string; - clientSecret: string; - }; - github: { - clientId: string; - clientSecret: string; - }; - apple: { - enabled: boolean; - clientId: string; - clientSecret: string; - appBundleIdentifier: string | undefined; - }; - }; - emailAndPassword: { - enabled: true; - sendResetPassword({ user, url }: { - user: better_auth.User; - url: string; - token: string; - }): Promise; - }; - emailVerification: { - sendOnSignUp: true; - sendVerificationEmail({ user, url }: { - user: better_auth.User; - url: string; - token: string; - }): Promise; - }; - plugins: ({ - id: "open-api"; - endpoints: { - generateOpenAPISchema: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_1 | undefined; - }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_1] extends [true] ? { - headers: Headers; - response: { - openapi: string; - info: { - title: string; - description: string; - version: string; - }; - components: { - securitySchemes: { - apiKeyCookie: { - type: string; - in: string; - name: string; - description: string; - }; - bearerAuth: { - type: string; - scheme: string; - description: string; - }; - }; - schemas: {}; - }; - security: { - apiKeyCookie: never[]; - bearerAuth: never[]; - }[]; - servers: { - url: string; - }[]; - tags: { - name: string; - description: string; - }[]; - paths: Record; - }; - } : { - openapi: string; - info: { - title: string; - description: string; - version: string; - }; - components: { - securitySchemes: { - apiKeyCookie: { - type: string; - in: string; - name: string; - description: string; - }; - bearerAuth: { - type: string; - scheme: string; - description: string; - }; - }; - schemas: {}; - }; - security: { - apiKeyCookie: never[]; - bearerAuth: never[]; - }[]; - servers: { - url: string; - }[]; - tags: { - name: string; - description: string; - }[]; - paths: Record; - }>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/open-api/generate-schema"; - }; - openAPIReference: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_2 | undefined; - }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_2] extends [true] ? { - headers: Headers; - response: Response; - } : Response>; - options: { - method: "GET"; - metadata: { - isAction: boolean; - }; - } & { - use: any[]; - }; - path: "/reference"; - }; - }; - } | { - id: "two-factor"; - endpoints: { - enableTwoFactor: { - (inputCtx_0: { - body: { - password: string; - issuer?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_3 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_3] extends [true] ? { - headers: Headers; - response: { - totpURI: string; - backupCodes: string[]; - }; - } : { - totpURI: string; - backupCodes: string[]; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - issuer: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - password: string; - issuer?: string | undefined; - }, { - password: string; - issuer?: string | undefined; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - totpURI: { - type: string; - description: string; - }; - backupCodes: { - type: string; - items: { - type: string; - }; - description: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/enable"; - }; - disableTwoFactor: { - (inputCtx_0: { - body: { - password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_4 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_4] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/disable"; - }; - verifyBackupCode: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_5 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_5] extends [true] ? { - headers: Headers; - response: { - token: string | undefined; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }; - } : { - token: string | undefined; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - disableSession: zod.ZodOptional; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }>; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - nullable: boolean; - description: string; - }; - name: { - type: string; - nullable: boolean; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - twoFactorEnabled: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - session: { - type: string; - properties: { - token: { - type: string; - description: string; - }; - userId: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - expiresAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/verify-backup-code"; - }; - generateBackupCodes: { - (inputCtx_0: { - body: { - password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_6 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_6] extends [true] ? { - headers: Headers; - response: { - status: boolean; - backupCodes: string[]; - }; - } : { - status: boolean; - backupCodes: string[]; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - enum: boolean[]; - }; - backupCodes: { - type: string; - items: { - type: string; - }; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/generate-backup-codes"; - }; - viewBackupCodes: { - (inputCtx_0: { - body: { - userId: string; - }; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_7 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_7] extends [true] ? { - headers: Headers; - response: { - status: boolean; - backupCodes: string[]; - }; - } : { - status: boolean; - backupCodes: string[]; - }>; - options: { - method: "GET"; - body: zod.ZodObject<{ - userId: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - userId: string; - }, { - userId: string; - }>; - metadata: { - SERVER_ONLY: true; - }; - } & { - use: any[]; - }; - path: "/two-factor/view-backup-codes"; - }; - sendTwoFactorOTP: { - (inputCtx_0?: ({ - body?: { - trustDevice?: boolean | undefined; - } | undefined; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_8 | undefined; - }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_8] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - trustDevice?: boolean | undefined; - }, { - trustDevice?: boolean | undefined; - }>>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/send-otp"; - }; - verifyTwoFactorOTP: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_9 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_9] extends [true] ? { - headers: Headers; - response: { - token: string; - user: { - id: any; - email: any; - emailVerified: any; - name: any; - image: any; - createdAt: any; - updatedAt: any; - }; - }; - } : { - token: string; - user: { - id: any; - email: any; - emailVerified: any; - name: any; - image: any; - createdAt: any; - updatedAt: any; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - token: { - type: string; - description: string; - }; - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - nullable: boolean; - description: string; - }; - name: { - type: string; - nullable: boolean; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/verify-otp"; - }; - generateTOTP: { - (inputCtx_0: { - body: { - secret: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_10 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_10] extends [true] ? { - headers: Headers; - response: { - code: string; - }; - } : { - code: string; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - secret: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - secret: string; - }, { - secret: string; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - code: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - SERVER_ONLY: true; - }; - } & { - use: any[]; - }; - path: "/totp/generate"; - }; - getTOTPURI: { - (inputCtx_0: { - body: { - password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_11 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_11] extends [true] ? { - headers: Headers; - response: { - totpURI: string; - }; - } : { - totpURI: string; - }>; - options: { - method: "POST"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - totpURI: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/get-totp-uri"; - }; - verifyTOTP: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_12 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_12] extends [true] ? { - headers: Headers; - response: { - token: string; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }; - } : { - token: string; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/verify-totp"; - }; - }; - options: better_auth_plugins.TwoFactorOptions | undefined; - hooks: { - after: { - matcher(context: better_auth.HookEndpointContext): boolean; - handler: (inputContext: better_call.MiddlewareInputContext) => Promise<{ - twoFactorRedirect: boolean; - } | undefined>; - }[]; - }; - schema: { - user: { - fields: { - twoFactorEnabled: { - type: "boolean"; - required: false; - defaultValue: false; - input: false; - }; - }; - }; - twoFactor: { - fields: { - secret: { - type: "string"; - required: true; - returned: false; - }; - backupCodes: { - type: "string"; - required: true; - returned: false; - }; - userId: { - type: "string"; - required: true; - returned: false; - references: { - model: string; - field: string; - }; - }; - }; - }; - }; - rateLimit: { - pathMatcher(path: string): boolean; - window: number; - max: number; - }[]; - $ERROR_CODES: { - readonly OTP_NOT_ENABLED: "OTP not enabled"; - readonly OTP_HAS_EXPIRED: "OTP has expired"; - readonly TOTP_NOT_ENABLED: "TOTP not enabled"; - readonly TWO_FACTOR_NOT_ENABLED: "Two factor isn't enabled"; - readonly BACKUP_CODES_NOT_ENABLED: "Backup codes aren't enabled"; - readonly INVALID_BACKUP_CODE: "Invalid backup code"; - readonly INVALID_CODE: "Invalid code"; - readonly TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE: "Too many attempts. Please request a new code."; - readonly INVALID_TWO_FACTOR_COOKIE: "Invalid two factor cookie"; - }; - } | { - id: "expo"; - init: (ctx: better_auth.AuthContext) => { - options: { - trustedOrigins: string[]; - }; - }; - onRequest(request: Request, ctx: better_auth.AuthContext): Promise<{ - request: Request; - } | undefined>; - hooks: { - after: { - matcher(context: better_auth.HookEndpointContext): boolean; - handler: (inputContext: better_call.MiddlewareInputContext) => Promise; - }[]; - }; - } | { - id: "custom-session"; - endpoints: { - getSession: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: { - disableCookieCache?: string | boolean | undefined; - disableRefresh?: boolean | undefined; - } | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_13 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_13] extends [true] ? { - headers: Headers; - response: { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - } & { - image: string | null; - handle: string | null; - twoFactorEnabled: boolean | null; - socialLinks: Record | null; - bio: string | null; - website: string | null; - deleted: boolean | null; - }; - session: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }; - invitation: boolean | { - code: string; - createdAt: Date | null; - usedAt: Date | null; - fromUserId: string; - toUserId: string | null; - } | undefined; - role: "user" | "trial"; - } | null; - } : { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - } & { - image: string | null; - handle: string | null; - twoFactorEnabled: boolean | null; - socialLinks: Record | null; - bio: string | null; - website: string | null; - deleted: boolean | null; - }; - session: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }; - invitation: boolean | { - code: string; - createdAt: Date | null; - usedAt: Date | null; - fromUserId: string; - toUserId: string | null; - } | undefined; - role: "user" | "trial"; - } | null>; - options: { - method: "GET"; - query: zod.ZodOptional]>>; - disableRefresh: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - disableCookieCache?: boolean | undefined; - disableRefresh?: boolean | undefined; - }, { - disableCookieCache?: string | boolean | undefined; - disableRefresh?: boolean | undefined; - }>>; - metadata: { - CUSTOM_SESSION: boolean; - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "array"; - nullable: boolean; - items: { - $ref: string; - }; - }; - }; - }; - }; - }; - }; - }; - requireHeaders: true; - } & { - use: any[]; - }; - path: "/get-session"; - }; - }; - } | { - id: "customGetProviders"; - endpoints: { - customGetProviders: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_14 | undefined; - }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_14] extends [true] ? { - headers: Headers; - response: any; - } : any>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-providers"; - }; - }; - } | { - id: "getAccountInfo"; - endpoints: { - getAccountInfo: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_14 | undefined; - }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_14] extends [true] ? { - headers: Headers; - response: ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null; - } : ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-account-info"; - }; - }; - } | { - id: "deleteUserCustom"; - endpoints: { - deleteUserCustom: { - (inputCtx_0: { - body: { - TOTPCode: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_14 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_14] extends [true] ? { - headers: Headers; - response: void; - } : void>; - options: { - method: "POST"; - body: zod_v4.ZodObject<{ - TOTPCode: zod_v4.ZodString; - }, zod_v4_core.$strip>; - } & { - use: any[]; - }; - path: "/delete-user-custom"; - }; - }; - } | { - id: "oneTimeToken"; - endpoints: { - generateOneTimeToken: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_14 | undefined; - }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_14] extends [true] ? { - headers: Headers; - response: { - token: string; - }; - } : { - token: string; - }>; - options: { - method: "GET"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - } & { - use: any[]; - }; - path: "/one-time-token/generate"; - }; - applyOneTimeToken: { - (inputCtx_0: { - body: { - token: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse_1 | undefined; - returnHeaders?: ReturnHeaders_14 | undefined; - }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_14] extends [true] ? { - headers: Headers; - response: { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - } & Record; - }; - } : { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - } & Record; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - token: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - token: string; - }, { - token: string; - }>; - } & { - use: any[]; - }; - path: "/one-time-token/apply"; - }; - }; - })[]; - }>> & { - name?: string; - image?: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodRecord; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - $Infer: { - body: Partial better_auth.Adapter; - advanced: { - database: { - generateId: false; - }; - defaultCookieAttributes: { - sameSite: "none"; - secure: true; - }; - }; - session: { - updateAge: number; - expiresIn: number; - }; - basePath: string; - trustedOrigins: string[]; - user: { - additionalFields: { - handle: { - type: "string"; - }; - socialLinks: { - type: "string"; - transform: { - input: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => string; - output: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => any; - }; - }; - bio: { - type: "string"; - }; - website: { - type: "string"; - }; - deleted: { - type: "boolean"; - }; - }; - changeEmail: { - enabled: true; - sendChangeEmailVerification: ({ user, url }: { - user: better_auth.User; - newEmail: string; - url: string; - token: string; - }) => Promise; - }; - }; - account: { - accountLinking: { - enabled: true; - trustedProviders: ("github" | "apple" | "google")[]; - allowDifferentEmails: true; - }; - }; - socialProviders: { - google: { - clientId: string; - clientSecret: string; - }; - github: { - clientId: string; - clientSecret: string; - }; - apple: { - enabled: boolean; - clientId: string; - clientSecret: string; - appBundleIdentifier: string | undefined; - }; - }; - emailAndPassword: { - enabled: true; - sendResetPassword({ user, url }: { - user: better_auth.User; - url: string; - token: string; - }): Promise; - }; - emailVerification: { - sendOnSignUp: true; - sendVerificationEmail({ user, url }: { - user: better_auth.User; - url: string; - token: string; - }): Promise; - }; - plugins: ({ - id: "open-api"; - endpoints: { - generateOpenAPISchema: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - openapi: string; - info: { - title: string; - description: string; - version: string; - }; - components: { - securitySchemes: { - apiKeyCookie: { - type: string; - in: string; - name: string; - description: string; - }; - bearerAuth: { - type: string; - scheme: string; - description: string; - }; - }; - schemas: {}; - }; - security: { - apiKeyCookie: never[]; - bearerAuth: never[]; - }[]; - servers: { - url: string; - }[]; - tags: { - name: string; - description: string; - }[]; - paths: Record; - }; - } : { - openapi: string; - info: { - title: string; - description: string; - version: string; - }; - components: { - securitySchemes: { - apiKeyCookie: { - type: string; - in: string; - name: string; - description: string; - }; - bearerAuth: { - type: string; - scheme: string; - description: string; - }; - }; - schemas: {}; - }; - security: { - apiKeyCookie: never[]; - bearerAuth: never[]; - }[]; - servers: { - url: string; - }[]; - tags: { - name: string; - description: string; - }[]; - paths: Record; - }>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/open-api/generate-schema"; - }; - openAPIReference: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: Response; - } : Response>; - options: { - method: "GET"; - metadata: { - isAction: boolean; - }; - } & { - use: any[]; - }; - path: "/reference"; - }; - }; - } | { - id: "two-factor"; - endpoints: { - enableTwoFactor: { - (inputCtx_0: { - body: { - password: string; - issuer?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - totpURI: string; - backupCodes: string[]; - }; - } : { - totpURI: string; - backupCodes: string[]; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - issuer: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - password: string; - issuer?: string | undefined; - }, { - password: string; - issuer?: string | undefined; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - totpURI: { - type: string; - description: string; - }; - backupCodes: { - type: string; - items: { - type: string; - }; - description: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/enable"; - }; - disableTwoFactor: { - (inputCtx_0: { - body: { - password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/disable"; - }; - verifyBackupCode: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string | undefined; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }; - } : { - token: string | undefined; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - disableSession: zod.ZodOptional; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }>; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - nullable: boolean; - description: string; - }; - name: { - type: string; - nullable: boolean; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - twoFactorEnabled: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - session: { - type: string; - properties: { - token: { - type: string; - description: string; - }; - userId: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - expiresAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/verify-backup-code"; - }; - generateBackupCodes: { - (inputCtx_0: { - body: { - password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - backupCodes: string[]; - }; - } : { - status: boolean; - backupCodes: string[]; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - enum: boolean[]; - }; - backupCodes: { - type: string; - items: { - type: string; - }; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/generate-backup-codes"; - }; - viewBackupCodes: { - (inputCtx_0: { - body: { - userId: string; - }; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - backupCodes: string[]; - }; - } : { - status: boolean; - backupCodes: string[]; - }>; - options: { - method: "GET"; - body: zod.ZodObject<{ - userId: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - userId: string; - }, { - userId: string; - }>; - metadata: { - SERVER_ONLY: true; - }; - } & { - use: any[]; - }; - path: "/two-factor/view-backup-codes"; - }; - sendTwoFactorOTP: { - (inputCtx_0?: ({ - body?: { - trustDevice?: boolean | undefined; - } | undefined; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - trustDevice?: boolean | undefined; - }, { - trustDevice?: boolean | undefined; - }>>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/send-otp"; - }; - verifyTwoFactorOTP: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string; - user: { - id: any; - email: any; - emailVerified: any; - name: any; - image: any; - createdAt: any; - updatedAt: any; - }; - }; - } : { - token: string; - user: { - id: any; - email: any; - emailVerified: any; - name: any; - image: any; - createdAt: any; - updatedAt: any; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - token: { - type: string; - description: string; - }; - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - nullable: boolean; - description: string; - }; - name: { - type: string; - nullable: boolean; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/verify-otp"; - }; - generateTOTP: { - (inputCtx_0: { - body: { - secret: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - code: string; - }; - } : { - code: string; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - secret: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - secret: string; - }, { - secret: string; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - code: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - SERVER_ONLY: true; - }; - } & { - use: any[]; - }; - path: "/totp/generate"; - }; - getTOTPURI: { - (inputCtx_0: { - body: { - password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - totpURI: string; - }; - } : { - totpURI: string; - }>; - options: { - method: "POST"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - totpURI: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/get-totp-uri"; - }; - verifyTOTP: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }; - } : { - token: string; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/verify-totp"; - }; - }; - options: better_auth_plugins.TwoFactorOptions | undefined; - hooks: { - after: { - matcher(context: better_auth.HookEndpointContext): boolean; - handler: (inputContext: better_call.MiddlewareInputContext) => Promise<{ - twoFactorRedirect: boolean; - } | undefined>; - }[]; - }; - schema: { - user: { - fields: { - twoFactorEnabled: { - type: "boolean"; - required: false; - defaultValue: false; - input: false; - }; - }; - }; - twoFactor: { - fields: { - secret: { - type: "string"; - required: true; - returned: false; - }; - backupCodes: { - type: "string"; - required: true; - returned: false; - }; - userId: { - type: "string"; - required: true; - returned: false; - references: { - model: string; - field: string; - }; - }; - }; - }; - }; - rateLimit: { - pathMatcher(path: string): boolean; - window: number; - max: number; - }[]; - $ERROR_CODES: { - readonly OTP_NOT_ENABLED: "OTP not enabled"; - readonly OTP_HAS_EXPIRED: "OTP has expired"; - readonly TOTP_NOT_ENABLED: "TOTP not enabled"; - readonly TWO_FACTOR_NOT_ENABLED: "Two factor isn't enabled"; - readonly BACKUP_CODES_NOT_ENABLED: "Backup codes aren't enabled"; - readonly INVALID_BACKUP_CODE: "Invalid backup code"; - readonly INVALID_CODE: "Invalid code"; - readonly TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE: "Too many attempts. Please request a new code."; - readonly INVALID_TWO_FACTOR_COOKIE: "Invalid two factor cookie"; - }; - } | { - id: "expo"; - init: (ctx: better_auth.AuthContext) => { - options: { - trustedOrigins: string[]; - }; - }; - onRequest(request: Request, ctx: better_auth.AuthContext): Promise<{ - request: Request; - } | undefined>; - hooks: { - after: { - matcher(context: better_auth.HookEndpointContext): boolean; - handler: (inputContext: better_call.MiddlewareInputContext) => Promise; - }[]; - }; - } | { - id: "custom-session"; - endpoints: { - getSession: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: { - disableCookieCache?: string | boolean | undefined; - disableRefresh?: boolean | undefined; - } | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - } & { - image: string | null; - handle: string | null; - twoFactorEnabled: boolean | null; - socialLinks: Record | null; - bio: string | null; - website: string | null; - deleted: boolean | null; - }; - session: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }; - invitation: boolean | { - code: string; - createdAt: Date | null; - usedAt: Date | null; - fromUserId: string; - toUserId: string | null; - } | undefined; - role: "user" | "trial"; - } | null; - } : { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - } & { - image: string | null; - handle: string | null; - twoFactorEnabled: boolean | null; - socialLinks: Record | null; - bio: string | null; - website: string | null; - deleted: boolean | null; - }; - session: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }; - invitation: boolean | { - code: string; - createdAt: Date | null; - usedAt: Date | null; - fromUserId: string; - toUserId: string | null; - } | undefined; - role: "user" | "trial"; - } | null>; - options: { - method: "GET"; - query: zod.ZodOptional]>>; - disableRefresh: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - disableCookieCache?: boolean | undefined; - disableRefresh?: boolean | undefined; - }, { - disableCookieCache?: string | boolean | undefined; - disableRefresh?: boolean | undefined; - }>>; - metadata: { - CUSTOM_SESSION: boolean; - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "array"; - nullable: boolean; - items: { - $ref: string; - }; - }; - }; - }; - }; - }; - }; - }; - requireHeaders: true; - } & { - use: any[]; - }; - path: "/get-session"; - }; - }; - } | { - id: "customGetProviders"; - endpoints: { - customGetProviders: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: any; - } : any>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-providers"; - }; - }; - } | { - id: "getAccountInfo"; - endpoints: { - getAccountInfo: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null; - } : ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-account-info"; - }; - }; - } | { - id: "deleteUserCustom"; - endpoints: { - deleteUserCustom: { - (inputCtx_0: { - body: { - TOTPCode: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: void; - } : void>; - options: { - method: "POST"; - body: zod_v4.ZodObject<{ - TOTPCode: zod_v4.ZodString; - }, zod_v4_core.$strip>; - } & { - use: any[]; - }; - path: "/delete-user-custom"; - }; - }; - } | { - id: "oneTimeToken"; - endpoints: { - generateOneTimeToken: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string; - }; - } : { - token: string; - }>; - options: { - method: "GET"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - } & { - use: any[]; - }; - path: "/one-time-token/generate"; - }; - applyOneTimeToken: { - (inputCtx_0: { - body: { - token: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - } & Record; - }; - } : { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - } & Record; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - token: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - token: string; - }, { - token: string; - }>; - } & { - use: any[]; - }; - path: "/one-time-token/apply"; - }; - }; - })[]; - }>> & { - name?: string; - image?: string; - }; - }; - openapi: { - description: string; - requestBody: { - content: { - "application/json": { - schema: { - type: "object"; - properties: { - name: { - type: string; - description: string; - }; - image: { - type: string; - description: string; - }; - }; - }; - }; - }; - }; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/update-user"; - }; - deleteUser: { - (inputCtx_0: { - body: { - password?: string | undefined; - token?: string | undefined; - callbackURL?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - success: boolean; - message: string; - }; - } : { - success: boolean; - message: string; - }>; - options: { - method: "POST"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - body: zod.ZodObject<{ - callbackURL: zod.ZodOptional; - password: zod.ZodOptional; - token: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - password?: string | undefined; - token?: string | undefined; - callbackURL?: string | undefined; - }, { - password?: string | undefined; - token?: string | undefined; - callbackURL?: string | undefined; - }>; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - success: { - type: string; - description: string; - }; - message: { - type: string; - enum: string[]; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/delete-user"; - }; - forgetPasswordCallback: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query: { - callbackURL: string; - }; - } & { - params: { - token: string; - }; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: never; - } : never>; - options: { - method: "GET"; - query: zod.ZodObject<{ - callbackURL: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - callbackURL: string; - }, { - callbackURL: string; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - token: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/reset-password/:token"; - }; - listSessions: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: better_auth.Prettify<{ - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }>[]; - } : better_auth.Prettify<{ - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }>[]>; - options: { - method: "GET"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - requireHeaders: true; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "array"; - items: { - $ref: string; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/list-sessions"; - }; - revokeSession: { - (inputCtx_0: { - body: { - token: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - token: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - token: string; - }, { - token: string; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - requireHeaders: true; - metadata: { - openapi: { - description: string; - requestBody: { - content: { - "application/json": { - schema: { - type: "object"; - properties: { - token: { - type: string; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/revoke-session"; - }; - revokeSessions: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - requireHeaders: true; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/revoke-sessions"; - }; - revokeOtherSessions: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - requireHeaders: true; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/revoke-other-sessions"; - }; - linkSocialAccount: { - (inputCtx_0: { - body: { - provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; - scopes?: string[] | undefined; - callbackURL?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - url: string; - redirect: boolean; - }; - } : { - url: string; - redirect: boolean; - }>; - options: { - method: "POST"; - requireHeaders: true; - body: zod.ZodObject<{ - callbackURL: zod.ZodOptional; - provider: zod.ZodEnum<["github", ...("apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom")[]]>; - scopes: zod.ZodOptional>; - }, "strip", zod.ZodTypeAny, { - provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; - scopes?: string[] | undefined; - callbackURL?: string | undefined; - }, { - provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; - scopes?: string[] | undefined; - callbackURL?: string | undefined; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - url: { - type: string; - description: string; - }; - redirect: { - type: string; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/link-social"; - }; - listUserAccounts: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - id: string; - provider: string; - createdAt: Date; - updatedAt: Date; - accountId: string; - scopes: string[]; - }[]; - } : { - id: string; - provider: string; - createdAt: Date; - updatedAt: Date; - accountId: string; - scopes: string[]; - }[]>; - options: { - method: "GET"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "array"; - items: { - type: string; - properties: { - id: { - type: string; - }; - provider: { - type: string; - }; - createdAt: { - type: string; - format: string; - }; - updatedAt: { - type: string; - format: string; - }; - }; - accountId: { - type: string; - }; - scopes: { - type: string; - items: { - type: string; - }; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/list-accounts"; - }; - deleteUserCallback: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query: { - token: string; - callbackURL?: string | undefined; - }; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - success: boolean; - message: string; - }; - } : { - success: boolean; - message: string; - }>; - options: { - method: "GET"; - query: zod.ZodObject<{ - token: zod.ZodString; - callbackURL: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - token: string; - callbackURL?: string | undefined; - }, { - token: string; - callbackURL?: string | undefined; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - success: { - type: string; - description: string; - }; - message: { - type: string; - enum: string[]; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/delete-user/callback"; - }; - unlinkAccount: { - (inputCtx_0: { - body: { - providerId: string; - accountId?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - providerId: zod.ZodString; - accountId: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - providerId: string; - accountId?: string | undefined; - }, { - providerId: string; - accountId?: string | undefined; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/unlink-account"; - }; - refreshToken: { - (inputCtx_0: { - body: { - providerId: string; - accountId?: string | undefined; - userId?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: better_auth.OAuth2Tokens; - } : better_auth.OAuth2Tokens>; - options: { - method: "POST"; - body: zod.ZodObject<{ - providerId: zod.ZodString; - accountId: zod.ZodOptional; - userId: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - providerId: string; - accountId?: string | undefined; - userId?: string | undefined; - }, { - providerId: string; - accountId?: string | undefined; - userId?: string | undefined; - }>; - metadata: { - openapi: { - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - tokenType: { - type: string; - }; - idToken: { - type: string; - }; - accessToken: { - type: string; - }; - refreshToken: { - type: string; - }; - accessTokenExpiresAt: { - type: string; - format: string; - }; - refreshTokenExpiresAt: { - type: string; - format: string; - }; - }; - }; - }; - }; - }; - 400: { - description: string; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/refresh-token"; - }; - getAccessToken: { - (inputCtx_0: { - body: { - providerId: string; - accountId?: string | undefined; - userId?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - accessToken: string | undefined; - accessTokenExpiresAt: Date | undefined; - scopes: string[]; - idToken: string | undefined; - }; - } : { - accessToken: string | undefined; - accessTokenExpiresAt: Date | undefined; - scopes: string[]; - idToken: string | undefined; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - providerId: zod.ZodString; - accountId: zod.ZodOptional; - userId: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - providerId: string; - accountId?: string | undefined; - userId?: string | undefined; - }, { - providerId: string; - accountId?: string | undefined; - userId?: string | undefined; - }>; - metadata: { - openapi: { - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - tokenType: { - type: string; - }; - idToken: { - type: string; - }; - accessToken: { - type: string; - }; - refreshToken: { - type: string; - }; - accessTokenExpiresAt: { - type: string; - format: string; - }; - refreshTokenExpiresAt: { - type: string; - format: string; - }; - }; - }; - }; - }; - }; - 400: { - description: string; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/get-access-token"; - }; - } & { - generateOpenAPISchema: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - openapi: string; - info: { - title: string; - description: string; - version: string; - }; - components: { - securitySchemes: { - apiKeyCookie: { - type: string; - in: string; - name: string; - description: string; - }; - bearerAuth: { - type: string; - scheme: string; - description: string; - }; - }; - schemas: {}; - }; - security: { - apiKeyCookie: never[]; - bearerAuth: never[]; - }[]; - servers: { - url: string; - }[]; - tags: { - name: string; - description: string; - }[]; - paths: Record; - }; - } : { - openapi: string; - info: { - title: string; - description: string; - version: string; - }; - components: { - securitySchemes: { - apiKeyCookie: { - type: string; - in: string; - name: string; - description: string; - }; - bearerAuth: { - type: string; - scheme: string; - description: string; - }; - }; - schemas: {}; - }; - security: { - apiKeyCookie: never[]; - bearerAuth: never[]; - }[]; - servers: { - url: string; - }[]; - tags: { - name: string; - description: string; - }[]; - paths: Record; - }>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/open-api/generate-schema"; - }; - openAPIReference: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: Response; - } : Response>; - options: { - method: "GET"; - metadata: { - isAction: boolean; - }; - } & { - use: any[]; - }; - path: "/reference"; - }; - } & { - customGetProviders: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: any; - } : any>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-providers"; - }; - } & { - getAccountInfo: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null; - } : ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-account-info"; - }; - } & { - deleteUserCustom: { - (inputCtx_0: { - body: { - TOTPCode: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: void; - } : void>; - options: { - method: "POST"; - body: zod_v4.ZodObject<{ - TOTPCode: zod_v4.ZodString; - }, zod_v4_core.$strip>; - } & { - use: any[]; - }; - path: "/delete-user-custom"; - }; - } & { - generateOneTimeToken: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string; - }; - } : { - token: string; - }>; - options: { - method: "GET"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - } & { - use: any[]; - }; - path: "/one-time-token/generate"; - }; - applyOneTimeToken: { - (inputCtx_0: { - body: { - token: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - user: { + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { id: string; name: string; email: string; @@ -14957,272 +12058,777 @@ declare const auth: { createdAt: Date; updatedAt: Date; image?: string | null | undefined; - } & Record; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; }; - } : { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - } & Record; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - token: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - token: string; - }, { - token: string; + path: "/subscription/upgrade"; + }; + readonly cancelSubscriptionCallback: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_3 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_3] extends [true] ? { + headers: Headers; + response: never; + } : never>; + options: { + method: "GET"; + query: zod1169.ZodOptional>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + } & { + use: any[]; + }; + path: "/subscription/cancel/callback"; + }; + readonly cancelSubscription: { + (inputCtx_0: { + body: { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_4 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_4] extends [true] ? { + headers: Headers; + response: { + url: string; + redirect: boolean; + }; + } : { + url: string; + redirect: boolean; }>; - } & { - use: any[]; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + returnUrl: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }, { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/cancel"; + }; + readonly restoreSubscription: { + (inputCtx_0: { + body: { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_5 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_5] extends [true] ? { + headers: Headers; + response: Stripe.Response; + } : Stripe.Response>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }, { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/restore"; + }; + readonly listActiveSubscriptions: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: { + referenceId?: string | undefined; + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_6 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_6] extends [true] ? { + headers: Headers; + response: { + limits: Record | undefined; + priceId: string | undefined; + id: string; + plan: string; + stripeCustomerId?: string; + stripeSubscriptionId?: string; + trialStart?: Date; + trialEnd?: Date; + referenceId: string; + status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "past_due" | "paused" | "trialing" | "unpaid"; + periodStart?: Date; + periodEnd?: Date; + cancelAtPeriodEnd?: boolean; + groupId?: string; + seats?: number; + }[]; + } : { + limits: Record | undefined; + priceId: string | undefined; + id: string; + plan: string; + stripeCustomerId?: string; + stripeSubscriptionId?: string; + trialStart?: Date; + trialEnd?: Date; + referenceId: string; + status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "past_due" | "paused" | "trialing" | "unpaid"; + periodStart?: Date; + periodEnd?: Date; + cancelAtPeriodEnd?: boolean; + groupId?: string; + seats?: number; + }[]>; + options: { + method: "GET"; + query: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + referenceId?: string | undefined; + }, { + referenceId?: string | undefined; + }>>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/list"; + }; + readonly subscriptionSuccess: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_7 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_7] extends [true] ? { + headers: Headers; + response: better_call38.APIError; + } : better_call38.APIError>; + options: { + method: "GET"; + query: zod1169.ZodOptional>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + } & { + use: any[]; + }; + path: "/subscription/success"; + }; }; - path: "/one-time-token/apply"; - }; - } & { - enableTwoFactor: { - (inputCtx_0: { - body: { + init(ctx: better_auth246.AuthContext): { + options: { + databaseHooks: { + user: { + create: { + after(user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }, ctx: better_auth246.GenericEndpointContext | undefined): Promise; + }; + }; + }; + }; + }; + schema: { + user: { + fields: { + stripeCustomerId: { + type: "string"; + required: false; + }; + }; + }; + subscription?: { + fields: { + plan: { + type: "string"; + required: true; + }; + referenceId: { + type: "string"; + required: true; + }; + stripeCustomerId: { + type: "string"; + required: false; + }; + stripeSubscriptionId: { + type: "string"; + required: false; + }; + status: { + type: "string"; + defaultValue: string; + }; + periodStart: { + type: "date"; + required: false; + }; + periodEnd: { + type: "date"; + required: false; + }; + cancelAtPeriodEnd: { + type: "boolean"; + required: false; + defaultValue: false; + }; + seats: { + type: "number"; + required: false; + }; + }; + } | undefined; + }; + } | { + id: "open-api"; + endpoints: { + generateOpenAPISchema: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_8 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_8] extends [true] ? { + headers: Headers; + response: { + openapi: string; + info: { + title: string; + description: string; + version: string; + }; + components: { + securitySchemes: { + apiKeyCookie: { + type: string; + in: string; + name: string; + description: string; + }; + bearerAuth: { + type: string; + scheme: string; + description: string; + }; + }; + schemas: {}; + }; + security: { + apiKeyCookie: never[]; + bearerAuth: never[]; + }[]; + servers: { + url: string; + }[]; + tags: { + name: string; + description: string; + }[]; + paths: Record; + }; + } : { + openapi: string; + info: { + title: string; + description: string; + version: string; + }; + components: { + securitySchemes: { + apiKeyCookie: { + type: string; + in: string; + name: string; + description: string; + }; + bearerAuth: { + type: string; + scheme: string; + description: string; + }; + }; + schemas: {}; + }; + security: { + apiKeyCookie: never[]; + bearerAuth: never[]; + }[]; + servers: { + url: string; + }[]; + tags: { + name: string; + description: string; + }[]; + paths: Record; + }>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/open-api/generate-schema"; + }; + openAPIReference: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_9 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_9] extends [true] ? { + headers: Headers; + response: Response; + } : Response>; + options: { + method: "GET"; + metadata: { + isAction: boolean; + }; + } & { + use: any[]; + }; + path: "/reference"; + }; + }; + } | { + id: "two-factor"; + endpoints: { + enableTwoFactor: { + (inputCtx_0: { + body: { password: string; issuer?: string | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_10 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_10] extends [true] ? { + headers: Headers; + response: { totpURI: string; backupCodes: string[]; - }; - } : { - totpURI: string; - backupCodes: string[]; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - issuer: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - password: string; - issuer?: string | undefined; - }, { - password: string; - issuer?: string | undefined; + }; + } : { + totpURI: string; + backupCodes: string[]; }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - totpURI: { - type: string; - description: string; - }; - backupCodes: { - type: string; - items: { - type: string; - }; - description: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/enable"; - }; - disableTwoFactor: { - (inputCtx_0: { - body: { + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + issuer: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { password: string; + issuer?: string | undefined; + }, { + password: string; + issuer?: string | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + totpURI: { + type: string; + description: string; + }; + backupCodes: { + type: string; + items: { + type: string; + }; + description: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + path: "/two-factor/enable"; + }; + disableTwoFactor: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_11 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_11] extends [true] ? { + headers: Headers; + response: { status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; + }; + } : { + status: boolean; }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; }; - }>)[]; - metadata: { + }>)[]; + metadata: { openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; }; + }; }; + }; }; + }; }; + }; + } & { + use: any[]; }; - } & { - use: any[]; - }; - path: "/two-factor/disable"; - }; - verifyBackupCode: { - (inputCtx_0: { - body: { + path: "/two-factor/disable"; + }; + verifyBackupCode: { + (inputCtx_0: { + body: { code: string; trustDevice?: boolean | undefined; disableSession?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_12 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_12] extends [true] ? { + headers: Headers; + response: { token: string | undefined; user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; }; - }; - } : { - token: string | undefined; - user: { + }; + } : { + token: string | undefined; + user: { id: string; email: string; emailVerified: boolean; @@ -15230,381 +12836,381 @@ declare const auth: { image: string | null | undefined; createdAt: Date; updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - disableSession: zod.ZodOptional; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; + }; }>; - metadata: { + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + disableSession: zod1169.ZodOptional; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }>; + metadata: { openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - nullable: boolean; - description: string; - }; - name: { - type: string; - nullable: boolean; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - twoFactorEnabled: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - session: { - type: string; - properties: { - token: { - type: string; - description: string; - }; - userId: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - expiresAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - }; - required: string[]; - }; + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + nullable: boolean; + description: string; + }; + name: { + type: string; + nullable: boolean; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + twoFactorEnabled: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; }; + required: string[]; + description: string; + }; + session: { + type: string; + properties: { + token: { + type: string; + description: string; + }; + userId: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + expiresAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; }; + required: string[]; + }; }; + }; }; + }; }; + }; + } & { + use: any[]; }; - } & { - use: any[]; - }; - path: "/two-factor/verify-backup-code"; - }; - generateBackupCodes: { - (inputCtx_0: { - body: { + path: "/two-factor/verify-backup-code"; + }; + generateBackupCodes: { + (inputCtx_0: { + body: { password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_13 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_13] extends [true] ? { + headers: Headers; + response: { status: boolean; backupCodes: string[]; - }; - } : { - status: boolean; - backupCodes: string[]; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; + }; + } : { + status: boolean; + backupCodes: string[]; }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; }; - }>)[]; - metadata: { + }>)[]; + metadata: { openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - enum: boolean[]; - }; - backupCodes: { - type: string; - items: { - type: string; - }; - description: string; - }; - }; - required: string[]; - }; + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + enum: boolean[]; + }; + backupCodes: { + type: string; + items: { + type: string; }; + description: string; + }; }; + required: string[]; + }; }; + }; }; + }; }; + }; + } & { + use: any[]; }; - } & { - use: any[]; - }; - path: "/two-factor/generate-backup-codes"; - }; - viewBackupCodes: { - (inputCtx_0: { - body: { + path: "/two-factor/generate-backup-codes"; + }; + viewBackupCodes: { + (inputCtx_0: { + body: { userId: string; - }; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + }; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_14 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_14] extends [true] ? { + headers: Headers; + response: { status: boolean; backupCodes: string[]; - }; - } : { - status: boolean; - backupCodes: string[]; - }>; - options: { - method: "GET"; - body: zod.ZodObject<{ - userId: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - userId: string; - }, { - userId: string; + }; + } : { + status: boolean; + backupCodes: string[]; }>; - metadata: { + options: { + method: "GET"; + body: zod1169.ZodObject<{ + userId: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + userId: string; + }, { + userId: string; + }>; + metadata: { SERVER_ONLY: true; + }; + } & { + use: any[]; }; - } & { - use: any[]; - }; - path: "/two-factor/view-backup-codes"; - }; - sendTwoFactorOTP: { - (inputCtx_0?: ({ - body?: { + path: "/two-factor/view-backup-codes"; + }; + sendTwoFactorOTP: { + (inputCtx_0?: ({ + body?: { trustDevice?: boolean | undefined; - } | undefined; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + } | undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_15 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_15] extends [true] ? { + headers: Headers; + response: { status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { trustDevice?: boolean | undefined; - }, { + }, { trustDevice?: boolean | undefined; - }>>; - metadata: { + }>>; + metadata: { openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; }; + }; }; + }; }; + }; }; + }; + } & { + use: any[]; }; - } & { - use: any[]; - }; - path: "/two-factor/send-otp"; - }; - verifyTwoFactorOTP: { - (inputCtx_0: { - body: { + path: "/two-factor/send-otp"; + }; + verifyTwoFactorOTP: { + (inputCtx_0: { + body: { code: string; trustDevice?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_16 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_16] extends [true] ? { + headers: Headers; + response: { token: string; user: { - id: any; - email: any; - emailVerified: any; - name: any; - image: any; - createdAt: any; - updatedAt: any; + id: any; + email: any; + emailVerified: any; + name: any; + image: any; + createdAt: any; + updatedAt: any; }; - }; - } : { - token: string; - user: { + }; + } : { + token: string; + user: { id: any; email: any; emailVerified: any; @@ -15612,294 +13218,294 @@ declare const auth: { image: any; createdAt: any; updatedAt: any; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; + }; }>; - metadata: { + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + }>; + metadata: { openapi: { - summary: string; - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - token: { - type: string; - description: string; - }; - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - nullable: boolean; - description: string; - }; - name: { - type: string; - nullable: boolean; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - }; - required: string[]; - }; + summary: string; + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + token: { + type: string; + description: string; + }; + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + nullable: boolean; + description: string; + }; + name: { + type: string; + nullable: boolean; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; }; + required: string[]; + description: string; + }; }; + required: string[]; + }; }; + }; }; + }; }; + }; + } & { + use: any[]; }; - } & { - use: any[]; - }; - path: "/two-factor/verify-otp"; - }; - generateTOTP: { - (inputCtx_0: { - body: { + path: "/two-factor/verify-otp"; + }; + generateTOTP: { + (inputCtx_0: { + body: { secret: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_17 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_17] extends [true] ? { + headers: Headers; + response: { code: string; - }; - } : { - code: string; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - secret: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - secret: string; - }, { - secret: string; + }; + } : { + code: string; }>; - metadata: { + options: { + method: "POST"; + body: zod1169.ZodObject<{ + secret: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + secret: string; + }, { + secret: string; + }>; + metadata: { openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - code: { - type: string; - }; - }; - }; - }; + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + code: { + type: string; + }; }; + }; }; + }; }; + }; }; SERVER_ONLY: true; + }; + } & { + use: any[]; }; - } & { - use: any[]; - }; - path: "/totp/generate"; - }; - getTOTPURI: { - (inputCtx_0: { - body: { + path: "/totp/generate"; + }; + getTOTPURI: { + (inputCtx_0: { + body: { password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_18 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_18] extends [true] ? { + headers: Headers; + response: { totpURI: string; - }; - } : { - totpURI: string; - }>; - options: { - method: "POST"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; + }; + } : { + totpURI: string; }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - totpURI: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/get-totp-uri"; - }; - verifyTOTP: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string; - user: { + options: { + method: "POST"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; createdAt: Date; updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; }; + }>)[]; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + totpURI: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; }; - } : { - token: string; - user: { + path: "/two-factor/get-totp-uri"; + }; + verifyTOTP: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_19 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_19] extends [true] ? { + headers: Headers; + response: { + token: string; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }; + } : { + token: string; + user: { id: string; email: string; emailVerified: boolean; @@ -15907,114 +13513,189 @@ declare const auth: { image: string | null | undefined; createdAt: Date; updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; + }; }>; - metadata: { + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + }>; + metadata: { openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; }; + }; }; + }; }; + }; }; + }; + } & { + use: any[]; }; - } & { - use: any[]; + path: "/two-factor/verify-totp"; + }; }; - path: "/two-factor/verify-totp"; - }; - } & { - getSession: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: { + options: better_auth_plugins332.TwoFactorOptions | undefined; + hooks: { + after: { + matcher(context: better_auth246.HookEndpointContext): boolean; + handler: (inputContext: better_call38.MiddlewareInputContext) => Promise<{ + twoFactorRedirect: boolean; + } | undefined>; + }[]; + }; + schema: { + user: { + fields: { + twoFactorEnabled: { + type: "boolean"; + required: false; + defaultValue: false; + input: false; + }; + }; + }; + twoFactor: { + fields: { + secret: { + type: "string"; + required: true; + returned: false; + }; + backupCodes: { + type: "string"; + required: true; + returned: false; + }; + userId: { + type: "string"; + required: true; + returned: false; + references: { + model: string; + field: string; + }; + }; + }; + }; + }; + rateLimit: { + pathMatcher(path: string): boolean; + window: number; + max: number; + }[]; + $ERROR_CODES: { + readonly OTP_NOT_ENABLED: "OTP not enabled"; + readonly OTP_HAS_EXPIRED: "OTP has expired"; + readonly TOTP_NOT_ENABLED: "TOTP not enabled"; + readonly TWO_FACTOR_NOT_ENABLED: "Two factor isn't enabled"; + readonly BACKUP_CODES_NOT_ENABLED: "Backup codes aren't enabled"; + readonly INVALID_BACKUP_CODE: "Invalid backup code"; + readonly INVALID_CODE: "Invalid code"; + readonly TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE: "Too many attempts. Please request a new code."; + readonly INVALID_TWO_FACTOR_COOKIE: "Invalid two factor cookie"; + }; + } | { + id: "expo"; + init: (ctx: better_auth246.AuthContext) => { + options: { + trustedOrigins: string[]; + }; + }; + onRequest(request: Request, ctx: better_auth246.AuthContext): Promise<{ + request: Request; + } | undefined>; + hooks: { + after: { + matcher(context: better_auth246.HookEndpointContext): boolean; + handler: (inputContext: better_call38.MiddlewareInputContext) => Promise; + }[]; + }; + } | { + id: "custom-session"; + endpoints: { + getSession: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: { disableCookieCache?: string | boolean | undefined; disableRefresh?: boolean | undefined; - } | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_20 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_20] extends [true] ? { + headers: Headers; + response: { user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; } & { - image: string | null; - handle: string | null; - twoFactorEnabled: boolean | null; - socialLinks: Record | null; - bio: string | null; - website: string | null; - deleted: boolean | null; + image: string | null; + handle: string | null; + twoFactorEnabled: boolean | null; + socialLinks: Record | null; + bio: string | null; + website: string | null; + role: string | null; + roleEndAt: Date | null; + deleted: boolean | null; }; session: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; }; - invitation: boolean | { - code: string; - createdAt: Date | null; - usedAt: Date | null; - fromUserId: string; - toUserId: string | null; - } | undefined; - role: "user" | "trial"; - } | null; - } : { - user: { + role: UserRole.PreProTrial | UserRole.PrePro | UserRole.Free | UserRole.Trial; + roleEndAt: Date | null | undefined; + } | null; + } : { + user: { id: string; name: string; email: string; @@ -16022,16 +13703,18 @@ declare const auth: { createdAt: Date; updatedAt: Date; image?: string | null | undefined | undefined; - } & { + } & { image: string | null; handle: string | null; twoFactorEnabled: boolean | null; socialLinks: Record | null; bio: string | null; website: string | null; + role: string | null; + roleEndAt: Date | null; deleted: boolean | null; - }; - session: { + }; + session: { id: string; createdAt: Date; updatedAt: Date; @@ -16040,1732 +13723,789 @@ declare const auth: { token: string; ipAddress?: string | null | undefined | undefined; userAgent?: string | null | undefined | undefined; - }; - invitation: boolean | { - code: string; - createdAt: Date | null; - usedAt: Date | null; - fromUserId: string; - toUserId: string | null; - } | undefined; - role: "user" | "trial"; - } | null>; - options: { - method: "GET"; - query: zod.ZodOptional]>>; - disableRefresh: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { + }; + role: UserRole.PreProTrial | UserRole.PrePro | UserRole.Free | UserRole.Trial; + roleEndAt: Date | null | undefined; + } | null>; + options: { + method: "GET"; + query: zod1169.ZodOptional]>>; + disableRefresh: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { disableCookieCache?: boolean | undefined; disableRefresh?: boolean | undefined; - }, { + }, { disableCookieCache?: string | boolean | undefined; disableRefresh?: boolean | undefined; - }>>; - metadata: { + }>>; + metadata: { CUSTOM_SESSION: boolean; openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "array"; - nullable: boolean; - items: { - $ref: string; - }; - }; - }; + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "array"; + nullable: boolean; + items: { + $ref: string; }; + }; }; + }; }; + }; }; + }; + requireHeaders: true; + } & { + use: any[]; }; - requireHeaders: true; - } & { - use: any[]; + path: "/get-session"; + }; }; - path: "/get-session"; - }; - }>; - options: { - appName: string; - database: (options: BetterAuthOptions) => better_auth.Adapter; - advanced: { - database: { - generateId: false; + } | { + id: "customGetProviders"; + endpoints: { + customGetProviders: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_21 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_21] extends [true] ? { + headers: Headers; + response: any; + } : any>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-providers"; + }; }; - defaultCookieAttributes: { - sameSite: "none"; - secure: true; + } | { + id: "getAccountInfo"; + endpoints: { + getAccountInfo: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_21 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_21] extends [true] ? { + headers: Headers; + response: ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null; + } : ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-account-info"; + }; }; + } | { + id: "deleteUserCustom"; + endpoints: { + deleteUserCustom: { + (inputCtx_0: { + body: { + TOTPCode: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_21 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_21] extends [true] ? { + headers: Headers; + response: void; + } : void>; + options: { + method: "POST"; + body: zod_v441.ZodObject<{ + TOTPCode: zod_v441.ZodString; + }, zod_v4_core42.$strip>; + } & { + use: any[]; + }; + path: "/delete-user-custom"; + }; + }; + } | { + id: "oneTimeToken"; + endpoints: { + generateOneTimeToken: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_21 | undefined; + }) | undefined): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_21] extends [true] ? { + headers: Headers; + response: { + token: string; + }; + } : { + token: string; + }>; + options: { + method: "GET"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + } & { + use: any[]; + }; + path: "/one-time-token/generate"; + }; + applyOneTimeToken: { + (inputCtx_0: { + body: { + token: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse_1 | undefined; + returnHeaders?: ReturnHeaders_21 | undefined; + }): Promise<[AsResponse_1] extends [true] ? Response : [ReturnHeaders_21] extends [true] ? { + headers: Headers; + response: { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }; + } : { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + token: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + token: string; + }, { + token: string; + }>; + } & { + use: any[]; + }; + path: "/one-time-token/apply"; + }; + }; + })[]; + }>> & { + name?: string; + image?: string; }; - session: { - updateAge: number; - expiresIn: number; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; }; - basePath: string; - trustedOrigins: string[]; - user: { - additionalFields: { - handle: { + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodRecord; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + $Infer: { + body: Partial better_auth246.Adapter; + databaseHooks: { + user: { + create: { + after: (newUser: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }, context: better_auth246.GenericEndpointContext | undefined) => Promise; + }; + }; + }; + advanced: { + database: { + generateId: false; + }; + defaultCookieAttributes: { + sameSite: "none"; + secure: true; + }; + }; + session: { + updateAge: number; + expiresIn: number; + }; + basePath: string; + trustedOrigins: string[]; + user: { + additionalFields: { + handle: { type: "string"; - }; - socialLinks: { + }; + socialLinks: { type: "string"; transform: { - input: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => string; - output: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => any; + input: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => string; + output: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => any; }; - }; - bio: { + }; + bio: { type: "string"; - }; - website: { + }; + website: { type: "string"; - }; - deleted: { + }; + deleted: { type: "boolean"; + }; + role: { + type: "string"; + }; + roleEndAt: { + type: "date"; + }; }; - }; - changeEmail: { - enabled: true; - sendChangeEmailVerification: ({ user, url }: { - user: better_auth.User; + changeEmail: { + enabled: true; + sendChangeEmailVerification: ({ + user, + url + }: { + user: better_auth246.User; newEmail: string; url: string; token: string; - }) => Promise; - }; - }; - account: { - accountLinking: { + }) => Promise; + }; + }; + account: { + accountLinking: { + enabled: true; + trustedProviders: ("github" | "apple" | "google")[]; + allowDifferentEmails: true; + }; + }; + socialProviders: { + google: { + clientId: string; + clientSecret: string; + }; + github: { + clientId: string; + clientSecret: string; + }; + apple: { + enabled: boolean; + clientId: string; + clientSecret: string; + appBundleIdentifier: string | undefined; + }; + }; + emailAndPassword: { enabled: true; - trustedProviders: ("github" | "apple" | "google")[]; - allowDifferentEmails: true; - }; - }; - socialProviders: { - google: { - clientId: string; - clientSecret: string; - }; - github: { - clientId: string; - clientSecret: string; - }; - apple: { - enabled: boolean; - clientId: string; - clientSecret: string; - appBundleIdentifier: string | undefined; - }; - }; - emailAndPassword: { - enabled: true; - sendResetPassword({ user, url }: { - user: better_auth.User; - url: string; - token: string; - }): Promise; - }; - emailVerification: { - sendOnSignUp: true; - sendVerificationEmail({ user, url }: { - user: better_auth.User; - url: string; - token: string; - }): Promise; - }; - plugins: ({ - id: "open-api"; - endpoints: { - generateOpenAPISchema: { + sendResetPassword({ + user, + url + }: { + user: better_auth246.User; + url: string; + token: string; + }): Promise; + }; + emailVerification: { + sendOnSignUp: true; + sendVerificationEmail({ + user, + url + }: { + user: better_auth246.User; + url: string; + token: string; + }): Promise; + }; + plugins: ({ + id: "stripe"; + endpoints: { + stripeWebhook: { (inputCtx_0?: ({ - body?: undefined; + body?: undefined; } & { - method?: "GET" | undefined; + method?: "POST" | undefined; } & { - query?: Record | undefined; + query?: Record | undefined; } & { - params?: Record; + params?: Record; } & { - request?: Request; + request?: Request; } & { - headers?: HeadersInit; + headers?: HeadersInit; } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - openapi: string; - info: { - title: string; - description: string; - version: string; - }; - components: { - securitySchemes: { - apiKeyCookie: { - type: string; - in: string; - name: string; - description: string; - }; - bearerAuth: { - type: string; - scheme: string; - description: string; - }; - }; - schemas: {}; - }; - security: { - apiKeyCookie: never[]; - bearerAuth: never[]; - }[]; - servers: { - url: string; - }[]; - tags: { - name: string; - description: string; - }[]; - paths: Record; - }; + headers: Headers; + response: { + success: boolean; + }; } : { - openapi: string; - info: { - title: string; - description: string; - version: string; - }; - components: { - securitySchemes: { - apiKeyCookie: { - type: string; - in: string; - name: string; - description: string; - }; - bearerAuth: { - type: string; - scheme: string; - description: string; - }; - }; - schemas: {}; - }; - security: { - apiKeyCookie: never[]; - bearerAuth: never[]; - }[]; - servers: { - url: string; - }[]; - tags: { - name: string; - description: string; - }[]; - paths: Record; + success: boolean; }>; options: { - method: "GET"; + method: "POST"; + metadata: { + isAction: boolean; + }; + cloneRequest: true; } & { - use: any[]; + use: any[]; }; - path: "/open-api/generate-schema"; - }; - openAPIReference: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: Response; - } : Response>; - options: { - method: "GET"; - metadata: { - isAction: boolean; - }; - } & { - use: any[]; - }; - path: "/reference"; - }; - }; - } | { - id: "two-factor"; - endpoints: { - enableTwoFactor: { + path: "/stripe/webhook"; + }; + } & { + readonly upgradeSubscription: { (inputCtx_0: { - body: { - password: string; - issuer?: string | undefined; - }; + body: { + plan: string; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + successUrl?: string | undefined; + cancelUrl?: string | undefined; + returnUrl?: string | undefined; + disableRedirect?: boolean | undefined; + }; } & { - method?: "POST" | undefined; + method?: "POST" | undefined; } & { - query?: Record | undefined; + query?: Record | undefined; } & { - params?: Record; + params?: Record; } & { - request?: Request; + request?: Request; } & { - headers?: HeadersInit; + headers?: HeadersInit; } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - totpURI: string; - backupCodes: string[]; + headers: Headers; + response: { + url: string; + redirect: boolean; + } | { + redirect: boolean; + id: string; + object: "checkout.session"; + adaptive_pricing: Stripe.Checkout.Session.AdaptivePricing | null; + after_expiration: Stripe.Checkout.Session.AfterExpiration | null; + allow_promotion_codes: boolean | null; + amount_subtotal: number | null; + amount_total: number | null; + automatic_tax: Stripe.Checkout.Session.AutomaticTax; + billing_address_collection: Stripe.Checkout.Session.BillingAddressCollection | null; + cancel_url: string | null; + client_reference_id: string | null; + client_secret: string | null; + collected_information: Stripe.Checkout.Session.CollectedInformation | null; + consent: Stripe.Checkout.Session.Consent | null; + consent_collection: Stripe.Checkout.Session.ConsentCollection | null; + created: number; + currency: string | null; + currency_conversion: Stripe.Checkout.Session.CurrencyConversion | null; + custom_fields: Array; + custom_text: Stripe.Checkout.Session.CustomText; + customer: string | Stripe.Customer | Stripe.DeletedCustomer | null; + customer_creation: Stripe.Checkout.Session.CustomerCreation | null; + customer_details: Stripe.Checkout.Session.CustomerDetails | null; + customer_email: string | null; + discounts: Array | null; + expires_at: number; + invoice: string | Stripe.Invoice | null; + invoice_creation: Stripe.Checkout.Session.InvoiceCreation | null; + line_items?: Stripe.ApiList; + livemode: boolean; + locale: Stripe.Checkout.Session.Locale | null; + metadata: Stripe.Metadata | null; + mode: Stripe.Checkout.Session.Mode; + optional_items?: Array | null; + payment_intent: string | Stripe.PaymentIntent | null; + payment_link: string | Stripe.PaymentLink | null; + payment_method_collection: Stripe.Checkout.Session.PaymentMethodCollection | null; + payment_method_configuration_details: Stripe.Checkout.Session.PaymentMethodConfigurationDetails | null; + payment_method_options: Stripe.Checkout.Session.PaymentMethodOptions | null; + payment_method_types: Array; + payment_status: Stripe.Checkout.Session.PaymentStatus; + permissions: Stripe.Checkout.Session.Permissions | null; + phone_number_collection?: Stripe.Checkout.Session.PhoneNumberCollection; + presentment_details?: Stripe.Checkout.Session.PresentmentDetails; + recovered_from: string | null; + redirect_on_completion?: Stripe.Checkout.Session.RedirectOnCompletion; + return_url?: string; + saved_payment_method_options: Stripe.Checkout.Session.SavedPaymentMethodOptions | null; + setup_intent: string | Stripe.SetupIntent | null; + shipping_address_collection: Stripe.Checkout.Session.ShippingAddressCollection | null; + shipping_cost: Stripe.Checkout.Session.ShippingCost | null; + shipping_options: Array; + status: Stripe.Checkout.Session.Status | null; + submit_type: Stripe.Checkout.Session.SubmitType | null; + subscription: string | Stripe.Subscription | null; + success_url: string | null; + tax_id_collection?: Stripe.Checkout.Session.TaxIdCollection; + total_details: Stripe.Checkout.Session.TotalDetails | null; + ui_mode: Stripe.Checkout.Session.UiMode | null; + url: string | null; + lastResponse: { + headers: { + [key: string]: string; + }; + requestId: string; + statusCode: number; + apiVersion?: string; + idempotencyKey?: string; + stripeAccount?: string; }; + }; } : { - totpURI: string; - backupCodes: string[]; + url: string; + redirect: boolean; + } | { + redirect: boolean; + id: string; + object: "checkout.session"; + adaptive_pricing: Stripe.Checkout.Session.AdaptivePricing | null; + after_expiration: Stripe.Checkout.Session.AfterExpiration | null; + allow_promotion_codes: boolean | null; + amount_subtotal: number | null; + amount_total: number | null; + automatic_tax: Stripe.Checkout.Session.AutomaticTax; + billing_address_collection: Stripe.Checkout.Session.BillingAddressCollection | null; + cancel_url: string | null; + client_reference_id: string | null; + client_secret: string | null; + collected_information: Stripe.Checkout.Session.CollectedInformation | null; + consent: Stripe.Checkout.Session.Consent | null; + consent_collection: Stripe.Checkout.Session.ConsentCollection | null; + created: number; + currency: string | null; + currency_conversion: Stripe.Checkout.Session.CurrencyConversion | null; + custom_fields: Array; + custom_text: Stripe.Checkout.Session.CustomText; + customer: string | Stripe.Customer | Stripe.DeletedCustomer | null; + customer_creation: Stripe.Checkout.Session.CustomerCreation | null; + customer_details: Stripe.Checkout.Session.CustomerDetails | null; + customer_email: string | null; + discounts: Array | null; + expires_at: number; + invoice: string | Stripe.Invoice | null; + invoice_creation: Stripe.Checkout.Session.InvoiceCreation | null; + line_items?: Stripe.ApiList; + livemode: boolean; + locale: Stripe.Checkout.Session.Locale | null; + metadata: Stripe.Metadata | null; + mode: Stripe.Checkout.Session.Mode; + optional_items?: Array | null; + payment_intent: string | Stripe.PaymentIntent | null; + payment_link: string | Stripe.PaymentLink | null; + payment_method_collection: Stripe.Checkout.Session.PaymentMethodCollection | null; + payment_method_configuration_details: Stripe.Checkout.Session.PaymentMethodConfigurationDetails | null; + payment_method_options: Stripe.Checkout.Session.PaymentMethodOptions | null; + payment_method_types: Array; + payment_status: Stripe.Checkout.Session.PaymentStatus; + permissions: Stripe.Checkout.Session.Permissions | null; + phone_number_collection?: Stripe.Checkout.Session.PhoneNumberCollection; + presentment_details?: Stripe.Checkout.Session.PresentmentDetails; + recovered_from: string | null; + redirect_on_completion?: Stripe.Checkout.Session.RedirectOnCompletion; + return_url?: string; + saved_payment_method_options: Stripe.Checkout.Session.SavedPaymentMethodOptions | null; + setup_intent: string | Stripe.SetupIntent | null; + shipping_address_collection: Stripe.Checkout.Session.ShippingAddressCollection | null; + shipping_cost: Stripe.Checkout.Session.ShippingCost | null; + shipping_options: Array; + status: Stripe.Checkout.Session.Status | null; + submit_type: Stripe.Checkout.Session.SubmitType | null; + subscription: string | Stripe.Subscription | null; + success_url: string | null; + tax_id_collection?: Stripe.Checkout.Session.TaxIdCollection; + total_details: Stripe.Checkout.Session.TotalDetails | null; + ui_mode: Stripe.Checkout.Session.UiMode | null; + url: string | null; + lastResponse: { + headers: { + [key: string]: string; + }; + requestId: string; + statusCode: number; + apiVersion?: string; + idempotencyKey?: string; + stripeAccount?: string; + }; }>; options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - issuer: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - password: string; - issuer?: string | undefined; - }, { - password: string; - issuer?: string | undefined; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - totpURI: { - type: string; - description: string; - }; - backupCodes: { - type: string; - items: { - type: string; - }; - description: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/enable"; - }; - disableTwoFactor: { - (inputCtx_0: { - body: { - password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/disable"; - }; - verifyBackupCode: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string | undefined; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }; - } : { - token: string | undefined; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - disableSession: zod.ZodOptional; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - disableSession?: boolean | undefined; - }>; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - nullable: boolean; - description: string; - }; - name: { - type: string; - nullable: boolean; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - twoFactorEnabled: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - session: { - type: string; - properties: { - token: { - type: string; - description: string; - }; - userId: { - type: string; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - expiresAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/verify-backup-code"; - }; - generateBackupCodes: { - (inputCtx_0: { - body: { - password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - backupCodes: string[]; - }; - } : { - status: boolean; - backupCodes: string[]; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; - }>; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - metadata: { - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - description: string; - enum: boolean[]; - }; - backupCodes: { - type: string; - items: { - type: string; - }; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/generate-backup-codes"; - }; - viewBackupCodes: { - (inputCtx_0: { - body: { - userId: string; - }; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - backupCodes: string[]; - }; - } : { - status: boolean; - backupCodes: string[]; - }>; - options: { - method: "GET"; - body: zod.ZodObject<{ - userId: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - userId: string; - }, { - userId: string; - }>; - metadata: { - SERVER_ONLY: true; - }; - } & { - use: any[]; - }; - path: "/two-factor/view-backup-codes"; - }; - sendTwoFactorOTP: { - (inputCtx_0?: ({ - body?: { - trustDevice?: boolean | undefined; - } | undefined; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - status: boolean; - }; - } : { - status: boolean; - }>; - options: { - method: "POST"; - body: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - trustDevice?: boolean | undefined; - }, { - trustDevice?: boolean | undefined; - }>>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/send-otp"; - }; - verifyTwoFactorOTP: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string; - user: { - id: any; - email: any; - emailVerified: any; - name: any; - image: any; - createdAt: any; - updatedAt: any; - }; - }; - } : { - token: string; - user: { - id: any; - email: any; - emailVerified: any; - name: any; - image: any; - createdAt: any; - updatedAt: any; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - token: { - type: string; - description: string; - }; - user: { - type: string; - properties: { - id: { - type: string; - description: string; - }; - email: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - emailVerified: { - type: string; - nullable: boolean; - description: string; - }; - name: { - type: string; - nullable: boolean; - description: string; - }; - image: { - type: string; - format: string; - nullable: boolean; - description: string; - }; - createdAt: { - type: string; - format: string; - description: string; - }; - updatedAt: { - type: string; - format: string; - description: string; - }; - }; - required: string[]; - description: string; - }; - }; - required: string[]; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/verify-otp"; - }; - generateTOTP: { - (inputCtx_0: { - body: { - secret: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - code: string; - }; - } : { - code: string; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - secret: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - secret: string; - }, { - secret: string; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - code: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - SERVER_ONLY: true; - }; - } & { - use: any[]; - }; - path: "/totp/generate"; - }; - getTOTPURI: { - (inputCtx_0: { - body: { - password: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - totpURI: string; - }; - } : { - totpURI: string; - }>; - options: { - method: "POST"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - body: zod.ZodObject<{ - password: zod.ZodString; - }, "strip", zod.ZodTypeAny, { - password: string; - }, { - password: string; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - totpURI: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/get-totp-uri"; - }; - verifyTOTP: { - (inputCtx_0: { - body: { - code: string; - trustDevice?: boolean | undefined; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }; - } : { - token: string; - user: { - id: string; - email: string; - emailVerified: boolean; - name: string; - image: string | null | undefined; - createdAt: Date; - updatedAt: Date; - }; - }>; - options: { - method: "POST"; - body: zod.ZodObject<{ - code: zod.ZodString; - trustDevice: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - code: string; - trustDevice?: boolean | undefined; - }, { - code: string; - trustDevice?: boolean | undefined; - }>; - metadata: { - openapi: { - summary: string; - description: string; - responses: { - 200: { - description: string; - content: { - "application/json": { - schema: { - type: "object"; - properties: { - status: { - type: string; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } & { - use: any[]; - }; - path: "/two-factor/verify-totp"; - }; - }; - options: better_auth_plugins.TwoFactorOptions | undefined; - hooks: { - after: { - matcher(context: better_auth.HookEndpointContext): boolean; - handler: (inputContext: better_call.MiddlewareInputContext) => Promise<{ - twoFactorRedirect: boolean; - } | undefined>; - }[]; - }; - schema: { - user: { - fields: { - twoFactorEnabled: { - type: "boolean"; - required: false; - defaultValue: false; - input: false; - }; - }; - }; - twoFactor: { - fields: { - secret: { - type: "string"; - required: true; - returned: false; - }; - backupCodes: { - type: "string"; - required: true; - returned: false; - }; - userId: { - type: "string"; - required: true; - returned: false; - references: { - model: string; - field: string; - }; - }; - }; - }; - }; - rateLimit: { - pathMatcher(path: string): boolean; - window: number; - max: number; - }[]; - $ERROR_CODES: { - readonly OTP_NOT_ENABLED: "OTP not enabled"; - readonly OTP_HAS_EXPIRED: "OTP has expired"; - readonly TOTP_NOT_ENABLED: "TOTP not enabled"; - readonly TWO_FACTOR_NOT_ENABLED: "Two factor isn't enabled"; - readonly BACKUP_CODES_NOT_ENABLED: "Backup codes aren't enabled"; - readonly INVALID_BACKUP_CODE: "Invalid backup code"; - readonly INVALID_CODE: "Invalid code"; - readonly TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE: "Too many attempts. Please request a new code."; - readonly INVALID_TWO_FACTOR_COOKIE: "Invalid two factor cookie"; - }; - } | { - id: "expo"; - init: (ctx: better_auth.AuthContext) => { - options: { - trustedOrigins: string[]; - }; - }; - onRequest(request: Request, ctx: better_auth.AuthContext): Promise<{ - request: Request; - } | undefined>; - hooks: { - after: { - matcher(context: better_auth.HookEndpointContext): boolean; - handler: (inputContext: better_call.MiddlewareInputContext) => Promise; - }[]; - }; - } | { - id: "custom-session"; - endpoints: { - getSession: { - (inputCtx_0: { - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: { - disableCookieCache?: string | boolean | undefined; - disableRefresh?: boolean | undefined; - } | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - } & { - image: string | null; - handle: string | null; - twoFactorEnabled: boolean | null; - socialLinks: Record | null; - bio: string | null; - website: string | null; - deleted: boolean | null; - }; - session: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }; - invitation: boolean | { - code: string; - createdAt: Date | null; - usedAt: Date | null; - fromUserId: string; - toUserId: string | null; - } | undefined; - role: "user" | "trial"; - } | null; - } : { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined | undefined; - } & { - image: string | null; - handle: string | null; - twoFactorEnabled: boolean | null; - socialLinks: Record | null; - bio: string | null; - website: string | null; - deleted: boolean | null; - }; + method: "POST"; + body: zod1169.ZodObject<{ + plan: zod1169.ZodString; + annual: zod1169.ZodOptional; + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + metadata: zod1169.ZodOptional>; + seats: zod1169.ZodOptional; + successUrl: zod1169.ZodDefault; + cancelUrl: zod1169.ZodDefault; + returnUrl: zod1169.ZodOptional; + disableRedirect: zod1169.ZodDefault; + }, "strip", zod1169.ZodTypeAny, { + plan: string; + successUrl: string; + cancelUrl: string; + disableRedirect: boolean; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + returnUrl?: string | undefined; + }, { + plan: string; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + successUrl?: string | undefined; + cancelUrl?: string | undefined; + returnUrl?: string | undefined; + disableRedirect?: boolean | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ session: { + session: Record & { id: string; createdAt: Date; updatedAt: Date; userId: string; expiresAt: Date; token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; - }; - invitation: boolean | { - code: string; - createdAt: Date | null; - usedAt: Date | null; - fromUserId: string; - toUserId: string | null; - } | undefined; - role: "user" | "trial"; - } | null>; - options: { - method: "GET"; - query: zod.ZodOptional]>>; - disableRefresh: zod.ZodOptional; - }, "strip", zod.ZodTypeAny, { - disableCookieCache?: boolean | undefined; - disableRefresh?: boolean | undefined; - }, { - disableCookieCache?: string | boolean | undefined; - disableRefresh?: boolean | undefined; - }>>; - metadata: { - CUSTOM_SESSION: boolean; - openapi: { - description: string; - responses: { - "200": { - description: string; - content: { - "application/json": { - schema: { - type: "array"; - nullable: boolean; - items: { - $ref: string; - }; - }; - }; - }; - }; - }; - }; - }; - requireHeaders: true; - } & { - use: any[]; - }; - path: "/get-session"; - }; - }; - } | { - id: "customGetProviders"; - endpoints: { - customGetProviders: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: any; - } : any>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-providers"; - }; - }; - } | { - id: "getAccountInfo"; - endpoints: { - getAccountInfo: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null; - } : ({ - id: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - }; - accountId?: undefined; - } | { - id: string; - accountId: string; - provider: string; - profile: { - id: string; - name?: string; - email?: string | null; - image?: string; - emailVerified: boolean; - } | undefined; - })[] | null>; - options: { - method: "GET"; - } & { - use: any[]; - }; - path: "/get-account-info"; - }; - }; - } | { - id: "deleteUserCustom"; - endpoints: { - deleteUserCustom: { - (inputCtx_0: { - body: { - TOTPCode: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: void; - } : void>; - options: { - method: "POST"; - body: zod_v4.ZodObject<{ - TOTPCode: zod_v4.ZodString; - }, zod_v4_core.$strip>; - } & { - use: any[]; - }; - path: "/delete-user-custom"; - }; - }; - } | { - id: "oneTimeToken"; - endpoints: { - generateOneTimeToken: { - (inputCtx_0?: ({ - body?: undefined; - } & { - method?: "GET" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - token: string; - }; - } : { - token: string; - }>; - options: { - method: "GET"; - use: ((inputContext: better_call.MiddlewareInputContext) => Promise<{ - session: { - session: Record & { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; - user: Record & { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - }; - }; - }>)[]; - } & { - use: any[]; - }; - path: "/one-time-token/generate"; - }; - applyOneTimeToken: { - (inputCtx_0: { - body: { - token: string; - }; - } & { - method?: "POST" | undefined; - } & { - query?: Record | undefined; - } & { - params?: Record; - } & { - request?: Request; - } & { - headers?: HeadersInit; - } & { - asResponse?: boolean; - returnHeaders?: boolean; - use?: better_call.Middleware[]; - path?: string; - } & { - asResponse?: AsResponse | undefined; - returnHeaders?: ReturnHeaders | undefined; - }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { - headers: Headers; - response: { - user: { - id: string; - name: string; - email: string; - emailVerified: boolean; - createdAt: Date; - updatedAt: Date; - image?: string | null | undefined; - } & Record; - }; - } : { - user: { + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { id: string; name: string; email: string; @@ -17773,56 +14513,7243 @@ declare const auth: { createdAt: Date; updatedAt: Date; image?: string | null | undefined; - } & Record; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/upgrade"; + }; + readonly cancelSubscriptionCallback: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: never; + } : never>; + options: { + method: "GET"; + query: zod1169.ZodOptional>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + } & { + use: any[]; + }; + path: "/subscription/cancel/callback"; + }; + readonly cancelSubscription: { + (inputCtx_0: { + body: { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + url: string; + redirect: boolean; + }; + } : { + url: string; + redirect: boolean; }>; options: { - method: "POST"; - body: zod.ZodObject<{ - token: zod.ZodString; - }, "strip", zod.ZodTypeAny, { + method: "POST"; + body: zod1169.ZodObject<{ + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + returnUrl: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }, { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; token: string; - }, { - token: string; - }>; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; } & { - use: any[]; + use: any[]; + }; + path: "/subscription/cancel"; + }; + readonly restoreSubscription: { + (inputCtx_0: { + body: { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: Stripe.Response; + } : Stripe.Response>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }, { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/restore"; + }; + readonly listActiveSubscriptions: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: { + referenceId?: string | undefined; + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + limits: Record | undefined; + priceId: string | undefined; + id: string; + plan: string; + stripeCustomerId?: string; + stripeSubscriptionId?: string; + trialStart?: Date; + trialEnd?: Date; + referenceId: string; + status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "past_due" | "paused" | "trialing" | "unpaid"; + periodStart?: Date; + periodEnd?: Date; + cancelAtPeriodEnd?: boolean; + groupId?: string; + seats?: number; + }[]; + } : { + limits: Record | undefined; + priceId: string | undefined; + id: string; + plan: string; + stripeCustomerId?: string; + stripeSubscriptionId?: string; + trialStart?: Date; + trialEnd?: Date; + referenceId: string; + status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "past_due" | "paused" | "trialing" | "unpaid"; + periodStart?: Date; + periodEnd?: Date; + cancelAtPeriodEnd?: boolean; + groupId?: string; + seats?: number; + }[]>; + options: { + method: "GET"; + query: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + referenceId?: string | undefined; + }, { + referenceId?: string | undefined; + }>>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/list"; + }; + readonly subscriptionSuccess: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: better_call38.APIError; + } : better_call38.APIError>; + options: { + method: "GET"; + query: zod1169.ZodOptional>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + } & { + use: any[]; + }; + path: "/subscription/success"; + }; + }; + init(ctx: better_auth246.AuthContext): { + options: { + databaseHooks: { + user: { + create: { + after(user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }, ctx: better_auth246.GenericEndpointContext | undefined): Promise; + }; + }; + }; + }; + }; + schema: { + user: { + fields: { + stripeCustomerId: { + type: "string"; + required: false; + }; + }; + }; + subscription?: { + fields: { + plan: { + type: "string"; + required: true; + }; + referenceId: { + type: "string"; + required: true; + }; + stripeCustomerId: { + type: "string"; + required: false; + }; + stripeSubscriptionId: { + type: "string"; + required: false; + }; + status: { + type: "string"; + defaultValue: string; + }; + periodStart: { + type: "date"; + required: false; + }; + periodEnd: { + type: "date"; + required: false; + }; + cancelAtPeriodEnd: { + type: "boolean"; + required: false; + defaultValue: false; + }; + seats: { + type: "number"; + required: false; + }; + }; + } | undefined; + }; + } | { + id: "open-api"; + endpoints: { + generateOpenAPISchema: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + openapi: string; + info: { + title: string; + description: string; + version: string; + }; + components: { + securitySchemes: { + apiKeyCookie: { + type: string; + in: string; + name: string; + description: string; + }; + bearerAuth: { + type: string; + scheme: string; + description: string; + }; + }; + schemas: {}; + }; + security: { + apiKeyCookie: never[]; + bearerAuth: never[]; + }[]; + servers: { + url: string; + }[]; + tags: { + name: string; + description: string; + }[]; + paths: Record; + }; + } : { + openapi: string; + info: { + title: string; + description: string; + version: string; + }; + components: { + securitySchemes: { + apiKeyCookie: { + type: string; + in: string; + name: string; + description: string; + }; + bearerAuth: { + type: string; + scheme: string; + description: string; + }; + }; + schemas: {}; + }; + security: { + apiKeyCookie: never[]; + bearerAuth: never[]; + }[]; + servers: { + url: string; + }[]; + tags: { + name: string; + description: string; + }[]; + paths: Record; + }>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/open-api/generate-schema"; + }; + openAPIReference: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: Response; + } : Response>; + options: { + method: "GET"; + metadata: { + isAction: boolean; + }; + } & { + use: any[]; + }; + path: "/reference"; + }; + }; + } | { + id: "two-factor"; + endpoints: { + enableTwoFactor: { + (inputCtx_0: { + body: { + password: string; + issuer?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + totpURI: string; + backupCodes: string[]; + }; + } : { + totpURI: string; + backupCodes: string[]; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + issuer: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + password: string; + issuer?: string | undefined; + }, { + password: string; + issuer?: string | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + totpURI: { + type: string; + description: string; + }; + backupCodes: { + type: string; + items: { + type: string; + }; + description: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/enable"; + }; + disableTwoFactor: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/disable"; + }; + verifyBackupCode: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string | undefined; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }; + } : { + token: string | undefined; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + disableSession: zod1169.ZodOptional; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }>; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + nullable: boolean; + description: string; + }; + name: { + type: string; + nullable: boolean; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + twoFactorEnabled: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; + session: { + type: string; + properties: { + token: { + type: string; + description: string; + }; + userId: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + expiresAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/verify-backup-code"; + }; + generateBackupCodes: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + backupCodes: string[]; + }; + } : { + status: boolean; + backupCodes: string[]; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + enum: boolean[]; + }; + backupCodes: { + type: string; + items: { + type: string; + }; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/generate-backup-codes"; + }; + viewBackupCodes: { + (inputCtx_0: { + body: { + userId: string; + }; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + backupCodes: string[]; + }; + } : { + status: boolean; + backupCodes: string[]; + }>; + options: { + method: "GET"; + body: zod1169.ZodObject<{ + userId: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + userId: string; + }, { + userId: string; + }>; + metadata: { + SERVER_ONLY: true; + }; + } & { + use: any[]; + }; + path: "/two-factor/view-backup-codes"; + }; + sendTwoFactorOTP: { + (inputCtx_0?: ({ + body?: { + trustDevice?: boolean | undefined; + } | undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + trustDevice?: boolean | undefined; + }, { + trustDevice?: boolean | undefined; + }>>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/send-otp"; + }; + verifyTwoFactorOTP: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + user: { + id: any; + email: any; + emailVerified: any; + name: any; + image: any; + createdAt: any; + updatedAt: any; + }; + }; + } : { + token: string; + user: { + id: any; + email: any; + emailVerified: any; + name: any; + image: any; + createdAt: any; + updatedAt: any; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + token: { + type: string; + description: string; + }; + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + nullable: boolean; + description: string; + }; + name: { + type: string; + nullable: boolean; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/verify-otp"; + }; + generateTOTP: { + (inputCtx_0: { + body: { + secret: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + code: string; + }; + } : { + code: string; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + secret: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + secret: string; + }, { + secret: string; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + code: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + SERVER_ONLY: true; + }; + } & { + use: any[]; + }; + path: "/totp/generate"; + }; + getTOTPURI: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + totpURI: string; + }; + } : { + totpURI: string; + }>; + options: { + method: "POST"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + totpURI: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/get-totp-uri"; + }; + verifyTOTP: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }; + } : { + token: string; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/verify-totp"; + }; + }; + options: better_auth_plugins332.TwoFactorOptions | undefined; + hooks: { + after: { + matcher(context: better_auth246.HookEndpointContext): boolean; + handler: (inputContext: better_call38.MiddlewareInputContext) => Promise<{ + twoFactorRedirect: boolean; + } | undefined>; + }[]; + }; + schema: { + user: { + fields: { + twoFactorEnabled: { + type: "boolean"; + required: false; + defaultValue: false; + input: false; + }; + }; + }; + twoFactor: { + fields: { + secret: { + type: "string"; + required: true; + returned: false; + }; + backupCodes: { + type: "string"; + required: true; + returned: false; + }; + userId: { + type: "string"; + required: true; + returned: false; + references: { + model: string; + field: string; + }; + }; + }; + }; + }; + rateLimit: { + pathMatcher(path: string): boolean; + window: number; + max: number; + }[]; + $ERROR_CODES: { + readonly OTP_NOT_ENABLED: "OTP not enabled"; + readonly OTP_HAS_EXPIRED: "OTP has expired"; + readonly TOTP_NOT_ENABLED: "TOTP not enabled"; + readonly TWO_FACTOR_NOT_ENABLED: "Two factor isn't enabled"; + readonly BACKUP_CODES_NOT_ENABLED: "Backup codes aren't enabled"; + readonly INVALID_BACKUP_CODE: "Invalid backup code"; + readonly INVALID_CODE: "Invalid code"; + readonly TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE: "Too many attempts. Please request a new code."; + readonly INVALID_TWO_FACTOR_COOKIE: "Invalid two factor cookie"; + }; + } | { + id: "expo"; + init: (ctx: better_auth246.AuthContext) => { + options: { + trustedOrigins: string[]; + }; + }; + onRequest(request: Request, ctx: better_auth246.AuthContext): Promise<{ + request: Request; + } | undefined>; + hooks: { + after: { + matcher(context: better_auth246.HookEndpointContext): boolean; + handler: (inputContext: better_call38.MiddlewareInputContext) => Promise; + }[]; + }; + } | { + id: "custom-session"; + endpoints: { + getSession: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: { + disableCookieCache?: string | boolean | undefined; + disableRefresh?: boolean | undefined; + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + } & { + image: string | null; + handle: string | null; + twoFactorEnabled: boolean | null; + socialLinks: Record | null; + bio: string | null; + website: string | null; + role: string | null; + roleEndAt: Date | null; + deleted: boolean | null; + }; + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }; + role: UserRole.PreProTrial | UserRole.PrePro | UserRole.Free | UserRole.Trial; + roleEndAt: Date | null | undefined; + } | null; + } : { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + } & { + image: string | null; + handle: string | null; + twoFactorEnabled: boolean | null; + socialLinks: Record | null; + bio: string | null; + website: string | null; + role: string | null; + roleEndAt: Date | null; + deleted: boolean | null; + }; + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }; + role: UserRole.PreProTrial | UserRole.PrePro | UserRole.Free | UserRole.Trial; + roleEndAt: Date | null | undefined; + } | null>; + options: { + method: "GET"; + query: zod1169.ZodOptional]>>; + disableRefresh: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + disableCookieCache?: boolean | undefined; + disableRefresh?: boolean | undefined; + }, { + disableCookieCache?: string | boolean | undefined; + disableRefresh?: boolean | undefined; + }>>; + metadata: { + CUSTOM_SESSION: boolean; + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "array"; + nullable: boolean; + items: { + $ref: string; + }; + }; + }; + }; + }; + }; + }; + }; + requireHeaders: true; + } & { + use: any[]; + }; + path: "/get-session"; + }; + }; + } | { + id: "customGetProviders"; + endpoints: { + customGetProviders: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: any; + } : any>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-providers"; + }; + }; + } | { + id: "getAccountInfo"; + endpoints: { + getAccountInfo: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null; + } : ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-account-info"; + }; + }; + } | { + id: "deleteUserCustom"; + endpoints: { + deleteUserCustom: { + (inputCtx_0: { + body: { + TOTPCode: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: void; + } : void>; + options: { + method: "POST"; + body: zod_v441.ZodObject<{ + TOTPCode: zod_v441.ZodString; + }, zod_v4_core42.$strip>; + } & { + use: any[]; + }; + path: "/delete-user-custom"; + }; + }; + } | { + id: "oneTimeToken"; + endpoints: { + generateOneTimeToken: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + }; + } : { + token: string; + }>; + options: { + method: "GET"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + } & { + use: any[]; + }; + path: "/one-time-token/generate"; + }; + applyOneTimeToken: { + (inputCtx_0: { + body: { + token: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }; + } : { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + token: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + token: string; + }, { + token: string; + }>; + } & { + use: any[]; }; path: "/one-time-token/apply"; + }; }; + })[]; + }>> & { + name?: string; + image?: string; }; - })[]; + }; + openapi: { + description: string; + requestBody: { + content: { + "application/json": { + schema: { + type: "object"; + properties: { + name: { + type: string; + description: string; + }; + image: { + type: string; + description: string; + }; + }; + }; + }; + }; + }; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/update-user"; }; - $context: Promise; - $Infer: { - Session: { - session: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined | undefined; - userAgent?: string | null | undefined | undefined; + deleteUser: { + (inputCtx_0: { + body: { + password?: string | undefined; + token?: string | undefined; + callbackURL?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + success: boolean; + message: string; + }; + } : { + success: boolean; + message: string; + }>; + options: { + method: "POST"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; }; - user: { - id: string; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + body: zod1169.ZodObject<{ + callbackURL: zod1169.ZodOptional; + password: zod1169.ZodOptional; + token: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + password?: string | undefined; + token?: string | undefined; + callbackURL?: string | undefined; + }, { + password?: string | undefined; + token?: string | undefined; + callbackURL?: string | undefined; + }>; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + success: { + type: string; + description: string; + }; + message: { + type: string; + enum: string[]; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/delete-user"; + }; + forgetPasswordCallback: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query: { + callbackURL: string; + }; + } & { + params: { + token: string; + }; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: never; + } : never>; + options: { + method: "GET"; + query: zod1169.ZodObject<{ + callbackURL: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + callbackURL: string; + }, { + callbackURL: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + token: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/reset-password/:token"; + }; + listSessions: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: better_auth246.Prettify<{ + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }>[]; + } : better_auth246.Prettify<{ + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }>[]>; + options: { + method: "GET"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + requireHeaders: true; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "array"; + items: { + $ref: string; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/list-sessions"; + }; + revokeSession: { + (inputCtx_0: { + body: { + token: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + token: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + token: string; + }, { + token: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + requireHeaders: true; + metadata: { + openapi: { + description: string; + requestBody: { + content: { + "application/json": { + schema: { + type: "object"; + properties: { + token: { + type: string; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/revoke-session"; + }; + revokeSessions: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + requireHeaders: true; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/revoke-sessions"; + }; + revokeOtherSessions: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + requireHeaders: true; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/revoke-other-sessions"; + }; + linkSocialAccount: { + (inputCtx_0: { + body: { + provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; + scopes?: string[] | undefined; + callbackURL?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + url: string; + redirect: boolean; + }; + } : { + url: string; + redirect: boolean; + }>; + options: { + method: "POST"; + requireHeaders: true; + body: zod1169.ZodObject<{ + callbackURL: zod1169.ZodOptional; + provider: zod1169.ZodEnum<["github", ...("apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom")[]]>; + scopes: zod1169.ZodOptional>; + }, "strip", zod1169.ZodTypeAny, { + provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; + scopes?: string[] | undefined; + callbackURL?: string | undefined; + }, { + provider: "apple" | "discord" | "facebook" | "github" | "google" | "microsoft" | "spotify" | "twitch" | "twitter" | "dropbox" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "vk" | "kick" | "zoom"; + scopes?: string[] | undefined; + callbackURL?: string | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + url: { + type: string; + description: string; + }; + redirect: { + type: string; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/link-social"; + }; + listUserAccounts: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + id: string; + provider: string; + createdAt: Date; + updatedAt: Date; + accountId: string; + scopes: string[]; + }[]; + } : { + id: string; + provider: string; + createdAt: Date; + updatedAt: Date; + accountId: string; + scopes: string[]; + }[]>; + options: { + method: "GET"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "array"; + items: { + type: string; + properties: { + id: { + type: string; + }; + provider: { + type: string; + }; + createdAt: { + type: string; + format: string; + }; + updatedAt: { + type: string; + format: string; + }; + }; + accountId: { + type: string; + }; + scopes: { + type: string; + items: { + type: string; + }; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/list-accounts"; + }; + deleteUserCallback: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query: { + token: string; + callbackURL?: string | undefined; + }; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + success: boolean; + message: string; + }; + } : { + success: boolean; + message: string; + }>; + options: { + method: "GET"; + query: zod1169.ZodObject<{ + token: zod1169.ZodString; + callbackURL: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + token: string; + callbackURL?: string | undefined; + }, { + token: string; + callbackURL?: string | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + success: { + type: string; + description: string; + }; + message: { + type: string; + enum: string[]; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/delete-user/callback"; + }; + unlinkAccount: { + (inputCtx_0: { + body: { + providerId: string; + accountId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + providerId: zod1169.ZodString; + accountId: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + providerId: string; + accountId?: string | undefined; + }, { + providerId: string; + accountId?: string | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/unlink-account"; + }; + refreshToken: { + (inputCtx_0: { + body: { + providerId: string; + accountId?: string | undefined; + userId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: better_auth246.OAuth2Tokens; + } : better_auth246.OAuth2Tokens>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + providerId: zod1169.ZodString; + accountId: zod1169.ZodOptional; + userId: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + providerId: string; + accountId?: string | undefined; + userId?: string | undefined; + }, { + providerId: string; + accountId?: string | undefined; + userId?: string | undefined; + }>; + metadata: { + openapi: { + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + tokenType: { + type: string; + }; + idToken: { + type: string; + }; + accessToken: { + type: string; + }; + refreshToken: { + type: string; + }; + accessTokenExpiresAt: { + type: string; + format: string; + }; + refreshTokenExpiresAt: { + type: string; + format: string; + }; + }; + }; + }; + }; + }; + 400: { + description: string; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/refresh-token"; + }; + getAccessToken: { + (inputCtx_0: { + body: { + providerId: string; + accountId?: string | undefined; + userId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + accessToken: string | undefined; + accessTokenExpiresAt: Date | undefined; + scopes: string[]; + idToken: string | undefined; + }; + } : { + accessToken: string | undefined; + accessTokenExpiresAt: Date | undefined; + scopes: string[]; + idToken: string | undefined; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + providerId: zod1169.ZodString; + accountId: zod1169.ZodOptional; + userId: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + providerId: string; + accountId?: string | undefined; + userId?: string | undefined; + }, { + providerId: string; + accountId?: string | undefined; + userId?: string | undefined; + }>; + metadata: { + openapi: { + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + tokenType: { + type: string; + }; + idToken: { + type: string; + }; + accessToken: { + type: string; + }; + refreshToken: { + type: string; + }; + accessTokenExpiresAt: { + type: string; + format: string; + }; + refreshTokenExpiresAt: { + type: string; + format: string; + }; + }; + }; + }; + }; + }; + 400: { + description: string; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/get-access-token"; + }; + } & { + generateOpenAPISchema: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + openapi: string; + info: { + title: string; + description: string; + version: string; + }; + components: { + securitySchemes: { + apiKeyCookie: { + type: string; + in: string; name: string; + description: string; + }; + bearerAuth: { + type: string; + scheme: string; + description: string; + }; + }; + schemas: {}; + }; + security: { + apiKeyCookie: never[]; + bearerAuth: never[]; + }[]; + servers: { + url: string; + }[]; + tags: { + name: string; + description: string; + }[]; + paths: Record; + }; + } : { + openapi: string; + info: { + title: string; + description: string; + version: string; + }; + components: { + securitySchemes: { + apiKeyCookie: { + type: string; + in: string; + name: string; + description: string; + }; + bearerAuth: { + type: string; + scheme: string; + description: string; + }; + }; + schemas: {}; + }; + security: { + apiKeyCookie: never[]; + bearerAuth: never[]; + }[]; + servers: { + url: string; + }[]; + tags: { + name: string; + description: string; + }[]; + paths: Record; + }>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/open-api/generate-schema"; + }; + openAPIReference: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: Response; + } : Response>; + options: { + method: "GET"; + metadata: { + isAction: boolean; + }; + } & { + use: any[]; + }; + path: "/reference"; + }; + } & { + customGetProviders: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: any; + } : any>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-providers"; + }; + } & { + getAccountInfo: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null; + } : ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-account-info"; + }; + } & { + deleteUserCustom: { + (inputCtx_0: { + body: { + TOTPCode: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: void; + } : void>; + options: { + method: "POST"; + body: zod_v441.ZodObject<{ + TOTPCode: zod_v441.ZodString; + }, zod_v4_core42.$strip>; + } & { + use: any[]; + }; + path: "/delete-user-custom"; + }; + } & { + generateOneTimeToken: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + }; + } : { + token: string; + }>; + options: { + method: "GET"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + } & { + use: any[]; + }; + path: "/one-time-token/generate"; + }; + applyOneTimeToken: { + (inputCtx_0: { + body: { + token: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }; + } : { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + token: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + token: string; + }, { + token: string; + }>; + } & { + use: any[]; + }; + path: "/one-time-token/apply"; + }; + } & { + stripeWebhook: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + success: boolean; + }; + } : { + success: boolean; + }>; + options: { + method: "POST"; + metadata: { + isAction: boolean; + }; + cloneRequest: true; + } & { + use: any[]; + }; + path: "/stripe/webhook"; + }; + } & { + readonly upgradeSubscription: { + (inputCtx_0: { + body: { + plan: string; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + successUrl?: string | undefined; + cancelUrl?: string | undefined; + returnUrl?: string | undefined; + disableRedirect?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + url: string; + redirect: boolean; + } | { + redirect: boolean; + id: string; + object: "checkout.session"; + adaptive_pricing: Stripe.Checkout.Session.AdaptivePricing | null; + after_expiration: Stripe.Checkout.Session.AfterExpiration | null; + allow_promotion_codes: boolean | null; + amount_subtotal: number | null; + amount_total: number | null; + automatic_tax: Stripe.Checkout.Session.AutomaticTax; + billing_address_collection: Stripe.Checkout.Session.BillingAddressCollection | null; + cancel_url: string | null; + client_reference_id: string | null; + client_secret: string | null; + collected_information: Stripe.Checkout.Session.CollectedInformation | null; + consent: Stripe.Checkout.Session.Consent | null; + consent_collection: Stripe.Checkout.Session.ConsentCollection | null; + created: number; + currency: string | null; + currency_conversion: Stripe.Checkout.Session.CurrencyConversion | null; + custom_fields: Array; + custom_text: Stripe.Checkout.Session.CustomText; + customer: string | Stripe.Customer | Stripe.DeletedCustomer | null; + customer_creation: Stripe.Checkout.Session.CustomerCreation | null; + customer_details: Stripe.Checkout.Session.CustomerDetails | null; + customer_email: string | null; + discounts: Array | null; + expires_at: number; + invoice: string | Stripe.Invoice | null; + invoice_creation: Stripe.Checkout.Session.InvoiceCreation | null; + line_items?: Stripe.ApiList; + livemode: boolean; + locale: Stripe.Checkout.Session.Locale | null; + metadata: Stripe.Metadata | null; + mode: Stripe.Checkout.Session.Mode; + optional_items?: Array | null; + payment_intent: string | Stripe.PaymentIntent | null; + payment_link: string | Stripe.PaymentLink | null; + payment_method_collection: Stripe.Checkout.Session.PaymentMethodCollection | null; + payment_method_configuration_details: Stripe.Checkout.Session.PaymentMethodConfigurationDetails | null; + payment_method_options: Stripe.Checkout.Session.PaymentMethodOptions | null; + payment_method_types: Array; + payment_status: Stripe.Checkout.Session.PaymentStatus; + permissions: Stripe.Checkout.Session.Permissions | null; + phone_number_collection?: Stripe.Checkout.Session.PhoneNumberCollection; + presentment_details?: Stripe.Checkout.Session.PresentmentDetails; + recovered_from: string | null; + redirect_on_completion?: Stripe.Checkout.Session.RedirectOnCompletion; + return_url?: string; + saved_payment_method_options: Stripe.Checkout.Session.SavedPaymentMethodOptions | null; + setup_intent: string | Stripe.SetupIntent | null; + shipping_address_collection: Stripe.Checkout.Session.ShippingAddressCollection | null; + shipping_cost: Stripe.Checkout.Session.ShippingCost | null; + shipping_options: Array; + status: Stripe.Checkout.Session.Status | null; + submit_type: Stripe.Checkout.Session.SubmitType | null; + subscription: string | Stripe.Subscription | null; + success_url: string | null; + tax_id_collection?: Stripe.Checkout.Session.TaxIdCollection; + total_details: Stripe.Checkout.Session.TotalDetails | null; + ui_mode: Stripe.Checkout.Session.UiMode | null; + url: string | null; + lastResponse: { + headers: { + [key: string]: string; + }; + requestId: string; + statusCode: number; + apiVersion?: string; + idempotencyKey?: string; + stripeAccount?: string; + }; + }; + } : { + url: string; + redirect: boolean; + } | { + redirect: boolean; + id: string; + object: "checkout.session"; + adaptive_pricing: Stripe.Checkout.Session.AdaptivePricing | null; + after_expiration: Stripe.Checkout.Session.AfterExpiration | null; + allow_promotion_codes: boolean | null; + amount_subtotal: number | null; + amount_total: number | null; + automatic_tax: Stripe.Checkout.Session.AutomaticTax; + billing_address_collection: Stripe.Checkout.Session.BillingAddressCollection | null; + cancel_url: string | null; + client_reference_id: string | null; + client_secret: string | null; + collected_information: Stripe.Checkout.Session.CollectedInformation | null; + consent: Stripe.Checkout.Session.Consent | null; + consent_collection: Stripe.Checkout.Session.ConsentCollection | null; + created: number; + currency: string | null; + currency_conversion: Stripe.Checkout.Session.CurrencyConversion | null; + custom_fields: Array; + custom_text: Stripe.Checkout.Session.CustomText; + customer: string | Stripe.Customer | Stripe.DeletedCustomer | null; + customer_creation: Stripe.Checkout.Session.CustomerCreation | null; + customer_details: Stripe.Checkout.Session.CustomerDetails | null; + customer_email: string | null; + discounts: Array | null; + expires_at: number; + invoice: string | Stripe.Invoice | null; + invoice_creation: Stripe.Checkout.Session.InvoiceCreation | null; + line_items?: Stripe.ApiList; + livemode: boolean; + locale: Stripe.Checkout.Session.Locale | null; + metadata: Stripe.Metadata | null; + mode: Stripe.Checkout.Session.Mode; + optional_items?: Array | null; + payment_intent: string | Stripe.PaymentIntent | null; + payment_link: string | Stripe.PaymentLink | null; + payment_method_collection: Stripe.Checkout.Session.PaymentMethodCollection | null; + payment_method_configuration_details: Stripe.Checkout.Session.PaymentMethodConfigurationDetails | null; + payment_method_options: Stripe.Checkout.Session.PaymentMethodOptions | null; + payment_method_types: Array; + payment_status: Stripe.Checkout.Session.PaymentStatus; + permissions: Stripe.Checkout.Session.Permissions | null; + phone_number_collection?: Stripe.Checkout.Session.PhoneNumberCollection; + presentment_details?: Stripe.Checkout.Session.PresentmentDetails; + recovered_from: string | null; + redirect_on_completion?: Stripe.Checkout.Session.RedirectOnCompletion; + return_url?: string; + saved_payment_method_options: Stripe.Checkout.Session.SavedPaymentMethodOptions | null; + setup_intent: string | Stripe.SetupIntent | null; + shipping_address_collection: Stripe.Checkout.Session.ShippingAddressCollection | null; + shipping_cost: Stripe.Checkout.Session.ShippingCost | null; + shipping_options: Array; + status: Stripe.Checkout.Session.Status | null; + submit_type: Stripe.Checkout.Session.SubmitType | null; + subscription: string | Stripe.Subscription | null; + success_url: string | null; + tax_id_collection?: Stripe.Checkout.Session.TaxIdCollection; + total_details: Stripe.Checkout.Session.TotalDetails | null; + ui_mode: Stripe.Checkout.Session.UiMode | null; + url: string | null; + lastResponse: { + headers: { + [key: string]: string; + }; + requestId: string; + statusCode: number; + apiVersion?: string; + idempotencyKey?: string; + stripeAccount?: string; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + plan: zod1169.ZodString; + annual: zod1169.ZodOptional; + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + metadata: zod1169.ZodOptional>; + seats: zod1169.ZodOptional; + successUrl: zod1169.ZodDefault; + cancelUrl: zod1169.ZodDefault; + returnUrl: zod1169.ZodOptional; + disableRedirect: zod1169.ZodDefault; + }, "strip", zod1169.ZodTypeAny, { + plan: string; + successUrl: string; + cancelUrl: string; + disableRedirect: boolean; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + returnUrl?: string | undefined; + }, { + plan: string; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + successUrl?: string | undefined; + cancelUrl?: string | undefined; + returnUrl?: string | undefined; + disableRedirect?: boolean | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/upgrade"; + }; + readonly cancelSubscriptionCallback: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: never; + } : never>; + options: { + method: "GET"; + query: zod1169.ZodOptional>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + } & { + use: any[]; + }; + path: "/subscription/cancel/callback"; + }; + readonly cancelSubscription: { + (inputCtx_0: { + body: { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + url: string; + redirect: boolean; + }; + } : { + url: string; + redirect: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + returnUrl: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }, { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/cancel"; + }; + readonly restoreSubscription: { + (inputCtx_0: { + body: { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: Stripe.Response; + } : Stripe.Response>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }, { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/restore"; + }; + readonly listActiveSubscriptions: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: { + referenceId?: string | undefined; + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + limits: Record | undefined; + priceId: string | undefined; + id: string; + plan: string; + stripeCustomerId?: string; + stripeSubscriptionId?: string; + trialStart?: Date; + trialEnd?: Date; + referenceId: string; + status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "past_due" | "paused" | "trialing" | "unpaid"; + periodStart?: Date; + periodEnd?: Date; + cancelAtPeriodEnd?: boolean; + groupId?: string; + seats?: number; + }[]; + } : { + limits: Record | undefined; + priceId: string | undefined; + id: string; + plan: string; + stripeCustomerId?: string; + stripeSubscriptionId?: string; + trialStart?: Date; + trialEnd?: Date; + referenceId: string; + status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "past_due" | "paused" | "trialing" | "unpaid"; + periodStart?: Date; + periodEnd?: Date; + cancelAtPeriodEnd?: boolean; + groupId?: string; + seats?: number; + }[]>; + options: { + method: "GET"; + query: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + referenceId?: string | undefined; + }, { + referenceId?: string | undefined; + }>>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/list"; + }; + readonly subscriptionSuccess: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: better_call38.APIError; + } : better_call38.APIError>; + options: { + method: "GET"; + query: zod1169.ZodOptional>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + } & { + use: any[]; + }; + path: "/subscription/success"; + }; + } & { + enableTwoFactor: { + (inputCtx_0: { + body: { + password: string; + issuer?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + totpURI: string; + backupCodes: string[]; + }; + } : { + totpURI: string; + backupCodes: string[]; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + issuer: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + password: string; + issuer?: string | undefined; + }, { + password: string; + issuer?: string | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + totpURI: { + type: string; + description: string; + }; + backupCodes: { + type: string; + items: { + type: string; + }; + description: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/enable"; + }; + disableTwoFactor: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/disable"; + }; + verifyBackupCode: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string | undefined; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }; + } : { + token: string | undefined; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + disableSession: zod1169.ZodOptional; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }>; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + nullable: boolean; + description: string; + }; + name: { + type: string; + nullable: boolean; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + twoFactorEnabled: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; + session: { + type: string; + properties: { + token: { + type: string; + description: string; + }; + userId: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + expiresAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/verify-backup-code"; + }; + generateBackupCodes: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + backupCodes: string[]; + }; + } : { + status: boolean; + backupCodes: string[]; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + enum: boolean[]; + }; + backupCodes: { + type: string; + items: { + type: string; + }; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/generate-backup-codes"; + }; + viewBackupCodes: { + (inputCtx_0: { + body: { + userId: string; + }; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + backupCodes: string[]; + }; + } : { + status: boolean; + backupCodes: string[]; + }>; + options: { + method: "GET"; + body: zod1169.ZodObject<{ + userId: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + userId: string; + }, { + userId: string; + }>; + metadata: { + SERVER_ONLY: true; + }; + } & { + use: any[]; + }; + path: "/two-factor/view-backup-codes"; + }; + sendTwoFactorOTP: { + (inputCtx_0?: ({ + body?: { + trustDevice?: boolean | undefined; + } | undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + trustDevice?: boolean | undefined; + }, { + trustDevice?: boolean | undefined; + }>>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/send-otp"; + }; + verifyTwoFactorOTP: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + user: { + id: any; + email: any; + emailVerified: any; + name: any; + image: any; + createdAt: any; + updatedAt: any; + }; + }; + } : { + token: string; + user: { + id: any; + email: any; + emailVerified: any; + name: any; + image: any; + createdAt: any; + updatedAt: any; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + token: { + type: string; + description: string; + }; + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + nullable: boolean; + description: string; + }; + name: { + type: string; + nullable: boolean; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/verify-otp"; + }; + generateTOTP: { + (inputCtx_0: { + body: { + secret: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + code: string; + }; + } : { + code: string; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + secret: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + secret: string; + }, { + secret: string; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + code: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + SERVER_ONLY: true; + }; + } & { + use: any[]; + }; + path: "/totp/generate"; + }; + getTOTPURI: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + totpURI: string; + }; + } : { + totpURI: string; + }>; + options: { + method: "POST"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + totpURI: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/get-totp-uri"; + }; + verifyTOTP: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }; + } : { + token: string; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/verify-totp"; + }; + } & { + getSession: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: { + disableCookieCache?: string | boolean | undefined; + disableRefresh?: boolean | undefined; + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + } & { + image: string | null; + handle: string | null; + twoFactorEnabled: boolean | null; + socialLinks: Record | null; + bio: string | null; + website: string | null; + role: string | null; + roleEndAt: Date | null; + deleted: boolean | null; + }; + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }; + role: UserRole.PreProTrial | UserRole.PrePro | UserRole.Free | UserRole.Trial; + roleEndAt: Date | null | undefined; + } | null; + } : { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + } & { + image: string | null; + handle: string | null; + twoFactorEnabled: boolean | null; + socialLinks: Record | null; + bio: string | null; + website: string | null; + role: string | null; + roleEndAt: Date | null; + deleted: boolean | null; + }; + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }; + role: UserRole.PreProTrial | UserRole.PrePro | UserRole.Free | UserRole.Trial; + roleEndAt: Date | null | undefined; + } | null>; + options: { + method: "GET"; + query: zod1169.ZodOptional]>>; + disableRefresh: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + disableCookieCache?: boolean | undefined; + disableRefresh?: boolean | undefined; + }, { + disableCookieCache?: string | boolean | undefined; + disableRefresh?: boolean | undefined; + }>>; + metadata: { + CUSTOM_SESSION: boolean; + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "array"; + nullable: boolean; + items: { + $ref: string; + }; + }; + }; + }; + }; + }; + }; + }; + requireHeaders: true; + } & { + use: any[]; + }; + path: "/get-session"; + }; + }>; + options: { + appName: string; + database: (options: BetterAuthOptions) => better_auth246.Adapter; + databaseHooks: { + user: { + create: { + after: (newUser: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }, context: better_auth246.GenericEndpointContext | undefined) => Promise; + }; + }; + }; + advanced: { + database: { + generateId: false; + }; + defaultCookieAttributes: { + sameSite: "none"; + secure: true; + }; + }; + session: { + updateAge: number; + expiresIn: number; + }; + basePath: string; + trustedOrigins: string[]; + user: { + additionalFields: { + handle: { + type: "string"; + }; + socialLinks: { + type: "string"; + transform: { + input: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => string; + output: (value: string | number | boolean | string[] | Date | number[] | null | undefined) => any; + }; + }; + bio: { + type: "string"; + }; + website: { + type: "string"; + }; + deleted: { + type: "boolean"; + }; + role: { + type: "string"; + }; + roleEndAt: { + type: "date"; + }; + }; + changeEmail: { + enabled: true; + sendChangeEmailVerification: ({ + user, + url + }: { + user: better_auth246.User; + newEmail: string; + url: string; + token: string; + }) => Promise; + }; + }; + account: { + accountLinking: { + enabled: true; + trustedProviders: ("github" | "apple" | "google")[]; + allowDifferentEmails: true; + }; + }; + socialProviders: { + google: { + clientId: string; + clientSecret: string; + }; + github: { + clientId: string; + clientSecret: string; + }; + apple: { + enabled: boolean; + clientId: string; + clientSecret: string; + appBundleIdentifier: string | undefined; + }; + }; + emailAndPassword: { + enabled: true; + sendResetPassword({ + user, + url + }: { + user: better_auth246.User; + url: string; + token: string; + }): Promise; + }; + emailVerification: { + sendOnSignUp: true; + sendVerificationEmail({ + user, + url + }: { + user: better_auth246.User; + url: string; + token: string; + }): Promise; + }; + plugins: ({ + id: "stripe"; + endpoints: { + stripeWebhook: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + success: boolean; + }; + } : { + success: boolean; + }>; + options: { + method: "POST"; + metadata: { + isAction: boolean; + }; + cloneRequest: true; + } & { + use: any[]; + }; + path: "/stripe/webhook"; + }; + } & { + readonly upgradeSubscription: { + (inputCtx_0: { + body: { + plan: string; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + successUrl?: string | undefined; + cancelUrl?: string | undefined; + returnUrl?: string | undefined; + disableRedirect?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + url: string; + redirect: boolean; + } | { + redirect: boolean; + id: string; + object: "checkout.session"; + adaptive_pricing: Stripe.Checkout.Session.AdaptivePricing | null; + after_expiration: Stripe.Checkout.Session.AfterExpiration | null; + allow_promotion_codes: boolean | null; + amount_subtotal: number | null; + amount_total: number | null; + automatic_tax: Stripe.Checkout.Session.AutomaticTax; + billing_address_collection: Stripe.Checkout.Session.BillingAddressCollection | null; + cancel_url: string | null; + client_reference_id: string | null; + client_secret: string | null; + collected_information: Stripe.Checkout.Session.CollectedInformation | null; + consent: Stripe.Checkout.Session.Consent | null; + consent_collection: Stripe.Checkout.Session.ConsentCollection | null; + created: number; + currency: string | null; + currency_conversion: Stripe.Checkout.Session.CurrencyConversion | null; + custom_fields: Array; + custom_text: Stripe.Checkout.Session.CustomText; + customer: string | Stripe.Customer | Stripe.DeletedCustomer | null; + customer_creation: Stripe.Checkout.Session.CustomerCreation | null; + customer_details: Stripe.Checkout.Session.CustomerDetails | null; + customer_email: string | null; + discounts: Array | null; + expires_at: number; + invoice: string | Stripe.Invoice | null; + invoice_creation: Stripe.Checkout.Session.InvoiceCreation | null; + line_items?: Stripe.ApiList; + livemode: boolean; + locale: Stripe.Checkout.Session.Locale | null; + metadata: Stripe.Metadata | null; + mode: Stripe.Checkout.Session.Mode; + optional_items?: Array | null; + payment_intent: string | Stripe.PaymentIntent | null; + payment_link: string | Stripe.PaymentLink | null; + payment_method_collection: Stripe.Checkout.Session.PaymentMethodCollection | null; + payment_method_configuration_details: Stripe.Checkout.Session.PaymentMethodConfigurationDetails | null; + payment_method_options: Stripe.Checkout.Session.PaymentMethodOptions | null; + payment_method_types: Array; + payment_status: Stripe.Checkout.Session.PaymentStatus; + permissions: Stripe.Checkout.Session.Permissions | null; + phone_number_collection?: Stripe.Checkout.Session.PhoneNumberCollection; + presentment_details?: Stripe.Checkout.Session.PresentmentDetails; + recovered_from: string | null; + redirect_on_completion?: Stripe.Checkout.Session.RedirectOnCompletion; + return_url?: string; + saved_payment_method_options: Stripe.Checkout.Session.SavedPaymentMethodOptions | null; + setup_intent: string | Stripe.SetupIntent | null; + shipping_address_collection: Stripe.Checkout.Session.ShippingAddressCollection | null; + shipping_cost: Stripe.Checkout.Session.ShippingCost | null; + shipping_options: Array; + status: Stripe.Checkout.Session.Status | null; + submit_type: Stripe.Checkout.Session.SubmitType | null; + subscription: string | Stripe.Subscription | null; + success_url: string | null; + tax_id_collection?: Stripe.Checkout.Session.TaxIdCollection; + total_details: Stripe.Checkout.Session.TotalDetails | null; + ui_mode: Stripe.Checkout.Session.UiMode | null; + url: string | null; + lastResponse: { + headers: { + [key: string]: string; + }; + requestId: string; + statusCode: number; + apiVersion?: string; + idempotencyKey?: string; + stripeAccount?: string; + }; + }; + } : { + url: string; + redirect: boolean; + } | { + redirect: boolean; + id: string; + object: "checkout.session"; + adaptive_pricing: Stripe.Checkout.Session.AdaptivePricing | null; + after_expiration: Stripe.Checkout.Session.AfterExpiration | null; + allow_promotion_codes: boolean | null; + amount_subtotal: number | null; + amount_total: number | null; + automatic_tax: Stripe.Checkout.Session.AutomaticTax; + billing_address_collection: Stripe.Checkout.Session.BillingAddressCollection | null; + cancel_url: string | null; + client_reference_id: string | null; + client_secret: string | null; + collected_information: Stripe.Checkout.Session.CollectedInformation | null; + consent: Stripe.Checkout.Session.Consent | null; + consent_collection: Stripe.Checkout.Session.ConsentCollection | null; + created: number; + currency: string | null; + currency_conversion: Stripe.Checkout.Session.CurrencyConversion | null; + custom_fields: Array; + custom_text: Stripe.Checkout.Session.CustomText; + customer: string | Stripe.Customer | Stripe.DeletedCustomer | null; + customer_creation: Stripe.Checkout.Session.CustomerCreation | null; + customer_details: Stripe.Checkout.Session.CustomerDetails | null; + customer_email: string | null; + discounts: Array | null; + expires_at: number; + invoice: string | Stripe.Invoice | null; + invoice_creation: Stripe.Checkout.Session.InvoiceCreation | null; + line_items?: Stripe.ApiList; + livemode: boolean; + locale: Stripe.Checkout.Session.Locale | null; + metadata: Stripe.Metadata | null; + mode: Stripe.Checkout.Session.Mode; + optional_items?: Array | null; + payment_intent: string | Stripe.PaymentIntent | null; + payment_link: string | Stripe.PaymentLink | null; + payment_method_collection: Stripe.Checkout.Session.PaymentMethodCollection | null; + payment_method_configuration_details: Stripe.Checkout.Session.PaymentMethodConfigurationDetails | null; + payment_method_options: Stripe.Checkout.Session.PaymentMethodOptions | null; + payment_method_types: Array; + payment_status: Stripe.Checkout.Session.PaymentStatus; + permissions: Stripe.Checkout.Session.Permissions | null; + phone_number_collection?: Stripe.Checkout.Session.PhoneNumberCollection; + presentment_details?: Stripe.Checkout.Session.PresentmentDetails; + recovered_from: string | null; + redirect_on_completion?: Stripe.Checkout.Session.RedirectOnCompletion; + return_url?: string; + saved_payment_method_options: Stripe.Checkout.Session.SavedPaymentMethodOptions | null; + setup_intent: string | Stripe.SetupIntent | null; + shipping_address_collection: Stripe.Checkout.Session.ShippingAddressCollection | null; + shipping_cost: Stripe.Checkout.Session.ShippingCost | null; + shipping_options: Array; + status: Stripe.Checkout.Session.Status | null; + submit_type: Stripe.Checkout.Session.SubmitType | null; + subscription: string | Stripe.Subscription | null; + success_url: string | null; + tax_id_collection?: Stripe.Checkout.Session.TaxIdCollection; + total_details: Stripe.Checkout.Session.TotalDetails | null; + ui_mode: Stripe.Checkout.Session.UiMode | null; + url: string | null; + lastResponse: { + headers: { + [key: string]: string; + }; + requestId: string; + statusCode: number; + apiVersion?: string; + idempotencyKey?: string; + stripeAccount?: string; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + plan: zod1169.ZodString; + annual: zod1169.ZodOptional; + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + metadata: zod1169.ZodOptional>; + seats: zod1169.ZodOptional; + successUrl: zod1169.ZodDefault; + cancelUrl: zod1169.ZodDefault; + returnUrl: zod1169.ZodOptional; + disableRedirect: zod1169.ZodDefault; + }, "strip", zod1169.ZodTypeAny, { + plan: string; + successUrl: string; + cancelUrl: string; + disableRedirect: boolean; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + returnUrl?: string | undefined; + }, { + plan: string; + metadata?: Record | undefined; + annual?: boolean | undefined; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + seats?: number | undefined; + successUrl?: string | undefined; + cancelUrl?: string | undefined; + returnUrl?: string | undefined; + disableRedirect?: boolean | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/upgrade"; + }; + readonly cancelSubscriptionCallback: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: never; + } : never>; + options: { + method: "GET"; + query: zod1169.ZodOptional>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + } & { + use: any[]; + }; + path: "/subscription/cancel/callback"; + }; + readonly cancelSubscription: { + (inputCtx_0: { + body: { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + url: string; + redirect: boolean; + }; + } : { + url: string; + redirect: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + returnUrl: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }, { + returnUrl: string; + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/cancel"; + }; + readonly restoreSubscription: { + (inputCtx_0: { + body: { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: Stripe.Response; + } : Stripe.Response>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + referenceId: zod1169.ZodOptional; + subscriptionId: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }, { + referenceId?: string | undefined; + subscriptionId?: string | undefined; + }>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/restore"; + }; + readonly listActiveSubscriptions: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: { + referenceId?: string | undefined; + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + limits: Record | undefined; + priceId: string | undefined; + id: string; + plan: string; + stripeCustomerId?: string; + stripeSubscriptionId?: string; + trialStart?: Date; + trialEnd?: Date; + referenceId: string; + status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "past_due" | "paused" | "trialing" | "unpaid"; + periodStart?: Date; + periodEnd?: Date; + cancelAtPeriodEnd?: boolean; + groupId?: string; + seats?: number; + }[]; + } : { + limits: Record | undefined; + priceId: string | undefined; + id: string; + plan: string; + stripeCustomerId?: string; + stripeSubscriptionId?: string; + trialStart?: Date; + trialEnd?: Date; + referenceId: string; + status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "past_due" | "paused" | "trialing" | "unpaid"; + periodStart?: Date; + periodEnd?: Date; + cancelAtPeriodEnd?: boolean; + groupId?: string; + seats?: number; + }[]>; + options: { + method: "GET"; + query: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + referenceId?: string | undefined; + }, { + referenceId?: string | undefined; + }>>; + use: (((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>) | ((inputContext: better_call38.MiddlewareInputContext) => Promise))[]; + } & { + use: any[]; + }; + path: "/subscription/list"; + }; + readonly subscriptionSuccess: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: better_call38.APIError; + } : better_call38.APIError>; + options: { + method: "GET"; + query: zod1169.ZodOptional>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise)[]; + } & { + use: any[]; + }; + path: "/subscription/success"; + }; + }; + init(ctx: better_auth246.AuthContext): { + options: { + databaseHooks: { + user: { + create: { + after(user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }, ctx: better_auth246.GenericEndpointContext | undefined): Promise; + }; + }; + }; + }; + }; + schema: { + user: { + fields: { + stripeCustomerId: { + type: "string"; + required: false; + }; + }; + }; + subscription?: { + fields: { + plan: { + type: "string"; + required: true; + }; + referenceId: { + type: "string"; + required: true; + }; + stripeCustomerId: { + type: "string"; + required: false; + }; + stripeSubscriptionId: { + type: "string"; + required: false; + }; + status: { + type: "string"; + defaultValue: string; + }; + periodStart: { + type: "date"; + required: false; + }; + periodEnd: { + type: "date"; + required: false; + }; + cancelAtPeriodEnd: { + type: "boolean"; + required: false; + defaultValue: false; + }; + seats: { + type: "number"; + required: false; + }; + }; + } | undefined; + }; + } | { + id: "open-api"; + endpoints: { + generateOpenAPISchema: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + openapi: string; + info: { + title: string; + description: string; + version: string; + }; + components: { + securitySchemes: { + apiKeyCookie: { + type: string; + in: string; + name: string; + description: string; + }; + bearerAuth: { + type: string; + scheme: string; + description: string; + }; + }; + schemas: {}; + }; + security: { + apiKeyCookie: never[]; + bearerAuth: never[]; + }[]; + servers: { + url: string; + }[]; + tags: { + name: string; + description: string; + }[]; + paths: Record; + }; + } : { + openapi: string; + info: { + title: string; + description: string; + version: string; + }; + components: { + securitySchemes: { + apiKeyCookie: { + type: string; + in: string; + name: string; + description: string; + }; + bearerAuth: { + type: string; + scheme: string; + description: string; + }; + }; + schemas: {}; + }; + security: { + apiKeyCookie: never[]; + bearerAuth: never[]; + }[]; + servers: { + url: string; + }[]; + tags: { + name: string; + description: string; + }[]; + paths: Record; + }>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/open-api/generate-schema"; + }; + openAPIReference: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: Response; + } : Response>; + options: { + method: "GET"; + metadata: { + isAction: boolean; + }; + } & { + use: any[]; + }; + path: "/reference"; + }; + }; + } | { + id: "two-factor"; + endpoints: { + enableTwoFactor: { + (inputCtx_0: { + body: { + password: string; + issuer?: string | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + totpURI: string; + backupCodes: string[]; + }; + } : { + totpURI: string; + backupCodes: string[]; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + issuer: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + password: string; + issuer?: string | undefined; + }, { + password: string; + issuer?: string | undefined; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + totpURI: { + type: string; + description: string; + }; + backupCodes: { + type: string; + items: { + type: string; + }; + description: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/enable"; + }; + disableTwoFactor: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/disable"; + }; + verifyBackupCode: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string | undefined; + user: { + id: string; email: string; emailVerified: boolean; + name: string; + image: string | null | undefined; createdAt: Date; updatedAt: Date; - image?: string | null | undefined | undefined; - handle: string; - deleted: boolean; - bio: string; - website: string; - socialLinks: string; - twoFactorEnabled: boolean | null | undefined; + }; }; + } : { + token: string | undefined; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + disableSession: zod1169.ZodOptional; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + disableSession?: boolean | undefined; + }>; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + nullable: boolean; + description: string; + }; + name: { + type: string; + nullable: boolean; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + twoFactorEnabled: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; + session: { + type: string; + properties: { + token: { + type: string; + description: string; + }; + userId: { + type: string; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + expiresAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/verify-backup-code"; }; - }; - $ERROR_CODES: { + generateBackupCodes: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + backupCodes: string[]; + }; + } : { + status: boolean; + backupCodes: string[]; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + metadata: { + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + description: string; + enum: boolean[]; + }; + backupCodes: { + type: string; + items: { + type: string; + }; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/generate-backup-codes"; + }; + viewBackupCodes: { + (inputCtx_0: { + body: { + userId: string; + }; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + backupCodes: string[]; + }; + } : { + status: boolean; + backupCodes: string[]; + }>; + options: { + method: "GET"; + body: zod1169.ZodObject<{ + userId: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + userId: string; + }, { + userId: string; + }>; + metadata: { + SERVER_ONLY: true; + }; + } & { + use: any[]; + }; + path: "/two-factor/view-backup-codes"; + }; + sendTwoFactorOTP: { + (inputCtx_0?: ({ + body?: { + trustDevice?: boolean | undefined; + } | undefined; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + status: boolean; + }; + } : { + status: boolean; + }>; + options: { + method: "POST"; + body: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + trustDevice?: boolean | undefined; + }, { + trustDevice?: boolean | undefined; + }>>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/send-otp"; + }; + verifyTwoFactorOTP: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + user: { + id: any; + email: any; + emailVerified: any; + name: any; + image: any; + createdAt: any; + updatedAt: any; + }; + }; + } : { + token: string; + user: { + id: any; + email: any; + emailVerified: any; + name: any; + image: any; + createdAt: any; + updatedAt: any; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + token: { + type: string; + description: string; + }; + user: { + type: string; + properties: { + id: { + type: string; + description: string; + }; + email: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + emailVerified: { + type: string; + nullable: boolean; + description: string; + }; + name: { + type: string; + nullable: boolean; + description: string; + }; + image: { + type: string; + format: string; + nullable: boolean; + description: string; + }; + createdAt: { + type: string; + format: string; + description: string; + }; + updatedAt: { + type: string; + format: string; + description: string; + }; + }; + required: string[]; + description: string; + }; + }; + required: string[]; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/verify-otp"; + }; + generateTOTP: { + (inputCtx_0: { + body: { + secret: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + code: string; + }; + } : { + code: string; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + secret: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + secret: string; + }, { + secret: string; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + code: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + SERVER_ONLY: true; + }; + } & { + use: any[]; + }; + path: "/totp/generate"; + }; + getTOTPURI: { + (inputCtx_0: { + body: { + password: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + totpURI: string; + }; + } : { + totpURI: string; + }>; + options: { + method: "POST"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + body: zod1169.ZodObject<{ + password: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + password: string; + }, { + password: string; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + totpURI: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/get-totp-uri"; + }; + verifyTOTP: { + (inputCtx_0: { + body: { + code: string; + trustDevice?: boolean | undefined; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }; + } : { + token: string; + user: { + id: string; + email: string; + emailVerified: boolean; + name: string; + image: string | null | undefined; + createdAt: Date; + updatedAt: Date; + }; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + code: zod1169.ZodString; + trustDevice: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + code: string; + trustDevice?: boolean | undefined; + }, { + code: string; + trustDevice?: boolean | undefined; + }>; + metadata: { + openapi: { + summary: string; + description: string; + responses: { + 200: { + description: string; + content: { + "application/json": { + schema: { + type: "object"; + properties: { + status: { + type: string; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } & { + use: any[]; + }; + path: "/two-factor/verify-totp"; + }; + }; + options: better_auth_plugins332.TwoFactorOptions | undefined; + hooks: { + after: { + matcher(context: better_auth246.HookEndpointContext): boolean; + handler: (inputContext: better_call38.MiddlewareInputContext) => Promise<{ + twoFactorRedirect: boolean; + } | undefined>; + }[]; + }; + schema: { + user: { + fields: { + twoFactorEnabled: { + type: "boolean"; + required: false; + defaultValue: false; + input: false; + }; + }; + }; + twoFactor: { + fields: { + secret: { + type: "string"; + required: true; + returned: false; + }; + backupCodes: { + type: "string"; + required: true; + returned: false; + }; + userId: { + type: "string"; + required: true; + returned: false; + references: { + model: string; + field: string; + }; + }; + }; + }; + }; + rateLimit: { + pathMatcher(path: string): boolean; + window: number; + max: number; + }[]; + $ERROR_CODES: { readonly OTP_NOT_ENABLED: "OTP not enabled"; readonly OTP_HAS_EXPIRED: "OTP has expired"; readonly TOTP_NOT_ENABLED: "TOTP not enabled"; @@ -17832,3596 +21759,4166 @@ declare const auth: { readonly INVALID_CODE: "Invalid code"; readonly TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE: "Too many attempts. Please request a new code."; readonly INVALID_TWO_FACTOR_COOKIE: "Invalid two factor cookie"; - } & { - USER_NOT_FOUND: string; - FAILED_TO_CREATE_USER: string; - FAILED_TO_CREATE_SESSION: string; - FAILED_TO_UPDATE_USER: string; - FAILED_TO_GET_SESSION: string; - INVALID_PASSWORD: string; - INVALID_EMAIL: string; - INVALID_EMAIL_OR_PASSWORD: string; - SOCIAL_ACCOUNT_ALREADY_LINKED: string; - PROVIDER_NOT_FOUND: string; - INVALID_TOKEN: string; - ID_TOKEN_NOT_SUPPORTED: string; - FAILED_TO_GET_USER_INFO: string; - USER_EMAIL_NOT_FOUND: string; - EMAIL_NOT_VERIFIED: string; - PASSWORD_TOO_SHORT: string; - PASSWORD_TOO_LONG: string; - USER_ALREADY_EXISTS: string; - EMAIL_CAN_NOT_BE_UPDATED: string; - CREDENTIAL_ACCOUNT_NOT_FOUND: string; - SESSION_EXPIRED: string; - FAILED_TO_UNLINK_LAST_ACCOUNT: string; - ACCOUNT_NOT_FOUND: string; + }; + } | { + id: "expo"; + init: (ctx: better_auth246.AuthContext) => { + options: { + trustedOrigins: string[]; + }; + }; + onRequest(request: Request, ctx: better_auth246.AuthContext): Promise<{ + request: Request; + } | undefined>; + hooks: { + after: { + matcher(context: better_auth246.HookEndpointContext): boolean; + handler: (inputContext: better_call38.MiddlewareInputContext) => Promise; + }[]; + }; + } | { + id: "custom-session"; + endpoints: { + getSession: { + (inputCtx_0: { + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: { + disableCookieCache?: string | boolean | undefined; + disableRefresh?: boolean | undefined; + } | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + } & { + image: string | null; + handle: string | null; + twoFactorEnabled: boolean | null; + socialLinks: Record | null; + bio: string | null; + website: string | null; + role: string | null; + roleEndAt: Date | null; + deleted: boolean | null; + }; + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }; + role: UserRole.PreProTrial | UserRole.PrePro | UserRole.Free | UserRole.Trial; + roleEndAt: Date | null | undefined; + } | null; + } : { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + } & { + image: string | null; + handle: string | null; + twoFactorEnabled: boolean | null; + socialLinks: Record | null; + bio: string | null; + website: string | null; + role: string | null; + roleEndAt: Date | null; + deleted: boolean | null; + }; + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }; + role: UserRole.PreProTrial | UserRole.PrePro | UserRole.Free | UserRole.Trial; + roleEndAt: Date | null | undefined; + } | null>; + options: { + method: "GET"; + query: zod1169.ZodOptional]>>; + disableRefresh: zod1169.ZodOptional; + }, "strip", zod1169.ZodTypeAny, { + disableCookieCache?: boolean | undefined; + disableRefresh?: boolean | undefined; + }, { + disableCookieCache?: string | boolean | undefined; + disableRefresh?: boolean | undefined; + }>>; + metadata: { + CUSTOM_SESSION: boolean; + openapi: { + description: string; + responses: { + "200": { + description: string; + content: { + "application/json": { + schema: { + type: "array"; + nullable: boolean; + items: { + $ref: string; + }; + }; + }; + }; + }; + }; + }; + }; + requireHeaders: true; + } & { + use: any[]; + }; + path: "/get-session"; + }; + }; + } | { + id: "customGetProviders"; + endpoints: { + customGetProviders: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: any; + } : any>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-providers"; + }; + }; + } | { + id: "getAccountInfo"; + endpoints: { + getAccountInfo: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null; + } : ({ + id: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + }; + accountId?: undefined; + } | { + id: string; + accountId: string; + provider: string; + profile: { + id: string; + name?: string; + email?: string | null; + image?: string; + emailVerified: boolean; + } | undefined; + })[] | null>; + options: { + method: "GET"; + } & { + use: any[]; + }; + path: "/get-account-info"; + }; + }; + } | { + id: "deleteUserCustom"; + endpoints: { + deleteUserCustom: { + (inputCtx_0: { + body: { + TOTPCode: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: void; + } : void>; + options: { + method: "POST"; + body: zod_v441.ZodObject<{ + TOTPCode: zod_v441.ZodString; + }, zod_v4_core42.$strip>; + } & { + use: any[]; + }; + path: "/delete-user-custom"; + }; + }; + } | { + id: "oneTimeToken"; + endpoints: { + generateOneTimeToken: { + (inputCtx_0?: ({ + body?: undefined; + } & { + method?: "GET" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + token: string; + }; + } : { + token: string; + }>; + options: { + method: "GET"; + use: ((inputContext: better_call38.MiddlewareInputContext) => Promise<{ + session: { + session: Record & { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; + user: Record & { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + }; + }; + }>)[]; + } & { + use: any[]; + }; + path: "/one-time-token/generate"; + }; + applyOneTimeToken: { + (inputCtx_0: { + body: { + token: string; + }; + } & { + method?: "POST" | undefined; + } & { + query?: Record | undefined; + } & { + params?: Record; + } & { + request?: Request; + } & { + headers?: HeadersInit; + } & { + asResponse?: boolean; + returnHeaders?: boolean; + use?: better_call38.Middleware[]; + path?: string; + } & { + asResponse?: AsResponse | undefined; + returnHeaders?: ReturnHeaders | undefined; + }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { + headers: Headers; + response: { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }; + } : { + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined; + } & Record; + }>; + options: { + method: "POST"; + body: zod1169.ZodObject<{ + token: zod1169.ZodString; + }, "strip", zod1169.ZodTypeAny, { + token: string; + }, { + token: string; + }>; + } & { + use: any[]; + }; + path: "/one-time-token/apply"; + }; + }; + })[]; + }; + $context: Promise; + $Infer: { + Session: { + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined | undefined; + userAgent?: string | null | undefined | undefined; + }; + user: { + id: string; + name: string; + email: string; + emailVerified: boolean; + createdAt: Date; + updatedAt: Date; + image?: string | null | undefined | undefined; + handle: string; + deleted: boolean; + bio: string; + website: string; + socialLinks: string; + role: string; + roleEndAt: Date; + stripeCustomerId?: string | null | undefined; + twoFactorEnabled: boolean | null | undefined; + }; }; + }; + $ERROR_CODES: { + readonly OTP_NOT_ENABLED: "OTP not enabled"; + readonly OTP_HAS_EXPIRED: "OTP has expired"; + readonly TOTP_NOT_ENABLED: "TOTP not enabled"; + readonly TWO_FACTOR_NOT_ENABLED: "Two factor isn't enabled"; + readonly BACKUP_CODES_NOT_ENABLED: "Backup codes aren't enabled"; + readonly INVALID_BACKUP_CODE: "Invalid backup code"; + readonly INVALID_CODE: "Invalid code"; + readonly TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE: "Too many attempts. Please request a new code."; + readonly INVALID_TWO_FACTOR_COOKIE: "Invalid two factor cookie"; + } & { + USER_NOT_FOUND: string; + FAILED_TO_CREATE_USER: string; + FAILED_TO_CREATE_SESSION: string; + FAILED_TO_UPDATE_USER: string; + FAILED_TO_GET_SESSION: string; + INVALID_PASSWORD: string; + INVALID_EMAIL: string; + INVALID_EMAIL_OR_PASSWORD: string; + SOCIAL_ACCOUNT_ALREADY_LINKED: string; + PROVIDER_NOT_FOUND: string; + INVALID_TOKEN: string; + ID_TOKEN_NOT_SUPPORTED: string; + FAILED_TO_GET_USER_INFO: string; + USER_EMAIL_NOT_FOUND: string; + EMAIL_NOT_VERIFIED: string; + PASSWORD_TOO_SHORT: string; + PASSWORD_TOO_LONG: string; + USER_ALREADY_EXISTS: string; + EMAIL_CAN_NOT_BE_UPDATED: string; + CREDENTIAL_ACCOUNT_NOT_FOUND: string; + SESSION_EXPIRED: string; + FAILED_TO_UNLINK_LAST_ACCOUNT: string; + ACCOUNT_NOT_FOUND: string; + }; }; - +/** + * Check if the session is verified + * @param requestCookie - The cookie from the request + * @param responseSession - The session from the response + * @returns true if the session is verified, false otherwise + */ +//#endregion +//#region src/types/auth.d.ts type AuthSession = Awaited>; type AuthUser = NonNullable["user"]; - -declare const _routes: hono_hono_base.HonoBase | hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: {}; - output: { - code: 0; - data?: { - createdAt: string | null; - updatedAt: string | null; - userId: string; - rules?: { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; - }[] | null | undefined; - } | undefined; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $put: { - input: { - json: { - rules?: { - name: string; - condition: { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | { - value: string; - field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[][]; - result: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - blockRules?: { - value: string | number; - field: "title" | "content" | "all" | "author" | "url" | "order"; - operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; - }[] | undefined; - webhooks?: string[] | undefined; - }; - }[] | null | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/actions"> | hono_types.MergeSchemaPath<{ - "/translation": { - $get: { - input: { - query: { - id: string; - language: "en" | "ja" | "zh-CN" | "zh-TW"; - fields: string; - part?: string | undefined; - }; - }; - output: { - code: 0; - data?: { - description?: string | undefined; - title?: string | undefined; - content?: string | undefined; - readabilityContent?: string | undefined; - } | undefined; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/summary": { - $get: { - input: { - query: { - id: string; - language?: "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - target?: "content" | "readabilityContent" | undefined; - }; - }; - output: { - code: 0; - data?: string | undefined; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/daily": { - $get: { - input: { - query: { - view: "0" | "1"; - startDate: string; - }; - }; - output: { - code: 0; - data: string; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/chat": { - $post: { - input: { - json: { - messages: any[]; - context?: { - mainEntryId?: string | undefined; - referEntryIds?: string[] | undefined; - referFeedIds?: string[] | undefined; - selectedText?: string | undefined; - } | undefined; - }; - }; - output: Response; - outputFormat: "json"; - status: hono_utils_http_status.StatusCode; - }; - }; -}, "/ai"> | hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: { - query: { - view?: string | undefined; - }; - }; - output: { - data?: string[] | undefined; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $delete: { - input: { - json: { - feedIdList: string[]; - deleteSubscriptions: boolean; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $patch: { - input: { - json: { - category: string; - feedIdList: string[]; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/categories"> | hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: { - query: { - entryId: string; - }; - }; - output: { - code: 0; - data: boolean; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $post: { - input: { - json: { - entryId: string; - view?: number | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $delete: { - input: { - json: { - entryId: string; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/collections"> | hono_types.MergeSchemaPath<{ - "/": { - $post: { - input: { - json: { - keyword: string; - target?: "feeds" | "lists" | undefined; - }; - }; - output: { - data: { - entries?: { - id: string; - description: string | null; - title: string | null; - content: string | null; - author: string | null; - url: string | null; - language: string | null; - feedId: string; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - insertedAt: string; - publishedAt: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; - }[] | undefined; - updatesPerWeek?: number | undefined; - subscriptionCount?: number | undefined; - feed?: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - } | undefined; - list?: { - id: string; - createdAt: string | null; - updatedAt: string | null; - type: "list"; - view: number; - feedIds: string[]; - fee: number; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - feeds?: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }[] | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - } | undefined; - docs?: string | undefined; - analytics?: { - view: number | null; - feedId: string; - updatesPerWeek: number | null; - subscriptionCount: number | null; - latestEntryPublishedAt: string | null; - } | undefined; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/rsshub": { - $get: { - input: { - query: { - category?: string | undefined; - categories?: string | undefined; - namespace?: string | undefined; - lang?: string | undefined; - }; - }; - output: { - data: { - [x: string]: { - name: string; - description: string; - url: string; - lang: string; - routes: { - [x: string]: { - path: string; - name: string; - example: string; - description: string; - categories: string[]; - parameters: { - [x: string]: string; - }; - maintainers: string[]; - location: string; - view?: number | undefined; - }; - }; - }; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/rsshub/route": { - $get: { - input: { - query: { - route: string; - }; - }; - output: { - data: { - name: string; - description: string; - url: string; - prefix: string; - route?: any; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/rsshub-analytics": { - $get: { - input: { - query: { - lang?: string | undefined; - }; - }; - output: { - data: { - [x: string]: { - subscriptionCount: number; - topFeeds: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }[]; - }; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/discover"> | hono_types.MergeSchemaPath & hono_types.MergeSchemaPath<{ - "/:id": { - $get: { - input: { - param: { - id?: any; - }; - } & { - query: { - size?: number | undefined; - page?: number | undefined; - }; - }; - output: { - code: 0; - data: { - users: { - [x: string]: { - id: string; - name: string | null; - image: string | null; - handle: string | null; - }; - }; - total: number; - entryReadHistories: { - userIds: string[]; - readCount: number; - } | null; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/read-histories"> & hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: { - query: { - insertedAfter: number; - view?: number | undefined; - feedId?: string | undefined; - read?: string | undefined; - feedIdList?: string[] | undefined; - }; - }; - output: { - code: 0; - data: { - has_new: boolean; - entry_id?: string | undefined; - lastest_at?: string | undefined; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/check-new"> & { - "/": { - $post: { - input: { - json: { - view?: number | undefined; - feedId?: string | undefined; - read?: boolean | undefined; - listId?: string | undefined; - limit?: number | undefined; - feedIdList?: string[] | undefined; - publishedAfter?: string | undefined; - publishedBefore?: string | undefined; - collected?: boolean | undefined; - isCollection?: boolean | undefined; - isArchived?: boolean | undefined; - withContent?: boolean | undefined; - excludePrivate?: boolean | undefined; - }; - }; - output: { - code: 0; - data?: { - entries: { - id: string; - description: string | null; - title: string | null; - author: string | null; - url: string | null; - language: string | null; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - insertedAt: string; - publishedAt: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; - }; - feeds: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }; - read: boolean | null; - view?: number | undefined; - from?: string[] | undefined; - collections?: { - createdAt: string; - } | undefined; - settings?: { - disabled?: boolean | undefined; - translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; - summary?: boolean | undefined; - readability?: boolean | undefined; - sourceContent?: boolean | undefined; - silence?: boolean | undefined; - block?: boolean | undefined; - star?: boolean | undefined; - newEntryNotification?: boolean | undefined; - rewriteRules?: { - from: string; - to: string; - }[] | undefined; - webhooks?: string[] | undefined; - } | undefined; - }[] | undefined; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $get: { - input: { - query: { - id: string; - }; - }; - output: { - code: 0; - data?: { - entries: { - id: string; - description: string | null; - title: string | null; - content: string | null; - author: string | null; - url: string | null; - language: string | null; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - insertedAt: string; - publishedAt: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; - }; - feeds: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }; - } | undefined; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/readability": { - $get: { - input: { - query: { - id: string; - }; - }; - output: { - code: 0; - data: { - content?: string | null | undefined; - } | null; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/stream": { - $post: { - input: { - json: { - ids: string[]; - }; - }; - output: {}; - outputFormat: "text"; - status: 200; - }; - }; -} & { - "/preview": { - $get: { - input: { - query: { - id: string; - }; - }; - output: { - code: 0; - data: { - id: string; - description: string | null; - title: string | null; - content: string | null; - author: string | null; - url: string | null; - language: string | null; - feedId: string; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - insertedAt: string; - publishedAt: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/entries"> | hono_types.MergeSchemaPath & { - "/": { - $get: { - input: { - query: { - id?: string | undefined; - url?: string | undefined; - entriesLimit?: number | undefined; - }; - }; - output: { - code: 0; - data: { - entries: { - description: string | null; - title: string | null; - author: string | null; - url: string | null; - language: string | null; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - publishedAt: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; - }[]; - subscriptionCount: number; - feed: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }; - readCount: number; - analytics?: { - view: number | null; - feedId: string; - updatesPerWeek: number | null; - subscriptionCount: number | null; - latestEntryPublishedAt: string | null; - } | undefined; - subscription?: { - createdAt: string; - userId: string; - title: string | null; - view: number; - category: string | null; - feedId: string; - isPrivate: boolean; - } | undefined; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/refresh": { - $get: { - input: { - query: { - id: string; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/reset": { - $get: { - input: { - query: { - id: string; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/analytics": { - $post: { - input: { - json: { - id: string[]; - }; - }; - output: { - code: 0; - data: { - analytics: { - [x: string]: { - view: number | null; - feedId: string; - updatesPerWeek: number | null; - subscriptionCount: number | null; - latestEntryPublishedAt: string | null; - }; - }; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/feeds"> | hono_types.MergeSchemaPath<{ - "/new": { - $post: { - input: { - json: { - TOTPCode?: string | undefined; - }; - }; - output: { - code: 0; - data: string; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/use": { - $post: { - input: { - json: { - code: string; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $get: { - input: {}; - output: { - code: 0; - data: { - code: string; - createdAt: string | null; - users: { - id: string; - name: string | null; - image: string | null; - } | null; - usedAt: string | null; - toUserId: string | null; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/limitation": { - $get: { - input: {}; - output: { - code: 0; - data: number; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/invitations"> | hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: { - query: { - id?: string | undefined; - handle?: string | undefined; - }; - }; - output: { - code: 0; - data: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - twoFactorEnabled: boolean | null; - isAnonymous: boolean | null; - suspended: boolean | null; - deleted: boolean | null; - bio: string | null; - website: string | null; - socialLinks: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - } | null; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/batch": { - $post: { - input: { - json: { - ids: string[]; - }; - }; - output: { - code: 0; - data: { - [x: string]: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - twoFactorEnabled: boolean | null; - isAnonymous: boolean | null; - suspended: boolean | null; - deleted: boolean | null; - bio: string | null; - website: string | null; - socialLinks: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - } | null; - }; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/profiles"> | hono_types.MergeSchemaPath<{ - "/": { - $post: { - input: { - json: { - entryIds: string[]; - isInbox?: boolean | undefined; - readHistories?: string[] | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $delete: { - input: { - json: { - entryId: string; - isInbox?: boolean | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $get: { - input: { - query: { - view?: string | undefined; - }; - }; - output: { - code: 0; - data: { - [x: string]: number; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/all": { - $post: { - input: { - json: { - view?: number | undefined; - feedId?: string | undefined; - listId?: string | undefined; - feedIdList?: string[] | undefined; - inboxId?: string | undefined; - excludePrivate?: boolean | undefined; - startTime?: number | undefined; - endTime?: number | undefined; - insertedBefore?: number | undefined; - }; - }; - output: { - code: 0; - data: { - read: { - [x: string]: number; - }; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/total-count": { - $get: { - input: {}; - output: { - code: 0; - data: { - count: number; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/reads"> | hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: { - query: { - tab?: "general" | "appearance" | "integration" | undefined; - }; - }; - output: { - code: 0; - settings: { - [x: string]: any; - }; - updated: { - [x: string]: string; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/:tab": { - $patch: { - input: { - param: { - tab: string; - }; - } & { - json: Record; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/settings"> | hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: { - query: { - userId?: string | undefined; - view?: string | undefined; - }; - }; - output: { - code: 0; - data: ({ - createdAt: string; - userId: string; - title: string | null; - view: number; - category: string | null; - feeds: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }; - feedId: string; - isPrivate: boolean; - boost: { - boosters: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - twoFactorEnabled: boolean | null; - isAnonymous: boolean | null; - suspended: boolean | null; - deleted: boolean | null; - bio: string | null; - website: string | null; - socialLinks: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - } | null; - }[]; - }; - } | { - createdAt: string; - userId: string; - title: string | null; - view: number; - feedId: string; - isPrivate: boolean; - lists: { - id: string; - createdAt: string | null; - updatedAt: string | null; - type: "list"; - view: number; - feedIds: string[]; - fee: number; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - feeds?: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }[] | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - }; - listId: string; - category?: string | undefined; - } | { - createdAt: string; - userId: string; - title: string | null; - view: number; - category: string | null; - feedId: string; - isPrivate: boolean; - inboxes: { - id: string; - type: "inbox"; - secret: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - }; - inboxId: string; - })[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $post: { - input: { - json: { - view: number; - title?: string | null | undefined; - category?: string | null | undefined; - url?: string | undefined; - isPrivate?: boolean | undefined; - listId?: string | undefined; - TOTPCode?: string | undefined; - }; - }; - output: { - code: 0; - feed: { - id: string; - image: string | null; - description: string | null; - title: string | null; - url: string; - siteUrl: string | null; - checkedAt: string; - lastModifiedHeader: string | null; - etagHeader: string | null; - ttl: number | null; - errorMessage: string | null; - errorAt: string | null; - ownerUserId: string | null; - language: string | null; - migrateTo: string | null; - rsshubRoute: string | null; - rsshubNamespace: string | null; - nsfw: boolean | null; - } | null; - list: { - id: string; - image: string | null; - createdAt: string | null; - updatedAt: string | null; - description: string | null; - title: string; - view: number; - ownerUserId: string; - language: string | null; - feedIds: string[]; - fee: number; - } | null; - unread: { - [x: string]: number; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $delete: { - input: { - json: { - url?: string | undefined; - feedId?: string | undefined; - listId?: string | undefined; - feedIdList?: string[] | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $patch: { - input: { - json: { - view: number; - title?: string | null | undefined; - category?: string | null | undefined; - feedId?: string | undefined; - isPrivate?: boolean | undefined; - listId?: string | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/export": { - $get: { - input: { - query: { - RSSHubURL?: string | undefined; - folderMode?: "view" | "category" | undefined; - }; - }; - output: {}; - outputFormat: string; - status: 200; - }; - }; -} & { - "/import": { - $post: { - input: {}; - output: { - code: 0; - data: { - successfulItems: { - id?: string | undefined; - title?: string | null | undefined; - url?: string | undefined; - }[]; - conflictItems: { - id: string; - url: string; - title?: string | null | undefined; - }[]; - parsedErrorItems: { - url: string; - id?: string | undefined; - title?: string | null | undefined; - }[]; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/batch": { - $patch: { - input: { - json: { - view: number; - feedIds: string[]; - title?: string | null | undefined; - category?: string | null | undefined; - isPrivate?: boolean | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/parse-opml": { - $post: { - input: {}; - output: { - code: 0; - data: { - subscriptions: { - userId: string; - title: string | null; - view: number; - category: string | null; - url: string; - }[]; - remaining: number; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/subscriptions"> | hono_types.MergeSchemaPath & hono_types.MergeSchemaPath<{ - "/tip": { - $post: { - input: { - json: { - amount: string; - entryId: string; - TOTPCode?: string | undefined; - }; - }; - output: { - code: 0; - data: { - transactionHash: string; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $get: { - input: { - query: { - type?: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop" | undefined; - hash?: string | undefined; - fromUserId?: string | undefined; - toUserId?: string | undefined; - toFeedId?: string | undefined; - fromOrToUserId?: string | undefined; - createdAfter?: string | undefined; - }; - }; - output: { - code: 0; - data: { - createdAt: string; - type: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop"; - hash: string; - powerToken: string; - fromUserId: string | null; - toUserId: string | null; - toFeedId: string | null; - toListId: string | null; - toEntryId: string | null; - toRSSHubId: string | null; - tax: string; - comment: string | null; - fromUser?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - twoFactorEnabled: boolean | null; - isAnonymous: boolean | null; - suspended: boolean | null; - deleted: boolean | null; - bio: string | null; - website: string | null; - socialLinks: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - } | null; - } | null | undefined; - toUser?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - twoFactorEnabled: boolean | null; - isAnonymous: boolean | null; - suspended: boolean | null; - deleted: boolean | null; - bio: string | null; - website: string | null; - socialLinks: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - } | null; - } | null | undefined; - toFeed?: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - } | null | undefined; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/claim_daily": { - $post: { - input: {}; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/withdraw": { - $post: { - input: { - json: { - amount: string; - address: string; - TOTPCode?: string | undefined; - toRss3?: boolean | undefined; - }; - }; - output: { - code: 0; - data: { - transactionHash: string; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/claim-check": { - $get: { - input: {}; - output: { - code: 0; - data: boolean; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/transactions"> & { - "/": { - $get: { - input: {}; - output: { - code: 0; - data: { - createdAt: string; - userId: string; - powerToken: string; - addressIndex: number; - address: string | null; - dailyPowerToken: string; - cashablePowerToken: string; - level: { - rank: number | null; - level: number | null; - prevActivityPoints: number | null; - activityPoints: number | null; - } | null; - todayDailyPower: string; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $post: { - input: {}; - output: { - code: 0; - data: string; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/refresh": { - $post: { - input: {}; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/ranking": { - $get: { - input: {}; - output: { - code: 0; - data: { - user: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - twoFactorEnabled: boolean | null; - isAnonymous: boolean | null; - suspended: boolean | null; - deleted: boolean | null; - bio: string | null; - website: string | null; - socialLinks: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - } | null; - }; - userId: string; - rank: number | null; - powerToken: string; - address: string; - level: number | null; - prevActivityPoints: number | null; - activityPoints: number | null; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/power-price": { - $get: { - input: {}; - output: { - code: 0; - data: { - rss3: number; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/wallets"> | hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: { - query: { - listId: string; - noExtras?: boolean | undefined; - }; - }; - output: { - code: 0; - data: { - entries: { - id: string; - description: string | null; - title: string | null; - content: string | null; - author: string | null; - url: string | null; - feeds: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }; - language: string | null; - feedId: string; - guid: string; - categories: string[] | null; - authorUrl: string | null; - authorAvatar: string | null; - insertedAt: string; - publishedAt: string; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; - }[]; - subscriptionCount: number; - list: { - id: string; - createdAt: string | null; - updatedAt: string | null; - type: "list"; - view: number; - feedIds: string[]; - fee: number; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - feeds?: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }[] | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - }; - readCount: number; - feedCount: number; - analytics?: { - subscriptionCount: number | null; - listId: string; - } | undefined; - subscription?: { - createdAt: string; - userId: string; - title: string | null; - view: number; - isPrivate: boolean; - listId: string; - } | undefined; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $post: { - input: { - json: { - title: string; - view: number; - fee: number; - image?: string | null | undefined; - description?: string | null | undefined; - }; - }; - output: { - code: 0; - data: { - id: string; - createdAt: string | null; - updatedAt: string | null; - type: "list"; - view: number; - feedIds: string[]; - fee: number; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - feeds?: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }[] | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $delete: { - input: { - json: { - listId: string; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $patch: { - input: { - json: { - title: string; - view: number; - fee: number; - listId: string; - image?: string | null | undefined; - description?: string | null | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/list": { - $get: { - input: { - query: { - userId?: string | undefined; - }; - }; - output: { - code: 0; - data: { - id: string; - createdAt: string | null; - updatedAt: string | null; - type: "list"; - view: number; - feedIds: string[]; - fee: number; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - feeds?: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }[] | undefined; - ownerUserId?: string | null | undefined; - subscriptionCount?: number | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - purchaseAmount?: number | undefined; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/feeds": { - $post: { - input: { - json: { - feedId: string; - listId: string; - } | { - feedIds: string[]; - listId: string; - }; - }; - output: { - code: 0; - data: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/feeds": { - $delete: { - input: { - json: { - feedId: string; - listId: string; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/lists"> | hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: {}; - output: {}; - outputFormat: "text"; - status: 200; - }; - }; -} & { - "/pools": { - $get: { - input: {}; - output: { - code: 0; - data: { - totalCount: number; - idleCount: number; - waitingCount: number; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/metrics"> | hono_types.MergeSchemaPath<{ - "/clean": { - $post: { - input: { - json: { - type: string; - nsfw?: boolean | undefined; - feedId?: string | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/mintdscsafr": { - $post: { - input: { - json: { - userId: string; - amount: number; - key: string; - comment?: string | undefined; - }; - }; - output: { - code: 0; - data: string; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/admin"> | hono_types.MergeSchemaPath<{ - "/": { - $delete: { - input: { - json: { - handle: string; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $get: { - input: { - query: { - handle: string; - }; - }; - output: { - code: 0; - data: { - id: string; - type: "inbox"; - secret: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $post: { - input: { - json: { - handle: string; - title?: string | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/webhook": { - $post: { - input: { - json: { - guid: string; - publishedAt: string; - description?: string | null | undefined; - title?: string | null | undefined; - content?: string | null | undefined; - author?: string | null | undefined; - url?: string | null | undefined; - language?: string | null | undefined; - media?: { - type: "photo" | "video"; - url: string; - width?: number | undefined; - height?: number | undefined; - preview_image_url?: string | undefined; - blurhash?: string | undefined; - }[] | null | undefined; - categories?: string[] | null | undefined; - attachments?: { - url: string; - title?: string | undefined; - duration_in_seconds?: string | number | undefined; - mime_type?: string | undefined; - size_in_bytes?: number | undefined; - }[] | null | undefined; - extra?: { - links?: { - type: string; - url: string; - content_html?: string | undefined; - }[] | null | undefined; - } | null | undefined; - authorUrl?: string | null | undefined; - authorAvatar?: string | null | undefined; - read?: boolean | null | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/email": { - $post: { - input: { - json: { - date: string; - from: { - name?: string | undefined; - address?: string | undefined; - }; - to: { - address: string; - }; - messageId: string; - subject?: string | undefined; - html?: string | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $put: { - input: { - json: { - handle: string; - title: string; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/list": { - $get: { - input: {}; - output: { - code: 0; - data: { - id: string; - type: "inbox"; - secret: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/inboxes"> | hono_types.MergeSchemaPath<{ - "/": { - $post: { - input: { - json: { - token: string; - channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/test": { - $get: { - input: { - query: { - channel?: string | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $delete: { - input: { - json: { - channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $get: { - input: {}; - output: { - code: 0; - data: { - userId: string | null; - token: string; - channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/messaging"> | hono_types.MergeSchemaPath<{ - "/configs": { - $get: { - input: {}; - output: { - code: 0; - data: { - MAX_SUBSCRIPTIONS: number; - MAX_LISTS: number; - MAX_ACTIONS: number; - MAX_WEBHOOKS_PER_ACTION: number; - MAX_INBOXES: number; - IMPORTING_TITLE: string; - DAILY_POWER_PERCENTAGES: number[]; - LEVEL_PERCENTAGES: number[]; - DAILY_CLAIM_AMOUNT: { - trial: number; - normal: number; - }; - TAX_POINT: string; - INVITATION_INTERVAL_DAYS: number; - INVITATION_PRICE: number; - INVITATION_ENABLED: boolean; - DAILY_POWER_SUPPLY: number; - IS_RSS3_TESTNET: boolean; - PRODUCT_HUNT_VOTE_URL: string; - ANNOUNCEMENT: string; - MAX_TRIAL_USER_FEED_SUBSCRIPTION: number; - MAX_TRIAL_USER_LIST_SUBSCRIPTION: number; - MAS_IN_REVIEW_VERSION?: string | undefined; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/status"> | hono_types.MergeSchemaPath<{ - "/": { - $get: { - input: { - query: { - feedId: string; - }; - }; - output: { - code: 0; - data: { - level: number; - monthlyBoostCost: number; - boostCount: number; - remainingBoostsToLevelUp: number; - lastValidBoost: { - hash: string | null; - expiresAt: string; - } | null; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/boosters": { - $get: { - input: { - query: { - feedId: string; - }; - }; - output: { - code: 0; - data: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - twoFactorEnabled: boolean | null; - isAnonymous: boolean | null; - suspended: boolean | null; - deleted: boolean | null; - bio: string | null; - website: string | null; - socialLinks: { - twitter: string; - github: string; - instagram: string; - facebook: string; - youtube: string; - } | null; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $post: { - input: { - json: { - amount: string; - feedId: string; - TOTPCode?: string | undefined; - }; - }; - output: { - code: 0; - data: { - expiresAt: string; - transactionHash: string; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "boosts"> | hono_types.MergeSchemaPath<{ - "/postgresql": { - $get: { - input: {}; - output: { - code: 0; - data: number; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/redis": { - $get: { - input: {}; - output: { - code: 0; - data: number; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/bullmq": { - $get: { - input: { - query: { - name: "follow-queue" | "admin-wallet-queue"; - }; - }; - output: { - code: 0; - data: { - current: { - completed: number; - wait: number; - failed: number; - }; - metrics: { - completed: { - data: number[]; - count: number; - }; - failed: { - data: number[]; - count: number; - }; - }; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/rsshub": { - $get: { - input: { - query: { - route?: string | undefined; - namespace?: string | undefined; - }; - }; - output: { - code: 0; - data: { - successCount: number; - errorCount: number; - timestamp: string; - successRate: number; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/probes"> | hono_types.MergeSchemaPath<{ - "/": { - $post: { - input: { - json: { - baseUrl: string; - id?: string | undefined; - accessKey?: string | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/list": { - $get: { - input: {}; - output: { - code: 0; - data: { - id: string; - description: string | null; - errorMessage: string | null; - errorAt: string | null; - ownerUserId: string; - owner: { - id: string; - name: string | null; - image: string | null; - handle: string | null; - } | null; - price: number; - userLimit: number | null; - userCount: number; - }[]; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $delete: { - input: { - json: { - id: string; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/use": { - $post: { - input: { - json: { - id: string | null; - TOTPCode?: string | undefined; - durationInMonths?: number | undefined; - }; - }; - output: { - code: 0; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/": { - $get: { - input: { - query: { - id: string; - }; - }; - output: { - code: 0; - data: { - purchase: { - hash: string | null; - expiresAt: string; - } | null; - instance: { - id: string; - description: string | null; - errorMessage: string | null; - errorAt: string | null; - ownerUserId: string; - price: number; - userLimit: number | null; - baseUrl?: string | null | undefined; - accessKey?: string | null | undefined; - }; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -} & { - "/status": { - $get: { - input: {}; - output: { - code: 0; - data: { - purchase: { - hash: string | null; - expiresAt: string; - } | null; - usage?: { - id: string; - userId: string; - rsshubId: string; - } | undefined; - }; - }; - outputFormat: "json"; - status: 200; - }; - }; -}, "/rsshub"> | hono_types.MergeSchemaPath<{ - "/avatar": { - $post: { - input: {}; - output: { - code: 0; +//#endregion +//#region src/bootstrap.d.ts +declare const _routes: hono_hono_base37.HonoBase | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: {}; + output: { + code: 0; + data?: { + createdAt: string | null; + updatedAt: string | null; + userId: string; + rules?: { + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + }[] | null | undefined; + } | undefined; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $put: { + input: { + json: { + rules?: { + name: string; + condition: { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | { + value: string; + field: "title" | "status" | "view" | "site_url" | "feed_url" | "category" | "entry_title" | "entry_content" | "entry_url" | "entry_author" | "entry_media_length" | "entry_attachments_duration"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[][]; + result: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + blockRules?: { + value: string | number; + field: "title" | "content" | "all" | "author" | "url" | "order"; + operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; + }[] | undefined; + webhooks?: string[] | undefined; + }; + }[] | null | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/actions"> | hono_types2.MergeSchemaPath<{ + "/translation": { + $get: { + input: { + query: { + id: string; + language: "en" | "ja" | "zh-CN" | "zh-TW"; + fields: string; + part?: string | undefined; + }; + }; + output: { + code: 0; + data?: { + description?: string | undefined; + title?: string | undefined; + content?: string | undefined; + readabilityContent?: string | undefined; + } | undefined; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/summary": { + $get: { + input: { + query: { + id: string; + language?: "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + target?: "content" | "readabilityContent" | undefined; + }; + }; + output: { + code: 0; + data?: string | undefined; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/daily": { + $get: { + input: { + query: { + view: "0" | "1"; + startDate: string; + }; + }; + output: { + code: 0; + data: string; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/chat": { + $post: { + input: { + json: { + messages: any[]; + context?: { + mainEntryId?: string | undefined; + referEntryIds?: string[] | undefined; + referFeedIds?: string[] | undefined; + selectedText?: string | undefined; + } | undefined; + }; + }; + output: Response; + outputFormat: "json"; + status: hono_utils_http_status0.StatusCode; + }; + }; +}, "/ai"> | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: { + query: { + view?: string | undefined; + }; + }; + output: { + data?: string[] | undefined; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $delete: { + input: { + json: { + feedIdList: string[]; + deleteSubscriptions: boolean; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $patch: { + input: { + json: { + category: string; + feedIdList: string[]; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/categories"> | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: { + query: { + entryId: string; + }; + }; + output: { + code: 0; + data: boolean; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $post: { + input: { + json: { + entryId: string; + view?: number | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $delete: { + input: { + json: { + entryId: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/collections"> | hono_types2.MergeSchemaPath<{ + "/": { + $post: { + input: { + json: { + keyword: string; + target?: "feeds" | "lists" | undefined; + }; + }; + output: { + data: { + entries?: { + id: string; + description: string | null; + title: string | null; + content: string | null; + author: string | null; + url: string | null; + language: string | null; + feedId: string; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: string; + publishedAt: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; url: string; - }; - outputFormat: "json"; - status: 200; - }; + content_html?: string | undefined; + }[] | null | undefined; + } | null | undefined; + }[] | undefined; + updatesPerWeek?: number | undefined; + subscriptionCount?: number | undefined; + feed?: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + } | undefined; + list?: { + id: string; + createdAt: string | null; + updatedAt: string | null; + type: "list"; + view: number; + feedIds: string[]; + fee: number; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + feeds?: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }[] | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + } | undefined; + docs?: string | undefined; + analytics?: { + view: number | null; + feedId: string; + updatesPerWeek: number | null; + subscriptionCount: number | null; + latestEntryPublishedAt: string | null; + } | undefined; + }[]; + }; + outputFormat: "json"; + status: 200; }; -}, "/upload"> | hono_types.MergeSchemaPath<{ - "/feeds": { - $get: { - input: { - query: { - view?: number | undefined; - language?: "eng" | "cmn" | undefined; - limit?: number | undefined; - range?: "1d" | "3d" | "7d" | "30d" | undefined; + }; +} & { + "/rsshub": { + $get: { + input: { + query: { + category?: string | undefined; + categories?: string | undefined; + namespace?: string | undefined; + lang?: string | undefined; + }; + }; + output: { + data: { + [x: string]: { + name: string; + description: string; + url: string; + lang: string; + routes: { + [x: string]: { + path: string; + name: string; + example: string; + description: string; + categories: string[]; + parameters: { + [x: string]: string; }; + maintainers: string[]; + location: string; + view?: number | undefined; + }; }; - output: { - code: 0; - data: { - view: number | null; - feedId: string; - feed: { - id: string; - type: "feed"; - url: string; - image?: string | null | undefined; - description?: string | null | undefined; - title?: string | null | undefined; - siteUrl?: string | null | undefined; - errorMessage?: string | null | undefined; - errorAt?: string | null | undefined; - ownerUserId?: string | null | undefined; - owner?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - } | null | undefined; - tipUsers?: { - id: string; - name: string | null; - emailVerified: boolean | null; - image: string | null; - handle: string | null; - createdAt: string; - updatedAt: string; - suspended: boolean | null; - deleted: boolean | null; - }[] | null | undefined; - }; - analytics: { - view: number | null; - feedId: string; - updatesPerWeek: number | null; - subscriptionCount: number | null; - latestEntryPublishedAt: string | null; - }; - }[]; - }; - outputFormat: "json"; - status: 200; + }; }; + }; + outputFormat: "json"; + status: 200; }; -}, "/trending"> | hono_types.MergeSchemaPath<{ - "/g": { - $post: { - input: { - json: any; - }; - output: Response; - outputFormat: "json"; - status: hono_utils_http_status.StatusCode; + }; +} & { + "/rsshub/route": { + $get: { + input: { + query: { + route: string; }; + }; + output: { + data: { + name: string; + description: string; + url: string; + prefix: string; + route?: any; + }; + }; + outputFormat: "json"; + status: 200; }; -}, "/data">, "/">; + }; +} & { + "/rsshub-analytics": { + $get: { + input: { + query: { + lang?: string | undefined; + }; + }; + output: { + data: { + [x: string]: { + subscriptionCount: number; + topFeeds: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }[]; + }; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/discover"> | hono_types2.MergeSchemaPath & hono_types2.MergeSchemaPath<{ + "/:id": { + $get: { + input: { + param: { + id?: any; + }; + } & { + query: { + size?: number | undefined; + page?: number | undefined; + }; + }; + output: { + code: 0; + data: { + users: { + [x: string]: { + id: string; + name: string | null; + image: string | null; + handle: string | null; + }; + }; + total: number; + entryReadHistories: { + userIds: string[]; + readCount: number; + } | null; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/read-histories"> & hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: { + query: { + insertedAfter: number; + view?: number | undefined; + feedId?: string | undefined; + read?: string | undefined; + feedIdList?: string[] | undefined; + }; + }; + output: { + code: 0; + data: { + has_new: boolean; + entry_id?: string | undefined; + lastest_at?: string | undefined; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/check-new"> & { + "/": { + $post: { + input: { + json: { + view?: number | undefined; + feedId?: string | undefined; + read?: boolean | undefined; + listId?: string | undefined; + feedIdList?: string[] | undefined; + limit?: number | undefined; + publishedAfter?: string | undefined; + publishedBefore?: string | undefined; + collected?: boolean | undefined; + isCollection?: boolean | undefined; + isArchived?: boolean | undefined; + withContent?: boolean | undefined; + excludePrivate?: boolean | undefined; + }; + }; + output: { + code: 0; + data?: { + entries: { + id: string; + description: string | null; + title: string | null; + author: string | null; + url: string | null; + language: string | null; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: string; + publishedAt: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + } | null | undefined; + }; + feeds: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }; + read: boolean | null; + view?: number | undefined; + from?: string[] | undefined; + collections?: { + createdAt: string; + } | undefined; + settings?: { + disabled?: boolean | undefined; + translation?: boolean | "en" | "ja" | "zh-CN" | "zh-TW" | undefined; + summary?: boolean | undefined; + readability?: boolean | undefined; + sourceContent?: boolean | undefined; + silence?: boolean | undefined; + block?: boolean | undefined; + star?: boolean | undefined; + newEntryNotification?: boolean | undefined; + rewriteRules?: { + from: string; + to: string; + }[] | undefined; + webhooks?: string[] | undefined; + } | undefined; + }[] | undefined; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $get: { + input: { + query: { + id: string; + }; + }; + output: { + code: 0; + data?: { + entries: { + id: string; + description: string | null; + title: string | null; + content: string | null; + author: string | null; + url: string | null; + language: string | null; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: string; + publishedAt: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + } | null | undefined; + }; + feeds: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }; + } | undefined; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/readability": { + $get: { + input: { + query: { + id: string; + }; + }; + output: { + code: 0; + data: { + content?: string | null | undefined; + } | null; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/stream": { + $post: { + input: { + json: { + ids: string[]; + }; + }; + output: {}; + outputFormat: "text"; + status: 200; + }; + }; +} & { + "/preview": { + $get: { + input: { + query: { + id: string; + }; + }; + output: { + code: 0; + data: { + id: string; + description: string | null; + title: string | null; + content: string | null; + author: string | null; + url: string | null; + language: string | null; + feedId: string; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: string; + publishedAt: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + } | null | undefined; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/entries"> | hono_types2.MergeSchemaPath & { + "/": { + $get: { + input: { + query: { + id?: string | undefined; + url?: string | undefined; + entriesLimit?: number | undefined; + }; + }; + output: { + code: 0; + data: { + entries: { + description: string | null; + title: string | null; + author: string | null; + url: string | null; + language: string | null; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + publishedAt: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + } | null | undefined; + }[]; + subscriptionCount: number; + feed: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }; + readCount: number; + subscription?: { + createdAt: string; + userId: string; + title: string | null; + view: number; + category: string | null; + feedId: string; + isPrivate: boolean; + } | undefined; + analytics?: { + view: number | null; + feedId: string; + updatesPerWeek: number | null; + subscriptionCount: number | null; + latestEntryPublishedAt: string | null; + } | undefined; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/refresh": { + $get: { + input: { + query: { + id: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/reset": { + $get: { + input: { + query: { + id: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/analytics": { + $post: { + input: { + json: { + id: string[]; + }; + }; + output: { + code: 0; + data: { + analytics: { + [x: string]: { + view: number | null; + feedId: string; + updatesPerWeek: number | null; + subscriptionCount: number | null; + latestEntryPublishedAt: string | null; + }; + }; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/feeds"> | hono_types2.MergeSchemaPath<{ + "/new": { + $post: { + input: { + json: { + TOTPCode?: string | undefined; + }; + }; + output: { + code: 0; + data: string; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/use": { + $post: { + input: { + json: { + code: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $get: { + input: {}; + output: { + code: 0; + data: { + code: string; + createdAt: string | null; + users: { + id: string; + name: string | null; + image: string | null; + } | null; + usedAt: string | null; + toUserId: string | null; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/limitation": { + $get: { + input: {}; + output: { + code: 0; + data: number; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/invitations"> | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: { + query: { + id?: string | undefined; + handle?: string | undefined; + }; + }; + output: { + code: 0; + data: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + twoFactorEnabled: boolean | null; + isAnonymous: boolean | null; + suspended: boolean | null; + deleted: boolean | null; + bio: string | null; + website: string | null; + socialLinks: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + } | null; + stripeCustomerId: string | null; + role: string | null; + roleEndAt: string | null; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/batch": { + $post: { + input: { + json: { + ids: string[]; + }; + }; + output: { + code: 0; + data: { + [x: string]: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + twoFactorEnabled: boolean | null; + isAnonymous: boolean | null; + suspended: boolean | null; + deleted: boolean | null; + bio: string | null; + website: string | null; + socialLinks: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + } | null; + stripeCustomerId: string | null; + role: string | null; + roleEndAt: string | null; + }; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/profiles"> | hono_types2.MergeSchemaPath<{ + "/": { + $post: { + input: { + json: { + entryIds: string[]; + isInbox?: boolean | undefined; + readHistories?: string[] | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $delete: { + input: { + json: { + entryId: string; + isInbox?: boolean | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $get: { + input: { + query: { + view?: string | undefined; + }; + }; + output: { + code: 0; + data: { + [x: string]: number; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/all": { + $post: { + input: { + json: { + view?: number | undefined; + feedId?: string | undefined; + listId?: string | undefined; + feedIdList?: string[] | undefined; + inboxId?: string | undefined; + excludePrivate?: boolean | undefined; + startTime?: number | undefined; + endTime?: number | undefined; + insertedBefore?: number | undefined; + }; + }; + output: { + code: 0; + data: { + read: { + [x: string]: number; + }; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/total-count": { + $get: { + input: {}; + output: { + code: 0; + data: { + count: number; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/reads"> | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: { + query: { + tab?: "general" | "appearance" | "integration" | undefined; + }; + }; + output: { + code: 0; + settings: { + [x: string]: any; + }; + updated: { + [x: string]: string; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/:tab": { + $patch: { + input: { + param: { + tab: string; + }; + } & { + json: Record; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/settings"> | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: { + query: { + userId?: string | undefined; + view?: string | undefined; + }; + }; + output: { + code: 0; + data: ({ + createdAt: string; + userId: string; + title: string | null; + view: number; + category: string | null; + feeds: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }; + feedId: string; + isPrivate: boolean; + boost: { + boosters: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + twoFactorEnabled: boolean | null; + isAnonymous: boolean | null; + suspended: boolean | null; + deleted: boolean | null; + bio: string | null; + website: string | null; + socialLinks: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + } | null; + stripeCustomerId: string | null; + role: string | null; + roleEndAt: string | null; + }[]; + }; + } | { + createdAt: string; + userId: string; + title: string | null; + view: number; + feedId: string; + isPrivate: boolean; + lists: { + id: string; + createdAt: string | null; + updatedAt: string | null; + type: "list"; + view: number; + feedIds: string[]; + fee: number; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + feeds?: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }[] | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + }; + listId: string; + category?: string | undefined; + } | { + createdAt: string; + userId: string; + title: string | null; + view: number; + category: string | null; + feedId: string; + isPrivate: boolean; + inboxes: { + id: string; + type: "inbox"; + secret: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + }; + inboxId: string; + })[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $post: { + input: { + json: { + view: number; + title?: string | null | undefined; + category?: string | null | undefined; + url?: string | undefined; + isPrivate?: boolean | undefined; + listId?: string | undefined; + TOTPCode?: string | undefined; + }; + }; + output: { + code: 0; + feed: { + id: string; + image: string | null; + description: string | null; + title: string | null; + url: string; + siteUrl: string | null; + checkedAt: string; + lastModifiedHeader: string | null; + etagHeader: string | null; + ttl: number | null; + errorMessage: string | null; + errorAt: string | null; + ownerUserId: string | null; + language: string | null; + migrateTo: string | null; + rsshubRoute: string | null; + rsshubNamespace: string | null; + nsfw: boolean | null; + } | null; + list: { + id: string; + image: string | null; + createdAt: string | null; + updatedAt: string | null; + description: string | null; + title: string; + view: number; + ownerUserId: string; + language: string | null; + feedIds: string[]; + fee: number; + } | null; + unread: { + [x: string]: number; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $delete: { + input: { + json: { + url?: string | undefined; + feedId?: string | undefined; + listId?: string | undefined; + feedIdList?: string[] | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $patch: { + input: { + json: { + view: number; + title?: string | null | undefined; + category?: string | null | undefined; + feedId?: string | undefined; + isPrivate?: boolean | undefined; + listId?: string | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/export": { + $get: { + input: { + query: { + RSSHubURL?: string | undefined; + folderMode?: "view" | "category" | undefined; + }; + }; + output: {}; + outputFormat: string; + status: 200; + }; + }; +} & { + "/import": { + $post: { + input: {}; + output: { + code: 0; + data: { + successfulItems: { + id?: string | undefined; + title?: string | null | undefined; + url?: string | undefined; + }[]; + conflictItems: { + id: string; + url: string; + title?: string | null | undefined; + }[]; + parsedErrorItems: { + url: string; + id?: string | undefined; + title?: string | null | undefined; + }[]; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/batch": { + $patch: { + input: { + json: { + view: number; + feedIds: string[]; + title?: string | null | undefined; + category?: string | null | undefined; + isPrivate?: boolean | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/parse-opml": { + $post: { + input: {}; + output: { + code: 0; + data: { + subscriptions: { + userId: string; + title: string | null; + view: number; + category: string | null; + url: string; + }[]; + remaining: number; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/subscriptions"> | hono_types2.MergeSchemaPath & hono_types2.MergeSchemaPath<{ + "/tip": { + $post: { + input: { + json: { + amount: string; + entryId: string; + TOTPCode?: string | undefined; + }; + }; + output: { + code: 0; + data: { + transactionHash: string; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $get: { + input: { + query: { + type?: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop" | undefined; + hash?: string | undefined; + fromUserId?: string | undefined; + toUserId?: string | undefined; + toFeedId?: string | undefined; + fromOrToUserId?: string | undefined; + createdAfter?: string | undefined; + }; + }; + output: { + code: 0; + data: { + createdAt: string; + type: "tip" | "mint" | "burn" | "withdraw" | "purchase" | "airdrop"; + hash: string; + powerToken: string; + fromUserId: string | null; + toUserId: string | null; + toFeedId: string | null; + toListId: string | null; + toEntryId: string | null; + toRSSHubId: string | null; + tax: string; + comment: string | null; + fromUser?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + twoFactorEnabled: boolean | null; + isAnonymous: boolean | null; + suspended: boolean | null; + deleted: boolean | null; + bio: string | null; + website: string | null; + socialLinks: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + } | null; + stripeCustomerId: string | null; + role: string | null; + roleEndAt: string | null; + } | null | undefined; + toUser?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + twoFactorEnabled: boolean | null; + isAnonymous: boolean | null; + suspended: boolean | null; + deleted: boolean | null; + bio: string | null; + website: string | null; + socialLinks: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + } | null; + stripeCustomerId: string | null; + role: string | null; + roleEndAt: string | null; + } | null | undefined; + toFeed?: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + } | null | undefined; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/claim_daily": { + $post: { + input: {}; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/withdraw": { + $post: { + input: { + json: { + amount: string; + address: string; + TOTPCode?: string | undefined; + toRss3?: boolean | undefined; + }; + }; + output: { + code: 0; + data: { + transactionHash: string; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/claim-check": { + $get: { + input: {}; + output: { + code: 0; + data: boolean; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/transactions"> & { + "/": { + $get: { + input: {}; + output: { + code: 0; + data: { + createdAt: string; + userId: string; + powerToken: string; + addressIndex: number; + address: string | null; + dailyPowerToken: string; + cashablePowerToken: string; + level: { + rank: number | null; + level: number | null; + prevActivityPoints: number | null; + activityPoints: number | null; + } | null; + todayDailyPower: string; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $post: { + input: {}; + output: { + code: 0; + data: string; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/refresh": { + $post: { + input: {}; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/ranking": { + $get: { + input: {}; + output: { + code: 0; + data: { + user: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + twoFactorEnabled: boolean | null; + isAnonymous: boolean | null; + suspended: boolean | null; + deleted: boolean | null; + bio: string | null; + website: string | null; + socialLinks: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + } | null; + stripeCustomerId: string | null; + role: string | null; + roleEndAt: string | null; + }; + userId: string; + rank: number | null; + powerToken: string; + address: string; + level: number | null; + prevActivityPoints: number | null; + activityPoints: number | null; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/power-price": { + $get: { + input: {}; + output: { + code: 0; + data: { + rss3: number; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/wallets"> | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: { + query: { + listId: string; + noExtras?: boolean | undefined; + }; + }; + output: { + code: 0; + data: { + entries: { + id: string; + description: string | null; + title: string | null; + content: string | null; + author: string | null; + url: string | null; + feeds: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }; + language: string | null; + feedId: string; + guid: string; + categories: string[] | null; + authorUrl: string | null; + authorAvatar: string | null; + insertedAt: string; + publishedAt: string; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + } | null | undefined; + }[]; + subscriptionCount: number; + list: { + id: string; + createdAt: string | null; + updatedAt: string | null; + type: "list"; + view: number; + feedIds: string[]; + fee: number; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + feeds?: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }[] | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + }; + readCount: number; + feedCount: number; + subscription?: { + createdAt: string; + userId: string; + title: string | null; + view: number; + isPrivate: boolean; + listId: string; + } | undefined; + analytics?: { + subscriptionCount: number | null; + listId: string; + } | undefined; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $post: { + input: { + json: { + title: string; + view: number; + fee: number; + image?: string | null | undefined; + description?: string | null | undefined; + }; + }; + output: { + code: 0; + data: { + id: string; + createdAt: string | null; + updatedAt: string | null; + type: "list"; + view: number; + feedIds: string[]; + fee: number; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + feeds?: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }[] | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $delete: { + input: { + json: { + listId: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $patch: { + input: { + json: { + title: string; + view: number; + fee: number; + listId: string; + image?: string | null | undefined; + description?: string | null | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/list": { + $get: { + input: { + query: { + userId?: string | undefined; + }; + }; + output: { + code: 0; + data: { + id: string; + createdAt: string | null; + updatedAt: string | null; + type: "list"; + view: number; + feedIds: string[]; + fee: number; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + feeds?: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }[] | undefined; + ownerUserId?: string | null | undefined; + subscriptionCount?: number | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + purchaseAmount?: number | undefined; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/feeds": { + $post: { + input: { + json: { + feedId: string; + listId: string; + } | { + feedIds: string[]; + listId: string; + }; + }; + output: { + code: 0; + data: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/feeds": { + $delete: { + input: { + json: { + feedId: string; + listId: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/lists"> | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: {}; + output: {}; + outputFormat: "text"; + status: 200; + }; + }; +} & { + "/pools": { + $get: { + input: {}; + output: { + code: 0; + data: { + totalCount: number; + idleCount: number; + waitingCount: number; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/metrics"> | hono_types2.MergeSchemaPath<{ + "/clean": { + $post: { + input: { + json: { + type: string; + nsfw?: boolean | undefined; + feedId?: string | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/mintdscsafr": { + $post: { + input: { + json: { + userId: string; + amount: number; + key: string; + comment?: string | undefined; + }; + }; + output: { + code: 0; + data: string; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/admin"> | hono_types2.MergeSchemaPath<{ + "/": { + $delete: { + input: { + json: { + handle: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $get: { + input: { + query: { + handle: string; + }; + }; + output: { + code: 0; + data: { + id: string; + type: "inbox"; + secret: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $post: { + input: { + json: { + handle: string; + title?: string | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/webhook": { + $post: { + input: { + json: { + guid: string; + publishedAt: string; + description?: string | null | undefined; + title?: string | null | undefined; + content?: string | null | undefined; + author?: string | null | undefined; + url?: string | null | undefined; + language?: string | null | undefined; + media?: { + type: "photo" | "video"; + url: string; + width?: number | undefined; + height?: number | undefined; + preview_image_url?: string | undefined; + blurhash?: string | undefined; + }[] | null | undefined; + categories?: string[] | null | undefined; + attachments?: { + url: string; + title?: string | undefined; + duration_in_seconds?: string | number | undefined; + mime_type?: string | undefined; + size_in_bytes?: number | undefined; + }[] | null | undefined; + extra?: { + links?: { + type: string; + url: string; + content_html?: string | undefined; + }[] | null | undefined; + } | null | undefined; + authorUrl?: string | null | undefined; + authorAvatar?: string | null | undefined; + read?: boolean | null | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/email": { + $post: { + input: { + json: { + date: string; + from: { + name?: string | undefined; + address?: string | undefined; + }; + to: { + address: string; + }; + messageId: string; + subject?: string | undefined; + html?: string | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $put: { + input: { + json: { + handle: string; + title: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/list": { + $get: { + input: {}; + output: { + code: 0; + data: { + id: string; + type: "inbox"; + secret: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/inboxes"> | hono_types2.MergeSchemaPath<{ + "/": { + $post: { + input: { + json: { + token: string; + channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/test": { + $get: { + input: { + query: { + channel?: string | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $delete: { + input: { + json: { + channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $get: { + input: {}; + output: { + code: 0; + data: { + userId: string | null; + token: string; + channel: "macos" | "windows" | "linux" | "ios" | "android" | "web" | "desktop"; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/messaging"> | hono_types2.MergeSchemaPath<{ + "/configs": { + $get: { + input: {}; + output: { + code: 0; + data: { + ANNOUNCEMENT: string; + DAILY_CLAIM_AMOUNT: { + trial: number; + normal: number; + }; + DAILY_POWER_PERCENTAGES: number[]; + DAILY_POWER_SUPPLY: number; + IMPORTING_TITLE: string; + INVITATION_ENABLED: boolean; + INVITATION_INTERVAL_DAYS: number; + INVITATION_PRICE: number; + IS_RSS3_TESTNET: boolean; + LEVEL_PERCENTAGES: number[]; + MAX_ACTIONS: number; + MAX_INBOXES: number; + MAX_LISTS: number; + MAX_SUBSCRIPTIONS: number; + MAX_TRIAL_USER_FEED_SUBSCRIPTION: number; + MAX_TRIAL_USER_LIST_SUBSCRIPTION: number; + MAX_WEBHOOKS_PER_ACTION: number; + PRODUCT_HUNT_VOTE_URL: string; + REFERRAL_ENABLED: boolean; + REFERRAL_PRO_PREVIEW_STRIPE_PRICE_IN_DOLLAR: number; + REFERRAL_REQUIRED_INVITATIONS: number; + REFERRAL_RULE_LINK: string; + TAX_POINT: string; + MAS_IN_REVIEW_VERSION?: string | undefined; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/status"> | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: { + query: { + feedId: string; + }; + }; + output: { + code: 0; + data: { + level: number; + monthlyBoostCost: number; + boostCount: number; + remainingBoostsToLevelUp: number; + lastValidBoost: { + hash: string | null; + expiresAt: string; + } | null; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/boosters": { + $get: { + input: { + query: { + feedId: string; + }; + }; + output: { + code: 0; + data: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + twoFactorEnabled: boolean | null; + isAnonymous: boolean | null; + suspended: boolean | null; + deleted: boolean | null; + bio: string | null; + website: string | null; + socialLinks: { + twitter: string; + github: string; + instagram: string; + facebook: string; + youtube: string; + } | null; + stripeCustomerId: string | null; + role: string | null; + roleEndAt: string | null; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $post: { + input: { + json: { + amount: string; + feedId: string; + TOTPCode?: string | undefined; + }; + }; + output: { + code: 0; + data: { + expiresAt: string; + transactionHash: string; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "boosts"> | hono_types2.MergeSchemaPath<{ + "/postgresql": { + $get: { + input: {}; + output: { + code: 0; + data: number; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/redis": { + $get: { + input: {}; + output: { + code: 0; + data: number; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/bullmq": { + $get: { + input: { + query: { + name: "follow-queue" | "admin-wallet-queue"; + }; + }; + output: { + code: 0; + data: { + current: { + completed: number; + wait: number; + failed: number; + }; + metrics: { + completed: { + data: number[]; + count: number; + }; + failed: { + data: number[]; + count: number; + }; + }; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/rsshub": { + $get: { + input: { + query: { + route?: string | undefined; + namespace?: string | undefined; + }; + }; + output: { + code: 0; + data: { + successCount: number; + errorCount: number; + timestamp: string; + successRate: number; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/probes"> | hono_types2.MergeSchemaPath<{ + "/": { + $post: { + input: { + json: { + baseUrl: string; + id?: string | undefined; + accessKey?: string | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/list": { + $get: { + input: {}; + output: { + code: 0; + data: { + id: string; + description: string | null; + errorMessage: string | null; + errorAt: string | null; + ownerUserId: string; + owner: { + id: string; + name: string | null; + image: string | null; + handle: string | null; + } | null; + price: number; + userLimit: number | null; + userCount: number; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $delete: { + input: { + json: { + id: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/use": { + $post: { + input: { + json: { + id: string | null; + TOTPCode?: string | undefined; + durationInMonths?: number | undefined; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/": { + $get: { + input: { + query: { + id: string; + }; + }; + output: { + code: 0; + data: { + purchase: { + hash: string | null; + expiresAt: string; + } | null; + instance: { + id: string; + description: string | null; + errorMessage: string | null; + errorAt: string | null; + ownerUserId: string; + price: number; + userLimit: number | null; + baseUrl?: string | null | undefined; + accessKey?: string | null | undefined; + }; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/status": { + $get: { + input: {}; + output: { + code: 0; + data: { + purchase: { + hash: string | null; + expiresAt: string; + } | null; + usage?: { + id: string; + userId: string; + rsshubId: string; + } | undefined; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/rsshub"> | hono_types2.MergeSchemaPath<{ + "/avatar": { + $post: { + input: {}; + output: { + code: 0; + url: string; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/upload"> | hono_types2.MergeSchemaPath<{ + "/feeds": { + $get: { + input: { + query: { + view?: number | undefined; + language?: "eng" | "cmn" | undefined; + limit?: number | undefined; + range?: "1d" | "3d" | "7d" | "30d" | undefined; + }; + }; + output: { + code: 0; + data: { + view: number | null; + feedId: string; + feed: { + id: string; + type: "feed"; + url: string; + image?: string | null | undefined; + description?: string | null | undefined; + title?: string | null | undefined; + siteUrl?: string | null | undefined; + errorMessage?: string | null | undefined; + errorAt?: string | null | undefined; + ownerUserId?: string | null | undefined; + owner?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + } | null | undefined; + tipUsers?: { + id: string; + name: string | null; + emailVerified: boolean | null; + image: string | null; + handle: string | null; + createdAt: string; + updatedAt: string; + suspended: boolean | null; + deleted: boolean | null; + }[] | null | undefined; + }; + analytics: { + view: number | null; + feedId: string; + updatesPerWeek: number | null; + subscriptionCount: number | null; + latestEntryPublishedAt: string | null; + }; + }[]; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/trending"> | hono_types2.MergeSchemaPath<{ + "/g": { + $post: { + input: { + json: any; + }; + output: Response; + outputFormat: "json"; + status: hono_utils_http_status0.StatusCode; + }; + }; +}, "/data"> | hono_types2.MergeSchemaPath<{ + "/": { + $get: { + input: {}; + output: { + code: 0; + data: { + invitations: { + code: string; + user: { + id: string; + name: string | null; + image: string | null; + } | null; + createdAt: string | null; + usedAt: string | null; + toUserId: string | null; + }[]; + referralCycleDays: number; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/days": { + $get: { + input: { + query: { + code: string; + }; + }; + output: { + code: 0; + data: { + referralCycleDays: number; + }; + }; + outputFormat: "json"; + status: 200; + }; + }; +} & { + "/verify-receipt": { + $post: { + input: { + json: { + appReceipt: string; + }; + }; + output: { + code: 0; + }; + outputFormat: "json"; + status: 200; + }; + }; +}, "/referrals">, "/">; type AppType = typeof _routes; - -export { type ActionItem, type ActionsModel, type AirdropActivity, type AppType, type AttachmentsModel, type AuthSession, type AuthUser, CommonEntryFields, type ConditionItem, type DetailModel, type EntriesModel, type ExtraModel, type FeedModel, type ListModel, type MediaModel, type MessagingData, MessagingType, type SettingsModel, type UrlReadsModel, account, achievements, achievementsOpenAPISchema, actions, actionsItemOpenAPISchema, actionsOpenAPISchema, actionsRelations, activities, activitiesOpenAPISchema, activityEnum, airdrops, airdropsOpenAPISchema, attachmentsZodSchema, authPlugins, boosts, captcha, collections, collectionsOpenAPISchema, collectionsRelations, detailModelSchema, entries, entriesOpenAPISchema, entriesRelations, extraZodSchema, feedAnalytics, feedAnalyticsOpenAPISchema, feedAnalyticsRelations, feedPowerTokens, feedPowerTokensOpenAPISchema, feedPowerTokensRelations, feeds, feedsOpenAPISchema, feedsRelations, inboxHandleSchema, inboxes, inboxesEntries, inboxesEntriesInsertOpenAPISchema, type inboxesEntriesModel, inboxesEntriesOpenAPISchema, inboxesEntriesRelations, inboxesOpenAPISchema, inboxesRelations, invitations, invitationsOpenAPISchema, invitationsRelations, languageSchema, levels, levelsOpenAPISchema, levelsRelations, listAnalytics, listAnalyticsOpenAPISchema, listAnalyticsRelations, lists, listsOpenAPISchema, listsRelations, listsSubscriptions, listsSubscriptionsOpenAPISchema, listsSubscriptionsRelations, lower, mediaZodSchema, messaging, messagingOpenAPISchema, messagingRelations, readabilities, rsshub, rsshubAnalytics, rsshubAnalyticsOpenAPISchema, rsshubOpenAPISchema, rsshubPurchase, rsshubUsage, rsshubUsageOpenAPISchema, rsshubUsageRelations, session, settings, subscriptions, subscriptionsOpenAPISchema, subscriptionsRelations, timeline, timelineOpenAPISchema, timelineRelations, tools, transactionType, transactions, transactionsOpenAPISchema, transactionsRelations, trendingFeeds, trendingFeedsOpenAPISchema, trendingFeedsRelations, twoFactor, uploads, urlReads, urlReadsOpenAPISchema, user, users, usersOpenApiSchema, usersRelations, verification, wallets, walletsOpenAPISchema, walletsRelations }; +//#endregion +export { ActionItem, ActionsModel, AirdropActivity, AppType, AttachmentsModel, AuthSession, AuthUser, CommonEntryFields, ConditionItem, DetailModel, EntriesModel, ExtraModel, FeedModel, InvitationDB, ListModel, MediaModel, MessagingData, MessagingType, SettingsModel, UrlReadsModel, account, achievements, achievementsOpenAPISchema, actions, actionsItemOpenAPISchema, actionsOpenAPISchema, actionsRelations, activities, activitiesOpenAPISchema, activityEnum, airdrops, airdropsOpenAPISchema, applePayTransactions, attachmentsZodSchema, authPlugins, boosts, captcha, collections, collectionsOpenAPISchema, collectionsRelations, detailModelSchema, entries, entriesOpenAPISchema, entriesRelations, extraZodSchema, feedAnalytics, feedAnalyticsOpenAPISchema, feedAnalyticsRelations, feedPowerTokens, feedPowerTokensOpenAPISchema, feedPowerTokensRelations, feeds, feedsOpenAPISchema, feedsRelations, inboxHandleSchema, inboxes, inboxesEntries, inboxesEntriesInsertOpenAPISchema, inboxesEntriesModel, inboxesEntriesOpenAPISchema, inboxesEntriesRelations, inboxesOpenAPISchema, inboxesRelations, invitations, invitationsOpenAPISchema, invitationsRelations, languageSchema, levels, levelsOpenAPISchema, levelsRelations, listAnalytics, listAnalyticsOpenAPISchema, listAnalyticsRelations, lists, listsOpenAPISchema, listsRelations, listsSubscriptions, listsSubscriptionsOpenAPISchema, listsSubscriptionsRelations, lower, mediaZodSchema, messaging, messagingOpenAPISchema, messagingRelations, readabilities, rsshub, rsshubAnalytics, rsshubAnalyticsOpenAPISchema, rsshubOpenAPISchema, rsshubPurchase, rsshubUsage, rsshubUsageOpenAPISchema, rsshubUsageRelations, session, settings, stripeSubscriptions, subscriptions, subscriptionsOpenAPISchema, subscriptionsRelations, timeline, timelineOpenAPISchema, timelineRelations, tools, transactionType, transactions, transactionsOpenAPISchema, transactionsRelations, trendingFeeds, trendingFeedsOpenAPISchema, trendingFeedsRelations, twoFactor, uploads, urlReads, urlReadsOpenAPISchema, user$1 as user, users, usersOpenApiSchema, usersRelations, verification, wallets, walletsOpenAPISchema, walletsRelations }; \ No newline at end of file diff --git a/packages/internal/store/src/user/hooks.ts b/packages/internal/store/src/user/hooks.ts index 4b77ebb45..b024cb8aa 100644 --- a/packages/internal/store/src/user/hooks.ts +++ b/packages/internal/store/src/user/hooks.ts @@ -42,6 +42,10 @@ export const useUserRole = () => { return useUserStore((state) => state.role) } +export const useRoleEndAt = () => { + return useUserStore((state) => state.roleEndAt) +} + export const useUserById = (userId: string | undefined) => { return useUserStore((state) => (userId ? state.users[userId] : undefined)) } diff --git a/packages/internal/store/src/user/store.ts b/packages/internal/store/src/user/store.ts index 5193dafe1..fe7374df2 100644 --- a/packages/internal/store/src/user/store.ts +++ b/packages/internal/store/src/user/store.ts @@ -20,12 +20,14 @@ type UserStore = { users: Record whoami: MeModel | null role: UserRole | null + roleEndAt: Date | null } const defaultState: UserStore = { users: {}, whoami: null, role: null, + roleEndAt: null, } export const useUserStore = createZustandStore("user")(() => defaultState) @@ -71,7 +73,10 @@ class UserSyncService { const user = honoMorph.toUser(res.user, true) immerSet((state) => { state.whoami = { ...user, emailVerified: res.user.emailVerified } - state.role = res.role as UserRole + state.role = res.role + if (res.roleEndAt) { + state.roleEndAt = new Date(res.roleEndAt) + } }) userActions.upsertMany([user]) @@ -176,7 +181,7 @@ class UserSyncService { const res = await apiClient().invitations.use.$post({ json: { code } }) if (res.code === 0) { immerSet((state) => { - state.role = UserRole.User + state.role = UserRole.PrePro }) } @@ -249,6 +254,7 @@ class UserActions implements Hydratable, Resetable { immerSet((state) => { state.whoami = null state.role = null + state.roleEndAt = null }) }) tx.persist(() => UserService.removeCurrentUser()) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1497e0bce..62be38d94 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -883,6 +883,9 @@ importers: expo-haptics: specifier: 14.1.4 version: 14.1.4(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0)) + expo-iap: + specifier: 2.5.0 + version: 2.5.0(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0) expo-image: specifier: 2.3.0 version: 2.3.0(patch_hash=2b9c83844cf8c4240bda8315b7bbe20908929272eca362f1b7f52728071ae446)(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0) @@ -1422,6 +1425,9 @@ importers: '@radix-ui/react-popover': specifier: 1.1.14 version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-progress': + specifier: 1.1.7 + version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-radio-group': specifier: 1.3.7 version: 1.3.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -1664,6 +1670,9 @@ importers: packages/internal/shared: dependencies: + '@better-auth/stripe': + specifier: 1.2.9 + version: 1.2.9 '@electron-toolkit/preload': specifier: 3.0.2 version: 3.0.2(electron@37.2.0) @@ -1691,6 +1700,9 @@ importers: sonner: specifier: 2.0.6 version: 2.0.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + stripe: + specifier: 18.2.1 + version: 18.2.1(@types/node@24.0.10) zod: specifier: 3.25.75 version: 3.25.75 @@ -2656,6 +2668,9 @@ packages: peerDependencies: better-auth: 1.2.9 + '@better-auth/stripe@1.2.9': + resolution: {integrity: sha512-p7Q3rX63UBE+KMlRTGHeytp13/g8fQU5w8wcY6FPubsGEAPoZl7ymcqKu3AAxpFTaWOGHPVov+4no7uNGl6Qug==} + '@better-auth/utils@0.2.5': resolution: {integrity: sha512-uI2+/8h/zVsH8RrYdG8eUErbuGBk16rZKQfz8CjxQOyCE6v7BqFYEbFwvOkvl1KbUdxhqOnXp78+uE5h8qVEgQ==} @@ -5077,6 +5092,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-progress@1.1.7': + resolution: {integrity: sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: 19.0.0 + react-dom: 19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-radio-group@1.3.7': resolution: {integrity: sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==} peerDependencies: @@ -9261,6 +9289,13 @@ packages: peerDependencies: expo: '*' + expo-iap@2.5.0: + resolution: {integrity: sha512-z9VBIM8/eGoJmkKoVu/Bnr39K8Tx8LMKC9ZNdfjMaGEdtgt5Vt5LBqdzCqb3efJ5nxkUDz7dhn9Rj+Robwts4g==} + peerDependencies: + expo: '*' + react: 19.0.0 + react-native: '*' + expo-image-loader@5.1.0: resolution: {integrity: sha512-sEBx3zDQIODWbB5JwzE7ZL5FJD+DK3LVLWBVJy6VzsqIA6nDEnSFnsnWyCfCTSvbGigMATs1lgkC2nz3Jpve1Q==} peerDependencies: @@ -14115,6 +14150,15 @@ packages: resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} engines: {node: '>=0.10.0'} + stripe@18.2.1: + resolution: {integrity: sha512-GwB1B7WSwEBzW4dilgyJruUYhbGMscrwuyHsPUmSRKrGHZ5poSh2oU9XKdii5BFVJzXHn35geRvGJ6R8bYcp8w==} + engines: {node: '>=12.*'} + peerDependencies: + '@types/node': '>=12.x.x' + peerDependenciesMeta: + '@types/node': + optional: true + strtok3@6.3.0: resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} engines: {node: '>=10'} @@ -16451,6 +16495,11 @@ snapshots: better-call: 1.0.9 zod: 3.25.75 + '@better-auth/stripe@1.2.9': + dependencies: + better-auth: 1.2.9 + zod: 3.25.75 + '@better-auth/utils@0.2.5': dependencies: typescript: 5.8.3 @@ -19942,6 +19991,16 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) + '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) + '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -24928,6 +24987,12 @@ snapshots: dependencies: expo: 53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0) + expo-iap@2.5.0(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0): + dependencies: + expo: 53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-native: 0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0) + expo-image-loader@5.1.0(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0)): dependencies: expo: 53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0) @@ -30600,6 +30665,12 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 + stripe@18.2.1(@types/node@24.0.10): + dependencies: + qs: 6.14.0 + optionalDependencies: + '@types/node': 24.0.10 + strtok3@6.3.0: dependencies: '@tokenizer/token': 0.3.0