@mastra/cloudflare 1.0.0-beta.1 → 1.0.0-beta.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/dist/index.js CHANGED
@@ -572,69 +572,32 @@ var MemoryStorageCloudflare = class extends MemoryStorage {
572
572
  );
573
573
  }
574
574
  const { field, direction } = this.parseOrderBy(orderBy, "ASC");
575
- const messageIds = /* @__PURE__ */ new Set();
576
- const hasFilters = !!resourceId || !!filter?.dateRange;
577
- if (hasFilters || perPage === Number.MAX_SAFE_INTEGER) {
578
- try {
579
- const threadMessagesKey = this.getThreadMessagesKey(threadId);
580
- const allIds = await this.getFullOrder(threadMessagesKey);
581
- allIds.forEach((id) => messageIds.add(id));
582
- } catch {
583
- }
584
- } else {
585
- if (perPage > 0) {
586
- try {
587
- const threadMessagesKey = this.getThreadMessagesKey(threadId);
588
- const fullOrder = await this.getFullOrder(threadMessagesKey);
589
- const totalMessages = fullOrder.length;
590
- let start;
591
- let end;
592
- if (direction === "ASC") {
593
- start = offset;
594
- end = Math.min(offset + perPage - 1, totalMessages - 1);
595
- } else {
596
- start = Math.max(totalMessages - offset - perPage, 0);
597
- end = totalMessages - offset - 1;
598
- }
599
- const paginatedIds = await this.getRange(threadMessagesKey, start, end);
600
- paginatedIds.forEach((id) => messageIds.add(id));
601
- } catch {
602
- }
603
- }
604
- }
605
- if (include && include.length > 0) {
606
- await this.getIncludedMessagesWithContext(threadId, include, messageIds);
575
+ const threadMessageIds = /* @__PURE__ */ new Set();
576
+ try {
577
+ const threadMessagesKey = this.getThreadMessagesKey(threadId);
578
+ const allIds = await this.getFullOrder(threadMessagesKey);
579
+ allIds.forEach((id) => threadMessageIds.add(id));
580
+ } catch {
607
581
  }
608
- const messages = await this.fetchAndParseMessagesFromMultipleThreads(
609
- Array.from(messageIds),
610
- include,
611
- include && include.length > 0 ? void 0 : threadId
582
+ const threadMessages = await this.fetchAndParseMessagesFromMultipleThreads(
583
+ Array.from(threadMessageIds),
584
+ void 0,
585
+ threadId
612
586
  );
613
- let filteredMessages = messages;
587
+ let filteredThreadMessages = threadMessages;
614
588
  if (resourceId) {
615
- filteredMessages = filteredMessages.filter((msg) => msg.resourceId === resourceId);
589
+ filteredThreadMessages = filteredThreadMessages.filter((msg) => msg.resourceId === resourceId);
616
590
  }
617
591
  const dateRange = filter?.dateRange;
618
592
  if (dateRange) {
619
- filteredMessages = filteredMessages.filter((msg) => {
593
+ filteredThreadMessages = filteredThreadMessages.filter((msg) => {
620
594
  const messageDate = new Date(msg.createdAt);
621
595
  if (dateRange.start && messageDate < new Date(dateRange.start)) return false;
622
596
  if (dateRange.end && messageDate > new Date(dateRange.end)) return false;
623
597
  return true;
624
598
  });
625
599
  }
626
- let total;
627
- if (hasFilters) {
628
- total = filteredMessages.length;
629
- } else {
630
- try {
631
- const threadMessagesKey = this.getThreadMessagesKey(threadId);
632
- const fullOrder = await this.getFullOrder(threadMessagesKey);
633
- total = fullOrder.length;
634
- } catch {
635
- total = filteredMessages.length;
636
- }
637
- }
600
+ const total = filteredThreadMessages.length;
638
601
  if (perPage === 0 && (!include || include.length === 0)) {
639
602
  return {
640
603
  messages: [],
@@ -644,45 +607,58 @@ var MemoryStorageCloudflare = class extends MemoryStorage {
644
607
  hasMore: offset < total
645
608
  };
646
609
  }
647
- if (hasFilters && perPage !== Number.MAX_SAFE_INTEGER && perPage > 0) {
648
- if (direction === "ASC") {
649
- filteredMessages = filteredMessages.slice(offset, offset + perPage);
650
- } else {
651
- const start = Math.max(filteredMessages.length - offset - perPage, 0);
652
- const end = filteredMessages.length - offset;
653
- filteredMessages = filteredMessages.slice(start, end);
610
+ filteredThreadMessages.sort((a, b) => {
611
+ const timeA = new Date(a.createdAt).getTime();
612
+ const timeB = new Date(b.createdAt).getTime();
613
+ const timeDiff = direction === "ASC" ? timeA - timeB : timeB - timeA;
614
+ if (timeDiff === 0) {
615
+ return a.id.localeCompare(b.id);
654
616
  }
617
+ return timeDiff;
618
+ });
619
+ let paginatedMessages;
620
+ if (perPage === 0) {
621
+ paginatedMessages = [];
622
+ } else if (perPage === Number.MAX_SAFE_INTEGER) {
623
+ paginatedMessages = filteredThreadMessages;
624
+ } else {
625
+ paginatedMessages = filteredThreadMessages.slice(offset, offset + perPage);
655
626
  }
656
- const paginatedCount = hasFilters && perPage !== Number.MAX_SAFE_INTEGER && perPage > 0 ? filteredMessages.length : filteredMessages.length;
657
- try {
658
- const threadMessagesKey = this.getThreadMessagesKey(threadId);
659
- const messageOrder = await this.getFullOrder(threadMessagesKey);
660
- const orderMap = new Map(messageOrder.map((id, index) => [id, index]));
661
- filteredMessages.sort((a, b) => {
662
- const indexA = orderMap.get(a.id);
663
- const indexB = orderMap.get(b.id);
664
- if (indexA !== void 0 && indexB !== void 0) {
665
- return direction === "ASC" ? indexA - indexB : indexB - indexA;
666
- }
667
- const timeA = new Date(a.createdAt).getTime();
668
- const timeB = new Date(b.createdAt).getTime();
669
- const timeDiff = direction === "ASC" ? timeA - timeB : timeB - timeA;
670
- if (timeDiff === 0) {
671
- return a.id.localeCompare(b.id);
672
- }
673
- return timeDiff;
674
- });
675
- } catch {
676
- filteredMessages.sort((a, b) => {
677
- const timeA = new Date(a.createdAt).getTime();
678
- const timeB = new Date(b.createdAt).getTime();
679
- const timeDiff = direction === "ASC" ? timeA - timeB : timeB - timeA;
680
- if (timeDiff === 0) {
681
- return a.id.localeCompare(b.id);
682
- }
683
- return timeDiff;
684
- });
627
+ let includedMessages = [];
628
+ if (include && include.length > 0) {
629
+ const includedMessageIds = /* @__PURE__ */ new Set();
630
+ await this.getIncludedMessagesWithContext(threadId, include, includedMessageIds);
631
+ const paginatedIds = new Set(paginatedMessages.map((m) => m.id));
632
+ const idsToFetch = Array.from(includedMessageIds).filter((id) => !paginatedIds.has(id));
633
+ if (idsToFetch.length > 0) {
634
+ includedMessages = await this.fetchAndParseMessagesFromMultipleThreads(idsToFetch, include, void 0);
635
+ }
636
+ }
637
+ const seenIds = /* @__PURE__ */ new Set();
638
+ const allMessages = [];
639
+ for (const msg of paginatedMessages) {
640
+ if (!seenIds.has(msg.id)) {
641
+ allMessages.push(msg);
642
+ seenIds.add(msg.id);
643
+ }
644
+ }
645
+ for (const msg of includedMessages) {
646
+ if (!seenIds.has(msg.id)) {
647
+ allMessages.push(msg);
648
+ seenIds.add(msg.id);
649
+ }
685
650
  }
651
+ allMessages.sort((a, b) => {
652
+ const timeA = new Date(a.createdAt).getTime();
653
+ const timeB = new Date(b.createdAt).getTime();
654
+ const timeDiff = direction === "ASC" ? timeA - timeB : timeB - timeA;
655
+ if (timeDiff === 0) {
656
+ return a.id.localeCompare(b.id);
657
+ }
658
+ return timeDiff;
659
+ });
660
+ let filteredMessages = allMessages;
661
+ const paginatedCount = paginatedMessages.length;
686
662
  if (total === 0 && filteredMessages.length === 0 && (!include || include.length === 0)) {
687
663
  return {
688
664
  messages: [],
@@ -715,14 +691,7 @@ var MemoryStorageCloudflare = class extends MemoryStorage {
715
691
  });
716
692
  const returnedThreadMessageIds = new Set(finalMessages.filter((m) => m.threadId === threadId).map((m) => m.id));
717
693
  const allThreadMessagesReturned = returnedThreadMessageIds.size >= total;
718
- let hasMore;
719
- if (perPageInput === false || allThreadMessagesReturned) {
720
- hasMore = false;
721
- } else if (direction === "ASC") {
722
- hasMore = offset + paginatedCount < total;
723
- } else {
724
- hasMore = total - offset - perPage > 0;
725
- }
694
+ const hasMore = perPageInput !== false && !allThreadMessagesReturned && offset + paginatedCount < total;
726
695
  return {
727
696
  messages: finalMessages,
728
697
  total,