{ "name": "@kandev/web", "version": "0.1.0", "private": true, "scripts": { "predev": "node scripts/generate-release-notes.mjs && node scripts/generate-changelog.mjs", "dev": "vite --host 0.0.0.0", "prebuild": "node scripts/generate-release-notes.mjs && node scripts/generate-changelog.mjs", "build": "vite build", "build:vite": "vite build", "build:e2e": "cross-env KANDEV_I18N_BUNDLE_PSEUDO=1 pnpm run build", "start": "vite preview --host 0.0.0.0", "lint": "eslint --max-warnings 0", "lint:i18n": "eslint --config eslint.i18n.config.mjs", "pretypecheck": "node scripts/generate-release-notes.mjs && node scripts/generate-changelog.mjs", "typecheck": "tsc --noEmit", "pretest": "node scripts/generate-release-notes.mjs && node scripts/generate-changelog.mjs", "test": "vitest run", "e2e": "playwright test --config e2e/playwright.config.ts", "e2e:run": "e2e/scripts/run-e2e.sh", "e2e:docker": "e2e/scripts/run-e2e.sh --docker", "e2e:clean": "e2e/scripts/run-e2e.sh clean", "e2e:ui": "playwright test --config e2e/playwright.config.ts --ui", "e2e:headed": "playwright test --config e2e/playwright.config.ts --headed", "e2e:capture": "cross-env CAPTURE_PR_ASSETS=true playwright test --config e2e/playwright.config.ts && tsx e2e/scripts/convert-assets.ts", "licenses:gen": "tsx scripts/generate-licenses.ts", "i18n:pseudo": "node scripts/generate-pseudo-locale.mjs", "i18n:check": "node scripts/check-i18n-keys.mjs && node scripts/check-trans-indices.mjs && node scripts/check-inline-plurals.mjs && node scripts/check-module-scope-t.mjs", "i18n:ratchet": "node scripts/run-i18n-ratchet.mjs", "i18n:removed": "node scripts/check-removed-literals.mjs", "i18n:sweep": "node scripts/i18n-sweep.mjs" }, "dependencies": { "@base-ui/react": "^1.0.0", "@codemirror/autocomplete": "^6.18.1", "@codemirror/commands": "^6.7.0", "@codemirror/lang-cpp": "^6.0.3", "@codemirror/lang-css": "^6.3.1", "@codemirror/lang-go": "^6.0.1", "@codemirror/lang-html": "^6.4.11", "@codemirror/lang-java": "^6.0.2", "@codemirror/lang-javascript": "^6.2.4", "@codemirror/lang-json": "^6.0.2", "@codemirror/lang-markdown": "^6.5.0", "@codemirror/lang-python": "^6.2.1", "@codemirror/lang-rust": "^6.0.2", "@codemirror/lang-yaml": "^6.1.2", "@codemirror/state": "^6.5.3", "@codemirror/view": "^6.39.10", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@huggingface/transformers": "^4.2.0", "@kandev/theme": "workspace:*", "@kandev/types": "workspace:*", "@kandev/ui": "workspace:*", "@lezer/highlight": "^1.2.3", "@monaco-editor/react": "^4.7.0", "@pierre/diffs": "^1.1.22", "@tabler/icons-react": "^3.36.1", "@tanstack/react-table": "^8.21.3", "@tiptap/core": "^3.19.0", "@tiptap/extension-bubble-menu": "^3.19.0", "@tiptap/extension-code": "^3.19.0", "@tiptap/extension-code-block-lowlight": "^3.19.0", "@tiptap/extension-document": "^3.19.0", "@tiptap/extension-drag-handle": "^3.20.0", "@tiptap/extension-drag-handle-react": "^3.20.0", "@tiptap/extension-hard-break": "^3.19.0", "@tiptap/extension-highlight": "^3.19.0", "@tiptap/extension-history": "^3.19.0", "@tiptap/extension-image": "^3.19.0", "@tiptap/extension-link": "^3.19.0", "@tiptap/extension-mention": "^3.19.0", "@tiptap/extension-paragraph": "^3.19.0", "@tiptap/extension-placeholder": "^3.19.0", "@tiptap/extension-table": "^3.19.0", "@tiptap/extension-table-cell": "^3.19.0", "@tiptap/extension-table-header": "^3.19.0", "@tiptap/extension-table-row": "^3.19.0", "@tiptap/extension-task-item": "^3.19.0", "@tiptap/extension-task-list": "^3.19.0", "@tiptap/extension-text": "^3.19.0", "@tiptap/extension-underline": "^3.19.0", "@tiptap/pm": "^3.19.0", "@tiptap/react": "^3.19.0", "@tiptap/starter-kit": "^3.19.0", "@tiptap/suggestion": "^3.19.0", "@uiw/codemirror-theme-github": "^4.25.4", "@uiw/codemirror-theme-vscode": "^4.25.4", "@uiw/react-codemirror": "^4.25.4", "@xterm/addon-attach": "^0.12.0", "@xterm/addon-fit": "^0.11.0", "@xterm/addon-search": "^0.15.0", "@xterm/addon-unicode11": "^0.9.0", "@xterm/addon-web-links": "^0.12.0", "@xterm/addon-webgl": "^0.19.0", "@xterm/xterm": "^6.0.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "date-fns": "^4.1.0", "diff": "^8.0.3", "dockview-react": "^4.13.1", "embla-carousel-react": "^8.6.0", "i18next": "^26.3.6", "immer": "^10.1.1", "input-otp": "^1.4.2", "lowlight": "^3.3.0", "mermaid": "^11.12.2", "monaco-editor": "^0.55.1", "radix-ui": "^1.4.3", "react": "19.2.3", "react-day-picker": "^9.13.0", "react-dom": "19.2.3", "react-i18next": "^17.0.11", "react-markdown": "^10.1.0", "react-resizable-panels": "^4.4.1", "recharts": "2.15.4", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "remark-breaks": "^4.0.0", "remark-gemoji": "^8.0.0", "remark-gfm": "^4.0.1", "shadcn": "^3.6.3", "shiki": "^3.22.0", "sonner": "^2.0.7", "tailwind-merge": "^3.4.0", "tiptap-markdown": "^0.9.0", "tw-animate-css": "^1.4.0", "vaul": "^1.1.2", "zustand": "^5.0.8" }, "devDependencies": { "@babel/core": "^7.29.6", "@eslint/js": "^9.39.2", "@playwright/test": "^1.61.1", "@tailwindcss/postcss": "^4", "@testing-library/react": "^16.3.2", "@types/diff": "^8.0.0", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "@vitejs/plugin-react": "^6.0.2", "cross-env": "^7.0.3", "eslint": "^9", "eslint-plugin-i18next": "^6.1.5", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-sonarjs": "^3.0.7", "eslint-plugin-unused-imports": "^4.4.1", "happy-dom": "^20.8.9", "tailwindcss": "^4", "tsx": "^4.21.0", "typescript": "^5", "typescript-eslint": "^8.53.0", "vite": "8.0.16", "vitest": "^4.1.10" } }