Cloudflare has strengthened protection on these hotels. Puppeteer-based bypass returns HTML instead of JSON. cloudscraper has dependency issues with Node.js v26. Reverting to simple HTTP fetch with clear error messages.
107 lines
2.8 KiB
JSON
107 lines
2.8 KiB
JSON
{
|
|
"name": "atomcms-next",
|
|
"private": true,
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"packageManager": "[email protected]",
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"typecheck": "tsc --noEmit --incremental",
|
|
"biome:check": "biome check --write .",
|
|
"biome:lint": "biome lint .",
|
|
"biome:format": "biome format --write .",
|
|
"knip": "knip",
|
|
"analyze": "ANALYZE=true pnpm build",
|
|
"test": "vitest run",
|
|
"db:migrate": "tsx scripts/apply-migrations.ts",
|
|
"db:migrate:status": "tsx scripts/apply-migrations.ts --status",
|
|
"db:schema:generate": "node scripts/generate-drizzle-schema.mjs",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:studio": "drizzle-kit studio",
|
|
"db:introspect": "drizzle-kit introspect",
|
|
"jobs:worker": "tsx scripts/jobs-worker.ts",
|
|
"prepare": "husky"
|
|
},
|
|
"lint-staged": {
|
|
"*.{js,jsx,ts,tsx}": [
|
|
"biome check --write"
|
|
],
|
|
"*.{json,md,css,scss,html}": [
|
|
"biome format --write --no-errors-on-unmatched"
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"@base-ui/react": "^1.6.0",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@hookform/resolvers": "^5.5.7",
|
|
"@tanstack/react-virtual": "^3.14.9",
|
|
"class-variance-authority": "^0.7.1",
|
|
"cloudscraper": "^4.6.0",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"croner": "^10.0.1",
|
|
"drizzle-orm": "^0.45.2",
|
|
"hash-wasm": "^4.12.0",
|
|
"ioredis": "^5.11.1",
|
|
"isomorphic-dompurify": "^3.20.0",
|
|
"jpeg-js": "^0.4.4",
|
|
"json5": "^2.2.3",
|
|
"jszip": "^3.10.1",
|
|
"lenis": "^1.3.25",
|
|
"lucide-react": "^1.28.0",
|
|
"lzma": "^2.3.2",
|
|
"motion": "^12.43.0",
|
|
"music-metadata": "^11.14.0",
|
|
"mysql2": "^3.23.2",
|
|
"next": "^16.2.12",
|
|
"next-auth": "5.0.0-beta.32",
|
|
"next-intl": "^4.13.4",
|
|
"otplib": "^13.4.1",
|
|
"pino": "^10.3.1",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"react-hook-form": "^7.83.0",
|
|
"request": "^2.88.2",
|
|
"resend": "^6.18.1",
|
|
"server-only": "^0.0.1",
|
|
"sharp": "^0.35.3",
|
|
"sonner": "^2.0.7",
|
|
"tailwind-merge": "^3.6.0",
|
|
"tailwindcss-animate": "^1.0.7",
|
|
"zod": "^4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "2.5.6",
|
|
"@next/bundle-analyzer": "^16.2.12",
|
|
"@tailwindcss/forms": "^0.5.11",
|
|
"@tailwindcss/postcss": "^4.3.3",
|
|
"@tailwindcss/typography": "^0.5.20",
|
|
"@types/node": "^26.1.2",
|
|
"@types/react": "^19.2.18",
|
|
"@types/react-dom": "^19.2.4",
|
|
"@vitest/coverage-v8": "4.1.10",
|
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
"dotenv": "^17.4.2",
|
|
"drizzle-kit": "^0.31.10",
|
|
"husky": "^9.1.7",
|
|
"knip": "^6.30.0",
|
|
"lint-staged": "^17.3.0",
|
|
"pino-pretty": "^13.1.3",
|
|
"postcss": "^8.5.25",
|
|
"puppeteer": "^25.5.0",
|
|
"puppeteer-extra": "^3.3.6",
|
|
"puppeteer-extra-plugin-stealth": "^2.11.2",
|
|
"tailwindcss": "^4.3.3",
|
|
"tsx": "^4.23.1",
|
|
"typescript": "^7.0.2",
|
|
"vite": "8.2.0",
|
|
"vitest": "4.1.10"
|
|
}
|
|
}
|