tough-cookie 6.0.0 → 6.0.1

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
@@ -428,7 +428,7 @@ var ParameterError = class extends Error {
428
428
  };
429
429
 
430
430
  // lib/version.ts
431
- var version = "6.0.0";
431
+ var version = "6.0.1";
432
432
 
433
433
  // lib/cookie/constants.ts
434
434
  var PrefixSecurityEnum = {
@@ -483,145 +483,114 @@ function formatDate(date) {
483
483
  }
484
484
 
485
485
  // lib/cookie/parseDate.ts
486
- var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;
487
- var MONTH_TO_NUM = {
488
- jan: 0,
489
- feb: 1,
490
- mar: 2,
491
- apr: 3,
492
- may: 4,
493
- jun: 5,
494
- jul: 6,
495
- aug: 7,
496
- sep: 8,
497
- oct: 9,
498
- nov: 10,
499
- dec: 11
500
- };
501
- function parseDigits(token, minDigits, maxDigits, trailingOK) {
502
- let count = 0;
503
- while (count < token.length) {
504
- const c = token.charCodeAt(count);
505
- if (c <= 47 || c >= 58) {
506
- break;
507
- }
508
- count++;
509
- }
510
- if (count < minDigits || count > maxDigits) {
511
- return;
512
- }
513
- if (!trailingOK && count != token.length) {
514
- return;
515
- }
516
- return parseInt(token.slice(0, count), 10);
517
- }
518
- function parseTime(token) {
519
- const parts = token.split(":");
520
- const result = [0, 0, 0];
521
- if (parts.length !== 3) {
522
- return;
523
- }
524
- for (let i = 0; i < 3; i++) {
525
- const trailingOK = i == 2;
526
- const numPart = parts[i];
527
- if (numPart === void 0) {
528
- return;
529
- }
530
- const num = parseDigits(numPart, 1, 2, trailingOK);
531
- if (num === void 0) {
532
- return;
533
- }
534
- result[i] = num;
535
- }
536
- return result;
537
- }
538
- function parseMonth(token) {
539
- token = String(token).slice(0, 3).toLowerCase();
540
- switch (token) {
541
- case "jan":
542
- return MONTH_TO_NUM.jan;
543
- case "feb":
544
- return MONTH_TO_NUM.feb;
545
- case "mar":
546
- return MONTH_TO_NUM.mar;
547
- case "apr":
548
- return MONTH_TO_NUM.apr;
549
- case "may":
550
- return MONTH_TO_NUM.may;
551
- case "jun":
552
- return MONTH_TO_NUM.jun;
553
- case "jul":
554
- return MONTH_TO_NUM.jul;
555
- case "aug":
556
- return MONTH_TO_NUM.aug;
557
- case "sep":
558
- return MONTH_TO_NUM.sep;
559
- case "oct":
560
- return MONTH_TO_NUM.oct;
561
- case "nov":
562
- return MONTH_TO_NUM.nov;
563
- case "dec":
564
- return MONTH_TO_NUM.dec;
565
- default:
566
- return;
567
- }
568
- }
569
486
  function parseDate(cookieDate) {
570
487
  if (!cookieDate) {
571
- return;
572
- }
573
- const tokens = cookieDate.split(DATE_DELIM);
574
- let hour;
575
- let minute;
576
- let second;
577
- let dayOfMonth;
578
- let month;
579
- let year;
580
- for (let i = 0; i < tokens.length; i++) {
581
- const token = (tokens[i] ?? "").trim();
582
- if (!token.length) {
583
- continue;
584
- }
585
- if (second === void 0) {
586
- const result = parseTime(token);
587
- if (result) {
588
- hour = result[0];
589
- minute = result[1];
590
- second = result[2];
591
- continue;
488
+ return void 0;
489
+ }
490
+ const flags = {
491
+ foundTime: void 0,
492
+ foundDayOfMonth: void 0,
493
+ foundMonth: void 0,
494
+ foundYear: void 0
495
+ };
496
+ const dateTokens = cookieDate.split(DELIMITER).filter((token) => token.length > 0);
497
+ for (const dateToken of dateTokens) {
498
+ if (flags.foundTime === void 0) {
499
+ const [, hours, minutes, seconds] = TIME.exec(dateToken) || [];
500
+ if (hours != void 0 && minutes != void 0 && seconds != void 0) {
501
+ const parsedHours = parseInt(hours, 10);
502
+ const parsedMinutes = parseInt(minutes, 10);
503
+ const parsedSeconds = parseInt(seconds, 10);
504
+ if (!isNaN(parsedHours) && !isNaN(parsedMinutes) && !isNaN(parsedSeconds)) {
505
+ flags.foundTime = {
506
+ hours: parsedHours,
507
+ minutes: parsedMinutes,
508
+ seconds: parsedSeconds
509
+ };
510
+ continue;
511
+ }
592
512
  }
593
513
  }
594
- if (dayOfMonth === void 0) {
595
- const result = parseDigits(token, 1, 2, true);
596
- if (result !== void 0) {
597
- dayOfMonth = result;
514
+ if (flags.foundDayOfMonth === void 0 && DAY_OF_MONTH.test(dateToken)) {
515
+ const dayOfMonth = parseInt(dateToken, 10);
516
+ if (!isNaN(dayOfMonth)) {
517
+ flags.foundDayOfMonth = dayOfMonth;
598
518
  continue;
599
519
  }
600
520
  }
601
- if (month === void 0) {
602
- const result = parseMonth(token);
603
- if (result !== void 0) {
604
- month = result;
521
+ if (flags.foundMonth === void 0 && MONTH.test(dateToken)) {
522
+ const month = months.indexOf(dateToken.substring(0, 3).toLowerCase());
523
+ if (month >= 0 && month <= 11) {
524
+ flags.foundMonth = month;
605
525
  continue;
606
526
  }
607
527
  }
608
- if (year === void 0) {
609
- const result = parseDigits(token, 2, 4, true);
610
- if (result !== void 0) {
611
- year = result;
612
- if (year >= 70 && year <= 99) {
613
- year += 1900;
614
- } else if (year >= 0 && year <= 69) {
615
- year += 2e3;
616
- }
528
+ if (flags.foundYear === void 0 && YEAR.test(dateToken)) {
529
+ const parsedYear = parseInt(dateToken, 10);
530
+ if (!isNaN(parsedYear)) {
531
+ flags.foundYear = parsedYear;
532
+ continue;
617
533
  }
618
534
  }
619
535
  }
620
- if (dayOfMonth === void 0 || month === void 0 || year === void 0 || hour === void 0 || minute === void 0 || second === void 0 || dayOfMonth < 1 || dayOfMonth > 31 || year < 1601 || hour > 23 || minute > 59 || second > 59) {
621
- return;
536
+ if (flags.foundYear !== void 0 && flags.foundYear >= 70 && flags.foundYear <= 99) {
537
+ flags.foundYear += 1900;
538
+ }
539
+ if (flags.foundYear !== void 0 && flags.foundYear >= 0 && flags.foundYear <= 69) {
540
+ flags.foundYear += 2e3;
541
+ }
542
+ if (flags.foundDayOfMonth === void 0 || flags.foundMonth === void 0 || flags.foundYear === void 0 || flags.foundTime === void 0) {
543
+ return void 0;
544
+ }
545
+ if (flags.foundDayOfMonth < 1 || flags.foundDayOfMonth > 31) {
546
+ return void 0;
547
+ }
548
+ if (flags.foundYear < 1601) {
549
+ return void 0;
622
550
  }
623
- return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));
551
+ if (flags.foundTime.hours > 23) {
552
+ return void 0;
553
+ }
554
+ if (flags.foundTime.minutes > 59) {
555
+ return void 0;
556
+ }
557
+ if (flags.foundTime.seconds > 59) {
558
+ return void 0;
559
+ }
560
+ const date = new Date(
561
+ Date.UTC(
562
+ flags.foundYear,
563
+ flags.foundMonth,
564
+ flags.foundDayOfMonth,
565
+ flags.foundTime.hours,
566
+ flags.foundTime.minutes,
567
+ flags.foundTime.seconds
568
+ )
569
+ );
570
+ if (date.getUTCFullYear() !== flags.foundYear || date.getUTCMonth() !== flags.foundMonth || date.getUTCDate() !== flags.foundDayOfMonth) {
571
+ return void 0;
572
+ }
573
+ return date;
624
574
  }
575
+ var months = [
576
+ "jan",
577
+ "feb",
578
+ "mar",
579
+ "apr",
580
+ "may",
581
+ "jun",
582
+ "jul",
583
+ "aug",
584
+ "sep",
585
+ "oct",
586
+ "nov",
587
+ "dec"
588
+ ];
589
+ var DELIMITER = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;
590
+ var TIME = /^(\d{1,2}):(\d{1,2}):(\d{1,2})(?:[\x00-\x2F\x3A-\xFF][\x00-\xFF]*)?$/;
591
+ var DAY_OF_MONTH = /^[0-9]{1,2}(?:[\x00-\x2F\x3A-\xFF][\x00-\xFF]*)?$/;
592
+ var MONTH = /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[\x00-\xFF]*$/i;
593
+ var YEAR = /^[\x30-\x39]{2,4}(?:[\x00-\x2F\x3A-\xFF][\x00-\xFF]*)?$/;
625
594
 
626
595
  // lib/cookie/cookie.ts
627
596
  var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;
@@ -886,7 +855,7 @@ var _Cookie = class _Cookie {
886
855
  });
887
856
  this.creationIndex = _Cookie.cookiesCreated;
888
857
  }
889
- [Symbol.for("nodejs.util.inspect.custom")]() {
858
+ [/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")]() {
890
859
  const now = Date.now();
891
860
  const hostOnly = this.hostOnly != null ? this.hostOnly.toString() : "?";
892
861
  const createAge = this.creation && this.creation !== "Infinity" ? `${String(now - this.creation.getTime())}ms` : "?";