{
  "plugins": [
    {
      "name": "inject",
      "desc": "依赖注入 (@ipare/inject)",
      "default": true
    },
    {
      "name": "router",
      "desc": "路由 (@ipare/router)",
      "default": true
    },
    {
      "name": "view",
      "desc": "视图渲染 (@ipare/view)"
    },
    {
      "name": "mva",
      "desc": "Mva 框架 (@ipare/mva)",
      "when": "!micro"
    },
    {
      "name": "pipe",
      "desc": "管道 (用于参数格式化) (@ipare/pipe)",
      "default": true
    },
    {
      "name": "filter",
      "desc": "过滤器 (用于拦截请求) (@ipare/filter)"
    },
    {
      "name": "validator",
      "desc": "请求参数校验 (@ipare/validator)"
    },
    {
      "name": "testing",
      "desc": "测试工具 (@ipare/testing)"
    },
    {
      "name": "static",
      "desc": "静态资源 (@ipare/static)",
      "when": "!micro"
    },
    {
      "name": "swagger",
      "desc": "Swagger 文档 (@ipare/swagger)",
      "when": "!micro"
    },
    {
      "name": "jwt",
      "desc": "jwt 身份验证中间件 (@ipare/jwt)"
    },
    {
      "name": "env",
      "desc": "环境配置插件 (@ipare/env)"
    },
    {
      "name": "logger",
      "desc": "日志插件 (@ipare/logger)"
    },
    {
      "name": "micro-grpc-client",
      "desc": "微服务 gRPC 客户端 (@ipare/micro-grpc-client)"
    },
    {
      "name": "micro-tcp-client",
      "desc": "微服务 Tcp 客户端 (@ipare/micro-tcp-client)"
    },
    {
      "name": "micro-redis-client",
      "desc": "微服务 Redis 客户端 (@ipare/micro-redis-client)"
    },
    {
      "name": "micro-mqtt-client",
      "desc": "微服务 MQTT 客户端 (@ipare/micro-mqtt-client)"
    }
  ],
  "envs": [
    {
      "desc": "原生 NodeJS",
      "file": "native",
      "plugin": "native"
    },
    {
      "desc": "腾讯云函数",
      "pickMessage": "选择云函数类型",
      "children": [
        {
          "desc": "事件函数",
          "file": "lambda",
          "plugin": "lambda"
        },
        {
          "desc": "Web 函数",
          "file": "sls-http-tcloud",
          "plugin": "native"
        }
      ]
    },
    {
      "desc": "Azure Function App",
      "file": "azure",
      "plugin": "lambda"
    },
    {
      "desc": "AWS Lambda",
      "file": "lambda",
      "plugin": "lambda"
    },
    {
      "desc": "阿里云函数计算",
      "pickMessage": "选择云函数类型",
      "children": [
        {
          "desc": "处理事件请求",
          "file": "lambda",
          "plugin": "lambda"
        },
        {
          "desc": "处理 HTTP 请求",
          "file": "alifc",
          "plugin": "alifc"
        }
      ]
    },
    {
      "desc": "华为云函数工作流",
      "pickMessage": "选择云函数类型",
      "children": [
        {
          "desc": "事件函数",
          "file": "lambda",
          "plugin": "lambda"
        },
        {
          "desc": "Web 函数",
          "file": "sls-http-huawei",
          "plugin": "native"
        }
      ]
    },
    {
      "desc": "微服务",
      "pickMessage": "选择微服务通讯方式",
      "children": [
        {
          "desc": "TCP",
          "file": "micro-tcp",
          "plugin": "micro-tcp"
        },
        {
          "desc": "gRPC",
          "file": "micro-grpc",
          "plugin": "micro-grpc"
        },
        {
          "desc": "MQTT",
          "file": "micro-mqtt",
          "plugin": "micro-mqtt"
        },
        {
          "desc": "Redis",
          "file": "micro-redis",
          "plugin": "micro-redis"
        },
        {
          "desc": "NATS",
          "file": "micro-nats",
          "plugin": "micro-nats"
        }
      ]
    }
  ],
  "dependencies": {
    "ejs": "view",
    "class-validator": "validator"
  },
  "files": {
    "static/*": "static",
    "src/views/*": "view",
    ".env": "env",
    ".env.development": "env",
    "protos/*": "micro-grpc||micro-grpc-client"
  },
  "devDependencies": {
    "@ipare/native": "lambda||alifc"
  }
}
