Showing
5 changed files
with
1781 additions
and
0 deletions
app.js
0 → 100644
| 1 | +//Site | ||
| 2 | +var http = require('http'); | ||
| 3 | +var fs = require('fs'); | ||
| 4 | +var jsdom = require('jsdom'); | ||
| 5 | +//var $ = require('jquery'); | ||
| 6 | +var path=require('path'); | ||
| 7 | +//Site end | ||
| 8 | +var express=require('express'); | ||
| 9 | +var app=express(); | ||
| 10 | +var router=require('./router/main')(app); | ||
| 11 | +var bodyParser=require('body-parser'); | ||
| 12 | +var querystring=require('querystring'); | ||
| 13 | +app.use(bodyParser.urlencoded({extended: false})); | ||
| 14 | +app.use(bodyParser.json()); | ||
| 15 | + | ||
| 16 | +//Site | ||
| 17 | +app.use(express.static('public')); | ||
| 18 | +app.use('/node_modules', express.static(path.join(__dirname,'/node_modules'))); | ||
| 19 | + | ||
| 20 | +app.get('/', function(req,res){ | ||
| 21 | + fs.readFile('index.ejs',function(err,data){ | ||
| 22 | + res.writeHead(200,{'Content-Type':'text/html'}); | ||
| 23 | + res.end(data); | ||
| 24 | + }); | ||
| 25 | +}); | ||
| 26 | + | ||
| 27 | +app.get('/recommend', function(req,res,next){ | ||
| 28 | + fs.readFile('index.ejs',function(err,data){ | ||
| 29 | + res.writeHead(200,{'Content-Type':'text/html'}); | ||
| 30 | + res.end(data); | ||
| 31 | + }); | ||
| 32 | +}); | ||
| 33 | + | ||
| 34 | +app.get('/imgs',function(req,res){ | ||
| 35 | + fs.readFile('logoIMG.jpg',function(err,data){ | ||
| 36 | + res.writeHead(200,{'Content-Type':'text/html'}); | ||
| 37 | + res.end(data); | ||
| 38 | + }); | ||
| 39 | +}); | ||
| 40 | +//Site end | ||
| 41 | + | ||
| 42 | +app.set('views', __dirname + '/views'); | ||
| 43 | +app.set('view engine', 'ejs'); | ||
| 44 | +app.engine('html', require('ejs').renderFile); | ||
| 45 | + | ||
| 46 | +var server=app.listen(3000,function(){ | ||
| 47 | + console.log("Express server has started on port 3000"); | ||
| 48 | + | ||
| 49 | + });//app listen 꿑 | ||
| 50 | + | ||
| 51 | +// | ||
| 52 | +/* | ||
| 53 | +var readline=require('readline');//입력받기 위한 모듈 | ||
| 54 | +var r=readline.createInterface({input:process.stdin,output:process.stdout});//키보드 입출력 정의 | ||
| 55 | +var rtfw1="http://www.rankedftw.com/search/?name=";//rtfw에서 기본 검색 url | ||
| 56 | +var rtfw2="http://www.rankedftw.com/player/"//rtfw 번호 기반 특정 플레이어 검색 url | ||
| 57 | +var league='silver_2'; | ||
| 58 | +var region='KR'; | ||
| 59 | +// | ||
| 60 | +var cheerio=require('cheerio');//cheerio모듈 사용 | ||
| 61 | +var request=require('request');//request모듈 사용 | ||
| 62 | +var fs=require('fs');//파일시스템 사용 | ||
| 63 | +// | ||
| 64 | +//request 1 variable | ||
| 65 | +var username='';//username문자열 선언 | ||
| 66 | +var userleague='';//userleague 문자열 선언 | ||
| 67 | +var userregion='';//userregion 문자열 선언 | ||
| 68 | +var usernumber='';//usernumber 문자열 선언 | ||
| 69 | +// | ||
| 70 | +//request 2 variable | ||
| 71 | + | ||
| 72 | +// | ||
| 73 | +//request 3-1 variable | ||
| 74 | + | ||
| 75 | +// | ||
| 76 | +//request 3-2 variable | ||
| 77 | + | ||
| 78 | +// | ||
| 79 | +//request 3-3 variable | ||
| 80 | + | ||
| 81 | +// | ||
| 82 | +//system message | ||
| 83 | + | ||
| 84 | +// | ||
| 85 | +//delivering variable | ||
| 86 | +var momentum;//기세 | ||
| 87 | +var terran_proficiency;//테란 숙련도 | ||
| 88 | +var zerg_proficiency;//저그 숙련도 | ||
| 89 | +var protoss_proficiency;//프로토스 숙련도 | ||
| 90 | +var primary_race;//주 종족 | ||
| 91 | +var win_rate;//시즌 전체 승률 | ||
| 92 | + | ||
| 93 | +var myrace;//내 종족 | ||
| 94 | +var enemyrace;//상대 종족 | ||
| 95 | +var recommend;//추천빌드(운영/타이밍/올인) | ||
| 96 | +// | ||
| 97 | + | ||
| 98 | +r.question("분석을 원하는 아이디를 입력하세요 : ",function(answer){//question메소드에서 callback함수 생성 | ||
| 99 | + //question은 에러 제어 만들면 안된다. | ||
| 100 | + console.log("r.question processing");//callback함수란 이벤트가 왔을 때 실행되는 함수이다. answer에 검색을 원하는 아이디가 담겨있다. | ||
| 101 | + rtfw1=rtfw1+answer;//검색 url 구성 | ||
| 102 | + console.log(rtfw1);//테스트용 : 검색 url 확인 | ||
| 103 | +// | ||
| 104 | +request(rtfw1,(error,response,body)=>{//rtfw url 불러오기 request 1 | ||
| 105 | + if(error){throw error};//에러처리 | ||
| 106 | + console.log("request 1 processing"); | ||
| 107 | + let $ = cheerio.load(body);//rtfw가 body이다. $로 jquery방식으로 html탐색 | ||
| 108 | + $('ul').find('a').each(function(index,elem){//ul 태그 아래 a태그를 찾는다. | ||
| 109 | + username=$(this).find('.name').text().trim();//name클래스를 찾아 공백빼고 텍스트화 | ||
| 110 | + userleague=$(this).find('.league').text().trim();//league클래스를 찾아 공백빼고 텍스트화 | ||
| 111 | + userregion=$(this).find('.region').text().trim();//region클래스를 찾아 공백빼고 텍스트화 | ||
| 112 | + if((username===answer)&&(userregion===region)){//아직 리그 구현 안함-리그는 그림으로 비교 | ||
| 113 | + console.log(`${username}`);//테스트용 : 유저네임 출력 | ||
| 114 | + console.log(`${userregion}`);//테스트용 : 유저리전 출력 | ||
| 115 | + var usernumber=$(this).toString().slice(29,43);//rtfw에서 사용하는 사용자번호를 문자열로 넉넉히 자름 | ||
| 116 | + var localindex1=usernumber.search('/');//첫번째 슬레시 발견하는 인덱스 검출 | ||
| 117 | + usernumber=usernumber.slice(localindex1+1);//앞부분 슬래시 자른다. | ||
| 118 | + var localindex2=usernumber.search('/')-localindex1+1;//두번째 슬레시 발견하는 인덱스 검출 | ||
| 119 | + usernumber=usernumber.slice(0,localindex2);//뒷부분 슬래시 자른다. | ||
| 120 | + console.log(`${usernumber}`);//테스트용 : 유저넘버 출력 | ||
| 121 | + if(rtfw2.length>33){//하나라도 붙어있으면 | ||
| 122 | + rtfw2=rtfw2;//아무것도 안한다. | ||
| 123 | + }else{//그렇지않고 아무것도 안붙어있으면 | ||
| 124 | + rtfw2=rtfw2+usernumber+'/';//rtfw2 url갱신 | ||
| 125 | + } | ||
| 126 | + console.log(rtfw2);//테스트용 : rtfw2 출력 | ||
| 127 | + }//이름서버리그비교if종료 | ||
| 128 | + });//ul a find문 종료 | ||
| 129 | + | ||
| 130 | + var profileID=''; | ||
| 131 | + request(rtfw2,(error,response,body)=>{//rtfw2 url 불러오기 request 2 | ||
| 132 | + if(error){throw error};//에러처리 | ||
| 133 | + console.log('request2 processing');//테스트용 : request2 실행여부 출력 | ||
| 134 | + let $ = cheerio.load(body);//rtfw2가 body이다. $로 jquery방식으로 html탐색 | ||
| 135 | + $('.content').find('.bnet-link').each(function(index,elem){//content 클래스 안의 bnet-link클래스를 포함하는 요소를 찾는다. | ||
| 136 | + profileID=$(this).toString().slice(62,72);//얻고자 하는 profileID를 포함하여 앞뒤로 적당히 자른다. | ||
| 137 | + var localindex3=profileID.search('/');//첫번째 슬레시 발견하는 인덱스 검출 | ||
| 138 | + profileID=profileID.slice(localindex3+1);//앞부분 슬래시 자른다. | ||
| 139 | + var localindex4=profileID.search('/')-localindex3;//두번째 슬레시 발견하는 인덱스 검출 | ||
| 140 | + profileID=profileID.slice(0,localindex4);//뒷부분 슬래시 자른다. | ||
| 141 | + console.log(`${profileID}`);//테스트용 : profileID 출력 | ||
| 142 | + //profileID=encodeURI(encodeURIComponent(profileID));//한글처리부 | ||
| 143 | + });//a bnetlink 종료 | ||
| 144 | +//console.log(`${profileID}`);//테스트용 : profileID 출력 | ||
| 145 | + | ||
| 146 | +var match_history_1="https://kr.api.blizzard.com/sc2/legacy/profile/3/1/"//매치히스토리 url 앞부분 | ||
| 147 | +var match_history_2="/matches?access_token=US0q3wV6W1fIYZmRnEBbNvUrRHYZhwANIi"//매치히스토리 url 뒷부분 | ||
| 148 | +var match_history_url=match_history_1+profileID+match_history_2;//매치히스토리 url 구성 | ||
| 149 | +console.log(match_history_url);//테스트용 : 매치히스토리 url 출력 | ||
| 150 | + | ||
| 151 | +request(match_history_url,(error,response,body)=>{//match history request request 3 | ||
| 152 | + if(error){throw error};//에러처리 | ||
| 153 | + console.log('request3 processing');//테스트용 : request 작동여부 출력 | ||
| 154 | + | ||
| 155 | +var obj1=JSON.parse(body);//request 결과를 JSON object로 변환 | ||
| 156 | +//console.log(obj.matches [0].map);//테스트용 : 하나에 접근 | ||
| 157 | +$(obj1.matches).each(function(index,match){//body에서 각각의 배열요소 match들과 인덱스 사용 | ||
| 158 | + if(match.type=='1v1'){//경기타입이 1대1인 경우에만 관심있다. | ||
| 159 | + console.log(index+":::",match.decision,match.map);//인덱스와 승패, 맵 표시 | ||
| 160 | +};//if 1v1 종료 | ||
| 161 | +});//each function 종료 | ||
| 162 | + | ||
| 163 | +var ladder_1="https://kr.api.blizzard.com/sc2/legacy/profile/3/1/" | ||
| 164 | +var ladder_2="/ladders?access_token=US0q3wV6W1fIYZmRnEBbNvUrRHYZhwANIi"; | ||
| 165 | +var ladder_url=ladder_1+profileID+ladder_2; | ||
| 166 | +console.log(ladder_url); | ||
| 167 | +request(ladder_url,(error,response,body)=>{//ladder request request 4 | ||
| 168 | + if(error){throw error}; | ||
| 169 | + console.log('request4 processing'); | ||
| 170 | + var obj2=JSON.parse(body);//request 결과를 JSON object로 변환 | ||
| 171 | +// console.log(obj2.currentSeason [2].ladder[0].wins);//테스트용 : 하나에 접근 | ||
| 172 | + var wins=obj2.currentSeason[2].ladder[0].wins; | ||
| 173 | + var losses=obj2.currentSeason[2].ladder[0].losses; | ||
| 174 | +win_rate=wins/(wins+losses); | ||
| 175 | + //console.log(wins); | ||
| 176 | + //console.log(losses); | ||
| 177 | + //console.log(win_rate); | ||
| 178 | + | ||
| 179 | +var profile_1="https://kr.api.blizzard.com/sc2/legacy/profile/3/1/"; | ||
| 180 | +var profile_2="?access_token=US0q3wV6W1fIYZmRnEBbNvUrRHYZhwANIi"; | ||
| 181 | +var profile_url=profile_1+profileID+profile_2; | ||
| 182 | +console.log(profile_url); | ||
| 183 | +request(profile_url,(error,response,body)=>{//profile request request 5 | ||
| 184 | + if(error){throw error}; | ||
| 185 | + console.log('request5 processing'); | ||
| 186 | + var obj3=JSON.parse(body);//request 결과를 JSON object로 변환 | ||
| 187 | + //console.log(obj2.currentSeason [1].ladder[0].wins);//테스트용 : 하나에 접근 | ||
| 188 | +primary_race=obj3.career.primaryRace; | ||
| 189 | + //console.log(primary_race); | ||
| 190 | + var terran_level=obj3.swarmLevels.terran.level; | ||
| 191 | + var zerg_level=obj3.swarmLevels.zerg.level; | ||
| 192 | + var protoss_level=obj3.swarmLevels.protoss.level; | ||
| 193 | + | ||
| 194 | + //console.log(terran_level); | ||
| 195 | + //console.log(zerg_level); | ||
| 196 | + //console.log(protoss_level); | ||
| 197 | + | ||
| 198 | +//build recommend algorithm | ||
| 199 | +var matchresults=[];//매치결과 담을 배열 선언 | ||
| 200 | +var momentum_win=0;//최근 10경기 중 승수 초기화 | ||
| 201 | +for (var i=0;i<25;i++){//매치히스토리는 최대 25개 | ||
| 202 | + if(obj1.matches[i].type=='1v1'){//1v1에만 관심있다. | ||
| 203 | + matchresults.push(obj1.matches[i].decision);//배열 끝에 결과 삽입 | ||
| 204 | + if((matchresults.length<11)&&(obj1.matches[i].decision=='Win')){//최근 10경기에서 승리한 경우 | ||
| 205 | + momentum_win=momentum_win+1;//그 승수를 카운트한다. | ||
| 206 | + }//if length11 종료 | ||
| 207 | +}//obj1 1v1 종료 | ||
| 208 | +}//for i 25 종료 | ||
| 209 | +//console.log(matchresults);//테스트용 : matchresults 출력 | ||
| 210 | +//console.log(momentum_win);//테스트용 : momentum_win 출력 | ||
| 211 | +if(momentum_win>=7){//7승 이상이면 상승세 | ||
| 212 | +momentum='상승세'; | ||
| 213 | +} | ||
| 214 | +if((momentum_win<7)&&(momentum_win>=4)){//4승이상 7승미만이면 정체 | ||
| 215 | +momentum='정체중'; | ||
| 216 | +} | ||
| 217 | +if(momentum_win<4){//4승 미만이면 하락세 | ||
| 218 | +momentum='하락세'; | ||
| 219 | +} | ||
| 220 | +//console.log(momentum);//테스트용 : 기세 출력 | ||
| 221 | + | ||
| 222 | +if(terran_level<50){//테란 레벨 50 안되면 | ||
| 223 | + terran_proficiency='비숙련자'//테란 비숙련자 | ||
| 224 | +} else{ | ||
| 225 | + terran_proficiency='숙련자' | ||
| 226 | +} | ||
| 227 | +if(zerg_level<50){//저그 레벨 50 안되면 | ||
| 228 | + zerg_proficiency='비숙련자'//저그 비숙련자 | ||
| 229 | +} else{ | ||
| 230 | + zerg_proficiency='숙련자' | ||
| 231 | +} | ||
| 232 | +if(protoss_level<50){//프로토스 레벨 50 안되면 | ||
| 233 | + protoss_proficiency='비숙련자'//프로토스 비숙련자 | ||
| 234 | +} else{ | ||
| 235 | + protoss_proficiency='숙련자' | ||
| 236 | +} | ||
| 237 | +// | ||
| 238 | +//system message part | ||
| 239 | +console.log("최근 10경기 분석 결과 현재 상대는 '"+momentum+"'입니다."); | ||
| 240 | +console.log("상대는 테란 '"+terran_proficiency+"'입니다."); | ||
| 241 | +console.log("상대는 저그 '"+zerg_proficiency+"'입니다."); | ||
| 242 | +console.log("상대는 프로토스 '"+protoss_proficiency+"'입니다."); | ||
| 243 | +console.log("상대의 주 종족은 '"+primary_race+"'입니다."); | ||
| 244 | +console.log("상대의 이번 시즌 전체 승률은 '"+win_rate+"'입니다."); | ||
| 245 | +// | ||
| 246 | +//build recommend command | ||
| 247 | + | ||
| 248 | +// | ||
| 249 | + | ||
| 250 | +console.log('request5 done'); | ||
| 251 | +});//request5종료 | ||
| 252 | +console.log('request4 done'); | ||
| 253 | +});//request4종료 | ||
| 254 | +console.log('request3 done'); | ||
| 255 | +});//request3종료 | ||
| 256 | +console.log('request2 done'); | ||
| 257 | +});//request2종료 | ||
| 258 | +console.log('request1 done'); | ||
| 259 | +});//request1 종료 | ||
| 260 | + | ||
| 261 | +console.log('r.question done'); | ||
| 262 | +//console.log(terran_level); | ||
| 263 | +r.close()//반드시 close를 해줘야 한다.사용이 다 끝난 후에. | ||
| 264 | +});//r.question 끝 | ||
| 265 | +*/ |
logoIMG.jpg
0 → 100644
136 KB
package-lock.json
0 → 100644
| 1 | +{ | ||
| 2 | + "requires": true, | ||
| 3 | + "lockfileVersion": 1, | ||
| 4 | + "dependencies": { | ||
| 5 | + "@types/node": { | ||
| 6 | + "version": "10.12.12", | ||
| 7 | + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.12.tgz", | ||
| 8 | + "integrity": "sha512-Pr+6JRiKkfsFvmU/LK68oBRCQeEg36TyAbPhc2xpez24OOZZCuoIhWGTd39VZy6nGafSbxzGouFPTFD/rR1A0A==" | ||
| 9 | + }, | ||
| 10 | + "abab": { | ||
| 11 | + "version": "2.0.0", | ||
| 12 | + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", | ||
| 13 | + "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==" | ||
| 14 | + }, | ||
| 15 | + "accepts": { | ||
| 16 | + "version": "1.3.5", | ||
| 17 | + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", | ||
| 18 | + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", | ||
| 19 | + "requires": { | ||
| 20 | + "mime-types": "~2.1.18", | ||
| 21 | + "negotiator": "0.6.1" | ||
| 22 | + } | ||
| 23 | + }, | ||
| 24 | + "acorn": { | ||
| 25 | + "version": "6.0.4", | ||
| 26 | + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", | ||
| 27 | + "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==" | ||
| 28 | + }, | ||
| 29 | + "acorn-globals": { | ||
| 30 | + "version": "4.3.0", | ||
| 31 | + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz", | ||
| 32 | + "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==", | ||
| 33 | + "requires": { | ||
| 34 | + "acorn": "^6.0.1", | ||
| 35 | + "acorn-walk": "^6.0.1" | ||
| 36 | + } | ||
| 37 | + }, | ||
| 38 | + "acorn-walk": { | ||
| 39 | + "version": "6.1.1", | ||
| 40 | + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", | ||
| 41 | + "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==" | ||
| 42 | + }, | ||
| 43 | + "ajv": { | ||
| 44 | + "version": "6.6.1", | ||
| 45 | + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", | ||
| 46 | + "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", | ||
| 47 | + "requires": { | ||
| 48 | + "fast-deep-equal": "^2.0.1", | ||
| 49 | + "fast-json-stable-stringify": "^2.0.0", | ||
| 50 | + "json-schema-traverse": "^0.4.1", | ||
| 51 | + "uri-js": "^4.2.2" | ||
| 52 | + } | ||
| 53 | + }, | ||
| 54 | + "array-equal": { | ||
| 55 | + "version": "1.0.0", | ||
| 56 | + "resolved": "http://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", | ||
| 57 | + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" | ||
| 58 | + }, | ||
| 59 | + "array-flatten": { | ||
| 60 | + "version": "1.1.1", | ||
| 61 | + "resolved": "http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | ||
| 62 | + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" | ||
| 63 | + }, | ||
| 64 | + "asn1": { | ||
| 65 | + "version": "0.2.4", | ||
| 66 | + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", | ||
| 67 | + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", | ||
| 68 | + "requires": { | ||
| 69 | + "safer-buffer": "~2.1.0" | ||
| 70 | + } | ||
| 71 | + }, | ||
| 72 | + "assert-plus": { | ||
| 73 | + "version": "1.0.0", | ||
| 74 | + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||
| 75 | + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" | ||
| 76 | + }, | ||
| 77 | + "async-limiter": { | ||
| 78 | + "version": "1.0.0", | ||
| 79 | + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", | ||
| 80 | + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" | ||
| 81 | + }, | ||
| 82 | + "asynckit": { | ||
| 83 | + "version": "0.4.0", | ||
| 84 | + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | ||
| 85 | + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" | ||
| 86 | + }, | ||
| 87 | + "aws-sign2": { | ||
| 88 | + "version": "0.7.0", | ||
| 89 | + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", | ||
| 90 | + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" | ||
| 91 | + }, | ||
| 92 | + "aws4": { | ||
| 93 | + "version": "1.8.0", | ||
| 94 | + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", | ||
| 95 | + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" | ||
| 96 | + }, | ||
| 97 | + "bcrypt-pbkdf": { | ||
| 98 | + "version": "1.0.2", | ||
| 99 | + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", | ||
| 100 | + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", | ||
| 101 | + "requires": { | ||
| 102 | + "tweetnacl": "^0.14.3" | ||
| 103 | + } | ||
| 104 | + }, | ||
| 105 | + "body-parser": { | ||
| 106 | + "version": "1.18.3", | ||
| 107 | + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", | ||
| 108 | + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", | ||
| 109 | + "requires": { | ||
| 110 | + "bytes": "3.0.0", | ||
| 111 | + "content-type": "~1.0.4", | ||
| 112 | + "debug": "2.6.9", | ||
| 113 | + "depd": "~1.1.2", | ||
| 114 | + "http-errors": "~1.6.3", | ||
| 115 | + "iconv-lite": "0.4.23", | ||
| 116 | + "on-finished": "~2.3.0", | ||
| 117 | + "qs": "6.5.2", | ||
| 118 | + "raw-body": "2.3.3", | ||
| 119 | + "type-is": "~1.6.16" | ||
| 120 | + } | ||
| 121 | + }, | ||
| 122 | + "boolbase": { | ||
| 123 | + "version": "1.0.0", | ||
| 124 | + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", | ||
| 125 | + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" | ||
| 126 | + }, | ||
| 127 | + "browser-process-hrtime": { | ||
| 128 | + "version": "0.1.3", | ||
| 129 | + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", | ||
| 130 | + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==" | ||
| 131 | + }, | ||
| 132 | + "bytes": { | ||
| 133 | + "version": "3.0.0", | ||
| 134 | + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", | ||
| 135 | + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" | ||
| 136 | + }, | ||
| 137 | + "caseless": { | ||
| 138 | + "version": "0.12.0", | ||
| 139 | + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", | ||
| 140 | + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" | ||
| 141 | + }, | ||
| 142 | + "cheerio": { | ||
| 143 | + "version": "1.0.0-rc.2", | ||
| 144 | + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", | ||
| 145 | + "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", | ||
| 146 | + "requires": { | ||
| 147 | + "css-select": "~1.2.0", | ||
| 148 | + "dom-serializer": "~0.1.0", | ||
| 149 | + "entities": "~1.1.1", | ||
| 150 | + "htmlparser2": "^3.9.1", | ||
| 151 | + "lodash": "^4.15.0", | ||
| 152 | + "parse5": "^3.0.1" | ||
| 153 | + } | ||
| 154 | + }, | ||
| 155 | + "combined-stream": { | ||
| 156 | + "version": "1.0.7", | ||
| 157 | + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", | ||
| 158 | + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", | ||
| 159 | + "requires": { | ||
| 160 | + "delayed-stream": "~1.0.0" | ||
| 161 | + } | ||
| 162 | + }, | ||
| 163 | + "content-disposition": { | ||
| 164 | + "version": "0.5.2", | ||
| 165 | + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", | ||
| 166 | + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" | ||
| 167 | + }, | ||
| 168 | + "content-type": { | ||
| 169 | + "version": "1.0.4", | ||
| 170 | + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", | ||
| 171 | + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" | ||
| 172 | + }, | ||
| 173 | + "cookie": { | ||
| 174 | + "version": "0.3.1", | ||
| 175 | + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", | ||
| 176 | + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" | ||
| 177 | + }, | ||
| 178 | + "cookie-signature": { | ||
| 179 | + "version": "1.0.6", | ||
| 180 | + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | ||
| 181 | + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" | ||
| 182 | + }, | ||
| 183 | + "core-util-is": { | ||
| 184 | + "version": "1.0.2", | ||
| 185 | + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | ||
| 186 | + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | ||
| 187 | + }, | ||
| 188 | + "css-select": { | ||
| 189 | + "version": "1.2.0", | ||
| 190 | + "resolved": "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", | ||
| 191 | + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", | ||
| 192 | + "requires": { | ||
| 193 | + "boolbase": "~1.0.0", | ||
| 194 | + "css-what": "2.1", | ||
| 195 | + "domutils": "1.5.1", | ||
| 196 | + "nth-check": "~1.0.1" | ||
| 197 | + } | ||
| 198 | + }, | ||
| 199 | + "css-what": { | ||
| 200 | + "version": "2.1.2", | ||
| 201 | + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz", | ||
| 202 | + "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==" | ||
| 203 | + }, | ||
| 204 | + "cssom": { | ||
| 205 | + "version": "0.3.4", | ||
| 206 | + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", | ||
| 207 | + "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==" | ||
| 208 | + }, | ||
| 209 | + "cssstyle": { | ||
| 210 | + "version": "1.1.1", | ||
| 211 | + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz", | ||
| 212 | + "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==", | ||
| 213 | + "requires": { | ||
| 214 | + "cssom": "0.3.x" | ||
| 215 | + } | ||
| 216 | + }, | ||
| 217 | + "dashdash": { | ||
| 218 | + "version": "1.14.1", | ||
| 219 | + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", | ||
| 220 | + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", | ||
| 221 | + "requires": { | ||
| 222 | + "assert-plus": "^1.0.0" | ||
| 223 | + } | ||
| 224 | + }, | ||
| 225 | + "data-urls": { | ||
| 226 | + "version": "1.1.0", | ||
| 227 | + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", | ||
| 228 | + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", | ||
| 229 | + "requires": { | ||
| 230 | + "abab": "^2.0.0", | ||
| 231 | + "whatwg-mimetype": "^2.2.0", | ||
| 232 | + "whatwg-url": "^7.0.0" | ||
| 233 | + } | ||
| 234 | + }, | ||
| 235 | + "debug": { | ||
| 236 | + "version": "2.6.9", | ||
| 237 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
| 238 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
| 239 | + "requires": { | ||
| 240 | + "ms": "2.0.0" | ||
| 241 | + } | ||
| 242 | + }, | ||
| 243 | + "deep-is": { | ||
| 244 | + "version": "0.1.3", | ||
| 245 | + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", | ||
| 246 | + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" | ||
| 247 | + }, | ||
| 248 | + "delayed-stream": { | ||
| 249 | + "version": "1.0.0", | ||
| 250 | + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | ||
| 251 | + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" | ||
| 252 | + }, | ||
| 253 | + "depd": { | ||
| 254 | + "version": "1.1.2", | ||
| 255 | + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", | ||
| 256 | + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" | ||
| 257 | + }, | ||
| 258 | + "destroy": { | ||
| 259 | + "version": "1.0.4", | ||
| 260 | + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", | ||
| 261 | + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" | ||
| 262 | + }, | ||
| 263 | + "dom-serializer": { | ||
| 264 | + "version": "0.1.0", | ||
| 265 | + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", | ||
| 266 | + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", | ||
| 267 | + "requires": { | ||
| 268 | + "domelementtype": "~1.1.1", | ||
| 269 | + "entities": "~1.1.1" | ||
| 270 | + }, | ||
| 271 | + "dependencies": { | ||
| 272 | + "domelementtype": { | ||
| 273 | + "version": "1.1.3", | ||
| 274 | + "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", | ||
| 275 | + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" | ||
| 276 | + } | ||
| 277 | + } | ||
| 278 | + }, | ||
| 279 | + "domelementtype": { | ||
| 280 | + "version": "1.3.1", | ||
| 281 | + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", | ||
| 282 | + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" | ||
| 283 | + }, | ||
| 284 | + "domexception": { | ||
| 285 | + "version": "1.0.1", | ||
| 286 | + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", | ||
| 287 | + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", | ||
| 288 | + "requires": { | ||
| 289 | + "webidl-conversions": "^4.0.2" | ||
| 290 | + } | ||
| 291 | + }, | ||
| 292 | + "domhandler": { | ||
| 293 | + "version": "2.4.2", | ||
| 294 | + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", | ||
| 295 | + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", | ||
| 296 | + "requires": { | ||
| 297 | + "domelementtype": "1" | ||
| 298 | + } | ||
| 299 | + }, | ||
| 300 | + "domutils": { | ||
| 301 | + "version": "1.5.1", | ||
| 302 | + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", | ||
| 303 | + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", | ||
| 304 | + "requires": { | ||
| 305 | + "dom-serializer": "0", | ||
| 306 | + "domelementtype": "1" | ||
| 307 | + } | ||
| 308 | + }, | ||
| 309 | + "ecc-jsbn": { | ||
| 310 | + "version": "0.1.2", | ||
| 311 | + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", | ||
| 312 | + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", | ||
| 313 | + "requires": { | ||
| 314 | + "jsbn": "~0.1.0", | ||
| 315 | + "safer-buffer": "^2.1.0" | ||
| 316 | + } | ||
| 317 | + }, | ||
| 318 | + "ee-first": { | ||
| 319 | + "version": "1.1.1", | ||
| 320 | + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | ||
| 321 | + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" | ||
| 322 | + }, | ||
| 323 | + "ejs": { | ||
| 324 | + "version": "2.6.1", | ||
| 325 | + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", | ||
| 326 | + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==" | ||
| 327 | + }, | ||
| 328 | + "encodeurl": { | ||
| 329 | + "version": "1.0.2", | ||
| 330 | + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | ||
| 331 | + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" | ||
| 332 | + }, | ||
| 333 | + "entities": { | ||
| 334 | + "version": "1.1.2", | ||
| 335 | + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", | ||
| 336 | + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" | ||
| 337 | + }, | ||
| 338 | + "escape-html": { | ||
| 339 | + "version": "1.0.3", | ||
| 340 | + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", | ||
| 341 | + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" | ||
| 342 | + }, | ||
| 343 | + "escodegen": { | ||
| 344 | + "version": "1.11.0", | ||
| 345 | + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", | ||
| 346 | + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", | ||
| 347 | + "requires": { | ||
| 348 | + "esprima": "^3.1.3", | ||
| 349 | + "estraverse": "^4.2.0", | ||
| 350 | + "esutils": "^2.0.2", | ||
| 351 | + "optionator": "^0.8.1", | ||
| 352 | + "source-map": "~0.6.1" | ||
| 353 | + } | ||
| 354 | + }, | ||
| 355 | + "esprima": { | ||
| 356 | + "version": "3.1.3", | ||
| 357 | + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", | ||
| 358 | + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" | ||
| 359 | + }, | ||
| 360 | + "estraverse": { | ||
| 361 | + "version": "4.2.0", | ||
| 362 | + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", | ||
| 363 | + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" | ||
| 364 | + }, | ||
| 365 | + "esutils": { | ||
| 366 | + "version": "2.0.2", | ||
| 367 | + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", | ||
| 368 | + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" | ||
| 369 | + }, | ||
| 370 | + "etag": { | ||
| 371 | + "version": "1.8.1", | ||
| 372 | + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", | ||
| 373 | + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" | ||
| 374 | + }, | ||
| 375 | + "express": { | ||
| 376 | + "version": "4.16.4", | ||
| 377 | + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", | ||
| 378 | + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", | ||
| 379 | + "requires": { | ||
| 380 | + "accepts": "~1.3.5", | ||
| 381 | + "array-flatten": "1.1.1", | ||
| 382 | + "body-parser": "1.18.3", | ||
| 383 | + "content-disposition": "0.5.2", | ||
| 384 | + "content-type": "~1.0.4", | ||
| 385 | + "cookie": "0.3.1", | ||
| 386 | + "cookie-signature": "1.0.6", | ||
| 387 | + "debug": "2.6.9", | ||
| 388 | + "depd": "~1.1.2", | ||
| 389 | + "encodeurl": "~1.0.2", | ||
| 390 | + "escape-html": "~1.0.3", | ||
| 391 | + "etag": "~1.8.1", | ||
| 392 | + "finalhandler": "1.1.1", | ||
| 393 | + "fresh": "0.5.2", | ||
| 394 | + "merge-descriptors": "1.0.1", | ||
| 395 | + "methods": "~1.1.2", | ||
| 396 | + "on-finished": "~2.3.0", | ||
| 397 | + "parseurl": "~1.3.2", | ||
| 398 | + "path-to-regexp": "0.1.7", | ||
| 399 | + "proxy-addr": "~2.0.4", | ||
| 400 | + "qs": "6.5.2", | ||
| 401 | + "range-parser": "~1.2.0", | ||
| 402 | + "safe-buffer": "5.1.2", | ||
| 403 | + "send": "0.16.2", | ||
| 404 | + "serve-static": "1.13.2", | ||
| 405 | + "setprototypeof": "1.1.0", | ||
| 406 | + "statuses": "~1.4.0", | ||
| 407 | + "type-is": "~1.6.16", | ||
| 408 | + "utils-merge": "1.0.1", | ||
| 409 | + "vary": "~1.1.2" | ||
| 410 | + } | ||
| 411 | + }, | ||
| 412 | + "extend": { | ||
| 413 | + "version": "3.0.2", | ||
| 414 | + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", | ||
| 415 | + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" | ||
| 416 | + }, | ||
| 417 | + "extsprintf": { | ||
| 418 | + "version": "1.3.0", | ||
| 419 | + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", | ||
| 420 | + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" | ||
| 421 | + }, | ||
| 422 | + "fast-deep-equal": { | ||
| 423 | + "version": "2.0.1", | ||
| 424 | + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", | ||
| 425 | + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" | ||
| 426 | + }, | ||
| 427 | + "fast-json-stable-stringify": { | ||
| 428 | + "version": "2.0.0", | ||
| 429 | + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", | ||
| 430 | + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" | ||
| 431 | + }, | ||
| 432 | + "fast-levenshtein": { | ||
| 433 | + "version": "2.0.6", | ||
| 434 | + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", | ||
| 435 | + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" | ||
| 436 | + }, | ||
| 437 | + "finalhandler": { | ||
| 438 | + "version": "1.1.1", | ||
| 439 | + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", | ||
| 440 | + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", | ||
| 441 | + "requires": { | ||
| 442 | + "debug": "2.6.9", | ||
| 443 | + "encodeurl": "~1.0.2", | ||
| 444 | + "escape-html": "~1.0.3", | ||
| 445 | + "on-finished": "~2.3.0", | ||
| 446 | + "parseurl": "~1.3.2", | ||
| 447 | + "statuses": "~1.4.0", | ||
| 448 | + "unpipe": "~1.0.0" | ||
| 449 | + } | ||
| 450 | + }, | ||
| 451 | + "forever-agent": { | ||
| 452 | + "version": "0.6.1", | ||
| 453 | + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", | ||
| 454 | + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" | ||
| 455 | + }, | ||
| 456 | + "form-data": { | ||
| 457 | + "version": "2.3.3", | ||
| 458 | + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", | ||
| 459 | + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", | ||
| 460 | + "requires": { | ||
| 461 | + "asynckit": "^0.4.0", | ||
| 462 | + "combined-stream": "^1.0.6", | ||
| 463 | + "mime-types": "^2.1.12" | ||
| 464 | + } | ||
| 465 | + }, | ||
| 466 | + "forwarded": { | ||
| 467 | + "version": "0.1.2", | ||
| 468 | + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", | ||
| 469 | + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" | ||
| 470 | + }, | ||
| 471 | + "fresh": { | ||
| 472 | + "version": "0.5.2", | ||
| 473 | + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", | ||
| 474 | + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" | ||
| 475 | + }, | ||
| 476 | + "getpass": { | ||
| 477 | + "version": "0.1.7", | ||
| 478 | + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", | ||
| 479 | + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", | ||
| 480 | + "requires": { | ||
| 481 | + "assert-plus": "^1.0.0" | ||
| 482 | + } | ||
| 483 | + }, | ||
| 484 | + "har-schema": { | ||
| 485 | + "version": "2.0.0", | ||
| 486 | + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", | ||
| 487 | + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" | ||
| 488 | + }, | ||
| 489 | + "har-validator": { | ||
| 490 | + "version": "5.1.3", | ||
| 491 | + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", | ||
| 492 | + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", | ||
| 493 | + "requires": { | ||
| 494 | + "ajv": "^6.5.5", | ||
| 495 | + "har-schema": "^2.0.0" | ||
| 496 | + } | ||
| 497 | + }, | ||
| 498 | + "html-encoding-sniffer": { | ||
| 499 | + "version": "1.0.2", | ||
| 500 | + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", | ||
| 501 | + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", | ||
| 502 | + "requires": { | ||
| 503 | + "whatwg-encoding": "^1.0.1" | ||
| 504 | + } | ||
| 505 | + }, | ||
| 506 | + "htmlparser2": { | ||
| 507 | + "version": "3.10.0", | ||
| 508 | + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", | ||
| 509 | + "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", | ||
| 510 | + "requires": { | ||
| 511 | + "domelementtype": "^1.3.0", | ||
| 512 | + "domhandler": "^2.3.0", | ||
| 513 | + "domutils": "^1.5.1", | ||
| 514 | + "entities": "^1.1.1", | ||
| 515 | + "inherits": "^2.0.1", | ||
| 516 | + "readable-stream": "^3.0.6" | ||
| 517 | + } | ||
| 518 | + }, | ||
| 519 | + "http-errors": { | ||
| 520 | + "version": "1.6.3", | ||
| 521 | + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", | ||
| 522 | + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", | ||
| 523 | + "requires": { | ||
| 524 | + "depd": "~1.1.2", | ||
| 525 | + "inherits": "2.0.3", | ||
| 526 | + "setprototypeof": "1.1.0", | ||
| 527 | + "statuses": ">= 1.4.0 < 2" | ||
| 528 | + } | ||
| 529 | + }, | ||
| 530 | + "http-signature": { | ||
| 531 | + "version": "1.2.0", | ||
| 532 | + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", | ||
| 533 | + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", | ||
| 534 | + "requires": { | ||
| 535 | + "assert-plus": "^1.0.0", | ||
| 536 | + "jsprim": "^1.2.2", | ||
| 537 | + "sshpk": "^1.7.0" | ||
| 538 | + } | ||
| 539 | + }, | ||
| 540 | + "iconv-lite": { | ||
| 541 | + "version": "0.4.23", | ||
| 542 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", | ||
| 543 | + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", | ||
| 544 | + "requires": { | ||
| 545 | + "safer-buffer": ">= 2.1.2 < 3" | ||
| 546 | + } | ||
| 547 | + }, | ||
| 548 | + "inherits": { | ||
| 549 | + "version": "2.0.3", | ||
| 550 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", | ||
| 551 | + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" | ||
| 552 | + }, | ||
| 553 | + "ipaddr.js": { | ||
| 554 | + "version": "1.8.0", | ||
| 555 | + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", | ||
| 556 | + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" | ||
| 557 | + }, | ||
| 558 | + "is-typedarray": { | ||
| 559 | + "version": "1.0.0", | ||
| 560 | + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", | ||
| 561 | + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" | ||
| 562 | + }, | ||
| 563 | + "isstream": { | ||
| 564 | + "version": "0.1.2", | ||
| 565 | + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", | ||
| 566 | + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" | ||
| 567 | + }, | ||
| 568 | + "jquery": { | ||
| 569 | + "version": "3.3.1", | ||
| 570 | + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", | ||
| 571 | + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" | ||
| 572 | + }, | ||
| 573 | + "jsbn": { | ||
| 574 | + "version": "0.1.1", | ||
| 575 | + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", | ||
| 576 | + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" | ||
| 577 | + }, | ||
| 578 | + "jsdom": { | ||
| 579 | + "version": "13.0.0", | ||
| 580 | + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-13.0.0.tgz", | ||
| 581 | + "integrity": "sha512-Kmq4ASMNkgpY+YufE322EnIKoiz0UWY2DRkKlU7d5YrIW4xiVRhWFrZV1fr6w/ZNxQ50wGAH5gGRzydgnmkkvw==", | ||
| 582 | + "requires": { | ||
| 583 | + "abab": "^2.0.0", | ||
| 584 | + "acorn": "^6.0.2", | ||
| 585 | + "acorn-globals": "^4.3.0", | ||
| 586 | + "array-equal": "^1.0.0", | ||
| 587 | + "cssom": "^0.3.4", | ||
| 588 | + "cssstyle": "^1.1.1", | ||
| 589 | + "data-urls": "^1.0.1", | ||
| 590 | + "domexception": "^1.0.1", | ||
| 591 | + "escodegen": "^1.11.0", | ||
| 592 | + "html-encoding-sniffer": "^1.0.2", | ||
| 593 | + "nwsapi": "^2.0.9", | ||
| 594 | + "parse5": "5.1.0", | ||
| 595 | + "pn": "^1.1.0", | ||
| 596 | + "request": "^2.88.0", | ||
| 597 | + "request-promise-native": "^1.0.5", | ||
| 598 | + "saxes": "^3.1.3", | ||
| 599 | + "symbol-tree": "^3.2.2", | ||
| 600 | + "tough-cookie": "^2.4.3", | ||
| 601 | + "w3c-hr-time": "^1.0.1", | ||
| 602 | + "w3c-xmlserializer": "^1.0.0", | ||
| 603 | + "webidl-conversions": "^4.0.2", | ||
| 604 | + "whatwg-encoding": "^1.0.5", | ||
| 605 | + "whatwg-mimetype": "^2.2.0", | ||
| 606 | + "whatwg-url": "^7.0.0", | ||
| 607 | + "ws": "^6.1.0", | ||
| 608 | + "xml-name-validator": "^3.0.0" | ||
| 609 | + }, | ||
| 610 | + "dependencies": { | ||
| 611 | + "parse5": { | ||
| 612 | + "version": "5.1.0", | ||
| 613 | + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", | ||
| 614 | + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" | ||
| 615 | + } | ||
| 616 | + } | ||
| 617 | + }, | ||
| 618 | + "json-schema": { | ||
| 619 | + "version": "0.2.3", | ||
| 620 | + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", | ||
| 621 | + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" | ||
| 622 | + }, | ||
| 623 | + "json-schema-traverse": { | ||
| 624 | + "version": "0.4.1", | ||
| 625 | + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", | ||
| 626 | + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" | ||
| 627 | + }, | ||
| 628 | + "json-stringify-safe": { | ||
| 629 | + "version": "5.0.1", | ||
| 630 | + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | ||
| 631 | + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" | ||
| 632 | + }, | ||
| 633 | + "jsprim": { | ||
| 634 | + "version": "1.4.1", | ||
| 635 | + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", | ||
| 636 | + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", | ||
| 637 | + "requires": { | ||
| 638 | + "assert-plus": "1.0.0", | ||
| 639 | + "extsprintf": "1.3.0", | ||
| 640 | + "json-schema": "0.2.3", | ||
| 641 | + "verror": "1.10.0" | ||
| 642 | + } | ||
| 643 | + }, | ||
| 644 | + "levn": { | ||
| 645 | + "version": "0.3.0", | ||
| 646 | + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", | ||
| 647 | + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", | ||
| 648 | + "requires": { | ||
| 649 | + "prelude-ls": "~1.1.2", | ||
| 650 | + "type-check": "~0.3.2" | ||
| 651 | + } | ||
| 652 | + }, | ||
| 653 | + "lodash": { | ||
| 654 | + "version": "4.17.11", | ||
| 655 | + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", | ||
| 656 | + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" | ||
| 657 | + }, | ||
| 658 | + "lodash.sortby": { | ||
| 659 | + "version": "4.7.0", | ||
| 660 | + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", | ||
| 661 | + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" | ||
| 662 | + }, | ||
| 663 | + "media-typer": { | ||
| 664 | + "version": "0.3.0", | ||
| 665 | + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | ||
| 666 | + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" | ||
| 667 | + }, | ||
| 668 | + "merge-descriptors": { | ||
| 669 | + "version": "1.0.1", | ||
| 670 | + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", | ||
| 671 | + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" | ||
| 672 | + }, | ||
| 673 | + "methods": { | ||
| 674 | + "version": "1.1.2", | ||
| 675 | + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", | ||
| 676 | + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" | ||
| 677 | + }, | ||
| 678 | + "mime": { | ||
| 679 | + "version": "1.4.1", | ||
| 680 | + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", | ||
| 681 | + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" | ||
| 682 | + }, | ||
| 683 | + "mime-db": { | ||
| 684 | + "version": "1.37.0", | ||
| 685 | + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", | ||
| 686 | + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" | ||
| 687 | + }, | ||
| 688 | + "mime-types": { | ||
| 689 | + "version": "2.1.21", | ||
| 690 | + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", | ||
| 691 | + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", | ||
| 692 | + "requires": { | ||
| 693 | + "mime-db": "~1.37.0" | ||
| 694 | + } | ||
| 695 | + }, | ||
| 696 | + "ms": { | ||
| 697 | + "version": "2.0.0", | ||
| 698 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||
| 699 | + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | ||
| 700 | + }, | ||
| 701 | + "negotiator": { | ||
| 702 | + "version": "0.6.1", | ||
| 703 | + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", | ||
| 704 | + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" | ||
| 705 | + }, | ||
| 706 | + "nth-check": { | ||
| 707 | + "version": "1.0.2", | ||
| 708 | + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", | ||
| 709 | + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", | ||
| 710 | + "requires": { | ||
| 711 | + "boolbase": "~1.0.0" | ||
| 712 | + } | ||
| 713 | + }, | ||
| 714 | + "nwsapi": { | ||
| 715 | + "version": "2.0.9", | ||
| 716 | + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz", | ||
| 717 | + "integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==" | ||
| 718 | + }, | ||
| 719 | + "oauth-sign": { | ||
| 720 | + "version": "0.9.0", | ||
| 721 | + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", | ||
| 722 | + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" | ||
| 723 | + }, | ||
| 724 | + "on-finished": { | ||
| 725 | + "version": "2.3.0", | ||
| 726 | + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", | ||
| 727 | + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", | ||
| 728 | + "requires": { | ||
| 729 | + "ee-first": "1.1.1" | ||
| 730 | + } | ||
| 731 | + }, | ||
| 732 | + "optionator": { | ||
| 733 | + "version": "0.8.2", | ||
| 734 | + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", | ||
| 735 | + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", | ||
| 736 | + "requires": { | ||
| 737 | + "deep-is": "~0.1.3", | ||
| 738 | + "fast-levenshtein": "~2.0.4", | ||
| 739 | + "levn": "~0.3.0", | ||
| 740 | + "prelude-ls": "~1.1.2", | ||
| 741 | + "type-check": "~0.3.2", | ||
| 742 | + "wordwrap": "~1.0.0" | ||
| 743 | + } | ||
| 744 | + }, | ||
| 745 | + "parse5": { | ||
| 746 | + "version": "3.0.3", | ||
| 747 | + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", | ||
| 748 | + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", | ||
| 749 | + "requires": { | ||
| 750 | + "@types/node": "*" | ||
| 751 | + } | ||
| 752 | + }, | ||
| 753 | + "parseurl": { | ||
| 754 | + "version": "1.3.2", | ||
| 755 | + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", | ||
| 756 | + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" | ||
| 757 | + }, | ||
| 758 | + "path-to-regexp": { | ||
| 759 | + "version": "0.1.7", | ||
| 760 | + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||
| 761 | + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" | ||
| 762 | + }, | ||
| 763 | + "performance-now": { | ||
| 764 | + "version": "2.1.0", | ||
| 765 | + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", | ||
| 766 | + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" | ||
| 767 | + }, | ||
| 768 | + "pn": { | ||
| 769 | + "version": "1.1.0", | ||
| 770 | + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", | ||
| 771 | + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" | ||
| 772 | + }, | ||
| 773 | + "prelude-ls": { | ||
| 774 | + "version": "1.1.2", | ||
| 775 | + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", | ||
| 776 | + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" | ||
| 777 | + }, | ||
| 778 | + "proxy-addr": { | ||
| 779 | + "version": "2.0.4", | ||
| 780 | + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", | ||
| 781 | + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", | ||
| 782 | + "requires": { | ||
| 783 | + "forwarded": "~0.1.2", | ||
| 784 | + "ipaddr.js": "1.8.0" | ||
| 785 | + } | ||
| 786 | + }, | ||
| 787 | + "psl": { | ||
| 788 | + "version": "1.1.31", | ||
| 789 | + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", | ||
| 790 | + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" | ||
| 791 | + }, | ||
| 792 | + "punycode": { | ||
| 793 | + "version": "2.1.1", | ||
| 794 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", | ||
| 795 | + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" | ||
| 796 | + }, | ||
| 797 | + "qs": { | ||
| 798 | + "version": "6.5.2", | ||
| 799 | + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", | ||
| 800 | + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" | ||
| 801 | + }, | ||
| 802 | + "range-parser": { | ||
| 803 | + "version": "1.2.0", | ||
| 804 | + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", | ||
| 805 | + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" | ||
| 806 | + }, | ||
| 807 | + "raw-body": { | ||
| 808 | + "version": "2.3.3", | ||
| 809 | + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", | ||
| 810 | + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", | ||
| 811 | + "requires": { | ||
| 812 | + "bytes": "3.0.0", | ||
| 813 | + "http-errors": "1.6.3", | ||
| 814 | + "iconv-lite": "0.4.23", | ||
| 815 | + "unpipe": "1.0.0" | ||
| 816 | + } | ||
| 817 | + }, | ||
| 818 | + "readable-stream": { | ||
| 819 | + "version": "3.0.6", | ||
| 820 | + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz", | ||
| 821 | + "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==", | ||
| 822 | + "requires": { | ||
| 823 | + "inherits": "^2.0.3", | ||
| 824 | + "string_decoder": "^1.1.1", | ||
| 825 | + "util-deprecate": "^1.0.1" | ||
| 826 | + } | ||
| 827 | + }, | ||
| 828 | + "request": { | ||
| 829 | + "version": "2.88.0", | ||
| 830 | + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", | ||
| 831 | + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", | ||
| 832 | + "requires": { | ||
| 833 | + "aws-sign2": "~0.7.0", | ||
| 834 | + "aws4": "^1.8.0", | ||
| 835 | + "caseless": "~0.12.0", | ||
| 836 | + "combined-stream": "~1.0.6", | ||
| 837 | + "extend": "~3.0.2", | ||
| 838 | + "forever-agent": "~0.6.1", | ||
| 839 | + "form-data": "~2.3.2", | ||
| 840 | + "har-validator": "~5.1.0", | ||
| 841 | + "http-signature": "~1.2.0", | ||
| 842 | + "is-typedarray": "~1.0.0", | ||
| 843 | + "isstream": "~0.1.2", | ||
| 844 | + "json-stringify-safe": "~5.0.1", | ||
| 845 | + "mime-types": "~2.1.19", | ||
| 846 | + "oauth-sign": "~0.9.0", | ||
| 847 | + "performance-now": "^2.1.0", | ||
| 848 | + "qs": "~6.5.2", | ||
| 849 | + "safe-buffer": "^5.1.2", | ||
| 850 | + "tough-cookie": "~2.4.3", | ||
| 851 | + "tunnel-agent": "^0.6.0", | ||
| 852 | + "uuid": "^3.3.2" | ||
| 853 | + } | ||
| 854 | + }, | ||
| 855 | + "request-promise-core": { | ||
| 856 | + "version": "1.1.1", | ||
| 857 | + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", | ||
| 858 | + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", | ||
| 859 | + "requires": { | ||
| 860 | + "lodash": "^4.13.1" | ||
| 861 | + } | ||
| 862 | + }, | ||
| 863 | + "request-promise-native": { | ||
| 864 | + "version": "1.0.5", | ||
| 865 | + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", | ||
| 866 | + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", | ||
| 867 | + "requires": { | ||
| 868 | + "request-promise-core": "1.1.1", | ||
| 869 | + "stealthy-require": "^1.1.0", | ||
| 870 | + "tough-cookie": ">=2.3.3" | ||
| 871 | + } | ||
| 872 | + }, | ||
| 873 | + "safe-buffer": { | ||
| 874 | + "version": "5.1.2", | ||
| 875 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||
| 876 | + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||
| 877 | + }, | ||
| 878 | + "safer-buffer": { | ||
| 879 | + "version": "2.1.2", | ||
| 880 | + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||
| 881 | + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | ||
| 882 | + }, | ||
| 883 | + "saxes": { | ||
| 884 | + "version": "3.1.4", | ||
| 885 | + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.4.tgz", | ||
| 886 | + "integrity": "sha512-GVZmLJnkS4Vl8Pe9o4nc5ALZ615VOVxCmea8Cs0l+8GZw3RQ5XGOSUomIUfuZuk4Todo44v4y+HY1EATkDDiZg==", | ||
| 887 | + "requires": { | ||
| 888 | + "xmlchars": "^1.3.1" | ||
| 889 | + } | ||
| 890 | + }, | ||
| 891 | + "send": { | ||
| 892 | + "version": "0.16.2", | ||
| 893 | + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", | ||
| 894 | + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", | ||
| 895 | + "requires": { | ||
| 896 | + "debug": "2.6.9", | ||
| 897 | + "depd": "~1.1.2", | ||
| 898 | + "destroy": "~1.0.4", | ||
| 899 | + "encodeurl": "~1.0.2", | ||
| 900 | + "escape-html": "~1.0.3", | ||
| 901 | + "etag": "~1.8.1", | ||
| 902 | + "fresh": "0.5.2", | ||
| 903 | + "http-errors": "~1.6.2", | ||
| 904 | + "mime": "1.4.1", | ||
| 905 | + "ms": "2.0.0", | ||
| 906 | + "on-finished": "~2.3.0", | ||
| 907 | + "range-parser": "~1.2.0", | ||
| 908 | + "statuses": "~1.4.0" | ||
| 909 | + } | ||
| 910 | + }, | ||
| 911 | + "serve-static": { | ||
| 912 | + "version": "1.13.2", | ||
| 913 | + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", | ||
| 914 | + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", | ||
| 915 | + "requires": { | ||
| 916 | + "encodeurl": "~1.0.2", | ||
| 917 | + "escape-html": "~1.0.3", | ||
| 918 | + "parseurl": "~1.3.2", | ||
| 919 | + "send": "0.16.2" | ||
| 920 | + } | ||
| 921 | + }, | ||
| 922 | + "setprototypeof": { | ||
| 923 | + "version": "1.1.0", | ||
| 924 | + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", | ||
| 925 | + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" | ||
| 926 | + }, | ||
| 927 | + "source-map": { | ||
| 928 | + "version": "0.6.1", | ||
| 929 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||
| 930 | + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" | ||
| 931 | + }, | ||
| 932 | + "sshpk": { | ||
| 933 | + "version": "1.15.2", | ||
| 934 | + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", | ||
| 935 | + "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", | ||
| 936 | + "requires": { | ||
| 937 | + "asn1": "~0.2.3", | ||
| 938 | + "assert-plus": "^1.0.0", | ||
| 939 | + "bcrypt-pbkdf": "^1.0.0", | ||
| 940 | + "dashdash": "^1.12.0", | ||
| 941 | + "ecc-jsbn": "~0.1.1", | ||
| 942 | + "getpass": "^0.1.1", | ||
| 943 | + "jsbn": "~0.1.0", | ||
| 944 | + "safer-buffer": "^2.0.2", | ||
| 945 | + "tweetnacl": "~0.14.0" | ||
| 946 | + } | ||
| 947 | + }, | ||
| 948 | + "statuses": { | ||
| 949 | + "version": "1.4.0", | ||
| 950 | + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", | ||
| 951 | + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" | ||
| 952 | + }, | ||
| 953 | + "stealthy-require": { | ||
| 954 | + "version": "1.1.1", | ||
| 955 | + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", | ||
| 956 | + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" | ||
| 957 | + }, | ||
| 958 | + "string_decoder": { | ||
| 959 | + "version": "1.2.0", | ||
| 960 | + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", | ||
| 961 | + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", | ||
| 962 | + "requires": { | ||
| 963 | + "safe-buffer": "~5.1.0" | ||
| 964 | + } | ||
| 965 | + }, | ||
| 966 | + "symbol-tree": { | ||
| 967 | + "version": "3.2.2", | ||
| 968 | + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", | ||
| 969 | + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" | ||
| 970 | + }, | ||
| 971 | + "tough-cookie": { | ||
| 972 | + "version": "2.4.3", | ||
| 973 | + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", | ||
| 974 | + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", | ||
| 975 | + "requires": { | ||
| 976 | + "psl": "^1.1.24", | ||
| 977 | + "punycode": "^1.4.1" | ||
| 978 | + }, | ||
| 979 | + "dependencies": { | ||
| 980 | + "punycode": { | ||
| 981 | + "version": "1.4.1", | ||
| 982 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", | ||
| 983 | + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" | ||
| 984 | + } | ||
| 985 | + } | ||
| 986 | + }, | ||
| 987 | + "tr46": { | ||
| 988 | + "version": "1.0.1", | ||
| 989 | + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", | ||
| 990 | + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", | ||
| 991 | + "requires": { | ||
| 992 | + "punycode": "^2.1.0" | ||
| 993 | + } | ||
| 994 | + }, | ||
| 995 | + "tunnel-agent": { | ||
| 996 | + "version": "0.6.0", | ||
| 997 | + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", | ||
| 998 | + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", | ||
| 999 | + "requires": { | ||
| 1000 | + "safe-buffer": "^5.0.1" | ||
| 1001 | + } | ||
| 1002 | + }, | ||
| 1003 | + "tweetnacl": { | ||
| 1004 | + "version": "0.14.5", | ||
| 1005 | + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", | ||
| 1006 | + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" | ||
| 1007 | + }, | ||
| 1008 | + "type-check": { | ||
| 1009 | + "version": "0.3.2", | ||
| 1010 | + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", | ||
| 1011 | + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", | ||
| 1012 | + "requires": { | ||
| 1013 | + "prelude-ls": "~1.1.2" | ||
| 1014 | + } | ||
| 1015 | + }, | ||
| 1016 | + "type-is": { | ||
| 1017 | + "version": "1.6.16", | ||
| 1018 | + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", | ||
| 1019 | + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", | ||
| 1020 | + "requires": { | ||
| 1021 | + "media-typer": "0.3.0", | ||
| 1022 | + "mime-types": "~2.1.18" | ||
| 1023 | + } | ||
| 1024 | + }, | ||
| 1025 | + "unpipe": { | ||
| 1026 | + "version": "1.0.0", | ||
| 1027 | + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | ||
| 1028 | + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" | ||
| 1029 | + }, | ||
| 1030 | + "uri-js": { | ||
| 1031 | + "version": "4.2.2", | ||
| 1032 | + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", | ||
| 1033 | + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", | ||
| 1034 | + "requires": { | ||
| 1035 | + "punycode": "^2.1.0" | ||
| 1036 | + } | ||
| 1037 | + }, | ||
| 1038 | + "util-deprecate": { | ||
| 1039 | + "version": "1.0.2", | ||
| 1040 | + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||
| 1041 | + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | ||
| 1042 | + }, | ||
| 1043 | + "utils-merge": { | ||
| 1044 | + "version": "1.0.1", | ||
| 1045 | + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||
| 1046 | + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" | ||
| 1047 | + }, | ||
| 1048 | + "uuid": { | ||
| 1049 | + "version": "3.3.2", | ||
| 1050 | + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", | ||
| 1051 | + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" | ||
| 1052 | + }, | ||
| 1053 | + "vary": { | ||
| 1054 | + "version": "1.1.2", | ||
| 1055 | + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", | ||
| 1056 | + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" | ||
| 1057 | + }, | ||
| 1058 | + "verror": { | ||
| 1059 | + "version": "1.10.0", | ||
| 1060 | + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", | ||
| 1061 | + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", | ||
| 1062 | + "requires": { | ||
| 1063 | + "assert-plus": "^1.0.0", | ||
| 1064 | + "core-util-is": "1.0.2", | ||
| 1065 | + "extsprintf": "^1.2.0" | ||
| 1066 | + } | ||
| 1067 | + }, | ||
| 1068 | + "w3c-hr-time": { | ||
| 1069 | + "version": "1.0.1", | ||
| 1070 | + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", | ||
| 1071 | + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", | ||
| 1072 | + "requires": { | ||
| 1073 | + "browser-process-hrtime": "^0.1.2" | ||
| 1074 | + } | ||
| 1075 | + }, | ||
| 1076 | + "w3c-xmlserializer": { | ||
| 1077 | + "version": "1.0.1", | ||
| 1078 | + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.0.1.tgz", | ||
| 1079 | + "integrity": "sha512-XZGI1OH/OLQr/NaJhhPmzhngwcAnZDLytsvXnRmlYeRkmbb0I7sqFFA22erq4WQR0sUu17ZSQOAV9mFwCqKRNg==", | ||
| 1080 | + "requires": { | ||
| 1081 | + "domexception": "^1.0.1", | ||
| 1082 | + "webidl-conversions": "^4.0.2", | ||
| 1083 | + "xml-name-validator": "^3.0.0" | ||
| 1084 | + } | ||
| 1085 | + }, | ||
| 1086 | + "webidl-conversions": { | ||
| 1087 | + "version": "4.0.2", | ||
| 1088 | + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", | ||
| 1089 | + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" | ||
| 1090 | + }, | ||
| 1091 | + "whatwg-encoding": { | ||
| 1092 | + "version": "1.0.5", | ||
| 1093 | + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", | ||
| 1094 | + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", | ||
| 1095 | + "requires": { | ||
| 1096 | + "iconv-lite": "0.4.24" | ||
| 1097 | + }, | ||
| 1098 | + "dependencies": { | ||
| 1099 | + "iconv-lite": { | ||
| 1100 | + "version": "0.4.24", | ||
| 1101 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | ||
| 1102 | + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | ||
| 1103 | + "requires": { | ||
| 1104 | + "safer-buffer": ">= 2.1.2 < 3" | ||
| 1105 | + } | ||
| 1106 | + } | ||
| 1107 | + } | ||
| 1108 | + }, | ||
| 1109 | + "whatwg-mimetype": { | ||
| 1110 | + "version": "2.3.0", | ||
| 1111 | + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", | ||
| 1112 | + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" | ||
| 1113 | + }, | ||
| 1114 | + "whatwg-url": { | ||
| 1115 | + "version": "7.0.0", | ||
| 1116 | + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", | ||
| 1117 | + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", | ||
| 1118 | + "requires": { | ||
| 1119 | + "lodash.sortby": "^4.7.0", | ||
| 1120 | + "tr46": "^1.0.1", | ||
| 1121 | + "webidl-conversions": "^4.0.2" | ||
| 1122 | + } | ||
| 1123 | + }, | ||
| 1124 | + "wordwrap": { | ||
| 1125 | + "version": "1.0.0", | ||
| 1126 | + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", | ||
| 1127 | + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" | ||
| 1128 | + }, | ||
| 1129 | + "ws": { | ||
| 1130 | + "version": "6.1.2", | ||
| 1131 | + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", | ||
| 1132 | + "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", | ||
| 1133 | + "requires": { | ||
| 1134 | + "async-limiter": "~1.0.0" | ||
| 1135 | + } | ||
| 1136 | + }, | ||
| 1137 | + "xml-name-validator": { | ||
| 1138 | + "version": "3.0.0", | ||
| 1139 | + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", | ||
| 1140 | + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" | ||
| 1141 | + }, | ||
| 1142 | + "xmlchars": { | ||
| 1143 | + "version": "1.3.1", | ||
| 1144 | + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-1.3.1.tgz", | ||
| 1145 | + "integrity": "sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw==" | ||
| 1146 | + } | ||
| 1147 | + } | ||
| 1148 | +} |
router/main.js
0 → 100644
| 1 | +module.exports = function(app,fs) | ||
| 2 | +{ | ||
| 3 | + app.get('/',function(req,res){ | ||
| 4 | +res.render('index',{top: '상대 정보를 입력해 주세요.', | ||
| 5 | +ejs_momentum: ' ', | ||
| 6 | +ejs_terran_proficiency: ' ', | ||
| 7 | +ejs_zerg_proficiency: ' ', | ||
| 8 | +ejs_protoss_proficiency: ' ', | ||
| 9 | +ejs_primary_race: ' ', | ||
| 10 | +ejs_win_rate: ' '}); | ||
| 11 | +}); | ||
| 12 | + | ||
| 13 | +app.get('/recommend',function(req,res,next){ | ||
| 14 | + | ||
| 15 | + | ||
| 16 | + var readline=require('readline');//입력받기 위한 모듈 | ||
| 17 | + var r=readline.createInterface({input:process.stdin,output:process.stdout});//키보드 입출력 정의 | ||
| 18 | + var rtfw1="http://www.rankedftw.com/search/?name=";//rtfw에서 기본 검색 url | ||
| 19 | + var rtfw2="http://www.rankedftw.com/player/"//rtfw 번호 기반 특정 플레이어 검색 url | ||
| 20 | + | ||
| 21 | + // | ||
| 22 | + var cheerio=require('cheerio');//cheerio모듈 사용 | ||
| 23 | + var request=require('request');//request모듈 사용 | ||
| 24 | + var fs=require('fs');//파일시스템 사용 | ||
| 25 | + // | ||
| 26 | + //request 1 variable | ||
| 27 | + var username='';//username문자열 선언 | ||
| 28 | + var userleague='';//userleague 문자열 선언 | ||
| 29 | + var userregion='';//userregion 문자열 선언 | ||
| 30 | + var usernumber='';//usernumber 문자열 선언 | ||
| 31 | + // | ||
| 32 | + //request 2 variable | ||
| 33 | + | ||
| 34 | + // | ||
| 35 | + //request 3-1 variable | ||
| 36 | + | ||
| 37 | + // | ||
| 38 | + //request 3-2 variable | ||
| 39 | + | ||
| 40 | + // | ||
| 41 | + //request 3-3 variable | ||
| 42 | + | ||
| 43 | + // | ||
| 44 | + //system message | ||
| 45 | + | ||
| 46 | + // | ||
| 47 | + //delivering variable | ||
| 48 | + var momentum;//기세 | ||
| 49 | + var terran_proficiency;//테란 숙련도 | ||
| 50 | + var zerg_proficiency;//저그 숙련도 | ||
| 51 | + var protoss_proficiency;//프로토스 숙련도 | ||
| 52 | + var primary_race;//주 종족 | ||
| 53 | + var win_rate;//시즌 전체 승률 | ||
| 54 | + | ||
| 55 | + var region;//서버 | ||
| 56 | + var league;//리그 | ||
| 57 | + var myrace;//내 종족 | ||
| 58 | + var enemyrace;//상대 종족 | ||
| 59 | + var enemyname;//상대 이름 | ||
| 60 | + | ||
| 61 | + var recommend;//추천빌드(운영/타이밍/올인) | ||
| 62 | + // | ||
| 63 | +//var answer=req.getParameter("name"); | ||
| 64 | +region=req.query.region; | ||
| 65 | +league=req.query.league; | ||
| 66 | +myrace=req.query.myRace; | ||
| 67 | +enemyrace=req.query.enemyRace; | ||
| 68 | +enemyname=req.query.enemyName; | ||
| 69 | + | ||
| 70 | +console.log("query"+enemyname); | ||
| 71 | + | ||
| 72 | + | ||
| 73 | +// r.question("분석을 원하는 아이디를 입력하세요 : ",function(answer){//question메소드에서 callback함수 생성 | ||
| 74 | + //question은 에러 제어 만들면 안된다. | ||
| 75 | + console.log("r.question processing");//callback함수란 이벤트가 왔을 때 실행되는 함수이다. answer에 검색을 원하는 아이디가 담겨있다. | ||
| 76 | + rtfw1=rtfw1+enemyname;//검색 url 구성 | ||
| 77 | + console.log(rtfw1);//테스트용 : 검색 url 확인 | ||
| 78 | + // | ||
| 79 | + request(rtfw1,(error,response,body)=>{//rtfw url 불러오기 request 1 | ||
| 80 | + if(error){throw error};//에러처리 | ||
| 81 | + console.log("request 1 processing"); | ||
| 82 | + console.log(body); | ||
| 83 | + let $ = cheerio.load(body);//rtfw가 body이다. $로 jquery방식으로 html탐색 | ||
| 84 | + $('ul').find('a').each(function(index,elem){//ul 태그 아래 a태그를 찾는다. | ||
| 85 | + username=$(this).find('.name').text().trim();//name클래스를 찾아 공백빼고 텍스트화 | ||
| 86 | + userleague=$(this).find('.league').text().trim();//league클래스를 찾아 공백빼고 텍스트화 | ||
| 87 | + userregion=$(this).find('.region').text().trim();//region클래스를 찾아 공백빼고 텍스트화 | ||
| 88 | + if((username===enemyname)&&(userregion===region)){//아직 리그 구현 안함-리그는 그림으로 비교 | ||
| 89 | + console.log(`${username}`);//테스트용 : 유저네임 출력 | ||
| 90 | + console.log(`${userregion}`);//테스트용 : 유저리전 출력 | ||
| 91 | + var usernumber=$(this).toString().slice(29,43);//rtfw에서 사용하는 사용자번호를 문자열로 넉넉히 자름 | ||
| 92 | + var localindex1=usernumber.search('/');//첫번째 슬레시 발견하는 인덱스 검출 | ||
| 93 | + usernumber=usernumber.slice(localindex1+1);//앞부분 슬래시 자른다. | ||
| 94 | + var localindex2=usernumber.search('/')-localindex1+1;//두번째 슬레시 발견하는 인덱스 검출 | ||
| 95 | + usernumber=usernumber.slice(0,localindex2);//뒷부분 슬래시 자른다. | ||
| 96 | + console.log(`${usernumber}`);//테스트용 : 유저넘버 출력 | ||
| 97 | + if(rtfw2.length>33){//하나라도 붙어있으면 | ||
| 98 | + rtfw2=rtfw2;//아무것도 안한다. | ||
| 99 | + }else{//그렇지않고 아무것도 안붙어있으면 | ||
| 100 | + rtfw2=rtfw2+usernumber+'/';//rtfw2 url갱신 | ||
| 101 | + } | ||
| 102 | + console.log(rtfw2);//테스트용 : rtfw2 출력 | ||
| 103 | + }//이름서버리그비교if종료 | ||
| 104 | + });//ul a find문 종료 | ||
| 105 | + | ||
| 106 | + var profileID=''; | ||
| 107 | + request(rtfw2,(error,response,body)=>{//rtfw2 url 불러오기 request 2 | ||
| 108 | + if(error){throw error};//에러처리 | ||
| 109 | + console.log('request2 processing');//테스트용 : request2 실행여부 출력 | ||
| 110 | + let $ = cheerio.load(body);//rtfw2가 body이다. $로 jquery방식으로 html탐색 | ||
| 111 | + $('.content').find('.bnet-link').each(function(index,elem){//content 클래스 안의 bnet-link클래스를 포함하는 요소를 찾는다. | ||
| 112 | + profileID=$(this).toString().slice(62,72);//얻고자 하는 profileID를 포함하여 앞뒤로 적당히 자른다. | ||
| 113 | + var localindex3=profileID.search('/');//첫번째 슬레시 발견하는 인덱스 검출 | ||
| 114 | + profileID=profileID.slice(localindex3+1);//앞부분 슬래시 자른다. | ||
| 115 | + var localindex4=profileID.search('/')-localindex3;//두번째 슬레시 발견하는 인덱스 검출 | ||
| 116 | + profileID=profileID.slice(0,localindex4);//뒷부분 슬래시 자른다. | ||
| 117 | + console.log(`${profileID}`);//테스트용 : profileID 출력 | ||
| 118 | + //profileID=encodeURI(encodeURIComponent(profileID));//한글처리부 | ||
| 119 | + });//a bnetlink 종료 | ||
| 120 | + //console.log(`${profileID}`);//테스트용 : profileID 출력 | ||
| 121 | + | ||
| 122 | + var match_history_1="https://kr.api.blizzard.com/sc2/legacy/profile/3/1/"//매치히스토리 url 앞부분 | ||
| 123 | + var match_history_2="/matches?access_token=US115TlhyMaYe3d3v4t6j17Umw1CfsvCIV"//매치히스토리 url 뒷부분 | ||
| 124 | + var match_history_url=match_history_1+profileID+match_history_2;//매치히스토리 url 구성 | ||
| 125 | + console.log(match_history_url);//테스트용 : 매치히스토리 url 출력 | ||
| 126 | + | ||
| 127 | + request(match_history_url,(error,response,body)=>{//match history request request 3 | ||
| 128 | + if(error){throw error};//에러처리 | ||
| 129 | + console.log('request3 processing');//테스트용 : request 작동여부 출력 | ||
| 130 | + | ||
| 131 | + var obj1=JSON.parse(body);//request 결과를 JSON objerct로 변환 | ||
| 132 | + //console.log(obj.matches [0].map);//테스트용 : 하나에 접근 | ||
| 133 | + $(obj1.matches).each(function(index,match){//body에서 각각의 배열요소 match들과 인덱스 사용 | ||
| 134 | + if(match.type=='1v1'){//경기타입이 1대1인 경우에만 관심있다. | ||
| 135 | + console.log(index+":::",match.decision,match.map);//인덱스와 승패, 맵 표시 | ||
| 136 | + };//if 1v1 종료 | ||
| 137 | + });//each function 종료 | ||
| 138 | + | ||
| 139 | + var ladder_1="https://kr.api.blizzard.com/sc2/legacy/profile/3/1/" | ||
| 140 | + var ladder_2="/ladders?access_token=US115TlhyMaYe3d3v4t6j17Umw1CfsvCIV"; | ||
| 141 | + var ladder_url=ladder_1+profileID+ladder_2; | ||
| 142 | + console.log(ladder_url); | ||
| 143 | + request(ladder_url,(error,response,body)=>{//ladder request request 4 | ||
| 144 | + if(error){throw error}; | ||
| 145 | + console.log('request4 processing'); | ||
| 146 | + var obj2=JSON.parse(body);//request 결과를 JSON object로 변환 | ||
| 147 | + //console.log(body); | ||
| 148 | + // console.log(obj2.currentSeason [2].ladder[0].wins);//테스트용 : 하나에 접근 | ||
| 149 | + var wins=obj2.currentSeason[3].ladder[0].wins; | ||
| 150 | + var losses=obj2.currentSeason[3].ladder[0].losses; | ||
| 151 | + win_rate=wins/(wins+losses); | ||
| 152 | + //console.log(wins); | ||
| 153 | + //console.log(losses); | ||
| 154 | + //console.log(win_rate); | ||
| 155 | + | ||
| 156 | + var profile_1="https://kr.api.blizzard.com/sc2/legacy/profile/3/1/"; | ||
| 157 | + var profile_2="?access_token=US115TlhyMaYe3d3v4t6j17Umw1CfsvCIV"; | ||
| 158 | + var profile_url=profile_1+profileID+profile_2; | ||
| 159 | + console.log(profile_url); | ||
| 160 | + request(profile_url,(error,response,body)=>{//profile request request 5 | ||
| 161 | + if(error){throw error}; | ||
| 162 | + console.log('request5 processing'); | ||
| 163 | + //console.log(body); | ||
| 164 | + var obj3=JSON.parse(body);//request 결과를 JSON object로 변환 | ||
| 165 | + //console.log(obj2.currentSeason [1].ladder[0].wins);//테스트용 : 하나에 접근 | ||
| 166 | + primary_race=obj3.career.primaryRace; | ||
| 167 | + //console.log(primary_race); | ||
| 168 | + var terran_level=obj3.swarmLevels.terran.level; | ||
| 169 | + var zerg_level=obj3.swarmLevels.zerg.level; | ||
| 170 | + var protoss_level=obj3.swarmLevels.protoss.level; | ||
| 171 | + | ||
| 172 | + //console.log(terran_level); | ||
| 173 | + //console.log(zerg_level); | ||
| 174 | + //console.log(protoss_level); | ||
| 175 | + | ||
| 176 | + //build recommend algorithm | ||
| 177 | + var matchresults=[];//매치결과 담을 배열 선언 | ||
| 178 | + var momentum_win=0;//최근 10경기 중 승수 초기화 | ||
| 179 | + for (var i=0;i<25;i++){//매치히스토리는 최대 25개 | ||
| 180 | + if(obj1.matches[i].type=='1v1'){//1v1에만 관심있다. | ||
| 181 | + matchresults.push(obj1.matches[i].decision);//배열 끝에 결과 삽입 | ||
| 182 | + if((matchresults.length<11)&&(obj1.matches[i].decision=='Win')){//최근 10경기에서 승리한 경우 | ||
| 183 | + momentum_win=momentum_win+1;//그 승수를 카운트한다. | ||
| 184 | + }//if length11 종료 | ||
| 185 | + }//obj1 1v1 종료 | ||
| 186 | + }//for i 25 종료 | ||
| 187 | + //console.log(matchresults);//테스트용 : matchresults 출력 | ||
| 188 | + //console.log(momentum_win);//테스트용 : momentum_win 출력 | ||
| 189 | + if(momentum_win>=7){//7승 이상이면 상승세 | ||
| 190 | + momentum='상승세'; | ||
| 191 | + } | ||
| 192 | + if((momentum_win<7)&&(momentum_win>=4)){//4승이상 7승미만이면 정체 | ||
| 193 | + momentum='정체중'; | ||
| 194 | + } | ||
| 195 | + if(momentum_win<4){//4승 미만이면 하락세 | ||
| 196 | + momentum='하락세'; | ||
| 197 | + } | ||
| 198 | + //console.log(momentum);//테스트용 : 기세 출력 | ||
| 199 | + | ||
| 200 | + if(terran_level<50){//테란 레벨 50 안되면 | ||
| 201 | + terran_proficiency='비숙련자'//테란 비숙련자 | ||
| 202 | + } else{ | ||
| 203 | + terran_proficiency='숙련자' | ||
| 204 | + } | ||
| 205 | + if(zerg_level<50){//저그 레벨 50 안되면 | ||
| 206 | + zerg_proficiency='비숙련자'//저그 비숙련자 | ||
| 207 | + } else{ | ||
| 208 | + zerg_proficiency='숙련자' | ||
| 209 | + } | ||
| 210 | + if(protoss_level<50){//프로토스 레벨 50 안되면 | ||
| 211 | + protoss_proficiency='비숙련자'//프로토스 비숙련자 | ||
| 212 | + } else{ | ||
| 213 | + protoss_proficiency='숙련자' | ||
| 214 | + } | ||
| 215 | + // | ||
| 216 | + //system message part | ||
| 217 | + var system_message_momentum="최근 10경기 분석 결과 현재 상대는 '"+momentum+"'입니다."; | ||
| 218 | + var system_message_terran_proficiency="상대는 테란 '"+terran_proficiency+"'입니다."; | ||
| 219 | + var system_message_zerg_proficiency="상대는 저그 '"+zerg_proficiency+"'입니다."; | ||
| 220 | + var system_message_protoss_proficiency="상대는 프로토스 '"+protoss_proficiency+"'입니다."; | ||
| 221 | + var system_message_primary_race="상대의 주 종족은 '"+primary_race+"'입니다."; | ||
| 222 | + var system_message_win_rate="상대의 이번 시즌 전체 승률은 '"+win_rate+"'입니다."; | ||
| 223 | + | ||
| 224 | + //var system_message=system_message_momentum+system_message_terran_proficiency+system_message_zerg_proficiency+system_message_protoss_proficiency+system_message_primary_race+system_message_win_rate; | ||
| 225 | + | ||
| 226 | + console.log("최근 10경기 분석 결과 현재 상대는 '"+momentum+"'입니다."); | ||
| 227 | + console.log("상대는 테란 '"+terran_proficiency+"'입니다."); | ||
| 228 | + console.log("상대는 저그 '"+zerg_proficiency+"'입니다."); | ||
| 229 | + console.log("상대는 프로토스 '"+protoss_proficiency+"'입니다."); | ||
| 230 | + console.log("상대의 주 종족은 '"+primary_race+"'입니다."); | ||
| 231 | + console.log("상대의 이번 시즌 전체 승률은 '"+win_rate+"'입니다."); | ||
| 232 | + // | ||
| 233 | +js_momentum="최근 10경기 분석 결과 현재 상대는 '"+momentum+"'입니다."; | ||
| 234 | +js_terran_proficiency="상대는 테란 '"+terran_proficiency+"'입니다."; | ||
| 235 | +js_zerg_proficiency="상대는 저그 '"+zerg_proficiency+"'입니다."; | ||
| 236 | +js_protoss_proficiency="상대는 프로토스 '"+protoss_proficiency+"'입니다."; | ||
| 237 | +js_primary_race="상대의 주 종족은 '"+primary_race+"'입니다."; | ||
| 238 | +js_win_rate="상대의 이번 시즌 전체 승률은 '"+win_rate+"'입니다."; | ||
| 239 | + | ||
| 240 | + | ||
| 241 | +res.render('index',{top: '분석 결과', | ||
| 242 | +ejs_momentum: js_momentum, | ||
| 243 | +ejs_terran_proficiency: js_terran_proficiency, | ||
| 244 | +ejs_zerg_proficiency: js_zerg_proficiency, | ||
| 245 | +ejs_protoss_proficiency: js_protoss_proficiency, | ||
| 246 | +ejs_primary_race: js_primary_race, | ||
| 247 | +ejs_win_rate: js_win_rate}); | ||
| 248 | + //build recommend command | ||
| 249 | + | ||
| 250 | + // | ||
| 251 | + | ||
| 252 | + console.log('request5 done'); | ||
| 253 | + });//request5종료 | ||
| 254 | + console.log('request4 done'); | ||
| 255 | + });//request4종료 | ||
| 256 | + console.log('request3 done'); | ||
| 257 | + });//request3종료 | ||
| 258 | + console.log('request2 done'); | ||
| 259 | + });//request2종료 | ||
| 260 | + console.log('request1 done'); | ||
| 261 | + });//request1 종료 | ||
| 262 | + | ||
| 263 | + console.log('r.question done'); | ||
| 264 | + //console.log(terran_level); | ||
| 265 | +// r.close()//반드시 close를 해줘야 한다.사용이 다 끝난 후에. | ||
| 266 | +// });//r.question 끝 | ||
| 267 | + | ||
| 268 | + | ||
| 269 | + | ||
| 270 | + | ||
| 271 | + | ||
| 272 | + }); | ||
| 273 | + | ||
| 274 | + | ||
| 275 | +} |
views/index.ejs
0 → 100644
| 1 | +<!DOCTYPE html> | ||
| 2 | +<html lang="ko-kr"> | ||
| 3 | +<head> | ||
| 4 | + <meta charset="utf-8"> | ||
| 5 | + <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" media="screen"> | ||
| 6 | + <link href="/static/core/style.css" rel="stylesheet" media="screen"> | ||
| 7 | + <script type="text/javascript" src="node_modules/jquery/dist/jquery.js"></script> | ||
| 8 | + | ||
| 9 | + <script async="" src="//www.google-analytics.com/analytics.js"></script> | ||
| 10 | + <script type="text/javascript" async="" src="//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"></script> | ||
| 11 | + <title>StarCraft 2 Build Recommendation Project</title> | ||
| 12 | + | ||
| 13 | +<body> | ||
| 14 | + | ||
| 15 | + | ||
| 16 | + | ||
| 17 | + | ||
| 18 | +<p stype="fond-family:verdana;">StarCraft 2 Build Recommendation Project</p> | ||
| 19 | + | ||
| 20 | +<img src="/imgs" alt="StarCraft2 LOGO image"> | ||
| 21 | +<div class="col-md-3"> | ||
| 22 | + <form action="/recommend" id="searchform" action method="get"> | ||
| 23 | + | ||
| 24 | + <div id="div_id_server" class="form-group"> | ||
| 25 | + <label for="id_server" class="control-label "> | ||
| 26 | + 서버 | ||
| 27 | + </label> | ||
| 28 | + <div class="controls"> | ||
| 29 | + <select class="select form-control" id="id_server" name="region"> | ||
| 30 | + <option value="KR">한국/대만</option> | ||
| 31 | + <option value="AM">미국</option> | ||
| 32 | + <option value="CN">중국</option> | ||
| 33 | + <option value="EU">유럽</option> | ||
| 34 | + </select> | ||
| 35 | + </div> | ||
| 36 | + </div> | ||
| 37 | + | ||
| 38 | + | ||
| 39 | + | ||
| 40 | + <div id="div_id_myRace" class="form-group"> | ||
| 41 | + <label for="id_myRace" class="control-label "> | ||
| 42 | + 내 종족 | ||
| 43 | + </label> | ||
| 44 | + <div class="controls"> | ||
| 45 | + <select class="select form-control" id="id_myRace" name="myRace"> | ||
| 46 | + <option value="terran">테란</option> | ||
| 47 | + <option value="zerg">저그</option> | ||
| 48 | + <option value="protoss">프로토스</option> | ||
| 49 | + </select> | ||
| 50 | + </div> | ||
| 51 | + </div> | ||
| 52 | + | ||
| 53 | + <div id="div_id_race" class="form-group"> | ||
| 54 | + <label for="id_race" class="control-label "> | ||
| 55 | + 상대 종족 | ||
| 56 | + </label> | ||
| 57 | + <div class="controls"> | ||
| 58 | + <select class="select form-control" id="id_race" name="race"> | ||
| 59 | + <option value="terran">테란</option> | ||
| 60 | + <option value="zerg">저그</option> | ||
| 61 | + <option value="protoss">프로토스</option> | ||
| 62 | + </select> | ||
| 63 | + </div> | ||
| 64 | + </div> | ||
| 65 | + | ||
| 66 | + <div id="div_id_name" class="form-group"> | ||
| 67 | + <label for="id_name" class="control-label "> | ||
| 68 | + 상대 아이디 | ||
| 69 | + </label> | ||
| 70 | + <div class="controls"> | ||
| 71 | + <input class="textinput textInput form-control" id="id_name" maxlength="20" name="name" type="text"> | ||
| 72 | + </div> | ||
| 73 | + </div> | ||
| 74 | + | ||
| 75 | + | ||
| 76 | + | ||
| 77 | +<input value="빌드 추천!" type="submit"/> | ||
| 78 | +</form> | ||
| 79 | + | ||
| 80 | +<%= top%> | ||
| 81 | +<br> | ||
| 82 | +<%=ejs_momentum%> | ||
| 83 | +<%=ejs_terran_proficiency%> | ||
| 84 | +<%=ejs_zerg_proficiency%> | ||
| 85 | +<%=ejs_protoss_proficiency%> | ||
| 86 | +<%=ejs_primary_race%> | ||
| 87 | +<%=ejs_win_rate%> | ||
| 88 | +<br> | ||
| 89 | +<br> | ||
| 90 | +<a href="https://starcraft2.com/ko-kr/game">Official Site</a> | ||
| 91 | + | ||
| 92 | +</body> | ||
| 93 | +</html> |
-
Please register or login to post a comment