Commit 60d719e58ae6ead09bab7447a880c5e5b85a1f23

Authored by Nur Fajar Wibowo
1 parent aaaa648420
Exists in master

commit pertama [trial send and receive sms OK]

Showing 4 changed files with 1917 additions and 0 deletions Inline Diff

File was created 1 {
2 "development": {
3 "usb_port": "please change me",//tty/USB2
4 "node_port": "please change me",//2112
5 "url_post": "please change me",//http://ip:port
6 "api_key": "746573206D6F64656D2074656C6D6F73656C20666C617368"
7 }
8 }
9
10
File was created 1 "use strict";
2
3 const express = require('express');
4 const app = express();
5 const SerialPort = require("serialport");
6 const config = require('./config.json');
7 const request = require('request');
8
9 var statusModem = "0K";
10 var errorMessageModem= "";
11 var node_port = config.development.node_port;
12 var usb_port = config.development.usb_port;
13 var url_post = config.development.url_post;
14 var api_key = config.development.api_key;
15
16 //set serialport
17 const serialPort = new SerialPort(usb_port, {
18 baudRate: 115200, dataBits: 8, autoOpen: true, lock: false,
19 //parser: SerialPort.parsers.readline("\n")
20 });
21
22 serialPort.on("open", function () {
23 console.log('Serial communication open');
24 //
25 serialPort.write("AT+CNMI?");
26 serialPort.write("\r");
27 serialPort.write("AT+CNMI=1,1,2,1,1");
28 serialPort.write("\r");
29 console.log('receive sms ON');
30
31 });
32
33 serialPort.on('error', function(err) {
34 statusModem = "NOT OK";
35 errorMessageModem = err.message;
36 console.log('Error!: ', err.message);
37 process.exit(1);
38 });
39
40 serialPort.on('data', function(data) {
41 console.log("incoming data: " + data);
42 var lastData = data.toString();
43 if (lastData.match(/\+CMTI:/)){
44 var numberPattern = /(\d+)/g;
45 var slot = lastData.match(numberPattern);
46 console.log("slot "+slot);
47 console.log("ada message baru");
48 readSmsAuto(serialPort, slot);
49 } else if (lastData.match(/\+CMGR:/)){
50 console.log("read sms!" + data);
51 console.log("end read msg!");
52 const lines = lastData.split(/\n/);
53 console.log("lines1 "+lines[1]);
54 console.log("lines2 "+lines[2]);
55 const content = lines[1].split(',');
56 console.log("content0 "+content[0]);
57 console.log("content1 "+content[1]);
58 console.log("content2 "+content[2]);
59 console.log("content3 "+content[3]);
60 console.log("content4 "+content[4]);
61 var nomor = content[1].toString();
62 nomor = nomor.replace(/"/g,'');
63 nomor = nomor.replace(/\+/g,'');
64 var pesan = lines[2].toString();
65 //console.log("nomor nya "+nomor);
66 postIncomingMessage(nomor, pesan);
67 }
68 });
69
70 //------------------function 2 000000000000 -----------------
71 //helloWorld
72 function helloWorld(req, res, next){
73 console.log("hello world call!??");
74 res.send('hello world');
75
76 }
77 //function delete message slot ke?
78 function deleteMessage(serialPort, slot){
79 serialPort.write("AT+CMGD="+slot);
80 serialPort.write("\r");
81 console.log("delete pesan slot "+slot+" done!");
82
83 }
84 //post to end point url
85 function postIncomingMessage(nomor, pesan){
86 console.log("----------------------------post incoming message-------------------------");
87 pesan = pesan.replace(/\s+$/, '');
88 //post to URL end Point
89 request(url_post+"/gtwjs?msg="+pesan+"&number="+nomor, function (error, response, body) {
90 if (error) { console.log("error post! "+nomor+" msg; \""+pesan+"\" errornya; "+error.message); }
91 else if (!error && response.statusCode == 200) {console.log("success post "+nomor+" msg; \""+pesan+"\" resp; "+body);}
92 });
93 //delete incoming message after send to komod
94 }
95 //sendSms
96 function sendSms (req, res, next){
97 var msg = req.query.msg;
98 var number = req.query.number;
99 var reqid = req.query.reqid;
100 var apikey = req.query.apikey;
101 //api_key="746573206D6F64656D2074656C6D6F73656C20666C617368";
102 if(!reqid||!apikey){
103 console.log("invalid reqid or apikey;msg "+msg+" number "+number);
104 res.json({"status": "invalid parameter", "msg": msg, "number": number, "apikey" : apikey, "reqid": reqid});
105 return;
106 } else if (apikey !== api_key){
107 console.log("invalid api_key;msg \""+msg+"\" number \""+number+"\" reqid \""+reqid);
108 res.json({"status": "invalid parameter", "msg": msg, "number": number, "apikey" : apikey, "reqid": reqid});
109 return;
110
111 }
112 console.log("msg "+ msg + " number " +number);
113 //----------------
114 serialPort.write("AT+CMGF=1");
115 serialPort.write('\r');
116
117 sendingSMS(serialPort, msg, "+"+number, reqid);
118 console.log('resp; status '+statusModem+" reqid "+reqid);
119 //---------------
120 res.json({"status": statusModem+" "+errorMessageModem, "msg": msg, "number": number});
121 }
122
123 function readSmsAuto(serialPort, slot){
124
125 serialPort.write("AT+CMGF=1");
126 serialPort.write('\r');
127 serialPort.write("AT+CMGR="+slot);// read only slot 1
128 serialPort.write('\r');
129 console.log("pesan slot "+slot+" sudah di baca");
130 setTimeout(function(){
131 serialPort.write("AT+CMGD="+slot);
132 serialPort.write("\r");
133 console.log("delete pesan slot "+slot+" done!");
134 }, 2000);
135
136 }
137
138
139 function readSms(req, res, next){
140
141 serialPort.write("AT+CMGF=1");
142 serialPort.write('\r');
143 serialPort.write('AT+CMGR=0');// read only slot 1
144 serialPort.write('\r');
145 res.send('sms readed');
146
147 }
148
149 function sendingSMS(serial, message, phone_no) {
150 if (statusModem === "NOT OK"){
151 console.log('send sms gagal');
152 return statusModem;
153 }
154 console.log('number '+phone_no);
155 serial.write("AT+CMGS=\"" + phone_no + "\"");
156 serial.write('\r');
157 serial.write(message);
158 console.log(message);
159 serial.write(Buffer([0x1A]));
160 serial.write('^z');
161 //serial.close();
162 }
163
164 app.get('/', helloWorld);
165 app.get('/sms', sendSms);
166 app.get('/read', readSms);
167
168 app.listen(node_port, () => console.log(`Example app listening on port ${node_port}!`));
169
File was created 1 {
2 "name": "modemX",
3 "version": "1.0.0",
4 "lockfileVersion": 1,
5 "requires": true,
6 "dependencies": {
7 "accepts": {
8 "version": "1.3.5",
9 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
10 "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
11 "requires": {
12 "mime-types": "~2.1.18",
13 "negotiator": "0.6.1"
14 }
15 },
16 "ajv": {
17 "version": "6.10.0",
18 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
19 "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
20 "requires": {
21 "fast-deep-equal": "^2.0.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.8.0",
57 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
58 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
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 "bindings": {
69 "version": "1.2.1",
70 "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
71 "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE="
72 },
73 "body-parser": {
74 "version": "1.18.3",
75 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
76 "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
77 "requires": {
78 "bytes": "3.0.0",
79 "content-type": "~1.0.4",
80 "debug": "2.6.9",
81 "depd": "~1.1.2",
82 "http-errors": "~1.6.3",
83 "iconv-lite": "0.4.23",
84 "on-finished": "~2.3.0",
85 "qs": "6.5.2",
86 "raw-body": "2.3.3",
87 "type-is": "~1.6.16"
88 },
89 "dependencies": {
90 "debug": {
91 "version": "2.6.9",
92 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
93 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
94 "requires": {
95 "ms": "2.0.0"
96 }
97 },
98 "ms": {
99 "version": "2.0.0",
100 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
101 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
102 }
103 }
104 },
105 "bytes": {
106 "version": "3.0.0",
107 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
108 "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
109 },
110 "caseless": {
111 "version": "0.12.0",
112 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
113 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
114 },
115 "combined-stream": {
116 "version": "1.0.7",
117 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
118 "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
119 "requires": {
120 "delayed-stream": "~1.0.0"
121 }
122 },
123 "commander": {
124 "version": "2.19.0",
125 "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
126 "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg=="
127 },
128 "content-disposition": {
129 "version": "0.5.2",
130 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
131 "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
132 },
133 "content-type": {
134 "version": "1.0.4",
135 "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
136 "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
137 },
138 "cookie": {
139 "version": "0.3.1",
140 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
141 "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
142 },
143 "cookie-signature": {
144 "version": "1.0.6",
145 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
146 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
147 },
148 "core-util-is": {
149 "version": "1.0.2",
150 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
151 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
152 },
153 "dashdash": {
154 "version": "1.14.1",
155 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
156 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
157 "requires": {
158 "assert-plus": "^1.0.0"
159 }
160 },
161 "debug": {
162 "version": "2.6.9",
163 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
164 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
165 "requires": {
166 "ms": "2.0.0"
167 }
168 },
169 "define-properties": {
170 "version": "1.1.3",
171 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
172 "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
173 "requires": {
174 "object-keys": "^1.0.12"
175 }
176 },
177 "delay": {
178 "version": "4.1.0",
179 "resolved": "https://registry.npmjs.org/delay/-/delay-4.1.0.tgz",
180 "integrity": "sha512-8Hea6/aOu3bPdDBQhSRUEUzF0QwuWmSPuIK+sxNdvcJtSfzb6HXrTd9DFJBCJcV9o83fFECqTgllqdnmUfq9+w=="
181 },
182 "delayed-stream": {
183 "version": "1.0.0",
184 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
185 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
186 },
187 "depd": {
188 "version": "1.1.2",
189 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
190 "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
191 },
192 "destroy": {
193 "version": "1.0.4",
194 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
195 "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
196 },
197 "ecc-jsbn": {
198 "version": "0.1.2",
199 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
200 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
201 "requires": {
202 "jsbn": "~0.1.0",
203 "safer-buffer": "^2.1.0"
204 }
205 },
206 "ee-first": {
207 "version": "1.1.1",
208 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
209 "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
210 },
211 "encodeurl": {
212 "version": "1.0.2",
213 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
214 "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
215 },
216 "escape-html": {
217 "version": "1.0.3",
218 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
219 "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
220 },
221 "etag": {
222 "version": "1.8.1",
223 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
224 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
225 },
226 "express": {
227 "version": "4.16.4",
228 "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
229 "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
230 "requires": {
231 "accepts": "~1.3.5",
232 "array-flatten": "1.1.1",
233 "body-parser": "1.18.3",
234 "content-disposition": "0.5.2",
235 "content-type": "~1.0.4",
236 "cookie": "0.3.1",
237 "cookie-signature": "1.0.6",
238 "debug": "2.6.9",
239 "depd": "~1.1.2",
240 "encodeurl": "~1.0.2",
241 "escape-html": "~1.0.3",
242 "etag": "~1.8.1",
243 "finalhandler": "1.1.1",
244 "fresh": "0.5.2",
245 "merge-descriptors": "1.0.1",
246 "methods": "~1.1.2",
247 "on-finished": "~2.3.0",
248 "parseurl": "~1.3.2",
249 "path-to-regexp": "0.1.7",
250 "proxy-addr": "~2.0.4",
251 "qs": "6.5.2",
252 "range-parser": "~1.2.0",
253 "safe-buffer": "5.1.2",
254 "send": "0.16.2",
255 "serve-static": "1.13.2",
256 "setprototypeof": "1.1.0",
257 "statuses": "~1.4.0",
258 "type-is": "~1.6.16",
259 "utils-merge": "1.0.1",
260 "vary": "~1.1.2"
261 },
262 "dependencies": {
263 "debug": {
264 "version": "2.6.9",
265 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
266 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
267 "requires": {
268 "ms": "2.0.0"
269 }
270 },
271 "ms": {
272 "version": "2.0.0",
273 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
274 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
275 }
276 }
277 },
278 "extend": {
279 "version": "3.0.2",
280 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
281 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
282 },
283 "extsprintf": {
284 "version": "1.3.0",
285 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
286 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
287 },
288 "fast-deep-equal": {
289 "version": "2.0.1",
290 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
291 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
292 },
293 "fast-json-stable-stringify": {
294 "version": "2.0.0",
295 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
296 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
297 },
298 "finalhandler": {
299 "version": "1.1.1",
300 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
301 "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
302 "requires": {
303 "debug": "2.6.9",
304 "encodeurl": "~1.0.2",
305 "escape-html": "~1.0.3",
306 "on-finished": "~2.3.0",
307 "parseurl": "~1.3.2",
308 "statuses": "~1.4.0",
309 "unpipe": "~1.0.0"
310 },
311 "dependencies": {
312 "debug": {
313 "version": "2.6.9",
314 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
315 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
316 "requires": {
317 "ms": "2.0.0"
318 }
319 },
320 "ms": {
321 "version": "2.0.0",
322 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
323 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
324 }
325 }
326 },
327 "forever-agent": {
328 "version": "0.6.1",
329 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
330 "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
331 },
332 "form-data": {
333 "version": "2.3.3",
334 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
335 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
336 "requires": {
337 "asynckit": "^0.4.0",
338 "combined-stream": "^1.0.6",
339 "mime-types": "^2.1.12"
340 }
341 },
342 "forwarded": {
343 "version": "0.1.2",
344 "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
345 "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
346 },
347 "fresh": {
348 "version": "0.5.2",
349 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
350 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
351 },
352 "function-bind": {
353 "version": "1.1.1",
354 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
355 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
356 },
357 "getpass": {
358 "version": "0.1.7",
359 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
360 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
361 "requires": {
362 "assert-plus": "^1.0.0"
363 }
364 },
365 "har-schema": {
366 "version": "2.0.0",
367 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
368 "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
369 },
370 "har-validator": {
371 "version": "5.1.3",
372 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
373 "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
374 "requires": {
375 "ajv": "^6.5.5",
376 "har-schema": "^2.0.0"
377 }
378 },
379 "has-symbols": {
380 "version": "1.0.0",
381 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
382 "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
383 },
384 "http-errors": {
385 "version": "1.6.3",
386 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
387 "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
388 "requires": {
389 "depd": "~1.1.2",
390 "inherits": "2.0.3",
391 "setprototypeof": "1.1.0",
392 "statuses": ">= 1.4.0 < 2"
393 }
394 },
395 "http-signature": {
396 "version": "1.2.0",
397 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
398 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
399 "requires": {
400 "assert-plus": "^1.0.0",
401 "jsprim": "^1.2.2",
402 "sshpk": "^1.7.0"
403 }
404 },
405 "iconv-lite": {
406 "version": "0.4.23",
407 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
408 "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
409 "requires": {
410 "safer-buffer": ">= 2.1.2 < 3"
411 }
412 },
413 "immediate": {
414 "version": "3.0.6",
415 "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
416 "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
417 },
418 "inherits": {
419 "version": "2.0.3",
420 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
421 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
422 },
423 "ipaddr.js": {
424 "version": "1.8.0",
425 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
426 "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
427 },
428 "is-typedarray": {
429 "version": "1.0.0",
430 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
431 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
432 },
433 "isstream": {
434 "version": "0.1.2",
435 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
436 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
437 },
438 "jsbn": {
439 "version": "0.1.1",
440 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
441 "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
442 },
443 "json-schema": {
444 "version": "0.2.3",
445 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
446 "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
447 },
448 "json-schema-traverse": {
449 "version": "0.4.1",
450 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
451 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
452 },
453 "json-stringify-safe": {
454 "version": "5.0.1",
455 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
456 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
457 },
458 "jsprim": {
459 "version": "1.4.1",
460 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
461 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
462 "requires": {
463 "assert-plus": "1.0.0",
464 "extsprintf": "1.3.0",
465 "json-schema": "0.2.3",
466 "verror": "1.10.0"
467 }
468 },
469 "lie": {
470 "version": "3.3.0",
471 "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
472 "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
473 "requires": {
474 "immediate": "~3.0.5"
475 }
476 },
477 "media-typer": {
478 "version": "0.3.0",
479 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
480 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
481 },
482 "merge-descriptors": {
483 "version": "1.0.1",
484 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
485 "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
486 },
487 "methods": {
488 "version": "1.1.2",
489 "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
490 "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
491 },
492 "mime": {
493 "version": "1.4.1",
494 "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
495 "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
496 },
497 "mime-db": {
498 "version": "1.38.0",
499 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
500 "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg=="
501 },
502 "mime-types": {
503 "version": "2.1.22",
504 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
505 "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
506 "requires": {
507 "mime-db": "~1.38.0"
508 }
509 },
510 "ms": {
511 "version": "2.0.0",
512 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
513 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
514 },
515 "nan": {
516 "version": "2.13.0",
517 "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.0.tgz",
518 "integrity": "sha512-5DDQvN0luhXdut8SCwzm/ZuAX2W+fwhqNzfq7CZ+OJzQ6NwpcqmIGyLD1R8MEt7BeErzcsI0JLr4pND2pNp2Cw=="
519 },
520 "negotiator": {
521 "version": "0.6.1",
522 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
523 "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
524 },
525 "oauth-sign": {
526 "version": "0.9.0",
527 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
528 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
529 },
530 "object-keys": {
531 "version": "1.1.0",
532 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz",
533 "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg=="
534 },
535 "object.assign": {
536 "version": "4.1.0",
537 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
538 "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
539 "requires": {
540 "define-properties": "^1.1.2",
541 "function-bind": "^1.1.1",
542 "has-symbols": "^1.0.0",
543 "object-keys": "^1.0.11"
544 }
545 },
546 "on-finished": {
547 "version": "2.3.0",
548 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
549 "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
550 "requires": {
551 "ee-first": "1.1.1"
552 }
553 },
554 "parseurl": {
555 "version": "1.3.2",
556 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
557 "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
558 },
559 "path-to-regexp": {
560 "version": "0.1.7",
561 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
562 "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
563 },
564 "performance-now": {
565 "version": "2.1.0",
566 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
567 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
568 },
569 "proxy-addr": {
570 "version": "2.0.4",
571 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
572 "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
573 "requires": {
574 "forwarded": "~0.1.2",
575 "ipaddr.js": "1.8.0"
576 }
577 },
578 "psl": {
579 "version": "1.1.31",
580 "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
581 "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw=="
582 },
583 "punycode": {
584 "version": "2.1.1",
585 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
586 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
587 },
588 "qs": {
589 "version": "6.5.2",
590 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
591 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
592 },
593 "range-parser": {
594 "version": "1.2.0",
595 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
596 "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
597 },
598 "raw-body": {
599 "version": "2.3.3",
600 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
601 "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
602 "requires": {
603 "bytes": "3.0.0",
604 "http-errors": "1.6.3",
605 "iconv-lite": "0.4.23",
606 "unpipe": "1.0.0"
607 }
608 },
609 "request": {
610 "version": "2.88.0",
611 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
612 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
613 "requires": {
614 "aws-sign2": "~0.7.0",
615 "aws4": "^1.8.0",
616 "caseless": "~0.12.0",
617 "combined-stream": "~1.0.6",
618 "extend": "~3.0.2",
619 "forever-agent": "~0.6.1",
620 "form-data": "~2.3.2",
621 "har-validator": "~5.1.0",
622 "http-signature": "~1.2.0",
623 "is-typedarray": "~1.0.0",
624 "isstream": "~0.1.2",
625 "json-stringify-safe": "~5.0.1",
626 "mime-types": "~2.1.19",
627 "oauth-sign": "~0.9.0",
628 "performance-now": "^2.1.0",
629 "qs": "~6.5.2",
630 "safe-buffer": "^5.1.2",
631 "tough-cookie": "~2.4.3",
632 "tunnel-agent": "^0.6.0",
633 "uuid": "^3.3.2"
634 }
635 },
636 "safe-buffer": {
637 "version": "5.1.2",
638 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
639 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
640 },
641 "safer-buffer": {
642 "version": "2.1.2",
643 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
644 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
645 },
646 "send": {
647 "version": "0.16.2",
648 "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
649 "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
650 "requires": {
651 "debug": "2.6.9",
652 "depd": "~1.1.2",
653 "destroy": "~1.0.4",
654 "encodeurl": "~1.0.2",
655 "escape-html": "~1.0.3",
656 "etag": "~1.8.1",
657 "fresh": "0.5.2",
658 "http-errors": "~1.6.2",
659 "mime": "1.4.1",
660 "ms": "2.0.0",
661 "on-finished": "~2.3.0",
662 "range-parser": "~1.2.0",
663 "statuses": "~1.4.0"
664 },
665 "dependencies": {
666 "debug": {
667 "version": "2.6.9",
668 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
669 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
670 "requires": {
671 "ms": "2.0.0"
672 }
673 },
674 "ms": {
675 "version": "2.0.0",
676 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
677 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
678 }
679 }
680 },
681 "serialport": {
682 "version": "4.0.7",
683 "resolved": "https://registry.npmjs.org/serialport/-/serialport-4.0.7.tgz",
684 "integrity": "sha1-QhxhiophK9QM+kYbSkYVTa8iKaU=",
685 "requires": {
686 "bindings": "1.2.1",
687 "commander": "^2.9.0",
688 "debug": "^2.3.2",
689 "lie": "^3.1.0",
690 "nan": "^2.4.0",
691 "node-pre-gyp": "^0.6.32",
692 "object.assign": "^4.0.3"
693 },
694 "dependencies": {
695 "node-pre-gyp": {
696 "version": "0.6.32",
697 "bundled": true,
698 "requires": {
699 "mkdirp": "~0.5.1",
700 "nopt": "~3.0.6",
701 "npmlog": "^4.0.1",
702 "rc": "~1.1.6",
703 "request": "^2.79.0",
704 "rimraf": "~2.5.4",
705 "semver": "~5.3.0",
706 "tar": "~2.2.1",
707 "tar-pack": "~3.3.0"
708 },
709 "dependencies": {
710 "mkdirp": {
711 "version": "0.5.1",
712 "bundled": true,
713 "requires": {
714 "minimist": "0.0.8"
715 },
716 "dependencies": {
717 "minimist": {
718 "version": "0.0.8",
719 "bundled": true
720 }
721 }
722 },
723 "nopt": {
724 "version": "3.0.6",
725 "bundled": true,
726 "requires": {
727 "abbrev": "1"
728 },
729 "dependencies": {
730 "abbrev": {
731 "version": "1.0.9",
732 "bundled": true
733 }
734 }
735 },
736 "npmlog": {
737 "version": "4.0.1",
738 "bundled": true,
739 "requires": {
740 "are-we-there-yet": "~1.1.2",
741 "console-control-strings": "~1.1.0",
742 "gauge": "~2.7.1",
743 "set-blocking": "~2.0.0"
744 },
745 "dependencies": {
746 "are-we-there-yet": {
747 "version": "1.1.2",
748 "bundled": true,
749 "requires": {
750 "delegates": "^1.0.0",
751 "readable-stream": "^2.0.0 || ^1.1.13"
752 },
753 "dependencies": {
754 "delegates": {
755 "version": "1.0.0",
756 "bundled": true
757 },
758 "readable-stream": {
759 "version": "2.2.2",
760 "bundled": true,
761 "requires": {
762 "buffer-shims": "^1.0.0",
763 "core-util-is": "~1.0.0",
764 "inherits": "~2.0.1",
765 "isarray": "~1.0.0",
766 "process-nextick-args": "~1.0.6",
767 "string_decoder": "~0.10.x",
768 "util-deprecate": "~1.0.1"
769 },
770 "dependencies": {
771 "buffer-shims": {
772 "version": "1.0.0",
773 "bundled": true
774 },
775 "core-util-is": {
776 "version": "1.0.2",
777 "bundled": true
778 },
779 "inherits": {
780 "version": "2.0.3",
781 "bundled": true
782 },
783 "isarray": {
784 "version": "1.0.0",
785 "bundled": true
786 },
787 "process-nextick-args": {
788 "version": "1.0.7",
789 "bundled": true
790 },
791 "string_decoder": {
792 "version": "0.10.31",
793 "bundled": true
794 },
795 "util-deprecate": {
796 "version": "1.0.2",
797 "bundled": true
798 }
799 }
800 }
801 }
802 },
803 "console-control-strings": {
804 "version": "1.1.0",
805 "bundled": true
806 },
807 "gauge": {
808 "version": "2.7.2",
809 "bundled": true,
810 "requires": {
811 "aproba": "^1.0.3",
812 "console-control-strings": "^1.0.0",
813 "has-unicode": "^2.0.0",
814 "object-assign": "^4.1.0",
815 "signal-exit": "^3.0.0",
816 "string-width": "^1.0.1",
817 "strip-ansi": "^3.0.1",
818 "supports-color": "^0.2.0",
819 "wide-align": "^1.1.0"
820 },
821 "dependencies": {
822 "aproba": {
823 "version": "1.0.4",
824 "bundled": true
825 },
826 "has-unicode": {
827 "version": "2.0.1",
828 "bundled": true
829 },
830 "object-assign": {
831 "version": "4.1.0",
832 "bundled": true
833 },
834 "signal-exit": {
835 "version": "3.0.2",
836 "bundled": true
837 },
838 "string-width": {
839 "version": "1.0.2",
840 "bundled": true,
841 "requires": {
842 "code-point-at": "^1.0.0",
843 "is-fullwidth-code-point": "^1.0.0",
844 "strip-ansi": "^3.0.0"
845 },
846 "dependencies": {
847 "code-point-at": {
848 "version": "1.1.0",
849 "bundled": true
850 },
851 "is-fullwidth-code-point": {
852 "version": "1.0.0",
853 "bundled": true,
854 "requires": {
855 "number-is-nan": "^1.0.0"
856 },
857 "dependencies": {
858 "number-is-nan": {
859 "version": "1.0.1",
860 "bundled": true
861 }
862 }
863 }
864 }
865 },
866 "strip-ansi": {
867 "version": "3.0.1",
868 "bundled": true,
869 "requires": {
870 "ansi-regex": "^2.0.0"
871 },
872 "dependencies": {
873 "ansi-regex": {
874 "version": "2.0.0",
875 "bundled": true
876 }
877 }
878 },
879 "supports-color": {
880 "version": "0.2.0",
881 "bundled": true
882 },
883 "wide-align": {
884 "version": "1.1.0",
885 "bundled": true,
886 "requires": {
887 "string-width": "^1.0.1"
888 }
889 }
890 }
891 },
892 "set-blocking": {
893 "version": "2.0.0",
894 "bundled": true
895 }
896 }
897 },
898 "rc": {
899 "version": "1.1.6",
900 "bundled": true,
901 "requires": {
902 "deep-extend": "~0.4.0",
903 "ini": "~1.3.0",
904 "minimist": "^1.2.0",
905 "strip-json-comments": "~1.0.4"
906 },
907 "dependencies": {
908 "deep-extend": {
909 "version": "0.4.1",
910 "bundled": true
911 },
912 "ini": {
913 "version": "1.3.4",
914 "bundled": true
915 },
916 "minimist": {
917 "version": "1.2.0",
918 "bundled": true
919 },
920 "strip-json-comments": {
921 "version": "1.0.4",
922 "bundled": true
923 }
924 }
925 },
926 "request": {
927 "version": "2.79.0",
928 "bundled": true,
929 "requires": {
930 "aws-sign2": "~0.6.0",
931 "aws4": "^1.2.1",
932 "caseless": "~0.11.0",
933 "combined-stream": "~1.0.5",
934 "extend": "~3.0.0",
935 "forever-agent": "~0.6.1",
936 "form-data": "~2.1.1",
937 "har-validator": "~2.0.6",
938 "hawk": "~3.1.3",
939 "http-signature": "~1.1.0",
940 "is-typedarray": "~1.0.0",
941 "isstream": "~0.1.2",
942 "json-stringify-safe": "~5.0.1",
943 "mime-types": "~2.1.7",
944 "oauth-sign": "~0.8.1",
945 "qs": "~6.3.0",
946 "stringstream": "~0.0.4",
947 "tough-cookie": "~2.3.0",
948 "tunnel-agent": "~0.4.1",
949 "uuid": "^3.0.0"
950 },
951 "dependencies": {
952 "aws-sign2": {
953 "version": "0.6.0",
954 "bundled": true
955 },
956 "aws4": {
957 "version": "1.5.0",
958 "bundled": true
959 },
960 "caseless": {
961 "version": "0.11.0",
962 "bundled": true
963 },
964 "combined-stream": {
965 "version": "1.0.5",
966 "bundled": true,
967 "requires": {
968 "delayed-stream": "~1.0.0"
969 },
970 "dependencies": {
971 "delayed-stream": {
972 "version": "1.0.0",
973 "bundled": true
974 }
975 }
976 },
977 "extend": {
978 "version": "3.0.0",
979 "bundled": true
980 },
981 "forever-agent": {
982 "version": "0.6.1",
983 "bundled": true
984 },
985 "form-data": {
986 "version": "2.1.2",
987 "bundled": true,
988 "requires": {
989 "asynckit": "^0.4.0",
990 "combined-stream": "^1.0.5",
991 "mime-types": "^2.1.12"
992 },
993 "dependencies": {
994 "asynckit": {
995 "version": "0.4.0",
996 "bundled": true
997 }
998 }
999 },
1000 "har-validator": {
1001 "version": "2.0.6",
1002 "bundled": true,
1003 "requires": {
1004 "chalk": "^1.1.1",
1005 "commander": "^2.9.0",
1006 "is-my-json-valid": "^2.12.4",
1007 "pinkie-promise": "^2.0.0"
1008 },
1009 "dependencies": {
1010 "chalk": {
1011 "version": "1.1.3",
1012 "bundled": true,
1013 "requires": {
1014 "ansi-styles": "^2.2.1",
1015 "escape-string-regexp": "^1.0.2",
1016 "has-ansi": "^2.0.0",
1017 "strip-ansi": "^3.0.0",
1018 "supports-color": "^2.0.0"
1019 },
1020 "dependencies": {
1021 "ansi-styles": {
1022 "version": "2.2.1",
1023 "bundled": true
1024 },
1025 "escape-string-regexp": {
1026 "version": "1.0.5",
1027 "bundled": true
1028 },
1029 "has-ansi": {
1030 "version": "2.0.0",
1031 "bundled": true,
1032 "requires": {
1033 "ansi-regex": "^2.0.0"
1034 },
1035 "dependencies": {
1036 "ansi-regex": {
1037 "version": "2.0.0",
1038 "bundled": true
1039 }
1040 }
1041 },
1042 "strip-ansi": {
1043 "version": "3.0.1",
1044 "bundled": true,
1045 "requires": {
1046 "ansi-regex": "^2.0.0"
1047 },
1048 "dependencies": {
1049 "ansi-regex": {
1050 "version": "2.0.0",
1051 "bundled": true
1052 }
1053 }
1054 },
1055 "supports-color": {
1056 "version": "2.0.0",
1057 "bundled": true
1058 }
1059 }
1060 },
1061 "is-my-json-valid": {
1062 "version": "2.15.0",
1063 "bundled": true,
1064 "requires": {
1065 "generate-function": "^2.0.0",
1066 "generate-object-property": "^1.1.0",
1067 "jsonpointer": "^4.0.0",
1068 "xtend": "^4.0.0"
1069 },
1070 "dependencies": {
1071 "generate-function": {
1072 "version": "2.0.0",
1073 "bundled": true
1074 },
1075 "generate-object-property": {
1076 "version": "1.2.0",
1077 "bundled": true,
1078 "requires": {
1079 "is-property": "^1.0.0"
1080 },
1081 "dependencies": {
1082 "is-property": {
1083 "version": "1.0.2",
1084 "bundled": true
1085 }
1086 }
1087 },
1088 "jsonpointer": {
1089 "version": "4.0.0",
1090 "bundled": true
1091 },
1092 "xtend": {
1093 "version": "4.0.1",
1094 "bundled": true
1095 }
1096 }
1097 },
1098 "pinkie-promise": {
1099 "version": "2.0.1",
1100 "bundled": true,
1101 "requires": {
1102 "pinkie": "^2.0.0"
1103 },
1104 "dependencies": {
1105 "pinkie": {
1106 "version": "2.0.4",
1107 "bundled": true
1108 }
1109 }
1110 }
1111 }
1112 },
1113 "hawk": {
1114 "version": "3.1.3",
1115 "bundled": true,
1116 "requires": {
1117 "boom": "2.x.x",
1118 "cryptiles": "2.x.x",
1119 "hoek": "2.x.x",
1120 "sntp": "1.x.x"
1121 },
1122 "dependencies": {
1123 "boom": {
1124 "version": "2.10.1",
1125 "bundled": true,
1126 "requires": {
1127 "hoek": "2.x.x"
1128 }
1129 },
1130 "cryptiles": {
1131 "version": "2.0.5",
1132 "bundled": true,
1133 "requires": {
1134 "boom": "2.x.x"
1135 }
1136 },
1137 "hoek": {
1138 "version": "2.16.3",
1139 "bundled": true
1140 },
1141 "sntp": {
1142 "version": "1.0.9",
1143 "bundled": true,
1144 "requires": {
1145 "hoek": "2.x.x"
1146 }
1147 }
1148 }
1149 },
1150 "http-signature": {
1151 "version": "1.1.1",
1152 "bundled": true,
1153 "requires": {
1154 "assert-plus": "^0.2.0",
1155 "jsprim": "^1.2.2",
1156 "sshpk": "^1.7.0"
1157 },
1158 "dependencies": {
1159 "assert-plus": {
1160 "version": "0.2.0",
1161 "bundled": true
1162 },
1163 "jsprim": {
1164 "version": "1.3.1",
1165 "bundled": true,
1166 "requires": {
1167 "extsprintf": "1.0.2",
1168 "json-schema": "0.2.3",
1169 "verror": "1.3.6"
1170 },
1171 "dependencies": {
1172 "extsprintf": {
1173 "version": "1.0.2",
1174 "bundled": true
1175 },
1176 "json-schema": {
1177 "version": "0.2.3",
1178 "bundled": true
1179 },
1180 "verror": {
1181 "version": "1.3.6",
1182 "bundled": true,
1183 "requires": {
1184 "extsprintf": "1.0.2"
1185 }
1186 }
1187 }
1188 },
1189 "sshpk": {
1190 "version": "1.10.1",
1191 "bundled": true,
1192 "requires": {
1193 "asn1": "~0.2.3",
1194 "assert-plus": "^1.0.0",
1195 "bcrypt-pbkdf": "^1.0.0",
1196 "dashdash": "^1.12.0",
1197 "ecc-jsbn": "~0.1.1",
1198 "getpass": "^0.1.1",
1199 "jodid25519": "^1.0.0",
1200 "jsbn": "~0.1.0",
1201 "tweetnacl": "~0.14.0"
1202 },
1203 "dependencies": {
1204 "asn1": {
1205 "version": "0.2.3",
1206 "bundled": true
1207 },
1208 "assert-plus": {
1209 "version": "1.0.0",
1210 "bundled": true
1211 },
1212 "bcrypt-pbkdf": {
1213 "version": "1.0.0",
1214 "bundled": true,
1215 "optional": true,
1216 "requires": {
1217 "tweetnacl": "^0.14.3"
1218 }
1219 },
1220 "dashdash": {
1221 "version": "1.14.1",
1222 "bundled": true,
1223 "requires": {
1224 "assert-plus": "^1.0.0"
1225 }
1226 },
1227 "ecc-jsbn": {
1228 "version": "0.1.1",
1229 "bundled": true,
1230 "optional": true,
1231 "requires": {
1232 "jsbn": "~0.1.0"
1233 }
1234 },
1235 "getpass": {
1236 "version": "0.1.6",
1237 "bundled": true,
1238 "requires": {
1239 "assert-plus": "^1.0.0"
1240 }
1241 },
1242 "jodid25519": {
1243 "version": "1.0.2",
1244 "bundled": true,
1245 "optional": true,
1246 "requires": {
1247 "jsbn": "~0.1.0"
1248 }
1249 },
1250 "jsbn": {
1251 "version": "0.1.0",
1252 "bundled": true,
1253 "optional": true
1254 },
1255 "tweetnacl": {
1256 "version": "0.14.4",
1257 "bundled": true,
1258 "optional": true
1259 }
1260 }
1261 }
1262 }
1263 },
1264 "is-typedarray": {
1265 "version": "1.0.0",
1266 "bundled": true
1267 },
1268 "isstream": {
1269 "version": "0.1.2",
1270 "bundled": true
1271 },
1272 "json-stringify-safe": {
1273 "version": "5.0.1",
1274 "bundled": true
1275 },
1276 "mime-types": {
1277 "version": "2.1.13",
1278 "bundled": true,
1279 "requires": {
1280 "mime-db": "~1.25.0"
1281 },
1282 "dependencies": {
1283 "mime-db": {
1284 "version": "1.25.0",
1285 "bundled": true
1286 }
1287 }
1288 },
1289 "oauth-sign": {
1290 "version": "0.8.2",
1291 "bundled": true
1292 },
1293 "qs": {
1294 "version": "6.3.0",
1295 "bundled": true
1296 },
1297 "stringstream": {
1298 "version": "0.0.5",
1299 "bundled": true
1300 },
1301 "tough-cookie": {
1302 "version": "2.3.2",
1303 "bundled": true,
1304 "requires": {
1305 "punycode": "^1.4.1"
1306 },
1307 "dependencies": {
1308 "punycode": {
1309 "version": "1.4.1",
1310 "bundled": true
1311 }
1312 }
1313 },
1314 "tunnel-agent": {
1315 "version": "0.4.3",
1316 "bundled": true
1317 },
1318 "uuid": {
1319 "version": "3.0.1",
1320 "bundled": true
1321 }
1322 }
1323 },
1324 "rimraf": {
1325 "version": "2.5.4",
1326 "bundled": true,
1327 "requires": {
1328 "glob": "^7.0.5"
1329 },
1330 "dependencies": {
1331 "glob": {
1332 "version": "7.1.1",
1333 "bundled": true,
1334 "requires": {
1335 "fs.realpath": "^1.0.0",
1336 "inflight": "^1.0.4",
1337 "inherits": "2",
1338 "minimatch": "^3.0.2",
1339 "once": "^1.3.0",
1340 "path-is-absolute": "^1.0.0"
1341 },
1342 "dependencies": {
1343 "fs.realpath": {
1344 "version": "1.0.0",
1345 "bundled": true
1346 },
1347 "inflight": {
1348 "version": "1.0.6",
1349 "bundled": true,
1350 "requires": {
1351 "once": "^1.3.0",
1352 "wrappy": "1"
1353 },
1354 "dependencies": {
1355 "wrappy": {
1356 "version": "1.0.2",
1357 "bundled": true
1358 }
1359 }
1360 },
1361 "inherits": {
1362 "version": "2.0.3",
1363 "bundled": true
1364 },
1365 "minimatch": {
1366 "version": "3.0.3",
1367 "bundled": true,
1368 "requires": {
1369 "brace-expansion": "^1.0.0"
1370 },
1371 "dependencies": {
1372 "brace-expansion": {
1373 "version": "1.1.6",
1374 "bundled": true,
1375 "requires": {
1376 "balanced-match": "^0.4.1",
1377 "concat-map": "0.0.1"
1378 },
1379 "dependencies": {
1380 "balanced-match": {
1381 "version": "0.4.2",
1382 "bundled": true
1383 },
1384 "concat-map": {
1385 "version": "0.0.1",
1386 "bundled": true
1387 }
1388 }
1389 }
1390 }
1391 },
1392 "once": {
1393 "version": "1.4.0",
1394 "bundled": true,
1395 "requires": {
1396 "wrappy": "1"
1397 },
1398 "dependencies": {
1399 "wrappy": {
1400 "version": "1.0.2",
1401 "bundled": true
1402 }
1403 }
1404 },
1405 "path-is-absolute": {
1406 "version": "1.0.1",
1407 "bundled": true
1408 }
1409 }
1410 }
1411 }
1412 },
1413 "semver": {
1414 "version": "5.3.0",
1415 "bundled": true
1416 },
1417 "tar": {
1418 "version": "2.2.1",
1419 "bundled": true,
1420 "requires": {
1421 "block-stream": "*",
1422 "fstream": "^1.0.2",
1423 "inherits": "2"
1424 },
1425 "dependencies": {
1426 "block-stream": {
1427 "version": "0.0.9",
1428 "bundled": true,
1429 "requires": {
1430 "inherits": "~2.0.0"
1431 }
1432 },
1433 "fstream": {
1434 "version": "1.0.10",
1435 "bundled": true,
1436 "requires": {
1437 "graceful-fs": "^4.1.2",
1438 "inherits": "~2.0.0",
1439 "mkdirp": ">=0.5 0",
1440 "rimraf": "2"
1441 },
1442 "dependencies": {
1443 "graceful-fs": {
1444 "version": "4.1.11",
1445 "bundled": true
1446 }
1447 }
1448 },
1449 "inherits": {
1450 "version": "2.0.3",
1451 "bundled": true
1452 }
1453 }
1454 },
1455 "tar-pack": {
1456 "version": "3.3.0",
1457 "bundled": true,
1458 "requires": {
1459 "debug": "~2.2.0",
1460 "fstream": "~1.0.10",
1461 "fstream-ignore": "~1.0.5",
1462 "once": "~1.3.3",
1463 "readable-stream": "~2.1.4",
1464 "rimraf": "~2.5.1",
1465 "tar": "~2.2.1",
1466 "uid-number": "~0.0.6"
1467 },
1468 "dependencies": {
1469 "debug": {
1470 "version": "2.2.0",
1471 "bundled": true,
1472 "requires": {
1473 "ms": "0.7.1"
1474 },
1475 "dependencies": {
1476 "ms": {
1477 "version": "0.7.1",
1478 "bundled": true
1479 }
1480 }
1481 },
1482 "fstream": {
1483 "version": "1.0.10",
1484 "bundled": true,
1485 "requires": {
1486 "graceful-fs": "^4.1.2",
1487 "inherits": "~2.0.0",
1488 "mkdirp": ">=0.5 0",
1489 "rimraf": "2"
1490 },
1491 "dependencies": {
1492 "graceful-fs": {
1493 "version": "4.1.11",
1494 "bundled": true
1495 },
1496 "inherits": {
1497 "version": "2.0.3",
1498 "bundled": true
1499 }
1500 }
1501 },
1502 "fstream-ignore": {
1503 "version": "1.0.5",
1504 "bundled": true,
1505 "requires": {
1506 "fstream": "^1.0.0",
1507 "inherits": "2",
1508 "minimatch": "^3.0.0"
1509 },
1510 "dependencies": {
1511 "inherits": {
1512 "version": "2.0.3",
1513 "bundled": true
1514 },
1515 "minimatch": {
1516 "version": "3.0.3",
1517 "bundled": true,
1518 "requires": {
1519 "brace-expansion": "^1.0.0"
1520 },
1521 "dependencies": {
1522 "brace-expansion": {
1523 "version": "1.1.6",
1524 "bundled": true,
1525 "requires": {
1526 "balanced-match": "^0.4.1",
1527 "concat-map": "0.0.1"
1528 },
1529 "dependencies": {
1530 "balanced-match": {
1531 "version": "0.4.2",
1532 "bundled": true
1533 },
1534 "concat-map": {
1535 "version": "0.0.1",
1536 "bundled": true
1537 }
1538 }
1539 }
1540 }
1541 }
1542 }
1543 },
1544 "once": {
1545 "version": "1.3.3",
1546 "bundled": true,
1547 "requires": {
1548 "wrappy": "1"
1549 },
1550 "dependencies": {
1551 "wrappy": {
1552 "version": "1.0.2",
1553 "bundled": true
1554 }
1555 }
1556 },
1557 "readable-stream": {
1558 "version": "2.1.5",
1559 "bundled": true,
1560 "requires": {
1561 "buffer-shims": "^1.0.0",
1562 "core-util-is": "~1.0.0",
1563 "inherits": "~2.0.1",
1564 "isarray": "~1.0.0",
1565 "process-nextick-args": "~1.0.6",
1566 "string_decoder": "~0.10.x",
1567 "util-deprecate": "~1.0.1"
1568 },
1569 "dependencies": {
1570 "buffer-shims": {
1571 "version": "1.0.0",
1572 "bundled": true
1573 },
1574 "core-util-is": {
1575 "version": "1.0.2",
1576 "bundled": true
1577 },
1578 "inherits": {
1579 "version": "2.0.3",
1580 "bundled": true
1581 },
1582 "isarray": {
1583 "version": "1.0.0",
1584 "bundled": true
1585 },
1586 "process-nextick-args": {
1587 "version": "1.0.7",
1588 "bundled": true
1589 },
1590 "string_decoder": {
1591 "version": "0.10.31",
1592 "bundled": true
1593 },
1594 "util-deprecate": {
1595 "version": "1.0.2",
1596 "bundled": true
1597 }
1598 }
1599 },
1600 "uid-number": {
1601 "version": "0.0.6",
1602 "bundled": true
1603 }
1604 }
1605 }
1606 }
1607 }
1608 }
1609 },
1610 "serve-static": {
1611 "version": "1.13.2",
1612 "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
1613 "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
1614 "requires": {
1615 "encodeurl": "~1.0.2",
1616 "escape-html": "~1.0.3",
1617 "parseurl": "~1.3.2",
1618 "send": "0.16.2"
1619 }
1620 },
1621 "setprototypeof": {
1622 "version": "1.1.0",
1623 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
1624 "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
1625 },
1626 "sshpk": {
1627 "version": "1.16.1",
1628 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
1629 "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
1630 "requires": {
1631 "asn1": "~0.2.3",
1632 "assert-plus": "^1.0.0",
1633 "bcrypt-pbkdf": "^1.0.0",
1634 "dashdash": "^1.12.0",
1635 "ecc-jsbn": "~0.1.1",
1636 "getpass": "^0.1.1",
1637 "jsbn": "~0.1.0",
1638 "safer-buffer": "^2.0.2",
1639 "tweetnacl": "~0.14.0"
1640 }
1641 },
1642 "statuses": {
1643 "version": "1.4.0",
1644 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
1645 "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
1646 },
1647 "tough-cookie": {
1648 "version": "2.4.3",
1649 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
1650 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
1651 "requires": {
1652 "psl": "^1.1.24",
1653 "punycode": "^1.4.1"
1654 },
1655 "dependencies": {
1656 "punycode": {
1657 "version": "1.4.1",
1658 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
1659 "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
1660 }
1661 }
1662 },
1663 "tunnel-agent": {
1664 "version": "0.6.0",
1665 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1666 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1667 "requires": {
1668 "safe-buffer": "^5.0.1"
1669 }
1670 },
1671 "tweetnacl": {
1672 "version": "0.14.5",
1673 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1674 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1675 },
1676 "type-is": {
1677 "version": "1.6.16",
1678 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
1679 "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
1680 "requires": {
1681 "media-typer": "0.3.0",
1682 "mime-types": "~2.1.18"
1683 }
1684 },
1685 "unpipe": {
1686 "version": "1.0.0",
1687 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1688 "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1689 },
1690 "uri-js": {
1691 "version": "4.2.2",
1692 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1693 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1694 "requires": {
1695 "punycode": "^2.1.0"
1696 }
1697 },
1698 "utils-merge": {
1699 "version": "1.0.1",
1700 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1701 "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1702 },
1703 "uuid": {
1704 "version": "3.3.2",
1705 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
1706 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
1707 },
1708 "vary": {
1709 "version": "1.1.2",
1710 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1711 "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1712 },
1713 "verror": {
1714 "version": "1.10.0",
1715 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1716 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
1717 "requires": {
1718 "assert-plus": "^1.0.0",
1719 "core-util-is": "1.0.2",
1720 "extsprintf": "^1.2.0"
1721 }
1722 }
1723 }
1724 }
1725
File was created 1 {
2 "name": "modemX",
3 "version": "1.0.0",
4 "description": "",
5 "main": "index.js",
6 "scripts": {
7 "test": "echo \"Error: no test specified\" && exit 1"
8 },
9 "author": "",
10 "license": "ISC",
11 "dependencies": {
12 "express": "^4.16.4",
13 "request": "^2.88.0",
14 "serialport": "^4.0.7"
15 }
16 }
17