Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qa-deploy-utils
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
qa-deploy-utils
Commits
57699d47
Commit
57699d47
authored
Feb 26, 2018
by
wentao.suo
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://git.quantgroup.cn/QA/qa-deploy-utils
parents
3cacb892
7fd38181
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
403 additions
and
1643 deletions
+403
-1643
.gitignore
.gitignore
+2
-0
3_link_config_file_by_name.sh
qa_shell_script/3_link_config_file_by_name.sh
+1
-0
restartJava.sh
qa_shell_script/base_script/restartJava.sh
+2
-2
get_project_config.js
qa_shell_script/config_server/get_project_config.js
+1
-0
get_project_config_from_mongo.js
...ell_script/config_server/get_project_config_from_mongo.js
+156
-0
get_project_config_server.js
qa_shell_script/config_server/get_project_config_server.js
+236
-223
package-lock.json
qa_shell_script/config_server/package-lock.json
+0
-1351
package.json
qa_shell_script/config_server/package.json
+2
-0
(
qa_shell_script/ngrok/(
+0
-64
docker_env_name.sh
qa_shell_script/ngrok/docker_env_name.sh
+1
-1
make_frp_ini_V2.sh
qa_shell_script/ngrok/make_frp_ini_V2.sh
+2
-2
No files found.
.gitignore
View file @
57699d47
...
@@ -9,3 +9,5 @@
...
@@ -9,3 +9,5 @@
.DS_Store
.DS_Store
qa_shell_script/config_server/node_modules
qa_shell_script/config_server/node_modules
.log
.log
./qa_shell_script/config_server/package.json
./qa_shell_script/config_server/package-lock.json
qa_shell_script/3_link_config_file_by_name.sh
View file @
57699d47
...
@@ -18,6 +18,7 @@ then
...
@@ -18,6 +18,7 @@ then
sh
$config_server
/show_info.sh
$project
连接配置文件
$desc
$3
sh
$config_server
/show_info.sh
$project
连接配置文件
$desc
$3
project_type
=
`
node
$config_server
/get_project_config.js
-name
$project
-attr
type
`
project_type
=
`
node
$config_server
/get_project_config.js
-name
$project
-attr
type
`
file
=
`
node
$config_server
/get_project_config.js
-name
$project
-attr
config_file
`
file
=
`
node
$config_server
/get_project_config.js
-name
$project
-attr
config_file
`
file
=
${
file
:+
"application.properties"
}
echo
"rm -rf /home/quant_group/
${
project
}
/
$file
"
echo
"rm -rf /home/quant_group/
${
project
}
/
$file
"
rm
-rf
/home/quant_group/
$project
/
$file
rm
-rf
/home/quant_group/
$project
/
$file
...
...
qa_shell_script/base_script/restartJava.sh
View file @
57699d47
...
@@ -70,7 +70,7 @@ max_wait_ack_time=700
...
@@ -70,7 +70,7 @@ max_wait_ack_time=700
ack_phrase
=
"JVM
\
running
\
for"
ack_phrase
=
"JVM
\
running
\
for"
project
=
$1
project
=
$1
desc
=
`
node
$config_server
/get_project_config.js
-name
$project
-attr
desc
`
desc
=
`
node
$config_server
/get_project_config.js
-name
$project
-attr
desc
`
run_command_
=
`
node
$config_server
/get_project_config.js
-name
$project
-attr
command
_
`
run_command_
=
`
node
$config_server
/get_project_config.js
-name
$project
-attr
command
`
run_commands
=(
${
run_command_
//|/
}
)
run_commands
=(
${
run_command_
//|/
}
)
sh
$config_server
/show_info.sh
$project
重新启动
$desc
$ip
sh
$config_server
/show_info.sh
$project
重新启动
$desc
$ip
cd
$project_path
/
$project
cd
$project_path
/
$project
...
@@ -107,7 +107,7 @@ mv $project_path/logs/$log_name $project_path/logs/$log_name.$time
...
@@ -107,7 +107,7 @@ mv $project_path/logs/$log_name $project_path/logs/$log_name.$time
command1
=
${
run_commands
[0]//\^/
}
command1
=
${
run_commands
[0]//\^/
}
command2
=
${
run_commands
[1]//\^/
}
command2
=
${
run_commands
[1]//\^/
}
command
=
`
echo
"
nohup java
$command1
-jar
${
project
}
.jar
$command2
"
|
sed
"s#-Didc=default#-Didc=
$idc
#g"
`
command
=
`
echo
"
$command1
-jar
${
project
}
.jar
$command2
"
|
sed
"s#-Didc=default#-Didc=
$idc
#g"
`
echo
$command
echo
$command
$command
>
/dev/null 2>&1 &
$command
>
/dev/null 2>&1 &
echo
"日志名称:
$log_name
"
echo
"日志名称:
$log_name
"
...
...
qa_shell_script/config_server/get_project_config.js
View file @
57699d47
...
@@ -11,6 +11,7 @@ var param = {
...
@@ -11,6 +11,7 @@ var param = {
var
hosts
=
{
var
hosts
=
{
"
activity-op
"
:
"
actapi.xyqb.com
"
,
"
activity-op
"
:
"
actapi.xyqb.com
"
,
"
activity-op-ui
"
:
"
activity-op.xyqb.com
"
,
"
activity-op-ui
"
:
"
activity-op.xyqb.com
"
,
"
account-center
"
:
"
account.xyqb.com
"
,
//"activity-ui": "activity.xyqb.com",
//"activity-ui": "activity.xyqb.com",
"
new-activity-ui
"
:
"
activity.xyqb.com
"
,
"
new-activity-ui
"
:
"
activity.xyqb.com
"
,
"
xyqb
"
:
"
api.xyqb.com
"
,
"
xyqb
"
:
"
api.xyqb.com
"
,
...
...
qa_shell_script/config_server/get_project_config_from_mongo.js
0 → 100755
View file @
57699d47
var
cproc
=
require
(
'
child_process
'
);
var
execSync
=
cproc
.
execSync
;
var
project_name
,
project_attr
,
projects
=
{},
java_projects
=
[],
node_projects
=
[],
python_projects
=
[],
ui_projects
=
[];
var
param
=
{
type
:
""
,
name
:
""
,
attr
:
""
}
projects
=
String
(
execSync
(
`curl -s http://192.168.4.3:10088/config_server/get_project_config_from_db`
))
projects
=
JSON
.
parse
(
projects
)
// console.log(typeof(projects))
for
(
var
index
in
projects
)
{
switch
(
projects
[
index
][
'
type
'
])
{
case
"
java
"
:
java_projects
.
push
(
projects
[
index
]);
break
;
case
"
node
"
:
node_projects
.
push
(
projects
[
index
]);
break
;
case
"
ui
"
:
ui_projects
.
push
(
projects
[
index
]);
break
;
case
"
python
"
:
python_projects
.
push
(
projects
[
index
]);
break
;
}
}
// // --java
// new pClass().init(1,true,"java", "7042", "xyqb-user2", "head_group", "xyqb-user2.log", "application.properties", "--worker 1 --currentWorker 1 -t -ts", "-Denv=dev -Didc=default -Dtech.localhost= -Dtest=true", "用户注册登录-V2-server", "", "mvn clean package -Ptest -Dmaven.test.skip=true", "");
var
temp
=
""
;
process
.
argv
.
forEach
(
function
(
val
,
index
,
array
)
{
if
(
index
>=
2
)
{
if
(
index
%
2
==
0
)
{
temp
=
val
.
replace
(
/
\-
/
,
""
);
param
[
temp
]
=
""
;
}
else
{
param
[
temp
]
=
val
;
}
}
});
function
getListAttr
(
projects
,
attr
)
{
var
list
=
[];
for
(
var
i
=
0
;
i
<
projects
.
length
;
i
++
)
{
// if (projects[i].is_active) {
list
.
push
(
projects
[
i
][
attr
])
// }
}
return
list
.
join
(
"
"
);
}
var
configFunction
=
function
()
{};
configFunction
.
prototype
=
{
getProjectAttr
:
function
(
pName
,
pAttr
)
{
for
(
var
index
in
projects
)
{
if
(
projects
[
index
][
'
name
'
]
==
pName
)
{
var
attrs
=
pAttr
.
split
(
"
/
"
);
if
(
attrs
.
length
==
0
)
{
console
.
log
(
""
)
return
}
var
list
=
[];
for
(
var
j
=
0
;
j
<
attrs
.
length
;
j
++
)
{
if
(
projects
[
index
][
attrs
[
j
]])
{
list
.
push
(
projects
[
index
][
attrs
[
j
]].
split
(
"
"
).
join
(
"
^
"
));
}
else
{
list
.
push
(
"
"
);
}
}
console
.
log
(
list
.
join
(
"
|
"
))
}
else
{
}
}
},
getProjectsAttrs
:
function
(
projects
,
attr
,
attr2
)
{
var
attrs
=
attr
.
split
(
"
/
"
);
if
(
attrs
.
length
==
0
)
{
return
}
var
list
=
[];
//attr2 专有参数,用来表示是否要取带有对外域名的服务
if
(
attr2
==
"
true
"
)
{
for
(
var
i
=
0
;
i
<
projects
.
length
;
i
++
)
{
if
(
projects
[
i
].
url
!=
""
)
{
var
li
=
[
projects
[
i
][
"
name
"
]];
for
(
var
j
=
0
;
j
<
attrs
.
length
;
j
++
)
{
li
.
push
(
projects
[
i
][
attrs
[
j
]]);
}
// li.push(projects[i].url);
list
.
push
(
li
.
join
(
"
|
"
));
}
}
}
else
{
for
(
var
i
=
0
;
i
<
projects
.
length
;
i
++
)
{
// if (projects[i].is_active){
var
li
=
[
projects
[
i
][
"
name
"
]];
for
(
var
j
=
0
;
j
<
attrs
.
length
;
j
++
)
{
li
.
push
(
projects
[
i
][
attrs
[
j
]]);
}
list
.
push
(
li
.
join
(
"
|
"
));
// }
}
}
return
list
.
join
(
"
"
);
},
getProjectsAttr
:
function
(
type
,
attr
)
{
switch
(
type
)
{
case
"
java
"
:
console
.
log
(
getListAttr
(
java_projects
,
attr
));
break
;
case
"
ui
"
:
console
.
log
(
getListAttr
(
ui_projects
,
attr
));
break
;
case
"
python
"
:
console
.
log
(
getListAttr
(
python_projects
,
attr
));
break
;
case
"
node
"
:
console
.
log
(
getListAttr
(
node_projects
,
attr
));
break
;
}
}
}
//tower add
module
.
exports
=
{
java
:
java_projects
,
node
:
node_projects
,
python
:
python_projects
,
ui
:
ui_projects
}
var
F
=
new
configFunction
();
if
(
param
[
"
type
"
]
==
""
)
{
F
.
getProjectAttr
(
param
[
"
name
"
],
param
[
"
attr
"
]);
}
else
if
(
param
[
"
type
"
]
==
"
multi
"
)
{
var
str
=
""
;
str
+=
F
.
getProjectsAttrs
(
java_projects
,
param
[
"
attr
"
],
param
[
"
attr2
"
]);
str
+=
"
"
+
F
.
getProjectsAttrs
(
ui_projects
,
param
[
"
attr
"
],
param
[
"
attr2
"
]);
str
+=
"
"
+
F
.
getProjectsAttrs
(
python_projects
,
param
[
"
attr
"
],
param
[
"
attr2
"
]);
str
+=
"
"
+
F
.
getProjectsAttrs
(
node_projects
,
param
[
"
attr
"
],
param
[
"
attr2
"
]);
console
.
log
(
str
)
}
else
if
(
param
[
"
type
"
]
==
"
hosts
"
)
{
console
.
log
(
JSON
.
stringify
(
hosts
));
}
else
{
F
.
getProjectsAttr
(
param
[
"
type
"
],
param
[
"
attr
"
]);
}
\ No newline at end of file
qa_shell_script/config_server/get_project_config_server.js
View file @
57699d47
...
@@ -2,6 +2,7 @@ var express = require('express');
...
@@ -2,6 +2,7 @@ var express = require('express');
var
cproc
=
require
(
'
child_process
'
);
var
cproc
=
require
(
'
child_process
'
);
var
bodyParser
=
require
(
'
body-parser
'
);
var
bodyParser
=
require
(
'
body-parser
'
);
var
db_config
=
require
(
'
./config/db
'
);
var
db_config
=
require
(
'
./config/db
'
);
const
mongodb
=
require
(
'
mongodb
'
);
// return
// return
var
execSync
=
cproc
.
execSync
;
var
execSync
=
cproc
.
execSync
;
var
options
=
{
var
options
=
{
...
@@ -18,36 +19,36 @@ app.use(bodyParser.urlencoded({ extended: false }))
...
@@ -18,36 +19,36 @@ app.use(bodyParser.urlencoded({ extended: false }))
app
.
use
(
bodyParser
.
json
())
app
.
use
(
bodyParser
.
json
())
var
attrs
=
{
var
attrs
=
{
configPath
:
"
config_file
"
,
configPath
:
"
config_file
"
,
buildCmd
:
"
command
"
,
buildCmd
:
"
command
"
,
gitPath
:
"
git_path
"
,
gitPath
:
"
git_path
"
,
gitGroup
:
"
gitPathHead
"
,
gitGroup
:
"
gitPathHead
"
,
host
:
"
www
"
,
host
:
"
www
"
,
projectType
:
"
type
"
,
projectType
:
"
type
"
,
projectAuth
:
"
auth
"
,
projectAuth
:
"
auth
"
,
projectDesc
:
"
desc
"
,
projectDesc
:
"
desc
"
,
logName
:
"
log_name
"
,
logName
:
"
log_name
"
,
jarFilePath
:
"
target_path
"
,
jarFilePath
:
"
target_path
"
,
auth
:
"
auth
"
,
auth
:
"
auth
"
,
port
:
"
port
"
,
port
:
"
port
"
,
start_command
:
""
,
start_command
:
""
,
stop_command
:
""
,
stop_command
:
""
,
command2
:
"
command2
"
,
command2
:
"
command2
"
,
node_version
:
"
node_version
"
node_version
:
"
node_version
"
}
}
var
attrComs
=
Object
.
keys
(
attrs
)
var
attrComs
=
Object
.
keys
(
attrs
)
var
attrComsArr
=
[];
var
attrComsArr
=
[];
for
(
let
i
of
attrComs
)
{
for
(
let
i
of
attrComs
)
{
attrComsArr
.
push
(
attrs
[
i
]);
attrComsArr
.
push
(
attrs
[
i
]);
}
}
// ------------UTILS------------
// ------------UTILS------------
function
parseStr2Json
(
str
){
function
parseStr2Json
(
str
)
{
var
a
=
{};
var
a
=
{};
var
strs
=
str
.
split
(
"
"
);
var
strs
=
str
.
split
(
"
"
);
for
(
let
i
of
strs
)
{
for
(
let
i
of
strs
)
{
if
(
i
)
{
if
(
i
)
{
let
os
=
i
.
split
(
"
|
"
);
let
os
=
i
.
split
(
"
|
"
);
a
[
os
[
0
]]
=
{
a
[
os
[
0
]]
=
{
name
:
os
[
0
],
name
:
os
[
0
],
ip
:
os
[
1
],
ip
:
os
[
1
],
http
:
os
[
2
],
http
:
os
[
2
],
...
@@ -58,10 +59,10 @@ function parseStr2Json(str){
...
@@ -58,10 +59,10 @@ function parseStr2Json(str){
return
a
return
a
}
}
function
parseJson2Str
(
json
){
function
parseJson2Str
(
json
)
{
var
a
=
[];
var
a
=
[];
let
keys
=
Object
.
keys
(
json
);
let
keys
=
Object
.
keys
(
json
);
for
(
let
k
of
keys
)
{
for
(
let
k
of
keys
)
{
a
.
push
([
a
.
push
([
json
[
k
].
name
,
json
[
k
].
name
,
json
[
k
].
ip
,
json
[
k
].
ip
,
...
@@ -76,64 +77,65 @@ function parseJson2Str(json){
...
@@ -76,64 +77,65 @@ function parseJson2Str(json){
let
db_conf
=
db_config
.
db_config
();
let
db_conf
=
db_config
.
db_config
();
let
db_conf_keys
=
Object
.
keys
(
db_conf
);
let
db_conf_keys
=
Object
.
keys
(
db_conf
);
//
//
admin
.
get
(
'
/get_db_config/:name/:attr
'
,
function
(
req
,
res
)
{
admin
.
get
(
'
/get_db_config/:name/:attr
'
,
function
(
req
,
res
)
{
let
str
=
""
let
str
=
""
if
(
req
.
params
.
name
==
"
all
"
)
{
if
(
req
.
params
.
name
==
"
all
"
)
{
if
(
req
.
params
.
attr
==
"
name
"
)
{
if
(
req
.
params
.
attr
==
"
name
"
)
{
res
.
send
(
db_conf_keys
.
join
(
"
"
));
res
.
send
(
db_conf_keys
.
join
(
"
"
));
}
}
}
else
{
}
else
{
if
(
req
.
params
.
attr
!=
"
all
"
)
{
if
(
req
.
params
.
attr
!=
"
all
"
)
{
res
.
send
(
db_conf
[
req
.
params
.
name
][
req
.
params
.
attr
])
res
.
send
(
db_conf
[
req
.
params
.
name
][
req
.
params
.
attr
])
}
else
{
}
else
{
let
item
=
db_conf
[
req
.
params
.
name
]
let
item
=
db_conf
[
req
.
params
.
name
]
res
.
send
(
`
${
item
.
host
}
;
${
item
.
port
}
;
${
item
.
user
}
;
${
item
.
pwd
}
;
${
item
.
sys_table_list
}
;`
)
res
.
send
(
`
${
item
.
host
}
;
${
item
.
port
}
;
${
item
.
user
}
;
${
item
.
pwd
}
;
${
item
.
sys_table_list
}
;`
)
}
}
}
}
});
});
admin
.
get
(
'
/get_db_dump_command/:name/:opt
'
,
function
(
req
,
res
)
{
admin
.
get
(
'
/get_db_dump_command/:name/:opt
'
,
function
(
req
,
res
)
{
if
(
req
.
params
.
opt
!=
"
opt
"
)
{
if
(
req
.
params
.
opt
!=
"
opt
"
)
{
res
.
send
(
db_config
.
get_mysql_dump_table
(
req
.
params
.
name
));
res
.
send
(
db_config
.
get_mysql_dump_table
(
req
.
params
.
name
));
}
else
{
}
else
{
res
.
send
(
db_config
.
get_mysql_dump_opt
(
req
.
params
.
name
));
res
.
send
(
db_config
.
get_mysql_dump_opt
(
req
.
params
.
name
));
}
}
});
});
admin
.
get
(
'
/get_db_config/refersh
'
,
function
()
{
admin
.
get
(
'
/get_db_config/refersh
'
,
function
()
{
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
db_conf
=
db_config
.
db_config
();
db_conf
=
db_config
.
db_config
();
db_conf_keys
=
Object
.
keys
(
db_conf
);
db_conf_keys
=
Object
.
keys
(
db_conf
);
res
.
send
({
code
:
"
OK
"
})
res
.
send
({
code
:
"
OK
"
})
})
})
// 获取节点命令
// 获取节点命令
admin
.
get
(
'
/get_node_command/:name
'
,
function
(
req
,
res
)
{
admin
.
get
(
'
/get_node_command/:name
'
,
function
(
req
,
res
)
{
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
var
str
=
execSync
(
`node ./get_project_config.js -name
${
req
.
params
.
name
}
-attr config_file/command/gitPathHead`
)
var
str
=
execSync
(
`node ./get_project_config.js -name
${
req
.
params
.
name
}
-attr config_file/command/gitPathHead`
)
var
items
=
String
(
str
).
replace
(
/
\n
/g
,
""
).
split
(
"
|
"
);
var
items
=
String
(
str
).
replace
(
/
\n
/g
,
""
).
split
(
"
|
"
);
var
config_file
=
items
[
0
].
replace
(
/
\^
/g
,
"
"
);
var
config_file
=
items
[
0
].
replace
(
/
\^
/g
,
"
"
);
var
command
=
items
[
1
].
replace
(
/
\^
/g
,
"
"
);
var
command
=
items
[
1
].
replace
(
/
\^
/g
,
"
"
);
var
gitGroup
=
items
[
2
].
replace
(
/
\^
/g
,
"
"
);
var
gitGroup
=
items
[
2
].
replace
(
/
\^
/g
,
"
"
);
res
.
send
({
configPath
:
config_file
,
buildCmd
:
command
,
gitGroup
:
gitGroup
});
res
.
send
({
configPath
:
config_file
,
buildCmd
:
command
,
gitGroup
:
gitGroup
});
});
});
// 获取项目配置
// 获取项目配置
admin
.
get
(
'
/get_project_attr/:name
'
,
function
(
req
,
res
)
{
admin
.
get
(
'
/get_project_attr/:name
'
,
function
(
req
,
res
)
{
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
var
comstr
=
attrComsArr
.
join
(
"
/
"
);
var
comstr
=
attrComsArr
.
join
(
"
/
"
);
var
names
=
req
.
params
.
name
.
split
(
"
--
"
);
var
names
=
req
.
params
.
name
.
split
(
"
--
"
);
var
p_name
=
""
;
var
p_name
=
""
;
if
(
names
.
length
>
1
)
{
if
(
names
.
length
>
1
)
{
p_name
=
names
[
0
]
p_name
=
names
[
0
]
}
else
{
}
else
{
p_name
=
req
.
params
.
name
p_name
=
req
.
params
.
name
}
}
var
str
=
execSync
(
`node ./get_project_config.js -name
${
p_name
}
-attr
${
comstr
}
`
)
var
str
=
execSync
(
`node ./get_project_config.js -name
${
p_name
}
-attr
${
comstr
}
`
)
var
items
=
String
(
str
).
replace
(
/
\n
/g
,
""
).
split
(
"
|
"
);
var
items
=
String
(
str
).
replace
(
/
\n
/g
,
""
).
split
(
"
|
"
);
let
rs
=
{},
index
=
0
;
let
rs
=
{},
for
(
let
i
of
items
){
index
=
0
;
rs
[
attrComs
[
index
]]
=
i
.
replace
(
/
\^
/g
,
"
"
);
for
(
let
i
of
items
)
{
rs
[
attrComs
[
index
]]
=
i
.
replace
(
/
\^
/g
,
"
"
);
index
++
index
++
}
}
res
.
send
(
rs
);
res
.
send
(
rs
);
...
@@ -141,52 +143,53 @@ admin.get('/get_project_attr/:name', function (req, res) {
...
@@ -141,52 +143,53 @@ admin.get('/get_project_attr/:name', function (req, res) {
// 获取所有域名
// 获取所有域名
admin
.
get
(
'
/get_hosts
'
,
function
(
req
,
res
)
{
admin
.
get
(
'
/get_hosts
'
,
function
(
req
,
res
)
{
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
var
str
=
execSync
(
`node ./get_project_config.js -type hosts`
)
var
str
=
execSync
(
`node ./get_project_config.js -type hosts`
)
var
items
=
String
(
str
);
var
items
=
String
(
str
);
res
.
send
(
items
);
res
.
send
(
items
);
});
});
// 根据类型获取系统名称
// 根据类型获取系统名称
admin
.
get
(
'
/get_systems_by_type
'
,
function
(
req
,
res
)
{
admin
.
get
(
'
/get_systems_by_type
'
,
function
(
req
,
res
)
{
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
var
ui_str
=
execSync
(
`node ./get_project_config.js -type ui -attr name`
)
var
ui_str
=
execSync
(
`node ./get_project_config.js -type ui -attr name`
)
ui_str
=
String
(
ui_str
)
ui_str
=
String
(
ui_str
)
.
replace
(
/xyqb-ui/g
,
""
).
replace
(
/xjd-ui/
,
"
xyqb-ui--xjd-ui
"
)
.
replace
(
/xyqb-ui/g
,
""
).
replace
(
/xjd-ui/
,
"
xyqb-ui--xjd-ui
"
)
.
replace
(
/new-paycenter-ui/g
,
""
).
replace
(
/paycenter-ui/
,
"
paycenter-ui--new-paycenter-ui
"
)
.
replace
(
/new-paycenter-ui/g
,
""
).
replace
(
/paycenter-ui/
,
"
paycenter-ui--new-paycenter-ui
"
)
.
replace
(
/
\s
+/g
,
"
,
"
).
replace
(
/
\n
/g
,
""
).
slice
(
0
,
-
1
);
.
replace
(
/
\s
+/g
,
"
,
"
).
replace
(
/
\n
/g
,
""
).
slice
(
0
,
-
1
);
var
java_str
=
execSync
(
`node ./get_project_config.js -type java -attr name`
)
var
java_str
=
execSync
(
`node ./get_project_config.js -type java -attr name`
)
var
node_str
=
execSync
(
`node ./get_project_config.js -type node -attr name`
)
var
node_str
=
execSync
(
`node ./get_project_config.js -type node -attr name`
)
var
python_str
=
execSync
(
`node ./get_project_config.js -type python -attr name`
)
var
python_str
=
execSync
(
`node ./get_project_config.js -type python -attr name`
)
var
server_str
=
`
${
String
(
java_str
)}
${
String
(
node_str
)}
${
String
(
python_str
)}
`
var
server_str
=
`
${
String
(
java_str
)}
${
String
(
node_str
)}
${
String
(
python_str
)}
`
server_str
=
server_str
.
replace
(
/
\s
+/g
,
"
,
"
).
replace
(
/
\n
/g
,
""
).
slice
(
0
,
-
1
);;
server_str
=
server_str
.
replace
(
/
\s
+/g
,
"
,
"
).
replace
(
/
\n
/g
,
""
).
slice
(
0
,
-
1
);;
res
.
send
({
res
.
send
({
frontend
:
ui_str
,
common
:
"
db,redis,rabbitmq,zookeeper
"
,
backend
:
server_str
frontend
:
ui_str
,
backend
:
server_str
});
});
});
});
// 给jenkins使用根据类型获取系统名称
// 给jenkins使用根据类型获取系统名称
admin
.
get
(
'
/get_systems_by_type_for_jenkins/:_type
'
,
function
(
req
,
res
)
{
admin
.
get
(
'
/get_systems_by_type_for_jenkins/:_type
'
,
function
(
req
,
res
)
{
let
str
=
""
let
str
=
""
if
(
req
.
params
.
_type
===
"
frontend
"
)
{
if
(
req
.
params
.
_type
===
"
frontend
"
)
{
var
ui_str
=
execSync
(
`node ./get_project_config.js -type ui -attr name`
)
var
ui_str
=
execSync
(
`node ./get_project_config.js -type ui -attr name`
)
str
=
String
(
ui_str
)
str
=
String
(
ui_str
)
.
replace
(
/xyqb-ui/g
,
""
).
replace
(
/xjd-ui/
,
"
xyqb-ui--xjd-ui
"
)
.
replace
(
/xyqb-ui/g
,
""
).
replace
(
/xjd-ui/
,
"
xyqb-ui--xjd-ui
"
)
.
replace
(
/new-paycenter-ui/g
,
""
).
replace
(
/paycenter-ui/
,
"
paycenter-ui--new-paycenter-ui
"
);
.
replace
(
/new-paycenter-ui/g
,
""
).
replace
(
/paycenter-ui/
,
"
paycenter-ui--new-paycenter-ui
"
);
}
else
{
}
else
{
var
java_str
=
execSync
(
`node ./get_project_config.js -type java -attr name`
)
var
java_str
=
execSync
(
`node ./get_project_config.js -type java -attr name`
)
var
node_str
=
execSync
(
`node ./get_project_config.js -type node -attr name`
)
var
node_str
=
execSync
(
`node ./get_project_config.js -type node -attr name`
)
var
python_str
=
execSync
(
`node ./get_project_config.js -type python -attr name`
)
var
python_str
=
execSync
(
`node ./get_project_config.js -type python -attr name`
)
str
=
`
${
String
(
java_str
)}
${
String
(
node_str
)}
${
String
(
python_str
)}
`
str
=
`
${
String
(
java_str
)}
${
String
(
node_str
)}
${
String
(
python_str
)}
`
}
}
str
=
str
.
replace
(
/
\n
/g
,
""
).
replace
(
/
\s
+/g
,
"
\n
"
);
str
=
str
.
replace
(
/
\n
/g
,
""
).
replace
(
/
\s
+/g
,
"
\n
"
);
res
.
send
(
str
);
res
.
send
(
str
);
});
});
// 给jenkins使用根据类型获取系统名称
// 给jenkins使用根据类型获取系统名称
admin
.
get
(
'
/get_systems_by_type_for_temp
'
,
function
(
req
,
res
)
{
admin
.
get
(
'
/get_systems_by_type_for_temp
'
,
function
(
req
,
res
)
{
var
ui_str
=
execSync
(
`node ./get_project_config.js -type ui -attr name`
)
var
ui_str
=
execSync
(
`node ./get_project_config.js -type ui -attr name`
)
ui_str
=
String
(
ui_str
).
split
(
/
\s
+/
)
ui_str
=
String
(
ui_str
).
split
(
/
\s
+/
)
var
java_str
=
execSync
(
`node ./get_project_config.js -type java -attr name`
)
var
java_str
=
execSync
(
`node ./get_project_config.js -type java -attr name`
)
...
@@ -196,19 +199,21 @@ admin.get('/get_systems_by_type_for_temp', function (req, res) {
...
@@ -196,19 +199,21 @@ admin.get('/get_systems_by_type_for_temp', function (req, res) {
var
python_str
=
execSync
(
`node ./get_project_config.js -type python -attr name`
)
var
python_str
=
execSync
(
`node ./get_project_config.js -type python -attr name`
)
python_str
=
String
(
python_str
).
split
(
/
\s
+/
)
python_str
=
String
(
python_str
).
split
(
/
\s
+/
)
res
.
send
({
res
.
send
({
ui
:
ui_str
,
ui
:
ui_str
,
java
:
java_str
,
java
:
java_str
,
node
:
node_str
,
node
:
node_str
,
python
:
python_str
python
:
python_str
});
});
});
});
// 增加一个新的nginx映射
// 增加一个新的nginx映射
admin
.
post
(
'
/add_new_proxy
'
,
function
(
req
,
res
)
{
admin
.
post
(
'
/add_new_proxy
'
,
function
(
req
,
res
)
{
let
request
=
req
.
body
;
let
request
=
req
.
body
;
let
new_namespace
=
request
[
"
namespace
"
],
new_ip
=
request
[
"
ip
"
],
new_ports
=
request
[
"
ports
"
];
let
new_namespace
=
request
[
"
namespace
"
],
var
str
=
String
(
execSync
(
`cat ../ngrok/docker_env_name.sh`
)).
replace
(
/
\n
/
,
""
);
new_ip
=
request
[
"
ip
"
],
new_ports
=
request
[
"
ports
"
];
var
str
=
String
(
execSync
(
`cat ../ngrok/docker_env_name.sh`
)).
replace
(
/
\n
/
,
""
);
let
data
=
parseStr2Json
(
str
);
let
data
=
parseStr2Json
(
str
);
data
[
new_namespace
]
=
{
data
[
new_namespace
]
=
{
name
:
new_namespace
,
name
:
new_namespace
,
...
@@ -218,77 +223,85 @@ admin.post('/add_new_proxy', function (req, res) {
...
@@ -218,77 +223,85 @@ admin.post('/add_new_proxy', function (req, res) {
}
}
let
s
=
parseJson2Str
(
data
)
let
s
=
parseJson2Str
(
data
)
s
=
s
.
replace
(
"
\n
"
,
""
)
s
=
s
.
replace
(
"
\n
"
,
""
)
execSync
(
`echo "
${
s
}
" > ../ngrok/docker_env_name.sh`
)
execSync
(
`echo "
${
s
}
" > ../ngrok/docker_env_name.sh`
)
cproc
.
exec
(
"
../ngrok/make_frp_ini_V2.sh
"
);
cproc
.
exec
(
"
../ngrok/make_frp_ini_V2.sh
"
);
res
.
send
({
msg
:
"
执行完成
"
});
res
.
send
({
msg
:
"
执行完成
"
});
});
});
// 删除一个namespace映射
// 删除一个namespace映射
admin
.
post
(
'
/remove_proxy
'
,
function
(
req
,
res
)
{
admin
.
post
(
'
/remove_proxy
'
,
function
(
req
,
res
)
{
let
request
=
req
.
body
;
let
request
=
req
.
body
;
console
.
log
(
request
);
console
.
log
(
request
);
let
new_namespace
=
request
[
"
namespace
"
];
let
new_namespace
=
request
[
"
namespace
"
];
var
str
=
String
(
execSync
(
`cat ../ngrok/docker_env_name.sh`
)).
replace
(
/
\n
/
,
""
);
var
str
=
String
(
execSync
(
`cat ../ngrok/docker_env_name.sh`
)).
replace
(
/
\n
/
,
""
);
let
data
=
parseStr2Json
(
str
);
let
data
=
parseStr2Json
(
str
);
delete
data
[
new_namespace
]
delete
data
[
new_namespace
]
let
s
=
parseJson2Str
(
data
)
let
s
=
parseJson2Str
(
data
)
s
=
s
.
replace
(
"
\n
"
,
""
)
s
=
s
.
replace
(
"
\n
"
,
""
)
execSync
(
`echo "
${
s
}
" > ../ngrok/docker_env_name.sh`
)
execSync
(
`echo "
${
s
}
" > ../ngrok/docker_env_name.sh`
)
cproc
.
exec
(
"
../ngrok/make_frp_ini_V2.sh
"
);
cproc
.
exec
(
"
../ngrok/make_frp_ini_V2.sh
"
);
var
last_str
=
String
(
execSync
(
`cat ../ngrok/docker_env_name.sh`
))
var
last_str
=
String
(
execSync
(
`cat ../ngrok/docker_env_name.sh`
))
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
res
.
send
({
res
.
send
({
"
details
"
:
{
"
details
"
:
{
name_spaces
:
last_str
name_spaces
:
last_str
},
},
"
success
"
:
true
"
success
"
:
true
});
});
});
});
// 获取现有映射关系
// 获取现有映射关系
admin
.
get
(
'
/get_proxy
'
,
function
(
req
,
res
)
{
admin
.
get
(
'
/get_proxy
'
,
function
(
req
,
res
)
{
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
var
str
=
execSync
(
`cat ../ngrok/docker_env_name.sh`
)
var
str
=
execSync
(
`cat ../ngrok/docker_env_name.sh`
)
res
.
send
({
namespace
:
String
(
str
)
});
res
.
send
({
namespace
:
String
(
str
)
});
});
});
// 从mongo中获取配置
admin
.
get
(
'
/get_project_config_from_db
'
,
function
(
req
,
res
)
{
res
.
setHeader
(
"
Content-Type
"
,
"
application/json
"
);
async
function
test
()
{
let
db
=
await
mongodb
.
MongoClient
.
connect
(
'
mongodb://172.30.220.22:27017/qaHome
'
,
async
function
(
err
,
db
)
{
let
proconfigs
=
db
.
collection
(
'
proconfigs
'
);
let
projects
=
await
proconfigs
.
find
().
toArray
();
let
re
=
[];
for
(
var
index
=
0
;
index
<
projects
.
length
;
index
++
)
{
let
temp
=
{
name
:
projects
[
index
][
"
project_name
"
],
type
:
projects
[
index
][
"
type
"
],
url
:
projects
[
index
][
"
host_name
"
].
replace
(
"
.xyqb.com
"
,
""
).
replace
(
"
.quantgroup.cn
"
,
""
),
www
:
projects
[
index
][
"
host_name
"
],
git_path
:
projects
[
index
][
"
git_path
"
],
config_path
:
projects
[
index
][
"
config_path
"
],
log_name
:
projects
[
index
][
"
log_path
"
],
command
:
projects
[
index
][
"
start_command
"
],
command2
:
projects
[
index
][
"
build_command
"
],
stop_command
:
projects
[
index
][
"
stop_command
"
],
// command3: projects[index]["command3"],
// command4: projects[index]["command4"],
// command5: projects[index]["command5"],
port
:
projects
[
index
][
"
port
"
],
desc
:
projects
[
index
][
"
full_name
"
],
is_active
:
projects
[
index
][
"
is_active
"
],
auth
:
projects
[
index
][
"
auth
"
],
target_path
:
projects
[
index
][
"
jar_path
"
]
}
// let project_name = projects[i]['project_name'];
// temp[projects[i]['project_name']] = projects[i];
// console.log(temp)
re
.
push
(
temp
);
}
db
.
close
();
res
.
send
(
re
)
});
}
test
();
});
app
.
use
(
'
/config_server
'
,
admin
)
app
.
use
(
'
/config_server
'
,
admin
)
console
.
log
(
"
http://192.168.4.3:10088/config_server/get_node_command
"
)
console
.
log
(
"
http://192.168.4.3:10088/config_server/get_node_command
"
)
app
.
listen
(
10088
)
app
.
listen
(
10088
)
\ No newline at end of file
qa_shell_script/config_server/package-lock.json
deleted
100644 → 0
View file @
3cacb892
{
"name"
:
"config_server"
,
"version"
:
"1.0.0"
,
"lockfileVersion"
:
1
,
"requires"
:
true
,
"dependencies"
:
{
"accepts"
:
{
"version"
:
"1.3.4"
,
"resolved"
:
"https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz"
,
"integrity"
:
"sha1-hiRnWMfdbSGmR0/whKR0DsBesh8="
,
"requires"
:
{
"mime-types"
:
"2.1.17"
,
"negotiator"
:
"0.6.1"
}
},
"amp"
:
{
"version"
:
"0.3.1"
,
"resolved"
:
"http://registry.npm.taobao.org/amp/download/amp-0.3.1.tgz"
,
"integrity"
:
"sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0="
},
"amp-message"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"http://registry.npm.taobao.org/amp-message/download/amp-message-0.1.2.tgz"
,
"integrity"
:
"sha1-p48cmJlQh602GSpBKY5NtJ49/EU="
,
"requires"
:
{
"amp"
:
"0.3.1"
}
},
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz"
,
"integrity"
:
"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"ansi-styles"
:
{
"version"
:
"2.2.1"
,
"resolved"
:
"http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz"
,
"integrity"
:
"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
},
"anymatch"
:
{
"version"
:
"1.3.2"
,
"resolved"
:
"http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.2.tgz"
,
"integrity"
:
"sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo="
,
"requires"
:
{
"micromatch"
:
"2.3.11"
,
"normalize-path"
:
"2.1.1"
}
},
"argparse"
:
{
"version"
:
"1.0.9"
,
"resolved"
:
"http://registry.npm.taobao.org/argparse/download/argparse-1.0.9.tgz"
,
"integrity"
:
"sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY="
,
"requires"
:
{
"sprintf-js"
:
"1.0.3"
},
"dependencies"
:
{
"sprintf-js"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz"
,
"integrity"
:
"sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
}
}
},
"arr-diff"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz"
,
"integrity"
:
"sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8="
,
"requires"
:
{
"arr-flatten"
:
"1.1.0"
}
},
"arr-flatten"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz"
,
"integrity"
:
"sha1-NgSLv/TntH4TZkQxbJlmnqWukfE="
},
"array-flatten"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
,
"integrity"
:
"sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"array-unique"
:
{
"version"
:
"0.2.1"
,
"resolved"
:
"http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz"
,
"integrity"
:
"sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
},
"async"
:
{
"version"
:
"2.6.0"
,
"resolved"
:
"http://registry.npm.taobao.org/async/download/async-2.6.0.tgz"
,
"integrity"
:
"sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ="
,
"requires"
:
{
"lodash"
:
"4.17.4"
}
},
"async-each"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz"
,
"integrity"
:
"sha1-GdOGodntxufByF04iu28xW0zYC0="
},
"async-listener"
:
{
"version"
:
"0.6.8"
,
"resolved"
:
"http://registry.npm.taobao.org/async-listener/download/async-listener-0.6.8.tgz"
,
"integrity"
:
"sha1-01Vu+QXVrXe1LlKzfWix2KAkgfU="
,
"requires"
:
{
"semver"
:
"5.4.1"
,
"shimmer"
:
"1.1.0"
}
},
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz"
,
"integrity"
:
"sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"binary-extensions"
:
{
"version"
:
"1.10.0"
,
"resolved"
:
"http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.10.0.tgz"
,
"integrity"
:
"sha1-muuabF6IY4qtFx4Wf1kAq+JINdA="
},
"blessed"
:
{
"version"
:
"0.1.81"
,
"resolved"
:
"http://registry.npm.taobao.org/blessed/download/blessed-0.1.81.tgz"
,
"integrity"
:
"sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk="
},
"body-parser"
:
{
"version"
:
"1.18.2"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz"
,
"integrity"
:
"sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ="
,
"requires"
:
{
"bytes"
:
"3.0.0"
,
"content-type"
:
"1.0.4"
,
"debug"
:
"2.6.9"
,
"depd"
:
"1.1.1"
,
"http-errors"
:
"1.6.2"
,
"iconv-lite"
:
"0.4.19"
,
"on-finished"
:
"2.3.0"
,
"qs"
:
"6.5.1"
,
"raw-body"
:
"2.3.2"
,
"type-is"
:
"1.6.15"
}
},
"brace-expansion"
:
{
"version"
:
"1.1.8"
,
"resolved"
:
"http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.8.tgz"
,
"integrity"
:
"sha1-wHshHHyVLsH479Uad+8NHTmQopI="
,
"requires"
:
{
"balanced-match"
:
"1.0.0"
,
"concat-map"
:
"0.0.1"
}
},
"braces"
:
{
"version"
:
"1.8.5"
,
"resolved"
:
"http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz"
,
"integrity"
:
"sha1-uneWLhLf+WnWt2cR6RS3N4V79qc="
,
"requires"
:
{
"expand-range"
:
"1.8.2"
,
"preserve"
:
"0.2.0"
,
"repeat-element"
:
"1.1.2"
}
},
"bytes"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"
,
"integrity"
:
"sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
"chalk"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz"
,
"integrity"
:
"sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
,
"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"
}
},
"charm"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"http://registry.npm.taobao.org/charm/download/charm-0.1.2.tgz"
,
"integrity"
:
"sha1-BsIe7RobBq62dVPNxT4jJ0usIpY="
},
"child_process"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz"
,
"integrity"
:
"sha1-sffn/HPSXn/R1FWtyU4UODAYK1o="
},
"chokidar"
:
{
"version"
:
"1.7.0"
,
"resolved"
:
"http://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz"
,
"integrity"
:
"sha1-eY5ol3gVHIB2tLNg5e3SjNortGg="
,
"requires"
:
{
"anymatch"
:
"1.3.2"
,
"async-each"
:
"1.0.1"
,
"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.1.0"
}
},
"cli-table-redemption"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/cli-table-redemption/download/cli-table-redemption-1.0.1.tgz"
,
"integrity"
:
"sha1-A1nYw033SYACnXbf8HGgWhJ8T90="
,
"requires"
:
{
"chalk"
:
"1.1.3"
}
},
"commander"
:
{
"version"
:
"2.11.0"
,
"resolved"
:
"http://registry.npm.taobao.org/commander/download/commander-2.11.0.tgz"
,
"integrity"
:
"sha1-FXFS/R56bI2YpbcVzzdt+SgARWM="
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"content-disposition"
:
{
"version"
:
"0.5.2"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz"
,
"integrity"
:
"sha1-DPaLud318r55YcOoUXjLhdunjLQ="
},
"content-type"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
,
"integrity"
:
"sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"continuation-local-storage"
:
{
"version"
:
"3.2.0"
,
"resolved"
:
"http://registry.npm.taobao.org/continuation-local-storage/download/continuation-local-storage-3.2.0.tgz"
,
"integrity"
:
"sha1-4Z/Da1lwkKXU5KOy6j68XilpSiQ="
,
"requires"
:
{
"async-listener"
:
"0.6.8"
,
"emitter-listener"
:
"1.0.1"
}
},
"cookie"
:
{
"version"
:
"0.3.1"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
,
"integrity"
:
"sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
},
"cookie-signature"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"integrity"
:
"sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-util-is"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz"
,
"integrity"
:
"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cron"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"http://registry.npm.taobao.org/cron/download/cron-1.3.0.tgz"
,
"integrity"
:
"sha1-fkWZaOr5ThpEW+eWzkAhZsI0ZZ0="
,
"requires"
:
{
"moment-timezone"
:
"0.5.14"
}
},
"debug"
:
{
"version"
:
"2.6.9"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
,
"integrity"
:
"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
,
"requires"
:
{
"ms"
:
"2.0.0"
}
},
"depd"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-1.1.1.tgz"
,
"integrity"
:
"sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
},
"destroy"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
,
"integrity"
:
"sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
"integrity"
:
"sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"emitter-listener"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/emitter-listener/download/emitter-listener-1.0.1.tgz"
,
"integrity"
:
"sha1-skmepuWCMKUsJo1d8mHuzZ8Q/pc="
,
"requires"
:
{
"shimmer"
:
"1.0.0"
},
"dependencies"
:
{
"shimmer"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/shimmer/download/shimmer-1.0.0.tgz"
,
"integrity"
:
"sha1-ScLXHGeDYLgCvhiyeDgtHLuAXDk="
}
}
},
"encodeurl"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz"
,
"integrity"
:
"sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA="
},
"escape-html"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
,
"integrity"
:
"sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"escape-regexp"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/escape-regexp/download/escape-regexp-0.0.1.tgz"
,
"integrity"
:
"sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ="
},
"escape-string-regexp"
:
{
"version"
:
"1.0.5"
,
"resolved"
:
"http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz"
,
"integrity"
:
"sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"etag"
:
{
"version"
:
"1.8.1"
,
"resolved"
:
"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
,
"integrity"
:
"sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"eventemitter2"
:
{
"version"
:
"1.0.5"
,
"resolved"
:
"http://registry.npm.taobao.org/eventemitter2/download/eventemitter2-1.0.5.tgz"
,
"integrity"
:
"sha1-+YNhBRexc3wLncZDvsqTiTwE3xg="
},
"expand-brackets"
:
{
"version"
:
"0.1.5"
,
"resolved"
:
"http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz"
,
"integrity"
:
"sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s="
,
"requires"
:
{
"is-posix-bracket"
:
"0.1.1"
}
},
"expand-range"
:
{
"version"
:
"1.8.2"
,
"resolved"
:
"http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz"
,
"integrity"
:
"sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc="
,
"requires"
:
{
"fill-range"
:
"2.2.3"
}
},
"express"
:
{
"version"
:
"4.16.2"
,
"resolved"
:
"http://registry.npm.taobao.org/express/download/express-4.16.2.tgz"
,
"integrity"
:
"sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w="
,
"requires"
:
{
"accepts"
:
"1.3.4"
,
"array-flatten"
:
"1.1.1"
,
"body-parser"
:
"1.18.2"
,
"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.1"
,
"encodeurl"
:
"1.0.1"
,
"escape-html"
:
"1.0.3"
,
"etag"
:
"1.8.1"
,
"finalhandler"
:
"1.1.0"
,
"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.2"
,
"qs"
:
"6.5.1"
,
"range-parser"
:
"1.2.0"
,
"safe-buffer"
:
"5.1.1"
,
"send"
:
"0.16.1"
,
"serve-static"
:
"1.13.1"
,
"setprototypeof"
:
"1.1.0"
,
"statuses"
:
"1.3.1"
,
"type-is"
:
"1.6.15"
,
"utils-merge"
:
"1.0.1"
,
"vary"
:
"1.1.2"
}
},
"extend"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz"
,
"integrity"
:
"sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
},
"extglob"
:
{
"version"
:
"0.3.2"
,
"resolved"
:
"http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz"
,
"integrity"
:
"sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE="
,
"requires"
:
{
"is-extglob"
:
"1.0.0"
}
},
"fclone"
:
{
"version"
:
"1.0.11"
,
"resolved"
:
"http://registry.npm.taobao.org/fclone/download/fclone-1.0.11.tgz"
,
"integrity"
:
"sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA="
},
"filename-regex"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz"
,
"integrity"
:
"sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
},
"fill-range"
:
{
"version"
:
"2.2.3"
,
"resolved"
:
"http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.3.tgz"
,
"integrity"
:
"sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM="
,
"requires"
:
{
"is-number"
:
"2.1.0"
,
"isobject"
:
"2.1.0"
,
"randomatic"
:
"1.1.7"
,
"repeat-element"
:
"1.1.2"
,
"repeat-string"
:
"1.6.1"
}
},
"finalhandler"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz"
,
"integrity"
:
"sha1-zgtoVbRYU+eRsvzGgARtiCU91/U="
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"encodeurl"
:
"1.0.1"
,
"escape-html"
:
"1.0.3"
,
"on-finished"
:
"2.3.0"
,
"parseurl"
:
"1.3.2"
,
"statuses"
:
"1.3.1"
,
"unpipe"
:
"1.0.0"
}
},
"for-in"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz"
,
"integrity"
:
"sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
},
"for-own"
:
{
"version"
:
"0.1.5"
,
"resolved"
:
"http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz"
,
"integrity"
:
"sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4="
,
"requires"
:
{
"for-in"
:
"1.0.2"
}
},
"forwarded"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz"
,
"integrity"
:
"sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
},
"fresh"
:
{
"version"
:
"0.5.2"
,
"resolved"
:
"https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
,
"integrity"
:
"sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"fs.realpath"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz"
,
"integrity"
:
"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"gkt"
:
{
"version"
:
"https://tgz.pm2.io/gkt-1.0.0.tgz"
,
"integrity"
:
"sha1-QFUCsAfzGcP0cXXER0UnMA8qta0="
,
"optional"
:
true
},
"glob"
:
{
"version"
:
"7.1.2"
,
"resolved"
:
"http://registry.npm.taobao.org/glob/download/glob-7.1.2.tgz"
,
"integrity"
:
"sha1-wZyd+aAocC1nhhI4SmVSQExjbRU="
,
"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://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz"
,
"integrity"
:
"sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q="
,
"requires"
:
{
"glob-parent"
:
"2.0.0"
,
"is-glob"
:
"2.0.1"
}
},
"glob-parent"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz"
,
"integrity"
:
"sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg="
,
"requires"
:
{
"is-glob"
:
"2.0.1"
}
},
"graceful-fs"
:
{
"version"
:
"4.1.11"
,
"resolved"
:
"http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.11.tgz"
,
"integrity"
:
"sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
},
"has-ansi"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz"
,
"integrity"
:
"sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE="
,
"requires"
:
{
"ansi-regex"
:
"2.1.1"
}
},
"http-errors"
:
{
"version"
:
"1.6.2"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz"
,
"integrity"
:
"sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY="
,
"requires"
:
{
"depd"
:
"1.1.1"
,
"inherits"
:
"2.0.3"
,
"setprototypeof"
:
"1.0.3"
,
"statuses"
:
"1.3.1"
},
"dependencies"
:
{
"setprototypeof"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz"
,
"integrity"
:
"sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
}
}
},
"iconv-lite"
:
{
"version"
:
"0.4.19"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz"
,
"integrity"
:
"sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"inflight"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz"
,
"integrity"
:
"sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk="
,
"requires"
:
{
"once"
:
"1.4.0"
,
"wrappy"
:
"1.0.2"
}
},
"inherits"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
,
"integrity"
:
"sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"interpret"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"http://registry.npm.taobao.org/interpret/download/interpret-1.0.4.tgz"
,
"integrity"
:
"sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA="
},
"ipaddr.js"
:
{
"version"
:
"1.5.2"
,
"resolved"
:
"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz"
,
"integrity"
:
"sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A="
},
"is"
:
{
"version"
:
"3.2.1"
,
"resolved"
:
"http://registry.npm.taobao.org/is/download/is-3.2.1.tgz"
,
"integrity"
:
"sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU="
},
"is-binary-path"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz"
,
"integrity"
:
"sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg="
,
"requires"
:
{
"binary-extensions"
:
"1.10.0"
}
},
"is-buffer"
:
{
"version"
:
"1.1.6"
,
"resolved"
:
"http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz"
,
"integrity"
:
"sha1-76ouqdqg16suoTqXsritUf776L4="
},
"is-dotfile"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz"
,
"integrity"
:
"sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
},
"is-equal-shallow"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz"
,
"integrity"
:
"sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ="
,
"requires"
:
{
"is-primitive"
:
"2.0.0"
}
},
"is-extendable"
:
{
"version"
:
"0.1.1"
,
"resolved"
:
"http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz"
,
"integrity"
:
"sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
},
"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="
},
"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="
,
"requires"
:
{
"is-extglob"
:
"1.0.0"
}
},
"is-number"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz"
,
"integrity"
:
"sha1-Afy7s5NGOlSPL0ZszhbezknbkI8="
,
"requires"
:
{
"kind-of"
:
"3.2.2"
}
},
"is-posix-bracket"
:
{
"version"
:
"0.1.1"
,
"resolved"
:
"http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz"
,
"integrity"
:
"sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
},
"is-primitive"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz"
,
"integrity"
:
"sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
},
"isarray"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz"
,
"integrity"
:
"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"isobject"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz"
,
"integrity"
:
"sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk="
,
"requires"
:
{
"isarray"
:
"1.0.0"
}
},
"json-stringify-safe"
:
{
"version"
:
"5.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz"
,
"integrity"
:
"sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"kind-of"
:
{
"version"
:
"3.2.2"
,
"resolved"
:
"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz"
,
"integrity"
:
"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ="
,
"requires"
:
{
"is-buffer"
:
"1.1.6"
}
},
"lazy"
:
{
"version"
:
"1.0.11"
,
"resolved"
:
"http://registry.npm.taobao.org/lazy/download/lazy-1.0.11.tgz"
,
"integrity"
:
"sha1-2qBoIGKCVCwIgojpdcKXwa53tpA="
},
"lodash"
:
{
"version"
:
"4.17.4"
,
"resolved"
:
"http://registry.npm.taobao.org/lodash/download/lodash-4.17.4.tgz"
,
"integrity"
:
"sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
},
"lodash.findindex"
:
{
"version"
:
"4.6.0"
,
"resolved"
:
"http://registry.npm.taobao.org/lodash.findindex/download/lodash.findindex-4.6.0.tgz"
,
"integrity"
:
"sha1-oyRd7mH7m24GJLU1ElYku2nBEQY="
},
"lodash.isequal"
:
{
"version"
:
"4.5.0"
,
"resolved"
:
"http://registry.npm.taobao.org/lodash.isequal/download/lodash.isequal-4.5.0.tgz"
,
"integrity"
:
"sha1-QVxEePK8wwEgwizhDtMib30+GOA="
},
"lodash.merge"
:
{
"version"
:
"4.6.0"
,
"resolved"
:
"http://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.0.tgz"
,
"integrity"
:
"sha1-aYhLoUSsM/5plzemCG3v+t0PicU="
},
"media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
"integrity"
:
"sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"methods"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
,
"integrity"
:
"sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"micromatch"
:
{
"version"
:
"2.3.11"
,
"resolved"
:
"http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz"
,
"integrity"
:
"sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU="
,
"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"
}
},
"mime"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/mime/-/mime-1.4.1.tgz"
,
"integrity"
:
"sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
},
"mime-db"
:
{
"version"
:
"1.30.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz"
,
"integrity"
:
"sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
},
"mime-types"
:
{
"version"
:
"2.1.17"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz"
,
"integrity"
:
"sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo="
,
"requires"
:
{
"mime-db"
:
"1.30.0"
}
},
"minimatch"
:
{
"version"
:
"3.0.4"
,
"resolved"
:
"http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz"
,
"integrity"
:
"sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM="
,
"requires"
:
{
"brace-expansion"
:
"1.1.8"
}
},
"minimist"
:
{
"version"
:
"0.0.8"
,
"resolved"
:
"http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz"
,
"integrity"
:
"sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mkdirp"
:
{
"version"
:
"0.5.1"
,
"resolved"
:
"http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz"
,
"integrity"
:
"sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM="
,
"requires"
:
{
"minimist"
:
"0.0.8"
}
},
"moment"
:
{
"version"
:
"2.19.1"
,
"resolved"
:
"http://registry.npm.taobao.org/moment/download/moment-2.19.1.tgz"
,
"integrity"
:
"sha1-VtoaLRy/AdOLfhr8McELz6GSkWc="
},
"moment-timezone"
:
{
"version"
:
"0.5.14"
,
"resolved"
:
"http://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.14.tgz"
,
"integrity"
:
"sha1-TrOP+VOLgBCLpGekWPPtQmjM/LE="
,
"requires"
:
{
"moment"
:
"2.19.1"
}
},
"ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"mute-stream"
:
{
"version"
:
"0.0.7"
,
"resolved"
:
"http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz"
,
"integrity"
:
"sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
"needle"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"http://registry.npm.taobao.org/needle/download/needle-1.6.0.tgz"
,
"integrity"
:
"sha1-9SpYWJchIWGOAC+OY4TK2sItYk8="
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"iconv-lite"
:
"0.4.19"
}
},
"negotiator"
:
{
"version"
:
"0.6.1"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
,
"integrity"
:
"sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
"normalize-path"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz"
,
"integrity"
:
"sha1-GrKLVW4Zg2Oowab35vogE3/mrtk="
,
"requires"
:
{
"remove-trailing-separator"
:
"1.1.0"
}
},
"nssocket"
:
{
"version"
:
"0.6.0"
,
"resolved"
:
"http://registry.npm.taobao.org/nssocket/download/nssocket-0.6.0.tgz"
,
"integrity"
:
"sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo="
,
"requires"
:
{
"eventemitter2"
:
"0.4.14"
,
"lazy"
:
"1.0.11"
},
"dependencies"
:
{
"eventemitter2"
:
{
"version"
:
"0.4.14"
,
"resolved"
:
"http://registry.npm.taobao.org/eventemitter2/download/eventemitter2-0.4.14.tgz"
,
"integrity"
:
"sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas="
}
}
},
"object.omit"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz"
,
"integrity"
:
"sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo="
,
"requires"
:
{
"for-own"
:
"0.1.5"
,
"is-extendable"
:
"0.1.1"
}
},
"on-finished"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
,
"integrity"
:
"sha1-IPEzZIGwg811M3mSoWlxqi2QaUc="
,
"requires"
:
{
"ee-first"
:
"1.1.1"
}
},
"once"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"http://registry.npm.taobao.org/once/download/once-1.4.0.tgz"
,
"integrity"
:
"sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
,
"requires"
:
{
"wrappy"
:
"1.0.2"
}
},
"parse-glob"
:
{
"version"
:
"3.0.4"
,
"resolved"
:
"http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz"
,
"integrity"
:
"sha1-ssN2z7EfNVE7rdFz7wu246OIORw="
,
"requires"
:
{
"glob-base"
:
"0.3.0"
,
"is-dotfile"
:
"1.0.3"
,
"is-extglob"
:
"1.0.0"
,
"is-glob"
:
"2.0.1"
}
},
"parseurl"
:
{
"version"
:
"1.3.2"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz"
,
"integrity"
:
"sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
},
"path-is-absolute"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz"
,
"integrity"
:
"sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"path-parse"
:
{
"version"
:
"1.0.5"
,
"resolved"
:
"http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.5.tgz"
,
"integrity"
:
"sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
},
"path-to-regexp"
:
{
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
,
"integrity"
:
"sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"pidusage"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"http://registry.npm.taobao.org/pidusage/download/pidusage-1.2.0.tgz"
,
"integrity"
:
"sha1-Ze6WrOTgikzT+SQJlshbNnFx7pI="
},
"pm2"
:
{
"version"
:
"2.7.2"
,
"resolved"
:
"http://registry.npm.taobao.org/pm2/download/pm2-2.7.2.tgz"
,
"integrity"
:
"sha1-3kIe4UDi8YZlnaKZqJAP8sEwi6A="
,
"requires"
:
{
"async"
:
"2.6.0"
,
"blessed"
:
"0.1.81"
,
"chalk"
:
"1.1.3"
,
"chokidar"
:
"1.7.0"
,
"cli-table-redemption"
:
"1.0.1"
,
"commander"
:
"2.11.0"
,
"cron"
:
"1.3.0"
,
"debug"
:
"3.1.0"
,
"eventemitter2"
:
"1.0.5"
,
"fclone"
:
"1.0.11"
,
"gkt"
:
"https://tgz.pm2.io/gkt-1.0.0.tgz"
,
"mkdirp"
:
"0.5.1"
,
"moment"
:
"2.19.1"
,
"needle"
:
"1.6.0"
,
"nssocket"
:
"0.6.0"
,
"pidusage"
:
"1.2.0"
,
"pm2-axon"
:
"3.1.0"
,
"pm2-axon-rpc"
:
"0.5.0"
,
"pm2-deploy"
:
"0.3.8"
,
"pm2-multimeter"
:
"0.1.2"
,
"pmx"
:
"1.5.4"
,
"promptly"
:
"2.2.0"
,
"semver"
:
"5.4.1"
,
"shelljs"
:
"0.7.8"
,
"source-map-support"
:
"0.4.18"
,
"sprintf-js"
:
"1.1.1"
,
"vizion"
:
"0.2.13"
,
"yamljs"
:
"0.3.0"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz"
,
"integrity"
:
"sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE="
,
"requires"
:
{
"ms"
:
"2.0.0"
}
}
}
},
"pm2-axon"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/pm2-axon/download/pm2-axon-3.1.0.tgz"
,
"integrity"
:
"sha1-G0Un8zheIDrcGlsEiLtS8DInMdo="
,
"requires"
:
{
"amp"
:
"0.3.1"
,
"amp-message"
:
"0.1.2"
,
"debug"
:
"3.1.0"
,
"escape-regexp"
:
"0.0.1"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz"
,
"integrity"
:
"sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE="
,
"requires"
:
{
"ms"
:
"2.0.0"
}
}
}
},
"pm2-axon-rpc"
:
{
"version"
:
"0.5.0"
,
"resolved"
:
"http://registry.npm.taobao.org/pm2-axon-rpc/download/pm2-axon-rpc-0.5.0.tgz"
,
"integrity"
:
"sha1-rQjWon9YDVx75Ne/nd3/OY+GiZQ="
,
"requires"
:
{
"debug"
:
"3.1.0"
,
"fclone"
:
"1.0.11"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz"
,
"integrity"
:
"sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE="
,
"requires"
:
{
"ms"
:
"2.0.0"
}
}
}
},
"pm2-deploy"
:
{
"version"
:
"0.3.8"
,
"resolved"
:
"http://registry.npm.taobao.org/pm2-deploy/download/pm2-deploy-0.3.8.tgz"
,
"integrity"
:
"sha1-Iz7sAQO7oHALng4Or7bl0AalWwQ="
,
"requires"
:
{
"async"
:
"1.5.2"
,
"tv4"
:
"1.3.0"
},
"dependencies"
:
{
"async"
:
{
"version"
:
"1.5.2"
,
"resolved"
:
"http://registry.npm.taobao.org/async/download/async-1.5.2.tgz"
,
"integrity"
:
"sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
}
}
},
"pm2-multimeter"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"http://registry.npm.taobao.org/pm2-multimeter/download/pm2-multimeter-0.1.2.tgz"
,
"integrity"
:
"sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4="
,
"requires"
:
{
"charm"
:
"0.1.2"
}
},
"pmx"
:
{
"version"
:
"1.5.4"
,
"resolved"
:
"http://registry.npm.taobao.org/pmx/download/pmx-1.5.4.tgz"
,
"integrity"
:
"sha1-J9ccVOcntRhkhVRbnHDCHqvIHA8="
,
"requires"
:
{
"debug"
:
"3.1.0"
,
"json-stringify-safe"
:
"5.0.1"
,
"vxx"
:
"1.2.2"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz"
,
"integrity"
:
"sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE="
,
"requires"
:
{
"ms"
:
"2.0.0"
}
}
}
},
"preserve"
:
{
"version"
:
"0.2.0"
,
"resolved"
:
"http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz"
,
"integrity"
:
"sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
},
"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="
},
"promptly"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"http://registry.npm.taobao.org/promptly/download/promptly-2.2.0.tgz"
,
"integrity"
:
"sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ="
,
"requires"
:
{
"read"
:
"1.0.7"
}
},
"proxy-addr"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz"
,
"integrity"
:
"sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew="
,
"requires"
:
{
"forwarded"
:
"0.1.2"
,
"ipaddr.js"
:
"1.5.2"
}
},
"qs"
:
{
"version"
:
"6.5.1"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.5.1.tgz"
,
"integrity"
:
"sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
},
"randomatic"
:
{
"version"
:
"1.1.7"
,
"resolved"
:
"http://registry.npm.taobao.org/randomatic/download/randomatic-1.1.7.tgz"
,
"integrity"
:
"sha1-x6vpzIuHwLqodrGf3oP9RkeX44w="
,
"requires"
:
{
"is-number"
:
"3.0.0"
,
"kind-of"
:
"4.0.0"
},
"dependencies"
:
{
"is-number"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz"
,
"integrity"
:
"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU="
,
"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="
,
"requires"
:
{
"is-buffer"
:
"1.1.6"
}
}
}
},
"kind-of"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz"
,
"integrity"
:
"sha1-IIE989cSkosgc3hpGkUGb65y3Vc="
,
"requires"
:
{
"is-buffer"
:
"1.1.6"
}
}
}
},
"range-parser"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz"
,
"integrity"
:
"sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
},
"raw-body"
:
{
"version"
:
"2.3.2"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz"
,
"integrity"
:
"sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k="
,
"requires"
:
{
"bytes"
:
"3.0.0"
,
"http-errors"
:
"1.6.2"
,
"iconv-lite"
:
"0.4.19"
,
"unpipe"
:
"1.0.0"
}
},
"read"
:
{
"version"
:
"1.0.7"
,
"resolved"
:
"http://registry.npm.taobao.org/read/download/read-1.0.7.tgz"
,
"integrity"
:
"sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ="
,
"requires"
:
{
"mute-stream"
:
"0.0.7"
}
},
"readable-stream"
:
{
"version"
:
"2.3.3"
,
"resolved"
:
"http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.3.tgz"
,
"integrity"
:
"sha1-No8lEtefnUb9/HE0mueHi7weuVw="
,
"requires"
:
{
"core-util-is"
:
"1.0.2"
,
"inherits"
:
"2.0.3"
,
"isarray"
:
"1.0.0"
,
"process-nextick-args"
:
"1.0.7"
,
"safe-buffer"
:
"5.1.1"
,
"string_decoder"
:
"1.0.3"
,
"util-deprecate"
:
"1.0.2"
}
},
"readdirp"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz"
,
"integrity"
:
"sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg="
,
"requires"
:
{
"graceful-fs"
:
"4.1.11"
,
"minimatch"
:
"3.0.4"
,
"readable-stream"
:
"2.3.3"
,
"set-immediate-shim"
:
"1.0.1"
}
},
"rechoir"
:
{
"version"
:
"0.6.2"
,
"resolved"
:
"http://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz"
,
"integrity"
:
"sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q="
,
"requires"
:
{
"resolve"
:
"1.5.0"
}
},
"regex-cache"
:
{
"version"
:
"0.4.4"
,
"resolved"
:
"http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz"
,
"integrity"
:
"sha1-db3FiioUls7EihKDW8VMjVYjNt0="
,
"requires"
:
{
"is-equal-shallow"
:
"0.1.3"
}
},
"remove-trailing-separator"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz"
,
"integrity"
:
"sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
},
"repeat-element"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz"
,
"integrity"
:
"sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
},
"repeat-string"
:
{
"version"
:
"1.6.1"
,
"resolved"
:
"http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz"
,
"integrity"
:
"sha1-jcrkcOHIirwtYA//Sndihtp15jc="
},
"resolve"
:
{
"version"
:
"1.5.0"
,
"resolved"
:
"http://registry.npm.taobao.org/resolve/download/resolve-1.5.0.tgz"
,
"integrity"
:
"sha1-HwmsznlsmnYlefMbLBzEw83fnzY="
,
"requires"
:
{
"path-parse"
:
"1.0.5"
}
},
"safe-buffer"
:
{
"version"
:
"5.1.1"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
,
"integrity"
:
"sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
"semver"
:
{
"version"
:
"5.4.1"
,
"resolved"
:
"http://registry.npm.taobao.org/semver/download/semver-5.4.1.tgz"
,
"integrity"
:
"sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4="
},
"send"
:
{
"version"
:
"0.16.1"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.16.1.tgz"
,
"integrity"
:
"sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A=="
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"depd"
:
"1.1.1"
,
"destroy"
:
"1.0.4"
,
"encodeurl"
:
"1.0.1"
,
"escape-html"
:
"1.0.3"
,
"etag"
:
"1.8.1"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"1.6.2"
,
"mime"
:
"1.4.1"
,
"ms"
:
"2.0.0"
,
"on-finished"
:
"2.3.0"
,
"range-parser"
:
"1.2.0"
,
"statuses"
:
"1.3.1"
}
},
"serve-static"
:
{
"version"
:
"1.13.1"
,
"resolved"
:
"https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz"
,
"integrity"
:
"sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ=="
,
"requires"
:
{
"encodeurl"
:
"1.0.1"
,
"escape-html"
:
"1.0.3"
,
"parseurl"
:
"1.3.2"
,
"send"
:
"0.16.1"
}
},
"set-immediate-shim"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz"
,
"integrity"
:
"sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
},
"setprototypeof"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz"
,
"integrity"
:
"sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
},
"shelljs"
:
{
"version"
:
"0.7.8"
,
"resolved"
:
"http://registry.npm.taobao.org/shelljs/download/shelljs-0.7.8.tgz"
,
"integrity"
:
"sha1-3svPh0sNHl+3LhSxZKloMEjprLM="
,
"requires"
:
{
"glob"
:
"7.1.2"
,
"interpret"
:
"1.0.4"
,
"rechoir"
:
"0.6.2"
}
},
"shimmer"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/shimmer/download/shimmer-1.1.0.tgz"
,
"integrity"
:
"sha1-l9c3cTf/u6tCVSLkKf4KqJpIizU="
},
"source-map"
:
{
"version"
:
"0.5.7"
,
"resolved"
:
"http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz"
,
"integrity"
:
"sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
},
"source-map-support"
:
{
"version"
:
"0.4.18"
,
"resolved"
:
"http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz"
,
"integrity"
:
"sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8="
,
"requires"
:
{
"source-map"
:
"0.5.7"
}
},
"sprintf-js"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.1.1.tgz"
,
"integrity"
:
"sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw="
},
"statuses"
:
{
"version"
:
"1.3.1"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
,
"integrity"
:
"sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
},
"string_decoder"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.0.3.tgz"
,
"integrity"
:
"sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs="
,
"requires"
:
{
"safe-buffer"
:
"5.1.1"
}
},
"strip-ansi"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz"
,
"integrity"
:
"sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
,
"requires"
:
{
"ansi-regex"
:
"2.1.1"
}
},
"supports-color"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz"
,
"integrity"
:
"sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
},
"tv4"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"http://registry.npm.taobao.org/tv4/download/tv4-1.3.0.tgz"
,
"integrity"
:
"sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM="
},
"type-is"
:
{
"version"
:
"1.6.15"
,
"resolved"
:
"https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz"
,
"integrity"
:
"sha1-yrEPtJCeRByChC6v4a1kbIGARBA="
,
"requires"
:
{
"media-typer"
:
"0.3.0"
,
"mime-types"
:
"2.1.17"
}
},
"unpipe"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
"integrity"
:
"sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
"util-deprecate"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz"
,
"integrity"
:
"sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"utils-merge"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
,
"integrity"
:
"sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"uuid"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"http://registry.npm.taobao.org/uuid/download/uuid-3.1.0.tgz"
,
"integrity"
:
"sha1-PdPT55Crwk17DToDT/q6vijrvAQ="
},
"vary"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
,
"integrity"
:
"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"vizion"
:
{
"version"
:
"0.2.13"
,
"resolved"
:
"http://registry.npm.taobao.org/vizion/download/vizion-0.2.13.tgz"
,
"integrity"
:
"sha1-ExTN7is0EW+fWxJIU2+V2/zW718="
,
"requires"
:
{
"async"
:
"1.5.2"
},
"dependencies"
:
{
"async"
:
{
"version"
:
"1.5.2"
,
"resolved"
:
"http://registry.npm.taobao.org/async/download/async-1.5.2.tgz"
,
"integrity"
:
"sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
}
}
},
"vxx"
:
{
"version"
:
"1.2.2"
,
"resolved"
:
"http://registry.npm.taobao.org/vxx/download/vxx-1.2.2.tgz"
,
"integrity"
:
"sha1-dB+1HG8R0zg9pvm5IBil17qAdhE="
,
"requires"
:
{
"continuation-local-storage"
:
"3.2.0"
,
"debug"
:
"2.6.9"
,
"extend"
:
"3.0.1"
,
"is"
:
"3.2.1"
,
"lodash.findindex"
:
"4.6.0"
,
"lodash.isequal"
:
"4.5.0"
,
"lodash.merge"
:
"4.6.0"
,
"methods"
:
"1.1.2"
,
"semver"
:
"5.4.1"
,
"shimmer"
:
"1.1.0"
,
"uuid"
:
"3.1.0"
}
},
"wrappy"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz"
,
"integrity"
:
"sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"yamljs"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"http://registry.npm.taobao.org/yamljs/download/yamljs-0.3.0.tgz"
,
"integrity"
:
"sha1-3AYL8mdEezn3ME6bK/votafdsDs="
,
"requires"
:
{
"argparse"
:
"1.0.9"
,
"glob"
:
"7.1.2"
}
}
}
}
qa_shell_script/config_server/package.json
View file @
57699d47
...
@@ -12,6 +12,8 @@
...
@@ -12,6 +12,8 @@
"body-parser"
:
"^1.18.2"
,
"body-parser"
:
"^1.18.2"
,
"child_process"
:
"^1.0.2"
,
"child_process"
:
"^1.0.2"
,
"express"
:
"^4.16.2"
,
"express"
:
"^4.16.2"
,
"request"
:
"^2.83.0"
,
"mongodb"
:
"^2.2.33"
,
"pm2"
:
"^2.7.2"
"pm2"
:
"^2.7.2"
}
}
}
}
qa_shell_script/ngrok/(
deleted
100644 → 0
View file @
3cacb892
server {
listen 80 default;
server_name _;
underscores_in_headers on;
proxy_set_header Host $host;
proxy_set_header QT_TOKEN $http_QT_TOKEN;
set $ip ;
location / {
if
proxy_pass http://;
}
}
server {
listen 443 ssl;
server_name _;
proxy_set_header QT_TOKEN $http_QT_TOKEN;
ssl_certificate /home/q-gp/ssl/certificate.crt;
ssl_certificate_key /home/q-gp/ssl/private.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
proxy_set_header Host $host;
set $ip ;
location / {
if
proxy_pass http://;
}
}
server {
listen 80 default;
server_name _;
underscores_in_headers on;
proxy_set_header Host $host;
proxy_set_header QT_TOKEN $http_QT_TOKEN;
set $ip ;
location / {
if
proxy_pass http://;
}
}
server {
listen 443 ssl;
server_name _;
proxy_set_header QT_TOKEN $http_QT_TOKEN;
ssl_certificate /home/q-gp/ssl/certificate.crt;
ssl_certificate_key /home/q-gp/ssl/private.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
proxy_set_header Host $host;
set $ip ;
location / {
if
proxy_pass http://;
}
}
qa_shell_script/ngrok/docker_env_name.sh
View file @
57699d47
dongmeifeng|192.168.4.78|32093|32093 tower|192.168.4.78|30886|30084 zhang
hong|192.168.4.77|31826|32324 wangzhen|192.168.4.77|31809|30100 zhangbo|192.168.4.77|31091|32056 wangfei|192.168.4.77|32389|31374 renmingxing|192.168.4.78|30169|32509 tianyawei|192.168.4.77|32718|32701 hemengying|192.168.4.32|30067|30660 songruili|192.168.4.18|32355|30265 yiwei|192.168.4.77|30352|30286 lishuang|192.168.4.77|30011|31185 chenyadong|192.168.4.77|30384|32523 chenxingchun|192.168.4.33|30445|30583 yanxiaoyu|192.168.4.18|32116|30133 debug2|192.168.4.32|32224|32522
dongmeifeng|192.168.4.78|32093|32093 tower|192.168.4.78|30886|30084 zhang
bo|192.168.4.77|31091|32056 wangfei|192.168.4.77|32389|31374 renmingxing|192.168.4.78|30169|32509 songruili|192.168.4.18|32355|30265 yiwei|192.168.4.77|30352|30286 lishuang|192.168.4.77|30011|31185 chenyadong|192.168.4.77|30384|32523 chenxingchun|192.168.4.33|30445|30583 yanxiaoyu|192.168.4.18|32116|30133 cloner|192.168.6.9|32566|32560 c2|192.168.6.8|30492|31481 withdb|192.168.6.9|30321|30896 base|192.168.6.9|31440|32685 dbtest|192.168.6.9|31669|31647 ggggg|192.168.6.9|30451|32069 |192.168.6.9||
qa_shell_script/ngrok/make_frp_ini_V2.sh
View file @
57699d47
...
@@ -142,7 +142,7 @@ createNginxHttpAndSSLConf mock mock 172.30.220.22 8080 8080 $nginxname/base.conf
...
@@ -142,7 +142,7 @@ createNginxHttpAndSSLConf mock mock 172.30.220.22 8080 8080 $nginxname/base.conf
createNginxHttpAndSSLConf atm atm 172.30.220.43 80 80
$nginxname
/base.conf
createNginxHttpAndSSLConf atm atm 172.30.220.43 80 80
$nginxname
/base.conf
createNginxHttpAndSSLConf mockapi mockapi 172.30.220.22 80 80
$nginxname
/base.conf
createNginxHttpAndSSLConf mockapi mockapi 172.30.220.22 80 80
$nginxname
/base.conf
createNginxHttpAndSSLConf acs acs 172.30.220.43 8585 8585
$nginxname
/base.conf
createNginxHttpAndSSLConf acs acs 172.30.220.43 8585 8585
$nginxname
/base.conf
createNginxHttpAndSSLConf a a 172.30.220.22 80 80
$nginxname
/base.conf
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment