From f9c719ff4bde793df8f053d93b18ec3f5d89358b Mon Sep 17 00:00:00 2001 From: Anton Gunnarsson Date: Thu, 26 Jun 2025 09:44:13 +0000 Subject: [PATCH] Merged in feat/sw-2866-move-partners-router-to-trpc-package (pull request #2414) feat(sw-2866): Move partners router to trpc package * Add eslint to trpc package * Apply lint rules * Use direct imports from trpc package * Add lint-staged config to trpc * Move lang enum to common * Restructure trpc package folder structure * WIP first step * update internal imports in trpc * Fix most errors in scandic-web Just 100 left... * Move Props type out of trpc * Fix CategorizedFilters types * Move more schemas in hotel router * Fix deps * fix getNonContentstackUrls * Fix import error * Fix entry error handling * Fix generateMetadata metrics * Fix alertType enum * Fix duplicated types * lint:fix * Merge branch 'master' into feat/sw-2863-move-contentstack-router-to-trpc-package * Fix broken imports * Move booking router to trpc package * Move partners router to trpc package * Merge branch 'master' into feat/sw-2866-move-partners-router-to-trpc-package Approved-by: Linus Flood --- .../sas-x-scandic/callback/route.ts | 3 ++- .../sas-x-scandic/otp/OneTimePasswordForm.tsx | 3 ++- .../(protected)/sas-x-scandic/otp/page.tsx | 5 +++- .../(protected)/sas-x-scandic/sasUtils.ts | 3 --- .../TransferPointsFormClient.tsx | 2 +- .../scandic-web/constants/membershipLevels.ts | 10 -------- apps/scandic-web/server/index.ts | 2 +- .../sas/otp/request/requestOtpError.test.ts | 17 ------------- .../sas/otp/verify/verifyOtpError.test.ts | 24 ------------------- .../types/trpc/routers/jobylon/index.ts | 3 +-- packages/common/constants/membershipLevels.ts | 10 ++++++++ packages/trpc/env/server.ts | 8 +++++++ packages/trpc/lib/constants/partnerSAS.ts | 2 ++ packages/trpc/lib/routers/hotels/utils.ts | 7 +++--- .../trpc/lib}/routers/partners/index.ts | 3 +-- .../lib}/routers/partners/jobylon/output.ts | 0 .../lib}/routers/partners/jobylon/query.ts | 4 ++-- .../lib}/routers/partners/sas/getSasToken.ts | 2 +- .../trpc/lib}/routers/partners/sas/index.ts | 3 +-- .../lib}/routers/partners/sas/linkAccount.ts | 5 ++-- .../routers/partners/sas/otp/constants.ts | 0 .../routers/partners/sas/otp/getOTPState.ts | 0 .../partners/sas/otp/request/requestOtp.ts | 6 ++--- .../sas/otp/request/requestOtpError.ts | 0 .../partners/sas/otp/verify/verifyOtp.ts | 6 ++--- .../partners/sas/otp/verify/verifyOtpError.ts | 0 .../partners/sas/performLevelUpgrade.ts | 12 +++++----- .../routers/partners/sas/transferPoints.ts | 5 ++-- .../routers/partners/sas/unlinkAccount.ts | 5 ++-- packages/trpc/package.json | 6 ++++- yarn.lock | 4 +++- 31 files changed, 63 insertions(+), 97 deletions(-) delete mode 100644 apps/scandic-web/server/routers/partners/sas/otp/request/requestOtpError.test.ts delete mode 100644 apps/scandic-web/server/routers/partners/sas/otp/verify/verifyOtpError.test.ts create mode 100644 packages/trpc/lib/constants/partnerSAS.ts rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/index.ts (79%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/jobylon/output.ts (100%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/jobylon/query.ts (94%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/getSasToken.ts (70%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/index.ts (90%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/linkAccount.ts (96%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/otp/constants.ts (100%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/otp/getOTPState.ts (100%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/otp/request/requestOtp.ts (96%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/otp/request/requestOtpError.ts (100%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/otp/verify/verifyOtp.ts (95%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/otp/verify/verifyOtpError.ts (100%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/performLevelUpgrade.ts (88%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/transferPoints.ts (94%) rename {apps/scandic-web/server => packages/trpc/lib}/routers/partners/sas/unlinkAccount.ts (92%) diff --git a/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/callback/route.ts b/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/callback/route.ts index d5565b3b0..c2e084104 100644 --- a/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/callback/route.ts +++ b/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/callback/route.ts @@ -3,11 +3,12 @@ import { redirect } from "next/navigation" import { z } from "zod" import { safeTry } from "@scandic-hotels/common/utils/safeTry" +import { SAS_TOKEN_STORAGE_KEY } from "@scandic-hotels/trpc/constants/partnerSAS" import { env } from "@/env/server" import { serverClient } from "@/lib/trpc/server" -import { SAS_TOKEN_STORAGE_KEY, stateSchema } from "../sasUtils" +import { stateSchema } from "../sasUtils" import type { NextRequest } from "next/server" diff --git a/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/otp/OneTimePasswordForm.tsx b/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/otp/OneTimePasswordForm.tsx index c92ef0f47..b1e866fe6 100644 --- a/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/otp/OneTimePasswordForm.tsx +++ b/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/otp/OneTimePasswordForm.tsx @@ -19,7 +19,8 @@ import Loading from "./loading" import styles from "./OneTimePasswordForm.module.css" -import type { RequestOtpError } from "@/server/routers/partners/sas/otp/request/requestOtpError" +import type { RequestOtpError } from "@scandic-hotels/trpc/routers/partners/sas/otp/request/requestOtpError" + import type { OtpError } from "./page" type Redirect = { url: string; type?: "replace" | "push" } diff --git a/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/otp/page.tsx b/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/otp/page.tsx index f7085a83a..caa5accf2 100644 --- a/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/otp/page.tsx +++ b/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/otp/page.tsx @@ -3,13 +3,16 @@ import { redirect } from "next/navigation" import { z } from "zod" import { safeTry } from "@scandic-hotels/common/utils/safeTry" +import { + SAS_TOKEN_STORAGE_KEY, + SAS_TRANSFER_POINT_KEY, +} from "@scandic-hotels/trpc/constants/partnerSAS" import { myPages } from "@/constants/routes/myPages" import { serverClient } from "@/lib/trpc/server" import { getIntl } from "@/i18n" -import { SAS_TOKEN_STORAGE_KEY, SAS_TRANSFER_POINT_KEY } from "../sasUtils" import OneTimePasswordForm, { type OnSubmitHandler, } from "./OneTimePasswordForm" diff --git a/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/sasUtils.ts b/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/sasUtils.ts index f1be8e69e..816954e8e 100644 --- a/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/sasUtils.ts +++ b/apps/scandic-web/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/sasUtils.ts @@ -1,8 +1,5 @@ import { z } from "zod" -export const SAS_TOKEN_STORAGE_KEY = "sas-x-scandic-token" -export const SAS_TRANSFER_POINT_KEY = "sas-x-scandic-eb-points" - export const stateSchema = z.object({ intent: z.enum(["link", "unlink", "transfer"]), }) diff --git a/apps/scandic-web/components/Blocks/DynamicContent/SAS/TransferPoints/TransferPointsFormClient.tsx b/apps/scandic-web/components/Blocks/DynamicContent/SAS/TransferPoints/TransferPointsFormClient.tsx index c0b09da27..6a813a5f3 100644 --- a/apps/scandic-web/components/Blocks/DynamicContent/SAS/TransferPoints/TransferPointsFormClient.tsx +++ b/apps/scandic-web/components/Blocks/DynamicContent/SAS/TransferPoints/TransferPointsFormClient.tsx @@ -18,8 +18,8 @@ import { useIntl } from "react-intl" import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" import { Input } from "@scandic-hotels/design-system/Input" import { Typography } from "@scandic-hotels/design-system/Typography" +import { SAS_TRANSFER_POINT_KEY } from "@scandic-hotels/trpc/constants/partnerSAS" -import { SAS_TRANSFER_POINT_KEY } from "@/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/sasUtils" import Image from "@/components/Image" import Modal from "@/components/Modal" import Button from "@/components/TempDesignSystem/Button" diff --git a/apps/scandic-web/constants/membershipLevels.ts b/apps/scandic-web/constants/membershipLevels.ts index 783d51e99..17a041270 100644 --- a/apps/scandic-web/constants/membershipLevels.ts +++ b/apps/scandic-web/constants/membershipLevels.ts @@ -2,16 +2,6 @@ import { MembershipLevelEnum } from "@scandic-hotels/common/constants/membership import type { EurobonusTier } from "@scandic-hotels/trpc/types/user" -export const FriendsMembershipLevels = [ - "L1", - "L2", - "L3", - "L4", - "L5", - "L6", - "L7", -] as const - export enum membershipLevels { L1 = 1, L2 = 2, diff --git a/apps/scandic-web/server/index.ts b/apps/scandic-web/server/index.ts index bbd2d4ab1..9c577f232 100644 --- a/apps/scandic-web/server/index.ts +++ b/apps/scandic-web/server/index.ts @@ -2,11 +2,11 @@ import { router } from "@scandic-hotels/trpc" import { contentstackRouter } from "@scandic-hotels/trpc/routers/contentstack" import { hotelsRouter } from "@scandic-hotels/trpc/routers/hotels" +import { partnerRouter } from "@scandic-hotels/trpc/routers/partners" import { autocompleteRouter } from "./routers/autocomplete" import { bookingRouter } from "./routers/booking" import { navigationRouter } from "./routers/navigation" -import { partnerRouter } from "./routers/partners" import { userRouter } from "./routers/user" export const appRouter = router({ diff --git a/apps/scandic-web/server/routers/partners/sas/otp/request/requestOtpError.test.ts b/apps/scandic-web/server/routers/partners/sas/otp/request/requestOtpError.test.ts deleted file mode 100644 index 371711c34..000000000 --- a/apps/scandic-web/server/routers/partners/sas/otp/request/requestOtpError.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { describe, expect, it } from "@jest/globals" - -import { parseSASRequestOtpError } from "./requestOtpError" - -describe("requestOtpError", () => { - it("parses error with invalid error code", () => { - const actual = parseSASRequestOtpError({ - status: "status", - error: "error", - errorCode: "a" as unknown as number, - databaseUUID: "9ffefefe-df0e-4229-9792-5ed31bef1db4", - } as any) - expect(actual).toEqual({ - errorCode: "UNKNOWN", - }) - }) -}) diff --git a/apps/scandic-web/server/routers/partners/sas/otp/verify/verifyOtpError.test.ts b/apps/scandic-web/server/routers/partners/sas/otp/verify/verifyOtpError.test.ts deleted file mode 100644 index 92f4caafb..000000000 --- a/apps/scandic-web/server/routers/partners/sas/otp/verify/verifyOtpError.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { describe, expect, it } from "@jest/globals" - -import { parseSASVerifyOtpError } from "./verifyOtpError" - -describe("verifyOtpError", () => { - it("parses error with invalid error code", () => { - const error = { - status: "status", - error: "error", - errorCode: "a", - databaseUUID: "9ffefefe-df0e-4229-9792-5ed31bef1db4", - } - - const actual = parseSASVerifyOtpError({ - status: "status", - error: "error", - errorCode: "a" as unknown as number, - databaseUUID: "9ffefefe-df0e-4229-9792-5ed31bef1db4", - } as any) - expect(actual).toEqual({ - errorCode: "UNKNOWN", - }) - }) -}) diff --git a/apps/scandic-web/types/trpc/routers/jobylon/index.ts b/apps/scandic-web/types/trpc/routers/jobylon/index.ts index 524a7ab70..4f9aa8930 100644 --- a/apps/scandic-web/types/trpc/routers/jobylon/index.ts +++ b/apps/scandic-web/types/trpc/routers/jobylon/index.ts @@ -1,5 +1,4 @@ +import type { jobylonItemSchema } from "@scandic-hotels/trpc/routers/partners/jobylon/output" import type { z } from "zod" -import type { jobylonItemSchema } from "@/server/routers/partners/jobylon/output" - export interface JobylonItem extends z.output {} diff --git a/packages/common/constants/membershipLevels.ts b/packages/common/constants/membershipLevels.ts index 625b8908b..f26a2aa2e 100644 --- a/packages/common/constants/membershipLevels.ts +++ b/packages/common/constants/membershipLevels.ts @@ -1,3 +1,13 @@ +export const FriendsMembershipLevels = [ + "L1", + "L2", + "L3", + "L4", + "L5", + "L6", + "L7", +] as const + export enum MembershipLevelEnum { L1 = "L1", L2 = "L2", diff --git a/packages/trpc/env/server.ts b/packages/trpc/env/server.ts index 6dca8fc40..1463b1d61 100644 --- a/packages/trpc/env/server.ts +++ b/packages/trpc/env/server.ts @@ -16,6 +16,10 @@ export const env = createEnv({ isServer: typeof window === "undefined" || "Deno" in window, server: { API_BASEURL: z.string(), + SAS_API_ENDPOINT: z.string().default(""), + SAS_AUTH_ENDPOINT: z.string().default(""), + SAS_OCP_APIM: z.string().default(""), + SAS_AUTH_CLIENTID: z.string().default(""), CACHE_TIME_HOTELS: z.coerce .number() .default(TWENTYFOUR_HOURS) @@ -43,6 +47,10 @@ export const env = createEnv({ emptyStringAsUndefined: true, runtimeEnv: { API_BASEURL: process.env.API_BASEURL, + SAS_API_ENDPOINT: process.env.SAS_API_ENDPOINT, + SAS_AUTH_ENDPOINT: process.env.SAS_AUTH_ENDPOINT, + SAS_OCP_APIM: process.env.SAS_OCP_APIM, + SAS_AUTH_CLIENTID: process.env.SAS_AUTH_CLIENTID, CACHE_TIME_HOTELS: process.env.CACHE_TIME_HOTELS, CACHE_TIME_CITY_SEARCH: process.env.CACHE_TIME_CITY_SEARCH, NODE_ENV: process.env.NODE_ENV, diff --git a/packages/trpc/lib/constants/partnerSAS.ts b/packages/trpc/lib/constants/partnerSAS.ts new file mode 100644 index 000000000..2827ba613 --- /dev/null +++ b/packages/trpc/lib/constants/partnerSAS.ts @@ -0,0 +1,2 @@ +export const SAS_TOKEN_STORAGE_KEY = "sas-x-scandic-token" +export const SAS_TRANSFER_POINT_KEY = "sas-x-scandic-eb-points" diff --git a/packages/trpc/lib/routers/hotels/utils.ts b/packages/trpc/lib/routers/hotels/utils.ts index 1621a0854..677044aad 100644 --- a/packages/trpc/lib/routers/hotels/utils.ts +++ b/packages/trpc/lib/routers/hotels/utils.ts @@ -6,6 +6,9 @@ import { selectRate } from "@scandic-hotels/common/constants/routes/hotelReserva import { getCacheClient } from "@scandic-hotels/common/dataCache" import { createCounter } from "@scandic-hotels/common/telemetry" import { chunk } from "@scandic-hotels/common/utils/chunk" +import { RoomPackageCodeEnum } from "@scandic-hotels/trpc/enums/roomFilter" +import { AvailabilityEnum } from "@scandic-hotels/trpc/enums/selectHotel" +import { type RoomFeaturesInput } from "@scandic-hotels/trpc/routers/hotels/input" import { hotelsAvailabilitySchema, packagesSchema, @@ -20,8 +23,6 @@ import { REDEMPTION } from "../../constants/booking" import { cache } from "../../DUPLICATED/cache" import { BookingErrorCodeEnum } from "../../enums/bookingErrorCode" import { HotelTypeEnum } from "../../enums/hotelType" -import { RoomPackageCodeEnum } from "../../enums/roomFilter" -import { AvailabilityEnum } from "../../enums/selectHotel" import { badRequestError } from "../../errors" import { toApiLang } from "../../utils" import { getHotelPageUrls } from "../contentstack/hotelPage/utils" @@ -60,9 +61,7 @@ import type { CityLocation, } from "../../types/locations" import type { PackagesOutput } from "../../types/packages" -import type { RoomFeaturesInput } from "./input" import type { Cities } from "./output" - export const locationsAffix = "locations" export async function getCitiesByCountry({ diff --git a/apps/scandic-web/server/routers/partners/index.ts b/packages/trpc/lib/routers/partners/index.ts similarity index 79% rename from apps/scandic-web/server/routers/partners/index.ts rename to packages/trpc/lib/routers/partners/index.ts index a83f29da9..c25d17b06 100644 --- a/apps/scandic-web/server/routers/partners/index.ts +++ b/packages/trpc/lib/routers/partners/index.ts @@ -1,5 +1,4 @@ -import { router } from "@scandic-hotels/trpc" - +import { router } from "../.." import { jobylonQueryRouter } from "./jobylon/query" import { sasRouter } from "./sas" diff --git a/apps/scandic-web/server/routers/partners/jobylon/output.ts b/packages/trpc/lib/routers/partners/jobylon/output.ts similarity index 100% rename from apps/scandic-web/server/routers/partners/jobylon/output.ts rename to packages/trpc/lib/routers/partners/jobylon/output.ts diff --git a/apps/scandic-web/server/routers/partners/jobylon/query.ts b/packages/trpc/lib/routers/partners/jobylon/query.ts similarity index 94% rename from apps/scandic-web/server/routers/partners/jobylon/query.ts rename to packages/trpc/lib/routers/partners/jobylon/query.ts index f6ea7bd5b..d7734e2c9 100644 --- a/apps/scandic-web/server/routers/partners/jobylon/query.ts +++ b/packages/trpc/lib/routers/partners/jobylon/query.ts @@ -1,8 +1,8 @@ import { getCacheClient } from "@scandic-hotels/common/dataCache" import { createCounter } from "@scandic-hotels/common/telemetry" -import { router } from "@scandic-hotels/trpc" -import { publicProcedure } from "@scandic-hotels/trpc/procedures" +import { router } from "../../.." +import { publicProcedure } from "../../../procedures" import { jobylonFeedSchema } from "./output" export const TWENTYFOUR_HOURS = 60 * 60 * 24 diff --git a/apps/scandic-web/server/routers/partners/sas/getSasToken.ts b/packages/trpc/lib/routers/partners/sas/getSasToken.ts similarity index 70% rename from apps/scandic-web/server/routers/partners/sas/getSasToken.ts rename to packages/trpc/lib/routers/partners/sas/getSasToken.ts index f988422ec..2516b1b46 100644 --- a/apps/scandic-web/server/routers/partners/sas/getSasToken.ts +++ b/packages/trpc/lib/routers/partners/sas/getSasToken.ts @@ -1,6 +1,6 @@ import { cookies } from "next/headers" -import { SAS_TOKEN_STORAGE_KEY } from "@/app/[lang]/(partner)/(sas)/(protected)/sas-x-scandic/sasUtils" +import { SAS_TOKEN_STORAGE_KEY } from "../../../constants/partnerSAS" export async function getSasToken() { const cookieStore = await cookies() diff --git a/apps/scandic-web/server/routers/partners/sas/index.ts b/packages/trpc/lib/routers/partners/sas/index.ts similarity index 90% rename from apps/scandic-web/server/routers/partners/sas/index.ts rename to packages/trpc/lib/routers/partners/sas/index.ts index 645766c98..2bd2b2283 100644 --- a/apps/scandic-web/server/routers/partners/sas/index.ts +++ b/packages/trpc/lib/routers/partners/sas/index.ts @@ -1,5 +1,4 @@ -import { router } from "@scandic-hotels/trpc" - +import { router } from "../../.." import { requestOtp } from "./otp/request/requestOtp" import { verifyOtp } from "./otp/verify/verifyOtp" import { linkAccount } from "./linkAccount" diff --git a/apps/scandic-web/server/routers/partners/sas/linkAccount.ts b/packages/trpc/lib/routers/partners/sas/linkAccount.ts similarity index 96% rename from apps/scandic-web/server/routers/partners/sas/linkAccount.ts rename to packages/trpc/lib/routers/partners/sas/linkAccount.ts index 00713df37..7fba3fdf8 100644 --- a/apps/scandic-web/server/routers/partners/sas/linkAccount.ts +++ b/packages/trpc/lib/routers/partners/sas/linkAccount.ts @@ -1,9 +1,8 @@ import * as Sentry from "@sentry/nextjs" import { z } from "zod" -import * as api from "@scandic-hotels/trpc/api" -import { protectedProcedure } from "@scandic-hotels/trpc/procedures" - +import * as api from "../../../api" +import { protectedProcedure } from "../../../procedures" import { getOTPState } from "./otp/getOTPState" import { getSasToken } from "./getSasToken" diff --git a/apps/scandic-web/server/routers/partners/sas/otp/constants.ts b/packages/trpc/lib/routers/partners/sas/otp/constants.ts similarity index 100% rename from apps/scandic-web/server/routers/partners/sas/otp/constants.ts rename to packages/trpc/lib/routers/partners/sas/otp/constants.ts diff --git a/apps/scandic-web/server/routers/partners/sas/otp/getOTPState.ts b/packages/trpc/lib/routers/partners/sas/otp/getOTPState.ts similarity index 100% rename from apps/scandic-web/server/routers/partners/sas/otp/getOTPState.ts rename to packages/trpc/lib/routers/partners/sas/otp/getOTPState.ts diff --git a/apps/scandic-web/server/routers/partners/sas/otp/request/requestOtp.ts b/packages/trpc/lib/routers/partners/sas/otp/request/requestOtp.ts similarity index 96% rename from apps/scandic-web/server/routers/partners/sas/otp/request/requestOtp.ts rename to packages/trpc/lib/routers/partners/sas/otp/request/requestOtp.ts index 874b57bf6..1b2a8a517 100644 --- a/apps/scandic-web/server/routers/partners/sas/otp/request/requestOtp.ts +++ b/packages/trpc/lib/routers/partners/sas/otp/request/requestOtp.ts @@ -4,10 +4,8 @@ import { cookies } from "next/headers" import { v4 as uuidv4 } from "uuid" import { z } from "zod" -import { protectedProcedure } from "@scandic-hotels/trpc/procedures" - -import { env } from "@/env/server" - +import { env } from "../../../../../../env/server" +import { protectedProcedure } from "../../../../../procedures" import { getSasToken } from "../../getSasToken" import { SAS_REQUEST_OTP_STATE_STORAGE_COOKIE_NAME } from "../constants" import { diff --git a/apps/scandic-web/server/routers/partners/sas/otp/request/requestOtpError.ts b/packages/trpc/lib/routers/partners/sas/otp/request/requestOtpError.ts similarity index 100% rename from apps/scandic-web/server/routers/partners/sas/otp/request/requestOtpError.ts rename to packages/trpc/lib/routers/partners/sas/otp/request/requestOtpError.ts diff --git a/apps/scandic-web/server/routers/partners/sas/otp/verify/verifyOtp.ts b/packages/trpc/lib/routers/partners/sas/otp/verify/verifyOtp.ts similarity index 95% rename from apps/scandic-web/server/routers/partners/sas/otp/verify/verifyOtp.ts rename to packages/trpc/lib/routers/partners/sas/otp/verify/verifyOtp.ts index a69e84ea6..7c42c4693 100644 --- a/apps/scandic-web/server/routers/partners/sas/otp/verify/verifyOtp.ts +++ b/packages/trpc/lib/routers/partners/sas/otp/verify/verifyOtp.ts @@ -1,10 +1,8 @@ import { TRPCError } from "@trpc/server" import { z } from "zod" -import { protectedProcedure } from "@scandic-hotels/trpc/procedures" - -import { env } from "@/env/server" - +import { env } from "../../../../../../env/server" +import { protectedProcedure } from "../../../../../procedures" import { getSasToken } from "../../getSasToken" import { getOTPState } from "../getOTPState" import { diff --git a/apps/scandic-web/server/routers/partners/sas/otp/verify/verifyOtpError.ts b/packages/trpc/lib/routers/partners/sas/otp/verify/verifyOtpError.ts similarity index 100% rename from apps/scandic-web/server/routers/partners/sas/otp/verify/verifyOtpError.ts rename to packages/trpc/lib/routers/partners/sas/otp/verify/verifyOtpError.ts diff --git a/apps/scandic-web/server/routers/partners/sas/performLevelUpgrade.ts b/packages/trpc/lib/routers/partners/sas/performLevelUpgrade.ts similarity index 88% rename from apps/scandic-web/server/routers/partners/sas/performLevelUpgrade.ts rename to packages/trpc/lib/routers/partners/sas/performLevelUpgrade.ts index 8603c2541..1b0cf9b0b 100644 --- a/apps/scandic-web/server/routers/partners/sas/performLevelUpgrade.ts +++ b/packages/trpc/lib/routers/partners/sas/performLevelUpgrade.ts @@ -2,14 +2,14 @@ import * as Sentry from "@sentry/nextjs" import { cookies } from "next/headers" import { z } from "zod" -import * as api from "@scandic-hotels/trpc/api" -import { protectedProcedure } from "@scandic-hotels/trpc/procedures" -import { getUserSchema } from "@scandic-hotels/trpc/routers/user/output" -import { getVerifiedUser } from "@scandic-hotels/trpc/routers/user/utils" +import { FriendsMembershipLevels } from "@scandic-hotels/common/constants/membershipLevels" -import { FriendsMembershipLevels } from "@/constants/membershipLevels" +import * as api from "../../../api" +import { protectedProcedure } from "../../../procedures" +import { getUserSchema } from "../../user/output" +import { getVerifiedUser } from "../../user/utils" -import type { FriendsTier } from "@scandic-hotels/trpc/types/user" +import type { FriendsTier } from "../../../types/user" const matchedSchema = z.object({ tierMatchState: z.enum(["matched"]), diff --git a/apps/scandic-web/server/routers/partners/sas/transferPoints.ts b/packages/trpc/lib/routers/partners/sas/transferPoints.ts similarity index 94% rename from apps/scandic-web/server/routers/partners/sas/transferPoints.ts rename to packages/trpc/lib/routers/partners/sas/transferPoints.ts index 4ff8109ff..7ce060ac9 100644 --- a/apps/scandic-web/server/routers/partners/sas/transferPoints.ts +++ b/packages/trpc/lib/routers/partners/sas/transferPoints.ts @@ -1,9 +1,8 @@ import * as Sentry from "@sentry/nextjs" import { z } from "zod" -import * as api from "@scandic-hotels/trpc/api" -import { protectedProcedure } from "@scandic-hotels/trpc/procedures" - +import * as api from "../../../api" +import { protectedProcedure } from "../../../procedures" import { getOTPState } from "./otp/getOTPState" import { getSasToken } from "./getSasToken" diff --git a/apps/scandic-web/server/routers/partners/sas/unlinkAccount.ts b/packages/trpc/lib/routers/partners/sas/unlinkAccount.ts similarity index 92% rename from apps/scandic-web/server/routers/partners/sas/unlinkAccount.ts rename to packages/trpc/lib/routers/partners/sas/unlinkAccount.ts index e504cf61d..a92c8bca6 100644 --- a/apps/scandic-web/server/routers/partners/sas/unlinkAccount.ts +++ b/packages/trpc/lib/routers/partners/sas/unlinkAccount.ts @@ -1,8 +1,7 @@ import { z } from "zod" -import * as api from "@scandic-hotels/trpc/api" -import { protectedProcedure } from "@scandic-hotels/trpc/procedures" - +import * as api from "../../../api" +import { protectedProcedure } from "../../../procedures" import { getOTPState } from "./otp/getOTPState" import { getSasToken } from "./getSasToken" diff --git a/packages/trpc/package.json b/packages/trpc/package.json index 4247b152d..737513730 100644 --- a/packages/trpc/package.json +++ b/packages/trpc/package.json @@ -23,6 +23,7 @@ "./routers/hotels/*": "./lib/routers/hotels/*.ts", "./routers/booking/*": "./lib/routers/booking/*.ts", "./routers/user/*": "./lib/routers/user/*.ts", + "./routers/partners/*": "./lib/routers/partners/*.ts", "./enums/*": "./lib/enums/*.ts", "./types/*": "./lib/types/*.ts", "./constants/*": "./lib/constants/*.ts", @@ -49,12 +50,15 @@ "graphql-request": "^7.1.2", "json-stable-stringify-without-jsonify": "^1.0.1", "next-auth": "5.0.0-beta.27", - "react": "19.1.0", "server-only": "^0.0.1", "slugify": "^1.6.6", "superjson": "^2.2.2", "zod": "^3.24.4" }, + "peerDependencies": { + "next": "^15", + "react": "^19" + }, "devDependencies": { "@eslint/compat": "^1.2.9", "@eslint/eslintrc": "^3.3.1", diff --git a/yarn.lock b/yarn.lock index 4ff606030..d420980fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7262,12 +7262,14 @@ __metadata: graphql-request: "npm:^7.1.2" json-stable-stringify-without-jsonify: "npm:^1.0.1" next-auth: "npm:5.0.0-beta.27" - react: "npm:19.1.0" server-only: "npm:^0.0.1" slugify: "npm:^1.6.6" superjson: "npm:^2.2.2" typescript: "npm:5.8.3" zod: "npm:^3.24.4" + peerDependencies: + next: ^15 + react: ^19 languageName: unknown linkType: soft