opcjs-base 0.1.36-alpha → 0.1.38-alpha

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/index.cjs CHANGED
@@ -17874,19 +17874,21 @@ var SecureChannelMessageDecoder = class extends TransformStream {
17874
17874
  * seen remote sequence. Allows exactly one UInt32 wrap-around per token.
17875
17875
  * Returns false and logs an error if the number is a duplicate or out of order.
17876
17876
  */
17877
- validateSequenceNumber(sequenceNumber, controller) {
17877
+ validateSequenceNumber(sequenceNumber, msgType, controller) {
17878
17878
  const last = this.context.lastRemoteSequenceNumber;
17879
17879
  if (last === void 0) {
17880
17880
  this.context.lastRemoteSequenceNumber = sequenceNumber;
17881
+ this.logger.debug(`[${msgType}] Sequence number initialized to ${sequenceNumber}`);
17881
17882
  return true;
17882
17883
  }
17883
17884
  const isIncrement = sequenceNumber === last + 1;
17884
17885
  const isWrap = last >= SEQ_WRAP_THRESHOLD2 && sequenceNumber < SEQ_WRAP_MAX;
17885
17886
  if (!isIncrement && !isWrap) {
17886
- this.logger.error(`Invalid remote sequence number: expected ${last + 1}, got ${sequenceNumber}`);
17887
+ this.logger.error(`[${msgType}] Invalid remote sequence number: expected ${last + 1}, got ${sequenceNumber}`);
17887
17888
  controller.error(new Error(`Invalid remote sequence number: expected ${last + 1}, got ${sequenceNumber}`));
17888
17889
  return false;
17889
17890
  }
17891
+ this.logger.debug(`[${msgType}] Sequence number advanced: ${last} \u2192 ${sequenceNumber}`);
17890
17892
  this.context.lastRemoteSequenceNumber = sequenceNumber;
17891
17893
  return true;
17892
17894
  }
@@ -17904,7 +17906,7 @@ var SecureChannelMessageDecoder = class extends TransformStream {
17904
17906
  secHeader,
17905
17907
  this.context.securityAlgorithm
17906
17908
  );
17907
- if (!this.validateSequenceNumber(msgAsym.sequenceHeader.sequenceNumber, controller)) return;
17909
+ if (!this.validateSequenceNumber(msgAsym.sequenceHeader.sequenceNumber, "OPN", controller)) return;
17908
17910
  controller.enqueue(msgAsym);
17909
17911
  break;
17910
17912
  }
@@ -17912,7 +17914,7 @@ var SecureChannelMessageDecoder = class extends TransformStream {
17912
17914
  this.logger.warn("SecureChannel received Abort message");
17913
17915
  const secHeader = MsgSecurityHeaderSymmetric.decode(buffer);
17914
17916
  const msgSym = MsgSymmetric.decode(buffer, header, secHeader, this.context.securityAlgorithm);
17915
- if (!this.validateSequenceNumber(msgSym.sequenceHeader.sequenceNumber, controller)) return;
17917
+ if (!this.validateSequenceNumber(msgSym.sequenceHeader.sequenceNumber, "MSG-A", controller)) return;
17916
17918
  controller.enqueue(msgSym);
17917
17919
  break;
17918
17920
  }
@@ -17920,7 +17922,7 @@ var SecureChannelMessageDecoder = class extends TransformStream {
17920
17922
  this.logger.debug("SecureChannel received Chunk message.");
17921
17923
  const secHeader = MsgSecurityHeaderSymmetric.decode(buffer);
17922
17924
  const msgSym = MsgSymmetric.decode(buffer, header, secHeader, this.context.securityAlgorithm);
17923
- if (!this.validateSequenceNumber(msgSym.sequenceHeader.sequenceNumber, controller)) return;
17925
+ if (!this.validateSequenceNumber(msgSym.sequenceHeader.sequenceNumber, "MSG-C", controller)) return;
17924
17926
  controller.enqueue(msgSym);
17925
17927
  break;
17926
17928
  }
@@ -17928,13 +17930,17 @@ var SecureChannelMessageDecoder = class extends TransformStream {
17928
17930
  this.logger.debug("SecureChannel received Final message");
17929
17931
  const secHeader = MsgSecurityHeaderSymmetric.decode(buffer);
17930
17932
  const msgSym = MsgSymmetric.decode(buffer, header, secHeader, this.context.securityAlgorithm);
17931
- if (!this.validateSequenceNumber(msgSym.sequenceHeader.sequenceNumber, controller)) return;
17933
+ if (!this.validateSequenceNumber(msgSym.sequenceHeader.sequenceNumber, "MSG-F", controller)) return;
17932
17934
  controller.enqueue(msgSym);
17933
17935
  break;
17934
17936
  }
17935
- case MsgTypeCloseFinal:
17936
- this.logger.warn("Unimplemented CloseFinal message.");
17937
+ case MsgTypeCloseFinal: {
17938
+ this.logger.warn("SecureChannel received CloseFinal message.");
17939
+ const secHeader = MsgSecurityHeaderSymmetric.decode(buffer);
17940
+ const msgSym = MsgSymmetric.decode(buffer, header, secHeader, this.context.securityAlgorithm);
17941
+ this.validateSequenceNumber(msgSym.sequenceHeader.sequenceNumber, "CLO-F", controller);
17937
17942
  break;
17943
+ }
17938
17944
  default:
17939
17945
  this.logger.warn("SecureChannel received unknown message type:", header.msgType);
17940
17946
  break;