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