{
  "name": "surgio",
  "description": "Generating rules for Surge, Clash, Quantumult like a PRO",
  "version": "3.14.0",
  "main": "./build/index.js",
  "types": "./build/index.d.ts",
  "bin": {
    "surgio": "bin/run"
  },
  "repository": "https://github.com/geekdada/surgio",
  "author": "Roy Li <me@royli.dev>",
  "license": "MIT",
  "files": [
    "bin",
    "build",
    "hygen-template",
    "index.js",
    "index.d.ts",
    "internal.js",
    "internal.d.ts",
    "generator.js",
    "generator.d.ts",
    "provider.js",
    "provider.d.ts",
    "constant.js",
    "constant.d.ts",
    "utils.js",
    "utils.d.ts",
    "config.js",
    "config.d.ts"
  ],
  "bugs": {
    "url": "https://github.com/geekdada/surgio/issues"
  },
  "homepage": "https://surgio.js.org",
  "oclif": {
    "bin": "surgio",
    "dirname": "surgio",
    "commands": "./build/commands",
    "plugins": [
      "@oclif/plugin-help",
      "@oclif/plugin-plugins"
    ],
    "hooks": {
      "init": [
        "./build/hooks/init"
      ],
      "prerun": [],
      "postrun": []
    },
    "topicSeparator": " ",
    "topics": {}
  },
  "dependencies": {
    "@babel/parser": "^7.28.5",
    "@brillout/import": "^0.2.6",
    "@oclif/core": "^2.16.0",
    "@oclif/plugin-help": "^5.2.20",
    "@oclif/plugin-plugins": "^3.10.1",
    "@royli/hygen": "^6.2.0",
    "@surgio/eslint-config-surgio": "^2.0.0",
    "@surgio/logger": "^1.3.0",
    "ali-oss": "^6.23.0",
    "bluebird": "^3.7.2",
    "bytes": "^3.1.2",
    "cache-manager": "^5.7.6",
    "cache-manager-ioredis-yet": "^1.2.2",
    "chalk": "^4.1.2",
    "change-case": "^4.1.2",
    "check-node-version": "^4.2.1",
    "compare-versions": "^6.1.1",
    "date-fns": "^2.30.0",
    "detect-newline": "^3.1.0",
    "dotenv": "^16.6.1",
    "emoji-regex": "^10.6.0",
    "eslint": "^9.28.0",
    "execa": "^4.1.0",
    "filesize": "^10.1.6",
    "fs-extra": "^11.3.3",
    "got": "^11.8.6",
    "hpagent": "^1.2.0",
    "inquirer": "^8.2.7",
    "ioredis": "^5.8.2",
    "is-gzip": "^2.0.0",
    "lodash": "^4.17.21",
    "micromatch": "^4.0.8",
    "ms": "^2.1.3",
    "node-dir": "^0.1.17",
    "node-gzip": "^1.1.2",
    "nunjucks": "^3.2.4",
    "ora": "^5.4.1",
    "query-string": "^7.1.3",
    "rimraf": "^4.4.1",
    "source-map-support": "^0.5.21",
    "ts-expect": "^1.3.0",
    "type-fest": "^3.13.1",
    "update-notifier": "^5.1.0",
    "urlsafe-base64": "^1.0.0",
    "yaml": "^2.8.2",
    "zod": "^3.25.76",
    "zod-validation-error": "^1.5.0"
  },
  "devDependencies": {
    "@algolia/client-search": "^4.25.3",
    "@commitlint/cli": "^17.8.1",
    "@commitlint/config-angular": "^17.8.1",
    "@istanbuljs/nyc-config-typescript": "^1.0.2",
    "@oclif/test": "^2.5.6",
    "@types/ali-oss": "^6.16.13",
    "@types/bluebird": "^3.5.42",
    "@types/bytes": "^3.1.5",
    "@types/chai": "^4.3.20",
    "@types/debug": "^4.1.12",
    "@types/fs-extra": "^11.0.4",
    "@types/ini": "^1.3.34",
    "@types/inquirer": "^8.2.12",
    "@types/ioredis-mock": "^8.2.6",
    "@types/is-gzip": "^2.0.2",
    "@types/lodash": "^4.17.21",
    "@types/micromatch": "^4.0.10",
    "@types/mocha": "^10.0.10",
    "@types/ms": "^0.7.34",
    "@types/node": "^18.19.130",
    "@types/node-dir": "^0.0.35",
    "@types/node-gzip": "^1.1.3",
    "@types/nunjucks": "^3.2.6",
    "@types/sinon": "^10.0.20",
    "@types/urlsafe-base64": "^1.0.31",
    "@eslint/js": "^9.28.0",
    "typescript-eslint": "^8.33.1",
    "@vuepress/bundler-vite": "2.0.0-rc.19",
    "@vuepress/client": "2.0.0-rc.19",
    "@vuepress/core": "2.0.0-rc.19",
    "@vuepress/markdown": "2.0.0-rc.19",
    "@vuepress/plugin-docsearch": "2.0.0-rc.68",
    "@vuepress/plugin-google-analytics": "2.0.0-rc.66",
    "@vuepress/plugin-register-components": "2.0.0-rc.66",
    "@vuepress/plugin-shiki": "2.0.0-rc.68",
    "@vuepress/plugin-sitemap": "2.0.0-rc.68",
    "@vuepress/shared": "2.0.0-rc.19",
    "@vuepress/theme-default": "2.0.0-rc.68",
    "@vuepress/utils": "2.0.0-rc.19",
    "ava": "^5.3.1",
    "benchmark": "^2.1.4",
    "bumpp": "^9.11.1",
    "chai": "^4.5.0",
    "chai-jest-snapshot": "^2.0.0",
    "conventional-changelog-cli": "^2.2.2",
    "eslint-config-prettier": "^10.1.5",
    "eslint-import-resolver-typescript": "^4.4.3",
    "eslint-plugin-import-x": "^4.16.1",
    "eslint-plugin-prettier": "^5.4.1",
    "globals": "^16.2.0",
    "husky": "^8.0.3",
    "ini": "^3.0.1",
    "ioredis-mock": "^8.13.1",
    "lint-staged": "^13.3.0",
    "mocha": "^10.8.2",
    "nock": "^13.5.6",
    "np": "^6.5.0",
    "npm-debug-log-cleaner": "^1.0.3",
    "npm-run-all": "^4.1.5",
    "nyc": "^15.1.0",
    "prettier": "^2.8.8",
    "sass": "^1.97.1",
    "search-insights": "^2.17.3",
    "sinon": "^15.2.0",
    "ts-node": "^10.9.2",
    "typescript": "^5.9.3",
    "vue": "^3.5.26",
    "vuepress": "2.0.0-rc.19",
    "vuepress-plugin-umami-analytics": "1.8.1"
  },
  "resolutions": {
    "@vuepress/client": "2.0.0-rc.19",
    "@vuepress/core": "2.0.0-rc.19",
    "@vuepress/markdown": "2.0.0-rc.19",
    "@vuepress/utils": "2.0.0-rc.19",
    "vuepress": "2.0.0-rc.19"
  },
  "ava": {
    "failFast": false,
    "timeout": "30s",
    "extensions": [
      "ts",
      "js"
    ],
    "files": [
      "./test/**/*.test.ts",
      "./src/**/*.test.ts"
    ],
    "require": [
      "ts-node/register",
      "./test/helpers/stub-axios.js"
    ]
  },
  "nyc": {
    "extends": "@istanbuljs/nyc-config-typescript",
    "reporter": [
      "html",
      "text-summary",
      "lcov"
    ]
  },
  "engines": {
    "node": ">=18.0.0"
  },
  "lint-staged": {
    "*.{js,ts}": "eslint --fix"
  },
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -c .commitlintrc.json -E HUSKY_GIT_PARAMS",
      "pre-commit": "npm-debug-log-cleaner && lint-staged"
    }
  },
  "keywords": [
    "surgio",
    "surge",
    "quantumult",
    "clash",
    "mihomo",
    "singbox",
    "shadowrocket"
  ],
  "scripts": {
    "dev": "pnpm run build -- --watch",
    "test": "run-s build test:lint test:unit test:cli",
    "test:types": "tsc --noEmit",
    "test:lint": "eslint .",
    "test:unit": "ava",
    "test:cli": "mocha",
    "test:cli:update": "CHAI_JEST_SNAPSHOT_UPDATE_ALL=true pnpm test:cli",
    "run-example": "node ./scripts/run-example.js",
    "coverage": "TS_NODE_FILES=true nyc ava",
    "clean": "pnpm run build --clean",
    "build": "tsc --build tsconfig.build.json",
    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
    "docs:dev": "NODE_ENV=development vuepress dev docs",
    "docs:build": "NODE_ENV=production vuepress build docs",
    "release": "bumpp && pnpm publish",
    "release:beta": "bumpp --preid beta --no-push && pnpm publish --tag beta",
    "check-vuepress-version": "ncu -f \"*vuepress*\" --interactive --target @next -p pnpm"
  }
}