{ "type": "module", "private": true, "name": "enjoy", "productName": "Enjoy", "version": "0.7.8", "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": "NODE_OPTIONS='--max-old-space-size=8192' rimraf .vite && yarn run download && electron-forge package", "make": "NODE_OPTIONS='--max-old-space-size=8192' rimraf .vite && yarn run download && electron-forge make", "publish": "NODE_OPTIONS='--max-old-space-size=8192' 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", "sourcemap": "bugsnag-source-maps upload-node --directory .vite/build --app-version 0.7.7" }, "keywords": [], "author": { "name": "an-lee", "email": "an.lee.work@gmail.com" }, "license": "MIT", "devDependencies": { "@bugsnag/source-maps": "^2.3.3", "@divisey/js-mdict": "^5.0.0", "@electron-forge/cli": "^7.7.0", "@electron-forge/maker-deb": "^7.7.0", "@electron-forge/maker-dmg": "^7.7.0", "@electron-forge/maker-rpm": "^7.7.0", "@electron-forge/maker-squirrel": "^7.7.0", "@electron-forge/maker-zip": "^7.7.0", "@electron-forge/plugin-auto-unpack-natives": "^7.7.0", "@electron-forge/plugin-fuses": "^7.7.0", "@electron-forge/plugin-vite": "7.7.0", "@electron-forge/publisher-github": "^7.7.0", "@electron-forge/publisher-s3": "^7.7.0", "@electron/fuses": "^1.8.0", "@hookform/resolvers": "^3.10.0", "@langchain/community": "^0.3.32", "@langchain/core": "^0.3.40", "@langchain/ollama": "^0.2.0", "@mozilla/readability": "^0.5.0", "@playwright/test": "^1.50.1", "@radix-ui/react-accordion": "^1.2.3", "@radix-ui/react-alert-dialog": "^1.1.6", "@radix-ui/react-aspect-ratio": "^1.1.2", "@radix-ui/react-avatar": "^1.1.3", "@radix-ui/react-checkbox": "^1.1.4", "@radix-ui/react-collapsible": "^1.1.3", "@radix-ui/react-dropdown-menu": "^2.1.6", "@radix-ui/react-hover-card": "^1.1.6", "@radix-ui/react-icons": "^1.3.2", "@radix-ui/react-label": "^2.1.2", "@radix-ui/react-menubar": "^1.1.6", "@radix-ui/react-popover": "^1.1.6", "@radix-ui/react-progress": "^1.1.2", "@radix-ui/react-radio-group": "^1.2.3", "@radix-ui/react-scroll-area": "^1.2.3", "@radix-ui/react-select": "^2.1.6", "@radix-ui/react-separator": "^1.1.2", "@radix-ui/react-slider": "^1.2.3", "@radix-ui/react-slot": "^1.1.2", "@radix-ui/react-switch": "^1.1.3", "@radix-ui/react-tabs": "^1.1.3", "@radix-ui/react-toast": "^1.2.6", "@radix-ui/react-toggle": "^1.1.2", "@radix-ui/react-tooltip": "^1.1.8", "@rails/actioncable": "8.0.100", "@tailwindcss/typography": "^0.5.16", "@types/ahoy.js": "^0.4.2", "@types/autosize": "^4.0.3", "@types/command-exists": "^1.2.3", "@types/diff": "^7", "@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.15", "@types/mark.js": "^8.11.12", "@types/mime-types": "^2.1.4", "@types/mustache": "^4.2.5", "@types/node": "^22.13.5", "@types/prop-types": "^15.7.14", "@types/rails__actioncable": "^6.1.11", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5", "@types/semver": "^7.5.8", "@types/turndown": "^5.0.5", "@types/unzipper": "^0.10.10", "@types/validator": "^13.12.2", "@types/wavesurfer.js": "^6.0.12", "@typescript-eslint/eslint-plugin": "^8.24.1", "@typescript-eslint/parser": "^8.24.1", "@uidotdev/usehooks": "^2.4.1", "@vidstack/react": "^1.12.12", "@vitejs/plugin-react": "^4.3.4", "ahoy.js": "^0.4.4", "autoprefixer": "^10.4.20", "autosize": "^6.0.1", "axios": "^1.7.9", "camelcase": "^8.0.0", "camelcase-keys": "^9.1.3", "chart.js": "^4.4.8", "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.4", "compromise-paragraphs": "^0.1.0", "compromise-stats": "^0.1.0", "dayjs": "^1.11.13", "decamelize": "^6.0.0", "decamelize-keys": "^2.0.1", "dependencies-tree": "^2.0.0", "diff": "^7.0.0", "electron": "^34.2.0", "electron-context-menu": "^4.0.5", "electron-devtools-installer": "^4.0.0", "electron-forge-plugin-dependencies": "^1.0.0", "electron-log": "^5.3.0", "electron-playwright-helpers": "^1.7.1", "electron-squirrel-startup": "^1.0.1", "eslint": "^9.21.0", "eslint-import-resolver-typescript": "^3.8.3", "eslint-plugin-import": "^2.31.0", "flora-colossus": "^2.0.0", "foliate-js": "https://github.com/johnfactotum/foliate-js.git", "html-to-text": "^9.0.5", "https-proxy-agent": "^7.0.6", "i18next": "^24.2.2", "input-otp": "^1.4.2", "intl-tel-input": "^25.3.0", "js-md5": "^0.8.3", "langchain": "^0.3.19", "lodash": "^4.17.21", "lru-cache": "^11.0.2", "lucide-react": "^0.475.0", "mark.js": "^8.11.1", "media-captions": "^0.0.18", "microsoft-cognitiveservices-speech-sdk": "^1.42.0", "mime-types": "^2.1.35", "mustache": "^4.2.0", "next-themes": "^0.4.4", "octokit": "^4.1.2", "openai": "^4.85.4", "pitchfinder": "^2.3.2", "postcss": "^8.5.3", "progress": "^2.0.3", "prop-types": "^15.8.1", "proxy-agent": "^6.5.0", "react": "^18.3.1", "react-activity-calendar": "^2.7.8", "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.54.2", "react-hotkeys-hook": "^4.6.1", "react-i18next": "^15.4.1", "react-markdown": "^9.1.0", "react-resizable-panels": "^2.1.7", "react-router-dom": "^7.2.0", "react-shadow-root": "^6.2.0", "react-tooltip": "^5.28.0", "remark-gfm": "^4.0.1", "rimraf": "^6.0.1", "semver": "^7.7.1", "sonner": "^1.7.4", "tailwind-merge": "^2.6.0", "tailwind-scrollbar": "^3.1.0", "tailwind-scrollbar-hide": "^2.0.0", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", "ts-node": "^10.9.2", "tslib": "^2.8.1", "turndown": "^7.2.0", "typescript": "^5.7.3", "vite": "^6.1.1", "vite-plugin-static-copy": "^2.2.0", "wavesurfer.js": "^7.9.1", "zod": "^3.24.2", "zod-to-json-schema": "^3.24.3", "zx": "^8.3.2" }, "dependencies": { "@andrkrn/ffprobe-static": "^5.2.0", "@bugsnag/electron": "^8.2.0", "@bugsnag/plugin-react": "^8.2.0", "echogarden": "^1.8.7", "electron-settings": "^4.0.4", "ffmpeg-static": "^5.2.0", "file-type": "^19.6.0", "fluent-ffmpeg": "^2.1.3", "fs-extra": "^11.3.0", "reflect-metadata": "^0.2.2", "sequelize": "^6.37.5", "sequelize-typescript": "^2.1.6", "sqlite3": "^5.1.7", "umzug": "^3.8.2", "unzipper": "^0.12.3" } }