{ "name": "roadmap.sh", "type": "module", "version": "1.0.0", "private": true, "scripts": { "dev": "astro dev --port 3000", "start": "astro dev", "build": "astro build", "preview": "astro preview", "format": "prettier --write .", "gh-labels": "./scripts/create-roadmap-labels.sh", "astro": "astro", "deploy": "NODE_DEBUG=gh-pages gh-pages -d dist -t", "upgrade": "ncu -u", "roadmap-links": "node scripts/roadmap-links.cjs", "roadmap-dirs": "node scripts/roadmap-dirs.cjs", "roadmap-assets": "tsx scripts/editor-roadmap-assets.ts", "editor-roadmap-dirs": "tsx scripts/editor-roadmap-dirs.ts", "editor-roadmap-content": "tsx scripts/editor-roadmap-content.ts", "roadmap-content": "node scripts/roadmap-content.cjs", "generate-renderer": "sh scripts/generate-renderer.sh", "best-practice-dirs": "node scripts/best-practice-dirs.cjs", "best-practice-content": "node scripts/best-practice-content.cjs", "generate:og": "node ./scripts/generate-og-images.mjs", "warm:urls": "sh ./scripts/warm-urls.sh https://roadmap.sh/sitemap-0.xml", "compress:images": "tsx ./scripts/compress-images.ts", "generate:roadmap-content-json": "tsx ./scripts/editor-roadmap-content-json.ts", "migrate:editor-roadmaps": "tsx ./scripts/migrate-editor-roadmap.ts", "test:e2e": "playwright test" }, "dependencies": { "@astrojs/node": "^8.3.4", "@astrojs/react": "^3.6.2", "@astrojs/sitemap": "^3.2.0", "@astrojs/tailwind": "^5.1.2", "@fingerprintjs/fingerprintjs": "^4.5.0", "@nanostores/react": "^0.8.0", "@napi-rs/image": "^1.9.2", "@resvg/resvg-js": "^2.6.2", "@tanstack/react-query": "^5.59.16", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.1", "@xyflow/react": "^12.3.5", "astro": "^4.16.1", "clsx": "^2.1.1", "dayjs": "^1.11.13", "dom-to-image": "^2.6.0", "dracula-prism": "^2.1.16", "gray-matter": "^4.0.3", "htm": "^3.1.1", "image-size": "^1.1.1", "jose": "^5.9.4", "js-cookie": "^3.0.5", "lucide-react": "^0.452.0", "luxon": "^3.5.0", "nanoid": "^5.0.7", "nanostores": "^0.11.3", "node-html-parser": "^6.1.13", "npm-check-updates": "^17.1.3", "playwright": "^1.48.0", "prismjs": "^1.29.0", "react": "^18.3.1", "react-calendar-heatmap": "^1.9.0", "react-confetti": "^6.1.0", "react-dom": "^18.3.1", "react-tooltip": "^5.28.0", "rehype-external-links": "^3.0.0", "remark-parse": "^11.0.0", "roadmap-renderer": "^1.0.6", "satori": "^0.11.2", "satori-html": "^0.3.2", "sharp": "^0.33.5", "slugify": "^1.6.6", "tailwind-merge": "^2.5.3", "tailwindcss": "^3.4.13", "turndown": "^7.2.0", "unified": "^11.0.5", "zustand": "^4.5.5" }, "devDependencies": { "@playwright/test": "^1.48.0", "@tailwindcss/typography": "^0.5.15", "@types/dom-to-image": "^2.6.7", "@types/js-cookie": "^3.0.6", "@types/luxon": "^3.4.2", "@types/prismjs": "^1.26.4", "@types/react-calendar-heatmap": "^1.6.7", "@types/react-slick": "^0.23.13", "@types/turndown": "^5.0.5", "csv-parser": "^3.0.0", "gh-pages": "^6.2.0", "js-yaml": "^4.1.0", "markdown-it": "^14.1.0", "openai": "^4.67.3", "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.6.8", "tsx": "^4.19.1" } }