@colyseus/uwebsockets-transport 0.15.0-preview.1 → 0.15.0-preview.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -59
- package/build/index.js +32 -12
- package/build/index.js.map +7 -1
- package/build/index.mjs +7 -3
- package/build/index.mjs.map +7 -1
- package/build/uWebSocketClient.d.ts +6 -4
- package/build/uWebSocketClient.js +122 -98
- package/build/uWebSocketClient.js.map +7 -1
- package/build/uWebSocketClient.mjs +90 -88
- package/build/uWebSocketClient.mjs.map +7 -1
- package/build/uWebSocketsTransport.d.ts +2 -2
- package/build/uWebSocketsTransport.js +247 -255
- package/build/uWebSocketsTransport.js.map +7 -1
- package/build/uWebSocketsTransport.mjs +217 -245
- package/build/uWebSocketsTransport.mjs.map +7 -1
- package/package.json +6 -4
- package/build/node_modules/tslib/tslib.es6.js +0 -31
- package/build/node_modules/tslib/tslib.es6.js.map +0 -1
- package/build/packages/transport/uwebsockets-transport/src/index.js +0 -10
- package/build/packages/transport/uwebsockets-transport/src/index.js.map +0 -1
- package/build/packages/transport/uwebsockets-transport/src/uWebSocketClient.js +0 -91
- package/build/packages/transport/uwebsockets-transport/src/uWebSocketClient.js.map +0 -1
- package/build/packages/transport/uwebsockets-transport/src/uWebSocketsTransport.js +0 -249
- package/build/packages/transport/uwebsockets-transport/src/uWebSocketsTransport.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<a href="https://github.com/colyseus/colyseus">
|
|
3
|
-
<img src="media/
|
|
3
|
+
<img src="media/logo.svg?raw=true" width="60%" height="300" />
|
|
4
4
|
</a>
|
|
5
5
|
<br>
|
|
6
6
|
<br>
|
|
7
7
|
<a href="https://npmjs.com/package/colyseus">
|
|
8
8
|
<img src="https://img.shields.io/npm/dm/colyseus.svg?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfjAgETESWYxR33AAAAtElEQVQoz4WQMQrCQBRE38Z0QoTcwF4Qg1h4BO0sxGOk80iCtViksrIQRRBTewWxMI1mbELYjYu+4rPMDPtn12ChMT3gavb4US5Jym0tcBIta3oDHv4Gwmr7nC4QAxBrCdzM2q6XqUnm9m9r59h7Rc0n2pFv24k4ttGMUXW+sGELTJjSr7QDKuqLS6UKFChVWWuFkZw9Z2AAvAirKT+JTlppIRnd6XgaP4goefI2Shj++OnjB3tBmHYK8z9zAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTAyLTAxVDE4OjE3OjM3KzAxOjAwGQQixQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wMi0wMVQxODoxNzozNyswMTowMGhZmnkAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC">
|
|
9
9
|
</a>
|
|
10
|
-
<a href="
|
|
10
|
+
<a href="https://github.com/colyseus/colyseus/discussions" title="Discuss on Forum">
|
|
11
11
|
<img src="https://img.shields.io/badge/discuss-on%20forum-brightgreen.svg?style=for-the-badge&colorB=0069b8&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfjAgETDROxCNUzAAABB0lEQVQoz4WRvyvEARjGP193CnWRH+dHQmGwKZtFGcSmxHAL400GN95ktIpV2dzlLzDJgsGgGNRdDAzoQueS/PgY3HXHyT3T+/Y87/s89UANBKXBdoZo5J6L4K1K5ZxHfnjnlQUf3bKvkgy57a0r9hS3cXfMO1kWJMza++tj3Ac7/LY343x1NA9cNmYMwnSS/SP8JVFuSJmr44iFqvtmpjhmhBCrOOazCesq6H4P3bPBjFoIBydOk2bUA17I080Es+wSZ51B4DIA2zgjSpYcEe44Js01G0XjRcCU+y4ZMrDeLmfc9EnVd5M/o0VMeu6nJZxWJivLmhyw1WHTvrr2b4+2OFqra+ALwouTMDcqmjMAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMDItMDFUMTg6MTM6MTkrMDE6MDAC9f6fAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTAyLTAxVDE4OjEzOjE5KzAxOjAwc6hGIwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=" alt="Discussion forum" />
|
|
12
12
|
</a>
|
|
13
|
-
<a href="
|
|
13
|
+
<a href="http://chat.colyseus.io">
|
|
14
14
|
<img src="https://img.shields.io/discord/525739117951320081.svg?style=for-the-badge&colorB=7581dc&logo=discord&logoColor=white">
|
|
15
15
|
</a>
|
|
16
16
|
<h3>
|
|
@@ -28,24 +28,14 @@ client-side.
|
|
|
28
28
|
The mission of the framework is to be a standard netcode & matchmaking solution
|
|
29
29
|
for any kind of project you can think of!
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
it](https://discuss.colyseus.io/category/5/showcase) and make your own!
|
|
33
|
-
|
|
34
|
-
> ⭐️ Enjoying Colyseus? Show your support by starring the project on GitHub ⭐️
|
|
35
|
-
|
|
36
|
-
## What Colyseus provides to you:
|
|
31
|
+
## Key features:
|
|
37
32
|
|
|
38
33
|
- WebSocket-based communication
|
|
39
34
|
- Simple API in the server-side and client-side.
|
|
40
|
-
- Automatic state synchronization
|
|
41
|
-
- Matchmaking clients into game sessions
|
|
35
|
+
- Automatic state synchronization from server-to-client (delta compressed)
|
|
36
|
+
- Matchmaking clients into game rooms/sessions
|
|
42
37
|
- Scale vertically or horizontally
|
|
43
38
|
|
|
44
|
-
## What Colyseus won't provide:
|
|
45
|
-
|
|
46
|
-
- Game Engine: Colyseus is agnostic of the engine you're using. Need Physics? Add your own logic / package.
|
|
47
|
-
- Database: It's up to you to configure and select which database you'd like to use.
|
|
48
|
-
|
|
49
39
|
See [roadmap](https://github.com/colyseus/colyseus/wiki/Roadmap) for our future plans.
|
|
50
40
|
|
|
51
41
|
# 🚀 Quickstart
|
|
@@ -58,29 +48,13 @@ cd my-colyseus-server
|
|
|
58
48
|
npm start
|
|
59
49
|
```
|
|
60
50
|
|
|
61
|
-
#
|
|
51
|
+
# Sponsors
|
|
62
52
|
|
|
63
|
-
|
|
64
|
-
- [Unity](https://github.com/colyseus/colyseus-unity3d) ([unity3d.com](https://unity3d.com/))
|
|
65
|
-
- [Defold Engine](https://github.com/colyseus/colyseus-defold) ([defold.com](https://www.defold.com/))
|
|
66
|
-
- [Haxe](https://github.com/colyseus/colyseus-hx) ([haxe.org](https://haxe.org/))
|
|
67
|
-
- [Construct 3](https://github.com/colyseus/colyseus-construct3) ([construct3.net](https://www.construct.net/))
|
|
68
|
-
- [Cocos2d-x](https://github.com/colyseus/colyseus-cocos2d-x) ([cocos2d-x.org](https://cocos2d-x.org/))
|
|
69
|
-
|
|
70
|
-
# 🛠️ Tools
|
|
71
|
-
|
|
72
|
-
- [@colyseus/social](https://github.com/colyseus/colyseus-social) - Authentication and Social features for Colyseus
|
|
73
|
-
- [@colyseus/proxy](https://github.com/colyseus/proxy) - Proxy & Service Discovery for scaling Colyseus
|
|
74
|
-
- [@colyseus/monitor](https://github.com/colyseus/colyseus-monitor) - A Web Monitoring Panel for Colyseus
|
|
75
|
-
- [@colyseus/loadtest](https://github.com/colyseus/colyseus-loadtest) - Utility tool for load testing Colyseus
|
|
76
|
-
|
|
77
|
-
## Tools made by the community ❤️
|
|
53
|
+
The sustainability of the project relies on **Colyseus Cloud** subscriptions and sponsorships. If you are not using Colyseus Cloud, please consider [sponsoring the project](https://github.com/sponsors/endel) 💖
|
|
78
54
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
- [Colyseus-ObjC](https://github.com/swittk/Colyseus-ObjC): Client for Objective C (by [@swittk](https://github.com/swittk))
|
|
83
|
-
- [Colyseus-for-C2](https://github.com/Keevle/Colyseus-for-C2): Client for Construct 2 (by [@Keevle](https://github.com/Keevle))
|
|
55
|
+
<a href="https://colyseus.io/sponsorkit/sponsors.svg">
|
|
56
|
+
<img src="https://github.com/colyseus/colyseus.github.io/blob/master/sponsorkit/sponsors.svg?raw=1" width="100%" />
|
|
57
|
+
</a>
|
|
84
58
|
|
|
85
59
|
# Usage examples
|
|
86
60
|
|
|
@@ -94,6 +68,17 @@ usage reference with the latest version of Colyseus.
|
|
|
94
68
|
- [Collaborative Drawing Prototype](https://colyseus-drawing-prototype.herokuapp.com/) ([source-code](https://github.com/endel/colyseus-collaborative-drawing)) - Collaborative drawing using HTML5 canvas.
|
|
95
69
|
- (outdated: < v0.8.x): [tanx](https://playcanvas.com/project/367035/overview/tanxcolyseus), [react-example](https://github.com/endel/colyseus-react-example), [LD35 entry: dotower](http://ludumdare.com/compo/ludum-dare-35/?action=preview&uid=50958)
|
|
96
70
|
|
|
71
|
+
|
|
72
|
+
## Tools made by the community ❤️
|
|
73
|
+
|
|
74
|
+
- [godot-colyseus](https://github.com/gsioteam/godot-colyseus): Colyseus SDK for Godot, written in GDScript (by [@gsioteam](https://github.com/gsioteam))
|
|
75
|
+
- [colyseus-ue4](https://github.com/charisma-ai/colyseus-ue4): Colyseus SDK for Unreal Engine 4 (by [@bensalilijames](https://github.com/bensalilijames))
|
|
76
|
+
- [colyseus-hxjs](https://github.com/serjek/colyseus-hxjs): Haxe externs for colyseus server (by [@serjek](https://github.com/serjek))
|
|
77
|
+
- [colyseus-kotlin](https://github.com/doorbash/colyseus-kotlin): Client for Java/Kotlin (by [@doorbash](https://github.com/doorbash))
|
|
78
|
+
- [Stencyl Extension](http://community.stencyl.com/index.php/topic,61150.0.html): [Stencyl](http://stencyl.com) extension to communicate with a Colyseus server (by [MdotEdot](http://www.stencyl.com/users/index/32424))
|
|
79
|
+
- [Colyseus-ObjC](https://github.com/swittk/Colyseus-ObjC): Client for Objective C (by [@swittk](https://github.com/swittk))
|
|
80
|
+
- [Colyseus-for-C2](https://github.com/Keevle/Colyseus-for-C2): Client for Construct 2 (by [@Keevle](https://github.com/Keevle))
|
|
81
|
+
|
|
97
82
|
# Contributors
|
|
98
83
|
|
|
99
84
|
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
|
|
@@ -103,30 +88,31 @@ Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds
|
|
|
103
88
|
<!-- markdownlint-disable -->
|
|
104
89
|
<table>
|
|
105
90
|
<tr>
|
|
106
|
-
<td align="center"><a href="https://twitter.com/endel"><img src="https://avatars3.githubusercontent.com/u/130494?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Endel Dreyer</b></sub></a><br /><a href="https://github.com/gamestdio/colyseus/commits?author=endel" title="Code">💻</a> <a href="https://github.com/gamestdio/colyseus/commits?author=endel" title="Documentation">📖</a> <a href="#example-endel" title="Examples">💡</a></td>
|
|
107
|
-
<td align="center"><a href="https://github.com/fazriz"><img src="https://avatars0.githubusercontent.com/u/2628698?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fazri Zubair</b></sub></a><br /><a href="#question-fazriz" title="Answering Questions">💬</a> <a href="https://github.com/gamestdio/colyseus/commits?author=fazriz" title="Code">💻</a> <a href="#ideas-fazriz" title="Ideas, Planning, & Feedback">🤔</a> <a href="#business-fazriz" title="Business development">💼</a></td>
|
|
108
|
-
<td align="center"><a href="http://seiyria.com"><img src="https://avatars0.githubusercontent.com/u/763609?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kyle J. Kemp</b></sub></a><br /><a href="#question-seiyria" title="Answering Questions">💬</a> <a href="https://github.com/gamestdio/colyseus/issues?q=author%3Aseiyria" title="Bug reports">🐛</a> <a href="https://github.com/gamestdio/colyseus/commits?author=seiyria" title="Code">💻</a> <a href="#ideas-seiyria" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
109
|
-
<td align="center"><a href="https://github.com/mobyjames/"><img src="https://avatars0.githubusercontent.com/u/1327007?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Jacoby</b></sub></a><br /><a href="#question-mobyjames" title="Answering Questions">💬</a> <a href="#example-mobyjames" title="Examples">💡</a> <a href="#content-mobyjames" title="Content">🖋</a></td>
|
|
110
91
|
<td align="center"><a href="https://github.com/halftheopposite/"><img src="https://avatars0.githubusercontent.com/u/5473864?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aymeric Chauvin</b></sub></a><br /><a href="#question-halftheopposite" title="Answering Questions">💬</a> <a href="#example-halftheopposite" title="Examples">💡</a></td>
|
|
111
|
-
<td align="center"><a href="
|
|
92
|
+
<td align="center"><a href="https://github.com/brian-hay"><img src="https://avatars2.githubusercontent.com/u/1428000?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brian Hay</b></sub></a><br /><a href="#content-brian-hay" title="Content">🖋</a></td>
|
|
93
|
+
<td align="center"><a href="https://github.com/damian-pastorini"><img src="https://avatars2.githubusercontent.com/u/1211779?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Damian A. Pastorini</b></sub></a><br /><a href="#question-damian-pastorini" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/commits?author=damian-pastorini" title="Documentation">📖</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3Adamian-pastorini" title="Bug reports">🐛</a></td>
|
|
94
|
+
<td align="center"><a href="https://github.com/Zielak"><img src="https://avatars0.githubusercontent.com/u/625693?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Darek Greenly</b></sub></a><br /><a href="#question-Zielak" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3AZielak" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=Zielak" title="Code">💻</a></td>
|
|
95
|
+
<td align="center"><a href="https://github.com/Vidski"><img src="https://avatars.githubusercontent.com/u/36316706?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Rydwanski</b></sub></a><br /><a href="#question-Vidski" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/commits?author=Vidski" title="Code">💻</a></td>
|
|
112
96
|
<td align="center"><a href="https://github.com/drburton"><img src="https://avatars0.githubusercontent.com/u/625595?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dr. Burton</b></sub></a><br /><a href="#mentoring-drburton" title="Mentoring">🧑🏫</a></td>
|
|
97
|
+
<td align="center"><a href="https://twitter.com/endel"><img src="https://avatars3.githubusercontent.com/u/130494?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Endel Dreyer</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/commits?author=endel" title="Code">💻</a> <a href="https://github.com/colyseus/colyseus/commits?author=endel" title="Documentation">📖</a> <a href="#example-endel" title="Examples">💡</a></td>
|
|
113
98
|
</tr>
|
|
114
99
|
<tr>
|
|
115
|
-
<td align="center"><a href="https://github.com/
|
|
116
|
-
<td align="center"><a href="https://github.com/
|
|
117
|
-
<td align="center"><a href="https://
|
|
118
|
-
<td align="center"><a href="https://github.com/
|
|
119
|
-
<td align="center"><a href="
|
|
120
|
-
<td align="center"><a href="
|
|
121
|
-
<td align="center"><a href="https://github.com/
|
|
100
|
+
<td align="center"><a href="https://github.com/enriqueto"><img src="https://avatars2.githubusercontent.com/u/5557196?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Enriqueto</b></sub></a><br /><a href="#business-enriqueto" title="Business development">💼</a></td>
|
|
101
|
+
<td align="center"><a href="https://github.com/fazriz"><img src="https://avatars0.githubusercontent.com/u/2628698?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fazri Zubair</b></sub></a><br /><a href="#question-fazriz" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/commits?author=fazriz" title="Code">💻</a> <a href="#ideas-fazriz" title="Ideas, Planning, & Feedback">🤔</a> <a href="#business-fazriz" title="Business development">💼</a></td>
|
|
102
|
+
<td align="center"><a href="https://twitter.com/Federkun"><img src="https://avatars2.githubusercontent.com/u/21344385?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Federico</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/issues?q=author%3AFederkun" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=Federkun" title="Code">💻</a></td>
|
|
103
|
+
<td align="center"><a href="https://github.com/mobyjames/"><img src="https://avatars0.githubusercontent.com/u/1327007?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Jacoby</b></sub></a><br /><a href="#question-mobyjames" title="Answering Questions">💬</a> <a href="#example-mobyjames" title="Examples">💡</a> <a href="#content-mobyjames" title="Content">🖋</a></td>
|
|
104
|
+
<td align="center"><a href="http://wenish.github.io/portfolio/"><img src="https://avatars0.githubusercontent.com/u/18367963?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonas Voland</b></sub></a><br /><a href="#question-Wenish" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3AWenish" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=Wenish" title="Code">💻</a> <a href="#ideas-Wenish" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-Wenish" title="Examples">💡</a></td>
|
|
105
|
+
<td align="center"><a href="http://seiyria.com"><img src="https://avatars0.githubusercontent.com/u/763609?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kyle J. Kemp</b></sub></a><br /><a href="#question-seiyria" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3Aseiyria" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=seiyria" title="Code">💻</a> <a href="#ideas-seiyria" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
106
|
+
<td align="center"><a href="https://github.com/LukeWood/"><img src="https://avatars0.githubusercontent.com/u/12191303?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Luke Wood</b></sub></a><br /><a href="#question-LukeWood" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3ALukeWood" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=LukeWood" title="Code">💻</a></td>
|
|
122
107
|
</tr>
|
|
123
108
|
<tr>
|
|
124
|
-
<td align="center"><a href="https://
|
|
125
|
-
<td align="center"><a href="https://github.com/
|
|
126
|
-
<td align="center"><a href="https://
|
|
127
|
-
<td align="center"><a href="https://github.com/
|
|
128
|
-
<td align="center"><a href="https://oyed.io"><img src="https://avatars0.githubusercontent.com/u/853683?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tom</b></sub></a><br /><a href="#question-oyed" title="Answering Questions">💬</a> <a href="https://github.com/
|
|
129
|
-
<td align="center"><a href="https://
|
|
109
|
+
<td align="center"><a href="https://github.com/doorbash"><img src="https://avatars2.githubusercontent.com/u/5982526?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Milad Doorbash</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/issues?q=author%3Adoorbash" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=doorbash" title="Code">💻</a></td>
|
|
110
|
+
<td align="center"><a href="https://github.com/TinyDobbins"><img src="https://avatars2.githubusercontent.com/u/20824844?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nikita Borisov</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/issues?q=author%3ATinyDobbins" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=TinyDobbins" title="Code">💻</a> <a href="#business-TinyDobbins" title="Business development">💼</a> <a href="#ideas-TinyDobbins" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
111
|
+
<td align="center"><a href="https://acemobe.com/"><img src="https://avatars2.githubusercontent.com/u/232101?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Phil Harvey</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/commits?author=filharvey" title="Documentation">📖</a></td>
|
|
112
|
+
<td align="center"><a href="https://github.com/serjek"><img src="https://avatars2.githubusercontent.com/u/18265157?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sergey</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/issues?q=author%3Aserjek" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=serjek" title="Code">💻</a></td>
|
|
113
|
+
<td align="center"><a href="https://oyed.io"><img src="https://avatars0.githubusercontent.com/u/853683?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tom</b></sub></a><br /><a href="#question-oyed" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3Aoyed" title="Bug reports">🐛</a> <a href="#ideas-oyed" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
114
|
+
<td align="center"><a href="https://github.com/supertommy"><img src="https://avatars0.githubusercontent.com/u/2236153?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tommy Leung</b></sub></a><br /><a href="#mentoring-supertommy" title="Mentoring">🧑🏫</a></td>
|
|
115
|
+
<td align="center"><a href="https://github.com/digimbyte"><img src="https://avatars2.githubusercontent.com/u/6645396?v=4?s=100" width="100px;" alt=""/><br /><sub><b>digimbyte</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/commits?author=digimbyte" title="Documentation">📖</a></td>
|
|
130
116
|
</tr>
|
|
131
117
|
</table>
|
|
132
118
|
|
|
@@ -146,10 +132,6 @@ guide](.github/CONTRIBUTING.md) for guidelines about how to proceed. Join us!
|
|
|
146
132
|
Everyone interacting in Colyseus and its sub-projects' codebases, issue trackers
|
|
147
133
|
and chat rooms is expected to follow the [code of conduct](CODE_OF_CONDUCT.md).
|
|
148
134
|
|
|
149
|
-
# Backers / Supporters via Patreon
|
|
150
|
-
|
|
151
|
-
As of February 2021, Colyseus is owned and sponsored by [Lucid Sight](https://www.lucidsight.com/). A warm **thank you** for previous supporters of the project is forever documented in the [early supporters wiki page](https://github.com/colyseus/colyseus/wiki/Early-supporters-(2017-2021)).
|
|
152
|
-
|
|
153
135
|
# License
|
|
154
136
|
|
|
155
137
|
MIT
|
package/build/index.js
CHANGED
|
@@ -1,12 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var src_exports = {};
|
|
19
|
+
__export(src_exports, {
|
|
20
|
+
TransportOptions: () => import_uWebSocketsTransport.TransportOptions,
|
|
21
|
+
uWebSocketClient: () => import_uWebSocketClient.uWebSocketClient,
|
|
22
|
+
uWebSocketsTransport: () => import_uWebSocketsTransport.uWebSocketsTransport
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(src_exports);
|
|
25
|
+
var import_uWebSocketClient = require("./uWebSocketClient");
|
|
26
|
+
var import_uWebSocketsTransport = require("./uWebSocketsTransport");
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
TransportOptions,
|
|
30
|
+
uWebSocketClient,
|
|
31
|
+
uWebSocketsTransport
|
|
32
|
+
});
|
package/build/index.js.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { uWebSocketClient } from \"./uWebSocketClient\";\nexport { uWebSocketsTransport, TransportOptions } from \"./uWebSocketsTransport\""],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAiC;AACjC,kCAAuD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/build/index.mjs
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { uWebSocketClient } from "./uWebSocketClient";
|
|
2
|
+
import { uWebSocketsTransport, TransportOptions } from "./uWebSocketsTransport";
|
|
3
|
+
export {
|
|
4
|
+
TransportOptions,
|
|
5
|
+
uWebSocketClient,
|
|
6
|
+
uWebSocketsTransport
|
|
7
|
+
};
|
package/build/index.mjs.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { uWebSocketClient } from \"./uWebSocketClient\";\nexport { uWebSocketsTransport, TransportOptions } from \"./uWebSocketsTransport\""],
|
|
5
|
+
"mappings": "AAAA,SAAS,wBAAwB;AACjC,SAAS,sBAAsB,wBAAwB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -3,8 +3,8 @@ import EventEmitter from 'events';
|
|
|
3
3
|
import uWebSockets from 'uWebSockets.js';
|
|
4
4
|
import { Client, ClientState, ISendOptions } from '@colyseus/core';
|
|
5
5
|
export declare class uWebSocketWrapper extends EventEmitter {
|
|
6
|
-
ws: uWebSockets.WebSocket
|
|
7
|
-
constructor(ws: uWebSockets.WebSocket);
|
|
6
|
+
ws: uWebSockets.WebSocket<any>;
|
|
7
|
+
constructor(ws: uWebSockets.WebSocket<any>);
|
|
8
8
|
}
|
|
9
9
|
export declare enum ReadyState {
|
|
10
10
|
CONNECTING = 0,
|
|
@@ -14,14 +14,16 @@ export declare enum ReadyState {
|
|
|
14
14
|
}
|
|
15
15
|
export declare class uWebSocketClient implements Client {
|
|
16
16
|
id: string;
|
|
17
|
-
|
|
17
|
+
_ref: uWebSocketWrapper;
|
|
18
18
|
sessionId: string;
|
|
19
19
|
state: ClientState;
|
|
20
20
|
readyState: number;
|
|
21
21
|
_enqueuedMessages: any[];
|
|
22
22
|
_afterNextPatchQueue: any;
|
|
23
23
|
_reconnectionToken: string;
|
|
24
|
-
constructor(id: string,
|
|
24
|
+
constructor(id: string, _ref: uWebSocketWrapper);
|
|
25
|
+
get ref(): uWebSocketWrapper;
|
|
26
|
+
set ref(_ref: uWebSocketWrapper);
|
|
25
27
|
sendBytes(type: any, bytes?: any | ISendOptions, options?: ISendOptions): void;
|
|
26
28
|
send(messageOrType: any, messageOrOptions?: any | ISendOptions, options?: ISendOptions): void;
|
|
27
29
|
enqueueRaw(data: ArrayLike<number>, options?: ISendOptions): void;
|
|
@@ -1,107 +1,131 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var uWebSocketClient_exports = {};
|
|
25
|
+
__export(uWebSocketClient_exports, {
|
|
26
|
+
ReadyState: () => ReadyState,
|
|
27
|
+
uWebSocketClient: () => uWebSocketClient,
|
|
28
|
+
uWebSocketWrapper: () => uWebSocketWrapper
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(uWebSocketClient_exports);
|
|
31
|
+
var import_events = __toESM(require("events"));
|
|
32
|
+
var import_core = require("@colyseus/core");
|
|
33
|
+
var import_schema = require("@colyseus/schema");
|
|
34
|
+
class uWebSocketWrapper extends import_events.default {
|
|
35
|
+
constructor(ws) {
|
|
36
|
+
super();
|
|
37
|
+
this.ws = ws;
|
|
38
|
+
}
|
|
19
39
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
})(
|
|
40
|
+
var ReadyState = /* @__PURE__ */ ((ReadyState2) => {
|
|
41
|
+
ReadyState2[ReadyState2["CONNECTING"] = 0] = "CONNECTING";
|
|
42
|
+
ReadyState2[ReadyState2["OPEN"] = 1] = "OPEN";
|
|
43
|
+
ReadyState2[ReadyState2["CLOSING"] = 2] = "CLOSING";
|
|
44
|
+
ReadyState2[ReadyState2["CLOSED"] = 3] = "CLOSED";
|
|
45
|
+
return ReadyState2;
|
|
46
|
+
})(ReadyState || {});
|
|
27
47
|
class uWebSocketClient {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
readyState =
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
this.raw(data, options);
|
|
48
|
+
constructor(id, _ref) {
|
|
49
|
+
this.id = id;
|
|
50
|
+
this._ref = _ref;
|
|
51
|
+
this.sessionId = id;
|
|
52
|
+
_ref.on("close", () => this.readyState = 3 /* CLOSED */);
|
|
53
|
+
}
|
|
54
|
+
sessionId;
|
|
55
|
+
state = import_core.ClientState.JOINING;
|
|
56
|
+
readyState = 1 /* OPEN */;
|
|
57
|
+
_enqueuedMessages = [];
|
|
58
|
+
_afterNextPatchQueue;
|
|
59
|
+
_reconnectionToken;
|
|
60
|
+
get ref() {
|
|
61
|
+
return this._ref;
|
|
62
|
+
}
|
|
63
|
+
set ref(_ref) {
|
|
64
|
+
this._ref = _ref;
|
|
65
|
+
this.readyState = 1 /* OPEN */;
|
|
66
|
+
}
|
|
67
|
+
sendBytes(type, bytes, options) {
|
|
68
|
+
(0, import_core.debugMessage)("send bytes(to %s): '%s' -> %j", this.sessionId, type, bytes);
|
|
69
|
+
this.enqueueRaw(
|
|
70
|
+
import_core.getMessageBytes.raw(import_core.Protocol.ROOM_DATA_BYTES, type, void 0, bytes),
|
|
71
|
+
options
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
send(messageOrType, messageOrOptions, options) {
|
|
75
|
+
(0, import_core.debugMessage)("send(to %s): '%s' -> %O", this.sessionId, messageOrType, messageOrOptions);
|
|
76
|
+
this.enqueueRaw(
|
|
77
|
+
messageOrType instanceof import_schema.Schema ? import_core.getMessageBytes[import_core.Protocol.ROOM_DATA_SCHEMA](messageOrType) : import_core.getMessageBytes.raw(import_core.Protocol.ROOM_DATA, messageOrType, messageOrOptions),
|
|
78
|
+
options
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
enqueueRaw(data, options) {
|
|
82
|
+
if (options?.afterNextPatch) {
|
|
83
|
+
this._afterNextPatchQueue.push([this, arguments]);
|
|
84
|
+
return;
|
|
66
85
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
this.ref.ws.send(new Uint8Array(data), true, false);
|
|
86
|
+
if (this.state === import_core.ClientState.JOINING) {
|
|
87
|
+
this._enqueuedMessages.push(data);
|
|
88
|
+
return;
|
|
73
89
|
}
|
|
74
|
-
|
|
75
|
-
|
|
90
|
+
this.raw(data, options);
|
|
91
|
+
}
|
|
92
|
+
raw(data, options, cb) {
|
|
93
|
+
if (this.readyState !== 1 /* OPEN */) {
|
|
94
|
+
import_core.logger.warn("trying to send data to inactive client", this.sessionId);
|
|
95
|
+
return;
|
|
76
96
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
this.ref.ws.close();
|
|
88
|
-
}
|
|
97
|
+
this._ref.ws.send(new Uint8Array(data), true, false);
|
|
98
|
+
}
|
|
99
|
+
error(code, message = "", cb) {
|
|
100
|
+
this.raw(import_core.getMessageBytes[import_core.Protocol.ERROR](code, message), void 0, cb);
|
|
101
|
+
}
|
|
102
|
+
leave(code, data) {
|
|
103
|
+
if (this.readyState !== 1 /* OPEN */) {
|
|
104
|
+
return;
|
|
89
105
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
catch (e) {
|
|
96
|
-
core.logger.info(e.stack);
|
|
97
|
-
}
|
|
98
|
-
this.leave(code, data);
|
|
106
|
+
this.readyState = 2 /* CLOSING */;
|
|
107
|
+
if (code !== void 0) {
|
|
108
|
+
this._ref.ws.end(code, data);
|
|
109
|
+
} else {
|
|
110
|
+
this._ref.ws.close();
|
|
99
111
|
}
|
|
100
|
-
|
|
101
|
-
|
|
112
|
+
}
|
|
113
|
+
close(code, data) {
|
|
114
|
+
import_core.logger.warn("DEPRECATION WARNING: use client.leave() instead of client.close()");
|
|
115
|
+
try {
|
|
116
|
+
throw new Error();
|
|
117
|
+
} catch (e) {
|
|
118
|
+
import_core.logger.info(e.stack);
|
|
102
119
|
}
|
|
120
|
+
this.leave(code, data);
|
|
121
|
+
}
|
|
122
|
+
toJSON() {
|
|
123
|
+
return { sessionId: this.sessionId, readyState: this.readyState };
|
|
124
|
+
}
|
|
103
125
|
}
|
|
104
|
-
|
|
105
|
-
exports
|
|
106
|
-
|
|
107
|
-
|
|
126
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
127
|
+
0 && (module.exports = {
|
|
128
|
+
ReadyState,
|
|
129
|
+
uWebSocketClient,
|
|
130
|
+
uWebSocketWrapper
|
|
131
|
+
});
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/uWebSocketClient.ts"],
|
|
4
|
+
"sourcesContent": ["import EventEmitter from 'events';\nimport uWebSockets from 'uWebSockets.js';\n\nimport { getMessageBytes, Protocol, Client, ClientState, ISendOptions, logger, debugMessage } from '@colyseus/core';\nimport { Schema } from '@colyseus/schema';\n\nexport class uWebSocketWrapper extends EventEmitter {\n constructor(public ws: uWebSockets.WebSocket<any>) {\n super();\n }\n}\n\nexport enum ReadyState {\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3,\n}\n\nexport class uWebSocketClient implements Client {\n public sessionId: string;\n public state: ClientState = ClientState.JOINING;\n public readyState: number = ReadyState.OPEN;\n public _enqueuedMessages: any[] = [];\n public _afterNextPatchQueue;\n public _reconnectionToken: string;\n\n constructor(\n public id: string,\n public _ref: uWebSocketWrapper,\n ) {\n this.sessionId = id;\n\n _ref.on('close', () => this.readyState = ReadyState.CLOSED);\n }\n\n get ref() { return this._ref; }\n set ref(_ref: uWebSocketWrapper) {\n this._ref = _ref;\n this.readyState = ReadyState.OPEN;\n }\n\n public sendBytes(type: any, bytes?: any | ISendOptions, options?: ISendOptions) {\n debugMessage(\"send bytes(to %s): '%s' -> %j\", this.sessionId, type, bytes);\n\n this.enqueueRaw(\n getMessageBytes.raw(Protocol.ROOM_DATA_BYTES, type, undefined, bytes),\n options,\n );\n }\n\n public send(messageOrType: any, messageOrOptions?: any | ISendOptions, options?: ISendOptions) {\n debugMessage(\"send(to %s): '%s' -> %O\", this.sessionId, messageOrType, messageOrOptions);\n\n this.enqueueRaw(\n (messageOrType instanceof Schema)\n ? getMessageBytes[Protocol.ROOM_DATA_SCHEMA](messageOrType)\n : getMessageBytes.raw(Protocol.ROOM_DATA, messageOrType, messageOrOptions),\n options,\n );\n }\n\n public enqueueRaw(data: ArrayLike<number>, options?: ISendOptions) {\n // use room's afterNextPatch queue\n if (options?.afterNextPatch) {\n this._afterNextPatchQueue.push([this, arguments]);\n return;\n }\n\n if (this.state === ClientState.JOINING) {\n // sending messages during `onJoin`.\n // - the client-side cannot register \"onMessage\" callbacks at this point.\n // - enqueue the messages to be send after JOIN_ROOM message has been sent\n this._enqueuedMessages.push(data);\n return;\n }\n\n this.raw(data, options);\n }\n\n public raw(data: ArrayLike<number>, options?: ISendOptions, cb?: (err?: Error) => void) {\n if (this.readyState !== ReadyState.OPEN) {\n logger.warn('trying to send data to inactive client', this.sessionId);\n return;\n }\n\n this._ref.ws.send(new Uint8Array(data), true, false);\n }\n\n public error(code: number, message: string = '', cb?: (err?: Error) => void) {\n this.raw(getMessageBytes[Protocol.ERROR](code, message), undefined, cb);\n }\n\n public leave(code?: number, data?: string) {\n if (this.readyState !== ReadyState.OPEN) {\n // connection already closed. ignore.\n return;\n }\n\n this.readyState = ReadyState.CLOSING;\n\n if (code !== undefined) {\n this._ref.ws.end(code, data);\n\n } else {\n this._ref.ws.close();\n }\n }\n\n public close(code?: number, data?: string) {\n logger.warn('DEPRECATION WARNING: use client.leave() instead of client.close()');\n try {\n throw new Error();\n } catch (e) {\n logger.info(e.stack);\n }\n this.leave(code, data);\n }\n\n public toJSON() {\n return { sessionId: this.sessionId, readyState: this.readyState };\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyB;AAGzB,kBAAmG;AACnG,oBAAuB;AAEhB,MAAM,0BAA0B,cAAAA,QAAa;AAAA,EAClD,YAAmB,IAAgC;AACjD,UAAM;AADW;AAAA,EAEnB;AACF;AAEO,IAAK,aAAL,kBAAKC,gBAAL;AACL,EAAAA,wBAAA,gBAAa,KAAb;AACA,EAAAA,wBAAA,UAAO,KAAP;AACA,EAAAA,wBAAA,aAAU,KAAV;AACA,EAAAA,wBAAA,YAAS,KAAT;AAJU,SAAAA;AAAA,GAAA;AAOL,MAAM,iBAAmC;AAAA,EAQ9C,YACS,IACA,MACP;AAFO;AACA;AAEP,SAAK,YAAY;AAEjB,SAAK,GAAG,SAAS,MAAM,KAAK,aAAa,cAAiB;AAAA,EAC5D;AAAA,EAdO;AAAA,EACA,QAAqB,wBAAY;AAAA,EACjC,aAAqB;AAAA,EACrB,oBAA2B,CAAC;AAAA,EAC5B;AAAA,EACA;AAAA,EAWP,IAAI,MAAM;AAAE,WAAO,KAAK;AAAA,EAAM;AAAA,EAC9B,IAAI,IAAI,MAAyB;AAC/B,SAAK,OAAO;AACZ,SAAK,aAAa;AAAA,EACpB;AAAA,EAEO,UAAU,MAAW,OAA4B,SAAwB;AAC9E,kCAAa,iCAAiC,KAAK,WAAW,MAAM,KAAK;AAEzE,SAAK;AAAA,MACH,4BAAgB,IAAI,qBAAS,iBAAiB,MAAM,QAAW,KAAK;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AAAA,EAEO,KAAK,eAAoB,kBAAuC,SAAwB;AAC7F,kCAAa,2BAA2B,KAAK,WAAW,eAAe,gBAAgB;AAEvF,SAAK;AAAA,MACF,yBAAyB,uBACtB,4BAAgB,qBAAS,kBAAkB,aAAa,IACxD,4BAAgB,IAAI,qBAAS,WAAW,eAAe,gBAAgB;AAAA,MAC3E;AAAA,IACF;AAAA,EACF;AAAA,EAEO,WAAW,MAAyB,SAAwB;AAEjE,QAAI,SAAS,gBAAgB;AAC3B,WAAK,qBAAqB,KAAK,CAAC,MAAM,SAAS,CAAC;AAChD;AAAA,IACF;AAEA,QAAI,KAAK,UAAU,wBAAY,SAAS;AAItC,WAAK,kBAAkB,KAAK,IAAI;AAChC;AAAA,IACF;AAEA,SAAK,IAAI,MAAM,OAAO;AAAA,EACxB;AAAA,EAEO,IAAI,MAAyB,SAAwB,IAA4B;AACtF,QAAI,KAAK,eAAe,cAAiB;AACvC,yBAAO,KAAK,0CAA0C,KAAK,SAAS;AACpE;AAAA,IACF;AAEA,SAAK,KAAK,GAAG,KAAK,IAAI,WAAW,IAAI,GAAG,MAAM,KAAK;AAAA,EACrD;AAAA,EAEO,MAAM,MAAc,UAAkB,IAAI,IAA4B;AAC3E,SAAK,IAAI,4BAAgB,qBAAS,OAAO,MAAM,OAAO,GAAG,QAAW,EAAE;AAAA,EACxE;AAAA,EAEO,MAAM,MAAe,MAAe;AACzC,QAAI,KAAK,eAAe,cAAiB;AAEvC;AAAA,IACF;AAEA,SAAK,aAAa;AAElB,QAAI,SAAS,QAAW;AACtB,WAAK,KAAK,GAAG,IAAI,MAAM,IAAI;AAAA,IAE7B,OAAO;AACL,WAAK,KAAK,GAAG,MAAM;AAAA,IACrB;AAAA,EACF;AAAA,EAEO,MAAM,MAAe,MAAe;AACzC,uBAAO,KAAK,mEAAmE;AAC/E,QAAI;AACF,YAAM,IAAI,MAAM;AAAA,IAClB,SAAS,GAAP;AACA,yBAAO,KAAK,EAAE,KAAK;AAAA,IACrB;AACA,SAAK,MAAM,MAAM,IAAI;AAAA,EACvB;AAAA,EAEO,SAAS;AACd,WAAO,EAAE,WAAW,KAAK,WAAW,YAAY,KAAK,WAAW;AAAA,EAClE;AACF;",
|
|
6
|
+
"names": ["EventEmitter", "ReadyState"]
|
|
7
|
+
}
|