@kohost/api-client 3.0.0-beta.8 → 3.0.0-beta.80

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 (265) hide show
  1. package/README.md +71 -0
  2. package/dist/cjs/AMQPClient/index.js +296 -0
  3. package/dist/cjs/{Client.js → Client/index.js} +1535 -586
  4. package/dist/cjs/Commands/CheckInReservationCommand.js +19 -0
  5. package/dist/cjs/Commands/Command.js +34 -0
  6. package/dist/cjs/Commands/CreateImageUploadEndpointCommand.js +17 -0
  7. package/dist/cjs/Commands/CreateShortLinkCommand.js +20 -0
  8. package/dist/cjs/Commands/DiscoverCategoriesCommand.js +20 -0
  9. package/dist/cjs/Commands/DiscoverReservationSpaceCategoryAvailabilitiesCommand.js +20 -0
  10. package/dist/cjs/Commands/DiscoverReservationsCommand.js +20 -0
  11. package/dist/cjs/Commands/DiscoverRoomsCommand.js +37 -0
  12. package/dist/cjs/Commands/DiscoverUsersCommand.js +19 -0
  13. package/dist/cjs/Commands/GetMobileKeyCommand.js +24 -0
  14. package/dist/cjs/Commands/GetProductsCommand.js +17 -0
  15. package/dist/cjs/Commands/OCRDocumentCommand.js +15 -0
  16. package/dist/cjs/Commands/SellProductsCommand.js +17 -0
  17. package/dist/cjs/Commands/SendEmailCommand.js +24 -0
  18. package/dist/cjs/Commands/SendSMSCommand.js +21 -0
  19. package/dist/cjs/Commands/SetAlarmCommand.js +17 -0
  20. package/dist/cjs/Commands/SetCourtesyCommand.js +17 -0
  21. package/dist/cjs/Commands/SetDimmerCommand.js +17 -0
  22. package/dist/cjs/Commands/SetLockCommand.js +17 -0
  23. package/dist/cjs/Commands/SetMediaCommand.js +17 -0
  24. package/dist/cjs/Commands/SetSceneCommand.js +17 -0
  25. package/dist/cjs/Commands/SetSwitchCommand.js +17 -0
  26. package/dist/cjs/Commands/SetThermostatCommand.js +17 -0
  27. package/dist/cjs/Commands/SetWindowCoveringCommand.js +17 -0
  28. package/dist/cjs/Commands/UpdateReservationCommand.js +19 -0
  29. package/dist/cjs/Commands/UpdateUserCommand.js +41 -0
  30. package/dist/cjs/Commands/UploadImageCommand.js +17 -0
  31. package/dist/cjs/Commands/index.js +55 -0
  32. package/dist/cjs/Errors/AppError.js +8 -0
  33. package/dist/cjs/Errors/AuthenticationError.js +9 -0
  34. package/dist/cjs/Errors/AuthorizationError.js +9 -0
  35. package/dist/cjs/Errors/ConflictError.js +9 -0
  36. package/dist/cjs/Errors/DeviceCommError.js +9 -0
  37. package/dist/cjs/Errors/LoginError.js +9 -0
  38. package/dist/cjs/Errors/NotFoundError.js +9 -0
  39. package/dist/cjs/Errors/RequestError.js +9 -0
  40. package/dist/cjs/Errors/SystemCommError.js +9 -0
  41. package/dist/cjs/Errors/TokenExpiredError.js +9 -0
  42. package/dist/cjs/Errors/UnprocessableRequestError.js +9 -0
  43. package/dist/cjs/Errors/ValidationError.js +9 -0
  44. package/dist/cjs/Errors/index.js +16 -0
  45. package/dist/cjs/Events/ApplicationInUseEvent.js +21 -0
  46. package/dist/cjs/Events/ApplicationOutOfUseEvent.js +21 -0
  47. package/dist/cjs/Events/EmailEvent.js +18 -0
  48. package/dist/cjs/Events/Event.js +55 -0
  49. package/dist/cjs/Events/SMSEvent.js +18 -0
  50. package/dist/cjs/Events/SMSSentEvent.js +17 -0
  51. package/dist/cjs/Events/SceneSetEvent.js +17 -0
  52. package/dist/cjs/Events/ShortLinkCreatedEvent.js +17 -0
  53. package/dist/cjs/Events/SystemAlarmUpdatedEvent.js +17 -0
  54. package/dist/cjs/Events/SystemCameraUpdatedEvent.js +17 -0
  55. package/dist/cjs/Events/SystemCategoryUpdatedEvent.js +17 -0
  56. package/dist/cjs/Events/SystemCourtesyUpdatedEvent.js +17 -0
  57. package/dist/cjs/Events/SystemCredentialUpdatedEvent.js +17 -0
  58. package/dist/cjs/Events/SystemDimmerUpdatedEvent.js +17 -0
  59. package/dist/cjs/Events/SystemEntityDeletedEvent.js +17 -0
  60. package/dist/cjs/Events/SystemGatewayUpdatedEvent.js +17 -0
  61. package/dist/cjs/Events/SystemLockUpdatedEvent.js +17 -0
  62. package/dist/cjs/Events/SystemMediaSourceUpdatedEvent.js +17 -0
  63. package/dist/cjs/Events/SystemMotionSensorUpdatedEvent.js +17 -0
  64. package/dist/cjs/Events/SystemOrganizationUpdatedEvent.js +17 -0
  65. package/dist/cjs/Events/SystemProductUpdatedEvent.js +17 -0
  66. package/dist/cjs/Events/SystemPropertyUpdatedEvent.js +17 -0
  67. package/dist/cjs/Events/SystemReservationUpdatedEvent.js +17 -0
  68. package/dist/cjs/Events/SystemSceneControllerUpdatedEvent.js +17 -0
  69. package/dist/cjs/Events/SystemSpaceUpdatedEvent.js +17 -0
  70. package/dist/cjs/Events/SystemSwitchUpdatedEvent.js +17 -0
  71. package/dist/cjs/Events/SystemThermostatUpdatedEvent.js +17 -0
  72. package/dist/cjs/Events/SystemUserUpdatedEvent.js +17 -0
  73. package/dist/cjs/Events/SystemWindowCoveringUpdatedEvent.js +17 -0
  74. package/dist/cjs/Events/index.js +65 -0
  75. package/dist/cjs/Models/Alarm.js +35 -0
  76. package/dist/cjs/Models/Camera.js +35 -0
  77. package/dist/cjs/Models/Category.js +36 -0
  78. package/dist/cjs/Models/Courtesy.js +39 -0
  79. package/dist/cjs/Models/Credential.js +35 -0
  80. package/dist/cjs/Models/Dimmer.js +61 -0
  81. package/dist/cjs/Models/DiscoveredDevice.js +36 -0
  82. package/dist/cjs/Models/EmailMessage.js +35 -0
  83. package/dist/cjs/Models/EnergyReport.js +35 -0
  84. package/dist/cjs/Models/EnergyReportShard.js +35 -0
  85. package/dist/cjs/Models/Gateway.js +35 -0
  86. package/dist/cjs/Models/Identification.js +38 -0
  87. package/dist/cjs/Models/Kohost.js +96 -0
  88. package/dist/cjs/Models/Lock.js +39 -0
  89. package/dist/cjs/Models/MediaFile.js +48 -0
  90. package/dist/cjs/Models/MediaSource.js +35 -0
  91. package/dist/cjs/Models/MotionSensor.js +35 -0
  92. package/dist/cjs/Models/Notification.js +34 -0
  93. package/dist/cjs/Models/Order.js +97 -0
  94. package/dist/cjs/Models/Organization.js +34 -0
  95. package/dist/cjs/Models/Product.js +35 -0
  96. package/dist/cjs/Models/Property.js +34 -0
  97. package/dist/cjs/Models/Reservation.js +114 -0
  98. package/dist/cjs/Models/Room.js +218 -0
  99. package/dist/cjs/Models/Scene.js +169 -0
  100. package/dist/cjs/Models/ShortLink.js +35 -0
  101. package/dist/cjs/Models/SmsMessage.js +35 -0
  102. package/dist/cjs/Models/Space.js +97 -0
  103. package/dist/cjs/Models/Switch.js +39 -0
  104. package/dist/cjs/Models/SystemUser.js +55 -0
  105. package/dist/cjs/Models/Thermostat.js +86 -0
  106. package/dist/cjs/Models/Ticket.js +112 -0
  107. package/dist/cjs/Models/User.js +115 -0
  108. package/dist/cjs/Models/WindowCovering.js +55 -0
  109. package/dist/cjs/Models/index.js +72 -0
  110. package/dist/cjs/SocketIoClient/index.js +74 -0
  111. package/dist/cjs/defs/deviceTypes.js +15 -0
  112. package/dist/cjs/defs/formalDeviceTypes.js +6 -0
  113. package/dist/cjs/defs/index.js +11 -0
  114. package/dist/cjs/{index.cjs.js → index.js} +7 -1
  115. package/dist/cjs/schemas/AlarmSchema.d.ts +152 -0
  116. package/dist/cjs/schemas/CameraSchema.d.ts +143 -0
  117. package/dist/cjs/schemas/CategorySchema.d.ts +82 -0
  118. package/dist/cjs/schemas/CourtesySchema.d.ts +142 -0
  119. package/dist/cjs/schemas/CredentialSchema.d.ts +52 -0
  120. package/dist/cjs/schemas/DefinitionsSchema.d.ts +10 -0
  121. package/dist/cjs/schemas/DimmerSchema.d.ts +142 -0
  122. package/dist/cjs/schemas/DiscoveredDeviceSchema.d.ts +39 -0
  123. package/dist/cjs/schemas/EmailMessageSchema.d.ts +49 -0
  124. package/dist/cjs/schemas/EnergyReportSchema.d.ts +57 -0
  125. package/dist/cjs/schemas/EnergyReportShardSchema.d.ts +61 -0
  126. package/dist/cjs/schemas/GatewaySchema.d.ts +139 -0
  127. package/dist/cjs/schemas/IdentificationSchema.d.ts +45 -0
  128. package/dist/cjs/schemas/LockSchema.d.ts +142 -0
  129. package/dist/cjs/schemas/MediaFileSchema.d.ts +43 -0
  130. package/dist/cjs/schemas/MediaSourceSchema.d.ts +238 -0
  131. package/dist/cjs/schemas/MotionSensorSchema.d.ts +137 -0
  132. package/dist/cjs/schemas/NotificationSchema.d.ts +54 -0
  133. package/dist/cjs/schemas/OrderSchema.d.ts +91 -0
  134. package/dist/cjs/schemas/OrganizationSchema.d.ts +34 -0
  135. package/dist/cjs/schemas/PaymentSchema.d.ts +33 -0
  136. package/dist/cjs/schemas/ProductSchema.d.ts +66 -0
  137. package/dist/cjs/schemas/PropertySchema.d.ts +144 -0
  138. package/dist/cjs/schemas/ReservationSchema.d.ts +118 -0
  139. package/dist/cjs/schemas/RoomSchema.d.ts +1076 -0
  140. package/dist/cjs/schemas/SceneSchema.d.ts +57 -0
  141. package/dist/cjs/schemas/ShortLinkSchema.d.ts +20 -0
  142. package/dist/cjs/schemas/SmsMessageSchema.d.ts +40 -0
  143. package/dist/cjs/schemas/SpaceSchema.d.ts +69 -0
  144. package/dist/cjs/schemas/SwitchSchema.d.ts +142 -0
  145. package/dist/cjs/schemas/SystemUserSchema.d.ts +193 -0
  146. package/dist/cjs/schemas/ThermostatSchema.d.ts +172 -0
  147. package/dist/cjs/schemas/TicketSchema.d.ts +88 -0
  148. package/dist/cjs/schemas/UserSchema.d.ts +286 -0
  149. package/dist/cjs/schemas/WindowCoveringSchema.d.ts +141 -0
  150. package/dist/cjs/schemas/alarm.json +81 -0
  151. package/dist/cjs/schemas/camera.json +50 -0
  152. package/dist/cjs/schemas/category.json +42 -0
  153. package/dist/cjs/schemas/courtesy.json +48 -0
  154. package/dist/cjs/schemas/credential.json +44 -0
  155. package/dist/cjs/schemas/definitions.json +218 -0
  156. package/dist/cjs/schemas/dimmer.json +45 -0
  157. package/dist/cjs/schemas/discoveredDevice.json +31 -0
  158. package/dist/cjs/schemas/emailMessage.json +71 -0
  159. package/dist/cjs/schemas/energyReport.json +86 -0
  160. package/dist/cjs/schemas/energyReportShard.json +75 -0
  161. package/dist/cjs/schemas/gateway.json +34 -0
  162. package/dist/cjs/schemas/identification.json +61 -0
  163. package/dist/cjs/schemas/lock.json +44 -0
  164. package/dist/cjs/schemas/mediaFile.json +70 -0
  165. package/dist/cjs/schemas/mediaSource.json +187 -0
  166. package/dist/cjs/schemas/motionSensor.json +32 -0
  167. package/dist/cjs/schemas/notification.json +29 -0
  168. package/dist/cjs/schemas/order.json +182 -0
  169. package/dist/cjs/schemas/organization.json +40 -0
  170. package/dist/cjs/schemas/payment.json +47 -0
  171. package/dist/cjs/schemas/product.json +41 -0
  172. package/dist/cjs/schemas/property.json +347 -0
  173. package/dist/cjs/schemas/reservation.json +137 -0
  174. package/dist/cjs/schemas/room.json +98 -0
  175. package/dist/cjs/schemas/scene.json +121 -0
  176. package/dist/cjs/schemas/shortLink.json +30 -0
  177. package/dist/cjs/schemas/smsMessage.json +61 -0
  178. package/dist/cjs/schemas/space.json +129 -0
  179. package/dist/cjs/schemas/switch.json +44 -0
  180. package/dist/cjs/schemas/systemUser.json +98 -0
  181. package/dist/cjs/schemas/thermostat.json +150 -0
  182. package/dist/cjs/schemas/ticket.json +141 -0
  183. package/dist/cjs/schemas/user.json +170 -0
  184. package/dist/cjs/schemas/windowCovering.json +42 -0
  185. package/dist/cjs/utils/errorFactory.js +8 -0
  186. package/dist/cjs/utils/eventFactory.js +10 -0
  187. package/dist/cjs/utils/getDeviceTypes.js +7 -0
  188. package/dist/cjs/utils/getFormalDeviceType.js +5 -0
  189. package/dist/cjs/utils/index.js +11 -0
  190. package/dist/cjs/utils/schema.js +25 -0
  191. package/dist/esm/Client.js +1632 -627
  192. package/dist/esm/Client.js.map +4 -4
  193. package/dist/esm/Commands.js +493 -116
  194. package/dist/esm/Commands.js.map +3 -3
  195. package/dist/esm/Errors.js +73 -22
  196. package/dist/esm/Errors.js.map +3 -3
  197. package/dist/esm/Events.js +414 -73
  198. package/dist/esm/Events.js.map +3 -3
  199. package/dist/esm/Models.js +3418 -1271
  200. package/dist/esm/Models.js.map +4 -4
  201. package/dist/esm/SocketIoClient.js +4846 -0
  202. package/dist/esm/SocketIoClient.js.map +7 -0
  203. package/dist/esm/defs.js +146 -101
  204. package/dist/esm/defs.js.map +4 -4
  205. package/dist/esm/index.js +17 -10
  206. package/dist/esm/utils.js +446 -73
  207. package/dist/esm/utils.js.map +3 -3
  208. package/dist/useCases/AdminUpdateCustomer.js +1 -1
  209. package/dist/useCases/AssignSpaceToReservation.js +32 -0
  210. package/dist/useCases/{AdminCreateProperty.js → BatchNotifyCheckIn.js} +2 -2
  211. package/dist/useCases/{AdminCreateCustomer.js → CreateCateory.js} +2 -2
  212. package/dist/useCases/CreateImageUploadEndpoint.js +32 -0
  213. package/dist/useCases/{DeleteIntegration.js → CreateMediaSource.js} +4 -4
  214. package/dist/useCases/{AdminListCustomers.js → CreateOrganization.js} +3 -3
  215. package/dist/useCases/{AdminLoginUser.js → CreateProperty.js} +2 -2
  216. package/dist/useCases/DeleteCategory.js +32 -0
  217. package/dist/useCases/DeleteMediaFile.js +32 -0
  218. package/dist/useCases/DeleteMediaSource.js +32 -0
  219. package/dist/useCases/{ListIntegrations.js → DescribeCategory.js} +3 -3
  220. package/dist/useCases/{DeleteSource.js → DescribeLockCredential.js} +3 -3
  221. package/dist/useCases/{AdminListAdminUsers.js → DescribeMediaSource.js} +3 -3
  222. package/dist/useCases/DescribeMyAccessCredentials.js +32 -0
  223. package/dist/useCases/{AdminCreateAdminUser.js → DescribeOrganization.js} +4 -4
  224. package/dist/useCases/{DescribeIntegration.js → DescribeProduct.js} +2 -2
  225. package/dist/useCases/{AdminDescribeCustomer.js → DescribeProperty.js} +2 -2
  226. package/dist/useCases/DescribeReservationEarlyCheckInProducts.js +32 -0
  227. package/dist/useCases/DescribeReservationLateCheckOutProducts.js +32 -0
  228. package/dist/useCases/{AdminDescribeProperty.js → DescribeReservationRoomUpgrades.js} +2 -2
  229. package/dist/useCases/ListCategories.js +32 -0
  230. package/dist/useCases/ListMediaSources.js +32 -0
  231. package/dist/useCases/{CreateSource.js → ListMyOrders.js} +4 -4
  232. package/dist/useCases/{AdminListProperties.js → ListMyTickets.js} +2 -2
  233. package/dist/useCases/ListOrders.js +32 -0
  234. package/dist/useCases/{AdminRefreshToken.js → ListOrganizations.js} +3 -3
  235. package/dist/useCases/ListProperties.js +32 -0
  236. package/dist/useCases/ListScenes.js +32 -0
  237. package/dist/useCases/ListTeam.js +32 -0
  238. package/dist/useCases/ListUserOrders.js +32 -0
  239. package/dist/useCases/ListUserSpaces.js +32 -0
  240. package/dist/useCases/LogoutUser.js +32 -0
  241. package/dist/useCases/PurchaseReservationEarlyCheckInProducts.js +32 -0
  242. package/dist/useCases/PurchaseReservationLateCheckOutProducts.js +32 -0
  243. package/dist/useCases/{CreateIntegrationDeviceMapEntry.js → PurchaseReservationRoomUpgrades.js} +2 -2
  244. package/dist/useCases/RequestLoginLink.js +1 -1
  245. package/dist/useCases/{CreateIntegration.js → RequestMyKeyToken.js} +2 -2
  246. package/dist/useCases/RequestPWAToken.js +32 -0
  247. package/dist/useCases/SendCheckInSMS.js +32 -0
  248. package/dist/useCases/{SetSource.js → SetDimmer.js} +2 -2
  249. package/dist/useCases/{DescribeSource.js → SetMediaSource.js} +3 -3
  250. package/dist/useCases/{UpdateSource.js → SetRoomScene.js} +3 -3
  251. package/dist/useCases/SetSpaceScene.js +32 -0
  252. package/dist/useCases/TipUser.js +32 -0
  253. package/dist/useCases/{AdminUpdateProperty.js → UpdateCategory.js} +2 -2
  254. package/dist/useCases/{UpdateIntegration.js → UpdateMediaSource.js} +3 -3
  255. package/dist/useCases/UpdateProperty.js +32 -0
  256. package/dist/useCases/UpdateReservationExpectedArrivalTime.js +32 -0
  257. package/dist/useCases/{ListSources.js → UploadImage.js} +4 -4
  258. package/package.json +36 -10
  259. package/dist/cjs/Commands.js +0 -616
  260. package/dist/cjs/Errors.js +0 -176
  261. package/dist/cjs/Events.js +0 -387
  262. package/dist/cjs/Models.js +0 -3612
  263. package/dist/cjs/defs.js +0 -178
  264. package/dist/cjs/utils.js +0 -250
  265. package/dist/useCases/AdminRequestLoginLink.js +0 -32
@@ -0,0 +1,4846 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
+ var __commonJS = (cb, mod) => function __require() {
5
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
6
+ };
7
+
8
+ // node_modules/engine.io-parser/build/cjs/commons.js
9
+ var require_commons = __commonJS({
10
+ "node_modules/engine.io-parser/build/cjs/commons.js"(exports) {
11
+ "use strict";
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ERROR_PACKET = exports.PACKET_TYPES_REVERSE = exports.PACKET_TYPES = void 0;
14
+ var PACKET_TYPES = /* @__PURE__ */ Object.create(null);
15
+ exports.PACKET_TYPES = PACKET_TYPES;
16
+ PACKET_TYPES["open"] = "0";
17
+ PACKET_TYPES["close"] = "1";
18
+ PACKET_TYPES["ping"] = "2";
19
+ PACKET_TYPES["pong"] = "3";
20
+ PACKET_TYPES["message"] = "4";
21
+ PACKET_TYPES["upgrade"] = "5";
22
+ PACKET_TYPES["noop"] = "6";
23
+ var PACKET_TYPES_REVERSE = /* @__PURE__ */ Object.create(null);
24
+ exports.PACKET_TYPES_REVERSE = PACKET_TYPES_REVERSE;
25
+ Object.keys(PACKET_TYPES).forEach((key) => {
26
+ PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;
27
+ });
28
+ var ERROR_PACKET = { type: "error", data: "parser error" };
29
+ exports.ERROR_PACKET = ERROR_PACKET;
30
+ }
31
+ });
32
+
33
+ // node_modules/engine.io-parser/build/cjs/encodePacket.browser.js
34
+ var require_encodePacket_browser = __commonJS({
35
+ "node_modules/engine.io-parser/build/cjs/encodePacket.browser.js"(exports) {
36
+ "use strict";
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.encodePacket = exports.encodePacketToBinary = void 0;
39
+ var commons_js_1 = require_commons();
40
+ var withNativeBlob = typeof Blob === "function" || typeof Blob !== "undefined" && Object.prototype.toString.call(Blob) === "[object BlobConstructor]";
41
+ var withNativeArrayBuffer = typeof ArrayBuffer === "function";
42
+ var isView = /* @__PURE__ */ __name((obj) => {
43
+ return typeof ArrayBuffer.isView === "function" ? ArrayBuffer.isView(obj) : obj && obj.buffer instanceof ArrayBuffer;
44
+ }, "isView");
45
+ var encodePacket = /* @__PURE__ */ __name(({ type, data }, supportsBinary, callback) => {
46
+ if (withNativeBlob && data instanceof Blob) {
47
+ if (supportsBinary) {
48
+ return callback(data);
49
+ } else {
50
+ return encodeBlobAsBase64(data, callback);
51
+ }
52
+ } else if (withNativeArrayBuffer && (data instanceof ArrayBuffer || isView(data))) {
53
+ if (supportsBinary) {
54
+ return callback(data);
55
+ } else {
56
+ return encodeBlobAsBase64(new Blob([data]), callback);
57
+ }
58
+ }
59
+ return callback(commons_js_1.PACKET_TYPES[type] + (data || ""));
60
+ }, "encodePacket");
61
+ exports.encodePacket = encodePacket;
62
+ var encodeBlobAsBase64 = /* @__PURE__ */ __name((data, callback) => {
63
+ const fileReader = new FileReader();
64
+ fileReader.onload = function() {
65
+ const content = fileReader.result.split(",")[1];
66
+ callback("b" + (content || ""));
67
+ };
68
+ return fileReader.readAsDataURL(data);
69
+ }, "encodeBlobAsBase64");
70
+ function toArray(data) {
71
+ if (data instanceof Uint8Array) {
72
+ return data;
73
+ } else if (data instanceof ArrayBuffer) {
74
+ return new Uint8Array(data);
75
+ } else {
76
+ return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
77
+ }
78
+ }
79
+ __name(toArray, "toArray");
80
+ var TEXT_ENCODER;
81
+ function encodePacketToBinary(packet, callback) {
82
+ if (withNativeBlob && packet.data instanceof Blob) {
83
+ return packet.data.arrayBuffer().then(toArray).then(callback);
84
+ } else if (withNativeArrayBuffer && (packet.data instanceof ArrayBuffer || isView(packet.data))) {
85
+ return callback(toArray(packet.data));
86
+ }
87
+ encodePacket(packet, false, (encoded) => {
88
+ if (!TEXT_ENCODER) {
89
+ TEXT_ENCODER = new TextEncoder();
90
+ }
91
+ callback(TEXT_ENCODER.encode(encoded));
92
+ });
93
+ }
94
+ __name(encodePacketToBinary, "encodePacketToBinary");
95
+ exports.encodePacketToBinary = encodePacketToBinary;
96
+ }
97
+ });
98
+
99
+ // node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js
100
+ var require_base64_arraybuffer = __commonJS({
101
+ "node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js"(exports) {
102
+ "use strict";
103
+ Object.defineProperty(exports, "__esModule", { value: true });
104
+ exports.decode = exports.encode = void 0;
105
+ var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
106
+ var lookup = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256);
107
+ for (let i = 0; i < chars.length; i++) {
108
+ lookup[chars.charCodeAt(i)] = i;
109
+ }
110
+ var encode = /* @__PURE__ */ __name((arraybuffer) => {
111
+ let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = "";
112
+ for (i = 0; i < len; i += 3) {
113
+ base64 += chars[bytes[i] >> 2];
114
+ base64 += chars[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];
115
+ base64 += chars[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];
116
+ base64 += chars[bytes[i + 2] & 63];
117
+ }
118
+ if (len % 3 === 2) {
119
+ base64 = base64.substring(0, base64.length - 1) + "=";
120
+ } else if (len % 3 === 1) {
121
+ base64 = base64.substring(0, base64.length - 2) + "==";
122
+ }
123
+ return base64;
124
+ }, "encode");
125
+ exports.encode = encode;
126
+ var decode = /* @__PURE__ */ __name((base64) => {
127
+ let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
128
+ if (base64[base64.length - 1] === "=") {
129
+ bufferLength--;
130
+ if (base64[base64.length - 2] === "=") {
131
+ bufferLength--;
132
+ }
133
+ }
134
+ const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
135
+ for (i = 0; i < len; i += 4) {
136
+ encoded1 = lookup[base64.charCodeAt(i)];
137
+ encoded2 = lookup[base64.charCodeAt(i + 1)];
138
+ encoded3 = lookup[base64.charCodeAt(i + 2)];
139
+ encoded4 = lookup[base64.charCodeAt(i + 3)];
140
+ bytes[p++] = encoded1 << 2 | encoded2 >> 4;
141
+ bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;
142
+ bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;
143
+ }
144
+ return arraybuffer;
145
+ }, "decode");
146
+ exports.decode = decode;
147
+ }
148
+ });
149
+
150
+ // node_modules/engine.io-parser/build/cjs/decodePacket.browser.js
151
+ var require_decodePacket_browser = __commonJS({
152
+ "node_modules/engine.io-parser/build/cjs/decodePacket.browser.js"(exports) {
153
+ "use strict";
154
+ Object.defineProperty(exports, "__esModule", { value: true });
155
+ exports.decodePacket = void 0;
156
+ var commons_js_1 = require_commons();
157
+ var base64_arraybuffer_js_1 = require_base64_arraybuffer();
158
+ var withNativeArrayBuffer = typeof ArrayBuffer === "function";
159
+ var decodePacket = /* @__PURE__ */ __name((encodedPacket, binaryType) => {
160
+ if (typeof encodedPacket !== "string") {
161
+ return {
162
+ type: "message",
163
+ data: mapBinary(encodedPacket, binaryType)
164
+ };
165
+ }
166
+ const type = encodedPacket.charAt(0);
167
+ if (type === "b") {
168
+ return {
169
+ type: "message",
170
+ data: decodeBase64Packet(encodedPacket.substring(1), binaryType)
171
+ };
172
+ }
173
+ const packetType = commons_js_1.PACKET_TYPES_REVERSE[type];
174
+ if (!packetType) {
175
+ return commons_js_1.ERROR_PACKET;
176
+ }
177
+ return encodedPacket.length > 1 ? {
178
+ type: commons_js_1.PACKET_TYPES_REVERSE[type],
179
+ data: encodedPacket.substring(1)
180
+ } : {
181
+ type: commons_js_1.PACKET_TYPES_REVERSE[type]
182
+ };
183
+ }, "decodePacket");
184
+ exports.decodePacket = decodePacket;
185
+ var decodeBase64Packet = /* @__PURE__ */ __name((data, binaryType) => {
186
+ if (withNativeArrayBuffer) {
187
+ const decoded = (0, base64_arraybuffer_js_1.decode)(data);
188
+ return mapBinary(decoded, binaryType);
189
+ } else {
190
+ return { base64: true, data };
191
+ }
192
+ }, "decodeBase64Packet");
193
+ var mapBinary = /* @__PURE__ */ __name((data, binaryType) => {
194
+ switch (binaryType) {
195
+ case "blob":
196
+ if (data instanceof Blob) {
197
+ return data;
198
+ } else {
199
+ return new Blob([data]);
200
+ }
201
+ case "arraybuffer":
202
+ default:
203
+ if (data instanceof ArrayBuffer) {
204
+ return data;
205
+ } else {
206
+ return data.buffer;
207
+ }
208
+ }
209
+ }, "mapBinary");
210
+ }
211
+ });
212
+
213
+ // node_modules/engine.io-parser/build/cjs/index.js
214
+ var require_cjs = __commonJS({
215
+ "node_modules/engine.io-parser/build/cjs/index.js"(exports) {
216
+ "use strict";
217
+ Object.defineProperty(exports, "__esModule", { value: true });
218
+ exports.decodePayload = exports.decodePacket = exports.encodePayload = exports.encodePacket = exports.protocol = exports.createPacketDecoderStream = exports.createPacketEncoderStream = void 0;
219
+ var encodePacket_js_1 = require_encodePacket_browser();
220
+ Object.defineProperty(exports, "encodePacket", { enumerable: true, get: function() {
221
+ return encodePacket_js_1.encodePacket;
222
+ } });
223
+ var decodePacket_js_1 = require_decodePacket_browser();
224
+ Object.defineProperty(exports, "decodePacket", { enumerable: true, get: function() {
225
+ return decodePacket_js_1.decodePacket;
226
+ } });
227
+ var commons_js_1 = require_commons();
228
+ var SEPARATOR = String.fromCharCode(30);
229
+ var encodePayload = /* @__PURE__ */ __name((packets, callback) => {
230
+ const length = packets.length;
231
+ const encodedPackets = new Array(length);
232
+ let count = 0;
233
+ packets.forEach((packet, i) => {
234
+ (0, encodePacket_js_1.encodePacket)(packet, false, (encodedPacket) => {
235
+ encodedPackets[i] = encodedPacket;
236
+ if (++count === length) {
237
+ callback(encodedPackets.join(SEPARATOR));
238
+ }
239
+ });
240
+ });
241
+ }, "encodePayload");
242
+ exports.encodePayload = encodePayload;
243
+ var decodePayload = /* @__PURE__ */ __name((encodedPayload, binaryType) => {
244
+ const encodedPackets = encodedPayload.split(SEPARATOR);
245
+ const packets = [];
246
+ for (let i = 0; i < encodedPackets.length; i++) {
247
+ const decodedPacket = (0, decodePacket_js_1.decodePacket)(encodedPackets[i], binaryType);
248
+ packets.push(decodedPacket);
249
+ if (decodedPacket.type === "error") {
250
+ break;
251
+ }
252
+ }
253
+ return packets;
254
+ }, "decodePayload");
255
+ exports.decodePayload = decodePayload;
256
+ function createPacketEncoderStream() {
257
+ return new TransformStream({
258
+ transform(packet, controller) {
259
+ (0, encodePacket_js_1.encodePacketToBinary)(packet, (encodedPacket) => {
260
+ const payloadLength = encodedPacket.length;
261
+ let header;
262
+ if (payloadLength < 126) {
263
+ header = new Uint8Array(1);
264
+ new DataView(header.buffer).setUint8(0, payloadLength);
265
+ } else if (payloadLength < 65536) {
266
+ header = new Uint8Array(3);
267
+ const view = new DataView(header.buffer);
268
+ view.setUint8(0, 126);
269
+ view.setUint16(1, payloadLength);
270
+ } else {
271
+ header = new Uint8Array(9);
272
+ const view = new DataView(header.buffer);
273
+ view.setUint8(0, 127);
274
+ view.setBigUint64(1, BigInt(payloadLength));
275
+ }
276
+ if (packet.data && typeof packet.data !== "string") {
277
+ header[0] |= 128;
278
+ }
279
+ controller.enqueue(header);
280
+ controller.enqueue(encodedPacket);
281
+ });
282
+ }
283
+ });
284
+ }
285
+ __name(createPacketEncoderStream, "createPacketEncoderStream");
286
+ exports.createPacketEncoderStream = createPacketEncoderStream;
287
+ var TEXT_DECODER;
288
+ function totalLength(chunks) {
289
+ return chunks.reduce((acc, chunk) => acc + chunk.length, 0);
290
+ }
291
+ __name(totalLength, "totalLength");
292
+ function concatChunks(chunks, size) {
293
+ if (chunks[0].length === size) {
294
+ return chunks.shift();
295
+ }
296
+ const buffer = new Uint8Array(size);
297
+ let j = 0;
298
+ for (let i = 0; i < size; i++) {
299
+ buffer[i] = chunks[0][j++];
300
+ if (j === chunks[0].length) {
301
+ chunks.shift();
302
+ j = 0;
303
+ }
304
+ }
305
+ if (chunks.length && j < chunks[0].length) {
306
+ chunks[0] = chunks[0].slice(j);
307
+ }
308
+ return buffer;
309
+ }
310
+ __name(concatChunks, "concatChunks");
311
+ function createPacketDecoderStream(maxPayload, binaryType) {
312
+ if (!TEXT_DECODER) {
313
+ TEXT_DECODER = new TextDecoder();
314
+ }
315
+ const chunks = [];
316
+ let state = 0;
317
+ let expectedLength = -1;
318
+ let isBinary = false;
319
+ return new TransformStream({
320
+ transform(chunk, controller) {
321
+ chunks.push(chunk);
322
+ while (true) {
323
+ if (state === 0) {
324
+ if (totalLength(chunks) < 1) {
325
+ break;
326
+ }
327
+ const header = concatChunks(chunks, 1);
328
+ isBinary = (header[0] & 128) === 128;
329
+ expectedLength = header[0] & 127;
330
+ if (expectedLength < 126) {
331
+ state = 3;
332
+ } else if (expectedLength === 126) {
333
+ state = 1;
334
+ } else {
335
+ state = 2;
336
+ }
337
+ } else if (state === 1) {
338
+ if (totalLength(chunks) < 2) {
339
+ break;
340
+ }
341
+ const headerArray = concatChunks(chunks, 2);
342
+ expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);
343
+ state = 3;
344
+ } else if (state === 2) {
345
+ if (totalLength(chunks) < 8) {
346
+ break;
347
+ }
348
+ const headerArray = concatChunks(chunks, 8);
349
+ const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);
350
+ const n = view.getUint32(0);
351
+ if (n > Math.pow(2, 53 - 32) - 1) {
352
+ controller.enqueue(commons_js_1.ERROR_PACKET);
353
+ break;
354
+ }
355
+ expectedLength = n * Math.pow(2, 32) + view.getUint32(4);
356
+ state = 3;
357
+ } else {
358
+ if (totalLength(chunks) < expectedLength) {
359
+ break;
360
+ }
361
+ const data = concatChunks(chunks, expectedLength);
362
+ controller.enqueue((0, decodePacket_js_1.decodePacket)(isBinary ? data : TEXT_DECODER.decode(data), binaryType));
363
+ state = 0;
364
+ }
365
+ if (expectedLength === 0 || expectedLength > maxPayload) {
366
+ controller.enqueue(commons_js_1.ERROR_PACKET);
367
+ break;
368
+ }
369
+ }
370
+ }
371
+ });
372
+ }
373
+ __name(createPacketDecoderStream, "createPacketDecoderStream");
374
+ exports.createPacketDecoderStream = createPacketDecoderStream;
375
+ exports.protocol = 4;
376
+ }
377
+ });
378
+
379
+ // node_modules/@socket.io/component-emitter/index.js
380
+ var require_component_emitter = __commonJS({
381
+ "node_modules/@socket.io/component-emitter/index.js"(exports) {
382
+ exports.Emitter = Emitter;
383
+ function Emitter(obj) {
384
+ if (obj)
385
+ return mixin(obj);
386
+ }
387
+ __name(Emitter, "Emitter");
388
+ function mixin(obj) {
389
+ for (var key in Emitter.prototype) {
390
+ obj[key] = Emitter.prototype[key];
391
+ }
392
+ return obj;
393
+ }
394
+ __name(mixin, "mixin");
395
+ Emitter.prototype.on = Emitter.prototype.addEventListener = function(event, fn) {
396
+ this._callbacks = this._callbacks || {};
397
+ (this._callbacks["$" + event] = this._callbacks["$" + event] || []).push(fn);
398
+ return this;
399
+ };
400
+ Emitter.prototype.once = function(event, fn) {
401
+ function on() {
402
+ this.off(event, on);
403
+ fn.apply(this, arguments);
404
+ }
405
+ __name(on, "on");
406
+ on.fn = fn;
407
+ this.on(event, on);
408
+ return this;
409
+ };
410
+ Emitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function(event, fn) {
411
+ this._callbacks = this._callbacks || {};
412
+ if (0 == arguments.length) {
413
+ this._callbacks = {};
414
+ return this;
415
+ }
416
+ var callbacks = this._callbacks["$" + event];
417
+ if (!callbacks)
418
+ return this;
419
+ if (1 == arguments.length) {
420
+ delete this._callbacks["$" + event];
421
+ return this;
422
+ }
423
+ var cb;
424
+ for (var i = 0; i < callbacks.length; i++) {
425
+ cb = callbacks[i];
426
+ if (cb === fn || cb.fn === fn) {
427
+ callbacks.splice(i, 1);
428
+ break;
429
+ }
430
+ }
431
+ if (callbacks.length === 0) {
432
+ delete this._callbacks["$" + event];
433
+ }
434
+ return this;
435
+ };
436
+ Emitter.prototype.emit = function(event) {
437
+ this._callbacks = this._callbacks || {};
438
+ var args = new Array(arguments.length - 1), callbacks = this._callbacks["$" + event];
439
+ for (var i = 1; i < arguments.length; i++) {
440
+ args[i - 1] = arguments[i];
441
+ }
442
+ if (callbacks) {
443
+ callbacks = callbacks.slice(0);
444
+ for (var i = 0, len = callbacks.length; i < len; ++i) {
445
+ callbacks[i].apply(this, args);
446
+ }
447
+ }
448
+ return this;
449
+ };
450
+ Emitter.prototype.emitReserved = Emitter.prototype.emit;
451
+ Emitter.prototype.listeners = function(event) {
452
+ this._callbacks = this._callbacks || {};
453
+ return this._callbacks["$" + event] || [];
454
+ };
455
+ Emitter.prototype.hasListeners = function(event) {
456
+ return !!this.listeners(event).length;
457
+ };
458
+ }
459
+ });
460
+
461
+ // node_modules/engine.io-client/build/cjs/globalThis.browser.js
462
+ var require_globalThis_browser = __commonJS({
463
+ "node_modules/engine.io-client/build/cjs/globalThis.browser.js"(exports) {
464
+ "use strict";
465
+ Object.defineProperty(exports, "__esModule", { value: true });
466
+ exports.globalThisShim = void 0;
467
+ exports.globalThisShim = (() => {
468
+ if (typeof self !== "undefined") {
469
+ return self;
470
+ } else if (typeof window !== "undefined") {
471
+ return window;
472
+ } else {
473
+ return Function("return this")();
474
+ }
475
+ })();
476
+ }
477
+ });
478
+
479
+ // node_modules/engine.io-client/build/cjs/util.js
480
+ var require_util = __commonJS({
481
+ "node_modules/engine.io-client/build/cjs/util.js"(exports) {
482
+ "use strict";
483
+ Object.defineProperty(exports, "__esModule", { value: true });
484
+ exports.byteLength = exports.installTimerFunctions = exports.pick = void 0;
485
+ var globalThis_js_1 = require_globalThis_browser();
486
+ function pick(obj, ...attr) {
487
+ return attr.reduce((acc, k) => {
488
+ if (obj.hasOwnProperty(k)) {
489
+ acc[k] = obj[k];
490
+ }
491
+ return acc;
492
+ }, {});
493
+ }
494
+ __name(pick, "pick");
495
+ exports.pick = pick;
496
+ var NATIVE_SET_TIMEOUT = globalThis_js_1.globalThisShim.setTimeout;
497
+ var NATIVE_CLEAR_TIMEOUT = globalThis_js_1.globalThisShim.clearTimeout;
498
+ function installTimerFunctions(obj, opts) {
499
+ if (opts.useNativeTimers) {
500
+ obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis_js_1.globalThisShim);
501
+ obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis_js_1.globalThisShim);
502
+ } else {
503
+ obj.setTimeoutFn = globalThis_js_1.globalThisShim.setTimeout.bind(globalThis_js_1.globalThisShim);
504
+ obj.clearTimeoutFn = globalThis_js_1.globalThisShim.clearTimeout.bind(globalThis_js_1.globalThisShim);
505
+ }
506
+ }
507
+ __name(installTimerFunctions, "installTimerFunctions");
508
+ exports.installTimerFunctions = installTimerFunctions;
509
+ var BASE64_OVERHEAD = 1.33;
510
+ function byteLength(obj) {
511
+ if (typeof obj === "string") {
512
+ return utf8Length(obj);
513
+ }
514
+ return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);
515
+ }
516
+ __name(byteLength, "byteLength");
517
+ exports.byteLength = byteLength;
518
+ function utf8Length(str) {
519
+ let c = 0, length = 0;
520
+ for (let i = 0, l = str.length; i < l; i++) {
521
+ c = str.charCodeAt(i);
522
+ if (c < 128) {
523
+ length += 1;
524
+ } else if (c < 2048) {
525
+ length += 2;
526
+ } else if (c < 55296 || c >= 57344) {
527
+ length += 3;
528
+ } else {
529
+ i++;
530
+ length += 4;
531
+ }
532
+ }
533
+ return length;
534
+ }
535
+ __name(utf8Length, "utf8Length");
536
+ }
537
+ });
538
+
539
+ // node_modules/ms/index.js
540
+ var require_ms = __commonJS({
541
+ "node_modules/ms/index.js"(exports, module) {
542
+ var s = 1e3;
543
+ var m = s * 60;
544
+ var h = m * 60;
545
+ var d = h * 24;
546
+ var w = d * 7;
547
+ var y = d * 365.25;
548
+ module.exports = function(val, options) {
549
+ options = options || {};
550
+ var type = typeof val;
551
+ if (type === "string" && val.length > 0) {
552
+ return parse(val);
553
+ } else if (type === "number" && isFinite(val)) {
554
+ return options.long ? fmtLong(val) : fmtShort(val);
555
+ }
556
+ throw new Error(
557
+ "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
558
+ );
559
+ };
560
+ function parse(str) {
561
+ str = String(str);
562
+ if (str.length > 100) {
563
+ return;
564
+ }
565
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
566
+ str
567
+ );
568
+ if (!match) {
569
+ return;
570
+ }
571
+ var n = parseFloat(match[1]);
572
+ var type = (match[2] || "ms").toLowerCase();
573
+ switch (type) {
574
+ case "years":
575
+ case "year":
576
+ case "yrs":
577
+ case "yr":
578
+ case "y":
579
+ return n * y;
580
+ case "weeks":
581
+ case "week":
582
+ case "w":
583
+ return n * w;
584
+ case "days":
585
+ case "day":
586
+ case "d":
587
+ return n * d;
588
+ case "hours":
589
+ case "hour":
590
+ case "hrs":
591
+ case "hr":
592
+ case "h":
593
+ return n * h;
594
+ case "minutes":
595
+ case "minute":
596
+ case "mins":
597
+ case "min":
598
+ case "m":
599
+ return n * m;
600
+ case "seconds":
601
+ case "second":
602
+ case "secs":
603
+ case "sec":
604
+ case "s":
605
+ return n * s;
606
+ case "milliseconds":
607
+ case "millisecond":
608
+ case "msecs":
609
+ case "msec":
610
+ case "ms":
611
+ return n;
612
+ default:
613
+ return void 0;
614
+ }
615
+ }
616
+ __name(parse, "parse");
617
+ function fmtShort(ms) {
618
+ var msAbs = Math.abs(ms);
619
+ if (msAbs >= d) {
620
+ return Math.round(ms / d) + "d";
621
+ }
622
+ if (msAbs >= h) {
623
+ return Math.round(ms / h) + "h";
624
+ }
625
+ if (msAbs >= m) {
626
+ return Math.round(ms / m) + "m";
627
+ }
628
+ if (msAbs >= s) {
629
+ return Math.round(ms / s) + "s";
630
+ }
631
+ return ms + "ms";
632
+ }
633
+ __name(fmtShort, "fmtShort");
634
+ function fmtLong(ms) {
635
+ var msAbs = Math.abs(ms);
636
+ if (msAbs >= d) {
637
+ return plural(ms, msAbs, d, "day");
638
+ }
639
+ if (msAbs >= h) {
640
+ return plural(ms, msAbs, h, "hour");
641
+ }
642
+ if (msAbs >= m) {
643
+ return plural(ms, msAbs, m, "minute");
644
+ }
645
+ if (msAbs >= s) {
646
+ return plural(ms, msAbs, s, "second");
647
+ }
648
+ return ms + " ms";
649
+ }
650
+ __name(fmtLong, "fmtLong");
651
+ function plural(ms, msAbs, n, name) {
652
+ var isPlural = msAbs >= n * 1.5;
653
+ return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
654
+ }
655
+ __name(plural, "plural");
656
+ }
657
+ });
658
+
659
+ // node_modules/debug/src/common.js
660
+ var require_common = __commonJS({
661
+ "node_modules/debug/src/common.js"(exports, module) {
662
+ function setup(env) {
663
+ createDebug.debug = createDebug;
664
+ createDebug.default = createDebug;
665
+ createDebug.coerce = coerce;
666
+ createDebug.disable = disable;
667
+ createDebug.enable = enable;
668
+ createDebug.enabled = enabled;
669
+ createDebug.humanize = require_ms();
670
+ createDebug.destroy = destroy;
671
+ Object.keys(env).forEach((key) => {
672
+ createDebug[key] = env[key];
673
+ });
674
+ createDebug.names = [];
675
+ createDebug.skips = [];
676
+ createDebug.formatters = {};
677
+ function selectColor(namespace) {
678
+ let hash = 0;
679
+ for (let i = 0; i < namespace.length; i++) {
680
+ hash = (hash << 5) - hash + namespace.charCodeAt(i);
681
+ hash |= 0;
682
+ }
683
+ return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
684
+ }
685
+ __name(selectColor, "selectColor");
686
+ createDebug.selectColor = selectColor;
687
+ function createDebug(namespace) {
688
+ let prevTime;
689
+ let enableOverride = null;
690
+ let namespacesCache;
691
+ let enabledCache;
692
+ function debug(...args) {
693
+ if (!debug.enabled) {
694
+ return;
695
+ }
696
+ const self2 = debug;
697
+ const curr = Number(/* @__PURE__ */ new Date());
698
+ const ms = curr - (prevTime || curr);
699
+ self2.diff = ms;
700
+ self2.prev = prevTime;
701
+ self2.curr = curr;
702
+ prevTime = curr;
703
+ args[0] = createDebug.coerce(args[0]);
704
+ if (typeof args[0] !== "string") {
705
+ args.unshift("%O");
706
+ }
707
+ let index = 0;
708
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
709
+ if (match === "%%") {
710
+ return "%";
711
+ }
712
+ index++;
713
+ const formatter = createDebug.formatters[format];
714
+ if (typeof formatter === "function") {
715
+ const val = args[index];
716
+ match = formatter.call(self2, val);
717
+ args.splice(index, 1);
718
+ index--;
719
+ }
720
+ return match;
721
+ });
722
+ createDebug.formatArgs.call(self2, args);
723
+ const logFn = self2.log || createDebug.log;
724
+ logFn.apply(self2, args);
725
+ }
726
+ __name(debug, "debug");
727
+ debug.namespace = namespace;
728
+ debug.useColors = createDebug.useColors();
729
+ debug.color = createDebug.selectColor(namespace);
730
+ debug.extend = extend;
731
+ debug.destroy = createDebug.destroy;
732
+ Object.defineProperty(debug, "enabled", {
733
+ enumerable: true,
734
+ configurable: false,
735
+ get: () => {
736
+ if (enableOverride !== null) {
737
+ return enableOverride;
738
+ }
739
+ if (namespacesCache !== createDebug.namespaces) {
740
+ namespacesCache = createDebug.namespaces;
741
+ enabledCache = createDebug.enabled(namespace);
742
+ }
743
+ return enabledCache;
744
+ },
745
+ set: (v) => {
746
+ enableOverride = v;
747
+ }
748
+ });
749
+ if (typeof createDebug.init === "function") {
750
+ createDebug.init(debug);
751
+ }
752
+ return debug;
753
+ }
754
+ __name(createDebug, "createDebug");
755
+ function extend(namespace, delimiter) {
756
+ const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
757
+ newDebug.log = this.log;
758
+ return newDebug;
759
+ }
760
+ __name(extend, "extend");
761
+ function enable(namespaces) {
762
+ createDebug.save(namespaces);
763
+ createDebug.namespaces = namespaces;
764
+ createDebug.names = [];
765
+ createDebug.skips = [];
766
+ let i;
767
+ const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
768
+ const len = split.length;
769
+ for (i = 0; i < len; i++) {
770
+ if (!split[i]) {
771
+ continue;
772
+ }
773
+ namespaces = split[i].replace(/\*/g, ".*?");
774
+ if (namespaces[0] === "-") {
775
+ createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
776
+ } else {
777
+ createDebug.names.push(new RegExp("^" + namespaces + "$"));
778
+ }
779
+ }
780
+ }
781
+ __name(enable, "enable");
782
+ function disable() {
783
+ const namespaces = [
784
+ ...createDebug.names.map(toNamespace),
785
+ ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
786
+ ].join(",");
787
+ createDebug.enable("");
788
+ return namespaces;
789
+ }
790
+ __name(disable, "disable");
791
+ function enabled(name) {
792
+ if (name[name.length - 1] === "*") {
793
+ return true;
794
+ }
795
+ let i;
796
+ let len;
797
+ for (i = 0, len = createDebug.skips.length; i < len; i++) {
798
+ if (createDebug.skips[i].test(name)) {
799
+ return false;
800
+ }
801
+ }
802
+ for (i = 0, len = createDebug.names.length; i < len; i++) {
803
+ if (createDebug.names[i].test(name)) {
804
+ return true;
805
+ }
806
+ }
807
+ return false;
808
+ }
809
+ __name(enabled, "enabled");
810
+ function toNamespace(regexp) {
811
+ return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
812
+ }
813
+ __name(toNamespace, "toNamespace");
814
+ function coerce(val) {
815
+ if (val instanceof Error) {
816
+ return val.stack || val.message;
817
+ }
818
+ return val;
819
+ }
820
+ __name(coerce, "coerce");
821
+ function destroy() {
822
+ console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
823
+ }
824
+ __name(destroy, "destroy");
825
+ createDebug.enable(createDebug.load());
826
+ return createDebug;
827
+ }
828
+ __name(setup, "setup");
829
+ module.exports = setup;
830
+ }
831
+ });
832
+
833
+ // node_modules/debug/src/browser.js
834
+ var require_browser = __commonJS({
835
+ "node_modules/debug/src/browser.js"(exports, module) {
836
+ exports.formatArgs = formatArgs;
837
+ exports.save = save;
838
+ exports.load = load;
839
+ exports.useColors = useColors;
840
+ exports.storage = localstorage();
841
+ exports.destroy = (() => {
842
+ let warned = false;
843
+ return () => {
844
+ if (!warned) {
845
+ warned = true;
846
+ console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
847
+ }
848
+ };
849
+ })();
850
+ exports.colors = [
851
+ "#0000CC",
852
+ "#0000FF",
853
+ "#0033CC",
854
+ "#0033FF",
855
+ "#0066CC",
856
+ "#0066FF",
857
+ "#0099CC",
858
+ "#0099FF",
859
+ "#00CC00",
860
+ "#00CC33",
861
+ "#00CC66",
862
+ "#00CC99",
863
+ "#00CCCC",
864
+ "#00CCFF",
865
+ "#3300CC",
866
+ "#3300FF",
867
+ "#3333CC",
868
+ "#3333FF",
869
+ "#3366CC",
870
+ "#3366FF",
871
+ "#3399CC",
872
+ "#3399FF",
873
+ "#33CC00",
874
+ "#33CC33",
875
+ "#33CC66",
876
+ "#33CC99",
877
+ "#33CCCC",
878
+ "#33CCFF",
879
+ "#6600CC",
880
+ "#6600FF",
881
+ "#6633CC",
882
+ "#6633FF",
883
+ "#66CC00",
884
+ "#66CC33",
885
+ "#9900CC",
886
+ "#9900FF",
887
+ "#9933CC",
888
+ "#9933FF",
889
+ "#99CC00",
890
+ "#99CC33",
891
+ "#CC0000",
892
+ "#CC0033",
893
+ "#CC0066",
894
+ "#CC0099",
895
+ "#CC00CC",
896
+ "#CC00FF",
897
+ "#CC3300",
898
+ "#CC3333",
899
+ "#CC3366",
900
+ "#CC3399",
901
+ "#CC33CC",
902
+ "#CC33FF",
903
+ "#CC6600",
904
+ "#CC6633",
905
+ "#CC9900",
906
+ "#CC9933",
907
+ "#CCCC00",
908
+ "#CCCC33",
909
+ "#FF0000",
910
+ "#FF0033",
911
+ "#FF0066",
912
+ "#FF0099",
913
+ "#FF00CC",
914
+ "#FF00FF",
915
+ "#FF3300",
916
+ "#FF3333",
917
+ "#FF3366",
918
+ "#FF3399",
919
+ "#FF33CC",
920
+ "#FF33FF",
921
+ "#FF6600",
922
+ "#FF6633",
923
+ "#FF9900",
924
+ "#FF9933",
925
+ "#FFCC00",
926
+ "#FFCC33"
927
+ ];
928
+ function useColors() {
929
+ if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
930
+ return true;
931
+ }
932
+ if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
933
+ return false;
934
+ }
935
+ return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
936
+ typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
937
+ // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
938
+ typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
939
+ typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
940
+ }
941
+ __name(useColors, "useColors");
942
+ function formatArgs(args) {
943
+ args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
944
+ if (!this.useColors) {
945
+ return;
946
+ }
947
+ const c = "color: " + this.color;
948
+ args.splice(1, 0, c, "color: inherit");
949
+ let index = 0;
950
+ let lastC = 0;
951
+ args[0].replace(/%[a-zA-Z%]/g, (match) => {
952
+ if (match === "%%") {
953
+ return;
954
+ }
955
+ index++;
956
+ if (match === "%c") {
957
+ lastC = index;
958
+ }
959
+ });
960
+ args.splice(lastC, 0, c);
961
+ }
962
+ __name(formatArgs, "formatArgs");
963
+ exports.log = console.debug || console.log || (() => {
964
+ });
965
+ function save(namespaces) {
966
+ try {
967
+ if (namespaces) {
968
+ exports.storage.setItem("debug", namespaces);
969
+ } else {
970
+ exports.storage.removeItem("debug");
971
+ }
972
+ } catch (error) {
973
+ }
974
+ }
975
+ __name(save, "save");
976
+ function load() {
977
+ let r;
978
+ try {
979
+ r = exports.storage.getItem("debug");
980
+ } catch (error) {
981
+ }
982
+ if (!r && typeof process !== "undefined" && "env" in process) {
983
+ r = process.env.DEBUG;
984
+ }
985
+ return r;
986
+ }
987
+ __name(load, "load");
988
+ function localstorage() {
989
+ try {
990
+ return localStorage;
991
+ } catch (error) {
992
+ }
993
+ }
994
+ __name(localstorage, "localstorage");
995
+ module.exports = require_common()(exports);
996
+ var { formatters } = module.exports;
997
+ formatters.j = function(v) {
998
+ try {
999
+ return JSON.stringify(v);
1000
+ } catch (error) {
1001
+ return "[UnexpectedJSONParseError]: " + error.message;
1002
+ }
1003
+ };
1004
+ }
1005
+ });
1006
+
1007
+ // node_modules/engine.io-client/build/cjs/contrib/parseqs.js
1008
+ var require_parseqs = __commonJS({
1009
+ "node_modules/engine.io-client/build/cjs/contrib/parseqs.js"(exports) {
1010
+ "use strict";
1011
+ Object.defineProperty(exports, "__esModule", { value: true });
1012
+ exports.decode = exports.encode = void 0;
1013
+ function encode(obj) {
1014
+ let str = "";
1015
+ for (let i in obj) {
1016
+ if (obj.hasOwnProperty(i)) {
1017
+ if (str.length)
1018
+ str += "&";
1019
+ str += encodeURIComponent(i) + "=" + encodeURIComponent(obj[i]);
1020
+ }
1021
+ }
1022
+ return str;
1023
+ }
1024
+ __name(encode, "encode");
1025
+ exports.encode = encode;
1026
+ function decode(qs) {
1027
+ let qry = {};
1028
+ let pairs = qs.split("&");
1029
+ for (let i = 0, l = pairs.length; i < l; i++) {
1030
+ let pair = pairs[i].split("=");
1031
+ qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
1032
+ }
1033
+ return qry;
1034
+ }
1035
+ __name(decode, "decode");
1036
+ exports.decode = decode;
1037
+ }
1038
+ });
1039
+
1040
+ // node_modules/engine.io-client/build/cjs/transport.js
1041
+ var require_transport = __commonJS({
1042
+ "node_modules/engine.io-client/build/cjs/transport.js"(exports) {
1043
+ "use strict";
1044
+ var __importDefault = exports && exports.__importDefault || function(mod) {
1045
+ return mod && mod.__esModule ? mod : { "default": mod };
1046
+ };
1047
+ Object.defineProperty(exports, "__esModule", { value: true });
1048
+ exports.Transport = void 0;
1049
+ var engine_io_parser_1 = require_cjs();
1050
+ var component_emitter_1 = require_component_emitter();
1051
+ var util_js_1 = require_util();
1052
+ var debug_1 = __importDefault(require_browser());
1053
+ var parseqs_js_1 = require_parseqs();
1054
+ var debug = (0, debug_1.default)("engine.io-client:transport");
1055
+ var TransportError = class extends Error {
1056
+ static {
1057
+ __name(this, "TransportError");
1058
+ }
1059
+ constructor(reason, description, context) {
1060
+ super(reason);
1061
+ this.description = description;
1062
+ this.context = context;
1063
+ this.type = "TransportError";
1064
+ }
1065
+ };
1066
+ var Transport = class extends component_emitter_1.Emitter {
1067
+ static {
1068
+ __name(this, "Transport");
1069
+ }
1070
+ /**
1071
+ * Transport abstract constructor.
1072
+ *
1073
+ * @param {Object} opts - options
1074
+ * @protected
1075
+ */
1076
+ constructor(opts) {
1077
+ super();
1078
+ this.writable = false;
1079
+ (0, util_js_1.installTimerFunctions)(this, opts);
1080
+ this.opts = opts;
1081
+ this.query = opts.query;
1082
+ this.socket = opts.socket;
1083
+ }
1084
+ /**
1085
+ * Emits an error.
1086
+ *
1087
+ * @param {String} reason
1088
+ * @param description
1089
+ * @param context - the error context
1090
+ * @return {Transport} for chaining
1091
+ * @protected
1092
+ */
1093
+ onError(reason, description, context) {
1094
+ super.emitReserved("error", new TransportError(reason, description, context));
1095
+ return this;
1096
+ }
1097
+ /**
1098
+ * Opens the transport.
1099
+ */
1100
+ open() {
1101
+ this.readyState = "opening";
1102
+ this.doOpen();
1103
+ return this;
1104
+ }
1105
+ /**
1106
+ * Closes the transport.
1107
+ */
1108
+ close() {
1109
+ if (this.readyState === "opening" || this.readyState === "open") {
1110
+ this.doClose();
1111
+ this.onClose();
1112
+ }
1113
+ return this;
1114
+ }
1115
+ /**
1116
+ * Sends multiple packets.
1117
+ *
1118
+ * @param {Array} packets
1119
+ */
1120
+ send(packets) {
1121
+ if (this.readyState === "open") {
1122
+ this.write(packets);
1123
+ } else {
1124
+ debug("transport is not open, discarding packets");
1125
+ }
1126
+ }
1127
+ /**
1128
+ * Called upon open
1129
+ *
1130
+ * @protected
1131
+ */
1132
+ onOpen() {
1133
+ this.readyState = "open";
1134
+ this.writable = true;
1135
+ super.emitReserved("open");
1136
+ }
1137
+ /**
1138
+ * Called with data.
1139
+ *
1140
+ * @param {String} data
1141
+ * @protected
1142
+ */
1143
+ onData(data) {
1144
+ const packet = (0, engine_io_parser_1.decodePacket)(data, this.socket.binaryType);
1145
+ this.onPacket(packet);
1146
+ }
1147
+ /**
1148
+ * Called with a decoded packet.
1149
+ *
1150
+ * @protected
1151
+ */
1152
+ onPacket(packet) {
1153
+ super.emitReserved("packet", packet);
1154
+ }
1155
+ /**
1156
+ * Called upon close.
1157
+ *
1158
+ * @protected
1159
+ */
1160
+ onClose(details) {
1161
+ this.readyState = "closed";
1162
+ super.emitReserved("close", details);
1163
+ }
1164
+ /**
1165
+ * Pauses the transport, in order not to lose packets during an upgrade.
1166
+ *
1167
+ * @param onPause
1168
+ */
1169
+ pause(onPause) {
1170
+ }
1171
+ createUri(schema, query = {}) {
1172
+ return schema + "://" + this._hostname() + this._port() + this.opts.path + this._query(query);
1173
+ }
1174
+ _hostname() {
1175
+ const hostname = this.opts.hostname;
1176
+ return hostname.indexOf(":") === -1 ? hostname : "[" + hostname + "]";
1177
+ }
1178
+ _port() {
1179
+ if (this.opts.port && (this.opts.secure && Number(this.opts.port !== 443) || !this.opts.secure && Number(this.opts.port) !== 80)) {
1180
+ return ":" + this.opts.port;
1181
+ } else {
1182
+ return "";
1183
+ }
1184
+ }
1185
+ _query(query) {
1186
+ const encodedQuery = (0, parseqs_js_1.encode)(query);
1187
+ return encodedQuery.length ? "?" + encodedQuery : "";
1188
+ }
1189
+ };
1190
+ exports.Transport = Transport;
1191
+ }
1192
+ });
1193
+
1194
+ // node_modules/engine.io-client/build/cjs/contrib/yeast.js
1195
+ var require_yeast = __commonJS({
1196
+ "node_modules/engine.io-client/build/cjs/contrib/yeast.js"(exports) {
1197
+ "use strict";
1198
+ Object.defineProperty(exports, "__esModule", { value: true });
1199
+ exports.yeast = exports.decode = exports.encode = void 0;
1200
+ var alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split("");
1201
+ var length = 64;
1202
+ var map = {};
1203
+ var seed = 0;
1204
+ var i = 0;
1205
+ var prev;
1206
+ function encode(num) {
1207
+ let encoded = "";
1208
+ do {
1209
+ encoded = alphabet[num % length] + encoded;
1210
+ num = Math.floor(num / length);
1211
+ } while (num > 0);
1212
+ return encoded;
1213
+ }
1214
+ __name(encode, "encode");
1215
+ exports.encode = encode;
1216
+ function decode(str) {
1217
+ let decoded = 0;
1218
+ for (i = 0; i < str.length; i++) {
1219
+ decoded = decoded * length + map[str.charAt(i)];
1220
+ }
1221
+ return decoded;
1222
+ }
1223
+ __name(decode, "decode");
1224
+ exports.decode = decode;
1225
+ function yeast() {
1226
+ const now = encode(+/* @__PURE__ */ new Date());
1227
+ if (now !== prev)
1228
+ return seed = 0, prev = now;
1229
+ return now + "." + encode(seed++);
1230
+ }
1231
+ __name(yeast, "yeast");
1232
+ exports.yeast = yeast;
1233
+ for (; i < length; i++)
1234
+ map[alphabet[i]] = i;
1235
+ }
1236
+ });
1237
+
1238
+ // node_modules/engine.io-client/build/cjs/contrib/has-cors.js
1239
+ var require_has_cors = __commonJS({
1240
+ "node_modules/engine.io-client/build/cjs/contrib/has-cors.js"(exports) {
1241
+ "use strict";
1242
+ Object.defineProperty(exports, "__esModule", { value: true });
1243
+ exports.hasCORS = void 0;
1244
+ var value = false;
1245
+ try {
1246
+ value = typeof XMLHttpRequest !== "undefined" && "withCredentials" in new XMLHttpRequest();
1247
+ } catch (err) {
1248
+ }
1249
+ exports.hasCORS = value;
1250
+ }
1251
+ });
1252
+
1253
+ // node_modules/engine.io-client/build/cjs/transports/xmlhttprequest.browser.js
1254
+ var require_xmlhttprequest_browser = __commonJS({
1255
+ "node_modules/engine.io-client/build/cjs/transports/xmlhttprequest.browser.js"(exports) {
1256
+ "use strict";
1257
+ Object.defineProperty(exports, "__esModule", { value: true });
1258
+ exports.createCookieJar = exports.XHR = void 0;
1259
+ var has_cors_js_1 = require_has_cors();
1260
+ var globalThis_js_1 = require_globalThis_browser();
1261
+ function XHR(opts) {
1262
+ const xdomain = opts.xdomain;
1263
+ try {
1264
+ if ("undefined" !== typeof XMLHttpRequest && (!xdomain || has_cors_js_1.hasCORS)) {
1265
+ return new XMLHttpRequest();
1266
+ }
1267
+ } catch (e) {
1268
+ }
1269
+ if (!xdomain) {
1270
+ try {
1271
+ return new globalThis_js_1.globalThisShim[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP");
1272
+ } catch (e) {
1273
+ }
1274
+ }
1275
+ }
1276
+ __name(XHR, "XHR");
1277
+ exports.XHR = XHR;
1278
+ function createCookieJar() {
1279
+ }
1280
+ __name(createCookieJar, "createCookieJar");
1281
+ exports.createCookieJar = createCookieJar;
1282
+ }
1283
+ });
1284
+
1285
+ // node_modules/engine.io-client/build/cjs/transports/polling.js
1286
+ var require_polling = __commonJS({
1287
+ "node_modules/engine.io-client/build/cjs/transports/polling.js"(exports) {
1288
+ "use strict";
1289
+ var __importDefault = exports && exports.__importDefault || function(mod) {
1290
+ return mod && mod.__esModule ? mod : { "default": mod };
1291
+ };
1292
+ Object.defineProperty(exports, "__esModule", { value: true });
1293
+ exports.Request = exports.Polling = void 0;
1294
+ var transport_js_1 = require_transport();
1295
+ var debug_1 = __importDefault(require_browser());
1296
+ var yeast_js_1 = require_yeast();
1297
+ var engine_io_parser_1 = require_cjs();
1298
+ var xmlhttprequest_js_1 = require_xmlhttprequest_browser();
1299
+ var component_emitter_1 = require_component_emitter();
1300
+ var util_js_1 = require_util();
1301
+ var globalThis_js_1 = require_globalThis_browser();
1302
+ var debug = (0, debug_1.default)("engine.io-client:polling");
1303
+ function empty() {
1304
+ }
1305
+ __name(empty, "empty");
1306
+ var hasXHR2 = function() {
1307
+ const xhr = new xmlhttprequest_js_1.XHR({
1308
+ xdomain: false
1309
+ });
1310
+ return null != xhr.responseType;
1311
+ }();
1312
+ var Polling = class extends transport_js_1.Transport {
1313
+ static {
1314
+ __name(this, "Polling");
1315
+ }
1316
+ /**
1317
+ * XHR Polling constructor.
1318
+ *
1319
+ * @param {Object} opts
1320
+ * @package
1321
+ */
1322
+ constructor(opts) {
1323
+ super(opts);
1324
+ this.polling = false;
1325
+ if (typeof location !== "undefined") {
1326
+ const isSSL = "https:" === location.protocol;
1327
+ let port = location.port;
1328
+ if (!port) {
1329
+ port = isSSL ? "443" : "80";
1330
+ }
1331
+ this.xd = typeof location !== "undefined" && opts.hostname !== location.hostname || port !== opts.port;
1332
+ }
1333
+ const forceBase64 = opts && opts.forceBase64;
1334
+ this.supportsBinary = hasXHR2 && !forceBase64;
1335
+ if (this.opts.withCredentials) {
1336
+ this.cookieJar = (0, xmlhttprequest_js_1.createCookieJar)();
1337
+ }
1338
+ }
1339
+ get name() {
1340
+ return "polling";
1341
+ }
1342
+ /**
1343
+ * Opens the socket (triggers polling). We write a PING message to determine
1344
+ * when the transport is open.
1345
+ *
1346
+ * @protected
1347
+ */
1348
+ doOpen() {
1349
+ this.poll();
1350
+ }
1351
+ /**
1352
+ * Pauses polling.
1353
+ *
1354
+ * @param {Function} onPause - callback upon buffers are flushed and transport is paused
1355
+ * @package
1356
+ */
1357
+ pause(onPause) {
1358
+ this.readyState = "pausing";
1359
+ const pause = /* @__PURE__ */ __name(() => {
1360
+ debug("paused");
1361
+ this.readyState = "paused";
1362
+ onPause();
1363
+ }, "pause");
1364
+ if (this.polling || !this.writable) {
1365
+ let total = 0;
1366
+ if (this.polling) {
1367
+ debug("we are currently polling - waiting to pause");
1368
+ total++;
1369
+ this.once("pollComplete", function() {
1370
+ debug("pre-pause polling complete");
1371
+ --total || pause();
1372
+ });
1373
+ }
1374
+ if (!this.writable) {
1375
+ debug("we are currently writing - waiting to pause");
1376
+ total++;
1377
+ this.once("drain", function() {
1378
+ debug("pre-pause writing complete");
1379
+ --total || pause();
1380
+ });
1381
+ }
1382
+ } else {
1383
+ pause();
1384
+ }
1385
+ }
1386
+ /**
1387
+ * Starts polling cycle.
1388
+ *
1389
+ * @private
1390
+ */
1391
+ poll() {
1392
+ debug("polling");
1393
+ this.polling = true;
1394
+ this.doPoll();
1395
+ this.emitReserved("poll");
1396
+ }
1397
+ /**
1398
+ * Overloads onData to detect payloads.
1399
+ *
1400
+ * @protected
1401
+ */
1402
+ onData(data) {
1403
+ debug("polling got data %s", data);
1404
+ const callback = /* @__PURE__ */ __name((packet) => {
1405
+ if ("opening" === this.readyState && packet.type === "open") {
1406
+ this.onOpen();
1407
+ }
1408
+ if ("close" === packet.type) {
1409
+ this.onClose({ description: "transport closed by the server" });
1410
+ return false;
1411
+ }
1412
+ this.onPacket(packet);
1413
+ }, "callback");
1414
+ (0, engine_io_parser_1.decodePayload)(data, this.socket.binaryType).forEach(callback);
1415
+ if ("closed" !== this.readyState) {
1416
+ this.polling = false;
1417
+ this.emitReserved("pollComplete");
1418
+ if ("open" === this.readyState) {
1419
+ this.poll();
1420
+ } else {
1421
+ debug('ignoring poll - transport state "%s"', this.readyState);
1422
+ }
1423
+ }
1424
+ }
1425
+ /**
1426
+ * For polling, send a close packet.
1427
+ *
1428
+ * @protected
1429
+ */
1430
+ doClose() {
1431
+ const close = /* @__PURE__ */ __name(() => {
1432
+ debug("writing close packet");
1433
+ this.write([{ type: "close" }]);
1434
+ }, "close");
1435
+ if ("open" === this.readyState) {
1436
+ debug("transport open - closing");
1437
+ close();
1438
+ } else {
1439
+ debug("transport not open - deferring close");
1440
+ this.once("open", close);
1441
+ }
1442
+ }
1443
+ /**
1444
+ * Writes a packets payload.
1445
+ *
1446
+ * @param {Array} packets - data packets
1447
+ * @protected
1448
+ */
1449
+ write(packets) {
1450
+ this.writable = false;
1451
+ (0, engine_io_parser_1.encodePayload)(packets, (data) => {
1452
+ this.doWrite(data, () => {
1453
+ this.writable = true;
1454
+ this.emitReserved("drain");
1455
+ });
1456
+ });
1457
+ }
1458
+ /**
1459
+ * Generates uri for connection.
1460
+ *
1461
+ * @private
1462
+ */
1463
+ uri() {
1464
+ const schema = this.opts.secure ? "https" : "http";
1465
+ const query = this.query || {};
1466
+ if (false !== this.opts.timestampRequests) {
1467
+ query[this.opts.timestampParam] = (0, yeast_js_1.yeast)();
1468
+ }
1469
+ if (!this.supportsBinary && !query.sid) {
1470
+ query.b64 = 1;
1471
+ }
1472
+ return this.createUri(schema, query);
1473
+ }
1474
+ /**
1475
+ * Creates a request.
1476
+ *
1477
+ * @param {String} method
1478
+ * @private
1479
+ */
1480
+ request(opts = {}) {
1481
+ Object.assign(opts, { xd: this.xd, cookieJar: this.cookieJar }, this.opts);
1482
+ return new Request(this.uri(), opts);
1483
+ }
1484
+ /**
1485
+ * Sends data.
1486
+ *
1487
+ * @param {String} data to send.
1488
+ * @param {Function} called upon flush.
1489
+ * @private
1490
+ */
1491
+ doWrite(data, fn) {
1492
+ const req = this.request({
1493
+ method: "POST",
1494
+ data
1495
+ });
1496
+ req.on("success", fn);
1497
+ req.on("error", (xhrStatus, context) => {
1498
+ this.onError("xhr post error", xhrStatus, context);
1499
+ });
1500
+ }
1501
+ /**
1502
+ * Starts a poll cycle.
1503
+ *
1504
+ * @private
1505
+ */
1506
+ doPoll() {
1507
+ debug("xhr poll");
1508
+ const req = this.request();
1509
+ req.on("data", this.onData.bind(this));
1510
+ req.on("error", (xhrStatus, context) => {
1511
+ this.onError("xhr poll error", xhrStatus, context);
1512
+ });
1513
+ this.pollXhr = req;
1514
+ }
1515
+ };
1516
+ exports.Polling = Polling;
1517
+ var Request = class _Request extends component_emitter_1.Emitter {
1518
+ static {
1519
+ __name(this, "Request");
1520
+ }
1521
+ /**
1522
+ * Request constructor
1523
+ *
1524
+ * @param {Object} options
1525
+ * @package
1526
+ */
1527
+ constructor(uri, opts) {
1528
+ super();
1529
+ (0, util_js_1.installTimerFunctions)(this, opts);
1530
+ this.opts = opts;
1531
+ this.method = opts.method || "GET";
1532
+ this.uri = uri;
1533
+ this.data = void 0 !== opts.data ? opts.data : null;
1534
+ this.create();
1535
+ }
1536
+ /**
1537
+ * Creates the XHR object and sends the request.
1538
+ *
1539
+ * @private
1540
+ */
1541
+ create() {
1542
+ var _a;
1543
+ const opts = (0, util_js_1.pick)(this.opts, "agent", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "autoUnref");
1544
+ opts.xdomain = !!this.opts.xd;
1545
+ const xhr = this.xhr = new xmlhttprequest_js_1.XHR(opts);
1546
+ try {
1547
+ debug("xhr open %s: %s", this.method, this.uri);
1548
+ xhr.open(this.method, this.uri, true);
1549
+ try {
1550
+ if (this.opts.extraHeaders) {
1551
+ xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);
1552
+ for (let i in this.opts.extraHeaders) {
1553
+ if (this.opts.extraHeaders.hasOwnProperty(i)) {
1554
+ xhr.setRequestHeader(i, this.opts.extraHeaders[i]);
1555
+ }
1556
+ }
1557
+ }
1558
+ } catch (e) {
1559
+ }
1560
+ if ("POST" === this.method) {
1561
+ try {
1562
+ xhr.setRequestHeader("Content-type", "text/plain;charset=UTF-8");
1563
+ } catch (e) {
1564
+ }
1565
+ }
1566
+ try {
1567
+ xhr.setRequestHeader("Accept", "*/*");
1568
+ } catch (e) {
1569
+ }
1570
+ (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);
1571
+ if ("withCredentials" in xhr) {
1572
+ xhr.withCredentials = this.opts.withCredentials;
1573
+ }
1574
+ if (this.opts.requestTimeout) {
1575
+ xhr.timeout = this.opts.requestTimeout;
1576
+ }
1577
+ xhr.onreadystatechange = () => {
1578
+ var _a2;
1579
+ if (xhr.readyState === 3) {
1580
+ (_a2 = this.opts.cookieJar) === null || _a2 === void 0 ? void 0 : _a2.parseCookies(xhr);
1581
+ }
1582
+ if (4 !== xhr.readyState)
1583
+ return;
1584
+ if (200 === xhr.status || 1223 === xhr.status) {
1585
+ this.onLoad();
1586
+ } else {
1587
+ this.setTimeoutFn(() => {
1588
+ this.onError(typeof xhr.status === "number" ? xhr.status : 0);
1589
+ }, 0);
1590
+ }
1591
+ };
1592
+ debug("xhr data %s", this.data);
1593
+ xhr.send(this.data);
1594
+ } catch (e) {
1595
+ this.setTimeoutFn(() => {
1596
+ this.onError(e);
1597
+ }, 0);
1598
+ return;
1599
+ }
1600
+ if (typeof document !== "undefined") {
1601
+ this.index = _Request.requestsCount++;
1602
+ _Request.requests[this.index] = this;
1603
+ }
1604
+ }
1605
+ /**
1606
+ * Called upon error.
1607
+ *
1608
+ * @private
1609
+ */
1610
+ onError(err) {
1611
+ this.emitReserved("error", err, this.xhr);
1612
+ this.cleanup(true);
1613
+ }
1614
+ /**
1615
+ * Cleans up house.
1616
+ *
1617
+ * @private
1618
+ */
1619
+ cleanup(fromError) {
1620
+ if ("undefined" === typeof this.xhr || null === this.xhr) {
1621
+ return;
1622
+ }
1623
+ this.xhr.onreadystatechange = empty;
1624
+ if (fromError) {
1625
+ try {
1626
+ this.xhr.abort();
1627
+ } catch (e) {
1628
+ }
1629
+ }
1630
+ if (typeof document !== "undefined") {
1631
+ delete _Request.requests[this.index];
1632
+ }
1633
+ this.xhr = null;
1634
+ }
1635
+ /**
1636
+ * Called upon load.
1637
+ *
1638
+ * @private
1639
+ */
1640
+ onLoad() {
1641
+ const data = this.xhr.responseText;
1642
+ if (data !== null) {
1643
+ this.emitReserved("data", data);
1644
+ this.emitReserved("success");
1645
+ this.cleanup();
1646
+ }
1647
+ }
1648
+ /**
1649
+ * Aborts the request.
1650
+ *
1651
+ * @package
1652
+ */
1653
+ abort() {
1654
+ this.cleanup();
1655
+ }
1656
+ };
1657
+ exports.Request = Request;
1658
+ Request.requestsCount = 0;
1659
+ Request.requests = {};
1660
+ if (typeof document !== "undefined") {
1661
+ if (typeof attachEvent === "function") {
1662
+ attachEvent("onunload", unloadHandler);
1663
+ } else if (typeof addEventListener === "function") {
1664
+ const terminationEvent = "onpagehide" in globalThis_js_1.globalThisShim ? "pagehide" : "unload";
1665
+ addEventListener(terminationEvent, unloadHandler, false);
1666
+ }
1667
+ }
1668
+ function unloadHandler() {
1669
+ for (let i in Request.requests) {
1670
+ if (Request.requests.hasOwnProperty(i)) {
1671
+ Request.requests[i].abort();
1672
+ }
1673
+ }
1674
+ }
1675
+ __name(unloadHandler, "unloadHandler");
1676
+ }
1677
+ });
1678
+
1679
+ // node_modules/engine.io-client/build/cjs/transports/websocket-constructor.browser.js
1680
+ var require_websocket_constructor_browser = __commonJS({
1681
+ "node_modules/engine.io-client/build/cjs/transports/websocket-constructor.browser.js"(exports) {
1682
+ "use strict";
1683
+ Object.defineProperty(exports, "__esModule", { value: true });
1684
+ exports.defaultBinaryType = exports.usingBrowserWebSocket = exports.WebSocket = exports.nextTick = void 0;
1685
+ var globalThis_js_1 = require_globalThis_browser();
1686
+ exports.nextTick = (() => {
1687
+ const isPromiseAvailable = typeof Promise === "function" && typeof Promise.resolve === "function";
1688
+ if (isPromiseAvailable) {
1689
+ return (cb) => Promise.resolve().then(cb);
1690
+ } else {
1691
+ return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);
1692
+ }
1693
+ })();
1694
+ exports.WebSocket = globalThis_js_1.globalThisShim.WebSocket || globalThis_js_1.globalThisShim.MozWebSocket;
1695
+ exports.usingBrowserWebSocket = true;
1696
+ exports.defaultBinaryType = "arraybuffer";
1697
+ }
1698
+ });
1699
+
1700
+ // node_modules/engine.io-client/build/cjs/transports/websocket.js
1701
+ var require_websocket = __commonJS({
1702
+ "node_modules/engine.io-client/build/cjs/transports/websocket.js"(exports) {
1703
+ "use strict";
1704
+ var __importDefault = exports && exports.__importDefault || function(mod) {
1705
+ return mod && mod.__esModule ? mod : { "default": mod };
1706
+ };
1707
+ Object.defineProperty(exports, "__esModule", { value: true });
1708
+ exports.WS = void 0;
1709
+ var transport_js_1 = require_transport();
1710
+ var yeast_js_1 = require_yeast();
1711
+ var util_js_1 = require_util();
1712
+ var websocket_constructor_js_1 = require_websocket_constructor_browser();
1713
+ var debug_1 = __importDefault(require_browser());
1714
+ var engine_io_parser_1 = require_cjs();
1715
+ var debug = (0, debug_1.default)("engine.io-client:websocket");
1716
+ var isReactNative = typeof navigator !== "undefined" && typeof navigator.product === "string" && navigator.product.toLowerCase() === "reactnative";
1717
+ var WS = class extends transport_js_1.Transport {
1718
+ static {
1719
+ __name(this, "WS");
1720
+ }
1721
+ /**
1722
+ * WebSocket transport constructor.
1723
+ *
1724
+ * @param {Object} opts - connection options
1725
+ * @protected
1726
+ */
1727
+ constructor(opts) {
1728
+ super(opts);
1729
+ this.supportsBinary = !opts.forceBase64;
1730
+ }
1731
+ get name() {
1732
+ return "websocket";
1733
+ }
1734
+ doOpen() {
1735
+ if (!this.check()) {
1736
+ return;
1737
+ }
1738
+ const uri = this.uri();
1739
+ const protocols = this.opts.protocols;
1740
+ const opts = isReactNative ? {} : (0, util_js_1.pick)(this.opts, "agent", "perMessageDeflate", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "localAddress", "protocolVersion", "origin", "maxPayload", "family", "checkServerIdentity");
1741
+ if (this.opts.extraHeaders) {
1742
+ opts.headers = this.opts.extraHeaders;
1743
+ }
1744
+ try {
1745
+ this.ws = websocket_constructor_js_1.usingBrowserWebSocket && !isReactNative ? protocols ? new websocket_constructor_js_1.WebSocket(uri, protocols) : new websocket_constructor_js_1.WebSocket(uri) : new websocket_constructor_js_1.WebSocket(uri, protocols, opts);
1746
+ } catch (err) {
1747
+ return this.emitReserved("error", err);
1748
+ }
1749
+ this.ws.binaryType = this.socket.binaryType;
1750
+ this.addEventListeners();
1751
+ }
1752
+ /**
1753
+ * Adds event listeners to the socket
1754
+ *
1755
+ * @private
1756
+ */
1757
+ addEventListeners() {
1758
+ this.ws.onopen = () => {
1759
+ if (this.opts.autoUnref) {
1760
+ this.ws._socket.unref();
1761
+ }
1762
+ this.onOpen();
1763
+ };
1764
+ this.ws.onclose = (closeEvent) => this.onClose({
1765
+ description: "websocket connection closed",
1766
+ context: closeEvent
1767
+ });
1768
+ this.ws.onmessage = (ev) => this.onData(ev.data);
1769
+ this.ws.onerror = (e) => this.onError("websocket error", e);
1770
+ }
1771
+ write(packets) {
1772
+ this.writable = false;
1773
+ for (let i = 0; i < packets.length; i++) {
1774
+ const packet = packets[i];
1775
+ const lastPacket = i === packets.length - 1;
1776
+ (0, engine_io_parser_1.encodePacket)(packet, this.supportsBinary, (data) => {
1777
+ const opts = {};
1778
+ if (!websocket_constructor_js_1.usingBrowserWebSocket) {
1779
+ if (packet.options) {
1780
+ opts.compress = packet.options.compress;
1781
+ }
1782
+ if (this.opts.perMessageDeflate) {
1783
+ const len = (
1784
+ // @ts-ignore
1785
+ "string" === typeof data ? Buffer.byteLength(data) : data.length
1786
+ );
1787
+ if (len < this.opts.perMessageDeflate.threshold) {
1788
+ opts.compress = false;
1789
+ }
1790
+ }
1791
+ }
1792
+ try {
1793
+ if (websocket_constructor_js_1.usingBrowserWebSocket) {
1794
+ this.ws.send(data);
1795
+ } else {
1796
+ this.ws.send(data, opts);
1797
+ }
1798
+ } catch (e) {
1799
+ debug("websocket closed before onclose event");
1800
+ }
1801
+ if (lastPacket) {
1802
+ (0, websocket_constructor_js_1.nextTick)(() => {
1803
+ this.writable = true;
1804
+ this.emitReserved("drain");
1805
+ }, this.setTimeoutFn);
1806
+ }
1807
+ });
1808
+ }
1809
+ }
1810
+ doClose() {
1811
+ if (typeof this.ws !== "undefined") {
1812
+ this.ws.close();
1813
+ this.ws = null;
1814
+ }
1815
+ }
1816
+ /**
1817
+ * Generates uri for connection.
1818
+ *
1819
+ * @private
1820
+ */
1821
+ uri() {
1822
+ const schema = this.opts.secure ? "wss" : "ws";
1823
+ const query = this.query || {};
1824
+ if (this.opts.timestampRequests) {
1825
+ query[this.opts.timestampParam] = (0, yeast_js_1.yeast)();
1826
+ }
1827
+ if (!this.supportsBinary) {
1828
+ query.b64 = 1;
1829
+ }
1830
+ return this.createUri(schema, query);
1831
+ }
1832
+ /**
1833
+ * Feature detection for WebSocket.
1834
+ *
1835
+ * @return {Boolean} whether this transport is available.
1836
+ * @private
1837
+ */
1838
+ check() {
1839
+ return !!websocket_constructor_js_1.WebSocket;
1840
+ }
1841
+ };
1842
+ exports.WS = WS;
1843
+ }
1844
+ });
1845
+
1846
+ // node_modules/engine.io-client/build/cjs/transports/webtransport.js
1847
+ var require_webtransport = __commonJS({
1848
+ "node_modules/engine.io-client/build/cjs/transports/webtransport.js"(exports) {
1849
+ "use strict";
1850
+ var __importDefault = exports && exports.__importDefault || function(mod) {
1851
+ return mod && mod.__esModule ? mod : { "default": mod };
1852
+ };
1853
+ Object.defineProperty(exports, "__esModule", { value: true });
1854
+ exports.WT = void 0;
1855
+ var transport_js_1 = require_transport();
1856
+ var websocket_constructor_js_1 = require_websocket_constructor_browser();
1857
+ var engine_io_parser_1 = require_cjs();
1858
+ var debug_1 = __importDefault(require_browser());
1859
+ var debug = (0, debug_1.default)("engine.io-client:webtransport");
1860
+ var WT = class extends transport_js_1.Transport {
1861
+ static {
1862
+ __name(this, "WT");
1863
+ }
1864
+ get name() {
1865
+ return "webtransport";
1866
+ }
1867
+ doOpen() {
1868
+ if (typeof WebTransport !== "function") {
1869
+ return;
1870
+ }
1871
+ this.transport = new WebTransport(this.createUri("https"), this.opts.transportOptions[this.name]);
1872
+ this.transport.closed.then(() => {
1873
+ debug("transport closed gracefully");
1874
+ this.onClose();
1875
+ }).catch((err) => {
1876
+ debug("transport closed due to %s", err);
1877
+ this.onError("webtransport error", err);
1878
+ });
1879
+ this.transport.ready.then(() => {
1880
+ this.transport.createBidirectionalStream().then((stream) => {
1881
+ const decoderStream = (0, engine_io_parser_1.createPacketDecoderStream)(Number.MAX_SAFE_INTEGER, this.socket.binaryType);
1882
+ const reader = stream.readable.pipeThrough(decoderStream).getReader();
1883
+ const encoderStream = (0, engine_io_parser_1.createPacketEncoderStream)();
1884
+ encoderStream.readable.pipeTo(stream.writable);
1885
+ this.writer = encoderStream.writable.getWriter();
1886
+ const read = /* @__PURE__ */ __name(() => {
1887
+ reader.read().then(({ done, value }) => {
1888
+ if (done) {
1889
+ debug("session is closed");
1890
+ return;
1891
+ }
1892
+ debug("received chunk: %o", value);
1893
+ this.onPacket(value);
1894
+ read();
1895
+ }).catch((err) => {
1896
+ debug("an error occurred while reading: %s", err);
1897
+ });
1898
+ }, "read");
1899
+ read();
1900
+ const packet = { type: "open" };
1901
+ if (this.query.sid) {
1902
+ packet.data = `{"sid":"${this.query.sid}"}`;
1903
+ }
1904
+ this.writer.write(packet).then(() => this.onOpen());
1905
+ });
1906
+ });
1907
+ }
1908
+ write(packets) {
1909
+ this.writable = false;
1910
+ for (let i = 0; i < packets.length; i++) {
1911
+ const packet = packets[i];
1912
+ const lastPacket = i === packets.length - 1;
1913
+ this.writer.write(packet).then(() => {
1914
+ if (lastPacket) {
1915
+ (0, websocket_constructor_js_1.nextTick)(() => {
1916
+ this.writable = true;
1917
+ this.emitReserved("drain");
1918
+ }, this.setTimeoutFn);
1919
+ }
1920
+ });
1921
+ }
1922
+ }
1923
+ doClose() {
1924
+ var _a;
1925
+ (_a = this.transport) === null || _a === void 0 ? void 0 : _a.close();
1926
+ }
1927
+ };
1928
+ exports.WT = WT;
1929
+ }
1930
+ });
1931
+
1932
+ // node_modules/engine.io-client/build/cjs/transports/index.js
1933
+ var require_transports = __commonJS({
1934
+ "node_modules/engine.io-client/build/cjs/transports/index.js"(exports) {
1935
+ "use strict";
1936
+ Object.defineProperty(exports, "__esModule", { value: true });
1937
+ exports.transports = void 0;
1938
+ var polling_js_1 = require_polling();
1939
+ var websocket_js_1 = require_websocket();
1940
+ var webtransport_js_1 = require_webtransport();
1941
+ exports.transports = {
1942
+ websocket: websocket_js_1.WS,
1943
+ webtransport: webtransport_js_1.WT,
1944
+ polling: polling_js_1.Polling
1945
+ };
1946
+ }
1947
+ });
1948
+
1949
+ // node_modules/engine.io-client/build/cjs/contrib/parseuri.js
1950
+ var require_parseuri = __commonJS({
1951
+ "node_modules/engine.io-client/build/cjs/contrib/parseuri.js"(exports) {
1952
+ "use strict";
1953
+ Object.defineProperty(exports, "__esModule", { value: true });
1954
+ exports.parse = void 0;
1955
+ var re = /^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/;
1956
+ var parts = [
1957
+ "source",
1958
+ "protocol",
1959
+ "authority",
1960
+ "userInfo",
1961
+ "user",
1962
+ "password",
1963
+ "host",
1964
+ "port",
1965
+ "relative",
1966
+ "path",
1967
+ "directory",
1968
+ "file",
1969
+ "query",
1970
+ "anchor"
1971
+ ];
1972
+ function parse(str) {
1973
+ const src = str, b = str.indexOf("["), e = str.indexOf("]");
1974
+ if (b != -1 && e != -1) {
1975
+ str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ";") + str.substring(e, str.length);
1976
+ }
1977
+ let m = re.exec(str || ""), uri = {}, i = 14;
1978
+ while (i--) {
1979
+ uri[parts[i]] = m[i] || "";
1980
+ }
1981
+ if (b != -1 && e != -1) {
1982
+ uri.source = src;
1983
+ uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ":");
1984
+ uri.authority = uri.authority.replace("[", "").replace("]", "").replace(/;/g, ":");
1985
+ uri.ipv6uri = true;
1986
+ }
1987
+ uri.pathNames = pathNames(uri, uri["path"]);
1988
+ uri.queryKey = queryKey(uri, uri["query"]);
1989
+ return uri;
1990
+ }
1991
+ __name(parse, "parse");
1992
+ exports.parse = parse;
1993
+ function pathNames(obj, path) {
1994
+ const regx = /\/{2,9}/g, names = path.replace(regx, "/").split("/");
1995
+ if (path.slice(0, 1) == "/" || path.length === 0) {
1996
+ names.splice(0, 1);
1997
+ }
1998
+ if (path.slice(-1) == "/") {
1999
+ names.splice(names.length - 1, 1);
2000
+ }
2001
+ return names;
2002
+ }
2003
+ __name(pathNames, "pathNames");
2004
+ function queryKey(uri, query) {
2005
+ const data = {};
2006
+ query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function($0, $1, $2) {
2007
+ if ($1) {
2008
+ data[$1] = $2;
2009
+ }
2010
+ });
2011
+ return data;
2012
+ }
2013
+ __name(queryKey, "queryKey");
2014
+ }
2015
+ });
2016
+
2017
+ // node_modules/engine.io-client/build/cjs/socket.js
2018
+ var require_socket = __commonJS({
2019
+ "node_modules/engine.io-client/build/cjs/socket.js"(exports) {
2020
+ "use strict";
2021
+ var __importDefault = exports && exports.__importDefault || function(mod) {
2022
+ return mod && mod.__esModule ? mod : { "default": mod };
2023
+ };
2024
+ Object.defineProperty(exports, "__esModule", { value: true });
2025
+ exports.Socket = void 0;
2026
+ var index_js_1 = require_transports();
2027
+ var util_js_1 = require_util();
2028
+ var parseqs_js_1 = require_parseqs();
2029
+ var parseuri_js_1 = require_parseuri();
2030
+ var debug_1 = __importDefault(require_browser());
2031
+ var component_emitter_1 = require_component_emitter();
2032
+ var engine_io_parser_1 = require_cjs();
2033
+ var websocket_constructor_js_1 = require_websocket_constructor_browser();
2034
+ var debug = (0, debug_1.default)("engine.io-client:socket");
2035
+ var Socket = class _Socket extends component_emitter_1.Emitter {
2036
+ static {
2037
+ __name(this, "Socket");
2038
+ }
2039
+ /**
2040
+ * Socket constructor.
2041
+ *
2042
+ * @param {String|Object} uri - uri or options
2043
+ * @param {Object} opts - options
2044
+ */
2045
+ constructor(uri, opts = {}) {
2046
+ super();
2047
+ this.binaryType = websocket_constructor_js_1.defaultBinaryType;
2048
+ this.writeBuffer = [];
2049
+ if (uri && "object" === typeof uri) {
2050
+ opts = uri;
2051
+ uri = null;
2052
+ }
2053
+ if (uri) {
2054
+ uri = (0, parseuri_js_1.parse)(uri);
2055
+ opts.hostname = uri.host;
2056
+ opts.secure = uri.protocol === "https" || uri.protocol === "wss";
2057
+ opts.port = uri.port;
2058
+ if (uri.query)
2059
+ opts.query = uri.query;
2060
+ } else if (opts.host) {
2061
+ opts.hostname = (0, parseuri_js_1.parse)(opts.host).host;
2062
+ }
2063
+ (0, util_js_1.installTimerFunctions)(this, opts);
2064
+ this.secure = null != opts.secure ? opts.secure : typeof location !== "undefined" && "https:" === location.protocol;
2065
+ if (opts.hostname && !opts.port) {
2066
+ opts.port = this.secure ? "443" : "80";
2067
+ }
2068
+ this.hostname = opts.hostname || (typeof location !== "undefined" ? location.hostname : "localhost");
2069
+ this.port = opts.port || (typeof location !== "undefined" && location.port ? location.port : this.secure ? "443" : "80");
2070
+ this.transports = opts.transports || [
2071
+ "polling",
2072
+ "websocket",
2073
+ "webtransport"
2074
+ ];
2075
+ this.writeBuffer = [];
2076
+ this.prevBufferLen = 0;
2077
+ this.opts = Object.assign({
2078
+ path: "/engine.io",
2079
+ agent: false,
2080
+ withCredentials: false,
2081
+ upgrade: true,
2082
+ timestampParam: "t",
2083
+ rememberUpgrade: false,
2084
+ addTrailingSlash: true,
2085
+ rejectUnauthorized: true,
2086
+ perMessageDeflate: {
2087
+ threshold: 1024
2088
+ },
2089
+ transportOptions: {},
2090
+ closeOnBeforeunload: false
2091
+ }, opts);
2092
+ this.opts.path = this.opts.path.replace(/\/$/, "") + (this.opts.addTrailingSlash ? "/" : "");
2093
+ if (typeof this.opts.query === "string") {
2094
+ this.opts.query = (0, parseqs_js_1.decode)(this.opts.query);
2095
+ }
2096
+ this.id = null;
2097
+ this.upgrades = null;
2098
+ this.pingInterval = null;
2099
+ this.pingTimeout = null;
2100
+ this.pingTimeoutTimer = null;
2101
+ if (typeof addEventListener === "function") {
2102
+ if (this.opts.closeOnBeforeunload) {
2103
+ this.beforeunloadEventListener = () => {
2104
+ if (this.transport) {
2105
+ this.transport.removeAllListeners();
2106
+ this.transport.close();
2107
+ }
2108
+ };
2109
+ addEventListener("beforeunload", this.beforeunloadEventListener, false);
2110
+ }
2111
+ if (this.hostname !== "localhost") {
2112
+ this.offlineEventListener = () => {
2113
+ this.onClose("transport close", {
2114
+ description: "network connection lost"
2115
+ });
2116
+ };
2117
+ addEventListener("offline", this.offlineEventListener, false);
2118
+ }
2119
+ }
2120
+ this.open();
2121
+ }
2122
+ /**
2123
+ * Creates transport of the given type.
2124
+ *
2125
+ * @param {String} name - transport name
2126
+ * @return {Transport}
2127
+ * @private
2128
+ */
2129
+ createTransport(name) {
2130
+ debug('creating transport "%s"', name);
2131
+ const query = Object.assign({}, this.opts.query);
2132
+ query.EIO = engine_io_parser_1.protocol;
2133
+ query.transport = name;
2134
+ if (this.id)
2135
+ query.sid = this.id;
2136
+ const opts = Object.assign({}, this.opts, {
2137
+ query,
2138
+ socket: this,
2139
+ hostname: this.hostname,
2140
+ secure: this.secure,
2141
+ port: this.port
2142
+ }, this.opts.transportOptions[name]);
2143
+ debug("options: %j", opts);
2144
+ return new index_js_1.transports[name](opts);
2145
+ }
2146
+ /**
2147
+ * Initializes transport to use and starts probe.
2148
+ *
2149
+ * @private
2150
+ */
2151
+ open() {
2152
+ let transport;
2153
+ if (this.opts.rememberUpgrade && _Socket.priorWebsocketSuccess && this.transports.indexOf("websocket") !== -1) {
2154
+ transport = "websocket";
2155
+ } else if (0 === this.transports.length) {
2156
+ this.setTimeoutFn(() => {
2157
+ this.emitReserved("error", "No transports available");
2158
+ }, 0);
2159
+ return;
2160
+ } else {
2161
+ transport = this.transports[0];
2162
+ }
2163
+ this.readyState = "opening";
2164
+ try {
2165
+ transport = this.createTransport(transport);
2166
+ } catch (e) {
2167
+ debug("error while creating transport: %s", e);
2168
+ this.transports.shift();
2169
+ this.open();
2170
+ return;
2171
+ }
2172
+ transport.open();
2173
+ this.setTransport(transport);
2174
+ }
2175
+ /**
2176
+ * Sets the current transport. Disables the existing one (if any).
2177
+ *
2178
+ * @private
2179
+ */
2180
+ setTransport(transport) {
2181
+ debug("setting transport %s", transport.name);
2182
+ if (this.transport) {
2183
+ debug("clearing existing transport %s", this.transport.name);
2184
+ this.transport.removeAllListeners();
2185
+ }
2186
+ this.transport = transport;
2187
+ transport.on("drain", this.onDrain.bind(this)).on("packet", this.onPacket.bind(this)).on("error", this.onError.bind(this)).on("close", (reason) => this.onClose("transport close", reason));
2188
+ }
2189
+ /**
2190
+ * Probes a transport.
2191
+ *
2192
+ * @param {String} name - transport name
2193
+ * @private
2194
+ */
2195
+ probe(name) {
2196
+ debug('probing transport "%s"', name);
2197
+ let transport = this.createTransport(name);
2198
+ let failed = false;
2199
+ _Socket.priorWebsocketSuccess = false;
2200
+ const onTransportOpen = /* @__PURE__ */ __name(() => {
2201
+ if (failed)
2202
+ return;
2203
+ debug('probe transport "%s" opened', name);
2204
+ transport.send([{ type: "ping", data: "probe" }]);
2205
+ transport.once("packet", (msg) => {
2206
+ if (failed)
2207
+ return;
2208
+ if ("pong" === msg.type && "probe" === msg.data) {
2209
+ debug('probe transport "%s" pong', name);
2210
+ this.upgrading = true;
2211
+ this.emitReserved("upgrading", transport);
2212
+ if (!transport)
2213
+ return;
2214
+ _Socket.priorWebsocketSuccess = "websocket" === transport.name;
2215
+ debug('pausing current transport "%s"', this.transport.name);
2216
+ this.transport.pause(() => {
2217
+ if (failed)
2218
+ return;
2219
+ if ("closed" === this.readyState)
2220
+ return;
2221
+ debug("changing transport and sending upgrade packet");
2222
+ cleanup();
2223
+ this.setTransport(transport);
2224
+ transport.send([{ type: "upgrade" }]);
2225
+ this.emitReserved("upgrade", transport);
2226
+ transport = null;
2227
+ this.upgrading = false;
2228
+ this.flush();
2229
+ });
2230
+ } else {
2231
+ debug('probe transport "%s" failed', name);
2232
+ const err = new Error("probe error");
2233
+ err.transport = transport.name;
2234
+ this.emitReserved("upgradeError", err);
2235
+ }
2236
+ });
2237
+ }, "onTransportOpen");
2238
+ function freezeTransport() {
2239
+ if (failed)
2240
+ return;
2241
+ failed = true;
2242
+ cleanup();
2243
+ transport.close();
2244
+ transport = null;
2245
+ }
2246
+ __name(freezeTransport, "freezeTransport");
2247
+ const onerror = /* @__PURE__ */ __name((err) => {
2248
+ const error = new Error("probe error: " + err);
2249
+ error.transport = transport.name;
2250
+ freezeTransport();
2251
+ debug('probe transport "%s" failed because of error: %s', name, err);
2252
+ this.emitReserved("upgradeError", error);
2253
+ }, "onerror");
2254
+ function onTransportClose() {
2255
+ onerror("transport closed");
2256
+ }
2257
+ __name(onTransportClose, "onTransportClose");
2258
+ function onclose() {
2259
+ onerror("socket closed");
2260
+ }
2261
+ __name(onclose, "onclose");
2262
+ function onupgrade(to) {
2263
+ if (transport && to.name !== transport.name) {
2264
+ debug('"%s" works - aborting "%s"', to.name, transport.name);
2265
+ freezeTransport();
2266
+ }
2267
+ }
2268
+ __name(onupgrade, "onupgrade");
2269
+ const cleanup = /* @__PURE__ */ __name(() => {
2270
+ transport.removeListener("open", onTransportOpen);
2271
+ transport.removeListener("error", onerror);
2272
+ transport.removeListener("close", onTransportClose);
2273
+ this.off("close", onclose);
2274
+ this.off("upgrading", onupgrade);
2275
+ }, "cleanup");
2276
+ transport.once("open", onTransportOpen);
2277
+ transport.once("error", onerror);
2278
+ transport.once("close", onTransportClose);
2279
+ this.once("close", onclose);
2280
+ this.once("upgrading", onupgrade);
2281
+ if (this.upgrades.indexOf("webtransport") !== -1 && name !== "webtransport") {
2282
+ this.setTimeoutFn(() => {
2283
+ if (!failed) {
2284
+ transport.open();
2285
+ }
2286
+ }, 200);
2287
+ } else {
2288
+ transport.open();
2289
+ }
2290
+ }
2291
+ /**
2292
+ * Called when connection is deemed open.
2293
+ *
2294
+ * @private
2295
+ */
2296
+ onOpen() {
2297
+ debug("socket open");
2298
+ this.readyState = "open";
2299
+ _Socket.priorWebsocketSuccess = "websocket" === this.transport.name;
2300
+ this.emitReserved("open");
2301
+ this.flush();
2302
+ if ("open" === this.readyState && this.opts.upgrade) {
2303
+ debug("starting upgrade probes");
2304
+ let i = 0;
2305
+ const l = this.upgrades.length;
2306
+ for (; i < l; i++) {
2307
+ this.probe(this.upgrades[i]);
2308
+ }
2309
+ }
2310
+ }
2311
+ /**
2312
+ * Handles a packet.
2313
+ *
2314
+ * @private
2315
+ */
2316
+ onPacket(packet) {
2317
+ if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) {
2318
+ debug('socket receive: type "%s", data "%s"', packet.type, packet.data);
2319
+ this.emitReserved("packet", packet);
2320
+ this.emitReserved("heartbeat");
2321
+ this.resetPingTimeout();
2322
+ switch (packet.type) {
2323
+ case "open":
2324
+ this.onHandshake(JSON.parse(packet.data));
2325
+ break;
2326
+ case "ping":
2327
+ this.sendPacket("pong");
2328
+ this.emitReserved("ping");
2329
+ this.emitReserved("pong");
2330
+ break;
2331
+ case "error":
2332
+ const err = new Error("server error");
2333
+ err.code = packet.data;
2334
+ this.onError(err);
2335
+ break;
2336
+ case "message":
2337
+ this.emitReserved("data", packet.data);
2338
+ this.emitReserved("message", packet.data);
2339
+ break;
2340
+ }
2341
+ } else {
2342
+ debug('packet received with socket readyState "%s"', this.readyState);
2343
+ }
2344
+ }
2345
+ /**
2346
+ * Called upon handshake completion.
2347
+ *
2348
+ * @param {Object} data - handshake obj
2349
+ * @private
2350
+ */
2351
+ onHandshake(data) {
2352
+ this.emitReserved("handshake", data);
2353
+ this.id = data.sid;
2354
+ this.transport.query.sid = data.sid;
2355
+ this.upgrades = this.filterUpgrades(data.upgrades);
2356
+ this.pingInterval = data.pingInterval;
2357
+ this.pingTimeout = data.pingTimeout;
2358
+ this.maxPayload = data.maxPayload;
2359
+ this.onOpen();
2360
+ if ("closed" === this.readyState)
2361
+ return;
2362
+ this.resetPingTimeout();
2363
+ }
2364
+ /**
2365
+ * Sets and resets ping timeout timer based on server pings.
2366
+ *
2367
+ * @private
2368
+ */
2369
+ resetPingTimeout() {
2370
+ this.clearTimeoutFn(this.pingTimeoutTimer);
2371
+ this.pingTimeoutTimer = this.setTimeoutFn(() => {
2372
+ this.onClose("ping timeout");
2373
+ }, this.pingInterval + this.pingTimeout);
2374
+ if (this.opts.autoUnref) {
2375
+ this.pingTimeoutTimer.unref();
2376
+ }
2377
+ }
2378
+ /**
2379
+ * Called on `drain` event
2380
+ *
2381
+ * @private
2382
+ */
2383
+ onDrain() {
2384
+ this.writeBuffer.splice(0, this.prevBufferLen);
2385
+ this.prevBufferLen = 0;
2386
+ if (0 === this.writeBuffer.length) {
2387
+ this.emitReserved("drain");
2388
+ } else {
2389
+ this.flush();
2390
+ }
2391
+ }
2392
+ /**
2393
+ * Flush write buffers.
2394
+ *
2395
+ * @private
2396
+ */
2397
+ flush() {
2398
+ if ("closed" !== this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length) {
2399
+ const packets = this.getWritablePackets();
2400
+ debug("flushing %d packets in socket", packets.length);
2401
+ this.transport.send(packets);
2402
+ this.prevBufferLen = packets.length;
2403
+ this.emitReserved("flush");
2404
+ }
2405
+ }
2406
+ /**
2407
+ * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP
2408
+ * long-polling)
2409
+ *
2410
+ * @private
2411
+ */
2412
+ getWritablePackets() {
2413
+ const shouldCheckPayloadSize = this.maxPayload && this.transport.name === "polling" && this.writeBuffer.length > 1;
2414
+ if (!shouldCheckPayloadSize) {
2415
+ return this.writeBuffer;
2416
+ }
2417
+ let payloadSize = 1;
2418
+ for (let i = 0; i < this.writeBuffer.length; i++) {
2419
+ const data = this.writeBuffer[i].data;
2420
+ if (data) {
2421
+ payloadSize += (0, util_js_1.byteLength)(data);
2422
+ }
2423
+ if (i > 0 && payloadSize > this.maxPayload) {
2424
+ debug("only send %d out of %d packets", i, this.writeBuffer.length);
2425
+ return this.writeBuffer.slice(0, i);
2426
+ }
2427
+ payloadSize += 2;
2428
+ }
2429
+ debug("payload size is %d (max: %d)", payloadSize, this.maxPayload);
2430
+ return this.writeBuffer;
2431
+ }
2432
+ /**
2433
+ * Sends a message.
2434
+ *
2435
+ * @param {String} msg - message.
2436
+ * @param {Object} options.
2437
+ * @param {Function} callback function.
2438
+ * @return {Socket} for chaining.
2439
+ */
2440
+ write(msg, options, fn) {
2441
+ this.sendPacket("message", msg, options, fn);
2442
+ return this;
2443
+ }
2444
+ send(msg, options, fn) {
2445
+ this.sendPacket("message", msg, options, fn);
2446
+ return this;
2447
+ }
2448
+ /**
2449
+ * Sends a packet.
2450
+ *
2451
+ * @param {String} type: packet type.
2452
+ * @param {String} data.
2453
+ * @param {Object} options.
2454
+ * @param {Function} fn - callback function.
2455
+ * @private
2456
+ */
2457
+ sendPacket(type, data, options, fn) {
2458
+ if ("function" === typeof data) {
2459
+ fn = data;
2460
+ data = void 0;
2461
+ }
2462
+ if ("function" === typeof options) {
2463
+ fn = options;
2464
+ options = null;
2465
+ }
2466
+ if ("closing" === this.readyState || "closed" === this.readyState) {
2467
+ return;
2468
+ }
2469
+ options = options || {};
2470
+ options.compress = false !== options.compress;
2471
+ const packet = {
2472
+ type,
2473
+ data,
2474
+ options
2475
+ };
2476
+ this.emitReserved("packetCreate", packet);
2477
+ this.writeBuffer.push(packet);
2478
+ if (fn)
2479
+ this.once("flush", fn);
2480
+ this.flush();
2481
+ }
2482
+ /**
2483
+ * Closes the connection.
2484
+ */
2485
+ close() {
2486
+ const close = /* @__PURE__ */ __name(() => {
2487
+ this.onClose("forced close");
2488
+ debug("socket closing - telling transport to close");
2489
+ this.transport.close();
2490
+ }, "close");
2491
+ const cleanupAndClose = /* @__PURE__ */ __name(() => {
2492
+ this.off("upgrade", cleanupAndClose);
2493
+ this.off("upgradeError", cleanupAndClose);
2494
+ close();
2495
+ }, "cleanupAndClose");
2496
+ const waitForUpgrade = /* @__PURE__ */ __name(() => {
2497
+ this.once("upgrade", cleanupAndClose);
2498
+ this.once("upgradeError", cleanupAndClose);
2499
+ }, "waitForUpgrade");
2500
+ if ("opening" === this.readyState || "open" === this.readyState) {
2501
+ this.readyState = "closing";
2502
+ if (this.writeBuffer.length) {
2503
+ this.once("drain", () => {
2504
+ if (this.upgrading) {
2505
+ waitForUpgrade();
2506
+ } else {
2507
+ close();
2508
+ }
2509
+ });
2510
+ } else if (this.upgrading) {
2511
+ waitForUpgrade();
2512
+ } else {
2513
+ close();
2514
+ }
2515
+ }
2516
+ return this;
2517
+ }
2518
+ /**
2519
+ * Called upon transport error
2520
+ *
2521
+ * @private
2522
+ */
2523
+ onError(err) {
2524
+ debug("socket error %j", err);
2525
+ _Socket.priorWebsocketSuccess = false;
2526
+ this.emitReserved("error", err);
2527
+ this.onClose("transport error", err);
2528
+ }
2529
+ /**
2530
+ * Called upon transport close.
2531
+ *
2532
+ * @private
2533
+ */
2534
+ onClose(reason, description) {
2535
+ if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) {
2536
+ debug('socket close with reason: "%s"', reason);
2537
+ this.clearTimeoutFn(this.pingTimeoutTimer);
2538
+ this.transport.removeAllListeners("close");
2539
+ this.transport.close();
2540
+ this.transport.removeAllListeners();
2541
+ if (typeof removeEventListener === "function") {
2542
+ removeEventListener("beforeunload", this.beforeunloadEventListener, false);
2543
+ removeEventListener("offline", this.offlineEventListener, false);
2544
+ }
2545
+ this.readyState = "closed";
2546
+ this.id = null;
2547
+ this.emitReserved("close", reason, description);
2548
+ this.writeBuffer = [];
2549
+ this.prevBufferLen = 0;
2550
+ }
2551
+ }
2552
+ /**
2553
+ * Filters upgrades, returning only those matching client transports.
2554
+ *
2555
+ * @param {Array} upgrades - server upgrades
2556
+ * @private
2557
+ */
2558
+ filterUpgrades(upgrades) {
2559
+ const filteredUpgrades = [];
2560
+ let i = 0;
2561
+ const j = upgrades.length;
2562
+ for (; i < j; i++) {
2563
+ if (~this.transports.indexOf(upgrades[i]))
2564
+ filteredUpgrades.push(upgrades[i]);
2565
+ }
2566
+ return filteredUpgrades;
2567
+ }
2568
+ };
2569
+ exports.Socket = Socket;
2570
+ Socket.protocol = engine_io_parser_1.protocol;
2571
+ }
2572
+ });
2573
+
2574
+ // node_modules/engine.io-client/build/cjs/index.js
2575
+ var require_cjs2 = __commonJS({
2576
+ "node_modules/engine.io-client/build/cjs/index.js"(exports) {
2577
+ "use strict";
2578
+ Object.defineProperty(exports, "__esModule", { value: true });
2579
+ exports.nextTick = exports.parse = exports.installTimerFunctions = exports.transports = exports.Transport = exports.protocol = exports.Socket = void 0;
2580
+ var socket_js_1 = require_socket();
2581
+ Object.defineProperty(exports, "Socket", { enumerable: true, get: function() {
2582
+ return socket_js_1.Socket;
2583
+ } });
2584
+ exports.protocol = socket_js_1.Socket.protocol;
2585
+ var transport_js_1 = require_transport();
2586
+ Object.defineProperty(exports, "Transport", { enumerable: true, get: function() {
2587
+ return transport_js_1.Transport;
2588
+ } });
2589
+ var index_js_1 = require_transports();
2590
+ Object.defineProperty(exports, "transports", { enumerable: true, get: function() {
2591
+ return index_js_1.transports;
2592
+ } });
2593
+ var util_js_1 = require_util();
2594
+ Object.defineProperty(exports, "installTimerFunctions", { enumerable: true, get: function() {
2595
+ return util_js_1.installTimerFunctions;
2596
+ } });
2597
+ var parseuri_js_1 = require_parseuri();
2598
+ Object.defineProperty(exports, "parse", { enumerable: true, get: function() {
2599
+ return parseuri_js_1.parse;
2600
+ } });
2601
+ var websocket_constructor_js_1 = require_websocket_constructor_browser();
2602
+ Object.defineProperty(exports, "nextTick", { enumerable: true, get: function() {
2603
+ return websocket_constructor_js_1.nextTick;
2604
+ } });
2605
+ }
2606
+ });
2607
+
2608
+ // node_modules/socket.io-client/build/cjs/url.js
2609
+ var require_url = __commonJS({
2610
+ "node_modules/socket.io-client/build/cjs/url.js"(exports) {
2611
+ "use strict";
2612
+ var __importDefault = exports && exports.__importDefault || function(mod) {
2613
+ return mod && mod.__esModule ? mod : { "default": mod };
2614
+ };
2615
+ Object.defineProperty(exports, "__esModule", { value: true });
2616
+ exports.url = void 0;
2617
+ var engine_io_client_1 = require_cjs2();
2618
+ var debug_1 = __importDefault(require_browser());
2619
+ var debug = debug_1.default("socket.io-client:url");
2620
+ function url(uri, path = "", loc) {
2621
+ let obj = uri;
2622
+ loc = loc || typeof location !== "undefined" && location;
2623
+ if (null == uri)
2624
+ uri = loc.protocol + "//" + loc.host;
2625
+ if (typeof uri === "string") {
2626
+ if ("/" === uri.charAt(0)) {
2627
+ if ("/" === uri.charAt(1)) {
2628
+ uri = loc.protocol + uri;
2629
+ } else {
2630
+ uri = loc.host + uri;
2631
+ }
2632
+ }
2633
+ if (!/^(https?|wss?):\/\//.test(uri)) {
2634
+ debug("protocol-less url %s", uri);
2635
+ if ("undefined" !== typeof loc) {
2636
+ uri = loc.protocol + "//" + uri;
2637
+ } else {
2638
+ uri = "https://" + uri;
2639
+ }
2640
+ }
2641
+ debug("parse %s", uri);
2642
+ obj = engine_io_client_1.parse(uri);
2643
+ }
2644
+ if (!obj.port) {
2645
+ if (/^(http|ws)$/.test(obj.protocol)) {
2646
+ obj.port = "80";
2647
+ } else if (/^(http|ws)s$/.test(obj.protocol)) {
2648
+ obj.port = "443";
2649
+ }
2650
+ }
2651
+ obj.path = obj.path || "/";
2652
+ const ipv6 = obj.host.indexOf(":") !== -1;
2653
+ const host = ipv6 ? "[" + obj.host + "]" : obj.host;
2654
+ obj.id = obj.protocol + "://" + host + ":" + obj.port + path;
2655
+ obj.href = obj.protocol + "://" + host + (loc && loc.port === obj.port ? "" : ":" + obj.port);
2656
+ return obj;
2657
+ }
2658
+ __name(url, "url");
2659
+ exports.url = url;
2660
+ }
2661
+ });
2662
+
2663
+ // node_modules/socket.io-parser/build/cjs/is-binary.js
2664
+ var require_is_binary = __commonJS({
2665
+ "node_modules/socket.io-parser/build/cjs/is-binary.js"(exports) {
2666
+ "use strict";
2667
+ Object.defineProperty(exports, "__esModule", { value: true });
2668
+ exports.hasBinary = exports.isBinary = void 0;
2669
+ var withNativeArrayBuffer = typeof ArrayBuffer === "function";
2670
+ var isView = /* @__PURE__ */ __name((obj) => {
2671
+ return typeof ArrayBuffer.isView === "function" ? ArrayBuffer.isView(obj) : obj.buffer instanceof ArrayBuffer;
2672
+ }, "isView");
2673
+ var toString = Object.prototype.toString;
2674
+ var withNativeBlob = typeof Blob === "function" || typeof Blob !== "undefined" && toString.call(Blob) === "[object BlobConstructor]";
2675
+ var withNativeFile = typeof File === "function" || typeof File !== "undefined" && toString.call(File) === "[object FileConstructor]";
2676
+ function isBinary(obj) {
2677
+ return withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj)) || withNativeBlob && obj instanceof Blob || withNativeFile && obj instanceof File;
2678
+ }
2679
+ __name(isBinary, "isBinary");
2680
+ exports.isBinary = isBinary;
2681
+ function hasBinary(obj, toJSON) {
2682
+ if (!obj || typeof obj !== "object") {
2683
+ return false;
2684
+ }
2685
+ if (Array.isArray(obj)) {
2686
+ for (let i = 0, l = obj.length; i < l; i++) {
2687
+ if (hasBinary(obj[i])) {
2688
+ return true;
2689
+ }
2690
+ }
2691
+ return false;
2692
+ }
2693
+ if (isBinary(obj)) {
2694
+ return true;
2695
+ }
2696
+ if (obj.toJSON && typeof obj.toJSON === "function" && arguments.length === 1) {
2697
+ return hasBinary(obj.toJSON(), true);
2698
+ }
2699
+ for (const key in obj) {
2700
+ if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {
2701
+ return true;
2702
+ }
2703
+ }
2704
+ return false;
2705
+ }
2706
+ __name(hasBinary, "hasBinary");
2707
+ exports.hasBinary = hasBinary;
2708
+ }
2709
+ });
2710
+
2711
+ // node_modules/socket.io-parser/build/cjs/binary.js
2712
+ var require_binary = __commonJS({
2713
+ "node_modules/socket.io-parser/build/cjs/binary.js"(exports) {
2714
+ "use strict";
2715
+ Object.defineProperty(exports, "__esModule", { value: true });
2716
+ exports.reconstructPacket = exports.deconstructPacket = void 0;
2717
+ var is_binary_js_1 = require_is_binary();
2718
+ function deconstructPacket(packet) {
2719
+ const buffers = [];
2720
+ const packetData = packet.data;
2721
+ const pack = packet;
2722
+ pack.data = _deconstructPacket(packetData, buffers);
2723
+ pack.attachments = buffers.length;
2724
+ return { packet: pack, buffers };
2725
+ }
2726
+ __name(deconstructPacket, "deconstructPacket");
2727
+ exports.deconstructPacket = deconstructPacket;
2728
+ function _deconstructPacket(data, buffers) {
2729
+ if (!data)
2730
+ return data;
2731
+ if ((0, is_binary_js_1.isBinary)(data)) {
2732
+ const placeholder = { _placeholder: true, num: buffers.length };
2733
+ buffers.push(data);
2734
+ return placeholder;
2735
+ } else if (Array.isArray(data)) {
2736
+ const newData = new Array(data.length);
2737
+ for (let i = 0; i < data.length; i++) {
2738
+ newData[i] = _deconstructPacket(data[i], buffers);
2739
+ }
2740
+ return newData;
2741
+ } else if (typeof data === "object" && !(data instanceof Date)) {
2742
+ const newData = {};
2743
+ for (const key in data) {
2744
+ if (Object.prototype.hasOwnProperty.call(data, key)) {
2745
+ newData[key] = _deconstructPacket(data[key], buffers);
2746
+ }
2747
+ }
2748
+ return newData;
2749
+ }
2750
+ return data;
2751
+ }
2752
+ __name(_deconstructPacket, "_deconstructPacket");
2753
+ function reconstructPacket(packet, buffers) {
2754
+ packet.data = _reconstructPacket(packet.data, buffers);
2755
+ delete packet.attachments;
2756
+ return packet;
2757
+ }
2758
+ __name(reconstructPacket, "reconstructPacket");
2759
+ exports.reconstructPacket = reconstructPacket;
2760
+ function _reconstructPacket(data, buffers) {
2761
+ if (!data)
2762
+ return data;
2763
+ if (data && data._placeholder === true) {
2764
+ const isIndexValid = typeof data.num === "number" && data.num >= 0 && data.num < buffers.length;
2765
+ if (isIndexValid) {
2766
+ return buffers[data.num];
2767
+ } else {
2768
+ throw new Error("illegal attachments");
2769
+ }
2770
+ } else if (Array.isArray(data)) {
2771
+ for (let i = 0; i < data.length; i++) {
2772
+ data[i] = _reconstructPacket(data[i], buffers);
2773
+ }
2774
+ } else if (typeof data === "object") {
2775
+ for (const key in data) {
2776
+ if (Object.prototype.hasOwnProperty.call(data, key)) {
2777
+ data[key] = _reconstructPacket(data[key], buffers);
2778
+ }
2779
+ }
2780
+ }
2781
+ return data;
2782
+ }
2783
+ __name(_reconstructPacket, "_reconstructPacket");
2784
+ }
2785
+ });
2786
+
2787
+ // node_modules/socket.io-parser/build/cjs/index.js
2788
+ var require_cjs3 = __commonJS({
2789
+ "node_modules/socket.io-parser/build/cjs/index.js"(exports) {
2790
+ "use strict";
2791
+ Object.defineProperty(exports, "__esModule", { value: true });
2792
+ exports.Decoder = exports.Encoder = exports.PacketType = exports.protocol = void 0;
2793
+ var component_emitter_1 = require_component_emitter();
2794
+ var binary_js_1 = require_binary();
2795
+ var is_binary_js_1 = require_is_binary();
2796
+ var debug_1 = require_browser();
2797
+ var debug = (0, debug_1.default)("socket.io-parser");
2798
+ var RESERVED_EVENTS = [
2799
+ "connect",
2800
+ "connect_error",
2801
+ "disconnect",
2802
+ "disconnecting",
2803
+ "newListener",
2804
+ "removeListener"
2805
+ // used by the Node.js EventEmitter
2806
+ ];
2807
+ exports.protocol = 5;
2808
+ var PacketType;
2809
+ (function(PacketType2) {
2810
+ PacketType2[PacketType2["CONNECT"] = 0] = "CONNECT";
2811
+ PacketType2[PacketType2["DISCONNECT"] = 1] = "DISCONNECT";
2812
+ PacketType2[PacketType2["EVENT"] = 2] = "EVENT";
2813
+ PacketType2[PacketType2["ACK"] = 3] = "ACK";
2814
+ PacketType2[PacketType2["CONNECT_ERROR"] = 4] = "CONNECT_ERROR";
2815
+ PacketType2[PacketType2["BINARY_EVENT"] = 5] = "BINARY_EVENT";
2816
+ PacketType2[PacketType2["BINARY_ACK"] = 6] = "BINARY_ACK";
2817
+ })(PacketType = exports.PacketType || (exports.PacketType = {}));
2818
+ var Encoder = class {
2819
+ static {
2820
+ __name(this, "Encoder");
2821
+ }
2822
+ /**
2823
+ * Encoder constructor
2824
+ *
2825
+ * @param {function} replacer - custom replacer to pass down to JSON.parse
2826
+ */
2827
+ constructor(replacer) {
2828
+ this.replacer = replacer;
2829
+ }
2830
+ /**
2831
+ * Encode a packet as a single string if non-binary, or as a
2832
+ * buffer sequence, depending on packet type.
2833
+ *
2834
+ * @param {Object} obj - packet object
2835
+ */
2836
+ encode(obj) {
2837
+ debug("encoding packet %j", obj);
2838
+ if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {
2839
+ if ((0, is_binary_js_1.hasBinary)(obj)) {
2840
+ return this.encodeAsBinary({
2841
+ type: obj.type === PacketType.EVENT ? PacketType.BINARY_EVENT : PacketType.BINARY_ACK,
2842
+ nsp: obj.nsp,
2843
+ data: obj.data,
2844
+ id: obj.id
2845
+ });
2846
+ }
2847
+ }
2848
+ return [this.encodeAsString(obj)];
2849
+ }
2850
+ /**
2851
+ * Encode packet as string.
2852
+ */
2853
+ encodeAsString(obj) {
2854
+ let str = "" + obj.type;
2855
+ if (obj.type === PacketType.BINARY_EVENT || obj.type === PacketType.BINARY_ACK) {
2856
+ str += obj.attachments + "-";
2857
+ }
2858
+ if (obj.nsp && "/" !== obj.nsp) {
2859
+ str += obj.nsp + ",";
2860
+ }
2861
+ if (null != obj.id) {
2862
+ str += obj.id;
2863
+ }
2864
+ if (null != obj.data) {
2865
+ str += JSON.stringify(obj.data, this.replacer);
2866
+ }
2867
+ debug("encoded %j as %s", obj, str);
2868
+ return str;
2869
+ }
2870
+ /**
2871
+ * Encode packet as 'buffer sequence' by removing blobs, and
2872
+ * deconstructing packet into object with placeholders and
2873
+ * a list of buffers.
2874
+ */
2875
+ encodeAsBinary(obj) {
2876
+ const deconstruction = (0, binary_js_1.deconstructPacket)(obj);
2877
+ const pack = this.encodeAsString(deconstruction.packet);
2878
+ const buffers = deconstruction.buffers;
2879
+ buffers.unshift(pack);
2880
+ return buffers;
2881
+ }
2882
+ };
2883
+ exports.Encoder = Encoder;
2884
+ function isObject(value) {
2885
+ return Object.prototype.toString.call(value) === "[object Object]";
2886
+ }
2887
+ __name(isObject, "isObject");
2888
+ var Decoder = class _Decoder extends component_emitter_1.Emitter {
2889
+ static {
2890
+ __name(this, "Decoder");
2891
+ }
2892
+ /**
2893
+ * Decoder constructor
2894
+ *
2895
+ * @param {function} reviver - custom reviver to pass down to JSON.stringify
2896
+ */
2897
+ constructor(reviver) {
2898
+ super();
2899
+ this.reviver = reviver;
2900
+ }
2901
+ /**
2902
+ * Decodes an encoded packet string into packet JSON.
2903
+ *
2904
+ * @param {String} obj - encoded packet
2905
+ */
2906
+ add(obj) {
2907
+ let packet;
2908
+ if (typeof obj === "string") {
2909
+ if (this.reconstructor) {
2910
+ throw new Error("got plaintext data when reconstructing a packet");
2911
+ }
2912
+ packet = this.decodeString(obj);
2913
+ const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;
2914
+ if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {
2915
+ packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;
2916
+ this.reconstructor = new BinaryReconstructor(packet);
2917
+ if (packet.attachments === 0) {
2918
+ super.emitReserved("decoded", packet);
2919
+ }
2920
+ } else {
2921
+ super.emitReserved("decoded", packet);
2922
+ }
2923
+ } else if ((0, is_binary_js_1.isBinary)(obj) || obj.base64) {
2924
+ if (!this.reconstructor) {
2925
+ throw new Error("got binary data when not reconstructing a packet");
2926
+ } else {
2927
+ packet = this.reconstructor.takeBinaryData(obj);
2928
+ if (packet) {
2929
+ this.reconstructor = null;
2930
+ super.emitReserved("decoded", packet);
2931
+ }
2932
+ }
2933
+ } else {
2934
+ throw new Error("Unknown type: " + obj);
2935
+ }
2936
+ }
2937
+ /**
2938
+ * Decode a packet String (JSON data)
2939
+ *
2940
+ * @param {String} str
2941
+ * @return {Object} packet
2942
+ */
2943
+ decodeString(str) {
2944
+ let i = 0;
2945
+ const p = {
2946
+ type: Number(str.charAt(0))
2947
+ };
2948
+ if (PacketType[p.type] === void 0) {
2949
+ throw new Error("unknown packet type " + p.type);
2950
+ }
2951
+ if (p.type === PacketType.BINARY_EVENT || p.type === PacketType.BINARY_ACK) {
2952
+ const start = i + 1;
2953
+ while (str.charAt(++i) !== "-" && i != str.length) {
2954
+ }
2955
+ const buf = str.substring(start, i);
2956
+ if (buf != Number(buf) || str.charAt(i) !== "-") {
2957
+ throw new Error("Illegal attachments");
2958
+ }
2959
+ p.attachments = Number(buf);
2960
+ }
2961
+ if ("/" === str.charAt(i + 1)) {
2962
+ const start = i + 1;
2963
+ while (++i) {
2964
+ const c = str.charAt(i);
2965
+ if ("," === c)
2966
+ break;
2967
+ if (i === str.length)
2968
+ break;
2969
+ }
2970
+ p.nsp = str.substring(start, i);
2971
+ } else {
2972
+ p.nsp = "/";
2973
+ }
2974
+ const next = str.charAt(i + 1);
2975
+ if ("" !== next && Number(next) == next) {
2976
+ const start = i + 1;
2977
+ while (++i) {
2978
+ const c = str.charAt(i);
2979
+ if (null == c || Number(c) != c) {
2980
+ --i;
2981
+ break;
2982
+ }
2983
+ if (i === str.length)
2984
+ break;
2985
+ }
2986
+ p.id = Number(str.substring(start, i + 1));
2987
+ }
2988
+ if (str.charAt(++i)) {
2989
+ const payload = this.tryParse(str.substr(i));
2990
+ if (_Decoder.isPayloadValid(p.type, payload)) {
2991
+ p.data = payload;
2992
+ } else {
2993
+ throw new Error("invalid payload");
2994
+ }
2995
+ }
2996
+ debug("decoded %s as %j", str, p);
2997
+ return p;
2998
+ }
2999
+ tryParse(str) {
3000
+ try {
3001
+ return JSON.parse(str, this.reviver);
3002
+ } catch (e) {
3003
+ return false;
3004
+ }
3005
+ }
3006
+ static isPayloadValid(type, payload) {
3007
+ switch (type) {
3008
+ case PacketType.CONNECT:
3009
+ return isObject(payload);
3010
+ case PacketType.DISCONNECT:
3011
+ return payload === void 0;
3012
+ case PacketType.CONNECT_ERROR:
3013
+ return typeof payload === "string" || isObject(payload);
3014
+ case PacketType.EVENT:
3015
+ case PacketType.BINARY_EVENT:
3016
+ return Array.isArray(payload) && (typeof payload[0] === "number" || typeof payload[0] === "string" && RESERVED_EVENTS.indexOf(payload[0]) === -1);
3017
+ case PacketType.ACK:
3018
+ case PacketType.BINARY_ACK:
3019
+ return Array.isArray(payload);
3020
+ }
3021
+ }
3022
+ /**
3023
+ * Deallocates a parser's resources
3024
+ */
3025
+ destroy() {
3026
+ if (this.reconstructor) {
3027
+ this.reconstructor.finishedReconstruction();
3028
+ this.reconstructor = null;
3029
+ }
3030
+ }
3031
+ };
3032
+ exports.Decoder = Decoder;
3033
+ var BinaryReconstructor = class {
3034
+ static {
3035
+ __name(this, "BinaryReconstructor");
3036
+ }
3037
+ constructor(packet) {
3038
+ this.packet = packet;
3039
+ this.buffers = [];
3040
+ this.reconPack = packet;
3041
+ }
3042
+ /**
3043
+ * Method to be called when binary data received from connection
3044
+ * after a BINARY_EVENT packet.
3045
+ *
3046
+ * @param {Buffer | ArrayBuffer} binData - the raw binary data received
3047
+ * @return {null | Object} returns null if more binary data is expected or
3048
+ * a reconstructed packet object if all buffers have been received.
3049
+ */
3050
+ takeBinaryData(binData) {
3051
+ this.buffers.push(binData);
3052
+ if (this.buffers.length === this.reconPack.attachments) {
3053
+ const packet = (0, binary_js_1.reconstructPacket)(this.reconPack, this.buffers);
3054
+ this.finishedReconstruction();
3055
+ return packet;
3056
+ }
3057
+ return null;
3058
+ }
3059
+ /**
3060
+ * Cleans up binary packet reconstruction variables.
3061
+ */
3062
+ finishedReconstruction() {
3063
+ this.reconPack = null;
3064
+ this.buffers = [];
3065
+ }
3066
+ };
3067
+ }
3068
+ });
3069
+
3070
+ // node_modules/socket.io-client/build/cjs/on.js
3071
+ var require_on = __commonJS({
3072
+ "node_modules/socket.io-client/build/cjs/on.js"(exports) {
3073
+ "use strict";
3074
+ Object.defineProperty(exports, "__esModule", { value: true });
3075
+ exports.on = void 0;
3076
+ function on(obj, ev, fn) {
3077
+ obj.on(ev, fn);
3078
+ return /* @__PURE__ */ __name(function subDestroy() {
3079
+ obj.off(ev, fn);
3080
+ }, "subDestroy");
3081
+ }
3082
+ __name(on, "on");
3083
+ exports.on = on;
3084
+ }
3085
+ });
3086
+
3087
+ // node_modules/socket.io-client/build/cjs/socket.js
3088
+ var require_socket2 = __commonJS({
3089
+ "node_modules/socket.io-client/build/cjs/socket.js"(exports) {
3090
+ "use strict";
3091
+ var __importDefault = exports && exports.__importDefault || function(mod) {
3092
+ return mod && mod.__esModule ? mod : { "default": mod };
3093
+ };
3094
+ Object.defineProperty(exports, "__esModule", { value: true });
3095
+ exports.Socket = void 0;
3096
+ var socket_io_parser_1 = require_cjs3();
3097
+ var on_js_1 = require_on();
3098
+ var component_emitter_1 = require_component_emitter();
3099
+ var debug_1 = __importDefault(require_browser());
3100
+ var debug = debug_1.default("socket.io-client:socket");
3101
+ var RESERVED_EVENTS = Object.freeze({
3102
+ connect: 1,
3103
+ connect_error: 1,
3104
+ disconnect: 1,
3105
+ disconnecting: 1,
3106
+ // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener
3107
+ newListener: 1,
3108
+ removeListener: 1
3109
+ });
3110
+ var Socket = class extends component_emitter_1.Emitter {
3111
+ static {
3112
+ __name(this, "Socket");
3113
+ }
3114
+ /**
3115
+ * `Socket` constructor.
3116
+ */
3117
+ constructor(io, nsp, opts) {
3118
+ super();
3119
+ this.connected = false;
3120
+ this.recovered = false;
3121
+ this.receiveBuffer = [];
3122
+ this.sendBuffer = [];
3123
+ this._queue = [];
3124
+ this._queueSeq = 0;
3125
+ this.ids = 0;
3126
+ this.acks = {};
3127
+ this.flags = {};
3128
+ this.io = io;
3129
+ this.nsp = nsp;
3130
+ if (opts && opts.auth) {
3131
+ this.auth = opts.auth;
3132
+ }
3133
+ this._opts = Object.assign({}, opts);
3134
+ if (this.io._autoConnect)
3135
+ this.open();
3136
+ }
3137
+ /**
3138
+ * Whether the socket is currently disconnected
3139
+ *
3140
+ * @example
3141
+ * const socket = io();
3142
+ *
3143
+ * socket.on("connect", () => {
3144
+ * console.log(socket.disconnected); // false
3145
+ * });
3146
+ *
3147
+ * socket.on("disconnect", () => {
3148
+ * console.log(socket.disconnected); // true
3149
+ * });
3150
+ */
3151
+ get disconnected() {
3152
+ return !this.connected;
3153
+ }
3154
+ /**
3155
+ * Subscribe to open, close and packet events
3156
+ *
3157
+ * @private
3158
+ */
3159
+ subEvents() {
3160
+ if (this.subs)
3161
+ return;
3162
+ const io = this.io;
3163
+ this.subs = [
3164
+ on_js_1.on(io, "open", this.onopen.bind(this)),
3165
+ on_js_1.on(io, "packet", this.onpacket.bind(this)),
3166
+ on_js_1.on(io, "error", this.onerror.bind(this)),
3167
+ on_js_1.on(io, "close", this.onclose.bind(this))
3168
+ ];
3169
+ }
3170
+ /**
3171
+ * Whether the Socket will try to reconnect when its Manager connects or reconnects.
3172
+ *
3173
+ * @example
3174
+ * const socket = io();
3175
+ *
3176
+ * console.log(socket.active); // true
3177
+ *
3178
+ * socket.on("disconnect", (reason) => {
3179
+ * if (reason === "io server disconnect") {
3180
+ * // the disconnection was initiated by the server, you need to manually reconnect
3181
+ * console.log(socket.active); // false
3182
+ * }
3183
+ * // else the socket will automatically try to reconnect
3184
+ * console.log(socket.active); // true
3185
+ * });
3186
+ */
3187
+ get active() {
3188
+ return !!this.subs;
3189
+ }
3190
+ /**
3191
+ * "Opens" the socket.
3192
+ *
3193
+ * @example
3194
+ * const socket = io({
3195
+ * autoConnect: false
3196
+ * });
3197
+ *
3198
+ * socket.connect();
3199
+ */
3200
+ connect() {
3201
+ if (this.connected)
3202
+ return this;
3203
+ this.subEvents();
3204
+ if (!this.io["_reconnecting"])
3205
+ this.io.open();
3206
+ if ("open" === this.io._readyState)
3207
+ this.onopen();
3208
+ return this;
3209
+ }
3210
+ /**
3211
+ * Alias for {@link connect()}.
3212
+ */
3213
+ open() {
3214
+ return this.connect();
3215
+ }
3216
+ /**
3217
+ * Sends a `message` event.
3218
+ *
3219
+ * This method mimics the WebSocket.send() method.
3220
+ *
3221
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send
3222
+ *
3223
+ * @example
3224
+ * socket.send("hello");
3225
+ *
3226
+ * // this is equivalent to
3227
+ * socket.emit("message", "hello");
3228
+ *
3229
+ * @return self
3230
+ */
3231
+ send(...args) {
3232
+ args.unshift("message");
3233
+ this.emit.apply(this, args);
3234
+ return this;
3235
+ }
3236
+ /**
3237
+ * Override `emit`.
3238
+ * If the event is in `events`, it's emitted normally.
3239
+ *
3240
+ * @example
3241
+ * socket.emit("hello", "world");
3242
+ *
3243
+ * // all serializable datastructures are supported (no need to call JSON.stringify)
3244
+ * socket.emit("hello", 1, "2", { 3: ["4"], 5: Uint8Array.from([6]) });
3245
+ *
3246
+ * // with an acknowledgement from the server
3247
+ * socket.emit("hello", "world", (val) => {
3248
+ * // ...
3249
+ * });
3250
+ *
3251
+ * @return self
3252
+ */
3253
+ emit(ev, ...args) {
3254
+ if (RESERVED_EVENTS.hasOwnProperty(ev)) {
3255
+ throw new Error('"' + ev.toString() + '" is a reserved event name');
3256
+ }
3257
+ args.unshift(ev);
3258
+ if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {
3259
+ this._addToQueue(args);
3260
+ return this;
3261
+ }
3262
+ const packet = {
3263
+ type: socket_io_parser_1.PacketType.EVENT,
3264
+ data: args
3265
+ };
3266
+ packet.options = {};
3267
+ packet.options.compress = this.flags.compress !== false;
3268
+ if ("function" === typeof args[args.length - 1]) {
3269
+ const id = this.ids++;
3270
+ debug("emitting packet with ack id %d", id);
3271
+ const ack = args.pop();
3272
+ this._registerAckCallback(id, ack);
3273
+ packet.id = id;
3274
+ }
3275
+ const isTransportWritable = this.io.engine && this.io.engine.transport && this.io.engine.transport.writable;
3276
+ const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);
3277
+ if (discardPacket) {
3278
+ debug("discard packet as the transport is not currently writable");
3279
+ } else if (this.connected) {
3280
+ this.notifyOutgoingListeners(packet);
3281
+ this.packet(packet);
3282
+ } else {
3283
+ this.sendBuffer.push(packet);
3284
+ }
3285
+ this.flags = {};
3286
+ return this;
3287
+ }
3288
+ /**
3289
+ * @private
3290
+ */
3291
+ _registerAckCallback(id, ack) {
3292
+ var _a;
3293
+ const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;
3294
+ if (timeout === void 0) {
3295
+ this.acks[id] = ack;
3296
+ return;
3297
+ }
3298
+ const timer = this.io.setTimeoutFn(() => {
3299
+ delete this.acks[id];
3300
+ for (let i = 0; i < this.sendBuffer.length; i++) {
3301
+ if (this.sendBuffer[i].id === id) {
3302
+ debug("removing packet with ack id %d from the buffer", id);
3303
+ this.sendBuffer.splice(i, 1);
3304
+ }
3305
+ }
3306
+ debug("event with ack id %d has timed out after %d ms", id, timeout);
3307
+ ack.call(this, new Error("operation has timed out"));
3308
+ }, timeout);
3309
+ this.acks[id] = (...args) => {
3310
+ this.io.clearTimeoutFn(timer);
3311
+ ack.apply(this, [null, ...args]);
3312
+ };
3313
+ }
3314
+ /**
3315
+ * Emits an event and waits for an acknowledgement
3316
+ *
3317
+ * @example
3318
+ * // without timeout
3319
+ * const response = await socket.emitWithAck("hello", "world");
3320
+ *
3321
+ * // with a specific timeout
3322
+ * try {
3323
+ * const response = await socket.timeout(1000).emitWithAck("hello", "world");
3324
+ * } catch (err) {
3325
+ * // the server did not acknowledge the event in the given delay
3326
+ * }
3327
+ *
3328
+ * @return a Promise that will be fulfilled when the server acknowledges the event
3329
+ */
3330
+ emitWithAck(ev, ...args) {
3331
+ const withErr = this.flags.timeout !== void 0 || this._opts.ackTimeout !== void 0;
3332
+ return new Promise((resolve, reject) => {
3333
+ args.push((arg1, arg2) => {
3334
+ if (withErr) {
3335
+ return arg1 ? reject(arg1) : resolve(arg2);
3336
+ } else {
3337
+ return resolve(arg1);
3338
+ }
3339
+ });
3340
+ this.emit(ev, ...args);
3341
+ });
3342
+ }
3343
+ /**
3344
+ * Add the packet to the queue.
3345
+ * @param args
3346
+ * @private
3347
+ */
3348
+ _addToQueue(args) {
3349
+ let ack;
3350
+ if (typeof args[args.length - 1] === "function") {
3351
+ ack = args.pop();
3352
+ }
3353
+ const packet = {
3354
+ id: this._queueSeq++,
3355
+ tryCount: 0,
3356
+ pending: false,
3357
+ args,
3358
+ flags: Object.assign({ fromQueue: true }, this.flags)
3359
+ };
3360
+ args.push((err, ...responseArgs) => {
3361
+ if (packet !== this._queue[0]) {
3362
+ return;
3363
+ }
3364
+ const hasError = err !== null;
3365
+ if (hasError) {
3366
+ if (packet.tryCount > this._opts.retries) {
3367
+ debug("packet [%d] is discarded after %d tries", packet.id, packet.tryCount);
3368
+ this._queue.shift();
3369
+ if (ack) {
3370
+ ack(err);
3371
+ }
3372
+ }
3373
+ } else {
3374
+ debug("packet [%d] was successfully sent", packet.id);
3375
+ this._queue.shift();
3376
+ if (ack) {
3377
+ ack(null, ...responseArgs);
3378
+ }
3379
+ }
3380
+ packet.pending = false;
3381
+ return this._drainQueue();
3382
+ });
3383
+ this._queue.push(packet);
3384
+ this._drainQueue();
3385
+ }
3386
+ /**
3387
+ * Send the first packet of the queue, and wait for an acknowledgement from the server.
3388
+ * @param force - whether to resend a packet that has not been acknowledged yet
3389
+ *
3390
+ * @private
3391
+ */
3392
+ _drainQueue(force = false) {
3393
+ debug("draining queue");
3394
+ if (!this.connected || this._queue.length === 0) {
3395
+ return;
3396
+ }
3397
+ const packet = this._queue[0];
3398
+ if (packet.pending && !force) {
3399
+ debug("packet [%d] has already been sent and is waiting for an ack", packet.id);
3400
+ return;
3401
+ }
3402
+ packet.pending = true;
3403
+ packet.tryCount++;
3404
+ debug("sending packet [%d] (try n\xB0%d)", packet.id, packet.tryCount);
3405
+ this.flags = packet.flags;
3406
+ this.emit.apply(this, packet.args);
3407
+ }
3408
+ /**
3409
+ * Sends a packet.
3410
+ *
3411
+ * @param packet
3412
+ * @private
3413
+ */
3414
+ packet(packet) {
3415
+ packet.nsp = this.nsp;
3416
+ this.io._packet(packet);
3417
+ }
3418
+ /**
3419
+ * Called upon engine `open`.
3420
+ *
3421
+ * @private
3422
+ */
3423
+ onopen() {
3424
+ debug("transport is open - connecting");
3425
+ if (typeof this.auth == "function") {
3426
+ this.auth((data) => {
3427
+ this._sendConnectPacket(data);
3428
+ });
3429
+ } else {
3430
+ this._sendConnectPacket(this.auth);
3431
+ }
3432
+ }
3433
+ /**
3434
+ * Sends a CONNECT packet to initiate the Socket.IO session.
3435
+ *
3436
+ * @param data
3437
+ * @private
3438
+ */
3439
+ _sendConnectPacket(data) {
3440
+ this.packet({
3441
+ type: socket_io_parser_1.PacketType.CONNECT,
3442
+ data: this._pid ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data) : data
3443
+ });
3444
+ }
3445
+ /**
3446
+ * Called upon engine or manager `error`.
3447
+ *
3448
+ * @param err
3449
+ * @private
3450
+ */
3451
+ onerror(err) {
3452
+ if (!this.connected) {
3453
+ this.emitReserved("connect_error", err);
3454
+ }
3455
+ }
3456
+ /**
3457
+ * Called upon engine `close`.
3458
+ *
3459
+ * @param reason
3460
+ * @param description
3461
+ * @private
3462
+ */
3463
+ onclose(reason, description) {
3464
+ debug("close (%s)", reason);
3465
+ this.connected = false;
3466
+ delete this.id;
3467
+ this.emitReserved("disconnect", reason, description);
3468
+ }
3469
+ /**
3470
+ * Called with socket packet.
3471
+ *
3472
+ * @param packet
3473
+ * @private
3474
+ */
3475
+ onpacket(packet) {
3476
+ const sameNamespace = packet.nsp === this.nsp;
3477
+ if (!sameNamespace)
3478
+ return;
3479
+ switch (packet.type) {
3480
+ case socket_io_parser_1.PacketType.CONNECT:
3481
+ if (packet.data && packet.data.sid) {
3482
+ this.onconnect(packet.data.sid, packet.data.pid);
3483
+ } else {
3484
+ this.emitReserved("connect_error", new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));
3485
+ }
3486
+ break;
3487
+ case socket_io_parser_1.PacketType.EVENT:
3488
+ case socket_io_parser_1.PacketType.BINARY_EVENT:
3489
+ this.onevent(packet);
3490
+ break;
3491
+ case socket_io_parser_1.PacketType.ACK:
3492
+ case socket_io_parser_1.PacketType.BINARY_ACK:
3493
+ this.onack(packet);
3494
+ break;
3495
+ case socket_io_parser_1.PacketType.DISCONNECT:
3496
+ this.ondisconnect();
3497
+ break;
3498
+ case socket_io_parser_1.PacketType.CONNECT_ERROR:
3499
+ this.destroy();
3500
+ const err = new Error(packet.data.message);
3501
+ err.data = packet.data.data;
3502
+ this.emitReserved("connect_error", err);
3503
+ break;
3504
+ }
3505
+ }
3506
+ /**
3507
+ * Called upon a server event.
3508
+ *
3509
+ * @param packet
3510
+ * @private
3511
+ */
3512
+ onevent(packet) {
3513
+ const args = packet.data || [];
3514
+ debug("emitting event %j", args);
3515
+ if (null != packet.id) {
3516
+ debug("attaching ack callback to event");
3517
+ args.push(this.ack(packet.id));
3518
+ }
3519
+ if (this.connected) {
3520
+ this.emitEvent(args);
3521
+ } else {
3522
+ this.receiveBuffer.push(Object.freeze(args));
3523
+ }
3524
+ }
3525
+ emitEvent(args) {
3526
+ if (this._anyListeners && this._anyListeners.length) {
3527
+ const listeners = this._anyListeners.slice();
3528
+ for (const listener of listeners) {
3529
+ listener.apply(this, args);
3530
+ }
3531
+ }
3532
+ super.emit.apply(this, args);
3533
+ if (this._pid && args.length && typeof args[args.length - 1] === "string") {
3534
+ this._lastOffset = args[args.length - 1];
3535
+ }
3536
+ }
3537
+ /**
3538
+ * Produces an ack callback to emit with an event.
3539
+ *
3540
+ * @private
3541
+ */
3542
+ ack(id) {
3543
+ const self2 = this;
3544
+ let sent = false;
3545
+ return function(...args) {
3546
+ if (sent)
3547
+ return;
3548
+ sent = true;
3549
+ debug("sending ack %j", args);
3550
+ self2.packet({
3551
+ type: socket_io_parser_1.PacketType.ACK,
3552
+ id,
3553
+ data: args
3554
+ });
3555
+ };
3556
+ }
3557
+ /**
3558
+ * Called upon a server acknowlegement.
3559
+ *
3560
+ * @param packet
3561
+ * @private
3562
+ */
3563
+ onack(packet) {
3564
+ const ack = this.acks[packet.id];
3565
+ if ("function" === typeof ack) {
3566
+ debug("calling ack %s with %j", packet.id, packet.data);
3567
+ ack.apply(this, packet.data);
3568
+ delete this.acks[packet.id];
3569
+ } else {
3570
+ debug("bad ack %s", packet.id);
3571
+ }
3572
+ }
3573
+ /**
3574
+ * Called upon server connect.
3575
+ *
3576
+ * @private
3577
+ */
3578
+ onconnect(id, pid) {
3579
+ debug("socket connected with id %s", id);
3580
+ this.id = id;
3581
+ this.recovered = pid && this._pid === pid;
3582
+ this._pid = pid;
3583
+ this.connected = true;
3584
+ this.emitBuffered();
3585
+ this.emitReserved("connect");
3586
+ this._drainQueue(true);
3587
+ }
3588
+ /**
3589
+ * Emit buffered events (received and emitted).
3590
+ *
3591
+ * @private
3592
+ */
3593
+ emitBuffered() {
3594
+ this.receiveBuffer.forEach((args) => this.emitEvent(args));
3595
+ this.receiveBuffer = [];
3596
+ this.sendBuffer.forEach((packet) => {
3597
+ this.notifyOutgoingListeners(packet);
3598
+ this.packet(packet);
3599
+ });
3600
+ this.sendBuffer = [];
3601
+ }
3602
+ /**
3603
+ * Called upon server disconnect.
3604
+ *
3605
+ * @private
3606
+ */
3607
+ ondisconnect() {
3608
+ debug("server disconnect (%s)", this.nsp);
3609
+ this.destroy();
3610
+ this.onclose("io server disconnect");
3611
+ }
3612
+ /**
3613
+ * Called upon forced client/server side disconnections,
3614
+ * this method ensures the manager stops tracking us and
3615
+ * that reconnections don't get triggered for this.
3616
+ *
3617
+ * @private
3618
+ */
3619
+ destroy() {
3620
+ if (this.subs) {
3621
+ this.subs.forEach((subDestroy) => subDestroy());
3622
+ this.subs = void 0;
3623
+ }
3624
+ this.io["_destroy"](this);
3625
+ }
3626
+ /**
3627
+ * Disconnects the socket manually. In that case, the socket will not try to reconnect.
3628
+ *
3629
+ * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.
3630
+ *
3631
+ * @example
3632
+ * const socket = io();
3633
+ *
3634
+ * socket.on("disconnect", (reason) => {
3635
+ * // console.log(reason); prints "io client disconnect"
3636
+ * });
3637
+ *
3638
+ * socket.disconnect();
3639
+ *
3640
+ * @return self
3641
+ */
3642
+ disconnect() {
3643
+ if (this.connected) {
3644
+ debug("performing disconnect (%s)", this.nsp);
3645
+ this.packet({ type: socket_io_parser_1.PacketType.DISCONNECT });
3646
+ }
3647
+ this.destroy();
3648
+ if (this.connected) {
3649
+ this.onclose("io client disconnect");
3650
+ }
3651
+ return this;
3652
+ }
3653
+ /**
3654
+ * Alias for {@link disconnect()}.
3655
+ *
3656
+ * @return self
3657
+ */
3658
+ close() {
3659
+ return this.disconnect();
3660
+ }
3661
+ /**
3662
+ * Sets the compress flag.
3663
+ *
3664
+ * @example
3665
+ * socket.compress(false).emit("hello");
3666
+ *
3667
+ * @param compress - if `true`, compresses the sending data
3668
+ * @return self
3669
+ */
3670
+ compress(compress) {
3671
+ this.flags.compress = compress;
3672
+ return this;
3673
+ }
3674
+ /**
3675
+ * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not
3676
+ * ready to send messages.
3677
+ *
3678
+ * @example
3679
+ * socket.volatile.emit("hello"); // the server may or may not receive it
3680
+ *
3681
+ * @returns self
3682
+ */
3683
+ get volatile() {
3684
+ this.flags.volatile = true;
3685
+ return this;
3686
+ }
3687
+ /**
3688
+ * Sets a modifier for a subsequent event emission that the callback will be called with an error when the
3689
+ * given number of milliseconds have elapsed without an acknowledgement from the server:
3690
+ *
3691
+ * @example
3692
+ * socket.timeout(5000).emit("my-event", (err) => {
3693
+ * if (err) {
3694
+ * // the server did not acknowledge the event in the given delay
3695
+ * }
3696
+ * });
3697
+ *
3698
+ * @returns self
3699
+ */
3700
+ timeout(timeout) {
3701
+ this.flags.timeout = timeout;
3702
+ return this;
3703
+ }
3704
+ /**
3705
+ * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the
3706
+ * callback.
3707
+ *
3708
+ * @example
3709
+ * socket.onAny((event, ...args) => {
3710
+ * console.log(`got ${event}`);
3711
+ * });
3712
+ *
3713
+ * @param listener
3714
+ */
3715
+ onAny(listener) {
3716
+ this._anyListeners = this._anyListeners || [];
3717
+ this._anyListeners.push(listener);
3718
+ return this;
3719
+ }
3720
+ /**
3721
+ * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the
3722
+ * callback. The listener is added to the beginning of the listeners array.
3723
+ *
3724
+ * @example
3725
+ * socket.prependAny((event, ...args) => {
3726
+ * console.log(`got event ${event}`);
3727
+ * });
3728
+ *
3729
+ * @param listener
3730
+ */
3731
+ prependAny(listener) {
3732
+ this._anyListeners = this._anyListeners || [];
3733
+ this._anyListeners.unshift(listener);
3734
+ return this;
3735
+ }
3736
+ /**
3737
+ * Removes the listener that will be fired when any event is emitted.
3738
+ *
3739
+ * @example
3740
+ * const catchAllListener = (event, ...args) => {
3741
+ * console.log(`got event ${event}`);
3742
+ * }
3743
+ *
3744
+ * socket.onAny(catchAllListener);
3745
+ *
3746
+ * // remove a specific listener
3747
+ * socket.offAny(catchAllListener);
3748
+ *
3749
+ * // or remove all listeners
3750
+ * socket.offAny();
3751
+ *
3752
+ * @param listener
3753
+ */
3754
+ offAny(listener) {
3755
+ if (!this._anyListeners) {
3756
+ return this;
3757
+ }
3758
+ if (listener) {
3759
+ const listeners = this._anyListeners;
3760
+ for (let i = 0; i < listeners.length; i++) {
3761
+ if (listener === listeners[i]) {
3762
+ listeners.splice(i, 1);
3763
+ return this;
3764
+ }
3765
+ }
3766
+ } else {
3767
+ this._anyListeners = [];
3768
+ }
3769
+ return this;
3770
+ }
3771
+ /**
3772
+ * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,
3773
+ * e.g. to remove listeners.
3774
+ */
3775
+ listenersAny() {
3776
+ return this._anyListeners || [];
3777
+ }
3778
+ /**
3779
+ * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the
3780
+ * callback.
3781
+ *
3782
+ * Note: acknowledgements sent to the server are not included.
3783
+ *
3784
+ * @example
3785
+ * socket.onAnyOutgoing((event, ...args) => {
3786
+ * console.log(`sent event ${event}`);
3787
+ * });
3788
+ *
3789
+ * @param listener
3790
+ */
3791
+ onAnyOutgoing(listener) {
3792
+ this._anyOutgoingListeners = this._anyOutgoingListeners || [];
3793
+ this._anyOutgoingListeners.push(listener);
3794
+ return this;
3795
+ }
3796
+ /**
3797
+ * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the
3798
+ * callback. The listener is added to the beginning of the listeners array.
3799
+ *
3800
+ * Note: acknowledgements sent to the server are not included.
3801
+ *
3802
+ * @example
3803
+ * socket.prependAnyOutgoing((event, ...args) => {
3804
+ * console.log(`sent event ${event}`);
3805
+ * });
3806
+ *
3807
+ * @param listener
3808
+ */
3809
+ prependAnyOutgoing(listener) {
3810
+ this._anyOutgoingListeners = this._anyOutgoingListeners || [];
3811
+ this._anyOutgoingListeners.unshift(listener);
3812
+ return this;
3813
+ }
3814
+ /**
3815
+ * Removes the listener that will be fired when any event is emitted.
3816
+ *
3817
+ * @example
3818
+ * const catchAllListener = (event, ...args) => {
3819
+ * console.log(`sent event ${event}`);
3820
+ * }
3821
+ *
3822
+ * socket.onAnyOutgoing(catchAllListener);
3823
+ *
3824
+ * // remove a specific listener
3825
+ * socket.offAnyOutgoing(catchAllListener);
3826
+ *
3827
+ * // or remove all listeners
3828
+ * socket.offAnyOutgoing();
3829
+ *
3830
+ * @param [listener] - the catch-all listener (optional)
3831
+ */
3832
+ offAnyOutgoing(listener) {
3833
+ if (!this._anyOutgoingListeners) {
3834
+ return this;
3835
+ }
3836
+ if (listener) {
3837
+ const listeners = this._anyOutgoingListeners;
3838
+ for (let i = 0; i < listeners.length; i++) {
3839
+ if (listener === listeners[i]) {
3840
+ listeners.splice(i, 1);
3841
+ return this;
3842
+ }
3843
+ }
3844
+ } else {
3845
+ this._anyOutgoingListeners = [];
3846
+ }
3847
+ return this;
3848
+ }
3849
+ /**
3850
+ * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,
3851
+ * e.g. to remove listeners.
3852
+ */
3853
+ listenersAnyOutgoing() {
3854
+ return this._anyOutgoingListeners || [];
3855
+ }
3856
+ /**
3857
+ * Notify the listeners for each packet sent
3858
+ *
3859
+ * @param packet
3860
+ *
3861
+ * @private
3862
+ */
3863
+ notifyOutgoingListeners(packet) {
3864
+ if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {
3865
+ const listeners = this._anyOutgoingListeners.slice();
3866
+ for (const listener of listeners) {
3867
+ listener.apply(this, packet.data);
3868
+ }
3869
+ }
3870
+ }
3871
+ };
3872
+ exports.Socket = Socket;
3873
+ }
3874
+ });
3875
+
3876
+ // node_modules/socket.io-client/build/cjs/contrib/backo2.js
3877
+ var require_backo2 = __commonJS({
3878
+ "node_modules/socket.io-client/build/cjs/contrib/backo2.js"(exports) {
3879
+ "use strict";
3880
+ Object.defineProperty(exports, "__esModule", { value: true });
3881
+ exports.Backoff = void 0;
3882
+ function Backoff(opts) {
3883
+ opts = opts || {};
3884
+ this.ms = opts.min || 100;
3885
+ this.max = opts.max || 1e4;
3886
+ this.factor = opts.factor || 2;
3887
+ this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;
3888
+ this.attempts = 0;
3889
+ }
3890
+ __name(Backoff, "Backoff");
3891
+ exports.Backoff = Backoff;
3892
+ Backoff.prototype.duration = function() {
3893
+ var ms = this.ms * Math.pow(this.factor, this.attempts++);
3894
+ if (this.jitter) {
3895
+ var rand = Math.random();
3896
+ var deviation = Math.floor(rand * this.jitter * ms);
3897
+ ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;
3898
+ }
3899
+ return Math.min(ms, this.max) | 0;
3900
+ };
3901
+ Backoff.prototype.reset = function() {
3902
+ this.attempts = 0;
3903
+ };
3904
+ Backoff.prototype.setMin = function(min) {
3905
+ this.ms = min;
3906
+ };
3907
+ Backoff.prototype.setMax = function(max) {
3908
+ this.max = max;
3909
+ };
3910
+ Backoff.prototype.setJitter = function(jitter) {
3911
+ this.jitter = jitter;
3912
+ };
3913
+ }
3914
+ });
3915
+
3916
+ // node_modules/socket.io-client/build/cjs/manager.js
3917
+ var require_manager = __commonJS({
3918
+ "node_modules/socket.io-client/build/cjs/manager.js"(exports) {
3919
+ "use strict";
3920
+ var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
3921
+ if (k2 === void 0)
3922
+ k2 = k;
3923
+ Object.defineProperty(o, k2, { enumerable: true, get: function() {
3924
+ return m[k];
3925
+ } });
3926
+ } : function(o, m, k, k2) {
3927
+ if (k2 === void 0)
3928
+ k2 = k;
3929
+ o[k2] = m[k];
3930
+ });
3931
+ var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
3932
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
3933
+ } : function(o, v) {
3934
+ o["default"] = v;
3935
+ });
3936
+ var __importStar = exports && exports.__importStar || function(mod) {
3937
+ if (mod && mod.__esModule)
3938
+ return mod;
3939
+ var result = {};
3940
+ if (mod != null) {
3941
+ for (var k in mod)
3942
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
3943
+ __createBinding(result, mod, k);
3944
+ }
3945
+ __setModuleDefault(result, mod);
3946
+ return result;
3947
+ };
3948
+ var __importDefault = exports && exports.__importDefault || function(mod) {
3949
+ return mod && mod.__esModule ? mod : { "default": mod };
3950
+ };
3951
+ Object.defineProperty(exports, "__esModule", { value: true });
3952
+ exports.Manager = void 0;
3953
+ var engine_io_client_1 = require_cjs2();
3954
+ var socket_js_1 = require_socket2();
3955
+ var parser = __importStar(require_cjs3());
3956
+ var on_js_1 = require_on();
3957
+ var backo2_js_1 = require_backo2();
3958
+ var component_emitter_1 = require_component_emitter();
3959
+ var debug_1 = __importDefault(require_browser());
3960
+ var debug = debug_1.default("socket.io-client:manager");
3961
+ var Manager = class extends component_emitter_1.Emitter {
3962
+ static {
3963
+ __name(this, "Manager");
3964
+ }
3965
+ constructor(uri, opts) {
3966
+ var _a;
3967
+ super();
3968
+ this.nsps = {};
3969
+ this.subs = [];
3970
+ if (uri && "object" === typeof uri) {
3971
+ opts = uri;
3972
+ uri = void 0;
3973
+ }
3974
+ opts = opts || {};
3975
+ opts.path = opts.path || "/socket.io";
3976
+ this.opts = opts;
3977
+ engine_io_client_1.installTimerFunctions(this, opts);
3978
+ this.reconnection(opts.reconnection !== false);
3979
+ this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);
3980
+ this.reconnectionDelay(opts.reconnectionDelay || 1e3);
3981
+ this.reconnectionDelayMax(opts.reconnectionDelayMax || 5e3);
3982
+ this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);
3983
+ this.backoff = new backo2_js_1.Backoff({
3984
+ min: this.reconnectionDelay(),
3985
+ max: this.reconnectionDelayMax(),
3986
+ jitter: this.randomizationFactor()
3987
+ });
3988
+ this.timeout(null == opts.timeout ? 2e4 : opts.timeout);
3989
+ this._readyState = "closed";
3990
+ this.uri = uri;
3991
+ const _parser = opts.parser || parser;
3992
+ this.encoder = new _parser.Encoder();
3993
+ this.decoder = new _parser.Decoder();
3994
+ this._autoConnect = opts.autoConnect !== false;
3995
+ if (this._autoConnect)
3996
+ this.open();
3997
+ }
3998
+ reconnection(v) {
3999
+ if (!arguments.length)
4000
+ return this._reconnection;
4001
+ this._reconnection = !!v;
4002
+ return this;
4003
+ }
4004
+ reconnectionAttempts(v) {
4005
+ if (v === void 0)
4006
+ return this._reconnectionAttempts;
4007
+ this._reconnectionAttempts = v;
4008
+ return this;
4009
+ }
4010
+ reconnectionDelay(v) {
4011
+ var _a;
4012
+ if (v === void 0)
4013
+ return this._reconnectionDelay;
4014
+ this._reconnectionDelay = v;
4015
+ (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);
4016
+ return this;
4017
+ }
4018
+ randomizationFactor(v) {
4019
+ var _a;
4020
+ if (v === void 0)
4021
+ return this._randomizationFactor;
4022
+ this._randomizationFactor = v;
4023
+ (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);
4024
+ return this;
4025
+ }
4026
+ reconnectionDelayMax(v) {
4027
+ var _a;
4028
+ if (v === void 0)
4029
+ return this._reconnectionDelayMax;
4030
+ this._reconnectionDelayMax = v;
4031
+ (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);
4032
+ return this;
4033
+ }
4034
+ timeout(v) {
4035
+ if (!arguments.length)
4036
+ return this._timeout;
4037
+ this._timeout = v;
4038
+ return this;
4039
+ }
4040
+ /**
4041
+ * Starts trying to reconnect if reconnection is enabled and we have not
4042
+ * started reconnecting yet
4043
+ *
4044
+ * @private
4045
+ */
4046
+ maybeReconnectOnOpen() {
4047
+ if (!this._reconnecting && this._reconnection && this.backoff.attempts === 0) {
4048
+ this.reconnect();
4049
+ }
4050
+ }
4051
+ /**
4052
+ * Sets the current transport `socket`.
4053
+ *
4054
+ * @param {Function} fn - optional, callback
4055
+ * @return self
4056
+ * @public
4057
+ */
4058
+ open(fn) {
4059
+ debug("readyState %s", this._readyState);
4060
+ if (~this._readyState.indexOf("open"))
4061
+ return this;
4062
+ debug("opening %s", this.uri);
4063
+ this.engine = new engine_io_client_1.Socket(this.uri, this.opts);
4064
+ const socket = this.engine;
4065
+ const self2 = this;
4066
+ this._readyState = "opening";
4067
+ this.skipReconnect = false;
4068
+ const openSubDestroy = on_js_1.on(socket, "open", function() {
4069
+ self2.onopen();
4070
+ fn && fn();
4071
+ });
4072
+ const onError = /* @__PURE__ */ __name((err) => {
4073
+ debug("error");
4074
+ this.cleanup();
4075
+ this._readyState = "closed";
4076
+ this.emitReserved("error", err);
4077
+ if (fn) {
4078
+ fn(err);
4079
+ } else {
4080
+ this.maybeReconnectOnOpen();
4081
+ }
4082
+ }, "onError");
4083
+ const errorSub = on_js_1.on(socket, "error", onError);
4084
+ if (false !== this._timeout) {
4085
+ const timeout = this._timeout;
4086
+ debug("connect attempt will timeout after %d", timeout);
4087
+ const timer = this.setTimeoutFn(() => {
4088
+ debug("connect attempt timed out after %d", timeout);
4089
+ openSubDestroy();
4090
+ onError(new Error("timeout"));
4091
+ socket.close();
4092
+ }, timeout);
4093
+ if (this.opts.autoUnref) {
4094
+ timer.unref();
4095
+ }
4096
+ this.subs.push(() => {
4097
+ this.clearTimeoutFn(timer);
4098
+ });
4099
+ }
4100
+ this.subs.push(openSubDestroy);
4101
+ this.subs.push(errorSub);
4102
+ return this;
4103
+ }
4104
+ /**
4105
+ * Alias for open()
4106
+ *
4107
+ * @return self
4108
+ * @public
4109
+ */
4110
+ connect(fn) {
4111
+ return this.open(fn);
4112
+ }
4113
+ /**
4114
+ * Called upon transport open.
4115
+ *
4116
+ * @private
4117
+ */
4118
+ onopen() {
4119
+ debug("open");
4120
+ this.cleanup();
4121
+ this._readyState = "open";
4122
+ this.emitReserved("open");
4123
+ const socket = this.engine;
4124
+ this.subs.push(on_js_1.on(socket, "ping", this.onping.bind(this)), on_js_1.on(socket, "data", this.ondata.bind(this)), on_js_1.on(socket, "error", this.onerror.bind(this)), on_js_1.on(socket, "close", this.onclose.bind(this)), on_js_1.on(this.decoder, "decoded", this.ondecoded.bind(this)));
4125
+ }
4126
+ /**
4127
+ * Called upon a ping.
4128
+ *
4129
+ * @private
4130
+ */
4131
+ onping() {
4132
+ this.emitReserved("ping");
4133
+ }
4134
+ /**
4135
+ * Called with data.
4136
+ *
4137
+ * @private
4138
+ */
4139
+ ondata(data) {
4140
+ try {
4141
+ this.decoder.add(data);
4142
+ } catch (e) {
4143
+ this.onclose("parse error", e);
4144
+ }
4145
+ }
4146
+ /**
4147
+ * Called when parser fully decodes a packet.
4148
+ *
4149
+ * @private
4150
+ */
4151
+ ondecoded(packet) {
4152
+ engine_io_client_1.nextTick(() => {
4153
+ this.emitReserved("packet", packet);
4154
+ }, this.setTimeoutFn);
4155
+ }
4156
+ /**
4157
+ * Called upon socket error.
4158
+ *
4159
+ * @private
4160
+ */
4161
+ onerror(err) {
4162
+ debug("error", err);
4163
+ this.emitReserved("error", err);
4164
+ }
4165
+ /**
4166
+ * Creates a new socket for the given `nsp`.
4167
+ *
4168
+ * @return {Socket}
4169
+ * @public
4170
+ */
4171
+ socket(nsp, opts) {
4172
+ let socket = this.nsps[nsp];
4173
+ if (!socket) {
4174
+ socket = new socket_js_1.Socket(this, nsp, opts);
4175
+ this.nsps[nsp] = socket;
4176
+ } else if (this._autoConnect && !socket.active) {
4177
+ socket.connect();
4178
+ }
4179
+ return socket;
4180
+ }
4181
+ /**
4182
+ * Called upon a socket close.
4183
+ *
4184
+ * @param socket
4185
+ * @private
4186
+ */
4187
+ _destroy(socket) {
4188
+ const nsps = Object.keys(this.nsps);
4189
+ for (const nsp of nsps) {
4190
+ const socket2 = this.nsps[nsp];
4191
+ if (socket2.active) {
4192
+ debug("socket %s is still active, skipping close", nsp);
4193
+ return;
4194
+ }
4195
+ }
4196
+ this._close();
4197
+ }
4198
+ /**
4199
+ * Writes a packet.
4200
+ *
4201
+ * @param packet
4202
+ * @private
4203
+ */
4204
+ _packet(packet) {
4205
+ debug("writing packet %j", packet);
4206
+ const encodedPackets = this.encoder.encode(packet);
4207
+ for (let i = 0; i < encodedPackets.length; i++) {
4208
+ this.engine.write(encodedPackets[i], packet.options);
4209
+ }
4210
+ }
4211
+ /**
4212
+ * Clean up transport subscriptions and packet buffer.
4213
+ *
4214
+ * @private
4215
+ */
4216
+ cleanup() {
4217
+ debug("cleanup");
4218
+ this.subs.forEach((subDestroy) => subDestroy());
4219
+ this.subs.length = 0;
4220
+ this.decoder.destroy();
4221
+ }
4222
+ /**
4223
+ * Close the current socket.
4224
+ *
4225
+ * @private
4226
+ */
4227
+ _close() {
4228
+ debug("disconnect");
4229
+ this.skipReconnect = true;
4230
+ this._reconnecting = false;
4231
+ this.onclose("forced close");
4232
+ if (this.engine)
4233
+ this.engine.close();
4234
+ }
4235
+ /**
4236
+ * Alias for close()
4237
+ *
4238
+ * @private
4239
+ */
4240
+ disconnect() {
4241
+ return this._close();
4242
+ }
4243
+ /**
4244
+ * Called upon engine close.
4245
+ *
4246
+ * @private
4247
+ */
4248
+ onclose(reason, description) {
4249
+ debug("closed due to %s", reason);
4250
+ this.cleanup();
4251
+ this.backoff.reset();
4252
+ this._readyState = "closed";
4253
+ this.emitReserved("close", reason, description);
4254
+ if (this._reconnection && !this.skipReconnect) {
4255
+ this.reconnect();
4256
+ }
4257
+ }
4258
+ /**
4259
+ * Attempt a reconnection.
4260
+ *
4261
+ * @private
4262
+ */
4263
+ reconnect() {
4264
+ if (this._reconnecting || this.skipReconnect)
4265
+ return this;
4266
+ const self2 = this;
4267
+ if (this.backoff.attempts >= this._reconnectionAttempts) {
4268
+ debug("reconnect failed");
4269
+ this.backoff.reset();
4270
+ this.emitReserved("reconnect_failed");
4271
+ this._reconnecting = false;
4272
+ } else {
4273
+ const delay = this.backoff.duration();
4274
+ debug("will wait %dms before reconnect attempt", delay);
4275
+ this._reconnecting = true;
4276
+ const timer = this.setTimeoutFn(() => {
4277
+ if (self2.skipReconnect)
4278
+ return;
4279
+ debug("attempting reconnect");
4280
+ this.emitReserved("reconnect_attempt", self2.backoff.attempts);
4281
+ if (self2.skipReconnect)
4282
+ return;
4283
+ self2.open((err) => {
4284
+ if (err) {
4285
+ debug("reconnect attempt error");
4286
+ self2._reconnecting = false;
4287
+ self2.reconnect();
4288
+ this.emitReserved("reconnect_error", err);
4289
+ } else {
4290
+ debug("reconnect success");
4291
+ self2.onreconnect();
4292
+ }
4293
+ });
4294
+ }, delay);
4295
+ if (this.opts.autoUnref) {
4296
+ timer.unref();
4297
+ }
4298
+ this.subs.push(() => {
4299
+ this.clearTimeoutFn(timer);
4300
+ });
4301
+ }
4302
+ }
4303
+ /**
4304
+ * Called upon successful reconnect.
4305
+ *
4306
+ * @private
4307
+ */
4308
+ onreconnect() {
4309
+ const attempt = this.backoff.attempts;
4310
+ this._reconnecting = false;
4311
+ this.backoff.reset();
4312
+ this.emitReserved("reconnect", attempt);
4313
+ }
4314
+ };
4315
+ exports.Manager = Manager;
4316
+ }
4317
+ });
4318
+
4319
+ // node_modules/socket.io-client/build/cjs/index.js
4320
+ var require_cjs4 = __commonJS({
4321
+ "node_modules/socket.io-client/build/cjs/index.js"(exports, module) {
4322
+ "use strict";
4323
+ var __importDefault = exports && exports.__importDefault || function(mod) {
4324
+ return mod && mod.__esModule ? mod : { "default": mod };
4325
+ };
4326
+ Object.defineProperty(exports, "__esModule", { value: true });
4327
+ exports.default = exports.connect = exports.io = exports.Socket = exports.Manager = exports.protocol = void 0;
4328
+ var url_js_1 = require_url();
4329
+ var manager_js_1 = require_manager();
4330
+ Object.defineProperty(exports, "Manager", { enumerable: true, get: function() {
4331
+ return manager_js_1.Manager;
4332
+ } });
4333
+ var socket_js_1 = require_socket2();
4334
+ Object.defineProperty(exports, "Socket", { enumerable: true, get: function() {
4335
+ return socket_js_1.Socket;
4336
+ } });
4337
+ var debug_1 = __importDefault(require_browser());
4338
+ var debug = debug_1.default("socket.io-client");
4339
+ var cache = {};
4340
+ function lookup(uri, opts) {
4341
+ if (typeof uri === "object") {
4342
+ opts = uri;
4343
+ uri = void 0;
4344
+ }
4345
+ opts = opts || {};
4346
+ const parsed = url_js_1.url(uri, opts.path || "/socket.io");
4347
+ const source = parsed.source;
4348
+ const id = parsed.id;
4349
+ const path = parsed.path;
4350
+ const sameNamespace = cache[id] && path in cache[id]["nsps"];
4351
+ const newConnection = opts.forceNew || opts["force new connection"] || false === opts.multiplex || sameNamespace;
4352
+ let io;
4353
+ if (newConnection) {
4354
+ debug("ignoring socket cache for %s", source);
4355
+ io = new manager_js_1.Manager(source, opts);
4356
+ } else {
4357
+ if (!cache[id]) {
4358
+ debug("new io instance for %s", source);
4359
+ cache[id] = new manager_js_1.Manager(source, opts);
4360
+ }
4361
+ io = cache[id];
4362
+ }
4363
+ if (parsed.query && !opts.query) {
4364
+ opts.query = parsed.queryKey;
4365
+ }
4366
+ return io.socket(parsed.path, opts);
4367
+ }
4368
+ __name(lookup, "lookup");
4369
+ exports.io = lookup;
4370
+ exports.connect = lookup;
4371
+ exports.default = lookup;
4372
+ Object.assign(lookup, {
4373
+ Manager: manager_js_1.Manager,
4374
+ Socket: socket_js_1.Socket,
4375
+ io: lookup,
4376
+ connect: lookup
4377
+ });
4378
+ var socket_io_parser_1 = require_cjs3();
4379
+ Object.defineProperty(exports, "protocol", { enumerable: true, get: function() {
4380
+ return socket_io_parser_1.protocol;
4381
+ } });
4382
+ module.exports = lookup;
4383
+ }
4384
+ });
4385
+
4386
+ // node_modules/events/events.js
4387
+ var require_events = __commonJS({
4388
+ "node_modules/events/events.js"(exports, module) {
4389
+ "use strict";
4390
+ var R = typeof Reflect === "object" ? Reflect : null;
4391
+ var ReflectApply = R && typeof R.apply === "function" ? R.apply : /* @__PURE__ */ __name(function ReflectApply2(target, receiver, args) {
4392
+ return Function.prototype.apply.call(target, receiver, args);
4393
+ }, "ReflectApply");
4394
+ var ReflectOwnKeys;
4395
+ if (R && typeof R.ownKeys === "function") {
4396
+ ReflectOwnKeys = R.ownKeys;
4397
+ } else if (Object.getOwnPropertySymbols) {
4398
+ ReflectOwnKeys = /* @__PURE__ */ __name(function ReflectOwnKeys2(target) {
4399
+ return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
4400
+ }, "ReflectOwnKeys");
4401
+ } else {
4402
+ ReflectOwnKeys = /* @__PURE__ */ __name(function ReflectOwnKeys2(target) {
4403
+ return Object.getOwnPropertyNames(target);
4404
+ }, "ReflectOwnKeys");
4405
+ }
4406
+ function ProcessEmitWarning(warning) {
4407
+ if (console && console.warn)
4408
+ console.warn(warning);
4409
+ }
4410
+ __name(ProcessEmitWarning, "ProcessEmitWarning");
4411
+ var NumberIsNaN = Number.isNaN || /* @__PURE__ */ __name(function NumberIsNaN2(value) {
4412
+ return value !== value;
4413
+ }, "NumberIsNaN");
4414
+ function EventEmitter() {
4415
+ EventEmitter.init.call(this);
4416
+ }
4417
+ __name(EventEmitter, "EventEmitter");
4418
+ module.exports = EventEmitter;
4419
+ module.exports.once = once;
4420
+ EventEmitter.EventEmitter = EventEmitter;
4421
+ EventEmitter.prototype._events = void 0;
4422
+ EventEmitter.prototype._eventsCount = 0;
4423
+ EventEmitter.prototype._maxListeners = void 0;
4424
+ var defaultMaxListeners = 10;
4425
+ function checkListener(listener) {
4426
+ if (typeof listener !== "function") {
4427
+ throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
4428
+ }
4429
+ }
4430
+ __name(checkListener, "checkListener");
4431
+ Object.defineProperty(EventEmitter, "defaultMaxListeners", {
4432
+ enumerable: true,
4433
+ get: function() {
4434
+ return defaultMaxListeners;
4435
+ },
4436
+ set: function(arg) {
4437
+ if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {
4438
+ throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + ".");
4439
+ }
4440
+ defaultMaxListeners = arg;
4441
+ }
4442
+ });
4443
+ EventEmitter.init = function() {
4444
+ if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {
4445
+ this._events = /* @__PURE__ */ Object.create(null);
4446
+ this._eventsCount = 0;
4447
+ }
4448
+ this._maxListeners = this._maxListeners || void 0;
4449
+ };
4450
+ EventEmitter.prototype.setMaxListeners = /* @__PURE__ */ __name(function setMaxListeners(n) {
4451
+ if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {
4452
+ throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + ".");
4453
+ }
4454
+ this._maxListeners = n;
4455
+ return this;
4456
+ }, "setMaxListeners");
4457
+ function _getMaxListeners(that) {
4458
+ if (that._maxListeners === void 0)
4459
+ return EventEmitter.defaultMaxListeners;
4460
+ return that._maxListeners;
4461
+ }
4462
+ __name(_getMaxListeners, "_getMaxListeners");
4463
+ EventEmitter.prototype.getMaxListeners = /* @__PURE__ */ __name(function getMaxListeners() {
4464
+ return _getMaxListeners(this);
4465
+ }, "getMaxListeners");
4466
+ EventEmitter.prototype.emit = /* @__PURE__ */ __name(function emit(type) {
4467
+ var args = [];
4468
+ for (var i = 1; i < arguments.length; i++)
4469
+ args.push(arguments[i]);
4470
+ var doError = type === "error";
4471
+ var events = this._events;
4472
+ if (events !== void 0)
4473
+ doError = doError && events.error === void 0;
4474
+ else if (!doError)
4475
+ return false;
4476
+ if (doError) {
4477
+ var er;
4478
+ if (args.length > 0)
4479
+ er = args[0];
4480
+ if (er instanceof Error) {
4481
+ throw er;
4482
+ }
4483
+ var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));
4484
+ err.context = er;
4485
+ throw err;
4486
+ }
4487
+ var handler = events[type];
4488
+ if (handler === void 0)
4489
+ return false;
4490
+ if (typeof handler === "function") {
4491
+ ReflectApply(handler, this, args);
4492
+ } else {
4493
+ var len = handler.length;
4494
+ var listeners = arrayClone(handler, len);
4495
+ for (var i = 0; i < len; ++i)
4496
+ ReflectApply(listeners[i], this, args);
4497
+ }
4498
+ return true;
4499
+ }, "emit");
4500
+ function _addListener(target, type, listener, prepend) {
4501
+ var m;
4502
+ var events;
4503
+ var existing;
4504
+ checkListener(listener);
4505
+ events = target._events;
4506
+ if (events === void 0) {
4507
+ events = target._events = /* @__PURE__ */ Object.create(null);
4508
+ target._eventsCount = 0;
4509
+ } else {
4510
+ if (events.newListener !== void 0) {
4511
+ target.emit(
4512
+ "newListener",
4513
+ type,
4514
+ listener.listener ? listener.listener : listener
4515
+ );
4516
+ events = target._events;
4517
+ }
4518
+ existing = events[type];
4519
+ }
4520
+ if (existing === void 0) {
4521
+ existing = events[type] = listener;
4522
+ ++target._eventsCount;
4523
+ } else {
4524
+ if (typeof existing === "function") {
4525
+ existing = events[type] = prepend ? [listener, existing] : [existing, listener];
4526
+ } else if (prepend) {
4527
+ existing.unshift(listener);
4528
+ } else {
4529
+ existing.push(listener);
4530
+ }
4531
+ m = _getMaxListeners(target);
4532
+ if (m > 0 && existing.length > m && !existing.warned) {
4533
+ existing.warned = true;
4534
+ var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");
4535
+ w.name = "MaxListenersExceededWarning";
4536
+ w.emitter = target;
4537
+ w.type = type;
4538
+ w.count = existing.length;
4539
+ ProcessEmitWarning(w);
4540
+ }
4541
+ }
4542
+ return target;
4543
+ }
4544
+ __name(_addListener, "_addListener");
4545
+ EventEmitter.prototype.addListener = /* @__PURE__ */ __name(function addListener(type, listener) {
4546
+ return _addListener(this, type, listener, false);
4547
+ }, "addListener");
4548
+ EventEmitter.prototype.on = EventEmitter.prototype.addListener;
4549
+ EventEmitter.prototype.prependListener = /* @__PURE__ */ __name(function prependListener(type, listener) {
4550
+ return _addListener(this, type, listener, true);
4551
+ }, "prependListener");
4552
+ function onceWrapper() {
4553
+ if (!this.fired) {
4554
+ this.target.removeListener(this.type, this.wrapFn);
4555
+ this.fired = true;
4556
+ if (arguments.length === 0)
4557
+ return this.listener.call(this.target);
4558
+ return this.listener.apply(this.target, arguments);
4559
+ }
4560
+ }
4561
+ __name(onceWrapper, "onceWrapper");
4562
+ function _onceWrap(target, type, listener) {
4563
+ var state = { fired: false, wrapFn: void 0, target, type, listener };
4564
+ var wrapped = onceWrapper.bind(state);
4565
+ wrapped.listener = listener;
4566
+ state.wrapFn = wrapped;
4567
+ return wrapped;
4568
+ }
4569
+ __name(_onceWrap, "_onceWrap");
4570
+ EventEmitter.prototype.once = /* @__PURE__ */ __name(function once2(type, listener) {
4571
+ checkListener(listener);
4572
+ this.on(type, _onceWrap(this, type, listener));
4573
+ return this;
4574
+ }, "once");
4575
+ EventEmitter.prototype.prependOnceListener = /* @__PURE__ */ __name(function prependOnceListener(type, listener) {
4576
+ checkListener(listener);
4577
+ this.prependListener(type, _onceWrap(this, type, listener));
4578
+ return this;
4579
+ }, "prependOnceListener");
4580
+ EventEmitter.prototype.removeListener = /* @__PURE__ */ __name(function removeListener(type, listener) {
4581
+ var list, events, position, i, originalListener;
4582
+ checkListener(listener);
4583
+ events = this._events;
4584
+ if (events === void 0)
4585
+ return this;
4586
+ list = events[type];
4587
+ if (list === void 0)
4588
+ return this;
4589
+ if (list === listener || list.listener === listener) {
4590
+ if (--this._eventsCount === 0)
4591
+ this._events = /* @__PURE__ */ Object.create(null);
4592
+ else {
4593
+ delete events[type];
4594
+ if (events.removeListener)
4595
+ this.emit("removeListener", type, list.listener || listener);
4596
+ }
4597
+ } else if (typeof list !== "function") {
4598
+ position = -1;
4599
+ for (i = list.length - 1; i >= 0; i--) {
4600
+ if (list[i] === listener || list[i].listener === listener) {
4601
+ originalListener = list[i].listener;
4602
+ position = i;
4603
+ break;
4604
+ }
4605
+ }
4606
+ if (position < 0)
4607
+ return this;
4608
+ if (position === 0)
4609
+ list.shift();
4610
+ else {
4611
+ spliceOne(list, position);
4612
+ }
4613
+ if (list.length === 1)
4614
+ events[type] = list[0];
4615
+ if (events.removeListener !== void 0)
4616
+ this.emit("removeListener", type, originalListener || listener);
4617
+ }
4618
+ return this;
4619
+ }, "removeListener");
4620
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
4621
+ EventEmitter.prototype.removeAllListeners = /* @__PURE__ */ __name(function removeAllListeners(type) {
4622
+ var listeners, events, i;
4623
+ events = this._events;
4624
+ if (events === void 0)
4625
+ return this;
4626
+ if (events.removeListener === void 0) {
4627
+ if (arguments.length === 0) {
4628
+ this._events = /* @__PURE__ */ Object.create(null);
4629
+ this._eventsCount = 0;
4630
+ } else if (events[type] !== void 0) {
4631
+ if (--this._eventsCount === 0)
4632
+ this._events = /* @__PURE__ */ Object.create(null);
4633
+ else
4634
+ delete events[type];
4635
+ }
4636
+ return this;
4637
+ }
4638
+ if (arguments.length === 0) {
4639
+ var keys = Object.keys(events);
4640
+ var key;
4641
+ for (i = 0; i < keys.length; ++i) {
4642
+ key = keys[i];
4643
+ if (key === "removeListener")
4644
+ continue;
4645
+ this.removeAllListeners(key);
4646
+ }
4647
+ this.removeAllListeners("removeListener");
4648
+ this._events = /* @__PURE__ */ Object.create(null);
4649
+ this._eventsCount = 0;
4650
+ return this;
4651
+ }
4652
+ listeners = events[type];
4653
+ if (typeof listeners === "function") {
4654
+ this.removeListener(type, listeners);
4655
+ } else if (listeners !== void 0) {
4656
+ for (i = listeners.length - 1; i >= 0; i--) {
4657
+ this.removeListener(type, listeners[i]);
4658
+ }
4659
+ }
4660
+ return this;
4661
+ }, "removeAllListeners");
4662
+ function _listeners(target, type, unwrap) {
4663
+ var events = target._events;
4664
+ if (events === void 0)
4665
+ return [];
4666
+ var evlistener = events[type];
4667
+ if (evlistener === void 0)
4668
+ return [];
4669
+ if (typeof evlistener === "function")
4670
+ return unwrap ? [evlistener.listener || evlistener] : [evlistener];
4671
+ return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
4672
+ }
4673
+ __name(_listeners, "_listeners");
4674
+ EventEmitter.prototype.listeners = /* @__PURE__ */ __name(function listeners(type) {
4675
+ return _listeners(this, type, true);
4676
+ }, "listeners");
4677
+ EventEmitter.prototype.rawListeners = /* @__PURE__ */ __name(function rawListeners(type) {
4678
+ return _listeners(this, type, false);
4679
+ }, "rawListeners");
4680
+ EventEmitter.listenerCount = function(emitter, type) {
4681
+ if (typeof emitter.listenerCount === "function") {
4682
+ return emitter.listenerCount(type);
4683
+ } else {
4684
+ return listenerCount.call(emitter, type);
4685
+ }
4686
+ };
4687
+ EventEmitter.prototype.listenerCount = listenerCount;
4688
+ function listenerCount(type) {
4689
+ var events = this._events;
4690
+ if (events !== void 0) {
4691
+ var evlistener = events[type];
4692
+ if (typeof evlistener === "function") {
4693
+ return 1;
4694
+ } else if (evlistener !== void 0) {
4695
+ return evlistener.length;
4696
+ }
4697
+ }
4698
+ return 0;
4699
+ }
4700
+ __name(listenerCount, "listenerCount");
4701
+ EventEmitter.prototype.eventNames = /* @__PURE__ */ __name(function eventNames() {
4702
+ return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
4703
+ }, "eventNames");
4704
+ function arrayClone(arr, n) {
4705
+ var copy = new Array(n);
4706
+ for (var i = 0; i < n; ++i)
4707
+ copy[i] = arr[i];
4708
+ return copy;
4709
+ }
4710
+ __name(arrayClone, "arrayClone");
4711
+ function spliceOne(list, index) {
4712
+ for (; index + 1 < list.length; index++)
4713
+ list[index] = list[index + 1];
4714
+ list.pop();
4715
+ }
4716
+ __name(spliceOne, "spliceOne");
4717
+ function unwrapListeners(arr) {
4718
+ var ret = new Array(arr.length);
4719
+ for (var i = 0; i < ret.length; ++i) {
4720
+ ret[i] = arr[i].listener || arr[i];
4721
+ }
4722
+ return ret;
4723
+ }
4724
+ __name(unwrapListeners, "unwrapListeners");
4725
+ function once(emitter, name) {
4726
+ return new Promise(function(resolve, reject) {
4727
+ function errorListener(err) {
4728
+ emitter.removeListener(name, resolver);
4729
+ reject(err);
4730
+ }
4731
+ __name(errorListener, "errorListener");
4732
+ function resolver() {
4733
+ if (typeof emitter.removeListener === "function") {
4734
+ emitter.removeListener("error", errorListener);
4735
+ }
4736
+ resolve([].slice.call(arguments));
4737
+ }
4738
+ __name(resolver, "resolver");
4739
+ ;
4740
+ eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });
4741
+ if (name !== "error") {
4742
+ addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });
4743
+ }
4744
+ });
4745
+ }
4746
+ __name(once, "once");
4747
+ function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
4748
+ if (typeof emitter.on === "function") {
4749
+ eventTargetAgnosticAddListener(emitter, "error", handler, flags);
4750
+ }
4751
+ }
4752
+ __name(addErrorHandlerIfEventEmitter, "addErrorHandlerIfEventEmitter");
4753
+ function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
4754
+ if (typeof emitter.on === "function") {
4755
+ if (flags.once) {
4756
+ emitter.once(name, listener);
4757
+ } else {
4758
+ emitter.on(name, listener);
4759
+ }
4760
+ } else if (typeof emitter.addEventListener === "function") {
4761
+ emitter.addEventListener(name, /* @__PURE__ */ __name(function wrapListener(arg) {
4762
+ if (flags.once) {
4763
+ emitter.removeEventListener(name, wrapListener);
4764
+ }
4765
+ listener(arg);
4766
+ }, "wrapListener"));
4767
+ } else {
4768
+ throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
4769
+ }
4770
+ }
4771
+ __name(eventTargetAgnosticAddListener, "eventTargetAgnosticAddListener");
4772
+ }
4773
+ });
4774
+
4775
+ // src/SocketIoClient/index.js
4776
+ var require_SocketIoClient = __commonJS({
4777
+ "src/SocketIoClient/index.js"(exports, module) {
4778
+ var io = require_cjs4();
4779
+ var { EventEmitter } = require_events();
4780
+ module.exports = class SocketIoClient extends EventEmitter {
4781
+ static {
4782
+ __name(this, "SocketIoClient");
4783
+ }
4784
+ constructor(config = { url: null, propertyId: null, options: {} }) {
4785
+ super();
4786
+ if (!config.url)
4787
+ throw new Error("Websocket URL / endpoint not provided");
4788
+ if (!config.propertyId)
4789
+ throw new Error("Property ID not provided");
4790
+ this.url = config.url;
4791
+ this.propertyId = config.propertyId;
4792
+ this.options = {
4793
+ autoConnect: false,
4794
+ forceNew: false,
4795
+ reconnection: true,
4796
+ reconnectionAttempts: Infinity,
4797
+ reconnectionDelay: 1e3,
4798
+ withCredentials: true,
4799
+ transports: ["websocket", "polling"],
4800
+ upgrade: true,
4801
+ ...config.options
4802
+ };
4803
+ this.socket = io(this.url, this.options);
4804
+ this.socket.on("connect", () => {
4805
+ this.emit("connect", this.socket);
4806
+ });
4807
+ this.socket.on("disconnect", (reason) => {
4808
+ this.emit("disconnect", reason);
4809
+ });
4810
+ this.socket.on("reconnect_attempt", (data) => {
4811
+ this.emit("reconnect_attempt", data);
4812
+ });
4813
+ this.socket.on("connect_error", (error) => {
4814
+ this.emit("connect_error", error);
4815
+ });
4816
+ }
4817
+ get connected() {
4818
+ return this.socket?.connected || false;
4819
+ }
4820
+ get disconnected() {
4821
+ return this.socket?.disconnected || false;
4822
+ }
4823
+ connect() {
4824
+ this.socket.connect();
4825
+ }
4826
+ disconnect() {
4827
+ this.socket.disconnect();
4828
+ }
4829
+ reconnect() {
4830
+ this.disconnect();
4831
+ this.connect();
4832
+ }
4833
+ subscribe(event, callback) {
4834
+ this.socket.on(event, callback);
4835
+ }
4836
+ unsubscribe(event, callback) {
4837
+ this.socket.off(event, callback);
4838
+ }
4839
+ send(event, { data = {}, query = {}, ...rest }) {
4840
+ this.socket.emit(event, { data, query, ...rest });
4841
+ }
4842
+ };
4843
+ }
4844
+ });
4845
+ export default require_SocketIoClient();
4846
+ //# sourceMappingURL=SocketIoClient.js.map