{ "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", "build:e2e-plugin": "node scripts/build-e2e-plugin.mjs", "start": "vite preview --host 0.0.0.0", "lint": "eslint --max-warnings 0", "lint:i18n": "eslint --config eslint.i18n.config.mjs", "lint:e2e-sleeps": "eslint --config eslint.e2e-sleeps.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:raw": "e2e/scripts/run-raw-e2e.sh", "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": "e2e/scripts/run-raw-e2e.sh --ui", "e2e:headed": "e2e/scripts/run-raw-e2e.sh --headed", "e2e:capture": "cross-env CAPTURE_PR_ASSETS=true e2e/scripts/run-raw-e2e.sh && tsx e2e/scripts/convert-assets.ts", "e2e:sleep-ratchet": "node scripts/check-new-e2e-sleeps.mjs", "e2e:waits": "node scripts/report-e2e-waits.mjs", "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 && node scripts/check-no-em-dash-ui.mjs && node scripts/check-nonjsx-copy.mjs", "i18n:ratchet": "node scripts/run-i18n-ratchet.mjs", "i18n:removed": "node scripts/check-removed-literals.mjs", "i18n:sweep": "node scripts/i18n-sweep.mjs", "i18n:parity": "node scripts/i18n-parity.mjs", "i18n:zh-hant": "node scripts/convert-zh-cn-to-zh-hant.mjs --locale all --write" }, "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", "@floating-ui/dom": "^1.7.4", "@kandev/plugin-sdk": "workspace:*", "@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", "@tanstack/react-virtual": "^3.14.10", "@tiptap/core": "^3.31.3", "@tiptap/extension-bubble-menu": "^3.31.3", "@tiptap/extension-code": "^3.31.3", "@tiptap/extension-code-block-lowlight": "^3.31.3", "@tiptap/extension-collaboration": "3.31.3", "@tiptap/extension-document": "^3.31.3", "@tiptap/extension-drag-handle": "^3.31.3", "@tiptap/extension-drag-handle-react": "^3.31.3", "@tiptap/extension-hard-break": "^3.31.3", "@tiptap/extension-highlight": "^3.31.3", "@tiptap/extension-history": "^3.31.3", "@tiptap/extension-image": "^3.31.3", "@tiptap/extension-link": "^3.31.3", "@tiptap/extension-mention": "^3.31.3", "@tiptap/extension-node-range": "3.31.3", "@tiptap/extension-paragraph": "^3.31.3", "@tiptap/extension-placeholder": "^3.31.3", "@tiptap/extension-table": "^3.31.3", "@tiptap/extension-table-cell": "^3.31.3", "@tiptap/extension-table-header": "^3.31.3", "@tiptap/extension-table-row": "^3.31.3", "@tiptap/extension-task-item": "^3.31.3", "@tiptap/extension-task-list": "^3.31.3", "@tiptap/extension-text": "^3.31.3", "@tiptap/extension-underline": "^3.31.3", "@tiptap/pm": "^3.31.3", "@tiptap/react": "^3.31.3", "@tiptap/starter-kit": "^3.31.3", "@tiptap/suggestion": "^3.31.3", "@tiptap/y-tiptap": "3.0.9", "@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", "html2canvas-pro": "2.4.3", "i18next": "^26.3.6", "immer": "^10.1.1", "input-otp": "^1.4.2", "katex": "^0.16.47", "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-katex": "^7.0.1", "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", "remark-math": "^6.0.0", "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/katex": "^0.16.8", "@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", "fake-indexeddb": "^6.2.5", "happy-dom": "^20.8.9", "opencc-js": "1.4.1", "tailwindcss": "^4", "tsx": "^4.21.0", "typescript": "^5", "typescript-eslint": "^8.53.0", "vite": "8.0.16", "vitest": "^4.1.10" } }