package.json

{
  "name": "emc2",
  "private": true,
  "version": "0.2.5",
  "license": "MIT",
  "type": "module",
  "scripts": {
    "dev": "node scripts/dev-desktop.mjs",
    "build": "tsc --noEmit && vite build && node scripts/build-desktop.mjs",
    "start": "node scripts/launch-desktop.mjs",
    "test": "tsx --test --test-concurrency=1 --test-timeout=120000 server/*.test.ts desktop/*.test.ts src/*.test.tsx scripts/*.test.mjs",
    "dev:web": "concurrently -k \"node --watch-path=server --watch-path=shared --import tsx server/index.ts\" \"vite --host 127.0.0.1\"",
    "start:web": "node --import tsx server/index.ts",
    "package": "npm run build && electron-builder --win nsis --x64 --publish never",
    "package:dir": "npm run build && electron-builder --win --x64 --dir",
    "package:mac": "npm run build && electron-builder --mac dmg zip --publish never",
    "package:mac:dir": "npm run build && electron-builder --mac --dir --publish never",
    "check:desktop": "node scripts/launch-desktop.mjs --check-startup",
    "release": "node scripts/release.mjs",
    "cli": "node scripts/emc2.mjs"
  },
  "dependencies": {
    "@fontsource-variable/inter": "5.3.0",
    "@modelcontextprotocol/sdk": "^1.32.1",
    "electron-updater": "6.8.11",
    "express": "^5.3.0",
    "googleapis": "^160.0.0",
    "htmlparser2": "12.0.0",
    "imapflow": "^1.0.0",
    "jsonc-parser": "^3.3.1",
    "mailparser": "^3.12.4",
    "nodemailer": "^10.2.1",
    "pdfjs-dist": "6.4.299",
    "react": "^19.3.1",
    "react-dom": "^19.3.1",
    "zod": "^4.6.7"
  },
  "devDependencies": {
    "@types/express": "^5.0.0",
    "@types/jsdom": "^30.0.0",
    "@types/mailparser": "^3.4.0",
    "@types/node": "^24.0.0",
    "@types/nodemailer": "^7.0.0",
    "@types/react": "^19.0.0",
    "@types/react-dom": "^19.0.0",
    "@vitejs/plugin-react": "^5.0.0",
    "concurrently": "^10.0.6",
    "electron": "^44.9.2",
    "electron-builder": "^26.18.0",
    "esbuild": "^0.28.2",
    "happy-dom": "21.0.4",
    "jsdom": "^30.1.3",
    "tsx": "^4.20.0",
    "typescript": "^5.9.0",
    "vite": "^7.0.0"
  },
  "main": ".desktop/main.cjs",
  "description": "A keyboard-driven desktop inbox for all your email accounts.",
  "author": "Screen",
  "build": {
    "appId": "dev.screen.aggregate-mail",
    "productName": "Emc\u00b2",
    "directories": {
      "output": "release"
    },
    "files": [
      ".desktop/**",
      "dist/**",
      "package.json",
      "build/icon.png",
      "build/tray-icon.png",
      "!**/{.env,.env.*,*.env,*.env.*,*.key,*.pem,*.p12,*.pfx,*.mobileprovision,*.sqlite,*.sqlite-*,*.db,*.db-*,key.protected}",
      "!**/{.data,.handoff,.ssh,.aws}/**"
    ],
    "asar": true,
    "afterPack": "scripts/sign-mac.cjs",
    "mac": {
      "category": "public.app-category.productivity",
      "target": [
        "dmg",
        "zip"
      ],
      "icon": "build/icon.icns",
      "identity": null,
      "notarize": false,
      "artifactName": "Emc2-${version}-mac-${arch}.${ext}"
    },
    "dmg": {
      "sign": false
    },
    "win": {
      "target": [
        "nsis"
      ],
      "icon": "build/icon.ico",
      "signAndEditExecutable": true
    },
    "nsis": {
      "oneClick": false,
      "perMachine": false,
      "allowToChangeInstallationDirectory": true,
      "createDesktopShortcut": true,
      "createStartMenuShortcut": true,
      "artifactName": "Emc2-${version}-win-${arch}.${ext}"
    },
    "linux": {
      "target": [
        "AppImage"
      ],
      "artifactName": "Emc2-${version}-linux-${arch}.${ext}"
    },
    "publish": {
      "provider": "github",
      "owner": "collection-of-things",
      "repo": "aggregate-mail"
    }
  },
  "bin": {
    "emc2": "scripts/emc2.mjs"
  },
  "engines": {
    "node": ">=24.22.1 <25"
  }
}