dynamo-document-builder 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -2
- package/dist/commands/batch-get.cjs +7 -0
- package/dist/commands/batch-get.cjs.map +1 -1
- package/dist/commands/batch-get.d.ts +4 -2
- package/dist/commands/batch-get.mjs +8 -1
- package/dist/commands/batch-get.mjs.map +1 -1
- package/dist/commands/batch-write.cjs +6 -0
- package/dist/commands/batch-write.cjs.map +1 -1
- package/dist/commands/batch-write.d.ts +4 -2
- package/dist/commands/batch-write.mjs +7 -1
- package/dist/commands/batch-write.mjs.map +1 -1
- package/dist/commands/index.cjs +8 -0
- package/dist/commands/index.cjs.map +1 -1
- package/dist/commands/index.d.ts +100 -2
- package/dist/commands/index.mjs +4 -0
- package/dist/commands/index.mjs.map +1 -1
- package/dist/commands/query.cjs +1 -1
- package/dist/commands/query.mjs +1 -1
- package/dist/commands/table-batch-get.cjs +123 -0
- package/dist/commands/table-batch-get.cjs.map +1 -0
- package/dist/commands/table-batch-get.d.ts +86 -0
- package/dist/commands/table-batch-get.mjs +121 -0
- package/dist/commands/table-batch-get.mjs.map +1 -0
- package/dist/commands/table-batch-write.cjs +119 -0
- package/dist/commands/table-batch-write.cjs.map +1 -0
- package/dist/commands/table-batch-write.d.ts +79 -0
- package/dist/commands/table-batch-write.mjs +117 -0
- package/dist/commands/table-batch-write.mjs.map +1 -0
- package/dist/commands/table-transact-get.cjs +73 -0
- package/dist/commands/table-transact-get.cjs.map +1 -0
- package/dist/commands/table-transact-get.d.ts +60 -0
- package/dist/commands/table-transact-get.mjs +71 -0
- package/dist/commands/table-transact-get.mjs.map +1 -0
- package/dist/commands/table-transact-write.cjs +76 -0
- package/dist/commands/table-transact-write.cjs.map +1 -0
- package/dist/commands/table-transact-write.d.ts +51 -0
- package/dist/commands/table-transact-write.mjs +74 -0
- package/dist/commands/table-transact-write.mjs.map +1 -0
- package/dist/commands/transact-get.cjs +3 -0
- package/dist/commands/transact-get.cjs.map +1 -1
- package/dist/commands/transact-get.d.ts +3 -2
- package/dist/commands/transact-get.mjs +4 -1
- package/dist/commands/transact-get.mjs.map +1 -1
- package/dist/core/entity.cjs +114 -0
- package/dist/core/entity.cjs.map +1 -1
- package/dist/core/entity.d.ts +21 -1
- package/dist/core/entity.mjs +114 -0
- package/dist/core/entity.mjs.map +1 -1
- package/dist/core/table.cjs +8 -0
- package/dist/core/table.cjs.map +1 -1
- package/dist/core/table.d.ts +5 -0
- package/dist/core/table.mjs +9 -1
- package/dist/core/table.mjs.map +1 -1
- package/dist/index.cjs +10 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.mjs +5 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { PreparedGetTransaction, BaseConfig, BaseResult, TableCommand } from './index.js';
|
|
2
|
+
import { DynamoTable } from '../core/table.js';
|
|
3
|
+
import { EntitySchema } from '../core/index.js';
|
|
4
|
+
import { ZodObject } from 'zod/v4';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Extracts the result item type from a PreparedGetTransaction.
|
|
8
|
+
*/
|
|
9
|
+
type ExtractSchema<T> = T extends PreparedGetTransaction<infer S> ? EntitySchema<S> : never;
|
|
10
|
+
/**
|
|
11
|
+
* Maps an array of PreparedGetTransactions to a tuple of their result item arrays.
|
|
12
|
+
*/
|
|
13
|
+
type TableTransactGetItems<Gets extends PreparedGetTransaction<ZodObject>[]> = {
|
|
14
|
+
[K in keyof Gets]: Array<ExtractSchema<Gets[K]> | undefined>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for the TableTransactGet command.
|
|
18
|
+
*
|
|
19
|
+
* @template Gets - Tuple of PreparedGetTransaction types, one per entity group.
|
|
20
|
+
*/
|
|
21
|
+
type TableTransactGetConfig<Gets extends PreparedGetTransaction<ZodObject>[]> = BaseConfig & {
|
|
22
|
+
gets: [...Gets];
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Result of the TableTransactGet command.
|
|
26
|
+
*
|
|
27
|
+
* @template Gets - Tuple of PreparedGetTransaction types, one per entity group.
|
|
28
|
+
*/
|
|
29
|
+
type TableTransactGetResult<Gets extends PreparedGetTransaction<ZodObject>[]> = BaseResult & {
|
|
30
|
+
items: TableTransactGetItems<Gets>;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Table-level command to perform a transactional read across multiple entity types.
|
|
34
|
+
*
|
|
35
|
+
* Unlike `TransactGet` which operates on a single entity type, this command accepts
|
|
36
|
+
* get operations from multiple entities via `entity.prepare(new TransactGet({ keys: [...] }))`
|
|
37
|
+
* and returns results grouped by entity in a tuple structure.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const { items } = await table.send(new TableTransactGet({
|
|
42
|
+
* gets: [
|
|
43
|
+
* userEntity.prepare(new TransactGet({ keys: [{ userId: 'u1' }] })),
|
|
44
|
+
* orderEntity.prepare(new TransactGet({ keys: [{ orderId: 'o1' }, { orderId: 'o2' }] })),
|
|
45
|
+
* ],
|
|
46
|
+
* }))
|
|
47
|
+
*
|
|
48
|
+
* const [users, orders] = items
|
|
49
|
+
* // users: (User | undefined)[]
|
|
50
|
+
* // orders: (Order | undefined)[]
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
declare class TableTransactGet<Gets extends PreparedGetTransaction<ZodObject>[]> implements TableCommand<TableTransactGetResult<Gets>> {
|
|
54
|
+
#private;
|
|
55
|
+
constructor(config: TableTransactGetConfig<Gets>);
|
|
56
|
+
execute(table: DynamoTable): Promise<TableTransactGetResult<Gets>>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { TableTransactGet };
|
|
60
|
+
export type { TableTransactGetConfig, TableTransactGetResult };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { __classPrivateFieldSet, __awaiter, __classPrivateFieldGet } from '../node_modules/tslib/tslib.es6.mjs';
|
|
2
|
+
import { DocumentBuilderError } from '../errors.mjs';
|
|
3
|
+
import { TransactGetCommand } from '@aws-sdk/lib-dynamodb';
|
|
4
|
+
|
|
5
|
+
var _TableTransactGet_config;
|
|
6
|
+
/**
|
|
7
|
+
* Table-level command to perform a transactional read across multiple entity types.
|
|
8
|
+
*
|
|
9
|
+
* Unlike `TransactGet` which operates on a single entity type, this command accepts
|
|
10
|
+
* get operations from multiple entities via `entity.prepare(new TransactGet({ keys: [...] }))`
|
|
11
|
+
* and returns results grouped by entity in a tuple structure.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const { items } = await table.send(new TableTransactGet({
|
|
16
|
+
* gets: [
|
|
17
|
+
* userEntity.prepare(new TransactGet({ keys: [{ userId: 'u1' }] })),
|
|
18
|
+
* orderEntity.prepare(new TransactGet({ keys: [{ orderId: 'o1' }, { orderId: 'o2' }] })),
|
|
19
|
+
* ],
|
|
20
|
+
* }))
|
|
21
|
+
*
|
|
22
|
+
* const [users, orders] = items
|
|
23
|
+
* // users: (User | undefined)[]
|
|
24
|
+
* // orders: (Order | undefined)[]
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
class TableTransactGet {
|
|
28
|
+
constructor(config) {
|
|
29
|
+
_TableTransactGet_config.set(this, void 0);
|
|
30
|
+
__classPrivateFieldSet(this, _TableTransactGet_config, config, "f");
|
|
31
|
+
}
|
|
32
|
+
execute(table) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
var _a, _b, _c, _d;
|
|
35
|
+
for (const group of __classPrivateFieldGet(this, _TableTransactGet_config, "f").gets) {
|
|
36
|
+
if (group.entity.table !== table) {
|
|
37
|
+
throw new DocumentBuilderError(`Entity table "${group.entity.table.tableName}" does not match the executing table "${table.tableName}"`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const transactItems = __classPrivateFieldGet(this, _TableTransactGet_config, "f").gets.flatMap(group => group.keys.map(key => ({ Get: key })));
|
|
41
|
+
const transactGet = new TransactGetCommand({
|
|
42
|
+
TransactItems: transactItems,
|
|
43
|
+
ReturnConsumedCapacity: __classPrivateFieldGet(this, _TableTransactGet_config, "f").returnConsumedCapacity,
|
|
44
|
+
});
|
|
45
|
+
const result = yield table.documentClient.send(transactGet, {
|
|
46
|
+
abortSignal: (_a = __classPrivateFieldGet(this, _TableTransactGet_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
|
|
47
|
+
requestTimeout: __classPrivateFieldGet(this, _TableTransactGet_config, "f").timeoutMs,
|
|
48
|
+
});
|
|
49
|
+
const rawResponses = (_b = result.Responses) !== null && _b !== void 0 ? _b : [];
|
|
50
|
+
// Split raw responses back into per-entity groups and parse each group
|
|
51
|
+
let offset = 0;
|
|
52
|
+
const groupedItems = [];
|
|
53
|
+
for (const group of __classPrivateFieldGet(this, _TableTransactGet_config, "f").gets) {
|
|
54
|
+
const count = group.keys.length;
|
|
55
|
+
const slice = rawResponses.slice(offset, offset + count).map(r => r.Item);
|
|
56
|
+
const parsed = yield group.parseResults(slice, (_c = __classPrivateFieldGet(this, _TableTransactGet_config, "f").skipValidation) !== null && _c !== void 0 ? _c : false);
|
|
57
|
+
groupedItems.push(parsed);
|
|
58
|
+
offset += count;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
items: groupedItems,
|
|
62
|
+
responseMetadata: result.$metadata,
|
|
63
|
+
consumedCapacity: (_d = result.ConsumedCapacity) === null || _d === void 0 ? void 0 : _d[0],
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
_TableTransactGet_config = new WeakMap();
|
|
69
|
+
|
|
70
|
+
export { TableTransactGet };
|
|
71
|
+
//# sourceMappingURL=table-transact-get.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-transact-get.mjs","sources":["../../src/commands/table-transact-get.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAwCA;;;;;;;;;;;;;;;;;;;;AAoBG;MACU,gBAAgB,CAAA;AAK3B,IAAA,WAAA,CAAY,MAAoC,EAAA;QAFhD,wBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,KAAkB,EAAA;;;YACrC,KAAK,MAAM,KAAK,IAAI,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,IAAI,EAAE;gBACrC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,oBAAA,MAAM,IAAI,oBAAoB,CAC5B,CAAA,cAAA,EAAiB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAA,sCAAA,EAAyC,KAAK,CAAC,SAAS,CAAA,CAAA,CAAG,CACzG;gBACH;YACF;AAEA,YAAA,MAAM,aAAa,GAAG,sBAAA,CAAA,IAAI,gCAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAE/F,YAAA,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC;AACzC,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAE,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC5D,aAAA,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC1D,WAAW,EAAE,MAAA,sBAAA,CAAA,IAAI,gCAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAE,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;YAG3C,IAAI,MAAM,GAAG,CAAC;YACd,MAAM,YAAY,GAA0B,EAAE;YAE9C,KAAK,MAAM,KAAK,IAAI,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,IAAI,EAAE;AACrC,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;gBAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACzE,gBAAA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,CAAC;AACpF,gBAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;gBACzB,MAAM,IAAI,KAAK;YACjB;YAEA,OAAO;AACL,gBAAA,KAAK,EAAE,YAA2C;gBAClD,gBAAgB,EAAE,MAAM,CAAC,SAAS;AAClC,gBAAA,gBAAgB,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aAC/C;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib_es6 = require('../node_modules/tslib/tslib.es6.cjs');
|
|
4
|
+
var errors = require('../errors.cjs');
|
|
5
|
+
var libDynamodb = require('@aws-sdk/lib-dynamodb');
|
|
6
|
+
var internalConstants = require('../internal-constants.cjs');
|
|
7
|
+
var pMap = require('p-map');
|
|
8
|
+
|
|
9
|
+
var _TableTransactWrite_config;
|
|
10
|
+
/**
|
|
11
|
+
* Table-level command to perform an atomic write transaction across multiple entity types.
|
|
12
|
+
*
|
|
13
|
+
* Unlike `TransactWrite` which operates on a single entity type, this command accepts
|
|
14
|
+
* operations from multiple entities via `entity.prepare([...])` and executes them as
|
|
15
|
+
* a single all-or-nothing DynamoDB transaction.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* await table.send(new TableTransactWrite({
|
|
20
|
+
* transactions: [
|
|
21
|
+
* userEntity.prepare([
|
|
22
|
+
* new Put({ item: { userId: 'u1', name: 'Alice' } }),
|
|
23
|
+
* new Delete({ key: { userId: 'u2', name: 'Bob' } }),
|
|
24
|
+
* ]),
|
|
25
|
+
* orderEntity.prepare([
|
|
26
|
+
* new Update({ key: { orderId: 'o1' }, update: { status: 'shipped' } }),
|
|
27
|
+
* ]),
|
|
28
|
+
* ],
|
|
29
|
+
* }))
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
class TableTransactWrite {
|
|
33
|
+
constructor(config) {
|
|
34
|
+
_TableTransactWrite_config.set(this, void 0);
|
|
35
|
+
tslib_es6.__classPrivateFieldSet(this, _TableTransactWrite_config, config, "f");
|
|
36
|
+
}
|
|
37
|
+
execute(table) {
|
|
38
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
for (const { entity } of tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").transactions) {
|
|
41
|
+
if (entity.table !== table) {
|
|
42
|
+
throw new errors.DocumentBuilderError(`Entity table "${entity.table.tableName}" does not match the executing table "${table.tableName}"`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const transactItems = (yield pMap(tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").transactions, ({ entity, writes }) => {
|
|
46
|
+
var _a;
|
|
47
|
+
return pMap(writes, write => write.prepareWriteTransaction(entity), {
|
|
48
|
+
concurrency: internalConstants.TRANSACTION_WRITE_VALIDATION_CONCURRENCY,
|
|
49
|
+
signal: (_a = tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
|
|
50
|
+
});
|
|
51
|
+
}, {
|
|
52
|
+
concurrency: internalConstants.TRANSACTION_WRITE_VALIDATION_CONCURRENCY,
|
|
53
|
+
signal: (_a = tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
|
|
54
|
+
})).flat();
|
|
55
|
+
const writeTransaction = new libDynamodb.TransactWriteCommand({
|
|
56
|
+
TransactItems: transactItems,
|
|
57
|
+
ReturnConsumedCapacity: tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").returnConsumedCapacity,
|
|
58
|
+
ReturnItemCollectionMetrics: tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").returnItemCollectionMetrics,
|
|
59
|
+
ClientRequestToken: tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").idempotencyToken,
|
|
60
|
+
});
|
|
61
|
+
const result = yield table.documentClient.send(writeTransaction, {
|
|
62
|
+
abortSignal: (_b = tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
|
|
63
|
+
requestTimeout: tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").timeoutMs,
|
|
64
|
+
});
|
|
65
|
+
return {
|
|
66
|
+
responseMetadata: result.$metadata,
|
|
67
|
+
consumedCapacity: result.ConsumedCapacity,
|
|
68
|
+
itemCollectionMetrics: result.ItemCollectionMetrics,
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
_TableTransactWrite_config = new WeakMap();
|
|
74
|
+
|
|
75
|
+
exports.TableTransactWrite = TableTransactWrite;
|
|
76
|
+
//# sourceMappingURL=table-transact-write.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-transact-write.cjs","sources":["../../src/commands/table-transact-write.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","DocumentBuilderError","TRANSACTION_WRITE_VALIDATION_CONCURRENCY","TransactWriteCommand"],"mappings":";;;;;;;;;AAkCA;;;;;;;;;;;;;;;;;;;;;AAqBG;MACU,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAY,MAAgC,EAAA;QAF5C,0BAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,KAAkB,EAAA;;;YACrC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAIC,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,YAAY,EAAE;AAClD,gBAAA,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC1B,oBAAA,MAAM,IAAIC,2BAAoB,CAC5B,CAAA,cAAA,EAAiB,MAAM,CAAC,KAAK,CAAC,SAAS,yCAAyC,KAAK,CAAC,SAAS,CAAA,CAAA,CAAG,CACnG;gBACH;YACF;AAEA,YAAA,MAAM,aAAa,GAAG,CACpB,MAAM,IAAI,CACRD,iCAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,YAAY,EACzB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAuC,KAAI;;AAC1D,gBAAA,OAAA,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE;AAC3D,oBAAA,WAAW,EAAEE,0DAAwC;oBACrD,MAAM,EAAE,MAAAF,gCAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,iBAAA,CAAC;aAAA,EACJ;AACE,gBAAA,WAAW,EAAEE,0DAAwC;gBACrD,MAAM,EAAE,MAAAF,gCAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,aAAA,CACF,EACD,IAAI,EAAE;AAER,YAAA,MAAM,gBAAgB,GAAG,IAAIG,gCAAoB,CAAC;AAChD,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAEH,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC3D,gBAAA,2BAA2B,EAAEA,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,2BAA2B;AACrE,gBAAA,kBAAkB,EAAEA,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,gBAAgB;AAClD,aAAA,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC/D,WAAW,EAAE,MAAAA,gCAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAEA,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,OAAO;gBACL,gBAAgB,EAAE,MAAM,CAAC,SAAS;gBAClC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;aACpD;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { BaseConfig, PreparedWriteTransaction, TableCommand } from './index.js';
|
|
2
|
+
import { DynamoTable } from '../core/table.js';
|
|
3
|
+
import { ReturnItemCollectionMetrics, ConsumedCapacity, ItemCollectionMetrics } from '@aws-sdk/client-dynamodb';
|
|
4
|
+
import { ResponseMetadata } from '@aws-sdk/types';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for the TableTransactWrite command.
|
|
8
|
+
*/
|
|
9
|
+
type TableTransactWriteConfig = BaseConfig & {
|
|
10
|
+
transactions: PreparedWriteTransaction<any>[];
|
|
11
|
+
idempotencyToken?: string;
|
|
12
|
+
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Result of the TableTransactWrite command.
|
|
16
|
+
*/
|
|
17
|
+
type TableTransactWriteResult = {
|
|
18
|
+
responseMetadata?: ResponseMetadata;
|
|
19
|
+
consumedCapacity?: ConsumedCapacity[] | undefined;
|
|
20
|
+
itemCollectionMetrics?: ItemCollectionMetrics;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Table-level command to perform an atomic write transaction across multiple entity types.
|
|
24
|
+
*
|
|
25
|
+
* Unlike `TransactWrite` which operates on a single entity type, this command accepts
|
|
26
|
+
* operations from multiple entities via `entity.prepare([...])` and executes them as
|
|
27
|
+
* a single all-or-nothing DynamoDB transaction.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* await table.send(new TableTransactWrite({
|
|
32
|
+
* transactions: [
|
|
33
|
+
* userEntity.prepare([
|
|
34
|
+
* new Put({ item: { userId: 'u1', name: 'Alice' } }),
|
|
35
|
+
* new Delete({ key: { userId: 'u2', name: 'Bob' } }),
|
|
36
|
+
* ]),
|
|
37
|
+
* orderEntity.prepare([
|
|
38
|
+
* new Update({ key: { orderId: 'o1' }, update: { status: 'shipped' } }),
|
|
39
|
+
* ]),
|
|
40
|
+
* ],
|
|
41
|
+
* }))
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
declare class TableTransactWrite implements TableCommand<TableTransactWriteResult> {
|
|
45
|
+
#private;
|
|
46
|
+
constructor(config: TableTransactWriteConfig);
|
|
47
|
+
execute(table: DynamoTable): Promise<TableTransactWriteResult>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { TableTransactWrite };
|
|
51
|
+
export type { TableTransactWriteConfig, TableTransactWriteResult };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { __classPrivateFieldSet, __awaiter, __classPrivateFieldGet } from '../node_modules/tslib/tslib.es6.mjs';
|
|
2
|
+
import { DocumentBuilderError } from '../errors.mjs';
|
|
3
|
+
import { TransactWriteCommand } from '@aws-sdk/lib-dynamodb';
|
|
4
|
+
import { TRANSACTION_WRITE_VALIDATION_CONCURRENCY } from '../internal-constants.mjs';
|
|
5
|
+
import pMap from 'p-map';
|
|
6
|
+
|
|
7
|
+
var _TableTransactWrite_config;
|
|
8
|
+
/**
|
|
9
|
+
* Table-level command to perform an atomic write transaction across multiple entity types.
|
|
10
|
+
*
|
|
11
|
+
* Unlike `TransactWrite` which operates on a single entity type, this command accepts
|
|
12
|
+
* operations from multiple entities via `entity.prepare([...])` and executes them as
|
|
13
|
+
* a single all-or-nothing DynamoDB transaction.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* await table.send(new TableTransactWrite({
|
|
18
|
+
* transactions: [
|
|
19
|
+
* userEntity.prepare([
|
|
20
|
+
* new Put({ item: { userId: 'u1', name: 'Alice' } }),
|
|
21
|
+
* new Delete({ key: { userId: 'u2', name: 'Bob' } }),
|
|
22
|
+
* ]),
|
|
23
|
+
* orderEntity.prepare([
|
|
24
|
+
* new Update({ key: { orderId: 'o1' }, update: { status: 'shipped' } }),
|
|
25
|
+
* ]),
|
|
26
|
+
* ],
|
|
27
|
+
* }))
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
class TableTransactWrite {
|
|
31
|
+
constructor(config) {
|
|
32
|
+
_TableTransactWrite_config.set(this, void 0);
|
|
33
|
+
__classPrivateFieldSet(this, _TableTransactWrite_config, config, "f");
|
|
34
|
+
}
|
|
35
|
+
execute(table) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
for (const { entity } of __classPrivateFieldGet(this, _TableTransactWrite_config, "f").transactions) {
|
|
39
|
+
if (entity.table !== table) {
|
|
40
|
+
throw new DocumentBuilderError(`Entity table "${entity.table.tableName}" does not match the executing table "${table.tableName}"`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const transactItems = (yield pMap(__classPrivateFieldGet(this, _TableTransactWrite_config, "f").transactions, ({ entity, writes }) => {
|
|
44
|
+
var _a;
|
|
45
|
+
return pMap(writes, write => write.prepareWriteTransaction(entity), {
|
|
46
|
+
concurrency: TRANSACTION_WRITE_VALIDATION_CONCURRENCY,
|
|
47
|
+
signal: (_a = __classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
|
|
48
|
+
});
|
|
49
|
+
}, {
|
|
50
|
+
concurrency: TRANSACTION_WRITE_VALIDATION_CONCURRENCY,
|
|
51
|
+
signal: (_a = __classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
|
|
52
|
+
})).flat();
|
|
53
|
+
const writeTransaction = new TransactWriteCommand({
|
|
54
|
+
TransactItems: transactItems,
|
|
55
|
+
ReturnConsumedCapacity: __classPrivateFieldGet(this, _TableTransactWrite_config, "f").returnConsumedCapacity,
|
|
56
|
+
ReturnItemCollectionMetrics: __classPrivateFieldGet(this, _TableTransactWrite_config, "f").returnItemCollectionMetrics,
|
|
57
|
+
ClientRequestToken: __classPrivateFieldGet(this, _TableTransactWrite_config, "f").idempotencyToken,
|
|
58
|
+
});
|
|
59
|
+
const result = yield table.documentClient.send(writeTransaction, {
|
|
60
|
+
abortSignal: (_b = __classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
|
|
61
|
+
requestTimeout: __classPrivateFieldGet(this, _TableTransactWrite_config, "f").timeoutMs,
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
responseMetadata: result.$metadata,
|
|
65
|
+
consumedCapacity: result.ConsumedCapacity,
|
|
66
|
+
itemCollectionMetrics: result.ItemCollectionMetrics,
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
_TableTransactWrite_config = new WeakMap();
|
|
72
|
+
|
|
73
|
+
export { TableTransactWrite };
|
|
74
|
+
//# sourceMappingURL=table-transact-write.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-transact-write.mjs","sources":["../../src/commands/table-transact-write.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAkCA;;;;;;;;;;;;;;;;;;;;;AAqBG;MACU,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAY,MAAgC,EAAA;QAF5C,0BAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,KAAkB,EAAA;;;YACrC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,YAAY,EAAE;AAClD,gBAAA,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC1B,oBAAA,MAAM,IAAI,oBAAoB,CAC5B,CAAA,cAAA,EAAiB,MAAM,CAAC,KAAK,CAAC,SAAS,yCAAyC,KAAK,CAAC,SAAS,CAAA,CAAA,CAAG,CACnG;gBACH;YACF;AAEA,YAAA,MAAM,aAAa,GAAG,CACpB,MAAM,IAAI,CACR,uBAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,YAAY,EACzB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAuC,KAAI;;AAC1D,gBAAA,OAAA,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE;AAC3D,oBAAA,WAAW,EAAE,wCAAwC;oBACrD,MAAM,EAAE,MAAA,sBAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,iBAAA,CAAC;aAAA,EACJ;AACE,gBAAA,WAAW,EAAE,wCAAwC;gBACrD,MAAM,EAAE,MAAA,sBAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,aAAA,CACF,EACD,IAAI,EAAE;AAER,YAAA,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,CAAC;AAChD,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAE,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC3D,gBAAA,2BAA2B,EAAE,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,2BAA2B;AACrE,gBAAA,kBAAkB,EAAE,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,gBAAgB;AAClD,aAAA,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC/D,WAAW,EAAE,MAAA,sBAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAE,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,OAAO;gBACL,gBAAgB,EAAE,MAAM,CAAC,SAAS;gBAClC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;aACpD;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
|
@@ -46,6 +46,9 @@ class TransactGet {
|
|
|
46
46
|
_TransactGet_config.set(this, void 0);
|
|
47
47
|
tslib_es6.__classPrivateFieldSet(this, _TransactGet_config, config, "f");
|
|
48
48
|
}
|
|
49
|
+
get keys() {
|
|
50
|
+
return tslib_es6.__classPrivateFieldGet(this, _TransactGet_config, "f").keys;
|
|
51
|
+
}
|
|
49
52
|
execute(entity) {
|
|
50
53
|
return tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
51
54
|
var _a, _b, _c, _d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transact-get.cjs","sources":["../../src/commands/transact-get.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","TransactGetCommand","__awaiter","TRANSACTION_GET_VALIDATION_CONCURRENCY"],"mappings":";;;;;;;;AA0BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;MACU,WAAW,CAAA;AAKtB,IAAA,WAAA,CAAY,MAAiC,EAAA;QAF7C,mBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"transact-get.cjs","sources":["../../src/commands/transact-get.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","TransactGetCommand","__awaiter","TRANSACTION_GET_VALIDATION_CONCURRENCY"],"mappings":";;;;;;;;AA0BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;MACU,WAAW,CAAA;AAKtB,IAAA,WAAA,CAAY,MAAiC,EAAA;QAF7C,mBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAOC,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,IAAI;IAC1B;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,aAAa,GAAGA,gCAAA,CAAA,IAAI,2BAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK;AAClD,gBAAA,GAAG,EAAE;AACH,oBAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;AACjC,oBAAA,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC;AACjC,iBAAA;AACF,aAAA,CAAC,CAAC;AAEH,YAAA,MAAM,WAAW,GAAG,IAAIC,8BAAkB,CAAC;AACzC,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAED,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC5D,aAAA,CAAC;AAEF,YAAA,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC5E,WAAW,EAAE,MAAAA,gCAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAEA,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,iBAAiB,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;YAClD,IAAI,KAAK,GAA4C,EAAE;AACvD,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAIA,iCAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,EAAE;AAC/B,oBAAA,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAwC,CAAC;gBACrF;qBAAO;oBACL,KAAK,GAAG,MAAM,IAAI,CAChB,QAAQ,EACR,CAAM,QAAQ,KAAGE,mBAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA;AACf,wBAAA,IAAI,QAAQ,CAAC,IAAI,EAAE;4BACjB,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAChD;AACA,wBAAA,OAAO,SAAS;AAClB,oBAAA,CAAC,CAAA,EACD;AACE,wBAAA,WAAW,EAAEC,wDAAsC;wBACnD,MAAM,EAAE,MAAAH,gCAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,qBAAA,CACF;gBACH;YACF;YAEA,OAAO;gBACL,KAAK;gBACL,gBAAgB,EAAE,iBAAiB,CAAC,SAAS;AAC7C,gBAAA,gBAAgB,EAAE,CAAA,EAAA,GAAA,iBAAiB,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aAC1D;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DynamoEntity } from '../core/entity.js';
|
|
2
|
-
import { BaseConfig, BaseResult, BaseCommand } from './index.js';
|
|
2
|
+
import { BaseConfig, BaseResult, BaseCommand, GetTransactable } from './index.js';
|
|
3
3
|
import { ZodObject } from 'zod/v4';
|
|
4
4
|
import { EntitySchema } from '../core/index.js';
|
|
5
5
|
|
|
@@ -54,9 +54,10 @@ type TransactGetResult<Schema extends ZodObject> = BaseResult & {
|
|
|
54
54
|
* // items array has same order as keys, undefined if not found
|
|
55
55
|
* ```
|
|
56
56
|
*/
|
|
57
|
-
declare class TransactGet<Schema extends ZodObject> implements BaseCommand<TransactGetResult<Schema>, Schema> {
|
|
57
|
+
declare class TransactGet<Schema extends ZodObject> implements BaseCommand<TransactGetResult<Schema>, Schema>, GetTransactable<Schema> {
|
|
58
58
|
#private;
|
|
59
59
|
constructor(config: TransactGetConfig<Schema>);
|
|
60
|
+
get keys(): Array<Partial<EntitySchema<Schema>>>;
|
|
60
61
|
execute(entity: DynamoEntity<Schema>): Promise<TransactGetResult<Schema>>;
|
|
61
62
|
}
|
|
62
63
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __classPrivateFieldSet,
|
|
1
|
+
import { __classPrivateFieldSet, __classPrivateFieldGet, __awaiter } from '../node_modules/tslib/tslib.es6.mjs';
|
|
2
2
|
import { TransactGetCommand } from '@aws-sdk/lib-dynamodb';
|
|
3
3
|
import { TRANSACTION_GET_VALIDATION_CONCURRENCY } from '../internal-constants.mjs';
|
|
4
4
|
import pMap from 'p-map';
|
|
@@ -44,6 +44,9 @@ class TransactGet {
|
|
|
44
44
|
_TransactGet_config.set(this, void 0);
|
|
45
45
|
__classPrivateFieldSet(this, _TransactGet_config, config, "f");
|
|
46
46
|
}
|
|
47
|
+
get keys() {
|
|
48
|
+
return __classPrivateFieldGet(this, _TransactGet_config, "f").keys;
|
|
49
|
+
}
|
|
47
50
|
execute(entity) {
|
|
48
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
52
|
var _a, _b, _c, _d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transact-get.mjs","sources":["../../src/commands/transact-get.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AA0BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;MACU,WAAW,CAAA;AAKtB,IAAA,WAAA,CAAY,MAAiC,EAAA;QAF7C,mBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,mBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,aAAa,GAAG,sBAAA,CAAA,IAAI,2BAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK;AAClD,gBAAA,GAAG,EAAE;AACH,oBAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;AACjC,oBAAA,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC;AACjC,iBAAA;AACF,aAAA,CAAC,CAAC;AAEH,YAAA,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC;AACzC,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAE,sBAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC5D,aAAA,CAAC;AAEF,YAAA,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC5E,WAAW,EAAE,MAAA,sBAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAE,sBAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,iBAAiB,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;YAClD,IAAI,KAAK,GAA4C,EAAE;AACvD,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAI,uBAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,EAAE;AAC/B,oBAAA,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAwC,CAAC;gBACrF;qBAAO;oBACL,KAAK,GAAG,MAAM,IAAI,CAChB,QAAQ,EACR,CAAM,QAAQ,KAAG,SAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA;AACf,wBAAA,IAAI,QAAQ,CAAC,IAAI,EAAE;4BACjB,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAChD;AACA,wBAAA,OAAO,SAAS;AAClB,oBAAA,CAAC,CAAA,EACD;AACE,wBAAA,WAAW,EAAE,sCAAsC;wBACnD,MAAM,EAAE,MAAA,sBAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,qBAAA,CACF;gBACH;YACF;YAEA,OAAO;gBACL,KAAK;gBACL,gBAAgB,EAAE,iBAAiB,CAAC,SAAS;AAC7C,gBAAA,gBAAgB,EAAE,CAAA,EAAA,GAAA,iBAAiB,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aAC1D;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
|
1
|
+
{"version":3,"file":"transact-get.mjs","sources":["../../src/commands/transact-get.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AA0BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;MACU,WAAW,CAAA;AAKtB,IAAA,WAAA,CAAY,MAAiC,EAAA;QAF7C,mBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,mBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,sBAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,IAAI;IAC1B;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,aAAa,GAAG,sBAAA,CAAA,IAAI,2BAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK;AAClD,gBAAA,GAAG,EAAE;AACH,oBAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;AACjC,oBAAA,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC;AACjC,iBAAA;AACF,aAAA,CAAC,CAAC;AAEH,YAAA,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC;AACzC,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAE,sBAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC5D,aAAA,CAAC;AAEF,YAAA,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC5E,WAAW,EAAE,MAAA,sBAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAE,sBAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,iBAAiB,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;YAClD,IAAI,KAAK,GAA4C,EAAE;AACvD,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAI,uBAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,EAAE;AAC/B,oBAAA,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAwC,CAAC;gBACrF;qBAAO;oBACL,KAAK,GAAG,MAAM,IAAI,CAChB,QAAQ,EACR,CAAM,QAAQ,KAAG,SAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA;AACf,wBAAA,IAAI,QAAQ,CAAC,IAAI,EAAE;4BACjB,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAChD;AACA,wBAAA,OAAO,SAAS;AAClB,oBAAA,CAAC,CAAA,EACD;AACE,wBAAA,WAAW,EAAE,sCAAsC;wBACnD,MAAM,EAAE,MAAA,sBAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,qBAAA,CACF;gBACH;YACF;YAEA,OAAO;gBACL,KAAK;gBACL,gBAAgB,EAAE,iBAAiB,CAAC,SAAS;AAC7C,gBAAA,gBAAgB,EAAE,CAAA,EAAA,GAAA,iBAAiB,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aAC1D;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
package/dist/core/entity.cjs
CHANGED
|
@@ -210,6 +210,120 @@ class DynamoEntity {
|
|
|
210
210
|
}
|
|
211
211
|
});
|
|
212
212
|
}
|
|
213
|
+
prepare(input) {
|
|
214
|
+
var _a;
|
|
215
|
+
// WriteTransactable[] — array of transact write operations
|
|
216
|
+
if (Array.isArray(input)) {
|
|
217
|
+
return {
|
|
218
|
+
entity: this,
|
|
219
|
+
writes: input,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
// BatchWritePreparable — has items and/or deletes, no keys
|
|
223
|
+
if ('items' in input || ('deletes' in input && !('keys' in input))) {
|
|
224
|
+
const batchWrite = input;
|
|
225
|
+
return {
|
|
226
|
+
entity: this,
|
|
227
|
+
buildRequests: (skipValidation, abortSignal) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
228
|
+
const putRequests = [];
|
|
229
|
+
const deleteRequests = [];
|
|
230
|
+
if (batchWrite.items && batchWrite.items.length > 0) {
|
|
231
|
+
for (const item of batchWrite.items) {
|
|
232
|
+
if (skipValidation) {
|
|
233
|
+
putRequests.push({
|
|
234
|
+
PutRequest: {
|
|
235
|
+
Item: Object.assign(Object.assign({}, item), this.buildAllKeys(item)),
|
|
236
|
+
},
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
const encodedData = yield tslib_es6.__classPrivateFieldGet(this, _DynamoEntity_schema, "f").encodeAsync(item);
|
|
241
|
+
putRequests.push({
|
|
242
|
+
PutRequest: {
|
|
243
|
+
Item: Object.assign(Object.assign({}, encodedData), this.buildAllKeys(item)),
|
|
244
|
+
},
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
if (batchWrite.deletes && batchWrite.deletes.length > 0) {
|
|
250
|
+
for (const deleteKey of batchWrite.deletes) {
|
|
251
|
+
deleteRequests.push({
|
|
252
|
+
DeleteRequest: {
|
|
253
|
+
Key: this.buildPrimaryKey(deleteKey),
|
|
254
|
+
},
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return [...putRequests, ...deleteRequests];
|
|
259
|
+
}),
|
|
260
|
+
matchUnprocessedPut: (item) => {
|
|
261
|
+
if (!batchWrite.items)
|
|
262
|
+
return undefined;
|
|
263
|
+
const itemPrimaryKey = this.buildPrimaryKey(item);
|
|
264
|
+
return batchWrite.items.find(original => {
|
|
265
|
+
const originalKey = this.buildPrimaryKey(original);
|
|
266
|
+
return JSON.stringify(originalKey) === JSON.stringify(itemPrimaryKey);
|
|
267
|
+
});
|
|
268
|
+
},
|
|
269
|
+
matchUnprocessedDelete: (key) => {
|
|
270
|
+
if (!batchWrite.deletes)
|
|
271
|
+
return undefined;
|
|
272
|
+
const keyStr = JSON.stringify(key);
|
|
273
|
+
return batchWrite.deletes.find(original => {
|
|
274
|
+
const originalKey = this.buildPrimaryKey(original);
|
|
275
|
+
return JSON.stringify(originalKey) === keyStr;
|
|
276
|
+
});
|
|
277
|
+
},
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
// BatchGetPreparable — has keys as entity partials plus consistent flag
|
|
281
|
+
if ('consistent' in input) {
|
|
282
|
+
const batchGet = input;
|
|
283
|
+
const builtKeys = batchGet.keys.map(k => this.buildPrimaryKey(k));
|
|
284
|
+
return {
|
|
285
|
+
entity: this,
|
|
286
|
+
keys: builtKeys,
|
|
287
|
+
consistent: (_a = batchGet.consistent) !== null && _a !== void 0 ? _a : false,
|
|
288
|
+
matchItem: (item) => {
|
|
289
|
+
const itemKey = this.buildPrimaryKey(item);
|
|
290
|
+
const itemKeyStr = JSON.stringify(itemKey);
|
|
291
|
+
return builtKeys.some(k => JSON.stringify(k) === itemKeyStr);
|
|
292
|
+
},
|
|
293
|
+
parseResults: (items, skipValidation) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
294
|
+
return yield Promise.all(items.map((item) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
295
|
+
if (skipValidation)
|
|
296
|
+
return item;
|
|
297
|
+
return yield tslib_es6.__classPrivateFieldGet(this, _DynamoEntity_schema, "f").parseAsync(item);
|
|
298
|
+
})));
|
|
299
|
+
}),
|
|
300
|
+
matchUnprocessedKey: (key) => {
|
|
301
|
+
const keyStr = JSON.stringify(key);
|
|
302
|
+
return batchGet.keys.find(original => {
|
|
303
|
+
const originalKey = this.buildPrimaryKey(original);
|
|
304
|
+
return JSON.stringify(originalKey) === keyStr;
|
|
305
|
+
});
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
// GetTransactable — has keys as entity partials, no consistent flag
|
|
310
|
+
return {
|
|
311
|
+
entity: this,
|
|
312
|
+
keys: input.keys.map(key => ({
|
|
313
|
+
TableName: tslib_es6.__classPrivateFieldGet(this, _DynamoEntity_table, "f").tableName,
|
|
314
|
+
Key: this.buildPrimaryKey(key),
|
|
315
|
+
})),
|
|
316
|
+
parseResults: (items, skipValidation) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
317
|
+
return yield Promise.all(items.map((item) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
318
|
+
if (item === undefined || item === null)
|
|
319
|
+
return undefined;
|
|
320
|
+
if (skipValidation)
|
|
321
|
+
return item;
|
|
322
|
+
return yield tslib_es6.__classPrivateFieldGet(this, _DynamoEntity_schema, "f").parseAsync(item);
|
|
323
|
+
})));
|
|
324
|
+
}),
|
|
325
|
+
};
|
|
326
|
+
}
|
|
213
327
|
}
|
|
214
328
|
_DynamoEntity_table = new WeakMap(), _DynamoEntity_schema = new WeakMap(), _DynamoEntity_pk = new WeakMap(), _DynamoEntity_sk = new WeakMap(), _DynamoEntity_gsi = new WeakMap(), _DynamoEntity_lsi = new WeakMap();
|
|
215
329
|
|
package/dist/core/entity.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.cjs","sources":["../../src/core/entity.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","DocumentBuilderError","__asyncValues","__await"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"entity.cjs","sources":["../../src/core/entity.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","DocumentBuilderError","__asyncValues","__await","__awaiter"],"mappings":"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"}
|
package/dist/core/entity.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseCommand, BasePaginatable } from '../commands/index.js';
|
|
1
|
+
import { BaseCommand, BasePaginatable, WriteTransactable, PreparedWriteTransaction, BatchWritePreparable, PreparedBatchWrite, BatchGetPreparable, PreparedBatchGet, GetTransactable, PreparedGetTransaction } from '../commands/index.js';
|
|
2
2
|
import { DynamoKeyBuilder, GlobalSecondaryIndexKeyBuilders, LocalSecondaryIndexKeyBuilders, DynamoKeyableValue, DynamoKey, DynamoIndexKey } from './key.js';
|
|
3
3
|
import { DynamoTable } from './table.js';
|
|
4
4
|
import { ZodObject } from 'zod/v4';
|
|
@@ -112,6 +112,26 @@ declare class DynamoEntity<Schema extends ZodObject> {
|
|
|
112
112
|
* Paginates through results of a paginatable command for this entity's table.
|
|
113
113
|
*/
|
|
114
114
|
paginate<CommandOutput>(paginatable: BasePaginatable<CommandOutput, Schema>): AsyncGenerator<CommandOutput, void, unknown>;
|
|
115
|
+
/**
|
|
116
|
+
* Prepares a set of write operations bound to this entity for use in a table-level
|
|
117
|
+
* `TableTransactWrite` command.
|
|
118
|
+
*/
|
|
119
|
+
prepare(writes: WriteTransactable<Schema>[]): PreparedWriteTransaction<Schema>;
|
|
120
|
+
/**
|
|
121
|
+
* Prepares a batch write command bound to this entity for use in a table-level
|
|
122
|
+
* `TableBatchWrite` command.
|
|
123
|
+
*/
|
|
124
|
+
prepare(batchWrite: BatchWritePreparable<Schema>): PreparedBatchWrite<Schema>;
|
|
125
|
+
/**
|
|
126
|
+
* Prepares a batch get command bound to this entity for use in a table-level
|
|
127
|
+
* `TableBatchGet` command.
|
|
128
|
+
*/
|
|
129
|
+
prepare(batchGet: BatchGetPreparable<Schema>): PreparedBatchGet<Schema>;
|
|
130
|
+
/**
|
|
131
|
+
* Prepares a get command bound to this entity for use in a table-level
|
|
132
|
+
* `TableTransactGet` command.
|
|
133
|
+
*/
|
|
134
|
+
prepare(get: GetTransactable<Schema>): PreparedGetTransaction<Schema>;
|
|
115
135
|
}
|
|
116
136
|
|
|
117
137
|
export { DynamoEntity };
|