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