@mastra/upstash 1.2.1 → 1.2.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
@@ -1455,6 +1455,16 @@ var StoreMemoryUpstash = class extends MemoryStorage {
1455
1455
  function transformScoreRow(row) {
1456
1456
  return transformScoreRow$1(row);
1457
1457
  }
1458
+ function matchesTenancy(row, filters) {
1459
+ if (filters?.organizationId !== void 0 && row.organizationId !== filters.organizationId) return false;
1460
+ if (filters?.projectId !== void 0 && row.projectId !== filters.projectId) return false;
1461
+ return true;
1462
+ }
1463
+ function compareScoresByCreatedAtDesc(a, b) {
1464
+ const createdAtDiff = new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
1465
+ if (createdAtDiff !== 0) return createdAtDiff;
1466
+ return String(b.id ?? "").localeCompare(String(a.id ?? ""));
1467
+ }
1458
1468
  var ScoresUpstash = class extends ScoresStorage {
1459
1469
  client;
1460
1470
  #db;
@@ -1494,7 +1504,8 @@ var ScoresUpstash = class extends ScoresStorage {
1494
1504
  entityId,
1495
1505
  entityType,
1496
1506
  source,
1497
- pagination = { page: 0, perPage: 20 }
1507
+ pagination = { page: 0, perPage: 20 },
1508
+ filters
1498
1509
  }) {
1499
1510
  const pattern = `${TABLE_SCORERS}:*`;
1500
1511
  const keys = await this.#db.scanKeys(pattern);
@@ -1524,13 +1535,14 @@ var ScoresUpstash = class extends ScoresStorage {
1524
1535
  if (entityId && row.entityId !== entityId) return false;
1525
1536
  if (entityType && row.entityType !== entityType) return false;
1526
1537
  if (source && row.source !== source) return false;
1538
+ if (!matchesTenancy(row, filters)) return false;
1527
1539
  return true;
1528
1540
  });
1529
1541
  const perPage = normalizePerPage(perPageInput, 100);
1530
1542
  const { offset: start, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);
1531
1543
  const end = perPageInput === false ? filtered.length : start + perPage;
1532
1544
  const total = filtered.length;
1533
- const paged = filtered.slice(start, end);
1545
+ const paged = [...filtered].sort(compareScoresByCreatedAtDesc).slice(start, end);
1534
1546
  const scores = paged.map((row) => transformScoreRow(row));
1535
1547
  return {
1536
1548
  scores,
@@ -1591,7 +1603,8 @@ var ScoresUpstash = class extends ScoresStorage {
1591
1603
  }
1592
1604
  async listScoresByRunId({
1593
1605
  runId,
1594
- pagination = { page: 0, perPage: 20 }
1606
+ pagination = { page: 0, perPage: 20 },
1607
+ filters
1595
1608
  }) {
1596
1609
  const pattern = `${TABLE_SCORERS}:*`;
1597
1610
  const keys = await this.#db.scanKeys(pattern);
@@ -1615,12 +1628,14 @@ var ScoresUpstash = class extends ScoresStorage {
1615
1628
  }
1616
1629
  }
1617
1630
  return raw;
1618
- }).filter((row) => !!row && typeof row === "object" && row.runId === runId);
1631
+ }).filter(
1632
+ (row) => !!row && typeof row === "object" && row.runId === runId && matchesTenancy(row, filters)
1633
+ );
1619
1634
  const total = filtered.length;
1620
1635
  const perPage = normalizePerPage(perPageInput, 100);
1621
1636
  const { offset: start, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);
1622
1637
  const end = perPageInput === false ? filtered.length : start + perPage;
1623
- const paged = filtered.slice(start, end);
1638
+ const paged = [...filtered].sort(compareScoresByCreatedAtDesc).slice(start, end);
1624
1639
  const scores = paged.map((row) => transformScoreRow(row));
1625
1640
  return {
1626
1641
  scores,
@@ -1635,7 +1650,8 @@ var ScoresUpstash = class extends ScoresStorage {
1635
1650
  async listScoresByEntityId({
1636
1651
  entityId,
1637
1652
  entityType,
1638
- pagination = { page: 0, perPage: 20 }
1653
+ pagination = { page: 0, perPage: 20 },
1654
+ filters
1639
1655
  }) {
1640
1656
  const pattern = `${TABLE_SCORERS}:*`;
1641
1657
  const keys = await this.#db.scanKeys(pattern);
@@ -1663,13 +1679,14 @@ var ScoresUpstash = class extends ScoresStorage {
1663
1679
  if (!row || typeof row !== "object") return false;
1664
1680
  if (row.entityId !== entityId) return false;
1665
1681
  if (entityType && row.entityType !== entityType) return false;
1682
+ if (!matchesTenancy(row, filters)) return false;
1666
1683
  return true;
1667
1684
  });
1668
1685
  const total = filtered.length;
1669
1686
  const perPage = normalizePerPage(perPageInput, 100);
1670
1687
  const { offset: start, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);
1671
1688
  const end = perPageInput === false ? filtered.length : start + perPage;
1672
- const paged = filtered.slice(start, end);
1689
+ const paged = [...filtered].sort(compareScoresByCreatedAtDesc).slice(start, end);
1673
1690
  const scores = paged.map((row) => transformScoreRow(row));
1674
1691
  return {
1675
1692
  scores,
@@ -1684,7 +1701,8 @@ var ScoresUpstash = class extends ScoresStorage {
1684
1701
  async listScoresBySpan({
1685
1702
  traceId,
1686
1703
  spanId,
1687
- pagination = { page: 0, perPage: 20 }
1704
+ pagination = { page: 0, perPage: 20 },
1705
+ filters
1688
1706
  }) {
1689
1707
  const pattern = `${TABLE_SCORERS}:*`;
1690
1708
  const keys = await this.#db.scanKeys(pattern);
@@ -1712,13 +1730,14 @@ var ScoresUpstash = class extends ScoresStorage {
1712
1730
  if (!row || typeof row !== "object") return false;
1713
1731
  if (row.traceId !== traceId) return false;
1714
1732
  if (row.spanId !== spanId) return false;
1733
+ if (!matchesTenancy(row, filters)) return false;
1715
1734
  return true;
1716
1735
  });
1717
1736
  const total = filtered.length;
1718
1737
  const perPage = normalizePerPage(perPageInput, 100);
1719
1738
  const { offset: start, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);
1720
1739
  const end = perPageInput === false ? filtered.length : start + perPage;
1721
- const paged = filtered.slice(start, end);
1740
+ const paged = [...filtered].sort(compareScoresByCreatedAtDesc).slice(start, end);
1722
1741
  const scores = paged.map((row) => transformScoreRow(row));
1723
1742
  return {
1724
1743
  scores,