{ "name": "Whalebird", "version": "4.4.0", "author": "AkiraFukushima ", "description": "An Electron based Mastodon client for Windows, Mac and Linux", "license": "MIT", "keywords": [ "mastodon", "client", "electron", "vue" ], "repository": { "type": "git", "url": "https://github.com/h3poteto/whalebird-desktop.git" }, "config": { "buildVersion": "109", "appVersion": "4.4.0" }, "main": "./dist/electron/main.js", "scripts": { "dev": "node .electron-vue/dev-runner.js", "lint": "eslint --ext .js,.vue,.ts -f ./node_modules/eslint-friendly-formatter src spec", "lint:fix": "eslint --ext .js,.vue,.ts -f ./node_modules/eslint-friendly-formatter --fix src spec", "stylelint": "stylelint '**/*.vue' --syntax scss", "build": "node .electron-vue/build.js", "build:clean": "cross-env BUILD_TARGET=clean node .electron-vue/build.js", "build:web": "cross-env BUILD_TARGET=web node .electron-vue/build.js", "build:mac": "yarn run build && yarn run package:mac", "build:linux": "yarn run build && yarn run package:linux", "build:win32": "yarn run build && yarn run package:win32", "build:win64": "yarn run build && yarn run package:win64", "build:mas": "yarn run build:clean && yarn run pack && electron-packager ./ 'Whalebird' --platform=mas --arch=x64 --arch=arm64 --electron-version=12.0.0 --asar.unpackDir='build/sounds' --out=packages --ignore='^/src' --ignore='^/.electron-vue' --ignore='^/.envrc' --ignore='^/packages' --ignore='^/plist' --ignore='^/static' --ignore='^/whalebird.db' --ignore='^/screenshot.png' --prune=true --icon=./build/icons/icon.icns --overwrite --app-bundle-id=org.whalebird.desktop --app-version=$npm_package_config_appVersion --build-version=$npm_package_config_buildVersion --extend-info='./plist/team.plist' --app-category-type=public.app-category.social-networking && node ./packages/universal.js", "package:mac": "electron-builder --mac", "package:linux": "electron-builder --linux", "package:win32": "electron-builder --win --ia32", "package:win64": "electron-builder --win --x64", "pack": "yarn run pack:main && yarn run pack:renderer", "pack:main": "webpack --node-env=production --mode production --progress --config .electron-vue/webpack.main.config.js", "pack:renderer": "webpack --node-env=production --mode production --progress --config .electron-vue/webpack.renderer.config.js", "postinstall": "yarn run lint:fix", "spec": "NODE_ENV=test jest -u --maxWorkers=3" }, "build": { "productName": "Whalebird", "appId": "org.whalebird.desktop", "artifactName": "${productName}-${version}-${os}-${arch}.${ext}", "directories": { "output": "build" }, "extraResources": [ "build/sounds/*" ], "files": [ "dist/electron/**/*", "build/icons/*" ], "afterSign": "build/notarize.js", "dmg": { "sign": false, "contents": [ { "x": 410, "y": 150, "type": "link", "path": "/Applications" }, { "x": 130, "y": 150, "type": "file" } ] }, "mac": { "icon": "build/icons/icon.icns", "target": [ { "target": "dmg", "arch": [ "universal" ] } ], "category": "public.app-category.social-networking", "entitlements": "plist/entitlements.mac.plist", "entitlementsInherit": "plist/entitlements.mac.plist", "hardenedRuntime" : true, "gatekeeperAssess": false }, "win": { "icon": "build/icons/icon.ico", "target": "nsis" }, "nsis": { "oneClick": false, "allowToChangeInstallationDirectory": true }, "linux": { "icon": "build/icons", "target": [ { "target": "AppImage", "arch": [ "x64" ] }, { "target": "deb", "arch": [ "x64", "ia32" ] }, { "target": "rpm", "arch": [ "x64", "ia32" ] }, { "target": "tar.bz2", "arch": [ "x64", "ia32", "armv7l", "arm64" ] }, { "target": "pacman", "arch": [ "x64", "ia32" ] }, { "target": "snap", "arch": [ "x64" ] } ], "category": "Network" } }, "jest": { "moduleFileExtensions": [ "ts", "js", "json" ], "moduleNameMapper": { "@/router": "/spec/mock/router.ts", "^@/(.+)": "/src/renderer/$1", "^~/(.+)": "/$1" }, "testMatch": [ "**/spec/**/*.spec.ts" ], "preset": "ts-jest/presets/js-with-ts", "transform": { "^.+\\.(js|jsx)$": "babel-jest", "^.+\\.(ts|tsx)$": "ts-jest" }, "setupFiles": [ "core-js" ], "globals": { "ts-jest": { "tsConfig": "tsconfig.json" } } }, "dependencies": { "@panter/vue-i18next": "^0.15.2", "@trodi/electron-splashscreen": "^1.0.0", "about-window": "^1.13.4", "animate.css": "^4.1.0", "auto-launch": "^5.0.5", "axios": "^0.21.1", "blueimp-load-image": "^5.14.0", "deep-extend": "^0.6.0", "electron-context-menu": "^2.5.0", "electron-json-storage": "^4.3.0", "electron-log": "^4.3.2", "electron-window-state": "^5.0.3", "element-ui": "2.15.0", "emoji-mart-vue": "^2.6.6", "i18next": "^19.9.2", "lodash": "^4.17.21", "megalodon": "3.6.0", "minimist": "^1.2.5", "moment": "^2.29.1", "mousetrap": "^1.6.5", "nedb": "^1.8.0", "object-assign-deep": "^0.4.0", "parse-link-header": "^1.0.1", "rc": "^1.2.7", "sanitize-html": "^2.3.2", "simplayer": "0.0.8", "system-font-families": "^0.4.1", "tunnel-agent": "^0.6.0", "unicode-emoji-json": "^0.2.1", "vue": "^2.6.11", "vue-awesome": "^4.1.0", "vue-click-outside": "^1.1.0", "vue-electron": "^1.0.6", "vue-popperjs": "^2.3.0", "vue-resize": "^1.0.0", "vue-router": "^3.5.1", "vue-shortkey": "^3.1.7", "vue-virtual-scroller": "^1.0.10", "vuex": "^3.6.2", "vuex-router-sync": "^5.0.0" }, "devDependencies": { "@babel/core": "^7.13.10", "@babel/plugin-proposal-class-properties": "^7.12.1", "@babel/plugin-proposal-object-rest-spread": "^7.13.8", "@babel/plugin-transform-runtime": "^7.13.10", "@babel/preset-env": "^7.13.10", "@babel/runtime": "7.13.10", "@electron/universal": "^1.0.4", "@mapbox/stylelint-processor-arbitrary-tags": "^0.3.0", "@types/auto-launch": "^5.0.1", "@types/electron-json-storage": "^4.0.0", "@types/i18next": "^13.0.0", "@types/jest": "26.0.20", "@types/lodash": "^4.14.168", "@types/nedb": "^1.8.10", "@types/node": "^14.14.28", "@types/parse-link-header": "^1.0.0", "@typescript-eslint/eslint-plugin": "^4.18.0", "@typescript-eslint/parser": "^4.15.1", "@typescript-eslint/typescript-estree": "^4.21.0", "@vue/test-utils": "^1.1.3", "ajv": "^7.2.3", "all-object-keys": "^2.2.0", "babel-eslint": "^10.1.0", "babel-jest": "^26.6.3", "babel-loader": "^8.2.2", "babel-plugin-istanbul": "^6.0.0", "babel-register": "^6.26.0", "cfonts": "^2.9.1", "chai": "^4.3.0", "chalk": "^4.1.0", "copy-webpack-plugin": "^6.4.1", "core-js": "^3.9.1", "cross-env": "^7.0.3", "css-loader": "^5.1.3", "del": "^6.0.0", "devtron": "^1.4.0", "electron": "12.0.0", "electron-builder": "^22.10.5", "electron-debug": "^3.2.0", "electron-devtools-installer": "^3.1.1", "electron-mock-ipc": "^0.3.9", "electron-packager": "^15.2.0", "eslint": "^7.22.0", "eslint-config-prettier": "^8.1.0", "eslint-config-standard": "^16.0.2", "eslint-friendly-formatter": "^4.0.1", "eslint-loader": "^4.0.2", "eslint-plugin-html": "^6.1.1", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-promise": "^4.3.1", "eslint-plugin-standard": "^5.0.0", "eslint-plugin-vue": "^7.6.0", "file-loader": "^6.2.0", "html-webpack-plugin": "^4.5.2", "jest": "^26.6.3", "jsdom": "^16.5.1", "json-loader": "^0.5.7", "listr": "^0.14.3", "mini-css-extract-plugin": "^1.3.9", "node-loader": "^1.0.2", "node-sass": "^5.0.0", "prettier": "^2.2.1", "prettier-stylelint": "^0.4.2", "regenerator-runtime": "^0.13.7", "sass-loader": "^10.1.1", "style-loader": "^2.0.0", "stylelint": "^13.12.0", "stylelint-config-standard": "^20.0.0", "ts-jest": "^26.5.1", "ts-loader": "^8.0.17", "ttfinfo": "^0.2.0", "typescript": "^4.1.3", "url-loader": "^4.1.1", "vue-html-loader": "^1.2.4", "vue-loader": "^15.9.6", "vue-style-loader": "^4.1.0", "vue-template-compiler": "^2.6.11", "webpack": "^4.44.2", "webpack-cli": "^4.5.0", "webpack-dev-server": "^3.11.2", "webpack-hot-middleware": "^2.25.0", "webpack-merge": "^5.7.3" } }