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.
- package/dist/server/aws/ddb/domain.d.ts +172 -1
- package/dist/server/aws/ddb/domain.d.ts.map +1 -1
- package/dist/server/aws/ddb/fns.d.ts +4 -0
- package/dist/server/aws/ddb/fns.d.ts.map +1 -1
- package/dist/server/aws/ddb/index.d.ts +1 -1
- package/dist/server/aws/ddb/index.d.ts.map +1 -1
- package/dist/server/aws/ddb/types.d.ts +200 -0
- package/dist/server/aws/ddb/types.d.ts.map +1 -1
- package/dist/server/index.cjs +349 -1
- package/dist/server/index.js +351 -3
- package/dist/shared/time.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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<
|
|
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":"AAAA,OAAO,
|
|
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,
|
|
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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"}
|
package/dist/server/index.cjs
CHANGED
|
@@ -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" };
|
package/dist/server/index.js
CHANGED
|
@@ -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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"}
|