@dudousxd/nestjs-durable-store-drizzle 0.17.0 → 0.18.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.
@@ -1,6 +1,6 @@
1
1
  import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
2
2
  import { PgDatabase } from 'drizzle-orm/pg-core';
3
- import { StateStore, WorkflowRun, RetentionPolicy, StepCheckpoint, StoreTransaction, RunQuery, RunFacetQuery, RunFacetRow, RunValueAxis, RunValueFacetOptions, RunValueFacetRow, SignalWaiter } from '@dudousxd/nestjs-durable-core';
3
+ import { StateStore, WorkflowRun, RetentionPolicy, StepCheckpoint, StoreTransaction, RunQuery, RunFacetQuery, RunFacetRow, RunValueAxis, RunValueFacetOptions, RunValueFacetRow, ScheduleRecord, ScheduleQuery, SignalWaiter } from '@dudousxd/nestjs-durable-core';
4
4
  import { SQL } from 'drizzle-orm';
5
5
 
6
6
  /**
@@ -80,6 +80,7 @@ declare class DrizzlePgStateStore implements StateStore {
80
80
  updateRun(runId: string, patch: Partial<WorkflowRun>): Promise<void>;
81
81
  getRun(runId: string): Promise<WorkflowRun | null>;
82
82
  deleteRun(runId: string): Promise<void>;
83
+ deleteRuns(runIds: string[]): Promise<void>;
83
84
  pruneTerminalRuns(policy: RetentionPolicy, nowMs: number, limit: number): Promise<number>;
84
85
  getCheckpoint(runId: string, seq: number): Promise<StepCheckpoint | null>;
85
86
  saveCheckpoint(checkpoint: StepCheckpoint): Promise<void>;
@@ -96,6 +97,7 @@ declare class DrizzlePgStateStore implements StateStore {
96
97
  /** The predicates every run query shares — {@link listRuns} pages them, the facets group them. */
97
98
  private runFilters;
98
99
  listRuns(query: RunQuery): Promise<WorkflowRun[]>;
100
+ countRuns(query: Omit<RunQuery, 'limit' | 'offset'>): Promise<number>;
99
101
  runFacets(query: RunFacetQuery): Promise<RunFacetRow[]>;
100
102
  /** Run-table axes are an exact `GROUP BY`; the tag / attribute axes are counted over a bounded
101
103
  * page of runs (see `RunValueFacetOptions.scan`), like the TypeORM and SQLite Drizzle adapters. */
@@ -104,6 +106,12 @@ declare class DrizzlePgStateStore implements StateStore {
104
106
  * excludes runs lacking the key (EXISTS requires the row). Numbers compare `num_value`, strings
105
107
  * and booleans `str_value`; an `in` set ORs its members inside the one EXISTS. */
106
108
  private attributeExists;
109
+ saveSchedule(record: ScheduleRecord): Promise<void>;
110
+ getSchedule(id: string): Promise<ScheduleRecord | null>;
111
+ /** A single conditional `UPDATE … RETURNING`: the compare-and-set on `next_fire_at` is atomic. */
112
+ updateSchedule(id: string, patch: Partial<Omit<ScheduleRecord, 'id' | 'createdAt'>>, expectedNextFireAt?: number | null): Promise<boolean>;
113
+ deleteSchedule(id: string): Promise<boolean>;
114
+ listSchedules(query: ScheduleQuery): Promise<ScheduleRecord[]>;
107
115
  listCheckpoints(runId: string): Promise<StepCheckpoint[]>;
108
116
  getLatestCheckpointByName(runId: string, name: string): Promise<StepCheckpoint | undefined>;
109
117
  listCheckpointsByNamePrefix(runId: string, prefixes: string[]): Promise<StepCheckpoint[]>;
@@ -1076,6 +1084,189 @@ declare const durableBufferedEvents: drizzle_orm_pg_core.PgTableWithColumns<{
1076
1084
  };
1077
1085
  dialect: "pg";
1078
1086
  }>;
1087
+ declare const durableSchedules: drizzle_orm_pg_core.PgTableWithColumns<{
1088
+ name: "durable_schedules";
1089
+ schema: undefined;
1090
+ columns: {
1091
+ id: drizzle_orm_pg_core.PgColumn<{
1092
+ name: "id";
1093
+ tableName: "durable_schedules";
1094
+ dataType: "string";
1095
+ columnType: "PgText";
1096
+ data: string;
1097
+ driverParam: string;
1098
+ notNull: true;
1099
+ hasDefault: false;
1100
+ isPrimaryKey: true;
1101
+ isAutoincrement: false;
1102
+ hasRuntimeDefault: false;
1103
+ enumValues: [string, ...string[]];
1104
+ baseColumn: never;
1105
+ identity: undefined;
1106
+ generated: undefined;
1107
+ }, {}, {}>;
1108
+ namespace: drizzle_orm_pg_core.PgColumn<{
1109
+ name: "namespace";
1110
+ tableName: "durable_schedules";
1111
+ dataType: "string";
1112
+ columnType: "PgText";
1113
+ data: string;
1114
+ driverParam: string;
1115
+ notNull: true;
1116
+ hasDefault: true;
1117
+ isPrimaryKey: false;
1118
+ isAutoincrement: false;
1119
+ hasRuntimeDefault: false;
1120
+ enumValues: [string, ...string[]];
1121
+ baseColumn: never;
1122
+ identity: undefined;
1123
+ generated: undefined;
1124
+ }, {}, {}>;
1125
+ workflow: drizzle_orm_pg_core.PgColumn<{
1126
+ name: "workflow";
1127
+ tableName: "durable_schedules";
1128
+ dataType: "string";
1129
+ columnType: "PgText";
1130
+ data: string;
1131
+ driverParam: string;
1132
+ notNull: true;
1133
+ hasDefault: false;
1134
+ isPrimaryKey: false;
1135
+ isAutoincrement: false;
1136
+ hasRuntimeDefault: false;
1137
+ enumValues: [string, ...string[]];
1138
+ baseColumn: never;
1139
+ identity: undefined;
1140
+ generated: undefined;
1141
+ }, {}, {}>;
1142
+ paused: drizzle_orm_pg_core.PgColumn<{
1143
+ name: "paused";
1144
+ tableName: "durable_schedules";
1145
+ dataType: "boolean";
1146
+ columnType: "PgBoolean";
1147
+ data: boolean;
1148
+ driverParam: boolean;
1149
+ notNull: true;
1150
+ hasDefault: true;
1151
+ isPrimaryKey: false;
1152
+ isAutoincrement: false;
1153
+ hasRuntimeDefault: false;
1154
+ enumValues: undefined;
1155
+ baseColumn: never;
1156
+ identity: undefined;
1157
+ generated: undefined;
1158
+ }, {}, {}>;
1159
+ nextFireAt: drizzle_orm_pg_core.PgColumn<{
1160
+ name: string;
1161
+ tableName: "durable_schedules";
1162
+ dataType: "date";
1163
+ columnType: "PgTimestamp";
1164
+ data: Date;
1165
+ driverParam: string;
1166
+ notNull: false;
1167
+ hasDefault: false;
1168
+ isPrimaryKey: false;
1169
+ isAutoincrement: false;
1170
+ hasRuntimeDefault: false;
1171
+ enumValues: undefined;
1172
+ baseColumn: never;
1173
+ identity: undefined;
1174
+ generated: undefined;
1175
+ }, {}, {}>;
1176
+ tags: drizzle_orm_pg_core.PgColumn<{
1177
+ name: "tags";
1178
+ tableName: "durable_schedules";
1179
+ dataType: "json";
1180
+ columnType: "PgJsonb";
1181
+ data: string[];
1182
+ driverParam: unknown;
1183
+ notNull: false;
1184
+ hasDefault: false;
1185
+ isPrimaryKey: false;
1186
+ isAutoincrement: false;
1187
+ hasRuntimeDefault: false;
1188
+ enumValues: undefined;
1189
+ baseColumn: never;
1190
+ identity: undefined;
1191
+ generated: undefined;
1192
+ }, {}, {
1193
+ $type: string[];
1194
+ }>;
1195
+ spec: drizzle_orm_pg_core.PgColumn<{
1196
+ name: "spec";
1197
+ tableName: "durable_schedules";
1198
+ dataType: "json";
1199
+ columnType: "PgJsonb";
1200
+ data: Record<string, unknown>;
1201
+ driverParam: unknown;
1202
+ notNull: true;
1203
+ hasDefault: false;
1204
+ isPrimaryKey: false;
1205
+ isAutoincrement: false;
1206
+ hasRuntimeDefault: false;
1207
+ enumValues: undefined;
1208
+ baseColumn: never;
1209
+ identity: undefined;
1210
+ generated: undefined;
1211
+ }, {}, {
1212
+ $type: Record<string, unknown>;
1213
+ }>;
1214
+ state: drizzle_orm_pg_core.PgColumn<{
1215
+ name: "state";
1216
+ tableName: "durable_schedules";
1217
+ dataType: "json";
1218
+ columnType: "PgJsonb";
1219
+ data: Record<string, unknown>;
1220
+ driverParam: unknown;
1221
+ notNull: true;
1222
+ hasDefault: false;
1223
+ isPrimaryKey: false;
1224
+ isAutoincrement: false;
1225
+ hasRuntimeDefault: false;
1226
+ enumValues: undefined;
1227
+ baseColumn: never;
1228
+ identity: undefined;
1229
+ generated: undefined;
1230
+ }, {}, {
1231
+ $type: Record<string, unknown>;
1232
+ }>;
1233
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1234
+ name: string;
1235
+ tableName: "durable_schedules";
1236
+ dataType: "date";
1237
+ columnType: "PgTimestamp";
1238
+ data: Date;
1239
+ driverParam: string;
1240
+ notNull: true;
1241
+ hasDefault: false;
1242
+ isPrimaryKey: false;
1243
+ isAutoincrement: false;
1244
+ hasRuntimeDefault: false;
1245
+ enumValues: undefined;
1246
+ baseColumn: never;
1247
+ identity: undefined;
1248
+ generated: undefined;
1249
+ }, {}, {}>;
1250
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1251
+ name: string;
1252
+ tableName: "durable_schedules";
1253
+ dataType: "date";
1254
+ columnType: "PgTimestamp";
1255
+ data: Date;
1256
+ driverParam: string;
1257
+ notNull: true;
1258
+ hasDefault: false;
1259
+ isPrimaryKey: false;
1260
+ isAutoincrement: false;
1261
+ hasRuntimeDefault: false;
1262
+ enumValues: undefined;
1263
+ baseColumn: never;
1264
+ identity: undefined;
1265
+ generated: undefined;
1266
+ }, {}, {}>;
1267
+ };
1268
+ dialect: "pg";
1269
+ }>;
1079
1270
  /**
1080
1271
  * Every durable table, keyed by the name to export it under. Spread into your drizzle-kit schema file
1081
1272
  * (`export const { durableWorkflowRuns, ... } = durablePgSchema;` or `export * from` the `/pg` entry)
@@ -1995,6 +2186,189 @@ declare const durablePgSchema: {
1995
2186
  };
1996
2187
  dialect: "pg";
1997
2188
  }>;
2189
+ durableSchedules: drizzle_orm_pg_core.PgTableWithColumns<{
2190
+ name: "durable_schedules";
2191
+ schema: undefined;
2192
+ columns: {
2193
+ id: drizzle_orm_pg_core.PgColumn<{
2194
+ name: "id";
2195
+ tableName: "durable_schedules";
2196
+ dataType: "string";
2197
+ columnType: "PgText";
2198
+ data: string;
2199
+ driverParam: string;
2200
+ notNull: true;
2201
+ hasDefault: false;
2202
+ isPrimaryKey: true;
2203
+ isAutoincrement: false;
2204
+ hasRuntimeDefault: false;
2205
+ enumValues: [string, ...string[]];
2206
+ baseColumn: never;
2207
+ identity: undefined;
2208
+ generated: undefined;
2209
+ }, {}, {}>;
2210
+ namespace: drizzle_orm_pg_core.PgColumn<{
2211
+ name: "namespace";
2212
+ tableName: "durable_schedules";
2213
+ dataType: "string";
2214
+ columnType: "PgText";
2215
+ data: string;
2216
+ driverParam: string;
2217
+ notNull: true;
2218
+ hasDefault: true;
2219
+ isPrimaryKey: false;
2220
+ isAutoincrement: false;
2221
+ hasRuntimeDefault: false;
2222
+ enumValues: [string, ...string[]];
2223
+ baseColumn: never;
2224
+ identity: undefined;
2225
+ generated: undefined;
2226
+ }, {}, {}>;
2227
+ workflow: drizzle_orm_pg_core.PgColumn<{
2228
+ name: "workflow";
2229
+ tableName: "durable_schedules";
2230
+ dataType: "string";
2231
+ columnType: "PgText";
2232
+ data: string;
2233
+ driverParam: string;
2234
+ notNull: true;
2235
+ hasDefault: false;
2236
+ isPrimaryKey: false;
2237
+ isAutoincrement: false;
2238
+ hasRuntimeDefault: false;
2239
+ enumValues: [string, ...string[]];
2240
+ baseColumn: never;
2241
+ identity: undefined;
2242
+ generated: undefined;
2243
+ }, {}, {}>;
2244
+ paused: drizzle_orm_pg_core.PgColumn<{
2245
+ name: "paused";
2246
+ tableName: "durable_schedules";
2247
+ dataType: "boolean";
2248
+ columnType: "PgBoolean";
2249
+ data: boolean;
2250
+ driverParam: boolean;
2251
+ notNull: true;
2252
+ hasDefault: true;
2253
+ isPrimaryKey: false;
2254
+ isAutoincrement: false;
2255
+ hasRuntimeDefault: false;
2256
+ enumValues: undefined;
2257
+ baseColumn: never;
2258
+ identity: undefined;
2259
+ generated: undefined;
2260
+ }, {}, {}>;
2261
+ nextFireAt: drizzle_orm_pg_core.PgColumn<{
2262
+ name: string;
2263
+ tableName: "durable_schedules";
2264
+ dataType: "date";
2265
+ columnType: "PgTimestamp";
2266
+ data: Date;
2267
+ driverParam: string;
2268
+ notNull: false;
2269
+ hasDefault: false;
2270
+ isPrimaryKey: false;
2271
+ isAutoincrement: false;
2272
+ hasRuntimeDefault: false;
2273
+ enumValues: undefined;
2274
+ baseColumn: never;
2275
+ identity: undefined;
2276
+ generated: undefined;
2277
+ }, {}, {}>;
2278
+ tags: drizzle_orm_pg_core.PgColumn<{
2279
+ name: "tags";
2280
+ tableName: "durable_schedules";
2281
+ dataType: "json";
2282
+ columnType: "PgJsonb";
2283
+ data: string[];
2284
+ driverParam: unknown;
2285
+ notNull: false;
2286
+ hasDefault: false;
2287
+ isPrimaryKey: false;
2288
+ isAutoincrement: false;
2289
+ hasRuntimeDefault: false;
2290
+ enumValues: undefined;
2291
+ baseColumn: never;
2292
+ identity: undefined;
2293
+ generated: undefined;
2294
+ }, {}, {
2295
+ $type: string[];
2296
+ }>;
2297
+ spec: drizzle_orm_pg_core.PgColumn<{
2298
+ name: "spec";
2299
+ tableName: "durable_schedules";
2300
+ dataType: "json";
2301
+ columnType: "PgJsonb";
2302
+ data: Record<string, unknown>;
2303
+ driverParam: unknown;
2304
+ notNull: true;
2305
+ hasDefault: false;
2306
+ isPrimaryKey: false;
2307
+ isAutoincrement: false;
2308
+ hasRuntimeDefault: false;
2309
+ enumValues: undefined;
2310
+ baseColumn: never;
2311
+ identity: undefined;
2312
+ generated: undefined;
2313
+ }, {}, {
2314
+ $type: Record<string, unknown>;
2315
+ }>;
2316
+ state: drizzle_orm_pg_core.PgColumn<{
2317
+ name: "state";
2318
+ tableName: "durable_schedules";
2319
+ dataType: "json";
2320
+ columnType: "PgJsonb";
2321
+ data: Record<string, unknown>;
2322
+ driverParam: unknown;
2323
+ notNull: true;
2324
+ hasDefault: false;
2325
+ isPrimaryKey: false;
2326
+ isAutoincrement: false;
2327
+ hasRuntimeDefault: false;
2328
+ enumValues: undefined;
2329
+ baseColumn: never;
2330
+ identity: undefined;
2331
+ generated: undefined;
2332
+ }, {}, {
2333
+ $type: Record<string, unknown>;
2334
+ }>;
2335
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2336
+ name: string;
2337
+ tableName: "durable_schedules";
2338
+ dataType: "date";
2339
+ columnType: "PgTimestamp";
2340
+ data: Date;
2341
+ driverParam: string;
2342
+ notNull: true;
2343
+ hasDefault: false;
2344
+ isPrimaryKey: false;
2345
+ isAutoincrement: false;
2346
+ hasRuntimeDefault: false;
2347
+ enumValues: undefined;
2348
+ baseColumn: never;
2349
+ identity: undefined;
2350
+ generated: undefined;
2351
+ }, {}, {}>;
2352
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2353
+ name: string;
2354
+ tableName: "durable_schedules";
2355
+ dataType: "date";
2356
+ columnType: "PgTimestamp";
2357
+ data: Date;
2358
+ driverParam: string;
2359
+ notNull: true;
2360
+ hasDefault: false;
2361
+ isPrimaryKey: false;
2362
+ isAutoincrement: false;
2363
+ hasRuntimeDefault: false;
2364
+ enumValues: undefined;
2365
+ baseColumn: never;
2366
+ identity: undefined;
2367
+ generated: undefined;
2368
+ }, {}, {}>;
2369
+ };
2370
+ dialect: "pg";
2371
+ }>;
1998
2372
  };
1999
2373
  /**
2000
2374
  * The durable table names, derived from {@link durablePgSchema} (one list, never drifts). Feed to a
@@ -2003,4 +2377,4 @@ declare const durablePgSchema: {
2003
2377
  */
2004
2378
  declare function durablePgManagedTables(): string[];
2005
2379
 
2006
- export { DEFAULT_NAMESPACE, DURABLE_PG_DDL, type DrizzlePgDatabase, type DrizzlePgSqlExecutor, DrizzlePgStateStore, type DrizzlePgStateStoreOptions, drizzlePgExecutor, durableBufferedEvents, durableBufferedSignals, durablePgManagedTables, durablePgSchema, durableRunAttributes, durableSignalWaiters, durableStepCheckpoints, durableWorkflowRuns, ensureDrizzlePgDurableSchema, toDrizzleSql };
2380
+ export { DEFAULT_NAMESPACE, DURABLE_PG_DDL, type DrizzlePgDatabase, type DrizzlePgSqlExecutor, DrizzlePgStateStore, type DrizzlePgStateStoreOptions, drizzlePgExecutor, durableBufferedEvents, durableBufferedSignals, durablePgManagedTables, durablePgSchema, durableRunAttributes, durableSchedules, durableSignalWaiters, durableStepCheckpoints, durableWorkflowRuns, ensureDrizzlePgDurableSchema, toDrizzleSql };