{
  "name": "whistle-auth",
  "description": "HTTP, HTTP2, HTTPS, Websocket debugging proxy",
  "version": "2.9.34",
  "dataDirname": ".whistle",
  "localUIHost": "local.whistlejs.com",
  "port": 8899,
  "sockets": 256,
  "timeout": 360000,
  "author": "avenwu <avenwu@vip.qq.com>",
  "contributors": [],
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/avwo/whistle/issues"
  },
  "homepage": "https://github.com/avwo/whistle",
  "keywords": [
    "proxy",
    "fiddler",
    "charles",
    "websocket",
    "http2",
    "hosts"
  ],
  "bin": {
    "wwhistle": "./bin/whistle.js",
    "ww2": "./bin/whistle.js",
    "wwproxy": "./bin/whistle.js"
  },
  "registry": "https://registry.npmjs.org/whistle",
  "repository": {
    "type": "git",
    "url": "https://github.com/avwo/whistle.git"
  },
  "dependencies": {
    "adm-zip": "0.5.9",
    "async-limiter": "2.0.0",
    "basic-auth": "1.0.0",
    "body-parser": "^1.19.0",
    "colors": "1.1.2",
    "cookie": "^0.3.1",
    "express": "^4.17.1",
    "extend": "^3.0.2",
    "fs-extra2": "^1.0.0",
    "hagent": "^0.9.0",
    "hparser": "^0.4.0",
    "iconv-lite": "^0.4.24",
    "json5": "^2.2.1",
    "lru-cache": "^4.1.1",
    "mime": "^1.6.0",
    "multer2": "^1.1.0",
    "node-forge": "^1.3.0",
    "node-native-zip2": "^1.0.0",
    "node-pac": "^0.5.0",
    "parseurl": "^1.3.1",
    "pfork": "^0.6.0",
    "pipestream": "^0.7.3",
    "q": "1.4.1",
    "safe-buffer": "^5.1.2",
    "set-global-proxy": "^0.1.7",
    "sni": "1.0.0",
    "sockx": "^0.2.0",
    "starting": "^8.0.1",
    "weinre2": "^1.3.2",
    "ws-parser": "^0.6.2",
    "xml2js": "^0.4.23"
  },
  "scripts": {
    "dev": "webpack --config ./biz/webui/htdocs/src/webpack.config -w",
    "start": "node bin/whistle.js run",
    "test": "npm run lint && node test/index.test.js",
    "lint": "eslint *.js ./lib ./bin ./biz ./test ./docs/script",
    "lintfix": "eslint --fix *.js ./lib ./bin ./biz ./test ./docs/script",
    "cov": "node_modules/istanbul/lib/cli.js cover node_modules/.bin/tape -- test/index.test.js",
    "docs": "gitbook build ./docs/zh ../avwo.github.io/whistle",
    "docs:build": "vuepress build docs",
    "docs:dev": "vuepress dev docs"
  },
  "engines": {
    "node": ">= 8"
  },
  "devDependencies": {
    "babel-core": "^6.7.6",
    "babel-eslint": "^6.1.2",
    "babel-loader": "^6.2.4",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.5.0",
    "babel-runtime": "^6.26.0",
    "base64-js": "^1.3.0",
    "bootstrap": "3.3.5",
    "clipboard": "^1.7.1",
    "codemirror": "5.5.0",
    "coveralls": "^2.11.12",
    "css-loader": "0.16.0",
    "eslint": "^2.8.0",
    "eslint-plugin-react": "^4.3.0",
    "file-loader": "0.8.4",
    "glob": "^7.1.2",
    "istanbul": "^0.4.4",
    "jquery": "3.3.1",
    "js-base64": "^2.4.5",
    "prop-types": "^15.5.8",
    "qrcode": "1.2.0",
    "react": "^15.6.2",
    "react-base16-styling": "^0.5.1",
    "react-dom": "^15.6.2",
    "react-virtualized": "^9.21.2",
    "request": "^2.74.0",
    "should": "^10.0.0",
    "should-http": "0.0.4",
    "style-loader": "0.12.3",
    "tape": "^4.6.0",
    "url-loader": "0.5.6",
    "webpack": "1.11.0",
    "ws": "^1.1.4"
  }
}
