@upyo/smtp 0.6.0-dev.312 → 0.6.0-dev.316

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
@@ -520,7 +520,9 @@ var BodyHasher = class {
520
520
  this.mode = mode;
521
521
  }
522
522
  update(bytes) {
523
- for (const byte of bytes) {
523
+ const relaxed = this.mode === "relaxed";
524
+ for (let offset = 0; offset < bytes.length;) {
525
+ const byte = bytes[offset++];
524
526
  if (this.cr) {
525
527
  this.cr = false;
526
528
  if (byte === 10) {
@@ -531,7 +533,25 @@ var BodyHasher = class {
531
533
  this.content(13);
532
534
  }
533
535
  if (byte === 13) this.cr = true;
534
- else this.content(byte);
536
+ else if (relaxed && (byte === 32 || byte === 9)) this.whitespace = true;
537
+ else {
538
+ this.content(byte);
539
+ const start = offset;
540
+ while (offset < bytes.length && bytes[offset] !== 13 && (!relaxed || bytes[offset] !== 32 && bytes[offset] !== 9)) offset++;
541
+ this.emitSpan(bytes, start, offset);
542
+ }
543
+ }
544
+ }
545
+ emitSpan(bytes, start, end) {
546
+ while (start < end) {
547
+ const length = Math.min(end - start, this.buffer.length - this.used);
548
+ this.buffer.set(bytes.subarray(start, start + length), this.used);
549
+ this.used += length;
550
+ start += length;
551
+ if (this.used === this.buffer.length) {
552
+ this.hash.update(this.buffer);
553
+ this.used = 0;
554
+ }
535
555
  }
536
556
  }
537
557
  content(byte) {
package/dist/index.js CHANGED
@@ -497,7 +497,9 @@ var BodyHasher = class {
497
497
  this.mode = mode;
498
498
  }
499
499
  update(bytes) {
500
- for (const byte of bytes) {
500
+ const relaxed = this.mode === "relaxed";
501
+ for (let offset = 0; offset < bytes.length;) {
502
+ const byte = bytes[offset++];
501
503
  if (this.cr) {
502
504
  this.cr = false;
503
505
  if (byte === 10) {
@@ -508,7 +510,25 @@ var BodyHasher = class {
508
510
  this.content(13);
509
511
  }
510
512
  if (byte === 13) this.cr = true;
511
- else this.content(byte);
513
+ else if (relaxed && (byte === 32 || byte === 9)) this.whitespace = true;
514
+ else {
515
+ this.content(byte);
516
+ const start = offset;
517
+ while (offset < bytes.length && bytes[offset] !== 13 && (!relaxed || bytes[offset] !== 32 && bytes[offset] !== 9)) offset++;
518
+ this.emitSpan(bytes, start, offset);
519
+ }
520
+ }
521
+ }
522
+ emitSpan(bytes, start, end) {
523
+ while (start < end) {
524
+ const length = Math.min(end - start, this.buffer.length - this.used);
525
+ this.buffer.set(bytes.subarray(start, start + length), this.used);
526
+ this.used += length;
527
+ start += length;
528
+ if (this.used === this.buffer.length) {
529
+ this.hash.update(this.buffer);
530
+ this.used = 0;
531
+ }
512
532
  }
513
533
  }
514
534
  content(byte) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@upyo/smtp",
3
- "version": "0.6.0-dev.312",
3
+ "version": "0.6.0-dev.316",
4
4
  "description": "SMTP transport for Upyo email library",
5
5
  "keywords": [
6
6
  "email",
@@ -53,7 +53,7 @@
53
53
  },
54
54
  "sideEffects": false,
55
55
  "peerDependencies": {
56
- "@upyo/core": "0.6.0-dev.312+646e2370"
56
+ "@upyo/core": "0.6.0-dev.316+a131652d"
57
57
  },
58
58
  "devDependencies": {
59
59
  "tsdown": "^0.12.7",