@cendarsoss/pusher-js 8.4.15 → 8.4.17
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/dist/node/pusher.js +47 -32
- package/dist/node/pusher.js.map +1 -1
- package/dist/web/pusher.mjs +47 -32
- package/dist/web/pusher.mjs.map +1 -1
- package/package.json +1 -1
- package/src/core/connection/protocol/protocol.ts +4 -3
- package/src/core/delta/manager.ts +58 -25
- package/src/core/pusher.ts +3 -21
package/dist/web/pusher.mjs
CHANGED
|
@@ -1296,8 +1296,8 @@ const Protocol = {
|
|
|
1296
1296
|
if (messageData.user_id) {
|
|
1297
1297
|
pusherEvent.user_id = messageData.user_id;
|
|
1298
1298
|
}
|
|
1299
|
-
const sequence = messageData.
|
|
1300
|
-
const conflationKey = messageData.
|
|
1299
|
+
const sequence = messageData.seq;
|
|
1300
|
+
const conflationKey = messageData.conflation_key;
|
|
1301
1301
|
if (typeof sequence === "number") {
|
|
1302
1302
|
pusherEvent.sequence = sequence;
|
|
1303
1303
|
}
|
|
@@ -5425,20 +5425,24 @@ class DeltaCompressionManager {
|
|
|
5425
5425
|
deltaSize: deltaBytes.length,
|
|
5426
5426
|
compressionRatio: (deltaBytes.length / reconstructedMessage.length * 100).toFixed(1) + "%"
|
|
5427
5427
|
});
|
|
5428
|
+
let reconstructedData;
|
|
5428
5429
|
try {
|
|
5429
|
-
|
|
5430
|
-
|
|
5431
|
-
|
|
5430
|
+
reconstructedData = JSON.parse(JSON.parse(reconstructedMessage));
|
|
5431
|
+
} catch (parseError) {
|
|
5432
|
+
this.error("Failed to parse reconstructed message as JSON", {
|
|
5432
5433
|
channel,
|
|
5433
|
-
data: parsedMessage.data || parsedMessage
|
|
5434
|
-
};
|
|
5435
|
-
} catch (e) {
|
|
5436
|
-
return {
|
|
5437
5434
|
event,
|
|
5438
|
-
|
|
5439
|
-
|
|
5440
|
-
|
|
5435
|
+
sequence,
|
|
5436
|
+
parseError: parseError.message,
|
|
5437
|
+
reconstructedMessageLength: reconstructedMessage.length
|
|
5438
|
+
});
|
|
5439
|
+
reconstructedData = reconstructedMessage;
|
|
5441
5440
|
}
|
|
5441
|
+
return {
|
|
5442
|
+
event,
|
|
5443
|
+
channel,
|
|
5444
|
+
data: reconstructedData
|
|
5445
|
+
};
|
|
5442
5446
|
} catch (error) {
|
|
5443
5447
|
this.error("Delta decode failed", {
|
|
5444
5448
|
channel,
|
|
@@ -5459,10 +5463,19 @@ class DeltaCompressionManager {
|
|
|
5459
5463
|
* Handle regular (full) message with delta sequence markers
|
|
5460
5464
|
*/
|
|
5461
5465
|
handleFullMessage(channel, rawMessage, sequence, conflationKey) {
|
|
5466
|
+
let parsedMessage;
|
|
5467
|
+
try {
|
|
5468
|
+
parsedMessage = JSON.parse(rawMessage);
|
|
5469
|
+
} catch (e) {
|
|
5470
|
+
this.log("handleFullMessage parse failed", {
|
|
5471
|
+
channel,
|
|
5472
|
+
hasSequence: sequence === 0 || !!sequence
|
|
5473
|
+
});
|
|
5474
|
+
return;
|
|
5475
|
+
}
|
|
5462
5476
|
if (!sequence && sequence !== 0) {
|
|
5463
5477
|
try {
|
|
5464
|
-
const
|
|
5465
|
-
const candidate = typeof parsed.data === "string" ? JSON.parse(parsed.data).__delta_seq ?? parsed.__delta_seq : parsed.data?.__delta_seq ?? parsed.__delta_seq;
|
|
5478
|
+
const candidate = typeof parsedMessage.data === "string" ? JSON.parse(parsedMessage.data).__delta_seq ?? parsedMessage.__delta_seq : parsedMessage.data?.__delta_seq ?? parsedMessage.__delta_seq;
|
|
5466
5479
|
if (candidate === 0 || candidate) {
|
|
5467
5480
|
sequence = candidate;
|
|
5468
5481
|
} else {
|
|
@@ -5480,7 +5493,22 @@ class DeltaCompressionManager {
|
|
|
5480
5493
|
return;
|
|
5481
5494
|
}
|
|
5482
5495
|
}
|
|
5483
|
-
|
|
5496
|
+
if (parsedMessage?.data === void 0) {
|
|
5497
|
+
this.log("handleFullMessage missing data field, skipping", {
|
|
5498
|
+
channel,
|
|
5499
|
+
hasSequence: sequence === 0 || !!sequence
|
|
5500
|
+
});
|
|
5501
|
+
return;
|
|
5502
|
+
}
|
|
5503
|
+
const baseMessage = JSON.stringify(parsedMessage.data);
|
|
5504
|
+
if (typeof baseMessage !== "string") {
|
|
5505
|
+
this.log("handleFullMessage base serialization failed, skipping", {
|
|
5506
|
+
channel,
|
|
5507
|
+
hasSequence: sequence === 0 || !!sequence
|
|
5508
|
+
});
|
|
5509
|
+
return;
|
|
5510
|
+
}
|
|
5511
|
+
const messageSize = baseMessage.length;
|
|
5484
5512
|
let channelState = this.channelStates.get(channel);
|
|
5485
5513
|
if (!channelState) {
|
|
5486
5514
|
channelState = new ChannelState(channel);
|
|
@@ -5493,8 +5521,7 @@ class DeltaCompressionManager {
|
|
|
5493
5521
|
if (channelState.conflationKey && finalConflationKey !== void 0) {
|
|
5494
5522
|
channelState.updateConflationCache(
|
|
5495
5523
|
finalConflationKey,
|
|
5496
|
-
|
|
5497
|
-
// Store raw message directly
|
|
5524
|
+
baseMessage,
|
|
5498
5525
|
sequence
|
|
5499
5526
|
);
|
|
5500
5527
|
this.log("Stored full message (conflation)", {
|
|
@@ -5504,7 +5531,7 @@ class DeltaCompressionManager {
|
|
|
5504
5531
|
size: messageSize
|
|
5505
5532
|
});
|
|
5506
5533
|
} else {
|
|
5507
|
-
channelState.setBase(
|
|
5534
|
+
channelState.setBase(baseMessage, sequence);
|
|
5508
5535
|
this.log("Stored full message", {
|
|
5509
5536
|
channel,
|
|
5510
5537
|
sequence,
|
|
@@ -5725,22 +5752,10 @@ const _Pusher = class _Pusher {
|
|
|
5725
5752
|
if (typeof event.conflation_key === "string") {
|
|
5726
5753
|
conflationKey = event.conflation_key;
|
|
5727
5754
|
}
|
|
5728
|
-
|
|
5729
|
-
if (fullMessage && sequence !== void 0) {
|
|
5730
|
-
fullMessage = fullMessage.replace(/,"__delta_seq":\d+/g, "");
|
|
5731
|
-
fullMessage = fullMessage.replace(/"__delta_seq":\d+,/g, "");
|
|
5732
|
-
fullMessage = fullMessage.replace(
|
|
5733
|
-
/,"__conflation_key":"[^"]*"/g,
|
|
5734
|
-
""
|
|
5735
|
-
);
|
|
5736
|
-
fullMessage = fullMessage.replace(
|
|
5737
|
-
/"__conflation_key":"[^"]*",/g,
|
|
5738
|
-
""
|
|
5739
|
-
);
|
|
5740
|
-
}
|
|
5755
|
+
const rawMessage = event.rawMessage || "";
|
|
5741
5756
|
this.deltaCompression.handleFullMessage(
|
|
5742
5757
|
event.channel,
|
|
5743
|
-
|
|
5758
|
+
rawMessage,
|
|
5744
5759
|
sequence,
|
|
5745
5760
|
conflationKey
|
|
5746
5761
|
);
|