{ "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", "test:e2e": "playwright test" }, "dependencies": { "@astrojs/node": "^8.3.3", "@astrojs/react": "^3.6.2", "@astrojs/sitemap": "^3.1.6", "@astrojs/tailwind": "^5.1.0", "@codemirror/commands": "^6.7.0", "@codemirror/lang-sql": "^6.8.0", "@codemirror/language": "^6.10.3", "@codemirror/state": "^6.4.1", "@codemirror/view": "^6.34.1", "@fingerprintjs/fingerprintjs": "^4.4.3", "@lezer/highlight": "^1.2.1", "@nanostores/react": "^0.7.2", "@napi-rs/image": "^1.9.2", "@resvg/resvg-js": "^2.6.2", "@tanstack/react-query": "^5.59.15", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "astro": "^4.15.4", "clsx": "^2.1.1", "codemirror": "^6.0.1", "dayjs": "^1.11.12", "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.6.3", "js-cookie": "^3.0.5", "lucide-react": "^0.419.0", "luxon": "^3.5.0", "nanoid": "^5.0.7", "nanostores": "^0.10.3", "node-html-parser": "^6.1.13", "npm-check-updates": "^17.0.0", "playwright": "^1.47.1", "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-resizable-panels": "^2.1.4", "react-tooltip": "^5.27.1", "reactflow": "^11.11.4", "rehype-external-links": "^3.0.0", "remark-parse": "^11.0.0", "roadmap-renderer": "^1.0.6", "satori": "^0.10.14", "satori-html": "^0.3.2", "sharp": "^0.33.4", "slugify": "^1.6.6", "sql-formatter": "^15.4.3", "sql.js": "^1.11.0", "tailwind-merge": "^2.4.0", "tailwindcss": "^3.4.7", "turndown": "^7.2.0", "unified": "^11.0.5", "zustand": "^4.5.4" }, "devDependencies": { "@playwright/test": "^1.45.3", "@tailwindcss/typography": "^0.5.13", "@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/sql.js": "^1.4.9", "@types/turndown": "^5.0.5", "csv-parser": "^3.0.0", "gh-pages": "^6.1.1", "js-yaml": "^4.1.0", "markdown-it": "^14.1.0", "openai": "^4.53.2", "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.6.5", "tsx": "^4.16.5" } }