{ "name": "@scandic-hotels/scandic-web", "version": "0.1.0", "private": true, "type": "module", "scripts": { "build": "yarn clean && next build", "dev": "NODE_OPTIONS=--openssl-legacy-provider PORT=3000 NEXT_PUBLIC_PORT=3000 next dev", "lint": "yarn clean && next lint --max-warnings 0 && tsc", "lint:fix": "yarn clean && next lint --fix --max-warnings 0 && tsc", "start": "node .next/standalone/server.js", "test:component": "cypress open --component", "test:component:headless": "cypress run --component", "test:e2e": "start-server-and-test test:setup http://127.0.0.1:3000/en/sponsoring \"cypress open --e2e\"", "test:e2e:headless": "start-server-and-test test:setup http://127.0.0.1:3000/en/sponsoring \"cypress run --e2e\"", "test:setup": "yarn build && yarn start", "preinstall": "/bin/sh -c \"export $(cat .env.local | grep -v '^#' | xargs)\"", "test": "vitest run", "test:watch": "vitest", "ci:build": "yarn lint && yarn test && yarn build", "clean": "rm -rf .next", "i18n:extract": "formatjs extract \"{actions,app,components,constants,contexts,env,hooks,i18n,lib,middlewares,netlify,providers,server,services,stores,utils}/**/*.{ts,tsx}\" --format i18n/tooling/formatter.mjs --out-file i18n/tooling/extracted.json", "i18n:upload": "jiti i18n/tooling/upload.ts", "i18n:download": "jiti i18n/tooling/download.ts", "i18n:compile": "formatjs compile-folder --ast --format i18n/tooling/formatter.mjs i18n/tooling/translations-all i18n/dictionaries", "i18n:push": "yarn i18n:extract && yarn i18n:upload", "i18n:pull": "yarn i18n:download && yarn i18n:compile", "i18n:sync": "yarn i18n:push && yarn i18n:pull", "i18n:diff": "node i18n/tooling/diff.mjs", "i18n:clean": "jiti i18n/tooling/clean.ts", "check-types": "tsc --noEmit" }, "dependencies": { "@azure/monitor-opentelemetry-exporter": "^1.0.0-beta.31", "@contentstack/live-preview-utils": "^3.2.1", "@formatjs/intl": "^3.1.6", "@hookform/error-message": "^2.0.1", "@hookform/resolvers": "^5.0.1", "@internationalized/date": "^3.8.0", "@netlify/blobs": "^8.1.0", "@netlify/functions": "^3.0.0", "@netlify/plugin-nextjs": "^5.11.2", "@opentelemetry/api": "^1.9.0", "@opentelemetry/api-logs": "^0.56.0", "@opentelemetry/instrumentation": "^0.56.0", "@opentelemetry/resources": "^1.29.0", "@opentelemetry/sdk-logs": "^0.56.0", "@opentelemetry/sdk-metrics": "^1.25.1", "@opentelemetry/sdk-trace-base": "^1.29.0", "@radix-ui/react-slot": "^1.2.2", "@react-aria/ssr": "^3.9.8", "@scandic-hotels/design-system": "workspace:*", "@sentry/nextjs": "^8.41.0", "@swc/plugin-formatjs": "^3.2.2", "@t3-oss/env-nextjs": "^0.13.4", "@tanstack/react-query": "^5.75.5", "@tanstack/react-query-devtools": "^5.75.5", "@tanstack/react-table": "^8.21.3", "@testing-library/dom": "^10.4.0", "@trpc/client": "^11.1.2", "@trpc/react-query": "^11.1.2", "@trpc/server": "^11.1.2", "@tsparticles/confetti": "^3.8.1", "@types/geojson": "^7946.0.16", "@types/supercluster": "^7.1.3", "@vercel/otel": "^1.12.0", "@vis.gl/react-google-maps": "^1.5.2", "class-variance-authority": "^0.7.1", "clean-deep": "^3.4.0", "contentstack": "^3.25.3", "date-fns": "^4.1.0", "dayjs": "^1.11.13", "deepmerge": "^4.3.1", "dialogshift-webchat-sdk": "^2.10.1", "downshift": "^9.0.9", "embla-carousel": "^8.6.0", "embla-carousel-react": "^8.6.0", "fast-deep-equal": "^3.1.3", "flat": "^6.0.1", "graphql-tag": "^2.12.6", "html-react-parser": "^5.2.3", "ics": "^3.8.1", "immer": "10.1.1", "input-otp": "^1.4.2", "json-stable-stringify-without-jsonify": "^1.0.1", "jsonwebtoken": "^9.0.2", "libphonenumber-js": "^1.12.7", "lodash-es": "^4.17.21", "md5": "^2.3.0", "motion": "^12.10.0", "nanoid": "^5.1.5", "next": "15.3.3", "next-auth": "5.0.0-beta.27", "react": "19.1.0", "react-aria-components": "^1.8.0", "react-day-picker": "^9.6.7", "react-dom": "19.1.0", "react-feather": "^2.0.10", "react-focus-lock": "^2.13.6", "react-hook-form": "^7.56.2", "react-international-phone": "^4.5.0", "react-intl": "^7.1.11", "react-to-print": "^3.1.0", "server-only": "^0.0.1", "sonner": "^2.0.3", "supercluster": "^8.0.1", "usehooks-ts": "3.1.1", "zod": "^3.24.4", "zustand": "^4.5.2" }, "devDependencies": { "@eslint/compat": "^1.2.9", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.26.0", "@formatjs/cli": "^6.7.1", "@lokalise/node-api": "^14.0.0", "@react-aria/test-utils": "1.0.0-alpha.8", "@scandic-hotels/common": "workspace:*", "@scandic-hotels/typescript-config": "workspace:*", "@svgr/webpack": "^8.1.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/adm-zip": "^0.5.7", "@types/json-stable-stringify-without-jsonify": "^1.0.2", "@types/jsonwebtoken": "^9", "@types/lodash-es": "^4", "@types/node": "^20", "@types/react": "19.1.0", "@types/react-dom": "19.1.0", "@typescript-eslint/eslint-plugin": "^8.32.0", "@typescript-eslint/parser": "^8.32.0", "@vitejs/plugin-react": "^4.6.0", "adm-zip": "^0.5.16", "babel-plugin-formatjs": "^10.5.39", "cypress": "^14.3.3", "dotenv": "^16.5.0", "eslint": "^9", "eslint-config-next": "15.3.2", "eslint-plugin-formatjs": "^5.3.1", "eslint-plugin-import": "^2.31.0", "eslint-plugin-simple-import-sort": "^12.1.1", "jiti": "^1.21.0", "jsdom": "^26.1.0", "json-sort-cli": "^4.0.9", "lint-staged": "^15.5.2", "netlify-plugin-cypress": "^2.2.1", "prettier": "^3.5.3", "schema-dts": "^1.1.5", "start-server-and-test": "^2.0.11", "ts-morph": "^25.0.1", "ts-node": "^10.9.2", "typescript": "5.8.3", "typescript-plugin-css-modules": "^5.1.0", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.2.4" }, "engines": { "node": "22" }, "resolutions": { "@types/react": "19.1.0", "@types/react-dom": "19.1.0" } }