diff --git a/enjoy/forge.config.js b/enjoy/forge.config.js index 3c6fca684..dbdd0b7ba 100644 --- a/enjoy/forge.config.js +++ b/enjoy/forge.config.js @@ -1,14 +1,13 @@ import { VitePlugin } from "@electron-forge/plugin-vite"; import os from "os"; -// import { FusesPlugin } from "@electron-forge/plugin-fuses"; -// import { FuseV1Options, FuseVersion } from "@electron/fuses"; +import { FusesPlugin } from "@electron-forge/plugin-fuses"; +import { FuseV1Options, FuseVersion } from "@electron/fuses"; const config = { packagerConfig: { asar: { // Binary files won't work in asar, so we need to unpack them - unpackDir: - "{.vite/build/lib,.vite/build/samples,node_modules/ffmpeg-static,node_modules/@andrkrn/ffprobe-static,node_modules/onnxruntime-node/bin,lib/dictionaries}", + unpackDir: `{.vite/build/lib,.vite/build/samples,node_modules/ffmpeg-static,node_modules/@andrkrn/ffprobe-static,node_modules/onnxruntime-node/bin/napi-v3/${os.platform()}/${os.arch()},lib/dictionaries}`, }, icon: "./assets/icon", name: "Enjoy", @@ -30,7 +29,7 @@ const config = { }, { name: "@electron-forge/maker-zip", - platforms: ["darwin"], + platforms: ["darwin", "linux"], config: (arch) => ({ macUpdateManifestBaseUrl: `https://dl.enjoy.bot/app/darwin/${arch}`, }), @@ -90,15 +89,15 @@ const config = { }, // Fuses are used to enable/disable various Electron functionality // at package time, before code signing the application - // new FusesPlugin({ - // version: FuseVersion.V1, - // [FuseV1Options.RunAsNode]: false, - // [FuseV1Options.EnableCookieEncryption]: true, - // [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, - // [FuseV1Options.EnableNodeCliInspectArguments]: true, - // [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, - // [FuseV1Options.OnlyLoadAppFromAsar]: false, - // }), + new FusesPlugin({ + version: FuseVersion.V1, + [FuseV1Options.RunAsNode]: false, + [FuseV1Options.EnableCookieEncryption]: true, + [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, + [FuseV1Options.EnableNodeCliInspectArguments]: true, + [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, + [FuseV1Options.OnlyLoadAppFromAsar]: false, + }), ], }; diff --git a/enjoy/package.json b/enjoy/package.json index c4fba63c2..74ba40439 100644 --- a/enjoy/package.json +++ b/enjoy/package.json @@ -29,6 +29,7 @@ }, "license": "MIT", "devDependencies": { + "@divisey/js-mdict": "^5.0.0", "@electron-forge/cli": "<7.5.0", "@electron-forge/maker-deb": "<7.5.0", "@electron-forge/maker-dmg": "<7.5.0", @@ -39,63 +40,14 @@ "@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", + "@electron/fuses": "^1.8.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", + "@playwright/test": "^1.49.0", "@radix-ui/react-accordion": "^1.2.1", "@radix-ui/react-alert-dialog": "^1.1.2", "@radix-ui/react-aspect-ratio": "^1.1.0", @@ -121,10 +73,35 @@ "@radix-ui/react-toggle": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.4", "@rails/actioncable": "8.0.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/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.16.0", + "@typescript-eslint/parser": "^8.16.0", "@uidotdev/usehooks": "^2.4.1", "@vidstack/react": "^1.12.12", + "@vitejs/plugin-react": "^4.3.3", "ahoy.js": "^0.4.4", + "autoprefixer": "^10.4.20", "autosize": "^6.0.1", "axios": "^1.7.8", "camelcase": "^8.0.0", @@ -141,17 +118,19 @@ "dayjs": "^1.11.13", "decamelize": "^6.0.0", "decamelize-keys": "^2.0.1", - "echogarden": "<2.0", + "electron": "^33.2.0", "electron-context-menu": "^4.0.4", + "electron-devtools-installer": "^3.2.0", "electron-log": "^5.2.3", + "electron-playwright-helpers": "^1.7.1", "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", + "eslint": "^9.15.0", + "eslint-import-resolver-typescript": "^3.6.3", + "eslint-plugin-import": "^2.31.0", + "flora-colossus": "^2.0.0", "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", @@ -169,9 +148,12 @@ "mustache": "^4.2.0", "new-github-issue-url": "^1.0.0", "next-themes": "^0.4.3", + "octokit": "^4.0.2", "openai": "^4.73.1", "pitchfinder": "^2.3.2", "postcss": "^8.4.49", + "progress": "^2.0.3", + "prop-types": "^15.8.1", "proxy-agent": "^6.4.0", "react": "^18.3.1", "react-activity-calendar": "^2.7.1", @@ -187,21 +169,39 @@ "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-merge": "^2.5.5", + "tailwind-scrollbar": "^3.1.0", "tailwind-scrollbar-hide": "^1.1.7", + "tailwindcss": "^3.4.15", + "tailwindcss-animate": "^1.0.7", + "ts-node": "^10.9.2", + "tslib": "^2.8.1", "turndown": "^7.2.0", - "umzug": "^3.8.2", - "unzipper": "^0.12.3", + "typescript": "^5.7.2", "update-electron-app": "^3.0.0", + "vite": "^6.0.0", + "vite-plugin-static-copy": "^2.1.0", "wavesurfer.js": "^7.8.9", "zod": "^3.23.8", - "zod-to-json-schema": "^3.23.5" + "zod-to-json-schema": "^3.23.5", + "zx": "^8.2.2" + }, + "dependencies": { + "@andrkrn/ffprobe-static": "^5.2.0", + "echogarden": "<2.0", + "ffmpeg-static": "^5.2.0", + "file-type": "^19.6.0", + "fluent-ffmpeg": "^2.1.3", + "fs-extra": "^11.2.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" } } diff --git a/yarn.lock b/yarn.lock index e90800ca7..e01392efb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22826,7 +22826,14 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^4.0.0, type-fest@npm:^4.18.2, type-fest@npm:^4.3.2, type-fest@npm:^4.7.1": +"type-fest@npm:^4.0.0, type-fest@npm:^4.3.2": + version: 4.29.0 + resolution: "type-fest@npm:4.29.0" + checksum: 10c0/de11f04e141e4dd2caf8ba9cb4894955f73d60c06303f93836feea66f162166a2d66e81e7aca270721627cdc7fef2d248b21917fe1346598a66c3d6b856d2d7f + languageName: node + linkType: hard + +"type-fest@npm:^4.18.2, type-fest@npm:^4.7.1": version: 4.28.0 resolution: "type-fest@npm:4.28.0" checksum: 10c0/fbaf766ae002c2b97e22cd1f48f20d6ff05915f25cf04632591e9ab52ee716cf38b9554f6198625c07e3e8bdf5277c284f8889cfe1fbea6fc19374706f2c75f8