{ "name": "Whalebird", "version": "4.3.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": "103", "appVersion": "4.3.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 --electron-version=10.1.2 --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' --osx-sign --app-category-type=public.app-category.social-networking", "package:mac": "electron-builder --mac --x64", "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": "cross-env NODE_ENV=production webpack --mode production --progress --colors --config .electron-vue/webpack.main.config.js", "pack:renderer": "cross-env NODE_ENV=production webpack --mode production --progress --colors --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/*" ], "dmg": { "contents": [ { "x": 410, "y": 150, "type": "link", "path": "/Applications" }, { "x": 130, "y": 150, "type": "file" } ] }, "mac": { "icon": "build/icons/icon.icns", "target": [ "dmg" ], "category": "public.app-category.social-networking" }, "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.0", "blueimp-load-image": "^5.14.0", "deep-extend": "^0.6.0", "electron-context-menu": "^2.3.0", "electron-json-storage": "^4.2.0", "electron-log": "^4.2.2", "electron-window-state": "^5.0.3", "element-ui": "2.14.1", "emoji-mart-vue": "^2.6.6", "emojilib": "^2.4.0", "i18next": "^19.8.3", "lodash": "^4.17.20", "megalodon": "3.3.2", "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.1.1", "simplayer": "0.0.8", "system-font-families": "^0.4.1", "tunnel-agent": "^0.6.0", "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": "^0.5.0", "vue-router": "^3.4.8", "vue-shortkey": "^3.1.7", "vue-virtual-scroller": "^1.0.10", "vuex": "^3.5.1", "vuex-router-sync": "^5.0.0" }, "devDependencies": { "@babel/core": "^7.11.4", "@babel/plugin-proposal-class-properties": "^7.12.1", "@babel/plugin-proposal-object-rest-spread": "^7.12.1", "@babel/plugin-transform-runtime": "^7.12.1", "@babel/preset-env": "^7.12.7", "@babel/runtime": "7.12.5", "@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.15", "@types/lodash": "^4.14.165", "@types/nedb": "^1.8.10", "@types/node": "^14.14.5", "@types/parse-link-header": "^1.0.0", "@typescript-eslint/eslint-plugin": "^3.10.1", "@typescript-eslint/parser": "^3.10.1", "@typescript-eslint/typescript-estree": "^4.6.0", "@vue/test-utils": "^1.0.3", "ajv": "^6.12.6", "all-object-keys": "^2.1.1", "babel-eslint": "^10.1.0", "babel-jest": "^26.6.1", "babel-loader": "^8.1.0", "babel-plugin-istanbul": "^6.0.0", "babel-register": "^6.26.0", "cfonts": "^2.8.6", "chai": "^4.2.0", "chalk": "^4.1.0", "copy-webpack-plugin": "^6.2.1", "core-js": "^3.6.5", "cross-env": "^7.0.2", "css-loader": "^5.0.0", "del": "^6.0.0", "devtron": "^1.4.0", "electron": "10.1.5", "electron-builder": "^22.9.1", "electron-debug": "^3.1.0", "electron-devtools-installer": "^3.1.1", "electron-mock-ipc": "^0.3.7", "electron-packager": "^15.0.0", "eslint": "^7.12.1", "eslint-config-prettier": "^6.15.0", "eslint-config-standard": "^14.1.1", "eslint-friendly-formatter": "^4.0.1", "eslint-loader": "^4.0.2", "eslint-plugin-html": "^6.0.3", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^3.1.4", "eslint-plugin-promise": "^4.2.1", "eslint-plugin-standard": "^5.0.0", "eslint-plugin-vue": "^7.1.0", "file-loader": "^6.2.0", "html-webpack-plugin": "^4.5.0", "jest": "^26.6.1", "jsdom": "^16.4.0", "json-loader": "^0.5.7", "listr": "^0.14.3", "mini-css-extract-plugin": "^1.2.1", "node-loader": "^1.0.2", "node-sass": "^4.14.1", "prettier": "^2.1.2", "prettier-stylelint": "^0.4.2", "regenerator-runtime": "^0.13.7", "sass-loader": "^10.1.0", "style-loader": "^2.0.0", "stylelint": "^13.7.2", "stylelint-config-standard": "^20.0.0", "ts-jest": "^26.4.3", "ts-loader": "^8.0.11", "ttfinfo": "^0.2.0", "typescript": "^4.0.5", "url-loader": "^4.1.1", "vue-html-loader": "^1.2.4", "vue-loader": "^15.9.5", "vue-style-loader": "^4.1.0", "vue-template-compiler": "^2.6.11", "webpack": "^4.44.2", "webpack-cli": "^4.2.0", "webpack-dev-server": "^3.11.0", "webpack-hot-middleware": "^2.25.0", "webpack-merge": "^5.2.0" } }