정홍주

코인 시세 받아오기

1 +node_modules/
...\ No newline at end of file ...\ No newline at end of file
1 +var express = require('express');
2 +var app = express();
3 +var fs = require('fs');
4 +const fetch = require('node-fetch');
5 +var bodyParser = require('body-parser');
6 +app.use(bodyParser.urlencoded({ extended: false }));
7 +app.use(bodyParser.json());
8 +
9 +app.get('/price', function(req, res) {
10 + var arr ;
11 + var responseList = new Array();
12 + fs.readFile('coin_name.txt', 'utf8', function(err,data){
13 + arr = data.split(",");
14 + console.log(arr);
15 + for(var i=0;i<1;i++){
16 + const url = 'https://api.upbit.com/v1/candles/minutes/1?market='+arr[i]+'&count=1';
17 + const options = {method: 'GET', headers: {Accept: 'application/json'}};
18 +
19 + var coinJson = new Object();
20 +
21 + fetch(url, options)
22 + .then(req => req.json())
23 + .then(json => {
24 + coinJson.coin = arr[i];
25 + coinJson.price = json[0]["trade_price"];
26 + responseList.push(coinJson);
27 + })
28 + .catch(err => console.error('error:' + err));
29 +
30 + }
31 +
32 +
33 + }).then(function(){
34 + jsonData = JSON.stringify(responseList);
35 + res.send(jsonData);
36 + });
37 +})
38 +var server = app.listen(8082);
39 +console.log("Server Created..");
...\ No newline at end of file ...\ No newline at end of file
1 +KRW-BTC,KRW-ETH,KRW-NEO,KRW-MTL,KRW-LTC,KRW-XRP,KRW-ETC,KRW-OMG,KRW-SNT,KRW-WAVES,KRW-XEM,KRW-QTUM,KRW-LSK,KRW-STEEM,KRW-XLM,KRW-ARDR,KRW-KMD,KRW-ARK,KRW-STORJ,KRW-GRS,KRW-REP,KRW-EMC2,KRW-ADA,KRW-SBD,KRW-POWR,KRW-BTG,KRW-ICX,KRW-EOS,KRW-TRX,KRW-SC,KRW-IGNIS,KRW-ONT,KRW-ZIL,KRW-POLY,KRW-ZRX,KRW-LOOM,KRW-BCH,KRW-ADX,KRW-BAT,KRW-IOST,KRW-DMT,KRW-RFR,KRW-CVC,KRW-IQ,KRW-IOTA,KRW-MFT,KRW-ONG,KRW-GAS,KRW-UPP,KRW-ELF,KRW-KNC,KRW-BSV,KRW-THETA,KRW-EDR,KRW-QKC,KRW-BTT,KRW-MOC,KRW-ENJ,KRW-TFUEL,KRW-MANA,KRW-ANKR,KRW-AERGO,KRW-ATOM,KRW-TT,KRW-CRE,KRW-SOLVE,KRW-MBL,KRW-TSHP,KRW-WAXP,KRW-HBAR,KRW-MED,KRW-MLK,KRW-STPT,KRW-ORBS,KRW-VET,KRW-CHZ,KRW-PXL,KRW-STMX,KRW-DKA,KRW-HIVE,KRW-KAVA,KRW-AHT,KRW-LINK,KRW-XTZ,KRW-BORA,KRW-JST,KRW-CRO,KRW-TON,KRW-SXP,KRW-LAMB,KRW-HUNT,KRW-MARO,KRW-PLA,KRW-DOT,KRW-SRM,KRW-MVL,KRW-PCI,KRW-STRAX,KRW-AQT,KRW-BCHA,KRW-GLM,KRW-QTCON,KRW-SSX,KRW-META,KRW-OBSR,KRW-FCT2,KRW-LBC,KRW-CBK,KRW-SAND,KRW-HUM,KRW-DOGE,KRW-STRK,KRW-PUNDIX,KRW-FLOW,KRW-DAWN,KRW-AXS,KRW-STX
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html>
2 +<html lang="en">
3 +<head>
4 + <meta charset="UTF-8">
5 + <title>Document</title>
6 +</head>
7 +<body>
8 + <h1>hello</h1>
9 +</body>
10 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +const fetch = require('node-fetch');
2 +
3 +const url = 'https://api.upbit.com/v1/candles/minutes/1?market=KRW-XRP&count=1';
4 +const options = {method: 'GET', headers: {Accept: 'application/json'}};
5 +
6 +fetch(url, options)
7 + .then(res => res.json())
8 + .then(json => console.log(json[0].trade_price))
9 + .catch(err => console.error('error:' + err));
...\ No newline at end of file ...\ No newline at end of file
1 +const fetch = require('node-fetch');
2 +const fs = require('fs');
3 +const url = 'https://api.upbit.com/v1/market/all?isDetails=false';
4 +const options = {method: 'GET', headers: {Accept: 'application/json'}};
5 +
6 +fetch(url, options)
7 + .then(res => res.json())
8 + .then(json => {
9 + var coinName = [];
10 + var j = 0;
11 + var file = 'coin_name.txt';
12 + fs.open(file,'w',function(err,fd){
13 + if(err) throw err;
14 + });
15 + for (i=0;i<json.length;i++) {
16 + if (json[i].market.indexOf("KRW")>-1){
17 + console.log(json[i].market);
18 + coinName[j] = json[i].market;
19 + j=j+1;
20 + }
21 + }
22 + console.log(coinName);
23 + fs.writeFile(file,coinName,'utf8',function(error){
24 + console.log('write end')
25 + });
26 + })
27 + .catch(err => console.error('error:' + err));
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "name": "Coin-trade-assistant",
3 + "version": "1.0.0",
4 + "lockfileVersion": 1,
5 + "requires": true,
6 + "dependencies": {
7 + "accepts": {
8 + "version": "1.3.7",
9 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
10 + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
11 + "requires": {
12 + "mime-types": "~2.1.24",
13 + "negotiator": "0.6.2"
14 + }
15 + },
16 + "ajv": {
17 + "version": "6.12.6",
18 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
19 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
20 + "requires": {
21 + "fast-deep-equal": "^3.1.1",
22 + "fast-json-stable-stringify": "^2.0.0",
23 + "json-schema-traverse": "^0.4.1",
24 + "uri-js": "^4.2.2"
25 + }
26 + },
27 + "array-flatten": {
28 + "version": "1.1.1",
29 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
30 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
31 + },
32 + "asn1": {
33 + "version": "0.2.4",
34 + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
35 + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
36 + "requires": {
37 + "safer-buffer": "~2.1.0"
38 + }
39 + },
40 + "assert-plus": {
41 + "version": "1.0.0",
42 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
43 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
44 + },
45 + "asynckit": {
46 + "version": "0.4.0",
47 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
48 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
49 + },
50 + "aws-sign2": {
51 + "version": "0.7.0",
52 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
53 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
54 + },
55 + "aws4": {
56 + "version": "1.11.0",
57 + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
58 + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
59 + },
60 + "bcrypt-pbkdf": {
61 + "version": "1.0.2",
62 + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
63 + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
64 + "requires": {
65 + "tweetnacl": "^0.14.3"
66 + }
67 + },
68 + "body-parser": {
69 + "version": "1.19.0",
70 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
71 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
72 + "requires": {
73 + "bytes": "3.1.0",
74 + "content-type": "~1.0.4",
75 + "debug": "2.6.9",
76 + "depd": "~1.1.2",
77 + "http-errors": "1.7.2",
78 + "iconv-lite": "0.4.24",
79 + "on-finished": "~2.3.0",
80 + "qs": "6.7.0",
81 + "raw-body": "2.4.0",
82 + "type-is": "~1.6.17"
83 + },
84 + "dependencies": {
85 + "qs": {
86 + "version": "6.7.0",
87 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
88 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
89 + }
90 + }
91 + },
92 + "buffer-equal-constant-time": {
93 + "version": "1.0.1",
94 + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
95 + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
96 + },
97 + "bytes": {
98 + "version": "3.1.0",
99 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
100 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
101 + },
102 + "caseless": {
103 + "version": "0.12.0",
104 + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
105 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
106 + },
107 + "combined-stream": {
108 + "version": "1.0.8",
109 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
110 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
111 + "requires": {
112 + "delayed-stream": "~1.0.0"
113 + }
114 + },
115 + "content-disposition": {
116 + "version": "0.5.3",
117 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
118 + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
119 + "requires": {
120 + "safe-buffer": "5.1.2"
121 + },
122 + "dependencies": {
123 + "safe-buffer": {
124 + "version": "5.1.2",
125 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
126 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
127 + }
128 + }
129 + },
130 + "content-type": {
131 + "version": "1.0.4",
132 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
133 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
134 + },
135 + "cookie": {
136 + "version": "0.4.0",
137 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
138 + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
139 + },
140 + "cookie-signature": {
141 + "version": "1.0.6",
142 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
143 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
144 + },
145 + "core-util-is": {
146 + "version": "1.0.2",
147 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
148 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
149 + },
150 + "dashdash": {
151 + "version": "1.14.1",
152 + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
153 + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
154 + "requires": {
155 + "assert-plus": "^1.0.0"
156 + }
157 + },
158 + "debug": {
159 + "version": "2.6.9",
160 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
161 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
162 + "requires": {
163 + "ms": "2.0.0"
164 + },
165 + "dependencies": {
166 + "ms": {
167 + "version": "2.0.0",
168 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
169 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
170 + }
171 + }
172 + },
173 + "delayed-stream": {
174 + "version": "1.0.0",
175 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
176 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
177 + },
178 + "depd": {
179 + "version": "1.1.2",
180 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
181 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
182 + },
183 + "destroy": {
184 + "version": "1.0.4",
185 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
186 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
187 + },
188 + "ecc-jsbn": {
189 + "version": "0.1.2",
190 + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
191 + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
192 + "requires": {
193 + "jsbn": "~0.1.0",
194 + "safer-buffer": "^2.1.0"
195 + }
196 + },
197 + "ecdsa-sig-formatter": {
198 + "version": "1.0.11",
199 + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
200 + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
201 + "requires": {
202 + "safe-buffer": "^5.0.1"
203 + }
204 + },
205 + "ee-first": {
206 + "version": "1.1.1",
207 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
208 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
209 + },
210 + "encodeurl": {
211 + "version": "1.0.2",
212 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
213 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
214 + },
215 + "escape-html": {
216 + "version": "1.0.3",
217 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
218 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
219 + },
220 + "etag": {
221 + "version": "1.8.1",
222 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
223 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
224 + },
225 + "express": {
226 + "version": "4.17.1",
227 + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
228 + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
229 + "requires": {
230 + "accepts": "~1.3.7",
231 + "array-flatten": "1.1.1",
232 + "body-parser": "1.19.0",
233 + "content-disposition": "0.5.3",
234 + "content-type": "~1.0.4",
235 + "cookie": "0.4.0",
236 + "cookie-signature": "1.0.6",
237 + "debug": "2.6.9",
238 + "depd": "~1.1.2",
239 + "encodeurl": "~1.0.2",
240 + "escape-html": "~1.0.3",
241 + "etag": "~1.8.1",
242 + "finalhandler": "~1.1.2",
243 + "fresh": "0.5.2",
244 + "merge-descriptors": "1.0.1",
245 + "methods": "~1.1.2",
246 + "on-finished": "~2.3.0",
247 + "parseurl": "~1.3.3",
248 + "path-to-regexp": "0.1.7",
249 + "proxy-addr": "~2.0.5",
250 + "qs": "6.7.0",
251 + "range-parser": "~1.2.1",
252 + "safe-buffer": "5.1.2",
253 + "send": "0.17.1",
254 + "serve-static": "1.14.1",
255 + "setprototypeof": "1.1.1",
256 + "statuses": "~1.5.0",
257 + "type-is": "~1.6.18",
258 + "utils-merge": "1.0.1",
259 + "vary": "~1.1.2"
260 + },
261 + "dependencies": {
262 + "qs": {
263 + "version": "6.7.0",
264 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
265 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
266 + },
267 + "safe-buffer": {
268 + "version": "5.1.2",
269 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
270 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
271 + }
272 + }
273 + },
274 + "extend": {
275 + "version": "3.0.2",
276 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
277 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
278 + },
279 + "extsprintf": {
280 + "version": "1.3.0",
281 + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
282 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
283 + },
284 + "fast-deep-equal": {
285 + "version": "3.1.3",
286 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
287 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
288 + },
289 + "fast-json-stable-stringify": {
290 + "version": "2.1.0",
291 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
292 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
293 + },
294 + "finalhandler": {
295 + "version": "1.1.2",
296 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
297 + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
298 + "requires": {
299 + "debug": "2.6.9",
300 + "encodeurl": "~1.0.2",
301 + "escape-html": "~1.0.3",
302 + "on-finished": "~2.3.0",
303 + "parseurl": "~1.3.3",
304 + "statuses": "~1.5.0",
305 + "unpipe": "~1.0.0"
306 + }
307 + },
308 + "forever-agent": {
309 + "version": "0.6.1",
310 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
311 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
312 + },
313 + "form-data": {
314 + "version": "2.3.3",
315 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
316 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
317 + "requires": {
318 + "asynckit": "^0.4.0",
319 + "combined-stream": "^1.0.6",
320 + "mime-types": "^2.1.12"
321 + }
322 + },
323 + "forwarded": {
324 + "version": "0.1.2",
325 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
326 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
327 + },
328 + "fresh": {
329 + "version": "0.5.2",
330 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
331 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
332 + },
333 + "getpass": {
334 + "version": "0.1.7",
335 + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
336 + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
337 + "requires": {
338 + "assert-plus": "^1.0.0"
339 + }
340 + },
341 + "har-schema": {
342 + "version": "2.0.0",
343 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
344 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
345 + },
346 + "har-validator": {
347 + "version": "5.1.5",
348 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
349 + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
350 + "requires": {
351 + "ajv": "^6.12.3",
352 + "har-schema": "^2.0.0"
353 + }
354 + },
355 + "http-errors": {
356 + "version": "1.7.2",
357 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
358 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
359 + "requires": {
360 + "depd": "~1.1.2",
361 + "inherits": "2.0.3",
362 + "setprototypeof": "1.1.1",
363 + "statuses": ">= 1.5.0 < 2",
364 + "toidentifier": "1.0.0"
365 + }
366 + },
367 + "http-signature": {
368 + "version": "1.2.0",
369 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
370 + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
371 + "requires": {
372 + "assert-plus": "^1.0.0",
373 + "jsprim": "^1.2.2",
374 + "sshpk": "^1.7.0"
375 + }
376 + },
377 + "iconv-lite": {
378 + "version": "0.4.24",
379 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
380 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
381 + "requires": {
382 + "safer-buffer": ">= 2.1.2 < 3"
383 + }
384 + },
385 + "inherits": {
386 + "version": "2.0.3",
387 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
388 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
389 + },
390 + "ipaddr.js": {
391 + "version": "1.9.1",
392 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
393 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
394 + },
395 + "is-typedarray": {
396 + "version": "1.0.0",
397 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
398 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
399 + },
400 + "isstream": {
401 + "version": "0.1.2",
402 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
403 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
404 + },
405 + "jsbn": {
406 + "version": "0.1.1",
407 + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
408 + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
409 + },
410 + "json-schema": {
411 + "version": "0.2.3",
412 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
413 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
414 + },
415 + "json-schema-traverse": {
416 + "version": "0.4.1",
417 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
418 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
419 + },
420 + "json-stringify-safe": {
421 + "version": "5.0.1",
422 + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
423 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
424 + },
425 + "jsonwebtoken": {
426 + "version": "8.5.1",
427 + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
428 + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
429 + "requires": {
430 + "jws": "^3.2.2",
431 + "lodash.includes": "^4.3.0",
432 + "lodash.isboolean": "^3.0.3",
433 + "lodash.isinteger": "^4.0.4",
434 + "lodash.isnumber": "^3.0.3",
435 + "lodash.isplainobject": "^4.0.6",
436 + "lodash.isstring": "^4.0.1",
437 + "lodash.once": "^4.0.0",
438 + "ms": "^2.1.1",
439 + "semver": "^5.6.0"
440 + }
441 + },
442 + "jsprim": {
443 + "version": "1.4.1",
444 + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
445 + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
446 + "requires": {
447 + "assert-plus": "1.0.0",
448 + "extsprintf": "1.3.0",
449 + "json-schema": "0.2.3",
450 + "verror": "1.10.0"
451 + }
452 + },
453 + "jwa": {
454 + "version": "1.4.1",
455 + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
456 + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
457 + "requires": {
458 + "buffer-equal-constant-time": "1.0.1",
459 + "ecdsa-sig-formatter": "1.0.11",
460 + "safe-buffer": "^5.0.1"
461 + }
462 + },
463 + "jws": {
464 + "version": "3.2.2",
465 + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
466 + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
467 + "requires": {
468 + "jwa": "^1.4.1",
469 + "safe-buffer": "^5.0.1"
470 + }
471 + },
472 + "lodash.includes": {
473 + "version": "4.3.0",
474 + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
475 + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
476 + },
477 + "lodash.isboolean": {
478 + "version": "3.0.3",
479 + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
480 + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
481 + },
482 + "lodash.isinteger": {
483 + "version": "4.0.4",
484 + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
485 + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
486 + },
487 + "lodash.isnumber": {
488 + "version": "3.0.3",
489 + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
490 + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
491 + },
492 + "lodash.isplainobject": {
493 + "version": "4.0.6",
494 + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
495 + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
496 + },
497 + "lodash.isstring": {
498 + "version": "4.0.1",
499 + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
500 + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
501 + },
502 + "lodash.once": {
503 + "version": "4.1.1",
504 + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
505 + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
506 + },
507 + "media-typer": {
508 + "version": "0.3.0",
509 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
510 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
511 + },
512 + "merge-descriptors": {
513 + "version": "1.0.1",
514 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
515 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
516 + },
517 + "methods": {
518 + "version": "1.1.2",
519 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
520 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
521 + },
522 + "mime": {
523 + "version": "1.6.0",
524 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
525 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
526 + },
527 + "mime-db": {
528 + "version": "1.47.0",
529 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
530 + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
531 + },
532 + "mime-types": {
533 + "version": "2.1.30",
534 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
535 + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
536 + "requires": {
537 + "mime-db": "1.47.0"
538 + }
539 + },
540 + "ms": {
541 + "version": "2.1.3",
542 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
543 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
544 + },
545 + "negotiator": {
546 + "version": "0.6.2",
547 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
548 + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
549 + },
550 + "node-fetch": {
551 + "version": "2.6.1",
552 + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
553 + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
554 + },
555 + "oauth-sign": {
556 + "version": "0.9.0",
557 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
558 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
559 + },
560 + "on-finished": {
561 + "version": "2.3.0",
562 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
563 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
564 + "requires": {
565 + "ee-first": "1.1.1"
566 + }
567 + },
568 + "parseurl": {
569 + "version": "1.3.3",
570 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
571 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
572 + },
573 + "path-to-regexp": {
574 + "version": "0.1.7",
575 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
576 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
577 + },
578 + "performance-now": {
579 + "version": "2.1.0",
580 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
581 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
582 + },
583 + "proxy-addr": {
584 + "version": "2.0.6",
585 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
586 + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
587 + "requires": {
588 + "forwarded": "~0.1.2",
589 + "ipaddr.js": "1.9.1"
590 + }
591 + },
592 + "psl": {
593 + "version": "1.8.0",
594 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
595 + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
596 + },
597 + "punycode": {
598 + "version": "2.1.1",
599 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
600 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
601 + },
602 + "qs": {
603 + "version": "6.5.2",
604 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
605 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
606 + },
607 + "range-parser": {
608 + "version": "1.2.1",
609 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
610 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
611 + },
612 + "raw-body": {
613 + "version": "2.4.0",
614 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
615 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
616 + "requires": {
617 + "bytes": "3.1.0",
618 + "http-errors": "1.7.2",
619 + "iconv-lite": "0.4.24",
620 + "unpipe": "1.0.0"
621 + }
622 + },
623 + "request": {
624 + "version": "2.88.2",
625 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
626 + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
627 + "requires": {
628 + "aws-sign2": "~0.7.0",
629 + "aws4": "^1.8.0",
630 + "caseless": "~0.12.0",
631 + "combined-stream": "~1.0.6",
632 + "extend": "~3.0.2",
633 + "forever-agent": "~0.6.1",
634 + "form-data": "~2.3.2",
635 + "har-validator": "~5.1.3",
636 + "http-signature": "~1.2.0",
637 + "is-typedarray": "~1.0.0",
638 + "isstream": "~0.1.2",
639 + "json-stringify-safe": "~5.0.1",
640 + "mime-types": "~2.1.19",
641 + "oauth-sign": "~0.9.0",
642 + "performance-now": "^2.1.0",
643 + "qs": "~6.5.2",
644 + "safe-buffer": "^5.1.2",
645 + "tough-cookie": "~2.5.0",
646 + "tunnel-agent": "^0.6.0",
647 + "uuid": "^3.3.2"
648 + }
649 + },
650 + "safe-buffer": {
651 + "version": "5.2.1",
652 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
653 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
654 + },
655 + "safer-buffer": {
656 + "version": "2.1.2",
657 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
658 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
659 + },
660 + "semver": {
661 + "version": "5.7.1",
662 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
663 + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
664 + },
665 + "send": {
666 + "version": "0.17.1",
667 + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
668 + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
669 + "requires": {
670 + "debug": "2.6.9",
671 + "depd": "~1.1.2",
672 + "destroy": "~1.0.4",
673 + "encodeurl": "~1.0.2",
674 + "escape-html": "~1.0.3",
675 + "etag": "~1.8.1",
676 + "fresh": "0.5.2",
677 + "http-errors": "~1.7.2",
678 + "mime": "1.6.0",
679 + "ms": "2.1.1",
680 + "on-finished": "~2.3.0",
681 + "range-parser": "~1.2.1",
682 + "statuses": "~1.5.0"
683 + },
684 + "dependencies": {
685 + "ms": {
686 + "version": "2.1.1",
687 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
688 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
689 + }
690 + }
691 + },
692 + "serve-static": {
693 + "version": "1.14.1",
694 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
695 + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
696 + "requires": {
697 + "encodeurl": "~1.0.2",
698 + "escape-html": "~1.0.3",
699 + "parseurl": "~1.3.3",
700 + "send": "0.17.1"
701 + }
702 + },
703 + "setprototypeof": {
704 + "version": "1.1.1",
705 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
706 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
707 + },
708 + "sshpk": {
709 + "version": "1.16.1",
710 + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
711 + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
712 + "requires": {
713 + "asn1": "~0.2.3",
714 + "assert-plus": "^1.0.0",
715 + "bcrypt-pbkdf": "^1.0.0",
716 + "dashdash": "^1.12.0",
717 + "ecc-jsbn": "~0.1.1",
718 + "getpass": "^0.1.1",
719 + "jsbn": "~0.1.0",
720 + "safer-buffer": "^2.0.2",
721 + "tweetnacl": "~0.14.0"
722 + }
723 + },
724 + "statuses": {
725 + "version": "1.5.0",
726 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
727 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
728 + },
729 + "toidentifier": {
730 + "version": "1.0.0",
731 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
732 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
733 + },
734 + "tough-cookie": {
735 + "version": "2.5.0",
736 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
737 + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
738 + "requires": {
739 + "psl": "^1.1.28",
740 + "punycode": "^2.1.1"
741 + }
742 + },
743 + "tunnel-agent": {
744 + "version": "0.6.0",
745 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
746 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
747 + "requires": {
748 + "safe-buffer": "^5.0.1"
749 + }
750 + },
751 + "tweetnacl": {
752 + "version": "0.14.5",
753 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
754 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
755 + },
756 + "type-is": {
757 + "version": "1.6.18",
758 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
759 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
760 + "requires": {
761 + "media-typer": "0.3.0",
762 + "mime-types": "~2.1.24"
763 + }
764 + },
765 + "unpipe": {
766 + "version": "1.0.0",
767 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
768 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
769 + },
770 + "uri-js": {
771 + "version": "4.4.1",
772 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
773 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
774 + "requires": {
775 + "punycode": "^2.1.0"
776 + }
777 + },
778 + "utils-merge": {
779 + "version": "1.0.1",
780 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
781 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
782 + },
783 + "uuid": {
784 + "version": "3.4.0",
785 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
786 + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
787 + },
788 + "vary": {
789 + "version": "1.1.2",
790 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
791 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
792 + },
793 + "verror": {
794 + "version": "1.10.0",
795 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
796 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
797 + "requires": {
798 + "assert-plus": "^1.0.0",
799 + "core-util-is": "1.0.2",
800 + "extsprintf": "^1.2.0"
801 + }
802 + }
803 + }
804 +}
1 +{
2 + "name": "Coin-trade-assistant",
3 + "version": "1.0.0",
4 + "description": "",
5 + "main": "index.js",
6 + "scripts": {
7 + "test": "echo \"Error: no test specified\" && exit 1",
8 + "start": "node server.js"
9 + },
10 + "repository": {
11 + "type": "git",
12 + "url": "http://khuhub.khu.ac.kr/2018102235/Coin-trade-assistant.git"
13 + },
14 + "keywords": [],
15 + "author": "",
16 + "license": "ISC",
17 + "dependencies": {
18 + "body-parser": "^1.19.0",
19 + "express": "^4.17.1",
20 + "jsonwebtoken": "^8.5.1",
21 + "node-fetch": "^2.6.1",
22 + "request": "^2.88.2"
23 + }
24 +}
1 +const fetch = require('node-fetch');
2 +var fs = require('fs');
3 +
4 +var responseList = new Array();
5 +fs.readFile('coin_name.txt', 'utf8', function(err,data){
6 + arr = data.split(",");
7 +
8 + // console.log(arr);
9 +
10 + for(var i=0;i<10;i++){
11 + (function(i){
12 + setTimeout(function(){
13 + const url = 'https://api.upbit.com/v1/candles/minutes/1?market='+arr[i]+'&count=1';
14 + const options = {method: 'GET', headers: {Accept: 'application/json'}};
15 +
16 + var coinJson = new Object();
17 + fetch(url, options)
18 + .then(res => res.json())
19 + .then(json => {
20 + coinJson.coin = arr[i];
21 + coinJson.price = json[0].trade_price;
22 + })
23 + .then(function(){
24 + responseList.push(coinJson);
25 + console.log(responseList);
26 +
27 + })
28 + .catch(err => console.error('error:' + err));
29 + },10);
30 + })(i);
31 +
32 + }
33 +
34 +})
1 +for(var i =0; i<10;i++){
2 + (function(i){
3 + setTimeout(function(){
4 + console.log(i);
5 + },10);
6 + })(i);
7 +}
...\ No newline at end of file ...\ No newline at end of file