@polymarbot/shared 0.6.0 → 0.6.2

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/markets/utils.cjs CHANGED
@@ -636,6 +636,8 @@ var SYMBOL_FULL_NAME_MAP = {
636
636
  ["btc" /* BTC */]: "bitcoin",
637
637
  ["sol" /* SOL */]: "solana"
638
638
  };
639
+ var YEAR_SLUG_CUTOFF_1H = 1773550800;
640
+ var YEAR_SLUG_CUTOFF_1D = 1773532800;
639
641
  var MONTH_NAMES = [
640
642
  "january",
641
643
  "february",
@@ -668,7 +670,11 @@ function generate1hSlug(timestamp, symbol) {
668
670
  const day = etTime.date();
669
671
  const hour = etTime.format("h");
670
672
  const ampm = etTime.format("a");
671
- return `${prefix}-up-or-down-${month}-${day}-${hour}${ampm}-et`;
673
+ if (timestamp < YEAR_SLUG_CUTOFF_1H) {
674
+ return `${prefix}-up-or-down-${month}-${day}-${hour}${ampm}-et`;
675
+ }
676
+ const year = etTime.year();
677
+ return `${prefix}-up-or-down-${month}-${day}-${year}-${hour}${ampm}-et`;
672
678
  }
673
679
  function generate4hSlug(timestamp, symbol) {
674
680
  const prefix = symbol.toLowerCase();
@@ -679,7 +685,11 @@ function generate1dSlug(timestamp, symbol) {
679
685
  const date = new Date(timestamp * 1e3);
680
686
  const month = MONTH_NAMES[date.getUTCMonth()];
681
687
  const day = date.getUTCDate();
682
- return `${prefix}-up-or-down-on-${month}-${day}`;
688
+ if (timestamp < YEAR_SLUG_CUTOFF_1D) {
689
+ return `${prefix}-up-or-down-on-${month}-${day}`;
690
+ }
691
+ const year = date.getUTCFullYear();
692
+ return `${prefix}-up-or-down-on-${month}-${day}-${year}`;
683
693
  }
684
694
  function calculatePeriodStartInET(intervalSeconds) {
685
695
  const now = Math.floor(Date.now() / 1e3);
@@ -721,10 +731,10 @@ function parseIntervalFromSlug(slug) {
721
731
  if (lowerSlug.includes("-updown-4h-")) {
722
732
  return "4h" /* H4 */;
723
733
  }
724
- if (lowerSlug.match(/-up-or-down-\w+-\d+-\d+(am|pm)-et$/)) {
734
+ if (lowerSlug.match(/-up-or-down-\w+-\d+(-\d{4})?-\d+(am|pm)-et$/)) {
725
735
  return "1h" /* H1 */;
726
736
  }
727
- if (lowerSlug.match(/-up-or-down-on-\w+-\d+$/)) {
737
+ if (lowerSlug.match(/-up-or-down-on-\w+-\d+(-\d{4})?$/)) {
728
738
  return "1d" /* D1 */;
729
739
  }
730
740
  return null;
@@ -758,12 +768,12 @@ function parseTimeRangeFromSlug(slug, referenceYear) {
758
768
  startTime = parseInt(match[1], 10);
759
769
  }
760
770
  } else if (interval === "1h" /* H1 */) {
761
- const match = lowerSlug.match(/-up-or-down-(\w+)-(\d+)-(\d+)(am|pm)-et$/);
771
+ const match = lowerSlug.match(/-up-or-down-(\w+)-(\d+)(?:-(\d{4}))?-(\d+)(am|pm)-et$/);
762
772
  if (match) {
763
- const [, monthName, day, hour, ampm] = match;
773
+ const [, monthName, day, slugYear, hour, ampm] = match;
764
774
  const monthIndex = MONTH_NAMES.indexOf(monthName);
765
775
  if (monthIndex !== -1) {
766
- const year = referenceYear ?? (/* @__PURE__ */ new Date()).getFullYear();
776
+ const year = slugYear ? parseInt(slugYear, 10) : referenceYear ?? (/* @__PURE__ */ new Date()).getFullYear();
767
777
  let hour24 = parseInt(hour, 10);
768
778
  if (ampm === "pm" && hour24 !== 12) {
769
779
  hour24 += 12;
@@ -778,12 +788,12 @@ function parseTimeRangeFromSlug(slug, referenceYear) {
778
788
  }
779
789
  }
780
790
  } else if (interval === "1d" /* D1 */) {
781
- const match = lowerSlug.match(/-up-or-down-on-(\w+)-(\d+)$/);
791
+ const match = lowerSlug.match(/-up-or-down-on-(\w+)-(\d+)(?:-(\d{4}))?$/);
782
792
  if (match) {
783
- const [, monthName, day] = match;
793
+ const [, monthName, day, slugYear] = match;
784
794
  const monthIndex = MONTH_NAMES.indexOf(monthName);
785
795
  if (monthIndex !== -1) {
786
- const year = referenceYear ?? (/* @__PURE__ */ new Date()).getFullYear();
796
+ const year = slugYear ? parseInt(slugYear, 10) : referenceYear ?? (/* @__PURE__ */ new Date()).getFullYear();
787
797
  const utcTime = dayjs_default.utc(
788
798
  `${year}-${String(monthIndex + 1).padStart(2, "0")}-${String(day).padStart(2, "0")} 00:00:00`
789
799
  );
package/markets/utils.js CHANGED
@@ -583,6 +583,8 @@ var SYMBOL_FULL_NAME_MAP = {
583
583
  ["btc" /* BTC */]: "bitcoin",
584
584
  ["sol" /* SOL */]: "solana"
585
585
  };
586
+ var YEAR_SLUG_CUTOFF_1H = 1773550800;
587
+ var YEAR_SLUG_CUTOFF_1D = 1773532800;
586
588
  var MONTH_NAMES = [
587
589
  "january",
588
590
  "february",
@@ -615,7 +617,11 @@ function generate1hSlug(timestamp, symbol) {
615
617
  const day = etTime.date();
616
618
  const hour = etTime.format("h");
617
619
  const ampm = etTime.format("a");
618
- return `${prefix}-up-or-down-${month}-${day}-${hour}${ampm}-et`;
620
+ if (timestamp < YEAR_SLUG_CUTOFF_1H) {
621
+ return `${prefix}-up-or-down-${month}-${day}-${hour}${ampm}-et`;
622
+ }
623
+ const year = etTime.year();
624
+ return `${prefix}-up-or-down-${month}-${day}-${year}-${hour}${ampm}-et`;
619
625
  }
620
626
  function generate4hSlug(timestamp, symbol) {
621
627
  const prefix = symbol.toLowerCase();
@@ -626,7 +632,11 @@ function generate1dSlug(timestamp, symbol) {
626
632
  const date = new Date(timestamp * 1e3);
627
633
  const month = MONTH_NAMES[date.getUTCMonth()];
628
634
  const day = date.getUTCDate();
629
- return `${prefix}-up-or-down-on-${month}-${day}`;
635
+ if (timestamp < YEAR_SLUG_CUTOFF_1D) {
636
+ return `${prefix}-up-or-down-on-${month}-${day}`;
637
+ }
638
+ const year = date.getUTCFullYear();
639
+ return `${prefix}-up-or-down-on-${month}-${day}-${year}`;
630
640
  }
631
641
  function calculatePeriodStartInET(intervalSeconds) {
632
642
  const now = Math.floor(Date.now() / 1e3);
@@ -668,10 +678,10 @@ function parseIntervalFromSlug(slug) {
668
678
  if (lowerSlug.includes("-updown-4h-")) {
669
679
  return "4h" /* H4 */;
670
680
  }
671
- if (lowerSlug.match(/-up-or-down-\w+-\d+-\d+(am|pm)-et$/)) {
681
+ if (lowerSlug.match(/-up-or-down-\w+-\d+(-\d{4})?-\d+(am|pm)-et$/)) {
672
682
  return "1h" /* H1 */;
673
683
  }
674
- if (lowerSlug.match(/-up-or-down-on-\w+-\d+$/)) {
684
+ if (lowerSlug.match(/-up-or-down-on-\w+-\d+(-\d{4})?$/)) {
675
685
  return "1d" /* D1 */;
676
686
  }
677
687
  return null;
@@ -705,12 +715,12 @@ function parseTimeRangeFromSlug(slug, referenceYear) {
705
715
  startTime = parseInt(match[1], 10);
706
716
  }
707
717
  } else if (interval === "1h" /* H1 */) {
708
- const match = lowerSlug.match(/-up-or-down-(\w+)-(\d+)-(\d+)(am|pm)-et$/);
718
+ const match = lowerSlug.match(/-up-or-down-(\w+)-(\d+)(?:-(\d{4}))?-(\d+)(am|pm)-et$/);
709
719
  if (match) {
710
- const [, monthName, day, hour, ampm] = match;
720
+ const [, monthName, day, slugYear, hour, ampm] = match;
711
721
  const monthIndex = MONTH_NAMES.indexOf(monthName);
712
722
  if (monthIndex !== -1) {
713
- const year = referenceYear ?? (/* @__PURE__ */ new Date()).getFullYear();
723
+ const year = slugYear ? parseInt(slugYear, 10) : referenceYear ?? (/* @__PURE__ */ new Date()).getFullYear();
714
724
  let hour24 = parseInt(hour, 10);
715
725
  if (ampm === "pm" && hour24 !== 12) {
716
726
  hour24 += 12;
@@ -725,12 +735,12 @@ function parseTimeRangeFromSlug(slug, referenceYear) {
725
735
  }
726
736
  }
727
737
  } else if (interval === "1d" /* D1 */) {
728
- const match = lowerSlug.match(/-up-or-down-on-(\w+)-(\d+)$/);
738
+ const match = lowerSlug.match(/-up-or-down-on-(\w+)-(\d+)(?:-(\d{4}))?$/);
729
739
  if (match) {
730
- const [, monthName, day] = match;
740
+ const [, monthName, day, slugYear] = match;
731
741
  const monthIndex = MONTH_NAMES.indexOf(monthName);
732
742
  if (monthIndex !== -1) {
733
- const year = referenceYear ?? (/* @__PURE__ */ new Date()).getFullYear();
743
+ const year = slugYear ? parseInt(slugYear, 10) : referenceYear ?? (/* @__PURE__ */ new Date()).getFullYear();
734
744
  const utcTime = dayjs_default.utc(
735
745
  `${year}-${String(monthIndex + 1).padStart(2, "0")}-${String(day).padStart(2, "0")} 00:00:00`
736
746
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polymarbot/shared",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "type": "module",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",