{ "name": "gitfor", "private": true, "sideEffects": false, "type": "module", "engines": { "node": "24.9.0" }, "scripts": { "dev": "bun run editor:assets && vite dev", "build": "bun run editor:assets && vite build && tsc --noEmit", "editor:assets": "bun run scripts/build-editor.ts", "preview": "GITFOR_LOCAL=1 bun run build && vite preview", "lint": "oxlint . && bun run scripts/check-file-lines.ts", "lint:changed": "bun run scripts/lint-changed.ts", "lint:fix": "oxlint --fix .", "lint:staged": "oxlint --fix --no-error-on-unmatched-pattern", "format": "oxfmt --write -c .oxfmtrc.json \"**/*.{cjs,mjs,js,jsx,ts,tsx,json,jsonc,md}\"", "format:check": "oxfmt --check -c .oxfmtrc.json \"**/*.{cjs,mjs,js,jsx,ts,tsx,json,jsonc,md}\"", "check": "oxlint . && oxfmt --check -c .oxfmtrc.json \"**/*.{cjs,mjs,js,jsx,ts,tsx,json,jsonc,md}\"", "check:fix": "oxlint --fix . && oxfmt --write -c .oxfmtrc.json \"**/*.{cjs,mjs,js,jsx,ts,tsx,json,jsonc,md}\"", "deslop": "bun run scripts/deslop.ts", "knip": "knip", "knip:deps": "knip --dependencies", "type-check": "tsc --noEmit", "test": "bun test --isolate src", "test:e2e:integrations": "bun run scripts/e2e-integrations.ts", "test:e2e:notify": "bun run scripts/e2e-notify.ts", "deploy": "bun run scripts/check-deploy-config.ts && bun run build && wrangler d1 migrations apply gitfor --remote && wrangler d1 migrations apply gitfor-advisories --remote && wrangler deploy", "cf-typegen": "wrangler types --strict-vars=false", "db:migrate": "wrangler d1 migrations apply gitfor --local && wrangler d1 migrations apply gitfor-advisories --local", "deploy:check": "bun run scripts/check-deploy-config.ts", "runner": "bun runner/gitfor-runner.ts", "video:prepare": "bun scripts/video/prepare.ts", "video:upload": "bun scripts/video/upload.ts" }, "dependencies": { "@cloudflare/kumo": "^2.14.0", "@codemirror/commands": "^6.11.1", "@codemirror/language": "^6.13.1", "@codemirror/language-data": "^6.5.2", "@codemirror/state": "^6.7.6", "@codemirror/theme-one-dark": "^6.1.3", "@codemirror/view": "^6.43.14", "@fontsource/ibm-plex-mono": "^5.3.0", "@fontsource/ibm-plex-sans": "^5.3.0", "@phosphor-icons/react": "^2.1.10", "@pierre/diffs": "^1.3.5", "@resvg/resvg-wasm": "2.6.2", "@tanstack/react-query": "^5.104.2", "@tanstack/react-router": "^1.170.44", "@tanstack/react-router-ssr-query": "^1.167.3", "@tanstack/react-start": "^1.169.2", "clsx": "^2.1.1", "codemirror": "^6.0.2", "diff": "^9.0.0", "hls.js": "^1.7.3", "lib0": "^0.2.119", "markdown-it": "^15.0.2", "postal-mime": "^4.0.5", "posthog-js": "^1.438.8", "react": "^19.2.8", "react-dom": "^19.0.0", "satori": "0.32.0", "stripe": "^23.0.0", "sugar-high": "^2.0.1", "tailwind-merge": "^3.6.0", "uqr": "^0.1.3", "xss": "^1.0.15", "y-protocols": "^1.0.7", "yaml": "^2.9.1", "yjs": "^13.6.33", "zod": "^4.6.5" }, "devDependencies": { "@cloudflare/vite-plugin": "^1.63.1", "@modelcontextprotocol/client": "2.3.1", "@tailwindcss/vite": "^4.3.3", "@types/bun": "^1.4.2", "@types/node": "^26.2.0", "@types/react": "^19.2.18", "@types/react-dom": "^19.2.4", "@types/vscode": "1.91.0", "@vitejs/plugin-react": "^6.0.5", "deslop-cli": "^0.9.12", "knip": "^6.32.2", "oxfmt": "^0.64.0", "oxlint": "^1.79.0", "playwright-core": "^1.64.0", "react-grab": "^0.2.0", "seroval": "1.6.9", "tailwindcss": "^4.3.3", "typescript": "^7.0.2", "vite": "^8.2.1", "vscode-web": "1.91.1", "wrangler": "^4.149.0" } }