@mastra/dynamodb 1.0.0-beta.10 → 1.0.0-beta.11
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/CHANGELOG.md +46 -0
- package/dist/docs/README.md +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/SOURCE_MAP.json +1 -1
- package/dist/index.cjs +43 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +43 -14
- package/dist/index.js.map +1 -1
- package/dist/storage/domains/memory/index.d.ts +2 -2
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1504,33 +1504,57 @@ var MemoryStorageDynamoDB = class extends MemoryStorage {
|
|
|
1504
1504
|
);
|
|
1505
1505
|
}
|
|
1506
1506
|
}
|
|
1507
|
-
async
|
|
1508
|
-
const {
|
|
1509
|
-
|
|
1510
|
-
|
|
1507
|
+
async listThreads(args) {
|
|
1508
|
+
const { page = 0, perPage: perPageInput, orderBy, filter } = args;
|
|
1509
|
+
try {
|
|
1510
|
+
this.validatePaginationInput(page, perPageInput ?? 100);
|
|
1511
|
+
} catch (error) {
|
|
1511
1512
|
throw new MastraError(
|
|
1512
1513
|
{
|
|
1513
|
-
id: createStorageErrorId("DYNAMODB", "
|
|
1514
|
+
id: createStorageErrorId("DYNAMODB", "LIST_THREADS", "INVALID_PAGE"),
|
|
1514
1515
|
domain: ErrorDomain.STORAGE,
|
|
1515
1516
|
category: ErrorCategory.USER,
|
|
1516
|
-
details: {
|
|
1517
|
+
details: {
|
|
1518
|
+
page,
|
|
1519
|
+
...perPageInput !== void 0 && { perPage: perPageInput }
|
|
1520
|
+
}
|
|
1517
1521
|
},
|
|
1518
|
-
new Error("
|
|
1522
|
+
error instanceof Error ? error : new Error("Invalid pagination parameters")
|
|
1519
1523
|
);
|
|
1520
1524
|
}
|
|
1525
|
+
const perPage = normalizePerPage(perPageInput, 100);
|
|
1521
1526
|
const { offset, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);
|
|
1522
1527
|
const { field, direction } = this.parseOrderBy(orderBy);
|
|
1523
|
-
this.logger.debug("
|
|
1524
|
-
resourceId,
|
|
1528
|
+
this.logger.debug("Listing threads with filters", {
|
|
1529
|
+
resourceId: filter?.resourceId,
|
|
1530
|
+
metadataKeys: filter?.metadata ? Object.keys(filter.metadata) : [],
|
|
1525
1531
|
page,
|
|
1526
1532
|
perPage,
|
|
1527
1533
|
field,
|
|
1528
1534
|
direction
|
|
1529
1535
|
});
|
|
1530
1536
|
try {
|
|
1531
|
-
const
|
|
1532
|
-
|
|
1533
|
-
|
|
1537
|
+
const rawThreads = filter?.resourceId ? (await this.service.entities.thread.query.byResource({
|
|
1538
|
+
entity: "thread",
|
|
1539
|
+
resourceId: filter.resourceId
|
|
1540
|
+
}).go({ pages: "all" })).data : (await this.service.entities.thread.scan.go({ pages: "all" })).data;
|
|
1541
|
+
let allThreads = this.transformAndSortThreads(rawThreads, field, direction);
|
|
1542
|
+
if (filter?.metadata && Object.keys(filter.metadata).length > 0) {
|
|
1543
|
+
allThreads = allThreads.filter((thread) => {
|
|
1544
|
+
let threadMeta = null;
|
|
1545
|
+
if (typeof thread.metadata === "string") {
|
|
1546
|
+
try {
|
|
1547
|
+
threadMeta = JSON.parse(thread.metadata);
|
|
1548
|
+
} catch {
|
|
1549
|
+
return false;
|
|
1550
|
+
}
|
|
1551
|
+
} else if (thread.metadata && typeof thread.metadata === "object") {
|
|
1552
|
+
threadMeta = thread.metadata;
|
|
1553
|
+
}
|
|
1554
|
+
if (!threadMeta) return false;
|
|
1555
|
+
return Object.entries(filter.metadata).every(([key, value]) => threadMeta[key] === value);
|
|
1556
|
+
});
|
|
1557
|
+
}
|
|
1534
1558
|
const endIndex = offset + perPage;
|
|
1535
1559
|
const paginatedThreads = allThreads.slice(offset, endIndex);
|
|
1536
1560
|
const total = allThreads.length;
|
|
@@ -1545,10 +1569,15 @@ var MemoryStorageDynamoDB = class extends MemoryStorage {
|
|
|
1545
1569
|
} catch (error) {
|
|
1546
1570
|
throw new MastraError(
|
|
1547
1571
|
{
|
|
1548
|
-
id: createStorageErrorId("DYNAMODB", "
|
|
1572
|
+
id: createStorageErrorId("DYNAMODB", "LIST_THREADS", "FAILED"),
|
|
1549
1573
|
domain: ErrorDomain.STORAGE,
|
|
1550
1574
|
category: ErrorCategory.THIRD_PARTY,
|
|
1551
|
-
details: {
|
|
1575
|
+
details: {
|
|
1576
|
+
...filter?.resourceId && { resourceId: filter.resourceId },
|
|
1577
|
+
hasMetadataFilter: !!(filter?.metadata && Object.keys(filter.metadata).length),
|
|
1578
|
+
page,
|
|
1579
|
+
perPage: perPageForResponse
|
|
1580
|
+
}
|
|
1552
1581
|
},
|
|
1553
1582
|
error
|
|
1554
1583
|
);
|