├── .DS_Store
├── .gitignore
├── README.md
├── backend
├── api.js
├── backend.gif
├── constants.js
├── index.js
├── package.json
├── readme.md
├── udp_server.py
└── yarn.lock
└── frontend
├── components
├── CarState.js
└── Rpm.js
├── frontend.gif
├── package.json
├── pages
├── _document.js
└── index.js
├── readme.md
├── socket.js
└── yarn.lock
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angel-git/acc-broadcast-node/769f21a8e0c9f0f4b521140e5a8dea26c04db11e/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .next/
3 | .DS_Store/
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # acc-broadcast-node
2 | Assetto corsa competizione broadcast in nodejs
3 |
4 | See backend and frontend modules for more info
5 |
6 | This is just a test to maybe enlight other people with more free time than me to play with ACC Broadcast api.
7 |
--------------------------------------------------------------------------------
/backend/api.js:
--------------------------------------------------------------------------------
1 | const constants = require('./constants');
2 | const binutils = require('binutils');
3 | const utf8 = require('utf8-bytes');
4 |
5 | const api = {
6 |
7 | readString: (reader) => {
8 | const length = reader.ReadUInt16();
9 | const bytes = reader.ReadBytes(length);
10 | return bytes.toString('utf8');
11 | },
12 |
13 | requestConnection: (displayName, connectionPassword, commandPassword) => {
14 | const displayNameArray = utf8(displayName);
15 | const connectionPasswordArray = utf8(connectionPassword);
16 | const commandPasswordArray = utf8(commandPassword);
17 | const updateInterval = 250;
18 |
19 | const writer = new binutils.BinaryWriter('little');
20 | writer.WriteBytes([constants.outboundMessageTypes.REGISTER_COMMAND_APPLICATION]);
21 | writer.WriteBytes([constants.broadcastingNetworkProtocol.BROADCASTING_PROTOCOL_VERSION]);
22 | writer.WriteUInt16(displayNameArray.length);
23 | writer.WriteBytes(displayNameArray);
24 | writer.WriteUInt16(connectionPasswordArray.length);
25 | writer.WriteBytes(connectionPasswordArray);
26 | writer.WriteUInt32(updateInterval);
27 | writer.WriteUInt16(commandPasswordArray.length);
28 | writer.WriteBytes(commandPasswordArray);
29 |
30 | return writer.ByteBuffer;
31 | },
32 |
33 | };
34 |
35 | module.exports = api;
--------------------------------------------------------------------------------
/backend/backend.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angel-git/acc-broadcast-node/769f21a8e0c9f0f4b521140e5a8dea26c04db11e/backend/backend.gif
--------------------------------------------------------------------------------
/backend/constants.js:
--------------------------------------------------------------------------------
1 | const constants = {
2 | outboundMessageTypes: {
3 | REGISTER_COMMAND_APPLICATION: 1,
4 | UNREGISTER_COMMAND_APPLICATION: 9,
5 | REQUEST_ENTRY_LIST: 10,
6 | REQUEST_TRACK_DATA: 11,
7 | CHANGE_HUD_PAGE: 49,
8 | CHANGE_FOCUS: 50,
9 | INSTANT_REPLAY_REQUEST: 51,
10 | PLAY_MANUAL_REPLAY_HIGHLIGHT: 52, // TODO, but planned
11 | SAVE_MANUAL_REPLAY_HIGHLIGHT: 60, // TODO, but planned
12 | },
13 | broadcastingNetworkProtocol: {
14 | BROADCASTING_PROTOCOL_VERSION: 4,
15 | },
16 | InboundMessageTypes: {
17 | REGISTRATION_RESULT: 1,
18 | REALTIME_UPDATE: 2,
19 | REALTIME_CAR_UPDATE :3,
20 | ENTRY_LIST: 4,
21 | ENTRY_LIST_CAR: 6,
22 | TRACK_DATA: 5,
23 | },
24 |
25 | }
26 | module.exports = constants;
27 |
--------------------------------------------------------------------------------
/backend/index.js:
--------------------------------------------------------------------------------
1 | const dgram = require('dgram');
2 | const app = require('express')();
3 | const http = require('http').Server(app);
4 | const io = require('socket.io')(http);
5 | const api = require('./api');
6 | const constants = require('./constants');
7 | const binutils = require('binutils');
8 |
9 | const PORT = 9000;
10 | const LOCAL_PORT = 9001;
11 | const HOST = '192.168.178.24';
12 | // const HOST = '127.0.0.1';
13 | const DISPLAY_NAME = 'your';
14 | const CONNECTION_PASSWORD = 'asd';
15 | const COMMAND_PASSWORD = '';
16 | const onClientConnectedCallback = (callback) => {
17 | console.log(`I'm connected to ACC!`, callback);
18 | }
19 |
20 | let browserSocket;
21 |
22 | const acc = dgram.createSocket('udp4');
23 | acc.bind(LOCAL_PORT);
24 |
25 | acc.on('message', message => {
26 | // console.log(`raw message: ${message}`);
27 | const reader = new binutils.BinaryReader(message, 'little');
28 |
29 | const messageType = reader.ReadUInt8();
30 | switch(messageType) {
31 | case constants.InboundMessageTypes.REGISTRATION_RESULT: {
32 | console.log('REGISTRATION_RESULT');
33 | const connectionId = reader.ReadInt32();
34 | const connectionSuccess = reader.ReadBytes(1).readUInt8(0) > 0;
35 | const isReadonly = reader.ReadBytes(1).readUInt8(0) === 0;
36 | const errMsg = api.readString(reader);
37 |
38 | console.log({connectionId, connectionSuccess, isReadonly, errMsg});
39 |
40 | break;
41 | }
42 | case constants.InboundMessageTypes.REALTIME_UPDATE: {
43 | // console.log('REALTIME_UPDATE');
44 | break;
45 | }
46 | case constants.InboundMessageTypes.REALTIME_CAR_UPDATE: {
47 | console.log('REALTIME_CAR_UPDATE');
48 | const carIndex = reader.ReadUInt16();
49 | const driverIndex = reader.ReadUInt16();
50 | const driverCount = reader.ReadBytes(1).readUint8(0);
51 | const gear = reader.ReadBytes(1).readUInt8(0) - 1;
52 | const worldPosX = reader.ReadFloat();
53 | const worldPosY = reader.ReadFloat();
54 | const yaw = reader.ReadFloat();
55 | const carLocation = reader.ReadBytes(1).readUInt8(0);
56 | const kmh = reader.ReadUInt16();
57 | const position = reader.ReadUInt16();
58 | const cupPosition = reader.ReadUInt16();
59 | const trackPosition = reader.ReadUInt16();
60 | const splinePosition = reader.ReadFloat();
61 | const laps = reader.ReadUInt16();
62 | const delta = reader.ReadUInt32();
63 |
64 | //TODO read laps
65 | // carUpdate.BestSessionLap = ReadLap(br);
66 | // carUpdate.LastLap = ReadLap(br);
67 | // carUpdate.CurrentLap = ReadLap(br);
68 |
69 | console.log({carIndex, driverIndex, gear, kmh, laps, delta});
70 |
71 | if (browserSocket) browserSocket.emit('carstate', {gear, kmh, delta});
72 |
73 | break;
74 | }
75 | default: {
76 | // console.log('response message type not recognized', messageType);
77 | }
78 | }
79 | });
80 |
81 | acc.on('listening', () => {
82 | const address = acc.address();
83 | console.log(`server listening ${address.address}:${address.port}`);
84 | });
85 |
86 |
87 | function handleError(err) {
88 | if (err) {
89 | console.log('ERROR');
90 | console.log(err);
91 | }
92 | }
93 |
94 | const requestConnection = api.requestConnection(DISPLAY_NAME, CONNECTION_PASSWORD, COMMAND_PASSWORD);
95 | acc.send(requestConnection, 0, requestConnection.length, PORT, HOST, handleError);
96 |
97 | io.on('connection', socket => {
98 | console.log('Connected from browser...');
99 | socket.on('command', command => {
100 | console.log('command Sent from browser');
101 | console.log(command);
102 | //TODO here to send messages to ACC
103 | });
104 |
105 | browserSocket = socket;
106 |
107 | socket.emit('status', 'CONNECTED');
108 | });
109 |
110 | http.listen(6767, () => {
111 | console.log('Socket io server up and running');
112 | });
113 |
--------------------------------------------------------------------------------
/backend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "backend",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "license": "ISC",
6 | "scripts": {
7 | "start": "nodemon index.js"
8 | },
9 | "author": "",
10 | "dependencies": {
11 | "binutils": "^0.1.0",
12 | "express": "^4.16.4",
13 | "lodash": "^4.17.11",
14 | "socket.io": "^2.2.0",
15 | "utf8-bytes": "^0.0.1"
16 | },
17 | "devDependencies": {
18 | "nodemon": "^1.18.7"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/backend/readme.md:
--------------------------------------------------------------------------------
1 | # ACC backend
2 |
3 | *You need to enable udp port on broadcast.json on your windows documents folder*
4 |
5 | Tested with nodejs `v10.7.0` and yarn version `1.9.2`.
6 |
7 | 
8 |
9 | This backend connects to ACC UDP port (default 9000) and following the API of 0.4. It exposes via websocket on port 6767 the following info:
10 | - gear
11 | - kmh
12 | - delta
13 |
14 | For the moment is only implemented partially `REALTIME_CAR_UPDATE` to get the following:
15 | - carIndex
16 | - driverIndex
17 | - gear
18 | - worldPosX
19 | - worldPosY
20 | - yaw
21 | - carLocation
22 | - kmh
23 | - position
24 | - cupPosition
25 | - trackPosition
26 | - splinePosition
27 | - laps
28 | - delta
29 |
30 | This was tested on practice mode, so on a race it might not work ¯\_(ツ)_/¯
31 |
32 | ## Build and start
33 | `yarn install`
34 |
35 | `yarn run start`
36 |
37 | ### running local upd endpoint for debugging messages
38 |
39 | `python udp_server.py`
--------------------------------------------------------------------------------
/backend/udp_server.py:
--------------------------------------------------------------------------------
1 | import logging
2 | import socket
3 |
4 | log = logging.getLogger('udp_server')
5 |
6 |
7 | def udp_server(host='127.0.0.1', port=9000):
8 | s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
9 | s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
10 |
11 | log.info("Listening on udp %s:%s" % (host, port))
12 | s.bind((host, port))
13 | while True:
14 | (data, addr) = s.recvfrom(128*1024)
15 | yield data
16 |
17 |
18 | FORMAT_CONS = '%(asctime)s %(name)-12s %(levelname)8s\t%(message)s'
19 | logging.basicConfig(level=logging.DEBUG, format=FORMAT_CONS)
20 |
21 | for data in udp_server():
22 | log.debug("%r" % (data,))
23 |
--------------------------------------------------------------------------------
/backend/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | abbrev@1:
6 | version "1.1.1"
7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
8 |
9 | accepts@~1.3.4, accepts@~1.3.5:
10 | version "1.3.5"
11 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
12 | dependencies:
13 | mime-types "~2.1.18"
14 | negotiator "0.6.1"
15 |
16 | after@0.8.2:
17 | version "0.8.2"
18 | resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
19 |
20 | ansi-align@^2.0.0:
21 | version "2.0.0"
22 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
23 | dependencies:
24 | string-width "^2.0.0"
25 |
26 | ansi-regex@^2.0.0:
27 | version "2.1.1"
28 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
29 |
30 | ansi-regex@^3.0.0:
31 | version "3.0.0"
32 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
33 |
34 | ansi-styles@^3.2.1:
35 | version "3.2.1"
36 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
37 | dependencies:
38 | color-convert "^1.9.0"
39 |
40 | anymatch@^2.0.0:
41 | version "2.0.0"
42 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
43 | dependencies:
44 | micromatch "^3.1.4"
45 | normalize-path "^2.1.1"
46 |
47 | aproba@^1.0.3:
48 | version "1.2.0"
49 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
50 |
51 | are-we-there-yet@~1.1.2:
52 | version "1.1.5"
53 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
54 | dependencies:
55 | delegates "^1.0.0"
56 | readable-stream "^2.0.6"
57 |
58 | arr-diff@^4.0.0:
59 | version "4.0.0"
60 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
61 |
62 | arr-flatten@^1.1.0:
63 | version "1.1.0"
64 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
65 |
66 | arr-union@^3.1.0:
67 | version "3.1.0"
68 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
69 |
70 | array-flatten@1.1.1:
71 | version "1.1.1"
72 | resolved "http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
73 |
74 | array-unique@^0.3.2:
75 | version "0.3.2"
76 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
77 |
78 | arraybuffer.slice@~0.0.7:
79 | version "0.0.7"
80 | resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
81 |
82 | assign-symbols@^1.0.0:
83 | version "1.0.0"
84 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
85 |
86 | async-each@^1.0.0:
87 | version "1.0.1"
88 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
89 |
90 | async-limiter@~1.0.0:
91 | version "1.0.0"
92 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
93 |
94 | atob@^2.1.1:
95 | version "2.1.2"
96 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
97 |
98 | backo2@1.0.2:
99 | version "1.0.2"
100 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
101 |
102 | balanced-match@^1.0.0:
103 | version "1.0.0"
104 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
105 |
106 | base64-arraybuffer@0.1.5:
107 | version "0.1.5"
108 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
109 |
110 | base64id@1.0.0:
111 | version "1.0.0"
112 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
113 |
114 | base@^0.11.1:
115 | version "0.11.2"
116 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
117 | dependencies:
118 | cache-base "^1.0.1"
119 | class-utils "^0.3.5"
120 | component-emitter "^1.2.1"
121 | define-property "^1.0.0"
122 | isobject "^3.0.1"
123 | mixin-deep "^1.2.0"
124 | pascalcase "^0.1.1"
125 |
126 | better-assert@~1.0.0:
127 | version "1.0.2"
128 | resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
129 | dependencies:
130 | callsite "1.0.0"
131 |
132 | binary-extensions@^1.0.0:
133 | version "1.12.0"
134 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14"
135 |
136 | binutils@^0.1.0:
137 | version "0.1.0"
138 | resolved "https://registry.yarnpkg.com/binutils/-/binutils-0.1.0.tgz#3af538436a20c9fa2afc69df34fcc8681f504345"
139 |
140 | blob@0.0.5:
141 | version "0.0.5"
142 | resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683"
143 |
144 | body-parser@1.18.3:
145 | version "1.18.3"
146 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4"
147 | dependencies:
148 | bytes "3.0.0"
149 | content-type "~1.0.4"
150 | debug "2.6.9"
151 | depd "~1.1.2"
152 | http-errors "~1.6.3"
153 | iconv-lite "0.4.23"
154 | on-finished "~2.3.0"
155 | qs "6.5.2"
156 | raw-body "2.3.3"
157 | type-is "~1.6.16"
158 |
159 | boxen@^1.2.1:
160 | version "1.3.0"
161 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
162 | dependencies:
163 | ansi-align "^2.0.0"
164 | camelcase "^4.0.0"
165 | chalk "^2.0.1"
166 | cli-boxes "^1.0.0"
167 | string-width "^2.0.0"
168 | term-size "^1.2.0"
169 | widest-line "^2.0.0"
170 |
171 | brace-expansion@^1.1.7:
172 | version "1.1.11"
173 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
174 | dependencies:
175 | balanced-match "^1.0.0"
176 | concat-map "0.0.1"
177 |
178 | braces@^2.3.0, braces@^2.3.1:
179 | version "2.3.2"
180 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
181 | dependencies:
182 | arr-flatten "^1.1.0"
183 | array-unique "^0.3.2"
184 | extend-shallow "^2.0.1"
185 | fill-range "^4.0.0"
186 | isobject "^3.0.1"
187 | repeat-element "^1.1.2"
188 | snapdragon "^0.8.1"
189 | snapdragon-node "^2.0.1"
190 | split-string "^3.0.2"
191 | to-regex "^3.0.1"
192 |
193 | bytes@3.0.0:
194 | version "3.0.0"
195 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
196 |
197 | cache-base@^1.0.1:
198 | version "1.0.1"
199 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
200 | dependencies:
201 | collection-visit "^1.0.0"
202 | component-emitter "^1.2.1"
203 | get-value "^2.0.6"
204 | has-value "^1.0.0"
205 | isobject "^3.0.1"
206 | set-value "^2.0.0"
207 | to-object-path "^0.3.0"
208 | union-value "^1.0.0"
209 | unset-value "^1.0.0"
210 |
211 | callsite@1.0.0:
212 | version "1.0.0"
213 | resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
214 |
215 | camelcase@^4.0.0:
216 | version "4.1.0"
217 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
218 |
219 | capture-stack-trace@^1.0.0:
220 | version "1.0.1"
221 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"
222 |
223 | chalk@^2.0.1:
224 | version "2.4.1"
225 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
226 | dependencies:
227 | ansi-styles "^3.2.1"
228 | escape-string-regexp "^1.0.5"
229 | supports-color "^5.3.0"
230 |
231 | chokidar@^2.0.4:
232 | version "2.0.4"
233 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26"
234 | dependencies:
235 | anymatch "^2.0.0"
236 | async-each "^1.0.0"
237 | braces "^2.3.0"
238 | glob-parent "^3.1.0"
239 | inherits "^2.0.1"
240 | is-binary-path "^1.0.0"
241 | is-glob "^4.0.0"
242 | lodash.debounce "^4.0.8"
243 | normalize-path "^2.1.1"
244 | path-is-absolute "^1.0.0"
245 | readdirp "^2.0.0"
246 | upath "^1.0.5"
247 | optionalDependencies:
248 | fsevents "^1.2.2"
249 |
250 | chownr@^1.1.1:
251 | version "1.1.1"
252 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
253 |
254 | ci-info@^1.5.0:
255 | version "1.6.0"
256 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
257 |
258 | class-utils@^0.3.5:
259 | version "0.3.6"
260 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
261 | dependencies:
262 | arr-union "^3.1.0"
263 | define-property "^0.2.5"
264 | isobject "^3.0.0"
265 | static-extend "^0.1.1"
266 |
267 | cli-boxes@^1.0.0:
268 | version "1.0.0"
269 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
270 |
271 | code-point-at@^1.0.0:
272 | version "1.1.0"
273 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
274 |
275 | collection-visit@^1.0.0:
276 | version "1.0.0"
277 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
278 | dependencies:
279 | map-visit "^1.0.0"
280 | object-visit "^1.0.0"
281 |
282 | color-convert@^1.9.0:
283 | version "1.9.3"
284 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
285 | dependencies:
286 | color-name "1.1.3"
287 |
288 | color-name@1.1.3:
289 | version "1.1.3"
290 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
291 |
292 | component-bind@1.0.0:
293 | version "1.0.0"
294 | resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
295 |
296 | component-emitter@1.2.1, component-emitter@^1.2.1:
297 | version "1.2.1"
298 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
299 |
300 | component-inherit@0.0.3:
301 | version "0.0.3"
302 | resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
303 |
304 | concat-map@0.0.1:
305 | version "0.0.1"
306 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
307 |
308 | configstore@^3.0.0:
309 | version "3.1.2"
310 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f"
311 | dependencies:
312 | dot-prop "^4.1.0"
313 | graceful-fs "^4.1.2"
314 | make-dir "^1.0.0"
315 | unique-string "^1.0.0"
316 | write-file-atomic "^2.0.0"
317 | xdg-basedir "^3.0.0"
318 |
319 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
320 | version "1.1.0"
321 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
322 |
323 | content-disposition@0.5.2:
324 | version "0.5.2"
325 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
326 |
327 | content-type@~1.0.4:
328 | version "1.0.4"
329 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
330 |
331 | cookie-signature@1.0.6:
332 | version "1.0.6"
333 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
334 |
335 | cookie@0.3.1:
336 | version "0.3.1"
337 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
338 |
339 | copy-descriptor@^0.1.0:
340 | version "0.1.1"
341 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
342 |
343 | core-util-is@~1.0.0:
344 | version "1.0.2"
345 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
346 |
347 | create-error-class@^3.0.0:
348 | version "3.0.2"
349 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
350 | dependencies:
351 | capture-stack-trace "^1.0.0"
352 |
353 | cross-spawn@^5.0.1:
354 | version "5.1.0"
355 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
356 | dependencies:
357 | lru-cache "^4.0.1"
358 | shebang-command "^1.2.0"
359 | which "^1.2.9"
360 |
361 | crypto-random-string@^1.0.0:
362 | version "1.0.0"
363 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
364 |
365 | debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3:
366 | version "2.6.9"
367 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
368 | dependencies:
369 | ms "2.0.0"
370 |
371 | debug@^3.1.0:
372 | version "3.2.6"
373 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
374 | dependencies:
375 | ms "^2.1.1"
376 |
377 | debug@~3.1.0:
378 | version "3.1.0"
379 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
380 | dependencies:
381 | ms "2.0.0"
382 |
383 | debug@~4.1.0:
384 | version "4.1.0"
385 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
386 | dependencies:
387 | ms "^2.1.1"
388 |
389 | decode-uri-component@^0.2.0:
390 | version "0.2.0"
391 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
392 |
393 | deep-extend@^0.6.0:
394 | version "0.6.0"
395 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
396 |
397 | define-property@^0.2.5:
398 | version "0.2.5"
399 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
400 | dependencies:
401 | is-descriptor "^0.1.0"
402 |
403 | define-property@^1.0.0:
404 | version "1.0.0"
405 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
406 | dependencies:
407 | is-descriptor "^1.0.0"
408 |
409 | define-property@^2.0.2:
410 | version "2.0.2"
411 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
412 | dependencies:
413 | is-descriptor "^1.0.2"
414 | isobject "^3.0.1"
415 |
416 | delegates@^1.0.0:
417 | version "1.0.0"
418 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
419 |
420 | depd@~1.1.2:
421 | version "1.1.2"
422 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
423 |
424 | destroy@~1.0.4:
425 | version "1.0.4"
426 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
427 |
428 | detect-libc@^1.0.2:
429 | version "1.0.3"
430 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
431 |
432 | dot-prop@^4.1.0:
433 | version "4.2.0"
434 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
435 | dependencies:
436 | is-obj "^1.0.0"
437 |
438 | duplexer3@^0.1.4:
439 | version "0.1.4"
440 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
441 |
442 | ee-first@1.1.1:
443 | version "1.1.1"
444 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
445 |
446 | encodeurl@~1.0.2:
447 | version "1.0.2"
448 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
449 |
450 | engine.io-client@~3.3.1:
451 | version "3.3.1"
452 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.1.tgz#afedb4a07b2ea48b7190c3136bfea98fdd4f0f03"
453 | dependencies:
454 | component-emitter "1.2.1"
455 | component-inherit "0.0.3"
456 | debug "~3.1.0"
457 | engine.io-parser "~2.1.1"
458 | has-cors "1.1.0"
459 | indexof "0.0.1"
460 | parseqs "0.0.5"
461 | parseuri "0.0.5"
462 | ws "~6.1.0"
463 | xmlhttprequest-ssl "~1.5.4"
464 | yeast "0.1.2"
465 |
466 | engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
467 | version "2.1.3"
468 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6"
469 | dependencies:
470 | after "0.8.2"
471 | arraybuffer.slice "~0.0.7"
472 | base64-arraybuffer "0.1.5"
473 | blob "0.0.5"
474 | has-binary2 "~1.0.2"
475 |
476 | engine.io@~3.3.1:
477 | version "3.3.2"
478 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz#18cbc8b6f36e9461c5c0f81df2b830de16058a59"
479 | dependencies:
480 | accepts "~1.3.4"
481 | base64id "1.0.0"
482 | cookie "0.3.1"
483 | debug "~3.1.0"
484 | engine.io-parser "~2.1.0"
485 | ws "~6.1.0"
486 |
487 | escape-html@~1.0.3:
488 | version "1.0.3"
489 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
490 |
491 | escape-string-regexp@^1.0.5:
492 | version "1.0.5"
493 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
494 |
495 | etag@~1.8.1:
496 | version "1.8.1"
497 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
498 |
499 | execa@^0.7.0:
500 | version "0.7.0"
501 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
502 | dependencies:
503 | cross-spawn "^5.0.1"
504 | get-stream "^3.0.0"
505 | is-stream "^1.1.0"
506 | npm-run-path "^2.0.0"
507 | p-finally "^1.0.0"
508 | signal-exit "^3.0.0"
509 | strip-eof "^1.0.0"
510 |
511 | expand-brackets@^2.1.4:
512 | version "2.1.4"
513 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
514 | dependencies:
515 | debug "^2.3.3"
516 | define-property "^0.2.5"
517 | extend-shallow "^2.0.1"
518 | posix-character-classes "^0.1.0"
519 | regex-not "^1.0.0"
520 | snapdragon "^0.8.1"
521 | to-regex "^3.0.1"
522 |
523 | express@^4.16.4:
524 | version "4.16.4"
525 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e"
526 | dependencies:
527 | accepts "~1.3.5"
528 | array-flatten "1.1.1"
529 | body-parser "1.18.3"
530 | content-disposition "0.5.2"
531 | content-type "~1.0.4"
532 | cookie "0.3.1"
533 | cookie-signature "1.0.6"
534 | debug "2.6.9"
535 | depd "~1.1.2"
536 | encodeurl "~1.0.2"
537 | escape-html "~1.0.3"
538 | etag "~1.8.1"
539 | finalhandler "1.1.1"
540 | fresh "0.5.2"
541 | merge-descriptors "1.0.1"
542 | methods "~1.1.2"
543 | on-finished "~2.3.0"
544 | parseurl "~1.3.2"
545 | path-to-regexp "0.1.7"
546 | proxy-addr "~2.0.4"
547 | qs "6.5.2"
548 | range-parser "~1.2.0"
549 | safe-buffer "5.1.2"
550 | send "0.16.2"
551 | serve-static "1.13.2"
552 | setprototypeof "1.1.0"
553 | statuses "~1.4.0"
554 | type-is "~1.6.16"
555 | utils-merge "1.0.1"
556 | vary "~1.1.2"
557 |
558 | extend-shallow@^2.0.1:
559 | version "2.0.1"
560 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
561 | dependencies:
562 | is-extendable "^0.1.0"
563 |
564 | extend-shallow@^3.0.0, extend-shallow@^3.0.2:
565 | version "3.0.2"
566 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
567 | dependencies:
568 | assign-symbols "^1.0.0"
569 | is-extendable "^1.0.1"
570 |
571 | extglob@^2.0.4:
572 | version "2.0.4"
573 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
574 | dependencies:
575 | array-unique "^0.3.2"
576 | define-property "^1.0.0"
577 | expand-brackets "^2.1.4"
578 | extend-shallow "^2.0.1"
579 | fragment-cache "^0.2.1"
580 | regex-not "^1.0.0"
581 | snapdragon "^0.8.1"
582 | to-regex "^3.0.1"
583 |
584 | fill-range@^4.0.0:
585 | version "4.0.0"
586 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
587 | dependencies:
588 | extend-shallow "^2.0.1"
589 | is-number "^3.0.0"
590 | repeat-string "^1.6.1"
591 | to-regex-range "^2.1.0"
592 |
593 | finalhandler@1.1.1:
594 | version "1.1.1"
595 | resolved "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
596 | dependencies:
597 | debug "2.6.9"
598 | encodeurl "~1.0.2"
599 | escape-html "~1.0.3"
600 | on-finished "~2.3.0"
601 | parseurl "~1.3.2"
602 | statuses "~1.4.0"
603 | unpipe "~1.0.0"
604 |
605 | for-in@^1.0.2:
606 | version "1.0.2"
607 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
608 |
609 | forwarded@~0.1.2:
610 | version "0.1.2"
611 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
612 |
613 | fragment-cache@^0.2.1:
614 | version "0.2.1"
615 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
616 | dependencies:
617 | map-cache "^0.2.2"
618 |
619 | fresh@0.5.2:
620 | version "0.5.2"
621 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
622 |
623 | fs-minipass@^1.2.5:
624 | version "1.2.5"
625 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
626 | dependencies:
627 | minipass "^2.2.1"
628 |
629 | fs.realpath@^1.0.0:
630 | version "1.0.0"
631 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
632 |
633 | fsevents@^1.2.2:
634 | version "1.2.4"
635 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
636 | dependencies:
637 | nan "^2.9.2"
638 | node-pre-gyp "^0.10.0"
639 |
640 | gauge@~2.7.3:
641 | version "2.7.4"
642 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
643 | dependencies:
644 | aproba "^1.0.3"
645 | console-control-strings "^1.0.0"
646 | has-unicode "^2.0.0"
647 | object-assign "^4.1.0"
648 | signal-exit "^3.0.0"
649 | string-width "^1.0.1"
650 | strip-ansi "^3.0.1"
651 | wide-align "^1.1.0"
652 |
653 | get-stream@^3.0.0:
654 | version "3.0.0"
655 | resolved "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
656 |
657 | get-value@^2.0.3, get-value@^2.0.6:
658 | version "2.0.6"
659 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
660 |
661 | glob-parent@^3.1.0:
662 | version "3.1.0"
663 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
664 | dependencies:
665 | is-glob "^3.1.0"
666 | path-dirname "^1.0.0"
667 |
668 | glob@^7.0.5:
669 | version "7.1.3"
670 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
671 | dependencies:
672 | fs.realpath "^1.0.0"
673 | inflight "^1.0.4"
674 | inherits "2"
675 | minimatch "^3.0.4"
676 | once "^1.3.0"
677 | path-is-absolute "^1.0.0"
678 |
679 | global-dirs@^0.1.0:
680 | version "0.1.1"
681 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
682 | dependencies:
683 | ini "^1.3.4"
684 |
685 | got@^6.7.1:
686 | version "6.7.1"
687 | resolved "http://registry.npmjs.org/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
688 | dependencies:
689 | create-error-class "^3.0.0"
690 | duplexer3 "^0.1.4"
691 | get-stream "^3.0.0"
692 | is-redirect "^1.0.0"
693 | is-retry-allowed "^1.0.0"
694 | is-stream "^1.0.0"
695 | lowercase-keys "^1.0.0"
696 | safe-buffer "^5.0.1"
697 | timed-out "^4.0.0"
698 | unzip-response "^2.0.1"
699 | url-parse-lax "^1.0.0"
700 |
701 | graceful-fs@^4.1.11, graceful-fs@^4.1.2:
702 | version "4.1.15"
703 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
704 |
705 | has-binary2@~1.0.2:
706 | version "1.0.3"
707 | resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
708 | dependencies:
709 | isarray "2.0.1"
710 |
711 | has-cors@1.1.0:
712 | version "1.1.0"
713 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
714 |
715 | has-flag@^3.0.0:
716 | version "3.0.0"
717 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
718 |
719 | has-unicode@^2.0.0:
720 | version "2.0.1"
721 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
722 |
723 | has-value@^0.3.1:
724 | version "0.3.1"
725 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
726 | dependencies:
727 | get-value "^2.0.3"
728 | has-values "^0.1.4"
729 | isobject "^2.0.0"
730 |
731 | has-value@^1.0.0:
732 | version "1.0.0"
733 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
734 | dependencies:
735 | get-value "^2.0.6"
736 | has-values "^1.0.0"
737 | isobject "^3.0.0"
738 |
739 | has-values@^0.1.4:
740 | version "0.1.4"
741 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
742 |
743 | has-values@^1.0.0:
744 | version "1.0.0"
745 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
746 | dependencies:
747 | is-number "^3.0.0"
748 | kind-of "^4.0.0"
749 |
750 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
751 | version "1.6.3"
752 | resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
753 | dependencies:
754 | depd "~1.1.2"
755 | inherits "2.0.3"
756 | setprototypeof "1.1.0"
757 | statuses ">= 1.4.0 < 2"
758 |
759 | iconv-lite@0.4.23:
760 | version "0.4.23"
761 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
762 | dependencies:
763 | safer-buffer ">= 2.1.2 < 3"
764 |
765 | iconv-lite@^0.4.4:
766 | version "0.4.24"
767 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
768 | dependencies:
769 | safer-buffer ">= 2.1.2 < 3"
770 |
771 | ignore-by-default@^1.0.1:
772 | version "1.0.1"
773 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
774 |
775 | ignore-walk@^3.0.1:
776 | version "3.0.1"
777 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
778 | dependencies:
779 | minimatch "^3.0.4"
780 |
781 | import-lazy@^2.1.0:
782 | version "2.1.0"
783 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
784 |
785 | imurmurhash@^0.1.4:
786 | version "0.1.4"
787 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
788 |
789 | indexof@0.0.1:
790 | version "0.0.1"
791 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
792 |
793 | inflight@^1.0.4:
794 | version "1.0.6"
795 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
796 | dependencies:
797 | once "^1.3.0"
798 | wrappy "1"
799 |
800 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.3:
801 | version "2.0.3"
802 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
803 |
804 | ini@^1.3.4, ini@~1.3.0:
805 | version "1.3.5"
806 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
807 |
808 | ipaddr.js@1.8.0:
809 | version "1.8.0"
810 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
811 |
812 | is-accessor-descriptor@^0.1.6:
813 | version "0.1.6"
814 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
815 | dependencies:
816 | kind-of "^3.0.2"
817 |
818 | is-accessor-descriptor@^1.0.0:
819 | version "1.0.0"
820 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
821 | dependencies:
822 | kind-of "^6.0.0"
823 |
824 | is-binary-path@^1.0.0:
825 | version "1.0.1"
826 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
827 | dependencies:
828 | binary-extensions "^1.0.0"
829 |
830 | is-buffer@^1.1.5:
831 | version "1.1.6"
832 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
833 |
834 | is-ci@^1.0.10:
835 | version "1.2.1"
836 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
837 | dependencies:
838 | ci-info "^1.5.0"
839 |
840 | is-data-descriptor@^0.1.4:
841 | version "0.1.4"
842 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
843 | dependencies:
844 | kind-of "^3.0.2"
845 |
846 | is-data-descriptor@^1.0.0:
847 | version "1.0.0"
848 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
849 | dependencies:
850 | kind-of "^6.0.0"
851 |
852 | is-descriptor@^0.1.0:
853 | version "0.1.6"
854 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
855 | dependencies:
856 | is-accessor-descriptor "^0.1.6"
857 | is-data-descriptor "^0.1.4"
858 | kind-of "^5.0.0"
859 |
860 | is-descriptor@^1.0.0, is-descriptor@^1.0.2:
861 | version "1.0.2"
862 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
863 | dependencies:
864 | is-accessor-descriptor "^1.0.0"
865 | is-data-descriptor "^1.0.0"
866 | kind-of "^6.0.2"
867 |
868 | is-extendable@^0.1.0, is-extendable@^0.1.1:
869 | version "0.1.1"
870 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
871 |
872 | is-extendable@^1.0.1:
873 | version "1.0.1"
874 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
875 | dependencies:
876 | is-plain-object "^2.0.4"
877 |
878 | is-extglob@^2.1.0, is-extglob@^2.1.1:
879 | version "2.1.1"
880 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
881 |
882 | is-fullwidth-code-point@^1.0.0:
883 | version "1.0.0"
884 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
885 | dependencies:
886 | number-is-nan "^1.0.0"
887 |
888 | is-fullwidth-code-point@^2.0.0:
889 | version "2.0.0"
890 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
891 |
892 | is-glob@^3.1.0:
893 | version "3.1.0"
894 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
895 | dependencies:
896 | is-extglob "^2.1.0"
897 |
898 | is-glob@^4.0.0:
899 | version "4.0.0"
900 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
901 | dependencies:
902 | is-extglob "^2.1.1"
903 |
904 | is-installed-globally@^0.1.0:
905 | version "0.1.0"
906 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
907 | dependencies:
908 | global-dirs "^0.1.0"
909 | is-path-inside "^1.0.0"
910 |
911 | is-npm@^1.0.0:
912 | version "1.0.0"
913 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
914 |
915 | is-number@^3.0.0:
916 | version "3.0.0"
917 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
918 | dependencies:
919 | kind-of "^3.0.2"
920 |
921 | is-obj@^1.0.0:
922 | version "1.0.1"
923 | resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
924 |
925 | is-path-inside@^1.0.0:
926 | version "1.0.1"
927 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
928 | dependencies:
929 | path-is-inside "^1.0.1"
930 |
931 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
932 | version "2.0.4"
933 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
934 | dependencies:
935 | isobject "^3.0.1"
936 |
937 | is-redirect@^1.0.0:
938 | version "1.0.0"
939 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
940 |
941 | is-retry-allowed@^1.0.0:
942 | version "1.1.0"
943 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
944 |
945 | is-stream@^1.0.0, is-stream@^1.1.0:
946 | version "1.1.0"
947 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
948 |
949 | is-windows@^1.0.2:
950 | version "1.0.2"
951 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
952 |
953 | isarray@1.0.0, isarray@~1.0.0:
954 | version "1.0.0"
955 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
956 |
957 | isarray@2.0.1:
958 | version "2.0.1"
959 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
960 |
961 | isexe@^2.0.0:
962 | version "2.0.0"
963 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
964 |
965 | isobject@^2.0.0:
966 | version "2.1.0"
967 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
968 | dependencies:
969 | isarray "1.0.0"
970 |
971 | isobject@^3.0.0, isobject@^3.0.1:
972 | version "3.0.1"
973 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
974 |
975 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
976 | version "3.2.2"
977 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
978 | dependencies:
979 | is-buffer "^1.1.5"
980 |
981 | kind-of@^4.0.0:
982 | version "4.0.0"
983 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
984 | dependencies:
985 | is-buffer "^1.1.5"
986 |
987 | kind-of@^5.0.0:
988 | version "5.1.0"
989 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
990 |
991 | kind-of@^6.0.0, kind-of@^6.0.2:
992 | version "6.0.2"
993 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
994 |
995 | latest-version@^3.0.0:
996 | version "3.1.0"
997 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
998 | dependencies:
999 | package-json "^4.0.0"
1000 |
1001 | lodash.debounce@^4.0.8:
1002 | version "4.0.8"
1003 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
1004 |
1005 | lodash@^4.17.11:
1006 | version "4.17.11"
1007 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
1008 |
1009 | lowercase-keys@^1.0.0:
1010 | version "1.0.1"
1011 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
1012 |
1013 | lru-cache@^4.0.1:
1014 | version "4.1.5"
1015 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
1016 | dependencies:
1017 | pseudomap "^1.0.2"
1018 | yallist "^2.1.2"
1019 |
1020 | make-dir@^1.0.0:
1021 | version "1.3.0"
1022 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
1023 | dependencies:
1024 | pify "^3.0.0"
1025 |
1026 | map-cache@^0.2.2:
1027 | version "0.2.2"
1028 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
1029 |
1030 | map-visit@^1.0.0:
1031 | version "1.0.0"
1032 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
1033 | dependencies:
1034 | object-visit "^1.0.0"
1035 |
1036 | media-typer@0.3.0:
1037 | version "0.3.0"
1038 | resolved "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
1039 |
1040 | merge-descriptors@1.0.1:
1041 | version "1.0.1"
1042 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
1043 |
1044 | methods@~1.1.2:
1045 | version "1.1.2"
1046 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
1047 |
1048 | micromatch@^3.1.10, micromatch@^3.1.4:
1049 | version "3.1.10"
1050 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
1051 | dependencies:
1052 | arr-diff "^4.0.0"
1053 | array-unique "^0.3.2"
1054 | braces "^2.3.1"
1055 | define-property "^2.0.2"
1056 | extend-shallow "^3.0.2"
1057 | extglob "^2.0.4"
1058 | fragment-cache "^0.2.1"
1059 | kind-of "^6.0.2"
1060 | nanomatch "^1.2.9"
1061 | object.pick "^1.3.0"
1062 | regex-not "^1.0.0"
1063 | snapdragon "^0.8.1"
1064 | to-regex "^3.0.2"
1065 |
1066 | mime-db@~1.37.0:
1067 | version "1.37.0"
1068 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8"
1069 |
1070 | mime-types@~2.1.18:
1071 | version "2.1.21"
1072 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96"
1073 | dependencies:
1074 | mime-db "~1.37.0"
1075 |
1076 | mime@1.4.1:
1077 | version "1.4.1"
1078 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
1079 |
1080 | minimatch@^3.0.4:
1081 | version "3.0.4"
1082 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1083 | dependencies:
1084 | brace-expansion "^1.1.7"
1085 |
1086 | minimist@0.0.8:
1087 | version "0.0.8"
1088 | resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1089 |
1090 | minimist@^1.2.0:
1091 | version "1.2.0"
1092 | resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
1093 |
1094 | minipass@^2.2.1, minipass@^2.3.4:
1095 | version "2.3.5"
1096 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
1097 | dependencies:
1098 | safe-buffer "^5.1.2"
1099 | yallist "^3.0.0"
1100 |
1101 | minizlib@^1.1.1:
1102 | version "1.2.1"
1103 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
1104 | dependencies:
1105 | minipass "^2.2.1"
1106 |
1107 | mixin-deep@^1.2.0:
1108 | version "1.3.1"
1109 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
1110 | dependencies:
1111 | for-in "^1.0.2"
1112 | is-extendable "^1.0.1"
1113 |
1114 | mkdirp@^0.5.0, mkdirp@^0.5.1:
1115 | version "0.5.1"
1116 | resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1117 | dependencies:
1118 | minimist "0.0.8"
1119 |
1120 | ms@2.0.0:
1121 | version "2.0.0"
1122 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1123 |
1124 | ms@^2.1.1:
1125 | version "2.1.1"
1126 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
1127 |
1128 | nan@^2.9.2:
1129 | version "2.11.1"
1130 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766"
1131 |
1132 | nanomatch@^1.2.9:
1133 | version "1.2.13"
1134 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
1135 | dependencies:
1136 | arr-diff "^4.0.0"
1137 | array-unique "^0.3.2"
1138 | define-property "^2.0.2"
1139 | extend-shallow "^3.0.2"
1140 | fragment-cache "^0.2.1"
1141 | is-windows "^1.0.2"
1142 | kind-of "^6.0.2"
1143 | object.pick "^1.3.0"
1144 | regex-not "^1.0.0"
1145 | snapdragon "^0.8.1"
1146 | to-regex "^3.0.1"
1147 |
1148 | needle@^2.2.1:
1149 | version "2.2.4"
1150 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e"
1151 | dependencies:
1152 | debug "^2.1.2"
1153 | iconv-lite "^0.4.4"
1154 | sax "^1.2.4"
1155 |
1156 | negotiator@0.6.1:
1157 | version "0.6.1"
1158 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
1159 |
1160 | node-pre-gyp@^0.10.0:
1161 | version "0.10.3"
1162 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc"
1163 | dependencies:
1164 | detect-libc "^1.0.2"
1165 | mkdirp "^0.5.1"
1166 | needle "^2.2.1"
1167 | nopt "^4.0.1"
1168 | npm-packlist "^1.1.6"
1169 | npmlog "^4.0.2"
1170 | rc "^1.2.7"
1171 | rimraf "^2.6.1"
1172 | semver "^5.3.0"
1173 | tar "^4"
1174 |
1175 | nodemon@^1.18.7:
1176 | version "1.18.8"
1177 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.8.tgz#eb4c0052dc81395bdc503f3c8ae3cba86ca7146a"
1178 | dependencies:
1179 | chokidar "^2.0.4"
1180 | debug "^3.1.0"
1181 | ignore-by-default "^1.0.1"
1182 | minimatch "^3.0.4"
1183 | pstree.remy "^1.1.3"
1184 | semver "^5.5.0"
1185 | supports-color "^5.2.0"
1186 | touch "^3.1.0"
1187 | undefsafe "^2.0.2"
1188 | update-notifier "^2.5.0"
1189 |
1190 | nopt@^4.0.1:
1191 | version "4.0.1"
1192 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
1193 | dependencies:
1194 | abbrev "1"
1195 | osenv "^0.1.4"
1196 |
1197 | nopt@~1.0.10:
1198 | version "1.0.10"
1199 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
1200 | dependencies:
1201 | abbrev "1"
1202 |
1203 | normalize-path@^2.1.1:
1204 | version "2.1.1"
1205 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
1206 | dependencies:
1207 | remove-trailing-separator "^1.0.1"
1208 |
1209 | npm-bundled@^1.0.1:
1210 | version "1.0.5"
1211 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
1212 |
1213 | npm-packlist@^1.1.6:
1214 | version "1.1.12"
1215 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a"
1216 | dependencies:
1217 | ignore-walk "^3.0.1"
1218 | npm-bundled "^1.0.1"
1219 |
1220 | npm-run-path@^2.0.0:
1221 | version "2.0.2"
1222 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
1223 | dependencies:
1224 | path-key "^2.0.0"
1225 |
1226 | npmlog@^4.0.2:
1227 | version "4.1.2"
1228 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
1229 | dependencies:
1230 | are-we-there-yet "~1.1.2"
1231 | console-control-strings "~1.1.0"
1232 | gauge "~2.7.3"
1233 | set-blocking "~2.0.0"
1234 |
1235 | number-is-nan@^1.0.0:
1236 | version "1.0.1"
1237 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
1238 |
1239 | object-assign@^4.1.0:
1240 | version "4.1.1"
1241 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1242 |
1243 | object-component@0.0.3:
1244 | version "0.0.3"
1245 | resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
1246 |
1247 | object-copy@^0.1.0:
1248 | version "0.1.0"
1249 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
1250 | dependencies:
1251 | copy-descriptor "^0.1.0"
1252 | define-property "^0.2.5"
1253 | kind-of "^3.0.3"
1254 |
1255 | object-visit@^1.0.0:
1256 | version "1.0.1"
1257 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
1258 | dependencies:
1259 | isobject "^3.0.0"
1260 |
1261 | object.pick@^1.3.0:
1262 | version "1.3.0"
1263 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
1264 | dependencies:
1265 | isobject "^3.0.1"
1266 |
1267 | on-finished@~2.3.0:
1268 | version "2.3.0"
1269 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
1270 | dependencies:
1271 | ee-first "1.1.1"
1272 |
1273 | once@^1.3.0:
1274 | version "1.4.0"
1275 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1276 | dependencies:
1277 | wrappy "1"
1278 |
1279 | os-homedir@^1.0.0:
1280 | version "1.0.2"
1281 | resolved "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
1282 |
1283 | os-tmpdir@^1.0.0:
1284 | version "1.0.2"
1285 | resolved "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1286 |
1287 | osenv@^0.1.4:
1288 | version "0.1.5"
1289 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
1290 | dependencies:
1291 | os-homedir "^1.0.0"
1292 | os-tmpdir "^1.0.0"
1293 |
1294 | p-finally@^1.0.0:
1295 | version "1.0.0"
1296 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
1297 |
1298 | package-json@^4.0.0:
1299 | version "4.0.1"
1300 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
1301 | dependencies:
1302 | got "^6.7.1"
1303 | registry-auth-token "^3.0.1"
1304 | registry-url "^3.0.3"
1305 | semver "^5.1.0"
1306 |
1307 | parseqs@0.0.5:
1308 | version "0.0.5"
1309 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
1310 | dependencies:
1311 | better-assert "~1.0.0"
1312 |
1313 | parseuri@0.0.5:
1314 | version "0.0.5"
1315 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
1316 | dependencies:
1317 | better-assert "~1.0.0"
1318 |
1319 | parseurl@~1.3.2:
1320 | version "1.3.2"
1321 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
1322 |
1323 | pascalcase@^0.1.1:
1324 | version "0.1.1"
1325 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
1326 |
1327 | path-dirname@^1.0.0:
1328 | version "1.0.2"
1329 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
1330 |
1331 | path-is-absolute@^1.0.0:
1332 | version "1.0.1"
1333 | resolved "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1334 |
1335 | path-is-inside@^1.0.1:
1336 | version "1.0.2"
1337 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
1338 |
1339 | path-key@^2.0.0:
1340 | version "2.0.1"
1341 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
1342 |
1343 | path-to-regexp@0.1.7:
1344 | version "0.1.7"
1345 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
1346 |
1347 | pify@^3.0.0:
1348 | version "3.0.0"
1349 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
1350 |
1351 | posix-character-classes@^0.1.0:
1352 | version "0.1.1"
1353 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
1354 |
1355 | prepend-http@^1.0.1:
1356 | version "1.0.4"
1357 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
1358 |
1359 | process-nextick-args@~2.0.0:
1360 | version "2.0.0"
1361 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
1362 |
1363 | proxy-addr@~2.0.4:
1364 | version "2.0.4"
1365 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93"
1366 | dependencies:
1367 | forwarded "~0.1.2"
1368 | ipaddr.js "1.8.0"
1369 |
1370 | pseudomap@^1.0.2:
1371 | version "1.0.2"
1372 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
1373 |
1374 | pstree.remy@^1.1.3:
1375 | version "1.1.4"
1376 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.4.tgz#a03d5dbc06ba639fb6dd4874644c4bad9882ec21"
1377 |
1378 | qs@6.5.2:
1379 | version "6.5.2"
1380 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
1381 |
1382 | range-parser@~1.2.0:
1383 | version "1.2.0"
1384 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
1385 |
1386 | raw-body@2.3.3:
1387 | version "2.3.3"
1388 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3"
1389 | dependencies:
1390 | bytes "3.0.0"
1391 | http-errors "1.6.3"
1392 | iconv-lite "0.4.23"
1393 | unpipe "1.0.0"
1394 |
1395 | rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
1396 | version "1.2.8"
1397 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
1398 | dependencies:
1399 | deep-extend "^0.6.0"
1400 | ini "~1.3.0"
1401 | minimist "^1.2.0"
1402 | strip-json-comments "~2.0.1"
1403 |
1404 | readable-stream@^2.0.2, readable-stream@^2.0.6:
1405 | version "2.3.6"
1406 | resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
1407 | dependencies:
1408 | core-util-is "~1.0.0"
1409 | inherits "~2.0.3"
1410 | isarray "~1.0.0"
1411 | process-nextick-args "~2.0.0"
1412 | safe-buffer "~5.1.1"
1413 | string_decoder "~1.1.1"
1414 | util-deprecate "~1.0.1"
1415 |
1416 | readdirp@^2.0.0:
1417 | version "2.2.1"
1418 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
1419 | dependencies:
1420 | graceful-fs "^4.1.11"
1421 | micromatch "^3.1.10"
1422 | readable-stream "^2.0.2"
1423 |
1424 | regex-not@^1.0.0, regex-not@^1.0.2:
1425 | version "1.0.2"
1426 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
1427 | dependencies:
1428 | extend-shallow "^3.0.2"
1429 | safe-regex "^1.1.0"
1430 |
1431 | registry-auth-token@^3.0.1:
1432 | version "3.3.2"
1433 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20"
1434 | dependencies:
1435 | rc "^1.1.6"
1436 | safe-buffer "^5.0.1"
1437 |
1438 | registry-url@^3.0.3:
1439 | version "3.1.0"
1440 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
1441 | dependencies:
1442 | rc "^1.0.1"
1443 |
1444 | remove-trailing-separator@^1.0.1:
1445 | version "1.1.0"
1446 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
1447 |
1448 | repeat-element@^1.1.2:
1449 | version "1.1.3"
1450 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
1451 |
1452 | repeat-string@^1.6.1:
1453 | version "1.6.1"
1454 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
1455 |
1456 | resolve-url@^0.2.1:
1457 | version "0.2.1"
1458 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
1459 |
1460 | ret@~0.1.10:
1461 | version "0.1.15"
1462 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
1463 |
1464 | rimraf@^2.6.1:
1465 | version "2.6.2"
1466 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
1467 | dependencies:
1468 | glob "^7.0.5"
1469 |
1470 | safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1471 | version "5.1.2"
1472 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1473 |
1474 | safe-regex@^1.1.0:
1475 | version "1.1.0"
1476 | resolved "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
1477 | dependencies:
1478 | ret "~0.1.10"
1479 |
1480 | "safer-buffer@>= 2.1.2 < 3":
1481 | version "2.1.2"
1482 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1483 |
1484 | sax@^1.2.4:
1485 | version "1.2.4"
1486 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
1487 |
1488 | semver-diff@^2.0.0:
1489 | version "2.1.0"
1490 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
1491 | dependencies:
1492 | semver "^5.0.3"
1493 |
1494 | semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0:
1495 | version "5.6.0"
1496 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
1497 |
1498 | send@0.16.2:
1499 | version "0.16.2"
1500 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
1501 | dependencies:
1502 | debug "2.6.9"
1503 | depd "~1.1.2"
1504 | destroy "~1.0.4"
1505 | encodeurl "~1.0.2"
1506 | escape-html "~1.0.3"
1507 | etag "~1.8.1"
1508 | fresh "0.5.2"
1509 | http-errors "~1.6.2"
1510 | mime "1.4.1"
1511 | ms "2.0.0"
1512 | on-finished "~2.3.0"
1513 | range-parser "~1.2.0"
1514 | statuses "~1.4.0"
1515 |
1516 | serve-static@1.13.2:
1517 | version "1.13.2"
1518 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1"
1519 | dependencies:
1520 | encodeurl "~1.0.2"
1521 | escape-html "~1.0.3"
1522 | parseurl "~1.3.2"
1523 | send "0.16.2"
1524 |
1525 | set-blocking@~2.0.0:
1526 | version "2.0.0"
1527 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
1528 |
1529 | set-value@^0.4.3:
1530 | version "0.4.3"
1531 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
1532 | dependencies:
1533 | extend-shallow "^2.0.1"
1534 | is-extendable "^0.1.1"
1535 | is-plain-object "^2.0.1"
1536 | to-object-path "^0.3.0"
1537 |
1538 | set-value@^2.0.0:
1539 | version "2.0.0"
1540 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
1541 | dependencies:
1542 | extend-shallow "^2.0.1"
1543 | is-extendable "^0.1.1"
1544 | is-plain-object "^2.0.3"
1545 | split-string "^3.0.1"
1546 |
1547 | setprototypeof@1.1.0:
1548 | version "1.1.0"
1549 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
1550 |
1551 | shebang-command@^1.2.0:
1552 | version "1.2.0"
1553 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
1554 | dependencies:
1555 | shebang-regex "^1.0.0"
1556 |
1557 | shebang-regex@^1.0.0:
1558 | version "1.0.0"
1559 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
1560 |
1561 | signal-exit@^3.0.0, signal-exit@^3.0.2:
1562 | version "3.0.2"
1563 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
1564 |
1565 | snapdragon-node@^2.0.1:
1566 | version "2.1.1"
1567 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
1568 | dependencies:
1569 | define-property "^1.0.0"
1570 | isobject "^3.0.0"
1571 | snapdragon-util "^3.0.1"
1572 |
1573 | snapdragon-util@^3.0.1:
1574 | version "3.0.1"
1575 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
1576 | dependencies:
1577 | kind-of "^3.2.0"
1578 |
1579 | snapdragon@^0.8.1:
1580 | version "0.8.2"
1581 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
1582 | dependencies:
1583 | base "^0.11.1"
1584 | debug "^2.2.0"
1585 | define-property "^0.2.5"
1586 | extend-shallow "^2.0.1"
1587 | map-cache "^0.2.2"
1588 | source-map "^0.5.6"
1589 | source-map-resolve "^0.5.0"
1590 | use "^3.1.0"
1591 |
1592 | socket.io-adapter@~1.1.0:
1593 | version "1.1.1"
1594 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
1595 |
1596 | socket.io-client@2.2.0:
1597 | version "2.2.0"
1598 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7"
1599 | dependencies:
1600 | backo2 "1.0.2"
1601 | base64-arraybuffer "0.1.5"
1602 | component-bind "1.0.0"
1603 | component-emitter "1.2.1"
1604 | debug "~3.1.0"
1605 | engine.io-client "~3.3.1"
1606 | has-binary2 "~1.0.2"
1607 | has-cors "1.1.0"
1608 | indexof "0.0.1"
1609 | object-component "0.0.3"
1610 | parseqs "0.0.5"
1611 | parseuri "0.0.5"
1612 | socket.io-parser "~3.3.0"
1613 | to-array "0.1.4"
1614 |
1615 | socket.io-parser@~3.3.0:
1616 | version "3.3.0"
1617 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f"
1618 | dependencies:
1619 | component-emitter "1.2.1"
1620 | debug "~3.1.0"
1621 | isarray "2.0.1"
1622 |
1623 | socket.io@^2.2.0:
1624 | version "2.2.0"
1625 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz#f0f633161ef6712c972b307598ecd08c9b1b4d5b"
1626 | dependencies:
1627 | debug "~4.1.0"
1628 | engine.io "~3.3.1"
1629 | has-binary2 "~1.0.2"
1630 | socket.io-adapter "~1.1.0"
1631 | socket.io-client "2.2.0"
1632 | socket.io-parser "~3.3.0"
1633 |
1634 | source-map-resolve@^0.5.0:
1635 | version "0.5.2"
1636 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
1637 | dependencies:
1638 | atob "^2.1.1"
1639 | decode-uri-component "^0.2.0"
1640 | resolve-url "^0.2.1"
1641 | source-map-url "^0.4.0"
1642 | urix "^0.1.0"
1643 |
1644 | source-map-url@^0.4.0:
1645 | version "0.4.0"
1646 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
1647 |
1648 | source-map@^0.5.6:
1649 | version "0.5.7"
1650 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1651 |
1652 | split-string@^3.0.1, split-string@^3.0.2:
1653 | version "3.1.0"
1654 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
1655 | dependencies:
1656 | extend-shallow "^3.0.0"
1657 |
1658 | static-extend@^0.1.1:
1659 | version "0.1.2"
1660 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
1661 | dependencies:
1662 | define-property "^0.2.5"
1663 | object-copy "^0.1.0"
1664 |
1665 | "statuses@>= 1.4.0 < 2":
1666 | version "1.5.0"
1667 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
1668 |
1669 | statuses@~1.4.0:
1670 | version "1.4.0"
1671 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
1672 |
1673 | string-width@^1.0.1:
1674 | version "1.0.2"
1675 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
1676 | dependencies:
1677 | code-point-at "^1.0.0"
1678 | is-fullwidth-code-point "^1.0.0"
1679 | strip-ansi "^3.0.0"
1680 |
1681 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
1682 | version "2.1.1"
1683 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
1684 | dependencies:
1685 | is-fullwidth-code-point "^2.0.0"
1686 | strip-ansi "^4.0.0"
1687 |
1688 | string_decoder@~1.1.1:
1689 | version "1.1.1"
1690 | resolved "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
1691 | dependencies:
1692 | safe-buffer "~5.1.0"
1693 |
1694 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
1695 | version "3.0.1"
1696 | resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
1697 | dependencies:
1698 | ansi-regex "^2.0.0"
1699 |
1700 | strip-ansi@^4.0.0:
1701 | version "4.0.0"
1702 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
1703 | dependencies:
1704 | ansi-regex "^3.0.0"
1705 |
1706 | strip-eof@^1.0.0:
1707 | version "1.0.0"
1708 | resolved "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
1709 |
1710 | strip-json-comments@~2.0.1:
1711 | version "2.0.1"
1712 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1713 |
1714 | supports-color@^5.2.0, supports-color@^5.3.0:
1715 | version "5.5.0"
1716 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1717 | dependencies:
1718 | has-flag "^3.0.0"
1719 |
1720 | tar@^4:
1721 | version "4.4.8"
1722 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d"
1723 | dependencies:
1724 | chownr "^1.1.1"
1725 | fs-minipass "^1.2.5"
1726 | minipass "^2.3.4"
1727 | minizlib "^1.1.1"
1728 | mkdirp "^0.5.0"
1729 | safe-buffer "^5.1.2"
1730 | yallist "^3.0.2"
1731 |
1732 | term-size@^1.2.0:
1733 | version "1.2.0"
1734 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
1735 | dependencies:
1736 | execa "^0.7.0"
1737 |
1738 | timed-out@^4.0.0:
1739 | version "4.0.1"
1740 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
1741 |
1742 | to-array@0.1.4:
1743 | version "0.1.4"
1744 | resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
1745 |
1746 | to-object-path@^0.3.0:
1747 | version "0.3.0"
1748 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
1749 | dependencies:
1750 | kind-of "^3.0.2"
1751 |
1752 | to-regex-range@^2.1.0:
1753 | version "2.1.1"
1754 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
1755 | dependencies:
1756 | is-number "^3.0.0"
1757 | repeat-string "^1.6.1"
1758 |
1759 | to-regex@^3.0.1, to-regex@^3.0.2:
1760 | version "3.0.2"
1761 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
1762 | dependencies:
1763 | define-property "^2.0.2"
1764 | extend-shallow "^3.0.2"
1765 | regex-not "^1.0.2"
1766 | safe-regex "^1.1.0"
1767 |
1768 | touch@^3.1.0:
1769 | version "3.1.0"
1770 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
1771 | dependencies:
1772 | nopt "~1.0.10"
1773 |
1774 | type-is@~1.6.16:
1775 | version "1.6.16"
1776 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
1777 | dependencies:
1778 | media-typer "0.3.0"
1779 | mime-types "~2.1.18"
1780 |
1781 | undefsafe@^2.0.2:
1782 | version "2.0.2"
1783 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76"
1784 | dependencies:
1785 | debug "^2.2.0"
1786 |
1787 | union-value@^1.0.0:
1788 | version "1.0.0"
1789 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
1790 | dependencies:
1791 | arr-union "^3.1.0"
1792 | get-value "^2.0.6"
1793 | is-extendable "^0.1.1"
1794 | set-value "^0.4.3"
1795 |
1796 | unique-string@^1.0.0:
1797 | version "1.0.0"
1798 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
1799 | dependencies:
1800 | crypto-random-string "^1.0.0"
1801 |
1802 | unpipe@1.0.0, unpipe@~1.0.0:
1803 | version "1.0.0"
1804 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
1805 |
1806 | unset-value@^1.0.0:
1807 | version "1.0.0"
1808 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
1809 | dependencies:
1810 | has-value "^0.3.1"
1811 | isobject "^3.0.0"
1812 |
1813 | unzip-response@^2.0.1:
1814 | version "2.0.1"
1815 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
1816 |
1817 | upath@^1.0.5:
1818 | version "1.1.0"
1819 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd"
1820 |
1821 | update-notifier@^2.5.0:
1822 | version "2.5.0"
1823 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
1824 | dependencies:
1825 | boxen "^1.2.1"
1826 | chalk "^2.0.1"
1827 | configstore "^3.0.0"
1828 | import-lazy "^2.1.0"
1829 | is-ci "^1.0.10"
1830 | is-installed-globally "^0.1.0"
1831 | is-npm "^1.0.0"
1832 | latest-version "^3.0.0"
1833 | semver-diff "^2.0.0"
1834 | xdg-basedir "^3.0.0"
1835 |
1836 | urix@^0.1.0:
1837 | version "0.1.0"
1838 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
1839 |
1840 | url-parse-lax@^1.0.0:
1841 | version "1.0.0"
1842 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
1843 | dependencies:
1844 | prepend-http "^1.0.1"
1845 |
1846 | use@^3.1.0:
1847 | version "3.1.1"
1848 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
1849 |
1850 | utf8-bytes@^0.0.1:
1851 | version "0.0.1"
1852 | resolved "https://registry.yarnpkg.com/utf8-bytes/-/utf8-bytes-0.0.1.tgz#116b025448c9b500081cdfbf1f4d6c6c37d8837d"
1853 |
1854 | util-deprecate@~1.0.1:
1855 | version "1.0.2"
1856 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1857 |
1858 | utils-merge@1.0.1:
1859 | version "1.0.1"
1860 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
1861 |
1862 | vary@~1.1.2:
1863 | version "1.1.2"
1864 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
1865 |
1866 | waait@^1.0.2:
1867 | version "1.0.2"
1868 | resolved "https://registry.yarnpkg.com/waait/-/waait-1.0.2.tgz#c234ed748a032cb7d5e83cb691567c6dc545b37d"
1869 |
1870 | which@^1.2.9:
1871 | version "1.3.1"
1872 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1873 | dependencies:
1874 | isexe "^2.0.0"
1875 |
1876 | wide-align@^1.1.0:
1877 | version "1.1.3"
1878 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
1879 | dependencies:
1880 | string-width "^1.0.2 || 2"
1881 |
1882 | widest-line@^2.0.0:
1883 | version "2.0.1"
1884 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc"
1885 | dependencies:
1886 | string-width "^2.1.1"
1887 |
1888 | wrappy@1:
1889 | version "1.0.2"
1890 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1891 |
1892 | write-file-atomic@^2.0.0:
1893 | version "2.3.0"
1894 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
1895 | dependencies:
1896 | graceful-fs "^4.1.11"
1897 | imurmurhash "^0.1.4"
1898 | signal-exit "^3.0.2"
1899 |
1900 | ws@~6.1.0:
1901 | version "6.1.2"
1902 | resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8"
1903 | dependencies:
1904 | async-limiter "~1.0.0"
1905 |
1906 | xdg-basedir@^3.0.0:
1907 | version "3.0.0"
1908 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
1909 |
1910 | xmlhttprequest-ssl@~1.5.4:
1911 | version "1.5.5"
1912 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
1913 |
1914 | yallist@^2.1.2:
1915 | version "2.1.2"
1916 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
1917 |
1918 | yallist@^3.0.0, yallist@^3.0.2:
1919 | version "3.0.3"
1920 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
1921 |
1922 | yeast@0.1.2:
1923 | version "0.1.2"
1924 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
1925 |
--------------------------------------------------------------------------------
/frontend/components/CarState.js:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from 'react';
2 | import styled from 'styled-components';
3 | import socket from '../socket';
4 | // import Battery from './Battery';
5 | // import Tilt from './Tilt';
6 | import Rpm from './Rpm';
7 |
8 | function useCarState() {
9 | const [carState, updatecarState] = useState({});
10 | useEffect(() => {
11 | socket.on('carstate', updatecarState);
12 | return () => socket.removeListener('carstate');
13 | }, []);
14 | return carState;
15 | }
16 |
17 | function useSocket() {
18 | const [status, updateStatus] = useState('DISCONNECTED');
19 | useEffect(() => {
20 | socket.on('status', updateStatus);
21 | return () => socket.removeListener('status');
22 | }, []);
23 | return status;
24 | }
25 |
26 | const CarStateStyles = styled.div`
27 | display: grid;
28 | grid-template-columns: 1fr 4fr;
29 | grid-gap: 5px;
30 | .status {
31 | grid-column: 1 / -1;
32 | text-align: center;
33 | }
34 | .kmh {
35 | font-size: 4rem;
36 | }
37 | .gear {
38 | font-size: 3rem;
39 | }
40 | `;
41 |
42 | const CarState = () => {
43 | const status = useSocket();
44 | const carState = useCarState([]);
45 | return (
46 | Status: {status} {carState.kmh} km/h {carState.gear} {carState.delta} ms