{ "name": "bland", "version": "0.1.0", "private": true, "type": "module", "engines": { "node": ">=24.11 <25" }, "scripts": { "emoji:generate": "node --import tsx scripts/generate-emoji-data.ts", "dev": "vite dev", "build": "vite build && vite build -c vite.sites.config.ts", "lint": "eslint src tests scripts vite.config.ts eslint.config.js", "typecheck": "npm run typecheck:client && npm run typecheck:worker && npm run typecheck:tests", "typecheck:client": "tsc -p tsconfig.client.json --noEmit", "typecheck:worker": "tsc -p tsconfig.worker.json --noEmit", "typecheck:tests": "npm run typecheck:tests:client && npm run typecheck:tests:worker", "typecheck:tests:client": "tsc -p tests/tsconfig.client.json --noEmit", "typecheck:tests:worker": "tsc -p tests/tsconfig.worker.json --noEmit", "types:generate": "wrangler types --env-file .dev.vars.example", "test": "vitest run --passWithNoTests", "test:client": "vitest run --project client --project client-dom", "test:client-dom": "vitest run --project client-dom", "test:sites": "vitest run --project sites", "test:shared": "vitest run --project shared", "test:worker": "vitest run --project worker-unit --project worker-runtime", "test:worker-unit": "vitest run --project worker-unit", "test:worker-runtime": "vitest run --project worker-runtime", "test:e2e": "playwright test -c tests/e2e/playwright.config.ts", "test:e2e:parallel": "BLAND_E2E_PARALLEL=1 playwright test -c tests/e2e/playwright.config.ts", "deploy": "npm run db:migrate:remote && npm run build && wrangler deploy", "db:generate:d1": "drizzle-kit generate --config=drizzle-d1.config.ts", "db:generate:docsync-do": "drizzle-kit generate --config=drizzle-docsync-do.config.ts", "db:generate:workspace-indexer": "drizzle-kit generate --config=drizzle-workspace-indexer.config.ts", "db:generate:durable": "npm run db:generate:docsync-do && npm run db:generate:workspace-indexer", "db:generate": "npm run db:generate:d1 && npm run db:generate:durable", "db:migrate:local": "wrangler d1 migrations apply bland-prod --local", "db:migrate:remote": "wrangler d1 migrations apply bland-prod --remote", "format": "prettier --write .", "format:check": "prettier --check .", "predev": "npm run emoji:generate", "prebuild": "npm run emoji:generate", "pretypecheck": "npm run emoji:generate", "pretest": "npm run emoji:generate" }, "dependencies": { "@cf-wasm/png": "^0.4.0", "@excalidraw/excalidraw": "^0.18.1", "@floating-ui/dom": "^1.8.0", "@floating-ui/react": "^0.27.20", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@fontsource/jetbrains-mono": "^5.3.0", "@lucide/lab": "^0.2.0", "@sentry/react": "^10.74.0", "@serwist/window": "^9.5.12", "@tanstack/react-query": "^5.102.8", "@tanstack/react-router": "^1.170.34", "@tiptap/core": "3.31.3", "@tiptap/extension-character-count": "3.31.3", "@tiptap/extension-code-block": "3.31.3", "@tiptap/extension-collaboration": "3.31.3", "@tiptap/extension-collaboration-caret": "3.31.3", "@tiptap/extension-details": "3.31.3", "@tiptap/extension-drag-handle-react": "3.31.3", "@tiptap/extension-emoji": "3.31.3", "@tiptap/extension-file-handler": "3.31.3", "@tiptap/extension-image": "3.31.3", "@tiptap/extension-placeholder": "3.31.3", "@tiptap/extension-table": "3.31.3", "@tiptap/extension-task-item": "3.31.3", "@tiptap/extension-task-list": "3.31.3", "@tiptap/extension-text-align": "3.31.3", "@tiptap/extension-text-style": "3.31.3", "@tiptap/extension-typography": "3.31.3", "@tiptap/pm": "3.31.3", "@tiptap/react": "3.31.3", "@tiptap/starter-kit": "3.31.3", "@tiptap/static-renderer": "3.31.3", "@tiptap/suggestion": "3.31.3", "@tiptap/y-tiptap": "^3.0.9", "dexie": "^4.4.5", "drizzle-orm": "^0.45.2", "highlight.js": "^11.12.0", "hono": "^4.13.7", "jose": "^6.2.12", "lowlight": "^3.3.0", "lucide-react": "^1.43.0", "nanoid": "^6.0.1", "openid-client": "^6.8.8", "partyserver": "^0.5.10", "react": "^19.3.0", "react-dom": "^19.3.0", "ulid": "^3.0.2", "y-indexeddb": "^9.0.12", "y-partyserver": "^2.2.0", "y-protocols": "^1.0.7", "yjs": "^13.6.32", "zod": "^4.6.1", "zustand": "^5.0.15" }, "devDependencies": { "@babel/core": "^8.0.1", "@cloudflare/vite-plugin": "1.54.6", "@cloudflare/vitest-pool-workers": "0.22.0", "@eslint/js": "^10.0.1", "@mongodb-js/oidc-mock-provider": "^0.13.18", "@playwright/test": "^1.63.0", "@rolldown/plugin-babel": "^0.2.4", "@serwist/vite": "^9.5.12", "@tailwindcss/vite": "^4.3.3", "@tanstack/react-query-devtools": "^5.102.8", "@types/babel__core": "^7.20.5", "@types/node": "^24.13.4", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "@typescript/native": "npm:typescript@^7.0.2", "@vitejs/plugin-react": "^6.1.1", "babel-plugin-react-compiler": "^1.0.0", "drizzle-kit": "^0.31.10", "eslint": "^10.10.0", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.6", "fake-indexeddb": "^6.2.5", "globals": "^17.12.0", "jsdom": "^29.1.1", "prettier": "^3.9.6", "prosemirror-schema-basic": "^1.2.4", "serwist": "^9.5.12", "tailwindcss": "^4.3.3", "tsx": "^4.23.13", "typescript": "npm:@typescript/typescript6@^6.0.2", "typescript-eslint": "^8.70.0", "vite": "^8.2.2", "vitest": "^4.1.11", "wrangler": "4.130.0" }, "overrides": { "lodash-es": "4.18.1", "@radix-ui/react-tabs": "1.1.13", "@esbuild-kit/core-utils": { "esbuild": "0.25.12" }, "@excalidraw/excalidraw": { "nanoid": "3.3.18" }, "@excalidraw/mermaid-to-excalidraw": { "nanoid": "5.1.16" }, "miniflare": { "sharp": "0.35.4" }, "y-partyserver": { "@cloudflare/workers-types": "^5.20260908.1" } } }