@colyseus/core 0.15.7 → 0.15.9

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.
Files changed (68) hide show
  1. package/LICENSE +2 -1
  2. package/README.md +17 -66
  3. package/build/Protocol.d.ts +1 -0
  4. package/build/Protocol.js +1 -0
  5. package/build/Protocol.js.map +2 -2
  6. package/build/Protocol.mjs +1 -0
  7. package/build/Protocol.mjs.map +2 -2
  8. package/build/Room.js +32 -33
  9. package/build/Room.js.map +3 -3
  10. package/build/Room.mjs +32 -33
  11. package/build/Room.mjs.map +2 -2
  12. package/build/Server.js +1 -6
  13. package/build/Server.js.map +1 -1
  14. package/build/Server.mjs +1 -6
  15. package/build/Server.mjs.map +1 -1
  16. package/build/Transport.js +0 -1
  17. package/build/Transport.js.map +1 -1
  18. package/build/Transport.mjs +0 -1
  19. package/build/Transport.mjs.map +1 -1
  20. package/build/Utils.js +0 -3
  21. package/build/Utils.js.map +1 -1
  22. package/build/Utils.mjs +0 -3
  23. package/build/Utils.mjs.map +1 -1
  24. package/build/errors/ServerError.js +0 -1
  25. package/build/errors/ServerError.js.map +1 -1
  26. package/build/errors/ServerError.mjs +0 -1
  27. package/build/errors/ServerError.mjs.map +1 -1
  28. package/build/matchmaker/RegisteredHandler.js +1 -4
  29. package/build/matchmaker/RegisteredHandler.js.map +1 -1
  30. package/build/matchmaker/RegisteredHandler.mjs +1 -4
  31. package/build/matchmaker/RegisteredHandler.mjs.map +1 -1
  32. package/build/matchmaker/driver/Query.js +0 -2
  33. package/build/matchmaker/driver/Query.js.map +1 -1
  34. package/build/matchmaker/driver/Query.mjs +0 -2
  35. package/build/matchmaker/driver/Query.mjs.map +1 -1
  36. package/build/matchmaker/driver/RoomData.js +5 -12
  37. package/build/matchmaker/driver/RoomData.js.map +1 -1
  38. package/build/matchmaker/driver/RoomData.mjs +5 -12
  39. package/build/matchmaker/driver/RoomData.mjs.map +1 -1
  40. package/build/matchmaker/driver/index.js +3 -1
  41. package/build/matchmaker/driver/index.js.map +1 -1
  42. package/build/matchmaker/driver/index.mjs +3 -1
  43. package/build/matchmaker/driver/index.mjs.map +1 -1
  44. package/build/presence/LocalPresence.js +6 -6
  45. package/build/presence/LocalPresence.js.map +1 -1
  46. package/build/presence/LocalPresence.mjs +6 -6
  47. package/build/presence/LocalPresence.mjs.map +1 -1
  48. package/build/rooms/LobbyRoom.js +5 -3
  49. package/build/rooms/LobbyRoom.js.map +1 -1
  50. package/build/rooms/LobbyRoom.mjs +5 -3
  51. package/build/rooms/LobbyRoom.mjs.map +1 -1
  52. package/build/rooms/RelayRoom.js +8 -5
  53. package/build/rooms/RelayRoom.js.map +1 -1
  54. package/build/rooms/RelayRoom.mjs +8 -5
  55. package/build/rooms/RelayRoom.mjs.map +1 -1
  56. package/build/serializer/NoneSerializer.js +3 -1
  57. package/build/serializer/NoneSerializer.js.map +1 -1
  58. package/build/serializer/NoneSerializer.mjs +3 -1
  59. package/build/serializer/NoneSerializer.mjs.map +1 -1
  60. package/build/serializer/SchemaSerializer.js +4 -4
  61. package/build/serializer/SchemaSerializer.js.map +1 -1
  62. package/build/serializer/SchemaSerializer.mjs +4 -4
  63. package/build/serializer/SchemaSerializer.mjs.map +1 -1
  64. package/build/utils/Utils.js +0 -3
  65. package/build/utils/Utils.js.map +1 -1
  66. package/build/utils/Utils.mjs +0 -3
  67. package/build/utils/Utils.mjs.map +1 -1
  68. package/package.json +4 -3
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/serializer/NoneSerializer.ts"],
4
4
  "sourcesContent": ["import { Client } from '../Transport';\nimport { Serializer } from './Serializer';\n\nexport class NoneSerializer<T= any> implements Serializer<T> {\n public id: string = 'none';\n\n public reset(data: any) {\n // tslint:disable-line\n }\n\n public getFullState(client?: Client) {\n return null;\n }\n\n public applyPatches(clients: Client[], state: T): boolean {\n return false;\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,eAAgD;AAAA,EACpD,KAAa;AAAA,EAEb,MAAM,MAAW;AAAA,EAExB;AAAA,EAEO,aAAa,QAAiB;AACnC,WAAO;AAAA,EACT;AAAA,EAEO,aAAa,SAAmB,OAAmB;AACxD,WAAO;AAAA,EACT;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,eAAgD;AAAA,EAAtD;AACL,SAAO,KAAa;AAAA;AAAA,EAEb,MAAM,MAAW;AAAA,EAExB;AAAA,EAEO,aAAa,QAAiB;AACnC,WAAO;AAAA,EACT;AAAA,EAEO,aAAa,SAAmB,OAAmB;AACxD,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,7 @@
1
1
  class NoneSerializer {
2
- id = "none";
2
+ constructor() {
3
+ this.id = "none";
4
+ }
3
5
  reset(data) {
4
6
  }
5
7
  getFullState(client) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/serializer/NoneSerializer.ts"],
4
4
  "sourcesContent": ["import { Client } from '../Transport';\nimport { Serializer } from './Serializer';\n\nexport class NoneSerializer<T= any> implements Serializer<T> {\n public id: string = 'none';\n\n public reset(data: any) {\n // tslint:disable-line\n }\n\n public getFullState(client?: Client) {\n return null;\n }\n\n public applyPatches(clients: Client[], state: T): boolean {\n return false;\n }\n}\n"],
5
- "mappings": "AAGO,MAAM,eAAgD;AAAA,EACpD,KAAa;AAAA,EAEb,MAAM,MAAW;AAAA,EAExB;AAAA,EAEO,aAAa,QAAiB;AACnC,WAAO;AAAA,EACT;AAAA,EAEO,aAAa,SAAmB,OAAmB;AACxD,WAAO;AAAA,EACT;AACF;",
5
+ "mappings": "AAGO,MAAM,eAAgD;AAAA,EAAtD;AACL,SAAO,KAAa;AAAA;AAAA,EAEb,MAAM,MAAW;AAAA,EAExB;AAAA,EAEO,aAAa,QAAiB;AACnC,WAAO;AAAA,EACT;AAAA,EAEO,aAAa,SAAmB,OAAmB;AACxD,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -25,10 +25,10 @@ var import_Debug = require("../Debug");
25
25
  var import_Protocol = require("../Protocol");
26
26
  var import_Transport = require("../Transport");
27
27
  class SchemaSerializer {
28
- id = "schema";
29
- state;
30
- useFilters = false;
31
- handshakeCache;
28
+ constructor() {
29
+ this.id = "schema";
30
+ this.useFilters = false;
31
+ }
32
32
  reset(newState) {
33
33
  this.state = newState;
34
34
  this.useFilters = (0, import_schema.hasFilter)(newState.constructor);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/serializer/SchemaSerializer.ts"],
4
4
  "sourcesContent": ["/* tslint:disable:no-string-literal */\n\nimport { Client } from '..';\nimport { Serializer } from './Serializer';\n\nimport { dumpChanges, hasFilter, Reflection, Schema } from '@colyseus/schema';\nimport { debugPatch } from '../Debug';\nimport { Protocol } from '../Protocol';\nimport { ClientState } from '../Transport';\n\nexport class SchemaSerializer<T> implements Serializer<T> {\n public id = 'schema';\n\n private state: T & Schema;\n private useFilters: boolean = false;\n\n private handshakeCache: number[];\n\n public reset(newState: T & Schema) {\n this.state = newState;\n this.useFilters = hasFilter(newState.constructor as typeof Schema);\n }\n\n public getFullState(client?: Client) {\n const fullEncodedState = this.state.encodeAll(this.useFilters);\n\n if (client && this.useFilters) {\n return this.state.applyFilters(client, true);\n\n } else {\n return fullEncodedState;\n }\n }\n\n public applyPatches(clients: Client[]) {\n const hasChanges = this.state['$changes'].changes.size > 0;\n\n if (hasChanges) {\n let numClients = clients.length;\n\n // dump changes for patch debugging\n if (debugPatch.enabled) {\n (debugPatch as any).dumpChanges = dumpChanges(this.state);\n }\n\n // get patch bytes\n const patches = this.state.encode(false, [], this.useFilters);\n\n if (!this.useFilters) {\n // encode changes once, for all clients\n patches.unshift(Protocol.ROOM_STATE_PATCH);\n\n while (numClients--) {\n const client = clients[numClients];\n\n //\n // FIXME: avoid this check.\n //\n if (client.state === ClientState.JOINED) {\n client.raw(patches);\n }\n }\n\n } else {\n\n // encode state multiple times, for each client\n while (numClients--) {\n const client = clients[numClients];\n\n //\n // FIXME: avoid this check.\n //\n if (client.state === ClientState.JOINED) {\n const filteredPatches = this.state.applyFilters(client);\n client.raw([Protocol.ROOM_STATE_PATCH, ...filteredPatches]);\n }\n }\n\n this.state.discardAllChanges();\n }\n\n // debug patches\n if (debugPatch.enabled) {\n debugPatch(\n '%d bytes sent to %d clients, %j',\n patches.length,\n clients.length,\n (debugPatch as any).dumpChanges,\n );\n }\n }\n\n return hasChanges;\n }\n\n public handshake() {\n /**\n * Cache handshake to avoid encoding it for each client joining\n */\n if (!this.handshakeCache) {\n this.handshakeCache = (this.state && Reflection.encode(this.state));\n }\n\n return this.handshakeCache;\n }\n\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,oBAA2D;AAC3D,mBAA2B;AAC3B,sBAAyB;AACzB,uBAA4B;AAErB,MAAM,iBAA6C;AAAA,EACjD,KAAK;AAAA,EAEJ;AAAA,EACA,aAAsB;AAAA,EAEtB;AAAA,EAED,MAAM,UAAsB;AACjC,SAAK,QAAQ;AACb,SAAK,iBAAa,yBAAU,SAAS,WAA4B;AAAA,EACnE;AAAA,EAEO,aAAa,QAAiB;AACnC,UAAM,mBAAmB,KAAK,MAAM,UAAU,KAAK,UAAU;AAE7D,QAAI,UAAU,KAAK,YAAY;AAC7B,aAAO,KAAK,MAAM,aAAa,QAAQ,IAAI;AAAA,IAE7C,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEO,aAAa,SAAmB;AACrC,UAAM,aAAa,KAAK,MAAM,YAAY,QAAQ,OAAO;AAEzD,QAAI,YAAY;AACd,UAAI,aAAa,QAAQ;AAGzB,UAAI,wBAAW,SAAS;AACtB,QAAC,wBAAmB,kBAAc,2BAAY,KAAK,KAAK;AAAA,MAC1D;AAGA,YAAM,UAAU,KAAK,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;AAE5D,UAAI,CAAC,KAAK,YAAY;AAEpB,gBAAQ,QAAQ,yBAAS,gBAAgB;AAEzC,eAAO,cAAc;AACnB,gBAAM,SAAS,QAAQ;AAKvB,cAAI,OAAO,UAAU,6BAAY,QAAQ;AACvC,mBAAO,IAAI,OAAO;AAAA,UACpB;AAAA,QACF;AAAA,MAEF,OAAO;AAGL,eAAO,cAAc;AACnB,gBAAM,SAAS,QAAQ;AAKvB,cAAI,OAAO,UAAU,6BAAY,QAAQ;AACvC,kBAAM,kBAAkB,KAAK,MAAM,aAAa,MAAM;AACtD,mBAAO,IAAI,CAAC,yBAAS,kBAAkB,GAAG,eAAe,CAAC;AAAA,UAC5D;AAAA,QACF;AAEA,aAAK,MAAM,kBAAkB;AAAA,MAC/B;AAGA,UAAI,wBAAW,SAAS;AACtB;AAAA,UACE;AAAA,UACA,QAAQ;AAAA,UACR,QAAQ;AAAA,UACP,wBAAmB;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEO,YAAY;AAIjB,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,iBAAkB,KAAK,SAAS,yBAAW,OAAO,KAAK,KAAK;AAAA,IACnE;AAEA,WAAO,KAAK;AAAA,EACd;AAEF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,oBAA2D;AAC3D,mBAA2B;AAC3B,sBAAyB;AACzB,uBAA4B;AAErB,MAAM,iBAA6C;AAAA,EAAnD;AACL,SAAO,KAAK;AAGZ,SAAQ,aAAsB;AAAA;AAAA,EAIvB,MAAM,UAAsB;AACjC,SAAK,QAAQ;AACb,SAAK,iBAAa,yBAAU,SAAS,WAA4B;AAAA,EACnE;AAAA,EAEO,aAAa,QAAiB;AACnC,UAAM,mBAAmB,KAAK,MAAM,UAAU,KAAK,UAAU;AAE7D,QAAI,UAAU,KAAK,YAAY;AAC7B,aAAO,KAAK,MAAM,aAAa,QAAQ,IAAI;AAAA,IAE7C,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEO,aAAa,SAAmB;AACrC,UAAM,aAAa,KAAK,MAAM,YAAY,QAAQ,OAAO;AAEzD,QAAI,YAAY;AACd,UAAI,aAAa,QAAQ;AAGzB,UAAI,wBAAW,SAAS;AACtB,QAAC,wBAAmB,kBAAc,2BAAY,KAAK,KAAK;AAAA,MAC1D;AAGA,YAAM,UAAU,KAAK,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;AAE5D,UAAI,CAAC,KAAK,YAAY;AAEpB,gBAAQ,QAAQ,yBAAS,gBAAgB;AAEzC,eAAO,cAAc;AACnB,gBAAM,SAAS,QAAQ;AAKvB,cAAI,OAAO,UAAU,6BAAY,QAAQ;AACvC,mBAAO,IAAI,OAAO;AAAA,UACpB;AAAA,QACF;AAAA,MAEF,OAAO;AAGL,eAAO,cAAc;AACnB,gBAAM,SAAS,QAAQ;AAKvB,cAAI,OAAO,UAAU,6BAAY,QAAQ;AACvC,kBAAM,kBAAkB,KAAK,MAAM,aAAa,MAAM;AACtD,mBAAO,IAAI,CAAC,yBAAS,kBAAkB,GAAG,eAAe,CAAC;AAAA,UAC5D;AAAA,QACF;AAEA,aAAK,MAAM,kBAAkB;AAAA,MAC/B;AAGA,UAAI,wBAAW,SAAS;AACtB;AAAA,UACE;AAAA,UACA,QAAQ;AAAA,UACR,QAAQ;AAAA,UACP,wBAAmB;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEO,YAAY;AAIjB,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,iBAAkB,KAAK,SAAS,yBAAW,OAAO,KAAK,KAAK;AAAA,IACnE;AAEA,WAAO,KAAK;AAAA,EACd;AAEF;",
6
6
  "names": []
7
7
  }
@@ -3,10 +3,10 @@ import { debugPatch } from "../Debug";
3
3
  import { Protocol } from "../Protocol";
4
4
  import { ClientState } from "../Transport";
5
5
  class SchemaSerializer {
6
- id = "schema";
7
- state;
8
- useFilters = false;
9
- handshakeCache;
6
+ constructor() {
7
+ this.id = "schema";
8
+ this.useFilters = false;
9
+ }
10
10
  reset(newState) {
11
11
  this.state = newState;
12
12
  this.useFilters = hasFilter(newState.constructor);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/serializer/SchemaSerializer.ts"],
4
4
  "sourcesContent": ["/* tslint:disable:no-string-literal */\n\nimport { Client } from '..';\nimport { Serializer } from './Serializer';\n\nimport { dumpChanges, hasFilter, Reflection, Schema } from '@colyseus/schema';\nimport { debugPatch } from '../Debug';\nimport { Protocol } from '../Protocol';\nimport { ClientState } from '../Transport';\n\nexport class SchemaSerializer<T> implements Serializer<T> {\n public id = 'schema';\n\n private state: T & Schema;\n private useFilters: boolean = false;\n\n private handshakeCache: number[];\n\n public reset(newState: T & Schema) {\n this.state = newState;\n this.useFilters = hasFilter(newState.constructor as typeof Schema);\n }\n\n public getFullState(client?: Client) {\n const fullEncodedState = this.state.encodeAll(this.useFilters);\n\n if (client && this.useFilters) {\n return this.state.applyFilters(client, true);\n\n } else {\n return fullEncodedState;\n }\n }\n\n public applyPatches(clients: Client[]) {\n const hasChanges = this.state['$changes'].changes.size > 0;\n\n if (hasChanges) {\n let numClients = clients.length;\n\n // dump changes for patch debugging\n if (debugPatch.enabled) {\n (debugPatch as any).dumpChanges = dumpChanges(this.state);\n }\n\n // get patch bytes\n const patches = this.state.encode(false, [], this.useFilters);\n\n if (!this.useFilters) {\n // encode changes once, for all clients\n patches.unshift(Protocol.ROOM_STATE_PATCH);\n\n while (numClients--) {\n const client = clients[numClients];\n\n //\n // FIXME: avoid this check.\n //\n if (client.state === ClientState.JOINED) {\n client.raw(patches);\n }\n }\n\n } else {\n\n // encode state multiple times, for each client\n while (numClients--) {\n const client = clients[numClients];\n\n //\n // FIXME: avoid this check.\n //\n if (client.state === ClientState.JOINED) {\n const filteredPatches = this.state.applyFilters(client);\n client.raw([Protocol.ROOM_STATE_PATCH, ...filteredPatches]);\n }\n }\n\n this.state.discardAllChanges();\n }\n\n // debug patches\n if (debugPatch.enabled) {\n debugPatch(\n '%d bytes sent to %d clients, %j',\n patches.length,\n clients.length,\n (debugPatch as any).dumpChanges,\n );\n }\n }\n\n return hasChanges;\n }\n\n public handshake() {\n /**\n * Cache handshake to avoid encoding it for each client joining\n */\n if (!this.handshakeCache) {\n this.handshakeCache = (this.state && Reflection.encode(this.state));\n }\n\n return this.handshakeCache;\n }\n\n}\n"],
5
- "mappings": "AAKA,SAAS,aAAa,WAAW,kBAA0B;AAC3D,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAErB,MAAM,iBAA6C;AAAA,EACjD,KAAK;AAAA,EAEJ;AAAA,EACA,aAAsB;AAAA,EAEtB;AAAA,EAED,MAAM,UAAsB;AACjC,SAAK,QAAQ;AACb,SAAK,aAAa,UAAU,SAAS,WAA4B;AAAA,EACnE;AAAA,EAEO,aAAa,QAAiB;AACnC,UAAM,mBAAmB,KAAK,MAAM,UAAU,KAAK,UAAU;AAE7D,QAAI,UAAU,KAAK,YAAY;AAC7B,aAAO,KAAK,MAAM,aAAa,QAAQ,IAAI;AAAA,IAE7C,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEO,aAAa,SAAmB;AACrC,UAAM,aAAa,KAAK,MAAM,YAAY,QAAQ,OAAO;AAEzD,QAAI,YAAY;AACd,UAAI,aAAa,QAAQ;AAGzB,UAAI,WAAW,SAAS;AACtB,QAAC,WAAmB,cAAc,YAAY,KAAK,KAAK;AAAA,MAC1D;AAGA,YAAM,UAAU,KAAK,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;AAE5D,UAAI,CAAC,KAAK,YAAY;AAEpB,gBAAQ,QAAQ,SAAS,gBAAgB;AAEzC,eAAO,cAAc;AACnB,gBAAM,SAAS,QAAQ;AAKvB,cAAI,OAAO,UAAU,YAAY,QAAQ;AACvC,mBAAO,IAAI,OAAO;AAAA,UACpB;AAAA,QACF;AAAA,MAEF,OAAO;AAGL,eAAO,cAAc;AACnB,gBAAM,SAAS,QAAQ;AAKvB,cAAI,OAAO,UAAU,YAAY,QAAQ;AACvC,kBAAM,kBAAkB,KAAK,MAAM,aAAa,MAAM;AACtD,mBAAO,IAAI,CAAC,SAAS,kBAAkB,GAAG,eAAe,CAAC;AAAA,UAC5D;AAAA,QACF;AAEA,aAAK,MAAM,kBAAkB;AAAA,MAC/B;AAGA,UAAI,WAAW,SAAS;AACtB;AAAA,UACE;AAAA,UACA,QAAQ;AAAA,UACR,QAAQ;AAAA,UACP,WAAmB;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEO,YAAY;AAIjB,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,iBAAkB,KAAK,SAAS,WAAW,OAAO,KAAK,KAAK;AAAA,IACnE;AAEA,WAAO,KAAK;AAAA,EACd;AAEF;",
5
+ "mappings": "AAKA,SAAS,aAAa,WAAW,kBAA0B;AAC3D,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAErB,MAAM,iBAA6C;AAAA,EAAnD;AACL,SAAO,KAAK;AAGZ,SAAQ,aAAsB;AAAA;AAAA,EAIvB,MAAM,UAAsB;AACjC,SAAK,QAAQ;AACb,SAAK,aAAa,UAAU,SAAS,WAA4B;AAAA,EACnE;AAAA,EAEO,aAAa,QAAiB;AACnC,UAAM,mBAAmB,KAAK,MAAM,UAAU,KAAK,UAAU;AAE7D,QAAI,UAAU,KAAK,YAAY;AAC7B,aAAO,KAAK,MAAM,aAAa,QAAQ,IAAI;AAAA,IAE7C,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEO,aAAa,SAAmB;AACrC,UAAM,aAAa,KAAK,MAAM,YAAY,QAAQ,OAAO;AAEzD,QAAI,YAAY;AACd,UAAI,aAAa,QAAQ;AAGzB,UAAI,WAAW,SAAS;AACtB,QAAC,WAAmB,cAAc,YAAY,KAAK,KAAK;AAAA,MAC1D;AAGA,YAAM,UAAU,KAAK,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;AAE5D,UAAI,CAAC,KAAK,YAAY;AAEpB,gBAAQ,QAAQ,SAAS,gBAAgB;AAEzC,eAAO,cAAc;AACnB,gBAAM,SAAS,QAAQ;AAKvB,cAAI,OAAO,UAAU,YAAY,QAAQ;AACvC,mBAAO,IAAI,OAAO;AAAA,UACpB;AAAA,QACF;AAAA,MAEF,OAAO;AAGL,eAAO,cAAc;AACnB,gBAAM,SAAS,QAAQ;AAKvB,cAAI,OAAO,UAAU,YAAY,QAAQ;AACvC,kBAAM,kBAAkB,KAAK,MAAM,aAAa,MAAM;AACtD,mBAAO,IAAI,CAAC,SAAS,kBAAkB,GAAG,eAAe,CAAC;AAAA,UAC5D;AAAA,QACF;AAEA,aAAK,MAAM,kBAAkB;AAAA,MAC/B;AAGA,UAAI,WAAW,SAAS;AACtB;AAAA,UACE;AAAA,UACA,QAAQ;AAAA,UACR,QAAQ;AAAA,UACP,WAAmB;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEO,YAAY;AAIjB,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,iBAAkB,KAAK,SAAS,WAAW,OAAO,KAAK,KAAK;AAAA,IACnE;AAEA,WAAO,KAAK;AAAA,EACd;AAEF;",
6
6
  "names": []
7
7
  }
@@ -75,9 +75,6 @@ function spliceOne(arr, index) {
75
75
  return true;
76
76
  }
77
77
  class Deferred {
78
- promise;
79
- resolve;
80
- reject;
81
78
  constructor() {
82
79
  this.promise = new Promise((resolve, reject) => {
83
80
  this.resolve = resolve;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/Utils.ts"],
4
4
  "sourcesContent": ["import nanoid from 'nanoid';\nimport { addExtension } from 'msgpackr';\n\nimport { debugAndPrintError } from '../Debug';\nimport { EventEmitter } from \"events\";\nimport { ServerOpts, Socket } from \"net\";\nimport { logger } from '../Logger';\nimport { Schema } from \"@colyseus/schema\";\n\n// remote room call timeouts\nexport const REMOTE_ROOM_SHORT_TIMEOUT = Number(process.env.COLYSEUS_PRESENCE_SHORT_TIMEOUT || 500);\n\nexport function generateId(length: number = 9) {\n return nanoid(length);\n}\n\n//\n// nodemon sends SIGUSR2 before reloading\n// (https://github.com/remy/nodemon#controlling-shutdown-of-your-script)\n//\nconst signals: NodeJS.Signals[] = ['SIGINT', 'SIGTERM', 'SIGUSR2'];\n\nexport function registerGracefulShutdown(callback: (err?: Error) => void) {\n /**\n * Gracefully shutdown on uncaught errors\n */\n process.on('uncaughtException', (err) => {\n debugAndPrintError(err);\n callback(err);\n });\n\n signals.forEach((signal) =>\n process.once(signal, () => callback()));\n}\n\nexport function retry<T = any>(\n cb: Function,\n maxRetries: number = 3,\n errorWhiteList: any[] = [],\n retries: number = 0,\n) {\n return new Promise<T>((resolve, reject) => {\n cb()\n .then(resolve)\n .catch((e) => {\n if (\n errorWhiteList.indexOf(e.constructor) !== -1 &&\n retries++ < maxRetries\n ) {\n setTimeout(() => {\n retry<T>(cb, maxRetries, errorWhiteList, retries).\n then(resolve).\n catch((e2) => reject(e2));\n }, Math.floor(Math.random() * Math.pow(2, retries) * 400));\n\n } else {\n reject(e);\n }\n });\n });\n}\n\nexport function spliceOne(arr: any[], index: number): boolean {\n // manually splice availableRooms array\n // http://jsperf.com/manual-splice\n if (index === -1 || index >= arr.length) {\n return false;\n }\n\n const len = arr.length - 1;\n for (let i = index; i < len; i++) {\n arr[i] = arr[i + 1];\n }\n\n arr.length = len;\n return true;\n}\n\nexport class Deferred<T= any> {\n public promise: Promise<T>;\n\n public resolve: Function;\n public reject: Function;\n\n constructor() {\n this.promise = new Promise<T>((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n\n public then(func: (value: T) => any) {\n return this.promise.then.apply(this.promise, arguments);\n }\n\n public catch(func: (value: any) => any) {\n return this.promise.catch(func);\n }\n\n}\n\nexport function merge(a: any, ...objs: any[]): any {\n for (let i = 0, len = objs.length; i < len; i++) {\n const b = objs[i];\n for (const key in b) {\n if (b.hasOwnProperty(key)) {\n a[key] = b[key];\n }\n }\n }\n return a;\n}\n\nexport declare interface DummyServer {\n constructor(options?: ServerOpts, connectionListener?: (socket: Socket) => void);\n\n listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this;\n close(callback?: (err?: Error) => void): this;\n}\n\nexport class DummyServer extends EventEmitter {}\n\n// Add msgpackr extension to avoid circular references when encoding\n// https://github.com/kriszyp/msgpackr#custom-extensions\naddExtension({\n Class: Schema,\n type: 0,\n\n read(datum: any): any {\n return datum;\n },\n\n write(instance: any): any {\n return instance.toJSON();\n }\n});\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,sBAA6B;AAE7B,mBAAmC;AACnC,oBAA6B;AAG7B,oBAAuB;AAGhB,MAAM,4BAA4B,OAAO,QAAQ,IAAI,mCAAmC,GAAG;AAE3F,SAAS,WAAW,SAAiB,GAAG;AAC7C,aAAO,cAAAA,SAAO,MAAM;AACtB;AAMA,MAAM,UAA4B,CAAC,UAAU,WAAW,SAAS;AAE1D,SAAS,yBAAyB,UAAiC;AAIxE,UAAQ,GAAG,qBAAqB,CAAC,QAAQ;AACvC,yCAAmB,GAAG;AACtB,aAAS,GAAG;AAAA,EACd,CAAC;AAED,UAAQ,QAAQ,CAAC,WACf,QAAQ,KAAK,QAAQ,MAAM,SAAS,CAAC,CAAC;AAC1C;AAEO,SAAS,MACd,IACA,aAAqB,GACrB,iBAAwB,CAAC,GACzB,UAAkB,GAClB;AACA,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AACzC,OAAG,EACA,KAAK,OAAO,EACZ,MAAM,CAAC,MAAM;AACZ,UACE,eAAe,QAAQ,EAAE,WAAW,MAAM,MAC1C,YAAY,YACZ;AACA,mBAAW,MAAM;AACf,gBAAS,IAAI,YAAY,gBAAgB,OAAO,EAC9C,KAAK,OAAO,EACZ,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC;AAAA,QAC5B,GAAG,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,IAAI,GAAG,OAAO,IAAI,GAAG,CAAC;AAAA,MAE3D,OAAO;AACL,eAAO,CAAC;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACL,CAAC;AACH;AAEO,SAAS,UAAU,KAAY,OAAwB;AAG5D,MAAI,UAAU,MAAM,SAAS,IAAI,QAAQ;AACvC,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,IAAI,SAAS;AACzB,WAAS,IAAI,OAAO,IAAI,KAAK,KAAK;AAChC,QAAI,KAAK,IAAI,IAAI;AAAA,EACnB;AAEA,MAAI,SAAS;AACb,SAAO;AACT;AAEO,MAAM,SAAiB;AAAA,EACrB;AAAA,EAEA;AAAA,EACA;AAAA,EAEP,cAAc;AACZ,SAAK,UAAU,IAAI,QAAW,CAAC,SAAS,WAAW;AACjD,WAAK,UAAU;AACf,WAAK,SAAS;AAAA,IAChB,CAAC;AAAA,EACH;AAAA,EAEO,KAAK,MAAyB;AACnC,WAAO,KAAK,QAAQ,KAAK,MAAM,KAAK,SAAS,SAAS;AAAA,EACxD;AAAA,EAEO,MAAM,MAA2B;AACtC,WAAO,KAAK,QAAQ,MAAM,IAAI;AAAA,EAChC;AAEF;AAEO,SAAS,MAAM,MAAW,MAAkB;AACjD,WAAS,IAAI,GAAG,MAAM,KAAK,QAAQ,IAAI,KAAK,KAAK;AAC/C,UAAM,IAAI,KAAK;AACf,eAAW,OAAO,GAAG;AACnB,UAAI,EAAE,eAAe,GAAG,GAAG;AACzB,UAAE,OAAO,EAAE;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AASO,MAAM,oBAAoB,2BAAa;AAAC;AAAA,IAI/C,8BAAa;AAAA,EACX,OAAO;AAAA,EACP,MAAM;AAAA,EAEN,KAAK,OAAiB;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAoB;AACxB,WAAO,SAAS,OAAO;AAAA,EACzB;AACF,CAAC;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,sBAA6B;AAE7B,mBAAmC;AACnC,oBAA6B;AAG7B,oBAAuB;AAGhB,MAAM,4BAA4B,OAAO,QAAQ,IAAI,mCAAmC,GAAG;AAE3F,SAAS,WAAW,SAAiB,GAAG;AAC7C,aAAO,cAAAA,SAAO,MAAM;AACtB;AAMA,MAAM,UAA4B,CAAC,UAAU,WAAW,SAAS;AAE1D,SAAS,yBAAyB,UAAiC;AAIxE,UAAQ,GAAG,qBAAqB,CAAC,QAAQ;AACvC,yCAAmB,GAAG;AACtB,aAAS,GAAG;AAAA,EACd,CAAC;AAED,UAAQ,QAAQ,CAAC,WACf,QAAQ,KAAK,QAAQ,MAAM,SAAS,CAAC,CAAC;AAC1C;AAEO,SAAS,MACd,IACA,aAAqB,GACrB,iBAAwB,CAAC,GACzB,UAAkB,GAClB;AACA,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AACzC,OAAG,EACA,KAAK,OAAO,EACZ,MAAM,CAAC,MAAM;AACZ,UACE,eAAe,QAAQ,EAAE,WAAW,MAAM,MAC1C,YAAY,YACZ;AACA,mBAAW,MAAM;AACf,gBAAS,IAAI,YAAY,gBAAgB,OAAO,EAC9C,KAAK,OAAO,EACZ,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC;AAAA,QAC5B,GAAG,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,IAAI,GAAG,OAAO,IAAI,GAAG,CAAC;AAAA,MAE3D,OAAO;AACL,eAAO,CAAC;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACL,CAAC;AACH;AAEO,SAAS,UAAU,KAAY,OAAwB;AAG5D,MAAI,UAAU,MAAM,SAAS,IAAI,QAAQ;AACvC,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,IAAI,SAAS;AACzB,WAAS,IAAI,OAAO,IAAI,KAAK,KAAK;AAChC,QAAI,KAAK,IAAI,IAAI;AAAA,EACnB;AAEA,MAAI,SAAS;AACb,SAAO;AACT;AAEO,MAAM,SAAiB;AAAA,EAM5B,cAAc;AACZ,SAAK,UAAU,IAAI,QAAW,CAAC,SAAS,WAAW;AACjD,WAAK,UAAU;AACf,WAAK,SAAS;AAAA,IAChB,CAAC;AAAA,EACH;AAAA,EAEO,KAAK,MAAyB;AACnC,WAAO,KAAK,QAAQ,KAAK,MAAM,KAAK,SAAS,SAAS;AAAA,EACxD;AAAA,EAEO,MAAM,MAA2B;AACtC,WAAO,KAAK,QAAQ,MAAM,IAAI;AAAA,EAChC;AAEF;AAEO,SAAS,MAAM,MAAW,MAAkB;AACjD,WAAS,IAAI,GAAG,MAAM,KAAK,QAAQ,IAAI,KAAK,KAAK;AAC/C,UAAM,IAAI,KAAK;AACf,eAAW,OAAO,GAAG;AACnB,UAAI,EAAE,eAAe,GAAG,GAAG;AACzB,UAAE,OAAO,EAAE;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AASO,MAAM,oBAAoB,2BAAa;AAAC;AAAA,IAI/C,8BAAa;AAAA,EACX,OAAO;AAAA,EACP,MAAM;AAAA,EAEN,KAAK,OAAiB;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAoB;AACxB,WAAO,SAAS,OAAO;AAAA,EACzB;AACF,CAAC;",
6
6
  "names": ["nanoid"]
7
7
  }
@@ -40,9 +40,6 @@ function spliceOne(arr, index) {
40
40
  return true;
41
41
  }
42
42
  class Deferred {
43
- promise;
44
- resolve;
45
- reject;
46
43
  constructor() {
47
44
  this.promise = new Promise((resolve, reject) => {
48
45
  this.resolve = resolve;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/Utils.ts"],
4
4
  "sourcesContent": ["import nanoid from 'nanoid';\nimport { addExtension } from 'msgpackr';\n\nimport { debugAndPrintError } from '../Debug';\nimport { EventEmitter } from \"events\";\nimport { ServerOpts, Socket } from \"net\";\nimport { logger } from '../Logger';\nimport { Schema } from \"@colyseus/schema\";\n\n// remote room call timeouts\nexport const REMOTE_ROOM_SHORT_TIMEOUT = Number(process.env.COLYSEUS_PRESENCE_SHORT_TIMEOUT || 500);\n\nexport function generateId(length: number = 9) {\n return nanoid(length);\n}\n\n//\n// nodemon sends SIGUSR2 before reloading\n// (https://github.com/remy/nodemon#controlling-shutdown-of-your-script)\n//\nconst signals: NodeJS.Signals[] = ['SIGINT', 'SIGTERM', 'SIGUSR2'];\n\nexport function registerGracefulShutdown(callback: (err?: Error) => void) {\n /**\n * Gracefully shutdown on uncaught errors\n */\n process.on('uncaughtException', (err) => {\n debugAndPrintError(err);\n callback(err);\n });\n\n signals.forEach((signal) =>\n process.once(signal, () => callback()));\n}\n\nexport function retry<T = any>(\n cb: Function,\n maxRetries: number = 3,\n errorWhiteList: any[] = [],\n retries: number = 0,\n) {\n return new Promise<T>((resolve, reject) => {\n cb()\n .then(resolve)\n .catch((e) => {\n if (\n errorWhiteList.indexOf(e.constructor) !== -1 &&\n retries++ < maxRetries\n ) {\n setTimeout(() => {\n retry<T>(cb, maxRetries, errorWhiteList, retries).\n then(resolve).\n catch((e2) => reject(e2));\n }, Math.floor(Math.random() * Math.pow(2, retries) * 400));\n\n } else {\n reject(e);\n }\n });\n });\n}\n\nexport function spliceOne(arr: any[], index: number): boolean {\n // manually splice availableRooms array\n // http://jsperf.com/manual-splice\n if (index === -1 || index >= arr.length) {\n return false;\n }\n\n const len = arr.length - 1;\n for (let i = index; i < len; i++) {\n arr[i] = arr[i + 1];\n }\n\n arr.length = len;\n return true;\n}\n\nexport class Deferred<T= any> {\n public promise: Promise<T>;\n\n public resolve: Function;\n public reject: Function;\n\n constructor() {\n this.promise = new Promise<T>((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n\n public then(func: (value: T) => any) {\n return this.promise.then.apply(this.promise, arguments);\n }\n\n public catch(func: (value: any) => any) {\n return this.promise.catch(func);\n }\n\n}\n\nexport function merge(a: any, ...objs: any[]): any {\n for (let i = 0, len = objs.length; i < len; i++) {\n const b = objs[i];\n for (const key in b) {\n if (b.hasOwnProperty(key)) {\n a[key] = b[key];\n }\n }\n }\n return a;\n}\n\nexport declare interface DummyServer {\n constructor(options?: ServerOpts, connectionListener?: (socket: Socket) => void);\n\n listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this;\n close(callback?: (err?: Error) => void): this;\n}\n\nexport class DummyServer extends EventEmitter {}\n\n// Add msgpackr extension to avoid circular references when encoding\n// https://github.com/kriszyp/msgpackr#custom-extensions\naddExtension({\n Class: Schema,\n type: 0,\n\n read(datum: any): any {\n return datum;\n },\n\n write(instance: any): any {\n return instance.toJSON();\n }\n});\n"],
5
- "mappings": "AAAA,OAAO,YAAY;AACnB,SAAS,oBAAoB;AAE7B,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AAG7B,SAAS,cAAc;AAGhB,MAAM,4BAA4B,OAAO,QAAQ,IAAI,mCAAmC,GAAG;AAE3F,SAAS,WAAW,SAAiB,GAAG;AAC7C,SAAO,OAAO,MAAM;AACtB;AAMA,MAAM,UAA4B,CAAC,UAAU,WAAW,SAAS;AAE1D,SAAS,yBAAyB,UAAiC;AAIxE,UAAQ,GAAG,qBAAqB,CAAC,QAAQ;AACvC,uBAAmB,GAAG;AACtB,aAAS,GAAG;AAAA,EACd,CAAC;AAED,UAAQ,QAAQ,CAAC,WACf,QAAQ,KAAK,QAAQ,MAAM,SAAS,CAAC,CAAC;AAC1C;AAEO,SAAS,MACd,IACA,aAAqB,GACrB,iBAAwB,CAAC,GACzB,UAAkB,GAClB;AACA,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AACzC,OAAG,EACA,KAAK,OAAO,EACZ,MAAM,CAAC,MAAM;AACZ,UACE,eAAe,QAAQ,EAAE,WAAW,MAAM,MAC1C,YAAY,YACZ;AACA,mBAAW,MAAM;AACf,gBAAS,IAAI,YAAY,gBAAgB,OAAO,EAC9C,KAAK,OAAO,EACZ,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC;AAAA,QAC5B,GAAG,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,IAAI,GAAG,OAAO,IAAI,GAAG,CAAC;AAAA,MAE3D,OAAO;AACL,eAAO,CAAC;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACL,CAAC;AACH;AAEO,SAAS,UAAU,KAAY,OAAwB;AAG5D,MAAI,UAAU,MAAM,SAAS,IAAI,QAAQ;AACvC,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,IAAI,SAAS;AACzB,WAAS,IAAI,OAAO,IAAI,KAAK,KAAK;AAChC,QAAI,KAAK,IAAI,IAAI;AAAA,EACnB;AAEA,MAAI,SAAS;AACb,SAAO;AACT;AAEO,MAAM,SAAiB;AAAA,EACrB;AAAA,EAEA;AAAA,EACA;AAAA,EAEP,cAAc;AACZ,SAAK,UAAU,IAAI,QAAW,CAAC,SAAS,WAAW;AACjD,WAAK,UAAU;AACf,WAAK,SAAS;AAAA,IAChB,CAAC;AAAA,EACH;AAAA,EAEO,KAAK,MAAyB;AACnC,WAAO,KAAK,QAAQ,KAAK,MAAM,KAAK,SAAS,SAAS;AAAA,EACxD;AAAA,EAEO,MAAM,MAA2B;AACtC,WAAO,KAAK,QAAQ,MAAM,IAAI;AAAA,EAChC;AAEF;AAEO,SAAS,MAAM,MAAW,MAAkB;AACjD,WAAS,IAAI,GAAG,MAAM,KAAK,QAAQ,IAAI,KAAK,KAAK;AAC/C,UAAM,IAAI,KAAK;AACf,eAAW,OAAO,GAAG;AACnB,UAAI,EAAE,eAAe,GAAG,GAAG;AACzB,UAAE,OAAO,EAAE;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AASO,MAAM,oBAAoB,aAAa;AAAC;AAI/C,aAAa;AAAA,EACX,OAAO;AAAA,EACP,MAAM;AAAA,EAEN,KAAK,OAAiB;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAoB;AACxB,WAAO,SAAS,OAAO;AAAA,EACzB;AACF,CAAC;",
5
+ "mappings": "AAAA,OAAO,YAAY;AACnB,SAAS,oBAAoB;AAE7B,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AAG7B,SAAS,cAAc;AAGhB,MAAM,4BAA4B,OAAO,QAAQ,IAAI,mCAAmC,GAAG;AAE3F,SAAS,WAAW,SAAiB,GAAG;AAC7C,SAAO,OAAO,MAAM;AACtB;AAMA,MAAM,UAA4B,CAAC,UAAU,WAAW,SAAS;AAE1D,SAAS,yBAAyB,UAAiC;AAIxE,UAAQ,GAAG,qBAAqB,CAAC,QAAQ;AACvC,uBAAmB,GAAG;AACtB,aAAS,GAAG;AAAA,EACd,CAAC;AAED,UAAQ,QAAQ,CAAC,WACf,QAAQ,KAAK,QAAQ,MAAM,SAAS,CAAC,CAAC;AAC1C;AAEO,SAAS,MACd,IACA,aAAqB,GACrB,iBAAwB,CAAC,GACzB,UAAkB,GAClB;AACA,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AACzC,OAAG,EACA,KAAK,OAAO,EACZ,MAAM,CAAC,MAAM;AACZ,UACE,eAAe,QAAQ,EAAE,WAAW,MAAM,MAC1C,YAAY,YACZ;AACA,mBAAW,MAAM;AACf,gBAAS,IAAI,YAAY,gBAAgB,OAAO,EAC9C,KAAK,OAAO,EACZ,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC;AAAA,QAC5B,GAAG,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,IAAI,GAAG,OAAO,IAAI,GAAG,CAAC;AAAA,MAE3D,OAAO;AACL,eAAO,CAAC;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACL,CAAC;AACH;AAEO,SAAS,UAAU,KAAY,OAAwB;AAG5D,MAAI,UAAU,MAAM,SAAS,IAAI,QAAQ;AACvC,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,IAAI,SAAS;AACzB,WAAS,IAAI,OAAO,IAAI,KAAK,KAAK;AAChC,QAAI,KAAK,IAAI,IAAI;AAAA,EACnB;AAEA,MAAI,SAAS;AACb,SAAO;AACT;AAEO,MAAM,SAAiB;AAAA,EAM5B,cAAc;AACZ,SAAK,UAAU,IAAI,QAAW,CAAC,SAAS,WAAW;AACjD,WAAK,UAAU;AACf,WAAK,SAAS;AAAA,IAChB,CAAC;AAAA,EACH;AAAA,EAEO,KAAK,MAAyB;AACnC,WAAO,KAAK,QAAQ,KAAK,MAAM,KAAK,SAAS,SAAS;AAAA,EACxD;AAAA,EAEO,MAAM,MAA2B;AACtC,WAAO,KAAK,QAAQ,MAAM,IAAI;AAAA,EAChC;AAEF;AAEO,SAAS,MAAM,MAAW,MAAkB;AACjD,WAAS,IAAI,GAAG,MAAM,KAAK,QAAQ,IAAI,KAAK,KAAK;AAC/C,UAAM,IAAI,KAAK;AACf,eAAW,OAAO,GAAG;AACnB,UAAI,EAAE,eAAe,GAAG,GAAG;AACzB,UAAE,OAAO,EAAE;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AASO,MAAM,oBAAoB,aAAa;AAAC;AAI/C,aAAa;AAAA,EACX,OAAO;AAAA,EACP,MAAM;AAAA,EAEN,KAAK,OAAiB;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAoB;AACxB,WAAO,SAAS,OAAO;AAAA,EACzB;AACF,CAAC;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colyseus/core",
3
- "version": "0.15.7",
3
+ "version": "0.15.9",
4
4
  "description": "Multiplayer Framework for Node.js.",
5
5
  "input": "./src/index.ts",
6
6
  "main": "./build/index.js",
@@ -41,10 +41,11 @@
41
41
  "debug": "^4.3.4",
42
42
  "internal-ip": "^4.3.0",
43
43
  "msgpackr": "^1.9.1",
44
- "nanoid": "^2.0.0"
44
+ "nanoid": "^2.0.0",
45
+ "ws": "^7.4.5"
45
46
  },
46
47
  "publishConfig": {
47
48
  "access": "public"
48
49
  },
49
- "gitHead": "45e71fef81d12583a6e925982567aa4e7aca215f"
50
+ "gitHead": "cc5ced58c92f622468636ecfdb3ceb7e5039f874"
50
51
  }