diff --git a/apps/partner-sas/components/Menu/UserMenu/index.tsx b/apps/partner-sas/components/Menu/UserMenu/index.tsx
index d3978e33e..22e1a694e 100644
--- a/apps/partner-sas/components/Menu/UserMenu/index.tsx
+++ b/apps/partner-sas/components/Menu/UserMenu/index.tsx
@@ -1,5 +1,3 @@
-"use client"
-
import { useSession } from "next-auth/react"
import { useEffect, useState } from "react"
import {
@@ -48,6 +46,7 @@ export function UserMenu({
})
useEffect(() => {
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setLoginLink(`/${lang}/login?redirectTo=${window?.location.href}`)
}, [lang, setLoginLink])
diff --git a/apps/partner-sas/eslint.config.mjs b/apps/partner-sas/eslint.config.mjs
index fa67c2ee3..91f21eeca 100644
--- a/apps/partner-sas/eslint.config.mjs
+++ b/apps/partner-sas/eslint.config.mjs
@@ -1,48 +1,34 @@
-import { FlatCompat } from "@eslint/eslintrc"
-import js from "@eslint/js"
-import typescriptEslint from "@typescript-eslint/eslint-plugin"
-import tsParser from "@typescript-eslint/parser"
-import { defineConfig } from "eslint/config"
+import { defineConfig, globalIgnores } from "eslint/config"
+import nextVitals from "eslint-config-next/core-web-vitals"
+import nextTs from "eslint-config-next/typescript"
import formatjs from "eslint-plugin-formatjs"
import simpleImportSort from "eslint-plugin-simple-import-sort"
-const compat = new FlatCompat({
- recommendedConfig: js.configs.recommended,
- allConfig: js.configs.all,
-})
-
export default defineConfig([
+ ...nextVitals,
+ ...nextTs,
+ globalIgnores([
+ ".next/**",
+ "node_modules/**",
+ "dist/**",
+ "build/**",
+ "public/**",
+ "playwright-report/**",
+ "test-results/**",
+ "coverage/**",
+ "*.config.js",
+ "*.config.ts",
+ "*.config.mjs",
+ "next-env.d.ts",
+ ]),
+
{
- ignores: [
- ".next/**",
- "node_modules/**",
- "dist/**",
- "build/**",
- "public/**",
- "playwright-report/**",
- "test-results/**",
- "coverage/**",
- "*.config.js",
- "*.config.ts",
- "*.config.mjs",
- "next-env.d.ts",
- ],
- },
- {
- extends: compat.extends(
- "next/core-web-vitals",
- "plugin:@typescript-eslint/recommended"
- ),
+ files: ["**/*.{js,jsx,ts,tsx,mts}"],
plugins: {
"simple-import-sort": simpleImportSort,
- "@typescript-eslint": typescriptEslint,
formatjs,
},
- languageOptions: {
- parser: tsParser,
- },
-
rules: {
"no-console": "warn",
"no-unused-vars": "off",
diff --git a/apps/partner-sas/package.json b/apps/partner-sas/package.json
index d9748a6e2..f4c6b1c25 100644
--- a/apps/partner-sas/package.json
+++ b/apps/partner-sas/package.json
@@ -22,7 +22,7 @@
},
"dependencies": {
"@formatjs/intl": "^3.1.6",
- "@netlify/plugin-nextjs": "^5.14.4",
+ "@netlify/plugin-nextjs": "^5.15.1",
"@scandic-hotels/booking-flow": "workspace:*",
"@scandic-hotels/design-system": "workspace:*",
"@scandic-hotels/tracking": "workspace:*",
@@ -32,30 +32,27 @@
"@tanstack/react-query": "^5.75.5",
"@tanstack/react-query-devtools": "^5.75.5",
"iron-session": "^8.0.4",
- "next": "^15.5.7",
+ "next": "16.0.10",
"next-auth": "5.0.0-beta.29",
- "react": "^19.0.0",
+ "react": "19.2.1",
"react-aria-components": "1.8.0",
- "react-dom": "^19.0.0",
+ "react-dom": "19.2.1",
"react-intl": "^7.1.11",
"server-only": "^0.0.1",
"usehooks-ts": "3.1.1"
},
"devDependencies": {
- "@eslint/js": "^9.26.0",
"@playwright/test": "^1.53.1",
"@scandic-hotels/common": "workspace:*",
"@scandic-hotels/typescript-config": "workspace:*",
"@swc/plugin-formatjs": "^3.2.2",
"@types/node": "^20",
- "@types/react": "^19.2.3",
- "@types/react-dom": "^19.2.3",
- "@typescript-eslint/eslint-plugin": "^8.32.0",
- "@typescript-eslint/parser": "^8.32.0",
+ "@types/react": "19.2.7",
+ "@types/react-dom": "19.2.3",
"@typescript/native-preview": "^7.0.0-dev.20251104.1",
"babel-plugin-formatjs": "^10.5.39",
"eslint": "^9",
- "eslint-config-next": "15.3.2",
+ "eslint-config-next": "16.0.7",
"eslint-plugin-formatjs": "^5.3.1",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-simple-import-sort": "^12.1.1",
diff --git a/apps/scandic-web/app/[lang]/(live)/(protected)/my-pages/@breadcrumbs/[...path]/error.tsx b/apps/scandic-web/app/[lang]/(live)/(protected)/my-pages/@breadcrumbs/[...path]/error.tsx
index 34d3aaa00..1ab2f7f1b 100644
--- a/apps/scandic-web/app/[lang]/(live)/(protected)/my-pages/@breadcrumbs/[...path]/error.tsx
+++ b/apps/scandic-web/app/[lang]/(live)/(protected)/my-pages/@breadcrumbs/[...path]/error.tsx
@@ -29,6 +29,7 @@ export default function Error({
defaultMessage: "Breadcrumbs failed for this page ({errorId})",
},
{
+ // eslint-disable-next-line react-hooks/purity
errorId: `${error.digest}@${Date.now()}`,
}
)}
diff --git a/apps/scandic-web/app/[lang]/(live)/(protected)/my-pages/[...path]/error.tsx b/apps/scandic-web/app/[lang]/(live)/(protected)/my-pages/[...path]/error.tsx
index 2087e38fe..82ae2adb1 100644
--- a/apps/scandic-web/app/[lang]/(live)/(protected)/my-pages/[...path]/error.tsx
+++ b/apps/scandic-web/app/[lang]/(live)/(protected)/my-pages/[...path]/error.tsx
@@ -29,6 +29,7 @@ export default function Error({
defaultMessage: "Error loading this page ({errorId})",
},
{
+ // eslint-disable-next-line react-hooks/purity
errorId: `${error.digest}@${Date.now()}`,
}
)}
diff --git a/apps/scandic-web/app/[lang]/(live)/(public)/(contentTypes)/@breadcrumbs/default.tsx b/apps/scandic-web/app/[lang]/(live)/(public)/(contentTypes)/@breadcrumbs/default.tsx
new file mode 100644
index 000000000..86b9e9a38
--- /dev/null
+++ b/apps/scandic-web/app/[lang]/(live)/(public)/(contentTypes)/@breadcrumbs/default.tsx
@@ -0,0 +1,3 @@
+export default function Default() {
+ return null
+}
diff --git a/apps/scandic-web/app/[lang]/(live)/(public)/(contentTypes)/destination_overview_page/[uid]/error.tsx b/apps/scandic-web/app/[lang]/(live)/(public)/(contentTypes)/destination_overview_page/[uid]/error.tsx
index 44dd10f69..9abe5a2e4 100644
--- a/apps/scandic-web/app/[lang]/(live)/(public)/(contentTypes)/destination_overview_page/[uid]/error.tsx
+++ b/apps/scandic-web/app/[lang]/(live)/(public)/(contentTypes)/destination_overview_page/[uid]/error.tsx
@@ -32,6 +32,7 @@ export default function Error({
defaultMessage: "An error occurred ({errorId})",
},
{
+ // eslint-disable-next-line react-hooks/purity
errorId: `${error.digest}@${Date.now()}`,
}
)}
diff --git a/apps/scandic-web/app/[lang]/(live)/@bookingwidget/default.tsx b/apps/scandic-web/app/[lang]/(live)/@bookingwidget/default.tsx
new file mode 100644
index 000000000..86b9e9a38
--- /dev/null
+++ b/apps/scandic-web/app/[lang]/(live)/@bookingwidget/default.tsx
@@ -0,0 +1,3 @@
+export default function Default() {
+ return null
+}
diff --git a/apps/scandic-web/app/api/web/revalidate/hotel/route.ts b/apps/scandic-web/app/api/web/revalidate/hotel/route.ts
index 975794402..63fbe92be 100644
--- a/apps/scandic-web/app/api/web/revalidate/hotel/route.ts
+++ b/apps/scandic-web/app/api/web/revalidate/hotel/route.ts
@@ -67,7 +67,7 @@ export async function POST(request: NextRequest) {
}
revalidateHotelLogger.debug(`Revalidating hotel url tag: ${tag}`)
- revalidateTag(tag)
+ revalidateTag(tag, { expire: 0 })
const cacheClient = await getCacheClient()
await cacheClient.deleteKey(tag, { fuzzy: true })
diff --git a/apps/scandic-web/app/api/web/revalidate/loyaltyConfig/route.ts b/apps/scandic-web/app/api/web/revalidate/loyaltyConfig/route.ts
index 53262d2e1..e40d87df7 100644
--- a/apps/scandic-web/app/api/web/revalidate/loyaltyConfig/route.ts
+++ b/apps/scandic-web/app/api/web/revalidate/loyaltyConfig/route.ts
@@ -84,7 +84,7 @@ export async function POST(request: NextRequest) {
}
loyaltyRevalidateLogger.info(`Revalidating loyalty config tag: ${tag}`)
- revalidateTag(tag)
+ revalidateTag(tag, { expire: 0 })
const cacheClient = await getCacheClient()
await cacheClient.deleteKey(tag, { fuzzy: true })
diff --git a/apps/scandic-web/app/api/web/revalidate/manually/route.ts b/apps/scandic-web/app/api/web/revalidate/manually/route.ts
index 27c92acfd..09faf7593 100644
--- a/apps/scandic-web/app/api/web/revalidate/manually/route.ts
+++ b/apps/scandic-web/app/api/web/revalidate/manually/route.ts
@@ -48,7 +48,7 @@ export async function POST() {
)
revalidateManuallyLogger.info(`Tag: ${tag}`)
- revalidateTag(tag)
+ revalidateTag(tag, { expire: 0 })
cacheClient.deleteKey(tag, { fuzzy: false, includeGitHashInKey: true })
return Response.json({ revalidated: true, now: Date.now() })
diff --git a/apps/scandic-web/app/api/web/revalidate/route.ts b/apps/scandic-web/app/api/web/revalidate/route.ts
index 7934b6dda..953b34cf8 100644
--- a/apps/scandic-web/app/api/web/revalidate/route.ts
+++ b/apps/scandic-web/app/api/web/revalidate/route.ts
@@ -103,31 +103,31 @@ export async function POST(request: NextRequest) {
revalidateLogger.debug(
`Revalidating tag by content_type_uid: ${contentTypeUidTag}`
)
- revalidateTag(contentTypeUidTag)
+ revalidateTag(contentTypeUidTag, { expire: 0 })
keysToDelete.push(contentTypeUidTag)
revalidateLogger.debug(`Revalidating refsTag: ${refsTag}`)
- revalidateTag(refsTag)
+ revalidateTag(refsTag, { expire: 0 })
keysToDelete.push(refsTag)
revalidateLogger.debug(`Revalidating refTag: ${refTag}`)
- revalidateTag(refTag)
+ revalidateTag(refTag, { expire: 0 })
keysToDelete.push(refTag)
revalidateLogger.debug(`Revalidating tag: ${tag}`)
- revalidateTag(tag)
+ revalidateTag(tag, { expire: 0 })
keysToDelete.push(tag)
revalidateLogger.debug(
`Revalidating language switcher tag: ${languageSwitcherTag}`
)
- revalidateTag(languageSwitcherTag)
+ revalidateTag(languageSwitcherTag, { expire: 0 })
keysToDelete.push(languageSwitcherTag)
revalidateLogger.debug(`Revalidating metadataTag: ${metadataTag}`)
- revalidateTag(metadataTag)
+ revalidateTag(metadataTag, { expire: 0 })
keysToDelete.push(metadataTag)
revalidateLogger.debug(`Revalidating contentEntryTag: ${contentEntryTag}`)
- revalidateTag(contentEntryTag)
+ revalidateTag(contentEntryTag, { expire: 0 })
keysToDelete.push(contentEntryTag)
if (entry.url) {
@@ -151,11 +151,11 @@ export async function POST(request: NextRequest) {
revalidateLogger.debug(
`Revalidating breadcrumbsRefsTag: ${breadcrumbsRefsTag}`
)
- revalidateTag(breadcrumbsRefsTag)
+ revalidateTag(breadcrumbsRefsTag, { expire: 0 })
keysToDelete.push(breadcrumbsRefsTag)
revalidateLogger.debug(`Revalidating breadcrumbsTag: ${breadcrumbsTag}`)
- revalidateTag(breadcrumbsTag)
+ revalidateTag(breadcrumbsTag, { expire: 0 })
keysToDelete.push(breadcrumbsTag)
}
@@ -167,7 +167,7 @@ export async function POST(request: NextRequest) {
)
revalidateLogger.debug(`Revalidating pageSettingsTag: ${pageSettingsTag}`)
- revalidateTag(pageSettingsTag)
+ revalidateTag(pageSettingsTag, { expire: 0 })
keysToDelete.push(pageSettingsTag)
}
diff --git a/apps/scandic-web/components/Blocks/DynamicContent/OverviewTable/Client.tsx b/apps/scandic-web/components/Blocks/DynamicContent/OverviewTable/Client.tsx
index e2cf2c3a0..812c96f7a 100644
--- a/apps/scandic-web/components/Blocks/DynamicContent/OverviewTable/Client.tsx
+++ b/apps/scandic-web/components/Blocks/DynamicContent/OverviewTable/Client.tsx
@@ -157,7 +157,9 @@ export default function OverviewTableClient({
+ {/* eslint-disable-next-line react-hooks/static-components */}
+ {/* eslint-disable-next-line react-hooks/static-components */}
{
if (!api) return
+ // eslint-disable-next-line react-hooks/set-state-in-effect
onSelect(api)
api.on("reInit", onSelect)
api.on("select", onSelect)
diff --git a/apps/scandic-web/components/ContentType/DestinationPage/DestinationCityPage/CityMap/HotelList/index.tsx b/apps/scandic-web/components/ContentType/DestinationPage/DestinationCityPage/CityMap/HotelList/index.tsx
index 24b2d5c82..06f626767 100644
--- a/apps/scandic-web/components/ContentType/DestinationPage/DestinationCityPage/CityMap/HotelList/index.tsx
+++ b/apps/scandic-web/components/ContentType/DestinationPage/DestinationCityPage/CityMap/HotelList/index.tsx
@@ -59,6 +59,7 @@ export default function HotelList() {
return
}
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setVisibleHotels(getVisibleHotels(activeHotels, map))
}, [map, activeHotels])
diff --git a/apps/scandic-web/components/ContentType/DestinationPage/DestinationCityPage/CityMap/index.tsx b/apps/scandic-web/components/ContentType/DestinationPage/DestinationCityPage/CityMap/index.tsx
index ae31fcadf..1e7cc5a8c 100644
--- a/apps/scandic-web/components/ContentType/DestinationPage/DestinationCityPage/CityMap/index.tsx
+++ b/apps/scandic-web/components/ContentType/DestinationPage/DestinationCityPage/CityMap/index.tsx
@@ -43,6 +43,7 @@ export default function CityMap({
useEffect(() => {
const url = new URL(window.location.href)
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setIsFromCountryPage(url.searchParams.has("fromCountry"))
}, [params])
diff --git a/apps/scandic-web/components/ContentType/DestinationPage/Map/DynamicMap/index.tsx b/apps/scandic-web/components/ContentType/DestinationPage/Map/DynamicMap/index.tsx
index 0b4d14c21..7a742236b 100644
--- a/apps/scandic-web/components/ContentType/DestinationPage/Map/DynamicMap/index.tsx
+++ b/apps/scandic-web/components/ContentType/DestinationPage/Map/DynamicMap/index.tsx
@@ -82,6 +82,7 @@ export default function DynamicMap({
bounds.extend(marker.coordinates)
})
map.fitBounds(bounds, boundsPadding)
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setHasFittedBounds(true)
}
}, [map, fitBounds, markers, hasFittedBounds, boundsPadding])
diff --git a/apps/scandic-web/components/ContentType/DestinationPage/Map/index.tsx b/apps/scandic-web/components/ContentType/DestinationPage/Map/index.tsx
index 0bd879ff0..e79e8b0ad 100644
--- a/apps/scandic-web/components/ContentType/DestinationPage/Map/index.tsx
+++ b/apps/scandic-web/components/ContentType/DestinationPage/Map/index.tsx
@@ -86,6 +86,7 @@ export default function Map({
useEffect(() => {
const url = new URL(window.location.href)
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setFromCountryPage(url.searchParams.has("fromCountry"))
}, [params])
diff --git a/apps/scandic-web/components/ContentType/HotelPage/TabNavigation/index.tsx b/apps/scandic-web/components/ContentType/HotelPage/TabNavigation/index.tsx
index 02b923dee..141101ca9 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/TabNavigation/index.tsx
+++ b/apps/scandic-web/components/ContentType/HotelPage/TabNavigation/index.tsx
@@ -90,6 +90,7 @@ export default function TabNavigation({
url.hash = activeSectionId
window.history.replaceState(null, "", url.toString())
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setActiveHash(activeSectionId)
}
}, [activeSectionId])
diff --git a/apps/scandic-web/components/ContentType/PromoCampaignPage/Hero/ActivateOffer/index.tsx b/apps/scandic-web/components/ContentType/PromoCampaignPage/Hero/ActivateOffer/index.tsx
index c27bcf634..07eeb9818 100644
--- a/apps/scandic-web/components/ContentType/PromoCampaignPage/Hero/ActivateOffer/index.tsx
+++ b/apps/scandic-web/components/ContentType/PromoCampaignPage/Hero/ActivateOffer/index.tsx
@@ -70,6 +70,7 @@ export default function ActivateOffer({
(activateCampaign.isSuccess && activateCampaign.data) ? (
) : (
+ // eslint-disable-next-line react-hooks/static-components
)}
) : null}
+ {/* eslint-disable-next-line react-hooks/static-components */}
diff --git a/apps/scandic-web/components/DestinationFilterAndSort/FilterAndSortButton/index.tsx b/apps/scandic-web/components/DestinationFilterAndSort/FilterAndSortButton/index.tsx
index 6953eefca..cbb725b42 100644
--- a/apps/scandic-web/components/DestinationFilterAndSort/FilterAndSortButton/index.tsx
+++ b/apps/scandic-web/components/DestinationFilterAndSort/FilterAndSortButton/index.tsx
@@ -22,14 +22,15 @@ export function FilterAndSortButton({
const searchParams = useSearchParams()
const [isMapView, setIsMapView] = useState(false)
+ const [isHydrated, setIsHydrated] = useState(false)
useEffect(() => {
const isMapView = searchParams.get("view") === "map"
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setIsMapView(isMapView)
setIsHydrated(true)
}, [searchParams])
- const [isHydrated, setIsHydrated] = useState(false)
const isDesktop = useMediaQuery("(min-width: 950px)")
if (!isHydrated) return null
diff --git a/apps/scandic-web/components/Forms/Edit/Profile/index.tsx b/apps/scandic-web/components/Forms/Edit/Profile/index.tsx
index 8fb722617..b7dd4aa5f 100644
--- a/apps/scandic-web/components/Forms/Edit/Profile/index.tsx
+++ b/apps/scandic-web/components/Forms/Edit/Profile/index.tsx
@@ -96,6 +96,7 @@ export default function Form({ user }: EditFormProps) {
utils.user.get.invalidate()
if (isPasswordChanged) {
// Kept logout out of Next router forcing browser to navigate on logout url
+ // eslint-disable-next-line react-hooks/immutability
window.location.href = logout[lang]
} else {
const myStayReturnRoute = sessionStorage.getItem("myStayReturnRoute")
diff --git a/apps/scandic-web/components/HotelReservation/FindMyBooking/AdditionalInfoForm.tsx b/apps/scandic-web/components/HotelReservation/FindMyBooking/AdditionalInfoForm.tsx
index af0c92ddb..8cdf666f7 100644
--- a/apps/scandic-web/components/HotelReservation/FindMyBooking/AdditionalInfoForm.tsx
+++ b/apps/scandic-web/components/HotelReservation/FindMyBooking/AdditionalInfoForm.tsx
@@ -43,6 +43,7 @@ export default function AdditionalInfoForm({
confirmationNumber,
lastName,
}
+ // eslint-disable-next-line react-hooks/immutability
document.cookie = `bv=${JSON.stringify(value)}; Path=/; Max-Age=600; Secure; SameSite=Strict`
router.refresh()
}
diff --git a/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/AddAncillaryFlow/index.tsx b/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/AddAncillaryFlow/index.tsx
index f735b2afa..d54308514 100644
--- a/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/AddAncillaryFlow/index.tsx
+++ b/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/AddAncillaryFlow/index.tsx
@@ -270,6 +270,7 @@ export default function AddAncillaryFlowModal({
formMethods.reset(updatedFormData)
}
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setErrorMessage(getErrorMessage(intl, errorCode))
queryParams.delete("ancillary")
queryParams.delete("errorCode")
diff --git a/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/Actions/Upcoming/GuaranteePaymentFailed/index.tsx b/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/Actions/Upcoming/GuaranteePaymentFailed/index.tsx
index 2f5fe3f63..bf2919af8 100644
--- a/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/Actions/Upcoming/GuaranteePaymentFailed/index.tsx
+++ b/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/Actions/Upcoming/GuaranteePaymentFailed/index.tsx
@@ -57,6 +57,7 @@ export default function GuaranteePaymentFailed() {
? AlertTypeEnum.Warning
: AlertTypeEnum.Alarm
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setAlert({ type, message })
const newParams = new URLSearchParams(searchParams.toString())
diff --git a/apps/scandic-web/components/MyPages/ProfilingConsent/Modal/index.tsx b/apps/scandic-web/components/MyPages/ProfilingConsent/Modal/index.tsx
index ce1f7dc89..8da4c917d 100644
--- a/apps/scandic-web/components/MyPages/ProfilingConsent/Modal/index.tsx
+++ b/apps/scandic-web/components/MyPages/ProfilingConsent/Modal/index.tsx
@@ -45,6 +45,7 @@ function usePromptInitialization(memberKey: string | undefined) {
})
const mutationRef = useRef(updateConsentPromptDate)
+ // eslint-disable-next-line react-hooks/refs
mutationRef.current = updateConsentPromptDate
const [shouldOpenInitially, setShouldOpenInitially] = useState(false)
@@ -99,6 +100,7 @@ export default function ProfilingConsentModal({
useUpdateProfilingConsent()
useEffect(() => {
+ // eslint-disable-next-line react-hooks/set-state-in-effect
if (shouldOpenInitially) setOpen(true)
}, [shouldOpenInitially])
@@ -112,6 +114,7 @@ export default function ProfilingConsentModal({
}, [memberKey])
useEffect(() => {
+ // eslint-disable-next-line react-hooks/set-state-in-effect
if (isSuccess) onClose()
}, [isSuccess, onClose])
diff --git a/apps/scandic-web/eslint.config.mjs b/apps/scandic-web/eslint.config.mjs
index d1441f304..0c21ed752 100644
--- a/apps/scandic-web/eslint.config.mjs
+++ b/apps/scandic-web/eslint.config.mjs
@@ -1,49 +1,35 @@
-import { FlatCompat } from "@eslint/eslintrc"
-import js from "@eslint/js"
-import typescriptEslint from "@typescript-eslint/eslint-plugin"
-import tsParser from "@typescript-eslint/parser"
-import { defineConfig } from "eslint/config"
+import { defineConfig, globalIgnores } from "eslint/config"
+import nextVitals from "eslint-config-next/core-web-vitals"
+import nextTs from "eslint-config-next/typescript"
import formatjs from "eslint-plugin-formatjs"
import simpleImportSort from "eslint-plugin-simple-import-sort"
-const compat = new FlatCompat({
- recommendedConfig: js.configs.recommended,
- allConfig: js.configs.all,
-})
-
export default defineConfig([
+ ...nextVitals,
+ ...nextTs,
+ globalIgnores([
+ ".next/**",
+ "node_modules/**",
+ "dist/**",
+ "build/**",
+ ".netlify/**",
+ "public/**",
+ "playwright-report/**",
+ "test-results/**",
+ "coverage/**",
+ "*.config.js",
+ "*.config.ts",
+ "*.config.mjs",
+ "next-env.d.ts",
+ ]),
+
{
- ignores: [
- ".next/**",
- "node_modules/**",
- "dist/**",
- "build/**",
- ".netlify/**",
- "public/**",
- "playwright-report/**",
- "test-results/**",
- "coverage/**",
- "*.config.js",
- "*.config.ts",
- "*.config.mjs",
- "next-env.d.ts",
- ],
- },
- {
- extends: compat.extends(
- "next/core-web-vitals",
- "plugin:@typescript-eslint/recommended"
- ),
+ files: ["**/*.{js,jsx,ts,tsx,mts}"],
plugins: {
"simple-import-sort": simpleImportSort,
- "@typescript-eslint": typescriptEslint,
formatjs,
},
- languageOptions: {
- parser: tsParser,
- },
-
rules: {
"no-console": "warn",
"no-unused-vars": "off",
@@ -56,6 +42,7 @@ export default defineConfig([
propElementValues: "always",
},
],
+ "react-hooks/incompatible-library": "off",
"import/no-relative-packages": "error",
"simple-import-sort/imports": [
"warn",
diff --git a/apps/scandic-web/hooks/booking/useGuaranteeBooking.ts b/apps/scandic-web/hooks/booking/useGuaranteeBooking.ts
index 94b5b63d9..c689046cb 100644
--- a/apps/scandic-web/hooks/booking/useGuaranteeBooking.ts
+++ b/apps/scandic-web/hooks/booking/useGuaranteeBooking.ts
@@ -78,6 +78,7 @@ export function useGuaranteeBooking(
if (bookingStatus?.data?.booking.paymentUrl && isPollingForBookingStatus) {
router.push(bookingStatus.data.booking.paymentUrl)
utils.booking.get.invalidate({ refId })
+ // eslint-disable-next-line react-hooks/set-state-in-effect
setIsPollingForBookingStatus(false)
} else if (bookingStatus.isTimeout) {
handleGuaranteeError("Timeout")
diff --git a/apps/scandic-web/middlewares/redirect.ts b/apps/scandic-web/middlewares/redirect.ts
index a4e437946..2aa2def8c 100644
--- a/apps/scandic-web/middlewares/redirect.ts
+++ b/apps/scandic-web/middlewares/redirect.ts
@@ -46,6 +46,7 @@ async function fetchAndCacheRedirect(lang: Lang, pathname: string) {
"1d"
)
}
+
const redirectCounter = createCounter("middleware.redirect")
export const middleware: NextMiddleware = async (request) => {
const lang = findLang(request.nextUrl.pathname)!
diff --git a/apps/scandic-web/package.json b/apps/scandic-web/package.json
index 09b5b9916..2e6e22702 100644
--- a/apps/scandic-web/package.json
+++ b/apps/scandic-web/package.json
@@ -30,7 +30,7 @@
"@internationalized/date": "^3.8.0",
"@netlify/blobs": "^8.1.0",
"@netlify/functions": "^3.0.0",
- "@netlify/plugin-nextjs": "^5.14.4",
+ "@netlify/plugin-nextjs": "^5.15.1",
"@radix-ui/react-slot": "^1.2.2",
"@react-aria/ssr": "^3.9.8",
"@scandic-hotels/booking-flow": "workspace:*",
@@ -71,12 +71,12 @@
"md5": "^2.3.0",
"motion": "^12.10.0",
"nanoid": "^5.1.5",
- "next": "^15.5.7",
+ "next": "16.0.10",
"next-auth": "5.0.0-beta.29",
- "react": "^19.1.0",
+ "react": "19.2.1",
"react-aria-components": "1.8.0",
"react-day-picker": "^9.6.7",
- "react-dom": "^19.1.0",
+ "react-dom": "19.2.1",
"react-feather": "^2.0.10",
"react-focus-lock": "^2.13.6",
"react-hook-form": "^7.56.2",
@@ -89,8 +89,6 @@
"zustand": "^4.5.2"
},
"devDependencies": {
- "@eslint/compat": "^1.2.9",
- "@eslint/js": "^9.26.0",
"@formatjs/cli": "^6.7.1",
"@lokalise/node-api": "^14.0.0",
"@playwright/test": "^1.57.0",
@@ -102,16 +100,14 @@
"@types/json-stable-stringify-without-jsonify": "^1.0.2",
"@types/jsonwebtoken": "^9",
"@types/node": "^20",
- "@types/react": "^19.2.3",
- "@types/react-dom": "^19.2.3",
- "@typescript-eslint/eslint-plugin": "^8.32.0",
- "@typescript-eslint/parser": "^8.32.0",
+ "@types/react": "19.2.7",
+ "@types/react-dom": "19.2.3",
"@vitejs/plugin-react": "^5.0.0",
"adm-zip": "^0.5.16",
"babel-plugin-formatjs": "^10.5.39",
"dotenv": "^16.5.0",
"eslint": "^9",
- "eslint-config-next": "15.3.2",
+ "eslint-config-next": "16.0.7",
"eslint-plugin-formatjs": "^5.3.1",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-simple-import-sort": "^12.1.1",
diff --git a/apps/scandic-web/providers/AddAncillaryProvider.tsx b/apps/scandic-web/providers/AddAncillaryProvider.tsx
index 349b3cb54..980f86769 100644
--- a/apps/scandic-web/providers/AddAncillaryProvider.tsx
+++ b/apps/scandic-web/providers/AddAncillaryProvider.tsx
@@ -23,6 +23,7 @@ export function AddAncillaryProvider({
children: React.ReactNode
}) {
const storeRef = useRef(undefined)
+ // eslint-disable-next-line react-hooks/refs
if (!storeRef.current) {
storeRef.current = createAddAncillaryStore(booking, ancillaries)
}
@@ -40,6 +41,7 @@ export function AddAncillaryProvider({
}, [])
return (
+ // eslint-disable-next-line react-hooks/refs
{children}
diff --git a/apps/scandic-web/providers/DestinationDataProvider/index.tsx b/apps/scandic-web/providers/DestinationDataProvider/index.tsx
index 92448414d..4ea331129 100644
--- a/apps/scandic-web/providers/DestinationDataProvider/index.tsx
+++ b/apps/scandic-web/providers/DestinationDataProvider/index.tsx
@@ -23,6 +23,7 @@ export default function DestinationDataProvider({
const storeRef = useRef(undefined)
const searchParams = useSearchParams()
+ // eslint-disable-next-line react-hooks/refs
if (!storeRef.current) {
storeRef.current = createDestinationDataStore({
allCities,
@@ -36,6 +37,7 @@ export default function DestinationDataProvider({
}
return (
+ // eslint-disable-next-line react-hooks/refs
{children}
diff --git a/apps/scandic-web/providers/HotelListingDataProvider/index.tsx b/apps/scandic-web/providers/HotelListingDataProvider/index.tsx
index 0f3db8059..eab3d3adf 100644
--- a/apps/scandic-web/providers/HotelListingDataProvider/index.tsx
+++ b/apps/scandic-web/providers/HotelListingDataProvider/index.tsx
@@ -20,6 +20,7 @@ export default function HotelListingDataProvider({
const storeRef = useRef(undefined)
const searchParams = useSearchParams()
+ // eslint-disable-next-line react-hooks/refs
if (!storeRef.current) {
storeRef.current = createHotelListingDataStore({
allHotels,
@@ -30,6 +31,7 @@ export default function HotelListingDataProvider({
}
return (
+ // eslint-disable-next-line react-hooks/refs
{children}
diff --git a/apps/scandic-web/providers/MyStay.tsx b/apps/scandic-web/providers/MyStay.tsx
index d853a0aba..62e83a511 100644
--- a/apps/scandic-web/providers/MyStay.tsx
+++ b/apps/scandic-web/providers/MyStay.tsx
@@ -101,6 +101,7 @@ export default function MyStayProvider({
(isFetchedAfterMount && data) ||
(linkedReservationsIsFetchedAfterMount && linkedReservations)
+ // eslint-disable-next-line react-hooks/refs
if (!storeRef.current || hasInvalidatedQueryAndRefetched) {
storeRef.current = createMyStayStore({
breakfastPackages,
@@ -116,6 +117,7 @@ export default function MyStayProvider({
}
return (
+ // eslint-disable-next-line react-hooks/refs
{children}
diff --git a/package.json b/package.json
index 498161c63..e4b3d8700 100644
--- a/package.json
+++ b/package.json
@@ -36,8 +36,8 @@
"devDependencies": {
"@eslint/compat": "^1.2.9",
"@formatjs/cli": "^6.7.1",
- "@types/react": "^19.2.3",
- "@types/react-dom": "^19.2.3",
+ "@types/react": "19.2.7",
+ "@types/react-dom": "19.2.3",
"@typescript/native-preview": "^7.0.0-dev.20251104.1",
"@yarnpkg/types": "^4.0.1",
"commander": "^14.0.0",
diff --git a/packages/booking-flow/package.json b/packages/booking-flow/package.json
index 7cdce9b2e..f8b78d2b5 100644
--- a/packages/booking-flow/package.json
+++ b/packages/booking-flow/package.json
@@ -76,7 +76,7 @@
},
"peerDependencies": {
"@sentry/nextjs": "^10",
- "next": "^15",
+ "next": "^16",
"react": "^19"
},
"devDependencies": {
@@ -85,7 +85,7 @@
"@eslint/js": "^9.26.0",
"@scandic-hotels/typescript-config": "workspace:*",
"@t3-oss/env-nextjs": "^0.13.4",
- "@types/react": "^19.2.3",
+ "@types/react": "19.2.7",
"@typescript-eslint/eslint-plugin": "^8.32.0",
"@typescript-eslint/parser": "^8.32.0",
"@vitest/coverage-v8": "^4.0.0",
diff --git a/packages/design-system/package.json b/packages/design-system/package.json
index 56f11d5e5..040a77ca2 100644
--- a/packages/design-system/package.json
+++ b/packages/design-system/package.json
@@ -239,7 +239,7 @@
"@internationalized/date": "^3.8.0",
"@radix-ui/react-slot": "^1.2.2",
"@vis.gl/react-google-maps": "^1.5.2",
- "next": "^15",
+ "next": "^16",
"react": "^19.1.0",
"react-aria": "^3.39.0",
"react-aria-components": "^1.8.0",
@@ -264,8 +264,8 @@
"@testing-library/user-event": "^14.5.2",
"@types/css-modules": "^1.0.5",
"@types/node": "^20.17.17",
- "@types/react": "^19.2.3",
- "@types/react-dom": "^19.2.3",
+ "@types/react": "19.2.7",
+ "@types/react-dom": "19.2.3",
"@typescript-eslint/eslint-plugin": "^8.32.0",
"@typescript-eslint/parser": "^8.32.0",
"@vitejs/plugin-react": "^5.1.1",
diff --git a/packages/trpc/package.json b/packages/trpc/package.json
index 8482a94b7..166003193 100644
--- a/packages/trpc/package.json
+++ b/packages/trpc/package.json
@@ -69,7 +69,7 @@
"@sentry/nextjs": "^10",
"@tanstack/react-query": "^5.75.5",
"@tanstack/react-query-devtools": "^5.75.5",
- "next": "^15",
+ "next": "^16",
"react": "^19"
},
"devDependencies": {
@@ -77,7 +77,7 @@
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "^9.26.0",
"@scandic-hotels/typescript-config": "workspace:*",
- "@types/react": "^19.2.3",
+ "@types/react": "19.2.7",
"@typescript-eslint/eslint-plugin": "^8.32.0",
"@typescript-eslint/parser": "^8.32.0",
"dotenv": "^16.5.0",
diff --git a/yarn.lock b/yarn.lock
index c6bbd39fe..9a5e0ca6f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -184,7 +184,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/core@npm:^7.18.5, @babel/core@npm:^7.26.10, @babel/core@npm:^7.28.0, @babel/core@npm:^7.28.5":
+"@babel/core@npm:^7.18.5, @babel/core@npm:^7.24.4, @babel/core@npm:^7.26.10, @babel/core@npm:^7.28.0, @babel/core@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/core@npm:7.28.5"
dependencies:
@@ -301,7 +301,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.26.7, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5":
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.26.7, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/parser@npm:7.28.5"
dependencies:
@@ -2018,7 +2018,7 @@ __metadata:
languageName: node
linkType: hard
-"@netlify/plugin-nextjs@npm:^5.14.4":
+"@netlify/plugin-nextjs@npm:^5.15.1":
version: 5.15.1
resolution: "@netlify/plugin-nextjs@npm:5.15.1"
checksum: 10c0/4b02d5d79d3697ff8c2fd64c65f774ed84e51c8d2dceb8aeab1b99a845a99fc9f62561d60bb7b9b5ef173e8b540f19709a8770b6f9b7c59e2847408a11817947
@@ -2089,13 +2089,6 @@ __metadata:
languageName: node
linkType: hard
-"@next/env@npm:15.5.7":
- version: 15.5.7
- resolution: "@next/env@npm:15.5.7"
- checksum: 10c0/f92d99e5fa3516c6b7699abafd9bd813f5c1889dd257ab098f1b71f93137f5e4f49792e22f6dddf8a59efcb134e8e84277c983ff88607b2a42aac651bfde78ea
- languageName: node
- linkType: hard
-
"@next/env@npm:16.0.0":
version: 16.0.0
resolution: "@next/env@npm:16.0.0"
@@ -2103,6 +2096,13 @@ __metadata:
languageName: node
linkType: hard
+"@next/env@npm:16.0.10":
+ version: 16.0.10
+ resolution: "@next/env@npm:16.0.10"
+ checksum: 10c0/6f2b5ba37733a49513ab3117c06f037fa962b4022fe2b4ba7801f830ab15974ad87ad8b47b6464fa5fcb3e9a3247b25f657ec97ae6eed1156b5736c6388246db
+ languageName: node
+ linkType: hard
+
"@next/env@npm:16.0.5":
version: 16.0.5
resolution: "@next/env@npm:16.0.5"
@@ -2110,18 +2110,18 @@ __metadata:
languageName: node
linkType: hard
-"@next/eslint-plugin-next@npm:15.3.2":
- version: 15.3.2
- resolution: "@next/eslint-plugin-next@npm:15.3.2"
+"@next/eslint-plugin-next@npm:16.0.7":
+ version: 16.0.7
+ resolution: "@next/eslint-plugin-next@npm:16.0.7"
dependencies:
fast-glob: "npm:3.3.1"
- checksum: 10c0/b03e512c275d33f4159522a66d4aa56f60dbf8f2dbfca6db9dcb5ce4c51ab701d8b28d719499d5728913b1ed71f76a93d770797670d04ca525ea318a32aa8fab
+ checksum: 10c0/dce7be827de6686d11c68e1ae22f136e926bf63d9373a9f6c5fc8a2ce4a0ab92857c4becec9cd07c7293bb4ce6e0fa5c8407521e3632d61a42ad82769e190a8c
languageName: node
linkType: hard
-"@next/swc-darwin-arm64@npm:15.5.7":
- version: 15.5.7
- resolution: "@next/swc-darwin-arm64@npm:15.5.7"
+"@next/swc-darwin-arm64@npm:16.0.10":
+ version: 16.0.10
+ resolution: "@next/swc-darwin-arm64@npm:16.0.10"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
@@ -2133,9 +2133,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-darwin-x64@npm:15.5.7":
- version: 15.5.7
- resolution: "@next/swc-darwin-x64@npm:15.5.7"
+"@next/swc-darwin-x64@npm:16.0.10":
+ version: 16.0.10
+ resolution: "@next/swc-darwin-x64@npm:16.0.10"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
@@ -2147,9 +2147,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-linux-arm64-gnu@npm:15.5.7":
- version: 15.5.7
- resolution: "@next/swc-linux-arm64-gnu@npm:15.5.7"
+"@next/swc-linux-arm64-gnu@npm:16.0.10":
+ version: 16.0.10
+ resolution: "@next/swc-linux-arm64-gnu@npm:16.0.10"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
@@ -2161,9 +2161,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-linux-arm64-musl@npm:15.5.7":
- version: 15.5.7
- resolution: "@next/swc-linux-arm64-musl@npm:15.5.7"
+"@next/swc-linux-arm64-musl@npm:16.0.10":
+ version: 16.0.10
+ resolution: "@next/swc-linux-arm64-musl@npm:16.0.10"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
@@ -2175,9 +2175,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-linux-x64-gnu@npm:15.5.7":
- version: 15.5.7
- resolution: "@next/swc-linux-x64-gnu@npm:15.5.7"
+"@next/swc-linux-x64-gnu@npm:16.0.10":
+ version: 16.0.10
+ resolution: "@next/swc-linux-x64-gnu@npm:16.0.10"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
@@ -2189,9 +2189,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-linux-x64-musl@npm:15.5.7":
- version: 15.5.7
- resolution: "@next/swc-linux-x64-musl@npm:15.5.7"
+"@next/swc-linux-x64-musl@npm:16.0.10":
+ version: 16.0.10
+ resolution: "@next/swc-linux-x64-musl@npm:16.0.10"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
@@ -2203,9 +2203,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-win32-arm64-msvc@npm:15.5.7":
- version: 15.5.7
- resolution: "@next/swc-win32-arm64-msvc@npm:15.5.7"
+"@next/swc-win32-arm64-msvc@npm:16.0.10":
+ version: 16.0.10
+ resolution: "@next/swc-win32-arm64-msvc@npm:16.0.10"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
@@ -2217,9 +2217,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-win32-x64-msvc@npm:15.5.7":
- version: 15.5.7
- resolution: "@next/swc-win32-x64-msvc@npm:15.5.7"
+"@next/swc-win32-x64-msvc@npm:16.0.10":
+ version: 16.0.10
+ resolution: "@next/swc-win32-x64-msvc@npm:16.0.10"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -5082,13 +5082,6 @@ __metadata:
languageName: node
linkType: hard
-"@rushstack/eslint-patch@npm:^1.10.3":
- version: 1.15.0
- resolution: "@rushstack/eslint-patch@npm:1.15.0"
- checksum: 10c0/b2aeae0c6228981c40eff7a3cf9fc1c4342f8fc7a0102d8b2b3d3f66137461b1cd2e3c22d9aa6bcde43f227c5e4e698be33ac145d356797774f212da496c0e9c
- languageName: node
- linkType: hard
-
"@rushstack/node-core-library@npm:5.19.0":
version: 5.19.0
resolution: "@rushstack/node-core-library@npm:5.19.0"
@@ -5223,7 +5216,7 @@ __metadata:
"@scandic-hotels/typescript-config": "workspace:*"
"@t3-oss/env-nextjs": "npm:^0.13.4"
"@trpc/client": "npm:^11.1.2"
- "@types/react": "npm:^19.2.3"
+ "@types/react": "npm:19.2.7"
"@typescript-eslint/eslint-plugin": "npm:^8.32.0"
"@typescript-eslint/parser": "npm:^8.32.0"
"@vis.gl/react-google-maps": "npm:^1.5.2"
@@ -5259,7 +5252,7 @@ __metadata:
zustand: "npm:^4.5.2"
peerDependencies:
"@sentry/nextjs": ^10
- next: ^15
+ next: ^16
react: ^19
languageName: unknown
linkType: soft
@@ -5312,8 +5305,8 @@ __metadata:
"@testing-library/user-event": "npm:^14.5.2"
"@types/css-modules": "npm:^1.0.5"
"@types/node": "npm:^20.17.17"
- "@types/react": "npm:^19.2.3"
- "@types/react-dom": "npm:^19.2.3"
+ "@types/react": "npm:19.2.7"
+ "@types/react-dom": "npm:19.2.3"
"@typescript-eslint/eslint-plugin": "npm:^8.32.0"
"@typescript-eslint/parser": "npm:^8.32.0"
"@vitejs/plugin-react": "npm:^5.1.1"
@@ -5358,7 +5351,7 @@ __metadata:
"@internationalized/date": ^3.8.0
"@radix-ui/react-slot": ^1.2.2
"@vis.gl/react-google-maps": ^1.5.2
- next: ^15
+ next: ^16
react: ^19.1.0
react-aria: ^3.39.0
react-aria-components: ^1.8.0
@@ -5374,9 +5367,8 @@ __metadata:
version: 0.0.0-use.local
resolution: "@scandic-hotels/partner-sas@workspace:apps/partner-sas"
dependencies:
- "@eslint/js": "npm:^9.26.0"
"@formatjs/intl": "npm:^3.1.6"
- "@netlify/plugin-nextjs": "npm:^5.14.4"
+ "@netlify/plugin-nextjs": "npm:^5.15.1"
"@playwright/test": "npm:^1.53.1"
"@scandic-hotels/booking-flow": "workspace:*"
"@scandic-hotels/common": "workspace:*"
@@ -5389,24 +5381,22 @@ __metadata:
"@tanstack/react-query": "npm:^5.75.5"
"@tanstack/react-query-devtools": "npm:^5.75.5"
"@types/node": "npm:^20"
- "@types/react": "npm:^19.2.3"
- "@types/react-dom": "npm:^19.2.3"
- "@typescript-eslint/eslint-plugin": "npm:^8.32.0"
- "@typescript-eslint/parser": "npm:^8.32.0"
+ "@types/react": "npm:19.2.7"
+ "@types/react-dom": "npm:19.2.3"
"@typescript/native-preview": "npm:^7.0.0-dev.20251104.1"
babel-plugin-formatjs: "npm:^10.5.39"
eslint: "npm:^9"
- eslint-config-next: "npm:15.3.2"
+ eslint-config-next: "npm:16.0.7"
eslint-plugin-formatjs: "npm:^5.3.1"
eslint-plugin-import: "npm:^2.31.0"
eslint-plugin-simple-import-sort: "npm:^12.1.1"
graphql-tag: "npm:^2.12.6"
iron-session: "npm:^8.0.4"
- next: "npm:^15.5.7"
+ next: "npm:16.0.10"
next-auth: "npm:5.0.0-beta.29"
- react: "npm:^19.0.0"
+ react: "npm:19.2.1"
react-aria-components: "npm:1.8.0"
- react-dom: "npm:^19.0.0"
+ react-dom: "npm:19.2.1"
react-intl: "npm:^7.1.11"
server-only: "npm:^0.0.1"
typescript: "npm:5.8.3"
@@ -5456,8 +5446,6 @@ __metadata:
resolution: "@scandic-hotels/scandic-web@workspace:apps/scandic-web"
dependencies:
"@contentstack/live-preview-utils": "npm:^3.2.1"
- "@eslint/compat": "npm:^1.2.9"
- "@eslint/js": "npm:^9.26.0"
"@formatjs/cli": "npm:^6.7.1"
"@formatjs/intl": "npm:^3.1.6"
"@hookform/error-message": "npm:^2.0.1"
@@ -5466,7 +5454,7 @@ __metadata:
"@lokalise/node-api": "npm:^14.0.0"
"@netlify/blobs": "npm:^8.1.0"
"@netlify/functions": "npm:^3.0.0"
- "@netlify/plugin-nextjs": "npm:^5.14.4"
+ "@netlify/plugin-nextjs": "npm:^5.15.1"
"@playwright/test": "npm:^1.57.0"
"@radix-ui/react-slot": "npm:^1.2.2"
"@react-aria/ssr": "npm:^3.9.8"
@@ -5494,11 +5482,9 @@ __metadata:
"@types/json-stable-stringify-without-jsonify": "npm:^1.0.2"
"@types/jsonwebtoken": "npm:^9"
"@types/node": "npm:^20"
- "@types/react": "npm:^19.2.3"
- "@types/react-dom": "npm:^19.2.3"
+ "@types/react": "npm:19.2.7"
+ "@types/react-dom": "npm:19.2.3"
"@types/supercluster": "npm:^7.1.3"
- "@typescript-eslint/eslint-plugin": "npm:^8.32.0"
- "@typescript-eslint/parser": "npm:^8.32.0"
"@typescript/native-preview": "npm:^7.0.0-dev.20251104.1"
"@vis.gl/react-google-maps": "npm:^1.5.2"
"@vitejs/plugin-react": "npm:^5.0.0"
@@ -5514,7 +5500,7 @@ __metadata:
embla-carousel: "npm:^8.6.0"
embla-carousel-react: "npm:^8.6.0"
eslint: "npm:^9"
- eslint-config-next: "npm:15.3.2"
+ eslint-config-next: "npm:16.0.7"
eslint-plugin-formatjs: "npm:^5.3.1"
eslint-plugin-import: "npm:^2.31.0"
eslint-plugin-simple-import-sort: "npm:^12.1.1"
@@ -5532,12 +5518,12 @@ __metadata:
md5: "npm:^2.3.0"
motion: "npm:^12.10.0"
nanoid: "npm:^5.1.5"
- next: "npm:^15.5.7"
+ next: "npm:16.0.10"
next-auth: "npm:5.0.0-beta.29"
- react: "npm:^19.1.0"
+ react: "npm:19.2.1"
react-aria-components: "npm:1.8.0"
react-day-picker: "npm:^9.6.7"
- react-dom: "npm:^19.1.0"
+ react-dom: "npm:19.2.1"
react-feather: "npm:^2.0.10"
react-focus-lock: "npm:^2.13.6"
react-hook-form: "npm:^7.56.2"
@@ -5591,7 +5577,7 @@ __metadata:
"@trpc/client": "npm:^11.1.2"
"@trpc/react-query": "npm:^11.1.2"
"@trpc/server": "npm:^11.1.2"
- "@types/react": "npm:^19.2.3"
+ "@types/react": "npm:19.2.7"
"@typescript-eslint/eslint-plugin": "npm:^8.32.0"
"@typescript-eslint/parser": "npm:^8.32.0"
dayjs: "npm:^1.11.13"
@@ -5617,7 +5603,7 @@ __metadata:
"@sentry/nextjs": ^10
"@tanstack/react-query": ^5.75.5
"@tanstack/react-query-devtools": ^5.75.5
- next: ^15
+ next: ^16
react: ^19
languageName: unknown
linkType: soft
@@ -7106,7 +7092,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/react-dom@npm:^19.2.3":
+"@types/react-dom@npm:19.2.3":
version: 19.2.3
resolution: "@types/react-dom@npm:19.2.3"
peerDependencies:
@@ -7115,7 +7101,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/react@npm:16 || 17 || 18 || 19, @types/react@npm:^19.2.3":
+"@types/react@npm:16 || 17 || 18 || 19, @types/react@npm:19.2.7":
version: 19.2.7
resolution: "@types/react@npm:19.2.7"
dependencies:
@@ -7179,7 +7165,28 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/eslint-plugin@npm:^8.32.0":
+"@typescript-eslint/eslint-plugin@npm:8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/eslint-plugin@npm:8.48.1"
+ dependencies:
+ "@eslint-community/regexpp": "npm:^4.10.0"
+ "@typescript-eslint/scope-manager": "npm:8.48.1"
+ "@typescript-eslint/type-utils": "npm:8.48.1"
+ "@typescript-eslint/utils": "npm:8.48.1"
+ "@typescript-eslint/visitor-keys": "npm:8.48.1"
+ graphemer: "npm:^1.4.0"
+ ignore: "npm:^7.0.0"
+ natural-compare: "npm:^1.4.0"
+ ts-api-utils: "npm:^2.1.0"
+ peerDependencies:
+ "@typescript-eslint/parser": ^8.48.1
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/aeb4692ac27ded73dce5ddba08d46f15d617651f629cdfc5e874dd4ac767eac0523807f1f4e51f6f80675efff78e5937690f1c58740b8cb92b44b87d757a6a1a
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/eslint-plugin@npm:^8.32.0":
version: 8.48.0
resolution: "@typescript-eslint/eslint-plugin@npm:8.48.0"
dependencies:
@@ -7200,7 +7207,23 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/parser@npm:^8.32.0":
+"@typescript-eslint/parser@npm:8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/parser@npm:8.48.1"
+ dependencies:
+ "@typescript-eslint/scope-manager": "npm:8.48.1"
+ "@typescript-eslint/types": "npm:8.48.1"
+ "@typescript-eslint/typescript-estree": "npm:8.48.1"
+ "@typescript-eslint/visitor-keys": "npm:8.48.1"
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/54ec22c82cc631f56131bfed9747f8cadf52ab123463a406c5221f258f9533431c4a33ebe21ef178840d50235e69bb370d36aa2fd6a066e7223b38bfa41a1788
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/parser@npm:^8.32.0":
version: 8.48.0
resolution: "@typescript-eslint/parser@npm:8.48.0"
dependencies:
@@ -7229,6 +7252,19 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/project-service@npm:8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/project-service@npm:8.48.1"
+ dependencies:
+ "@typescript-eslint/tsconfig-utils": "npm:^8.48.1"
+ "@typescript-eslint/types": "npm:^8.48.1"
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/0aeeea5e65d0f837bd9a47265f144f14ca72969d259ee929e63e06526b21f4e990e70c7bafdb2ceb3783373df7d9f5bae32c328a4c6403606f01339bc984b3f5
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/scope-manager@npm:8.48.0":
version: 8.48.0
resolution: "@typescript-eslint/scope-manager@npm:8.48.0"
@@ -7239,6 +7275,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/scope-manager@npm:8.48.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.48.1"
+ "@typescript-eslint/visitor-keys": "npm:8.48.1"
+ checksum: 10c0/16514823784cb598817b87d3d2b4fb618ab8b2378b3401a4c1160a5c914e51e7a925c3c1e7be73e0250e38390f0be70fecb3e0e0bdde7b243d74444933b95d3e
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/tsconfig-utils@npm:8.48.0, @typescript-eslint/tsconfig-utils@npm:^8.48.0":
version: 8.48.0
resolution: "@typescript-eslint/tsconfig-utils@npm:8.48.0"
@@ -7248,6 +7294,15 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/tsconfig-utils@npm:8.48.1, @typescript-eslint/tsconfig-utils@npm:^8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/tsconfig-utils@npm:8.48.1"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/0d540f7ab3018ed1bab8f008c0d30229e0ea12806fdbf1c756572b5cf536a1f2a6c59ca2544c09bcd5b89dcfcf79e5f6be3d765e725492b9c7e4cd64fcecffc6
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/type-utils@npm:8.48.0":
version: 8.48.0
resolution: "@typescript-eslint/type-utils@npm:8.48.0"
@@ -7264,6 +7319,22 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/type-utils@npm:8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/type-utils@npm:8.48.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.48.1"
+ "@typescript-eslint/typescript-estree": "npm:8.48.1"
+ "@typescript-eslint/utils": "npm:8.48.1"
+ debug: "npm:^4.3.4"
+ ts-api-utils: "npm:^2.1.0"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/c98a71f7d374be249ecc7c9f20b0a867a73ad4f64e646a6bf9f2c1a5d74f0dc7bd59e9c94a0842068caa366af39ae0c550ede6d653b5c9418a0a587510bbb6d5
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/types@npm:8.48.0, @typescript-eslint/types@npm:^8.48.0":
version: 8.48.0
resolution: "@typescript-eslint/types@npm:8.48.0"
@@ -7271,6 +7342,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:8.48.1, @typescript-eslint/types@npm:^8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/types@npm:8.48.1"
+ checksum: 10c0/366b8140f4c69319f1796b66b33c0c6e16eb6cbe543b9517003104e12ed143b620c1433ccf60d781a629d9433bd509a363c0c9d21fd438c17bb8840733af6caa
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:8.48.0, @typescript-eslint/typescript-estree@npm:^8.23.0":
version: 8.48.0
resolution: "@typescript-eslint/typescript-estree@npm:8.48.0"
@@ -7290,6 +7368,25 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/typescript-estree@npm:8.48.1"
+ dependencies:
+ "@typescript-eslint/project-service": "npm:8.48.1"
+ "@typescript-eslint/tsconfig-utils": "npm:8.48.1"
+ "@typescript-eslint/types": "npm:8.48.1"
+ "@typescript-eslint/visitor-keys": "npm:8.48.1"
+ debug: "npm:^4.3.4"
+ minimatch: "npm:^9.0.4"
+ semver: "npm:^7.6.0"
+ tinyglobby: "npm:^0.2.15"
+ ts-api-utils: "npm:^2.1.0"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/72c0802f74222160f6a13ebbd32b0d504142a2427678c87ea78fc32672c65fd522377d43b31a97c944cbd0aefc36b320bf02f04e47c44f2797d6ccd0a8aa30ec
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/utils@npm:8.48.0, @typescript-eslint/utils@npm:^8.27.0, @typescript-eslint/utils@npm:^8.8.1":
version: 8.48.0
resolution: "@typescript-eslint/utils@npm:8.48.0"
@@ -7305,6 +7402,21 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/utils@npm:8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/utils@npm:8.48.1"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.7.0"
+ "@typescript-eslint/scope-manager": "npm:8.48.1"
+ "@typescript-eslint/types": "npm:8.48.1"
+ "@typescript-eslint/typescript-estree": "npm:8.48.1"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/1775ac217b578f52d6c1e85258098f8ef764d04830c6ce11043b434860da80f1a5f7cc1b9f2e0a63de161e83b8d876f7ae8362d7644d5d8e636e60ad5eeff4e2
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:8.48.0":
version: 8.48.0
resolution: "@typescript-eslint/visitor-keys@npm:8.48.0"
@@ -7315,6 +7427,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:8.48.1":
+ version: 8.48.1
+ resolution: "@typescript-eslint/visitor-keys@npm:8.48.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.48.1"
+ eslint-visitor-keys: "npm:^4.2.1"
+ checksum: 10c0/ecf4078ce63c296dd340672b516f42bf452534c75af7e7d6c1a3f32b143ff184cb3a4071d7429a9f870371ff9091a790acce28b85ce3c450bfc60554c79d43ca
+ languageName: node
+ linkType: hard
+
"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20251127.1":
version: 7.0.0-dev.20251127.1
resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20251127.1"
@@ -10277,27 +10399,26 @@ __metadata:
languageName: node
linkType: hard
-"eslint-config-next@npm:15.3.2":
- version: 15.3.2
- resolution: "eslint-config-next@npm:15.3.2"
+"eslint-config-next@npm:16.0.7":
+ version: 16.0.7
+ resolution: "eslint-config-next@npm:16.0.7"
dependencies:
- "@next/eslint-plugin-next": "npm:15.3.2"
- "@rushstack/eslint-patch": "npm:^1.10.3"
- "@typescript-eslint/eslint-plugin": "npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0"
- "@typescript-eslint/parser": "npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ "@next/eslint-plugin-next": "npm:16.0.7"
eslint-import-resolver-node: "npm:^0.3.6"
eslint-import-resolver-typescript: "npm:^3.5.2"
- eslint-plugin-import: "npm:^2.31.0"
+ eslint-plugin-import: "npm:^2.32.0"
eslint-plugin-jsx-a11y: "npm:^6.10.0"
eslint-plugin-react: "npm:^7.37.0"
- eslint-plugin-react-hooks: "npm:^5.0.0"
+ eslint-plugin-react-hooks: "npm:^7.0.0"
+ globals: "npm:16.4.0"
+ typescript-eslint: "npm:^8.46.0"
peerDependencies:
- eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
+ eslint: ">=9.0.0"
typescript: ">=3.3.1"
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/91cd6ba638d46c494f5cddc592c5705e342d5c459bc754b50bbf6d2047dc50e57fb7c907f3865fa92312d2df682900c102105b82a90d04cbd2519eb67d9ed172
+ checksum: 10c0/ca3e974c6c1c0821d6ff9ec8590ff334417b2cb615b92b119dd7bd05303c9c987256668e90209d2a74c6b088df9fbcbdbe44e79cb24c52b2b00f3ef9d0f0a061
languageName: node
linkType: hard
@@ -10367,7 +10488,7 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-import@npm:^2.31.0":
+"eslint-plugin-import@npm:^2.31.0, eslint-plugin-import@npm:^2.32.0":
version: 2.32.0
resolution: "eslint-plugin-import@npm:2.32.0"
dependencies:
@@ -10421,7 +10542,7 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-react-hooks@npm:^5.0.0, eslint-plugin-react-hooks@npm:^5.2.0":
+"eslint-plugin-react-hooks@npm:^5.2.0":
version: 5.2.0
resolution: "eslint-plugin-react-hooks@npm:5.2.0"
peerDependencies:
@@ -10430,6 +10551,21 @@ __metadata:
languageName: node
linkType: hard
+"eslint-plugin-react-hooks@npm:^7.0.0":
+ version: 7.0.1
+ resolution: "eslint-plugin-react-hooks@npm:7.0.1"
+ dependencies:
+ "@babel/core": "npm:^7.24.4"
+ "@babel/parser": "npm:^7.24.4"
+ hermes-parser: "npm:^0.25.1"
+ zod: "npm:^3.25.0 || ^4.0.0"
+ zod-validation-error: "npm:^3.5.0 || ^4.0.0"
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+ checksum: 10c0/1e711d1a9d1fa9cfc51fa1572500656577201199c70c795c6a27adfc1df39e5c598f69aab6aa91117753d23cc1f11388579a2bed14921cf9a4efe60ae8618496
+ languageName: node
+ linkType: hard
+
"eslint-plugin-react-refresh@npm:^0.4.20":
version: 0.4.24
resolution: "eslint-plugin-react-refresh@npm:0.4.24"
@@ -11297,6 +11433,13 @@ __metadata:
languageName: node
linkType: hard
+"globals@npm:16.4.0":
+ version: 16.4.0
+ resolution: "globals@npm:16.4.0"
+ checksum: 10c0/a14b447a78b664b42f6d324e8675fcae6fe5e57924fecc1f6328dce08af9b2ca3a3138501e1b1f244a49814a732dc60cfc1aa24e714e0b64ac8bd18910bfac90
+ languageName: node
+ linkType: hard
+
"globals@npm:^14.0.0":
version: 14.0.0
resolution: "globals@npm:14.0.0"
@@ -11471,6 +11614,22 @@ __metadata:
languageName: node
linkType: hard
+"hermes-estree@npm:0.25.1":
+ version: 0.25.1
+ resolution: "hermes-estree@npm:0.25.1"
+ checksum: 10c0/48be3b2fa37a0cbc77a112a89096fa212f25d06de92781b163d67853d210a8a5c3784fac23d7d48335058f7ed283115c87b4332c2a2abaaccc76d0ead1a282ac
+ languageName: node
+ linkType: hard
+
+"hermes-parser@npm:^0.25.1":
+ version: 0.25.1
+ resolution: "hermes-parser@npm:0.25.1"
+ dependencies:
+ hermes-estree: "npm:0.25.1"
+ checksum: 10c0/3abaa4c6f1bcc25273f267297a89a4904963ea29af19b8e4f6eabe04f1c2c7e9abd7bfc4730ddb1d58f2ea04b6fee74053d8bddb5656ec6ebf6c79cc8d14202c
+ languageName: node
+ linkType: hard
+
"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.2":
version: 3.3.2
resolution: "hoist-non-react-statics@npm:3.3.2"
@@ -13426,23 +13585,23 @@ __metadata:
languageName: node
linkType: hard
-"next@npm:^15.5.7":
- version: 15.5.7
- resolution: "next@npm:15.5.7"
+"next@npm:16.0.10":
+ version: 16.0.10
+ resolution: "next@npm:16.0.10"
dependencies:
- "@next/env": "npm:15.5.7"
- "@next/swc-darwin-arm64": "npm:15.5.7"
- "@next/swc-darwin-x64": "npm:15.5.7"
- "@next/swc-linux-arm64-gnu": "npm:15.5.7"
- "@next/swc-linux-arm64-musl": "npm:15.5.7"
- "@next/swc-linux-x64-gnu": "npm:15.5.7"
- "@next/swc-linux-x64-musl": "npm:15.5.7"
- "@next/swc-win32-arm64-msvc": "npm:15.5.7"
- "@next/swc-win32-x64-msvc": "npm:15.5.7"
+ "@next/env": "npm:16.0.10"
+ "@next/swc-darwin-arm64": "npm:16.0.10"
+ "@next/swc-darwin-x64": "npm:16.0.10"
+ "@next/swc-linux-arm64-gnu": "npm:16.0.10"
+ "@next/swc-linux-arm64-musl": "npm:16.0.10"
+ "@next/swc-linux-x64-gnu": "npm:16.0.10"
+ "@next/swc-linux-x64-musl": "npm:16.0.10"
+ "@next/swc-win32-arm64-msvc": "npm:16.0.10"
+ "@next/swc-win32-x64-msvc": "npm:16.0.10"
"@swc/helpers": "npm:0.5.15"
caniuse-lite: "npm:^1.0.30001579"
postcss: "npm:8.4.31"
- sharp: "npm:^0.34.3"
+ sharp: "npm:^0.34.4"
styled-jsx: "npm:5.1.6"
peerDependencies:
"@opentelemetry/api": ^1.1.0
@@ -13481,7 +13640,7 @@ __metadata:
optional: true
bin:
next: dist/bin/next
- checksum: 10c0/baf5b9f42416c478702b3894479b3d7862bc4abf18afe0e43b7fc7ed35567b8dc6cb76cd94906505bab9013cb8d0f3370cdc0451c01ec15ae5a638d37b5ba7c7
+ checksum: 10c0/c0e42bfaa0d38b0ee9a7fc54c748da2dfd807a76d75278b4c4f06768965d7b1035b836cae45e24a074dcf156a13c0fa555caa652886cc0f93e8be2b296dfbb51
languageName: node
linkType: hard
@@ -15344,8 +15503,8 @@ __metadata:
dependencies:
"@eslint/compat": "npm:^1.2.9"
"@formatjs/cli": "npm:^6.7.1"
- "@types/react": "npm:^19.2.3"
- "@types/react-dom": "npm:^19.2.3"
+ "@types/react": "npm:19.2.7"
+ "@types/react-dom": "npm:19.2.3"
"@typescript/native-preview": "npm:^7.0.0-dev.20251104.1"
"@yarnpkg/types": "npm:^4.0.1"
commander: "npm:^14.0.0"
@@ -15451,7 +15610,7 @@ __metadata:
languageName: node
linkType: hard
-"sharp@npm:^0.34.3, sharp@npm:^0.34.4":
+"sharp@npm:^0.34.4":
version: 0.34.5
resolution: "sharp@npm:0.34.5"
dependencies:
@@ -16609,6 +16768,21 @@ __metadata:
languageName: node
linkType: hard
+"typescript-eslint@npm:^8.46.0":
+ version: 8.48.1
+ resolution: "typescript-eslint@npm:8.48.1"
+ dependencies:
+ "@typescript-eslint/eslint-plugin": "npm:8.48.1"
+ "@typescript-eslint/parser": "npm:8.48.1"
+ "@typescript-eslint/typescript-estree": "npm:8.48.1"
+ "@typescript-eslint/utils": "npm:8.48.1"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/10b501bf69b14edd09d652b33e4a5dfad0498f2943992a433006933e384cdc5815217b2990801796ddf946d2ef4971d9a16c98c7cfbba41f6aa31b245ad057ac
+ languageName: node
+ linkType: hard
+
"typescript@npm:5.8.2":
version: 5.8.2
resolution: "typescript@npm:5.8.2"
@@ -17610,6 +17784,15 @@ __metadata:
languageName: node
linkType: hard
+"zod-validation-error@npm:^3.5.0 || ^4.0.0":
+ version: 4.0.2
+ resolution: "zod-validation-error@npm:4.0.2"
+ peerDependencies:
+ zod: ^3.25.0 || ^4.0.0
+ checksum: 10c0/0ccfec48c46de1be440b719cd02044d4abb89ed0e14c13e637cd55bf29102f67ccdba373f25def0fc7130e5f15025be4d557a7edcc95d5a3811599aade689e1b
+ languageName: node
+ linkType: hard
+
"zod@npm:^3.23.8, zod@npm:^3.24.1, zod@npm:^3.24.4":
version: 3.25.76
resolution: "zod@npm:3.25.76"
@@ -17617,6 +17800,13 @@ __metadata:
languageName: node
linkType: hard
+"zod@npm:^3.25.0 || ^4.0.0":
+ version: 4.1.13
+ resolution: "zod@npm:4.1.13"
+ checksum: 10c0/d7e74e82dba81a91ffc3239cd85bc034abe193a28f7087a94ab258a3e48e9a7ca4141920cac979a0d781495b48fc547777394149f26be04c3dc642f58bbc3941
+ languageName: node
+ linkType: hard
+
"zustand@npm:^4.5.2":
version: 4.5.7
resolution: "zustand@npm:4.5.7"