diff --git a/apps/web/lib/actions/generate-client-secret.ts b/apps/web/lib/actions/generate-client-secret.ts index 70a8e32c960..bca34a8d5e1 100644 --- a/apps/web/lib/actions/generate-client-secret.ts +++ b/apps/web/lib/actions/generate-client-secret.ts @@ -3,7 +3,7 @@ import { prisma } from "@dub/prisma"; import { OAUTH_CONFIG } from "../api/oauth/constants"; import { createToken } from "../api/oauth/utils"; -import { hashToken } from "../auth"; +import { hashToken } from "../auth/hash-token"; import z from "../zod"; import { authActionClient } from "./safe-action"; diff --git a/apps/web/lib/actions/partners/approve-partner.ts b/apps/web/lib/actions/partners/approve-partner.ts index 0ad67303195..e41371da3b9 100644 --- a/apps/web/lib/actions/partners/approve-partner.ts +++ b/apps/web/lib/actions/partners/approve-partner.ts @@ -15,7 +15,7 @@ import { prisma } from "@dub/prisma"; import { waitUntil } from "@vercel/functions"; import { getLinkOrThrow } from "../../api/links/get-link-or-throw"; import { getProgramOrThrow } from "../../api/programs/get-program-or-throw"; -import { recordLink } from "../../tinybird"; +import { recordLink } from "../../tinybird/record-link"; import { authActionClient } from "../safe-action"; // Approve a partner application diff --git a/apps/web/lib/actions/safe-action.ts b/apps/web/lib/actions/safe-action.ts index 08cafc1230d..222f45e398c 100644 --- a/apps/web/lib/actions/safe-action.ts +++ b/apps/web/lib/actions/safe-action.ts @@ -1,7 +1,7 @@ import { prisma } from "@dub/prisma"; import { createSafeActionClient } from "next-safe-action"; import { normalizeWorkspaceId } from "../api/workspace-id"; -import { getSession } from "../auth"; +import { getSession } from "../auth/utils"; import { PlanProps } from "../types"; export const actionClient = createSafeActionClient({ diff --git a/apps/web/lib/actions/send-invite-referral-email.ts b/apps/web/lib/actions/send-invite-referral-email.ts index 9093d4c4085..5c503300ac3 100644 --- a/apps/web/lib/actions/send-invite-referral-email.ts +++ b/apps/web/lib/actions/send-invite-referral-email.ts @@ -3,7 +3,7 @@ import { sendEmail } from "@dub/email"; import { ReferralInvite } from "@dub/email/templates/referral-invite"; import { z } from "zod"; -import { ratelimit } from "../upstash"; +import { ratelimit } from "../upstash/ratelimit"; import { emailSchema } from "../zod/schemas/auth"; import { authActionClient } from "./safe-action"; diff --git a/apps/web/lib/actions/send-otp.ts b/apps/web/lib/actions/send-otp.ts index c2b90635769..b11a4b101a7 100644 --- a/apps/web/lib/actions/send-otp.ts +++ b/apps/web/lib/actions/send-otp.ts @@ -7,7 +7,7 @@ import { prisma } from "@dub/prisma"; import { get } from "@vercel/edge-config"; import { flattenValidationErrors } from "next-safe-action"; import { getIP } from "../api/utils"; -import { generateOTP } from "../auth"; +import { generateOTP } from "../auth/utils"; import { EMAIL_OTP_EXPIRY_IN } from "../auth/constants"; import z from "../zod"; import { emailSchema, passwordSchema } from "../zod/schemas/auth"; diff --git a/apps/web/lib/actions/set-onboarding-progress.ts b/apps/web/lib/actions/set-onboarding-progress.ts index bba1586ba3a..c8c82e3e7ce 100644 --- a/apps/web/lib/actions/set-onboarding-progress.ts +++ b/apps/web/lib/actions/set-onboarding-progress.ts @@ -2,7 +2,7 @@ import { z } from "zod"; import { ONBOARDING_STEPS } from "../onboarding/types"; -import { redis } from "../upstash"; +import { redis } from "../upstash/redis"; import { authUserActionClient } from "./safe-action"; // Generate a new client secret for an integration diff --git a/apps/web/lib/actions/submit-oauth-app-for-review.ts b/apps/web/lib/actions/submit-oauth-app-for-review.ts index 9aada8a4ac2..fbe3aea8b8f 100644 --- a/apps/web/lib/actions/submit-oauth-app-for-review.ts +++ b/apps/web/lib/actions/submit-oauth-app-for-review.ts @@ -3,7 +3,7 @@ import { plain, upsertPlainCustomer } from "@/lib/plain"; import { prisma } from "@dub/prisma"; import { ComponentDividerSpacingSize } from "@team-plain/typescript-sdk"; -import { ratelimit } from "../upstash"; +import { ratelimit } from "../upstash/ratelimit"; import z from "../zod"; import { authActionClient } from "./safe-action"; diff --git a/apps/web/lib/analytics/get-analytics.ts b/apps/web/lib/analytics/get-analytics.ts index f079766d06b..4535ee30317 100644 --- a/apps/web/lib/analytics/get-analytics.ts +++ b/apps/web/lib/analytics/get-analytics.ts @@ -4,7 +4,7 @@ import { UTM_TAGS_PLURAL_LIST } from "@/lib/zod/schemas/utm"; import { prismaEdge } from "@dub/prisma/edge"; import { linkConstructor, punyEncode } from "@dub/utils"; import { decodeKeyIfCaseSensitive } from "../api/links/case-sensitivity"; -import { conn } from "../planetscale"; +import { conn } from "../planetscale/connection"; import z from "../zod"; import { analyticsFilterTB } from "../zod/schemas/analytics"; import { analyticsResponse } from "../zod/schemas/analytics-response"; diff --git a/apps/web/lib/analytics/get-customer-events.ts b/apps/web/lib/analytics/get-customer-events.ts index 80b942a2619..a0232089256 100644 --- a/apps/web/lib/analytics/get-customer-events.ts +++ b/apps/web/lib/analytics/get-customer-events.ts @@ -1,7 +1,7 @@ import { tb } from "@/lib/tinybird"; import { prisma } from "@dub/prisma"; import { Link } from "@dub/prisma/client"; -import { transformLink } from "../api/links"; +import { transformLink } from "../api/links/utils/transform-link"; import { decodeLinkIfCaseSensitive } from "../api/links/case-sensitivity"; import z from "../zod"; import { diff --git a/apps/web/lib/analytics/get-events.ts b/apps/web/lib/analytics/get-events.ts index bca1c30aac8..b7b3d61e7dc 100644 --- a/apps/web/lib/analytics/get-events.ts +++ b/apps/web/lib/analytics/get-events.ts @@ -2,7 +2,7 @@ import { tb } from "@/lib/tinybird"; import { prisma } from "@dub/prisma"; import { Link } from "@dub/prisma/client"; import { OG_AVATAR_URL } from "@dub/utils"; -import { transformLink } from "../api/links"; +import { transformLink } from "../api/links/utils/transform-link"; import { decodeLinkIfCaseSensitive } from "../api/links/case-sensitivity"; import { generateRandomName } from "../names"; import z from "../zod"; diff --git a/apps/web/lib/api/links/ab-test-scheduler.ts b/apps/web/lib/api/links/ab-test-scheduler.ts index 77831c6481e..11bf58e5f84 100644 --- a/apps/web/lib/api/links/ab-test-scheduler.ts +++ b/apps/web/lib/api/links/ab-test-scheduler.ts @@ -1,6 +1,6 @@ import { qstash } from "@/lib/cron"; import { APP_DOMAIN_WITH_NGROK } from "@dub/utils"; -import { ExpandedLink } from "./utils"; +import { ExpandedLink } from "./utils/transform-link"; // Schedules a job to complete a link's AB test export async function scheduleABTestCompletion( diff --git a/apps/web/lib/api/links/bulk-create-links.ts b/apps/web/lib/api/links/bulk-create-links.ts index 9ca4fd6bfff..88b24b61dc6 100644 --- a/apps/web/lib/api/links/bulk-create-links.ts +++ b/apps/web/lib/api/links/bulk-create-links.ts @@ -9,11 +9,9 @@ import { encodeKeyIfCaseSensitive } from "./case-sensitivity"; import { includeTags } from "./include-tags"; import { propagateBulkLinkChanges } from "./propagate-bulk-link-changes"; import { updateLinksUsage } from "./update-links-usage"; -import { - checkIfLinksHaveTags, - checkIfLinksHaveWebhooks, - transformLink, -} from "./utils"; +import { checkIfLinksHaveTags } from "./utils/check-if-links-have-tags"; +import { checkIfLinksHaveWebhooks } from "./utils/check-if-links-have-webhooks"; +import { transformLink } from "./utils/transform-link"; export async function bulkCreateLinks({ links, diff --git a/apps/web/lib/api/links/bulk-delete-links.ts b/apps/web/lib/api/links/bulk-delete-links.ts index 413250e2257..02535697285 100644 --- a/apps/web/lib/api/links/bulk-delete-links.ts +++ b/apps/web/lib/api/links/bulk-delete-links.ts @@ -3,7 +3,7 @@ import { recordLinkTB, transformLinkTB } from "@/lib/tinybird"; import { prisma } from "@dub/prisma"; import { R2_URL } from "@dub/utils"; import { linkCache } from "./cache"; -import { ExpandedLink } from "./utils"; +import { ExpandedLink } from "./utils/transform-link"; export async function bulkDeleteLinks(links: ExpandedLink[]) { if (links.length === 0) { diff --git a/apps/web/lib/api/links/bulk-update-links.ts b/apps/web/lib/api/links/bulk-update-links.ts index 3ff288d0163..5fc68d518c3 100644 --- a/apps/web/lib/api/links/bulk-update-links.ts +++ b/apps/web/lib/api/links/bulk-update-links.ts @@ -7,7 +7,7 @@ import { R2_URL, getParamsFromURL, nanoid, truncate } from "@dub/utils"; import { waitUntil } from "@vercel/functions"; import { combineTagIds } from "../tags/combine-tag-ids"; import { propagateBulkLinkChanges } from "./propagate-bulk-link-changes"; -import { transformLink } from "./utils"; +import { transformLink } from "./utils/transform-link"; export async function bulkUpdateLinks( // omit externalIds from params diff --git a/apps/web/lib/api/links/create-link.ts b/apps/web/lib/api/links/create-link.ts index b90b95f1535..874df7e39e8 100644 --- a/apps/web/lib/api/links/create-link.ts +++ b/apps/web/lib/api/links/create-link.ts @@ -21,7 +21,7 @@ import { linkCache } from "./cache"; import { encodeKeyIfCaseSensitive } from "./case-sensitivity"; import { includeTags } from "./include-tags"; import { updateLinksUsage } from "./update-links-usage"; -import { transformLink } from "./utils"; +import { transformLink } from "./utils/transform-link"; export async function createLink(link: ProcessedLinkProps) { let { diff --git a/apps/web/lib/api/links/delete-link.ts b/apps/web/lib/api/links/delete-link.ts index c498a8b5806..d990d7ebea0 100644 --- a/apps/web/lib/api/links/delete-link.ts +++ b/apps/web/lib/api/links/delete-link.ts @@ -5,7 +5,7 @@ import { R2_URL } from "@dub/utils"; import { waitUntil } from "@vercel/functions"; import { linkCache } from "./cache"; import { includeTags } from "./include-tags"; -import { transformLink } from "./utils"; +import { transformLink } from "./utils/transform-link"; export async function deleteLink(linkId: string) { const link = await prisma.link.delete({ diff --git a/apps/web/lib/api/links/get-links-for-workspace.ts b/apps/web/lib/api/links/get-links-for-workspace.ts index d968d7b5a01..a60b9eafc26 100644 --- a/apps/web/lib/api/links/get-links-for-workspace.ts +++ b/apps/web/lib/api/links/get-links-for-workspace.ts @@ -3,7 +3,7 @@ import { getLinksQuerySchemaExtended } from "@/lib/zod/schemas/links"; import { prisma } from "@dub/prisma"; import { combineTagIds } from "../tags/combine-tag-ids"; import { encodeKeyIfCaseSensitive } from "./case-sensitivity"; -import { transformLink } from "./utils"; +import { transformLink } from "./utils/transform-link"; export async function getLinksForWorkspace({ workspaceId, diff --git a/apps/web/lib/api/links/process-link.ts b/apps/web/lib/api/links/process-link.ts index 6a4cf6c8086..a051a3632a1 100644 --- a/apps/web/lib/api/links/process-link.ts +++ b/apps/web/lib/api/links/process-link.ts @@ -20,7 +20,8 @@ import { } from "@dub/utils"; import { combineTagIds } from "../tags/combine-tag-ids"; import { businessFeaturesCheck, proFeaturesCheck } from "./plan-features-check"; -import { keyChecks, processKey } from "./utils"; +import { keyChecks } from "./utils/key-checks"; +import { processKey } from "./utils/process-key"; export async function processLink>({ payload, diff --git a/apps/web/lib/api/links/update-link.ts b/apps/web/lib/api/links/update-link.ts index 90e0e681234..26a39e9e78a 100644 --- a/apps/web/lib/api/links/update-link.ts +++ b/apps/web/lib/api/links/update-link.ts @@ -19,7 +19,7 @@ import { scheduleABTestCompletion } from "./ab-test-scheduler"; import { linkCache } from "./cache"; import { encodeKeyIfCaseSensitive } from "./case-sensitivity"; import { includeTags } from "./include-tags"; -import { transformLink } from "./utils"; +import { transformLink } from "./utils/transform-link"; export async function updateLink({ oldLink, diff --git a/apps/web/lib/api/utils.ts b/apps/web/lib/api/utils.ts index 63973cb2e09..418a0067a04 100644 --- a/apps/web/lib/api/utils.ts +++ b/apps/web/lib/api/utils.ts @@ -2,7 +2,7 @@ import { ipAddress } from "@vercel/functions"; import { getToken } from "next-auth/jwt"; import { headers } from "next/headers"; import { NextRequest } from "next/server"; -import { ratelimit } from "../upstash"; +import { ratelimit } from "../upstash/ratelimit"; import { DubApiError } from "./errors"; export const parseRequestBody = async (req: Request) => { diff --git a/apps/web/lib/api/workspaces.ts b/apps/web/lib/api/workspaces.ts index 71de6938885..4840f38f0db 100644 --- a/apps/web/lib/api/workspaces.ts +++ b/apps/web/lib/api/workspaces.ts @@ -11,7 +11,7 @@ import { import { waitUntil } from "@vercel/functions"; import { qstash } from "../cron"; import { cancelSubscription } from "../stripe/cancel-subscription"; -import { markDomainAsDeleted } from "./domains"; +import { markDomainAsDeleted } from "./domains/mark-domain-deleted"; import { linkCache } from "./links/cache"; export async function deleteWorkspace( diff --git a/apps/web/lib/auth/workspace.ts b/apps/web/lib/auth/workspace.ts index 2d235a49226..aafaca737d2 100644 --- a/apps/web/lib/auth/workspace.ts +++ b/apps/web/lib/auth/workspace.ts @@ -12,7 +12,7 @@ import { import { throwIfNoAccess } from "../api/tokens/permissions"; import { Scope, mapScopesToPermissions } from "../api/tokens/scopes"; import { normalizeWorkspaceId } from "../api/workspace-id"; -import { getFeatureFlags } from "../edge-config"; +import { getFeatureFlags } from "../edge-config/get-feature-flags"; import { logConversionEvent } from "../tinybird/log-conversion-events"; import { hashToken } from "./hash-token"; import { Session, getSession } from "./utils"; diff --git a/apps/web/lib/fetchers/index.ts b/apps/web/lib/fetchers/index.ts index b4459198d04..8fdee4d603e 100644 --- a/apps/web/lib/fetchers/index.ts +++ b/apps/web/lib/fetchers/index.ts @@ -1,6 +1,6 @@ import { prisma } from "@dub/prisma"; import { cache } from "react"; -import { getSession } from "../auth"; +import { getSession } from "../auth/utils"; export const getDefaultWorkspace = cache(async () => { const session = await getSession(); diff --git a/apps/web/lib/middleware/embed.ts b/apps/web/lib/middleware/embed.ts index 9c88d3fcbe7..30d9507c809 100644 --- a/apps/web/lib/middleware/embed.ts +++ b/apps/web/lib/middleware/embed.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from "next/server"; -import { parse } from "./utils"; +import { parse } from "./utils/parse"; export default function EmbedMiddleware(req: NextRequest) { const { searchParamsObj, fullPath } = parse(req); diff --git a/apps/web/lib/middleware/link.ts b/apps/web/lib/middleware/link.ts index b926b4e9d5d..3d7078e1010 100644 --- a/apps/web/lib/middleware/link.ts +++ b/apps/web/lib/middleware/link.ts @@ -28,7 +28,7 @@ import { import { linkCache } from "../api/links/cache"; import { isCaseSensitiveDomain } from "../api/links/case-sensitivity"; import { clickCache } from "../api/links/click-cache"; -import { getLinkViaEdge } from "../planetscale"; +import { getLinkViaEdge } from "../planetscale/get-link-via-edge"; import { getDomainViaEdge } from "../planetscale/get-domain-via-edge"; import { getPartnerAndDiscount } from "../planetscale/get-partner-discount"; import { resolveABTestURL } from "./utils/resolve-ab-test-url"; diff --git a/apps/web/lib/middleware/new-link.ts b/apps/web/lib/middleware/new-link.ts index 3d0be1f554b..8252a5bb60f 100644 --- a/apps/web/lib/middleware/new-link.ts +++ b/apps/web/lib/middleware/new-link.ts @@ -1,7 +1,7 @@ import { APP_DOMAIN } from "@dub/utils"; import { NextRequest, NextResponse } from "next/server"; import { UserProps } from "../types"; -import { parse } from "./utils"; +import { parse } from "./utils/parse"; import { getDefaultWorkspace } from "./utils/get-default-workspace"; export default async function NewLinkMiddleware( diff --git a/apps/web/lib/middleware/workspaces.ts b/apps/web/lib/middleware/workspaces.ts index 2140ffda8b6..fd10f047552 100644 --- a/apps/web/lib/middleware/workspaces.ts +++ b/apps/web/lib/middleware/workspaces.ts @@ -1,6 +1,6 @@ import { UserProps } from "@/lib/types"; import { NextRequest, NextResponse } from "next/server"; -import { parse } from "./utils"; +import { parse } from "./utils/parse"; import { getDefaultWorkspace } from "./utils/get-default-workspace"; import { isTopLevelSettingsRedirect } from "./utils/is-top-level-settings-redirect"; diff --git a/apps/web/lib/partners/complete-program-applications.ts b/apps/web/lib/partners/complete-program-applications.ts index cf93c17f233..1f06022358b 100644 --- a/apps/web/lib/partners/complete-program-applications.ts +++ b/apps/web/lib/partners/complete-program-applications.ts @@ -2,7 +2,7 @@ import { prisma } from "@dub/prisma"; import { cookies } from "next/headers"; import { createId } from "../api/create-id"; import { notifyPartnerApplication } from "../api/partners/notify-partner-application"; -import { ratelimit } from "../upstash"; +import { ratelimit } from "../upstash/ratelimit"; /** * Completes any outstanding program applications for a user diff --git a/apps/web/lib/plain.ts b/apps/web/lib/plain.ts index b38194fa751..0be03bef1c8 100644 --- a/apps/web/lib/plain.ts +++ b/apps/web/lib/plain.ts @@ -1,5 +1,5 @@ import { CreateThreadInput, PlainClient } from "@team-plain/typescript-sdk"; -import { Session } from "./auth"; +import { Session } from "./auth/utils"; export const plain = new PlainClient({ apiKey: process.env.PLAIN_API_KEY as string,