{ "type": "module", "private": true, "name": "enjoy", "productName": "Enjoy", "version": "0.7.4", "description": "Enjoy desktop app", "main": ".vite/build/main.js", "types": "./src/types.d.ts", "scripts": { "predev": "yarn run download", "dev": "rimraf .vite && yarn run download && WEB_API_URL=http://localhost:3000 WS_URL=ws://localhost:3000 SETTINGS_PATH=${PWD}/enjoy/tmp LIBRARY_PATH=${PWD}/enjoy/tmp electron-forge start", "start": "rimraf .vite && yarn run download && electron-forge start", "package": "rimraf .vite && yarn run download && electron-forge package", "make": "rimraf .vite && yarn run download && electron-forge make", "publish": "rimraf .vite && yarn run download && electron-forge publish", "lint": "eslint --ext .ts,.tsx .", "test": "yarn run package && yarn run playwright test", "test:main": "yarn run playwright test e2e/main.spec.ts", "test:renderer": "yarn run playwright test e2e/renderer.spec.ts", "create-migration": "zx ./src/main/db/create-migration.mjs", "download-dictionaries": "zx ./scripts/download-dictionaries.mjs", "download": "yarn run download-dictionaries" }, "keywords": [], "author": { "name": "an-lee", "email": "an.lee.work@gmail.com" }, "license": "MIT", "devDependencies": { "@electron-forge/cli": "<7.5.0", "@electron-forge/maker-deb": "<7.5.0", "@electron-forge/maker-dmg": "<7.5.0", "@electron-forge/maker-rpm": "<7.5.0", "@electron-forge/maker-squirrel": "<7.5.0", "@electron-forge/maker-zip": "<7.5.0", "@electron-forge/plugin-auto-unpack-natives": "<7.5.0", "@electron-forge/plugin-fuses": "<7.5.0", "@electron-forge/plugin-vite": "<7.5.0", "@electron-forge/publisher-github": "<7.5.0", "@electron/fuses": "^1.8.0", "@playwright/test": "^1.49.0", "@tailwindcss/typography": "^0.5.15", "@types/ahoy.js": "^0.4.2", "@types/autosize": "^4.0.3", "@types/command-exists": "^1.2.3", "@types/electron-squirrel-startup": "^1.0.2", "@types/fluent-ffmpeg": "^2.1.27", "@types/html-to-text": "^9.0.4", "@types/intl-tel-input": "^18.1.4", "@types/lodash": "^4.17.13", "@types/mark.js": "^8.11.12", "@types/mime-types": "^2.1.4", "@types/mustache": "^4.2.5", "@types/node": "^22.10.0", "@types/prop-types": "^15.7.13", "@types/rails__actioncable": "^6.1.11", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", "@types/semver": "^7.5.8", "@types/unzipper": "^0.10.10", "@types/validator": "^13.12.2", "@types/wavesurfer.js": "^6.0.12", "@typescript-eslint/eslint-plugin": "^8.16.0", "@typescript-eslint/parser": "^8.16.0", "@vitejs/plugin-react": "^4.3.3", "autoprefixer": "^10.4.20", "electron": "^33.2.0", "electron-devtools-installer": "^3.2.0", "electron-playwright-helpers": "^1.7.1", "eslint": "^9.15.0", "eslint-import-resolver-typescript": "^3.6.3", "eslint-plugin-import": "^2.31.0", "flora-colossus": "^2.0.0", "octokit": "^4.0.2", "progress": "^2.0.3", "prop-types": "^15.8.1", "tailwind-merge": "^2.5.5", "tailwind-scrollbar": "^3.1.0", "tailwindcss": "^3.4.15", "tailwindcss-animate": "^1.0.7", "ts-node": "^10.9.2", "tslib": "^2.8.1", "typescript": "^5.7.2", "vite": "^6.0.0", "vite-plugin-static-copy": "^2.1.0", "zx": "^8.2.2" }, "dependencies": { "@andrkrn/ffprobe-static": "^5.2.0", "@divisey/js-mdict": "^5.0.0", "@electron-forge/publisher-s3": "^7.5.0", "@hookform/resolvers": "^3.9.1", "@langchain/community": "^0.3.16", "@langchain/core": "^0.3.19", "@langchain/ollama": "^0.1.2", "@mozilla/readability": "^0.5.0", "@radix-ui/react-accordion": "^1.2.1", "@radix-ui/react-alert-dialog": "^1.1.2", "@radix-ui/react-aspect-ratio": "^1.1.0", "@radix-ui/react-avatar": "^1.1.1", "@radix-ui/react-checkbox": "^1.1.2", "@radix-ui/react-collapsible": "^1.1.1", "@radix-ui/react-dropdown-menu": "^2.1.2", "@radix-ui/react-hover-card": "^1.1.2", "@radix-ui/react-icons": "^1.3.2", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-menubar": "^1.1.2", "@radix-ui/react-popover": "^1.1.2", "@radix-ui/react-progress": "^1.1.0", "@radix-ui/react-radio-group": "^1.2.1", "@radix-ui/react-scroll-area": "^1.2.1", "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slider": "^1.2.1", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.1", "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-toast": "^1.2.2", "@radix-ui/react-toggle": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.4", "@rails/actioncable": "8.0.0", "@types/turndown": "^5.0.5", "@uidotdev/usehooks": "^2.4.1", "@vidstack/react": "^1.12.12", "ahoy.js": "^0.4.4", "autosize": "^6.0.1", "axios": "^1.7.8", "camelcase": "^8.0.0", "camelcase-keys": "^9.1.3", "chart.js": "^4.4.6", "cheerio": "^1.0.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.0.4", "command-exists": "^1.2.9", "compromise": "^14.14.2", "compromise-paragraphs": "^0.1.0", "compromise-stats": "^0.1.0", "dayjs": "^1.11.13", "decamelize": "^6.0.0", "decamelize-keys": "^2.0.1", "echogarden": "<2.0", "electron-context-menu": "^4.0.4", "electron-log": "^5.2.3", "electron-settings": "^4.0.4", "electron-squirrel-startup": "^1.0.1", "electron-unhandled": "^5.0.0", "ffmpeg-static": "^5.2.0", "file-type": "^19.6.0", "fluent-ffmpeg": "^2.1.3", "foliate-js": "https://github.com/johnfactotum/foliate-js.git#commit=b5ae4c22c197ef70e12ead88277dde2856447634", "fs-extra": "^11.2.0", "html-to-text": "^9.0.5", "https-proxy-agent": "^7.0.5", "i18next": "^24.0.2", "input-otp": "^1.4.1", "intl-tel-input": "^24.7.0", "js-md5": "^0.8.3", "langchain": "^0.3.6", "lodash": "^4.17.21", "lru-cache": "^11.0.2", "lucide-react": "^0.461.0", "mark.js": "^8.11.1", "media-captions": "^0.0.18", "microsoft-cognitiveservices-speech-sdk": "^1.41.0", "mime-types": "^2.1.35", "mustache": "^4.2.0", "new-github-issue-url": "^1.0.0", "next-themes": "^0.4.3", "openai": "^4.73.1", "pitchfinder": "^2.3.2", "postcss": "^8.4.49", "proxy-agent": "^6.4.0", "react": "^18.3.1", "react-activity-calendar": "^2.7.1", "react-audio-visualize": "^1.2.0", "react-audio-voice-recorder": "^2.2.0", "react-dom": "^18.3.1", "react-frame-component": "^5.2.7", "react-hook-form": "^7.53.2", "react-hotkeys-hook": "^4.6.1", "react-i18next": "^15.1.2", "react-markdown": "^9.0.1", "react-resizable-panels": "^2.1.7", "react-router-dom": "^7.0.1", "react-shadow-root": "^6.2.0", "react-tooltip": "^5.28.0", "reflect-metadata": "^0.2.2", "remark-gfm": "^4.0.0", "rimraf": "^6.0.1", "semver": "^7.6.3", "sequelize": "^6.37.5", "sequelize-typescript": "^2.1.6", "sonner": "^1.7.0", "sqlite3": "^5.1.7", "tailwind-scrollbar-hide": "^1.1.7", "turndown": "^7.2.0", "umzug": "^3.8.2", "unzipper": "^0.12.3", "update-electron-app": "^3.0.0", "wavesurfer.js": "^7.8.9", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.5" } }