{
  "name": "zulip",
  "productName": "Zulip",
  "version": "5.10.2",
  "main": "./dist-electron",
  "description": "Zulip Desktop App",
  "license": "Apache-2.0",
  "copyright": "Kandra Labs, Inc.",
  "author": {
    "name": "Kandra Labs, Inc.",
    "email": "support@zulip.com"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/zulip/zulip-desktop.git"
  },
  "bugs": {
    "url": "https://github.com/zulip/zulip-desktop/issues"
  },
  "engines": {
    "node": ">=16.13.2"
  },
  "scripts": {
    "start": "vite",
    "watch-ts": "tsc -w",
    "reinstall": "rimraf node_modules && npm install",
    "postinstall": "electron-builder install-app-deps",
    "lint-css": "stylelint \"app/**/*.css\"",
    "lint-html": "htmlhint \"app/**/*.html\"",
    "lint-js": "xo",
    "prettier-non-js": "prettier --check --log-level=warn . \"!**/*.{js,ts}\"",
    "test": "tsc && npm run lint-html && npm run lint-css && npm run lint-js && npm run prettier-non-js",
    "test-e2e": "vite build && tape \"tests/**/*.js\"",
    "pack": "vite build && electron-builder --dir",
    "dist": "vite build && electron-builder",
    "mas": "vite build && electron-builder --mac mas"
  },
  "pre-commit": [
    "test"
  ],
  "build": {
    "appId": "org.zulip.zulip-electron",
    "asar": true,
    "asarUnpack": [
      "**/*.node"
    ],
    "files": [
      "dist-electron/**/*"
    ],
    "copyright": "©2020 Kandra Labs, Inc.",
    "mac": {
      "category": "public.app-category.productivity",
      "target": [
        {
          "target": "default",
          "arch": [
            "x64",
            "arm64"
          ]
        },
        {
          "target": "pkg",
          "arch": [
            "x64",
            "arm64"
          ]
        }
      ],
      "darkModeSupport": true,
      "artifactName": "${productName}-${version}-${arch}.${ext}",
      "notarize": {
        "teamId": "66KHCWMEYB"
      }
    },
    "linux": {
      "category": "Chat;GNOME;GTK;Network;InstantMessaging",
      "icon": "build/icon.icns",
      "description": "Zulip Desktop Client for Linux",
      "target": [
        "deb",
        "tar.xz",
        "AppImage",
        "snap"
      ],
      "maintainer": "Akash Nimare <akash@zulip.com>",
      "artifactName": "${productName}-${version}-${arch}.${ext}"
    },
    "deb": {
      "packageCategory": "net",
      "synopsis": "Zulip Desktop App",
      "afterInstall": "./packaging/deb-after-install.sh",
      "fpm": [
        "./packaging/deb-apt.list=/etc/apt/sources.list.d/zulip-desktop.list",
        "./packaging/deb-apt.asc=/etc/apt/trusted.gpg.d/zulip-desktop.asc",
        "./packaging/deb-release-upgrades.cfg=/etc/update-manager/release-upgrades.d/zulip-desktop.cfg"
      ]
    },
    "snap": {
      "synopsis": "Zulip Desktop App"
    },
    "dmg": {
      "background": "build/dmg-background.tiff",
      "icon": "build/dmg-icon.icns"
    },
    "win": {
      "target": [
        {
          "target": "nsis-web",
          "arch": [
            "x64",
            "ia32"
          ]
        },
        {
          "target": "msi",
          "arch": [
            "x64",
            "ia32"
          ]
        }
      ],
      "icon": "build/icon.ico",
      "publisherName": "Kandra Labs, Inc."
    },
    "msi": {
      "artifactName": "${productName}-${version}-${arch}.${ext}"
    },
    "nsis": {
      "allowToChangeInstallationDirectory": true,
      "oneClick": false,
      "perMachine": false
    },
    "nsisWeb": {
      "artifactName": "${productName}-Web-Setup-${version}.${ext}"
    }
  },
  "keywords": [
    "Zulip",
    "Group Chat app",
    "electron-app",
    "electron",
    "Desktop app",
    "InstantMessaging"
  ],
  "dependencies": {
    "gatemaker": "^1.0.0"
  },
  "devDependencies": {
    "@electron/remote": "^2.0.8",
    "@sentry/electron": "^4.1.2",
    "@types/adm-zip": "^0.5.0",
    "@types/auto-launch": "^5.0.2",
    "@types/backoff": "^2.5.2",
    "@types/i18n": "^0.13.1",
    "@types/node": "^18.16.5",
    "@types/requestidlecallback": "^0.3.4",
    "@types/yaireo__tagify": "^4.3.2",
    "@yaireo/tagify": "^4.5.0",
    "adm-zip": "^0.5.5",
    "auto-launch": "^5.0.5",
    "backoff": "^2.5.0",
    "electron": "^25.8.1",
    "electron-builder": "^24.6.4",
    "electron-log": "^4.3.5",
    "electron-updater": "^6.1.4",
    "electron-window-state": "^5.0.3",
    "escape-goat": "^4.0.0",
    "htmlhint": "^1.1.2",
    "i18n": "^0.15.1",
    "iso-639-1": "^3.1.0",
    "medium": "^1.2.0",
    "node-json-db": "^1.3.0",
    "playwright-core": "^1.30.0-alpha-jan-3-2023",
    "pre-commit": "^1.2.2",
    "prettier": "^3.0.3",
    "rimraf": "^5.0.0",
    "semver": "^7.3.5",
    "stylelint": "^15.6.1",
    "stylelint-config-standard": "^34.0.0",
    "tape": "^5.2.2",
    "typescript": "^5.0.4",
    "vite": "^4.1.1",
    "vite-plugin-electron": "^0.14.1",
    "xo": "^0.56.0",
    "zod": "^3.5.1"
  },
  "prettier": {
    "bracketSpacing": false,
    "singleQuote": false,
    "trailingComma": "all"
  },
  "xo": {
    "prettier": true,
    "rules": {
      "@typescript-eslint/no-dynamic-delete": "off",
      "arrow-body-style": "error",
      "import/no-restricted-paths": [
        "error",
        {
          "zones": [
            {
              "target": "./app/common",
              "from": "./app",
              "except": [
                "./common"
              ]
            },
            {
              "target": "./app/main",
              "from": "./app",
              "except": [
                "./common",
                "./main"
              ]
            },
            {
              "target": "./app/renderer",
              "from": "./app",
              "except": [
                "./common",
                "./renderer",
                "./resources"
              ]
            }
          ]
        }
      ],
      "import/order": [
        "error",
        {
          "alphabetize": {
            "order": "asc"
          },
          "newlines-between": "always"
        }
      ],
      "import/unambiguous": "error",
      "no-restricted-imports": [
        "error",
        {
          "paths": [
            {
              "name": "electron",
              "message": "Use electron/main, electron/renderer, or electron/common."
            },
            {
              "name": "electron/main",
              "importNames": [
                "ipcMain"
              ],
              "message": "Use typed-ipc-main."
            },
            {
              "name": "electron/renderer",
              "importNames": [
                "ipcRenderer"
              ],
              "message": "Use typed-ipc-renderer."
            }
          ]
        }
      ],
      "no-warning-comments": "off",
      "sort-imports": [
        "error",
        {
          "ignoreDeclarationSort": true
        }
      ],
      "strict": "error",
      "unicorn/prefer-module": "off",
      "unicorn/prefer-top-level-await": "off"
    },
    "envs": [
      "node",
      "browser"
    ],
    "overrides": [
      {
        "files": [
          "**/*.ts"
        ],
        "rules": {
          "@typescript-eslint/ban-types": "off",
          "@typescript-eslint/consistent-type-imports": [
            "error",
            {
              "disallowTypeAnnotations": false
            }
          ],
          "@typescript-eslint/no-unused-vars": [
            "error",
            {
              "argsIgnorePattern": "^_",
              "caughtErrors": "all"
            }
          ],
          "unicorn/no-await-expression-member": "off"
        }
      },
      {
        "files": [
          "scripts/notarize.js",
          "tests/**/*.js"
        ],
        "parserOptions": {
          "sourceType": "script"
        }
      },
      {
        "files": [
          "**/*.d.ts"
        ],
        "rules": {
          "import/unambiguous": "off"
        }
      }
    ]
  }
}
