Quellcode durchsuchen

Add collab-server (#1)

master
Lipis vor 5 Jahren
Ursprung
Commit
192c110e5e
Es ist kein Account mit der E-Mail-Adresse des Committers verbunden
3 geänderte Dateien mit 333 neuen und 7 gelöschten Zeilen
  1. 70
    3
      index.ts
  2. 6
    3
      package.json
  3. 257
    1
      yarn.lock

+ 70
- 3
index.ts Datei anzeigen

@@ -1,12 +1,79 @@
1
+// source: https://github.com/idlewinn/collab-server/blob/master/src/index.ts
2
+
1 3
 import express from 'express';
4
+import http from 'http';
5
+import socketIO from 'socket.io';
2 6
 
3 7
 const app = express();
4
-const port = process.env.PORT || 8080; // default port to listen
8
+const port = process.env.PORT || 8080;
5 9
 
6 10
 app.get('/', (req, res) => {
7
-  res.send('Hi, there!');
11
+  res.send('Hi, collab!');
8 12
 });
9 13
 
10
-app.listen(port, () => {
14
+const server = http.createServer(app);
15
+
16
+server.listen(port, () => {
11 17
   console.log(`listening on port: ${port}`);
12 18
 });
19
+
20
+const io = socketIO(server, {
21
+  handlePreflightRequest: function(req, res) {
22
+    var headers = {
23
+      'Access-Control-Allow-Headers': 'Content-Type, Authorization',
24
+      'Access-Control-Allow-Origin': req.header ? req.header.origin : '*',
25
+      'Access-Control-Allow-Credentials': true,
26
+    };
27
+    res.writeHead(200, headers);
28
+    res.end();
29
+  },
30
+});
31
+
32
+io.on('connection', socket => {
33
+  console.log('connection established!');
34
+  io.to(`${socket.id}`).emit('init-room');
35
+  socket.on('join-room', roomID => {
36
+    console.log(`${socket.id} has joined ${roomID}`);
37
+    socket.join(roomID);
38
+    if (io.sockets.adapter.rooms[roomID].length <= 1) {
39
+      io.to(`${socket.id}`).emit('new-user-first-in-room');
40
+    } else {
41
+      socket.broadcast.to(roomID).emit('new-user', socket.id);
42
+    }
43
+    io.in(roomID).emit(
44
+      'room-user-count',
45
+      io.sockets.adapter.rooms[roomID].length,
46
+    );
47
+  });
48
+  socket.on(
49
+    'new-user-send-update',
50
+    (socketID: string, encryptedData: ArrayBuffer) => {
51
+      console.log(`sending new user update to ${socketID}`);
52
+      io.to(`${socketID}`).emit('new-user-receive-update', encryptedData);
53
+    },
54
+  );
55
+  socket.on('send-update', (roomID, encryptedData) => {
56
+    console.log(`${socket.id} sends update to ${roomID}`);
57
+    socket.broadcast.to(roomID).emit('receive-update', encryptedData);
58
+  });
59
+  socket.on('send-mouse-location', (roomID, pointerCoords) => {
60
+    console.log(`${socket.id} sends mouse update to ${roomID}`);
61
+    socket.broadcast
62
+      .to(roomID)
63
+      .emit('receive-mouse-location', socket.id, pointerCoords);
64
+  });
65
+
66
+  socket.on('disconnecting', () => {
67
+    const rooms = io.sockets.adapter.rooms;
68
+    for (const roomID in socket.rooms) {
69
+      const remaining = rooms[roomID].length - 1;
70
+      if (remaining > 0) {
71
+        socket.broadcast.to(roomID).emit('room-user-count', remaining);
72
+      }
73
+    }
74
+  });
75
+
76
+  socket.on('disconnect', () => {
77
+    socket.removeAllListeners();
78
+  });
79
+});

+ 6
- 3
package.json Datei anzeigen

@@ -1,9 +1,11 @@
1 1
 {
2 2
   "dependencies": {
3
-    "express": "4.17.1",
4
-    "typescript": "3.8.3",
5 3
     "@types/express": "4.17.3",
6
-    "@types/node": "13.9.0"
4
+    "@types/node": "13.9.0",
5
+    "@types/socket.io": "2.1.4",
6
+    "express": "4.17.1",
7
+    "socket.io": "2.3.0",
8
+    "typescript": "3.8.3"
7 9
   },
8 10
   "engines": {
9 11
     "node": "10.x.x"
@@ -12,6 +14,7 @@
12 14
   "main": "index.js",
13 15
   "name": "excalidraw-io",
14 16
   "scripts": {
17
+    "build": "yarn gcp-build",
15 18
     "deploy": "gcloud app deploy --project=excalidraw-io",
16 19
     "gcp-build": "tsc -p .",
17 20
     "prepare": "yarn gcp-build",

+ 257
- 1
yarn.lock Datei anzeigen

@@ -57,7 +57,14 @@
57 57
     "@types/express-serve-static-core" "*"
58 58
     "@types/mime" "*"
59 59
 
60
-accepts@~1.3.7:
60
+"@types/socket.io@2.1.4":
61
+  version "2.1.4"
62
+  resolved "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-2.1.4.tgz#674e7bc193c5ccdadd4433f79f3660d31759e9ac"
63
+  integrity sha512-cI98INy7tYnweTsUlp8ocveVdAxENUThO0JsLSCs51cjOP2yV5Mqo5QszMDPckyRRA+PO6+wBgKvGvHUCc23TQ==
64
+  dependencies:
65
+    "@types/node" "*"
66
+
67
+accepts@~1.3.4, accepts@~1.3.7:
61 68
   version "1.3.7"
62 69
   resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
63 70
   integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
@@ -65,11 +72,53 @@ accepts@~1.3.7:
65 72
     mime-types "~2.1.24"
66 73
     negotiator "0.6.2"
67 74
 
75
+after@0.8.2:
76
+  version "0.8.2"
77
+  resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
78
+  integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=
79
+
68 80
 array-flatten@1.1.1:
69 81
   version "1.1.1"
70 82
   resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
71 83
   integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
72 84
 
85
+arraybuffer.slice@~0.0.7:
86
+  version "0.0.7"
87
+  resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
88
+  integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==
89
+
90
+async-limiter@~1.0.0:
91
+  version "1.0.1"
92
+  resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
93
+  integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
94
+
95
+backo2@1.0.2:
96
+  version "1.0.2"
97
+  resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
98
+  integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
99
+
100
+base64-arraybuffer@0.1.5:
101
+  version "0.1.5"
102
+  resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
103
+  integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg=
104
+
105
+base64id@2.0.0:
106
+  version "2.0.0"
107
+  resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
108
+  integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
109
+
110
+better-assert@~1.0.0:
111
+  version "1.0.2"
112
+  resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
113
+  integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=
114
+  dependencies:
115
+    callsite "1.0.0"
116
+
117
+blob@0.0.5:
118
+  version "0.0.5"
119
+  resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683"
120
+  integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==
121
+
73 122
 body-parser@1.19.0:
74 123
   version "1.19.0"
75 124
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
@@ -91,6 +140,26 @@ bytes@3.1.0:
91 140
   resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
92 141
   integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
93 142
 
143
+callsite@1.0.0:
144
+  version "1.0.0"
145
+  resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
146
+  integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA=
147
+
148
+component-bind@1.0.0:
149
+  version "1.0.0"
150
+  resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
151
+  integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=
152
+
153
+component-emitter@1.2.1:
154
+  version "1.2.1"
155
+  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
156
+  integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
157
+
158
+component-inherit@0.0.3:
159
+  version "0.0.3"
160
+  resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
161
+  integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=
162
+
94 163
 content-disposition@0.5.3:
95 164
   version "0.5.3"
96 165
   resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
@@ -108,6 +177,11 @@ cookie-signature@1.0.6:
108 177
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
109 178
   integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
110 179
 
180
+cookie@0.3.1:
181
+  version "0.3.1"
182
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
183
+  integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
184
+
111 185
 cookie@0.4.0:
112 186
   version "0.4.0"
113 187
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
@@ -120,6 +194,20 @@ debug@2.6.9:
120 194
   dependencies:
121 195
     ms "2.0.0"
122 196
 
197
+debug@~3.1.0:
198
+  version "3.1.0"
199
+  resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
200
+  integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
201
+  dependencies:
202
+    ms "2.0.0"
203
+
204
+debug@~4.1.0:
205
+  version "4.1.1"
206
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
207
+  integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
208
+  dependencies:
209
+    ms "^2.1.1"
210
+
123 211
 depd@~1.1.2:
124 212
   version "1.1.2"
125 213
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -140,6 +228,46 @@ encodeurl@~1.0.2:
140 228
   resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
141 229
   integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
142 230
 
231
+engine.io-client@~3.4.0:
232
+  version "3.4.0"
233
+  resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.0.tgz#82a642b42862a9b3f7a188f41776b2deab643700"
234
+  integrity sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==
235
+  dependencies:
236
+    component-emitter "1.2.1"
237
+    component-inherit "0.0.3"
238
+    debug "~4.1.0"
239
+    engine.io-parser "~2.2.0"
240
+    has-cors "1.1.0"
241
+    indexof "0.0.1"
242
+    parseqs "0.0.5"
243
+    parseuri "0.0.5"
244
+    ws "~6.1.0"
245
+    xmlhttprequest-ssl "~1.5.4"
246
+    yeast "0.1.2"
247
+
248
+engine.io-parser@~2.2.0:
249
+  version "2.2.0"
250
+  resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed"
251
+  integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==
252
+  dependencies:
253
+    after "0.8.2"
254
+    arraybuffer.slice "~0.0.7"
255
+    base64-arraybuffer "0.1.5"
256
+    blob "0.0.5"
257
+    has-binary2 "~1.0.2"
258
+
259
+engine.io@~3.4.0:
260
+  version "3.4.0"
261
+  resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.0.tgz#3a962cc4535928c252759a00f98519cb46c53ff3"
262
+  integrity sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==
263
+  dependencies:
264
+    accepts "~1.3.4"
265
+    base64id "2.0.0"
266
+    cookie "0.3.1"
267
+    debug "~4.1.0"
268
+    engine.io-parser "~2.2.0"
269
+    ws "^7.1.2"
270
+
143 271
 escape-html@~1.0.3:
144 272
   version "1.0.3"
145 273
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
@@ -209,6 +337,18 @@ fresh@0.5.2:
209 337
   resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
210 338
   integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
211 339
 
340
+has-binary2@~1.0.2:
341
+  version "1.0.3"
342
+  resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
343
+  integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==
344
+  dependencies:
345
+    isarray "2.0.1"
346
+
347
+has-cors@1.1.0:
348
+  version "1.1.0"
349
+  resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
350
+  integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=
351
+
212 352
 http-errors@1.7.2:
213 353
   version "1.7.2"
214 354
   resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
@@ -238,6 +378,11 @@ iconv-lite@0.4.24:
238 378
   dependencies:
239 379
     safer-buffer ">= 2.1.2 < 3"
240 380
 
381
+indexof@0.0.1:
382
+  version "0.0.1"
383
+  resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
384
+  integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=
385
+
241 386
 inherits@2.0.3:
242 387
   version "2.0.3"
243 388
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
@@ -253,6 +398,11 @@ ipaddr.js@1.9.1:
253 398
   resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
254 399
   integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
255 400
 
401
+isarray@2.0.1:
402
+  version "2.0.1"
403
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
404
+  integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=
405
+
256 406
 media-typer@0.3.0:
257 407
   version "0.3.0"
258 408
   resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -295,11 +445,21 @@ ms@2.1.1:
295 445
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
296 446
   integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
297 447
 
448
+ms@^2.1.1:
449
+  version "2.1.2"
450
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
451
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
452
+
298 453
 negotiator@0.6.2:
299 454
   version "0.6.2"
300 455
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
301 456
   integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
302 457
 
458
+object-component@0.0.3:
459
+  version "0.0.3"
460
+  resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
461
+  integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=
462
+
303 463
 on-finished@~2.3.0:
304 464
   version "2.3.0"
305 465
   resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@@ -307,6 +467,20 @@ on-finished@~2.3.0:
307 467
   dependencies:
308 468
     ee-first "1.1.1"
309 469
 
470
+parseqs@0.0.5:
471
+  version "0.0.5"
472
+  resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
473
+  integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=
474
+  dependencies:
475
+    better-assert "~1.0.0"
476
+
477
+parseuri@0.0.5:
478
+  version "0.0.5"
479
+  resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
480
+  integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=
481
+  dependencies:
482
+    better-assert "~1.0.0"
483
+
310 484
 parseurl@~1.3.3:
311 485
   version "1.3.3"
312 486
   resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
@@ -389,11 +563,71 @@ setprototypeof@1.1.1:
389 563
   resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
390 564
   integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
391 565
 
566
+socket.io-adapter@~1.1.0:
567
+  version "1.1.2"
568
+  resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9"
569
+  integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==
570
+
571
+socket.io-client@2.3.0:
572
+  version "2.3.0"
573
+  resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4"
574
+  integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==
575
+  dependencies:
576
+    backo2 "1.0.2"
577
+    base64-arraybuffer "0.1.5"
578
+    component-bind "1.0.0"
579
+    component-emitter "1.2.1"
580
+    debug "~4.1.0"
581
+    engine.io-client "~3.4.0"
582
+    has-binary2 "~1.0.2"
583
+    has-cors "1.1.0"
584
+    indexof "0.0.1"
585
+    object-component "0.0.3"
586
+    parseqs "0.0.5"
587
+    parseuri "0.0.5"
588
+    socket.io-parser "~3.3.0"
589
+    to-array "0.1.4"
590
+
591
+socket.io-parser@~3.3.0:
592
+  version "3.3.0"
593
+  resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f"
594
+  integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==
595
+  dependencies:
596
+    component-emitter "1.2.1"
597
+    debug "~3.1.0"
598
+    isarray "2.0.1"
599
+
600
+socket.io-parser@~3.4.0:
601
+  version "3.4.0"
602
+  resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.0.tgz#370bb4a151df2f77ce3345ff55a7072cc6e9565a"
603
+  integrity sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==
604
+  dependencies:
605
+    component-emitter "1.2.1"
606
+    debug "~4.1.0"
607
+    isarray "2.0.1"
608
+
609
+socket.io@2.3.0:
610
+  version "2.3.0"
611
+  resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb"
612
+  integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==
613
+  dependencies:
614
+    debug "~4.1.0"
615
+    engine.io "~3.4.0"
616
+    has-binary2 "~1.0.2"
617
+    socket.io-adapter "~1.1.0"
618
+    socket.io-client "2.3.0"
619
+    socket.io-parser "~3.4.0"
620
+
392 621
 "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
393 622
   version "1.5.0"
394 623
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
395 624
   integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
396 625
 
626
+to-array@0.1.4:
627
+  version "0.1.4"
628
+  resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
629
+  integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA=
630
+
397 631
 toidentifier@1.0.0:
398 632
   version "1.0.0"
399 633
   resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
@@ -426,3 +660,25 @@ vary@~1.1.2:
426 660
   version "1.1.2"
427 661
   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
428 662
   integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
663
+
664
+ws@^7.1.2:
665
+  version "7.2.3"
666
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46"
667
+  integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==
668
+
669
+ws@~6.1.0:
670
+  version "6.1.4"
671
+  resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9"
672
+  integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==
673
+  dependencies:
674
+    async-limiter "~1.0.0"
675
+
676
+xmlhttprequest-ssl@~1.5.4:
677
+  version "1.5.5"
678
+  resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
679
+  integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
680
+
681
+yeast@0.1.2:
682
+  version "0.1.2"
683
+  resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
684
+  integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=

Laden…
Abbrechen
Speichern