@mastra/spanner 1.10.1 → 1.11.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/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/index.cjs +38 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +38 -14
- package/dist/index.js.map +1 -1
- package/dist/storage/domains/background-tasks/index.d.ts +1 -0
- package/dist/storage/domains/background-tasks/index.d.ts.map +1 -1
- package/package.json +5 -6
package/dist/index.js
CHANGED
|
@@ -1907,10 +1907,13 @@ function rowToTask(row) {
|
|
|
1907
1907
|
suspendedAt: transformed.suspendedAt ? transformed.suspendedAt instanceof Date ? transformed.suspendedAt : new Date(transformed.suspendedAt) : void 0,
|
|
1908
1908
|
completedAt: transformed.completedAt ? transformed.completedAt instanceof Date ? transformed.completedAt : new Date(transformed.completedAt) : void 0,
|
|
1909
1909
|
ownerId: transformed.ownerId != null ? String(transformed.ownerId) : void 0,
|
|
1910
|
-
leaseExpiresAt: transformed.leaseExpiresAt ? transformed.leaseExpiresAt instanceof Date ? transformed.leaseExpiresAt : new Date(transformed.leaseExpiresAt) : void 0
|
|
1910
|
+
leaseExpiresAt: transformed.leaseExpiresAt ? transformed.leaseExpiresAt instanceof Date ? transformed.leaseExpiresAt : new Date(transformed.leaseExpiresAt) : void 0,
|
|
1911
|
+
expiresAt: transformed.expiresAt ? transformed.expiresAt instanceof Date ? transformed.expiresAt : new Date(transformed.expiresAt) : void 0,
|
|
1912
|
+
metadata: parseJson(transformed.metadata) ?? void 0
|
|
1911
1913
|
};
|
|
1912
1914
|
}
|
|
1913
1915
|
var BackgroundTasksSpanner = class BackgroundTasksSpanner extends BackgroundTasksStorage {
|
|
1916
|
+
supportsTaskExpiry = true;
|
|
1914
1917
|
database;
|
|
1915
1918
|
db;
|
|
1916
1919
|
skipDefaultIndexes;
|
|
@@ -1940,7 +1943,9 @@ var BackgroundTasksSpanner = class BackgroundTasksSpanner extends BackgroundTask
|
|
|
1940
1943
|
"suspend_payload",
|
|
1941
1944
|
"suspendedAt",
|
|
1942
1945
|
"ownerId",
|
|
1943
|
-
"leaseExpiresAt"
|
|
1946
|
+
"leaseExpiresAt",
|
|
1947
|
+
"expiresAt",
|
|
1948
|
+
"metadata"
|
|
1944
1949
|
]
|
|
1945
1950
|
});
|
|
1946
1951
|
await this.createDefaultIndexes();
|
|
@@ -2023,7 +2028,9 @@ var BackgroundTasksSpanner = class BackgroundTasksSpanner extends BackgroundTask
|
|
|
2023
2028
|
suspendedAt: task.suspendedAt ?? null,
|
|
2024
2029
|
completedAt: task.completedAt ?? null,
|
|
2025
2030
|
ownerId: task.ownerId ?? null,
|
|
2026
|
-
leaseExpiresAt: task.leaseExpiresAt ?? null
|
|
2031
|
+
leaseExpiresAt: task.leaseExpiresAt ?? null,
|
|
2032
|
+
expiresAt: task.expiresAt ?? null,
|
|
2033
|
+
metadata: task.metadata ?? null
|
|
2027
2034
|
}
|
|
2028
2035
|
});
|
|
2029
2036
|
}
|
|
@@ -2039,12 +2046,18 @@ var BackgroundTasksSpanner = class BackgroundTasksSpanner extends BackgroundTask
|
|
|
2039
2046
|
if ("completedAt" in update) data.completedAt = update.completedAt ?? null;
|
|
2040
2047
|
if ("ownerId" in update) data.ownerId = update.ownerId ?? null;
|
|
2041
2048
|
if ("leaseExpiresAt" in update) data.leaseExpiresAt = update.leaseExpiresAt ?? null;
|
|
2049
|
+
if ("expiresAt" in update) data.expiresAt = update.expiresAt ?? null;
|
|
2050
|
+
if ("metadata" in update) data.metadata = update.metadata ?? null;
|
|
2042
2051
|
if (Object.keys(data).length === 0) return false;
|
|
2043
2052
|
const setClauses = Object.keys(data).map((field) => `${quoteIdent(field, "column name")} = @${field}`);
|
|
2044
|
-
const params = {
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2053
|
+
const params = { id: taskId };
|
|
2054
|
+
const types = {};
|
|
2055
|
+
for (const [field, value] of Object.entries(data)) {
|
|
2056
|
+
const prepared = this.db.prepareValue(value, field, TABLE_BACKGROUND_TASKS);
|
|
2057
|
+
params[field] = prepared;
|
|
2058
|
+
const colType = getColumnDef(TABLE_BACKGROUND_TASKS, field)?.type;
|
|
2059
|
+
if (prepared === null || colType === "jsonb" || colType === "timestamp") types[field] = getSpannerParamType(colType);
|
|
2060
|
+
}
|
|
2048
2061
|
const predicates = [];
|
|
2049
2062
|
if (options?.expectedStatus) {
|
|
2050
2063
|
predicates.push("status = @expectedStatus");
|
|
@@ -2061,15 +2074,24 @@ var BackgroundTasksSpanner = class BackgroundTasksSpanner extends BackgroundTask
|
|
|
2061
2074
|
if (options.expectedLeaseExpiresAt === null) predicates.push("leaseExpiresAt IS NULL");
|
|
2062
2075
|
else {
|
|
2063
2076
|
predicates.push("leaseExpiresAt = @expectedLeaseExpiresAt");
|
|
2064
|
-
params.expectedLeaseExpiresAt = options.expectedLeaseExpiresAt;
|
|
2077
|
+
params.expectedLeaseExpiresAt = this.db.prepareValue(options.expectedLeaseExpiresAt, "leaseExpiresAt", TABLE_BACKGROUND_TASKS);
|
|
2078
|
+
types.expectedLeaseExpiresAt = getSpannerParamType("timestamp");
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2081
|
+
if (options?.expectedSuspendedAt !== void 0) {
|
|
2082
|
+
if (options.expectedSuspendedAt === null) predicates.push("suspendedAt IS NULL");
|
|
2083
|
+
else {
|
|
2084
|
+
predicates.push("suspendedAt = @expectedSuspendedAt");
|
|
2085
|
+
params.expectedSuspendedAt = this.db.prepareValue(options.expectedSuspendedAt, "suspendedAt", TABLE_BACKGROUND_TASKS);
|
|
2086
|
+
types.expectedSuspendedAt = getSpannerParamType("timestamp");
|
|
2065
2087
|
}
|
|
2066
2088
|
}
|
|
2067
2089
|
const predicateSql = predicates.length > 0 ? ` AND ${predicates.join(" AND ")}` : "";
|
|
2068
|
-
|
|
2090
|
+
return await this.db.runDml({
|
|
2069
2091
|
sql: `UPDATE ${this.tableName()} SET ${setClauses.join(", ")} WHERE id = @id${predicateSql}`,
|
|
2070
|
-
params
|
|
2071
|
-
|
|
2072
|
-
|
|
2092
|
+
params,
|
|
2093
|
+
types
|
|
2094
|
+
}) > 0;
|
|
2073
2095
|
}
|
|
2074
2096
|
async getTask(taskId) {
|
|
2075
2097
|
const [rows] = await this.database.run({
|
|
@@ -2139,7 +2161,8 @@ var BackgroundTasksSpanner = class BackgroundTasksSpanner extends BackgroundTask
|
|
|
2139
2161
|
params[name] = filter.toolCallId;
|
|
2140
2162
|
conditions.push(`${quoteIdent("tool_call_id", "column name")} = @${name}`);
|
|
2141
2163
|
}
|
|
2142
|
-
const dateCol = filter.dateFilterBy === "startedAt" ? quoteIdent("startedAt", "column name") : filter.dateFilterBy === "suspendedAt" ? quoteIdent("suspendedAt", "column name") : filter.dateFilterBy === "completedAt" ? quoteIdent("completedAt", "column name") : quoteIdent("createdAt", "column name");
|
|
2164
|
+
const dateCol = filter.dateFilterBy === "startedAt" ? quoteIdent("startedAt", "column name") : filter.dateFilterBy === "suspendedAt" ? quoteIdent("suspendedAt", "column name") : filter.dateFilterBy === "completedAt" ? quoteIdent("completedAt", "column name") : filter.dateFilterBy === "expiresAt" ? quoteIdent("expiresAt", "column name") : quoteIdent("createdAt", "column name");
|
|
2165
|
+
if (filter.hasExpiresAt !== void 0) conditions.push(`${quoteIdent("expiresAt", "column name")} IS ${filter.hasExpiresAt ? "NOT NULL" : "NULL"}`);
|
|
2143
2166
|
if (filter.fromDate) {
|
|
2144
2167
|
const name = `p${idx++}`;
|
|
2145
2168
|
params[name] = filter.fromDate.toISOString();
|
|
@@ -2204,7 +2227,8 @@ var BackgroundTasksSpanner = class BackgroundTasksSpanner extends BackgroundTask
|
|
|
2204
2227
|
conditions.push(statusCondition.sql);
|
|
2205
2228
|
idx = statusCondition.nextIdx;
|
|
2206
2229
|
}
|
|
2207
|
-
const dateCol = filter.dateFilterBy === "startedAt" ? quoteIdent("startedAt", "column name") : filter.dateFilterBy === "completedAt" ? quoteIdent("completedAt", "column name") : quoteIdent("createdAt", "column name");
|
|
2230
|
+
const dateCol = filter.dateFilterBy === "startedAt" ? quoteIdent("startedAt", "column name") : filter.dateFilterBy === "suspendedAt" ? quoteIdent("suspendedAt", "column name") : filter.dateFilterBy === "completedAt" ? quoteIdent("completedAt", "column name") : filter.dateFilterBy === "expiresAt" ? quoteIdent("expiresAt", "column name") : quoteIdent("createdAt", "column name");
|
|
2231
|
+
if (filter.hasExpiresAt !== void 0) conditions.push(`${quoteIdent("expiresAt", "column name")} IS ${filter.hasExpiresAt ? "NOT NULL" : "NULL"}`);
|
|
2208
2232
|
if (filter.fromDate) {
|
|
2209
2233
|
const name = `p${idx++}`;
|
|
2210
2234
|
params[name] = filter.fromDate.toISOString();
|