{ "name": "aivory", "private": true, "version": "2.5.2-beta.12", "type": "module", "scripts": { "dev": "vite", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", "desktop:install": "npm install --prefix desktop", "desktop:dev": "node desktop/dev.mjs", "desktop:build": "node desktop/build.mjs", "desktop:pack": "node desktop/build.mjs --dir", "desktop:test": "node --test desktop/tests/*.test.mjs", "desktop:test:smoke": "node tests/browser/run-desktop.mjs", "desktop:test:drawers": "node tests/browser/run-desktop-drawers.mjs", "desktop:test:auth": "node tests/browser/run-desktop-auth.mjs", "desktop:test:updates": "node tests/browser/run-desktop-updates.mjs", "desktop:test:server": "node tests/browser/run-desktop-server.mjs", "desktop:test:records": "node tests/browser/run-desktop-records.mjs", "desktop:test:download": "node tests/browser/run-app-download.mjs", "typecheck": "tsc -b --noEmit", "test": "vitest run --dir tests/frontend", "test:sandbox": "python3 -m unittest discover -s tests/sandbox-service -p 'test_*.py'", "test:ooxml-roundtrip": "vitest run tests/frontend/lib/ooxml/real-fixtures.test.ts && python3 tests/fixtures/ooxml/verify_roundtrip.py", "test:browser": "node tests/browser/run-editors.mjs", "test:foreground": "node tests/browser/run-foreground-refresh.mjs", "test:preview": "node tests/browser/run-preview.mjs", "test:panel": "node tests/browser/run-panel.mjs", "test:code-wrap": "node tests/browser/run-code-wrap.mjs", "test:layout": "node tests/browser/run-layout.mjs", "test:ui-states": "node tests/browser/run-ui-states.mjs", "test:reply-wait": "node tests/browser/run-reply-wait.mjs", "test:reply-animation-settings": "node tests/browser/run-reply-animation-settings.mjs", "test:site-access": "node tests/browser/run-site-access.mjs", "test:share": "node tests/browser/run-share.mjs", "test:composer-formula-upload": "node tests/browser/run-composer-formula-upload.mjs", "test:conversation-share": "node tests/browser/run-conversation-image.mjs", "test:mobile-layout": "node tests/browser/run-mobile-layout.mjs", "test:mobile-navigation": "node tests/browser/run-mobile-navigation.mjs", "test:generative-ui": "node tests/browser/run-generative-ui.mjs", "test:generative-map": "node tests/browser/run-generative-map.mjs", "test:amap": "node tests/browser/run-amap.mjs" }, "dependencies": { "@aiden0z/pptx-renderer": "^1.2.4", "@amap/amap-jsapi-loader": "^1.0.1", "@capacitor/android": "^8.4.2", "@capacitor/core": "^8.4.2", "@codemirror/commands": "6.11.1", "@codemirror/lang-html": "6.4.12", "@codemirror/lang-markdown": "6.5.2", "@codemirror/language": "6.12.4", "@codemirror/search": "6.7.2", "@codemirror/state": "6.7.5", "@codemirror/view": "6.43.12", "@docx-editor.dev/core": "2.21.0", "@docx-editor.dev/i18n": "2.21.0", "@docx-editor.dev/react": "2.21.0", "@fontsource-variable/fraunces": "^5.2.9", "@fontsource-variable/geist": "^5.2.9", "@fontsource-variable/geist-mono": "^5.2.8", "@formulajs/formulajs": "^4.6.1", "@gsap/react": "^2.1.2", "@lezer/highlight": "1.2.3", "@radix-ui/react-avatar": "^1.1.10", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-switch": "^1.2.6", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-toast": "^1.2.15", "@radix-ui/react-tooltip": "^1.2.8", "@tailwindcss/browser": "4.1.12", "@tiptap/core": "3.28.0", "@tiptap/extension-mathematics": "3.28.0", "@tiptap/extension-placeholder": "3.28.0", "@tiptap/pm": "3.28.0", "@tiptap/react": "3.28.0", "@tiptap/starter-kit": "3.28.0", "ag-grid-community": "^36.2.0", "clsx": "^2.1.1", "cmdk": "^1.1.1", "docx": "^9.7.1", "docx-preview": "^0.4.0", "framer-motion": "^12.0.0", "gcoord": "^1.0.7", "gsap": "^3.15.0", "html-to-image": "^1.11.13", "html2canvas": "^1.4.1", "i18next": "^25.10.10", "i18next-browser-languagedetector": "^8.2.1", "jsonrepair": "^3.15.0", "jszip": "^3.10.2", "katex": "^0.17.0", "leaflet": "^1.9.4", "lucide-react": "^0.474.0", "mammoth": "^1.12.0", "marked": "^15.0.0", "mathlive": "0.110.0", "mathml2omml": "^0.5.0", "mermaid": "^11.15.0", "ogl": "^1.0.11", "pdfjs-dist": "^5.4.624", "react": "^19.1.0", "react-dom": "^19.1.0", "react-i18next": "^15.7.4", "react-router-dom": "^7.1.0", "read-excel-file": "^9.3.4", "shiki": "^4.3.0", "tailwind-merge": "^3.0.0", "use-sync-external-store": "^1.6.0", "zustand": "^5.0.2" }, "devDependencies": { "@amap/amap-jsapi-types": "^0.0.15", "@capacitor/cli": "^8.4.2", "@tailwindcss/postcss": "^4.0.0", "@types/leaflet": "^1.9.22", "@types/node": "^22.10.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.3.4", "@waffo/pancake-ts": "^0.14.0", "@xmldom/xmldom": "^0.9.10", "autoprefixer": "^10.4.20", "eslint": "^9.18.0", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.16", "globals": "^15.14.0", "jsdom": "^30.1.0", "postcss": "^8.5.0", "puppeteer-core": "^25.11.0", "tailwindcss": "^4.0.0", "typescript": "^5.8.0", "typescript-eslint": "^8.20.0", "vite": "^6.0.0", "vitest": "^3.2.7" } }