qstd 0.3.78 → 0.3.80

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.
@@ -95,6 +95,49 @@ export declare const save: <T extends object>(ddb: Client, props: {
95
95
  tableName?: string;
96
96
  item: T;
97
97
  }) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput>;
98
+ /**
99
+ * Update a single item with type-safe operations
100
+ *
101
+ * Supports all DynamoDB update operations with a clean, type-safe API.
102
+ * Use this for single-item updates; use `transact` for atomic multi-item updates.
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * // All operations with DynamoDB expression comments
107
+ * await update<User>(ddb, {
108
+ * key: { pk: 'user#123', sk: 'profile' },
109
+ *
110
+ * // Value operations
111
+ * set: { name: 'Alice', status: 'active' }, // SET #name = :name, #status = :status
112
+ * incr: { loginCount: 1, failedAttempts: -1 }, // SET #x = #x + :val (negative to decrement)
113
+ * remove: ['tempToken', 'oldField'], // REMOVE #tempToken, #oldField
114
+ *
115
+ * // List operations
116
+ * append: { tags: ['new-tag'] }, // SET #tags = list_append(#tags, :tags)
117
+ * prepend: { notifications: [latest] }, // SET #notif = list_append(:notif, #notif)
118
+ *
119
+ * // Conditional & atomic operations
120
+ * ifNotExists: { createdAt: Date.now() }, // SET #createdAt = if_not_exists(#createdAt, :val)
121
+ * add: { viewCount: 1 }, // ADD #viewCount :val (atomic, creates if missing)
122
+ *
123
+ * // Advanced operations
124
+ * setPath: { 'address.city': 'NYC' }, // SET #address.#city = :val (nested updates)
125
+ * compute: { total: ['subtotal', '+', 'tax'] }, // SET #total = #subtotal + #tax (cross-attribute)
126
+ *
127
+ * // Conditional execution (ConditionExpression)
128
+ * conditions: [{ key: 'version', op: '=', value: 1 }],
129
+ * });
130
+ *
131
+ * // Get updated item back
132
+ * const result = await update<User>(ddb, {
133
+ * key: { pk: 'user#123', sk: 'profile' },
134
+ * incr: { views: 1 },
135
+ * returnValues: 'allNew',
136
+ * });
137
+ * console.log(result.Attributes); // Updated item
138
+ * ```
139
+ */
140
+ export declare function update<T extends object = Record<string, unknown>>(ddb: Client, props: _t.UpdateProps<T>): Promise<import("@aws-sdk/lib-dynamodb").UpdateCommandOutput>;
98
141
  /**
99
142
  * Batch get multiple items from DynamoDB
100
143
  *
@@ -119,7 +162,12 @@ export declare function batchGet<T extends object>(ddb: Client, props: {
119
162
  }[];
120
163
  maxRetries?: number;
121
164
  strong?: boolean;
122
- }): Promise<_t.BatchGetResult<T>>;
165
+ }): Promise<{
166
+ missing: number;
167
+ items: T[];
168
+ count: number;
169
+ consumedCapacity: number | undefined;
170
+ }>;
123
171
  /**
124
172
  * Batch write (put) multiple items to DynamoDB
125
173
  *
@@ -254,4 +302,127 @@ export declare const deleteTable: (ddb: Client, tableName: string) => Promise<im
254
302
  export declare const tableExists: (ddb: Client, props: {
255
303
  tableName: string;
256
304
  }) => Promise<boolean>;
305
+ /**
306
+ * Execute an atomic transaction with mixed Put, Delete, Update, and ConditionCheck operations.
307
+ *
308
+ * DynamoDB transactions are all-or-nothing: if any operation fails (including condition checks),
309
+ * the entire transaction is rolled back. This is useful when you need to atomically update
310
+ * multiple items that must stay consistent.
311
+ *
312
+ * ## Limits
313
+ * - Max 100 operations per transaction
314
+ * - Max 4MB total request size
315
+ * - Cost: 2 WCU per item (2x regular writes)
316
+ * - Cannot have multiple operations on the same item
317
+ *
318
+ * @example
319
+ * ```ts
320
+ *
321
+ * // OPTIMISTIC LOCKING - Type-safe conditions (recommended)
322
+ *
323
+ * await transact<User>(ddb, {
324
+ * items: [
325
+ * {
326
+ * put: {
327
+ * item: { ...user, version: user.version + 1 },
328
+ * conditions: [{ key: 'version', op: '=', value: user.version }]
329
+ * }
330
+ * }
331
+ * ]
332
+ * });
333
+ *
334
+ *
335
+ * // PREVENT OVERWRITES - Only create if doesn't exist
336
+ *
337
+ * await transact<User>(ddb, {
338
+ * items: [
339
+ * {
340
+ * put: {
341
+ * item: newUser,
342
+ * conditions: [{ key: 'pk', op: 'attribute_not_exists' }]
343
+ * }
344
+ * }
345
+ * ]
346
+ * });
347
+ *
348
+ *
349
+ * // CONDITIONAL DELETE - Only delete if status matches
350
+ *
351
+ * await transact<User>(ddb, {
352
+ * items: [
353
+ * {
354
+ * delete: {
355
+ * key: { pk: 'user#123', sk: 'profile' },
356
+ * conditions: [{ key: 'status', op: '=', value: 'inactive' }]
357
+ * }
358
+ * }
359
+ * ]
360
+ * });
361
+ *
362
+ *
363
+ * // ATOMIC MULTI-ITEM - Delete media and update group together
364
+ *
365
+ * await transact(ddb, {
366
+ * items: [
367
+ * { delete: { key: { pk: 'media#123', sk: 'media#123' } } },
368
+ * { put: { item: { ...group, mediaIds: updatedIds, updatedAt: Date.now() } } },
369
+ * ]
370
+ * });
371
+ *
372
+ *
373
+ * // CONDITION CHECK - Verify related item exists before writing
374
+ *
375
+ * await transact<User>(ddb, {
376
+ * items: [
377
+ * {
378
+ * conditionCheck: {
379
+ * key: { pk: 'org#456', sk: 'org#456' },
380
+ * conditions: [{ key: 'pk', op: 'attribute_exists' }]
381
+ * }
382
+ * },
383
+ * { put: { item: { ...user, orgId: 'org#456' } } }
384
+ * ]
385
+ * });
386
+ *
387
+ *
388
+ * // TYPE-SAFE UPDATE - All operations with DynamoDB expression comments
389
+ *
390
+ * await transact<Order>(ddb, {
391
+ * items: [
392
+ * {
393
+ * update: {
394
+ * key: { pk: 'order#123', sk: 'order#123' },
395
+ *
396
+ * // Value operations
397
+ * set: { status: 'shipped', updatedAt: Date.now() }, // SET #status = :status
398
+ * incr: { version: 1, shipmentCount: 1 }, // SET #version = #version + :val
399
+ * remove: ['pendingReason'], // REMOVE #pendingReason
400
+ *
401
+ * // List operations
402
+ * append: { history: ['shipped'] }, // SET #history = list_append(#history, :val)
403
+ * prepend: { alerts: ['urgent'] }, // SET #alerts = list_append(:val, #alerts)
404
+ *
405
+ * // Conditional & atomic operations
406
+ * ifNotExists: { firstShippedAt: Date.now() }, // SET #x = if_not_exists(#x, :val)
407
+ * add: { totalOrders: 1 }, // ADD #totalOrders :val
408
+ *
409
+ * // Advanced operations
410
+ * setPath: { 'shipping.carrier': 'FedEx' }, // SET #shipping.#carrier = :val
411
+ * compute: { total: ['subtotal', '+', 'tax'] }, // SET #total = #subtotal + #tax
412
+ *
413
+ * // Conditional execution
414
+ * conditions: [{ key: 'status', op: '=', value: 'pending' }]
415
+ * }
416
+ * }
417
+ * ]
418
+ * });
419
+ * ```
420
+ */
421
+ export declare function transact<T extends object = Record<string, unknown>>(ddb: Client, props: {
422
+ tableName?: string;
423
+ items: _t.TransactItem<T>[];
424
+ }): Promise<{
425
+ consumedCapacity?: number | undefined;
426
+ processed: number;
427
+ }>;
257
428
  //# sourceMappingURL=domain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/domain.ts"],"names":[],"mappings":"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"}
@@ -27,4 +27,8 @@ export declare const backoffDelay: (attempt: number) => number;
27
27
  * Chunk an array into smaller arrays of specified size
28
28
  */
29
29
  export declare const chunk: <T>(arr: T[], size: number) => T[][];
30
+ /**
31
+ * Build UpdateExpression and expression attributes from type-safe update operations
32
+ */
33
+ export declare const buildUpdateExpression: <T extends object>(ops: _t.UpdateOperations<T>, names: Record<string, string>, values: Record<string, NativeAttributeValue>) => string | undefined;
30
34
  //# sourceMappingURL=fns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fns.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/fns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,GAAG,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,KACpC,MAOF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1E,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3D,WAAW,MAAM,SAmClB,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,IAAI;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACnC,IAAI,EAAE,CAAC,MAAM,GAAG,SAAS,EACzB,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,QAAQ,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,WAoD7C,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,EACpD,SAAS,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC1C,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,QAAQ,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,uBAoE7C,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,CAAC,EACzC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EACvB,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAQ9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,qBACmB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAE9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,MAAM,KAAG,CAAC,EAAE,EAIpD,CAAC"}
1
+ {"version":3,"file":"fns.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/fns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,GAAG,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,KACpC,MAOF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1E,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3D,WAAW,MAAM,SAmClB,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,IAAI;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACnC,IAAI,EAAE,CAAC,MAAM,GAAG,SAAS,EACzB,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,QAAQ,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,WAoD7C,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,EACpD,SAAS,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC1C,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,QAAQ,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,uBAoE7C,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,CAAC,EACzC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EACvB,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAQ9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,qBACmB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAE9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,MAAM,KAAG,CAAC,EAAE,EAIpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,EACpD,KAAK,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC3B,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,QAAQ,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,uBA6I7C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export * from "./domain";
2
2
  export * from "./literals";
3
3
  export { copyTable } from "./copy-table";
4
- export type { Key } from "./types";
4
+ export type { Key, TransactItem, TransactPut, TransactDelete, TransactUpdate, TransactConditionCheck, TransactResult, } from "./types";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EACV,GAAG,EACH,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,cAAc,GACf,MAAM,SAAS,CAAC"}
@@ -212,5 +212,205 @@ export type BatchDeleteResult = {
212
212
  failed: number;
213
213
  consumedCapacity?: number | undefined;
214
214
  };
215
+ /** Expression attribute values for condition expressions */
216
+ export type ExprValues = Record<string, unknown>;
217
+ /** Expression attribute names for reserved word escaping */
218
+ export type ExprNames = Record<string, string>;
219
+ /**
220
+ * Put operation in a transaction
221
+ * @example
222
+ * // Type-safe conditions (recommended)
223
+ * { put: { item: user, conditions: [{ key: 'version', op: '=', value: 1 }] } }
224
+ *
225
+ * // Raw expression (advanced)
226
+ * { put: { item: user, cond: 'attribute_not_exists(pk)' } }
227
+ */
228
+ export type TransactPut<T extends object = Record<string, unknown>> = {
229
+ put: {
230
+ item: T;
231
+ /** Type-safe conditions (like filters). Auto-generates expression attributes. */
232
+ conditions?: ReadonlyArray<FilterClause<T>>;
233
+ /** Raw condition expression. Use conditions for type-safety. */
234
+ cond?: string;
235
+ /** Expression attribute values for raw cond */
236
+ exprValues?: ExprValues;
237
+ /** Expression attribute names for raw cond */
238
+ exprNames?: ExprNames;
239
+ };
240
+ };
241
+ /**
242
+ * Delete operation in a transaction
243
+ * @example
244
+ * // Type-safe conditions (recommended)
245
+ * { delete: { key: { pk, sk }, conditions: [{ key: 'status', op: '=', value: 'inactive' }] } }
246
+ *
247
+ * // Simple delete (no conditions)
248
+ * { delete: { key: { pk, sk } } }
249
+ */
250
+ export type TransactDelete<T extends object = Record<string, unknown>> = {
251
+ delete: {
252
+ key: Key;
253
+ /** Type-safe conditions (like filters). Auto-generates expression attributes. */
254
+ conditions?: ReadonlyArray<FilterClause<T>>;
255
+ /** Raw condition expression. Use conditions for type-safety. */
256
+ cond?: string;
257
+ /** Expression attribute values for raw cond */
258
+ exprValues?: ExprValues;
259
+ /** Expression attribute names for raw cond */
260
+ exprNames?: ExprNames;
261
+ };
262
+ };
263
+ /**
264
+ * Type-safe update operations - shared between transact and update functions
265
+ * @example
266
+ * ```ts
267
+ * // Value operations
268
+ * set: { name: 'Alice', status: 'active' } // SET #name = :name, #status = :status
269
+ * incr: { count: 1, views: -5 } // SET #count = #count + :incr (use negative to decrement)
270
+ * remove: ['oldField', 'tempData'] // REMOVE #oldField, #tempData
271
+ *
272
+ * // List operations
273
+ * append: { items: ['new1', 'new2'] } // SET #items = list_append(#items, :items)
274
+ * prepend: { items: ['first'] } // SET #items = list_append(:items, #items)
275
+ *
276
+ * // Conditional & set operations
277
+ * ifNotExists: { field: 'default' } // SET #field = if_not_exists(#field, :field)
278
+ * add: { counter: 5 } // ADD #counter :counter (atomic, creates if missing)
279
+ *
280
+ * // Advanced
281
+ * setPath: { 'address.city': 'NYC' } // SET #address.#city = :val (nested updates)
282
+ * compute: { total: ['price', '+', 'tax'] } // SET #total = #price + #tax (cross-attribute math)
283
+ * ```
284
+ */
285
+ export type UpdateOperations<T extends object = Record<string, unknown>> = {
286
+ /** SET: assign values to attributes */
287
+ set?: Partial<T>;
288
+ /** INCREMENT: add to numeric attributes (use negative to decrement) */
289
+ incr?: Partial<Record<keyof T, number>>;
290
+ /** REMOVE: list of attribute names to remove */
291
+ remove?: (keyof T)[];
292
+ /** LIST APPEND: append values to list attributes */
293
+ append?: Partial<Record<keyof T, unknown[]>>;
294
+ /** LIST PREPEND: prepend values to list attributes */
295
+ prepend?: Partial<Record<keyof T, unknown[]>>;
296
+ /** IF NOT EXISTS: set value only if attribute doesn't exist */
297
+ ifNotExists?: Partial<T>;
298
+ /** ADD: atomic add to numeric attributes (creates attribute if missing) */
299
+ add?: Partial<Record<keyof T, number>>;
300
+ /** SET PATH: update nested attributes using dot notation */
301
+ setPath?: Record<string, unknown>;
302
+ /** COMPUTE: cross-attribute math operations */
303
+ compute?: Partial<Record<keyof T, [keyof T, "+" | "-", keyof T]>>;
304
+ };
305
+ /**
306
+ * Update operation in a transaction
307
+ * @example
308
+ * ```ts
309
+ * // All operations can be combined in a single update
310
+ * {
311
+ * update: {
312
+ * key: { pk: 'user#123', sk: 'profile' },
313
+ *
314
+ * // Value operations
315
+ * set: { name: 'Alice', status: 'active' }, // SET #name = :name, #status = :status
316
+ * incr: { loginCount: 1, failedAttempts: -1 }, // SET #x = #x + :val (negative to decrement)
317
+ * remove: ['tempToken', 'oldField'], // REMOVE #tempToken, #oldField
318
+ *
319
+ * // List operations
320
+ * append: { tags: ['new-tag'] }, // SET #tags = list_append(#tags, :tags)
321
+ * prepend: { notifications: [latest] }, // SET #notif = list_append(:notif, #notif)
322
+ *
323
+ * // Conditional & set operations
324
+ * ifNotExists: { createdAt: Date.now() }, // SET #createdAt = if_not_exists(#createdAt, :val)
325
+ * add: { viewCount: 1 }, // ADD #viewCount :val (atomic, creates if missing)
326
+ *
327
+ * // Advanced operations
328
+ * setPath: { 'address.city': 'NYC' }, // SET #address.#city = :val (nested)
329
+ * compute: { total: ['subtotal', '+', 'tax'] }, // SET #total = #subtotal + #tax
330
+ *
331
+ * // Conditional execution
332
+ * conditions: [{ key: 'version', op: '=', value: 1 }]
333
+ * }
334
+ * }
335
+ * ```
336
+ */
337
+ export type TransactUpdate<T extends object = Record<string, unknown>> = {
338
+ update: UpdateOperations<T> & {
339
+ key: Key;
340
+ /** Type-safe conditions (like filters). Auto-generates expression attributes. */
341
+ conditions?: ReadonlyArray<FilterClause<T>>;
342
+ /** Raw condition expression. Use conditions for type-safety. */
343
+ cond?: string;
344
+ };
345
+ };
346
+ /** Return values options for update operations */
347
+ export type UpdateReturnValues = "none" | "allOld" | "updatedOld" | "allNew" | "updatedNew";
348
+ /**
349
+ * Props for standalone update function
350
+ */
351
+ export type UpdateProps<T extends object = Record<string, unknown>> = {
352
+ /** Table name (optional if set on client) */
353
+ tableName?: string;
354
+ /** Primary key of item to update */
355
+ key: Key;
356
+ /** Type-safe conditions (like filters) */
357
+ conditions?: ReadonlyArray<FilterClause<T>>;
358
+ /** Raw condition expression */
359
+ cond?: string;
360
+ /** What values to return after update */
361
+ returnValues?: UpdateReturnValues;
362
+ /** SET: assign values to attributes */
363
+ set?: Partial<T>;
364
+ /** INCREMENT: add to numeric attributes (use negative to decrement) */
365
+ incr?: Partial<Record<keyof T, number>>;
366
+ /** REMOVE: list of attribute names to remove */
367
+ remove?: (keyof T)[];
368
+ /** LIST APPEND: append values to list attributes */
369
+ append?: Partial<Record<keyof T, unknown[]>>;
370
+ /** LIST PREPEND: prepend values to list attributes */
371
+ prepend?: Partial<Record<keyof T, unknown[]>>;
372
+ /** IF NOT EXISTS: set value only if attribute doesn't exist */
373
+ ifNotExists?: Partial<T>;
374
+ /** ADD: atomic add to numeric attributes (creates attribute if missing) */
375
+ add?: Partial<Record<keyof T, number>>;
376
+ /** SET PATH: update nested attributes using dot notation */
377
+ setPath?: Record<string, unknown>;
378
+ /** COMPUTE: cross-attribute math operations */
379
+ compute?: Partial<Record<keyof T, [keyof T, "+" | "-", keyof T]>>;
380
+ };
381
+ /**
382
+ * ConditionCheck operation - validates a condition without modifying the item
383
+ * @example
384
+ * // Type-safe conditions (recommended)
385
+ * { conditionCheck: { key: { pk, sk }, conditions: [{ key: 'pk', op: 'attribute_exists' }] } }
386
+ *
387
+ * // Raw expression
388
+ * { conditionCheck: { key: { pk, sk }, cond: 'attribute_exists(pk)' } }
389
+ */
390
+ export type TransactConditionCheck<T extends object = Record<string, unknown>> = {
391
+ conditionCheck: {
392
+ key: Key;
393
+ /** Type-safe conditions (like filters). Auto-generates expression attributes. */
394
+ conditions?: ReadonlyArray<FilterClause<T>>;
395
+ /** Raw condition expression. Use conditions for type-safety. */
396
+ cond?: string;
397
+ /** Expression attribute values for raw cond */
398
+ exprValues?: ExprValues;
399
+ /** Expression attribute names for raw cond */
400
+ exprNames?: ExprNames;
401
+ };
402
+ };
403
+ /**
404
+ * A single operation in a transaction.
405
+ * Discriminated union - exactly one of: put, delete, update, conditionCheck
406
+ */
407
+ export type TransactItem<T extends object = Record<string, unknown>> = TransactPut<T> | TransactDelete<T> | TransactUpdate<T> | TransactConditionCheck<T>;
408
+ /** Result of a transact operation */
409
+ export type TransactResult = {
410
+ /** Number of operations successfully processed */
411
+ processed: number;
412
+ /** Consumed capacity units (if returned by DynamoDB) */
413
+ consumedCapacity?: number;
414
+ };
215
415
  export {};
216
416
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/types.ts"],"names":[],"mappings":"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"}
@@ -1230,7 +1230,9 @@ __export(ddb_exports, {
1230
1230
  lsi5: () => lsi5,
1231
1231
  remove: () => remove2,
1232
1232
  save: () => save,
1233
- tableExists: () => tableExists
1233
+ tableExists: () => tableExists,
1234
+ transact: () => transact,
1235
+ update: () => update
1234
1236
  });
1235
1237
 
1236
1238
  // src/server/aws/ddb/fns.ts
@@ -1382,6 +1384,124 @@ var chunk2 = (arr, size) => {
1382
1384
  (_, i) => arr.slice(i * size, i * size + size)
1383
1385
  );
1384
1386
  };
1387
+ var buildUpdateExpression = (ops, names, values) => {
1388
+ const setParts = [];
1389
+ const removeParts = [];
1390
+ const addParts = [];
1391
+ let nameIdx = 0;
1392
+ const getName = (key) => {
1393
+ const token = `#u${nameIdx++}`;
1394
+ names[token] = key;
1395
+ return token;
1396
+ };
1397
+ let valIdx = 0;
1398
+ const getValue = (val) => {
1399
+ const token = `:u${valIdx++}`;
1400
+ values[token] = val;
1401
+ return token;
1402
+ };
1403
+ if (ops.set) {
1404
+ for (const [key, val] of Object.entries(
1405
+ ops.set
1406
+ )) {
1407
+ if (val !== void 0) {
1408
+ setParts.push(`${getName(key)} = ${getValue(val)}`);
1409
+ }
1410
+ }
1411
+ }
1412
+ if (ops.incr) {
1413
+ for (const [key, val] of Object.entries(
1414
+ ops.incr
1415
+ )) {
1416
+ if (val !== void 0) {
1417
+ const nameToken = getName(key);
1418
+ setParts.push(`${nameToken} = ${nameToken} + ${getValue(val)}`);
1419
+ }
1420
+ }
1421
+ }
1422
+ if (ops.remove) {
1423
+ for (const key of ops.remove) {
1424
+ removeParts.push(getName(key));
1425
+ }
1426
+ }
1427
+ if (ops.append) {
1428
+ for (const [key, val] of Object.entries(
1429
+ ops.append
1430
+ )) {
1431
+ if (val !== void 0) {
1432
+ const nameToken = getName(key);
1433
+ setParts.push(
1434
+ `${nameToken} = list_append(${nameToken}, ${getValue(val)})`
1435
+ );
1436
+ }
1437
+ }
1438
+ }
1439
+ if (ops.prepend) {
1440
+ for (const [key, val] of Object.entries(
1441
+ ops.prepend
1442
+ )) {
1443
+ if (val !== void 0) {
1444
+ const nameToken = getName(key);
1445
+ setParts.push(
1446
+ `${nameToken} = list_append(${getValue(val)}, ${nameToken})`
1447
+ );
1448
+ }
1449
+ }
1450
+ }
1451
+ if (ops.ifNotExists) {
1452
+ for (const [key, val] of Object.entries(
1453
+ ops.ifNotExists
1454
+ )) {
1455
+ if (val !== void 0) {
1456
+ const nameToken = getName(key);
1457
+ setParts.push(
1458
+ `${nameToken} = if_not_exists(${nameToken}, ${getValue(val)})`
1459
+ );
1460
+ }
1461
+ }
1462
+ }
1463
+ if (ops.add) {
1464
+ for (const [key, val] of Object.entries(
1465
+ ops.add
1466
+ )) {
1467
+ if (val !== void 0) {
1468
+ addParts.push(`${getName(key)} ${getValue(val)}`);
1469
+ }
1470
+ }
1471
+ }
1472
+ if (ops.setPath) {
1473
+ for (const [path, val] of Object.entries(ops.setPath)) {
1474
+ if (val !== void 0) {
1475
+ const pathParts = path.split(".");
1476
+ const pathTokens = pathParts.map((p) => getName(p));
1477
+ setParts.push(`${pathTokens.join(".")} = ${getValue(val)}`);
1478
+ }
1479
+ }
1480
+ }
1481
+ if (ops.compute) {
1482
+ for (const [key, val] of Object.entries(
1483
+ ops.compute
1484
+ )) {
1485
+ if (val && Array.isArray(val) && val.length === 3) {
1486
+ const [left, op, right] = val;
1487
+ setParts.push(
1488
+ `${getName(key)} = ${getName(left)} ${op} ${getName(right)}`
1489
+ );
1490
+ }
1491
+ }
1492
+ }
1493
+ const exprParts = [];
1494
+ if (setParts.length > 0) {
1495
+ exprParts.push(`SET ${setParts.join(", ")}`);
1496
+ }
1497
+ if (removeParts.length > 0) {
1498
+ exprParts.push(`REMOVE ${removeParts.join(", ")}`);
1499
+ }
1500
+ if (addParts.length > 0) {
1501
+ exprParts.push(`ADD ${addParts.join(", ")}`);
1502
+ }
1503
+ return exprParts.join(" ") || void 0;
1504
+ };
1385
1505
 
1386
1506
  // src/server/aws/ddb/domain.ts
1387
1507
  var create2 = (props) => {
@@ -1530,6 +1650,66 @@ var save = async (ddb, props) => {
1530
1650
  });
1531
1651
  return ddb.client.send(command);
1532
1652
  };
1653
+ var RETURN_VALUES_MAP = {
1654
+ updatedNew: clientDynamodb.ReturnValue.UPDATED_NEW,
1655
+ updatedOld: clientDynamodb.ReturnValue.UPDATED_OLD,
1656
+ allOld: clientDynamodb.ReturnValue.ALL_OLD,
1657
+ allNew: clientDynamodb.ReturnValue.ALL_NEW,
1658
+ none: clientDynamodb.ReturnValue.NONE
1659
+ };
1660
+ async function update(ddb, props) {
1661
+ const TableName = getTableNameOrThrow(
1662
+ props.tableName,
1663
+ ddb.tableName
1664
+ );
1665
+ const names = {};
1666
+ const values = {};
1667
+ const UpdateExpression = buildUpdateExpression(
1668
+ props,
1669
+ names,
1670
+ values
1671
+ );
1672
+ if (!UpdateExpression) {
1673
+ throw new Error(
1674
+ `[ddb] [update] requires at least one operation (set, incr, remove, append, etc.)`
1675
+ );
1676
+ }
1677
+ let ConditionExpression;
1678
+ if (props.conditions || props.cond) {
1679
+ const condNames = {};
1680
+ const condValues = {};
1681
+ if (props.conditions) {
1682
+ ConditionExpression = buildFilterExpression(
1683
+ props.conditions,
1684
+ condNames,
1685
+ condValues
1686
+ );
1687
+ }
1688
+ if (props.cond) {
1689
+ ConditionExpression = ConditionExpression ? `(${ConditionExpression}) AND (${props.cond})` : props.cond;
1690
+ }
1691
+ Object.assign(names, condNames);
1692
+ Object.assign(values, condValues);
1693
+ }
1694
+ const input = {
1695
+ TableName,
1696
+ Key: props.key,
1697
+ UpdateExpression
1698
+ };
1699
+ if (ConditionExpression) {
1700
+ input.ConditionExpression = ConditionExpression;
1701
+ }
1702
+ if (Object.keys(names).length > 0) {
1703
+ input.ExpressionAttributeNames = names;
1704
+ }
1705
+ if (Object.keys(values).length > 0) {
1706
+ input.ExpressionAttributeValues = values;
1707
+ }
1708
+ if (props.returnValues) {
1709
+ input.ReturnValues = RETURN_VALUES_MAP[props.returnValues];
1710
+ }
1711
+ return ddb.client.send(new libDynamodb.UpdateCommand(input));
1712
+ }
1533
1713
  async function batchGet(ddb, props) {
1534
1714
  const { keys, maxRetries = 3, strong = false } = props;
1535
1715
  const TableName = getTableNameOrThrow(props.tableName, ddb.tableName);
@@ -1801,6 +1981,174 @@ var tableExists = async (ddb, props) => {
1801
1981
  throw err;
1802
1982
  }
1803
1983
  };
1984
+ async function transact(ddb, props) {
1985
+ const { items } = props;
1986
+ const TableName = getTableNameOrThrow(props.tableName, ddb.tableName);
1987
+ if (items.length === 0) {
1988
+ return { processed: 0 };
1989
+ }
1990
+ if (items.length > 100) {
1991
+ throw new Error(
1992
+ `[ddb] [transact] Transaction exceeds 100 item limit (got ${items.length}). DynamoDB transactions must be <= 100 operations. Split into multiple transactions or use batch operations.`
1993
+ );
1994
+ }
1995
+ const buildCondition = (conditions, rawCond, rawNames, rawValues) => {
1996
+ const names = { ...rawNames };
1997
+ const values = {
1998
+ ...rawValues
1999
+ };
2000
+ const condExpr = conditions ? buildFilterExpression(
2001
+ conditions,
2002
+ names,
2003
+ values
2004
+ ) : void 0;
2005
+ let finalCond;
2006
+ if (condExpr && rawCond) {
2007
+ finalCond = `(${condExpr}) AND (${rawCond})`;
2008
+ } else {
2009
+ finalCond = condExpr ?? rawCond;
2010
+ }
2011
+ return {
2012
+ ConditionExpression: finalCond,
2013
+ ExpressionAttributeNames: Object.keys(names).length > 0 ? names : void 0,
2014
+ ExpressionAttributeValues: Object.keys(values).length > 0 ? values : void 0
2015
+ };
2016
+ };
2017
+ const transactItems = items.map((item2) => {
2018
+ if ("put" in item2) {
2019
+ const {
2020
+ ConditionExpression,
2021
+ ExpressionAttributeNames,
2022
+ ExpressionAttributeValues
2023
+ } = buildCondition(
2024
+ item2.put.conditions,
2025
+ item2.put.cond,
2026
+ item2.put.exprNames,
2027
+ item2.put.exprValues
2028
+ );
2029
+ return {
2030
+ Put: {
2031
+ TableName,
2032
+ Item: item2.put.item,
2033
+ ...ConditionExpression && { ConditionExpression },
2034
+ ...ExpressionAttributeValues && { ExpressionAttributeValues },
2035
+ ...ExpressionAttributeNames && { ExpressionAttributeNames }
2036
+ }
2037
+ };
2038
+ }
2039
+ if ("delete" in item2) {
2040
+ const {
2041
+ ConditionExpression,
2042
+ ExpressionAttributeNames,
2043
+ ExpressionAttributeValues
2044
+ } = buildCondition(
2045
+ item2.delete.conditions,
2046
+ item2.delete.cond,
2047
+ item2.delete.exprNames,
2048
+ item2.delete.exprValues
2049
+ );
2050
+ return {
2051
+ Delete: {
2052
+ TableName,
2053
+ Key: item2.delete.key,
2054
+ ...ConditionExpression && { ConditionExpression },
2055
+ ...ExpressionAttributeValues && { ExpressionAttributeValues },
2056
+ ...ExpressionAttributeNames && { ExpressionAttributeNames }
2057
+ }
2058
+ };
2059
+ }
2060
+ if ("update" in item2) {
2061
+ const names = {};
2062
+ const values = {};
2063
+ const UpdateExpression = buildUpdateExpression(
2064
+ item2.update,
2065
+ names,
2066
+ values
2067
+ );
2068
+ if (!UpdateExpression) {
2069
+ throw new Error(
2070
+ `[ddb] [transact] update requires at least one operation (set, incr, remove, append, etc.)`
2071
+ );
2072
+ }
2073
+ const condResult = buildCondition(
2074
+ item2.update.conditions,
2075
+ item2.update.cond,
2076
+ void 0,
2077
+ void 0
2078
+ );
2079
+ if (condResult.ExpressionAttributeNames) {
2080
+ Object.assign(names, condResult.ExpressionAttributeNames);
2081
+ }
2082
+ if (condResult.ExpressionAttributeValues) {
2083
+ Object.assign(values, condResult.ExpressionAttributeValues);
2084
+ }
2085
+ return {
2086
+ Update: {
2087
+ TableName,
2088
+ Key: item2.update.key,
2089
+ UpdateExpression,
2090
+ ...condResult.ConditionExpression && {
2091
+ ConditionExpression: condResult.ConditionExpression
2092
+ },
2093
+ ...Object.keys(values).length > 0 && {
2094
+ ExpressionAttributeValues: values
2095
+ },
2096
+ ...Object.keys(names).length > 0 && {
2097
+ ExpressionAttributeNames: names
2098
+ }
2099
+ }
2100
+ };
2101
+ }
2102
+ if ("conditionCheck" in item2) {
2103
+ const {
2104
+ ConditionExpression,
2105
+ ExpressionAttributeNames,
2106
+ ExpressionAttributeValues
2107
+ } = buildCondition(
2108
+ item2.conditionCheck.conditions,
2109
+ item2.conditionCheck.cond,
2110
+ item2.conditionCheck.exprNames,
2111
+ item2.conditionCheck.exprValues
2112
+ );
2113
+ if (!ConditionExpression) {
2114
+ throw new Error(
2115
+ `[ddb] [transact] conditionCheck requires either 'conditions' or 'cond'`
2116
+ );
2117
+ }
2118
+ return {
2119
+ ConditionCheck: {
2120
+ TableName,
2121
+ Key: item2.conditionCheck.key,
2122
+ ConditionExpression,
2123
+ ...ExpressionAttributeValues && { ExpressionAttributeValues },
2124
+ ...ExpressionAttributeNames && { ExpressionAttributeNames }
2125
+ }
2126
+ };
2127
+ }
2128
+ throw new Error(
2129
+ `[ddb] [transact] Invalid transaction item: expected put, delete, update, or conditionCheck`
2130
+ );
2131
+ });
2132
+ try {
2133
+ const command = new libDynamodb.TransactWriteCommand({ TransactItems: transactItems });
2134
+ const result = await ddb.client.send(command);
2135
+ let consumedCapacity;
2136
+ if (result.ConsumedCapacity) {
2137
+ consumedCapacity = result.ConsumedCapacity.reduce(
2138
+ (sum, cap) => sum + (cap.CapacityUnits ?? 0),
2139
+ 0
2140
+ );
2141
+ }
2142
+ return {
2143
+ processed: items.length,
2144
+ ...consumedCapacity && { consumedCapacity }
2145
+ };
2146
+ } catch (error2) {
2147
+ const err = error2;
2148
+ console.log(`[error] [ddb] [transact] Transaction failed: ${err.message}`);
2149
+ throw err;
2150
+ }
2151
+ }
1804
2152
 
1805
2153
  // src/server/aws/ddb/literals.ts
1806
2154
  var lsi1 = { name: "lsi1", sk: "lsi1" };
@@ -2,8 +2,8 @@ import { format, formatISO, formatDistanceToNow, isSameYear, isSameMonth, isSame
2
2
  import awaitSpawn from 'await-spawn';
3
3
  import { promises } from 'fs';
4
4
  import { ArkErrors } from 'arktype';
5
- import { DynamoDBDocumentClient, ScanCommand, QueryCommand, DeleteCommand, PutCommand, BatchGetCommand, TransactWriteCommand, BatchWriteCommand } from '@aws-sdk/lib-dynamodb';
6
- import { DynamoDBClient, DeleteTableCommand, DescribeTableCommand, DynamoDBServiceException, CreateTableCommand, DescribeContinuousBackupsCommand, UpdateContinuousBackupsCommand, waitUntilTableExists } from '@aws-sdk/client-dynamodb';
5
+ import { DynamoDBDocumentClient, ScanCommand, QueryCommand, DeleteCommand, PutCommand, UpdateCommand, BatchGetCommand, TransactWriteCommand, BatchWriteCommand } from '@aws-sdk/lib-dynamodb';
6
+ import { ReturnValue, DynamoDBClient, DeleteTableCommand, DescribeTableCommand, DynamoDBServiceException, CreateTableCommand, DescribeContinuousBackupsCommand, UpdateContinuousBackupsCommand, waitUntilTableExists } from '@aws-sdk/client-dynamodb';
7
7
  import signale from 'signale';
8
8
  import { SNSClient, PublishCommand } from '@aws-sdk/client-sns';
9
9
  import { SQSClient, SendMessageCommand } from '@aws-sdk/client-sqs';
@@ -1222,7 +1222,9 @@ __export(ddb_exports, {
1222
1222
  lsi5: () => lsi5,
1223
1223
  remove: () => remove2,
1224
1224
  save: () => save,
1225
- tableExists: () => tableExists
1225
+ tableExists: () => tableExists,
1226
+ transact: () => transact,
1227
+ update: () => update
1226
1228
  });
1227
1229
 
1228
1230
  // src/server/aws/ddb/fns.ts
@@ -1374,6 +1376,124 @@ var chunk2 = (arr, size) => {
1374
1376
  (_, i) => arr.slice(i * size, i * size + size)
1375
1377
  );
1376
1378
  };
1379
+ var buildUpdateExpression = (ops, names, values) => {
1380
+ const setParts = [];
1381
+ const removeParts = [];
1382
+ const addParts = [];
1383
+ let nameIdx = 0;
1384
+ const getName = (key) => {
1385
+ const token = `#u${nameIdx++}`;
1386
+ names[token] = key;
1387
+ return token;
1388
+ };
1389
+ let valIdx = 0;
1390
+ const getValue = (val) => {
1391
+ const token = `:u${valIdx++}`;
1392
+ values[token] = val;
1393
+ return token;
1394
+ };
1395
+ if (ops.set) {
1396
+ for (const [key, val] of Object.entries(
1397
+ ops.set
1398
+ )) {
1399
+ if (val !== void 0) {
1400
+ setParts.push(`${getName(key)} = ${getValue(val)}`);
1401
+ }
1402
+ }
1403
+ }
1404
+ if (ops.incr) {
1405
+ for (const [key, val] of Object.entries(
1406
+ ops.incr
1407
+ )) {
1408
+ if (val !== void 0) {
1409
+ const nameToken = getName(key);
1410
+ setParts.push(`${nameToken} = ${nameToken} + ${getValue(val)}`);
1411
+ }
1412
+ }
1413
+ }
1414
+ if (ops.remove) {
1415
+ for (const key of ops.remove) {
1416
+ removeParts.push(getName(key));
1417
+ }
1418
+ }
1419
+ if (ops.append) {
1420
+ for (const [key, val] of Object.entries(
1421
+ ops.append
1422
+ )) {
1423
+ if (val !== void 0) {
1424
+ const nameToken = getName(key);
1425
+ setParts.push(
1426
+ `${nameToken} = list_append(${nameToken}, ${getValue(val)})`
1427
+ );
1428
+ }
1429
+ }
1430
+ }
1431
+ if (ops.prepend) {
1432
+ for (const [key, val] of Object.entries(
1433
+ ops.prepend
1434
+ )) {
1435
+ if (val !== void 0) {
1436
+ const nameToken = getName(key);
1437
+ setParts.push(
1438
+ `${nameToken} = list_append(${getValue(val)}, ${nameToken})`
1439
+ );
1440
+ }
1441
+ }
1442
+ }
1443
+ if (ops.ifNotExists) {
1444
+ for (const [key, val] of Object.entries(
1445
+ ops.ifNotExists
1446
+ )) {
1447
+ if (val !== void 0) {
1448
+ const nameToken = getName(key);
1449
+ setParts.push(
1450
+ `${nameToken} = if_not_exists(${nameToken}, ${getValue(val)})`
1451
+ );
1452
+ }
1453
+ }
1454
+ }
1455
+ if (ops.add) {
1456
+ for (const [key, val] of Object.entries(
1457
+ ops.add
1458
+ )) {
1459
+ if (val !== void 0) {
1460
+ addParts.push(`${getName(key)} ${getValue(val)}`);
1461
+ }
1462
+ }
1463
+ }
1464
+ if (ops.setPath) {
1465
+ for (const [path, val] of Object.entries(ops.setPath)) {
1466
+ if (val !== void 0) {
1467
+ const pathParts = path.split(".");
1468
+ const pathTokens = pathParts.map((p) => getName(p));
1469
+ setParts.push(`${pathTokens.join(".")} = ${getValue(val)}`);
1470
+ }
1471
+ }
1472
+ }
1473
+ if (ops.compute) {
1474
+ for (const [key, val] of Object.entries(
1475
+ ops.compute
1476
+ )) {
1477
+ if (val && Array.isArray(val) && val.length === 3) {
1478
+ const [left, op, right] = val;
1479
+ setParts.push(
1480
+ `${getName(key)} = ${getName(left)} ${op} ${getName(right)}`
1481
+ );
1482
+ }
1483
+ }
1484
+ }
1485
+ const exprParts = [];
1486
+ if (setParts.length > 0) {
1487
+ exprParts.push(`SET ${setParts.join(", ")}`);
1488
+ }
1489
+ if (removeParts.length > 0) {
1490
+ exprParts.push(`REMOVE ${removeParts.join(", ")}`);
1491
+ }
1492
+ if (addParts.length > 0) {
1493
+ exprParts.push(`ADD ${addParts.join(", ")}`);
1494
+ }
1495
+ return exprParts.join(" ") || void 0;
1496
+ };
1377
1497
 
1378
1498
  // src/server/aws/ddb/domain.ts
1379
1499
  var create2 = (props) => {
@@ -1522,6 +1642,66 @@ var save = async (ddb, props) => {
1522
1642
  });
1523
1643
  return ddb.client.send(command);
1524
1644
  };
1645
+ var RETURN_VALUES_MAP = {
1646
+ updatedNew: ReturnValue.UPDATED_NEW,
1647
+ updatedOld: ReturnValue.UPDATED_OLD,
1648
+ allOld: ReturnValue.ALL_OLD,
1649
+ allNew: ReturnValue.ALL_NEW,
1650
+ none: ReturnValue.NONE
1651
+ };
1652
+ async function update(ddb, props) {
1653
+ const TableName = getTableNameOrThrow(
1654
+ props.tableName,
1655
+ ddb.tableName
1656
+ );
1657
+ const names = {};
1658
+ const values = {};
1659
+ const UpdateExpression = buildUpdateExpression(
1660
+ props,
1661
+ names,
1662
+ values
1663
+ );
1664
+ if (!UpdateExpression) {
1665
+ throw new Error(
1666
+ `[ddb] [update] requires at least one operation (set, incr, remove, append, etc.)`
1667
+ );
1668
+ }
1669
+ let ConditionExpression;
1670
+ if (props.conditions || props.cond) {
1671
+ const condNames = {};
1672
+ const condValues = {};
1673
+ if (props.conditions) {
1674
+ ConditionExpression = buildFilterExpression(
1675
+ props.conditions,
1676
+ condNames,
1677
+ condValues
1678
+ );
1679
+ }
1680
+ if (props.cond) {
1681
+ ConditionExpression = ConditionExpression ? `(${ConditionExpression}) AND (${props.cond})` : props.cond;
1682
+ }
1683
+ Object.assign(names, condNames);
1684
+ Object.assign(values, condValues);
1685
+ }
1686
+ const input = {
1687
+ TableName,
1688
+ Key: props.key,
1689
+ UpdateExpression
1690
+ };
1691
+ if (ConditionExpression) {
1692
+ input.ConditionExpression = ConditionExpression;
1693
+ }
1694
+ if (Object.keys(names).length > 0) {
1695
+ input.ExpressionAttributeNames = names;
1696
+ }
1697
+ if (Object.keys(values).length > 0) {
1698
+ input.ExpressionAttributeValues = values;
1699
+ }
1700
+ if (props.returnValues) {
1701
+ input.ReturnValues = RETURN_VALUES_MAP[props.returnValues];
1702
+ }
1703
+ return ddb.client.send(new UpdateCommand(input));
1704
+ }
1525
1705
  async function batchGet(ddb, props) {
1526
1706
  const { keys, maxRetries = 3, strong = false } = props;
1527
1707
  const TableName = getTableNameOrThrow(props.tableName, ddb.tableName);
@@ -1793,6 +1973,174 @@ var tableExists = async (ddb, props) => {
1793
1973
  throw err;
1794
1974
  }
1795
1975
  };
1976
+ async function transact(ddb, props) {
1977
+ const { items } = props;
1978
+ const TableName = getTableNameOrThrow(props.tableName, ddb.tableName);
1979
+ if (items.length === 0) {
1980
+ return { processed: 0 };
1981
+ }
1982
+ if (items.length > 100) {
1983
+ throw new Error(
1984
+ `[ddb] [transact] Transaction exceeds 100 item limit (got ${items.length}). DynamoDB transactions must be <= 100 operations. Split into multiple transactions or use batch operations.`
1985
+ );
1986
+ }
1987
+ const buildCondition = (conditions, rawCond, rawNames, rawValues) => {
1988
+ const names = { ...rawNames };
1989
+ const values = {
1990
+ ...rawValues
1991
+ };
1992
+ const condExpr = conditions ? buildFilterExpression(
1993
+ conditions,
1994
+ names,
1995
+ values
1996
+ ) : void 0;
1997
+ let finalCond;
1998
+ if (condExpr && rawCond) {
1999
+ finalCond = `(${condExpr}) AND (${rawCond})`;
2000
+ } else {
2001
+ finalCond = condExpr ?? rawCond;
2002
+ }
2003
+ return {
2004
+ ConditionExpression: finalCond,
2005
+ ExpressionAttributeNames: Object.keys(names).length > 0 ? names : void 0,
2006
+ ExpressionAttributeValues: Object.keys(values).length > 0 ? values : void 0
2007
+ };
2008
+ };
2009
+ const transactItems = items.map((item2) => {
2010
+ if ("put" in item2) {
2011
+ const {
2012
+ ConditionExpression,
2013
+ ExpressionAttributeNames,
2014
+ ExpressionAttributeValues
2015
+ } = buildCondition(
2016
+ item2.put.conditions,
2017
+ item2.put.cond,
2018
+ item2.put.exprNames,
2019
+ item2.put.exprValues
2020
+ );
2021
+ return {
2022
+ Put: {
2023
+ TableName,
2024
+ Item: item2.put.item,
2025
+ ...ConditionExpression && { ConditionExpression },
2026
+ ...ExpressionAttributeValues && { ExpressionAttributeValues },
2027
+ ...ExpressionAttributeNames && { ExpressionAttributeNames }
2028
+ }
2029
+ };
2030
+ }
2031
+ if ("delete" in item2) {
2032
+ const {
2033
+ ConditionExpression,
2034
+ ExpressionAttributeNames,
2035
+ ExpressionAttributeValues
2036
+ } = buildCondition(
2037
+ item2.delete.conditions,
2038
+ item2.delete.cond,
2039
+ item2.delete.exprNames,
2040
+ item2.delete.exprValues
2041
+ );
2042
+ return {
2043
+ Delete: {
2044
+ TableName,
2045
+ Key: item2.delete.key,
2046
+ ...ConditionExpression && { ConditionExpression },
2047
+ ...ExpressionAttributeValues && { ExpressionAttributeValues },
2048
+ ...ExpressionAttributeNames && { ExpressionAttributeNames }
2049
+ }
2050
+ };
2051
+ }
2052
+ if ("update" in item2) {
2053
+ const names = {};
2054
+ const values = {};
2055
+ const UpdateExpression = buildUpdateExpression(
2056
+ item2.update,
2057
+ names,
2058
+ values
2059
+ );
2060
+ if (!UpdateExpression) {
2061
+ throw new Error(
2062
+ `[ddb] [transact] update requires at least one operation (set, incr, remove, append, etc.)`
2063
+ );
2064
+ }
2065
+ const condResult = buildCondition(
2066
+ item2.update.conditions,
2067
+ item2.update.cond,
2068
+ void 0,
2069
+ void 0
2070
+ );
2071
+ if (condResult.ExpressionAttributeNames) {
2072
+ Object.assign(names, condResult.ExpressionAttributeNames);
2073
+ }
2074
+ if (condResult.ExpressionAttributeValues) {
2075
+ Object.assign(values, condResult.ExpressionAttributeValues);
2076
+ }
2077
+ return {
2078
+ Update: {
2079
+ TableName,
2080
+ Key: item2.update.key,
2081
+ UpdateExpression,
2082
+ ...condResult.ConditionExpression && {
2083
+ ConditionExpression: condResult.ConditionExpression
2084
+ },
2085
+ ...Object.keys(values).length > 0 && {
2086
+ ExpressionAttributeValues: values
2087
+ },
2088
+ ...Object.keys(names).length > 0 && {
2089
+ ExpressionAttributeNames: names
2090
+ }
2091
+ }
2092
+ };
2093
+ }
2094
+ if ("conditionCheck" in item2) {
2095
+ const {
2096
+ ConditionExpression,
2097
+ ExpressionAttributeNames,
2098
+ ExpressionAttributeValues
2099
+ } = buildCondition(
2100
+ item2.conditionCheck.conditions,
2101
+ item2.conditionCheck.cond,
2102
+ item2.conditionCheck.exprNames,
2103
+ item2.conditionCheck.exprValues
2104
+ );
2105
+ if (!ConditionExpression) {
2106
+ throw new Error(
2107
+ `[ddb] [transact] conditionCheck requires either 'conditions' or 'cond'`
2108
+ );
2109
+ }
2110
+ return {
2111
+ ConditionCheck: {
2112
+ TableName,
2113
+ Key: item2.conditionCheck.key,
2114
+ ConditionExpression,
2115
+ ...ExpressionAttributeValues && { ExpressionAttributeValues },
2116
+ ...ExpressionAttributeNames && { ExpressionAttributeNames }
2117
+ }
2118
+ };
2119
+ }
2120
+ throw new Error(
2121
+ `[ddb] [transact] Invalid transaction item: expected put, delete, update, or conditionCheck`
2122
+ );
2123
+ });
2124
+ try {
2125
+ const command = new TransactWriteCommand({ TransactItems: transactItems });
2126
+ const result = await ddb.client.send(command);
2127
+ let consumedCapacity;
2128
+ if (result.ConsumedCapacity) {
2129
+ consumedCapacity = result.ConsumedCapacity.reduce(
2130
+ (sum, cap) => sum + (cap.CapacityUnits ?? 0),
2131
+ 0
2132
+ );
2133
+ }
2134
+ return {
2135
+ processed: items.length,
2136
+ ...consumedCapacity && { consumedCapacity }
2137
+ };
2138
+ } catch (error2) {
2139
+ const err = error2;
2140
+ console.log(`[error] [ddb] [transact] Transaction failed: ${err.message}`);
2141
+ throw err;
2142
+ }
2143
+ }
1796
2144
 
1797
2145
  // src/server/aws/ddb/literals.ts
1798
2146
  var lsi1 = { name: "lsi1", sk: "lsi1" };
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/shared/time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/shared/time.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qstd",
3
- "version": "0.3.78",
3
+ "version": "0.3.80",
4
4
  "description": "Standard Block component and utilities library with Panda CSS",
5
5
  "author": "malin1",
6
6
  "license": "MIT",