qstd 0.3.77 → 0.3.79
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 +74 -1
- package/dist/server/aws/ddb/domain.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/literals.d.ts +36 -19
- package/dist/server/aws/ddb/literals.d.ts.map +1 -1
- package/dist/server/aws/ddb/types.d.ts +74 -0
- package/dist/server/aws/ddb/types.d.ts.map +1 -1
- package/dist/server/index.cjs +162 -24
- package/dist/server/index.js +162 -24
- package/dist/shared/time.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -119,7 +119,12 @@ export declare function batchGet<T extends object>(ddb: Client, props: {
|
|
|
119
119
|
}[];
|
|
120
120
|
maxRetries?: number;
|
|
121
121
|
strong?: boolean;
|
|
122
|
-
}): Promise<
|
|
122
|
+
}): Promise<{
|
|
123
|
+
missing: number;
|
|
124
|
+
items: T[];
|
|
125
|
+
count: number;
|
|
126
|
+
consumedCapacity: number | undefined;
|
|
127
|
+
}>;
|
|
123
128
|
/**
|
|
124
129
|
* Batch write (put) multiple items to DynamoDB
|
|
125
130
|
*
|
|
@@ -254,4 +259,72 @@ export declare const deleteTable: (ddb: Client, tableName: string) => Promise<im
|
|
|
254
259
|
export declare const tableExists: (ddb: Client, props: {
|
|
255
260
|
tableName: string;
|
|
256
261
|
}) => Promise<boolean>;
|
|
262
|
+
/**
|
|
263
|
+
* Execute an atomic transaction with mixed Put, Delete, Update, and ConditionCheck operations.
|
|
264
|
+
*
|
|
265
|
+
* DynamoDB transactions are all-or-nothing: if any operation fails (including condition checks),
|
|
266
|
+
* the entire transaction is rolled back. This is useful when you need to atomically update
|
|
267
|
+
* multiple items that must stay consistent.
|
|
268
|
+
*
|
|
269
|
+
* ## Limits
|
|
270
|
+
* - Max 100 operations per transaction
|
|
271
|
+
* - Max 4MB total request size
|
|
272
|
+
* - Cost: 2 WCU per item (2x regular writes)
|
|
273
|
+
* - Cannot have multiple operations on the same item
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* // Type-safe conditions (recommended) - like filters in find()
|
|
277
|
+
* await transact<User>(ddb, {
|
|
278
|
+
* items: [
|
|
279
|
+
* {
|
|
280
|
+
* put: {
|
|
281
|
+
* item: { pk: 'user#1', sk: 'profile', version: 2, name: 'Updated' },
|
|
282
|
+
* conditions: [{ key: 'version', op: '=', value: 1 }]
|
|
283
|
+
* }
|
|
284
|
+
* },
|
|
285
|
+
* {
|
|
286
|
+
* delete: {
|
|
287
|
+
* key: { pk: 'user#2', sk: 'profile' },
|
|
288
|
+
* conditions: [{ key: 'status', op: '=', value: 'inactive' }]
|
|
289
|
+
* }
|
|
290
|
+
* },
|
|
291
|
+
* {
|
|
292
|
+
* conditionCheck: {
|
|
293
|
+
* key: { pk: 'org#1', sk: 'org#1' },
|
|
294
|
+
* conditions: [{ key: 'pk', op: 'attribute_exists' }]
|
|
295
|
+
* }
|
|
296
|
+
* }
|
|
297
|
+
* ]
|
|
298
|
+
* });
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* // Delete a media item and update its group atomically
|
|
302
|
+
* await transact(ddb, {
|
|
303
|
+
* items: [
|
|
304
|
+
* { delete: { key: { pk: 'media#123', sk: 'media#123' } } },
|
|
305
|
+
* { put: { item: { ...group, memberMediaIds: filtered, updatedAt: Date.now() } } },
|
|
306
|
+
* ]
|
|
307
|
+
* });
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* // Raw expressions (for advanced use cases)
|
|
311
|
+
* await transact(ddb, {
|
|
312
|
+
* items: [
|
|
313
|
+
* {
|
|
314
|
+
* put: {
|
|
315
|
+
* item: { pk: 'user#1', sk: 'profile', version: 2, name: 'Updated' },
|
|
316
|
+
* cond: 'version = :v',
|
|
317
|
+
* exprValues: { ':v': 1 }
|
|
318
|
+
* }
|
|
319
|
+
* }
|
|
320
|
+
* ]
|
|
321
|
+
* });
|
|
322
|
+
*/
|
|
323
|
+
export declare function transact<T extends object = Record<string, unknown>>(ddb: Client, props: {
|
|
324
|
+
tableName?: string;
|
|
325
|
+
items: _t.TransactItem<T>[];
|
|
326
|
+
}): Promise<{
|
|
327
|
+
consumedCapacity?: number | undefined;
|
|
328
|
+
processed: number;
|
|
329
|
+
}>;
|
|
257
330
|
//# 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,EAUL,sBAAsB,EAEvB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AAE/C,eAAO,MAAM,MAAM,GAAI,QAAQ;IAC7B,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;CAwBA,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEzE,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,GACrC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9B,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;IACvB,iDAAiD,CAAC,KAAK,EAAE,IAAI,CAAC;CAC/D,GACA,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAE1B,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AA0JhB,eAAO,MAAM,MAAM,GACjB,KAAK,MAAM,EACX,OAAO;IAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,iEAK3C,CAAC;AACF;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAU,CAAC,SAAS,MAAM,EACzC,KAAK,MAAM,EACX,OAAO;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,8DAQvC,CAAC;AAMF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAC7C,GAAG,EAAE,MAAM,EACX,KAAK,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -1,30 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* Generic LSIs (1-5) for flexible querying.
|
|
3
|
+
*
|
|
4
|
+
* DynamoDB allows max 5 LSIs per table. These generic LSIs can store
|
|
5
|
+
* different values per partition key, enabling flexible query patterns.
|
|
6
|
+
*
|
|
7
|
+
* Since LSIs are local to each partition, the same LSI attribute can
|
|
8
|
+
* serve different purposes across partitions.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // pk="user" partition
|
|
12
|
+
* lsi1: username - query users by username
|
|
13
|
+
* lsi2: normalized - query by normalized name for search
|
|
14
|
+
* lsi3: email - query users by email
|
|
15
|
+
*
|
|
16
|
+
* // pk="media" partition
|
|
17
|
+
* lsi1: type#<createdAt> - filter by type, sort by created
|
|
18
|
+
* lsi2: created#<ts> - sort by created date
|
|
19
|
+
* lsi3: plays#<count> - sort by play count
|
|
20
|
+
* lsi4: fingerprint#<h> - find by perceptual hash
|
|
21
|
+
* lsi5: lastPlayed#<ts> - sort by last played
|
|
22
|
+
*
|
|
23
|
+
* // pk="image" partition
|
|
24
|
+
* lsi1: phash#<hash> - find by perceptual hash (dHash)
|
|
25
|
+
* lsi2: created#<ts> - sort by created date
|
|
7
26
|
*/
|
|
8
|
-
export declare const
|
|
9
|
-
readonly name: "
|
|
10
|
-
readonly sk: "
|
|
27
|
+
export declare const lsi1: {
|
|
28
|
+
readonly name: "lsi1";
|
|
29
|
+
readonly sk: "lsi1";
|
|
11
30
|
};
|
|
12
31
|
export declare const lsi2: {
|
|
13
32
|
readonly name: "lsi2";
|
|
14
33
|
readonly sk: "lsi2";
|
|
15
34
|
};
|
|
16
|
-
export declare const
|
|
17
|
-
readonly name: "
|
|
18
|
-
readonly sk: "
|
|
35
|
+
export declare const lsi3: {
|
|
36
|
+
readonly name: "lsi3";
|
|
37
|
+
readonly sk: "lsi3";
|
|
19
38
|
};
|
|
20
|
-
export declare const
|
|
21
|
-
|
|
22
|
-
readonly
|
|
23
|
-
readonly sk: "normalized";
|
|
39
|
+
export declare const lsi4: {
|
|
40
|
+
readonly name: "lsi4";
|
|
41
|
+
readonly sk: "lsi4";
|
|
24
42
|
};
|
|
25
|
-
export declare const
|
|
26
|
-
|
|
27
|
-
readonly
|
|
28
|
-
readonly sk: "phash";
|
|
43
|
+
export declare const lsi5: {
|
|
44
|
+
readonly name: "lsi5";
|
|
45
|
+
readonly sk: "lsi5";
|
|
29
46
|
};
|
|
30
47
|
//# sourceMappingURL=literals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/literals.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"literals.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/ddb/literals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,IAAI;;;CAAwC,CAAC;AAC1D,eAAO,MAAM,IAAI;;;CAAwC,CAAC;AAC1D,eAAO,MAAM,IAAI;;;CAAwC,CAAC;AAC1D,eAAO,MAAM,IAAI;;;CAAwC,CAAC;AAC1D,eAAO,MAAM,IAAI;;;CAAwC,CAAC"}
|
|
@@ -212,5 +212,79 @@ 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
|
+
/** Put operation in a transaction */
|
|
220
|
+
export type TransactPut<T extends object = Record<string, unknown>> = {
|
|
221
|
+
put: {
|
|
222
|
+
item: T;
|
|
223
|
+
/** Type-safe conditions (like filters). Auto-generates expression attributes. */
|
|
224
|
+
conditions?: ReadonlyArray<FilterClause<T>>;
|
|
225
|
+
/** Raw condition expression (e.g., 'attribute_not_exists(pk)'). Use conditions for type-safety. */
|
|
226
|
+
cond?: string;
|
|
227
|
+
/** Expression attribute values for raw cond (e.g., { ':v': 1 }) */
|
|
228
|
+
exprValues?: ExprValues;
|
|
229
|
+
/** Expression attribute names for raw cond */
|
|
230
|
+
exprNames?: ExprNames;
|
|
231
|
+
};
|
|
232
|
+
};
|
|
233
|
+
/** Delete operation in a transaction */
|
|
234
|
+
export type TransactDelete<T extends object = Record<string, unknown>> = {
|
|
235
|
+
delete: {
|
|
236
|
+
key: Key;
|
|
237
|
+
/** Type-safe conditions (like filters). Auto-generates expression attributes. */
|
|
238
|
+
conditions?: ReadonlyArray<FilterClause<T>>;
|
|
239
|
+
/** Raw condition expression. Use conditions for type-safety. */
|
|
240
|
+
cond?: string;
|
|
241
|
+
/** Expression attribute values for raw cond */
|
|
242
|
+
exprValues?: ExprValues;
|
|
243
|
+
/** Expression attribute names for raw cond */
|
|
244
|
+
exprNames?: ExprNames;
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
/** Update operation in a transaction */
|
|
248
|
+
export type TransactUpdate<T extends object = Record<string, unknown>> = {
|
|
249
|
+
update: {
|
|
250
|
+
key: Key;
|
|
251
|
+
/** Update expression (e.g., 'SET #count = #count + :inc') */
|
|
252
|
+
expr: string;
|
|
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 expr and/or cond) */
|
|
258
|
+
exprValues?: ExprValues;
|
|
259
|
+
/** Expression attribute names (for expr and/or cond) */
|
|
260
|
+
exprNames?: ExprNames;
|
|
261
|
+
};
|
|
262
|
+
};
|
|
263
|
+
/** ConditionCheck operation - validates a condition without modifying the item */
|
|
264
|
+
export type TransactConditionCheck<T extends object = Record<string, unknown>> = {
|
|
265
|
+
conditionCheck: {
|
|
266
|
+
/** Type-safe conditions (like filters). Auto-generates expression attributes. */
|
|
267
|
+
conditions?: ReadonlyArray<FilterClause<T>>;
|
|
268
|
+
/** Raw condition expression. Use conditions for type-safety. */
|
|
269
|
+
cond?: string;
|
|
270
|
+
/** Expression attribute values for raw cond */
|
|
271
|
+
exprValues?: ExprValues;
|
|
272
|
+
/** Expression attribute names for raw cond */
|
|
273
|
+
exprNames?: ExprNames;
|
|
274
|
+
key: Key;
|
|
275
|
+
};
|
|
276
|
+
};
|
|
277
|
+
/**
|
|
278
|
+
* A single operation in a transaction.
|
|
279
|
+
* Discriminated union - exactly one of: put, delete, update, conditionCheck
|
|
280
|
+
*/
|
|
281
|
+
export type TransactItem<T extends object = Record<string, unknown>> = TransactPut<T> | TransactDelete<T> | TransactUpdate<T> | TransactConditionCheck<T>;
|
|
282
|
+
/** Result of a transact operation */
|
|
283
|
+
export type TransactResult = {
|
|
284
|
+
/** Number of operations successfully processed */
|
|
285
|
+
processed: number;
|
|
286
|
+
/** Consumed capacity units (if returned by DynamoDB) */
|
|
287
|
+
consumedCapacity?: number;
|
|
288
|
+
};
|
|
215
289
|
export {};
|
|
216
290
|
//# 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
|
@@ -1223,14 +1223,15 @@ __export(ddb_exports, {
|
|
|
1223
1223
|
create: () => create2,
|
|
1224
1224
|
deleteTable: () => deleteTable,
|
|
1225
1225
|
find: () => find,
|
|
1226
|
-
|
|
1226
|
+
lsi1: () => lsi1,
|
|
1227
1227
|
lsi2: () => lsi2,
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1228
|
+
lsi3: () => lsi3,
|
|
1229
|
+
lsi4: () => lsi4,
|
|
1230
|
+
lsi5: () => lsi5,
|
|
1231
1231
|
remove: () => remove2,
|
|
1232
1232
|
save: () => save,
|
|
1233
|
-
tableExists: () => tableExists
|
|
1233
|
+
tableExists: () => tableExists,
|
|
1234
|
+
transact: () => transact
|
|
1234
1235
|
});
|
|
1235
1236
|
|
|
1236
1237
|
// src/server/aws/ddb/fns.ts
|
|
@@ -1801,24 +1802,161 @@ var tableExists = async (ddb, props) => {
|
|
|
1801
1802
|
throw err;
|
|
1802
1803
|
}
|
|
1803
1804
|
};
|
|
1805
|
+
async function transact(ddb, props) {
|
|
1806
|
+
const { items } = props;
|
|
1807
|
+
const TableName = getTableNameOrThrow(props.tableName, ddb.tableName);
|
|
1808
|
+
if (items.length === 0) {
|
|
1809
|
+
return { processed: 0 };
|
|
1810
|
+
}
|
|
1811
|
+
if (items.length > 100) {
|
|
1812
|
+
throw new Error(
|
|
1813
|
+
`[ddb] [transact] Transaction exceeds 100 item limit (got ${items.length}). DynamoDB transactions must be <= 100 operations. Split into multiple transactions or use batch operations.`
|
|
1814
|
+
);
|
|
1815
|
+
}
|
|
1816
|
+
const buildCondition = (conditions, rawCond, rawNames, rawValues) => {
|
|
1817
|
+
const names = { ...rawNames };
|
|
1818
|
+
const values = {
|
|
1819
|
+
...rawValues
|
|
1820
|
+
};
|
|
1821
|
+
const condExpr = conditions ? buildFilterExpression(
|
|
1822
|
+
conditions,
|
|
1823
|
+
names,
|
|
1824
|
+
values
|
|
1825
|
+
) : void 0;
|
|
1826
|
+
let finalCond;
|
|
1827
|
+
if (condExpr && rawCond) {
|
|
1828
|
+
finalCond = `(${condExpr}) AND (${rawCond})`;
|
|
1829
|
+
} else {
|
|
1830
|
+
finalCond = condExpr ?? rawCond;
|
|
1831
|
+
}
|
|
1832
|
+
return {
|
|
1833
|
+
ConditionExpression: finalCond,
|
|
1834
|
+
ExpressionAttributeNames: Object.keys(names).length > 0 ? names : void 0,
|
|
1835
|
+
ExpressionAttributeValues: Object.keys(values).length > 0 ? values : void 0
|
|
1836
|
+
};
|
|
1837
|
+
};
|
|
1838
|
+
const transactItems = items.map((item2) => {
|
|
1839
|
+
if ("put" in item2) {
|
|
1840
|
+
const {
|
|
1841
|
+
ConditionExpression,
|
|
1842
|
+
ExpressionAttributeNames,
|
|
1843
|
+
ExpressionAttributeValues
|
|
1844
|
+
} = buildCondition(
|
|
1845
|
+
item2.put.conditions,
|
|
1846
|
+
item2.put.cond,
|
|
1847
|
+
item2.put.exprNames,
|
|
1848
|
+
item2.put.exprValues
|
|
1849
|
+
);
|
|
1850
|
+
return {
|
|
1851
|
+
Put: {
|
|
1852
|
+
TableName,
|
|
1853
|
+
Item: item2.put.item,
|
|
1854
|
+
...ConditionExpression && { ConditionExpression },
|
|
1855
|
+
...ExpressionAttributeValues && { ExpressionAttributeValues },
|
|
1856
|
+
...ExpressionAttributeNames && { ExpressionAttributeNames }
|
|
1857
|
+
}
|
|
1858
|
+
};
|
|
1859
|
+
}
|
|
1860
|
+
if ("delete" in item2) {
|
|
1861
|
+
const {
|
|
1862
|
+
ConditionExpression,
|
|
1863
|
+
ExpressionAttributeNames,
|
|
1864
|
+
ExpressionAttributeValues
|
|
1865
|
+
} = buildCondition(
|
|
1866
|
+
item2.delete.conditions,
|
|
1867
|
+
item2.delete.cond,
|
|
1868
|
+
item2.delete.exprNames,
|
|
1869
|
+
item2.delete.exprValues
|
|
1870
|
+
);
|
|
1871
|
+
return {
|
|
1872
|
+
Delete: {
|
|
1873
|
+
TableName,
|
|
1874
|
+
Key: item2.delete.key,
|
|
1875
|
+
...ConditionExpression && { ConditionExpression },
|
|
1876
|
+
...ExpressionAttributeValues && { ExpressionAttributeValues },
|
|
1877
|
+
...ExpressionAttributeNames && { ExpressionAttributeNames }
|
|
1878
|
+
}
|
|
1879
|
+
};
|
|
1880
|
+
}
|
|
1881
|
+
if ("update" in item2) {
|
|
1882
|
+
const {
|
|
1883
|
+
ConditionExpression,
|
|
1884
|
+
ExpressionAttributeNames,
|
|
1885
|
+
ExpressionAttributeValues
|
|
1886
|
+
} = buildCondition(
|
|
1887
|
+
item2.update.conditions,
|
|
1888
|
+
item2.update.cond,
|
|
1889
|
+
item2.update.exprNames,
|
|
1890
|
+
item2.update.exprValues
|
|
1891
|
+
);
|
|
1892
|
+
return {
|
|
1893
|
+
Update: {
|
|
1894
|
+
TableName,
|
|
1895
|
+
Key: item2.update.key,
|
|
1896
|
+
UpdateExpression: item2.update.expr,
|
|
1897
|
+
...ConditionExpression && { ConditionExpression },
|
|
1898
|
+
...ExpressionAttributeValues && { ExpressionAttributeValues },
|
|
1899
|
+
...ExpressionAttributeNames && { ExpressionAttributeNames }
|
|
1900
|
+
}
|
|
1901
|
+
};
|
|
1902
|
+
}
|
|
1903
|
+
if ("conditionCheck" in item2) {
|
|
1904
|
+
const {
|
|
1905
|
+
ConditionExpression,
|
|
1906
|
+
ExpressionAttributeNames,
|
|
1907
|
+
ExpressionAttributeValues
|
|
1908
|
+
} = buildCondition(
|
|
1909
|
+
item2.conditionCheck.conditions,
|
|
1910
|
+
item2.conditionCheck.cond,
|
|
1911
|
+
item2.conditionCheck.exprNames,
|
|
1912
|
+
item2.conditionCheck.exprValues
|
|
1913
|
+
);
|
|
1914
|
+
if (!ConditionExpression) {
|
|
1915
|
+
throw new Error(
|
|
1916
|
+
`[ddb] [transact] conditionCheck requires either 'conditions' or 'cond'`
|
|
1917
|
+
);
|
|
1918
|
+
}
|
|
1919
|
+
return {
|
|
1920
|
+
ConditionCheck: {
|
|
1921
|
+
TableName,
|
|
1922
|
+
Key: item2.conditionCheck.key,
|
|
1923
|
+
ConditionExpression,
|
|
1924
|
+
...ExpressionAttributeValues && { ExpressionAttributeValues },
|
|
1925
|
+
...ExpressionAttributeNames && { ExpressionAttributeNames }
|
|
1926
|
+
}
|
|
1927
|
+
};
|
|
1928
|
+
}
|
|
1929
|
+
throw new Error(
|
|
1930
|
+
`[ddb] [transact] Invalid transaction item: expected put, delete, update, or conditionCheck`
|
|
1931
|
+
);
|
|
1932
|
+
});
|
|
1933
|
+
try {
|
|
1934
|
+
const command = new libDynamodb.TransactWriteCommand({ TransactItems: transactItems });
|
|
1935
|
+
const result = await ddb.client.send(command);
|
|
1936
|
+
let consumedCapacity;
|
|
1937
|
+
if (result.ConsumedCapacity) {
|
|
1938
|
+
consumedCapacity = result.ConsumedCapacity.reduce(
|
|
1939
|
+
(sum, cap) => sum + (cap.CapacityUnits ?? 0),
|
|
1940
|
+
0
|
|
1941
|
+
);
|
|
1942
|
+
}
|
|
1943
|
+
return {
|
|
1944
|
+
processed: items.length,
|
|
1945
|
+
...consumedCapacity && { consumedCapacity }
|
|
1946
|
+
};
|
|
1947
|
+
} catch (error2) {
|
|
1948
|
+
const err = error2;
|
|
1949
|
+
console.log(`[error] [ddb] [transact] Transaction failed: ${err.message}`);
|
|
1950
|
+
throw err;
|
|
1951
|
+
}
|
|
1952
|
+
}
|
|
1804
1953
|
|
|
1805
1954
|
// src/server/aws/ddb/literals.ts
|
|
1806
|
-
var
|
|
1955
|
+
var lsi1 = { name: "lsi1", sk: "lsi1" };
|
|
1807
1956
|
var lsi2 = { name: "lsi2", sk: "lsi2" };
|
|
1808
|
-
var
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
};
|
|
1812
|
-
var lsiNormalized = {
|
|
1813
|
-
/** use in index_name */
|
|
1814
|
-
name: "normalized-lsi",
|
|
1815
|
-
sk: "normalized"
|
|
1816
|
-
};
|
|
1817
|
-
var lsiPhash = {
|
|
1818
|
-
/** use in index_name */
|
|
1819
|
-
name: "phash-lsi",
|
|
1820
|
-
sk: "phash"
|
|
1821
|
-
};
|
|
1957
|
+
var lsi3 = { name: "lsi3", sk: "lsi3" };
|
|
1958
|
+
var lsi4 = { name: "lsi4", sk: "lsi4" };
|
|
1959
|
+
var lsi5 = { name: "lsi5", sk: "lsi5" };
|
|
1822
1960
|
var validateTableName = (tableName) => {
|
|
1823
1961
|
const regex = /^[a-zA-Z0-9_.-]{3,255}$/;
|
|
1824
1962
|
if (!regex.test(tableName)) {
|
|
@@ -1844,10 +1982,10 @@ var clearTableSchema = (table) => {
|
|
|
1844
1982
|
}
|
|
1845
1983
|
if (table.LocalSecondaryIndexes && table.LocalSecondaryIndexes.length > 0) {
|
|
1846
1984
|
cleanTable.LocalSecondaryIndexes = table.LocalSecondaryIndexes.map(
|
|
1847
|
-
(
|
|
1848
|
-
IndexName:
|
|
1849
|
-
KeySchema:
|
|
1850
|
-
Projection:
|
|
1985
|
+
(lsi) => ({
|
|
1986
|
+
IndexName: lsi.IndexName,
|
|
1987
|
+
KeySchema: lsi.KeySchema,
|
|
1988
|
+
Projection: lsi.Projection
|
|
1851
1989
|
})
|
|
1852
1990
|
);
|
|
1853
1991
|
}
|
package/dist/server/index.js
CHANGED
|
@@ -1215,14 +1215,15 @@ __export(ddb_exports, {
|
|
|
1215
1215
|
create: () => create2,
|
|
1216
1216
|
deleteTable: () => deleteTable,
|
|
1217
1217
|
find: () => find,
|
|
1218
|
-
|
|
1218
|
+
lsi1: () => lsi1,
|
|
1219
1219
|
lsi2: () => lsi2,
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1220
|
+
lsi3: () => lsi3,
|
|
1221
|
+
lsi4: () => lsi4,
|
|
1222
|
+
lsi5: () => lsi5,
|
|
1223
1223
|
remove: () => remove2,
|
|
1224
1224
|
save: () => save,
|
|
1225
|
-
tableExists: () => tableExists
|
|
1225
|
+
tableExists: () => tableExists,
|
|
1226
|
+
transact: () => transact
|
|
1226
1227
|
});
|
|
1227
1228
|
|
|
1228
1229
|
// src/server/aws/ddb/fns.ts
|
|
@@ -1793,24 +1794,161 @@ var tableExists = async (ddb, props) => {
|
|
|
1793
1794
|
throw err;
|
|
1794
1795
|
}
|
|
1795
1796
|
};
|
|
1797
|
+
async function transact(ddb, props) {
|
|
1798
|
+
const { items } = props;
|
|
1799
|
+
const TableName = getTableNameOrThrow(props.tableName, ddb.tableName);
|
|
1800
|
+
if (items.length === 0) {
|
|
1801
|
+
return { processed: 0 };
|
|
1802
|
+
}
|
|
1803
|
+
if (items.length > 100) {
|
|
1804
|
+
throw new Error(
|
|
1805
|
+
`[ddb] [transact] Transaction exceeds 100 item limit (got ${items.length}). DynamoDB transactions must be <= 100 operations. Split into multiple transactions or use batch operations.`
|
|
1806
|
+
);
|
|
1807
|
+
}
|
|
1808
|
+
const buildCondition = (conditions, rawCond, rawNames, rawValues) => {
|
|
1809
|
+
const names = { ...rawNames };
|
|
1810
|
+
const values = {
|
|
1811
|
+
...rawValues
|
|
1812
|
+
};
|
|
1813
|
+
const condExpr = conditions ? buildFilterExpression(
|
|
1814
|
+
conditions,
|
|
1815
|
+
names,
|
|
1816
|
+
values
|
|
1817
|
+
) : void 0;
|
|
1818
|
+
let finalCond;
|
|
1819
|
+
if (condExpr && rawCond) {
|
|
1820
|
+
finalCond = `(${condExpr}) AND (${rawCond})`;
|
|
1821
|
+
} else {
|
|
1822
|
+
finalCond = condExpr ?? rawCond;
|
|
1823
|
+
}
|
|
1824
|
+
return {
|
|
1825
|
+
ConditionExpression: finalCond,
|
|
1826
|
+
ExpressionAttributeNames: Object.keys(names).length > 0 ? names : void 0,
|
|
1827
|
+
ExpressionAttributeValues: Object.keys(values).length > 0 ? values : void 0
|
|
1828
|
+
};
|
|
1829
|
+
};
|
|
1830
|
+
const transactItems = items.map((item2) => {
|
|
1831
|
+
if ("put" in item2) {
|
|
1832
|
+
const {
|
|
1833
|
+
ConditionExpression,
|
|
1834
|
+
ExpressionAttributeNames,
|
|
1835
|
+
ExpressionAttributeValues
|
|
1836
|
+
} = buildCondition(
|
|
1837
|
+
item2.put.conditions,
|
|
1838
|
+
item2.put.cond,
|
|
1839
|
+
item2.put.exprNames,
|
|
1840
|
+
item2.put.exprValues
|
|
1841
|
+
);
|
|
1842
|
+
return {
|
|
1843
|
+
Put: {
|
|
1844
|
+
TableName,
|
|
1845
|
+
Item: item2.put.item,
|
|
1846
|
+
...ConditionExpression && { ConditionExpression },
|
|
1847
|
+
...ExpressionAttributeValues && { ExpressionAttributeValues },
|
|
1848
|
+
...ExpressionAttributeNames && { ExpressionAttributeNames }
|
|
1849
|
+
}
|
|
1850
|
+
};
|
|
1851
|
+
}
|
|
1852
|
+
if ("delete" in item2) {
|
|
1853
|
+
const {
|
|
1854
|
+
ConditionExpression,
|
|
1855
|
+
ExpressionAttributeNames,
|
|
1856
|
+
ExpressionAttributeValues
|
|
1857
|
+
} = buildCondition(
|
|
1858
|
+
item2.delete.conditions,
|
|
1859
|
+
item2.delete.cond,
|
|
1860
|
+
item2.delete.exprNames,
|
|
1861
|
+
item2.delete.exprValues
|
|
1862
|
+
);
|
|
1863
|
+
return {
|
|
1864
|
+
Delete: {
|
|
1865
|
+
TableName,
|
|
1866
|
+
Key: item2.delete.key,
|
|
1867
|
+
...ConditionExpression && { ConditionExpression },
|
|
1868
|
+
...ExpressionAttributeValues && { ExpressionAttributeValues },
|
|
1869
|
+
...ExpressionAttributeNames && { ExpressionAttributeNames }
|
|
1870
|
+
}
|
|
1871
|
+
};
|
|
1872
|
+
}
|
|
1873
|
+
if ("update" in item2) {
|
|
1874
|
+
const {
|
|
1875
|
+
ConditionExpression,
|
|
1876
|
+
ExpressionAttributeNames,
|
|
1877
|
+
ExpressionAttributeValues
|
|
1878
|
+
} = buildCondition(
|
|
1879
|
+
item2.update.conditions,
|
|
1880
|
+
item2.update.cond,
|
|
1881
|
+
item2.update.exprNames,
|
|
1882
|
+
item2.update.exprValues
|
|
1883
|
+
);
|
|
1884
|
+
return {
|
|
1885
|
+
Update: {
|
|
1886
|
+
TableName,
|
|
1887
|
+
Key: item2.update.key,
|
|
1888
|
+
UpdateExpression: item2.update.expr,
|
|
1889
|
+
...ConditionExpression && { ConditionExpression },
|
|
1890
|
+
...ExpressionAttributeValues && { ExpressionAttributeValues },
|
|
1891
|
+
...ExpressionAttributeNames && { ExpressionAttributeNames }
|
|
1892
|
+
}
|
|
1893
|
+
};
|
|
1894
|
+
}
|
|
1895
|
+
if ("conditionCheck" in item2) {
|
|
1896
|
+
const {
|
|
1897
|
+
ConditionExpression,
|
|
1898
|
+
ExpressionAttributeNames,
|
|
1899
|
+
ExpressionAttributeValues
|
|
1900
|
+
} = buildCondition(
|
|
1901
|
+
item2.conditionCheck.conditions,
|
|
1902
|
+
item2.conditionCheck.cond,
|
|
1903
|
+
item2.conditionCheck.exprNames,
|
|
1904
|
+
item2.conditionCheck.exprValues
|
|
1905
|
+
);
|
|
1906
|
+
if (!ConditionExpression) {
|
|
1907
|
+
throw new Error(
|
|
1908
|
+
`[ddb] [transact] conditionCheck requires either 'conditions' or 'cond'`
|
|
1909
|
+
);
|
|
1910
|
+
}
|
|
1911
|
+
return {
|
|
1912
|
+
ConditionCheck: {
|
|
1913
|
+
TableName,
|
|
1914
|
+
Key: item2.conditionCheck.key,
|
|
1915
|
+
ConditionExpression,
|
|
1916
|
+
...ExpressionAttributeValues && { ExpressionAttributeValues },
|
|
1917
|
+
...ExpressionAttributeNames && { ExpressionAttributeNames }
|
|
1918
|
+
}
|
|
1919
|
+
};
|
|
1920
|
+
}
|
|
1921
|
+
throw new Error(
|
|
1922
|
+
`[ddb] [transact] Invalid transaction item: expected put, delete, update, or conditionCheck`
|
|
1923
|
+
);
|
|
1924
|
+
});
|
|
1925
|
+
try {
|
|
1926
|
+
const command = new TransactWriteCommand({ TransactItems: transactItems });
|
|
1927
|
+
const result = await ddb.client.send(command);
|
|
1928
|
+
let consumedCapacity;
|
|
1929
|
+
if (result.ConsumedCapacity) {
|
|
1930
|
+
consumedCapacity = result.ConsumedCapacity.reduce(
|
|
1931
|
+
(sum, cap) => sum + (cap.CapacityUnits ?? 0),
|
|
1932
|
+
0
|
|
1933
|
+
);
|
|
1934
|
+
}
|
|
1935
|
+
return {
|
|
1936
|
+
processed: items.length,
|
|
1937
|
+
...consumedCapacity && { consumedCapacity }
|
|
1938
|
+
};
|
|
1939
|
+
} catch (error2) {
|
|
1940
|
+
const err = error2;
|
|
1941
|
+
console.log(`[error] [ddb] [transact] Transaction failed: ${err.message}`);
|
|
1942
|
+
throw err;
|
|
1943
|
+
}
|
|
1944
|
+
}
|
|
1796
1945
|
|
|
1797
1946
|
// src/server/aws/ddb/literals.ts
|
|
1798
|
-
var
|
|
1947
|
+
var lsi1 = { name: "lsi1", sk: "lsi1" };
|
|
1799
1948
|
var lsi2 = { name: "lsi2", sk: "lsi2" };
|
|
1800
|
-
var
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
};
|
|
1804
|
-
var lsiNormalized = {
|
|
1805
|
-
/** use in index_name */
|
|
1806
|
-
name: "normalized-lsi",
|
|
1807
|
-
sk: "normalized"
|
|
1808
|
-
};
|
|
1809
|
-
var lsiPhash = {
|
|
1810
|
-
/** use in index_name */
|
|
1811
|
-
name: "phash-lsi",
|
|
1812
|
-
sk: "phash"
|
|
1813
|
-
};
|
|
1949
|
+
var lsi3 = { name: "lsi3", sk: "lsi3" };
|
|
1950
|
+
var lsi4 = { name: "lsi4", sk: "lsi4" };
|
|
1951
|
+
var lsi5 = { name: "lsi5", sk: "lsi5" };
|
|
1814
1952
|
var validateTableName = (tableName) => {
|
|
1815
1953
|
const regex = /^[a-zA-Z0-9_.-]{3,255}$/;
|
|
1816
1954
|
if (!regex.test(tableName)) {
|
|
@@ -1836,10 +1974,10 @@ var clearTableSchema = (table) => {
|
|
|
1836
1974
|
}
|
|
1837
1975
|
if (table.LocalSecondaryIndexes && table.LocalSecondaryIndexes.length > 0) {
|
|
1838
1976
|
cleanTable.LocalSecondaryIndexes = table.LocalSecondaryIndexes.map(
|
|
1839
|
-
(
|
|
1840
|
-
IndexName:
|
|
1841
|
-
KeySchema:
|
|
1842
|
-
Projection:
|
|
1977
|
+
(lsi) => ({
|
|
1978
|
+
IndexName: lsi.IndexName,
|
|
1979
|
+
KeySchema: lsi.KeySchema,
|
|
1980
|
+
Projection: lsi.Projection
|
|
1843
1981
|
})
|
|
1844
1982
|
);
|
|
1845
1983
|
}
|
|
@@ -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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"}
|