{ "name": "@mintel/web", "type": "module", "version": "0.1.0", "description": "Technical problem solver's blog - practical insights and learning notes", "scripts": { "dev": "pnpm run seed:context && next dev --webpack --hostname 0.0.0.0", "dev:native": "DATABASE_URI=postgres://payload:payload@127.0.0.1:54321/payload PAYLOAD_SECRET=dev-secret pnpm run seed:context && DATABASE_URI=postgres://payload:payload@127.0.0.1:54321/payload PAYLOAD_SECRET=dev-secret next dev --webpack", "seed:context": "node --import tsx --experimental-loader ./ignore-css.mjs ./seed-context.ts", "build": "next build --webpack", "start": "next start", "lint": "eslint app src scripts video", "test": "echo \"No tests configured\"", "test:links": "tsx ./scripts/test-links.ts", "test:file-examples": "tsx ./scripts/test-file-examples-comprehensive.ts", "generate-estimate": "tsx ./scripts/generate-estimate.ts", "ai-estimate": "tsx ./scripts/ai-estimate.ts", "video:preview": "remotion preview video/index.ts", "video:render": "remotion render video/index.ts ButtonShowcase out/button-showcase.mp4", "video:render:contact": "remotion render video/index.ts ContactFormShowcase out/contact-showcase.mp4 --concurrency=1 --codec=h264 --crf=16 --pixel-format=yuv420p --overwrite", "video:render:button": "remotion render video/index.ts ButtonShowcase out/button-showcase.mp4 --concurrency=1 --codec=h264 --crf=16 --pixel-format=yuv420p --overwrite", "video:render:all": "npm run video:render:contact && npm run video:render:button", "pagespeed:test": "npx tsx ./scripts/pagespeed-sitemap.ts", "typecheck": "tsc --noEmit", "check:og": "tsx scripts/check-og-images.ts", "check:forms": "tsx scripts/check-forms.ts", "cms:push:testing": "bash ./scripts/cms-sync.sh push testing", "cms:pull:testing": "bash ./scripts/cms-sync.sh pull testing", "cms:push:staging": "bash ./scripts/cms-sync.sh push staging", "cms:pull:staging": "bash ./scripts/cms-sync.sh pull staging", "cms:push:prod": "bash ./scripts/cms-sync.sh push prod", "cms:pull:prod": "bash ./scripts/cms-sync.sh pull prod", "db:restore": "bash ./scripts/restore-db.sh" }, "dependencies": { "@aws-sdk/client-s3": "^3.750.0", "@emotion/is-prop-valid": "^1.4.0", "@mdx-js/loader": "^3.1.1", "@mdx-js/react": "^3.1.1", "@mintel/concept-engine": "link:../../../at-mintel/packages/concept-engine", "@mintel/content-engine": "link:../../../at-mintel/packages/content-engine", "@mintel/estimation-engine": "link:../../../at-mintel/packages/estimation-engine", "@mintel/meme-generator": "link:../../../at-mintel/packages/meme-generator", "@mintel/payload-ai": "^1.9.15", "@mintel/pdf": "link:../../../at-mintel/packages/pdf-library", "@mintel/thumbnail-generator": "link:../../../at-mintel/packages/thumbnail-generator", "@next/mdx": "^16.1.6", "@next/third-parties": "^16.1.6", "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^2.1.0", "@opentelemetry/core": "^2.1.0", "@opentelemetry/sdk-trace-base": "^2.1.0", "@payloadcms/db-postgres": "^3.77.0", "@payloadcms/email-nodemailer": "^3.77.0", "@payloadcms/next": "^3.77.0", "@payloadcms/richtext-lexical": "^3.77.0", "@payloadcms/storage-s3": "^3.77.0", "@payloadcms/ui": "^3.77.0", "@react-pdf/renderer": "^4.3.2", "@remotion/bundler": "^4.0.414", "@remotion/cli": "^4.0.414", "@remotion/lottie": "^4.0.414", "@remotion/renderer": "^4.0.414", "@remotion/tailwind": "^4.0.414", "@sentry/core": "^10.38.0", "@sentry/nextjs": "^10.38.0", "@types/canvas-confetti": "^1.9.0", "@types/ioredis": "^4.28.10", "@types/react": "^19.2.8", "@types/react-dom": "^19.2.3", "@vercel/og": "^0.8.6", "axios": "^1.13.4", "canvas-confetti": "^1.9.4", "clsx": "^2.1.1", "crawlee": "^3.15.3", "dotenv": "^17.3.1", "esbuild": "^0.27.3", "framer-motion": "^12.29.2", "graphql": "^16.12.0", "html-to-image": "^1.11.13", "import-in-the-middle": "^1.11.0", "ioredis": "^5.9.1", "lucide-react": "^0.468.0", "mermaid": "^11.12.2", "next": "^16.1.6", "next-mdx-remote": "^6.0.0", "nodemailer": "^8.0.1", "payload": "^3.77.0", "playwright": "^1.58.1", "prismjs": "^1.30.0", "puppeteer": "^24.36.1", "qrcode": "^1.5.4", "react": "^19.2.3", "react-dom": "^19.2.3", "react-social-media-embed": "^2.5.18", "react-tweet": "^3.3.0", "recharts": "^3.7.0", "remotion": "^4.0.414", "replicate": "^1.4.0", "require-in-the-middle": "^8.0.1", "sharp": "^0.34.5", "shiki": "^1.24.2", "tailwind-merge": "^3.4.0", "tailwindcss": "^3.4.0", "webpack": "^5.96.1", "website-scraper": "^6.0.0", "website-scraper-puppeteer": "^2.0.0", "xlsx": "^0.18.5", "zod": "3.22.3" }, "devDependencies": { "@eslint/eslintrc": "^3.3.3", "@eslint/js": "^10.0.0", "@lhci/cli": "^0.15.1", "@mintel/cli": "^1.9.0", "@mintel/eslint-config": "^1.9.0", "@mintel/husky-config": "^1.9.0", "@mintel/next-config": "^1.9.0", "@mintel/next-utils": "^1.9.0", "@mintel/tsconfig": "^1.9.0", "@next/eslint-plugin-next": "^16.1.6", "@tailwindcss/typography": "^0.5.15", "@types/mime-types": "^3.0.1", "@types/node": "^25.0.6", "@types/nodemailer": "^7.0.10", "@types/prismjs": "^1.26.5", "@types/qrcode": "^1.5.6", "autoprefixer": "^10.4.20", "cheerio": "^1.1.2", "concurrently": "^9.2.1", "eslint": "10.0.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "mime-types": "^3.0.2", "postcss": "^8.4.49", "require-extensions": "^0.0.4", "tsx": "^4.21.0", "typescript": "5.9.3", "typescript-eslint": "^8.54.0" }, "repository": { "type": "git", "url": "git@git.infra.mintel.me:mmintel/mintel.me.git" } }