@kohost/api-client 3.0.0-beta.9 → 3.0.0-beta.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -0
- package/dist/cjs/AMQPClient/index.js +296 -0
- package/dist/cjs/{Client.js → Client/index.js} +1907 -598
- package/dist/cjs/Commands/CheckInReservationCommand.js +19 -0
- package/dist/cjs/Commands/CheckOutReservationCommand.js +20 -0
- package/dist/cjs/Commands/Command.js +34 -0
- package/dist/cjs/Commands/CreateImageUploadEndpointCommand.js +17 -0
- package/dist/cjs/Commands/CreateShortLinkCommand.js +20 -0
- package/dist/cjs/Commands/DiscoverCategoriesCommand.js +20 -0
- package/dist/cjs/Commands/DiscoverReservationSpaceCategoryAvailabilitiesCommand.js +20 -0
- package/dist/cjs/Commands/DiscoverReservationsCommand.js +20 -0
- package/dist/cjs/Commands/DiscoverRoomsCommand.js +37 -0
- package/dist/cjs/Commands/DiscoverUsersCommand.js +19 -0
- package/dist/cjs/Commands/GetMobileKeyCommand.js +24 -0
- package/dist/cjs/Commands/GetProductsCommand.js +17 -0
- package/dist/cjs/Commands/OCRDocumentCommand.js +15 -0
- package/dist/cjs/Commands/SellProductsCommand.js +17 -0
- package/dist/cjs/Commands/SendEmailCommand.js +24 -0
- package/dist/cjs/Commands/SendSMSCommand.js +21 -0
- package/dist/cjs/Commands/SetAlarmCommand.js +17 -0
- package/dist/cjs/Commands/SetCourtesyCommand.js +17 -0
- package/dist/cjs/Commands/SetDimmerCommand.js +17 -0
- package/dist/cjs/Commands/SetLockCommand.js +17 -0
- package/dist/cjs/Commands/SetMediaCommand.js +17 -0
- package/dist/cjs/Commands/SetSceneCommand.js +17 -0
- package/dist/cjs/Commands/SetSwitchCommand.js +17 -0
- package/dist/cjs/Commands/SetThermostatCommand.js +17 -0
- package/dist/cjs/Commands/SetWindowCoveringCommand.js +17 -0
- package/dist/cjs/Commands/UpdateReservationCommand.js +19 -0
- package/dist/cjs/Commands/UpdateUserCommand.js +41 -0
- package/dist/cjs/Commands/UploadImageCommand.js +17 -0
- package/dist/cjs/Commands/index.js +57 -0
- package/dist/cjs/Errors/AppError.js +8 -0
- package/dist/cjs/Errors/AuthenticationError.js +9 -0
- package/dist/cjs/Errors/AuthorizationError.js +9 -0
- package/dist/cjs/Errors/ConflictError.js +9 -0
- package/dist/cjs/Errors/DeviceCommError.js +9 -0
- package/dist/cjs/Errors/LoginError.js +9 -0
- package/dist/cjs/Errors/NotFoundError.js +9 -0
- package/dist/cjs/Errors/RequestError.js +9 -0
- package/dist/cjs/Errors/SystemCommError.js +9 -0
- package/dist/cjs/Errors/TokenExpiredError.js +9 -0
- package/dist/cjs/Errors/UnprocessableRequestError.js +9 -0
- package/dist/cjs/Errors/ValidationError.js +9 -0
- package/dist/cjs/Errors/index.js +16 -0
- package/dist/cjs/Events/ApplicationInUseEvent.js +21 -0
- package/dist/cjs/Events/ApplicationOutOfUseEvent.js +21 -0
- package/dist/cjs/Events/EmailEvent.js +18 -0
- package/dist/cjs/Events/Event.js +55 -0
- package/dist/cjs/Events/SMSEvent.js +18 -0
- package/dist/cjs/Events/SMSSentEvent.js +17 -0
- package/dist/cjs/Events/SceneSetEvent.js +17 -0
- package/dist/cjs/Events/ShortLinkCreatedEvent.js +17 -0
- package/dist/cjs/Events/SystemAlarmUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemCameraUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemCategoryUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemCourtesyUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemCredentialUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemDimmerUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemEntityDeletedEvent.js +17 -0
- package/dist/cjs/Events/SystemGatewayUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemLockUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemMediaSourceUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemMotionSensorUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemOrganizationUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemProductUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemPropertyUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemReservationUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemSceneControllerUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemSpaceUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemSwitchUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemThermostatUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemUserUpdatedEvent.js +17 -0
- package/dist/cjs/Events/SystemWindowCoveringUpdatedEvent.js +17 -0
- package/dist/cjs/Events/index.js +65 -0
- package/dist/cjs/Models/Alarm.js +35 -0
- package/dist/cjs/Models/Announcement.js +34 -0
- package/dist/cjs/Models/Camera.js +35 -0
- package/dist/cjs/Models/Category.js +36 -0
- package/dist/cjs/Models/Courtesy.js +39 -0
- package/dist/cjs/Models/Credential.js +35 -0
- package/dist/cjs/Models/Dimmer.js +61 -0
- package/dist/cjs/Models/DiscoveredDevice.js +36 -0
- package/dist/cjs/Models/EmailMessage.js +35 -0
- package/dist/cjs/Models/EnergyReport.js +35 -0
- package/dist/cjs/Models/EnergyReportShard.js +35 -0
- package/dist/cjs/Models/Gateway.js +35 -0
- package/dist/cjs/Models/Identification.js +38 -0
- package/dist/cjs/Models/Kohost.js +96 -0
- package/dist/cjs/Models/Lock.js +39 -0
- package/dist/cjs/Models/MediaFile.js +48 -0
- package/dist/cjs/Models/MediaSource.js +35 -0
- package/dist/cjs/Models/MotionSensor.js +35 -0
- package/dist/cjs/Models/Order.js +97 -0
- package/dist/cjs/Models/Organization.js +34 -0
- package/dist/cjs/Models/Product.js +35 -0
- package/dist/cjs/Models/Property.js +34 -0
- package/dist/cjs/Models/Reservation.js +114 -0
- package/dist/cjs/Models/Room.js +217 -0
- package/dist/cjs/Models/Scene.js +169 -0
- package/dist/cjs/Models/ShortLink.js +35 -0
- package/dist/cjs/Models/SmsMessage.js +35 -0
- package/dist/cjs/Models/Space.js +97 -0
- package/dist/cjs/Models/Switch.js +39 -0
- package/dist/cjs/Models/SystemUser.js +55 -0
- package/dist/cjs/Models/Thermostat.js +86 -0
- package/dist/cjs/Models/Ticket.js +55 -0
- package/dist/cjs/Models/User.js +115 -0
- package/dist/cjs/Models/WindowCovering.js +55 -0
- package/dist/cjs/Models/index.js +72 -0
- package/dist/cjs/SocketIoClient/index.js +74 -0
- package/dist/cjs/defs/deviceTypes.js +15 -0
- package/dist/cjs/defs/formalDeviceTypes.js +6 -0
- package/dist/cjs/defs/index.js +11 -0
- package/dist/cjs/{index.cjs.js → index.js} +7 -1
- package/dist/cjs/schemas/AlarmSchema.d.ts +158 -0
- package/dist/cjs/schemas/AnnouncementSchema.d.ts +60 -0
- package/dist/cjs/schemas/CameraSchema.d.ts +149 -0
- package/dist/cjs/schemas/CategorySchema.d.ts +82 -0
- package/dist/cjs/schemas/CourtesySchema.d.ts +148 -0
- package/dist/cjs/schemas/CredentialSchema.d.ts +53 -0
- package/dist/cjs/schemas/DefinitionsSchema.d.ts +10 -0
- package/dist/cjs/schemas/DimmerSchema.d.ts +147 -0
- package/dist/cjs/schemas/DiscoveredDeviceSchema.d.ts +39 -0
- package/dist/cjs/schemas/EmailMessageSchema.d.ts +49 -0
- package/dist/cjs/schemas/EnergyReportSchema.d.ts +57 -0
- package/dist/cjs/schemas/EnergyReportShardSchema.d.ts +61 -0
- package/dist/cjs/schemas/GatewaySchema.d.ts +145 -0
- package/dist/cjs/schemas/IdentificationSchema.d.ts +45 -0
- package/dist/cjs/schemas/LockSchema.d.ts +152 -0
- package/dist/cjs/schemas/MediaFileSchema.d.ts +43 -0
- package/dist/cjs/schemas/MediaSourceSchema.d.ts +244 -0
- package/dist/cjs/schemas/MotionSensorSchema.d.ts +143 -0
- package/dist/cjs/schemas/OrderSchema.d.ts +91 -0
- package/dist/cjs/schemas/OrganizationSchema.d.ts +34 -0
- package/dist/cjs/schemas/PaymentSchema.d.ts +33 -0
- package/dist/cjs/schemas/ProductSchema.d.ts +66 -0
- package/dist/cjs/schemas/PropertySchema.d.ts +144 -0
- package/dist/cjs/schemas/ReservationSchema.d.ts +119 -0
- package/dist/cjs/schemas/RoomSchema.d.ts +1103 -0
- package/dist/cjs/schemas/SceneSchema.d.ts +57 -0
- package/dist/cjs/schemas/ShortLinkSchema.d.ts +20 -0
- package/dist/cjs/schemas/SmsMessageSchema.d.ts +40 -0
- package/dist/cjs/schemas/SpaceSchema.d.ts +73 -0
- package/dist/cjs/schemas/SwitchSchema.d.ts +148 -0
- package/dist/cjs/schemas/SystemUserSchema.d.ts +194 -0
- package/dist/cjs/schemas/ThermostatSchema.d.ts +178 -0
- package/dist/cjs/schemas/TicketSchema.d.ts +90 -0
- package/dist/cjs/schemas/UserSchema.d.ts +287 -0
- package/dist/cjs/schemas/WindowCoveringSchema.d.ts +147 -0
- package/dist/cjs/schemas/alarm.json +81 -0
- package/dist/cjs/schemas/announcement.json +41 -0
- package/dist/cjs/schemas/camera.json +50 -0
- package/dist/cjs/schemas/category.json +42 -0
- package/dist/cjs/schemas/courtesy.json +48 -0
- package/dist/cjs/schemas/credential.json +44 -0
- package/dist/cjs/schemas/definitions.json +223 -0
- package/dist/cjs/schemas/dimmer.json +42 -0
- package/dist/cjs/schemas/discoveredDevice.json +31 -0
- package/dist/cjs/schemas/emailMessage.json +71 -0
- package/dist/cjs/schemas/energyReport.json +86 -0
- package/dist/cjs/schemas/energyReportShard.json +75 -0
- package/dist/cjs/schemas/gateway.json +34 -0
- package/dist/cjs/schemas/identification.json +61 -0
- package/dist/cjs/schemas/lock.json +50 -0
- package/dist/cjs/schemas/mediaFile.json +70 -0
- package/dist/cjs/schemas/mediaSource.json +187 -0
- package/dist/cjs/schemas/motionSensor.json +32 -0
- package/dist/cjs/schemas/order.json +182 -0
- package/dist/cjs/schemas/organization.json +40 -0
- package/dist/cjs/schemas/payment.json +47 -0
- package/dist/cjs/schemas/product.json +41 -0
- package/dist/cjs/schemas/property.json +347 -0
- package/dist/cjs/schemas/reservation.json +137 -0
- package/dist/cjs/schemas/room.json +98 -0
- package/dist/cjs/schemas/scene.json +121 -0
- package/dist/cjs/schemas/shortLink.json +30 -0
- package/dist/cjs/schemas/smsMessage.json +61 -0
- package/dist/cjs/schemas/space.json +129 -0
- package/dist/cjs/schemas/switch.json +44 -0
- package/dist/cjs/schemas/systemUser.json +98 -0
- package/dist/cjs/schemas/thermostat.json +150 -0
- package/dist/cjs/schemas/ticket.json +181 -0
- package/dist/cjs/schemas/user.json +170 -0
- package/dist/cjs/schemas/windowCovering.json +42 -0
- package/dist/cjs/utils/errorFactory.js +8 -0
- package/dist/cjs/utils/eventFactory.js +10 -0
- package/dist/cjs/utils/getDeviceTypes.js +7 -0
- package/dist/cjs/utils/getFormalDeviceType.js +5 -0
- package/dist/cjs/utils/index.js +11 -0
- package/dist/cjs/utils/schema.js +25 -0
- package/dist/esm/Client.js +2013 -637
- package/dist/esm/Client.js.map +4 -4
- package/dist/esm/Commands.js +499 -120
- package/dist/esm/Commands.js.map +3 -3
- package/dist/esm/Errors.js +73 -22
- package/dist/esm/Errors.js.map +3 -3
- package/dist/esm/Events.js +414 -73
- package/dist/esm/Events.js.map +3 -3
- package/dist/esm/Models.js +3313 -3921
- package/dist/esm/Models.js.map +4 -4
- package/dist/esm/SocketIoClient.js +4846 -0
- package/dist/esm/SocketIoClient.js.map +7 -0
- package/dist/esm/defs.js +168 -112
- package/dist/esm/defs.js.map +4 -4
- package/dist/esm/index.js +17 -10
- package/dist/esm/utils.js +451 -73
- package/dist/esm/utils.js.map +3 -3
- package/dist/useCases/AdminUpdateCustomer.js +1 -1
- package/dist/useCases/AssignSpaceToReservation.js +32 -0
- package/dist/useCases/{AdminCreateProperty.js → BatchNotifyCheckIn.js} +2 -2
- package/dist/useCases/{AdminCreateCustomer.js → BatchNotifyCheckOut.js} +2 -2
- package/dist/useCases/BatchNotifyMissedCheckOut.js +32 -0
- package/dist/useCases/{AdminUpdateProperty.js → CheckOutReservation.js} +3 -3
- package/dist/useCases/{AdminListCustomers.js → CreateAnnouncement.js} +3 -3
- package/dist/useCases/CreateCateory.js +32 -0
- package/dist/useCases/CreateImageUploadEndpoint.js +32 -0
- package/dist/useCases/CreateMediaSource.js +32 -0
- package/dist/useCases/CreateOrganization.js +32 -0
- package/dist/useCases/{AdminLoginUser.js → CreateProperty.js} +2 -2
- package/dist/useCases/DeleteAnnouncement.js +32 -0
- package/dist/useCases/DeleteCategory.js +32 -0
- package/dist/useCases/DeleteMediaFile.js +32 -0
- package/dist/useCases/DeleteMediaSource.js +32 -0
- package/dist/useCases/{AdminCreateAdminUser.js → DescribeAnnouncement.js} +4 -4
- package/dist/useCases/{ListIntegrations.js → DescribeCategory.js} +3 -3
- package/dist/useCases/{DeleteSource.js → DescribeLockCredential.js} +3 -3
- package/dist/useCases/{AdminListAdminUsers.js → DescribeMediaSource.js} +3 -3
- package/dist/useCases/DescribeMyAccessCredentials.js +32 -0
- package/dist/useCases/{AdminDescribeCustomer.js → DescribeOrganization.js} +2 -2
- package/dist/useCases/{DescribeIntegration.js → DescribeProduct.js} +2 -2
- package/dist/useCases/DescribeProperty.js +32 -0
- package/dist/useCases/DescribeReservationEarlyCheckInProducts.js +32 -0
- package/dist/useCases/DescribeReservationLateCheckOutProducts.js +32 -0
- package/dist/useCases/{AdminDescribeProperty.js → DescribeReservationRoomUpgrades.js} +2 -2
- package/dist/useCases/{AdminRefreshToken.js → ListAnnouncements.js} +3 -3
- package/dist/useCases/ListCategories.js +32 -0
- package/dist/useCases/ListMediaSources.js +32 -0
- package/dist/useCases/{CreateSource.js → ListMyOrders.js} +4 -4
- package/dist/useCases/{AdminListProperties.js → ListMyTickets.js} +2 -2
- package/dist/useCases/ListOrders.js +32 -0
- package/dist/useCases/{DeleteIntegration.js → ListOrganizations.js} +3 -3
- package/dist/useCases/ListProperties.js +32 -0
- package/dist/useCases/ListScenes.js +32 -0
- package/dist/useCases/ListTeam.js +32 -0
- package/dist/useCases/ListUserOrders.js +32 -0
- package/dist/useCases/ListUserSpaces.js +32 -0
- package/dist/useCases/LogoutUser.js +32 -0
- package/dist/useCases/PurchaseReservationEarlyCheckInProducts.js +32 -0
- package/dist/useCases/PurchaseReservationLateCheckOutProducts.js +32 -0
- package/dist/useCases/{CreateIntegrationDeviceMapEntry.js → PurchaseReservationRoomUpgrades.js} +2 -2
- package/dist/useCases/RequestLoginLink.js +1 -1
- package/dist/useCases/{CreateIntegration.js → RequestMyKeyToken.js} +2 -2
- package/dist/useCases/RequestPWAToken.js +32 -0
- package/dist/useCases/SendCheckInSMS.js +32 -0
- package/dist/useCases/SendCheckOutSMS.js +32 -0
- package/dist/useCases/SendRoomControlSMS.js +32 -0
- package/dist/useCases/{SetSource.js → SetDimmer.js} +2 -2
- package/dist/useCases/{DescribeSource.js → SetMediaSource.js} +3 -3
- package/dist/useCases/{UpdateSource.js → SetRoomScene.js} +3 -3
- package/dist/useCases/SetSpaceScene.js +32 -0
- package/dist/useCases/TipUser.js +32 -0
- package/dist/useCases/UpdateAnnouncement.js +32 -0
- package/dist/useCases/UpdateCategory.js +32 -0
- package/dist/useCases/{UpdateIntegration.js → UpdateMediaSource.js} +3 -3
- package/dist/useCases/UpdateProperty.js +32 -0
- package/dist/useCases/UpdateReservationExpectedArrivalTime.js +32 -0
- package/dist/useCases/{ListSources.js → UploadImage.js} +4 -4
- package/package.json +37 -14
- package/dist/cjs/Commands.js +0 -643
- package/dist/cjs/Errors.js +0 -176
- package/dist/cjs/Events.js +0 -387
- package/dist/cjs/Models.js +0 -3612
- package/dist/cjs/defs.js +0 -178
- package/dist/cjs/utils.js +0 -250
- package/dist/useCases/AdminRequestLoginLink.js +0 -32
- package/dist/useCases/DescribeReservationCheckinStatus.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
|