@mastra/redis 1.2.2 → 1.3.0-alpha.0

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
@@ -1,6 +1,6 @@
1
1
  import { MessageList } from '@mastra/core/agent';
2
2
  import { MastraError, ErrorCategory, ErrorDomain } from '@mastra/core/error';
3
- import { MemoryStorage, TABLE_THREADS, TABLE_MESSAGES, TABLE_RESOURCES, ensureDate, createStorageErrorId, normalizePerPage, calculatePagination, jsonValueEquals, filterByDateRange, ScoresStorage, TABLE_SCORERS, transformScoreRow, WorkflowsStorage, TABLE_WORKFLOW_SNAPSHOT, MastraStorage, serializeDate } from '@mastra/core/storage';
3
+ import { MemoryStorage, TABLE_THREADS, TABLE_MESSAGES, TABLE_RESOURCES, ensureDate, createStorageErrorId, normalizePerPage, calculatePagination, jsonValueEquals, validateStorageMetadataFilter, filterByDateRange, storageMessageMatchesMetadataFilter, ScoresStorage, TABLE_SCORERS, transformScoreRow, WorkflowsStorage, TABLE_WORKFLOW_SNAPSHOT, MastraStorage, serializeDate } from '@mastra/core/storage';
4
4
  import crypto2 from 'crypto';
5
5
  import { saveScorePayloadSchema } from '@mastra/core/evals';
6
6
  import { createClient } from 'redis';
@@ -628,6 +628,7 @@ var StoreMemoryRedis = class extends MemoryStorage {
628
628
  }
629
629
  const perPage = normalizePerPage(perPageInput, 40);
630
630
  const { offset, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);
631
+ const metadataFilter = validateStorageMetadataFilter(filter?.metadata);
631
632
  try {
632
633
  if (page < 0) {
633
634
  throw new MastraError(
@@ -711,6 +712,9 @@ var StoreMemoryRedis = class extends MemoryStorage {
711
712
  (msg) => new Date(msg.createdAt),
712
713
  filter?.dateRange
713
714
  );
715
+ messagesData = messagesData.filter(
716
+ (message) => storageMessageMatchesMetadataFilter(message.content, metadataFilter)
717
+ );
714
718
  messagesData.sort((a, b) => {
715
719
  const aValue = getFieldValue(a);
716
720
  const bValue = getFieldValue(b);
@@ -744,12 +748,9 @@ var StoreMemoryRedis = class extends MemoryStorage {
744
748
  return direction === "ASC" ? aValue - bValue : bValue - aValue;
745
749
  });
746
750
  const returnedThreadMessageIds = new Set(
747
- finalMessages.filter((m) => {
748
- return m.threadId && threadIdsSet.has(m.threadId);
749
- }).map((m) => m.id)
751
+ finalMessages.filter((message) => message.threadId && threadIdsSet.has(message.threadId)).map((message) => message.id)
750
752
  );
751
- const allThreadMessagesReturned = returnedThreadMessageIds.size >= total;
752
- const hasMore = perPageInput !== false && !allThreadMessagesReturned && end < total;
753
+ const hasMore = perPageInput !== false && (metadataFilter || returnedThreadMessageIds.size < total) && offset + paginatedMessages.length < total;
753
754
  return {
754
755
  messages: finalMessages,
755
756
  total,