diff --git a/.gitignore b/.gitignore index 88045b39b..d91dded83 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,21 @@ +## OS files +# Mac OS +.DS_Store + +## IDE specific files +# IntelliJ +.idea/ +*.iml +## VSCode +.vscode/ +# Vim temporary files +*.swp + ## Local copies of dependencies that should stay on developers' local machines node_modules/ bower_components/ *.tmp + ## Build and test artifacts .go_workspace/ .sass-cache/ @@ -9,24 +23,12 @@ bower_components/ coverage/ dist/ .tools/ - -## OS files -# Mac OS -.DS_Store - -## Vs Code -.vscode/ - -## IDE specific files -# IntelliJ -.idea/ -*.iml -# Vi temporary files -*.swp +vendor/ ## Project .env src/backend/conf/dev.conf +src/backend/conf/app.conf _dev/ _build/ _bus/ @@ -40,6 +42,6 @@ src/backend/views/index.html src/backend/swagger/swagger.json src/backend/swagger/swagger.yml -##script +## Script src/frontend/src/app/js-rename.js /src/backend/openapi.swagger.json diff --git a/.travis.yml b/.travis.yml index bf625c86a..fe83b1b06 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,31 +1,37 @@ matrix: + include: + - language: go os: - linux - - osx go: - 1.12.x env: - - DB_USER=root DB_PASSWD='' DB_TNS='tcp(127.0.0.1:3306)' + - DB_USER=root DB_PASSWD='root' DB_TNS='tcp(127.0.0.1:3306)' service: - mysql - - rabbitmq before_install: - - mysql -e 'CREATE DATABASE wayne;' + - mysql -e 'select VERSION();' + - mysql -e 'create database wayne;' + - mysql -u root -e "create user wayne@localhost identified by 'wayne'; grant all on wayne.* to wayne@localhost;" + - mysql -u wayne -p'wayne' -e 'show databases;' script: - pwd - - echo '' > /home/travis/gopath/src/github.com/Qihoo360/wayne/src/backend/conf/dev.conf - - cd src/backend && go run main.go -h + - export GO111MODULE=on + - export GOPROXY=https://goproxy.io + - make syncdb + - make run-backend & + - sleep 5 + - pidof go + - language: node_js os: - linux - - osx node_js: - - 8.9.4 + - 12.16.1 before_install: - cd src/frontend && npm install script: - - # npm run test Wayne 前端测试尚未编排 - - travis_wait 30 npm run build - - travis_wait 30 npm run lint + - npm run build + - npm run lint diff --git a/Dockerfile b/Dockerfile index 7fd8a5dac..8922516e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,35 +3,18 @@ # BUILD COMMAND : # docker --build-arg RELEASE_VERSION=v1.0.0 -t infra/wayne:v1.0.0 . -# build ui -FROM 360cloud/wayne-ui-builder:v1.0.1 as frontend - -ARG RAVEN_DSN - -COPY src/frontend /workspace - -RUN sed -i "s~__ravenDsn__~${RAVEN_DSN}~g" /workspace/src/environments/environment.prod.ts - -RUN cd /workspace && \ - npm config set registry https://registry.npm.taobao.org && \ - npm install && \ - npm run build - # build server -FROM 360cloud/wayne-server-builder:v1.0.1 as backend +FROM 360cloud/wayne-server-builder:v1.0.2 as backend COPY go.mod /go/src/github.com/Qihoo360/wayne COPY go.sum /go/src/github.com/Qihoo360/wayne - COPY src/backend /go/src/github.com/Qihoo360/wayne/src/backend -RUN rm -rf /go/src/github.com/Qihoo360/wayne/src/backend/static - -COPY --from=frontend /workspace/dist/ /go/src/github.com/Qihoo360/wayne/src/backend/static/ - -COPY --from=frontend /workspace/dist/index.html /go/src/github.com/Qihoo360/wayne/src/backend/views/ - -RUN export GO111MODULE=on && cd /go/src/github.com/Qihoo360/wayne/src/backend && bee generate docs && bee pack -o /_build +RUN export GO111MODULE=on && \ + export GOPROXY=https://goproxy.io && \ + cd /go/src/github.com/Qihoo360/wayne/src/backend && \ + bee generate docs && \ + bee pack -o /_build # build release image FROM 360cloud/centos:7 diff --git a/LICENSE b/LICENSE index 261eeb9e9..902f1b20c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,5 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +Source code in this repository is covered by one of three licenses: (i) the +Apache License 2.0 (ii) an Apache License 2.0 compatible license (iii) the +360 License. The default license throughout the repository is Apache License +2.0 unless the header specifies another license. 360 Licensed code is found +only in the backend directory. diff --git a/Makefile b/Makefile index 9711f8c98..d3412c0ac 100644 --- a/Makefile +++ b/Makefile @@ -5,30 +5,20 @@ MAKEFLAGS += --warn-undefined-variables # Build variables REGISTRY_URI :=360cloud RELEASE_VERSION :=$(shell git describe --always --tags) -UI_BUILD_VERSION :=v1.0.1 -SERVER_BUILD_VERSION :=v1.0.1 - - -release: build-release-image push-image +UI_BUILD_VERSION :=v1.0.2 +SERVER_BUILD_VERSION :=v1.0.2 update-version: ./hack/updateversion.sh # run module run-backend: - cd src/backend/ && bee run -main=./main.go -runargs="apiserver" - -run-worker: - cd src/backend/ && bee run -main=./main.go -runargs="worker -t AuditWorker -c 2" - -run-webhook: - cd src/backend/ && bee run -main=./main.go -runargs="worker -t WebhookWorker -c 2" + cd src/backend/ && go run main.go run-frontend: cd src/frontend/ && npm start # dev - syncdb: go run src/backend/database/syncdb.go orm syncdb @@ -41,21 +31,29 @@ initdata: swagger-openapi: cd src/backend && swagger generate spec -o ./swagger/openapi.swagger.json -# release, requiring Docker 17.05 or higher on the daemon and client -build-release-image: - @echo "version: $(RELEASE_VERSION)" - docker build --no-cache --build-arg RAVEN_DSN=$(RAVEN_DSN) -t $(REGISTRY_URI)/wayne:$(RELEASE_VERSION) . - -push-image: - docker push $(REGISTRY_URI)/wayne:$(RELEASE_VERSION) - - ## server builder image build-server-image: - cd hack/build/server && docker build --no-cache \ - -t $(REGISTRY_URI)/wayne-server-builder:$(SERVER_BUILD_VERSION) . + docker build --no-cache -t $(REGISTRY_URI)/wayne-server-builder:$(SERVER_BUILD_VERSION) -f hack/build/server/Dockerfile . ## ui builder image build-ui-image: - docker build -f hack/build/ui/Dockerfile -t $(REGISTRY_URI)/wayne-ui-builder:$(UI_BUILD_VERSION) . + docker build --no-cache -t $(REGISTRY_URI)/wayne-ui-builder:$(UI_BUILD_VERSION) -f hack/build/ui/Dockerfile . + +# release, requiring Docker 17.05 or higher on the daemon and client +build-backend-image: + @echo "version: $(RELEASE_VERSION)" + docker build --no-cache -t $(REGISTRY_URI)/wayne-backend:$(RELEASE_VERSION) . + +build-frontend-image: + @echo "version: $(RELEASE_VERSION)" + docker build --no-cache -t $(REGISTRY_URI)/wayne-frontend:$(RELEASE_VERSION) -f hack/build/frontend/Dockerfile . +push-image: + docker tag $(REGISTRY_URI)/wayne-backend:$(RELEASE_VERSION) $(REGISTRY_URI)/wayne-backend:latest + docker push $(REGISTRY_URI)/wayne-backend:$(RELEASE_VERSION) + docker push $(REGISTRY_URI)/wayne-backend:latest + docker tag $(REGISTRY_URI)/wayne-frontend:$(RELEASE_VERSION) $(REGISTRY_URI)/wayne-frontend:latest + docker push $(REGISTRY_URI)/wayne-frontend:$(RELEASE_VERSION) + docker push $(REGISTRY_URI)/wayne-frontend:latest + +release: build-backend-image build-frontend-image push-image diff --git a/README-CN.md b/README-CN.md index b330d7556..4b2455480 100644 --- a/README-CN.md +++ b/README-CN.md @@ -14,16 +14,12 @@ Wayne已大规模服务于360搜索,承载了内部绝大部分业务,稳定 > 命名起源:360 搜索私有云团队多数项目命名都来源于 DC 漫画的角色,Wayne 也不例外,[Wayne](https://en.wikipedia.org/wiki/Batman#Bruce_Wayne) 是声名显赫的超级英雄蝙蝠侠 Bruce Wayne 的名字。 - - -## 演示 - -[https://demo.360yun.org](https://demo.360yun.org) + ## Features - 基于 RBAC(Role based access control)的权限管理:用户通过角色与部门和项目关联,拥有部门角色允许操作部门资源,拥有项目角色允许操作项目资源,更加适合多租户场景。 -- 简化 Kubernetes 对象创建:提供基础 Kubernetes 对象配置文件添加方式,同时支持高级模式直接编辑 Json/Yaml文件创建 Kubernetes 对象。 +- 简化 Kubernetes 对象创建:提供基础 Kubernetes 对象配置文件添加方式,同时支持高级模式直接编辑 Json/Yaml 文件创建 Kubernetes 对象。 - LDAP/OAuth 2.0/DB 多种登录模式支持:集成企业级 LDAP 登录及 DB 登录模式,同时还可以实现 OAuth2 登录。 - 支持多集群、多租户:可以同时管理多个 Kubernetes 集群,并针对性添加特定配置,更方便的多集群、多租户管理。 - 提供完整审计模块:每次操作都会有完整的审计功能,追踪用于操作历史,同时支持用户自定义 webhook。 @@ -35,9 +31,9 @@ Wayne已大规模服务于360搜索,承载了内部绝大部分业务,稳定 ## 架构设计 -整体采用前后端分离的方案,其中前端采用 Angular 框架进行数据交互和展示,使用Ace编辑器进行 Kubernetes 资源模版编辑。后端采用 Beego 框架做数据接口处理,使用 Client-go 与 Kubernetes 进行交互,数据使用 MySQL 存储。 +整体采用前后端分离的方案,其中前端采用 Angular 框架进行数据交互和展示,使用 Ace 编辑器进行 Kubernetes 资源模版编辑。后端采用 Beego 框架做数据接口处理,使用 Client-go 与 Kubernetes 进行交互,数据使用 MySQL 存储。 - + ## 组件 @@ -46,77 +42,38 @@ Wayne已大规模服务于360搜索,承载了内部绝大部分业务,稳定 ## 项目依赖 -- Golang 1.9+([installation manual](https://golang.org/dl/)) +- Golang 1.12+ ([installation manual](https://golang.org/dl/)) - Docker 17.05+ ([installation manual](https://docs.docker.com/install)) -- Bee ([installation manual](https://github.com/wilhelmguo/bee)) (请务必使用链接版本,不要使用 beego 官方版本,存在一些定制) -- Node.js 8+ and npm 5+ ([installation with nvm](https://github.com/creationix/nvm#usage)) -- MySQL 5.6+ (Wayne 主要数据都存在 MySQL 中) -- RabbitMQ (可选,如需扩展审计功能,例如操作审计和 Webhooks 等,则需部署) +- Bee ([installation manual](https://github.com/beego/bee)) +- Node.js v11+ 和 npm 6.5+ ([installation with nvm](https://github.com/creationix/nvm#usage)) +- MySQL 5.6+ (Wayne 主要数据都存在 MySQL 中) ## 快速启动 - 克隆代码仓库 ```bash -$ go get github.com/Qihoo360/wayne -``` - -- 启动MySQL(可选) - -若您没有可用的 MySQL 服务,可以通过 docker-compose 快速创建: - -```bash -$ docker-compose up -d mysql -``` - -- 创建配置文件 - -```bash -$ cd src/backend/conf && touch dev.conf +$ git clone https://github.com/Qihoo360/wayne.git ``` -- 写入数据库相关配置(请修改为数据库实际地址) - -```bash -DBName = wayne -# MySQL连接配置,默认是mysql(MySQL服务名称). -# 如果使用docker-compose启动MySQL,同时你没有改变mysql的服务名称,那么保留默认配置即可。 -# 你也可以通过执行"docker network inspect wayne_default"(如果没有使用docker-compose -# 的默认网络,需要将“wayne_default”替换为实际使用的网络名称)来获得mysql容器IP,然后将 -# “mysql”替换为其容器IP。当你使用自定义运行环境时,使用容器IP会更加灵活。例如: -# "DBTns = tcp(172.17.0.2:3306)" -DBTns = tcp(mysql:3306) -DBUser = root -DBPasswd = root -``` +- 启动服务 -- 启动Wayne服务 + 在 Wayne 的根目录下,通过 docker-compose 创建服务 -进入Wayne根目录,执行 - -```bash -$ docker-compose up -d wayne +```shell +$ docker-compose -f ./hack/docker-compose/docker-compose.yaml up ``` -通过上述命令,您可以从通过 http://127.0.0.1:8080/admin 访问本地 Wayne, 默认管理员账号 admin:admin。 - -> 注意:项目启动后还需要配置集群和Namespace等信息才可正常使用。详见 [集群配置](https://github.com/Qihoo360/wayne/wiki/Wayne-admin-cluster) +通过上述命令,您可以从通过 http://127.0.0.1:4200 访问本地 Wayne, 默认管理员账号 admin:admin。 +> 注意:项目启动后还需要配置集群和 Namespace 等信息才可正常使用。详见 [集群配置](https://360yun.org/wayne/admin/cluster.html) ## 文档 -- 请参照 [Wiki](https://github.com/Qihoo360/wayne/wiki) - -## Roadmap +- 请参照 [Wiki](http://360yun.org/wayne/) -- 国际化 -- 支持 Kubernetes 已有项目迁移 -- 支持从 Helm 迁移 -- 支持一键从 Yaml/Json 导入对象 -- 支持 HPA 等其他对象 -- 完善运维 Kubernetes 集群功能,提供完整的 Kubectl 功能 -- 支持更完整的报表和开放 API 系统 +## 联系我们 -## 贡献者 +邮箱 -- 请参照 [贡献者](https://github.com/Qihoo360/wayne/wiki/contributors) +redefine-infra@360.cn diff --git a/README.md b/README.md index 869f3b227..2e5b9e8fb 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,7 @@ Wayne has been serving [360 search](https://www.so.com/?src=wayne) on a large sc > Why Named **Wayne**:Most of the projects developed by the team of 360 Search Private Cloud are named after DC comics, and [Wayne](https://en.wikipedia.org/wiki/Batman#Bruce_Wayne) is no exception. "Wayne" is the name of the famous superhero, Batman Bruce Wayne. - - -## Demo - -[https://demo.360yun.org](https://demo.360yun.org) + ## Features @@ -36,7 +32,8 @@ Wayne has been serving [360 search](https://www.so.com/?src=wayne) on a large sc ## Architecture The whole system adopts the separation of front and back ends, in which the front end uses Angular framework for data interaction and display, and the Ace editor is used for Kubernetes resource template editing. The backend uses the Beego framework for data interface processing, Client-go to interact with Kubernetes, and data for MySQL storage. - + + ## Component @@ -45,79 +42,38 @@ The whole system adopts the separation of front and back ends, in which the fron ## Dependence -- Golang 1.9+([installation manual](https://golang.org/dl/)) +- Golang 1.12+ ([installation manual](https://golang.org/dl/)) - Docker 17.05+ ([installation manual](https://docs.docker.com/install)) -- Bee ([installation manual](https://github.com/wilhelmguo/bee))(Be sure to use the link version, don't use the official version of beego, there are some customizations.) -- Node.js 8+ and npm 5+ ([installation with nvm](https://github.com/creationix/nvm#usage)) -- MySQL 5.6+ (Most of the data is in MySQL.) -- RabbitMQ (Optionally, you need to deploy if you need to extend auditing features such as operational auditing and Webhooks.) +- Bee ([installation manual](https://github.com/beego/bee)) +- Node.js v11+ and npm 6.5+ ([installation with nvm](https://github.com/creationix/nvm#usage)) +- MySQL 5.6+ (Most of the data is in MySQL.) ## Quickly Start - Clone ```bash -$ go get github.com/Qihoo360/wayne -``` - -- Start MySQL(Optional) - -If you don't have a MySQL service available, you can quickly create it with docker-compose: - -```bash -$ docker-compose up -d mysql -``` - -- Create configuration file - -```bash -$ cd src/backend/conf && touch dev.conf -``` - -- Write database related configuration (Please modify to the actual address of the database.) - -```bash -DBName = wayne -# MySQL connection config, its mysql(service name) by default. -# Keep it default value, if you run MySQL via docker-compose and you didn't -# change the mysql's service name. -# You can also run "docker network inspect wayne_default"(replace wayne_default -# to the real docker network name if you didn't use the default network of -# docker-compose) to get the contianer IP of mysql, then replace `mysql` -# to the container IP. Its more flexible when you want to customize the environment -# of wayne running. For example "DBTns = tcp(172.17.0.2:3306)" -DBTns = tcp(mysql:3306) -DBUser = root -DBPasswd = root +$ git clone https://github.com/Qihoo360/wayne.git ``` - Start Wayne -cd Wayne root directory and execute + Start server by docker-compose at Wayne project. ```bash -$ docker-compose up -d wayne +$ docker-compose -f ./hack/docker-compose/docker-compose.yaml up ``` -With the above command, you can access the local Wayne from http://127.0.0.1:8080/admin, the default administrator account admin:admin. - -> Note: After Wayne is started, you need to configure information such as cluster and Namespace for normal use. See details [Cluster Configuration](https://github.com/Qihoo360/wayne/wiki/Wayne-admin-cluster) +With the above command, you can access the local Wayne from http://127.0.0.1:4200, the default administrator account admin:admin. +> Note: After Wayne is started, you need to configure information such as cluster and Namespace for normal use. See details [Cluster Configuration](http://360yun.org/wayne/admin/cluster.html) ## Document -- Refer [Wiki](https://github.com/Qihoo360/wayne/wiki) - -## Roadmap +- Refer [Wiki](http://360yun.org/wayne/) -- i18n -- Support for migration of existing projects in kubernetes -- Support for migration from Helm -- Support for importing objects from Yaml/Json with one click -- Support for other objects such as HPA -- Improve operation and maintenance Kubernetes cluster function, providing complete Kubectl function -- Support for more complete reporting and open API system +## Contact Us -## Contributors +Mail -- Refer [contributors](https://github.com/Qihoo360/wayne/wiki/contributors) +redefine-infra@360.cn diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index d2b0223ad..000000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,37 +0,0 @@ -version: '2' -services: - rabbitmq: - environment: - RABBITMQ_NODENAME: "rabbit" - RABBITMQ_DEFAULT_USER: "guest" - RABBITMQ_DEFAULT_PASS: "guest" - image: rabbitmq:3.7.8-management - networks: - - default - ports: - - "5672:5672" - mysql: - image: mysql:5.6.41 - environment: - MYSQL_ROOT_PASSWORD: "root" - volumes: - - ./_dev/mysql:/var/lib/mysql:z - networks: - - default - expose: - - "3306" - ports: - - "3306:3306" - wayne: - image: 360cloud/wayne:latest - command: /opt/wayne/backend apiserver - environment: - GOPATH: "/go" - volumes: - - ./src/backend/conf:/opt/wayne/conf:z - networks: - - default - expose: - - "8080" - ports: - - "8080:8080" diff --git a/docs/images/architecture.png b/docs/images/architecture.png new file mode 100644 index 000000000..d630e61fa Binary files /dev/null and b/docs/images/architecture.png differ diff --git a/docs/images/dashboard-ui.png b/docs/images/dashboard-ui.png new file mode 100644 index 000000000..6dc48e25b Binary files /dev/null and b/docs/images/dashboard-ui.png differ diff --git a/go.mod b/go.mod index 7905dfc42..54e01923d 100644 --- a/go.mod +++ b/go.mod @@ -1,26 +1,13 @@ module github.com/Qihoo360/wayne -go 1.12 - -replace ( - golang.org/x/crypto => github.com/golang/crypto v0.0.0-20190403202508-8e1b8d32e692 - golang.org/x/exp => github.com/golang/exp v0.0.0-20190402192236-7fd597ecf556 - golang.org/x/image => github.com/golang/image v0.0.0-20190321063152-3fc05d484e9f - golang.org/x/lint => github.com/golang/lint v0.0.0-20190313153728-d0100b6bd8b3 - golang.org/x/mobile => github.com/golang/mobile v0.0.0-20190327163128-167ebed0ec6d - golang.org/x/net => github.com/golang/net v0.0.0-20190403144856-b630fd6fe46b - golang.org/x/oauth2 => github.com/golang/oauth2 v0.0.0-20190402181905-9f3314589c9a - golang.org/x/sync => github.com/golang/sync v0.0.0-20190227155943-e225da77a7e6 - golang.org/x/sys => github.com/golang/sys v0.0.0-20190403152447-81d4e9dc473e - golang.org/x/text => github.com/golang/text v0.3.0 - golang.org/x/time => github.com/golang/time v0.0.0-20190308202827-9d24e82272b4 - golang.org/x/tools => github.com/golang/tools v0.0.0-20190403183509-8a44e74612bc - google.golang.org/appengine => github.com/golang/appengine v1.4.0 -) +go 1.13 require ( + github.com/360yun/sockjs-go v0.0.0-20190620042557-e70edfda8e57 + github.com/Azure/go-autorest v11.1.2+incompatible // indirect github.com/astaxie/beego v1.11.1 github.com/certifi/gocertifi v0.0.0-20190410005359-59a85de7f35e // indirect + github.com/davecgh/go-spew v1.1.1 github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c // indirect github.com/elazarl/goproxy v0.0.0-20190410145444-c548f45dcf1d // indirect @@ -28,31 +15,20 @@ require ( github.com/getsentry/raven-go v0.2.0 github.com/go-sql-driver/mysql v1.4.1 github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect - github.com/google/gofuzz v1.0.0 // indirect github.com/googleapis/gnostic v0.2.0 // indirect - github.com/gorilla/websocket v1.4.0 // indirect - github.com/hashicorp/golang-lru v0.5.1 // indirect - github.com/igm/sockjs-go v2.0.0+incompatible // indirect github.com/imdario/mergo v0.3.7 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect - github.com/json-iterator/go v1.1.6 // indirect github.com/mitchellh/mapstructure v1.1.2 - github.com/onsi/ginkgo v1.8.0 - github.com/onsi/gomega v1.5.0 - github.com/spf13/cobra v0.0.3 - github.com/spf13/pflag v1.0.3 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd + github.com/onsi/ginkgo v1.10.1 + github.com/onsi/gomega v1.7.0 + github.com/spf13/cobra v0.0.5 github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94 - golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 - golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a - golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 // indirect + golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 + golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect - gopkg.in/igm/sockjs-go.v2 v2.0.0 - gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ldap.v2 v2.5.1 - k8s.io/api v0.0.0-20190413052509-3cc1b3fb6d0f - k8s.io/apiextensions-apiserver v0.0.0-20190315093550-53c4693659ed - k8s.io/apimachinery v0.0.0-20190413052414-d7deff9243b1 - k8s.io/client-go v11.0.0+incompatible - k8s.io/klog v0.3.0 // indirect - k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7 // indirect + k8s.io/api v0.17.2 + k8s.io/apiextensions-apiserver v0.17.2 + k8s.io/apimachinery v0.17.2 + k8s.io/client-go v0.17.2 ) diff --git a/go.sum b/go.sum index f2e00865d..6a8c006c1 100644 --- a/go.sum +++ b/go.sum @@ -1,194 +1,463 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +github.com/360yun/sockjs-go v0.0.0-20190620042557-e70edfda8e57 h1:4jUXsuZKNQs88HYOqguLNPgoYpXuVpOG+SMkme/DPRw= +github.com/360yun/sockjs-go v0.0.0-20190620042557-e70edfda8e57/go.mod h1:5GVPECHzBCEeajQeridxM/xj2p9fShBZo7/kX2rl9zA= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= +github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/astaxie/beego v1.11.1 h1:6DESefxW5oMcRLFRKi53/6exzup/IR6N4EzzS1n6CnQ= github.com/astaxie/beego v1.11.1/go.mod h1:i69hVzgauOPSw5qeyF4GVZhn7Od0yG5bbCGzmhbWxgQ= github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ= github.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU= github.com/belogik/goes v0.0.0-20151229125003-e54d722c3aff/go.mod h1:PhH1ZhyCzHKt4uAasyx+ljRCgoezetRNf59CUtwUkqY= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60= github.com/casbin/casbin v1.7.0/go.mod h1:c67qKN6Oum3UF5Q1+BByfFxkwKvhwW57ITjqwtzR1KE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20190410005359-59a85de7f35e h1:9574pc8MX6rF/QyO14SPHhM5KKIOo9fkb/1ifuYMTKU= github.com/certifi/gocertifi v0.0.0-20190410005359-59a85de7f35e/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/couchbase/go-couchbase v0.0.0-20181122212707-3e9b6e1258bb/go.mod h1:TWI8EKQMs5u5jLKW/tsb9VwauIrMIxQG1r5fMsswK5U= github.com/couchbase/gomemcached v0.0.0-20181122193126-5125a94a666c/go.mod h1:srVSlQLB8iXBVXHgnqemxUXqN6FCvClgCMPCsjBDR7c= github.com/couchbase/goutils v0.0.0-20180530154633-e865a1461c8a/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cupcake/rdb v0.0.0-20161107195141-43ba34106c76/go.mod h1:vYwsqCOLxGiisLwp9rITslkFNpZD5rz43tf41QFkTWY= +github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= +github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c h1:ZfSZ3P3BedhKGUhzj7BQlPSU4OvT6tfOKe3DVHzOA7s= github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk= github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/elazarl/goproxy v0.0.0-20190410145444-c548f45dcf1d h1:FEw1BeUVT/wxetVmacXPqQgRyYCG+0aCfQel+53Pa/E= github.com/elazarl/goproxy v0.0.0-20190410145444-c548f45dcf1d/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/elazarl/goproxy/ext v0.0.0-20190410145444-c548f45dcf1d h1:G71TTAuHFAHgY2X7zfUWDbogxiZuLvpJ9xevbOw4Vcw= github.com/elazarl/goproxy/ext v0.0.0-20190410145444-c548f45dcf1d/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= -github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= +github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= +github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= +github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= +github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= +github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= +github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= +github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= +github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= +github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= +github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= +github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= +github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= +github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= +github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= +github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= +github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= +github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= +github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= +github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= +github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= +github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= +github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= +github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= +github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= +github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= +github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= +github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= +github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= +github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= +github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= +github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= +github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -github.com/golang/crypto v0.0.0-20190403202508-8e1b8d32e692 h1:JNZ/1S9N/1SXJ+n/uI2EUWDmKZPC/pKRlm+nF8WF97I= -github.com/golang/crypto v0.0.0-20190403202508-8e1b8d32e692/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef h1:veQD95Isof8w9/WXiA+pa3tz3fJXkt5B7QaRBrM62gk= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/net v0.0.0-20190403144856-b630fd6fe46b h1:FUF+O2S1xoCXmyyUEkxyfN6G4GSC/86+wP6ZPLxog/Y= -github.com/golang/net v0.0.0-20190403144856-b630fd6fe46b/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -github.com/golang/oauth2 v0.0.0-20190402181905-9f3314589c9a h1:lwOCv3g2ykgIZ1ET6sZl3vKOH/n2YekJ0uaxmcWmSME= -github.com/golang/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -github.com/golang/sys v0.0.0-20190403152447-81d4e9dc473e h1:Wlhs99wj2+p9lskFB4CRn/N/9UWf1Yhbpw0Tl2GJ6Ks= -github.com/golang/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -github.com/golang/text v0.3.0 h1:uI5zIUA9cg047ctlTptnVc0Ghjfurf2eZMFrod8R7v8= -github.com/golang/text v0.3.0/go.mod h1:GUiq9pdJKRKKAZXiVgWFEvocYuREvC14NhI4OPgEjeE= -github.com/golang/time v0.0.0-20190308202827-9d24e82272b4 h1:F9e5QAps6/3zc8881JhdfJBCj+KjFaahs4YNEzAPc/Q= -github.com/golang/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= -github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf h1:+RRA9JqSOZFfKrOeqr2z77+8R2RKyh8PG66dcu1V0ck= -github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1yIonGp9761ExpPPV1ui0SAC59Yube9k= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g= github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/igm/sockjs-go v2.0.0+incompatible h1:d9T2KqPq0OH0gDUCIR5BLgSJslOXSni52uhRV6NYDjI= -github.com/igm/sockjs-go v2.0.0+incompatible/go.mod h1:Yu6pvqjNniWNJe07LPObeCG6R77Qc97C6Kss0roF8tU= +github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be h1:AHimNtVIpiBjPUhEF5KNCkrUyqTSA5zWUl8sQ2bfGBE= -github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok= +github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/siddontang/go v0.0.0-20180604090527-bdc77568d726/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw= github.com/siddontang/ledisdb v0.0.0-20181029004158-becf5f38d373/go.mod h1:mF1DpOSOUiJRMR+FDqaqu3EBqrybQtrDDszLUZ6oxPg= github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA= -github.com/spf13/cobra v0.0.3 h1:ZlrZ4XsMRm04Fr5pSFxBgfND2EBVa1nLpiy1stUsX/8= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/pflag v1.0.1 h1:aCvUg6QPl3ibpQUxyLkrEkCHtPqYJL4x9AuhqVqFis4= +github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/ssdb/gossdb v0.0.0-20180723034631-88f6b59b84ec/go.mod h1:QBvMkMya+gXctz3kmljlUCu/yB3GZ6oee+dUozsezQE= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94 h1:0ngsPmuP6XIjiFRNFYlvKwSr5zff2v+uPHaffZ6/M4k= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/syndtr/goleveldb v0.0.0-20181127023241-353a9fca669c/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/wendal/errors v0.0.0-20130201093226-f66c77a7882b/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= +go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a h1:tImsplftrFpALCYumobsd0K86vlAs/eXGFms2txfJfA= -golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 h1:rjwSpXsdiK0dV8/Naq3kAw9ymfAeJIyd0upUIElB+lI= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313 h1:pczuHS43Cp2ktBEEmLwScxgjWsBSzdaQiKzUyf3DTTc= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 h1:ng0gs1AKnRRuEMZoTLLlbOd+C17zUDepwGQBb/n+JVg= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU= -golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= +golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/igm/sockjs-go.v2 v2.0.0 h1:NfDyi1jrF9v2VOPESefhKH1NRqpoE9tp4v6kxVR3ubs= -gopkg.in/igm/sockjs-go.v2 v2.0.0/go.mod h1:xvdpHZ3OpjP0TzQzl+174DglrrnYZKVd6qHPIX20Z1Q= -gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o= -gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -k8s.io/api v0.0.0-20190413052509-3cc1b3fb6d0f h1:wrTt9gCsmxJNmIPLK38QdHrUTTAVkjXkGYPD5MTxcgk= -k8s.io/api v0.0.0-20190413052509-3cc1b3fb6d0f/go.mod h1:ZQJMVsOricQ70XeVqHESzHGdfvp99Z+62MQogxPVWLE= -k8s.io/apiextensions-apiserver v0.0.0-20190315093550-53c4693659ed h1:rCteec//ELIjZMfjIGQbVtZooyaofqDJwsmWwWKItNs= -k8s.io/apiextensions-apiserver v0.0.0-20190315093550-53c4693659ed/go.mod h1:IxkesAMoaCRoLrPJdZNZUQp9NfZnzqaVzLhb2VEQzXE= -k8s.io/apimachinery v0.0.0-20190413052414-40a3f73b0fa2 h1:5EaBeH2ttVa0wgvLCmExPuss83UOpGnlSd84f2NvDy4= -k8s.io/apimachinery v0.0.0-20190413052414-40a3f73b0fa2/go.mod h1:89khKZ4rbtSMZapCb0ZnL3e/0GDb/yfOROD9A2LXO8o= -k8s.io/apimachinery v0.0.0-20190413052414-d7deff9243b1 h1:W4LTm/HNyuRVshC90S4VbUSjBaPYB5CF4FSjfUe+qIE= -k8s.io/apimachinery v0.0.0-20190413052414-d7deff9243b1/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= -k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o= -k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= -k8s.io/klog v0.0.0-20190306015804-8e90cee79f82 h1:SHucoAy7lRb+w5oC/hbXyZg+zX+Wftn6hD4tGzHCVqA= -k8s.io/klog v0.0.0-20190306015804-8e90cee79f82/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.3.0 h1:0VPpR+sizsiivjIfIAQH/rl8tan6jvWkS7lU+0di3lE= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +k8s.io/api v0.17.2 h1:NF1UFXcKN7/OOv1uxdRz3qfra8AHsPav5M93hlV9+Dc= +k8s.io/api v0.17.2/go.mod h1:BS9fjjLc4CMuqfSO8vgbHPKMt5+SF0ET6u/RVDihTo4= +k8s.io/apiextensions-apiserver v0.17.2 h1:cP579D2hSZNuO/rZj9XFRzwJNYb41DbNANJb6Kolpss= +k8s.io/apiextensions-apiserver v0.17.2/go.mod h1:4KdMpjkEjjDI2pPfBA15OscyNldHWdBCfsWMDWAmSTs= +k8s.io/apimachinery v0.17.2 h1:hwDQQFbdRlpnnsR64Asdi55GyCaIP/3WQpMmbNBeWr4= +k8s.io/apimachinery v0.17.2/go.mod h1:b9qmWdKlLuU9EBh+06BtLcSf/Mu89rWL33naRxs1uZg= +k8s.io/apiserver v0.17.2/go.mod h1:lBmw/TtQdtxvrTk0e2cgtOxHizXI+d0mmGQURIHQZlo= +k8s.io/client-go v0.17.2 h1:ndIfkfXEGrNhLIgkr0+qhRguSD3u6DCmonepn1O6NYc= +k8s.io/client-go v0.17.2/go.mod h1:QAzRgsa0C2xl4/eVpeVAZMvikCn8Nm81yqVx3Kk9XYI= +k8s.io/code-generator v0.17.2/go.mod h1:DVmfPQgxQENqDIzVR2ddLXMH34qeszkKSdH/N+s+38s= +k8s.io/component-base v0.17.2/go.mod h1:zMPW3g5aH7cHJpKYQ/ZsGMcgbsA/VyhEugF3QT1awLs= +k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= -k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7 h1:8r+l4bNWjRlsFYlQJnKJ2p7s1YQPj4XyXiJVqDHRx7c= -k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0= +k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= +k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= +k8s.io/utils v0.0.0-20191114184206-e782cd3c129f h1:GiPwtSzdP43eI1hpPCbROQCCIgCuiMMNF8YUVLF3vJo= +k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= +modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= +modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= +modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= +modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= +modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= +sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= +sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06/go.mod h1:/ULNhyfzRopfcjskuui0cTITekDduZ7ycKN3oUT9R18= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/hack/build/base/Dockerfile b/hack/build/base/Dockerfile index fd3df87a5..8dcab83f4 100644 --- a/hack/build/base/Dockerfile +++ b/hack/build/base/Dockerfile @@ -2,4 +2,4 @@ FROM centos:7 ADD https://amazon-eks.s3-us-west-2.amazonaws.com/1.11.5/2018-12-06/bin/linux/amd64/aws-iam-authenticator /usr/bin/aws-iam-authenticator -RUN chmod +x /usr/bin/aws-iam-authenticator \ No newline at end of file +RUN chmod +x /usr/bin/aws-iam-authenticator diff --git a/hack/build/frontend/Dockerfile b/hack/build/frontend/Dockerfile new file mode 100644 index 000000000..83fd61dfd --- /dev/null +++ b/hack/build/frontend/Dockerfile @@ -0,0 +1,22 @@ +# requiring Docker 17.05 or higher on the daemon and client +# see https://docs.docker.com/develop/develop-images/multistage-build/ +# BUILD COMMAND : +# docker --build-arg RELEASE_VERSION=v1.0.0 -t infra/wayne:v1.0.0 . + +# build ui +FROM 360cloud/wayne-ui-builder:v1.0.2 as frontend + +COPY src/frontend /workspace + +RUN cd /workspace && \ + npm run build:aot + +# build server +FROM openresty/openresty:1.15.8.1-1-centos + +COPY --from=frontend /workspace/dist/ /usr/local/openresty/nginx/html/ + +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ + sed -i '/index index.html index.htm;/a\ try_files $uri $uri/ /index.html;' /etc/nginx/conf.d/default.conf + +CMD ["/usr/local/openresty/bin/openresty", "-g", "daemon off;"] diff --git a/hack/build/server/Dockerfile b/hack/build/server/Dockerfile index 25c200b70..84bfde949 100644 --- a/hack/build/server/Dockerfile +++ b/hack/build/server/Dockerfile @@ -4,9 +4,6 @@ RUN go get github.com/astaxie/beego \ && go get github.com/beego/bee RUN cd /go/src/github.com/beego/bee && \ - git remote add fork https://github.com/wilhelmguo/bee.git && \ - git fetch fork && \ - git reset --hard fork/master && \ go install WORKDIR /go/src/github.com/Qihoo360/wayne/src/backend diff --git a/hack/build/ui/Dockerfile b/hack/build/ui/Dockerfile index 7254df240..5884d6553 100644 --- a/hack/build/ui/Dockerfile +++ b/hack/build/ui/Dockerfile @@ -1,4 +1,4 @@ -FROM node:8.12 +FROM node:10.16 WORKDIR /workspace @@ -6,6 +6,4 @@ COPY src/frontend/package.json /workspace COPY src/frontend/package-lock.json /workspace -RUN npm config set registry https://registry.npm.taobao.org && \ - npm install - +RUN npm install --registry=https://registry.npmmirror.com diff --git a/hack/dev/webhook/echo.py b/hack/dev/webhook/echo.py index 2b9bab8f4..d0759650c 100644 --- a/hack/dev/webhook/echo.py +++ b/hack/dev/webhook/echo.py @@ -18,4 +18,4 @@ def do_POST(self): Handler = GetHandler httpd = SocketServer.TCPServer(("", PORT), Handler) -httpd.serve_forever() \ No newline at end of file +httpd.serve_forever() diff --git a/hack/docker-compose/conf/app.conf b/hack/docker-compose/conf/app.conf new file mode 100644 index 000000000..7a285a6d6 --- /dev/null +++ b/hack/docker-compose/conf/app.conf @@ -0,0 +1,94 @@ +appname = wayne +httpport = 8080 +runmode = prod +autorender = false +copyrequestbody = true +EnableDocs = true +EnableAdmin = true +StaticDir = public:static + +# Custom config +ShowSql = false + +## if enable username and password login +EnableDBLogin = true + +# token, generate jwt token +RsaPrivateKey = "./apikey/rsa-private.pem" +RsaPublicKey = "./apikey/rsa-public.pem" + +# token end time. second +TokenLifeTime=86400 + +# kubernetes labels config +AppLabelKey= wayne-app +NamespaceLabelKey = wayne-ns +PodAnnotationControllerKindLabelKey = wayne.cloud/controller-kind + +# database configuration: +## mysql +DBName = "wayne" +DBTns = "tcp(mysql:3306)" +DBUser = "root" +DBPasswd = "root" +DBLoc = "Asia%2FShanghai" +DBConnTTL = 30 + +# web shell auth +appKey = "860af247a91a19b2368d6425797921c6" + +# Set demo namespace and group id +DemoGroupId = "1" +DemoNamespaceId = "1" + +# Sentry +LogLevel = "4" +SentryEnable = false +SentryDSN = "" +SentryLogLevel = "4" + +# Robin +EnableRobin = false + +# api-keys +EnableApiKeys = true + +# Bus +EnableWebhook = true +BusEnable = true + +# Webhook +EnableWebhook = true +WebhookClientTimeout = 10 +WebhookClientWindowSize = 16 + +# other +# Use Canary/Production Update +# If set app metaData {"mode":"beta"},the app will auto redirect to BetaUrl +BetaUrl = "" +AppUrl = "" + +# oauth2 +[auth.oauth2] +enabled = false +redirect_url = "https://www.wayne.cloud" +client_id = client +client_secret = secret +auth_url = https://example.com/oauth2/v1/authorize +token_url = https://example.com/oauth2/v1/token +api_url = https://example.com/oauth2/v1/userinfo +# If your OAuth 2.0-based authorization service does not have email, name, and dispaly fields, use mapping criteria. +api_mapping = name:name,email:email,display:display + +# ldap config +# enable ldap login +[auth.ldap] +enabled = false +ldap_url = ldap://127.0.0.1 +ldap_search_dn = "cn=admin,dc=example,dc=com" +ldap_search_password = admin +ldap_base_dn = "dc=example,dc=com" +ldap_filter = +ldap_uid = cn +ldap_scope = 2 +ldap_connection_timeout = 30 diff --git a/hack/docker-compose/conf/config.js b/hack/docker-compose/conf/config.js new file mode 100644 index 000000000..1e60b9b42 --- /dev/null +++ b/hack/docker-compose/conf/config.js @@ -0,0 +1,5 @@ +window.CONFIG = { + URL: 'http://yourip:8080', + RAVEN: false, + RAVEN_DSN: 'RAVEN_DSN' +}; diff --git a/hack/docker-compose/docker-compose.yaml b/hack/docker-compose/docker-compose.yaml new file mode 100644 index 000000000..4d398864a --- /dev/null +++ b/hack/docker-compose/docker-compose.yaml @@ -0,0 +1,41 @@ +version: '3' + +services: + + mysql: + image: mysql:5.6.41 + environment: + MYSQL_ROOT_PASSWORD: "root" + networks: + - default + expose: + - "3306" + ports: + - "3306:3306" + + wayne-backend: + image: 360cloud/wayne-backend:latest + command: /opt/wayne/backend + environment: + GOPATH: "/go" + volumes: + - ./conf/app.conf:/opt/wayne/conf/app.conf + depends_on: + - mysql + restart: always + networks: + - default + ports: + - "8080:8080" + + wayne-frontend: + image: 360cloud/wayne-frontend:latest + volumes: + - ./conf/config.js:/usr/local/openresty/nginx/html/config.js + depends_on: + - wayne-backend + restart: always + networks: + - default + ports: + - "4200:80" diff --git a/hack/kubernetes/dependency/rabbitmq.yaml b/hack/kubernetes/dependency/rabbitmq.yaml deleted file mode 100644 index 088206d3c..000000000 --- a/hack/kubernetes/dependency/rabbitmq.yaml +++ /dev/null @@ -1,42 +0,0 @@ -kind: Deployment -apiVersion: extensions/v1beta1 -metadata: - name: rabbitmq-wayne - namespace: default - labels: - app: rabbitmq-wayne -spec: - replicas: 1 - selector: - matchLabels: - app: rabbitmq-wayne - template: - metadata: - labels: - app: rabbitmq-wayne - spec: - containers: - - name: rabbitmq - image: 'rabbitmq:3.7.8-management' - resources: - limits: - cpu: '1' - memory: 1Gi - requests: - cpu: '1' - memory: 1Gi ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: rabbitmq-wayne - name: rabbitmq-wayne - namespace: default -spec: - ports: - - port: 5672 - protocol: TCP - targetPort: 5672 - selector: - app: rabbitmq-wayne \ No newline at end of file diff --git a/hack/kubernetes/dependency/mysql.yaml b/hack/kubernetes/mysql.yaml similarity index 93% rename from hack/kubernetes/dependency/mysql.yaml rename to hack/kubernetes/mysql.yaml index e9b405952..0e443fcbb 100644 --- a/hack/kubernetes/dependency/mysql.yaml +++ b/hack/kubernetes/mysql.yaml @@ -1,5 +1,5 @@ +apiVersion: apps/v1 kind: Deployment -apiVersion: extensions/v1beta1 metadata: name: mysql-wayne namespace: default @@ -28,7 +28,9 @@ spec: requests: cpu: '1' memory: 2Gi + --- + apiVersion: v1 kind: Service metadata: @@ -42,4 +44,4 @@ spec: protocol: TCP targetPort: 3306 selector: - app: mysql-wayne \ No newline at end of file + app: mysql-wayne diff --git a/hack/kubernetes/wayne-backend.yaml b/hack/kubernetes/wayne-backend.yaml new file mode 100644 index 000000000..5a404cbf5 --- /dev/null +++ b/hack/kubernetes/wayne-backend.yaml @@ -0,0 +1,140 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + app: wayne-backend + name: wayne-backend + namespace: default +data: + app.conf: |- + appname = wayne + httpport = 8080 + runmode = prod + autorender = false + copyrequestbody = true + EnableDocs = true + EnableAdmin = true + StaticDir = public:static + + # Custom config + ShowSql = false + + ## if enable username and password login + EnableDBLogin = true + + # token, generate jwt token + RsaPrivateKey = "./apikey/rsa-private.pem" + RsaPublicKey = "./apikey/rsa-public.pem" + + # token end time. second + TokenLifeTime=86400 + + # kubernetes labels config + AppLabelKey= wayne-app + NamespaceLabelKey = wayne-ns + PodAnnotationControllerKindLabelKey = wayne.cloud/controller-kind + + # database configuration: + ## mysql + DBName = "wayne" + DBTns = "tcp(mysql-wayne:3306)" + DBUser = "root" + DBPasswd = "root" + DBConnTTL = 30 + + # web shell auth + appKey = "860af247a91a19b2368d6425797921c6" + + # Set demo namespace and group id + DemoGroupId = "1" + DemoNamespaceId = "1" + + # Sentry + LogLevel = "4" + SentryEnable = false + SentryDSN = "" + SentryLogLevel = "4" + + # Robin + EnableRobin = false + + # api-keys + EnableApiKeys = true + + # Bus + BusEnable = false + + # Webhook + EnableWebhook = true + WebhookClientTimeout = 10 + WebhookClientWindowSize = 16 + +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: wayne-backend + name: wayne-backend + namespace: default +spec: + replicas: 1 + selector: + matchLabels: + app: wayne-backend + template: + metadata: + labels: + app: wayne-backend + spec: + volumes: + - name: config + configMap: + name: wayne-backend + containers: + - name: wayne + image: '360cloud/wayne-backend:latest' + command: + - /opt/wayne/backend + - apiserver + env: + - name: GOPATH # app.conf runmode = dev must set GOPATH + value: /go + resources: + limits: + cpu: '0.5' + memory: 1Gi + requests: + cpu: '0.5' + memory: 1Gi + volumeMounts: + - name: config + mountPath: /opt/wayne/conf/ + readinessProbe: + httpGet: + path: healthz + port: 8080 + timeoutSeconds: 1 + periodSeconds: 10 + failureThreshold: 3 + imagePullPolicy: Always + +--- + +apiVersion: v1 +kind: Service +metadata: + labels: + app: wayne-backend + name: wayne-backend + namespace: default +spec: + type: NodePort + ports: + - nodePort: 32001 + protocol: TCP + port: 8080 + targetPort: 8080 + selector: + app: wayne-backend diff --git a/hack/kubernetes/wayne-frontend.yaml b/hack/kubernetes/wayne-frontend.yaml new file mode 100644 index 000000000..0cae99be0 --- /dev/null +++ b/hack/kubernetes/wayne-frontend.yaml @@ -0,0 +1,75 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + app: wayne-frontend + name: wayne-frontend + namespace: default +data: + config.js: |- + window.CONFIG = { + URL: 'http://nodeip:32001', + RAVEN: false, + RAVEN_DSN: 'RAVEN_DSN' + }; + +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: wayne-frontend + name: wayne-frontend + namespace: default +spec: + replicas: 1 + selector: + matchLabels: + app: wayne-frontend + template: + metadata: + labels: + app: wayne-frontend + spec: + volumes: + - name: config + configMap: + name: wayne-frontend + items: + - key: config.js + path: config.js + containers: + - name: wayne + image: '360cloud/wayne-frontend:latest' + resources: + limits: + cpu: '0.5' + memory: 1Gi + requests: + cpu: '0.5' + memory: 1Gi + volumeMounts: + - name: config + mountPath: /usr/local/openresty/nginx/html/config.js + subPath: config.js + imagePullPolicy: Always + +--- + +apiVersion: v1 +kind: Service +metadata: + labels: + app: wayne-frontend + name: wayne-frontend + namespace: default +spec: + type: NodePort + ports: + - nodePort: 32000 + protocol: TCP + port: 80 + targetPort: 80 + selector: + app: wayne-frontend diff --git a/hack/kubernetes/wayne/configmap.yaml b/hack/kubernetes/wayne/configmap.yaml deleted file mode 100644 index b7b1220d8..000000000 --- a/hack/kubernetes/wayne/configmap.yaml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - labels: - app: infra-wayne - name: infra-wayne - namespace: default -data: - app.conf: |- - appname = wayne - httpport = 8080 - runmode = prod - autorender = false - copyrequestbody = true - EnableDocs = true - EnableAdmin = true - StaticDir = public:static - # Custom config - ShowSql = false - ## if enable username and password login - EnableDBLogin = true - # token, generate jwt token - RsaPrivateKey = "./apikey/rsa-private.pem" - RsaPublicKey = "./apikey/rsa-public.pem" - # token end time. second - TokenLifeTime=86400 - - # kubernetes labels config - AppLabelKey= wayne-app - NamespaceLabelKey = wayne-ns - PodAnnotationControllerKindLabelKey = wayne.cloud/controller-kind - - # database configuration: - ## mysql - DBName = "wayne" - DBTns = "tcp(mysql-wayne:3306)" - DBUser = "root" - DBPasswd = "root" - DBLoc = "Asia%2FShanghai" - DBConnTTL = 30 - - # web shell auth - appKey = "860af247a91a19b2368d6425797921c6" - - # Set demo namespace and group id - DemoGroupId = "1" - DemoNamespaceId = "1" - - # Sentry - LogLevel = "4" - SentryEnable = false - SentryDSN = "" - SentryLogLevel = "4" - - # Robin - EnableRobin = false - - # api-keys - EnableApiKeys = true - - # Bus - BusEnable = true - BusRabbitMQURL = "amqp://guest:guest@rabbitmq-wayne:5672" - - # Webhook - EnableWebhook = true - WebhookClientTimeout = 10 - WebhookClientWindowSize = 16 diff --git a/hack/kubernetes/wayne/deployment.yaml b/hack/kubernetes/wayne/deployment.yaml deleted file mode 100644 index 0e7ce13be..000000000 --- a/hack/kubernetes/wayne/deployment.yaml +++ /dev/null @@ -1,143 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - labels: - app: infra-wayne - name: infra-wayne - namespace: default -spec: - replicas: 1 - selector: - matchLabels: - app: infra-wayne - template: - metadata: - labels: - app: infra-wayne - spec: - volumes: - - name: config - configMap: - name: infra-wayne - containers: - - name: wayne - image: '360cloud/wayne:latest' - command: - - /opt/wayne/backend - - apiserver - env: - - name: GOPATH # app.conf runmode = dev must set GOPATH - value: /go - resources: - limits: - cpu: '0.5' - memory: 1Gi - requests: - cpu: '0.5' - memory: 1Gi - volumeMounts: - - name: config - mountPath: /opt/wayne/conf/ - readinessProbe: - httpGet: - path: healthz - port: 8080 - timeoutSeconds: 1 - periodSeconds: 10 - failureThreshold: 3 - imagePullPolicy: Always ---- -kind: Deployment -apiVersion: extensions/v1beta1 -metadata: - name: infra-wayne-woker - namespace: default - labels: - app: infra-wayne-woker -spec: - replicas: 1 - selector: - matchLabels: - app: infra-wayne-woker - template: - metadata: - labels: - app: infra-wayne-woker - spec: - volumes: - - name: config - configMap: - name: infra-wayne - containers: - - name: wayne - image: '360cloud/wayne:latest' - command: - - /opt/wayne/backend - args: - - worker - - '-t' - - AuditWorker - - '-c' - - '1' - env: - - name: GOPATH - value: /go - resources: - limits: - cpu: '0.5' - memory: 0.5Gi - requests: - cpu: '0.5' - memory: 0.5Gi - volumeMounts: - - name: config - mountPath: /opt/wayne/conf/ - imagePullPolicy: Always ---- -kind: Deployment -apiVersion: extensions/v1beta1 -metadata: - name: infra-wayne-webhook - namespace: default - labels: - app: infra-wayne-webhook -spec: - replicas: 1 - selector: - matchLabels: - app: infra-wayne-webhook - template: - metadata: - labels: - app: infra-wayne-webhook - spec: - volumes: - - name: config - configMap: - name: infra-wayne - containers: - - name: wayne - image: '360cloud/wayne:latest' - command: - - /opt/wayne/backend - args: - - worker - - '-t' - - WebhookWorker - - '-c' - - '1' - env: - - value: /go - name: GOPATH - resources: - limits: - cpu: '0.5' - memory: 0.5Gi - requests: - cpu: '0.5' - memory: 0.5Gi - volumeMounts: - - name: config - mountPath: /opt/wayne/conf/ - imagePullPolicy: Always - diff --git a/hack/kubernetes/wayne/service.yaml b/hack/kubernetes/wayne/service.yaml deleted file mode 100644 index 5d6480345..000000000 --- a/hack/kubernetes/wayne/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: infra-wayne - name: infra-wayne - namespace: default -spec: - type: NodePort - ports: - - port: 8080 - protocol: TCP - targetPort: 8080 - selector: - app: infra-wayne \ No newline at end of file diff --git a/licenses/360-LICENSE.txt b/licenses/360-LICENSE.txt new file mode 100644 index 000000000..61ea0e692 --- /dev/null +++ b/licenses/360-LICENSE.txt @@ -0,0 +1,213 @@ +360 license agreement + +Please read carefully this 360 license agreement (this "agreement"), which +Constitutes a legally binding agreement and governs all of your use of all of +The 360 software with which this agreement is included ("360 software") +That is provided in object code format, and, in accordance with section 2 below, +Certain of the 360 software that is provided in source code format. By +Installing or using any of the 360 software governed by this agreement, you +are assenting to the terms and conditions of this agreement. If you do not agree +With such terms and conditions, you may not install or use the 360 software +Governed by this agreement. If you are installing or using the software on +Behalf of a legal entity, you represent and warrant that you have the actual +Authority to agree to the terms and conditions of this agreement on behalf of +Such entity. + +Posted date: April 1, 2020 + +This agreement is entered into by and between 360 Technology Group Co., Ltd. ("360") and +You, or the legal entity on behalf of whom you are acting (as applicable, +"you"). + +1. object code end user licenses, restrictions and third party open source +Software + + 1.1 object code end user license. Subject to the terms and conditions of + section 1.2 of this agreement, 360 hereby grants to you, at no charge and + for so long as you are not in breach of any provision of this agreement, a + license to the basic features and functions of the 360 software. + + 1.2 reservation of rights; restrictions. As between 360 and you, 360 + and its licensors own all right, title and interest in and to the 360 + software, and except as expressly set forth in sections 1.1, and 2.1 of this + agreement, no other license to the 360 software is granted to you under + this agreement, by implication, estoppel or otherwise. You agree not to: (i) + reverse engineer or decompile, decrypt, disassemble or otherwise reduce any + 360 software provided to you in object code, or any portion thereof, to + source code, except and only to the extent any such restriction is prohibited + by applicable law, (ii) except as expressly permitted in this agreement, + prepare derivative works from, modify, copy or use the 360 software object + code or the commercial software source code in any manner, (iii) except as + expressly permitted in section 1.1 above, transfer, sell, rent, lease, + distribute, sublicense, loan or otherwise transfer, 360 software object + code, in whole or in part, to any third party, (iv) use 360 software + object code for providing time-sharing services, any software-as-a-service, + service bureau services or as part of an application services provider or + other service offering (collectively, "saas offering") where obtaining access + to the 360 software or the features and functions of the 360 software + is a primary reason or substantial motivation for users of the saas offering + to access and/or use the saas offering ("prohibited saas offering"), (v) + circumvent the limitations on use of 360 software provided to you in + object code format that are imposed or preserved by any license key, (vi) + alter or remove any marks and notices in the 360 software, or (vii) make use of object + code for any commercial purpose. If you have any + question as to whether a specific saas offering constitutes a prohibited saas + offering, or are interested in obtaining 360's permission to engage in + commercial or non-commercial distribution of the 360 software, please + contact redefine-infra@360.cn. + + 1.3 third party open source software. The commercial software may contain or + be provided with third party open source libraries, components, utilities and + other open source software (collectively, "open source software"), which open + source software may have applicable license terms as identified on a website + designated by 360. Notwithstanding anything to the contrary herein, use of + the open source software shall be subject to the license terms and conditions + applicable to such open source software, to the extent required by the + applicable licensor (which terms shall not restrict the license rights granted + to you hereunder, but may contain additional rights). To the extent any + condition of this agreement conflicts with any license to the open source + software, the open source software license will govern with respect to such + open source software only. 360 may also separately provide you with + certain open source software that is licensed by 360. Your use of such + 360 open source software will not be governed by this agreement, but by + the applicable open source license terms. + +2. commercial software source code + + 2.1 limited license. Subject to the terms and conditions of section 2.2 of + this agreement, 360 hereby grants to you, at no charge and for so long as + you are not in breach of any provision of this agreement, a limited, + non-exclusive, non-transferable, fully paid up royalty free right and license + to the commercial software in source code format, without the right to grant + or authorize sublicenses, to prepare derivative works of the commercial + software, provided you (i) do not hack the licensing mechanism, or otherwise + circumvent the intended limitations on the use of 360 software to enable + features other than basic features and functions or those features you are + entitled to as part of a subscription, and (ii) make use of source code and + resulting object code only for reasonable testing purposes. + + 2.2 restrictions. Nothing in section 2.1 grants you the right to (i) use the + commercial software source code other than in accordance with section 2.1 + above, (ii) use a derivative work of the commercial software outside of a + non-production environment, in any production capacity, on a temporary or + permanent basis, (iii) transfer, sell, rent, lease, distribute, sublicense, + loan or otherwise make available the commercial software source code, in whole + or in part, to any third party, or (iv)use commercial software source code or + resulting object code for any commercial purpose. + +3. termination + + 3.1 termination. This agreement will automatically terminate, whether or not + you receive notice of such termination from 360, if you breach any of its + provisions. + + 3.2 post termination. Upon any termination of this agreement, for any reason, + you shall promptly cease the use of the 360 software in object code format + and cease use of the commercial software in source code format. For the + avoidance of doubt, termination of this agreement will not affect your right + to use 360 software, in either object code or source code formats, made + available under the apache license version 2.0. + + 3.3 survival. Sections 1.2, 2.2. 3.3, 4 and 5 shall survive any termination or + expiration of this agreement. + +4. disclaimer of warranties and limitation of liability + + 4.1 disclaimer of warranties. To the maximum extent permitted under applicable + law, the 360 software is provided "as is" without warranty of any kind, + and 360 and its licensors make no warranties whether expressed, implied or + statutory regarding or relating to the 360 software. To the maximum extent + permitted under applicable law, 360 and its licensors specifically + disclaim all implied warranties of merchantability, fitness for a particular + purpose and non-infringement with respect to the 360 software, and with + respect to the use of the foregoing. Further, 360 does not warrant results + of use or that the 360 software will be error free or that the use of the + 360 software will be uninterrupted. + + 4.2 limitation of liability. In no event shall 360 or its licensors be + liable to you or any third party for any direct or indirect damages, + including, without limitation, for any loss of profits, loss of use, business + interruption, loss of data, cost of substitute goods or services, or for any + special, incidental or consequential damages of any kind, in connection with + or arising out of the use or inability to use the 360 software, or the + performance of or failure to perform this agreement, whether alleged as a + breach of contract or tortious conduct, including negligence, even if 360 + has been advised of the possibility of such damages. + +5. miscellaneous + + this agreement completely and exclusively states the entire agreement of the + parties regarding the subject matter herein, and it supersedes, and its terms + govern, all prior proposals, agreements, or other communications between the + parties, oral or written, regarding such subject matter. This agreement may be + modified by 360 from time to time, and any such modifications will be + effective upon the "posted date" set forth at the top of the modified + agreement. If any provision hereof is held unenforceable, this agreement will + continue without said provision and be interpreted to reflect the original + intent of the parties. This agreement and any non-contractual obligation + arising out of or in connection with it, is governed exclusively by laws of + People’s Republic of China. All disputes arising out of or in + connection with this agreement, including its existence and validity, shall be + resolved by the courts with jurisdiction in China, +A breach or threatened breach, by you of section 2 may cause + irreparable harm for which damages at law may not provide adequate relief, and + therefore 360 shall be entitled to seek injunctive relief without being + required to post a bond. You may not assign this agreement (including by + operation of law in connection with a merger or acquisition), in whole or in + part to any third party without the prior written consent of 360, which + may be withheld or granted by 360 in its sole and absolute discretion. + any assignment in violation of the preceding sentence is void. Notices to + 360 may also be sent to redefine-infra@360.cn. + +6. definitions + + the following terms have the meanings ascribed: + + 6.1 "affiliate" means, with respect to a party, any entity that controls, is + controlled by, or which is under common control with, such party, where + "control" means ownership of at least fifty percent (50%) of the outstanding + voting shares of the entity, or the contractual right to establish policy for, + and manage the operations of, the entity. + + 6.2 "basic features and functions" means those features and functions of the + 360 software that are eligible for use under a basic license, as set forth + At https://github.com/Qihoo360/wayne, as may be modified by 360 from time to time. + + 6.3 "commercial software" means the 360 software source code mentioned in + directory file named backend. + + 6.4 "derivative work of the commercial software" means, for purposes of this + agreement, any modification(s) or enhancement(s) to the commercial software, + which represent, as a whole, an original work of authorship. + + 6.5 "license" means a limited, non-exclusive, non-transferable, fully paid up, + royalty free, right and license, without the right to grant or authorize + sublicenses, solely for your internal business operations to (i) install and + use the applicable features and functions of the 360 software in object + code, and (ii) permit contractors and your affiliates to use the 360 + software as set forth in (i) above, provided that such use by contractors must + be solely for your benefit and/or the benefit of your affiliates, and you + shall be responsible for all acts and omissions of such contractors and + affiliates in connection with their use of the 360 software that are + contrary to the terms and conditions of this agreement. + + 6.6 "license key " means a sequence of bytes, including but not limited to a + json blob , that is used to enable certain features and functions of the + 360 software. + + 6.7 "marks and notices" means all 360 trademarks, trade names, logos and + notices present on the documentation as originally provided by 360. + + 6.8 "non-production environment" means an environment for development, testing + or quality assurance, where software is not used for production purposes. + + 6.9 "object code" means any form resulting from mechanical transformation or + translation of source code form, including but not limited to compiled object + code, generated documentation, and conversions to other media types. + + 6.10 "source code" means the preferred form of computer software for making + modifications, including but not limited to software source code, + documentation source, and configuration files. + + 6.11 "subscription" means the right to receive support services and a license + to the commercial software. diff --git a/licenses/APACHE-LICENSE-2.0.txt b/licenses/APACHE-LICENSE-2.0.txt new file mode 100644 index 000000000..b57c3f728 --- /dev/null +++ b/licenses/APACHE-LICENSE-2.0.txt @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/src/backend/bus/newbus/newbus.go b/src/backend/bus/newbus/newbus.go new file mode 100644 index 000000000..52788dc14 --- /dev/null +++ b/src/backend/bus/newbus/newbus.go @@ -0,0 +1,82 @@ +package newbus + +import ( + "errors" + "sync" + + "github.com/Qihoo360/wayne/src/backend/bus/message" +) + +var UBus *Bus + +// DataChannel 是一个能接收 message 的 channel +type DataChannel chan message.Message + +// HandlerFunc defines a handler function interface. +type HandlerFunc func(msg *message.Message) error + +// EventMsg save event message +type EventInfo struct { + EventMsg DataChannel + HandlerFunc HandlerFunc +} + +// Bus存储event消息channel及其handler +// Events map{eventName: eventInfo} +type Bus struct { + Events map[string]*EventInfo + mu sync.RWMutex +} + +func (b *Bus) RegisterHandler(event string, handlerfunc HandlerFunc) error { + if _, ok := b.Events[event]; !ok { + b.mu.Lock() + ch := make(DataChannel, 100) + eventInfo := &EventInfo{ + EventMsg: ch, + HandlerFunc: handlerfunc, + } + b.Events[event] = eventInfo + b.mu.Unlock() + } else { + return errors.New("handler已存在") + } + go b.Dispatch(event) + return nil +} + +func (b *Bus) Publish(event string, msg message.Message) error { + if UBus == nil { // Feature is not enabled + return nil + } + b.mu.RLock() + if eventinfo, found := b.Events[event]; found { + channel := eventinfo.EventMsg + go func(mg message.Message, ch *DataChannel) { + *ch <- mg + }(msg, &channel) + } else { + return errors.New(" No webhook handler found") + } + b.mu.RUnlock() + return nil +} + +func NewBus() (*Bus, error) { + bus := &Bus{ + Events: make(map[string]*EventInfo), + } + return bus, nil +} + +func (b *Bus) Dispatch(event string) { + e := b.Events[event] + for { + // e := b.Events[event] + select { + case msg := <-e.EventMsg: + // e.HandlerFunc(&msg) + go e.HandlerFunc(&msg) + } + } +} diff --git a/src/backend/client/api/types.go b/src/backend/client/api/types.go index 7b24214dd..410ad05cd 100644 --- a/src/backend/client/api/types.go +++ b/src/backend/client/api/types.go @@ -1,6 +1,7 @@ package api import ( + appsv1 "k8s.io/api/apps/v1" appsv1beta1 "k8s.io/api/apps/v1beta1" autoscalingv1 "k8s.io/api/autoscaling/v1" batchv1 "k8s.io/api/batch/v1" @@ -10,6 +11,7 @@ import ( rbacv1 "k8s.io/api/rbac/v1" storagev1 "k8s.io/api/storage/v1" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/kubernetes" ) type ResourceName = string @@ -347,3 +349,299 @@ var KindToResourceMap = map[string]ResourceMap{ Namespaced: true, }, } + +var KindToStableResourceMap = map[string]ResourceMap{ + ResourceNameConfigMap: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNameConfigMap, + }, + Kind: KindNameConfigMap, + }, + Namespaced: true, + }, + ResourceNameDaemonSet: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: appsv1.GroupName, + Version: appsv1.SchemeGroupVersion.Version, + Resource: ResourceNameDaemonSet, + }, + Kind: KindNameDaemonSet, + }, + Namespaced: true, + }, + ResourceNameDeployment: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: appsv1.GroupName, + Version: appsv1.SchemeGroupVersion.Version, + Resource: ResourceNameDeployment, + }, + Kind: KindNameDeployment, + }, + Namespaced: true, + }, + ResourceNameEvent: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNameEvent, + }, + Kind: KindNameEvent, + }, + Namespaced: true, + }, + + ResourceNameHorizontalPodAutoscaler: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: autoscalingv1.GroupName, + Version: autoscalingv1.SchemeGroupVersion.Version, + Resource: ResourceNameHorizontalPodAutoscaler, + }, + Kind: KindNameHorizontalPodAutoscaler, + }, + Namespaced: true, + }, + ResourceNameIngress: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: extensionsv1beta1.GroupName, + Version: extensionsv1beta1.SchemeGroupVersion.Version, + Resource: ResourceNameIngress, + }, + Kind: KindNameIngress, + }, + Namespaced: true, + }, + ResourceNameJob: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: batchv1.GroupName, + Version: batchv1.SchemeGroupVersion.Version, + Resource: ResourceNameJob, + }, + Kind: KindNameJob, + }, + Namespaced: true, + }, + ResourceNameCronJob: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: batchv1beta1.GroupName, + Version: batchv1beta1.SchemeGroupVersion.Version, + Resource: ResourceNameCronJob, + }, + Kind: KindNameCronJob, + }, + Namespaced: true, + }, + ResourceNameNamespace: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNameNamespace, + }, + Kind: KindNameNamespace, + }, + Namespaced: false, + }, + ResourceNameNode: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNameNode, + }, + Kind: KindNameNode, + }, + Namespaced: false, + }, + ResourceNamePersistentVolumeClaim: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNamePersistentVolumeClaim, + }, + Kind: KindNamePersistentVolumeClaim, + }, + Namespaced: true, + }, + ResourceNamePersistentVolume: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNamePersistentVolume, + }, + Kind: KindNamePersistentVolume, + }, + Namespaced: false, + }, + ResourceNamePod: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNamePod, + }, + Kind: KindNamePod, + }, + Namespaced: true, + }, + ResourceNameReplicaSet: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: appsv1.GroupName, + Version: appsv1.SchemeGroupVersion.Version, + Resource: ResourceNameReplicaSet, + }, + Kind: KindNameReplicaSet, + }, + Namespaced: true, + }, + ResourceNameSecret: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNameSecret, + }, + Kind: KindNameSecret, + }, + Namespaced: true, + }, + ResourceNameService: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNameService, + }, + Kind: KindNameService, + }, + Namespaced: true, + }, + ResourceNameStatefulSet: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: appsv1.GroupName, + Version: appsv1.SchemeGroupVersion.Version, + Resource: ResourceNameStatefulSet, + }, + Kind: KindNameStatefulSet, + }, + Namespaced: true, + }, + ResourceNameEndpoint: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNameEndpoint, + }, + Kind: KindNameEndpoint, + }, + Namespaced: true, + }, + ResourceNameStorageClass: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: storagev1.GroupName, + Version: storagev1.SchemeGroupVersion.Version, + Resource: ResourceNameStorageClass, + }, + Kind: KindNameStorageClass, + }, + Namespaced: false, + }, + + ResourceNameRole: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: rbacv1.GroupName, + Version: rbacv1.SchemeGroupVersion.Version, + Resource: ResourceNameRole, + }, + Kind: KindNameRole, + }, + Namespaced: true, + }, + ResourceNameRoleBinding: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: rbacv1.GroupName, + Version: rbacv1.SchemeGroupVersion.Version, + Resource: ResourceNameRoleBinding, + }, + Kind: KindNameRoleBinding, + }, + Namespaced: true, + }, + ResourceNameClusterRole: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: rbacv1.GroupName, + Version: rbacv1.SchemeGroupVersion.Version, + Resource: ResourceNameClusterRole, + }, + Kind: KindNameClusterRole, + }, + Namespaced: false, + }, + ResourceNameClusterRoleBinding: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: rbacv1.GroupName, + Version: rbacv1.SchemeGroupVersion.Version, + Resource: ResourceNameClusterRoleBinding, + }, + Kind: KindNameClusterRoleBinding, + }, + Namespaced: false, + }, + ResourceNameServiceAccount: { + GroupVersionResourceKind: GroupVersionResourceKind{ + GroupVersionResource: schema.GroupVersionResource{ + Group: corev1.GroupName, + Version: corev1.SchemeGroupVersion.Version, + Resource: ResourceNameServiceAccount, + }, + Kind: KindNameServiceAccount, + }, + Namespaced: true, + }, +} + +func GetResourceMap(client *kubernetes.Clientset) (result map[string]ResourceMap, err error) { + + //var serverVersion *version2.Info + //if serverVersion, err = client.ServerVersion(); err != nil { + // return + //} + // + //majorVersion := serverVersion.Major + //minorVersion, _ := strconv.Atoi(serverVersion.Minor) + // + //if majorVersion != "1" { + // err = fmt.Errorf("unsupport k8s version") + // return + //} + // + //if minorVersion >= 15 { + // result = KindToStableResourceMap + // return + //} + // + //result = KindToResourceMap + //return + + result = KindToStableResourceMap + return +} diff --git a/src/backend/client/cache.go b/src/backend/client/cache.go index 65c0d7b97..6a774e2aa 100644 --- a/src/backend/client/cache.go +++ b/src/backend/client/cache.go @@ -1,13 +1,12 @@ package client import ( + "github.com/Qihoo360/wayne/src/backend/client/api" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes" - "k8s.io/client-go/listers/apps/v1beta1" + appsv1 "k8s.io/client-go/listers/apps/v1" autoscalingv1 "k8s.io/client-go/listers/autoscaling/v1" "k8s.io/client-go/listers/core/v1" - - "github.com/Qihoo360/wayne/src/backend/client/api" ) type CacheFactory struct { @@ -23,8 +22,13 @@ func buildCacheController(client *kubernetes.Clientset) (*CacheFactory, error) { stop := make(chan struct{}) sharedInformerFactory := informers.NewSharedInformerFactory(client, defaultResyncPeriod) + rangeMap, err := api.GetResourceMap(client) + if err != nil { + return nil, err + } // Start all Resources defined in KindToResourceMap - for _, value := range api.KindToResourceMap { + for _, value := range rangeMap { + genericInformer, err := sharedInformerFactory.ForResource(value.GroupVersionResourceKind.GroupVersionResource) if err != nil { return nil, err @@ -48,8 +52,8 @@ func (c *CacheFactory) EventLister() v1.EventLister { return c.sharedInformerFactory.Core().V1().Events().Lister() } -func (c *CacheFactory) DeploymentLister() v1beta1.DeploymentLister { - return c.sharedInformerFactory.Apps().V1beta1().Deployments().Lister() +func (c *CacheFactory) DeploymentLister() appsv1.DeploymentLister { + return c.sharedInformerFactory.Apps().V1().Deployments().Lister() } func (c *CacheFactory) NodeLister() v1.NodeLister { diff --git a/src/backend/client/client.go b/src/backend/client/client.go index cd0bdd42f..fb88f3b6c 100644 --- a/src/backend/client/client.go +++ b/src/backend/client/client.go @@ -139,8 +139,8 @@ func clusterChanged(clusters []models.Cluster) bool { return true } - if manager.Cluster.KubeConfig != manager.Cluster.KubeConfig { - logs.Info("cluster kubeConfig (%d) changed to (%d).", manager.Cluster.KubeConfig, cluster.KubeConfig) + if manager.Cluster.KubeConfig != cluster.KubeConfig { + logs.Info("cluster kubeConfig (%s) changed to (%s).", manager.Cluster.KubeConfig, cluster.KubeConfig) return true } } @@ -169,7 +169,7 @@ func Manager(cluster string) (*ClusterManager, error) { // 如果不存在,则重新获取一次集群信息 if !exist { BuildApiserverClient() - _, exist = clusterManagerSets.Load(cluster) + managerInterface, exist = clusterManagerSets.Load(cluster) if !exist { return nil, ErrNotExist } diff --git a/src/backend/client/clientfactory.go b/src/backend/client/clientfactory.go index d21f66669..e470795b2 100644 --- a/src/backend/client/clientfactory.go +++ b/src/backend/client/clientfactory.go @@ -18,6 +18,9 @@ func (h *resourceHandler) getClientByGroupVersion(groupVersion schema.GroupVersi case corev1.GroupName: return h.client.CoreV1().RESTClient() case appsv1beta1.GroupName: + if groupVersion.Version == "v1"{ + return h.client.AppsV1().RESTClient() + } return h.client.AppsV1beta1().RESTClient() case autoscalingv1.GroupName: return h.client.AutoscalingV1().RESTClient() diff --git a/src/backend/client/handler.go b/src/backend/client/handler.go index 162a51893..0e9e1a54d 100644 --- a/src/backend/client/handler.go +++ b/src/backend/client/handler.go @@ -4,7 +4,6 @@ package client import ( "fmt" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" @@ -36,10 +35,11 @@ func NewResourceHandler(kubeClient *kubernetes.Clientset, cacheFactory *CacheFac } func (h *resourceHandler) Create(kind string, namespace string, object *runtime.Unknown) (*runtime.Unknown, error) { - resource, ok := api.KindToResourceMap[kind] - if !ok { - return nil, fmt.Errorf("Resource kind (%s) not support yet . ", kind) + resource, err := h.getResource(kind) + if err != nil { + return nil, err } + kubeClient := h.getClientByGroupVersion(resource.GroupVersionResourceKind.GroupVersionResource) req := kubeClient.Post(). Resource(kind). @@ -49,15 +49,16 @@ func (h *resourceHandler) Create(kind string, namespace string, object *runtime. req.Namespace(namespace) } var result runtime.Unknown - err := req.Do().Into(&result) + err = req.Do().Into(&result) return &result, err } func (h *resourceHandler) Update(kind string, namespace string, name string, object *runtime.Unknown) (*runtime.Unknown, error) { - resource, ok := api.KindToResourceMap[kind] - if !ok { - return nil, fmt.Errorf("Resource kind (%s) not support yet . ", kind) + + resource, err := h.getResource(kind) + if err != nil { + return nil, err } kubeClient := h.getClientByGroupVersion(resource.GroupVersionResourceKind.GroupVersionResource) @@ -71,16 +72,18 @@ func (h *resourceHandler) Update(kind string, namespace string, name string, obj } var result runtime.Unknown - err := req.Do().Into(&result) + err = req.Do().Into(&result) return &result, err } func (h *resourceHandler) Delete(kind string, namespace string, name string, options *meta_v1.DeleteOptions) error { - resource, ok := api.KindToResourceMap[kind] - if !ok { - return fmt.Errorf("Resource kind (%s) not support yet . ", kind) + + resource, err := h.getResource(kind) + if err != nil { + return err } + kubeClient := h.getClientByGroupVersion(resource.GroupVersionResourceKind.GroupVersionResource) req := kubeClient.Delete(). Resource(kind). @@ -95,10 +98,11 @@ func (h *resourceHandler) Delete(kind string, namespace string, name string, opt // Get object from cache func (h *resourceHandler) Get(kind string, namespace string, name string) (runtime.Object, error) { - resource, ok := api.KindToResourceMap[kind] - if !ok { - return nil, fmt.Errorf("Resource kind (%s) not support yet . ", kind) + resource, err := h.getResource(kind) + if err != nil { + return nil, err } + genericInformer, err := h.cacheFactory.sharedInformerFactory.ForResource(resource.GroupVersionResourceKind.GroupVersionResource) if err != nil { return nil, err @@ -127,10 +131,12 @@ func (h *resourceHandler) Get(kind string, namespace string, name string) (runti // Get object from cache func (h *resourceHandler) List(kind string, namespace string, labelSelector string) ([]runtime.Object, error) { - resource, ok := api.KindToResourceMap[kind] - if !ok { - return nil, fmt.Errorf("Resource kind (%s) not support yet . ", kind) + + resource, err := h.getResource(kind) + if err != nil { + return nil, err } + genericInformer, err := h.cacheFactory.sharedInformerFactory.ForResource(resource.GroupVersionResourceKind.GroupVersionResource) if err != nil { return nil, err @@ -165,3 +171,16 @@ func (h *resourceHandler) List(kind string, namespace string, labelSelector stri return objs, nil } + +func (h *resourceHandler) getResource(kind string) (resource api.ResourceMap, err error) { + resourceMap, err := api.GetResourceMap(h.client) + if err != nil { + return + } + resource, ok := resourceMap[kind] + if !ok { + err = fmt.Errorf("Resource kind (%s) not support yet . ", kind) + return + } + return +} diff --git a/src/backend/cmd/apiserver/apiserver.go b/src/backend/cmd/apiserver/apiserver.go index 0b561a176..f085ea835 100644 --- a/src/backend/cmd/apiserver/apiserver.go +++ b/src/backend/cmd/apiserver/apiserver.go @@ -1,11 +1,13 @@ package apiserver +//noinspection ALL import ( "github.com/astaxie/beego" "github.com/spf13/cobra" "github.com/Qihoo360/wayne/src/backend/initial" _ "github.com/Qihoo360/wayne/src/backend/routers" + "github.com/Qihoo360/wayne/src/backend/workers/webhook" ) var ( @@ -37,6 +39,11 @@ func run(cmd *cobra.Command, args []string) { if busEnable { initial.InitBus() } + // register webhook event handler + hookenable := beego.AppConfig.DefaultBool("EnableWebhook", false) + if hookenable { + webhook.RegisterHookHandler() + } // 初始化RsaPrivateKey initial.InitRsaKey() diff --git a/src/backend/cmd/root.go b/src/backend/cmd/root.go index 77069c9fa..7ddd00b4c 100644 --- a/src/backend/cmd/root.go +++ b/src/backend/cmd/root.go @@ -1,33 +1,39 @@ package cmd import ( - "fmt" + "github.com/astaxie/beego" - "github.com/spf13/cobra" - - "github.com/Qihoo360/wayne/src/backend/cmd/apiserver" - "github.com/Qihoo360/wayne/src/backend/cmd/worker" + "github.com/Qihoo360/wayne/src/backend/initial" + _ "github.com/Qihoo360/wayne/src/backend/routers" + "github.com/Qihoo360/wayne/src/backend/workers/webhook" ) -var Version string +func Run() { -var RootCmd = &cobra.Command{ - Use: "wayne", -} + // MySQL + initial.InitDb() -var VersionCmd = &cobra.Command{ - Use: "version", - Aliases: []string{"v"}, - Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("wayne %s \n", Version) - }, -} + // Swagger API + if beego.BConfig.RunMode == "dev" { + beego.BConfig.WebConfig.DirectoryIndex = true + beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" + } + + // K8S Client + initial.InitClient() + + // 初始化RsaPrivateKey + initial.InitRsaKey() + + busEnable := beego.AppConfig.DefaultBool("BusEnable", false) + if busEnable { + initial.InitBus() + } -func init() { - cobra.EnableCommandSorting = false + webhook.RegisterHookHandler() - RootCmd.AddCommand(apiserver.APIServerCmd) - RootCmd.AddCommand(worker.WorkerCmd) + // init kube labels + initial.InitKubeLabel() - RootCmd.AddCommand(VersionCmd) + beego.Run() } diff --git a/src/backend/cmd/worker/worker.go b/src/backend/cmd/worker/worker.go index 8473fade8..a4231d1a0 100644 --- a/src/backend/cmd/worker/worker.go +++ b/src/backend/cmd/worker/worker.go @@ -1,5 +1,6 @@ package worker +//noinspection ALL import ( "errors" "fmt" @@ -137,5 +138,4 @@ func recoverableWorker(workerSet map[*workers.Worker]workers.Worker, workerType }() workerSet[&worker] = worker - } diff --git a/src/backend/conf/app.conf b/src/backend/conf/app.conf index 3e186aae1..63d0cae85 100644 --- a/src/backend/conf/app.conf +++ b/src/backend/conf/app.conf @@ -25,8 +25,8 @@ PodAnnotationControllerKindLabelKey = wayne.cloud/controller-kind ## mysql DBName = "wayne" DBTns = "tcp(127.0.0.1:3306)" -DBUser = "root" -DBPasswd = "root" +DBUser = "wayne" +DBPasswd = "wayne" DBLoc = "Asia%2FShanghai" DBConnTTL = 30 @@ -50,8 +50,8 @@ EnableRobin = false EnableApiKeys = true # Bus -BusEnable = false -BusRabbitMQURL = "amqp://guest:guest@127.0.0.1:5672" +BusEnable = true +# BusRabbitMQURL = "amqp://guest:guest@127.0.0.1:5672" # Webhook EnableWebhook = true @@ -66,7 +66,7 @@ AppUrl = "" # oauth2 [auth.oauth2] -redirect_url = "https://www.wayne.cloud" +redirect_url = "http://www.360yun.org" enabled = false client_id = client client_secret = secret diff --git a/src/backend/conf/dev.conf b/src/backend/conf/dev.conf new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/src/backend/conf/dev.conf @@ -0,0 +1 @@ + diff --git a/src/backend/controllers/apikey/apikey.go b/src/backend/controllers/apikey/apikey.go index ce1a5b1c0..e72cd28db 100644 --- a/src/backend/controllers/apikey/apikey.go +++ b/src/backend/controllers/apikey/apikey.go @@ -80,14 +80,14 @@ func (c *ApiKeyController) List() { param.Relate = "Group" total, err := models.GetTotal(new(models.APIKey), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } err = models.GetAll(new(models.APIKey), &apiKeys, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/auditlog/auditlog.go b/src/backend/controllers/auditlog/auditlog.go index 1bb6720bc..885035a56 100644 --- a/src/backend/controllers/auditlog/auditlog.go +++ b/src/backend/controllers/auditlog/auditlog.go @@ -56,14 +56,14 @@ func (c *AuditLogController) List() { total, err := models.GetTotal(new(models.AuditLog), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } err = models.GetAll(new(models.AuditLog), &auditLogs, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/auth/authenticator.go b/src/backend/controllers/auth/authenticator.go index ac5442798..539ef2c13 100644 --- a/src/backend/controllers/auth/authenticator.go +++ b/src/backend/controllers/auth/authenticator.go @@ -1,6 +1,7 @@ package auth import ( + "encoding/json" "fmt" "net/http" "strings" @@ -48,6 +49,12 @@ func (c *AuthController) URLMapping() { c.Mapping("CurrentUser", c.CurrentUser) } +// login post data +type LoginData struct { + UserName string `json:"username"` + Password string `json:"password"` +} + type LoginResult struct { Token string `json:"token"` } @@ -56,12 +63,18 @@ type LoginResult struct { // name when login type is oauth2 used for oauth2 type // @router /login/:type/?:name [get,post] func (c *AuthController) Login() { - username := c.Input().Get("username") - password := c.Input().Get("password") + var postData LoginData + err := json.Unmarshal(c.Ctx.Input.RequestBody, &postData) + if err != nil { + logs.Error("get body error. %v", err) + c.Ctx.Output.SetStatus(http.StatusBadRequest) + c.Ctx.Output.Body(hack.Slice("Invalid param")) + return + } authType := c.Ctx.Input.Param(":type") oauth2Name := c.Ctx.Input.Param(":name") next := c.Ctx.Input.Query("next") - if authType == "" || username == "admin" { + if authType == "" || postData.UserName == "admin" { authType = models.AuthTypeDB } logs.Info("auth type is", authType) @@ -73,8 +86,8 @@ func (c *AuthController) Login() { return } authModel := models.AuthModel{ - Username: username, - Password: password, + Username: postData.UserName, + Password: postData.Password, } if authType == models.AuthTypeOAuth2 { diff --git a/src/backend/controllers/auth/db/db.go b/src/backend/controllers/auth/db/db.go index f24efbe82..64a5870f2 100644 --- a/src/backend/controllers/auth/db/db.go +++ b/src/backend/controllers/auth/db/db.go @@ -2,10 +2,10 @@ package db import ( "fmt" - "github.com/Qihoo360/wayne/src/backend/controllers/auth" "github.com/Qihoo360/wayne/src/backend/models" "github.com/Qihoo360/wayne/src/backend/util/encode" + "github.com/astaxie/beego/orm" ) type DBAuth struct{} @@ -24,6 +24,9 @@ func (*DBAuth) Authenticate(m models.AuthModel) (*models.User, error) { password := m.Password user, err := models.UserModel.GetUserByName(username) if err != nil { + if err == orm.ErrNoRows { + return nil, fmt.Errorf("username or password error!") + } return nil, err } diff --git a/src/backend/controllers/cluster/cluster.go b/src/backend/controllers/cluster/cluster.go index 532874526..ca7fea855 100644 --- a/src/backend/controllers/cluster/cluster.go +++ b/src/backend/controllers/cluster/cluster.go @@ -145,13 +145,13 @@ func (c *ClusterController) List() { total, err := models.GetTotal(new(models.Cluster), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } err = models.GetAll(new(models.Cluster), &clusters, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/common/deployment.go b/src/backend/controllers/common/deployment.go index 43aec2468..f81ea9427 100644 --- a/src/backend/controllers/common/deployment.go +++ b/src/backend/controllers/common/deployment.go @@ -3,14 +3,14 @@ package common import ( "strings" - "k8s.io/api/apps/v1beta1" + appsv1 "k8s.io/api/apps/v1" "k8s.io/api/core/v1" "github.com/Qihoo360/wayne/src/backend/models" "github.com/Qihoo360/wayne/src/backend/util" ) -func DeploymentPreDeploy(kubeDeployment *v1beta1.Deployment, deploy *models.Deployment, +func DeploymentPreDeploy(kubeDeployment *appsv1.Deployment, deploy *models.Deployment, cluster *models.Cluster, namespace *models.Namespace) { // step 1 add envs for i := 0; i < len(kubeDeployment.Spec.Template.Spec.Containers); i++ { diff --git a/src/backend/controllers/configmap/configmap.go b/src/backend/controllers/configmap/configmap.go index 856562d80..0bf3f5a0a 100644 --- a/src/backend/controllers/configmap/configmap.go +++ b/src/backend/controllers/configmap/configmap.go @@ -92,14 +92,14 @@ func (c *ConfigMapController) List() { total, err := models.GetTotal(new(models.ConfigMap), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } err = models.GetAll(new(models.ConfigMap), &configMap, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/cronjob/cronjob.go b/src/backend/controllers/cronjob/cronjob.go index ce3adf367..79b3b77ae 100644 --- a/src/backend/controllers/cronjob/cronjob.go +++ b/src/backend/controllers/cronjob/cronjob.go @@ -92,14 +92,14 @@ func (c *CronjobController) List() { total, err := models.GetTotal(new(models.Cronjob), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } err = models.GetAll(new(models.Cronjob), &cronjob, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/customlink/custom_link.go b/src/backend/controllers/customlink/custom_link.go new file mode 100644 index 000000000..33f60b797 --- /dev/null +++ b/src/backend/controllers/customlink/custom_link.go @@ -0,0 +1,197 @@ +package customlink + +import ( + "encoding/json" + + "github.com/Qihoo360/wayne/src/backend/controllers/base" + "github.com/Qihoo360/wayne/src/backend/models" + "github.com/Qihoo360/wayne/src/backend/util/logs" +) + +type CustomLinkController struct { + base.APIController +} + +func (c *CustomLinkController) URLMapping() { + c.Mapping("List", c.List) + c.Mapping("Create", c.Create) + c.Mapping("Get", c.Get) + c.Mapping("Update", c.Update) + c.Mapping("Delete", c.Delete) + c.Mapping("UpdateStatus", c.ChangeStatus) +} + +func (c *CustomLinkController) Prepare() { + // Check administration + c.APIController.Prepare() + // Check permission + perAction := "" + _, method := c.GetControllerAndAction() + switch method { + case "Get", "List": + perAction = models.PermissionRead + case "Create": + perAction = models.PermissionCreate + case "Update": + perAction = models.PermissionUpdate + case "Delete": + perAction = models.PermissionDelete + } + if perAction != "" && !c.User.Admin { + c.AbortForbidden("operation need admin permission.") + } +} + +// @Title GetCustomLink +// @Description get outer custom link type +// @Param pageNo query int false "the page current no" +// @Param pageSize query int false "the page size" +// @Param deleted query bool false "is deleted" +// @Success 200 {object} CustomLink success +// @router / [get] +func (c *CustomLinkController) List() { + param := c.BuildQueryParam() + var customLinks []models.CustomLink + + total, err := models.GetTotal(new(models.CustomLink), param) + if err != nil { + logs.Error("get total count by param (%v) error. %v", param, err) + c.HandleError(err) + return + } + err = models.GetAll(new(models.CustomLink), &customLinks, param) + if err != nil { + logs.Error("list by param (%v) error. %v", param, err) + c.HandleError(err) + return + } + var linkTypes []*models.LinkType + deleted := false + linkTypes, err = models.LinkTypeModel.GetAll(deleted) + if err != nil { + logs.Error("link types get failed") + c.HandleError(err) + return + } + nameMap := make(map[string]string) + for _, link := range linkTypes { + nameMap[link.TypeName] = link.Displayname + } + + for i, ck := range customLinks { + customLinks[i].Displayname = nameMap[ck.LinkType] + } + + c.Success(param.NewPage(total, customLinks)) +} + +// @Title Create +// @Description create CustomLink +// @Param body body models.CustomLink true "The CustomLink content" +// @Success 200 return id success +// @Failure 403 body is empty +// @router / [post] +func (c *CustomLinkController) Create() { + var customLink models.CustomLink + err := json.Unmarshal(c.Ctx.Input.RequestBody, &customLink) + if err != nil { + logs.Error("get body error. %v", err) + c.AbortBadRequestFormat("customLink") + } + + id, err := models.CustomLinkModel.Add(&customLink) + + if err != nil { + logs.Error("create error.%v", err.Error()) + c.HandleError(err) + return + } + c.Success(id) +} + +// @Title Update +// @Description update the object +// @Param id path int true "The id you want to update" +// @Param body body models.CustomLink true "The body" +// @Success 200 id success +// @Failure 403 :id is empty +// @router /:id([0-9]+) [put] +func (c *CustomLinkController) Update() { + id := c.GetIDFromURL() + + var customLink models.CustomLink + err := json.Unmarshal(c.Ctx.Input.RequestBody, &customLink) + if err != nil { + logs.Error("Invalid param body.%v", err) + c.AbortBadRequestFormat("customLink") + } + customLink.Id = int64(id) + err = models.CustomLinkModel.UpdateById(&customLink) + if err != nil { + logs.Error("update error.%v", err) + c.HandleError(err) + return + } + c.Success(customLink) +} + +// @Title Get +// @Description find Object by objectid +// @Param id path int true "the id you want to get" +// @Success 200 {object} models.CustomLink success +// @Failure 403 :id is empty +// @router /:id([0-9]+) [get] +func (c *CustomLinkController) Get() { + id := c.GetIDFromURL() + + customLink, err := models.CustomLinkModel.GetById(int64(id)) + if err != nil { + logs.Error("get error.%v", err) + c.HandleError(err) + return + } + linktype, err := models.LinkTypeModel.GetByType(customLink.LinkType) + if err != nil { + logs.Error("get link type error.%v", err) + c.HandleError(err) + return + } + customLink.Displayname = linktype.Displayname + c.Success(customLink) +} + +// @Title Delete +// @Description delete the customLink +// @Param id path int true "The id you want to delete" +// @Param logical query bool false "is logical deletion,default true" +// @Success 200 {string} delete success! +// @router /:id [delete] +func (c *CustomLinkController) Delete() { + id := c.GetIDFromURL() + logical := c.GetLogicalFromQuery() + + err := models.CustomLinkModel.DeleteById(int64(id), logical) + if err != nil { + logs.Error("delete %d error.%v", id, err) + c.HandleError(err) + return + } + c.Success(nil) +} + +// @Title ChangeStatus +// @Description change the customLink status +// @Param id path int true "The id you want to change status" +// @Success 200 {string} update success! +// @router /:id/status [put] +func (c *CustomLinkController) ChangeStatus() { + id := c.GetIDFromURL() + + err := models.CustomLinkModel.ChangeStatusById(int64(id)) + if err != nil { + logs.Error("change status %d failed.%v", id, err) + c.HandleError(err) + return + } + c.Success(nil) +} diff --git a/src/backend/controllers/customlink/link_type.go b/src/backend/controllers/customlink/link_type.go new file mode 100644 index 000000000..88a759513 --- /dev/null +++ b/src/backend/controllers/customlink/link_type.go @@ -0,0 +1,156 @@ +package customlink + +import ( + "encoding/json" + + "github.com/Qihoo360/wayne/src/backend/controllers/base" + "github.com/Qihoo360/wayne/src/backend/models" + "github.com/Qihoo360/wayne/src/backend/util/logs" +) + +type LinkTypeController struct { + base.APIController +} + +func (c *LinkTypeController) URLMapping() { + c.Mapping("List", c.List) + c.Mapping("Create", c.Create) + c.Mapping("Get", c.Get) + c.Mapping("Update", c.Update) + c.Mapping("Delete", c.Delete) +} + +func (c *LinkTypeController) Prepare() { + // Check administration + c.APIController.Prepare() + // Check permission + perAction := "" + _, method := c.GetControllerAndAction() + switch method { + case "Get", "List": + perAction = models.PermissionRead + case "Create": + perAction = models.PermissionCreate + case "Update": + perAction = models.PermissionUpdate + case "Delete": + perAction = models.PermissionDelete + } + if perAction != "" && !c.User.Admin { + c.AbortForbidden("operation need admin permission.") + } +} + +// @Title GetLinkType +// @Description get outer custom link type +// @Param pageNo query int false "the page current no" +// @Param pageSize query int false "the page size" +// @Param deleted query bool false "is deleted" +// @Success 200 {object} LinkType success +// @router / [get] +func (c *LinkTypeController) List() { + param := c.BuildQueryParam() + var linkTypes []models.LinkType + + total, err := models.GetTotal(new(models.LinkType), param) + if err != nil { + logs.Error("get total count by param (%v) error. %v", param, err) + c.HandleError(err) + return + } + err = models.GetAll(new(models.LinkType), &linkTypes, param) + if err != nil { + logs.Error("list by param (%v) error. %v", param, err) + c.HandleError(err) + return + } + + c.Success(param.NewPage(total, linkTypes)) +} + +// @Title Create +// @Description create LinkType +// @Param body body models.LinkType true "The LinkType content" +// @Success 200 return id success +// @Failure 403 body is empty +// @router / [post] +func (c *LinkTypeController) Create() { + var linkType models.LinkType + err := json.Unmarshal(c.Ctx.Input.RequestBody, &linkType) + if err != nil { + logs.Error("get body error. %v", err) + c.AbortBadRequestFormat("linkType") + } + + id, err := models.LinkTypeModel.Add(&linkType) + + if err != nil { + logs.Error("create error.%v", err.Error()) + c.HandleError(err) + return + } + c.Success(id) +} + +// @Title Update +// @Description update the object +// @Param id path int true "The id you want to update" +// @Param body body models.LinkType true "The body" +// @Success 200 id success +// @Failure 403 :id is empty +// @router /:id([0-9]+) [put] +func (c *LinkTypeController) Update() { + id := c.GetIDFromURL() + + var linkType models.LinkType + err := json.Unmarshal(c.Ctx.Input.RequestBody, &linkType) + if err != nil { + logs.Error("Invalid param body.%v", err) + c.AbortBadRequestFormat("linkType") + } + linkType.Id = int64(id) + err = models.LinkTypeModel.UpdateById(&linkType) + if err != nil { + logs.Error("update error.%v", err) + c.HandleError(err) + return + } + c.Success(linkType) +} + +// @Title Get +// @Description find Object by objectid +// @Param id path int true "the id you want to get" +// @Success 200 {object} models.LinkType success +// @Failure 403 :id is empty +// @router /:id([0-9]+) [get] +func (c *LinkTypeController) Get() { + id := c.GetIDFromURL() + + linkType, err := models.LinkTypeModel.GetById(int64(id)) + if err != nil { + logs.Error("get error.%v", err) + c.HandleError(err) + return + } + c.Success(linkType) +} + +// @Title Delete +// @Description delete the linkType +// @Param id path int true "The id you want to delete" +// @Param logical query bool false "is logical deletion,default true" +// @Success 200 {string} delete success! +// @router /:id [delete] +func (c *LinkTypeController) Delete() { + id := c.GetIDFromURL() + logical := c.GetLogicalFromQuery() + + err := models.LinkTypeModel.DeleteById(int64(id), logical) + if err != nil { + logs.Error("delete %d error.%v", id, err) + c.HandleError(err) + return + } + c.Success(nil) +} diff --git a/src/backend/controllers/customlink/showlink.go b/src/backend/controllers/customlink/showlink.go new file mode 100644 index 000000000..4c861efa4 --- /dev/null +++ b/src/backend/controllers/customlink/showlink.go @@ -0,0 +1,103 @@ +package customlink + +import ( + "strings" + + "github.com/Qihoo360/wayne/src/backend/controllers/base" + "github.com/Qihoo360/wayne/src/backend/models" + "github.com/Qihoo360/wayne/src/backend/util/logs" +) + +type ShowLinkController struct { + base.APIController +} + +type Link struct { + Displayname string + Url string +} + +func (c *ShowLinkController) URLMapping() { + c.Mapping("list", c.List) +} + +// @Title GetCustomLink +// @Description Get all custom links belonging to this namespace +// @Param namespaceId query int false "namespace id" +// @Success 200 {object} allLinks success +// @router /links [get] +func (c *ShowLinkController) List() { + // ns := c.Input().Get("namespace") + namespaceId := c.NamespaceId + ns, err := models.NamespaceModel.GetById(int64(namespaceId)) + if err != nil { + logs.Error("get namespace by id (%d) error.%v", namespaceId, err) + c.HandleError(err) + return + } + nsName := ns.Name + deleted := false + defaultLinks, err := models.LinkTypeModel.GetAll(deleted) + if err != nil { + logs.Error("get default links error.%v", err) + c.HandleError(err) + return + } + defaults := make(map[string]*Link) + nameMap := make(map[string]string) + for _, linkType := range defaultLinks { + dlink := &Link{ + Displayname: linkType.Displayname, + Url: linkType.DefaultUrl, + } + defaults[linkType.TypeName] = dlink + nameMap[linkType.TypeName] = linkType.Displayname + } + + // var customLinks []*models.CustomLink + customLinks, err := models.CustomLinkModel.GetByNsName(nsName, deleted) + if err != nil { + logs.Error("get custom links error.%v", err) + c.HandleError(err) + return + } + for i, ck := range customLinks { + customLinks[i].Displayname = nameMap[ck.LinkType] + } + customs := make(map[string]*Link) + for _, clink := range customLinks { + var curl string + if bool(clink.Status) { + if bool(clink.AddParam) { + curl = processUrl(clink) + } else { + curl = clink.Url + } + link := &Link{ + Displayname: clink.Displayname, + Url: curl, + } + customs[clink.LinkType] = link + } + } + var allLinks []*Link + for name, link := range customs { + defaults[name] = link + } + + for _, link := range defaults { + allLinks = append(allLinks, link) + } + + c.Success(allLinks) +} + +func processUrl(clink *models.CustomLink) (url string) { + url = clink.Url + urlList := strings.Split(clink.Params, ",") + for _, param := range urlList { + url += "&" + param + "=" + "{{" + param + "}}" + } + + return url +} diff --git a/src/backend/controllers/daemonset/daemonset.go b/src/backend/controllers/daemonset/daemonset.go index 41f53f5ca..2ae044083 100644 --- a/src/backend/controllers/daemonset/daemonset.go +++ b/src/backend/controllers/daemonset/daemonset.go @@ -89,14 +89,14 @@ func (c *DaemonSetController) List() { total, err := models.GetTotal(new(models.DaemonSet), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } err = models.GetAll(new(models.DaemonSet), &daemonSets, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/hpa/hpa.go b/src/backend/controllers/hpa/hpa.go index 19b030eb9..e4a37d30c 100644 --- a/src/backend/controllers/hpa/hpa.go +++ b/src/backend/controllers/hpa/hpa.go @@ -81,14 +81,14 @@ func (c *HPAController) List() { total, err := models.GetTotal(new(models.HPA), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } err = models.GetAll(new(models.HPA), &hpas, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/index.go b/src/backend/controllers/index.go deleted file mode 100644 index 3c67df11f..000000000 --- a/src/backend/controllers/index.go +++ /dev/null @@ -1,17 +0,0 @@ -package controllers - -import ( - "github.com/astaxie/beego" -) - -// IndexController handles request to / -type IndexController struct { - beego.Controller -} - -// Get renders the index page -func (c *IndexController) Get() { - c.TplExt = "html" - c.TplName = "index.html" - c.Render() -} diff --git a/src/backend/controllers/ingress/ingress_tpl.go b/src/backend/controllers/ingress/ingress_tpl.go index 96e2e7cdf..5b08dd78b 100644 --- a/src/backend/controllers/ingress/ingress_tpl.go +++ b/src/backend/controllers/ingress/ingress_tpl.go @@ -3,7 +3,7 @@ package ingress import ( "encoding/json" "fmt" - + kapiv1beta1 "k8s.io/api/extensions/v1beta1" "github.com/Qihoo360/wayne/src/backend/controllers/base" diff --git a/src/backend/controllers/kubernetes/daemonset/daemonset.go b/src/backend/controllers/kubernetes/daemonset/daemonset.go index a0d227513..0438e8b54 100644 --- a/src/backend/controllers/kubernetes/daemonset/daemonset.go +++ b/src/backend/controllers/kubernetes/daemonset/daemonset.go @@ -3,7 +3,7 @@ package daemonset import ( "encoding/json" - "k8s.io/api/extensions/v1beta1" + appsv1 "k8s.io/api/apps/v1" "github.com/Qihoo360/wayne/src/backend/controllers/base" "github.com/Qihoo360/wayne/src/backend/models" @@ -44,7 +44,7 @@ func (c *KubeDaemonSetController) Create() { daemonSetId := c.GetIntParamFromURL(":daemonSetId") tplId := c.GetIntParamFromURL(":tplId") - var kubeDaemonSet v1beta1.DaemonSet + var kubeDaemonSet appsv1.DaemonSet err := json.Unmarshal(c.Ctx.Input.RequestBody, &kubeDaemonSet) if err != nil { c.AbortBadRequestFormat("KubeDaemonSet") diff --git a/src/backend/controllers/kubernetes/daemonset/pre_deploy.go b/src/backend/controllers/kubernetes/daemonset/pre_deploy.go index b69584f75..c6ef8200a 100644 --- a/src/backend/controllers/kubernetes/daemonset/pre_deploy.go +++ b/src/backend/controllers/kubernetes/daemonset/pre_deploy.go @@ -3,14 +3,14 @@ package daemonset import ( "strings" + appsv1 "k8s.io/api/apps/v1" "k8s.io/api/core/v1" - "k8s.io/api/extensions/v1beta1" "github.com/Qihoo360/wayne/src/backend/models" "github.com/Qihoo360/wayne/src/backend/util" ) -func daemonSetPreDeploy(kubeDaemonSet *v1beta1.DaemonSet, daemonSet *models.DaemonSet, +func daemonSetPreDeploy(kubeDaemonSet *appsv1.DaemonSet, daemonSet *models.DaemonSet, cluster *models.Cluster, namespace *models.Namespace) { // step 1 add envs for i := 0; i < len(kubeDaemonSet.Spec.Template.Spec.Containers); i++ { diff --git a/src/backend/controllers/kubernetes/deployment/deployment b/src/backend/controllers/kubernetes/deployment/deployment new file mode 100644 index 000000000..92a2d2fce Binary files /dev/null and b/src/backend/controllers/kubernetes/deployment/deployment differ diff --git a/src/backend/controllers/kubernetes/deployment/deployment.go b/src/backend/controllers/kubernetes/deployment/deployment.go index f03a68041..256438f84 100644 --- a/src/backend/controllers/kubernetes/deployment/deployment.go +++ b/src/backend/controllers/kubernetes/deployment/deployment.go @@ -3,9 +3,9 @@ package deployment import ( "encoding/json" "fmt" + v1 "k8s.io/api/apps/v1" "net/http" - "k8s.io/api/apps/v1beta1" "k8s.io/apimachinery/pkg/labels" "github.com/Qihoo360/wayne/src/backend/client" @@ -25,6 +25,10 @@ type KubeDeploymentController struct { base.APIController } +type Replica struct { + Num int32 +} + func (c *KubeDeploymentController) URLMapping() { c.Mapping("List", c.List) c.Mapping("Get", c.Get) @@ -81,7 +85,7 @@ func (c *KubeDeploymentController) Create() { deploymentId := c.GetIntParamFromURL(":deploymentId") tplId := c.GetIntParamFromURL(":tplId") - var kubeDeployment v1beta1.Deployment + var kubeDeployment v1.Deployment err := json.Unmarshal(c.Ctx.Input.RequestBody, &kubeDeployment) if err != nil { logs.Error("Invalid deployment tpl %v", string(c.Ctx.Input.RequestBody)) @@ -173,7 +177,7 @@ func (c *KubeDeploymentController) Create() { c.Success("ok") } -func checkResourceAvailable(ns *models.Namespace, cli client.ResourceHandler, kubeDeployment *v1beta1.Deployment, cluster string) error { +func checkResourceAvailable(ns *models.Namespace, cli client.ResourceHandler, kubeDeployment *v1.Deployment, cluster string) error { // this namespace can't use current cluster. clusterMetas, ok := ns.MetaDataObj.ClusterMetas[cluster] if !ok { @@ -264,3 +268,33 @@ func (c *KubeDeploymentController) Delete() { }) c.Success("ok!") } + +// @Title UpdateScale +// @Description Update the number of replica for target deployment +// @Param cluster path string true "the target k8s cluster" +// @Param namespace path string true "the namespace that the target deployment belong to" +// @Param deployment path string true "the target deployment name" +// @Param replica body int32 true "number of replica" +// @Success 200 {string} ok success +// @router /:deployment/namespaces/:namespace/clusters/:cluster/updatescale [post] +func (c *KubeDeploymentController) UpdateScale() { + cluster := c.Ctx.Input.Param(":cluster") + namespace := c.Ctx.Input.Param(":namespace") + name := c.Ctx.Input.Param(":deployment") + cli := c.Client(cluster) + + var replica Replica + err := json.Unmarshal(c.Ctx.Input.RequestBody, &replica) + if err != nil { + logs.Error("Invalid param body.%v", err) + c.AbortBadRequestFormat("replica num") + } + err=deployment.UpdateScale(cli,name,namespace,replica.Num) + if err != nil { + logs.Info("Update scale for deployment (%s) by cluster (%s) error.%v", name, cluster, err) + c.HandleError(err) + return + } + + c.Success("ok!") +} diff --git a/src/backend/controllers/kubernetes/job/job.go b/src/backend/controllers/kubernetes/job/job.go index 9c813dbd6..c4e36e0e0 100644 --- a/src/backend/controllers/kubernetes/job/job.go +++ b/src/backend/controllers/kubernetes/job/job.go @@ -1,7 +1,9 @@ package job import ( + "github.com/Qihoo360/wayne/src/backend/client/api" batchv1 "k8s.io/api/batch/v1" + metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/Qihoo360/wayne/src/backend/controllers/base" "github.com/Qihoo360/wayne/src/backend/models" @@ -20,6 +22,7 @@ type ClusterJob struct { func (c *KubeJobController) URLMapping() { c.Mapping("ListJobByCronJob", c.ListJobByCronJob) + c.Mapping("DeleteJob", c.DeleteJob) } func (c *KubeJobController) Prepare() { @@ -34,6 +37,32 @@ func (c *KubeJobController) Prepare() { c.PreparePermission(methodActionMap, method, models.PermissionTypeKubeJob) } +// @Title DeleteJob +// @Description Delete job by name +// @Param name query string true "the job name." +// @Param cluster query string true "the cluster name." +// @Param namespace path string true "the namespace name." +// @Success 200 {object} models.Deployment success +// @router /namespaces/:namespace/clusters/:cluster [delete] +func (c *KubeJobController) DeleteJob() { + + cluster := c.Ctx.Input.Param(":cluster") + namespace := c.Ctx.Input.Param(":namespace") + jobName := c.Input().Get("name") + + kubeClient := c.KubeClient(cluster) + + deletePolicy := metaV1.DeletePropagationBackground + err := kubeClient.Delete(api.ResourceNameJob, namespace, jobName, &metaV1.DeleteOptions{PropagationPolicy: &deletePolicy}) + if err != nil { + logs.Error("Delete kubernetes resource (%s:%s:%s) error. %v", api.ResourceNameJob, namespace, jobName, err) + c.HandleError(err) + return + } + c.Success("ok!") + +} + // @Title ListJobByCronJob // @Description find jobs by cronjob // @Param pageNo query int false "the page current no" diff --git a/src/backend/controllers/kubernetes/node/node.go b/src/backend/controllers/kubernetes/node/node.go index dedb6bd28..32d6e4ac4 100644 --- a/src/backend/controllers/kubernetes/node/node.go +++ b/src/backend/controllers/kubernetes/node/node.go @@ -4,7 +4,7 @@ import ( "encoding/json" "sync" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" utilerrors "k8s.io/apimachinery/pkg/util/errors" "github.com/Qihoo360/wayne/src/backend/client" @@ -18,6 +18,15 @@ type KubeNodeController struct { base.APIController } +type Label struct { + Key string `json:"key,omitempty"` + Value string `json:"value,omitempty"` +} + +type LabelSet struct { + Labels []Label +} + func (c *KubeNodeController) URLMapping() { c.Mapping("NodeStatistics", c.NodeStatistics) c.Mapping("List", c.List) @@ -173,3 +182,249 @@ func (c *KubeNodeController) Delete() { } c.Success("ok!") } + +// @Title list node labels +// @Description get labels of a node +// @router /:name/clusters/:cluster/labels [get] +func (c *KubeNodeController) GetLabels() { + cluster := c.Ctx.Input.Param(":cluster") + name := c.Ctx.Input.Param(":name") + cli := c.Client(cluster) + + result, err := node.GetNodeByName(cli, name) + if err != nil { + logs.Error("get node by cluster (%s) name(%s) error.%v", cluster, name, err) + c.HandleError(err) + return + } + labels := result.ObjectMeta.Labels + + c.Success(labels) +} + +// @Title add label +// @Description add a label for a node +// @router /:name/clusters/:cluster/label [post] +func (c *KubeNodeController) AddLabel() { + cluster := c.Ctx.Input.Param(":cluster") + name := c.Ctx.Input.Param(":name") + cli := c.Client(cluster) + var label Label + err := json.Unmarshal(c.Ctx.Input.RequestBody, &label) + if err != nil { + c.AbortBadRequestFormat("label") + } + + nodeInfo, err := node.GetNodeByName(cli, name) + if err != nil { + logs.Error("get node by cluster (%s) name(%s) error.%v", cluster, name, err) + c.HandleError(err) + return + } + if len(nodeInfo.ObjectMeta.Labels) == 0 { + nodeInfo.ObjectMeta.Labels = map[string]string{label.Key: label.Value} + } else { + nodeInfo.ObjectMeta.Labels[label.Key] = label.Value + } + + newNode, err := node.UpdateNode(cli, nodeInfo) + if err != nil { + logs.Error("update node (%v) by cluster (%s) error.%v", *nodeInfo, cluster, err) + c.HandleError(err) + return + } + c.Success(newNode) +} + +// @Title delete label +// @Description delete a label of the node +// @router /:name/clusters/:cluster/label [delete] +func (c *KubeNodeController) DeleteLabel() { + cluster := c.Ctx.Input.Param(":cluster") + name := c.Ctx.Input.Param(":name") + cli := c.Client(cluster) + var label Label + err := json.Unmarshal(c.Ctx.Input.RequestBody, &label) + if err != nil { + logs.Error("unmarshal err:(%s)", err) + c.AbortBadRequestFormat("label") + } + + nodeInfo, err := node.GetNodeByName(cli, name) + if err != nil { + logs.Error("get node by cluster (%s) name(%s) error.%v", cluster, name, err) + c.HandleError(err) + return + } + if _, ok := nodeInfo.ObjectMeta.Labels[label.Key]; ok { + delete(nodeInfo.ObjectMeta.Labels, label.Key) + } else { + logs.Error("delete failed use the label key:(%s)", label.Key) + return + } + + newNode, err := node.UpdateNode(cli, nodeInfo) + if err != nil { + logs.Error("update node (%v) by cluster (%s) error.%v", *nodeInfo, cluster, err) + c.HandleError(err) + return + } + c.Success(newNode) +} + +// @Title add labels +// @Description Add labels in bulk for node +// @router /:name/clusters/:cluster/labels [post] +func (c *KubeNodeController) AddLabels() { + cluster := c.Ctx.Input.Param(":cluster") + name := c.Ctx.Input.Param(":name") + cli := c.Client(cluster) + var labels LabelSet + err := json.Unmarshal(c.Ctx.Input.RequestBody, &labels) + if err != nil { + logs.Error("unmarshal err:(%s)", err) + c.AbortBadRequestFormat("label") + } + + result, err := node.GetNodeByName(cli, name) + if err != nil { + logs.Error("get node by cluster (%s) name(%s) error.%v", cluster, name, err) + c.HandleError(err) + return + } + if len(result.ObjectMeta.Labels) == 0 { + result.ObjectMeta.Labels = make(map[string]string) + } + + for _, label := range labels.Labels { + result.ObjectMeta.Labels[label.Key] = label.Value + } + + newNode, err := node.UpdateNode(cli, result) + if err != nil { + logs.Error("update node (%v) by cluster (%s) error.%v", *result, cluster, err) + c.HandleError(err) + return + } + c.Success(newNode) +} + +// @Title delete labels +// @Description Delete node labels in batches +// @router /:name/clusters/:cluster/labels [delete] +func (c *KubeNodeController) DeleteLabels() { + cluster := c.Ctx.Input.Param(":cluster") + name := c.Ctx.Input.Param(":name") + cli := c.Client(cluster) + var labels LabelSet + err := json.Unmarshal(c.Ctx.Input.RequestBody, &labels) + if err != nil { + logs.Error("unmarshal err:(%s)", err) + c.AbortBadRequestFormat("label") + } + + result, err := node.GetNodeByName(cli, name) + if err != nil { + logs.Error("get node by cluster (%s) name(%s) error.%v", cluster, name, err) + c.HandleError(err) + return + } + for _, label := range labels.Labels { + if _, ok := result.ObjectMeta.Labels[label.Key]; ok { + delete(result.ObjectMeta.Labels, label.Key) + } else { + logs.Error("delete failed use the label key:(%s)", label.Key) + return + } + } + + newNode, err := node.UpdateNode(cli, result) + if err != nil { + logs.Error("update node (%v) by cluster (%s) error.%v", *result, cluster, err) + c.HandleError(err) + return + } + c.Success(newNode) +} + +// @Title add taint +// @Description set taint for a node +// @router /:name/clusters/:cluster/taint [post] +func (c *KubeNodeController) SetTaint() { + cluster := c.Ctx.Input.Param(":cluster") + name := c.Ctx.Input.Param(":name") + cli := c.Client(cluster) + + var taint v1.Taint + err := json.Unmarshal(c.Ctx.Input.RequestBody, &taint) + if err != nil { + logs.Error("unmarshal err:(%s)", err) + c.AbortBadRequestFormat("taint") + } + + result, err := node.GetNodeByName(cli, name) + if err != nil { + logs.Error("get node by cluster (%s) name(%s) error.%v", cluster, name, err) + c.HandleError(err) + return + } + taints := result.Spec.Taints + if len(taints) == 0 { + taints = []v1.Taint{} + taints = append(taints, taint) + } else { + taints = append(taints, taint) + } + result.Spec.Taints = taints + + newNode, err := node.UpdateNode(cli, result) + if err != nil { + logs.Error("update node (%v) by cluster (%s) error.%v", *result, cluster, err) + c.HandleError(err) + return + } + c.Success(newNode) +} + +// @Title delete taint +// @Description delete a taint from node +// @router /:name/clusters/:cluster/taint [delete] +func (c *KubeNodeController) DeleteTaint() { + cluster := c.Ctx.Input.Param(":cluster") + name := c.Ctx.Input.Param(":name") + cli := c.Client(cluster) + + var taint v1.Taint + err := json.Unmarshal(c.Ctx.Input.RequestBody, &taint) + if err != nil { + logs.Error("unmarshal err:(%s)", err) + c.AbortBadRequestFormat("taint") + } + + result, err := node.GetNodeByName(cli, name) + if err != nil { + logs.Error("get node by cluster (%s) name(%s) error.%v", cluster, name, err) + c.HandleError(err) + return + } + taints := result.Spec.Taints + if len(taints) == 0 { + logs.Error("delete failed,the taint does not exist ") + return + } + newTaints := []v1.Taint{} + for _, t := range taints { + if t.Key != taint.Key || t.Value != taint.Value || t.Effect != taint.Effect { + newTaints = append(newTaints, t) + } + } + result.Spec.Taints = newTaints + + newNode, err := node.UpdateNode(cli, result) + if err != nil { + logs.Error("update node (%v) by cluster (%s) error.%v", *result, cluster, err) + c.HandleError(err) + return + } + c.Success(newNode) +} diff --git a/src/backend/controllers/kubernetes/pod/terminal.go b/src/backend/controllers/kubernetes/pod/terminal.go index 248527c6a..db223c0ac 100644 --- a/src/backend/controllers/kubernetes/pod/terminal.go +++ b/src/backend/controllers/kubernetes/pod/terminal.go @@ -16,7 +16,7 @@ import ( "github.com/Qihoo360/wayne/src/backend/util/hack" "github.com/Qihoo360/wayne/src/backend/util/logs" "github.com/astaxie/beego" - "gopkg.in/igm/sockjs-go.v2/sockjs" + "github.com/360yun/sockjs-go/sockjs" "k8s.io/api/core/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/scheme" diff --git a/src/backend/controllers/kubernetes/service/service.go b/src/backend/controllers/kubernetes/service/service.go index 82239eb28..b7f47e1f4 100644 --- a/src/backend/controllers/kubernetes/service/service.go +++ b/src/backend/controllers/kubernetes/service/service.go @@ -3,7 +3,7 @@ package service import ( "encoding/json" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "github.com/Qihoo360/wayne/src/backend/controllers/base" "github.com/Qihoo360/wayne/src/backend/controllers/common" diff --git a/src/backend/controllers/kubernetes/statefulset/pre_deploy.go b/src/backend/controllers/kubernetes/statefulset/pre_deploy.go index 9d59e1adf..6e97ae479 100644 --- a/src/backend/controllers/kubernetes/statefulset/pre_deploy.go +++ b/src/backend/controllers/kubernetes/statefulset/pre_deploy.go @@ -3,14 +3,14 @@ package statefulset import ( "strings" - "k8s.io/api/apps/v1beta1" + appsv1 "k8s.io/api/apps/v1" "k8s.io/api/core/v1" "github.com/Qihoo360/wayne/src/backend/models" "github.com/Qihoo360/wayne/src/backend/util" ) -func statefulsetPreDeploy(kubeStatefulSet *v1beta1.StatefulSet, statefulSet *models.Statefulset, +func statefulsetPreDeploy(kubeStatefulSet *appsv1.StatefulSet, statefulSet *models.Statefulset, cluster *models.Cluster, namespace *models.Namespace) { // step 1 add envs for i := 0; i < len(kubeStatefulSet.Spec.Template.Spec.Containers); i++ { diff --git a/src/backend/controllers/kubernetes/statefulset/statefulset.go b/src/backend/controllers/kubernetes/statefulset/statefulset.go index 3619f7d80..99823cda6 100644 --- a/src/backend/controllers/kubernetes/statefulset/statefulset.go +++ b/src/backend/controllers/kubernetes/statefulset/statefulset.go @@ -5,7 +5,7 @@ import ( "fmt" "net/http" - "k8s.io/api/apps/v1beta1" + appsv1 "k8s.io/api/apps/v1" "k8s.io/apimachinery/pkg/labels" "github.com/Qihoo360/wayne/src/backend/client" @@ -49,7 +49,7 @@ func (c *KubeStatefulsetController) Create() { statefulsetId := c.GetIntParamFromURL(":statefulsetId") tplId := c.GetIntParamFromURL(":tplId") - var kubeStatefulset v1beta1.StatefulSet + var kubeStatefulset appsv1.StatefulSet err := json.Unmarshal(c.Ctx.Input.RequestBody, &kubeStatefulset) if err != nil { logs.Error("Invalid statefulset tpl %v", string(c.Ctx.Input.RequestBody)) @@ -141,7 +141,7 @@ func addDeployStatus(statefulsetId int64, tplId int64, cluster string) error { return nil } -func checkResourceAvailable(ns *models.Namespace, cli client.ResourceHandler, kubeStatefulset *v1beta1.StatefulSet, cluster string) error { +func checkResourceAvailable(ns *models.Namespace, cli client.ResourceHandler, kubeStatefulset *appsv1.StatefulSet, cluster string) error { // this namespace can't use current cluster. clusterMetas, ok := ns.MetaDataObj.ClusterMetas[cluster] if !ok { diff --git a/src/backend/controllers/namespace/namespace.go b/src/backend/controllers/namespace/namespace.go index db799657b..045d64e53 100644 --- a/src/backend/controllers/namespace/namespace.go +++ b/src/backend/controllers/namespace/namespace.go @@ -20,6 +20,7 @@ func (c *NamespaceController) URLMapping() { c.Mapping("Create", c.Create) c.Mapping("Get", c.Get) c.Mapping("Update", c.Update) + c.Mapping("Migrate", c.Migrate) c.Mapping("Delete", c.Delete) c.Mapping("InitDefault", c.InitDefault) c.Mapping("GetHistory", c.History) @@ -36,7 +37,7 @@ func (c *NamespaceController) Prepare() { perAction = models.PermissionRead case "Create": perAction = models.PermissionCreate - case "Update": + case "Update", "Migrate": perAction = models.PermissionUpdate case "Delete": perAction = models.PermissionDelete @@ -258,3 +259,45 @@ func (c *NamespaceController) Statistics() { c.Success(result) } + +// @Title Migrate +// @Description migrate the namespace from a to b +// @Param body body models.NamespaceMigration true "The namespace migration content" +// @router /migration [post] +func (c *NamespaceController) Migrate() { + var nm models.NamespaceMigration + err := json.Unmarshal(c.Ctx.Input.RequestBody, &nm) + if err != nil { + logs.Error("Invalid param body.%v", err) + c.AbortBadRequestFormat("NamespaceMigration") + } + + _, err = models.NamespaceModel.GetById(nm.SourceId) + if err != nil { + logs.Error("Invalid param NamespaceMigration.sourceId:%v", nm.SourceId) + c.AbortBadRequestFormat("NamespaceMigration.sourceId") + } + + _, err = models.NamespaceModel.GetById(nm.TargetId) + if err != nil { + logs.Error("Invalid param NamespaceMigration.targetId:%v", nm.TargetId) + c.AbortBadRequestFormat("NamespaceMigration.targetId") + } + + + // TODO 使用事务而不是分开更新 + err = models.AppModel.UpdateByNamespaceId(nm.SourceId, nm.TargetId) + if err != nil{ + logs.Error("Error when updates app nsId. %v", err) + c.AbortInternalServerError("update app db error!") + } + + + err = models.NamespaceUserModel.UpdateByNamespaceId(nm.SourceId, nm.TargetId) + if err != nil{ + logs.Error("Error when updates nsUser nsId. %v", err) + c.AbortInternalServerError("update nsUser db error!") + } + + c.Success("successfully migrated namespace") +} diff --git a/src/backend/controllers/notification/notification.go b/src/backend/controllers/notification/notification.go index 2d6a5f692..8bc32b40e 100644 --- a/src/backend/controllers/notification/notification.go +++ b/src/backend/controllers/notification/notification.go @@ -42,7 +42,7 @@ func (c *NotificationController) List() { notifications := []models.Notification{} total, err := models.GetTotal(new(models.Notification), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } @@ -50,7 +50,7 @@ func (c *NotificationController) List() { param.Relate = "all" err = models.GetAll(new(models.Notification), ¬ifications, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/openapi/app.go b/src/backend/controllers/openapi/app.go new file mode 100644 index 000000000..9bf973796 --- /dev/null +++ b/src/backend/controllers/openapi/app.go @@ -0,0 +1,64 @@ +package openapi + +import ( + "net/http" + + "github.com/Qihoo360/wayne/src/backend/models" + "github.com/Qihoo360/wayne/src/backend/models/response" +) + +// resource info include deploys. +// swagger:response deploys +type appResponse struct { + // in: body + // Required: true + Body struct { + response.ResponseBase + Deploys []models.Deployment `json:"deploys"` + } +} + +// swagger:route GET /get_app_deploys resource ResourceInfoParam +// +// 通过给定的app,查询deploy信息 +// +// 因为查询范围是对所有的服务进行的,因此需要绑定 全局 apikey 使用。 +// +// Responses: +// 200: respresourceinfo +// 400: responseState +// 500: responseState +// @router /get_app_deploys [get] +func (c *OpenAPIController) ListAppDeploys() { + if !c.CheckoutRoutePermission(ListAppDeploys) { + return + } + appName := c.GetString("app") + if appName == "" { + c.AddErrorAndResponse("Invalid app parameter!", http.StatusBadRequest) + return + } + + app, err := models.AppModel.GetByNameAndDeleted(appName, false) + if err != nil { + c.AddErrorAndResponse("No namespace exists!", http.StatusBadRequest) + return + } + + deploys, err := models.DeploymentModel.GetNames(map[string]interface{}{ + "App__Id": app.Id, + "Deleted": false, + }) + if err != nil { + c.AddErrorAndResponse("Failed to get deploy list by filter!", http.StatusBadRequest) + return + } + + resp := new(appResponse) + for _, deploy := range deploys { + resp.Body.Deploys = append(resp.Body.Deploys, deploy) + } + + resp.Body.Code = http.StatusOK + c.HandleResponse(resp.Body) +} diff --git a/src/backend/controllers/openapi/deployment.go b/src/backend/controllers/openapi/deployment.go index b67b021f3..a8f338bd0 100644 --- a/src/backend/controllers/openapi/deployment.go +++ b/src/backend/controllers/openapi/deployment.go @@ -8,8 +8,8 @@ import ( "strings" "time" - "k8s.io/api/apps/v1beta1" - "k8s.io/api/core/v1" + appsv1 "k8s.io/api/apps/v1" + v1 "k8s.io/api/core/v1" "github.com/Qihoo360/wayne/src/backend/client" "github.com/Qihoo360/wayne/src/backend/controllers/common" @@ -24,7 +24,7 @@ import ( type DeploymentInfo struct { Deployment *models.Deployment DeploymentTemplete *models.DeploymentTemplate - DeploymentObject *v1beta1.Deployment + DeploymentObject *appsv1.Deployment Cluster *models.Cluster Namespace *models.Namespace } @@ -118,6 +118,48 @@ type respdeploymentstatus struct { } } +// swagger:parameters DeploymentStatusParam +type deploymentDetailParam struct { + // in: query + // Required: true + Namespace string `json:"namespace"` + // Required: true + App string `json:"app"` + // Required: true + Deployment string `json:"deployment"` +} + +// swagger:response deploymentDetail +type deploymentDetailResponse struct { + // in: body + // Required: true + Body struct { + response.ResponseBase + Deployment *models.Deployment `json:"deployment"` + } +} + +// swagger:parameters LatestDeploymentTplParam +type latestDeploymentTplParam struct { + // in: query + // Required: true + Namespace string `json:"namespace"` + // Required: true + App string `json:"app"` + // Required: true + Deployment string `json:"deployment"` +} + +// swagger:response deploymentDetail +type latestDeploymentTplResponse struct { + // in: body + // Required: true + Body struct { + response.ResponseBase + DeploymentTpl *models.DeploymentTemplate `json:"deployment_tpl"` + } +} + // swagger:route GET /get_deployment_status deploy DeploymentStatusParam // // 该接口用于返回特定部署的状态信息 @@ -361,7 +403,7 @@ func (c *OpenAPIController) UpgradeDeployment() { // 拼凑 images 升级 param.imageMap = make(map[string]string) imageArr := strings.Split(param.Images, ",") - param.imageMap = make(map[string]string) + // param.imageMap = make(map[string]string) for _, image := range imageArr { arr := strings.Split(image, "=") if len(arr) == 2 && arr[1] != "" { @@ -371,7 +413,7 @@ func (c *OpenAPIController) UpgradeDeployment() { // 拼凑环境变量 param.envMap = make(map[string]string) envArr := strings.Split(param.Environments, ",") - param.envMap = make(map[string]string) + // param.envMap = make(map[string]string) for _, env := range envArr { arr := strings.Split(env, "=") if len(arr) == 2 && arr[1] != "" { @@ -442,7 +484,9 @@ func (c *OpenAPIController) UpgradeDeployment() { continue } deployInfo.DeploymentTemplete.Template = string(newTpl) - + //更新deploymentTpl中的CreateTime和UpdateTime,数据库中不会自动更新 + deployInfo.DeploymentTemplete.CreateTime = time.Now() + deployInfo.DeploymentTemplete.UpdateTime = time.Now() newtmplId, err := models.DeploymentTplModel.Add(deployInfo.DeploymentTemplete) if err != nil { logs.Error("Failed to save new deployment template", err) @@ -611,7 +655,7 @@ func getOnlineDeploymenetInfo(deployment, namespace, cluster string, templateId } } - deployObj := v1beta1.Deployment{} + deployObj := appsv1.Deployment{} err = json.Unmarshal(hack.Slice(deployInfo.DeploymentTemplete.Template), &deployObj) if err != nil { return nil, fmt.Errorf("Failed to parse deployment template: %s", err.Error()) @@ -679,7 +723,7 @@ func publishDeployment(deployInfo *DeploymentInfo, username string) error { } } -func updateDeployment(deployObj *v1beta1.Deployment, cluster string, name string, msg string, resourceId int64) error { +func updateDeployment(deployObj *appsv1.Deployment, cluster string, name string, msg string, resourceId int64) error { status, err := models.PublishStatusModel.GetByCluster(models.PublishTypeDeployment, resourceId, cluster) if err != nil { return fmt.Errorf("Failed to get publish status by cluster: %s", err.Error()) @@ -712,3 +756,95 @@ func updateDeployment(deployObj *v1beta1.Deployment, cluster string, name string return nil } } + +// swagger:route GET /get_deployment_detail deploy DeploymentDetailParam +// +// 通过给定的namespace、app name、deployment name来查询某个具体deployment的信息 +// +// 因为查询范围是对所有的服务进行的,因此需要绑定 全局 apikey 使用。 +// +// Responses: +// 200: respresourceinfo +// 400: responseState +// 500: responseState +// @router /get_deployment_detail [get] +func (c *OpenAPIController) GetDeploymentDetail() { + if !c.CheckoutRoutePermission(GetDeploymentDetailAction) { + return + } + if c.APIKey.Type != models.GlobalAPIKey { + c.AddErrorAndResponse("You can only use global APIKey in this action!", http.StatusUnauthorized) + return + } + ns := c.GetString("namespace") + app := c.GetString("app") + deployment := c.GetString("deployment") + if len(ns) == 0 { + c.AddErrorAndResponse("Invalid namespace parameter!", http.StatusBadRequest) + return + } + if len(app) == 0 { + c.AddErrorAndResponse("Invalid app parameter!", http.StatusBadRequest) + return + } + if len(deployment) == 0 { + c.AddErrorAndResponse("Invalid deployment parameter!", http.StatusBadRequest) + return + } + params := deploymentDetailParam{ns, app, deployment} + dep, err := models.DeploymentModel.GetUniqueDepByName(params.Namespace, params.App, params.Deployment) + if err != nil { + c.AddErrorAndResponse("Failed to get deployment by name!", http.StatusBadRequest) + return + } + resp := new(deploymentDetailResponse) + resp.Body.Deployment = dep + resp.Body.Code = http.StatusOK + c.HandleResponse(resp.Body) +} + +// swagger:route GET /get_latest_deployment_tpl deploy LatestDeploymentTplParam +// +// 通过给定的namespace、app name、deployment name来查询某个具体deployment的最新部署模板信息 +// +// 因为查询范围是对所有的服务进行的,因此需要绑定 全局 apikey 使用。 +// +// Responses: +// 200: respresourceinfo +// 400: responseState +// 500: responseState +// @router /get_latest_deployment_tpl [get] +func (c *OpenAPIController) GetLatestDeploymentTpl() { + if !c.CheckoutRoutePermission(GetLatestDeploymentTplAction) { + return + } + if c.APIKey.Type != models.GlobalAPIKey { + c.AddErrorAndResponse("You can only use global APIKey in this action!", http.StatusUnauthorized) + return + } + ns := c.GetString("namespace") + app := c.GetString("app") + deployment := c.GetString("deployment") + if len(ns) == 0 { + c.AddErrorAndResponse("Invalid namespace parameter!", http.StatusBadRequest) + return + } + if len(app) == 0 { + c.AddErrorAndResponse("Invalid app parameter!", http.StatusBadRequest) + return + } + if len(deployment) == 0 { + c.AddErrorAndResponse("Invalid deployment parameter!", http.StatusBadRequest) + return + } + params := latestDeploymentTplParam{ns, app, deployment} + dep, err := models.DeploymentTplModel.GetLatestDeptplByName(params.Namespace, params.App, params.Deployment) + if err != nil { + c.AddErrorAndResponse("Failed to get deployment by name!", http.StatusBadRequest) + return + } + resp := new(latestDeploymentTplResponse) + resp.Body.DeploymentTpl = dep + resp.Body.Code = http.StatusOK + c.HandleResponse(resp.Body) +} diff --git a/src/backend/controllers/openapi/namespace.go b/src/backend/controllers/openapi/namespace.go new file mode 100644 index 000000000..585595a36 --- /dev/null +++ b/src/backend/controllers/openapi/namespace.go @@ -0,0 +1,139 @@ +package openapi + +import ( + "net/http" + + "github.com/Qihoo360/wayne/src/backend/models" + "github.com/Qihoo360/wayne/src/backend/models/response" +) + +// resource info include app info and users info. +// swagger:response respresourceinfos +type respResourceInfos struct { + // in: body + // Required: true + Body struct { + response.ResponseBase + Resources []resourceInfo `json:"resources"` + } +} + +// swagger:route GET /list_namespace_users resource ResourceInfoParam +// +// 通过给定的namespace,获取 用户信息 +// +// 因为查询范围是指定namespace,因此需要绑定 namespace apikey 使用。 +// +// Responses: +// 200: respresourceinfo +// 400: responseState +// 500: responseState +// @router /list_namespace_users [get] +func (c *OpenAPIController) ListNamespaceUsers() { + if !c.CheckoutRoutePermission(ListNamespaceUsers) { + return + } + ns := c.GetString("namespace") + if ns == "" { + c.AddErrorAndResponse("Invalid namespace parameter!", http.StatusBadRequest) + return + } + + namespace, err := models.NamespaceModel.GetByNameAndDeleted(ns, false) + if err != nil { + c.AddErrorAndResponse("No namespace exists!", http.StatusBadRequest) + return + } + users, err := models.NamespaceUserModel.GetUserListByNamespaceId(namespace.Id) + if err != nil { + c.AddErrorAndResponse("Failed to get user list by namespace id!", http.StatusBadRequest) + return + } + + resp := new(respResourceInfo) + resp.Body.Resource.Users = make(map[string]*response.User) + + for _, usr := range users { + if resp.Body.Resource.Users[usr.User.Name] == nil { + u := response.User{ + Name: usr.User.Name, + Email: usr.User.Email, + Display: usr.User.Display, + Roles: []string{usr.Group.Name}, + } + resp.Body.Resource.Users[usr.User.Name] = &u + } else { + resp.Body.Resource.Users[usr.User.Name].Roles = append(resp.Body.Resource.Users[usr.User.Name].Roles, usr.Group.Name) + } + } + resp.Body.Code = http.StatusOK + c.HandleResponse(resp.Body) +} + +// swagger:route GET /list_namespace_apps resource ResourceInfoParam +// +// 通过给定的namespace,获取 app 信息和用户信息 +// +// 因为查询范围是指定namespace,因此需要绑定 namespace apikey 使用。 +// +// Responses: +// 200: respresourceinfo +// 400: responseState +// 500: responseState +// @router /list_namespace_apps [get] +func (c *OpenAPIController) ListNamespaceApps() { + if !c.CheckoutRoutePermission(ListNamespaceApps) { + return + } + ns := c.GetString("namespace") + if ns == "" { + c.AddErrorAndResponse("Invalid namespace parameter!", http.StatusBadRequest) + return + } + + namespace, err := models.NamespaceModel.GetByNameAndDeleted(ns, false) + if err != nil { + c.AddErrorAndResponse("No namespace exists!", http.StatusBadRequest) + return + } + apps, err := models.AppModel.GetAppsByNamespaceId(namespace.Id, false) + if err != nil { + c.AddErrorAndResponse("Failed to get apps by namespace id!", http.StatusBadRequest) + return + } + + resp := new(respResourceInfos) + for _, app := range apps { + users := make(map[string]*response.User) + + appUsers, err := models.AppUserModel.GetUserListByAppId(app.Id) + if err != nil { + c.AddErrorAndResponse("Failed to get appUser list by app id!", http.StatusBadRequest) + return + } + + for _, usr := range appUsers { + if users[usr.User.Name] == nil { + u := response.User{ + Name: usr.User.Name, + Email: usr.User.Email, + Display: usr.User.Display, + Roles: []string{usr.Group.Name}, + } + users[usr.User.Name] = &u + } else { + users[usr.User.Name].Roles = append(users[usr.User.Name].Roles, usr.Group.Name) + } + } + + resp.Body.Resources = append(resp.Body.Resources, resourceInfo{ + App: response.App{ + app.Id, app.Name, app.Namespace.Name, app.Description, app.User, app.Deleted, app.CreateTime, app.UpdateTime, + }, + Users: users, + }) + } + + resp.Body.Code = http.StatusOK + c.HandleResponse(resp.Body) +} diff --git a/src/backend/controllers/openapi/openapi.go b/src/backend/controllers/openapi/openapi.go index 48bea64c8..9f3fd661c 100644 --- a/src/backend/controllers/openapi/openapi.go +++ b/src/backend/controllers/openapi/openapi.go @@ -44,15 +44,22 @@ import ( ) const ( - GetPodInfoAction = "GET_POD_INFO" - GetPodInfoFromIPAction = "GET_POD_INFO_FROM_IP" - GetResourceInfoAction = "GET_RESOURCE_INFO" - GetDeploymentStatusAction = "GET_DEPLOYMENT_STATUS" - UpgradeDeploymentAction = "UPGRADE_DEPLOYMENT" - ScaleDeploymentAction = "SCALE_DEPLOYMENT" - RestartDeploymentAction = "RESTART_DEPLOYMENT" - GetPodListAction = "GET_POD_LIST" - PermissionPrefix = "OPENAPI_" + GetPodInfoAction = "GET_POD_INFO" + GetPodInfoFromIPAction = "GET_POD_INFO_FROM_IP" + GetResourceInfoAction = "GET_RESOURCE_INFO" + GetDeploymentStatusAction = "GET_DEPLOYMENT_STATUS" + UpgradeDeploymentAction = "UPGRADE_DEPLOYMENT" + ScaleDeploymentAction = "SCALE_DEPLOYMENT" + RestartDeploymentAction = "RESTART_DEPLOYMENT" + GetDeploymentDetailAction = "GET_DEPLOYMENT_DETAIL" + GetLatestDeploymentTplAction = "GET_LATEST_DEPLOYMENT_TPL" + GetPodListAction = "GET_POD_LIST" + + ListNamespaceUsers = "LIST_NAMESPACE_USERS" + ListNamespaceApps = "LIST_NAMESPACE_APPS" + ListAppDeploys = "List_APP_DEPLOYS" + + PermissionPrefix = "OPENAPI_" ) type OpenAPIController struct { diff --git a/src/backend/controllers/permission/app_user.go b/src/backend/controllers/permission/app_user.go index 3e14c8b9f..5b5d8414f 100644 --- a/src/backend/controllers/permission/app_user.go +++ b/src/backend/controllers/permission/app_user.go @@ -72,7 +72,7 @@ func (c *AppUserController) List() { total, err := models.GetTotal(new(models.AppUser), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } @@ -80,7 +80,7 @@ func (c *AppUserController) List() { err = models.GetAll(new(models.AppUser), &appUsers, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/permission/group.go b/src/backend/controllers/permission/group.go index ec4fd548b..0ac7edea7 100644 --- a/src/backend/controllers/permission/group.go +++ b/src/backend/controllers/permission/group.go @@ -59,7 +59,7 @@ func (c *GroupController) List() { total, err := models.GetTotal(new(models.Group), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } @@ -67,7 +67,7 @@ func (c *GroupController) List() { groups := []models.Group{} err = models.GetAll(new(models.Group), &groups, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/permission/namespace_user.go b/src/backend/controllers/permission/namespace_user.go index 969165ba2..0a20b05fc 100644 --- a/src/backend/controllers/permission/namespace_user.go +++ b/src/backend/controllers/permission/namespace_user.go @@ -71,7 +71,7 @@ func (c *NamespaceUserController) List() { total, err := models.GetTotal(new(models.NamespaceUser), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } @@ -79,7 +79,7 @@ func (c *NamespaceUserController) List() { err = models.GetAll(new(models.NamespaceUser), &namespaceUsers, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/permission/permission.go b/src/backend/controllers/permission/permission.go index 6736f2795..941a165b8 100644 --- a/src/backend/controllers/permission/permission.go +++ b/src/backend/controllers/permission/permission.go @@ -54,7 +54,7 @@ func (c *PermissionController) List() { total, err := models.GetTotal(new(models.Permission), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } @@ -62,7 +62,7 @@ func (c *PermissionController) List() { permissions := []models.Permission{} err = models.GetAll(new(models.Permission), &permissions, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/permission/user.go b/src/backend/controllers/permission/user.go index c459f3b16..110808984 100644 --- a/src/backend/controllers/permission/user.go +++ b/src/backend/controllers/permission/user.go @@ -78,7 +78,7 @@ func (c *UserController) List() { } total, err := models.GetTotal(new(models.User), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } @@ -86,7 +86,7 @@ func (c *UserController) List() { users := []models.User{} err = models.GetAll(new(models.User), &users, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/pvc/pvc.go b/src/backend/controllers/pvc/pvc.go index 2e2ef29f8..00b2a6c80 100644 --- a/src/backend/controllers/pvc/pvc.go +++ b/src/backend/controllers/pvc/pvc.go @@ -92,14 +92,14 @@ func (c *PersistentVolumeClaimController) List() { total, err := models.GetTotal(new(models.PersistentVolumeClaim), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } err = models.GetAll(new(models.PersistentVolumeClaim), &pvc, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/controllers/secret/secret.go b/src/backend/controllers/secret/secret.go index 6c9469b4f..7166668a4 100644 --- a/src/backend/controllers/secret/secret.go +++ b/src/backend/controllers/secret/secret.go @@ -92,14 +92,14 @@ func (c *SecretController) List() { total, err := models.GetTotal(new(models.Secret), param) if err != nil { - logs.Error("get total count by param (%s) error. %v", param, err) + logs.Error("get total count by param (%v) error. %v", param, err) c.HandleError(err) return } err = models.GetAll(new(models.Secret), &secret, param) if err != nil { - logs.Error("list by param (%s) error. %v", param, err) + logs.Error("list by param (%v) error. %v", param, err) c.HandleError(err) return } diff --git a/src/backend/database/generatedata/main.go b/src/backend/database/generatedata/main.go index 2cfcac626..61f31c2e9 100644 --- a/src/backend/database/generatedata/main.go +++ b/src/backend/database/generatedata/main.go @@ -11,5 +11,4 @@ func main() { for _, data := range initial.InitialData { fmt.Println(data) } - } diff --git a/src/backend/database/migrations/v1.1/ddl.sql b/src/backend/database/migrations/v1.1/ddl.sql index 1eb6db07e..0ce8924f3 100644 --- a/src/backend/database/migrations/v1.1/ddl.sql +++ b/src/backend/database/migrations/v1.1/ddl.sql @@ -29,7 +29,6 @@ CREATE TABLE `ingress_template` `deleted` bool NOT NULL DEFAULT false ) ENGINE=InnoDB; - -- Indexes ALTER TABLE `ingress` @@ -37,4 +36,4 @@ ALTER TABLE `ingress` ALTER TABLE `ingress` ADD INDEX `ingress_order_id`(`order_id`); ALTER TABLE `ingress_template` - ADD INDEX `ingress_template_ingress_id`(`ingress_id`); \ No newline at end of file + ADD INDEX `ingress_template_ingress_id`(`ingress_id`); diff --git a/src/backend/database/migrations/v1.3/ddl.sql b/src/backend/database/migrations/v1.3/ddl.sql index cc820fc98..7141e54e4 100644 --- a/src/backend/database/migrations/v1.3/ddl.sql +++ b/src/backend/database/migrations/v1.3/ddl.sql @@ -24,4 +24,4 @@ CREATE TABLE IF NOT EXISTS `hpa_template` ( `user` varchar(128) NOT NULL DEFAULT '' , `deleted` bool NOT NULL DEFAULT false ) ENGINE=InnoDB; -CREATE INDEX `hpa_template_hpa_id` ON `hpa_template` (`hpa_id`); \ No newline at end of file +CREATE INDEX `hpa_template_hpa_id` ON `hpa_template` (`hpa_id`); diff --git a/src/backend/initial/bus.go b/src/backend/initial/bus.go index 921022eb3..72eacbc8e 100644 --- a/src/backend/initial/bus.go +++ b/src/backend/initial/bus.go @@ -1,15 +1,16 @@ package initial import ( - "github.com/astaxie/beego" - - "github.com/Qihoo360/wayne/src/backend/bus" + "github.com/Qihoo360/wayne/src/backend/bus/newbus" ) func InitBus() { var err error - bus.DefaultBus, err = bus.NewBus(beego.AppConfig.String("BusRabbitMQURL")) - if err != nil { - panic(err) + // bus.DefaultBus, err = bus.NewBus(beego.AppConfig.String("BusRabbitMQURL")) + if newbus.UBus == nil { + newbus.UBus, err = newbus.NewBus() + if err != nil { + panic(err) + } } } diff --git a/src/backend/initial/db.go b/src/backend/initial/db.go index aa50c7b70..c7f2c7d8a 100644 --- a/src/backend/initial/db.go +++ b/src/backend/initial/db.go @@ -96,5 +96,6 @@ func ensureDatabase() error { } func addLocation(dbURL string) string { - return fmt.Sprintf("%s?charset=utf8&loc=%s", dbURL, beego.AppConfig.DefaultString("DBLoc", "Asia/Shanghai")) + // https://stackoverflow.com/questions/30074492/what-is-the-difference-between-utf8mb4-and-utf8-charsets-in-mysql + return fmt.Sprintf("%s?charset=utf8mb4&loc=%s", dbURL, beego.AppConfig.DefaultString("DBLoc", "Asia%2FShanghai")) } diff --git a/src/backend/initial/rsa_key.go b/src/backend/initial/rsa_key.go index c34c35be8..3658bfaea 100644 --- a/src/backend/initial/rsa_key.go +++ b/src/backend/initial/rsa_key.go @@ -22,7 +22,6 @@ func InitRsaKey() { panic(err) } apikey.RsaPublicKey = publicKey - } func readKey(key string) []byte { diff --git a/src/backend/main.go b/src/backend/main.go index 765920c0c..88225cbb4 100644 --- a/src/backend/main.go +++ b/src/backend/main.go @@ -4,10 +4,6 @@ import ( "github.com/Qihoo360/wayne/src/backend/cmd" ) -const Version = "1.6.1" - func main() { - cmd.Version = Version - - cmd.RootCmd.Execute() + cmd.Run() } diff --git a/src/backend/models/app.go b/src/backend/models/app.go index 128bf7aa1..65b313502 100644 --- a/src/backend/models/app.go +++ b/src/backend/models/app.go @@ -33,6 +33,7 @@ type App struct { UpdateTime *time.Time `orm:"auto_now;type(datetime)" json:"updateTime,omitempty"` User string `orm:"size(128)" json:"user,omitempty"` Deleted bool `orm:"default(false)" json:"deleted,omitempty"` + Migrated bool `orm:"default(false)" json:"migrated,omitempty"` // 用于权限的关联查询 AppUsers []*AppUser `orm:"reverse(many)" json:"-"` @@ -129,6 +130,16 @@ func (*appModel) GetNames(deleted bool) ([]App, error) { return apps, nil } +func (m *appModel) GetAppsByNamespaceId(nid int64, deleted bool) (apps []App, err error) { + qs := Ormer().QueryTable(TableNameApp).RelatedSel(TableNameNamespace). + Filter("namespace__id__exact", nid). + Filter("deleted__exact", deleted) + if _, err = qs.All(&apps); err != nil { + return + } + return +} + func (m *appModel) Add(a *App) (id int64, err error) { // add app err = Ormer().Read(a, "name", "namespace_id") @@ -192,3 +203,23 @@ func (*appModel) GetByName(name string) (a *App, err error) { } return nil, err } + +func (*appModel) GetByNameAndDeleted(name string, deleted bool) (a *App, err error) { + a = &App{Name: name, Deleted: deleted} + if err = Ormer().Read(a, "name", "deleted"); err == nil { + return a, nil + } + return nil, err +} + +// change namespaceId of app from sourceId to targetId +func (*appModel) UpdateByNamespaceId(sourceId, targetId int64) (err error) { + var sql string + sql = "update " + TableNameApp + " set namespace_id=?, migrated=1 where namespace_id=?;" + args := [...]interface{} { + targetId, + sourceId, + } + _, err = orm.NewOrm().Raw(sql, args).Exec() + return +} \ No newline at end of file diff --git a/src/backend/models/build_sql.go b/src/backend/models/build_sql.go index 8b03e9802..aaf88c807 100644 --- a/src/backend/models/build_sql.go +++ b/src/backend/models/build_sql.go @@ -2,6 +2,7 @@ package models import ( "fmt" + "regexp" "strings" "github.com/astaxie/beego/orm" @@ -57,7 +58,9 @@ func BuildGroupBy(qb orm.QueryBuilder, groupby []string) orm.QueryBuilder { if len(groupby) > 0 { groups := make([]string, 0) for _, group := range groupby { - groups = append(groups, "T0."+group) + if checkField(group) { + groups = append(groups, "T0."+group) + } } qb.GroupBy(groups...) } @@ -71,6 +74,9 @@ func BuildOrder(qb orm.QueryBuilder, sort string) orm.QueryBuilder { asc = false sort = sort[1:] } + if !checkField(sort) { + return qb + } qb = qb.OrderBy("T0." + sort) if asc { qb = qb.Asc() @@ -80,3 +86,10 @@ func BuildOrder(qb orm.QueryBuilder, sort string) orm.QueryBuilder { } return qb } + +// Check fields to prevent SQL injection attacks. +func checkField(field string) bool { + field = strings.Trim(field, " ") + pass, _ := regexp.MatchString("(^_([a-zA-Z0-9]_?)*$)|(^[a-zA-Z](_?[a-zA-Z0-9])*_?$)", field) + return pass +} diff --git a/src/backend/models/cluster.go b/src/backend/models/cluster.go index b51d9e929..4afc74eb9 100644 --- a/src/backend/models/cluster.go +++ b/src/backend/models/cluster.go @@ -5,7 +5,7 @@ import ( "time" "github.com/astaxie/beego/logs" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "github.com/Qihoo360/wayne/src/backend/util/hack" ) @@ -22,8 +22,9 @@ const ( type clusterModel struct{} type Cluster struct { - Id int64 `orm:"auto" json:"id,omitempty"` - Name string `orm:"unique;index;size(128)" json:"name,omitempty"` + Id int64 `orm:"auto" json:"id,omitempty"` + Name string `orm:"unique;index;size(128)" json:"name,omitempty"` + DisplayName string `orm:"size(512);column(displayname);null" json:"displayname,omitempty"` /* { "robin": { diff --git a/src/backend/models/custom_link.go b/src/backend/models/custom_link.go new file mode 100644 index 000000000..6e7999301 --- /dev/null +++ b/src/backend/models/custom_link.go @@ -0,0 +1,133 @@ +package models + +const ( + TableNameCustomLink = "custom_link" +) + +type customLinkModel struct{} + +type CustomLink struct { + Id int64 `orm:"auto" json:"id,omitempty"` + // namespace name + Namespace string `orm:"index;column(namespace);" json:"namespace"` + // LinkType typeName + LinkType string `orm:"size(255)" json:"linkType,omitempty"` + Url string `orm:"size(255)" json:"url,omitempty"` + AddParam bool `orm:"default(false)" json:"addParam,omitempty"` + Params string `orm:"size(255);null" json:"params,omitempty"` + Deleted bool `orm:"default(false)" json:"deleted,omitempty"` + //链接状态,默认启用,false为禁用 + Status bool `orm:"default(true)" json:"status,omitempty"` + + Displayname string `orm:"-" json:"displayname,omitempty"` +} + +func (*CustomLink) TableName() string { + return TableNameCustomLink +} + +func (*customLinkModel) GetAll(deleted bool) ([]*CustomLink, error) { + customLinks := []*CustomLink{} + _, err := Ormer(). + QueryTable(new(CustomLink)). + Filter("Deleted", deleted). + OrderBy("Id"). + All(&customLinks) + + if err != nil { + return nil, err + } + + return customLinks, nil +} + +//get links by link type +func (*customLinkModel) GetByLinkType(linkType string, deleted bool) ([]*CustomLink, error) { + customLinks := []*CustomLink{} + _, err := Ormer(). + QueryTable(new(CustomLink)). + Filter("Deleted", deleted). + Filter("LinkType", linkType). + OrderBy("Id"). + All(&customLinks) + + if err != nil { + return nil, err + } + + return customLinks, nil +} + +//get links by namespace name +func (*customLinkModel) GetByNsName(nsName string, deleted bool) ([]*CustomLink, error) { + customLinks := []*CustomLink{} + _, err := Ormer(). + QueryTable(new(CustomLink)). + Filter("Deleted", deleted). + Filter("Namespace", nsName). + OrderBy("Id"). + All(&customLinks) + + if err != nil { + return nil, err + } + + return customLinks, nil +} + +func (*customLinkModel) GetById(id int64) (v *CustomLink, err error) { + v = &CustomLink{Id: id} + + if err = Ormer().Read(v); err == nil { + return v, nil + } + return nil, err +} + +func (*customLinkModel) Add(m *CustomLink) (id int64, err error) { + id, err = Ormer().Insert(m) + if err != nil { + return + } + return +} + +// UpdateById updates CustomLink by Id and returns error if +// the record to be updated doesn't exist +func (*customLinkModel) UpdateById(m *CustomLink) (err error) { + v := CustomLink{Id: m.Id} + // as certain id exists in the database + if err = Ormer().Read(&v); err == nil { + _, err = Ormer().Update(m) + return err + } + return +} + +// Delete deletes CustomLink by Id and returns error if +// the record to be deleted doesn't exist +func (*customLinkModel) DeleteById(id int64, logical bool) (err error) { + v := CustomLink{Id: id} + // as certain id exists in the database + if err = Ormer().Read(&v); err == nil { + if logical { + v.Deleted = true + _, err = Ormer().Update(&v) + return err + } + _, err = Ormer().Delete(&v) + return err + } + return +} + +func (*customLinkModel) ChangeStatusById(id int64) (err error) { + v := CustomLink{Id: id} + // as certain id exists in the database + if err = Ormer().Read(&v); err == nil { + v.Status = !v.Status + _, err = Ormer().Update(&v) + return err + } + return +} diff --git a/src/backend/models/deployment.go b/src/backend/models/deployment.go index bbd59f006..7ca8e0b70 100644 --- a/src/backend/models/deployment.go +++ b/src/backend/models/deployment.go @@ -173,6 +173,20 @@ func (*deploymentModel) GetByName(name string) (v *Deployment, err error) { return nil, err } +func (*deploymentModel) GetUniqueDepByName(ns, app, deployment string) (v *Deployment, err error) { + v = &Deployment{} + // use orm + qs := Ormer().QueryTable(new(Deployment)) + err = qs.Filter("App__Namespace__Name", ns).Filter("App__Name", app).Filter("Name", deployment).Filter("Deleted", 0).One(v) + // use raw sql + // err = Ormer().Raw("SELECT d.* FROM deployment as d left join app as a on d.app_id=a.id left join namespace as n on a.namespace_id=n.id WHERE n.name= ? and a.Name = ? and d.Name = ?", ns, app, deployment).QueryRow(v) + if err == nil { + v.AppId = v.App.Id + return v, nil + } + return nil, err +} + func (*deploymentModel) DeleteById(id int64, logical bool) (err error) { v := Deployment{Id: id} // ascertain id exists in the database diff --git a/src/backend/models/deployment_template.go b/src/backend/models/deployment_template.go index 26ad916d5..e68efa14a 100644 --- a/src/backend/models/deployment_template.go +++ b/src/backend/models/deployment_template.go @@ -35,6 +35,9 @@ func (*DeploymentTemplate) TableName() string { func (*deploymentTplModel) Add(m *DeploymentTemplate) (id int64, err error) { m.Deployment = &Deployment{Id: m.DeploymentId} + now := time.Now() + m.CreateTime = now + m.UpdateTime = now id, err = Ormer().Insert(m) return } @@ -76,3 +79,15 @@ func (*deploymentTplModel) DeleteById(id int64, logical bool) (err error) { } return } + +func (*deploymentTplModel) GetLatestDeptplByName(ns, app, deployment string) (v *DeploymentTemplate, err error) { + v = &DeploymentTemplate{} + // use orm + qs := Ormer().QueryTable(new(DeploymentTemplate)) + err = qs.Filter("Deployment__App__Namespace__Name", ns).Filter("Deployment__App__Name", app).Filter("Name", deployment).Filter("Deleted", 0).OrderBy("-id").One(v) + if err == nil { + v.DeploymentId = v.Deployment.Id + return v, nil + } + return nil, err +} diff --git a/src/backend/models/init.go b/src/backend/models/init.go index dd8e3d00c..8f3ef4fe5 100644 --- a/src/backend/models/init.go +++ b/src/backend/models/init.go @@ -47,6 +47,8 @@ var ( IngressTemplateModel *ingressTemplateModel HPAModel *hpaModel HPATemplateModel *hpaTemplateModel + LinkTypeModel *linkTypeModel + CustomLinkModel *customLinkModel ) func init() { @@ -90,7 +92,9 @@ func init() { new(Ingress), new(IngressTemplate), new(HPA), - new(HPATemplate)) + new(HPATemplate), + new(LinkType), + new(CustomLink)) // init models UserModel = &userModel{} @@ -129,6 +133,8 @@ func init() { IngressTemplateModel = &ingressTemplateModel{} HPAModel = &hpaModel{} HPATemplateModel = &hpaTemplateModel{} + LinkTypeModel = &linkTypeModel{} + CustomLinkModel = &customLinkModel{} } // singleton init ormer ,only use for normal db operation diff --git a/src/backend/models/link_type.go b/src/backend/models/link_type.go new file mode 100644 index 000000000..82c29d528 --- /dev/null +++ b/src/backend/models/link_type.go @@ -0,0 +1,100 @@ +package models + +const ( + TableNameLinkType = "link_type" +) + +type linkTypeModel struct{} + +type LinkType struct { + Id int64 `orm:"auto" json:"id,omitempty"` + TypeName string `orm:"index;unique;size(255)" json:"typeName,omitempty"` + Displayname string `orm:"size(255)" json:"displayname,omitempty"` + DefaultUrl string `orm:"size(255)" json:"defaultUrl,omitempty"` + ParamList string `orm:"size(255);null" json:"paramList,omitempty"` + Deleted bool `orm:"default(false)" json:"deleted,omitempty"` +} + +func (*LinkType) TableName() string { + return TableNameLinkType +} + +func (*linkTypeModel) GetAll(deleted bool) ([]*LinkType, error) { + linkTypes := []*LinkType{} + _, err := Ormer(). + QueryTable(new(LinkType)). + Filter("Deleted", deleted). + OrderBy("Id"). + All(&linkTypes) + + if err != nil { + return nil, err + } + + return linkTypes, nil +} + +func (*linkTypeModel) GetByType(typeName string) (v *LinkType, err error) { + v = &LinkType{TypeName: typeName} + + if err = Ormer().Read(v, "TypeName"); err == nil { + return v, nil + } + return nil, err +} + +func (*linkTypeModel) GetByTypeAndDeleted(typeName string, deleted bool) (v *LinkType, err error) { + v = &LinkType{TypeName: typeName, + Deleted: deleted} + + if err = Ormer().Read(v, "TypeName", "Deleted"); err == nil { + return v, nil + } + return nil, err +} + +func (*linkTypeModel) GetById(id int64) (v *LinkType, err error) { + v = &LinkType{Id: id} + + if err = Ormer().Read(v); err == nil { + return v, nil + } + return nil, err +} + +func (*linkTypeModel) Add(m *LinkType) (id int64, err error) { + id, err = Ormer().Insert(m) + if err != nil { + return + } + return +} + +// UpdateById updates LinkType by Id and returns error if +// the record to be updated doesn't exist +func (*linkTypeModel) UpdateById(m *LinkType) (err error) { + v := LinkType{Id: m.Id} + // as certain id exists in the database + if err = Ormer().Read(&v); err == nil { + _, err = Ormer().Update(m) + return err + } + return +} + +// Delete deletes LinkType by Id and returns error if +// the record to be deleted doesn't exist +func (*linkTypeModel) DeleteById(id int64, logical bool) (err error) { + v := LinkType{Id: id} + // as certain id exists in the database + if err = Ormer().Read(&v); err == nil { + if logical { + v.Deleted = true + _, err = Ormer().Update(&v) + return err + } + _, err = Ormer().Delete(&v) + return err + } + return +} diff --git a/src/backend/models/migrate.go b/src/backend/models/migrate.go new file mode 100644 index 000000000..683be43a5 --- /dev/null +++ b/src/backend/models/migrate.go @@ -0,0 +1,6 @@ +package models + +type NamespaceMigration struct { + SourceId int64 `json:"sourceId"` + TargetId int64 `json:"targetId"` +} diff --git a/src/backend/models/namespace.go b/src/backend/models/namespace.go index bc09d34c1..89da41f9c 100644 --- a/src/backend/models/namespace.go +++ b/src/backend/models/namespace.go @@ -105,6 +105,16 @@ func (*namespaceModel) GetByName(name string) (n *Namespace, err error) { return nil, err } +func (*namespaceModel) GetByNameAndDeleted(name string, deleted bool) (n *Namespace, err error) { + n = &Namespace{Name: name, + Deleted: deleted} + + if err = Ormer().Read(n, "name", "deleted"); err == nil { + return n, nil + } + return nil, err +} + // Add insert a new Namespace into database and returns // last inserted Id on success. func (*namespaceModel) Add(m *Namespace) (id int64, err error) { diff --git a/src/backend/models/namespace_user.go b/src/backend/models/namespace_user.go index 547872b0f..55b19ac60 100644 --- a/src/backend/models/namespace_user.go +++ b/src/backend/models/namespace_user.go @@ -133,6 +133,15 @@ func (n *namespaceUserModel) GetById(id int64, allGroupFlag bool) (v *NamespaceU return } +func (m *namespaceUserModel) GetUserListByNamespaceId(nid int64) (nsUsers []NamespaceUser, err error) { + qs := Ormer().QueryTable(TableNameNamespaceUser).RelatedSel(TableNameUser).RelatedSel(TableNameGroup). + Filter("namespace__id__exact", nid) + if _, err = qs.All(&nsUsers); err != nil { + return + } + return +} + func (n *namespaceUserModel) GetNSId(uid int64, perName string) (nids []int64, err error) { qs := Ormer().QueryTable(TableNameNamespaceUser). Filter("user__id__exact", uid). @@ -243,3 +252,15 @@ func (n *namespaceUserModel) GetAllPermission(aid int64, uid int64) (permissions } return } + +// change namespaceId of namespaceUser from sourceId to targetId +func (*namespaceUserModel) UpdateByNamespaceId(sourceId, targetId int64) (err error) { + var sql string + sql = "update " + TableNameNamespaceUser + " set namespace_id=? where namespace_id=?;" + args := [...]interface{} { + targetId, + sourceId, + } + _, err = orm.NewOrm().Raw(sql, args).Exec() + return +} \ No newline at end of file diff --git a/src/backend/models/user.go b/src/backend/models/user.go index 936e3fbe9..0ed57e7fc 100644 --- a/src/backend/models/user.go +++ b/src/backend/models/user.go @@ -96,9 +96,6 @@ func addDefaultNamespace(user *User) (err error) { // 添加默认命名空间开发者权限 demoNSId := beego.AppConfig.DefaultInt64("DemoNamespaceId", 1) demoGroupId := beego.AppConfig.DefaultInt64("DemoGroupId", 1) - if err != nil { - return - } if (demoNSId <= 0) || (demoGroupId <= 0) { // 如果DemoNamespaceId小于等于0,则忽略 return nil diff --git a/src/backend/plugins b/src/backend/plugins index 9d23dac05..2084198db 160000 --- a/src/backend/plugins +++ b/src/backend/plugins @@ -1 +1 @@ -Subproject commit 9d23dac056c406dbe6950f48eac227ad87e68d01 +Subproject commit 2084198db53ba8cee70707b375bae9a0b9f2250b diff --git a/src/backend/resources/common/util.go b/src/backend/resources/common/util.go index bf49711b4..8df12691b 100644 --- a/src/backend/resources/common/util.go +++ b/src/backend/resources/common/util.go @@ -1,11 +1,11 @@ package common import ( - "k8s.io/api/apps/v1beta1" + appsv1 "k8s.io/api/apps/v1" "k8s.io/api/core/v1" ) -func DeploymentResourceList(deployment *v1beta1.Deployment) *ResourceList { +func DeploymentResourceList(deployment *appsv1.Deployment) *ResourceList { replicas := *(deployment.Spec.Replicas) resourceList := ContainersResourceList(deployment.Spec.Template.Spec.Containers) return &ResourceList{ @@ -14,7 +14,7 @@ func DeploymentResourceList(deployment *v1beta1.Deployment) *ResourceList { } } -func StatefulsetResourceList(statefulSet *v1beta1.StatefulSet) *ResourceList { +func StatefulsetResourceList(statefulSet *appsv1.StatefulSet) *ResourceList { replicas := *(statefulSet.Spec.Replicas) resourceList := ContainersResourceList(statefulSet.Spec.Template.Spec.Containers) return &ResourceList{ diff --git a/src/backend/resources/daemonset/daemonset.go b/src/backend/resources/daemonset/daemonset.go index 8fb277362..680757b35 100644 --- a/src/backend/resources/daemonset/daemonset.go +++ b/src/backend/resources/daemonset/daemonset.go @@ -1,7 +1,7 @@ package daemonset import ( - "k8s.io/api/extensions/v1beta1" + appsv1 "k8s.io/api/apps/v1" "k8s.io/apimachinery/pkg/api/errors" metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" @@ -18,11 +18,11 @@ type DaemonSet struct { Pods common.PodInfo `json:"pods"` } -func CreateOrUpdateDaemonSet(cli *kubernetes.Clientset, daemonSet *v1beta1.DaemonSet) (*v1beta1.DaemonSet, error) { - old, err := cli.ExtensionsV1beta1().DaemonSets(daemonSet.Namespace).Get(daemonSet.Name, metaV1.GetOptions{}) +func CreateOrUpdateDaemonSet(cli *kubernetes.Clientset, daemonSet *appsv1.DaemonSet) (*appsv1.DaemonSet, error) { + old, err := cli.AppsV1().DaemonSets(daemonSet.Namespace).Get(daemonSet.Name, metaV1.GetOptions{}) if err != nil { if errors.IsNotFound(err) { - return cli.ExtensionsV1beta1().DaemonSets(daemonSet.Namespace).Create(daemonSet) + return cli.AppsV1().DaemonSets(daemonSet.Namespace).Create(daemonSet) } return nil, err } @@ -31,11 +31,11 @@ func CreateOrUpdateDaemonSet(cli *kubernetes.Clientset, daemonSet *v1beta1.Daemo old.Spec = daemonSet.Spec old.Spec.Template.Labels = maps.MergeLabels(oldTemplateLabels, daemonSet.Spec.Template.Labels) - return cli.ExtensionsV1beta1().DaemonSets(daemonSet.Namespace).Update(old) + return cli.AppsV1().DaemonSets(daemonSet.Namespace).Update(old) } func GetDaemonSetDetail(cli *kubernetes.Clientset, indexer *client.CacheFactory, name, namespace string) (*DaemonSet, error) { - daemonSet, err := cli.ExtensionsV1beta1().DaemonSets(namespace).Get(name, metaV1.GetOptions{}) + daemonSet, err := cli.AppsV1().DaemonSets(namespace).Get(name, metaV1.GetOptions{}) if err != nil { return nil, err } @@ -65,7 +65,7 @@ func GetDaemonSetDetail(cli *kubernetes.Clientset, indexer *client.CacheFactory, func DeleteDaemonSet(cli *kubernetes.Clientset, name, namespace string) error { deletionPropagation := metaV1.DeletePropagationBackground - return cli.ExtensionsV1beta1(). + return cli.AppsV1(). DaemonSets(namespace). Delete(name, &metaV1.DeleteOptions{PropagationPolicy: &deletionPropagation}) } diff --git a/src/backend/resources/dataselector/const.go b/src/backend/resources/dataselector/const.go index bd4f2b925..de96c531a 100644 --- a/src/backend/resources/dataselector/const.go +++ b/src/backend/resources/dataselector/const.go @@ -10,6 +10,7 @@ const ( CreationTimestampProperty PropertyName = "creationTimestamp" NamespaceProperty PropertyName = "namespace" StatusProperty PropertyName = "status" + ReferenceUIDProperty PropertyName = "referenceUID" // Pod Property PodIPProperty PropertyName = "podIP" diff --git a/src/backend/resources/deployment/deployment.go b/src/backend/resources/deployment/deployment.go index 3ff10aebc..635b43c70 100644 --- a/src/backend/resources/deployment/deployment.go +++ b/src/backend/resources/deployment/deployment.go @@ -5,7 +5,7 @@ import ( "net/http" "sort" - "k8s.io/api/apps/v1beta1" + appsv1 "k8s.io/api/apps/v1" "k8s.io/apimachinery/pkg/api/errors" metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" @@ -26,7 +26,7 @@ type Deployment struct { Containers []string `json:"containers"` } -func GetDeploymentList(indexer *client.CacheFactory, namespace string) ([]*v1beta1.Deployment, error) { +func GetDeploymentList(indexer *client.CacheFactory, namespace string) ([]*appsv1.Deployment, error) { deployments, err := indexer.DeploymentLister().Deployments(namespace).List(labels.Everything()) if err != nil { return nil, err @@ -39,7 +39,7 @@ func GetDeploymentList(indexer *client.CacheFactory, namespace string) ([]*v1bet } // GetDeploymentResource get deployment resource statistics -func GetDeploymentResource(cli client.ResourceHandler, deployment *v1beta1.Deployment) (*common.ResourceList, error) { +func GetDeploymentResource(cli client.ResourceHandler, deployment *appsv1.Deployment) (*common.ResourceList, error) { obj, err := cli.Get(api.ResourceNameDeployment, deployment.Namespace, deployment.Name) if err != nil { @@ -48,7 +48,7 @@ func GetDeploymentResource(cli client.ResourceHandler, deployment *v1beta1.Deplo } return nil, err } - old := obj.(*v1beta1.Deployment) + old := obj.(*appsv1.Deployment) oldResourceList := common.DeploymentResourceList(old) newResourceList := common.DeploymentResourceList(deployment) @@ -58,11 +58,12 @@ func GetDeploymentResource(cli client.ResourceHandler, deployment *v1beta1.Deplo }, nil } -func CreateOrUpdateDeployment(cli *kubernetes.Clientset, deployment *v1beta1.Deployment) (*v1beta1.Deployment, error) { - old, err := cli.AppsV1beta1().Deployments(deployment.Namespace).Get(deployment.Name, metaV1.GetOptions{}) +func CreateOrUpdateDeployment(cli *kubernetes.Clientset, deployment *appsv1.Deployment) (*appsv1.Deployment, error) { + //old, err := cli.AppsV1beta1().Deployments(deployment.Namespace).Get(deployment.Name, metaV1.GetOptions{}) + old, err := cli.AppsV1().Deployments(deployment.Namespace).Get(deployment.Name, metaV1.GetOptions{}) if err != nil { if errors.IsNotFound(err) { - return cli.AppsV1beta1().Deployments(deployment.Namespace).Create(deployment) + return cli.AppsV1().Deployments(deployment.Namespace).Create(deployment) } return nil, err } @@ -75,11 +76,11 @@ func CreateOrUpdateDeployment(cli *kubernetes.Clientset, deployment *v1beta1.Dep old.Annotations = deployment.Annotations old.Spec = deployment.Spec - return cli.AppsV1beta1().Deployments(deployment.Namespace).Update(old) + return cli.AppsV1().Deployments(deployment.Namespace).Update(old) } -func UpdateDeployment(cli *kubernetes.Clientset, deployment *v1beta1.Deployment) (*v1beta1.Deployment, error) { - old, err := cli.AppsV1beta1().Deployments(deployment.Namespace).Get(deployment.Name, metaV1.GetOptions{}) +func UpdateDeployment(cli *kubernetes.Clientset, deployment *appsv1.Deployment) (*appsv1.Deployment, error) { + old, err := cli.AppsV1().Deployments(deployment.Namespace).Get(deployment.Name, metaV1.GetOptions{}) if err != nil { return nil, err } @@ -89,7 +90,7 @@ func UpdateDeployment(cli *kubernetes.Clientset, deployment *v1beta1.Deployment) return nil, err } - return cli.AppsV1beta1().Deployments(deployment.Namespace).Update(deployment) + return cli.AppsV1().Deployments(deployment.Namespace).Update(deployment) } // check Deployment .Spec.Selector.MatchLabels, prevent orphan ReplicaSet @@ -97,7 +98,7 @@ func UpdateDeployment(cli *kubernetes.Clientset, deployment *v1beta1.Deployment) // e.g. old Deployment .Spec.Selector.MatchLabels is app = infra-wayne,wayne-app = infra // new Deployment .Spec.Selector.MatchLabels valid labels is // app = infra-wayne or wayne-app = infra or app = infra-wayne,wayne-app = infra -func checkDeploymentLabelSelector(new *v1beta1.Deployment, old *v1beta1.Deployment) error { +func checkDeploymentLabelSelector(new *appsv1.Deployment, old *appsv1.Deployment) error { for key, value := range new.Spec.Selector.MatchLabels { oldValue, ok := old.Spec.Selector.MatchLabels[key] if !ok || oldValue != value { @@ -112,12 +113,12 @@ func checkDeploymentLabelSelector(new *v1beta1.Deployment, old *v1beta1.Deployme return nil } -func GetDeployment(cli *kubernetes.Clientset, name, namespace string) (*v1beta1.Deployment, error) { - return cli.AppsV1beta1().Deployments(namespace).Get(name, metaV1.GetOptions{}) +func GetDeployment(cli *kubernetes.Clientset, name, namespace string) (*appsv1.Deployment, error) { + return cli.AppsV1().Deployments(namespace).Get(name, metaV1.GetOptions{}) } func GetDeploymentDetail(cli *kubernetes.Clientset, indexer *client.CacheFactory, name, namespace string) (*Deployment, error) { - deployment, err := cli.AppsV1beta1().Deployments(namespace).Get(name, metaV1.GetOptions{}) + deployment, err := cli.AppsV1().Deployments(namespace).Get(name, metaV1.GetOptions{}) if err != nil { return nil, err } @@ -125,7 +126,7 @@ func GetDeploymentDetail(cli *kubernetes.Clientset, indexer *client.CacheFactory return toDeployment(deployment, indexer) } -func toDeployment(deployment *v1beta1.Deployment, indexer *client.CacheFactory) (*Deployment, error) { +func toDeployment(deployment *appsv1.Deployment, indexer *client.CacheFactory) (*Deployment, error) { result := &Deployment{ ObjectMeta: common.NewObjectMeta(deployment.ObjectMeta), } @@ -159,7 +160,18 @@ func toDeployment(deployment *v1beta1.Deployment, indexer *client.CacheFactory) func DeleteDeployment(cli *kubernetes.Clientset, name, namespace string) error { deletionPropagation := metaV1.DeletePropagationBackground - return cli.ExtensionsV1beta1(). + return cli.AppsV1(). Deployments(namespace). Delete(name, &metaV1.DeleteOptions{PropagationPolicy: &deletionPropagation}) } + +func UpdateScale(cli *kubernetes.Clientset, deploymentname string, namespace string,newreplica int32) error { + deployments:=cli.AppsV1beta1().Deployments(namespace) + deployment,err:=deployments.Get(deploymentname,metaV1.GetOptions{}) + if err != nil { + return err + } + deployment.Spec.Replicas=&newreplica + _,err=deployments.Update(deployment) + return err +} diff --git a/src/backend/resources/ingress/ingress.go b/src/backend/resources/ingress/ingress.go index 356945b1e..9e778c8d3 100644 --- a/src/backend/resources/ingress/ingress.go +++ b/src/backend/resources/ingress/ingress.go @@ -5,6 +5,8 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" + + "github.com/Qihoo360/wayne/src/backend/util/logs" ) func CreateOrUpdateIngress(c *kubernetes.Clientset, ingress *v1beta1.Ingress) (*Ingress, error) { @@ -19,7 +21,14 @@ func CreateOrUpdateIngress(c *kubernetes.Clientset, ingress *v1beta1.Ingress) (* } return nil, err } - ingress.Spec.DeepCopyInto(&old.Spec) + + // ingress.Spec.DeepCopyInto(&old.Spec) + // also need update Labels、Annotations、Spec + old.Labels = ingress.Labels + old.Annotations = ingress.Annotations + old.Spec = ingress.Spec + logs.Info("new ingress", old) + kubeIngress, err := c.ExtensionsV1beta1().Ingresses(ingress.Namespace).Update(old) if err != nil { return nil, err diff --git a/src/backend/resources/namespace/namespace.go b/src/backend/resources/namespace/namespace.go index 1bdc2887e..f726483f5 100644 --- a/src/backend/resources/namespace/namespace.go +++ b/src/backend/resources/namespace/namespace.go @@ -52,9 +52,6 @@ func ResourcesOfAppByNamespace(cli client.ResourceHandler, namespace, selector s if err != nil { return nil, err } - if err != nil { - return nil, err - } result := make(map[string]*common.ResourceApp) for _, obj := range objs { pod := obj.(*v1.Pod) diff --git a/src/backend/resources/proxy/common.go b/src/backend/resources/proxy/common.go index 3275c5bb6..f832ae333 100644 --- a/src/backend/resources/proxy/common.go +++ b/src/backend/resources/proxy/common.go @@ -1,7 +1,7 @@ package proxy import ( - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/Qihoo360/wayne/src/backend/resources/common" @@ -22,6 +22,16 @@ func baseProperty(name dataselector.PropertyName, meta metav1.ObjectMeta) datase return dataselector.StdComparableTime(meta.CreationTimestamp.Time) case dataselector.NamespaceProperty: return dataselector.StdComparableString(meta.Namespace) + + case dataselector.ReferenceUIDProperty: + refs := meta.OwnerReferences + for i := range refs { + if refs[i].Controller != nil && *refs[i].Controller { + return dataselector.StdComparableString(refs[i].UID) + } + } + return nil + default: // if name is not supported then just return a constant dummy value, sort will have no effect. return nil diff --git a/src/backend/resources/pvc/pvc.go b/src/backend/resources/pvc/pvc.go index c3b39d9ac..2ceb15693 100644 --- a/src/backend/resources/pvc/pvc.go +++ b/src/backend/resources/pvc/pvc.go @@ -76,10 +76,19 @@ func GetImageNameAndTypeByPvc(cli *kubernetes.Clientset, name, namespace string) // 获取RBD状态 if pvResult.Spec.RBD != nil { return pvResult.Spec.RBD.RBDImage, "rbd", nil - } else if pvResult.Spec.CephFS != nil { + } + if pvResult.Spec.CephFS != nil { paths := strings.Split(pvResult.Spec.CephFS.Path, "/") return paths[len(paths)-1], "cephfs", nil } + if pvResult.Spec.Glusterfs != nil { + paths := strings.Split(pvResult.Spec.Glusterfs.Path, "/") + return paths[len(paths)-1], "glusterfs", nil + } + if pvResult.Spec.NFS != nil { + paths := strings.Split(pvResult.Spec.NFS.Path, "/") + return paths[len(paths)-1], "nfs", nil + } } return "", "", RbdNotFoundError } diff --git a/src/backend/resources/statefulset/statefulset.go b/src/backend/resources/statefulset/statefulset.go index d8df217e0..dc0ad610d 100644 --- a/src/backend/resources/statefulset/statefulset.go +++ b/src/backend/resources/statefulset/statefulset.go @@ -1,7 +1,7 @@ package statefulset import ( - "k8s.io/api/apps/v1beta1" + appsv1 "k8s.io/api/apps/v1" "k8s.io/apimachinery/pkg/api/errors" metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" @@ -20,7 +20,7 @@ type Statefulset struct { } // GetStatefulsetResource get StatefulSet resource statistics -func GetStatefulsetResource(cli client.ResourceHandler, statefulSet *v1beta1.StatefulSet) (*common.ResourceList, error) { +func GetStatefulsetResource(cli client.ResourceHandler, statefulSet *appsv1.StatefulSet) (*common.ResourceList, error) { obj, err := cli.Get(api.ResourceNameStatefulSet, statefulSet.Namespace, statefulSet.Name) if err != nil { if errors.IsNotFound(err) { @@ -28,7 +28,7 @@ func GetStatefulsetResource(cli client.ResourceHandler, statefulSet *v1beta1.Sta } return nil, err } - old := obj.(*v1beta1.StatefulSet) + old := obj.(*appsv1.StatefulSet) oldResourceList := common.StatefulsetResourceList(old) newResourceList := common.StatefulsetResourceList(statefulSet) @@ -38,11 +38,11 @@ func GetStatefulsetResource(cli client.ResourceHandler, statefulSet *v1beta1.Sta }, nil } -func CreateOrUpdateStatefulset(cli *kubernetes.Clientset, statefulSet *v1beta1.StatefulSet) (*v1beta1.StatefulSet, error) { - old, err := cli.AppsV1beta1().StatefulSets(statefulSet.Namespace).Get(statefulSet.Name, metaV1.GetOptions{}) +func CreateOrUpdateStatefulset(cli *kubernetes.Clientset, statefulSet *appsv1.StatefulSet) (*appsv1.StatefulSet, error) { + old, err := cli.AppsV1().StatefulSets(statefulSet.Namespace).Get(statefulSet.Name, metaV1.GetOptions{}) if err != nil { if errors.IsNotFound(err) { - return cli.AppsV1beta1().StatefulSets(statefulSet.Namespace).Create(statefulSet) + return cli.AppsV1().StatefulSets(statefulSet.Namespace).Create(statefulSet) } return nil, err } @@ -51,11 +51,11 @@ func CreateOrUpdateStatefulset(cli *kubernetes.Clientset, statefulSet *v1beta1.S old.Spec = statefulSet.Spec old.Spec.Template.Labels = maps.MergeLabels(oldTemplateLabels, statefulSet.Spec.Template.Labels) - return cli.AppsV1beta1().StatefulSets(statefulSet.Namespace).Update(old) + return cli.AppsV1().StatefulSets(statefulSet.Namespace).Update(old) } func GetStatefulsetDetail(cli *kubernetes.Clientset, indexer *client.CacheFactory, name, namespace string) (*Statefulset, error) { - statefulSet, err := cli.AppsV1beta1().StatefulSets(namespace).Get(name, metaV1.GetOptions{}) + statefulSet, err := cli.AppsV1().StatefulSets(namespace).Get(name, metaV1.GetOptions{}) if err != nil { return nil, err } diff --git a/src/backend/routers/commentsRouter_controllers_apikey.go b/src/backend/routers/commentsRouter_controllers_apikey.go index 4edc002bd..9cfccb231 100644 --- a/src/backend/routers/commentsRouter_controllers_apikey.go +++ b/src/backend/routers/commentsRouter_controllers_apikey.go @@ -6,45 +6,47 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const ApiKeyController = "github.com/Qihoo360/wayne/src/backend/controllers/apikey:ApiKeyController" + beego.GlobalControllerRouter[ApiKeyController] = append( + beego.GlobalControllerRouter[ApiKeyController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_app.go b/src/backend/routers/commentsRouter_controllers_app.go index 6ff9801d1..78a95de6d 100644 --- a/src/backend/routers/commentsRouter_controllers_app.go +++ b/src/backend/routers/commentsRouter_controllers_app.go @@ -6,53 +6,55 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/app:AppController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const AppController = "github.com/Qihoo360/wayne/src/backend/controllers/app:AppController" + beego.GlobalControllerRouter[AppController] = append( + beego.GlobalControllerRouter[AppController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_appstarred.go b/src/backend/routers/commentsRouter_controllers_appstarred.go index 54b577707..706ffecfd 100644 --- a/src/backend/routers/commentsRouter_controllers_appstarred.go +++ b/src/backend/routers/commentsRouter_controllers_appstarred.go @@ -6,21 +6,23 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/appstarred:AppStarredController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/appstarred:AppStarredController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/appstarred:AppStarredController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/appstarred:AppStarredController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:appId`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - + const AppStarredController = "github.com/Qihoo360/wayne/src/backend/controllers/appstarred:AppStarredController" + beego.GlobalControllerRouter[AppStarredController] = append( + beego.GlobalControllerRouter[AppStarredController], + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:appId`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_auditlog.go b/src/backend/routers/commentsRouter_controllers_auditlog.go index 6dec92f87..18ddb5bf6 100644 --- a/src/backend/routers/commentsRouter_controllers_auditlog.go +++ b/src/backend/routers/commentsRouter_controllers_auditlog.go @@ -6,13 +6,15 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/auditlog:AuditLogController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/auditlog:AuditLogController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const AuditLogController = "github.com/Qihoo360/wayne/src/backend/controllers/auditlog:AuditLogController" + beego.GlobalControllerRouter[AuditLogController] = append( + beego.GlobalControllerRouter[AuditLogController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_auth.go b/src/backend/routers/commentsRouter_controllers_auth.go index 66d53c6e2..159da7644 100644 --- a/src/backend/routers/commentsRouter_controllers_auth.go +++ b/src/backend/routers/commentsRouter_controllers_auth.go @@ -6,32 +6,31 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/auth:AuthController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/auth:AuthController"], - beego.ControllerComments{ - Method: "CurrentUser", - Router: `/currentuser`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/auth:AuthController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/auth:AuthController"], - beego.ControllerComments{ - Method: "Login", - Router: `/login/:type/?:name`, - AllowHTTPMethods: []string{"get", "post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/auth:AuthController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/auth:AuthController"], - beego.ControllerComments{ - Method: "Logout", - Router: `/logout`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - + const AuthController = "github.com/Qihoo360/wayne/src/backend/controllers/auth:AuthController" + beego.GlobalControllerRouter[AuthController] = append( + beego.GlobalControllerRouter[AuthController], + beego.ControllerComments{ + Method: "CurrentUser", + Router: `/currentuser`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Login", + Router: `/login/:type/?:name`, + AllowHTTPMethods: []string{"get","post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Logout", + Router: `/logout`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_bill.go b/src/backend/routers/commentsRouter_controllers_bill.go index 4dc71f3dd..ed70aaa9f 100644 --- a/src/backend/routers/commentsRouter_controllers_bill.go +++ b/src/backend/routers/commentsRouter_controllers_bill.go @@ -6,21 +6,23 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/bill:BillController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/bill:BillController"], - beego.ControllerComments{ - Method: "ListInvoice", - Router: `/:appid`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/bill:BillController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/bill:BillController"], - beego.ControllerComments{ - Method: "ListCharge", - Router: `/:appid/:name`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const BillController = "github.com/Qihoo360/wayne/src/backend/controllers/bill:BillController" + beego.GlobalControllerRouter[BillController] = append( + beego.GlobalControllerRouter[BillController], + beego.ControllerComments{ + Method: "ListInvoice", + Router: `/:appid`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "ListCharge", + Router: `/:appid/:name`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_cluster.go b/src/backend/routers/commentsRouter_controllers_cluster.go index b60c3d447..a669cdbf8 100644 --- a/src/backend/routers/commentsRouter_controllers_cluster.go +++ b/src/backend/routers/commentsRouter_controllers_cluster.go @@ -6,53 +6,55 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:name`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:name`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:name`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const ClusterController = "github.com/Qihoo360/wayne/src/backend/controllers/cluster:ClusterController" + beego.GlobalControllerRouter[ClusterController] = append( + beego.GlobalControllerRouter[ClusterController], + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:name`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:name`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:name`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_config.go b/src/backend/routers/commentsRouter_controllers_config.go index 233bee8d2..6ee674f11 100644 --- a/src/backend/routers/commentsRouter_controllers_config.go +++ b/src/backend/routers/commentsRouter_controllers_config.go @@ -6,61 +6,65 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:BaseConfigController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:BaseConfigController"], - beego.ControllerComments{ - Method: "ListBase", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController"], - beego.ControllerComments{ - Method: "ListSystem", - Router: `/system`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const BaseConfigController= "github.com/Qihoo360/wayne/src/backend/controllers/config:BaseConfigController" + beego.GlobalControllerRouter[BaseConfigController] = append( + beego.GlobalControllerRouter[BaseConfigController], + beego.ControllerComments{ + Method: "ListBase", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) + const ConfigController="github.com/Qihoo360/wayne/src/backend/controllers/config:ConfigController" + beego.GlobalControllerRouter[ConfigController] = append(beego.GlobalControllerRouter[ConfigController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "ListSystem", + Router: `/system`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_configmap.go b/src/backend/routers/commentsRouter_controllers_configmap.go index affc4cade..2c64929ab 100644 --- a/src/backend/routers/commentsRouter_controllers_configmap.go +++ b/src/backend/routers/commentsRouter_controllers_configmap.go @@ -6,101 +6,107 @@ import ( ) func init() { + const ConfigMapController = "github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController" + beego.GlobalControllerRouter[ConfigMapController] = append( + beego.GlobalControllerRouter[ConfigMapController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateOrders", + Router: `/updateorders`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapController"], - beego.ControllerComments{ - Method: "UpdateOrders", - Router: `/updateorders`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const ConfigMapTplController = "github.com/Qihoo360/wayne/src/backend/controllers/configmap:ConfigMapTplController" + beego.GlobalControllerRouter[ConfigMapTplController] = append( + beego.GlobalControllerRouter[ConfigMapTplController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_cronjob.go b/src/backend/routers/commentsRouter_controllers_cronjob.go index 1c4be43f8..494c06643 100644 --- a/src/backend/routers/commentsRouter_controllers_cronjob.go +++ b/src/backend/routers/commentsRouter_controllers_cronjob.go @@ -6,101 +6,107 @@ import ( ) func init() { + const CronjobController = "github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController" + beego.GlobalControllerRouter[CronjobController] = append( + beego.GlobalControllerRouter[CronjobController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateOrders", + Router: `/updateorders`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobController"], - beego.ControllerComments{ - Method: "UpdateOrders", - Router: `/updateorders`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const CronjobTplController = "github.com/Qihoo360/wayne/src/backend/controllers/cronjob:CronjobTplController" + beego.GlobalControllerRouter[CronjobTplController] = append( + beego.GlobalControllerRouter[CronjobTplController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_customlink.go b/src/backend/routers/commentsRouter_controllers_customlink.go new file mode 100644 index 000000000..385e4da03 --- /dev/null +++ b/src/backend/routers/commentsRouter_controllers_customlink.go @@ -0,0 +1,116 @@ +package routers + +import ( + "github.com/astaxie/beego" + "github.com/astaxie/beego/context/param" +) + +func init() { + const CustomLinkController = "github.com/Qihoo360/wayne/src/backend/controllers/customlink:CustomLinkController" + beego.GlobalControllerRouter[CustomLinkController] = append( + beego.GlobalControllerRouter[CustomLinkController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "ChangeStatus", + Router: `/:id/status`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) + + const LinkTypeController = "github.com/Qihoo360/wayne/src/backend/controllers/customlink:LinkTypeController" + beego.GlobalControllerRouter[LinkTypeController] = append( + beego.GlobalControllerRouter[LinkTypeController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) + + const ShowLinkController = "github.com/Qihoo360/wayne/src/backend/controllers/customlink:ShowLinkController" + beego.GlobalControllerRouter[ShowLinkController] = append( + beego.GlobalControllerRouter[ShowLinkController], + beego.ControllerComments{ + Method: "List", + Router: `/links`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) +} diff --git a/src/backend/routers/commentsRouter_controllers_daemonset.go b/src/backend/routers/commentsRouter_controllers_daemonset.go index 3d1570ced..ff338332d 100644 --- a/src/backend/routers/commentsRouter_controllers_daemonset.go +++ b/src/backend/routers/commentsRouter_controllers_daemonset.go @@ -6,101 +6,107 @@ import ( ) func init() { + const DaemonSetController = "github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController" + beego.GlobalControllerRouter[DaemonSetController] = append( + beego.GlobalControllerRouter[DaemonSetController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateOrders", + Router: `/updateorders`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetController"], - beego.ControllerComments{ - Method: "UpdateOrders", - Router: `/updateorders`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const DaemonSetTplController = "github.com/Qihoo360/wayne/src/backend/controllers/daemonset:DaemonSetTplController" + beego.GlobalControllerRouter[DaemonSetTplController] = append( + beego.GlobalControllerRouter[DaemonSetTplController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_deployment.go b/src/backend/routers/commentsRouter_controllers_deployment.go index ce7e936ee..b3e8d3a72 100644 --- a/src/backend/routers/commentsRouter_controllers_deployment.go +++ b/src/backend/routers/commentsRouter_controllers_deployment.go @@ -6,101 +6,107 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController"], - beego.ControllerComments{ - Method: "UpdateOrders", - Router: `/updateorders`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const DeploymentController = "github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentController" + beego.GlobalControllerRouter[DeploymentController] = append( + beego.GlobalControllerRouter[DeploymentController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateOrders", + Router: `/updateorders`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) + + const DeploymentTplController = "github.com/Qihoo360/wayne/src/backend/controllers/deployment:DeploymentTplController" + beego.GlobalControllerRouter[DeploymentTplController] = append( + beego.GlobalControllerRouter[DeploymentTplController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_hpa.go b/src/backend/routers/commentsRouter_controllers_hpa.go index cfa285744..72bcb84e2 100644 --- a/src/backend/routers/commentsRouter_controllers_hpa.go +++ b/src/backend/routers/commentsRouter_controllers_hpa.go @@ -6,101 +6,107 @@ import ( ) func init() { + const HPAController = "github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController" + beego.GlobalControllerRouter[HPAController] = append( + beego.GlobalControllerRouter[HPAController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateOrders", + Router: `/updateorders`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPAController"], - beego.ControllerComments{ - Method: "UpdateOrders", - Router: `/updateorders`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - + const HPATplController = "github.com/Qihoo360/wayne/src/backend/controllers/hpa:HPATplController" + beego.GlobalControllerRouter[HPATplController] = append( + beego.GlobalControllerRouter[HPATplController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_ingress.go b/src/backend/routers/commentsRouter_controllers_ingress.go index a20372f58..3f37decf8 100644 --- a/src/backend/routers/commentsRouter_controllers_ingress.go +++ b/src/backend/routers/commentsRouter_controllers_ingress.go @@ -6,101 +6,107 @@ import ( ) func init() { + const IngressController = "github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController" + beego.GlobalControllerRouter[IngressController] = append( + beego.GlobalControllerRouter[IngressController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateOrders", + Router: `/updateorders`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressController"], - beego.ControllerComments{ - Method: "UpdateOrders", - Router: `/updateorders`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - + const IngressTplController = "github.com/Qihoo360/wayne/src/backend/controllers/ingress:IngressTplController" + beego.GlobalControllerRouter[IngressTplController] = append( + beego.GlobalControllerRouter[IngressTplController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_configmap.go b/src/backend/routers/commentsRouter_controllers_kubernetes_configmap.go index c5cc99820..3e88d5ef7 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_configmap.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_configmap.go @@ -6,13 +6,15 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/configmap:KubeConfigMapController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/configmap:KubeConfigMapController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:configMapId/tpls/:tplId/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeConfigMapController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/configmap:KubeConfigMapController" + beego.GlobalControllerRouter[KubeConfigMapController] = append( + beego.GlobalControllerRouter[KubeConfigMapController], + beego.ControllerComments{ + Method: "Create", + Router: `/:configMapId/tpls/:tplId/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_crd.go b/src/backend/routers/commentsRouter_controllers_kubernetes_crd.go index 239ad6b2a..753bd2add 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_crd.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_crd.go @@ -6,95 +6,91 @@ import ( ) func init() { + const KubeCRDController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController" + beego.GlobalControllerRouter[KubeCRDController] = append( + beego.GlobalControllerRouter[KubeCRDController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:name`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:name`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:name`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:name`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:name`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCRDController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:name`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:name`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:name`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:name`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - + const KubeCustomCRDController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/crd:KubeCustomCRDController" + beego.GlobalControllerRouter[KubeCustomCRDController] = append( + beego.GlobalControllerRouter[KubeCustomCRDController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:name`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:name`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:name`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_cronjob.go b/src/backend/routers/commentsRouter_controllers_kubernetes_cronjob.go index ad762ec8d..a4809d883 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_cronjob.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_cronjob.go @@ -6,37 +6,39 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/cronjob:KubeCronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/cronjob:KubeCronjobController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:cronjob/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/cronjob:KubeCronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/cronjob:KubeCronjobController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:cronjob/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/cronjob:KubeCronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/cronjob:KubeCronjobController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:cronjobId/tpls/:tplId/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/cronjob:KubeCronjobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/cronjob:KubeCronjobController"], - beego.ControllerComments{ - Method: "Suspend", - Router: `/:cronjobId/tpls/:tplId/clusters/:cluster/suspend`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeCronjobController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/cronjob:KubeCronjobController" + beego.GlobalControllerRouter[KubeCronjobController] = append( + beego.GlobalControllerRouter[KubeCronjobController], + beego.ControllerComments{ + Method: "Get", + Router: `/:cronjob/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:cronjob/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/:cronjobId/tpls/:tplId/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Suspend", + Router: `/:cronjobId/tpls/:tplId/clusters/:cluster/suspend`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_daemonset.go b/src/backend/routers/commentsRouter_controllers_kubernetes_daemonset.go index 336b32db8..29ca34d12 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_daemonset.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_daemonset.go @@ -6,29 +6,31 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/daemonset:KubeDaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/daemonset:KubeDaemonSetController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:daemonSet/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/daemonset:KubeDaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/daemonset:KubeDaemonSetController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:daemonSet/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/daemonset:KubeDaemonSetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/daemonset:KubeDaemonSetController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:daemonSetId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeDaemonSetController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/daemonset:KubeDaemonSetController" + beego.GlobalControllerRouter[KubeDaemonSetController] = append( + beego.GlobalControllerRouter[KubeDaemonSetController], + beego.ControllerComments{ + Method: "Get", + Router: `/:daemonSet/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:daemonSet/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/:daemonSetId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_deployment.go b/src/backend/routers/commentsRouter_controllers_kubernetes_deployment.go index 1dbe7eb92..39b5cbd98 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_deployment.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_deployment.go @@ -7,40 +7,49 @@ import ( func init() { - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:deployment/detail/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:deployment/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:deploymentId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"], - beego.ControllerComments{ - Method: "List", - Router: `/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"], + beego.ControllerComments{ + Method: "Get", + Router: `/:deployment/detail/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"], + beego.ControllerComments{ + Method: "Delete", + Router: `/:deployment/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"], + beego.ControllerComments{ + Method: "UpdateScale", + Router: `/:deployment/namespaces/:namespace/clusters/:cluster/updatescale`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"], + beego.ControllerComments{ + Method: "Create", + Router: `/:deploymentId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/deployment:KubeDeploymentController"], + beego.ControllerComments{ + Method: "List", + Router: `/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_event.go b/src/backend/routers/commentsRouter_controllers_kubernetes_event.go index bbfbef4de..c95ffc9db 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_event.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_event.go @@ -6,13 +6,15 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/event:KubeEventController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/event:KubeEventController"], - beego.ControllerComments{ - Method: "List", - Router: `/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeEventController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/event:KubeEventController" + beego.GlobalControllerRouter[KubeEventController] = append( + beego.GlobalControllerRouter[KubeEventController], + beego.ControllerComments{ + Method: "List", + Router: `/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_hpa.go b/src/backend/routers/commentsRouter_controllers_kubernetes_hpa.go index 2a834a099..937557011 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_hpa.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_hpa.go @@ -6,13 +6,15 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/hpa:KubeHPAController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/hpa:KubeHPAController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:hpaId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeHPAController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/hpa:KubeHPAController" + beego.GlobalControllerRouter[KubeHPAController] = append( + beego.GlobalControllerRouter[KubeHPAController], + beego.ControllerComments{ + Method: "Create", + Router: `/:hpaId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_ingress.go b/src/backend/routers/commentsRouter_controllers_kubernetes_ingress.go index 18ef67ee5..527cac6fb 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_ingress.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_ingress.go @@ -6,13 +6,15 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/ingress:KubeIngressController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/ingress:KubeIngressController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:ingressId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeIngressController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/ingress:KubeIngressController" + beego.GlobalControllerRouter[KubeIngressController] = append( + beego.GlobalControllerRouter[KubeIngressController], + beego.ControllerComments{ + Method: "Create", + Router: `/:ingressId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_job.go b/src/backend/routers/commentsRouter_controllers_kubernetes_job.go index 6156ee8d8..a58e7af70 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_job.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_job.go @@ -6,13 +6,22 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/job:KubeJobController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/job:KubeJobController"], - beego.ControllerComments{ - Method: "ListJobByCronJob", - Router: `/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) + const KubeJobController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/job:KubeJobController" + beego.GlobalControllerRouter[KubeJobController] = append( + beego.GlobalControllerRouter[KubeJobController], + beego.ControllerComments{ + Method: "ListJobByCronJob", + Router: `/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}, + beego.ControllerComments{ + Method: "DeleteJob", + Router: `/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_log.go b/src/backend/routers/commentsRouter_controllers_kubernetes_log.go index da12b9783..7cb09df70 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_log.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_log.go @@ -6,13 +6,15 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/log:KubeLogController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/log:KubeLogController"], - beego.ControllerComments{ - Method: "List", - Router: `/:pod/containers/:container/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeLogController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/log:KubeLogController" + beego.GlobalControllerRouter[KubeLogController] = append( + beego.GlobalControllerRouter[KubeLogController], + beego.ControllerComments{ + Method: "List", + Router: `/:pod/containers/:container/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_namespace.go b/src/backend/routers/commentsRouter_controllers_kubernetes_namespace.go index 6e403d2d1..4f5422d76 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_namespace.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_namespace.go @@ -6,29 +6,31 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/namespace:KubeNamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/namespace:KubeNamespaceController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:name/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/namespace:KubeNamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/namespace:KubeNamespaceController"], - beego.ControllerComments{ - Method: "Resources", - Router: `/:namespaceid([0-9]+)/resources`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/namespace:KubeNamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/namespace:KubeNamespaceController"], - beego.ControllerComments{ - Method: "Statistics", - Router: `/:namespaceid([0-9]+)/statistics`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeNamespaceController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/namespace:KubeNamespaceController" + beego.GlobalControllerRouter[KubeNamespaceController] = append( + beego.GlobalControllerRouter[KubeNamespaceController], + beego.ControllerComments{ + Method: "Create", + Router: `/:name/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Resources", + Router: `/:namespaceid([0-9]+)/resources`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Statistics", + Router: `/:namespaceid([0-9]+)/statistics`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_node.go b/src/backend/routers/commentsRouter_controllers_kubernetes_node.go index 6bce454e2..5fa730231 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_node.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_node.go @@ -7,44 +7,112 @@ import ( func init() { - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:name/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:name/clusters/:cluster`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:name/clusters/:cluster`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], - beego.ControllerComments{ - Method: "List", - Router: `/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], - beego.ControllerComments{ - Method: "NodeStatistics", - Router: `/statistics`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "Get", + Router: `/:name/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "Update", + Router: `/:name/clusters/:cluster`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "Delete", + Router: `/:name/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "AddLabel", + Router: `/:name/clusters/:cluster/label`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "DeleteLabel", + Router: `/:name/clusters/:cluster/label`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "GetLabels", + Router: `/:name/clusters/:cluster/labels`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "AddLabels", + Router: `/:name/clusters/:cluster/labels`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "DeleteLabels", + Router: `/:name/clusters/:cluster/labels`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "SetTaint", + Router: `/:name/clusters/:cluster/taint`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "DeleteTaint", + Router: `/:name/clusters/:cluster/taint`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "List", + Router: `/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/node:KubeNodeController"], + beego.ControllerComments{ + Method: "NodeStatistics", + Router: `/statistics`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_pod.go b/src/backend/routers/commentsRouter_controllers_kubernetes_pod.go index 1f0eb2cf5..c4d033c39 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_pod.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_pod.go @@ -6,21 +6,23 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pod:KubePodController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pod:KubePodController"], - beego.ControllerComments{ - Method: "Terminal", - Router: `/:pod/terminal/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pod:KubePodController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pod:KubePodController"], - beego.ControllerComments{ - Method: "List", - Router: `/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const KubePodController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pod:KubePodController" + beego.GlobalControllerRouter[KubePodController] = append( + beego.GlobalControllerRouter[KubePodController], + beego.ControllerComments{ + Method: "Terminal", + Router: `/:pod/terminal/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "List", + Router: `/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_proxy.go b/src/backend/routers/commentsRouter_controllers_kubernetes_proxy.go index 5a7acf0c9..f4cbb715a 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_proxy.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_proxy.go @@ -6,59 +6,55 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:name`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:name`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:name`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - + const KubeProxyController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/proxy:KubeProxyController" + beego.GlobalControllerRouter[KubeProxyController] = append( + beego.GlobalControllerRouter[KubeProxyController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:name`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:name`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:name`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_pv.go b/src/backend/routers/commentsRouter_controllers_kubernetes_pv.go index 4d332ea04..2aad2eb61 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_pv.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_pv.go @@ -6,61 +6,67 @@ import ( ) func init() { + const KubePersistentVolumeController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController" + beego.GlobalControllerRouter[KubePersistentVolumeController] = append( + beego.GlobalControllerRouter[KubePersistentVolumeController], + beego.ControllerComments{ + Method: "Get", + Router: `/:name/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:name/clusters/:cluster`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:name/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "List", + Router: `/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:name/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:name/clusters/:cluster`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:name/clusters/:cluster`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"], - beego.ControllerComments{ - Method: "List", - Router: `/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:KubePersistentVolumeController"], - beego.ControllerComments{ - Method: "Create", - Router: `/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:RobinPersistentVolumeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:RobinPersistentVolumeController"], - beego.ControllerComments{ - Method: "ListRbdImages", - Router: `/rbd.images/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:RobinPersistentVolumeController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:RobinPersistentVolumeController"], - beego.ControllerComments{ - Method: "CreateRbdImage", - Router: `/rbd.images/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - + const RobinPersistentVolumeController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pv:RobinPersistentVolumeController" + beego.GlobalControllerRouter[RobinPersistentVolumeController] = append( + beego.GlobalControllerRouter[RobinPersistentVolumeController], + beego.ControllerComments{ + Method: "ListRbdImages", + Router: `/rbd.images/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "CreateRbdImage", + Router: `/rbd.images/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_pvc.go b/src/backend/routers/commentsRouter_controllers_kubernetes_pvc.go index 25f7e55a9..ff6efa88f 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_pvc.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_pvc.go @@ -6,101 +6,106 @@ import ( ) func init() { + const KubePersistentVolumeClaimController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:KubePersistentVolumeClaimController" + beego.GlobalControllerRouter[KubePersistentVolumeClaimController] = append( + beego.GlobalControllerRouter[KubePersistentVolumeClaimController], + beego.ControllerComments{ + Method: "Create", + Router: `/:pvcId/tpls/:tplId/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:KubePersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:KubePersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:pvcId/tpls/:tplId/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "ActiveImage", - Router: `/:pvc/rbd/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "InActiveImage", - Router: `/:pvc/rbd/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "DeleteSnapshot", - Router: `/:pvc/snapshot/:version/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "RollbackSnapshot", - Router: `/:pvc/snapshot/:version/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "CreateSnapshot", - Router: `/:pvc/snapshot/:version/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "ListSnapshot", - Router: `/:pvc/snapshot/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "DeleteAllSnapshot", - Router: `/:pvc/snapshot/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "GetPvcStatus", - Router: `/:pvc/status/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "OfflineImageUser", - Router: `/:pvc/user/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "LoginInfo", - Router: `/:pvc/user/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "Verify", - Router: `/:pvc/verify/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const RobinPersistentVolumeClaimController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/pvc:RobinPersistentVolumeClaimController" + beego.GlobalControllerRouter[RobinPersistentVolumeClaimController] = append( + beego.GlobalControllerRouter[RobinPersistentVolumeClaimController], + beego.ControllerComments{ + Method: "ActiveImage", + Router: `/:pvc/rbd/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "InActiveImage", + Router: `/:pvc/rbd/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "DeleteSnapshot", + Router: `/:pvc/snapshot/:version/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "RollbackSnapshot", + Router: `/:pvc/snapshot/:version/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "CreateSnapshot", + Router: `/:pvc/snapshot/:version/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "ListSnapshot", + Router: `/:pvc/snapshot/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "DeleteAllSnapshot", + Router: `/:pvc/snapshot/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetPvcStatus", + Router: `/:pvc/status/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "OfflineImageUser", + Router: `/:pvc/user/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "LoginInfo", + Router: `/:pvc/user/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Verify", + Router: `/:pvc/verify/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_secret.go b/src/backend/routers/commentsRouter_controllers_kubernetes_secret.go index 5d3932fdf..d88027290 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_secret.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_secret.go @@ -6,13 +6,15 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/secret:KubeSecretController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/secret:KubeSecretController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:secretId/tpls/:tplId/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeSecretController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/secret:KubeSecretController" + beego.GlobalControllerRouter[KubeSecretController] = append( + beego.GlobalControllerRouter[KubeSecretController], + beego.ControllerComments{ + Method: "Create", + Router: `/:secretId/tpls/:tplId/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_service.go b/src/backend/routers/commentsRouter_controllers_kubernetes_service.go index 31273eb1d..026b4e8d0 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_service.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_service.go @@ -6,21 +6,23 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/service:KubeServiceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/service:KubeServiceController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:service/detail/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/service:KubeServiceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/service:KubeServiceController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:serviceId/tpls/:tplId/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeServiceController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/service:KubeServiceController" + beego.GlobalControllerRouter[KubeServiceController] = append( + beego.GlobalControllerRouter[KubeServiceController], + beego.ControllerComments{ + Method: "Get", + Router: `/:service/detail/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/:serviceId/tpls/:tplId/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_kubernetes_statefulset.go b/src/backend/routers/commentsRouter_controllers_kubernetes_statefulset.go index de3415d79..a7e45d8c4 100644 --- a/src/backend/routers/commentsRouter_controllers_kubernetes_statefulset.go +++ b/src/backend/routers/commentsRouter_controllers_kubernetes_statefulset.go @@ -6,21 +6,23 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/statefulset:KubeStatefulsetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/statefulset:KubeStatefulsetController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:statefulset/namespaces/:namespace/clusters/:cluster`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/statefulset:KubeStatefulsetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/statefulset:KubeStatefulsetController"], - beego.ControllerComments{ - Method: "Create", - Router: `/:statefulsetId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - + const KubeStatefulsetController = "github.com/Qihoo360/wayne/src/backend/controllers/kubernetes/statefulset:KubeStatefulsetController" + beego.GlobalControllerRouter[KubeStatefulsetController] = append( + beego.GlobalControllerRouter[KubeStatefulsetController], + beego.ControllerComments{ + Method: "Get", + Router: `/:statefulset/namespaces/:namespace/clusters/:cluster`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/:statefulsetId([0-9]+)/tpls/:tplId([0-9]+)/clusters/:cluster`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_namespace.go b/src/backend/routers/commentsRouter_controllers_namespace.go index 910034a9e..8358b4603 100644 --- a/src/backend/routers/commentsRouter_controllers_namespace.go +++ b/src/backend/routers/commentsRouter_controllers_namespace.go @@ -6,77 +6,88 @@ import ( ) func init() { + const NamespaceController = "github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController" + beego.GlobalControllerRouter[NamespaceController] = append( + beego.GlobalControllerRouter[NamespaceController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Statistics", + Router: `/:id([0-9]+)/statistics`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "History", + Router: `/:id/history`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "InitDefault", + Router: `/init`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Migrate", + Router: `/migration`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], - beego.ControllerComments{ - Method: "Statistics", - Router: `/:id([0-9]+)/statistics`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], - beego.ControllerComments{ - Method: "History", - Router: `/:id/history`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], - beego.ControllerComments{ - Method: "InitDefault", - Router: `/init`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/namespace:NamespaceController"], + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_notification.go b/src/backend/routers/commentsRouter_controllers_notification.go index 01b26c074..f2b87d731 100644 --- a/src/backend/routers/commentsRouter_controllers_notification.go +++ b/src/backend/routers/commentsRouter_controllers_notification.go @@ -6,45 +6,47 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"], - beego.ControllerComments{ - Method: "Publish", - Router: `/`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"], - beego.ControllerComments{ - Method: "Subscribe", - Router: `/subscribe`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController"], - beego.ControllerComments{ - Method: "Read", - Router: `/subscribe`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - + const NotificationController = "github.com/Qihoo360/wayne/src/backend/controllers/notification:NotificationController" + beego.GlobalControllerRouter[NotificationController] = append( + beego.GlobalControllerRouter[NotificationController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Publish", + Router: `/`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Subscribe", + Router: `/subscribe`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Read", + Router: `/subscribe`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_openapi.go b/src/backend/routers/commentsRouter_controllers_openapi.go index 208499a9a..95f1d8331 100644 --- a/src/backend/routers/commentsRouter_controllers_openapi.go +++ b/src/backend/routers/commentsRouter_controllers_openapi.go @@ -6,77 +6,111 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"], - beego.ControllerComments{ - Method: "GetDeploymentStatus", - Router: `/get_deployment_status`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"], - beego.ControllerComments{ - Method: "GetPodInfo", - Router: `/get_pod_info`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"], - beego.ControllerComments{ - Method: "GetPodInfoFromIP", - Router: `/get_pod_info_from_ip`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"], - beego.ControllerComments{ - Method: "GetPodList", - Router: `/get_pod_list`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"], - beego.ControllerComments{ - Method: "GetResourceInfo", - Router: `/get_resource_info`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"], - beego.ControllerComments{ - Method: "RestartDeployment", - Router: `/restart_deployment`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"], - beego.ControllerComments{ - Method: "ScaleDeployment", - Router: `/scale_deployment`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController"], - beego.ControllerComments{ - Method: "UpgradeDeployment", - Router: `/upgrade_deployment`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - + const OpenAPIController = "github.com/Qihoo360/wayne/src/backend/controllers/openapi:OpenAPIController" + beego.GlobalControllerRouter[OpenAPIController] = append( + beego.GlobalControllerRouter[OpenAPIController], + beego.ControllerComments{ + Method: "ListAppDeploys", + Router: `/get_app_deploys`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetDeploymentDetail", + Router: `/get_deployment_detail`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetDeploymentStatus", + Router: `/get_deployment_status`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetLatestDeploymentTpl", + Router: `/get_latest_deployment_tpl`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetPodInfo", + Router: `/get_pod_info`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetPodInfoFromIP", + Router: `/get_pod_info_from_ip`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetPodList", + Router: `/get_pod_list`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetResourceInfo", + Router: `/get_resource_info`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "ListNamespaceApps", + Router: `/list_namespace_apps`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "ListNamespaceUsers", + Router: `/list_namespace_users`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "RestartDeployment", + Router: `/restart_deployment`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "ScaleDeployment", + Router: `/scale_deployment`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpgradeDeployment", + Router: `/upgrade_deployment`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_permission.go b/src/backend/routers/commentsRouter_controllers_permission.go index ab3d3b252..446f77641 100644 --- a/src/backend/routers/commentsRouter_controllers_permission.go +++ b/src/backend/routers/commentsRouter_controllers_permission.go @@ -6,253 +6,271 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController"], - beego.ControllerComments{ - Method: "GetPermissionByApp", - Router: `/permissions/:id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController"], - beego.ControllerComments{ - Method: "GetPermissionByNS", - Router: `/permissions/:id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"], - beego.ControllerComments{ - Method: "UpdateAdmin", - Router: `/:id/admin`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"], - beego.ControllerComments{ - Method: "ResetPassword", - Router: `/:id/resetpassword`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController"], - beego.ControllerComments{ - Method: "UserStatistics", - Router: `/statistics`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const AppUserController = "github.com/Qihoo360/wayne/src/backend/controllers/permission:AppUserController" + beego.GlobalControllerRouter[AppUserController] = append( + beego.GlobalControllerRouter[AppUserController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetPermissionByApp", + Router: `/permissions/:id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) + + const GroupController = "github.com/Qihoo360/wayne/src/backend/controllers/permission:GroupController" + beego.GlobalControllerRouter[GroupController] = append( + beego.GlobalControllerRouter[GroupController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) + + const NamespaceUserController = "github.com/Qihoo360/wayne/src/backend/controllers/permission:NamespaceUserController" + beego.GlobalControllerRouter[NamespaceUserController] = append( + beego.GlobalControllerRouter[NamespaceUserController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetPermissionByNS", + Router: `/permissions/:id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) + + const PermissionController = "github.com/Qihoo360/wayne/src/backend/controllers/permission:PermissionController" + beego.GlobalControllerRouter[PermissionController] = append( + beego.GlobalControllerRouter[PermissionController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) + + const UserController = "github.com/Qihoo360/wayne/src/backend/controllers/permission:UserController" + beego.GlobalControllerRouter[UserController] = append( + beego.GlobalControllerRouter[UserController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateAdmin", + Router: `/:id/admin`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "ResetPassword", + Router: `/:id/resetpassword`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UserStatistics", + Router: `/statistics`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_publish.go b/src/backend/routers/commentsRouter_controllers_publish.go index 3e21eb954..5293b0ec5 100644 --- a/src/backend/routers/commentsRouter_controllers_publish.go +++ b/src/backend/routers/commentsRouter_controllers_publish.go @@ -6,21 +6,23 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/publish:PublishController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/publish:PublishController"], - beego.ControllerComments{ - Method: "List", - Router: `/histories`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/publish:PublishController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/publish:PublishController"], - beego.ControllerComments{ - Method: "Statistics", - Router: `/statistics`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const PublishController = "github.com/Qihoo360/wayne/src/backend/controllers/publish:PublishController" + beego.GlobalControllerRouter[PublishController] = append( + beego.GlobalControllerRouter[PublishController], + beego.ControllerComments{ + Method: "List", + Router: `/histories`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Statistics", + Router: `/statistics`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_publishstatus.go b/src/backend/routers/commentsRouter_controllers_publishstatus.go index 6ff0c3f66..3cc58dccf 100644 --- a/src/backend/routers/commentsRouter_controllers_publishstatus.go +++ b/src/backend/routers/commentsRouter_controllers_publishstatus.go @@ -6,21 +6,23 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/publishstatus:PublishStatusController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/publishstatus:PublishStatusController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/publishstatus:PublishStatusController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/publishstatus:PublishStatusController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - + const ConfigMapController = "github.com/Qihoo360/wayne/src/backend/controllers/publishstatus:PublishStatusController" + beego.GlobalControllerRouter[ConfigMapController] = append( + beego.GlobalControllerRouter[ConfigMapController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_pvc.go b/src/backend/routers/commentsRouter_controllers_pvc.go index 33c473446..3a895c87a 100644 --- a/src/backend/routers/commentsRouter_controllers_pvc.go +++ b/src/backend/routers/commentsRouter_controllers_pvc.go @@ -6,101 +6,107 @@ import ( ) func init() { + const PersistentVolumeClaimController = "github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController" + beego.GlobalControllerRouter[PersistentVolumeClaimController] = append( + beego.GlobalControllerRouter[PersistentVolumeClaimController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateOrders", + Router: `/updateorders`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimController"], - beego.ControllerComments{ - Method: "UpdateOrders", - Router: `/updateorders`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const PersistentVolumeClaimTplController = "github.com/Qihoo360/wayne/src/backend/controllers/pvc:PersistentVolumeClaimTplController" + beego.GlobalControllerRouter[PersistentVolumeClaimTplController] = append( + beego.GlobalControllerRouter[PersistentVolumeClaimTplController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_secret.go b/src/backend/routers/commentsRouter_controllers_secret.go index 5f3a451e9..5fd46e575 100644 --- a/src/backend/routers/commentsRouter_controllers_secret.go +++ b/src/backend/routers/commentsRouter_controllers_secret.go @@ -6,101 +6,108 @@ import ( ) func init() { + const SecretController = "github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController" + beego.GlobalControllerRouter[SecretController] = append( + beego.GlobalControllerRouter[SecretController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateOrders", + Router: `/updateorders`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretController"], - beego.ControllerComments{ - Method: "UpdateOrders", - Router: `/updateorders`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) + const SecretTplController = "github.com/Qihoo360/wayne/src/backend/controllers/secret:SecretTplController" + beego.GlobalControllerRouter[SecretTplController] = append( + beego.GlobalControllerRouter[SecretTplController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_statefulset.go b/src/backend/routers/commentsRouter_controllers_statefulset.go index 524da39c1..008bba469 100644 --- a/src/backend/routers/commentsRouter_controllers_statefulset.go +++ b/src/backend/routers/commentsRouter_controllers_statefulset.go @@ -6,101 +6,107 @@ import ( ) func init() { + const StatefulsetController = "github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController" + beego.GlobalControllerRouter[StatefulsetController] = append( + beego.GlobalControllerRouter[StatefulsetController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetNames", + Router: `/names`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "UpdateOrders", + Router: `/updateorders`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"], - beego.ControllerComments{ - Method: "GetNames", - Router: `/names`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetController"], - beego.ControllerComments{ - Method: "UpdateOrders", - Router: `/updateorders`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const StatefulsetTplController = "github.com/Qihoo360/wayne/src/backend/controllers/statefulset:StatefulsetTplController" + beego.GlobalControllerRouter[StatefulsetTplController] = append( + beego.GlobalControllerRouter[StatefulsetTplController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/commentsRouter_controllers_webhook.go b/src/backend/routers/commentsRouter_controllers_webhook.go index 1f276976e..677894331 100644 --- a/src/backend/routers/commentsRouter_controllers_webhook.go +++ b/src/backend/routers/commentsRouter_controllers_webhook.go @@ -6,53 +6,55 @@ import ( ) func init() { - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"], - beego.ControllerComments{ - Method: "List", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"], - beego.ControllerComments{ - Method: "Create", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:id([0-9]+)`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - - beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"] = append(beego.GlobalControllerRouter["github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController"], - beego.ControllerComments{ - Method: "GetHookEvents", - Router: `/events`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Params: nil}) - + const WebHookController = "github.com/Qihoo360/wayne/src/backend/controllers/webhook:WebHookController" + beego.GlobalControllerRouter[WebHookController] = append( + beego.GlobalControllerRouter[WebHookController], + beego.ControllerComments{ + Method: "List", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Create", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Update", + Router: `/:id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Delete", + Router: `/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "Get", + Router: `/:id([0-9]+)`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }, + beego.ControllerComments{ + Method: "GetHookEvents", + Router: `/events`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil, + }) } diff --git a/src/backend/routers/router.go b/src/backend/routers/router.go index 8a43506ff..681d10cdc 100644 --- a/src/backend/routers/router.go +++ b/src/backend/routers/router.go @@ -5,12 +5,10 @@ package routers import ( "net/http" + "os" "path" + "runtime" - "github.com/astaxie/beego" - "github.com/astaxie/beego/context" - - "github.com/Qihoo360/wayne/src/backend/controllers" "github.com/Qihoo360/wayne/src/backend/controllers/apikey" "github.com/Qihoo360/wayne/src/backend/controllers/app" "github.com/Qihoo360/wayne/src/backend/controllers/appstarred" @@ -21,6 +19,7 @@ import ( "github.com/Qihoo360/wayne/src/backend/controllers/config" "github.com/Qihoo360/wayne/src/backend/controllers/configmap" "github.com/Qihoo360/wayne/src/backend/controllers/cronjob" + "github.com/Qihoo360/wayne/src/backend/controllers/customlink" "github.com/Qihoo360/wayne/src/backend/controllers/daemonset" "github.com/Qihoo360/wayne/src/backend/controllers/deployment" "github.com/Qihoo360/wayne/src/backend/controllers/hpa" @@ -57,6 +56,9 @@ import ( "github.com/Qihoo360/wayne/src/backend/health" _ "github.com/Qihoo360/wayne/src/backend/plugins" "github.com/Qihoo360/wayne/src/backend/util/hack" + "github.com/astaxie/beego" + "github.com/astaxie/beego/context" + "github.com/astaxie/beego/plugins/cors" ) func init() { @@ -65,6 +67,19 @@ func init() { beego.AppPath = path.Join(path.Dir(beego.AppPath), "src/backend") } + // linux 的go run 执行路径 是/tmp/go-buildxxxx,会使注解路由生成文件名很奇怪 + if beego.BConfig.RunMode == "dev" && runtime.GOOS == "linux" { + beego.AppPath, _ = os.Getwd() + } + + beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{ + AllowAllOrigins: true, + AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}, + AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"}, + ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"}, + AllowCredentials: true, + })) + beego.Handler("/ws/pods/exec", kpod.CreateAttachHandler("/ws/pods/exec"), true) beego.Get("/healthz", func(ctx *context.Context) { @@ -318,6 +333,11 @@ func init() { &bill.BillController{}, ), ), + beego.NSNamespace("/namespaces/:namespaceid([0-9]+)/customlink", + beego.NSInclude( + &customlink.ShowLinkController{}, + ), + ), ) nsWithoutApp := beego.NewNamespace("/api/v1", @@ -332,6 +352,16 @@ func init() { &config.BaseConfigController{}, ), ), + beego.NSNamespace("/linktypes", + beego.NSInclude( + &customlink.LinkTypeController{}, + ), + ), + beego.NSNamespace("/customlinks", + beego.NSInclude( + &customlink.CustomLinkController{}, + ), + ), beego.NSRouter("/apps/statistics", &app.AppController{}, "get:AppStatistics"), beego.NSNamespace("/clusters", beego.NSInclude( @@ -434,7 +464,4 @@ func init() { beego.AddNamespace(nsWithOpenAPI) beego.AddNamespace(nsWithKubernetesProxy) - - beego.Router("/*", &controllers.IndexController{}) - } diff --git a/src/backend/workers/webhook/newhook.go b/src/backend/workers/webhook/newhook.go new file mode 100644 index 000000000..70858071b --- /dev/null +++ b/src/backend/workers/webhook/newhook.go @@ -0,0 +1,166 @@ +package webhook + +import ( + "bytes" + "crypto/sha1" + "encoding/json" + "errors" + "fmt" + "net" + "net/http" + "os" + "time" + + "github.com/astaxie/beego" + + "github.com/Qihoo360/wayne/src/backend/bus/message" + "github.com/Qihoo360/wayne/src/backend/bus/newbus" + "github.com/Qihoo360/wayne/src/backend/models" + "github.com/Qihoo360/wayne/src/backend/models/response" + "github.com/Qihoo360/wayne/src/backend/util/logs" +) + +const EventName = "webhook" + +var ( + httpClient *http.Client +) + +// init HTTPClient +func init() { + httpClient = createHTTPClient() +} + +const ( + MaxIdleConns int = 100 + MaxIdleConnsPerHost int = 100 + IdleConnTimeout int = 60 +) + +// createHTTPClient for connection re-use +func createHTTPClient() *http.Client { + sec, err := beego.AppConfig.Int("WebhookClientTimeout") + if err != nil || sec == 0 { + sec = 10 + } + client := &http.Client{ + Transport: &http.Transport{ + Proxy: http.ProxyFromEnvironment, + DialContext: (&net.Dialer{ + Timeout: 30 * time.Second, + KeepAlive: 30 * time.Second, + }).DialContext, + MaxIdleConns: MaxIdleConns, + MaxIdleConnsPerHost: MaxIdleConnsPerHost, + IdleConnTimeout: time.Duration(IdleConnTimeout) * time.Second, + }, + Timeout: time.Duration(sec) * time.Second, + } + return client +} + +func RegisterHookHandler() error { + if newbus.UBus != nil { + if err := newbus.UBus.RegisterHandler(EventName, Process); err != nil { + logs.Error("register failed: %s ", err) + return err + } + return nil + } + logs.Error("EventBus 未初始化") + return errors.New("EventBus 未初始化") +} + +func Process(msg *message.Message) error { + var data *message.HookMessageData + switch msg.Type { + case message.TypeHook: + if err := json.Unmarshal(msg.Data, &data); err != nil { + logs.Error(err) + return err + } + logs.Info(data) + default: + return nil // 不处理其他类型数据 + } + webHooks, err := models.WebHookModel.GetTriggered(data.NamespaceId, data.AppId, data.EventKey) + if err != nil { + return err + } + + for _, hook := range webHooks { + go exec(hook, data) + } + return nil +} + +func exec(hook models.WebHook, data *message.HookMessageData) { + request := Request{ + EventKey: data.EventKey, + User: data.User, + IP: data.IP, + Datetime: data.Datetime, + Payload: data.Payload, + } + + if data.NamespaceId != 0 { + ns, err := models.NamespaceModel.GetById(data.NamespaceId) + if err != nil { + logs.Error(err) + } else { + request.Namespace = response.Namespace{ + Id: ns.Id, + Name: ns.Name, + CreateTime: ns.CreateTime, + UpdateTime: ns.UpdateTime, + User: ns.User, + } + } + } + + if data.AppId != 0 { + app, err := models.AppModel.GetById(data.AppId) + if err != nil { + logs.Error(err) + } else { + request.App = response.App{ + Id: app.Id, + Name: app.Name, + Description: app.Description, + User: app.User, + CreateTime: app.CreateTime, + UpdateTime: app.UpdateTime, + } + } + } + + jsonData, err := json.Marshal(request) + if err != nil { + logs.Error(err) + return + } + body := bytes.NewReader(jsonData) + + req, err := http.NewRequest(http.MethodPost, hook.Url, body) + if err != nil { + logs.Error(err) + return + } + ua, _ := os.Hostname() + req.Header.Set("Content-Type", "application/json") + req.Header.Set("User-Agent", fmt.Sprintf("Wayne-WebHook/%s", ua)) + if len(hook.Secret) > 0 { + req.Header.Set("X-Wayne-Signature", fmt.Sprintf("sha1=%x", sha1.New().Sum([]byte(hook.Secret)))) + } + + var resp *http.Response + resp, err = httpClient.Do(req) + if err != nil { + logs.Error(err) + return + } + if resp.StatusCode >= http.StatusBadRequest { + logs.Warning("WebHook failed to call %s with code %d", hook.Url, resp.StatusCode) + } + defer resp.Body.Close() +} diff --git a/src/backend/workers/webhook/payload.go b/src/backend/workers/webhook/payload.go index 657710632..d99a68aea 100644 --- a/src/backend/workers/webhook/payload.go +++ b/src/backend/workers/webhook/payload.go @@ -6,8 +6,8 @@ import ( "github.com/astaxie/beego" - "github.com/Qihoo360/wayne/src/backend/bus" "github.com/Qihoo360/wayne/src/backend/bus/message" + "github.com/Qihoo360/wayne/src/backend/bus/newbus" "github.com/Qihoo360/wayne/src/backend/models" "github.com/Qihoo360/wayne/src/backend/models/hookevent" "github.com/Qihoo360/wayne/src/backend/models/response" @@ -81,8 +81,13 @@ func PublishEventDeployment(namespaceId int64, appId int64, user string, ip stri Type: message.TypeHook, Data: json.RawMessage(messageData), } - if err := bus.Notify(msg); err != nil { - logs.Error(err) + // if err := bus.Notify(msg); err != nil { + // logs.Error(err) + // } + if newbus.UBus != nil { + if err := newbus.UBus.Publish(EventName, msg); err != nil { + logs.Error(err) + } } } } @@ -110,8 +115,13 @@ func PublishEventService(namespaceId int64, appId int64, user string, ip string, Type: message.TypeHook, Data: json.RawMessage(messageData), } - if err := bus.Notify(msg); err != nil { - logs.Error(err) + // if err := bus.Notify(msg); err != nil { + // logs.Error(err) + // } + if newbus.UBus != nil { + if err := newbus.UBus.Publish(EventName, msg); err != nil { + logs.Error(err) + } } } } @@ -139,8 +149,13 @@ func PublishEventIngress(namespaceId int64, appId int64, user string, ip string, Type: message.TypeHook, Data: json.RawMessage(messageData), } - if err := bus.Notify(msg); err != nil { - logs.Error(err) + // if err := bus.Notify(msg); err != nil { + // logs.Error(err) + // } + if newbus.UBus != nil { + if err := newbus.UBus.Publish(EventName, msg); err != nil { + logs.Error(err) + } } } } @@ -170,8 +185,13 @@ func PublishEventMember(namespaceId int64, appId int64, user string, ip string, Type: message.TypeHook, Data: json.RawMessage(messageData), } - if err := bus.Notify(msg); err != nil { - logs.Error(err) + // if err := bus.Notify(msg); err != nil { + // logs.Error(err) + // } + if newbus.UBus != nil { + if err := newbus.UBus.Publish(EventName, msg); err != nil { + logs.Error(err) + } } } } diff --git a/src/frontend/angular.json b/src/frontend/angular.json index 55f8e39bb..0aeff0d60 100644 --- a/src/frontend/angular.json +++ b/src/frontend/angular.json @@ -23,15 +23,15 @@ "polyfills": "src/polyfills.ts", "tsConfig": "src/tsconfig.app.json", "assets": [ - "src/assets" + "src/assets", + "src/config.js" ], "styles": [ "src/styles.scss", "node_modules/xterm/dist/xterm.css", "node_modules/@clr/icons/clr-icons.min.css", "node_modules/prismjs/themes/prism-solarizedlight.css", - "node_modules/diff2html/dist/diff2html.min.css", - "node_modules/wayne-ui/lib/index.css" + "node_modules/diff2html/dist/diff2html.min.css" ], "stylePreprocessorOptions": { "includePaths": ["node_modules"] @@ -113,7 +113,8 @@ ], "scripts": [], "assets": [ - "src/assets" + "src/assets", + "src/config.js" ] } }, diff --git a/src/frontend/lib b/src/frontend/lib index 177a320be..066efdc90 160000 --- a/src/frontend/lib +++ b/src/frontend/lib @@ -1 +1 @@ -Subproject commit 177a320befdefa89eeffabfb48634f32c1ee8549 +Subproject commit 066efdc909689bf04f9c5992d92e4e500d38058d diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index ba06197b8..5428de47d 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -1,2505 +1,2234 @@ { "name": "frontend", - "version": "1.6.1", + "version": "1.8.5", "lockfileVersion": 1, "requires": true, "dependencies": { "@angular-devkit/architect": { - "version": "0.12.3", - "resolved": "http://registry.npm.taobao.org/@angular-devkit/architect/download/@angular-devkit/architect-0.12.3.tgz", - "integrity": "sha1-k2cdbPR6PXUQR1Ok5OrEzIGk050=", + "version": "0.801.1", + "resolved": "https://registry.npm.taobao.org/@angular-devkit/architect/download/@angular-devkit/architect-0.801.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular-devkit%2Farchitect%2Fdownload%2F%40angular-devkit%2Farchitect-0.801.1.tgz", + "integrity": "sha1-yVp72nQHtmIgkyUX++jETavIOqk=", "dev": true, "requires": { - "@angular-devkit/core": "7.2.3", - "rxjs": "6.3.3" + "@angular-devkit/core": "8.1.1", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.4.0.tgz", + "integrity": "sha1-87sP572n+2nerAwW8XtQsLh5BQQ=", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/build-angular": { - "version": "0.12.3", - "resolved": "http://registry.npm.taobao.org/@angular-devkit/build-angular/download/@angular-devkit/build-angular-0.12.3.tgz", - "integrity": "sha1-y2BFVlRRCFF78UGChw5T0ps44hg=", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.12.3", - "@angular-devkit/build-optimizer": "0.12.3", - "@angular-devkit/build-webpack": "0.12.3", - "@angular-devkit/core": "7.2.3", - "@ngtools/webpack": "7.2.3", - "ajv": "6.6.2", - "autoprefixer": "9.4.3", + "version": "0.801.1", + "resolved": "https://registry.npm.taobao.org/@angular-devkit/build-angular/download/@angular-devkit/build-angular-0.801.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular-devkit%2Fbuild-angular%2Fdownload%2F%40angular-devkit%2Fbuild-angular-0.801.1.tgz", + "integrity": "sha1-8gtX0Wq//rrBshrNR9e/AfTZU1U=", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.801.1", + "@angular-devkit/build-optimizer": "0.801.1", + "@angular-devkit/build-webpack": "0.801.1", + "@angular-devkit/core": "8.1.1", + "@ngtools/webpack": "8.1.1", + "ajv": "6.10.0", + "autoprefixer": "9.6.0", + "browserslist": "4.6.3", + "caniuse-lite": "1.0.30000979", "circular-dependency-plugin": "5.0.2", "clean-css": "4.2.1", - "copy-webpack-plugin": "4.6.0", - "file-loader": "2.0.0", - "glob": "7.1.3", - "istanbul": "0.4.5", + "copy-webpack-plugin": "5.0.3", + "core-js": "3.1.4", + "file-loader": "4.0.0", + "glob": "7.1.4", "istanbul-instrumenter-loader": "3.0.1", - "karma-source-map-support": "1.3.0", + "karma-source-map-support": "1.4.0", "less": "3.9.0", - "less-loader": "4.1.0", - "license-webpack-plugin": "2.0.4", - "loader-utils": "1.1.0", - "mini-css-extract-plugin": "0.4.4", + "less-loader": "5.0.0", + "license-webpack-plugin": "2.1.1", + "loader-utils": "1.2.3", + "mini-css-extract-plugin": "0.7.0", "minimatch": "3.0.4", - "node-sass": "4.10.0", - "opn": "5.4.0", + "open": "6.4.0", "parse5": "4.0.0", - "portfinder": "1.0.17", - "postcss": "7.0.13", + "postcss": "7.0.17", "postcss-import": "12.0.1", "postcss-loader": "3.0.0", - "raw-loader": "0.5.1", - "rxjs": "6.3.3", + "raw-loader": "1.0.0", + "rxjs": "6.4.0", + "sass": "1.22.2", "sass-loader": "7.1.0", - "semver": "5.5.1", + "semver": "6.2.0", "source-map-loader": "0.2.4", - "source-map-support": "0.5.9", - "speed-measure-webpack-plugin": "1.2.5", - "stats-webpack-plugin": "0.7.0", + "source-map-support": "0.5.12", + "speed-measure-webpack-plugin": "1.3.1", "style-loader": "0.23.1", "stylus": "0.54.5", "stylus-loader": "3.0.2", - "terser-webpack-plugin": "1.2.1", - "tree-kill": "1.2.0", - "webpack": "4.28.4", - "webpack-dev-middleware": "3.4.0", - "webpack-dev-server": "3.1.14", - "webpack-merge": "4.1.4", + "terser-webpack-plugin": "1.3.0", + "tree-kill": "1.2.1", + "webpack": "4.35.2", + "webpack-dev-middleware": "3.7.0", + "webpack-dev-server": "3.7.2", + "webpack-merge": "4.2.1", "webpack-sources": "1.3.0", - "webpack-subresource-integrity": "1.1.0-rc.6" + "webpack-subresource-integrity": "1.1.0-rc.6", + "worker-plugin": "3.1.0" }, "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "core-js": { + "version": "3.1.4", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.1.4.tgz?cache=0&sync_timestamp=1560599811627&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.1.4.tgz", + "integrity": "sha1-Oig3/EjlguGuJZB6/NbPA7DMegc=", + "dev": true + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.4.0.tgz", + "integrity": "sha1-87sP572n+2nerAwW8XtQsLh5BQQ=", "dev": true, "requires": { - "ajv": "6.6.2", - "ajv-keywords": "3.2.0" + "tslib": "^1.9.0" } }, "semver": { - "version": "5.5.1", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.5.1.tgz", - "integrity": "sha1-ff3YgUvbfKvHvg+x1zTPtmyUBHc=", + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.2.0.tgz", + "integrity": "sha1-TYE9lZCq+KkZJpPWyFuTRN5ZAds=", "dev": true }, "webpack": { - "version": "4.28.4", - "resolved": "http://registry.npm.taobao.org/webpack/download/webpack-4.28.4.tgz", - "integrity": "sha1-HdrmyJiH1++3Uq3ww80yubB+rNA=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "5.7.3", - "acorn-dynamic-import": "3.0.0", - "ajv": "6.6.2", - "ajv-keywords": "3.2.0", - "chrome-trace-event": "1.0.0", - "enhanced-resolve": "4.1.0", - "eslint-scope": "4.0.0", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.4.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "neo-async": "2.6.0", - "node-libs-browser": "2.2.0", - "schema-utils": "0.4.7", - "tapable": "1.1.1", - "terser-webpack-plugin": "1.2.1", - "watchpack": "1.6.0", - "webpack-sources": "1.3.0" + "version": "4.35.2", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.35.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.35.2.tgz", + "integrity": "sha1-XIuKZmAsu9bsZcbmdHkUphwUSbE=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.0.5", + "acorn-dynamic-import": "^4.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^1.0.0", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" } } } }, "@angular-devkit/build-optimizer": { - "version": "0.12.3", - "resolved": "http://registry.npm.taobao.org/@angular-devkit/build-optimizer/download/@angular-devkit/build-optimizer-0.12.3.tgz", - "integrity": "sha1-uEB6uwNgOueSrbYdlk6kMyBNz88=", + "version": "0.801.1", + "resolved": "https://registry.npm.taobao.org/@angular-devkit/build-optimizer/download/@angular-devkit/build-optimizer-0.801.1.tgz?cache=0&sync_timestamp=1562781719331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular-devkit%2Fbuild-optimizer%2Fdownload%2F%40angular-devkit%2Fbuild-optimizer-0.801.1.tgz", + "integrity": "sha1-Hz2WVXSbvVeqCxs2FY5ei/PCvHE=", "dev": true, "requires": { - "loader-utils": "1.1.0", + "loader-utils": "1.2.3", "source-map": "0.5.6", - "typescript": "3.2.4", - "webpack-sources": "1.2.0" + "typescript": "3.4.5", + "webpack-sources": "1.3.0" }, "dependencies": { "source-map": { "version": "0.5.6", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true - }, - "webpack-sources": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.2.0.tgz", - "integrity": "sha1-GBgeDQE/zglvr2+ObUHu///c6sI=", - "dev": true, - "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } } } }, "@angular-devkit/build-webpack": { - "version": "0.12.3", - "resolved": "http://registry.npm.taobao.org/@angular-devkit/build-webpack/download/@angular-devkit/build-webpack-0.12.3.tgz", - "integrity": "sha1-gkuq/VeiKTVI43q4nlHpMYs7RqU=", + "version": "0.801.1", + "resolved": "https://registry.npm.taobao.org/@angular-devkit/build-webpack/download/@angular-devkit/build-webpack-0.801.1.tgz?cache=0&sync_timestamp=1562781719709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular-devkit%2Fbuild-webpack%2Fdownload%2F%40angular-devkit%2Fbuild-webpack-0.801.1.tgz", + "integrity": "sha1-3RuqY5qoLyTB0Y02NZRSKjcZSWY=", "dev": true, "requires": { - "@angular-devkit/architect": "0.12.3", - "@angular-devkit/core": "7.2.3", - "rxjs": "6.3.3" + "@angular-devkit/architect": "0.801.1", + "@angular-devkit/core": "8.1.1", + "rxjs": "6.4.0", + "webpack-merge": "4.2.1" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.4.0.tgz", + "integrity": "sha1-87sP572n+2nerAwW8XtQsLh5BQQ=", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/core": { - "version": "7.2.3", - "resolved": "http://registry.npm.taobao.org/@angular-devkit/core/download/@angular-devkit/core-7.2.3.tgz", - "integrity": "sha1-A/rU7cv79bLw01oSHspFsSc7I4o=", + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular-devkit/core/download/@angular-devkit/core-8.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular-devkit%2Fcore%2Fdownload%2F%40angular-devkit%2Fcore-8.1.1.tgz", + "integrity": "sha1-2nu5CM5Cy1xf3gjWAIgLb9pIYFY=", "dev": true, "requires": { - "ajv": "6.6.2", - "chokidar": "2.0.4", + "ajv": "6.10.0", "fast-json-stable-stringify": "2.0.0", - "rxjs": "6.3.3", + "magic-string": "0.25.3", + "rxjs": "6.4.0", "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.4.0.tgz", + "integrity": "sha1-87sP572n+2nerAwW8XtQsLh5BQQ=", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/schematics": { - "version": "7.2.3", - "resolved": "http://registry.npm.taobao.org/@angular-devkit/schematics/download/@angular-devkit/schematics-7.2.3.tgz", - "integrity": "sha1-6FJp/ETYf9eTFIdQhOzezcQgILU=", + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular-devkit/schematics/download/@angular-devkit/schematics-8.1.1.tgz?cache=0&sync_timestamp=1562781720408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular-devkit%2Fschematics%2Fdownload%2F%40angular-devkit%2Fschematics-8.1.1.tgz", + "integrity": "sha1-klHTPu7qf8zbtI3b0+aD6lN1hxs=", "dev": true, "requires": { - "@angular-devkit/core": "7.2.3", - "rxjs": "6.3.3" + "@angular-devkit/core": "8.1.1", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.4.0.tgz", + "integrity": "sha1-87sP572n+2nerAwW8XtQsLh5BQQ=", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular/animations": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/animations/download/@angular/animations-7.2.2.tgz", - "integrity": "sha1-qB5Ppg3i4z7EYrQ68SKmaSbfcvs=", + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/animations/download/@angular/animations-8.1.1.tgz", + "integrity": "sha1-7oIi1wDbXVbnjf0rnSbvxwEClk0=", "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "@angular/cli": { - "version": "7.2.3", - "resolved": "http://registry.npm.taobao.org/@angular/cli/download/@angular/cli-7.2.3.tgz", - "integrity": "sha1-Es0LsVI4q/0oMDn/wkr3yXynMmg=", + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/cli/download/@angular/cli-8.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular%2Fcli%2Fdownload%2F%40angular%2Fcli-8.1.1.tgz", + "integrity": "sha1-xj5SXHQEZFfwfTXLPsZoGMjG17E=", "dev": true, "requires": { - "@angular-devkit/architect": "0.12.3", - "@angular-devkit/core": "7.2.3", - "@angular-devkit/schematics": "7.2.3", - "@schematics/angular": "7.2.3", - "@schematics/update": "0.12.3", - "inquirer": "6.2.1", - "opn": "5.3.0", - "semver": "5.5.1", - "symbol-observable": "1.2.0" + "@angular-devkit/architect": "0.801.1", + "@angular-devkit/core": "8.1.1", + "@angular-devkit/schematics": "8.1.1", + "@schematics/angular": "8.1.1", + "@schematics/update": "0.801.1", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.0", + "debug": "^4.1.1", + "ini": "1.3.5", + "inquirer": "6.4.1", + "npm-package-arg": "6.1.0", + "open": "6.4.0", + "pacote": "9.5.1", + "read-package-tree": "5.3.1", + "semver": "6.2.0", + "symbol-observable": "1.2.0", + "universal-analytics": "^0.4.20", + "uuid": "^3.3.2" }, "dependencies": { - "opn": { - "version": "5.3.0", - "resolved": "http://registry.npm.taobao.org/opn/download/opn-5.3.0.tgz", - "integrity": "sha1-ZIcVZchjh18FLP31PT48ta21Oxw=", + "ansi-colors": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-4.1.0.tgz", + "integrity": "sha1-4WdL1hAnyMIZue3skptrV2QbDAk=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/builtins/download/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-6.1.0.tgz", + "integrity": "sha1-Fa4eJ1ilAn77TCUFVLhac323/ME=", "dev": true, "requires": { - "is-wsl": "1.1.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", + "dev": true + } } }, "semver": { - "version": "5.5.1", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.5.1.tgz", - "integrity": "sha1-ff3YgUvbfKvHvg+x1zTPtmyUBHc=", + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.2.0.tgz", + "integrity": "sha1-TYE9lZCq+KkZJpPWyFuTRN5ZAds=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", + "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=", "dev": true + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-name/download/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } } } }, "@angular/common": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/common/download/@angular/common-7.2.2.tgz", - "integrity": "sha1-8inrUuN6zz205GTJNQIXE6HXGVs=", + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/common/download/@angular/common-8.1.1.tgz", + "integrity": "sha1-gJTtLNTyzetdB0q35n+yQRE4JRs=", "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "@angular/compiler": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/compiler/download/@angular/compiler-7.2.2.tgz", - "integrity": "sha1-fgJR8Sg6WMDJkfeXXrOOLKsCprU=", + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/compiler/download/@angular/compiler-8.1.1.tgz", + "integrity": "sha1-AAb/JvaSRrgRQY7QinH/bVucb7w=", "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "@angular/compiler-cli": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/compiler-cli/download/@angular/compiler-cli-7.2.2.tgz", - "integrity": "sha1-dMtc56HcF/LWhklYTQTnpye3AgM=", + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/compiler-cli/download/@angular/compiler-cli-8.1.1.tgz", + "integrity": "sha1-RvxyoOYmMrpWYmyo4JP7Kdx5bE8=", "dev": true, "requires": { "canonical-path": "1.0.0", - "chokidar": "1.7.0", - "convert-source-map": "1.6.0", - "dependency-graph": "0.7.2", - "magic-string": "0.25.1", - "minimist": "1.2.0", - "reflect-metadata": "0.1.13", - "shelljs": "0.8.3", - "source-map": "0.6.1", - "tslib": "1.9.3", - "yargs": "9.0.1" + "chokidar": "^2.1.1", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "shelljs": "^0.8.1", + "source-map": "^0.6.1", + "tslib": "^1.9.0", + "yargs": "13.1.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true }, "anymatch": { - "version": "1.3.2", - "resolved": "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.2.tgz", - "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, - "array-unique": { - "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", "dev": true }, "braces": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, - "camelcase": { - "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, "chokidar": { - "version": "1.7.0", - "resolved": "http://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.8", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "http://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.6.tgz?cache=0&sync_timestamp=1562457945399&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.6.tgz", + "integrity": "sha1-tsrWU6kp4kTOioNCRBZNJB+pVMU=", "dev": true, "requires": { - "is-glob": "2.0.1" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, - "is-extglob": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { + "extend-shallow": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "mem": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz", - "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-extendable": "^0.1.0" } }, - "strip-ansi": { + "fill-range": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "which-module": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yargs": { - "version": "9.0.1", - "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz", + "integrity": "sha1-P17WZYPM1vQAtaANtvfoYTY+OI8=", "dev": true, + "optional": true, "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "@angular/core": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/core/download/@angular/core-7.2.2.tgz", - "integrity": "sha1-oAgdlD9Dm3xPxL/Yd3V5Me1+32M=", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/forms": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/forms/download/@angular/forms-7.2.2.tgz", - "integrity": "sha1-1DkhbbUwcvP+g9uHfojbWlbjfEE=", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/http": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/http/download/@angular/http-7.2.2.tgz", - "integrity": "sha1-sk3lH94xkpucbZSldAVlEq66bew=", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/language-service": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/language-service/download/@angular/language-service-7.2.2.tgz", - "integrity": "sha1-FkArd3OkDRv0KkTGlXsWBxE1I50=", - "dev": true - }, - "@angular/platform-browser": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/platform-browser/download/@angular/platform-browser-7.2.2.tgz", - "integrity": "sha1-V1UhJeP/jhXKy5y37SPkvQYvQNA=", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/platform-browser-dynamic": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/platform-browser-dynamic/download/@angular/platform-browser-dynamic-7.2.2.tgz", - "integrity": "sha1-sefmnDp8c+1+SRllWyyaraeZBW8=", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/router": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@angular/router/download/@angular/router-7.2.2.tgz", - "integrity": "sha1-fH0qKaHrYGvZEikZOU0UJ9/6pAw=", - "requires": { - "tslib": "1.9.3" - } - }, - "@angularclass/hmr": { - "version": "2.1.3", - "resolved": "http://registry.npm.taobao.org/@angularclass/hmr/download/@angularclass/hmr-2.1.3.tgz", - "integrity": "sha1-NOZY7T2jfyOwogDi2lqJvpK7IJ8=", - "dev": true - }, - "@clr/angular": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/@clr/angular/download/@clr/angular-1.0.4.tgz", - "integrity": "sha1-vsno4nxz3lZ0CJU1zSvPah32Xg0=", - "requires": { - "tslib": "1.9.3" - } - }, - "@clr/icons": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/@clr/icons/download/@clr/icons-1.0.4.tgz", - "integrity": "sha1-QIkOnKvi7Wi6gHNchFWoUUrD9pg=" - }, - "@ngtools/webpack": { - "version": "7.2.3", - "resolved": "http://registry.npm.taobao.org/@ngtools/webpack/download/@ngtools/webpack-7.2.3.tgz", - "integrity": "sha1-EdacMYP/V277qJpRCBf9d/jofak=", - "dev": true, - "requires": { - "@angular-devkit/core": "7.2.3", - "enhanced-resolve": "4.1.0", - "rxjs": "6.3.3", - "tree-kill": "1.2.0", - "webpack-sources": "1.2.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "webpack-sources": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.2.0.tgz", - "integrity": "sha1-GBgeDQE/zglvr2+ObUHu///c6sI=", - "dev": true, - "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" - } - } - } - }, - "@ngx-translate/core": { - "version": "11.0.1", - "resolved": "http://registry.npm.taobao.org/@ngx-translate/core/download/@ngx-translate/core-11.0.1.tgz", - "integrity": "sha1-zs761B8GNo9YWdrEj+yPzESFYV8=", - "requires": { - "tslib": "1.9.3" - } - }, - "@ngx-translate/http-loader": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/@ngx-translate/http-loader/download/@ngx-translate/http-loader-4.0.0.tgz", - "integrity": "sha1-ilVSSK1LfVE0YPzsnaJbBEeWLx0=", - "requires": { - "tslib": "1.9.3" - } - }, - "@schematics/angular": { - "version": "7.2.3", - "resolved": "http://registry.npm.taobao.org/@schematics/angular/download/@schematics/angular-7.2.3.tgz", - "integrity": "sha1-4IuvZC+tT/eyeickN5xFg6WjgbU=", - "dev": true, - "requires": { - "@angular-devkit/core": "7.2.3", - "@angular-devkit/schematics": "7.2.3", - "typescript": "3.2.2" - }, - "dependencies": { - "typescript": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/typescript/download/typescript-3.2.2.tgz", - "integrity": "sha1-/oEBxGqhI/g1NSPr3PVzDCrkk+U=", - "dev": true - } - } - }, - "@schematics/update": { - "version": "0.12.3", - "resolved": "http://registry.npm.taobao.org/@schematics/update/download/@schematics/update-0.12.3.tgz", - "integrity": "sha1-u3IIQ1fIMz/JySyk8M7tLk7qGgU=", - "dev": true, - "requires": { - "@angular-devkit/core": "7.2.3", - "@angular-devkit/schematics": "7.2.3", - "@yarnpkg/lockfile": "1.1.0", - "ini": "1.3.5", - "pacote": "9.1.1", - "rxjs": "6.3.3", - "semver": "5.5.1", - "semver-intersect": "1.4.0" - }, - "dependencies": { - "semver": { - "version": "5.5.1", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.5.1.tgz", - "integrity": "sha1-ff3YgUvbfKvHvg+x1zTPtmyUBHc=", - "dev": true - } - } - }, - "@types/ace": { - "version": "0.0.40", - "resolved": "http://r.cnpmjs.org/@types/ace/download/@types/ace-0.0.40.tgz", - "integrity": "sha1-9u+I4AaVCiIHd2+JGWskIXflHTU=", - "dev": true - }, - "@types/d3-scale": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/@types/d3-scale/download/@types/d3-scale-2.1.0.tgz", - "integrity": "sha1-2ghcVRqkxK5IRaARFEfepuBPPSM=", - "dev": true, - "requires": { - "@types/d3-time": "1.0.9" - } - }, - "@types/d3-scale-chromatic": { - "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/@types/d3-scale-chromatic/download/@types/d3-scale-chromatic-1.3.0.tgz", - "integrity": "sha1-uLWKeiYqWD/ByVzoUdWnWBGHUDQ=", - "dev": true - }, - "@types/d3-time": { - "version": "1.0.9", - "resolved": "http://registry.npm.taobao.org/@types/d3-time/download/@types/d3-time-1.0.9.tgz", - "integrity": "sha1-ws8Fo81R+BC42Km7ygx0Aw1OU14=", - "dev": true - }, - "@types/diff": { - "version": "3.5.2", - "resolved": "http://registry.npm.taobao.org/@types/diff/download/@types/diff-3.5.2.tgz", - "integrity": "sha1-vZIwDTJnW76feFNIBzAlCqhZqQo=", - "dev": true - }, - "@types/diff2html": { - "version": "0.0.4", - "resolved": "http://registry.npm.taobao.org/@types/diff2html/download/@types/diff2html-0.0.4.tgz", - "integrity": "sha1-zL8ymaetdMQ946CHKcKs3XewuE4=", - "dev": true - }, - "@types/echarts": { - "version": "0.0.12", - "resolved": "http://r.cnpmjs.org/@types/echarts/download/@types/echarts-0.0.12.tgz", - "integrity": "sha1-aPG/knABcDa4gQbaF0uCZiCwUig=", - "dev": true - }, - "@types/jasmine": { - "version": "2.8.15", - "resolved": "http://registry.npm.taobao.org/@types/jasmine/download/@types/jasmine-2.8.15.tgz", - "integrity": "sha1-9Lc9jZMoulrUu5GR7BF9ELf9cSw=", - "dev": true - }, - "@types/jasminewd2": { - "version": "2.0.6", - "resolved": "http://registry.npm.taobao.org/@types/jasminewd2/download/@types/jasminewd2-2.0.6.tgz", - "integrity": "sha1-L1eo2YdabJ7zKKFL0HC6FKBVrDk=", - "dev": true, - "requires": { - "@types/jasmine": "2.8.15" - } - }, - "@types/js-base64": { - "version": "2.3.1", - "resolved": "http://registry.npm.taobao.org/@types/js-base64/download/@types/js-base64-2.3.1.tgz", - "integrity": "sha1-w58U8SlAij2WoRBaZQ2LK27rQWg=", - "dev": true - }, - "@types/js-yaml": { - "version": "3.12.0", - "resolved": "http://registry.npm.taobao.org/@types/js-yaml/download/@types/js-yaml-3.12.0.tgz", - "integrity": "sha1-NJTOlzWOJnXiTpenR+wjR47q+LY=", - "dev": true - }, - "@types/marked": { - "version": "0.4.2", - "resolved": "http://r.cnpmjs.org/@types/marked/download/@types/marked-0.4.2.tgz", - "integrity": "sha1-ZKieU+o39hzA8+4XMsVVwtv2RS8=" - }, - "@types/node": { - "version": "8.9.5", - "resolved": "http://registry.npm.taobao.org/@types/node/download/@types/node-8.9.5.tgz", - "integrity": "sha1-FiuGS8cL4Hfm2yErMidUkXkp6XY=", - "dev": true - }, - "@types/q": { - "version": "0.0.32", - "resolved": "http://r.cnpmjs.org/@types/q/download/@types/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "dev": true - }, - "@types/selenium-webdriver": { - "version": "2.53.43", - "resolved": "http://r.cnpmjs.org/@types/selenium-webdriver/download/@types/selenium-webdriver-2.53.43.tgz", - "integrity": "sha1-LePXGIGbwgFldUxKWa+36YM/Zwc=", - "dev": true - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", - "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", - "dev": true - }, - "@types/webpack-sources": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-0.1.5.tgz", - "integrity": "sha1-vkfBD3g9PW7+FHH/fwQmEb1GSpI=", - "dev": true, - "requires": { - "@types/node": "8.9.5", - "@types/source-list-map": "0.1.2", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.7.11.tgz", - "integrity": "sha1-uYhYLK+7Kwlei1VlJvMMkNBXys4=", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.7.11.tgz", - "integrity": "sha1-pp8K9lAuuaPARVVbGmEp09Py4xM=", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.7.11.tgz", - "integrity": "sha1-x7a7gQX4QDlRGis5zklPGTgYoyo=", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.7.11.tgz", - "integrity": "sha1-MSLUjcxslFbtmC3r4WyPNxAd85s=", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.7.11.tgz", - "integrity": "sha1-z48QbnRmYqDaKb3vY1/NPRJINks=", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.7.11.tgz", - "integrity": "sha1-3ziIKmJAgNA/dQP5Pj8XrFrAEYE=", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.7.11.tgz", - "integrity": "sha1-2HTXIuUeYqwgJHaTXWScgC+g4gk=", - "dev": true - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha1-3ZoegX8cLrEFtM8QEwk8ufPJywY=", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.7.11.tgz", - "integrity": "sha1-nJrEHs+fvP/8lvbSZ14t4zgR5oo=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.7.11.tgz", - "integrity": "sha1-yVg562N1ejGICq7HtlEtQZGsZAs=", - "dev": true, - "requires": { - "@xtuc/ieee754": "1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.7.11.tgz", - "integrity": "sha1-1yZ6HunEWU/T9+NymIGOxlaH22M=", - "dev": true, - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.7.11.tgz", - "integrity": "sha1-Btchjqn9yUpnk6qSIIFg2z0m7oI=", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.7.11.tgz", - "integrity": "sha1-jHTKR01PlR0B266b1wgU7iKoIAU=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.7.11.tgz", - "integrity": "sha1-m7upQvIjdWhqb7dZr816ycRdoag=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.7.11.tgz", - "integrity": "sha1-szHo5874+OLwB9QsOjagWAp9bKc=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.7.11.tgz", - "integrity": "sha1-bj0g+mo1GfawhO+Tka1YIR77Cho=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.7.11.tgz", - "integrity": "sha1-Jb0RdWLKjAAnIP+BFu+QctnKhpw=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.7.11.tgz", - "integrity": "sha1-xCRbbeJCy1CizJUBdP2/ZceNeBM=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@webcomponents/custom-elements": { - "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/@webcomponents/custom-elements/download/@webcomponents/custom-elements-1.2.1.tgz", - "integrity": "sha1-C5yNBsbY8Fl1L/OJpuRBjzkzOOc=" - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.1.tgz", - "integrity": "sha1-XIXWYvdvodNFdXZsXc1mFavNMNg=", - "dev": true - }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/@yarnpkg/lockfile/download/@yarnpkg/lockfile-1.1.0.tgz", - "integrity": "sha1-53qX+9NFt22DJF7c0X05OxtB+zE=", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "http://registry.npm.taobao.org/JSONStream/download/JSONStream-1.3.5.tgz", - "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", - "dev": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" - }, - "accepts": { - "version": "1.3.5", - "resolved": "http://r.cnpmjs.org/accepts/download/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "dev": true, - "requires": { - "mime-types": "2.1.21", - "negotiator": "0.6.1" - } - }, - "ace": { - "version": "1.3.0", - "resolved": "http://r.cnpmjs.org/ace/download/ace-1.3.0.tgz", - "integrity": "sha1-WDW3mcyhx5ZHCQ+8VIf5tUNMoGY=", - "requires": { - "archy": "1.0.0", - "async-retry": "0.1.1", - "babel-runtime": "6.6.1", - "debug": "2.2.0", - "easy-table": "1.0.0", - "es6-promisify": "4.0.0", - "fs-promise": "0.5.0", - "got": "5.3.1", - "gunzip-maybe": "1.2.1", - "https-proxy-agent": "1.0.0", - "init-package-json": "1.9.1", - "minimist": "1.2.0", - "mkdirp-then": "1.2.0", - "node-uuid": "1.4.3", - "npm-package-arg": "4.1.0", - "readdir-scoped-modules": "1.0.2", - "semver": "5.0.1", - "tar": "2.2.1" - } - }, - "acorn": { - "version": "5.7.3", - "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-5.7.3.tgz", - "integrity": "sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha1-kBzu5Mf6rvfgetKkfokGddpQong=", - "dev": true, - "requires": { - "acorn": "5.7.3" - } - }, - "adm-zip": { - "version": "0.4.4", - "resolved": "http://registry.npm.taobao.org/adm-zip/download/adm-zip-0.4.4.tgz", - "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", - "dev": true - }, - "after": { - "version": "0.8.2", - "resolved": "http://r.cnpmjs.org/after/download/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "agent-base": { - "version": "2.1.1", - "resolved": "http://r.cnpmjs.org/agent-base/download/agent-base-2.1.1.tgz", - "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", - "requires": { - "extend": "3.0.2", - "semver": "5.0.1" - } - }, - "agentkeepalive": { - "version": "3.5.2", - "resolved": "http://registry.npm.taobao.org/agentkeepalive/download/agentkeepalive-3.5.2.tgz", - "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", - "dev": true, - "requires": { - "humanize-ms": "1.2.1" - } - }, - "ajv": { - "version": "6.6.2", - "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-6.6.2.tgz", - "integrity": "sha1-ys7M9HS/P8POOxR0Q3EaJAY8ww0=", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", - "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", - "dev": true - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "http://r.cnpmjs.org/ajv-keywords/download/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/amdefine/download/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "http://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.3.tgz", - "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=", - "dev": true - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.1.0.tgz", - "integrity": "sha1-9zIHu4EgfXX9bIPxJa8m7qN4yjA=", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "http://r.cnpmjs.org/ansi-html/download/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "http://r.cnpmjs.org/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "1.9.3" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "http://r.cnpmjs.org/any-promise/download/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "app-root-path": { - "version": "2.1.0", - "resolved": "http://r.cnpmjs.org/app-root-path/download/app-root-path-2.1.0.tgz", - "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", - "dev": true - }, - "append-transform": { - "version": "0.4.0", - "resolved": "http://registry.npm.taobao.org/append-transform/download/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "dev": true, - "requires": { - "default-require-extensions": "1.0.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/aproba/download/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/archy/download/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "http://r.cnpmjs.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz", - "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", - "dev": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "http://r.cnpmjs.org/argparse/download/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/arr-flatten/download/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "http://r.cnpmjs.org/arr-union/download/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/array-find-index/download/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true, - "optional": true - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz", - "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "http://r.cnpmjs.org/array-slice/download/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/array-union/download/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/array-uniq/download/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.6", - "resolved": "http://r.cnpmjs.org/arraybuffer.slice/download/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/arrify/download/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "http://r.cnpmjs.org/asap/download/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "http://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", - "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "http://r.cnpmjs.org/asn1.js/download/asn1.js-4.10.1.tgz", - "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "http://r.cnpmjs.org/assert/download/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/inherits/download/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", "dev": true }, - "util": { - "version": "0.10.3", - "resolved": "http://r.cnpmjs.org/util/download/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "inherits": "2.0.1" + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1562457210009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yargs": { + "version": "13.1.0", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.1.0.tgz", + "integrity": "sha1-snKc5L/AxYSTlxlRQJnYqRatIwE=", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.1.tgz", + "integrity": "sha1-0mBYUyqgbTZf4JH2ofwGsvfl7KA=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/assign-symbols/download/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/async-each/download/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true + "@angular/core": { + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/core/download/@angular/core-8.1.1.tgz", + "integrity": "sha1-iI+4eZBqRkKd2scWP+JZFc5af48=", + "requires": { + "tslib": "^1.9.0" + } }, - "async-foreach": { - "version": "0.1.3", - "resolved": "http://r.cnpmjs.org/async-foreach/download/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "optional": true + "@angular/forms": { + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/forms/download/@angular/forms-8.1.1.tgz", + "integrity": "sha1-5x2JZ7S5vw5nohvPlTvxv07s0eU=", + "requires": { + "tslib": "^1.9.0" + } }, - "async-retry": { - "version": "0.1.1", - "resolved": "http://r.cnpmjs.org/async-retry/download/async-retry-0.1.1.tgz", - "integrity": "sha1-ZBo8xuQOpuR+j/SLrZr68TdV+2A=", + "@angular/http": { + "version": "7.2.15", + "resolved": "https://registry.npm.taobao.org/@angular/http/download/@angular/http-7.2.15.tgz", + "integrity": "sha1-oyvqnmfpnu+IFQCFruu+eu7NOes=", "requires": { - "babel-runtime": "6.5.0", - "retry": "0.9.0" - }, - "dependencies": { - "babel-runtime": { - "version": "6.5.0", - "resolved": "http://r.cnpmjs.org/babel-runtime/download/babel-runtime-6.5.0.tgz", - "integrity": "sha1-+3wYiQab2fggAjipvGrVteirW/s=", - "requires": { - "core-js": "1.2.7" - } - }, - "core-js": { - "version": "1.2.7", - "resolved": "http://r.cnpmjs.org/core-js/download/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - } + "tslib": "^1.9.0" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "http://r.cnpmjs.org/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "@angular/language-service": { + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/language-service/download/@angular/language-service-8.1.1.tgz", + "integrity": "sha1-WUC3ZPo5W3Ws1Qd3chwKopFOWMk=", "dev": true }, - "atob": { - "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", - "dev": true + "@angular/platform-browser": { + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/platform-browser/download/@angular/platform-browser-8.1.1.tgz", + "integrity": "sha1-NlJuUkuj0SXAUIvu86MpDYX31RU=", + "requires": { + "tslib": "^1.9.0" + } }, - "autoprefixer": { - "version": "9.4.3", - "resolved": "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.4.3.tgz", - "integrity": "sha1-yXOEqP2AR3t4BJFjqRu8cl2cQdk=", - "dev": true, + "@angular/platform-browser-dynamic": { + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/platform-browser-dynamic/download/@angular/platform-browser-dynamic-8.1.1.tgz", + "integrity": "sha1-86ky5/DNDNzhUi7eVlHVe6Mkx4o=", "requires": { - "browserslist": "4.4.1", - "caniuse-lite": "1.0.30000930", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "7.0.13", - "postcss-value-parser": "3.3.1" + "tslib": "^1.9.0" } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "@angular/router": { + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@angular/router/download/@angular/router-8.1.1.tgz", + "integrity": "sha1-Be2w9J2rC7+JaoI8xS/TXenqi4U=", + "requires": { + "tslib": "^1.9.0" + } }, - "aws4": { - "version": "1.8.0", - "resolved": "http://registry.npm.taobao.org/aws4/download/aws4-1.8.0.tgz", - "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=", + "@angularclass/hmr": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/@angularclass/hmr/download/@angularclass/hmr-2.1.3.tgz", + "integrity": "sha1-NOZY7T2jfyOwogDi2lqJvpK7IJ8=", "dev": true }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "http://r.cnpmjs.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.0.0.tgz", + "integrity": "sha1-BuKrGb21NThVWaq7W6WXKUgoAPg=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "http://r.cnpmjs.org/ansi-styles/download/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://r.cnpmjs.org/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/supports-color/download/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "@babel/highlight": "^7.0.0" } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "http://r.cnpmjs.org/babel-generator/download/babel-generator-6.26.1.tgz", - "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.5.0.tgz", + "integrity": "sha1-VtETEr2SSPphlZHQJHK+boyzJUA=", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" }, "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.6.3", - "regenerator-runtime": "0.11.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", "dev": true } } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "http://r.cnpmjs.org/babel-messages/download/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "@clr/angular": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/@clr/angular/download/@clr/angular-2.3.0.tgz", + "integrity": "sha1-xossXON5N2yMZDI7/M3jN5M0wPs=", + "requires": { + "tslib": "^1.9.0" + } + }, + "@clr/icons": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/@clr/icons/download/@clr/icons-2.3.0.tgz", + "integrity": "sha1-blbDfoiJRwinN0WDbL+HgbNG1qA=" + }, + "@clr/ui": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/@clr/ui/download/@clr/ui-2.3.0.tgz", + "integrity": "sha1-2Au+ecSeh2bZ81CZu7HacdtrOzg=" + }, + "@ngtools/webpack": { + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@ngtools/webpack/download/@ngtools/webpack-8.1.1.tgz?cache=0&sync_timestamp=1562781720996&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ngtools%2Fwebpack%2Fdownload%2F%40ngtools%2Fwebpack-8.1.1.tgz", + "integrity": "sha1-ndANn4lTee2Cj+LnVyxGgvBzPiE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "@angular-devkit/core": "8.1.1", + "enhanced-resolve": "4.1.0", + "rxjs": "6.4.0", + "tree-kill": "1.2.1", + "webpack-sources": "1.3.0" }, "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.4.0.tgz", + "integrity": "sha1-87sP572n+2nerAwW8XtQsLh5BQQ=", "dev": true, "requires": { - "core-js": "2.6.3", - "regenerator-runtime": "0.11.1" + "tslib": "^1.9.0" } } } }, - "babel-runtime": { - "version": "6.6.1", - "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.6.1.tgz", - "integrity": "sha1-eIuUtvY04luRvWxd9y1GdFevsAA=", + "@ngx-translate/core": { + "version": "11.0.1", + "resolved": "https://registry.npm.taobao.org/@ngx-translate/core/download/@ngx-translate/core-11.0.1.tgz", + "integrity": "sha1-zs761B8GNo9YWdrEj+yPzESFYV8=", "requires": { - "core-js": "2.6.3" + "tslib": "^1.9.0" } }, - "babel-template": { - "version": "6.26.0", - "resolved": "http://r.cnpmjs.org/babel-template/download/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "@ngx-translate/http-loader": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/@ngx-translate/http-loader/download/@ngx-translate/http-loader-4.0.0.tgz", + "integrity": "sha1-ilVSSK1LfVE0YPzsnaJbBEeWLx0=", + "requires": { + "tslib": "^1.9.0" + } + }, + "@schematics/angular": { + "version": "8.1.1", + "resolved": "https://registry.npm.taobao.org/@schematics/angular/download/@schematics/angular-8.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40schematics%2Fangular%2Fdownload%2F%40schematics%2Fangular-8.1.1.tgz", + "integrity": "sha1-z8Lmi+8RoN45pPZj8KCpx5yj2I0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.6.3", - "regenerator-runtime": "0.11.1" - } - } + "@angular-devkit/core": "8.1.1", + "@angular-devkit/schematics": "8.1.1" } }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "http://r.cnpmjs.org/babel-traverse/download/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "@schematics/update": { + "version": "0.801.1", + "resolved": "https://registry.npm.taobao.org/@schematics/update/download/@schematics/update-0.801.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40schematics%2Fupdate%2Fdownload%2F%40schematics%2Fupdate-0.801.1.tgz", + "integrity": "sha1-Ya1kWJwjw/o0jwcF2CxX2wkN8rQ=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "@angular-devkit/core": "8.1.1", + "@angular-devkit/schematics": "8.1.1", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.5.1", + "rxjs": "6.4.0", + "semver": "6.2.0", + "semver-intersect": "1.4.0" }, "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.4.0.tgz", + "integrity": "sha1-87sP572n+2nerAwW8XtQsLh5BQQ=", "dev": true, "requires": { - "core-js": "2.6.3", - "regenerator-runtime": "0.11.1" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" + "tslib": "^1.9.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.2.0.tgz", + "integrity": "sha1-TYE9lZCq+KkZJpPWyFuTRN5ZAds=", "dev": true } } }, - "babel-types": { - "version": "6.26.0", - "resolved": "http://r.cnpmjs.org/babel-types/download/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "@types/ace": { + "version": "0.0.40", + "resolved": "https://registry.npm.taobao.org/@types/ace/download/@types/ace-0.0.40.tgz", + "integrity": "sha1-9u+I4AaVCiIHd2+JGWskIXflHTU=", + "dev": true + }, + "@types/d3-scale": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/@types/d3-scale/download/@types/d3-scale-2.1.1.tgz", + "integrity": "sha1-QF5Ydx7GrnuPe0F47hiHYgdZ6Pc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.6.3", - "regenerator-runtime": "0.11.1" - } - } + "@types/d3-time": "*" } }, - "babylon": { - "version": "6.18.0", - "resolved": "http://r.cnpmjs.org/babylon/download/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "@types/d3-scale-chromatic": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/@types/d3-scale-chromatic/download/@types/d3-scale-chromatic-1.3.1.tgz", + "integrity": "sha1-opSuaIY0Anhw8DB7+IAvhjqi3bM=", "dev": true }, - "backo2": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/backo2/download/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "@types/d3-time": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/@types/d3-time/download/@types/d3-time-1.0.10.tgz", + "integrity": "sha1-0zjH/qyTqYoyqsh10RAPkse2H08=", "dev": true }, - "balanced-match": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/balanced-match/download/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "@types/diff": { + "version": "3.5.3", + "resolved": "https://registry.npm.taobao.org/@types/diff/download/@types/diff-3.5.3.tgz", + "integrity": "sha1-fGw3IbpFTYOHkBAPr3lXEW7n3qs=", + "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "http://r.cnpmjs.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "@types/diff2html": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/@types/diff2html/download/@types/diff2html-0.0.4.tgz", + "integrity": "sha1-zL8ymaetdMQ946CHKcKs3XewuE4=", + "dev": true + }, + "@types/echarts": { + "version": "0.0.12", + "resolved": "https://registry.npm.taobao.org/@types/echarts/download/@types/echarts-0.0.12.tgz", + "integrity": "sha1-aPG/knABcDa4gQbaF0uCZiCwUig=", + "dev": true + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz", + "integrity": "sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc=", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz", + "integrity": "sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU=", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "2.8.16", + "resolved": "https://registry.npm.taobao.org/@types/jasmine/download/@types/jasmine-2.8.16.tgz", + "integrity": "sha1-pssksRSdZSk71haSNQABSDjhTn0=", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/@types/jasminewd2/download/@types/jasminewd2-2.0.6.tgz", + "integrity": "sha1-L1eo2YdabJ7zKKFL0HC6FKBVrDk=", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/js-base64": { + "version": "2.3.1", + "resolved": "https://registry.npm.taobao.org/@types/js-base64/download/@types/js-base64-2.3.1.tgz", + "integrity": "sha1-w58U8SlAij2WoRBaZQ2LK27rQWg=", + "dev": true + }, + "@types/js-yaml": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@types/js-yaml/download/@types/js-yaml-3.12.1.tgz", + "integrity": "sha1-XG9KHqvKhHkvvZFvDLQIR/EjxlY=", + "dev": true + }, + "@types/marked": { + "version": "0.6.5", + "resolved": "https://registry.npm.taobao.org/@types/marked/download/@types/marked-0.6.5.tgz", + "integrity": "sha1-PPKlbvYV2tJKr5l4TvkKnrpOKdg=" + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", + "dev": true + }, + "@types/node": { + "version": "8.9.5", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-8.9.5.tgz?cache=0&sync_timestamp=1562743044136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-8.9.5.tgz", + "integrity": "sha1-FiuGS8cL4Hfm2yErMidUkXkp6XY=", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", + "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-0.1.5.tgz", + "integrity": "sha1-vkfBD3g9PW7+FHH/fwQmEb1GSpI=", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true } } }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "http://r.cnpmjs.org/base64-arraybuffer/download/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz", + "integrity": "sha1-UbHF/mV2o0lTv0slPfnw1JDZ41k=", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } }, - "base64-js": { - "version": "1.3.0", - "resolved": "http://r.cnpmjs.org/base64-js/download/base64-js-1.3.0.tgz", - "integrity": "sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM=", + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha1-G6kmopI2E+3OSW/VsC6M6KX0lyE=", "dev": true }, - "base64id": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/base64id/download/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.8.5.tgz", + "integrity": "sha1-xJ2tIvZFInxe22EL25aX8aq3Ifc=", "dev": true }, - "batch": { - "version": "0.6.1", - "resolved": "http://r.cnpmjs.org/batch/download/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.8.5.tgz", + "integrity": "sha1-/qk+Qphj3V5DOFVfQikjhaZT8gQ=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.8.5.tgz", + "integrity": "sha1-mnQP9I4/qjAisd/1RCPfmqKTwl4=", "dev": true, "requires": { - "tweetnacl": "0.14.5" + "@webassemblyjs/wast-printer": "1.8.5" } }, - "better-assert": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/better-assert/download/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.8.5.tgz", + "integrity": "sha1-ugt9Oz9+RzPaYFnJMyJ12GBwJFI=", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.8.5.tgz", + "integrity": "sha1-3vS5knsBAdyMu9jR7bW3ucguskU=", "dev": true, "requires": { - "callsite": "1.0.0" + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" } }, - "big.js": { - "version": "3.2.0", - "resolved": "http://r.cnpmjs.org/big.js/download/big.js-3.2.0.tgz", - "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", - "dev": true - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.12.0.tgz", - "integrity": "sha1-wteA9T1Fu6gxeokC1M7q86Y4WxQ=", - "dev": true - }, - "blob": { - "version": "0.0.4", - "resolved": "http://r.cnpmjs.org/blob/download/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha1-U3p1Dt31weky83RCBlUckcG5PmE=", "dev": true }, - "block-stream": { - "version": "0.0.9", - "resolved": "http://r.cnpmjs.org/block-stream/download/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.8.5.tgz", + "integrity": "sha1-dMpqa8vhnlCjtrRihH5pUD5r/L8=", + "dev": true, "requires": { - "inherits": "2.0.3" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" } }, - "blocking-proxy": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/blocking-proxy/download/blocking-proxy-1.0.1.tgz", - "integrity": "sha1-gdb9H+E6TA1pV99/kbdemNrEDLI=", + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.8.5.tgz", + "integrity": "sha1-cSMp2+8kDza/V70ve4+5v0FUQh4=", "dev": true, "requires": { - "minimist": "1.2.0" + "@xtuc/ieee754": "^1.2.0" } }, - "bluebird": { - "version": "3.5.3", - "resolved": "http://registry.npm.taobao.org/bluebird/download/bluebird-3.5.3.tgz", - "integrity": "sha1-fQHG+WFsmlGrD4xUmnnf5uwz76c=", - "dev": true + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.8.5.tgz", + "integrity": "sha1-BE7es06mefPgTNT9mCTV41dnrhA=", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } }, - "bn.js": { - "version": "4.11.8", - "resolved": "http://r.cnpmjs.org/bn.js/download/bn.js-4.11.8.tgz", - "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.8.5.tgz", + "integrity": "sha1-qL87XY/+mGx8Hjc8y9wqCRXwztw=", "dev": true }, - "body-parser": { - "version": "1.18.3", - "resolved": "http://registry.npm.taobao.org/body-parser/download/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.8.5.tgz", + "integrity": "sha1-li2hKqWswcExyBxCMpkcgs5W4Bo=", "dev": true, "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "1.6.16" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" } }, - "bonjour": { - "version": "3.5.0", - "resolved": "http://r.cnpmjs.org/bonjour/download/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.8.5.tgz", + "integrity": "sha1-VIQHZsLBAC62TtGr5yCt7XFPmLw=", "dev": true, "requires": { - "array-flatten": "2.1.2", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" } }, - "bootstrap": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/bootstrap/download/bootstrap-4.2.1.tgz", - "integrity": "sha1-j4vcoCTb8OhkTaMukYyKA6kKV1c=" + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.8.5.tgz", + "integrity": "sha1-sk2fa6UDlK8TSfUQr6j/y4pj0mQ=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } }, - "brace": { - "version": "0.11.1", - "resolved": "http://registry.npm.taobao.org/brace/download/brace-0.11.1.tgz", - "integrity": "sha1-SJb8ydVE7vRfS7dmDbMg07N5/lg=" + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.8.5.tgz", + "integrity": "sha1-IVdvDsiLkUJzV7hTY4NmjvfGa40=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "http://r.cnpmjs.org/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.8.5.tgz", + "integrity": "sha1-4Q7s1ULQ5705T2gnxJ899tTu+4w=", + "dev": true, "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" } }, - "braces": { - "version": "2.3.2", - "resolved": "http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.8.5.tgz", + "integrity": "sha1-EUu8SB/RDKDiOzVg+oEnSLC65bw=", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" } }, - "brorand": { + "@webcomponents/custom-elements": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/@webcomponents/custom-elements/download/@webcomponents/custom-elements-1.2.4.tgz", + "integrity": "sha1-cHRUMVU5YRRhdyJyTW9st7OAChQ=" + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", + "dev": true + }, + "@yarnpkg/lockfile": { "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/brorand/download/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "resolved": "https://registry.npm.taobao.org/@yarnpkg/lockfile/download/@yarnpkg/lockfile-1.1.0.tgz", + "integrity": "sha1-53qX+9NFt22DJF7c0X05OxtB+zE=", "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/browserify-aes/download/browserify-aes-1.2.0.tgz", - "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npm.taobao.org/JSONStream/download/JSONStream-1.3.5.tgz", + "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", - "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", + "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", + "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", "dev": true, "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, - "browserify-des": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", - "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", + "ace": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/ace/download/ace-1.3.0.tgz", + "integrity": "sha1-WDW3mcyhx5ZHCQ+8VIf5tUNMoGY=", + "requires": { + "archy": "1.0.0", + "async-retry": "0.1.1", + "babel-runtime": "6.6.1", + "debug": "2.2.0", + "easy-table": "1.0.0", + "es6-promisify": "4.0.0", + "fs-promise": "0.5.0", + "got": "5.3.1", + "gunzip-maybe": "1.2.1", + "https-proxy-agent": "1.0.0", + "init-package-json": "1.9.1", + "minimist": "1.2.0", + "mkdirp-then": "1.2.0", + "node-uuid": "1.4.3", + "npm-package-arg": "4.1.0", + "readdir-scoped-modules": "1.0.2", + "semver": "5.0.1", + "tar": "2.2.1" + } + }, + "acorn": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.2.0.tgz", + "integrity": "sha1-Z/DaL8M51s+11vskT9RJ8zzYu+M=", + "dev": true + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha1-SCIQFAWCo2uDw+NC4c/ryqkkCUg=", + "dev": true + }, + "adm-zip": { + "version": "0.4.13", + "resolved": "https://registry.npm.taobao.org/adm-zip/download/adm-zip-0.4.13.tgz", + "integrity": "sha1-WX4vjMNnIVHhMH0+lc3bx1ZyMUo=", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/after/download/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-2.1.1.tgz", + "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "requires": { + "extend": "~3.0.0", + "semver": "~5.0.1" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/agentkeepalive/download/agentkeepalive-3.5.2.tgz", + "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "humanize-ms": "^1.2.1" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://r.cnpmjs.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz", + "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "http://r.cnpmjs.org/browserify-sign/download/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", + "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", + "dev": true + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz", + "integrity": "sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", + "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.1", - "inherits": "2.0.3", - "parse-asn1": "5.1.3" + "color-convert": "^1.9.0" } }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "anymatch": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.0.3.tgz", + "integrity": "sha1-L7Yk/g6EvMqwCv7j0ABu0xDyLwk=", + "dev": true, "requires": { - "pako": "0.2.9" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "browserslist": { - "version": "4.4.1", - "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-4.4.1.tgz", - "integrity": "sha1-QugolUtrKaelPjUid75ClHimkGI=", + "app-root-path": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/app-root-path/download/app-root-path-2.2.1.tgz", + "integrity": "sha1-0N9KaC7kCCc1g9Q/b3npiSYkvJo=", + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/append-transform/download/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "caniuse-lite": "1.0.30000930", - "electron-to-chromium": "1.3.106", - "node-releases": "1.1.3" + "default-require-extensions": "^1.0.0" } }, - "buffer": { - "version": "4.9.1", - "resolved": "http://r.cnpmjs.org/buffer/download/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/archy/download/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12", - "isarray": "1.0.0" + "sprintf-js": "~1.0.2" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz", - "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/aria-query/download/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", "dev": true, "requires": { - "buffer-alloc-unsafe": "1.1.0", - "buffer-fill": "1.0.0" + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" } }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", "dev": true }, - "buffer-from": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "http://r.cnpmjs.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", - "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz", + "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", "dev": true }, - "buffer-xor": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/buffer-xor/download/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "http://r.cnpmjs.org/builtin-modules/download/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "builtins": { + "arraybuffer.slice": { "version": "0.0.7", - "resolved": "http://r.cnpmjs.org/builtins/download/builtins-0.0.7.tgz", - "integrity": "sha1-NVIZzWzxjb58Acx/0tznZc/cVJo=" + "resolved": "https://registry.npm.taobao.org/arraybuffer.slice/download/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha1-O7xCdd1YTMGxCAm4nU6LY6aednU=", + "dev": true }, - "bytes": { - "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/bytes/download/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, - "cacache": { - "version": "10.0.4", - "resolved": "http://r.cnpmjs.org/cacache/download/cacache-10.0.4.tgz", - "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "chownr": "1.1.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "4.1.5", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "5.3.0", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - } + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, - "cache-base": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/cache-base/download/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "safer-buffer": "~2.1.0" } }, - "callsite": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/callsite/download/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "camelcase": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "optional": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "http://r.cnpmjs.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", + "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", "dev": true, - "optional": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "caniuse-lite": { - "version": "1.0.30000930", - "resolved": "http://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000930.tgz", - "integrity": "sha1-wji6uCvttGK8vcYdAzSTLcwITYo=", - "dev": true - }, - "canonical-path": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/canonical-path/download/canonical-path-1.0.0.tgz", - "integrity": "sha1-/LRwwjlY3vhQgYVr56hukE8YDR0=", - "dev": true - }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/capture-stack-trace/download/capture-stack-trace-1.0.1.tgz", - "integrity": "sha1-psC74fOPOqC5Ijjstv9Cw0TUE10=" - }, - "caseless": { - "version": "0.12.0", - "resolved": "http://r.cnpmjs.org/caseless/download/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", + "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "object-assign": "^4.1.1", + "util": "0.10.3" }, "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { - "has-flag": "3.0.0" + "inherits": "2.0.1" } } } }, - "chardet": { - "version": "0.7.0", - "resolved": "http://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, - "chokidar": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/chokidar/download/chokidar-2.0.4.tgz", - "integrity": "sha1-NW/04rDo5D4yLRijckYLvPOszSY=", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.8", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.0" - } + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true }, - "chownr": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/chownr/download/chownr-1.1.1.tgz", - "integrity": "sha1-VHJri4//TfBTxCGH6AH7RBLfFJQ=", + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/ast-types-flow/download/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", "dev": true }, - "chrome-trace-event": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.0.tgz", - "integrity": "sha1-Rakb0sIMlBHwljtarrmhuV4JzEg=", + "async": { + "version": "2.6.2", + "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.2.tgz", + "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=", "dev": true, "requires": { - "tslib": "1.9.3" + "lodash": "^4.17.11" } }, - "cipher-base": { - "version": "1.0.4", - "resolved": "http://r.cnpmjs.org/cipher-base/download/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", + "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", + "dev": true }, - "circular-dependency-plugin": { - "version": "5.0.2", - "resolved": "http://registry.npm.taobao.org/circular-dependency-plugin/download/circular-dependency-plugin-5.0.2.tgz", - "integrity": "sha1-2haMCzfntDVj+5+RLBwAfCEzie8=", + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.0.tgz", + "integrity": "sha1-ePrtjD0HSrgfIrTphdeehzj3IPg=", "dev": true }, - "class-utils": { - "version": "0.3.6", - "resolved": "http://r.cnpmjs.org/class-utils/download/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "dev": true, + "async-retry": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/async-retry/download/async-retry-0.1.1.tgz", + "integrity": "sha1-ZBo8xuQOpuR+j/SLrZr68TdV+2A=", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "babel-runtime": "6.5.0", + "retry": "0.9.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "http://r.cnpmjs.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, + "babel-runtime": { + "version": "6.5.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.5.0.tgz", + "integrity": "sha1-+3wYiQab2fggAjipvGrVteirW/s=", "requires": { - "is-descriptor": "0.1.6" + "core-js": "^1.2.0" } + }, + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-1.2.7.tgz?cache=0&sync_timestamp=1560599811627&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" } } }, - "clean-css": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/clean-css/download/clean-css-4.2.1.tgz", - "integrity": "sha1-LUEe92uFabbQyEBo2r6FsKpeXBc=", - "dev": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", + "dev": true + }, + "autoprefixer": { + "version": "9.6.0", + "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.6.0.tgz", + "integrity": "sha1-ARHGveKtIMbxeZWjP6189oVLTIc=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "browserslist": "^4.6.1", + "caniuse-lite": "^1.0.30000971", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.16", + "postcss-value-parser": "^3.3.1" } }, - "cli-width": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, - "clipboard": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/clipboard/download/clipboard-2.0.4.tgz", - "integrity": "sha1-g22v1mzw/qXXHOXVsL9ulYAJES0=", - "optional": true, - "requires": { - "good-listener": "1.2.2", - "select": "1.1.2", - "tiny-emitter": "2.0.2" - } + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.8.0.tgz", + "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=", + "dev": true }, - "cliui": { - "version": "3.2.0", - "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/axobject-query/download/axobject-query-2.0.2.tgz", + "integrity": "sha1-6hh6vluQArN3+SXYv30cVhrfOPk=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "ast-types-flow": "0.0.7" } }, - "clone": { - "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-deep": { - "version": "2.0.2", - "resolved": "http://r.cnpmjs.org/clone-deep/download/clone-deep-2.0.2.tgz", - "integrity": "sha1-ANs6Hhc2VnMNEYjD1qztbX6pdxM=", + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "for-own": "1.0.0", - "is-plain-object": "2.0.4", - "kind-of": "6.0.2", - "shallow-clone": "1.0.0" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } } }, - "co": { - "version": "4.6.0", - "resolved": "http://r.cnpmjs.org/co/download/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/code-point-at/download/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codelyzer": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/codelyzer/download/codelyzer-4.2.1.tgz", - "integrity": "sha1-1W6qzvyn6BOKrApjDkhL2wmYhUQ=", + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz", + "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", "dev": true, "requires": { - "app-root-path": "2.1.0", - "css-selector-tokenizer": "0.7.1", - "cssauron": "1.4.0", - "semver-dsl": "1.0.1", - "source-map": "0.5.7", - "sprintf-js": "1.0.3" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, "source-map": { "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/collection-visit/download/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colors": { - "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/colors/download/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combine-lists": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/combine-lists/download/combine-lists-1.0.1.tgz", - "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "lodash": "4.17.11" + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } } }, - "combined-stream": { - "version": "1.0.7", - "resolved": "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.7.tgz", - "integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=", - "dev": true, + "babel-runtime": { + "version": "6.6.1", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.6.1.tgz", + "integrity": "sha1-eIuUtvY04luRvWxd9y1GdFevsAA=", "requires": { - "delayed-stream": "1.0.0" + "core-js": "^2.1.0" } }, - "commander": { - "version": "2.17.1", - "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz", - "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/commondir/download/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/component-bind/download/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "http://r.cnpmjs.org/component-emitter/download/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "http://r.cnpmjs.org/component-inherit/download/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "compressible": { - "version": "2.0.15", - "resolved": "http://registry.npm.taobao.org/compressible/download/compressible-2.0.15.tgz", - "integrity": "sha1-hXqasKfloH2Ng37UP+Le//ZP4hI=", + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "mime-db": "1.37.0" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } } }, - "compression": { - "version": "1.7.3", - "resolved": "http://registry.npm.taobao.org/compression/download/compression-1.7.3.tgz", - "integrity": "sha1-J+DhdqryYPfywoE8PkQK258Zk9s=", + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "accepts": "1.3.5", - "bytes": "3.0.0", - "compressible": "2.0.15", - "debug": "2.6.9", - "on-headers": "1.0.1", - "safe-buffer": "5.1.2", - "vary": "1.1.2" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, "debug": { "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -2508,1592 +2237,1821 @@ }, "ms": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "concat-map": { - "version": "0.0.1", - "resolved": "http://r.cnpmjs.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "http://r.cnpmjs.org/concat-stream/download/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } } }, - "connect": { - "version": "3.6.6", - "resolved": "http://r.cnpmjs.org/connect/download/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/backo2/download/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "dev": true, "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "1.3.2", - "utils-merge": "1.0.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "ms": "2.0.0" + "is-descriptor": "^1.0.0" } }, - "finalhandler": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/finalhandler/download/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "kind-of": "^6.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } }, - "statuses": { - "version": "1.3.1", - "resolved": "http://r.cnpmjs.org/statuses/download/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/base64-arraybuffer/download/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", "dev": true }, - "console-browserify": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/console-browserify/download/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/console-control-strings/download/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.0.tgz", + "integrity": "sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM=", "dev": true }, - "constants-browserify": { + "base64id": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/constants-browserify/download/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "resolved": "https://registry.npm.taobao.org/base64id/download/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", "dev": true }, - "content-disposition": { - "version": "0.5.2", - "resolved": "http://r.cnpmjs.org/content-disposition/download/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "content-type": { - "version": "1.0.4", - "resolved": "http://r.cnpmjs.org/content-type/download/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", - "dev": true + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz", - "integrity": "sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=", + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/better-assert/download/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "callsite": "1.0.0" } }, - "cookie": { - "version": "0.3.1", - "resolved": "http://r.cnpmjs.org/cookie/download/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", "dev": true }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "http://r.cnpmjs.org/cookie-signature/download/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.0.0.tgz", + "integrity": "sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=", "dev": true }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "http://r.cnpmjs.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "run-queue": "1.0.3" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "http://r.cnpmjs.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npm.taobao.org/blob/download/blob-0.0.5.tgz", + "integrity": "sha1-1oDu7yX4zZGtUz9bAe7UjmTK9oM=", "dev": true }, - "copy-webpack-plugin": { - "version": "4.6.0", - "resolved": "http://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.6.0.tgz", - "integrity": "sha1-5/QN2KaEd9QF3Rt6hUquMksVi64=", + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "~2.0.0" + } + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/blocking-proxy/download/blocking-proxy-1.0.1.tgz", + "integrity": "sha1-gdb9H+E6TA1pV99/kbdemNrEDLI=", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "globby": "7.1.1", - "is-glob": "4.0.0", - "loader-utils": "1.1.0", - "minimatch": "3.0.4", - "p-limit": "1.3.0", - "serialize-javascript": "1.6.1" + "minimist": "^1.2.0" } }, - "core-js": { - "version": "2.6.3", - "resolved": "http://registry.npm.taobao.org/core-js/download/core-js-2.6.3.tgz", - "integrity": "sha1-S3CTi9/9r2STHmbi2xWPCJIonEk=" + "bluebird": { + "version": "3.5.5", + "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.5.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbluebird%2Fdownload%2Fbluebird-3.5.5.tgz", + "integrity": "sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=", + "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz", + "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", + "dev": true }, - "cosmiconfig": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-4.0.0.tgz", - "integrity": "sha1-dgORVJWAu9LfHlYrwXexPCkJctw=", + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.1", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" }, "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true } } }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "http://r.cnpmjs.org/create-ecdh/download/create-ecdh-4.0.3.tgz", - "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.1" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" } }, - "create-error-class": { - "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/create-error-class/download/create-error-class-2.0.1.tgz", - "integrity": "sha1-qHWe1cjSFKRh6B0Y5wqssz3WPJw=", - "requires": { - "capture-stack-trace": "1.0.1", - "inherits": "2.0.3" - } + "bootstrap": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/bootstrap/download/bootstrap-4.3.1.tgz", + "integrity": "sha1-KAyo9hBQTZnXtrS/xLaM7GAXBKw=" }, - "create-hash": { - "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/create-hash/download/create-hash-1.2.0.tgz", - "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", - "dev": true, + "brace": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/brace/download/brace-0.11.1.tgz", + "integrity": "sha1-SJb8ydVE7vRfS7dmDbMg07N5/lg=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "create-hmac": { - "version": "1.1.7", - "resolved": "http://r.cnpmjs.org/create-hmac/download/create-hmac-1.1.7.tgz", - "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "fill-range": "^7.0.1" } }, - "cron-parser": { - "version": "2.7.3", - "resolved": "http://registry.npm.taobao.org/cron-parser/download/cron-parser-2.7.3.tgz", - "integrity": "sha1-EmA/ifU3WvNTqTV74lQ9MXLqxlE=", - "requires": { - "is-nan": "1.2.1", - "moment-timezone": "0.5.23" - } + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", + "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", "dev": true, - "optional": true, "requires": { - "lru-cache": "4.1.5", - "which": "1.3.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "http://r.cnpmjs.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", + "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", "dev": true, "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.17", - "public-encrypt": "4.0.3", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "css-parse": { - "version": "1.7.0", - "resolved": "http://r.cnpmjs.org/css-parse/download/css-parse-1.7.0.tgz", - "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "http://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha1-oXcnGovKUBkXL0+JH8bu2cv2jV0=", + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", + "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", "dev": true, "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.2", - "regexpu-core": "1.0.0" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "cssauron": { - "version": "1.4.0", - "resolved": "http://r.cnpmjs.org/cssauron/download/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "through": "2.3.8" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, - "cssesc": { - "version": "0.1.0", - "resolved": "http://r.cnpmjs.org/cssesc/download/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "http://r.cnpmjs.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, - "optional": true, "requires": { - "array-find-index": "1.0.2" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, - "custom-event": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/custom-event/download/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "cyclist": { - "version": "0.2.2", - "resolved": "http://r.cnpmjs.org/cyclist/download/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "d3-array": { - "version": "1.2.4", - "resolved": "http://registry.npm.taobao.org/d3-array/download/d3-array-1.2.4.tgz", - "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8=" - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "http://registry.npm.taobao.org/d3-collection/download/d3-collection-1.0.7.tgz", - "integrity": "sha1-NJvSqpl32wcQkcExRNXk8WtbMQ4=" - }, - "d3-color": { - "version": "1.2.3", - "resolved": "http://registry.npm.taobao.org/d3-color/download/d3-color-1.2.3.tgz", - "integrity": "sha1-bGe7KvbfPMjXnvzE06PoPijIBI8=" - }, - "d3-format": { - "version": "1.3.2", - "resolved": "http://registry.npm.taobao.org/d3-format/download/d3-format-1.3.2.tgz", - "integrity": "sha1-apa14xvLmBIqMIY/fZI2XABgNWI=" - }, - "d3-interpolate": { - "version": "1.3.2", - "resolved": "http://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.3.2.tgz", - "integrity": "sha1-QX0+vetLxO/Mj9Q2HFXkBAIR/Wg=", + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "requires": { - "d3-color": "1.2.3" + "pako": "~0.2.0" } }, - "d3-scale": { - "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/d3-scale/download/d3-scale-2.1.2.tgz", - "integrity": "sha1-TpMre2AYKu6Qc+3odkyYQj5fmpQ=", + "browserslist": { + "version": "4.6.3", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.6.3.tgz", + "integrity": "sha1-BTDLxqsMHz/IyBnHI3e6Vc9kfwU=", + "dev": true, "requires": { - "d3-array": "1.2.4", - "d3-collection": "1.0.7", - "d3-format": "1.3.2", - "d3-interpolate": "1.3.2", - "d3-time": "1.0.10", - "d3-time-format": "2.1.3" + "caniuse-lite": "^1.0.30000975", + "electron-to-chromium": "^1.3.164", + "node-releases": "^1.1.23" } }, - "d3-scale-chromatic": { - "version": "1.3.3", - "resolved": "http://registry.npm.taobao.org/d3-scale-chromatic/download/d3-scale-chromatic-1.3.3.tgz", - "integrity": "sha1-2tQ2bw7csoj0kBKJecPHk1g+08A=", + "browserstack": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/browserstack/download/browserstack-1.5.2.tgz", + "integrity": "sha1-F9i7dhJ6HMDqQWQk34DSGPgDZz8=", + "dev": true, "requires": { - "d3-color": "1.2.3", - "d3-interpolate": "1.3.2" + "https-proxy-agent": "^2.2.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes6-promise%2Fdownload%2Fes6-promise-4.2.8.tgz", + "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "https-proxy-agent": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-2.2.2.tgz", + "integrity": "sha1-Jx6o6Q+DasnxGdrM05wZ/337B5M=", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } } }, - "d3-time": { - "version": "1.0.10", - "resolved": "http://registry.npm.taobao.org/d3-time/download/d3-time-1.0.10.tgz", - "integrity": "sha1-glndcSiNcu6s/Y3igcS/XHOTBTw=" - }, - "d3-time-format": { - "version": "2.1.3", - "resolved": "http://registry.npm.taobao.org/d3-time-format/download/d3-time-format-2.1.3.tgz", - "integrity": "sha1-rgb44BJqnWDWNk6sWxUzrhusgms=", + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, "requires": { - "d3-time": "1.0.10" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, - "dashdash": { - "version": "1.14.1", - "resolved": "http://r.cnpmjs.org/dashdash/download/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz", + "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" } }, - "date-now": { - "version": "0.1.4", - "resolved": "http://r.cnpmjs.org/date-now/download/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=", "dev": true }, - "debug": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "requires": { - "ms": "0.7.1" - } + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true }, - "debuglog": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/debuglog/download/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" }, - "decamelize": { - "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", + "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", "dev": true }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "http://r.cnpmjs.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, - "deep-equal": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/deep-equal/download/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, - "deep-is": { - "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "builtins": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/builtins/download/builtins-0.0.7.tgz", + "integrity": "sha1-NVIZzWzxjb58Acx/0tznZc/cVJo=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, - "default-gateway": { - "version": "2.7.2", - "resolved": "http://registry.npm.taobao.org/default-gateway/download/default-gateway-2.7.2.tgz", - "integrity": "sha1-t+8znl4CSwRUZ69APVA0jbRkLQ8=", - "dev": true, - "requires": { - "execa": "0.10.0", - "ip-regex": "2.1.0" + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-11.3.3.tgz?cache=0&sync_timestamp=1560788095566&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-11.3.3.tgz", + "integrity": "sha1-i9Kd+ManGKbr0tAQ2k15cq47utw=", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" } }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "dev": true, "requires": { - "strip-bom": "2.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, - "define-properties": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", - "requires": { - "object-keys": "1.0.12" - }, - "dependencies": { - "object-keys": { - "version": "1.0.12", - "resolved": "http://registry.npm.taobao.org/object-keys/download/object-keys-1.0.12.tgz", - "integrity": "sha1-CcU4VTd1dTEMymL1W7M0q/97PtI=" - } - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "http://r.cnpmjs.org/define-property/download/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz?cache=0&sync_timestamp=1562668933683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-callsite%2Fdownload%2Fcaller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } + "callsites": "^2.0.0" } }, - "del": { - "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/del/download/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.3" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "http://r.cnpmjs.org/globby/download/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - } + "caller-callsite": "^2.0.0" } }, - "delayed-stream": { + "callsite": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "resolved": "https://registry.npm.taobao.org/callsite/download/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", "dev": true }, - "delegate": { - "version": "3.2.0", - "resolved": "http://r.cnpmjs.org/delegate/download/delegate-3.2.0.tgz", - "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=", - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/delegates/download/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", "dev": true }, - "depd": { - "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", "dev": true }, - "dependency-graph": { - "version": "0.7.2", - "resolved": "http://registry.npm.taobao.org/dependency-graph/download/dependency-graph-0.7.2.tgz", - "integrity": "sha1-kdud5utyaZIJ2IrqTB/VIhysHEk=", + "caniuse-lite": { + "version": "1.0.30000979", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000979.tgz?cache=0&sync_timestamp=1562740432535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30000979.tgz", + "integrity": "sha1-kvFtABhqbPINbFcRu24EKj1mcCk=", "dev": true }, - "des.js": { + "canonical-path": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/des.js/download/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "resolved": "https://registry.npm.taobao.org/canonical-path/download/canonical-path-1.0.0.tgz", + "integrity": "sha1-/LRwwjlY3vhQgYVr56hukE8YDR0=", + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/capture-stack-trace/download/capture-stack-trace-1.0.1.tgz", + "integrity": "sha1-psC74fOPOqC5Ijjstv9Cw0TUE10=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "destroy": { - "version": "1.0.4", - "resolved": "http://r.cnpmjs.org/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", "dev": true }, - "detect-indent": { - "version": "4.0.0", - "resolved": "http://r.cnpmjs.org/detect-indent/download/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "chokidar": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.0.2.tgz?cache=0&sync_timestamp=1562457945399&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.0.2.tgz", + "integrity": "sha1-DRzW0E6y3wMnRGGIzRNzajNn1oE=", "dev": true, "requires": { - "repeating": "2.0.1" + "anymatch": "^3.0.1", + "braces": "^3.0.2", + "fsevents": "^2.0.6", + "glob-parent": "^5.0.0", + "is-binary-path": "^2.1.0", + "is-glob": "^4.0.1", + "normalize-path": "^3.0.0", + "readdirp": "^3.1.1" + }, + "dependencies": { + "glob-parent": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.0.0.tgz", + "integrity": "sha1-HcmfDzmwBtPpLCwoQGg4Lwwg6VQ=", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, - "detect-node": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", - "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", + "chownr": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.2.tgz", + "integrity": "sha1-oY8eCyacimpdPIbrKYvrFMPde/Y=", "dev": true }, - "dezalgo": { - "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/dezalgo/download/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", + "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", + "dev": true, "requires": { - "asap": "2.0.6", - "wrappy": "1.0.2" + "tslib": "^1.9.0" } }, - "di": { - "version": "0.0.1", - "resolved": "http://r.cnpmjs.org/di/download/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", + "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, - "diff": { - "version": "3.5.0", - "resolved": "http://r.cnpmjs.org/diff/download/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" + "circular-dependency-plugin": { + "version": "5.0.2", + "resolved": "https://registry.npm.taobao.org/circular-dependency-plugin/download/circular-dependency-plugin-5.0.2.tgz", + "integrity": "sha1-2haMCzfntDVj+5+RLBwAfCEzie8=", + "dev": true }, - "diff2html": { - "version": "2.7.0", - "resolved": "http://registry.npm.taobao.org/diff2html/download/diff2html-2.7.0.tgz", - "integrity": "sha1-5FxYBWo2I17IcSJc56HsYZZtzGY=", + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "dev": true, "requires": { - "diff": "3.5.0", - "hogan.js": "3.0.2", - "lodash.merge": "4.6.1", - "whatwg-fetch": "3.0.0" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "http://r.cnpmjs.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", - "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.1.tgz", + "integrity": "sha1-LUEe92uFabbQyEBo2r6FsKpeXBc=", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } } }, - "dir-glob": { - "version": "2.2.2", - "resolved": "http://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", - "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "path-type": "3.0.0" + "restore-cursor": "^2.0.0" } }, - "dns-equal": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/dns-equal/download/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, - "dns-packet": { - "version": "1.3.1", - "resolved": "http://r.cnpmjs.org/dns-packet/download/dns-packet-1.3.1.tgz", - "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", - "dev": true, + "clipboard": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.4.tgz", + "integrity": "sha1-g22v1mzw/qXXHOXVsL9ulYAJES0=", + "optional": true, "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" } }, - "dns-txt": { - "version": "2.0.2", - "resolved": "http://r.cnpmjs.org/dns-txt/download/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", "dev": true, "requires": { - "buffer-indexof": "1.1.1" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "http://r.cnpmjs.org/dom-serialize/download/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-2.0.2.tgz", + "integrity": "sha1-ANs6Hhc2VnMNEYjD1qztbX6pdxM=", "dev": true, "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.2", - "void-elements": "2.0.1" + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/domain-browser/download/domain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", + "co": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, - "duplexer2": { - "version": "0.1.4", - "resolved": "http://r.cnpmjs.org/duplexer2/download/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "2.3.6" - } + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, - "duplexify": { - "version": "3.6.1", - "resolved": "http://registry.npm.taobao.org/duplexify/download/duplexify-3.6.1.tgz", - "integrity": "sha1-saeinEq/1jlYXvrszoDWZrHjQSU=", + "codelyzer": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/codelyzer/download/codelyzer-5.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcodelyzer%2Fdownload%2Fcodelyzer-5.1.0.tgz", + "integrity": "sha1-oOuJSXYiZ56kxTtpdKpFWY8GpLU=", + "dev": true, "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "app-root-path": "^2.2.1", + "aria-query": "^3.0.0", + "axobject-query": "^2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.1.2.tgz", + "integrity": "sha1-2hdlJiv4wPVxdJ8q1sJjACB65nM=", + "dev": true + } } }, - "easy-table": { + "collection-visit": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/easy-table/download/easy-table-1.0.0.tgz", - "integrity": "sha1-KdstCFXTYxbkOC5aPYXZy1/JMhY=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, - "echarts": { - "version": "4.1.0", - "resolved": "http://r.cnpmjs.org/echarts/download/echarts-4.1.0.tgz", - "integrity": "sha1-1YjJX3PBqZKLnHPVt2l1HDGFvNw=", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, "requires": { - "zrender": "4.0.4" + "color-name": "1.1.3" } }, - "ee-first": { - "version": "1.1.1", - "resolved": "http://r.cnpmjs.org/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "electron-to-chromium": { - "version": "1.3.106", - "resolved": "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.106.tgz", - "integrity": "sha1-ZyGDFg54PLVGz/g9mpjV9pzZGHQ=", + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/colors/download/colors-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, - "elliptic": { - "version": "6.4.1", - "resolved": "http://registry.npm.taobao.org/elliptic/download/elliptic-6.4.1.tgz", - "integrity": "sha1-wtC3d2kRuGcixjLDwGxg8vgZk5o=", + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "delayed-stream": "~1.0.0" } }, - "emojis-list": { - "version": "2.1.0", - "resolved": "http://r.cnpmjs.org/emojis-list/download/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.0.tgz", + "integrity": "sha1-1YuytcHuj4ew00ACfp6U4iLFpCI=", "dev": true }, - "encodeurl": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/encodeurl/download/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "encoding": { - "version": "0.1.12", - "resolved": "http://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, - "requires": { - "iconv-lite": "0.4.23" - } + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/component-bind/download/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "http://r.cnpmjs.org/end-of-stream/download/end-of-stream-1.4.1.tgz", - "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npm.taobao.org/component-inherit/download/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.17", + "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.17.tgz", + "integrity": "sha1-bowQihatWDhKl386SCyiC/8vOME=", + "dev": true, "requires": { - "once": "1.4.0" + "mime-db": ">= 1.40.0 < 2" } }, - "engine.io": { - "version": "1.8.3", - "resolved": "http://r.cnpmjs.org/engine.io/download/engine.io-1.8.3.tgz", - "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz", + "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", "dev": true, "requires": { - "accepts": "1.3.3", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "ws": "1.1.2" + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" }, "dependencies": { - "accepts": { - "version": "1.3.3", - "resolved": "http://r.cnpmjs.org/accepts/download/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", - "dev": true, - "requires": { - "mime-types": "2.1.21", - "negotiator": "0.6.1" - } - }, "debug": { - "version": "2.3.3", - "resolved": "http://r.cnpmjs.org/debug/download/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "2.0.0" } }, "ms": { - "version": "0.7.2", - "resolved": "http://r.cnpmjs.org/ms/download/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "engine.io-client": { - "version": "1.8.3", - "resolved": "http://r.cnpmjs.org/engine.io-client/download/engine.io-client-1.8.3.tgz", - "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", "dev": true, "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parsejson": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "1.1.2", - "xmlhttprequest-ssl": "1.5.3", - "yeast": "0.1.2" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npm.taobao.org/connect/download/connect-3.7.0.tgz", + "integrity": "sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" }, "dependencies": { "debug": { - "version": "2.3.3", - "resolved": "http://r.cnpmjs.org/debug/download/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "2.0.0" } }, "ms": { - "version": "0.7.2", - "resolved": "http://r.cnpmjs.org/ms/download/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "engine.io-parser": { - "version": "1.3.2", - "resolved": "http://r.cnpmjs.org/engine.io-parser/download/engine.io-parser-1.3.2.tgz", - "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.6", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary": "0.1.7", - "wtf-8": "1.0.0" + "date-now": "^0.1.4" } }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.0.tgz", - "integrity": "sha1-Qcfgv9/nSsH/4eV61qXGyfN0Kn8=", + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz", + "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "memory-fs": "0.4.1", - "tapable": "1.1.1" + "safe-buffer": "5.1.2" } }, - "ent": { - "version": "2.2.0", - "resolved": "http://r.cnpmjs.org/ent/download/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "err-code": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/err-code/download/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", "dev": true }, - "errno": { - "version": "0.1.7", - "resolved": "http://r.cnpmjs.org/errno/download/errno-0.1.7.tgz", - "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz", + "integrity": "sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=", "dev": true, "requires": { - "prr": "1.0.1" + "safe-buffer": "~5.1.1" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "http://r.cnpmjs.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", + "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "dev": true, "requires": { - "is-arrayish": "0.2.1" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, - "es6-promise": { - "version": "3.3.1", - "resolved": "http://r.cnpmjs.org/es6-promise/download/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true }, - "es6-promisify": { - "version": "4.0.0", - "resolved": "http://r.cnpmjs.org/es6-promisify/download/es6-promisify-4.0.0.tgz", - "integrity": "sha1-eMH/zYSM4jP9lin+qlNxym3N9Lg=", + "copy-webpack-plugin": { + "version": "5.0.3", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.0.3.tgz", + "integrity": "sha1-IXnjyP1p8Tr+dNoziJbx8BqHW1w=", + "dev": true, "requires": { - "es6-promise": "3.3.1" + "cacache": "^11.3.2", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "webpack-log": "^2.0.0" } }, - "escape-html": { - "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "core-js": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.9.tgz?cache=0&sync_timestamp=1560599811627&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.9.tgz", + "integrity": "sha1-a0shRiDINBUuF5Mjcn/Bl0GwhPI=" }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "http://r.cnpmjs.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "escodegen": { - "version": "1.8.1", - "resolved": "http://registry.npm.taobao.org/escodegen/download/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", "dev": true, "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" }, "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "source-map": { - "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, - "optional": true, "requires": { - "amdefine": "1.0.1" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.0.tgz", - "integrity": "sha1-UL8wcekzi83EMzF5Sgy1M/ATYXI=", + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", + "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-error-class": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/create-error-class/download/create-error-class-2.0.1.tgz", + "integrity": "sha1-qHWe1cjSFKRh6B0Y5wqssz3WPJw=", + "requires": { + "capture-stack-trace": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", + "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", + "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cron-parser": { + "version": "2.12.0", + "resolved": "https://registry.npm.taobao.org/cron-parser/download/cron-parser-2.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcron-parser%2Fdownload%2Fcron-parser-2.12.0.tgz", + "integrity": "sha1-Ba6MAIAlzs3Yd4dGYmoYMknKMAs=", + "requires": { + "is-nan": "^1.2.1", + "moment-timezone": "^0.5.25" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true } } }, - "esprima": { - "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", + "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/css-parse/download/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true }, - "esrecurse": { - "version": "4.2.1", - "resolved": "http://r.cnpmjs.org/esrecurse/download/esrecurse-4.2.1.tgz", - "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", + "css-selector-tokenizer": { + "version": "0.7.1", + "resolved": "https://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.1.tgz", + "integrity": "sha1-oXcnGovKUBkXL0+JH8bu2cv2jV0=", "dev": true, "requires": { - "estraverse": "4.2.0" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - } + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" } }, - "estraverse": { - "version": "1.9.3", - "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/cssauron/download/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } }, - "esutils": { - "version": "2.0.2", - "resolved": "http://r.cnpmjs.org/esutils/download/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", "dev": true }, - "etag": { - "version": "1.8.1", - "resolved": "http://r.cnpmjs.org/etag/download/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/custom-event/download/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, - "eventemitter3": { - "version": "3.1.0", - "resolved": "http://r.cnpmjs.org/eventemitter3/download/eventemitter3-3.1.0.tgz", - "integrity": "sha1-CQtNbNvWRe0Qv3UNS1QHlC17oWM=", + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", "dev": true }, - "events": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/events/download/events-3.0.0.tgz", - "integrity": "sha1-mgoN+vYok9krh1uPJpjKQRSXPog=", - "dev": true + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/d3-array/download/d3-array-1.2.4.tgz", + "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8=" }, - "eventsource": { + "d3-collection": { "version": "1.0.7", - "resolved": "http://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", - "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", + "resolved": "https://registry.npm.taobao.org/d3-collection/download/d3-collection-1.0.7.tgz", + "integrity": "sha1-NJvSqpl32wcQkcExRNXk8WtbMQ4=" + }, + "d3-color": { + "version": "1.2.8", + "resolved": "https://registry.npm.taobao.org/d3-color/download/d3-color-1.2.8.tgz", + "integrity": "sha1-Tq+bYO8YjIk/z4so81Rqr+v72fQ=" + }, + "d3-format": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/d3-format/download/d3-format-1.3.2.tgz", + "integrity": "sha1-apa14xvLmBIqMIY/fZI2XABgNWI=" + }, + "d3-interpolate": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.3.2.tgz", + "integrity": "sha1-QX0+vetLxO/Mj9Q2HFXkBAIR/Wg=", "requires": { - "original": "1.0.2" + "d3-color": "1" } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", - "dev": true, + "d3-scale": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/d3-scale/download/d3-scale-2.2.2.tgz", + "integrity": "sha1-TogOCydFrKrd0+3iap6Qip4XuB8=", "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" } }, - "execa": { - "version": "0.10.0", - "resolved": "http://registry.npm.taobao.org/execa/download/execa-0.10.0.tgz", - "integrity": "sha1-/0Vqj1P5D47MxxqW0Rvfx/CCy1A=", - "dev": true, + "d3-scale-chromatic": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/d3-scale-chromatic/download/d3-scale-chromatic-1.3.3.tgz", + "integrity": "sha1-2tQ2bw7csoj0kBKJecPHk1g+08A=", "requires": { - "cross-spawn": "6.0.5", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", - "dev": true - } + "d3-color": "1", + "d3-interpolate": "1" } }, - "exit": { - "version": "0.1.2", - "resolved": "http://r.cnpmjs.org/exit/download/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true + "d3-time": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/d3-time/download/d3-time-1.0.11.tgz", + "integrity": "sha1-HYMaPiXNGJ6yVsF3cKZmNodiu84=" }, - "expand-braces": { - "version": "0.1.2", - "resolved": "http://r.cnpmjs.org/expand-braces/download/expand-braces-0.1.2.tgz", - "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", - "dev": true, + "d3-time-format": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/d3-time-format/download/d3-time-format-2.1.3.tgz", + "integrity": "sha1-rgb44BJqnWDWNk6sWxUzrhusgms=", "requires": { - "array-slice": "0.2.3", - "array-unique": "0.2.1", - "braces": "0.1.5" - }, - "dependencies": { - "array-unique": { - "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "0.1.5", - "resolved": "http://r.cnpmjs.org/braces/download/braces-0.1.5.tgz", - "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", - "dev": true, - "requires": { - "expand-range": "0.1.1" - } - }, - "expand-range": { - "version": "0.1.1", - "resolved": "http://r.cnpmjs.org/expand-range/download/expand-range-0.1.1.tgz", - "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", - "dev": true, - "requires": { - "is-number": "0.1.1", - "repeat-string": "0.2.2" - } - }, - "is-number": { - "version": "0.1.1", - "resolved": "http://r.cnpmjs.org/is-number/download/is-number-0.1.1.tgz", - "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", - "dev": true - }, - "repeat-string": { - "version": "0.2.2", - "resolved": "http://r.cnpmjs.org/repeat-string/download/repeat-string-0.2.2.tgz", - "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", - "dev": true - } + "d3-time": "1" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "damerau-levenshtein": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/damerau-levenshtein/download/damerau-levenshtein-1.0.5.tgz", + "integrity": "sha1-eAz3FE6y6NvRw7uDrjEQDMwxpBQ=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "assert-plus": "^1.0.0" } }, - "expand-range": { - "version": "1.8.2", - "resolved": "http://r.cnpmjs.org/expand-range/download/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, + "date-format": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/date-format/download/date-format-2.0.0.tgz", + "integrity": "sha1-fPexcvHsVk8AA7OeowLFSY+5jI8=", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { - "fill-range": "2.2.4" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz", - "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.1", - "repeat-element": "1.1.3", - "repeat-string": "1.6.1" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "ms": "0.7.1" } }, - "express": { - "version": "4.16.4", - "resolved": "http://registry.npm.taobao.org/express/download/express-4.16.4.tgz", - "integrity": "sha1-/d72GSYQniTFFeqX/S8b2/Yt8S4=", + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/debuglog/download/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz", + "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", "dev": true, "requires": { - "accepts": "1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.4", - "qs": "6.5.2", - "range-parser": "1.2.0", - "safe-buffer": "5.1.2", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "http://r.cnpmjs.org/array-flatten/download/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "execa": "^1.0.0", + "ip-regex": "^2.1.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "http://r.cnpmjs.org/extend-shallow/download/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } + "strip-bom": "^2.0.0" } }, - "external-editor": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/external-editor/download/external-editor-3.0.3.tgz", - "integrity": "sha1-WGbbKal4Jtvkvzr9JAcOrZ6kOic=", - "dev": true, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "object-keys": "^1.0.12" }, "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" } } }, - "extglob": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "http://r.cnpmjs.org/extsprintf/download/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "del": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", + "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1562335642755&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", + "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=", + "optional": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npm.taobao.org/dependency-graph/download/dependency-graph-0.7.2.tgz", + "integrity": "sha1-kdud5utyaZIJ2IrqTB/VIhysHEk=", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "fastparse": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz", - "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=", + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", + "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", "dev": true }, - "faye-websocket": { - "version": "0.11.1", - "resolved": "http://r.cnpmjs.org/faye-websocket/download/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/dezalgo/download/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "requires": { - "websocket-driver": "0.7.0" + "asap": "^2.0.0", + "wrappy": "1" } }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "http://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz", - "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=", + "di": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/di/download/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", "dev": true }, - "figures": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" + }, + "diff2html": { + "version": "2.10.1", + "resolved": "https://registry.npm.taobao.org/diff2html/download/diff2html-2.10.1.tgz", + "integrity": "sha1-rkqIbPpH+5/IMFFhA6vZzYiZO7M=", + "requires": { + "diff": "^4.0.1", + "hogan.js": "^3.0.2", + "merge": "^1.2.1", + "whatwg-fetch": "^3.0.0" + }, + "dependencies": { + "diff": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/diff/download/diff-4.0.1.tgz", + "integrity": "sha1-DGZ8tGfru1zqfxTxNcwtuneAqP8=" + } + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", + "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, - "file-loader": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/file-loader/download/file-loader-2.0.0.tgz", - "integrity": "sha1-OXScgvAguehZAdz/mOgATmQBz94=", + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", + "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "1.0.0" + "path-type": "^3.0.0" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/filename-regex/download/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", "dev": true }, - "fileset": { - "version": "2.0.3", - "resolved": "http://r.cnpmjs.org/fileset/download/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", + "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", "dev": true, "requires": { - "glob": "7.1.3", - "minimatch": "3.0.4" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/dom-serialize/download/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", + "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", + "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-table": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/easy-table/download/easy-table-1.0.0.tgz", + "integrity": "sha1-KdstCFXTYxbkOC5aPYXZy1/JMhY=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "echarts": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.2.1.tgz", + "integrity": "sha1-mo6jsDNU+G+CTZdiXDNM8Wll7wM=", + "requires": { + "zrender": "4.0.7" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.189", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.189.tgz?cache=0&sync_timestamp=1562817782470&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.189.tgz", + "integrity": "sha1-qoQFXrNtNkpohSrS0l4TFaHQYZY=", + "dev": true + }, + "elliptic": { + "version": "6.5.0", + "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.0.tgz", + "integrity": "sha1-K47UyJG33jIA4UQSpbgkjHr1Bco=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.1.tgz", + "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/engine.io/download/engine.io-3.2.1.tgz", + "integrity": "sha1-tgKBw1SEpw7gNR6g6/+D7IyVIqI=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "finalhandler": { - "version": "1.1.1", - "resolved": "http://r.cnpmjs.org/finalhandler/download/finalhandler-1.1.1.tgz", - "integrity": "sha1-7r9O2EAHnIP0JJA4ydcDAIMBsQU=", + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/engine.io-client/download/engine.io-client-3.2.1.tgz", + "integrity": "sha1-b1TAR13khxWKGnx30QF4cItq3TY=", "dev": true, "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" }, "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, "debug": { - "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { "ms": "2.0.0" @@ -4101,973 +4059,922 @@ }, "ms": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/engine.io-parser/download/engine.io-parser-2.1.3.tgz", + "integrity": "sha1-dXq5cPvy37Mse3SwMyFtVznveaY=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" } }, - "find-up": { - "version": "2.1.0", - "resolved": "http://r.cnpmjs.org/find-up/download/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.0.tgz", + "integrity": "sha1-Qcfgv9/nSsH/4eV61qXGyfN0Kn8=", "dev": true, "requires": { - "locate-path": "2.0.0" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" } }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/flush-write-stream/download/flush-write-stream-1.0.3.tgz", - "integrity": "sha1-xdWG7zivYJdlC0m8QbVfq7GfNb0=", + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/ent/download/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/err-code/download/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", + "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "prr": "~1.0.1" } }, - "follow-redirects": { - "version": "1.6.1", - "resolved": "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.6.1.tgz", - "integrity": "sha1-UUlzxEtXVzaLrYvd/lL4HwFclMs=", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz", + "integrity": "sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=", "dev": true, "requires": { - "debug": "3.1.0" + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "http://r.cnpmjs.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", "dev": true } } }, - "for-in": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/for-in/download/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz", + "integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=", "dev": true, "requires": { - "for-in": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "http://r.cnpmjs.org/forever-agent/download/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-3.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes6-promise%2Fdownload%2Fes6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" }, - "form-data": { - "version": "2.3.3", - "resolved": "http://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", - "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "dev": true, + "es6-promisify": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/es6-promisify/download/es6-promisify-4.0.0.tgz", + "integrity": "sha1-eMH/zYSM4jP9lin+qlNxym3N9Lg=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.21" + "es6-promise": "^3.1.2" } }, - "forwarded": { - "version": "0.1.2", - "resolved": "http://r.cnpmjs.org/forwarded/download/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "http://r.cnpmjs.org/fragment-cache/download/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "http://r.cnpmjs.org/fresh/download/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "from2": { - "version": "2.3.0", - "resolved": "http://r.cnpmjs.org/from2/download/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz", + "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, - "fs-access": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/fs-access/download/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", + "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", "dev": true, "requires": { - "null-check": "1.0.0" + "estraverse": "^4.1.0" } }, - "fs-extra": { - "version": "0.26.7", - "resolved": "http://registry.npm.taobao.org/fs-extra/download/fs-extra-0.26.7.tgz", - "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", - "requires": { - "graceful-fs": "4.1.15", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.3" - } + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "http://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.5.tgz", - "integrity": "sha1-BsJ3IYRU7CiN93raVKA7hwKqy50=", - "dev": true, - "requires": { - "minipass": "2.3.5" - } + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true }, - "fs-promise": { - "version": "0.5.0", - "resolved": "http://r.cnpmjs.org/fs-promise/download/fs-promise-0.5.0.tgz", - "integrity": "sha1-Q0fWv2JGVacGGkMZITw5MnatPvM=", + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.2.tgz?cache=0&sync_timestamp=1560950873670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-3.1.2.tgz", + "integrity": "sha1-LT1I+cNGaY/Og6hdfWZOmFNd9uc=", + "dev": true + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.0.0.tgz", + "integrity": "sha1-mgoN+vYok9krh1uPJpjKQRSXPog=", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", + "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", "requires": { - "any-promise": "1.3.0", - "fs-extra": "0.26.7", - "mz": "2.7.0", - "thenify-all": "1.6.0" + "original": "^1.0.0" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "http://r.cnpmjs.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", + "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "fs.realpath": { + "execa": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } }, - "fsevents": { - "version": "1.2.8", - "resolved": "http://registry.npm.taobao.org/fsevents/download/fsevents-1.2.8.tgz", - "integrity": "sha1-V+pTIPdizUaW5ejocSDszIsRys8=", + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, - "optional": true, "requires": { - "nan": "2.12.1", - "node-pre-gyp": "0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.3.5" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, - "optional": true, "requires": { - "safer-buffer": "2.1.2" + "ms": "2.0.0" } }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, - "optional": true, "requires": { - "minimatch": "3.0.4" + "is-descriptor": "^0.1.0" } }, - "inflight": { - "version": "1.0.6", - "bundled": true, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, - "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "is-extendable": "^0.1.0" } }, - "inherits": { - "version": "2.0.3", - "bundled": true, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz", + "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.3.5" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { - "minimist": "0.0.8" + "ms": "2.0.0" } }, "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "4.1.1", - "iconv-lite": "0.4.24", - "sax": "1.2.4" - } + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, - "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.3.0", - "nopt": "4.0.1", - "npm-packlist": "1.4.1", - "npmlog": "4.1.2", - "rc": "1.2.8", - "rimraf": "2.6.3", - "semver": "5.7.0", - "tar": "4.4.8" + "is-plain-object": "^2.0.4" } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, - "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "is-descriptor": "^1.0.0" } }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, - "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.6" + "is-extendable": "^0.1.0" } }, - "npmlog": { - "version": "4.1.2", - "bundled": true, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, - "optional": true, "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "kind-of": "^6.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { - "wrappy": "1.0.2" + "kind-of": "^6.0.0" } }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { + "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, - "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz?cache=0&sync_timestamp=1562517919182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz", + "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=", + "dev": true + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz", + "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz", + "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.0.0.tgz", + "integrity": "sha1-w1cHg/77bhvAl4qFb0v1gluWbCo=", + "dev": true, + "requires": { + "loader-utils": "^1.2.2", + "schema-utils": "^1.0.0" + } + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, - "optional": true, "requires": { - "glob": "7.1.3" + "ms": "2.0.0" } }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { + "ms": { "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.2.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.1.tgz?cache=0&sync_timestamp=1561466276595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.1.tgz", + "integrity": "sha1-aeV8qo8OrLwoHS4stFjUb9tEngg=", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", + "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.7.0.tgz", + "integrity": "sha1-SJ68GY3A5/ZBZ70jsDxMGbV4THY=", + "dev": true, + "requires": { + "debug": "^3.2.6" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "dev": true, - "optional": true, "requires": { - "string-width": "1.0.2" + "ms": "^2.1.1" } }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true } } }, - "fstream": { - "version": "1.0.11", - "resolved": "http://r.cnpmjs.org/fstream/download/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, "requires": { - "graceful-fs": "4.1.15", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.3" + "for-in": "^1.0.1" } }, - "gauge": { - "version": "2.7.4", - "resolved": "http://r.cnpmjs.org/gauge/download/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", "dev": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "gaze": { - "version": "1.1.3", - "resolved": "http://r.cnpmjs.org/gaze/download/gaze-1.1.3.tgz", - "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=", + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, - "optional": true, "requires": { - "globule": "1.2.1" + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/fs-access/download/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-extra": { + "version": "0.26.7", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-0.26.7.tgz", + "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "fs-minipass": { + "version": "1.2.6", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.6.tgz", + "integrity": "sha1-LFzDDe2BKCv+ig18fBhT3esQLAc=", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs-promise": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/fs-promise/download/fs-promise-0.5.0.tgz", + "integrity": "sha1-Q0fWv2JGVacGGkMZITw5MnatPvM=", + "requires": { + "any-promise": "^1.0.0", + "fs-extra": "^0.26.5", + "mz": "^2.3.1", + "thenify-all": "^1.6.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.0.7", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.0.7.tgz", + "integrity": "sha1-OCybRDxsusTFcYfN2iOqO/HM/Co=", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz", + "integrity": "sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true + }, "genfun": { "version": "5.0.0", - "resolved": "http://registry.npm.taobao.org/genfun/download/genfun-5.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/genfun/download/genfun-5.0.0.tgz", "integrity": "sha1-ndlxCgaQClxKW/V6yl2k5S/nZTc=", "dev": true }, "get-caller-file": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", "dev": true }, - "get-stdin": { - "version": "4.0.1", - "resolved": "http://r.cnpmjs.org/get-stdin/download/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, "get-stream": { - "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/get-stream/download/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "requires": { + "pump": "^3.0.0" + }, + "dependencies": { + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } }, "get-value": { "version": "2.0.6", - "resolved": "http://r.cnpmjs.org/get-value/download/get-value-2.0.6.tgz", + "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "getpass": { "version": "0.1.7", - "resolved": "http://r.cnpmjs.org/getpass/download/getpass-0.1.7.tgz", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { - "version": "7.1.3", - "resolved": "http://registry.npm.taobao.org/glob/download/glob-7.1.3.tgz", - "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", + "version": "7.1.4", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.4.tgz", + "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "http://r.cnpmjs.org/glob-base/download/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } }, "globals": { "version": "9.18.0", - "resolved": "http://r.cnpmjs.org/globals/download/globals-9.18.0.tgz", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz", "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", "dev": true }, "globby": { "version": "7.1.1", - "resolved": "http://r.cnpmjs.org/globby/download/globby-7.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1562335642755&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz", "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.2.2", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "globule": { - "version": "1.2.1", - "resolved": "http://r.cnpmjs.org/globule/download/globule-1.2.1.tgz", - "integrity": "sha1-Xf+xsZHyLSB5epNptJ6rTpg5aW0=", - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.3", - "lodash": "4.17.11", - "minimatch": "3.0.4" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, "good-listener": { "version": "1.2.2", - "resolved": "http://r.cnpmjs.org/good-listener/download/good-listener-1.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", "optional": true, "requires": { - "delegate": "3.2.0" + "delegate": "^3.1.2" } }, "got": { "version": "5.3.1", - "resolved": "http://r.cnpmjs.org/got/download/got-5.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/got/download/got-5.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-5.3.1.tgz", "integrity": "sha1-det5autZdyav3aVyE0ywKtlvXYs=", "requires": { - "create-error-class": "2.0.1", - "duplexer2": "0.1.4", - "is-plain-obj": "1.1.0", - "is-redirect": "1.0.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "node-status-codes": "1.0.0", - "object-assign": "4.1.1", - "parse-json": "2.2.0", - "pinkie-promise": "2.0.1", - "read-all-stream": "3.1.0", - "readable-stream": "2.3.6", - "timed-out": "2.0.0", - "unzip-response": "1.0.2", - "url-parse-lax": "1.0.0" + "create-error-class": "^2.0.0", + "duplexer2": "^0.1.4", + "is-plain-obj": "^1.0.0", + "is-redirect": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "node-status-codes": "^1.0.0", + "object-assign": "^4.0.1", + "parse-json": "^2.1.0", + "pinkie-promise": "^2.0.0", + "read-all-stream": "^3.0.0", + "readable-stream": "^2.0.5", + "timed-out": "^2.0.0", + "unzip-response": "^1.0.0", + "url-parse-lax": "^1.0.0" } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.15.tgz", - "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=" + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.0.tgz", + "integrity": "sha1-jY/cc5d8sEEEchy1NmbBymTNMos=" }, "gunzip-maybe": { "version": "1.2.1", - "resolved": "http://r.cnpmjs.org/gunzip-maybe/download/gunzip-maybe-1.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/gunzip-maybe/download/gunzip-maybe-1.2.1.tgz", "integrity": "sha1-mqPc5TwnJRbECyphCiVSm/ZO4bw=", "requires": { - "browserify-zlib": "0.1.4", - "peek-stream": "1.1.3", - "pumpify": "1.5.1", - "through2": "0.4.2" + "browserify-zlib": "^0.1.4", + "peek-stream": "^1.1.0", + "pumpify": "^1.3.3", + "through2": "^0.4.1" } }, "handle-thing": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.0.tgz", "integrity": "sha1-DgOWlf9QyT/CiFV9aW88HcZ3Z1Q=", "dev": true }, "handlebars": { - "version": "4.0.12", - "resolved": "http://registry.npm.taobao.org/handlebars/download/handlebars-4.0.12.tgz", - "integrity": "sha1-LBXIqW1G2l4mZwBRi6jLjZGdW8U=", + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/handlebars/download/handlebars-4.1.2.tgz", + "integrity": "sha1-trN8HO0DBrIh4JT8eso+wjsTG2c=", "dev": true, "requires": { - "async": "2.6.1", - "optimist": "0.6.1", - "source-map": "0.6.1", - "uglify-js": "3.4.9" + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "http://registry.npm.taobao.org/async/download/async-2.6.1.tgz", - "integrity": "sha1-skWiPKcZMAROxT+kaqAKPofGphA=", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true } @@ -5075,130 +4982,159 @@ }, "har-schema": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true }, "har-validator": { "version": "5.1.3", - "resolved": "http://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz", "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", "dev": true, "requires": { - "ajv": "6.6.2", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, + "requires": { + "function-bind": "^1.1.1" } }, "has-ansi": { "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/has-ansi/download/has-ansi-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, - "has-binary": { - "version": "0.1.7", - "resolved": "http://r.cnpmjs.org/has-binary/download/has-binary-0.1.7.tgz", - "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/has-binary2/download/has-binary2-1.0.3.tgz", + "integrity": "sha1-d3asYn8+p3JQz8My2rfd9eT10R0=", "dev": true, "requires": { - "isarray": "0.0.1" + "isarray": "2.0.1" }, "dependencies": { "isarray": { - "version": "0.0.1", - "resolved": "http://r.cnpmjs.org/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-2.0.1.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", "dev": true } } }, "has-cors": { "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/has-cors/download/has-cors-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/has-cors/download/has-cors-1.1.0.tgz", "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "has-unicode": { - "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/has-unicode/download/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/has-value/download/has-value-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/has-values/download/has-values-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "kind-of": { "version": "4.0.0", - "resolved": "http://r.cnpmjs.org/kind-of/download/kind-of-4.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "hash-base": { "version": "3.0.4", - "resolved": "http://r.cnpmjs.org/hash-base/download/hash-base-3.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { "version": "1.1.7", - "resolved": "http://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "hmac-drbg": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.7", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hogan.js": { "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/hogan.js/download/hogan.js-3.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/hogan.js/download/hogan.js-3.0.2.tgz", "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", "requires": { "mkdirp": "0.3.0", @@ -5207,96 +5143,105 @@ "dependencies": { "mkdirp": { "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.3.0.tgz", "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" } } }, "hosted-git-info": { "version": "2.7.1", - "resolved": "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz", + "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz", "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=" }, "hpack.js": { "version": "2.1.6", - "resolved": "http://r.cnpmjs.org/hpack.js/download/hpack.js-2.1.6.tgz", + "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "html-entities": { "version": "1.2.1", - "resolved": "http://r.cnpmjs.org/html-entities/download/html-entities-1.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz", "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", "dev": true }, "http-cache-semantics": { "version": "3.8.1", - "resolved": "http://registry.npm.taobao.org/http-cache-semantics/download/http-cache-semantics-3.8.1.tgz", + "resolved": "https://registry.npm.taobao.org/http-cache-semantics/download/http-cache-semantics-3.8.1.tgz", "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=", "dev": true }, "http-deceiver": { "version": "1.2.7", - "resolved": "http://r.cnpmjs.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", "dev": true }, "http-errors": { - "version": "1.6.3", - "resolved": "http://r.cnpmjs.org/http-errors/download/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": "1.4.0" + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, "http-parser-js": { - "version": "0.5.0", - "resolved": "http://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.0.tgz", - "integrity": "sha1-1l7b7ehDSdDcMDIIFaFdOcw8u9g=" + "version": "0.4.10", + "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=" }, "http-proxy": { "version": "1.17.0", - "resolved": "http://r.cnpmjs.org/http-proxy/download/http-proxy-1.17.0.tgz", + "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.17.0.tgz", "integrity": "sha1-etOElGWPhGBeL220Q230EPTlvpo=", "dev": true, "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.6.1", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-agent": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-2.1.0.tgz", "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", "dev": true, "requires": { - "agent-base": "4.2.1", + "agent-base": "4", "debug": "3.1.0" }, "dependencies": { "agent-base": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/agent-base/download/agent-base-4.2.1.tgz", - "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", "dev": true, "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "debug": { "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { @@ -5304,503 +5249,411 @@ } }, "es6-promise": { - "version": "4.2.5", - "resolved": "http://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.5.tgz", - "integrity": "sha1-2m0NVpLvtGHggsFIF/4kJ9j10FQ=", + "version": "4.2.8", + "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes6-promise%2Fdownload%2Fes6-promise-4.2.8.tgz", + "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=", "dev": true }, "es6-promisify": { "version": "5.0.0", - "resolved": "http://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "4.2.5" + "es6-promise": "^4.0.3" } }, "ms": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "http-proxy-middleware": { - "version": "0.18.0", - "resolved": "http://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.18.0.tgz", - "integrity": "sha1-CYfmu1pWBuWmkWjY+WeofxXdiqs=", + "version": "0.19.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&sync_timestamp=1562701366954&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", + "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", "dev": true, "requires": { - "http-proxy": "1.17.0", - "is-glob": "4.0.0", - "lodash": "4.17.11", - "micromatch": "3.1.10" + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" } }, "http-signature": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/https-browserify/download/https-browserify-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, "https-proxy-agent": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/https-proxy-agent/download/https-proxy-agent-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-1.0.0.tgz", "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", "requires": { - "agent-base": "2.1.1", - "debug": "2.2.0", - "extend": "3.0.2" + "agent-base": "2", + "debug": "2", + "extend": "3" } }, "humanize-ms": { "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/humanize-ms/download/humanize-ms-1.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/humanize-ms/download/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.0.0" }, "dependencies": { "ms": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true } } }, "iconv-lite": { - "version": "0.4.23", - "resolved": "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.23.tgz", - "integrity": "sha1-KXhx9jvlB63Pv8pxXQzQ7thOmmM=", + "version": "0.4.24", + "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { - "version": "1.1.12", - "resolved": "http://r.cnpmjs.org/ieee754/download/ieee754-1.1.12.tgz", - "integrity": "sha1-UL8k5bnIu5ivSWTJQc2wkY2ntgs=", + "version": "1.1.13", + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", + "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", "dev": true }, "iferr": { "version": "0.1.5", - "resolved": "http://r.cnpmjs.org/iferr/download/iferr-0.1.5.tgz", + "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true }, "ignore": { "version": "3.3.10", - "resolved": "http://r.cnpmjs.org/ignore/download/ignore-3.3.10.tgz", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz", "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", "dev": true }, "ignore-walk": { "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.1.tgz", "integrity": "sha1-qD5i59JyrA47VRqqgoMaGbafgvg=", "dev": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "image-size": { "version": "0.5.5", - "resolved": "http://r.cnpmjs.org/image-size/download/image-size-0.5.5.tgz", + "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz", "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", "dev": true, "optional": true }, "immediate": { "version": "3.0.6", - "resolved": "http://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz", + "resolved": "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz", "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", "dev": true }, "import-cwd": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "dev": true, "requires": { - "import-from": "2.1.0" + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1561888919431&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" } }, "import-from": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "import-local": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", "dev": true, "requires": { - "pkg-dir": "3.0.0", - "resolve-cwd": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-2.1.0.tgz", - "integrity": "sha1-HVoNIPsScHx1imVfa7xDhrWTDWg=", - "dev": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "2.1.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-2.0.0.tgz", - "integrity": "sha1-hQgLuHxkaI+keZb+j3376CEXYLE=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dev": true, - "requires": { - "find-up": "3.0.0" - } - } + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { "version": "0.1.4", - "resolved": "http://r.cnpmjs.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "in-publish": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/in-publish/download/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true, - "optional": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "http://r.cnpmjs.org/indent-string/download/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "optional": true, - "requires": { - "repeating": "2.0.1" - } - }, "indexof": { "version": "0.0.1", - "resolved": "http://r.cnpmjs.org/indexof/download/indexof-0.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz", "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "http://r.cnpmjs.org/inflight/download/inflight-1.0.6.tgz", + "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { - "version": "2.0.3", - "resolved": "http://r.cnpmjs.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" }, "ini": { "version": "1.3.5", - "resolved": "http://r.cnpmjs.org/ini/download/ini-1.3.5.tgz", + "resolved": "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz", "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", "dev": true }, "init-package-json": { "version": "1.9.1", - "resolved": "http://r.cnpmjs.org/init-package-json/download/init-package-json-1.9.1.tgz", + "resolved": "https://registry.npm.taobao.org/init-package-json/download/init-package-json-1.9.1.tgz", "integrity": "sha1-oo4FtbrrM2PNRz32jTDTqAUjoxw=", "requires": { - "glob": "5.0.15", - "npm-package-arg": "4.1.0", - "promzard": "0.3.0", - "read": "1.0.7", - "read-package-json": "2.0.13", - "semver": "5.0.1", - "validate-npm-package-license": "3.0.4", - "validate-npm-package-name": "2.2.2" + "glob": "^5.0.3", + "npm-package-arg": "^4.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^2.0.1" }, "dependencies": { "glob": { "version": "5.0.15", - "resolved": "http://r.cnpmjs.org/glob/download/glob-5.0.15.tgz", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } }, "inquirer": { - "version": "6.2.1", - "resolved": "http://registry.npm.taobao.org/inquirer/download/inquirer-6.2.1.tgz", - "integrity": "sha1-mUP8SIIWG9sLDJJ2dpx1sy2/zVI=", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", + "version": "6.4.1", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-6.4.1.tgz?cache=0&sync_timestamp=1562820422760&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-6.4.1.tgz", + "integrity": "sha1-e9nlqwVnzSO0GwGAto4M+oL8PAs=", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "5.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true }, "mute-stream": { "version": "0.0.7", - "resolved": "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, - "string-width": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, "strip-ansi": { - "version": "5.0.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.0.0.tgz", - "integrity": "sha1-949otdCGbCCyybjGG1KYUI3IdW8=", + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { - "ansi-regex": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.0.0.tgz", - "integrity": "sha1-cN55Ht8CFATD/WFaqJEYrgQy5ak=", - "dev": true - } + "ansi-regex": "^4.1.0" } } } }, "internal-ip": { - "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/internal-ip/download/internal-ip-3.0.1.tgz", - "integrity": "sha1-31yZh24dLrLqLXT1IOP2aaAOzic=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz", + "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", "dev": true, "requires": { - "default-gateway": "2.7.2", - "ipaddr.js": "1.8.0" + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" } }, "interpret": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/interpret/download/interpret-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.2.0.tgz", "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=", "dev": true }, "invariant": { "version": "2.2.4", - "resolved": "http://r.cnpmjs.org/invariant/download/invariant-2.2.4.tgz", + "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", "dev": true, "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/invert-kv/download/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", + "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", "dev": true }, "ip": { "version": "1.1.5", - "resolved": "http://r.cnpmjs.org/ip/download/ip-1.1.5.tgz", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, "ip-regex": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", "dev": true }, "ipaddr.js": { - "version": "1.8.0", - "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.0.tgz", + "integrity": "sha1-N9905DCg5HVQ/lSi3v4w2KzZX2U=", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "http://r.cnpmjs.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-arrayish": { "version": "0.2.1", - "resolved": "http://r.cnpmjs.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "dev": true, "requires": { - "binary-extensions": "1.12.0" + "binary-extensions": "^2.0.0" } }, "is-buffer": { "version": "1.1.6", - "resolved": "http://r.cnpmjs.org/is-buffer/download/is-buffer-1.1.6.tgz", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", "dev": true }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "1.1.1" - } + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz", + "integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=", + "dev": true }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "http://r.cnpmjs.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, "is-descriptor": { "version": "0.1.6", - "resolved": "http://r.cnpmjs.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "http://r.cnpmjs.org/kind-of/download/kind-of-5.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", "dev": true } @@ -5808,462 +5661,352 @@ }, "is-directory": { "version": "0.3.1", - "resolved": "http://r.cnpmjs.org/is-directory/download/is-directory-0.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/is-dotfile/download/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "http://r.cnpmjs.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, "is-extendable": { "version": "0.1.1", - "resolved": "http://r.cnpmjs.org/is-extendable/download/is-extendable-0.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/is-finite/download/is-finite-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-nan": { "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/is-nan/download/is-nan-1.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-nan/download/is-nan-1.2.1.tgz", "integrity": "sha1-n69ltvttskt/XAYoR16nH5iEAeI=", "requires": { - "define-properties": "1.1.3" + "define-properties": "^1.1.1" } }, "is-number": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true }, "is-path-cwd": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1562347283002&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", "dev": true }, "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^2.1.0" } }, "is-path-inside": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/is-path-inside/download/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", + "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.2" } }, "is-plain-obj": { "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, "is-plain-object": { "version": "2.0.4", - "resolved": "http://r.cnpmjs.org/is-plain-object/download/is-plain-object-2.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "http://r.cnpmjs.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/is-primitive/download/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, "is-promise": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-promise%2Fdownload%2Fis-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, "is-redirect": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-redirect/download/is-redirect-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, "is-stream": { "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/is-stream/download/is-stream-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz", + "integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "http://r.cnpmjs.org/is-utf8/download/is-utf8-0.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/is-windows/download/is-windows-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", "dev": true }, "is-wsl": { "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/is-wsl/download/is-wsl-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/isarray/download/isarray-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-3.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-3.0.3.tgz?cache=0&sync_timestamp=1559771131917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisbinaryfile%2Fdownload%2Fisbinaryfile-3.0.3.tgz", "integrity": "sha1-XW3vPt6/boyoyunDAYOoBLX4voA=", "dev": true, "requires": { - "buffer-alloc": "1.2.0" + "buffer-alloc": "^1.2.0" } }, "isexe": { "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/isexe/download/isexe-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "isstream": { "version": "0.1.2", - "resolved": "http://r.cnpmjs.org/isstream/download/isstream-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "istanbul": { - "version": "0.4.5", - "resolved": "http://registry.npm.taobao.org/istanbul/download/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", - "dev": true, - "requires": { - "abbrev": "1.0.9", - "async": "1.5.2", - "escodegen": "1.8.1", - "esprima": "2.7.3", - "glob": "5.0.15", - "handlebars": "4.0.12", - "js-yaml": "3.12.1", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "once": "1.4.0", - "resolve": "1.1.7", - "supports-color": "3.2.3", - "which": "1.3.1", - "wordwrap": "1.0.0" - }, - "dependencies": { - "abbrev": { - "version": "1.0.9", - "resolved": "http://registry.npm.taobao.org/abbrev/download/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, - "esprima": { - "version": "2.7.3", - "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "glob": { - "version": "5.0.15", - "resolved": "http://registry.npm.taobao.org/glob/download/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "http://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1.0.9" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, "istanbul-api": { "version": "1.3.7", - "resolved": "http://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.3.7.tgz", + "resolved": "https://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.3.7.tgz", "integrity": "sha1-qGx3DSsD4R4/d4zXrt2C0nIgkqo=", "dev": true, "requires": { - "async": "2.6.1", - "fileset": "2.0.3", - "istanbul-lib-coverage": "1.2.1", - "istanbul-lib-hook": "1.2.2", - "istanbul-lib-instrument": "1.10.2", - "istanbul-lib-report": "1.1.5", - "istanbul-lib-source-maps": "1.2.6", - "istanbul-reports": "1.5.1", - "js-yaml": "3.12.1", - "mkdirp": "0.5.1", - "once": "1.4.0" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "http://registry.npm.taobao.org/async/download/async-2.6.1.tgz", - "integrity": "sha1-skWiPKcZMAROxT+kaqAKPofGphA=", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - } + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" } }, "istanbul-instrumenter-loader": { "version": "3.0.1", - "resolved": "http://r.cnpmjs.org/istanbul-instrumenter-loader/download/istanbul-instrumenter-loader-3.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/istanbul-instrumenter-loader/download/istanbul-instrumenter-loader-3.0.1.tgz", "integrity": "sha1-mVe9WSUrNz+uXFK3tRiOb94qCUk=", "dev": true, "requires": { - "convert-source-map": "1.6.0", - "istanbul-lib-instrument": "1.10.2", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "convert-source-map": "^1.5.0", + "istanbul-lib-instrument": "^1.7.3", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0" }, "dependencies": { "ajv": { "version": "5.5.2", - "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz?cache=0&sync_timestamp=1562517919182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, "json-schema-traverse": { "version": "0.3.1", - "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, "schema-utils": { "version": "0.3.0", - "resolved": "http://r.cnpmjs.org/schema-utils/download/schema-utils-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.3.0.tgz", "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "5.5.2" + "ajv": "^5.0.0" } } } }, "istanbul-lib-coverage": { "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-coverage%2Fdownload%2Fistanbul-lib-coverage-1.2.1.tgz", "integrity": "sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA=", "dev": true }, "istanbul-lib-hook": { "version": "1.2.2", - "resolved": "http://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.2.2.tgz", "integrity": "sha1-vGvwfxKmQfvxyFOR0Nqo8K6mv4Y=", "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.2", - "resolved": "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.10.2.tgz", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.10.2.tgz", "integrity": "sha1-H1XtEKw8R/K93dUweTUSZ1TQqco=", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.1", - "semver": "5.6.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" }, "dependencies": { "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true } } }, "istanbul-lib-report": { "version": "1.1.5", - "resolved": "http://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.1.5.tgz", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.1.5.tgz", "integrity": "sha1-8qZX/GKC+WFwqvKB6zCkWPf0Fww=", "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.6", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "has-flag": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/has-flag/download/has-flag-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "supports-color": { "version": "3.2.3", - "resolved": "http://r.cnpmjs.org/supports-color/download/supports-color-3.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.6", - "resolved": "http://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.2.6.tgz", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.2.6.tgz", "integrity": "sha1-N7n/ZhWA+PyhEjJ1LuQuCMZnXY8=", "dev": true, "requires": { - "debug": "3.2.6", - "istanbul-lib-coverage": "1.2.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { "version": "3.2.6", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true }, "source-map": { "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } @@ -6271,141 +6014,137 @@ }, "istanbul-reports": { "version": "1.5.1", - "resolved": "http://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.5.1.tgz", + "resolved": "https://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.5.1.tgz", "integrity": "sha1-l+Tb87UV6MSEyuoV1lJO69P/Tho=", "dev": true, "requires": { - "handlebars": "4.0.12" + "handlebars": "^4.0.3" } }, "jasmine": { - "version": "2.8.0", - "resolved": "http://registry.npm.taobao.org/jasmine/download/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/jasmine/download/jasmine-3.4.0.tgz", + "integrity": "sha1-D6aJA/8MlpdFnNBEtE9NzvXsi9w=", "dev": true, "requires": { - "exit": "0.1.2", - "glob": "7.1.3", - "jasmine-core": "2.8.0" + "glob": "^7.1.3", + "jasmine-core": "~3.4.0" }, "dependencies": { "jasmine-core": { - "version": "2.8.0", - "resolved": "http://registry.npm.taobao.org/jasmine-core/download/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/jasmine-core/download/jasmine-core-3.4.0.tgz", + "integrity": "sha1-KnRhjpZgJlMMNRjwPp+EXSZHPOM=", "dev": true } } }, "jasmine-core": { "version": "2.99.1", - "resolved": "http://r.cnpmjs.org/jasmine-core/download/jasmine-core-2.99.1.tgz", + "resolved": "https://registry.npm.taobao.org/jasmine-core/download/jasmine-core-2.99.1.tgz", "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", "dev": true }, "jasmine-spec-reporter": { "version": "4.2.1", - "resolved": "http://r.cnpmjs.org/jasmine-spec-reporter/download/jasmine-spec-reporter-4.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/jasmine-spec-reporter/download/jasmine-spec-reporter-4.2.1.tgz", "integrity": "sha1-HWMq7ANBZwrTJPkrqEtLMrNeniI=", "dev": true, "requires": { "colors": "1.1.2" } }, - "jasminewd2": { - "version": "2.2.0", - "resolved": "http://r.cnpmjs.org/jasminewd2/download/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", - "dev": true - }, "jquery": { - "version": "3.3.1", - "resolved": "http://r.cnpmjs.org/jquery/download/jquery-3.3.1.tgz", - "integrity": "sha1-lYzinoHJeQ8xvneS311NlfxX+8o=" + "version": "3.4.1", + "resolved": "https://registry.npm.taobao.org/jquery/download/jquery-3.4.1.tgz", + "integrity": "sha1-cU8fjZ3eS9+lV2S6N+8hRjDYDvI=" }, "js-base64": { "version": "2.5.1", - "resolved": "http://registry.npm.taobao.org/js-base64/download/js-base64-2.5.1.tgz", + "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-2.5.1.tgz", "integrity": "sha1-Hvo57yxfeYC7F4St5KivLeMpESE=" }, "js-tokens": { "version": "3.0.2", - "resolved": "http://r.cnpmjs.org/js-tokens/download/js-tokens-3.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "js-yaml": { - "version": "3.12.1", - "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.12.1.tgz", - "integrity": "sha1-KVyGMqGKI+BUz1ydPOyv5ngWdgA=", + "version": "3.13.1", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { "version": "0.1.1", - "resolved": "http://r.cnpmjs.org/jsbn/download/jsbn-0.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "http://r.cnpmjs.org/jsesc/download/jsesc-1.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" }, "json-schema": { "version": "0.2.3", - "resolved": "http://r.cnpmjs.org/json-schema/download/json-schema-0.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "http://r.cnpmjs.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json3": { - "version": "3.3.2", - "resolved": "http://r.cnpmjs.org/json3/download/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" + "version": "3.3.3", + "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", + "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=" }, "json5": { - "version": "0.5.1", - "resolved": "http://r.cnpmjs.org/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } }, "jsonfile": { "version": "2.4.0", - "resolved": "http://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { - "graceful-fs": "4.1.15" + "graceful-fs": "^4.1.6" } }, "jsonparse": { "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/jsonparse/download/jsonparse-1.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/jsonparse/download/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, "jsprim": { "version": "1.4.1", - "resolved": "http://r.cnpmjs.org/jsprim/download/jsprim-1.4.1.tgz", + "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { @@ -6416,340 +6155,849 @@ } }, "jszip": { - "version": "3.1.5", - "resolved": "http://registry.npm.taobao.org/jszip/download/jszip-3.1.5.tgz", - "integrity": "sha1-48KmxtcGrG5gMxQDbUPNQL7v3zc=", + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/jszip/download/jszip-3.2.2.tgz", + "integrity": "sha1-sUOBbffhBqlZepTHdJM4WtylvR0=", "dev": true, "requires": { - "core-js": "2.3.0", - "es6-promise": "3.0.2", - "lie": "3.1.1", - "pako": "1.0.8", - "readable-stream": "2.0.6" + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" }, "dependencies": { - "core-js": { - "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/core-js/download/core-js-2.3.0.tgz", - "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", - "dev": true - }, - "es6-promise": { - "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/es6-promise/download/es6-promise-3.0.2.tgz", - "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", - "dev": true - }, "pako": { - "version": "1.0.8", - "resolved": "http://registry.npm.taobao.org/pako/download/pako-1.0.8.tgz", - "integrity": "sha1-aESJCqucY1r4aK1f7MYuisu6PqQ=", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.10.tgz", + "integrity": "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=", "dev": true } } }, "karma": { - "version": "1.7.1", - "resolved": "http://r.cnpmjs.org/karma/download/karma-1.7.1.tgz", - "integrity": "sha1-hcwI6eCiLXzpzKN8ShvoJPaisa4=", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "body-parser": "1.18.3", - "chokidar": "1.7.0", - "colors": "1.1.2", - "combine-lists": "1.0.1", - "connect": "3.6.6", - "core-js": "2.6.3", - "di": "0.0.1", - "dom-serialize": "2.2.1", - "expand-braces": "0.1.2", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "http-proxy": "1.17.0", - "isbinaryfile": "3.0.3", - "lodash": "3.10.1", - "log4js": "0.6.38", - "mime": "1.6.0", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "qjobs": "1.2.0", - "range-parser": "1.2.0", - "rimraf": "2.6.3", - "safe-buffer": "5.1.2", - "socket.io": "1.7.3", - "source-map": "0.5.7", - "tmp": "0.0.31", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/karma/download/karma-4.1.0.tgz", + "integrity": "sha1-0HOHyXQ6V1tA+vc+ij61Qhwhk+E=", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "braces": "^2.3.2", + "chokidar": "^2.0.3", + "colors": "^1.1.0", + "connect": "^3.6.0", + "core-js": "^2.2.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "flatted": "^2.0.0", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.11", + "log4js": "^4.0.0", + "mime": "^2.3.1", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "2.1.1", + "source-map": "^0.6.1", + "tmp": "0.0.33", "useragent": "2.3.0" }, "dependencies": { "anymatch": { - "version": "1.3.2", - "resolved": "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.2.tgz", - "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, - "array-unique": { - "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", "dev": true }, "braces": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, "chokidar": { - "version": "1.7.0", - "resolved": "http://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.6.tgz?cache=0&sync_timestamp=1562457945399&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.6.tgz", + "integrity": "sha1-tsrWU6kp4kTOioNCRBZNJB+pVMU=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.8", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } }, - "extglob": { - "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz", + "integrity": "sha1-P17WZYPM1vQAtaANtvfoYTY+OI8=", "dev": true, + "optional": true, "requires": { - "is-extglob": "1.0.0" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } } }, - "glob-parent": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "binary-extensions": "^1.0.0" } }, - "is-extglob": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "kind-of": "^3.0.2" } }, "kind-of": { "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, - "lodash": { - "version": "3.10.1", - "resolved": "http://r.cnpmjs.org/lodash/download/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.4.tgz", + "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", "dev": true }, - "micromatch": { - "version": "2.3.11", - "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1562457210009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "source-map": { - "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true }, - "tmp": { - "version": "0.0.31", - "resolved": "http://registry.npm.taobao.org/tmp/download/tmp-0.0.31.tgz", - "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, "karma-chrome-launcher": { "version": "2.2.0", - "resolved": "http://r.cnpmjs.org/karma-chrome-launcher/download/karma-chrome-launcher-2.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/karma-chrome-launcher/download/karma-chrome-launcher-2.2.0.tgz", "integrity": "sha1-zxudBxNswY/iOTJ9JGVMPbw2is8=", "dev": true, "requires": { - "fs-access": "1.0.1", - "which": "1.3.1" + "fs-access": "^1.0.0", + "which": "^1.2.1" } }, "karma-coverage-istanbul-reporter": { "version": "1.4.3", - "resolved": "http://r.cnpmjs.org/karma-coverage-istanbul-reporter/download/karma-coverage-istanbul-reporter-1.4.3.tgz", + "resolved": "https://registry.npm.taobao.org/karma-coverage-istanbul-reporter/download/karma-coverage-istanbul-reporter-1.4.3.tgz", "integrity": "sha1-O13/RmT6W41RlrmInj9hwforgNk=", "dev": true, "requires": { - "istanbul-api": "1.3.7", - "minimatch": "3.0.4" + "istanbul-api": "^1.3.1", + "minimatch": "^3.0.4" } }, "karma-jasmine": { "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/karma-jasmine/download/karma-jasmine-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/karma-jasmine/download/karma-jasmine-1.1.2.tgz", "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", "dev": true }, "karma-jasmine-html-reporter": { "version": "0.2.2", - "resolved": "http://r.cnpmjs.org/karma-jasmine-html-reporter/download/karma-jasmine-html-reporter-0.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/karma-jasmine-html-reporter/download/karma-jasmine-html-reporter-0.2.2.tgz", "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", "dev": true, "requires": { - "karma-jasmine": "1.1.2" + "karma-jasmine": "^1.0.2" } }, "karma-source-map-support": { - "version": "1.3.0", - "resolved": "http://r.cnpmjs.org/karma-source-map-support/download/karma-source-map-support-1.3.0.tgz", - "integrity": "sha1-Nt1NjKFUtirOlWliNvrjfK8Kfd4=", + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/karma-source-map-support/download/karma-source-map-support-1.4.0.tgz", + "integrity": "sha1-WFJs7M9+hzDlbv/Zek3o1xKsDWs=", "dev": true, "requires": { - "source-map-support": "0.5.9" + "source-map-support": "^0.5.5" } }, "killable": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true }, "klaw": { "version": "1.3.1", - "resolved": "http://r.cnpmjs.org/klaw/download/klaw-1.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/klaw/download/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "requires": { - "graceful-fs": "4.1.15" + "graceful-fs": "^4.1.9" } }, "lcid": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/lcid/download/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", + "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^2.0.0" } }, "less": { "version": "3.9.0", - "resolved": "http://registry.npm.taobao.org/less/download/less-3.9.0.tgz", + "resolved": "https://registry.npm.taobao.org/less/download/less-3.9.0.tgz", "integrity": "sha1-t1EcQ/N89X3Iff/ZiD7BISibFHQ=", "dev": true, "requires": { - "clone": "2.1.2", - "errno": "0.1.7", - "graceful-fs": "4.1.15", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", - "request": "2.88.0", - "source-map": "0.6.1" + "clone": "^2.1.2", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true, "optional": true @@ -6757,694 +7005,604 @@ } }, "less-loader": { - "version": "4.1.0", - "resolved": "http://r.cnpmjs.org/less-loader/download/less-loader-4.1.0.tgz", - "integrity": "sha1-LBNSxbCaT4QQFJAnT9UWdN5BNj4=", - "dev": true, - "requires": { - "clone": "2.1.2", - "loader-utils": "1.1.0", - "pify": "3.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/less-loader/download/less-loader-5.0.0.tgz", + "integrity": "sha1-SY3eOmxsT4h0WO6e0/CGoSrRtGY=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^4.0.1" } }, "license-webpack-plugin": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/license-webpack-plugin/download/license-webpack-plugin-2.0.4.tgz", - "integrity": "sha1-SFMufXtF9s6yGmi2gmznJB1+pto=", + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/license-webpack-plugin/download/license-webpack-plugin-2.1.1.tgz", + "integrity": "sha1-8Kt2D38wHHb1r1LkgPMgZWtXIbs=", "dev": true, "requires": { - "@types/webpack-sources": "0.1.5", - "webpack-sources": "1.3.0" + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" } }, "lie": { - "version": "3.1.1", - "resolved": "http://registry.npm.taobao.org/lie/download/lie-3.1.1.tgz", - "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", - "dev": true, - "requires": { - "immediate": "3.0.6" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/load-json-file/download/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz", + "integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "immediate": "~3.0.5" } }, "loader-runner": { "version": "2.4.0", - "resolved": "http://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz", "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", "dev": true }, "loader-utils": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/loader-utils/download/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.2.3.tgz", + "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" } }, "locate-path": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/locate-path/download/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.11", - "resolved": "http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz", - "integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40=", + "version": "4.17.14", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.14.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.14.tgz", + "integrity": "sha1-nOSHrmbJYlT+ILWZ8htoFgKAeLo=", "dev": true }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "http://r.cnpmjs.org/lodash.assign/download/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true, - "optional": true - }, "lodash.clonedeep": { "version": "4.5.0", - "resolved": "http://r.cnpmjs.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "http://r.cnpmjs.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.1", - "resolved": "http://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.1.tgz", - "integrity": "sha1-rcJdnLmbk5HFliTzefu6YNcRHVQ=" - }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "http://r.cnpmjs.org/lodash.mergewith/download/lodash.mergewith-4.6.1.tgz", - "integrity": "sha1-Y5BX5ybDr72z59QnQcqo1uQzWSc=", - "dev": true, - "optional": true - }, "lodash.tail": { "version": "4.1.1", - "resolved": "http://r.cnpmjs.org/lodash.tail/download/lodash.tail-4.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/lodash.tail/download/lodash.tail-4.1.1.tgz", "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", "dev": true }, "log4js": { - "version": "0.6.38", - "resolved": "http://r.cnpmjs.org/log4js/download/log4js-0.6.38.tgz", - "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/log4js/download/log4js-4.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog4js%2Fdownload%2Flog4js-4.5.0.tgz", + "integrity": "sha1-Idtb7XZy/EeE94ziTAp3GkXhdpA=", "dev": true, "requires": { - "readable-stream": "1.0.34", - "semver": "4.3.6" + "date-format": "^2.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.0", + "rfdc": "^1.1.4", + "streamroller": "^1.0.5" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "http://r.cnpmjs.org/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "http://r.cnpmjs.org/readable-stream/download/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "ms": "^2.1.1" } }, - "semver": { - "version": "4.3.6", - "resolved": "http://r.cnpmjs.org/semver/download/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "http://r.cnpmjs.org/string_decoder/download/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true } } }, "loglevel": { - "version": "1.6.1", - "resolved": "http://r.cnpmjs.org/loglevel/download/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", + "version": "1.6.3", + "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.3.tgz", + "integrity": "sha1-d/LrZL5VpATJ/QStFtV8HW1rEoA=", "dev": true }, "loose-envify": { "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", "dev": true, "requires": { - "js-tokens": "3.0.2" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "http://r.cnpmjs.org/loud-rejection/download/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "optional": true, - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lowercase-keys": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz", "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" }, "lru-cache": { - "version": "4.1.5", - "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "yallist": "^3.0.2" } }, "magic-string": { - "version": "0.25.1", - "resolved": "http://registry.npm.taobao.org/magic-string/download/magic-string-0.25.1.tgz", - "integrity": "sha1-scJIs5nNdIXaD+c4XC/HARhDJm4=", + "version": "0.25.3", + "resolved": "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.3.tgz", + "integrity": "sha1-NLjSosf+ydm9+ZKaP9gdJx7zW+k=", "dev": true, "requires": { - "sourcemap-codec": "1.4.4" + "sourcemap-codec": "^1.4.4" } }, "make-dir": { - "version": "1.3.0", - "resolved": "http://r.cnpmjs.org/make-dir/download/make-dir-1.3.0.tgz", - "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", + "dev": true + } } }, "make-error": { "version": "1.3.5", - "resolved": "http://registry.npm.taobao.org/make-error/download/make-error-1.3.5.tgz", + "resolved": "https://registry.npm.taobao.org/make-error/download/make-error-1.3.5.tgz", "integrity": "sha1-7+ToH22yjK3WBccPKcgxtY73dsg=", "dev": true }, "make-fetch-happen": { - "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/make-fetch-happen/download/make-fetch-happen-4.0.1.tgz", - "integrity": "sha1-FBSXy4ePJDupMTbIPYq6EsIWwIM=", + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/make-fetch-happen/download/make-fetch-happen-4.0.2.tgz", + "integrity": "sha1-LRVrEWlvsyv/uv4awbwIXdbHink=", "dev": true, "requires": { - "agentkeepalive": "3.5.2", - "cacache": "11.3.2", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.5", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "4.0.1", - "ssri": "6.0.1" + "agentkeepalive": "^3.4.1", + "cacache": "^11.3.3", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" }, "dependencies": { "agent-base": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/agent-base/download/agent-base-4.2.1.tgz", - "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", - "dev": true, - "requires": { - "es6-promisify": "5.0.0" - } - }, - "cacache": { - "version": "11.3.2", - "resolved": "http://registry.npm.taobao.org/cacache/download/cacache-11.3.2.tgz", - "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", "dev": true, "requires": { - "bluebird": "3.5.3", - "chownr": "1.1.1", - "figgy-pudding": "3.5.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "5.1.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "6.0.1", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "requires": { - "yallist": "3.0.3" - } - } + "es6-promisify": "^5.0.0" } }, "debug": { "version": "3.2.6", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "es6-promise": { - "version": "4.2.5", - "resolved": "http://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.5.tgz", - "integrity": "sha1-2m0NVpLvtGHggsFIF/4kJ9j10FQ=", + "version": "4.2.8", + "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes6-promise%2Fdownload%2Fes6-promise-4.2.8.tgz", + "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=", "dev": true }, "es6-promisify": { "version": "5.0.0", - "resolved": "http://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "4.2.5" + "es6-promise": "^4.0.3" } }, "https-proxy-agent": { - "version": "2.2.1", - "resolved": "http://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-2.2.1.tgz", - "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", - "dev": true, - "requires": { - "agent-base": "4.2.1", - "debug": "3.2.6" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-2.2.2.tgz", + "integrity": "sha1-Jx6o6Q+DasnxGdrM05wZ/337B5M=", "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" + "agent-base": "^4.3.0", + "debug": "^3.1.0" } }, "ms": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "http://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", - "dev": true, - "requires": { - "figgy-pudding": "3.5.1" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", - "dev": true, - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-3.0.3.tgz", - "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true } } }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz", + "integrity": "sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q=", + "dev": true + }, "map-age-cleaner": { "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", "dev": true, "requires": { - "p-defer": "1.0.0" + "p-defer": "^1.0.0" } }, "map-cache": { "version": "0.2.2", - "resolved": "http://r.cnpmjs.org/map-cache/download/map-cache-0.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-obj": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/map-obj/download/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, "map-visit": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/map-visit/download/map-visit-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "marked": { - "version": "0.5.2", - "resolved": "http://registry.npm.taobao.org/marked/download/marked-0.5.2.tgz", - "integrity": "sha1-Pv2yex/Q7OxPWro2K93NGBIOW6k=" - }, - "math-random": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz", - "integrity": "sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=", - "dev": true + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/marked/download/marked-0.7.0.tgz?cache=0&sync_timestamp=1562386392301&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarked%2Fdownload%2Fmarked-0.7.0.tgz", + "integrity": "sha1-tkIB8FHScbHtwQoE0a6bdLuOXA4=" }, "md5.js": { "version": "1.3.5", - "resolved": "http://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", + "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { "version": "0.3.0", - "resolved": "http://r.cnpmjs.org/media-typer/download/media-typer-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, "mem": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/mem/download/mem-4.0.0.tgz", - "integrity": "sha1-ZDdpDZRxZ49syDZZwAy6/Nawza8=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz", + "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", "dev": true, "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "1.2.0", - "p-is-promise": "1.1.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" } }, "memory-fs": { "version": "0.4.1", - "resolved": "http://r.cnpmjs.org/memory-fs/download/memory-fs-0.4.1.tgz", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, - "meow": { - "version": "3.7.0", - "resolved": "http://r.cnpmjs.org/meow/download/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "optional": true, - "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - } + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/merge/download/merge-1.2.1.tgz", + "integrity": "sha1-OL6/gMMiCopIe2/Ps5QbsRcgwUU=" }, "merge-descriptors": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, "methods": { "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/methods/download/methods-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true }, "micromatch": { "version": "3.1.10", - "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz", "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } } }, "miller-rabin": { "version": "4.0.1", - "resolved": "http://r.cnpmjs.org/miller-rabin/download/miller-rabin-4.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { "version": "1.6.0", - "resolved": "http://r.cnpmjs.org/mime/download/mime-1.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", "dev": true }, "mime-db": { - "version": "1.37.0", - "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.37.0.tgz", - "integrity": "sha1-C2oM5v2+lXbiXx8tL96IMNwK0Ng=", + "version": "1.40.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.40.0.tgz", + "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=", "dev": true }, "mime-types": { - "version": "2.1.21", - "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.21.tgz", - "integrity": "sha1-KJlaoey3cHQv5q5+WPkYHHRLP5Y=", + "version": "2.1.24", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.24.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.24.tgz", + "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", "dev": true, "requires": { - "mime-db": "1.37.0" + "mime-db": "1.40.0" } }, "mimic-fn": { - "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/mimic-fn/download/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", "dev": true }, "mini-css-extract-plugin": { - "version": "0.4.4", - "resolved": "http://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.4.4.tgz", - "integrity": "sha1-wQQQoASVG9PO2sHaaQU5QPzLYl0=", + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.7.0.tgz", + "integrity": "sha1-W6gpD7tBeaQ90nzKREuhUL7nQ6A=", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "1.0.0", - "webpack-sources": "1.3.0" + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" } }, "minimalistic-assert": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", "dev": true }, "minimalistic-crypto-utils": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "http://r.cnpmjs.org/minimatch/download/minimatch-3.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "minipass": { "version": "2.3.5", - "resolved": "http://registry.npm.taobao.org/minipass/download/minipass-2.3.5.tgz", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-2.3.5.tgz", "integrity": "sha1-ys6+SSAiSX9law8PUeJoKp7S2Eg=", "dev": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - }, - "dependencies": { - "yallist": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-3.0.3.tgz", - "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=", - "dev": true - } + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "minizlib": { "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/minizlib/download/minizlib-1.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-1.2.1.tgz", "integrity": "sha1-3SfqYTYkPHyIBoToZyuzpF/ZthQ=", "dev": true, "requires": { - "minipass": "2.3.5" + "minipass": "^2.2.1" } }, "mississippi": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/mississippi/download/mississippi-2.0.0.tgz", - "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" }, "dependencies": { + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "through2": { "version": "2.0.5", - "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", + "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } } } }, "mixin-deep": { - "version": "1.3.1", - "resolved": "http://r.cnpmjs.org/mixin-deep/download/mixin-deep-1.3.1.tgz", - "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz?cache=0&sync_timestamp=1561436244196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/is-extendable/download/is-extendable-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "mixin-object": { "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/mixin-object/download/mixin-object-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/mixin-object/download/mixin-object-2.0.1.tgz", "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", "dev": true, "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" }, "dependencies": { "for-in": { "version": "0.1.8", - "resolved": "http://r.cnpmjs.org/for-in/download/for-in-0.1.8.tgz", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-0.1.8.tgz", "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", "dev": true } @@ -7452,7 +7610,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "http://r.cnpmjs.org/mkdirp/download/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -7460,633 +7618,521 @@ "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, "mkdirp-then": { "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/mkdirp-then/download/mkdirp-then-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/mkdirp-then/download/mkdirp-then-1.2.0.tgz", "integrity": "sha1-pJLIecpNhz9e5FAI+PVf0BUN48U=", "requires": { - "any-promise": "1.3.0", - "mkdirp": "0.5.1" + "any-promise": "^1.1.0", + "mkdirp": "^0.5.0" } }, "moment": { "version": "2.24.0", - "resolved": "http://registry.npm.taobao.org/moment/download/moment-2.24.0.tgz", + "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.24.0.tgz", "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" }, "moment-timezone": { - "version": "0.5.23", - "resolved": "http://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.23.tgz", - "integrity": "sha1-fLsA2ywUxxsZMDy0ew+wpthlFGM=", + "version": "0.5.26", + "resolved": "https://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.26.tgz", + "integrity": "sha1-wCZ8oJroRjGqPcM/Zb7b5ujg13I=", "requires": { - "moment": "2.24.0" + "moment": ">= 2.9.0" } }, "move-concurrently": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/move-concurrently/download/move-concurrently-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { "version": "0.7.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-0.7.1.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-0.7.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-0.7.1.tgz", "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" }, "multicast-dns": { "version": "6.2.3", - "resolved": "http://r.cnpmjs.org/multicast-dns/download/multicast-dns-6.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", "dev": true, "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.3" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, "mutationobserver-shim": { "version": "0.3.3", - "resolved": "http://registry.npm.taobao.org/mutationobserver-shim/download/mutationobserver-shim-0.3.3.tgz", + "resolved": "https://registry.npm.taobao.org/mutationobserver-shim/download/mutationobserver-shim-0.3.3.tgz", "integrity": "sha1-ZYaWMLyJ17+MnNnLghiM2VWqzSs=" }, "mute-stream": { "version": "0.0.8", - "resolved": "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=" }, "mz": { "version": "2.7.0", - "resolved": "http://r.cnpmjs.org/mz/download/mz-2.7.0.tgz", + "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", "requires": { - "any-promise": "1.3.0", - "object-assign": "4.1.1", - "thenify-all": "1.6.0" + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, "nan": { - "version": "2.12.1", - "resolved": "http://registry.npm.taobao.org/nan/download/nan-2.12.1.tgz", - "integrity": "sha1-exqhk+mqhgV+PHu9CsRI53CSVVI=", + "version": "2.14.0", + "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz", + "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=", "dev": true, "optional": true }, "nanomatch": { "version": "1.2.13", - "resolved": "http://r.cnpmjs.org/nanomatch/download/nanomatch-1.2.13.tgz", + "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "negotiator": { - "version": "0.6.1", - "resolved": "http://r.cnpmjs.org/negotiator/download/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "version": "0.6.2", + "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", "dev": true }, "neo-async": { - "version": "2.6.0", - "resolved": "http://registry.npm.taobao.org/neo-async/download/neo-async-2.6.0.tgz", - "integrity": "sha1-udFeTXHGdikIZUtRg+04t1M0CDU=", + "version": "2.6.1", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.1.tgz", + "integrity": "sha1-rCetpmFn+ohJpq3dg39rGJrSCBw=", "dev": true }, "ngx-markdown": { - "version": "6.3.0", - "resolved": "http://r.cnpmjs.org/ngx-markdown/download/ngx-markdown-6.3.0.tgz", - "integrity": "sha1-KGGaGRWd/TDocqJyXvEar0yK7yM=", + "version": "8.1.0", + "resolved": "https://registry.npm.taobao.org/ngx-markdown/download/ngx-markdown-8.1.0.tgz", + "integrity": "sha1-ziXwAGPm0FBN0tsS4BElF2eKcEo=", "requires": { - "@types/marked": "0.4.2", - "marked": "0.5.2", - "prismjs": "1.15.0", - "tslib": "1.9.3" + "@types/marked": "^0.6.5", + "marked": "^0.7.0", + "prismjs": "^1.16.0", + "tslib": "^1.9.0" } }, "nice-try": { "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", - "dev": true - }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/node-fetch-npm/download/node-fetch-npm-2.0.2.tgz", - "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", - "dev": true, - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" - } - }, - "node-forge": { - "version": "0.7.5", - "resolved": "http://r.cnpmjs.org/node-forge/download/node-forge-0.7.5.tgz", - "integrity": "sha1-bBUsNFzhHFL0ZcKr2VfoY5zWdN8=", - "dev": true - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "http://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz", - "integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=", - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.88.0", - "rimraf": "2.6.3", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "resolved": "http://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "http://r.cnpmjs.org/semver/download/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true - } + "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/node-fetch-npm/download/node-fetch-npm-2.0.2.tgz", + "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" } }, + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.7.5.tgz?cache=0&sync_timestamp=1560906791252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.7.5.tgz", + "integrity": "sha1-bBUsNFzhHFL0ZcKr2VfoY5zWdN8=", + "dev": true + }, "node-libs-browser": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.0.tgz", - "integrity": "sha1-xy9g2dRt4IqUDe27JfP/ovm7qnc=", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "3.0.0", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.2", - "stream-http": "2.8.3", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-libs-browser%2Fdownload%2Fnode-libs-browser-2.2.1.tgz", + "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.11.1", - "vm-browserify": "0.0.4" + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" }, "dependencies": { "browserify-zlib": { "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", "dev": true, "requires": { - "pako": "1.0.8" + "pako": "~1.0.5" } }, "pako": { - "version": "1.0.8", - "resolved": "http://registry.npm.taobao.org/pako/download/pako-1.0.8.tgz", - "integrity": "sha1-aESJCqucY1r4aK1f7MYuisu6PqQ=", + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.10.tgz", + "integrity": "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=", "dev": true }, "punycode": { "version": "1.4.1", - "resolved": "http://r.cnpmjs.org/punycode/download/punycode-1.4.1.tgz", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true } } }, "node-releases": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/node-releases/download/node-releases-1.1.3.tgz", - "integrity": "sha1-qtnODcuYEpx1P3csCqATYPuQ+9I=", + "version": "1.1.25", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.25.tgz", + "integrity": "sha1-DC19vH/tMPvgKp7jAHuMkL8BM9M=", "dev": true, "requires": { - "semver": "5.6.0" + "semver": "^5.3.0" }, "dependencies": { "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true } } }, - "node-sass": { - "version": "4.10.0", - "resolved": "http://registry.npm.taobao.org/node-sass/download/node-sass-4.10.0.tgz", - "integrity": "sha1-3MKzZMCRNjCUXMv3orvx+Sbv/KQ=", - "dev": true, - "optional": true, - "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.1.3", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.12.1", - "node-gyp": "3.8.0", - "npmlog": "4.1.2", - "request": "2.88.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.1", - "true-case-path": "1.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "http://r.cnpmjs.org/ansi-styles/download/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "optional": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://r.cnpmjs.org/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/supports-color/download/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "optional": true - } - } - }, "node-status-codes": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/node-status-codes/download/node-status-codes-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/node-status-codes/download/node-status-codes-1.0.0.tgz", "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=" }, "node-uuid": { "version": "1.4.3", - "resolved": "http://r.cnpmjs.org/node-uuid/download/node-uuid-1.4.3.tgz", + "resolved": "https://registry.npm.taobao.org/node-uuid/download/node-uuid-1.4.3.tgz", "integrity": "sha1-MZu3pW58tj8AtcDNeFHNS03fHfk=" }, "nopt": { "version": "1.0.10", - "resolved": "http://registry.npm.taobao.org/nopt/download/nopt-1.0.10.tgz", + "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { - "version": "2.4.0", - "resolved": "http://r.cnpmjs.org/normalize-package-data/download/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.0.1", - "validate-npm-package-license": "3.0.4" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { - "version": "2.1.1", - "resolved": "http://r.cnpmjs.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true }, "normalize-range": { "version": "0.1.2", - "resolved": "http://r.cnpmjs.org/normalize-range/download/normalize-range-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, "npm-bundled": { - "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.0.5.tgz", - "integrity": "sha1-PBcyt7qTazoQMlrvYWRnwMy8yXk=", + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.0.6.tgz", + "integrity": "sha1-57qarc75YrthJI+RchzZMrP+a90=", "dev": true }, "npm-package-arg": { "version": "4.1.0", - "resolved": "http://r.cnpmjs.org/npm-package-arg/download/npm-package-arg-4.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-4.1.0.tgz", "integrity": "sha1-LgFfisAHN8uX+ZfJy/BZ9Cp0Un0=", "requires": { - "hosted-git-info": "2.7.1", - "semver": "5.0.1" + "hosted-git-info": "^2.1.4", + "semver": "4 || 5" } }, "npm-packlist": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.2.0.tgz", - "integrity": "sha1-VaYOeT4nLwCGLHCJJ0Q5pMwx/H8=", + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.4.4.tgz", + "integrity": "sha1-hmIkIzhQrFNLY9Gm52BQCStdL0Q=", "dev": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.5" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npm-pick-manifest": { "version": "2.2.3", - "resolved": "http://registry.npm.taobao.org/npm-pick-manifest/download/npm-pick-manifest-2.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/npm-pick-manifest/download/npm-pick-manifest-2.2.3.tgz", "integrity": "sha1-MhEdKpViY4uyyPK/J/fzCSyPrkA=", "dev": true, "requires": { - "figgy-pudding": "3.5.1", - "npm-package-arg": "6.1.0", - "semver": "5.6.0" + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" }, "dependencies": { "builtins": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/builtins/download/builtins-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/builtins/download/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, "npm-package-arg": { "version": "6.1.0", - "resolved": "http://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-6.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-6.1.0.tgz", "integrity": "sha1-Fa4eJ1ilAn77TCUFVLhac323/ME=", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.6.0", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/validate-npm-package-name/download/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-name/download/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } } } }, "npm-registry-fetch": { - "version": "3.8.0", - "resolved": "http://registry.npm.taobao.org/npm-registry-fetch/download/npm-registry-fetch-3.8.0.tgz", - "integrity": "sha1-qn2afJKv+U9I26CYS970vRMciMw=", + "version": "3.9.1", + "resolved": "https://registry.npm.taobao.org/npm-registry-fetch/download/npm-registry-fetch-3.9.1.tgz", + "integrity": "sha1-AP9uTjXT91oXKzMkQLU+k/TLZ94=", "dev": true, "requires": { - "JSONStream": "1.3.5", - "bluebird": "3.5.3", - "figgy-pudding": "3.5.1", - "lru-cache": "4.1.5", - "make-fetch-happen": "4.0.1", - "npm-package-arg": "6.1.0" + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.2", + "npm-package-arg": "^6.1.0" }, "dependencies": { "builtins": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/builtins/download/builtins-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/builtins/download/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, "npm-package-arg": { "version": "6.1.0", - "resolved": "http://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-6.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-6.1.0.tgz", "integrity": "sha1-Fa4eJ1ilAn77TCUFVLhac323/ME=", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.6.0", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/validate-npm-package-name/download/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-name/download/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } } } }, "npm-run-path": { "version": "2.0.2", - "resolved": "http://r.cnpmjs.org/npm-run-path/download/npm-run-path-2.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "http://r.cnpmjs.org/npmlog/download/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", - "dev": true, - "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "path-key": "^2.0.0" } }, "null-check": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/null-check/download/null-check-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/null-check/download/null-check-1.0.0.tgz", "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", "dev": true }, "num2fraction": { "version": "1.2.2", - "resolved": "http://r.cnpmjs.org/num2fraction/download/num2fraction-1.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "number-is-nan": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/number-is-nan/download/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "oauth-sign": { "version": "0.9.0", - "resolved": "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "http://r.cnpmjs.org/object-assign/download/object-assign-4.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-component": { "version": "0.0.3", - "resolved": "http://r.cnpmjs.org/object-component/download/object-component-0.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/object-component/download/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "http://r.cnpmjs.org/object-copy/download/object-copy-0.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "http://r.cnpmjs.org/define-property/download/define-property-0.2.5.tgz", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "kind-of": { "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "object-keys": { "version": "0.4.0", - "resolved": "http://registry.npm.taobao.org/object-keys/download/object-keys-0.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-0.4.0.tgz", "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" }, "object-visit": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/object-visit/download/object-visit-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, - "object.omit": { - "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/object.omit/download/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - }, - "dependencies": { - "for-own": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - } + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" } }, "object.pick": { "version": "1.3.0", - "resolved": "http://r.cnpmjs.org/object.pick/download/object.pick-1.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "obuf": { "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/obuf/download/obuf-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", "dev": true }, "on-finished": { "version": "2.3.0", - "resolved": "http://r.cnpmjs.org/on-finished/download/on-finished-2.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, "requires": { @@ -8094,485 +8140,367 @@ } }, "on-headers": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/on-headers/download/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", + "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", "dev": true }, "once": { "version": "1.4.0", - "resolved": "http://r.cnpmjs.org/once/download/once-1.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true + } + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz", + "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" } }, "opn": { - "version": "5.4.0", - "resolved": "http://registry.npm.taobao.org/opn/download/opn-5.4.0.tgz", - "integrity": "sha1-y1Reeqt4VivrEao7+rxwQuF2EDU=", + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz", + "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", "dev": true, "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optimist": { "version": "0.6.1", - "resolved": "http://r.cnpmjs.org/optimist/download/optimist-0.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "minimist": { "version": "0.0.10", - "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true } } }, - "optionator": { - "version": "0.8.2", - "resolved": "http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" - } - }, - "options": { - "version": "0.0.6", - "resolved": "http://r.cnpmjs.org/options/download/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "dev": true - }, "original": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/original/download/original-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", "requires": { - "url-parse": "1.4.4" + "url-parse": "^1.4.3" } }, "os-browserify": { "version": "0.3.0", - "resolved": "http://r.cnpmjs.org/os-browserify/download/os-browserify-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, "os-homedir": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/os-homedir/download/os-homedir-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { - "version": "1.4.0", - "resolved": "http://r.cnpmjs.org/os-locale/download/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&sync_timestamp=1560274285880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", + "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", "dev": true, - "optional": true, "requires": { - "lcid": "1.0.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "osenv": { "version": "0.1.5", - "resolved": "http://r.cnpmjs.org/osenv/download/osenv-0.1.5.tgz", + "resolved": "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz", "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-defer": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz?cache=0&sync_timestamp=1559922734651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-defer%2Fdownload%2Fp-defer-1.0.0.tgz", "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", "dev": true }, "p-finally": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/p-finally/download/p-finally-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-is-promise": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/p-is-promise/download/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz", + "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "http://r.cnpmjs.org/p-limit/download/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.0.tgz", + "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/p-locate/download/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { - "p-limit": "1.3.0" + "p-limit": "^2.0.0" } }, "p-map": { - "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/p-map/download/p-map-1.2.0.tgz", - "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", + "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", "dev": true }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz", + "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", + "dev": true, + "requires": { + "retry": "^0.12.0" + }, + "dependencies": { + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + } + } + }, "p-try": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/p-try/download/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", "dev": true }, "pacote": { - "version": "9.1.1", - "resolved": "http://registry.npm.taobao.org/pacote/download/pacote-9.1.1.tgz", - "integrity": "sha1-JQkfdaJQId6L6NNMxkCHKPyjV5s=", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "cacache": "11.3.2", - "figgy-pudding": "3.5.1", - "get-stream": "4.1.0", - "glob": "7.1.3", - "lru-cache": "4.1.5", - "make-fetch-happen": "4.0.1", - "minimatch": "3.0.4", - "minipass": "2.3.5", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.2.0", - "npm-pick-manifest": "2.2.3", - "npm-registry-fetch": "3.8.0", - "osenv": "0.1.5", - "promise-inflight": "1.0.1", - "promise-retry": "1.1.1", - "protoduck": "5.0.1", - "rimraf": "2.6.3", - "safe-buffer": "5.1.2", - "semver": "5.6.0", - "ssri": "6.0.1", - "tar": "4.4.8", - "unique-filename": "1.1.1", - "which": "1.3.1" + "version": "9.5.1", + "resolved": "https://registry.npm.taobao.org/pacote/download/pacote-9.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpacote%2Fdownload%2Fpacote-9.5.1.tgz", + "integrity": "sha1-rbDSPa7vbQuBOrWJHQxkWczsmY0=", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^11.3.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^3.8.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.8", + "unique-filename": "^1.1.1", + "which": "^1.3.1" }, "dependencies": { "builtins": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/builtins/download/builtins-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/builtins/download/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, - "cacache": { - "version": "11.3.2", - "resolved": "http://registry.npm.taobao.org/cacache/download/cacache-11.3.2.tgz", - "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "chownr": "1.1.1", - "figgy-pudding": "3.5.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "5.1.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "6.0.1", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "requires": { - "yallist": "3.0.3" - } - } - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "3.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" - } - }, "npm-package-arg": { "version": "6.1.0", - "resolved": "http://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-6.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-6.1.0.tgz", "integrity": "sha1-Fa4eJ1ilAn77TCUFVLhac323/ME=", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.6.0", - "validate-npm-package-name": "3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true }, - "ssri": { - "version": "6.0.1", - "resolved": "http://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", - "dev": true, - "requires": { - "figgy-pudding": "3.5.1" - } - }, "tar": { - "version": "4.4.8", - "resolved": "http://registry.npm.taobao.org/tar/download/tar-4.4.8.tgz", - "integrity": "sha1-sZ7sP94qluZGZt+f20DFyhvDdH0=", - "dev": true, - "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.2.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "version": "4.4.10", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-4.4.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.10.tgz", + "integrity": "sha1-lGsoELml4LJhQM94vqawsNaJ66E=", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.5", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" } }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/validate-npm-package-name/download/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-name/download/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } - }, - "yallist": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-3.0.3.tgz", - "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=", - "dev": true } } }, "pako": { "version": "0.2.9", - "resolved": "http://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz", + "resolved": "https://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz", "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" }, "parallel-transform": { "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/parallel-transform/download/parallel-transform-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.1.0.tgz", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, "parse-asn1": { - "version": "5.1.3", - "resolved": "http://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.3.tgz", - "integrity": "sha1-FgDGzAcnNl1ouX86p4k55zWnUgQ=", - "dev": true, - "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.17", - "safe-buffer": "5.1.2" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "http://r.cnpmjs.org/parse-glob/download/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "version": "5.1.4", + "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.4.tgz", + "integrity": "sha1-N/Zij4I/vesic7TVQENKIvPvH8w=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-json": { "version": "2.2.0", - "resolved": "http://r.cnpmjs.org/parse-json/download/parse-json-2.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parse5": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz", "integrity": "sha1-bXhlbj2o14tOwLkG98CO8d/j9gg=", "dev": true }, - "parsejson": { - "version": "0.0.3", - "resolved": "http://r.cnpmjs.org/parsejson/download/parsejson-0.0.3.tgz", - "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", - "dev": true, - "requires": { - "better-assert": "1.0.2" - } - }, "parseqs": { "version": "0.0.5", - "resolved": "http://r.cnpmjs.org/parseqs/download/parseqs-0.0.5.tgz", + "resolved": "https://registry.npm.taobao.org/parseqs/download/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "dev": true, "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { "version": "0.0.5", - "resolved": "http://r.cnpmjs.org/parseuri/download/parseuri-0.0.5.tgz", + "resolved": "https://registry.npm.taobao.org/parseuri/download/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "dev": true, "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { - "version": "1.3.2", - "resolved": "http://r.cnpmjs.org/parseurl/download/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", "dev": true }, "particlesjs": { "version": "2.2.3", - "resolved": "http://r.cnpmjs.org/particlesjs/download/particlesjs-2.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/particlesjs/download/particlesjs-2.2.3.tgz", "integrity": "sha1-TSE8p0Bnn8HMx3Lo2GS4hKCR834=" }, "pascalcase": { "version": "0.1.1", - "resolved": "http://r.cnpmjs.org/pascalcase/download/pascalcase-0.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path": { "version": "0.12.7", - "resolved": "http://registry.npm.taobao.org/path/download/path-0.12.7.tgz", + "resolved": "https://registry.npm.taobao.org/path/download/path-0.12.7.tgz", "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", "dev": true, "requires": { - "process": "0.11.10", - "util": "0.10.4" + "process": "^0.11.1", + "util": "^0.10.3" }, "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, "util": { "version": "0.10.4", - "resolved": "http://registry.npm.taobao.org/util/download/util-0.10.4.tgz", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.4.tgz", "integrity": "sha1-OqASW/5mikZy3liFfTrOJ+y3aQE=", "dev": true, "requires": { @@ -8582,270 +8510,288 @@ } }, "path-browserify": { - "version": "0.0.0", - "resolved": "http://r.cnpmjs.org/path-browserify/download/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", + "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", "dev": true }, "path-dirname": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/path-dirname/download/path-dirname-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "path-exists": { "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/path-exists/download/path-exists-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/path-is-inside/download/path-is-inside-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/path-key/download/path-key-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.6", - "resolved": "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", - "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", - "dev": true + "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" }, "path-to-regexp": { "version": "0.1.7", - "resolved": "http://r.cnpmjs.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, "path-type": { "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/path-type/download/path-type-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz", "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, "pbkdf2": { "version": "3.0.17", - "resolved": "http://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz", + "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz", "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=", "dev": true, "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "peek-stream": { "version": "1.1.3", - "resolved": "http://r.cnpmjs.org/peek-stream/download/peek-stream-1.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/peek-stream/download/peek-stream-1.1.3.tgz", "integrity": "sha1-OzXYS3zLvSYv/zHcENpWhW6tbWc=", "requires": { - "buffer-from": "1.1.1", - "duplexify": "3.6.1", - "through2": "2.0.5" + "buffer-from": "^1.0.0", + "duplexify": "^3.5.0", + "through2": "^2.0.3" }, "dependencies": { "through2": { "version": "2.0.5", - "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", + "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } } } }, "performance-now": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picomatch": { + "version": "2.0.7", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.0.7.tgz", + "integrity": "sha1-UUFp2MfNC9vuzIomCeNKcWPeafY=", + "dev": true + }, "pify": { - "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "http://r.cnpmjs.org/pinkie/download/pinkie-2.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/pkg-dir/download/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^3.0.0" } }, "portfinder": { - "version": "1.0.17", - "resolved": "http://registry.npm.taobao.org/portfinder/download/portfinder-1.0.17.tgz", - "integrity": "sha1-qKFpEUPkbEc17e/PT7zM7a0mRWo=", + "version": "1.0.20", + "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.20.tgz", + "integrity": "sha1-vqaGMuVLLhOrewxHdem0G/Jw5Eo=", "dev": true, "requires": { - "async": "1.5.2", - "debug": "2.2.0", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/async/download/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "http://r.cnpmjs.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "postcss": { - "version": "7.0.13", - "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-7.0.13.tgz", - "integrity": "sha1-Qr9xZBPo8ceGq3HcbnIrNnGxZwg=", + "version": "7.0.17", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.17.tgz", + "integrity": "sha1-TaG9/1Mi1KCsqrTYfz54JDa60x8=", "dev": true, "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-import": { "version": "12.0.1", - "resolved": "http://registry.npm.taobao.org/postcss-import/download/postcss-import-12.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-import/download/postcss-import-12.0.1.tgz", "integrity": "sha1-z4x6sLXMq1ZJAkU25WX4QZKLcVM=", "dev": true, "requires": { - "postcss": "7.0.13", - "postcss-value-parser": "3.3.1", - "read-cache": "1.0.0", - "resolve": "1.1.7" + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" } }, "postcss-load-config": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.0.0.tgz", - "integrity": "sha1-8TEt2/WRLNdHF3CDxe96GdYu5IQ=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz", + "integrity": "sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM=", "dev": true, "requires": { - "cosmiconfig": "4.0.0", - "import-cwd": "2.1.0" + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" } }, "postcss-loader": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", "dev": true, "requires": { - "loader-utils": "1.1.0", - "postcss": "7.0.13", - "postcss-load-config": "2.0.0", - "schema-utils": "1.0.0" + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" } }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, "prepend-http": { "version": "1.0.4", - "resolved": "http://r.cnpmjs.org/prepend-http/download/prepend-http-1.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, - "preserve": { - "version": "0.2.0", - "resolved": "http://r.cnpmjs.org/preserve/download/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, "prismjs": { - "version": "1.15.0", - "resolved": "http://r.cnpmjs.org/prismjs/download/prismjs-1.15.0.tgz", - "integrity": "sha1-iAHTMuRyCRuo3vlJdsiHetYDmNk=", + "version": "1.16.0", + "resolved": "https://registry.npm.taobao.org/prismjs/download/prismjs-1.16.0.tgz", + "integrity": "sha1-QG6yyKrLD18PEWeTDLg4NdEKQwg=", "requires": { - "clipboard": "2.0.4" + "clipboard": "^2.0.0" } }, "process": { "version": "0.11.10", - "resolved": "http://r.cnpmjs.org/process/download/process-0.11.10.tgz", + "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz", - "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" }, "promise": { "version": "7.3.1", - "resolved": "http://r.cnpmjs.org/promise/download/promise-7.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz", "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", "dev": true, "optional": true, "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-inflight": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/promise-inflight/download/promise-inflight-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, "promise-retry": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/promise-retry/download/promise-retry-1.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/promise-retry/download/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "dev": true, "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" + "err-code": "^1.0.0", + "retry": "^0.10.0" }, "dependencies": { "retry": { "version": "0.10.1", - "resolved": "http://registry.npm.taobao.org/retry/download/retry-0.10.1.tgz", + "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.10.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.10.1.tgz", "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", "dev": true } @@ -8853,356 +8799,312 @@ }, "promzard": { "version": "0.3.0", - "resolved": "http://r.cnpmjs.org/promzard/download/promzard-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/promzard/download/promzard-0.3.0.tgz", "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", "requires": { - "read": "1.0.7" + "read": "1" } }, "protoduck": { "version": "5.0.1", - "resolved": "http://registry.npm.taobao.org/protoduck/download/protoduck-5.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/protoduck/download/protoduck-5.0.1.tgz", "integrity": "sha1-A8NlnKGAB7aaUP2Cp+vMUWJhFR8=", "dev": true, "requires": { - "genfun": "5.0.0" + "genfun": "^5.0.0" } }, "protractor": { - "version": "5.3.2", - "resolved": "http://registry.npm.taobao.org/protractor/download/protractor-5.3.2.tgz", - "integrity": "sha1-uCePMTHZ1S+hFy7Q9/7AMIX74M4=", + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/protractor/download/protractor-6.0.0.tgz", + "integrity": "sha1-4EeYFEAVmheuLqZac3Gsuk5Bdhg=", "dev": true, "requires": { - "@types/node": "6.14.2", - "@types/q": "0.0.32", - "@types/selenium-webdriver": "2.53.43", - "blocking-proxy": "1.0.1", - "chalk": "1.1.3", - "glob": "7.1.3", - "jasmine": "2.8.0", - "jasminewd2": "2.2.0", - "optimist": "0.6.1", - "q": "1.4.1", - "saucelabs": "1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "0.4.18", - "webdriver-js-extender": "1.0.0", - "webdriver-manager": "12.1.1" + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "^3.3.1", + "optimist": "~0.6.0", + "saucelabs": "^1.5.0", + "selenium-webdriver": "^4.0.0-alpha.1", + "source-map-support": "~0.4.0", + "webdriver-manager": "13.0.0" }, "dependencies": { - "@types/node": { - "version": "6.14.2", - "resolved": "http://registry.npm.taobao.org/@types/node/download/@types/node-6.14.2.tgz", - "integrity": "sha1-QLPbsSIcfWaALLzDL+O4XlRWnHc=", - "dev": true - }, - "adm-zip": { - "version": "0.4.13", - "resolved": "http://registry.npm.taobao.org/adm-zip/download/adm-zip-0.4.13.tgz", - "integrity": "sha1-WX4vjMNnIVHhMH0+lc3bx1ZyMUo=", - "dev": true - }, "ansi-styles": { "version": "2.2.1", - "resolved": "http://r.cnpmjs.org/ansi-styles/download/ansi-styles-2.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "chalk": { "version": "1.1.3", - "resolved": "http://r.cnpmjs.org/chalk/download/chalk-1.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "del": { - "version": "2.2.2", - "resolved": "http://r.cnpmjs.org/del/download/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.3" - } - }, - "globby": { - "version": "5.0.0", - "resolved": "http://r.cnpmjs.org/globby/download/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "pify": { - "version": "2.3.0", - "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true }, "source-map": { "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-support": { "version": "0.4.18", - "resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz", "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "supports-color": { "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/supports-color/download/supports-color-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "tar": { + "version": "4.4.10", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-4.4.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.10.tgz", + "integrity": "sha1-lGsoELml4LJhQM94vqawsNaJ66E=", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.5", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, "webdriver-manager": { - "version": "12.1.1", - "resolved": "http://registry.npm.taobao.org/webdriver-manager/download/webdriver-manager-12.1.1.tgz", - "integrity": "sha1-ZsMnH2nO/aqf38pheula+uQcPGI=", + "version": "13.0.0", + "resolved": "https://registry.npm.taobao.org/webdriver-manager/download/webdriver-manager-13.0.0.tgz", + "integrity": "sha1-+TwW5Ge3prWK3mqq0lnMxHQvY7g=", "dev": true, "requires": { - "adm-zip": "0.4.13", - "chalk": "1.1.3", - "del": "2.2.2", - "glob": "7.1.3", - "ini": "1.3.5", - "minimist": "1.2.0", - "q": "1.4.1", - "request": "2.88.0", - "rimraf": "2.6.3", - "semver": "5.6.0", - "xml2js": "0.4.19" + "adm-zip": "^0.4.13", + "loglevel": "^1.6.1", + "request": "^2.88.0", + "semver": "^5.6.0", + "tar": "^4.4.8", + "xml2js": "^0.4.19", + "yargs": "^12.0.5" } } } }, "proxy-addr": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.4.tgz", - "integrity": "sha1-7PxzO/Iv+Mb0B/onUye5q2fki5M=", + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.5.tgz", + "integrity": "sha1-NMvWSi2B9LH9IedvnwbIpFKZ7jQ=", "dev": true, "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.8.0" + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" } }, "prr": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/prr/download/prr-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/pseudomap/download/pseudomap-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "psl": { - "version": "1.1.31", - "resolved": "http://registry.npm.taobao.org/psl/download/psl-1.1.31.tgz", - "integrity": "sha1-6aqG0BAbWxBcvpOsa3hM1UcnYYQ=", + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.2.0.tgz", + "integrity": "sha1-3xK1sbOjD1HDKerL3vmPOm4TbcY=", "dev": true }, "public-encrypt": { "version": "4.0.3", - "resolved": "http://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.3", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "pump": { "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/pump/download/pump-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { "version": "1.5.1", - "resolved": "http://r.cnpmjs.org/pumpify/download/pumpify-1.5.1.tgz", + "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", "requires": { - "duplexify": "3.6.1", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, "punycode": { "version": "2.1.1", - "resolved": "http://r.cnpmjs.org/punycode/download/punycode-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", "dev": true }, - "q": { - "version": "1.4.1", - "resolved": "http://r.cnpmjs.org/q/download/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true - }, "qjobs": { "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/qjobs/download/qjobs-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/qjobs/download/qjobs-1.2.0.tgz", "integrity": "sha1-xF6cYYAL0IfviNfiVkI73Unl0HE=", "dev": true }, "qs": { "version": "6.5.2", - "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz", "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", "dev": true }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1561123421668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, "querystring": { "version": "0.2.0", - "resolved": "http://r.cnpmjs.org/querystring/download/querystring-0.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, "querystring-es3": { "version": "0.2.1", - "resolved": "http://r.cnpmjs.org/querystring-es3/download/querystring-es3-0.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, "querystringify": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/querystringify/download/querystringify-2.1.0.tgz", - "integrity": "sha1-fe2N+/eHncxg0KZErGdUsoOtF+8=" - }, - "randomatic": { - "version": "3.1.1", - "resolved": "http://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz", - "integrity": "sha1-t3bvxZN1mE42xTey9RofCv8Noe0=", - "dev": true, - "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.4" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "http://r.cnpmjs.org/is-number/download/is-number-4.0.0.tgz", - "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", - "dev": true - } - } + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz", + "integrity": "sha1-YOWl/WSn+L+k0qsu1v30yFutFU4=" }, "randombytes": { - "version": "2.0.6", - "resolved": "http://r.cnpmjs.org/randombytes/download/randombytes-2.0.6.tgz", - "integrity": "sha1-0wLFIpSFiISKjTAMkytEwkIx2oA=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "randomfill": { "version": "1.0.4", - "resolved": "http://r.cnpmjs.org/randomfill/download/randomfill-1.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", "dev": true, "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { - "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/range-parser/download/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", "dev": true }, "raven-js": { - "version": "3.27.0", - "resolved": "http://registry.npm.taobao.org/raven-js/download/raven-js-3.27.0.tgz", - "integrity": "sha1-n0fAPheTPOdW4YnzZp1JxEHBum4=" + "version": "3.27.2", + "resolved": "https://registry.npm.taobao.org/raven-js/download/raven-js-3.27.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fraven-js%2Fdownload%2Fraven-js-3.27.2.tgz", + "integrity": "sha1-bDPflSAmzXOCCqmZEit7dzemZ3U=" }, "raw-body": { - "version": "2.3.3", - "resolved": "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.3.tgz", - "integrity": "sha1-GzJOzmtXBuFThVvBFIxlu39uoMM=", + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", "dev": true, "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "dev": true + } } }, "raw-loader": { - "version": "0.5.1", - "resolved": "http://r.cnpmjs.org/raw-loader/download/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/raw-loader/download/raw-loader-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-loader%2Fdownload%2Fraw-loader-1.0.0.tgz", + "integrity": "sha1-P5iJ5z2tvamkJLznmAm0EzrUZAU=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + } }, "read": { "version": "1.0.7", - "resolved": "http://r.cnpmjs.org/read/download/read-1.0.7.tgz", + "resolved": "https://registry.npm.taobao.org/read/download/read-1.0.7.tgz", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { - "mute-stream": "0.0.8" + "mute-stream": "~0.0.4" } }, "read-all-stream": { "version": "3.1.0", - "resolved": "http://r.cnpmjs.org/read-all-stream/download/read-all-stream-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/read-all-stream/download/read-all-stream-3.1.0.tgz", "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", "requires": { - "pinkie-promise": "2.0.1", - "readable-stream": "2.3.6" + "pinkie-promise": "^2.0.0", + "readable-stream": "^2.0.0" } }, "read-cache": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/read-cache/download/read-cache-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz", "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.3.0" }, "dependencies": { "pify": { "version": "2.3.0", - "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } @@ -9210,199 +9112,127 @@ }, "read-package-json": { "version": "2.0.13", - "resolved": "http://r.cnpmjs.org/read-package-json/download/read-package-json-2.0.13.tgz", + "resolved": "https://registry.npm.taobao.org/read-package-json/download/read-package-json-2.0.13.tgz", "integrity": "sha1-LoLr2fYTuqbS6+Oqcs7+P2jkH0o=", "requires": { - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "json-parse-better-errors": "1.0.2", - "normalize-package-data": "2.4.0", - "slash": "1.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/read-pkg/download/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - }, - "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/path-type/download/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" } }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/read-package-tree/download/read-package-tree-5.3.1.tgz", + "integrity": "sha1-oyy2TH8x64pvMe8G+c7fdAaP5jY=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/find-up/download/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "http://r.cnpmjs.org/path-exists/download/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - } + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" } }, "readable-stream": { "version": "2.3.6", - "resolved": "http://r.cnpmjs.org/readable-stream/download/readable-stream-2.3.6.tgz", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.6.tgz", "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdir-scoped-modules": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/readdir-scoped-modules/download/readdir-scoped-modules-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/readdir-scoped-modules/download/readdir-scoped-modules-1.0.2.tgz", "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "graceful-fs": "4.1.15", - "once": "1.4.0" + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" } }, "readdirp": { - "version": "2.2.1", - "resolved": "http://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.1.1.tgz?cache=0&sync_timestamp=1562457210009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.1.1.tgz", + "integrity": "sha1-sVgSOsNDyLDzHWVoAmnMD8ECXbE=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "picomatch": "^2.0.4" } }, "rechoir": { "version": "0.6.2", - "resolved": "http://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz", + "resolved": "https://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "1.1.7" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/redent/download/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "optional": true, - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "resolve": "^1.1.6" } }, "reflect-metadata": { "version": "0.1.13", - "resolved": "http://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.13.tgz", + "resolved": "https://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.13.tgz", "integrity": "sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag=", "dev": true }, "regenerate": { "version": "1.4.0", - "resolved": "http://r.cnpmjs.org/regenerate/download/regenerate-1.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz", "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=", "dev": true }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "http://r.cnpmjs.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=", "dev": true }, - "regex-cache": { - "version": "0.4.4", - "resolved": "http://r.cnpmjs.org/regex-cache/download/regex-cache-0.4.4.tgz", - "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, "regex-not": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/regex-not/download/regex-not-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpu-core": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/regexpu-core/download/regexpu-core-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-1.0.0.tgz", "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { "version": "0.2.0", - "resolved": "http://r.cnpmjs.org/regjsgen/download/regjsgen-0.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", "dev": true }, "regjsparser": { "version": "0.1.5", - "resolved": "http://r.cnpmjs.org/regjsparser/download/regjsparser-0.1.5.tgz", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "http://r.cnpmjs.org/jsesc/download/jsesc-0.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } @@ -9410,62 +9240,62 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=", "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "http://r.cnpmjs.org/repeat-string/download/repeat-string-1.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/repeating/download/repeating-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { "version": "2.88.0", - "resolved": "http://registry.npm.taobao.org/request/download/request-2.88.0.tgz", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.0.tgz", "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.21", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "uuid": { "version": "3.3.2", - "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=", "dev": true } @@ -9473,317 +9303,298 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "http://r.cnpmjs.org/require-directory/download/require-directory-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz", - "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", - "dev": true - }, "require-main-filename": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/require-main-filename/download/require-main-filename-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "requires-port": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/requires-port/download/requires-port-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.1.7", - "resolved": "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "version": "1.11.1", + "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.11.1.tgz", + "integrity": "sha1-6hDYEQN2mC/vV434/DC5rDCgej4=", + "requires": { + "path-parse": "^1.0.6" + } }, "resolve-cwd": { "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/resolve-from/download/resolve-from-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "http://r.cnpmjs.org/resolve-url/download/resolve-url-0.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "restore-cursor": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { "version": "0.1.15", - "resolved": "http://r.cnpmjs.org/ret/download/ret-0.1.15.tgz", + "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", "dev": true }, "retry": { "version": "0.9.0", - "resolved": "http://r.cnpmjs.org/retry/download/retry-0.9.0.tgz", + "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.9.0.tgz", "integrity": "sha1-b2l+UKDk3cjI9/tUeptg3q1DZ40=" }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/rfdc/download/rfdc-1.1.4.tgz", + "integrity": "sha1-unLME2egzNnPgahws7WL060H+MI=", + "dev": true + }, "rimraf": { "version": "2.6.3", - "resolved": "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz", "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", "requires": { - "glob": "7.1.3" + "glob": "^7.1.3" } }, "ripemd160": { "version": "2.0.2", - "resolved": "http://r.cnpmjs.org/ripemd160/download/ripemd160-2.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/run-async/download/run-async-2.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/run-queue/download/run-queue-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "rxjs": { - "version": "6.3.3", - "resolved": "http://registry.npm.taobao.org/rxjs/download/rxjs-6.3.3.tgz", - "integrity": "sha1-PGp/pCDoRKgTkPsRWKnsYU9LrVU=", + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.5.2.tgz", + "integrity": "sha1-LjXOgVzUbYTQKiCftOWSHgUdvsc=", "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "rxjs-compat": { - "version": "6.3.3", - "resolved": "http://registry.npm.taobao.org/rxjs-compat/download/rxjs-compat-6.3.3.tgz", - "integrity": "sha1-KrO5rA2sDAc3SdVf75wD6h3yBFw=" + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/rxjs-compat/download/rxjs-compat-6.5.2.tgz", + "integrity": "sha1-5GkHCt9iYL2tGV6dSjn0RK4otFg=" }, "safe-buffer": { "version": "5.1.2", - "resolved": "http://r.cnpmjs.org/safe-buffer/download/safe-buffer-5.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" }, "safe-regex": { "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/safe-regex/download/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { "version": "2.1.2", - "resolved": "http://r.cnpmjs.org/safer-buffer/download/safer-buffer-2.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz", "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", "dev": true }, - "sass-graph": { - "version": "2.2.4", - "resolved": "http://r.cnpmjs.org/sass-graph/download/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "sass": { + "version": "1.22.2", + "resolved": "https://registry.npm.taobao.org/sass/download/sass-1.22.2.tgz", + "integrity": "sha1-7Zq+56PkCf4sz9wbZsZMfIQeDGI=", "dev": true, - "optional": true, "requires": { - "glob": "7.1.3", - "lodash": "4.17.11", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "chokidar": ">=2.0.0 <4.0.0" } }, "sass-loader": { "version": "7.1.0", - "resolved": "http://registry.npm.taobao.org/sass-loader/download/sass-loader-7.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-7.1.0.tgz", "integrity": "sha1-Fv1ROMuLQkv4p1lSihly1yqtBp0=", "dev": true, "requires": { - "clone-deep": "2.0.2", - "loader-utils": "1.1.0", - "lodash.tail": "4.1.1", - "neo-async": "2.6.0", - "pify": "3.0.0", - "semver": "5.6.0" + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0", + "semver": "^5.5.0" }, "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true } } }, "saucelabs": { "version": "1.5.0", - "resolved": "http://registry.npm.taobao.org/saucelabs/download/saucelabs-1.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/saucelabs/download/saucelabs-1.5.0.tgz", "integrity": "sha1-lAWnPDYNRJsjKDmRmobDltN5/Z0=", "dev": true, "requires": { - "https-proxy-agent": "2.2.1" + "https-proxy-agent": "^2.2.1" }, "dependencies": { "agent-base": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/agent-base/download/agent-base-4.2.1.tgz", - "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", "dev": true, "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "debug": { "version": "3.2.6", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "es6-promise": { - "version": "4.2.5", - "resolved": "http://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.5.tgz", - "integrity": "sha1-2m0NVpLvtGHggsFIF/4kJ9j10FQ=", + "version": "4.2.8", + "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes6-promise%2Fdownload%2Fes6-promise-4.2.8.tgz", + "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=", "dev": true }, "es6-promisify": { "version": "5.0.0", - "resolved": "http://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "4.2.5" + "es6-promise": "^4.0.3" } }, "https-proxy-agent": { - "version": "2.2.1", - "resolved": "http://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-2.2.1.tgz", - "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-2.2.2.tgz", + "integrity": "sha1-Jx6o6Q+DasnxGdrM05wZ/337B5M=", "dev": true, "requires": { - "agent-base": "4.2.1", - "debug": "3.2.6" + "agent-base": "^4.3.0", + "debug": "^3.1.0" } }, "ms": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true } } }, "sax": { "version": "0.5.8", - "resolved": "http://r.cnpmjs.org/sax/download/sax-0.5.8.tgz", + "resolved": "https://registry.npm.taobao.org/sax/download/sax-0.5.8.tgz", "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", "dev": true }, "schema-utils": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { - "ajv": "6.6.2", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.2.0" - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "http://r.cnpmjs.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "optional": true, - "requires": { - "js-base64": "2.5.1", - "source-map": "0.4.4" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "optional": true, - "requires": { - "amdefine": "1.0.1" - } - } + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, "select": { "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/select/download/select-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz", "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", "optional": true }, "select-hose": { "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/select-hose/download/select-hose-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, "selenium-webdriver": { - "version": "3.6.0", - "resolved": "http://registry.npm.taobao.org/selenium-webdriver/download/selenium-webdriver-3.6.0.tgz", - "integrity": "sha1-K6h6FmLAILiYjJga5iyyoBKY6vw=", + "version": "4.0.0-alpha.4", + "resolved": "https://registry.npm.taobao.org/selenium-webdriver/download/selenium-webdriver-4.0.0-alpha.4.tgz", + "integrity": "sha1-c2lEkOAslB2dC/ejb3xJvrk3JRI=", "dev": true, "requires": { - "jszip": "3.1.5", - "rimraf": "2.6.3", + "jszip": "^3.1.5", + "rimraf": "^2.6.3", "tmp": "0.0.30", - "xml2js": "0.4.19" + "xml2js": "^0.4.19" }, "dependencies": { "tmp": { "version": "0.0.30", - "resolved": "http://r.cnpmjs.org/tmp/download/tmp-0.0.30.tgz", + "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.30.tgz", "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.1" } } } }, "selfsigned": { "version": "1.10.4", - "resolved": "http://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.4.tgz", + "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.4.tgz", "integrity": "sha1-zdfsz8pO12NdR6CL8tXTB0CS4s0=", "dev": true, "requires": { @@ -9792,194 +9603,226 @@ }, "semver": { "version": "5.0.1", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.0.1.tgz", "integrity": "sha1-n7P0AE+QDYPEeWj+QvdYPgWDLMk=" }, "semver-dsl": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/semver-dsl/download/semver-dsl-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/semver-dsl/download/semver-dsl-1.0.1.tgz", "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", "dev": true, "requires": { - "semver": "5.6.0" + "semver": "^5.3.0" }, "dependencies": { "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true } } }, "semver-intersect": { "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/semver-intersect/download/semver-intersect-1.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/semver-intersect/download/semver-intersect-1.4.0.tgz", "integrity": "sha1-vdnAa+3N0v7bjNNSw8Q+6MYTIfM=", "dev": true, "requires": { - "semver": "5.0.1" + "semver": "^5.0.0" } }, "send": { - "version": "0.16.2", - "resolved": "http://r.cnpmjs.org/send/download/send-0.16.2.tgz", - "integrity": "sha1-bsyh4PjBVtFBWXVZhI32RzCmu8E=", + "version": "0.17.1", + "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", + "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, - "mime": { - "version": "1.4.1", - "resolved": "http://r.cnpmjs.org/mime/download/mime-1.4.1.tgz", - "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY=", - "dev": true - }, "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", "dev": true } } }, "serialize-javascript": { - "version": "1.6.1", - "resolved": "http://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.6.1.tgz", - "integrity": "sha1-TR9pfsSUKahHym9EKip1USbE2Hk=", + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.7.0.tgz", + "integrity": "sha1-1uDfsqODKoyURo5usduX5VoZKmU=", "dev": true }, "serve-index": { "version": "1.9.1", - "resolved": "http://r.cnpmjs.org/serve-index/download/serve-index-1.9.1.tgz", + "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.21", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" } }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, "ms": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "dev": true } } }, "serve-static": { - "version": "1.13.2", - "resolved": "http://r.cnpmjs.org/serve-static/download/serve-static-1.13.2.tgz", - "integrity": "sha1-CV6Ecv1bRiN9tQzkhqQ/S4bGzsE=", + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", + "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.2" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" } }, "set-blocking": { "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/set-blocking/download/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, "set-value": { - "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/set-value/download/set-value-2.0.0.tgz", - "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "setimmediate": { "version": "1.0.5", - "resolved": "http://r.cnpmjs.org/setimmediate/download/setimmediate-1.0.5.tgz", + "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, "setprototypeof": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/setprototypeof/download/setprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", "dev": true }, "sha.js": { "version": "2.4.11", - "resolved": "http://r.cnpmjs.org/sha.js/download/sha.js-2.4.11.tgz", + "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsha.js%2Fdownload%2Fsha.js-2.4.11.tgz", "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shallow-clone": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/shallow-clone/download/shallow-clone-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-1.0.0.tgz", "integrity": "sha1-RIDNBuiC72iyrYij6lSDLixItXE=", "dev": true, "requires": { - "is-extendable": "0.1.1", - "kind-of": "5.1.0", - "mixin-object": "2.0.1" + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" }, "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "http://r.cnpmjs.org/kind-of/download/kind-of-5.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", "dev": true } @@ -9987,84 +9830,84 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/shebang-command/download/shebang-command-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "shelljs": { "version": "0.8.3", - "resolved": "http://registry.npm.taobao.org/shelljs/download/shelljs-0.8.3.tgz", + "resolved": "https://registry.npm.taobao.org/shelljs/download/shelljs-0.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fshelljs%2Fdownload%2Fshelljs-0.8.3.tgz", "integrity": "sha1-p/MxlSDr8J7oEnWyNorbKGZZsJc=", "dev": true, "requires": { - "glob": "7.1.3", - "interpret": "1.2.0", - "rechoir": "0.6.2" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, "signal-exit": { "version": "3.0.2", - "resolved": "http://r.cnpmjs.org/signal-exit/download/signal-exit-3.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slash": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/slash/download/slash-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "smart-buffer": { "version": "4.0.2", - "resolved": "http://registry.npm.taobao.org/smart-buffer/download/smart-buffer-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/smart-buffer/download/smart-buffer-4.0.2.tgz", "integrity": "sha1-UgeFjDgVzGkRBwPGuU5GwVY0OV0=", "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "http://r.cnpmjs.org/snapdragon/download/snapdragon-0.8.2.tgz", + "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.2.0", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "http://r.cnpmjs.org/define-property/download/define-property-0.2.5.tgz", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "source-map": { "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } @@ -10072,224 +9915,219 @@ }, "snapdragon-node": { "version": "2.1.1", - "resolved": "http://r.cnpmjs.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/define-property/download/define-property-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "http://r.cnpmjs.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "socket.io": { - "version": "1.7.3", - "resolved": "http://r.cnpmjs.org/socket.io/download/socket.io-1.7.3.tgz", - "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/socket.io/download/socket.io-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsocket.io%2Fdownload%2Fsocket.io-2.1.1.tgz", + "integrity": "sha1-oGnF/qvuPmshSnW0DOBlLhz7mYA=", "dev": true, "requires": { - "debug": "2.3.3", - "engine.io": "1.8.3", - "has-binary": "0.1.7", - "object-assign": "4.1.0", - "socket.io-adapter": "0.5.0", - "socket.io-client": "1.7.3", - "socket.io-parser": "2.3.1" + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" }, "dependencies": { "debug": { - "version": "2.3.3", - "resolved": "http://r.cnpmjs.org/debug/download/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "2.0.0" } }, "ms": { - "version": "0.7.2", - "resolved": "http://r.cnpmjs.org/ms/download/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - }, - "object-assign": { - "version": "4.1.0", - "resolved": "http://r.cnpmjs.org/object-assign/download/object-assign-4.1.0.tgz", - "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "socket.io-adapter": { - "version": "0.5.0", - "resolved": "http://r.cnpmjs.org/socket.io-adapter/download/socket.io-adapter-0.5.0.tgz", - "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", - "dev": true, - "requires": { - "debug": "2.3.3", - "socket.io-parser": "2.3.1" - }, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "http://r.cnpmjs.org/debug/download/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "http://r.cnpmjs.org/ms/download/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/socket.io-adapter/download/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true }, "socket.io-client": { - "version": "1.7.3", - "resolved": "http://r.cnpmjs.org/socket.io-client/download/socket.io-client-1.7.3.tgz", - "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/socket.io-client/download/socket.io-client-2.1.1.tgz", + "integrity": "sha1-3LOBA0NqtFeN2wJmOK4vIbYjZx8=", "dev": true, "requires": { "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "2.3.3", - "engine.io-client": "1.8.3", - "has-binary": "0.1.7", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", + "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "2.3.1", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" }, "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, "debug": { - "version": "2.3.3", - "resolved": "http://r.cnpmjs.org/debug/download/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "2.0.0" } }, "ms": { - "version": "0.7.2", - "resolved": "http://r.cnpmjs.org/ms/download/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "socket.io-parser": { - "version": "2.3.1", - "resolved": "http://r.cnpmjs.org/socket.io-parser/download/socket.io-parser-2.3.1.tgz", - "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/socket.io-parser/download/socket.io-parser-3.2.0.tgz", + "integrity": "sha1-58Yii2qh+BTmFIrqMltRqpSZ4Hc=", "dev": true, "requires": { - "component-emitter": "1.1.2", - "debug": "2.2.0", - "isarray": "0.0.1", - "json3": "3.3.2" + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" }, "dependencies": { "component-emitter": { - "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/component-emitter/download/component-emitter-1.1.2.tgz", - "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "isarray": { - "version": "0.0.1", - "resolved": "http://r.cnpmjs.org/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-2.0.1.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "sockjs": { "version": "0.3.19", - "resolved": "http://r.cnpmjs.org/sockjs/download/sockjs-0.3.19.tgz", + "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz", "integrity": "sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0=", "dev": true, "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.3.2" + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" }, "dependencies": { "faye-websocket": { "version": "0.10.0", - "resolved": "http://r.cnpmjs.org/faye-websocket/download/faye-websocket-0.10.0.tgz", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "uuid": { "version": "3.3.2", - "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=", "dev": true } @@ -10297,137 +10135,135 @@ }, "sockjs-client": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.3.0.tgz", "integrity": "sha1-EvydbLZj2lc509xftuhofalcsXc=", "requires": { - "debug": "3.2.6", - "eventsource": "1.0.7", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.4.4" + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" }, "dependencies": { "debug": { "version": "3.2.6", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" } } }, "socks": { - "version": "2.2.3", - "resolved": "http://registry.npm.taobao.org/socks/download/socks-2.2.3.tgz", - "integrity": "sha1-c5nOEeGbKplxU8mDqcy2MGch8tw=", + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/socks/download/socks-2.3.2.tgz", + "integrity": "sha1-reOI6ebYf9sRZJwVdGxXiSKliD4=", "dev": true, "requires": { - "ip": "1.1.5", + "ip": "^1.1.5", "smart-buffer": "4.0.2" } }, "socks-proxy-agent": { - "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/socks-proxy-agent/download/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha1-WTa/i3B6mTB5xvN9sgkYIb/6ZHM=", + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/socks-proxy-agent/download/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", "dev": true, "requires": { - "agent-base": "4.2.1", - "socks": "2.2.3" + "agent-base": "~4.2.1", + "socks": "~2.3.2" }, "dependencies": { "agent-base": { "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/agent-base/download/agent-base-4.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.2.1.tgz", "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", "dev": true, "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "es6-promise": { - "version": "4.2.5", - "resolved": "http://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.5.tgz", - "integrity": "sha1-2m0NVpLvtGHggsFIF/4kJ9j10FQ=", + "version": "4.2.8", + "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes6-promise%2Fdownload%2Fes6-promise-4.2.8.tgz", + "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=", "dev": true }, "es6-promisify": { "version": "5.0.0", - "resolved": "http://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "4.2.5" + "es6-promise": "^4.0.3" } } } }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, "source-list-map": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", "dev": true }, "source-map": { "version": "0.7.3", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", "dev": true }, "source-map-loader": { "version": "0.2.4", - "resolved": "http://registry.npm.taobao.org/source-map-loader/download/source-map-loader-0.2.4.tgz", + "resolved": "https://registry.npm.taobao.org/source-map-loader/download/source-map-loader-0.2.4.tgz", "integrity": "sha1-wYsNxuI79m9nkkN1V8VpoR4HInE=", "dev": true, "requires": { - "async": "2.6.1", - "loader-utils": "1.1.0" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "http://registry.npm.taobao.org/async/download/async-2.6.1.tgz", - "integrity": "sha1-skWiPKcZMAROxT+kaqAKPofGphA=", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - } + "async": "^2.5.0", + "loader-utils": "^1.1.0" } }, "source-map-resolve": { "version": "0.5.2", - "resolved": "http://r.cnpmjs.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz", + "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz", "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", "dev": true, "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { - "version": "0.5.9", - "resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.9.tgz", - "integrity": "sha1-QbyVOyU0Jn6i1gW8z6e/oxEc7V8=", + "version": "0.5.12", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.12.tgz", + "integrity": "sha1-tPOxDVGFelrwE4086AA7IBYT1Zk=", "dev": true, "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true } @@ -10435,920 +10271,789 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "http://r.cnpmjs.org/source-map-url/download/source-map-url-0.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "sourcemap-codec": { - "version": "1.4.4", - "resolved": "http://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.4.tgz", - "integrity": "sha1-xj6pJ8Ap3WvZorf6A7P+wCrVbp8=", + "version": "1.4.6", + "resolved": "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.6.tgz", + "integrity": "sha1-4wp08EArrQmAdkDTnpcQkKCM4ek=", "dev": true }, "spdx-correct": { "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz", "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.3" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz", "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=" }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz", "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.3" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.3.tgz", - "integrity": "sha1-gcDOjyFHR1YUi7tfO/wPNr8V124=" + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz", + "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=" }, "spdy": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/spdy/download/spdy-4.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.0.tgz", "integrity": "sha1-gfIitadDoymqEs6mo5DmDpthPFI=", "dev": true, "requires": { - "debug": "4.1.1", - "handle-thing": "2.0.0", - "http-deceiver": "1.2.7", - "select-hose": "2.0.0", - "spdy-transport": "3.0.0" + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" }, "dependencies": { "debug": { "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true } } }, "spdy-transport": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", "dev": true, "requires": { - "debug": "4.1.1", - "detect-node": "2.0.4", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "3.1.1", - "wbuf": "1.7.3" + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" }, "dependencies": { "debug": { "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true }, "readable-stream": { - "version": "3.1.1", - "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-3.1.1.tgz", - "integrity": "sha1-7Wu8bFuliwkAOf8YzmcFFXla6wY=", + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.4.0.tgz", + "integrity": "sha1-pRwmdUZY4KPCHb9ZFjvUW6b0R/w=", "dev": true, "requires": { - "inherits": "2.0.3", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, "speed-measure-webpack-plugin": { - "version": "1.2.5", - "resolved": "http://registry.npm.taobao.org/speed-measure-webpack-plugin/download/speed-measure-webpack-plugin-1.2.5.tgz", - "integrity": "sha1-gXmTbrjF6JH3SBvVB1qeqaD3SCM=", + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/speed-measure-webpack-plugin/download/speed-measure-webpack-plugin-1.3.1.tgz", + "integrity": "sha1-aYQKXNwItGOGl9rH2wN/WV1/NqA=", "dev": true, "requires": { - "chalk": "2.4.2" + "chalk": "^2.0.1" } }, "split-string": { "version": "3.1.0", - "resolved": "http://r.cnpmjs.org/split-string/download/split-string-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/sprintf-js/download/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { "version": "1.16.1", - "resolved": "http://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "ssri": { - "version": "5.3.0", - "resolved": "http://r.cnpmjs.org/ssri/download/ssri-5.3.0.tgz", - "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "figgy-pudding": "^3.5.1" } }, "static-extend": { "version": "0.1.2", - "resolved": "http://r.cnpmjs.org/static-extend/download/static-extend-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "http://r.cnpmjs.org/define-property/download/define-property-0.2.5.tgz", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, - "stats-webpack-plugin": { - "version": "0.7.0", - "resolved": "http://registry.npm.taobao.org/stats-webpack-plugin/download/stats-webpack-plugin-0.7.0.tgz", - "integrity": "sha1-zP/pt0Xei7sVVXHgY/gmP8DivAY=", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, "statuses": { - "version": "1.4.0", - "resolved": "http://r.cnpmjs.org/statuses/download/statuses-1.4.0.tgz", - "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic=", + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz", - "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=", - "dev": true, - "optional": true, - "requires": { - "readable-stream": "2.3.6" - } - }, "stream-browserify": { "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-each": { "version": "1.2.3", - "resolved": "http://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-http": { "version": "2.8.3", - "resolved": "http://r.cnpmjs.org/stream-http/download/stream-http-2.8.3.tgz", + "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz", "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-shift": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/stream-shift/download/stream-shift-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, + "streamroller": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/streamroller/download/streamroller-1.0.5.tgz", + "integrity": "sha1-cWYMILBrGnsgTUYIVzGtE8EKVi0=", + "dev": true, + "requires": { + "async": "^2.6.2", + "date-format": "^2.0.0", + "debug": "^3.2.6", + "fs-extra": "^7.0.1", + "lodash": "^4.17.11" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, "string-width": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "string_decoder": { "version": "1.1.1", - "resolved": "http://r.cnpmjs.org/string_decoder/download/string_decoder-1.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/strip-bom/download/strip-bom-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/strip-eof/download/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, - "strip-indent": { - "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/strip-indent/download/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "optional": true, - "requires": { - "get-stdin": "4.0.1" - } - }, "style-loader": { "version": "0.23.1", - "resolved": "http://registry.npm.taobao.org/style-loader/download/style-loader-0.23.1.tgz", + "resolved": "https://registry.npm.taobao.org/style-loader/download/style-loader-0.23.1.tgz", "integrity": "sha1-y5FUYG8+dxq2xKtjcCahBJF02SU=", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "1.0.0" + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" } }, "stylus": { "version": "0.54.5", - "resolved": "http://r.cnpmjs.org/stylus/download/stylus-0.54.5.tgz", + "resolved": "https://registry.npm.taobao.org/stylus/download/stylus-0.54.5.tgz", "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", "dev": true, "requires": { - "css-parse": "1.7.0", - "debug": "2.2.0", - "glob": "7.0.6", - "mkdirp": "0.5.1", - "sax": "0.5.8", - "source-map": "0.1.43" + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" }, "dependencies": { "glob": { "version": "7.0.6", - "resolved": "http://r.cnpmjs.org/glob/download/glob-7.0.6.tgz", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.0.6.tgz", "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "source-map": { "version": "0.1.43", - "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.1.43.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.1.43.tgz", "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "stylus-loader": { "version": "3.0.2", - "resolved": "http://r.cnpmjs.org/stylus-loader/download/stylus-loader-3.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/stylus-loader/download/stylus-loader-3.0.2.tgz", "integrity": "sha1-J6cGQgsFo44DjnyssVNXjUUFE8Y=", "dev": true, "requires": { - "loader-utils": "1.1.0", - "lodash.clonedeep": "4.5.0", - "when": "3.6.4" + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" } }, "supports-color": { - "version": "6.1.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "symbol-observable": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz", "integrity": "sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ=", "dev": true }, "tapable": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/tapable/download/tapable-1.1.1.tgz", - "integrity": "sha1-TSl5I8WnKkI2DeKrUtrfquwAAY4=", + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz", + "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", "dev": true }, "tar": { "version": "2.2.1", - "resolved": "http://r.cnpmjs.org/tar/download/tar-2.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "terser": { - "version": "3.14.1", - "resolved": "http://registry.npm.taobao.org/terser/download/terser-3.14.1.tgz", - "integrity": "sha1-zEdkAUr1cLx5x5dCNYvUaSYBijI=", + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.1.2.tgz?cache=0&sync_timestamp=1562580696479&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.1.2.tgz", + "integrity": "sha1-smVsilBvfOgFo/MAov9I2wIvo5E=", "dev": true, "requires": { - "commander": "2.17.1", - "source-map": "0.6.1", - "source-map-support": "0.5.9" + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true } } }, "terser-webpack-plugin": { - "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.2.1.tgz", - "integrity": "sha1-dUXamuX0+a5qCslh60b158hFzCY=", + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.3.0.tgz", + "integrity": "sha1-aaoiQmKZ9LWzd1y+2MssXUGaodQ=", "dev": true, "requires": { - "cacache": "11.3.2", - "find-cache-dir": "2.0.0", - "schema-utils": "1.0.0", - "serialize-javascript": "1.6.1", - "source-map": "0.6.1", - "terser": "3.14.1", - "webpack-sources": "1.3.0", - "worker-farm": "1.6.0" + "cacache": "^11.3.2", + "find-cache-dir": "^2.0.0", + "is-wsl": "^1.1.0", + "loader-utils": "^1.2.3", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "source-map": "^0.6.1", + "terser": "^4.0.0", + "webpack-sources": "^1.3.0", + "worker-farm": "^1.7.0" }, "dependencies": { - "cacache": { - "version": "11.3.2", - "resolved": "http://registry.npm.taobao.org/cacache/download/cacache-11.3.2.tgz", - "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "chownr": "1.1.1", - "figgy-pudding": "3.5.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "5.1.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "6.0.1", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - } - }, - "find-cache-dir": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.0.0.tgz", - "integrity": "sha1-TB+u1Z9FGEUw+51/oSOk0EqYRy0=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "requires": { - "yallist": "3.0.3" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" - } - }, - "p-limit": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-2.1.0.tgz", - "integrity": "sha1-HVoNIPsScHx1imVfa7xDhrWTDWg=", - "dev": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "2.1.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-2.0.0.tgz", - "integrity": "sha1-hQgLuHxkaI+keZb+j3376CEXYLE=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dev": true, - "requires": { - "find-up": "3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true - }, - "ssri": { - "version": "6.0.1", - "resolved": "http://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", - "dev": true, - "requires": { - "figgy-pudding": "3.5.1" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", - "dev": true, - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-3.0.3.tgz", - "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=", - "dev": true } } }, "thenify": { "version": "3.3.0", - "resolved": "http://r.cnpmjs.org/thenify/download/thenify-3.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.0.tgz", "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.0.0" } }, "thenify-all": { "version": "1.6.0", - "resolved": "http://r.cnpmjs.org/thenify-all/download/thenify-all-1.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz", "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", "requires": { - "thenify": "3.3.0" + "thenify": ">= 3.1.0 < 4" } }, "through": { "version": "2.3.8", - "resolved": "http://r.cnpmjs.org/through/download/through-2.3.8.tgz", + "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "through2": { "version": "0.4.2", - "resolved": "http://registry.npm.taobao.org/through2/download/through2-0.4.2.tgz", + "resolved": "https://registry.npm.taobao.org/through2/download/through2-0.4.2.tgz", "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", "requires": { - "readable-stream": "1.0.34", - "xtend": "2.1.2" + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" }, "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.0.34", - "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { "version": "0.10.31", - "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "xtend": { "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/xtend/download/xtend-2.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", "requires": { - "object-keys": "0.4.0" + "object-keys": "~0.4.0" } } } }, "thunky": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/thunky/download/thunky-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.0.3.tgz", "integrity": "sha1-9d9zJFNAewkZHa5z4qjMc/OBqCY=", "dev": true }, "timed-out": { "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/timed-out/download/timed-out-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/timed-out/download/timed-out-2.0.0.tgz", "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=" }, "timers-browserify": { "version": "2.0.10", - "resolved": "http://r.cnpmjs.org/timers-browserify/download/timers-browserify-2.0.10.tgz", + "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.10.tgz", "integrity": "sha1-HSjj0qrfHVpZlsTp+VYBzQU0gK4=", "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "tiny-emitter": { - "version": "2.0.2", - "resolved": "http://r.cnpmjs.org/tiny-emitter/download/tiny-emitter-2.0.2.tgz", - "integrity": "sha1-gtJ0aKylrejl/R5tIrV91D69+3w=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", + "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=", "optional": true }, "tmp": { "version": "0.0.33", - "resolved": "http://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz", + "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz", "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { "version": "0.1.4", - "resolved": "http://r.cnpmjs.org/to-array/download/to-array-0.1.4.tgz", + "resolved": "https://registry.npm.taobao.org/to-array/download/to-array-0.1.4.tgz", "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", "dev": true }, "to-arraybuffer": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, "to-fast-properties": { "version": "1.0.3", - "resolved": "http://r.cnpmjs.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "to-object-path": { "version": "0.3.0", - "resolved": "http://r.cnpmjs.org/to-object-path/download/to-object-path-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "to-regex": { "version": "3.0.2", - "resolved": "http://r.cnpmjs.org/to-regex/download/to-regex-3.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { - "version": "2.1.1", - "resolved": "http://r.cnpmjs.org/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^7.0.0" } }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", + "dev": true + }, "tough-cookie": { "version": "2.4.3", - "resolved": "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz", "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", "dev": true, "requires": { - "psl": "1.1.31", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" }, "dependencies": { "punycode": { "version": "1.4.1", - "resolved": "http://r.cnpmjs.org/punycode/download/punycode-1.4.1.tgz", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true } } }, "tree-kill": { - "version": "1.2.0", - "resolved": "http://r.cnpmjs.org/tree-kill/download/tree-kill-1.2.0.tgz", - "integrity": "sha1-WEZ4Yje0I5AU8F2xVrZDIS1MbzY=", + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/tree-kill/download/tree-kill-1.2.1.tgz", + "integrity": "sha1-U5jzdOLykrncx7LnHjClw7tsdDo=", "dev": true }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/trim-newlines/download/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "optional": true - }, "trim-right": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/trim-right/download/trim-right-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, - "true-case-path": { - "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz", - "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=", - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.3" - } - }, "ts-node": { "version": "5.0.1", - "resolved": "http://registry.npm.taobao.org/ts-node/download/ts-node-5.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/ts-node/download/ts-node-5.0.1.tgz", "integrity": "sha1-eOXRyz9wTeG2QeQ7dr4tQJTwb4E=", "dev": true, "requires": { - "arrify": "1.0.1", - "chalk": "2.4.2", - "diff": "3.5.0", - "make-error": "1.3.5", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map-support": "0.5.9", - "yn": "2.0.0" + "arrify": "^1.0.0", + "chalk": "^2.3.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.3", + "yn": "^2.0.0" } }, "tslib": { - "version": "1.9.3", - "resolved": "http://r.cnpmjs.org/tslib/download/tslib-1.9.3.tgz", - "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=" + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.10.0.tgz", + "integrity": "sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo=" }, "tslint": { - "version": "5.12.1", - "resolved": "http://registry.npm.taobao.org/tslint/download/tslint-5.12.1.tgz", - "integrity": "sha1-jOydRUz4od6bCibXvbrW3jYuUsE=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.2", - "commander": "2.17.1", - "diff": "3.5.0", - "glob": "7.1.3", - "js-yaml": "3.12.1", - "minimatch": "3.0.4", - "resolve": "1.10.0", - "semver": "5.6.0", - "tslib": "1.9.3", - "tsutils": "2.29.0" + "version": "5.18.0", + "resolved": "https://registry.npm.taobao.org/tslint/download/tslint-5.18.0.tgz", + "integrity": "sha1-9hpt3PNyNErF5BcICVu/BDoUesY=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" }, "dependencies": { - "resolve": { - "version": "1.10.0", - "resolved": "http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz", - "integrity": "sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=", - "dev": true, - "requires": { - "path-parse": "1.0.6" - } - }, "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "5.7.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true } } }, "tsutils": { "version": "2.29.0", - "resolved": "http://registry.npm.taobao.org/tsutils/download/tsutils-2.29.0.tgz", + "resolved": "https://registry.npm.taobao.org/tsutils/download/tsutils-2.29.0.tgz", "integrity": "sha1-MrSIUBRnrL7dS4VJhnOggSrKC5k=", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.8.1" } }, "tty-browserify": { "version": "0.0.0", - "resolved": "http://r.cnpmjs.org/tty-browserify/download/tty-browserify-0.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, "tunnel-agent": { "version": "0.6.0", - "resolved": "http://r.cnpmjs.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", - "resolved": "http://r.cnpmjs.org/tweetnacl/download/tweetnacl-0.14.5.tgz", + "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, - "type-check": { - "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2" - } - }, "type-is": { - "version": "1.6.16", - "resolved": "http://r.cnpmjs.org/type-is/download/type-is-1.6.16.tgz", - "integrity": "sha1-+JzjQVQcZysl7nrjxz3uOyvlAZQ=", + "version": "1.6.18", + "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", + "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.21" + "mime-types": "~2.1.24" } }, "typedarray": { "version": "0.0.6", - "resolved": "http://r.cnpmjs.org/typedarray/download/typedarray-0.0.6.tgz", + "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "typescript": { - "version": "3.2.4", - "resolved": "http://registry.npm.taobao.org/typescript/download/typescript-3.2.4.tgz", - "integrity": "sha1-xYXLlSkSJj2RW0YnJs4kS6UQ7z0=", + "version": "3.4.5", + "resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.4.5.tgz", + "integrity": "sha1-LSYY0Qu1ZlcrjXqtUYDYQlfXCpk=", "dev": true }, "uglify-js": { - "version": "3.4.9", - "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.9.tgz", - "integrity": "sha1-rwLxgMEgfXZDLkc+0koo9KeCuuM=", + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.6.0.tgz", + "integrity": "sha1-cEaBNFxTqLIHn7bOwpSwXq0kL/U=", "dev": true, "optional": true, "requires": { - "commander": "2.17.1", - "source-map": "0.6.1" + "commander": "~2.20.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true, "optional": true @@ -11356,94 +11061,111 @@ } }, "ultron": { - "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/ultron/download/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ultron/download/ultron-1.1.1.tgz", + "integrity": "sha1-n+FTahCmZKZSZqHjzPhf02MCvJw=", "dev": true }, "union-value": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/union-value/download/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "http://r.cnpmjs.org/set-value/download/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, "unique-filename": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "dev": true, "requires": { - "unique-slug": "2.0.1" + "unique-slug": "^2.0.0" } }, "unique-slug": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.1.tgz", - "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universal-analytics": { + "version": "0.4.20", + "resolved": "https://registry.npm.taobao.org/universal-analytics/download/universal-analytics-0.4.20.tgz", + "integrity": "sha1-1rZOUxK/dPfDaOMCSpIhNdvySwM=", "dev": true, "requires": { - "imurmurhash": "0.1.4" + "debug": "^3.0.0", + "request": "^2.88.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", + "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=", + "dev": true + } } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "dev": true + }, "unpipe": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/unpipe/download/unpipe-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, "unset-value": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/unset-value/download/unset-value-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "http://r.cnpmjs.org/has-value/download/has-value-0.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "http://r.cnpmjs.org/isobject/download/isobject-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { @@ -11454,7 +11176,7 @@ }, "has-values": { "version": "0.1.4", - "resolved": "http://r.cnpmjs.org/has-values/download/has-values-0.1.4.tgz", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true } @@ -11462,33 +11184,33 @@ }, "unzip-response": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/unzip-response/download/unzip-response-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/unzip-response/download/unzip-response-1.0.2.tgz", "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" }, "upath": { - "version": "1.1.0", - "resolved": "http://r.cnpmjs.org/upath/download/upath-1.1.0.tgz", - "integrity": "sha1-NSVll+RqWB20eT0M5H+prr/J+r0=", + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.1.2.tgz", + "integrity": "sha1-PbZYYA7a7sy+bbXmhNZ+6MKs0Gg=", "dev": true }, "uri-js": { "version": "4.2.2", - "resolved": "http://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", - "resolved": "http://r.cnpmjs.org/urix/download/urix-0.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "url": { "version": "0.11.0", - "resolved": "http://r.cnpmjs.org/url/download/url-0.11.0.tgz", + "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "requires": { @@ -11498,77 +11220,112 @@ "dependencies": { "punycode": { "version": "1.3.2", - "resolved": "http://r.cnpmjs.org/punycode/download/punycode-1.3.2.tgz", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true } } }, "url-parse": { - "version": "1.4.4", - "resolved": "http://registry.npm.taobao.org/url-parse/download/url-parse-1.4.4.tgz", - "integrity": "sha1-ysFVbpX6oDA2kf7Fz51aG8NGSPg=", + "version": "1.4.7", + "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz", + "integrity": "sha1-qKg1NejACjFuQDpdtKwbm4U64ng=", "requires": { - "querystringify": "2.1.0", - "requires-port": "1.0.0" + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" } }, "url-parse-lax": { "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse-lax%2Fdownload%2Furl-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "use": { "version": "3.1.1", - "resolved": "http://registry.npm.taobao.org/use/download/use-3.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", "dev": true }, "useragent": { "version": "2.3.0", - "resolved": "http://r.cnpmjs.org/useragent/download/useragent-2.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/useragent/download/useragent-2.3.0.tgz", "integrity": "sha1-IX+UOtVAyyEoZYqyP8lg9qiMmXI=", "dev": true, "requires": { - "lru-cache": "4.1.5", - "tmp": "0.0.33" + "lru-cache": "4.1.x", + "tmp": "0.0.x" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } } }, "util": { "version": "0.11.1", - "resolved": "http://registry.npm.taobao.org/util/download/util-0.11.1.tgz", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz", "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", "dev": true, "requires": { "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, "util-deprecate": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/util-promisify/download/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, "utils-merge": { "version": "1.0.1", - "resolved": "http://r.cnpmjs.org/utils-merge/download/utils-merge-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", "requires": { - "spdx-correct": "3.1.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { "version": "2.2.2", - "resolved": "http://r.cnpmjs.org/validate-npm-package-name/download/validate-npm-package-name-2.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-name/download/validate-npm-package-name-2.2.2.tgz", "integrity": "sha1-9laVsi9zJEQgGaPH+jmm5/0pkIU=", "requires": { "builtins": "0.0.7" @@ -11576,542 +11333,1608 @@ }, "vary": { "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/vary/download/vary-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, "verror": { "version": "1.10.0", - "resolved": "http://r.cnpmjs.org/verror/download/verror-1.10.0.tgz", + "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vm-browserify": { - "version": "0.0.4", - "resolved": "http://r.cnpmjs.org/vm-browserify/download/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.0.tgz", + "integrity": "sha1-vXbWojMj4sqP+hICjcBFWcdfkBk=", + "dev": true }, "void-elements": { "version": "2.0.1", - "resolved": "http://r.cnpmjs.org/void-elements/download/void-elements-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz", "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true }, "watchpack": { "version": "1.6.0", - "resolved": "http://r.cnpmjs.org/watchpack/download/watchpack-1.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz", "integrity": "sha1-S8EsLr6KonenHx0/FNaFx7RGzQA=", "dev": true, "requires": { - "chokidar": "2.0.4", - "graceful-fs": "4.1.15", - "neo-async": "2.6.0" - } - }, - "wayne-ui": { - "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/wayne-ui/download/wayne-ui-0.1.0.tgz", - "integrity": "sha1-Df8Tm+bcHSltUMQM2IDSmWiWxwU=" - }, - "wbuf": { - "version": "1.7.3", - "resolved": "http://r.cnpmjs.org/wbuf/download/wbuf-1.7.3.tgz", - "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", - "dev": true, - "requires": { - "minimalistic-assert": "1.0.1" - } - }, - "webdriver-js-extender": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/webdriver-js-extender/download/webdriver-js-extender-1.0.0.tgz", - "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=", - "dev": true, - "requires": { - "@types/selenium-webdriver": "2.53.43", - "selenium-webdriver": "2.53.3" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" }, "dependencies": { - "sax": { - "version": "0.6.1", - "resolved": "http://r.cnpmjs.org/sax/download/sax-0.6.1.tgz", - "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", "dev": true }, - "selenium-webdriver": { - "version": "2.53.3", - "resolved": "http://r.cnpmjs.org/selenium-webdriver/download/selenium-webdriver-2.53.3.tgz", - "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.6.tgz?cache=0&sync_timestamp=1562457945399&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.6.tgz", + "integrity": "sha1-tsrWU6kp4kTOioNCRBZNJB+pVMU=", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz", + "integrity": "sha1-P17WZYPM1vQAtaANtvfoYTY+OI8=", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "adm-zip": "0.4.4", - "rimraf": "2.6.3", - "tmp": "0.0.24", - "ws": "1.1.2", - "xml2js": "0.4.4" + "binary-extensions": "^1.0.0" } }, - "tmp": { - "version": "0.0.24", - "resolved": "http://r.cnpmjs.org/tmp/download/tmp-0.0.24.tgz", - "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=", - "dev": true + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } }, - "xml2js": { - "version": "0.4.4", - "resolved": "http://r.cnpmjs.org/xml2js/download/xml2js-0.4.4.tgz", - "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "sax": "0.6.1", - "xmlbuilder": "9.0.7" + "is-buffer": "^1.1.5" } - } - } - }, - "webpack": { - "version": "4.29.0", - "resolved": "http://registry.npm.taobao.org/webpack/download/webpack-4.29.0.tgz", - "integrity": "sha1-8s/vg/euQEuoif9dQ+/Shcom51A=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "6.0.5", - "acorn-dynamic-import": "4.0.0", - "ajv": "6.6.2", - "ajv-keywords": "3.2.0", - "chrome-trace-event": "1.0.0", - "enhanced-resolve": "4.1.0", - "eslint-scope": "4.0.0", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.4.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "neo-async": "2.6.0", - "node-libs-browser": "2.2.0", - "schema-utils": "0.4.7", - "tapable": "1.1.1", - "terser-webpack-plugin": "1.2.1", - "watchpack": "1.6.0", - "webpack-sources": "1.3.0" - }, - "dependencies": { - "acorn": { - "version": "6.0.5", - "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-6.0.5.tgz", - "integrity": "sha1-gXMMCBXz87NNjvqVy3Qwll9NiHo=", - "dev": true }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha1-SCIQFAWCo2uDw+NC4c/ryqkkCUg=", - "dev": true + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1562457210009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } }, - "schema-utils": { - "version": "0.4.7", - "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "ajv": "6.6.2", - "ajv-keywords": "3.2.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", + "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "4.35.3", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.35.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.35.3.tgz", + "integrity": "sha1-Zrw17yFae3XoeQ+E1WABP/7PDKM=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^1.0.0", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" + } + }, "webpack-core": { "version": "0.6.9", - "resolved": "http://r.cnpmjs.org/webpack-core/download/webpack-core-0.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/webpack-core/download/webpack-core-0.6.9.tgz", "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", "dev": true, "requires": { - "source-list-map": "0.1.8", - "source-map": "0.4.4" + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" }, "dependencies": { "source-list-map": { "version": "0.1.8", - "resolved": "http://r.cnpmjs.org/source-list-map/download/source-list-map-0.1.8.tgz", + "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-0.1.8.tgz", "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", "dev": true }, "source-map": { "version": "0.4.4", - "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.4.4.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "webpack-dev-middleware": { - "version": "3.4.0", - "resolved": "http://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.4.0.tgz", - "integrity": "sha1-ETL+zJAm/ZDw7O2sXL/3XR+0WJA=", + "version": "3.7.0", + "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.0.tgz", + "integrity": "sha1-73UdJfTppcijXaYAxf2jWCtcbP8=", "dev": true, "requires": { - "memory-fs": "0.4.1", - "mime": "2.4.0", - "range-parser": "1.2.0", - "webpack-log": "2.0.0" + "memory-fs": "^0.4.1", + "mime": "^2.4.2", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" }, "dependencies": { "mime": { - "version": "2.4.0", - "resolved": "http://registry.npm.taobao.org/mime/download/mime-2.4.0.tgz", - "integrity": "sha1-4FH9iBNYWF8yed8zP+aU2gvP/dY=", + "version": "2.4.4", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.4.tgz", + "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", "dev": true } } }, "webpack-dev-server": { - "version": "3.1.14", - "resolved": "http://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.1.14.tgz", - "integrity": "sha1-YPsim5l/xaCh/GI3QhAwGAlZ1Gk=", + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.7.2.tgz", + "integrity": "sha1-95yqWXS3+LYyaO9UISIqhIbXkvU=", "dev": true, "requires": { "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "2.0.4", - "compression": "1.7.3", - "connect-history-api-fallback": "1.6.0", - "debug": "3.2.6", - "del": "3.0.0", - "express": "4.16.4", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.18.0", - "import-local": "2.0.0", - "internal-ip": "3.0.1", - "ip": "1.1.5", - "killable": "1.0.1", - "loglevel": "1.6.1", - "opn": "5.4.0", - "portfinder": "1.0.17", - "schema-utils": "1.0.0", - "selfsigned": "1.10.4", - "semver": "5.6.0", - "serve-index": "1.9.1", + "bonjour": "^3.5.0", + "chokidar": "^2.1.6", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "^0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "killable": "^1.0.1", + "loglevel": "^1.6.3", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.20", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.4", + "semver": "^6.1.1", + "serve-index": "^1.9.1", "sockjs": "0.3.19", "sockjs-client": "1.3.0", - "spdy": "4.0.0", - "strip-ansi": "3.0.1", - "supports-color": "5.5.0", - "url": "0.11.0", - "webpack-dev-middleware": "3.4.0", - "webpack-log": "2.0.0", - "yargs": "12.0.2" + "spdy": "^4.0.0", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.0", + "webpack-log": "^2.0.0", + "yargs": "12.0.5" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } }, - "camelcase": { - "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", "dev": true }, - "cliui": { - "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz", - "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.6.tgz?cache=0&sync_timestamp=1562457945399&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.6.tgz", + "integrity": "sha1-tsrWU6kp4kTOioNCRBZNJB+pVMU=", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz", + "integrity": "sha1-P17WZYPM1vQAtaANtvfoYTY+OI8=", "dev": true, + "optional": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, "dev": true, + "optional": true, "requires": { - "ansi-regex": "3.0.0" + "string-width": "^1.0.2 || 2" } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "decamelize": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/decamelize/download/decamelize-2.0.0.tgz", - "integrity": "sha1-ZW17vICUxMeI6lPFhAkIycfQY8c=", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "binary-extensions": "^1.0.0" } }, - "find-up": { + "is-number": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "invert-kv": "2.0.0" + "kind-of": "^3.0.2" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "is-buffer": "^1.1.5" } }, "ms": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", - "dev": true, - "requires": { - "execa": "1.0.0", - "lcid": "2.0.0", - "mem": "4.0.0" - } - }, - "p-limit": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-2.1.0.tgz", - "integrity": "sha1-HVoNIPsScHx1imVfa7xDhrWTDWg=", - "dev": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "2.1.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-2.0.0.tgz", - "integrity": "sha1-hQgLuHxkaI+keZb+j3376CEXYLE=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true }, - "pump": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1562457210009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "semver": { - "version": "5.6.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz", - "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=", + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.2.0.tgz", + "integrity": "sha1-TYE9lZCq+KkZJpPWyFuTRN5ZAds=", "dev": true }, - "string-width": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, "supports-color": { - "version": "5.5.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "yargs": { - "version": "12.0.2", - "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-12.0.2.tgz", - "integrity": "sha1-/lgjQ2k5KvM+y+9TgZFx7/D1qtw=", + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "2.0.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "10.1.0" + "has-flag": "^3.0.0" } }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-10.1.0.tgz", - "integrity": "sha1-cgImW4n36eny5XZeD+c1qQXtuqg=", + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "camelcase": "4.1.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, "webpack-log": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz", "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", "dev": true, "requires": { - "ansi-colors": "3.2.3", - "uuid": "3.3.2" + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" }, "dependencies": { "uuid": { "version": "3.3.2", - "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=", "dev": true } } }, "webpack-merge": { - "version": "4.1.4", - "resolved": "http://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.1.4.tgz", - "integrity": "sha1-D9446r8tX9hSUcJKWoxI+KP063s=", + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.1.tgz", + "integrity": "sha1-XpI8+ALqKs5P1a8dMkc2imM0ibQ=", "dev": true, "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.5" } }, "webpack-sources": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.3.0.tgz", "integrity": "sha1-KijcufH0X+lg2PFJMlK17mUw+oU=", "dev": true, "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true } @@ -12119,122 +12942,139 @@ }, "webpack-subresource-integrity": { "version": "1.1.0-rc.6", - "resolved": "http://registry.npm.taobao.org/webpack-subresource-integrity/download/webpack-subresource-integrity-1.1.0-rc.6.tgz", + "resolved": "https://registry.npm.taobao.org/webpack-subresource-integrity/download/webpack-subresource-integrity-1.1.0-rc.6.tgz", "integrity": "sha1-N/bxJk4es3jkFGWpjagPrXariIY=", "dev": true, "requires": { - "webpack-core": "0.6.9" + "webpack-core": "^0.6.8" } }, "websocket-driver": { - "version": "0.7.0", - "resolved": "http://r.cnpmjs.org/websocket-driver/download/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz", + "integrity": "sha1-otTg1PTxFvHmKX66WLBdQwEA6fk=", "requires": { - "http-parser-js": "0.5.0", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { "version": "0.1.3", - "resolved": "http://r.cnpmjs.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz", "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=" }, "whatwg-fetch": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhatwg-fetch%2Fdownload%2Fwhatwg-fetch-3.0.0.tgz", "integrity": "sha1-/IBORYzEYACbGiuWa8iBfSV4rvs=" }, "when": { "version": "3.6.4", - "resolved": "http://registry.npm.taobao.org/when/download/when-3.6.4.tgz", + "resolved": "https://registry.npm.taobao.org/when/download/when-3.6.4.tgz", "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", "dev": true }, "which": { "version": "1.3.1", - "resolved": "http://r.cnpmjs.org/which/download/which-1.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz", "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/which-module/download/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "http://r.cnpmjs.org/wide-align/download/wide-align-1.1.3.tgz", - "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", - "dev": true, - "requires": { - "string-width": "1.0.2" - } + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "wordwrap": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "version": "0.0.3", + "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "worker-farm": { - "version": "1.6.0", - "resolved": "http://r.cnpmjs.org/worker-farm/download/worker-farm-1.6.0.tgz", - "integrity": "sha1-rsxAWXb6talVJhgIRvDboojzpKA=", + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", + "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", "dev": true, "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" + } + }, + "worker-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/worker-plugin/download/worker-plugin-3.1.0.tgz", + "integrity": "sha1-YxF3jzUUqHwnNRDuP4Ccw/4WHm8=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" } }, "wrap-ansi": { "version": "2.1.0", - "resolved": "http://r.cnpmjs.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } } }, "wrappy": { "version": "1.0.2", - "resolved": "http://r.cnpmjs.org/wrappy/download/wrappy-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "1.1.2", - "resolved": "http://r.cnpmjs.org/ws/download/ws-1.1.2.tgz", - "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", + "version": "3.3.3", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz?cache=0&sync_timestamp=1562602325578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-3.3.3.tgz", + "integrity": "sha1-8c+E/i1ekB686U767OeF8YeiKPI=", "dev": true, "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, - "wtf-8": { - "version": "1.0.0", - "resolved": "http://r.cnpmjs.org/wtf-8/download/wtf-8-1.0.0.tgz", - "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", - "dev": true - }, "xml2js": { "version": "0.4.19", - "resolved": "http://r.cnpmjs.org/xml2js/download/xml2js-0.4.19.tgz", + "resolved": "https://registry.npm.taobao.org/xml2js/download/xml2js-0.4.19.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxml2js%2Fdownload%2Fxml2js-0.4.19.tgz", "integrity": "sha1-aGwg8hMgnpSr8NG88e+qKRx4J6c=", "dev": true, "requires": { - "sax": "1.2.4", - "xmlbuilder": "9.0.7" + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" }, "dependencies": { "sax": { "version": "1.2.4", - "resolved": "http://r.cnpmjs.org/sax/download/sax-1.2.4.tgz", + "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", "dev": true } @@ -12242,122 +13082,89 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "http://r.cnpmjs.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz", + "resolved": "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true }, "xmlhttprequest-ssl": { - "version": "1.5.3", - "resolved": "http://r.cnpmjs.org/xmlhttprequest-ssl/download/xmlhttprequest-ssl-1.5.3.tgz", - "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", - "dev": true - }, - "xregexp": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/xregexp/download/xregexp-4.0.0.tgz", - "integrity": "sha1-5pgYneSd0qGMxWh7BeF8jkOUMCA=", + "version": "1.5.5", + "resolved": "https://registry.npm.taobao.org/xmlhttprequest-ssl/download/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", "dev": true }, "xtend": { - "version": "4.0.1", - "resolved": "http://r.cnpmjs.org/xtend/download/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=" }, "xterm": { "version": "3.11.0", - "resolved": "http://registry.npm.taobao.org/xterm/download/xterm-3.11.0.tgz", + "resolved": "https://registry.npm.taobao.org/xterm/download/xterm-3.11.0.tgz", "integrity": "sha1-LBDaPpZduRcEMKp7aPiWXeP/AE0=" }, "y18n": { "version": "4.0.0", - "resolved": "http://r.cnpmjs.org/y18n/download/y18n-4.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "http://r.cnpmjs.org/yallist/download/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.0.3.tgz", + "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=", "dev": true }, "yargs": { - "version": "7.1.0", - "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "version": "12.0.5", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-12.0.5.tgz", + "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", "dev": true, - "optional": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "optional": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true, - "optional": true - } + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "http://r.cnpmjs.org/yargs-parser/download/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "11.1.1", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-11.1.1.tgz", + "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", "dev": true, - "optional": true, "requires": { - "camelcase": "3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "http://r.cnpmjs.org/camelcase/download/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "optional": true - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yeast": { "version": "0.1.2", - "resolved": "http://r.cnpmjs.org/yeast/download/yeast-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/yeast/download/yeast-0.1.2.tgz", "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", "dev": true }, "yn": { "version": "2.0.0", - "resolved": "http://r.cnpmjs.org/yn/download/yn-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/yn/download/yn-2.0.0.tgz", "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", "dev": true }, "zone.js": { - "version": "0.8.29", - "resolved": "http://registry.npm.taobao.org/zone.js/download/zone.js-0.8.29.tgz", - "integrity": "sha1-jc6Sqg3VU7ULxb+7kK+Zhq2EWhI=" + "version": "0.9.1", + "resolved": "https://registry.npm.taobao.org/zone.js/download/zone.js-0.9.1.tgz", + "integrity": "sha1-43xuXFTBP65N4mtf/o2OkhLabZs=" }, "zrender": { - "version": "4.0.4", - "resolved": "http://r.cnpmjs.org/zrender/download/zrender-4.0.4.tgz", - "integrity": "sha1-kQ5g2IjwDJWZBz8jdY3SM0X+SP0=" + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.0.7.tgz", + "integrity": "sha1-Fa6WCCL17+1BCZXTflEH/j3hDm0=" } } } diff --git a/src/frontend/package.json b/src/frontend/package.json index d902bcbbc..d4143674d 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -1,33 +1,35 @@ { "name": "frontend", - "version": "1.6.1", + "version": "1.8.5", "license": "MIT", "scripts": { "ng": "ng", - "start": "ng serve --host 0.0.0.0 --disable-host-check --proxy-config proxy.config.js --configuration hmr", - "build": "node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --aot --prod --build-optimizer --base-href \"/public/\"", + "start": "ng serve --host 0.0.0.0 --disable-host-check --configuration hmr", + "build": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng build", + "build:aot": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng build --prod --aot", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { - "@angular/animations": "^7.2.2", - "@angular/common": "^7.2.2", - "@angular/compiler": "^7.2.2", - "@angular/core": "^7.2.2", - "@angular/forms": "^7.2.2", + "@angular/animations": "^8.1.0", + "@angular/common": "^8.1.0", + "@angular/compiler": "^8.1.0", + "@angular/core": "^8.1.0", + "@angular/forms": "^8.1.0", "@angular/http": "^7.2.2", - "@angular/platform-browser": "^7.2.2", - "@angular/platform-browser-dynamic": "^7.2.2", - "@angular/router": "^7.2.2", - "@clr/angular": "^1.0.4", - "@clr/icons": "^1.0.4", + "@angular/platform-browser": "^8.1.0", + "@angular/platform-browser-dynamic": "^8.1.0", + "@angular/router": "^8.1.0", + "@clr/angular": "^2.0.3", + "@clr/icons": "^2.0.3", + "@clr/ui": "^2.0.3", "@ngx-translate/core": "^11.0.1", "@ngx-translate/http-loader": "^4.0.0", "@webcomponents/custom-elements": "^1.2.1", "ace": "^1.3.0", - "bootstrap": "^4.0.0-alpha.5", + "bootstrap": "^4.3.1", "brace": "^0.11.1", "core-js": "^2.5.4", "cron-parser": "^2.6.0", @@ -36,27 +38,26 @@ "diff": "^3.5.0", "diff2html": "^2.5.0", "echarts": "^4.0.4", - "jquery": "^3.3.1", + "jquery": "^3.4.1", "js-base64": "^2.5.0", - "js-yaml": "^3.12.0", + "js-yaml": "^3.13.1", "moment": "^2.22.2", "mutationobserver-shim": "^0.3.2", - "ngx-markdown": "^6.3.0", + "ngx-markdown": "^8.1.0", "particlesjs": "^2.2.3", "raven-js": "^3.21.0", - "rxjs": "^6.3.3", + "rxjs": "^6.5.2", "rxjs-compat": "^6.2.1", "sockjs-client": "^1.1.4", "tslib": "^1.9.0", - "wayne-ui": "^0.1.0", - "xterm": "^3.11.0", - "zone.js": "^0.8.29" + "xterm": "3.11.0", + "zone.js": "^0.9.1" }, "devDependencies": { - "@angular-devkit/build-angular": "~0.12.0", - "@angular/cli": "~7.2.3", - "@angular/compiler-cli": "^7.2.2", - "@angular/language-service": "^7.2.2", + "@angular-devkit/build-angular": "^0.801.1", + "@angular/cli": "~8.1.0", + "@angular/compiler-cli": "^8.1.0", + "@angular/language-service": "^8.1.0", "@angularclass/hmr": "^2.1.3", "@types/ace": "^0.0.40", "@types/d3-scale": "^2.0.1", @@ -69,19 +70,19 @@ "@types/js-base64": "^2.3.1", "@types/js-yaml": "^3.11.2", "@types/node": "~8.9.4", - "codelyzer": "~4.2.1", + "codelyzer": "~5.1.0", "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", - "karma": "~1.7.1", + "karma": "^4.1.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~1.4.2", "karma-jasmine": "~1.1.1", "karma-jasmine-html-reporter": "^0.2.2", "path": "^0.12.7", - "protractor": "~5.3.0", + "protractor": "^6.0.0", "ts-node": "~5.0.1", "tslint": "^5.9.1", - "typescript": "~3.2.4", - "webpack": "^4.29.0" + "typescript": "~3.4.5", + "webpack": "^4.35.3" } } diff --git a/src/frontend/src/app/admin/admin-routing.module.ts b/src/frontend/src/app/admin/admin-routing.module.ts index 427c6cbc9..331db6e5c 100644 --- a/src/frontend/src/app/admin/admin-routing.module.ts +++ b/src/frontend/src/app/admin/admin-routing.module.ts @@ -88,7 +88,8 @@ import { KubeServiceaccountComponent } from './kubernetes/serviceaccount/kube-se import { KubeClusterroleComponent } from './kubernetes/clusterrole/kube-clusterrole.component'; import { KubeClusterrolebindingComponent } from './kubernetes/clusterrolebinding/kube-clusterrolebinding.component'; import { KubeCrdComponent } from './kubernetes/crd/kube-crd.component'; - +import { RoadmapComponent } from './roadmap/roadmap.component'; +import { CustomlinkComponent } from './customlink/customlink.component'; const routes: Routes = [ { @@ -148,6 +149,8 @@ const routes: Routes = [ {path: 'daemonset/tpl/trash', component: TrashDaemonsettplComponent}, {path: 'config/database', component: ConfigComponent}, {path: 'config/system', component: ConfigSystemComponent}, + {path: 'config/roadmap', component: RoadmapComponent}, + {path: 'config/customlink', component: CustomlinkComponent}, {path: 'kubernetes/dashboard', component: KubernetesDashboardComponent}, {path: 'kubernetes/dashboard/:cluster', component: KubernetesDashboardComponent}, {path: 'kubernetes/node', component: NodesComponent}, diff --git a/src/frontend/src/app/admin/admin.module.ts b/src/frontend/src/app/admin/admin.module.ts index b5db39f49..3d3a48f5a 100644 --- a/src/frontend/src/app/admin/admin.module.ts +++ b/src/frontend/src/app/admin/admin.module.ts @@ -68,6 +68,8 @@ import { KubeServiceaccountModule } from './kubernetes/serviceaccount/kube-servi import { KubeClusterroleModule } from './kubernetes/clusterrole/kube-clusterrole.module'; import { KubeClusterrolebindingModule } from './kubernetes/clusterrolebinding/kube-clusterrolebinding.module'; import { KubeCrdModule } from './kubernetes/crd/kube-crd.module'; +import { RoadMapModule } from './roadmap/roadmap.module'; +import { CustomlinkModule } from './customlink/customlink.module'; @NgModule({ imports: [ @@ -130,7 +132,9 @@ import { KubeCrdModule } from './kubernetes/crd/kube-crd.module'; KubeClusterroleModule, KubeClusterrolebindingModule, KubeNamespaceModule, - KubeCrdModule + KubeCrdModule, + RoadMapModule, + CustomlinkModule ], providers: [ AdminAuthCheckGuard, diff --git a/src/frontend/src/app/admin/apikey/apikey.component.ts b/src/frontend/src/app/admin/apikey/apikey.component.ts index 0fb06db1f..59cf888ba 100644 --- a/src/frontend/src/app/admin/apikey/apikey.component.ts +++ b/src/frontend/src/app/admin/apikey/apikey.component.ts @@ -19,9 +19,9 @@ import { ApiKeyService } from '../../shared/client/v1/apikey.service'; styleUrls: ['./apikey.component.scss'] }) export class ApiKeyComponent implements OnInit, OnDestroy { - @ViewChild(ListApiKeyComponent) + @ViewChild(ListApiKeyComponent, { static: false }) listApiKey: ListApiKeyComponent; - @ViewChild(CreateEditApiKeyComponent) + @ViewChild(CreateEditApiKeyComponent, { static: false }) createEditApiKey: CreateEditApiKeyComponent; changedApiKeys: ApiKey[]; pageState: PageState = new PageState(); diff --git a/src/frontend/src/app/admin/apikey/create-edit-apikey/create-edit-apikey.component.html b/src/frontend/src/app/admin/apikey/create-edit-apikey/create-edit-apikey.component.html index 6ca659baf..1363ad603 100644 --- a/src/frontend/src/app/admin/apikey/create-edit-apikey/create-edit-apikey.component.html +++ b/src/frontend/src/app/admin/apikey/create-edit-apikey/create-edit-apikey.component.html @@ -2,100 +2,52 @@