Skip to content
File

Blob: package.json

json158 lines
1{
2 "name": "bland",
3 "version": "0.1.0",
4 "private": true,
5 "type": "module",
6 "engines": {
7 "node": ">=24.11 <25"
8 },
9 "scripts": {
10 "emoji:generate": "node --import tsx scripts/generate-emoji-data.ts",
11 "dev": "vite dev",
12 "build": "vite build && vite build -c vite.sites.config.ts",
13 "lint": "eslint src tests scripts vite.config.ts eslint.config.js",
14 "typecheck": "npm run typecheck:client && npm run typecheck:worker && npm run typecheck:tests",
15 "typecheck:client": "tsc -p tsconfig.client.json --noEmit",
16 "typecheck:worker": "tsc -p tsconfig.worker.json --noEmit",
17 "typecheck:tests": "npm run typecheck:tests:client && npm run typecheck:tests:worker",
18 "typecheck:tests:client": "tsc -p tests/tsconfig.client.json --noEmit",
19 "typecheck:tests:worker": "tsc -p tests/tsconfig.worker.json --noEmit",
20 "types:generate": "wrangler types --env-file .dev.vars.example",
21 "test": "vitest run --passWithNoTests",
22 "test:client": "vitest run --project client --project client-dom",
23 "test:client-dom": "vitest run --project client-dom",
24 "test:sites": "vitest run --project sites",
25 "test:shared": "vitest run --project shared",
26 "test:worker": "vitest run --project worker-unit --project worker-runtime",
27 "test:worker-unit": "vitest run --project worker-unit",
28 "test:worker-runtime": "vitest run --project worker-runtime",
29 "test:e2e": "playwright test -c tests/e2e/playwright.config.ts",
30 "test:e2e:parallel": "BLAND_E2E_PARALLEL=1 playwright test -c tests/e2e/playwright.config.ts",
31 "deploy": "npm run db:migrate:remote && npm run build && wrangler deploy",
32 "db:generate:d1": "drizzle-kit generate --config=drizzle-d1.config.ts",
33 "db:generate:docsync-do": "drizzle-kit generate --config=drizzle-docsync-do.config.ts",
34 "db:generate:workspace-indexer": "drizzle-kit generate --config=drizzle-workspace-indexer.config.ts",
35 "db:generate:durable": "npm run db:generate:docsync-do && npm run db:generate:workspace-indexer",
36 "db:generate": "npm run db:generate:d1 && npm run db:generate:durable",
37 "db:migrate:local": "wrangler d1 migrations apply bland-prod --local",
38 "db:migrate:remote": "wrangler d1 migrations apply bland-prod --remote",
39 "format": "prettier --write .",
40 "format:check": "prettier --check .",
41 "predev": "npm run emoji:generate",
42 "prebuild": "npm run emoji:generate",
43 "pretypecheck": "npm run emoji:generate",
44 "pretest": "npm run emoji:generate"
45 },
46 "dependencies": {
47 "@cf-wasm/png": "^0.4.0",
48 "@excalidraw/excalidraw": "^0.18.1",
49 "@floating-ui/dom": "^1.8.0",
50 "@floating-ui/react": "^0.27.20",
51 "@fontsource-variable/bricolage-grotesque": "^5.3.0",
52 "@fontsource-variable/outfit": "^5.3.0",
53 "@fontsource/jetbrains-mono": "^5.3.0",
54 "@lucide/lab": "^0.2.0",
55 "@sentry/react": "^10.74.0",
56 "@serwist/window": "^9.5.12",
57 "@tanstack/react-query": "^5.102.8",
58 "@tanstack/react-router": "^1.170.34",
59 "@tiptap/core": "3.31.3",
60 "@tiptap/extension-character-count": "3.31.3",
61 "@tiptap/extension-code-block": "3.31.3",
62 "@tiptap/extension-collaboration": "3.31.3",
63 "@tiptap/extension-collaboration-caret": "3.31.3",
64 "@tiptap/extension-details": "3.31.3",
65 "@tiptap/extension-drag-handle-react": "3.31.3",
66 "@tiptap/extension-emoji": "3.31.3",
67 "@tiptap/extension-file-handler": "3.31.3",
68 "@tiptap/extension-image": "3.31.3",
69 "@tiptap/extension-placeholder": "3.31.3",
70 "@tiptap/extension-table": "3.31.3",
71 "@tiptap/extension-task-item": "3.31.3",
72 "@tiptap/extension-task-list": "3.31.3",
73 "@tiptap/extension-text-align": "3.31.3",
74 "@tiptap/extension-text-style": "3.31.3",
75 "@tiptap/extension-typography": "3.31.3",
76 "@tiptap/pm": "3.31.3",
77 "@tiptap/react": "3.31.3",
78 "@tiptap/starter-kit": "3.31.3",
79 "@tiptap/static-renderer": "3.31.3",
80 "@tiptap/suggestion": "3.31.3",
81 "@tiptap/y-tiptap": "^3.0.9",
82 "dexie": "^4.4.5",
83 "drizzle-orm": "^0.45.2",
84 "highlight.js": "^11.12.0",
85 "hono": "^4.13.7",
86 "jose": "^6.2.12",
87 "lowlight": "^3.3.0",
88 "lucide-react": "^1.43.0",
89 "nanoid": "^6.0.1",
90 "openid-client": "^6.8.8",
91 "partyserver": "^0.5.10",
92 "react": "^19.3.0",
93 "react-dom": "^19.3.0",
94 "ulid": "^3.0.2",
95 "y-indexeddb": "^9.0.12",
96 "y-partyserver": "^2.2.0",
97 "y-protocols": "^1.0.7",
98 "yjs": "^13.6.32",
99 "zod": "^4.6.1",
100 "zustand": "^5.0.15"
101 },
102 "devDependencies": {
103 "@babel/core": "^8.0.1",
104 "@cloudflare/vite-plugin": "1.54.6",
105 "@cloudflare/vitest-pool-workers": "0.22.0",
106 "@eslint/js": "^10.0.1",
107 "@mongodb-js/oidc-mock-provider": "^0.13.18",
108 "@playwright/test": "^1.63.0",
109 "@rolldown/plugin-babel": "^0.2.4",
110 "@serwist/vite": "^9.5.12",
111 "@tailwindcss/vite": "^4.3.3",
112 "@tanstack/react-query-devtools": "^5.102.8",
113 "@types/babel__core": "^7.20.5",
114 "@types/node": "^24.13.4",
115 "@types/react": "^19.3.0",
116 "@types/react-dom": "^19.3.0",
117 "@typescript/native": "npm:typescript@^7.0.2",
118 "@vitejs/plugin-react": "^6.1.1",
119 "babel-plugin-react-compiler": "^1.0.0",
120 "drizzle-kit": "^0.31.10",
121 "eslint": "^10.10.0",
122 "eslint-plugin-react-hooks": "^7.1.1",
123 "eslint-plugin-react-refresh": "^0.5.6",
124 "fake-indexeddb": "^6.2.5",
125 "globals": "^17.12.0",
126 "jsdom": "^29.1.1",
127 "prettier": "^3.9.6",
128 "prosemirror-schema-basic": "^1.2.4",
129 "serwist": "^9.5.12",
130 "tailwindcss": "^4.3.3",
131 "tsx": "^4.23.13",
132 "typescript": "npm:@typescript/typescript6@^6.0.2",
133 "typescript-eslint": "^8.70.0",
134 "vite": "^8.2.2",
135 "vitest": "^4.1.11",
136 "wrangler": "4.130.0"
137 },
138 "overrides": {
139 "lodash-es": "4.18.1",
140 "@radix-ui/react-tabs": "1.1.13",
141 "@esbuild-kit/core-utils": {
142 "esbuild": "0.25.12"
143 },
144 "@excalidraw/excalidraw": {
145 "nanoid": "3.3.18"
146 },
147 "@excalidraw/mermaid-to-excalidraw": {
148 "nanoid": "5.1.16"
149 },
150 "miniflare": {
151 "sharp": "0.35.4"
152 },
153 "y-partyserver": {
154 "@cloudflare/workers-types": "^5.20260908.1"
155 }
156 }
157}