dynamo-document-builder 0.6.0 → 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 +367 -0
- package/dist/attributes/attribute-map.cjs +52 -0
- package/dist/attributes/attribute-map.cjs.map +1 -1
- package/dist/attributes/attribute-map.d.ts +67 -0
- package/dist/attributes/attribute-map.mjs +52 -0
- package/dist/attributes/attribute-map.mjs.map +1 -1
- package/dist/commands/batch-get.cjs +43 -0
- package/dist/commands/batch-get.cjs.map +1 -1
- package/dist/commands/batch-get.d.ts +51 -3
- package/dist/commands/batch-get.mjs +44 -1
- package/dist/commands/batch-get.mjs.map +1 -1
- package/dist/commands/batch-projected-get.cjs +42 -0
- package/dist/commands/batch-projected-get.cjs.map +1 -1
- package/dist/commands/batch-projected-get.d.ts +56 -3
- package/dist/commands/batch-projected-get.mjs +42 -0
- package/dist/commands/batch-projected-get.mjs.map +1 -1
- package/dist/commands/batch-write.cjs +44 -0
- package/dist/commands/batch-write.cjs.map +1 -1
- package/dist/commands/batch-write.d.ts +54 -4
- package/dist/commands/batch-write.mjs +45 -1
- package/dist/commands/batch-write.mjs.map +1 -1
- package/dist/commands/condition-check.cjs +37 -0
- package/dist/commands/condition-check.cjs.map +1 -1
- package/dist/commands/condition-check.d.ts +45 -3
- package/dist/commands/condition-check.mjs +37 -0
- package/dist/commands/condition-check.mjs.map +1 -1
- package/dist/commands/conditional-delete.cjs +33 -0
- package/dist/commands/conditional-delete.cjs.map +1 -1
- package/dist/commands/conditional-delete.d.ts +46 -3
- package/dist/commands/conditional-delete.mjs +33 -0
- package/dist/commands/conditional-delete.mjs.map +1 -1
- package/dist/commands/conditional-put.cjs +34 -0
- package/dist/commands/conditional-put.cjs.map +1 -1
- package/dist/commands/conditional-put.d.ts +48 -4
- package/dist/commands/conditional-put.mjs +34 -0
- package/dist/commands/conditional-put.mjs.map +1 -1
- package/dist/commands/conditional-update.cjs +35 -0
- package/dist/commands/conditional-update.cjs.map +1 -1
- package/dist/commands/conditional-update.d.ts +48 -3
- package/dist/commands/conditional-update.mjs +35 -0
- package/dist/commands/conditional-update.mjs.map +1 -1
- package/dist/commands/delete.cjs +32 -0
- package/dist/commands/delete.cjs.map +1 -1
- package/dist/commands/delete.d.ts +44 -2
- package/dist/commands/delete.mjs +32 -0
- package/dist/commands/delete.mjs.map +1 -1
- package/dist/commands/get.cjs +33 -0
- package/dist/commands/get.cjs.map +1 -1
- package/dist/commands/get.d.ts +45 -2
- package/dist/commands/get.mjs +33 -0
- package/dist/commands/get.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 +160 -1
- package/dist/commands/index.mjs +4 -0
- package/dist/commands/index.mjs.map +1 -1
- package/dist/commands/projected-get.cjs +40 -0
- package/dist/commands/projected-get.cjs.map +1 -1
- package/dist/commands/projected-get.d.ts +54 -3
- package/dist/commands/projected-get.mjs +40 -0
- package/dist/commands/projected-get.mjs.map +1 -1
- package/dist/commands/projected-query.cjs +41 -0
- package/dist/commands/projected-query.cjs.map +1 -1
- package/dist/commands/projected-query.d.ts +56 -3
- package/dist/commands/projected-query.mjs +41 -0
- package/dist/commands/projected-query.mjs.map +1 -1
- package/dist/commands/projected-scan.cjs +41 -0
- package/dist/commands/projected-scan.cjs.map +1 -1
- package/dist/commands/projected-scan.d.ts +55 -3
- package/dist/commands/projected-scan.mjs +41 -0
- package/dist/commands/projected-scan.mjs.map +1 -1
- package/dist/commands/put.cjs +37 -0
- package/dist/commands/put.cjs.map +1 -1
- package/dist/commands/put.d.ts +50 -3
- package/dist/commands/put.mjs +37 -0
- package/dist/commands/put.mjs.map +1 -1
- package/dist/commands/query.cjs +35 -0
- package/dist/commands/query.cjs.map +1 -1
- package/dist/commands/query.d.ts +48 -3
- package/dist/commands/query.mjs +35 -0
- package/dist/commands/query.mjs.map +1 -1
- package/dist/commands/scan.cjs +33 -0
- package/dist/commands/scan.cjs.map +1 -1
- package/dist/commands/scan.d.ts +46 -3
- package/dist/commands/scan.mjs +33 -0
- package/dist/commands/scan.mjs.map +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 +38 -0
- package/dist/commands/transact-get.cjs.map +1 -1
- package/dist/commands/transact-get.d.ts +49 -3
- package/dist/commands/transact-get.mjs +39 -1
- package/dist/commands/transact-get.mjs.map +1 -1
- package/dist/commands/transact-write.cjs +37 -0
- package/dist/commands/transact-write.cjs.map +1 -1
- package/dist/commands/transact-write.d.ts +46 -1
- package/dist/commands/transact-write.mjs +37 -0
- package/dist/commands/transact-write.mjs.map +1 -1
- package/dist/commands/update.cjs +37 -0
- package/dist/commands/update.cjs.map +1 -1
- package/dist/commands/update.d.ts +50 -3
- package/dist/commands/update.mjs +37 -0
- package/dist/commands/update.mjs.map +1 -1
- package/dist/conditions/and.cjs +3 -0
- package/dist/conditions/and.cjs.map +1 -1
- package/dist/conditions/and.d.ts +4 -1
- package/dist/conditions/and.mjs +3 -0
- package/dist/conditions/and.mjs.map +1 -1
- package/dist/conditions/begins-with.cjs +3 -0
- package/dist/conditions/begins-with.cjs.map +1 -1
- package/dist/conditions/begins-with.d.ts +4 -1
- package/dist/conditions/begins-with.mjs +3 -0
- package/dist/conditions/begins-with.mjs.map +1 -1
- package/dist/conditions/between.cjs +3 -0
- package/dist/conditions/between.cjs.map +1 -1
- package/dist/conditions/between.d.ts +4 -1
- package/dist/conditions/between.mjs +3 -0
- package/dist/conditions/between.mjs.map +1 -1
- package/dist/conditions/condition-parser.d.ts +1 -1
- package/dist/conditions/contains.cjs +3 -0
- package/dist/conditions/contains.cjs.map +1 -1
- package/dist/conditions/contains.d.ts +4 -1
- package/dist/conditions/contains.mjs +3 -0
- package/dist/conditions/contains.mjs.map +1 -1
- package/dist/conditions/equals.cjs +3 -0
- package/dist/conditions/equals.cjs.map +1 -1
- package/dist/conditions/equals.d.ts +4 -1
- package/dist/conditions/equals.mjs +3 -0
- package/dist/conditions/equals.mjs.map +1 -1
- package/dist/conditions/exists.cjs +3 -0
- package/dist/conditions/exists.cjs.map +1 -1
- package/dist/conditions/exists.d.ts +4 -1
- package/dist/conditions/exists.mjs +3 -0
- package/dist/conditions/exists.mjs.map +1 -1
- package/dist/conditions/greater-than-or-equal.cjs +3 -0
- package/dist/conditions/greater-than-or-equal.cjs.map +1 -1
- package/dist/conditions/greater-than-or-equal.d.ts +4 -1
- package/dist/conditions/greater-than-or-equal.mjs +3 -0
- package/dist/conditions/greater-than-or-equal.mjs.map +1 -1
- package/dist/conditions/greater-than.cjs +3 -0
- package/dist/conditions/greater-than.cjs.map +1 -1
- package/dist/conditions/greater-than.d.ts +4 -1
- package/dist/conditions/greater-than.mjs +3 -0
- package/dist/conditions/greater-than.mjs.map +1 -1
- package/dist/conditions/index.cjs +2 -2
- package/dist/conditions/index.d.ts +185 -2
- package/dist/conditions/index.mjs +1 -1
- package/dist/conditions/is-in.cjs +3 -0
- package/dist/conditions/is-in.cjs.map +1 -1
- package/dist/conditions/is-in.d.ts +4 -1
- package/dist/conditions/is-in.mjs +3 -0
- package/dist/conditions/is-in.mjs.map +1 -1
- package/dist/conditions/less-than-or-equal.cjs +3 -0
- package/dist/conditions/less-than-or-equal.cjs.map +1 -1
- package/dist/conditions/less-than-or-equal.d.ts +4 -1
- package/dist/conditions/less-than-or-equal.mjs +3 -0
- package/dist/conditions/less-than-or-equal.mjs.map +1 -1
- package/dist/conditions/less-than.cjs +3 -0
- package/dist/conditions/less-than.cjs.map +1 -1
- package/dist/conditions/less-than.d.ts +4 -1
- package/dist/conditions/less-than.mjs +3 -0
- package/dist/conditions/less-than.mjs.map +1 -1
- package/dist/conditions/not-equals.cjs +3 -0
- package/dist/conditions/not-equals.cjs.map +1 -1
- package/dist/conditions/not-equals.d.ts +4 -1
- package/dist/conditions/not-equals.mjs +3 -0
- package/dist/conditions/not-equals.mjs.map +1 -1
- package/dist/conditions/not-exists.cjs +3 -0
- package/dist/conditions/not-exists.cjs.map +1 -1
- package/dist/conditions/not-exists.d.ts +4 -1
- package/dist/conditions/not-exists.mjs +3 -0
- package/dist/conditions/not-exists.mjs.map +1 -1
- package/dist/conditions/not.cjs +3 -0
- package/dist/conditions/not.cjs.map +1 -1
- package/dist/conditions/not.d.ts +4 -1
- package/dist/conditions/not.mjs +3 -0
- package/dist/conditions/not.mjs.map +1 -1
- package/dist/conditions/or.cjs +3 -0
- package/dist/conditions/or.cjs.map +1 -1
- package/dist/conditions/or.d.ts +4 -1
- package/dist/conditions/or.mjs +3 -0
- package/dist/conditions/or.mjs.map +1 -1
- package/dist/conditions/size.cjs +3 -0
- package/dist/conditions/size.cjs.map +1 -1
- package/dist/conditions/size.d.ts +4 -1
- package/dist/conditions/size.mjs +3 -0
- package/dist/conditions/size.mjs.map +1 -1
- package/dist/conditions/type-is.cjs +3 -0
- package/dist/conditions/type-is.cjs.map +1 -1
- package/dist/conditions/type-is.d.ts +4 -1
- package/dist/conditions/type-is.mjs +3 -0
- package/dist/conditions/type-is.mjs.map +1 -1
- package/dist/core/entity.cjs +171 -0
- package/dist/core/entity.cjs.map +1 -1
- package/dist/core/entity.d.ts +99 -4
- package/dist/core/entity.mjs +171 -0
- package/dist/core/entity.mjs.map +1 -1
- package/dist/core/index.d.ts +139 -2
- package/dist/core/key.cjs +1 -1
- package/dist/core/key.cjs.map +1 -1
- package/dist/core/key.d.ts +26 -2
- package/dist/core/key.mjs +1 -1
- package/dist/core/key.mjs.map +1 -1
- package/dist/core/table.cjs +30 -0
- package/dist/core/table.cjs.map +1 -1
- package/dist/core/table.d.ts +40 -1
- package/dist/core/table.mjs +31 -1
- package/dist/core/table.mjs.map +1 -1
- package/dist/errors.cjs +3 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +3 -0
- package/dist/errors.mjs +3 -0
- package/dist/errors.mjs.map +1 -1
- package/dist/index.cjs +10 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +11 -7
- package/dist/index.mjs +5 -1
- package/dist/index.mjs.map +1 -1
- package/dist/projections/index.d.ts +7 -1
- package/dist/projections/projection-parser.d.ts +1 -1
- package/dist/updates/add-to-set.cjs +5 -0
- package/dist/updates/add-to-set.cjs.map +1 -1
- package/dist/updates/add-to-set.d.ts +6 -1
- package/dist/updates/add-to-set.mjs +5 -0
- package/dist/updates/add-to-set.mjs.map +1 -1
- package/dist/updates/add.cjs +5 -0
- package/dist/updates/add.cjs.map +1 -1
- package/dist/updates/add.d.ts +6 -1
- package/dist/updates/add.mjs +5 -0
- package/dist/updates/add.mjs.map +1 -1
- package/dist/updates/append.cjs +5 -0
- package/dist/updates/append.cjs.map +1 -1
- package/dist/updates/append.d.ts +6 -1
- package/dist/updates/append.mjs +5 -0
- package/dist/updates/append.mjs.map +1 -1
- package/dist/updates/index.d.ts +78 -1
- package/dist/updates/prepend.cjs +5 -0
- package/dist/updates/prepend.cjs.map +1 -1
- package/dist/updates/prepend.d.ts +6 -1
- package/dist/updates/prepend.mjs +5 -0
- package/dist/updates/prepend.mjs.map +1 -1
- package/dist/updates/ref.cjs +6 -0
- package/dist/updates/ref.cjs.map +1 -1
- package/dist/updates/ref.d.ts +7 -1
- package/dist/updates/ref.mjs +6 -0
- package/dist/updates/ref.mjs.map +1 -1
- package/dist/updates/remove-from-set.cjs +5 -0
- package/dist/updates/remove-from-set.cjs.map +1 -1
- package/dist/updates/remove-from-set.d.ts +6 -1
- package/dist/updates/remove-from-set.mjs +5 -0
- package/dist/updates/remove-from-set.mjs.map +1 -1
- package/dist/updates/remove.cjs +3 -0
- package/dist/updates/remove.cjs.map +1 -1
- package/dist/updates/remove.d.ts +4 -1
- package/dist/updates/remove.mjs +3 -0
- package/dist/updates/remove.mjs.map +1 -1
- package/dist/updates/subtract.cjs +5 -0
- package/dist/updates/subtract.cjs.map +1 -1
- package/dist/updates/subtract.d.ts +6 -1
- package/dist/updates/subtract.mjs +5 -0
- package/dist/updates/subtract.mjs.map +1 -1
- package/dist/updates/update-parser.cjs +10 -0
- package/dist/updates/update-parser.cjs.map +1 -1
- package/dist/updates/update-parser.d.ts +17 -1
- package/dist/updates/update-parser.mjs +10 -0
- package/dist/updates/update-parser.mjs.map +1 -1
- package/package.json +2 -1
- package/dist/commands/base-command.cjs +0 -3
- package/dist/commands/base-command.cjs.map +0 -1
- package/dist/commands/base-command.d.ts +0 -27
- package/dist/commands/base-command.mjs +0 -2
- package/dist/commands/base-command.mjs.map +0 -1
- package/dist/conditions/condition-types.cjs +0 -3
- package/dist/conditions/condition-types.cjs.map +0 -1
- package/dist/conditions/condition-types.d.ts +0 -95
- package/dist/conditions/condition-types.mjs +0 -2
- package/dist/conditions/condition-types.mjs.map +0 -1
- package/dist/core/core-types.cjs +0 -3
- package/dist/core/core-types.cjs.map +0 -1
- package/dist/core/core-types.d.ts +0 -44
- package/dist/core/core-types.mjs +0 -2
- package/dist/core/core-types.mjs.map +0 -1
- package/dist/projections/projection-types.cjs +0 -3
- package/dist/projections/projection-types.cjs.map +0 -1
- package/dist/projections/projection-types.d.ts +0 -3
- package/dist/projections/projection-types.mjs +0 -2
- package/dist/projections/projection-types.mjs.map +0 -1
- package/dist/updates/update-types.cjs +0 -3
- package/dist/updates/update-types.cjs.map +0 -1
- package/dist/updates/update-types.d.ts +0 -45
- package/dist/updates/update-types.mjs +0 -2
- package/dist/updates/update-types.mjs.map +0 -1
|
@@ -1,17 +1,63 @@
|
|
|
1
1
|
import { DynamoEntity } from '../core/entity.js';
|
|
2
|
-
import { BaseConfig, BaseResult, BaseCommand } from './
|
|
2
|
+
import { BaseConfig, BaseResult, BaseCommand, GetTransactable } from './index.js';
|
|
3
3
|
import { ZodObject } from 'zod/v4';
|
|
4
|
-
import { EntitySchema } from '../core/
|
|
4
|
+
import { EntitySchema } from '../core/index.js';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for the TransactGet command.
|
|
8
|
+
*
|
|
9
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
10
|
+
*/
|
|
6
11
|
type TransactGetConfig<Schema extends ZodObject> = BaseConfig & {
|
|
7
12
|
keys: Array<Partial<EntitySchema<Schema>>>;
|
|
8
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Result of the TransactGet command.
|
|
16
|
+
*
|
|
17
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
18
|
+
*/
|
|
9
19
|
type TransactGetResult<Schema extends ZodObject> = BaseResult & {
|
|
10
20
|
items: Array<EntitySchema<Schema> | undefined>;
|
|
11
21
|
};
|
|
12
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Command to perform a transactional read of multiple items (all-or-nothing, strongly consistent).
|
|
24
|
+
*
|
|
25
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* import { DynamoTable, DynamoEntity, key, TransactGet } from 'dynamo-document-builder';
|
|
30
|
+
*
|
|
31
|
+
* const table = new DynamoTable({
|
|
32
|
+
* tableName: 'ExampleTable',
|
|
33
|
+
* documentClient,
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* const userEntity = new DynamoEntity({
|
|
37
|
+
* table,
|
|
38
|
+
* schema: z.object({
|
|
39
|
+
* userId: z.string(),
|
|
40
|
+
* name: z.string(),
|
|
41
|
+
* }),
|
|
42
|
+
* partitionKey: user => key('USER', user.userId),
|
|
43
|
+
* sortKey: () => 'METADATA',
|
|
44
|
+
* });
|
|
45
|
+
*
|
|
46
|
+
* const transactGetCommand = new TransactGet({
|
|
47
|
+
* keys: [
|
|
48
|
+
* { userId: 'user1' },
|
|
49
|
+
* { userId: 'user2' },
|
|
50
|
+
* ],
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* const { items } = await userEntity.send(transactGetCommand);
|
|
54
|
+
* // items array has same order as keys, undefined if not found
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
declare class TransactGet<Schema extends ZodObject> implements BaseCommand<TransactGetResult<Schema>, Schema>, GetTransactable<Schema> {
|
|
13
58
|
#private;
|
|
14
59
|
constructor(config: TransactGetConfig<Schema>);
|
|
60
|
+
get keys(): Array<Partial<EntitySchema<Schema>>>;
|
|
15
61
|
execute(entity: DynamoEntity<Schema>): Promise<TransactGetResult<Schema>>;
|
|
16
62
|
}
|
|
17
63
|
|
|
@@ -1,14 +1,52 @@
|
|
|
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';
|
|
5
5
|
|
|
6
6
|
var _TransactGet_config;
|
|
7
|
+
/**
|
|
8
|
+
* Command to perform a transactional read of multiple items (all-or-nothing, strongly consistent).
|
|
9
|
+
*
|
|
10
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { DynamoTable, DynamoEntity, key, TransactGet } from 'dynamo-document-builder';
|
|
15
|
+
*
|
|
16
|
+
* const table = new DynamoTable({
|
|
17
|
+
* tableName: 'ExampleTable',
|
|
18
|
+
* documentClient,
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* const userEntity = new DynamoEntity({
|
|
22
|
+
* table,
|
|
23
|
+
* schema: z.object({
|
|
24
|
+
* userId: z.string(),
|
|
25
|
+
* name: z.string(),
|
|
26
|
+
* }),
|
|
27
|
+
* partitionKey: user => key('USER', user.userId),
|
|
28
|
+
* sortKey: () => 'METADATA',
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* const transactGetCommand = new TransactGet({
|
|
32
|
+
* keys: [
|
|
33
|
+
* { userId: 'user1' },
|
|
34
|
+
* { userId: 'user2' },
|
|
35
|
+
* ],
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* const { items } = await userEntity.send(transactGetCommand);
|
|
39
|
+
* // items array has same order as keys, undefined if not found
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
7
42
|
class TransactGet {
|
|
8
43
|
constructor(config) {
|
|
9
44
|
_TransactGet_config.set(this, void 0);
|
|
10
45
|
__classPrivateFieldSet(this, _TransactGet_config, config, "f");
|
|
11
46
|
}
|
|
47
|
+
get keys() {
|
|
48
|
+
return __classPrivateFieldGet(this, _TransactGet_config, "f").keys;
|
|
49
|
+
}
|
|
12
50
|
execute(entity) {
|
|
13
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14
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":";;;;;;
|
|
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;;;;;"}
|
|
@@ -6,6 +6,43 @@ var libDynamodb = require('@aws-sdk/lib-dynamodb');
|
|
|
6
6
|
var pMap = require('p-map');
|
|
7
7
|
|
|
8
8
|
var _TransactWrite_config;
|
|
9
|
+
/**
|
|
10
|
+
* Command to perform an atomic multi-item write transaction (all-or-nothing).
|
|
11
|
+
*
|
|
12
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { DynamoTable, DynamoEntity, key, TransactWrite, Put, Update, Delete } from 'dynamo-document-builder';
|
|
17
|
+
*
|
|
18
|
+
* const table = new DynamoTable({
|
|
19
|
+
* tableName: 'ExampleTable',
|
|
20
|
+
* documentClient,
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* const userEntity = new DynamoEntity({
|
|
24
|
+
* table,
|
|
25
|
+
* schema: z.object({
|
|
26
|
+
* userId: z.string(),
|
|
27
|
+
* name: z.string(),
|
|
28
|
+
* balance: z.number(),
|
|
29
|
+
* }),
|
|
30
|
+
* partitionKey: user => key('USER', user.userId),
|
|
31
|
+
* sortKey: () => 'METADATA',
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* const transactWriteCommand = new TransactWrite({
|
|
35
|
+
* writes: [
|
|
36
|
+
* new Put({ item: { userId: 'user1', name: 'John', balance: 100 } }),
|
|
37
|
+
* new Update({ key: { userId: 'user2' }, update: { balance: add(50) } }),
|
|
38
|
+
* new Delete({ key: { userId: 'user3' } }),
|
|
39
|
+
* ],
|
|
40
|
+
* idempotencyToken: 'unique-token',
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* await userEntity.send(transactWriteCommand);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
9
46
|
class TransactWrite {
|
|
10
47
|
constructor(config) {
|
|
11
48
|
_TransactWrite_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transact-write.cjs","sources":["../../src/commands/transact-write.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","TRANSACTION_WRITE_VALIDATION_CONCURRENCY","TransactWriteCommand"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"transact-write.cjs","sources":["../../src/commands/transact-write.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","TRANSACTION_WRITE_VALIDATION_CONCURRENCY","TransactWriteCommand"],"mappings":";;;;;;;;AAiCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG;MACU,aAAa,CAAA;AAKxB,IAAA,WAAA,CAAY,MAAmC,EAAA;QAF/C,qBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,qBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;YAC/C,MAAM,aAAa,GAAG,MAAM,IAAI,CAC9BC,gCAAA,CAAA,IAAI,6BAAQ,CAAC,MAAM,EACnB,KAAK,IAAI,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAC9C;AACE,gBAAA,WAAW,EAAEC,0DAAwC;gBACrD,MAAM,EAAE,MAAAD,gCAAA,CAAA,IAAI,6BAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,aAAA,CACF;AACD,YAAA,MAAM,gBAAgB,GAAG,IAAIE,gCAAoB,CAAC;AAChD,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAEF,gCAAA,CAAA,IAAI,EAAA,qBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC3D,gBAAA,2BAA2B,EAAEA,gCAAA,CAAA,IAAI,EAAA,qBAAA,EAAA,GAAA,CAAQ,CAAC,2BAA2B;AACrE,gBAAA,kBAAkB,EAAEA,gCAAA,CAAA,IAAI,EAAA,qBAAA,EAAA,GAAA,CAAQ,CAAC,gBAAgB;AAClD,aAAA,CAAC;AACF,YAAA,MAAM,sBAAsB,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACtF,WAAW,EAAE,MAAAA,gCAAA,CAAA,IAAI,6BAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAEA,gCAAA,CAAA,IAAI,EAAA,qBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YACF,OAAO;gBACL,gBAAgB,EAAE,sBAAsB,CAAC,SAAS;gBAClD,gBAAgB,EAAE,sBAAsB,CAAC,gBAAgB;gBACzD,qBAAqB,EAAE,sBAAsB,CAAC,qBAAqB;aACpE;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
|
@@ -1,19 +1,64 @@
|
|
|
1
|
-
import { BaseConfig, WriteTransactable, BaseCommand } from './
|
|
1
|
+
import { BaseConfig, WriteTransactable, BaseCommand } from './index.js';
|
|
2
2
|
import { ReturnItemCollectionMetrics, ConsumedCapacity, ItemCollectionMetrics } from '@aws-sdk/client-dynamodb';
|
|
3
3
|
import { DynamoEntity } from '../core/entity.js';
|
|
4
4
|
import { ResponseMetadata } from '@aws-sdk/types';
|
|
5
5
|
import { ZodObject } from 'zod/v4';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for the TransactWrite command.
|
|
9
|
+
*
|
|
10
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
11
|
+
*/
|
|
7
12
|
type TransactWriteConfig<Schema extends ZodObject> = BaseConfig & {
|
|
8
13
|
writes: WriteTransactable<Schema>[];
|
|
9
14
|
idempotencyToken?: string;
|
|
10
15
|
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
|
|
11
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Result of the TransactWrite command.
|
|
19
|
+
*/
|
|
12
20
|
type TransactWriteResult = {
|
|
13
21
|
responseMetadata?: ResponseMetadata;
|
|
14
22
|
consumedCapacity?: ConsumedCapacity[] | undefined;
|
|
15
23
|
itemCollectionMetrics?: ItemCollectionMetrics;
|
|
16
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Command to perform an atomic multi-item write transaction (all-or-nothing).
|
|
27
|
+
*
|
|
28
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* import { DynamoTable, DynamoEntity, key, TransactWrite, Put, Update, Delete } from 'dynamo-document-builder';
|
|
33
|
+
*
|
|
34
|
+
* const table = new DynamoTable({
|
|
35
|
+
* tableName: 'ExampleTable',
|
|
36
|
+
* documentClient,
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* const userEntity = new DynamoEntity({
|
|
40
|
+
* table,
|
|
41
|
+
* schema: z.object({
|
|
42
|
+
* userId: z.string(),
|
|
43
|
+
* name: z.string(),
|
|
44
|
+
* balance: z.number(),
|
|
45
|
+
* }),
|
|
46
|
+
* partitionKey: user => key('USER', user.userId),
|
|
47
|
+
* sortKey: () => 'METADATA',
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* const transactWriteCommand = new TransactWrite({
|
|
51
|
+
* writes: [
|
|
52
|
+
* new Put({ item: { userId: 'user1', name: 'John', balance: 100 } }),
|
|
53
|
+
* new Update({ key: { userId: 'user2' }, update: { balance: add(50) } }),
|
|
54
|
+
* new Delete({ key: { userId: 'user3' } }),
|
|
55
|
+
* ],
|
|
56
|
+
* idempotencyToken: 'unique-token',
|
|
57
|
+
* });
|
|
58
|
+
*
|
|
59
|
+
* await userEntity.send(transactWriteCommand);
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
17
62
|
declare class TransactWrite<Schema extends ZodObject> implements BaseCommand<TransactWriteResult, Schema> {
|
|
18
63
|
#private;
|
|
19
64
|
constructor(config: TransactWriteConfig<Schema>);
|
|
@@ -4,6 +4,43 @@ import { TransactWriteCommand } from '@aws-sdk/lib-dynamodb';
|
|
|
4
4
|
import pMap from 'p-map';
|
|
5
5
|
|
|
6
6
|
var _TransactWrite_config;
|
|
7
|
+
/**
|
|
8
|
+
* Command to perform an atomic multi-item write transaction (all-or-nothing).
|
|
9
|
+
*
|
|
10
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { DynamoTable, DynamoEntity, key, TransactWrite, Put, Update, Delete } from 'dynamo-document-builder';
|
|
15
|
+
*
|
|
16
|
+
* const table = new DynamoTable({
|
|
17
|
+
* tableName: 'ExampleTable',
|
|
18
|
+
* documentClient,
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* const userEntity = new DynamoEntity({
|
|
22
|
+
* table,
|
|
23
|
+
* schema: z.object({
|
|
24
|
+
* userId: z.string(),
|
|
25
|
+
* name: z.string(),
|
|
26
|
+
* balance: z.number(),
|
|
27
|
+
* }),
|
|
28
|
+
* partitionKey: user => key('USER', user.userId),
|
|
29
|
+
* sortKey: () => 'METADATA',
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* const transactWriteCommand = new TransactWrite({
|
|
33
|
+
* writes: [
|
|
34
|
+
* new Put({ item: { userId: 'user1', name: 'John', balance: 100 } }),
|
|
35
|
+
* new Update({ key: { userId: 'user2' }, update: { balance: add(50) } }),
|
|
36
|
+
* new Delete({ key: { userId: 'user3' } }),
|
|
37
|
+
* ],
|
|
38
|
+
* idempotencyToken: 'unique-token',
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* await userEntity.send(transactWriteCommand);
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
7
44
|
class TransactWrite {
|
|
8
45
|
constructor(config) {
|
|
9
46
|
_TransactWrite_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transact-write.mjs","sources":["../../src/commands/transact-write.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"transact-write.mjs","sources":["../../src/commands/transact-write.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAiCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG;MACU,aAAa,CAAA;AAKxB,IAAA,WAAA,CAAY,MAAmC,EAAA;QAF/C,qBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,qBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;YAC/C,MAAM,aAAa,GAAG,MAAM,IAAI,CAC9B,sBAAA,CAAA,IAAI,6BAAQ,CAAC,MAAM,EACnB,KAAK,IAAI,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAC9C;AACE,gBAAA,WAAW,EAAE,wCAAwC;gBACrD,MAAM,EAAE,MAAA,sBAAA,CAAA,IAAI,6BAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,aAAA,CACF;AACD,YAAA,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,CAAC;AAChD,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAE,sBAAA,CAAA,IAAI,EAAA,qBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC3D,gBAAA,2BAA2B,EAAE,sBAAA,CAAA,IAAI,EAAA,qBAAA,EAAA,GAAA,CAAQ,CAAC,2BAA2B;AACrE,gBAAA,kBAAkB,EAAE,sBAAA,CAAA,IAAI,EAAA,qBAAA,EAAA,GAAA,CAAQ,CAAC,gBAAgB;AAClD,aAAA,CAAC;AACF,YAAA,MAAM,sBAAsB,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACtF,WAAW,EAAE,MAAA,sBAAA,CAAA,IAAI,6BAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAE,sBAAA,CAAA,IAAI,EAAA,qBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YACF,OAAO;gBACL,gBAAgB,EAAE,sBAAsB,CAAC,SAAS;gBAClD,gBAAgB,EAAE,sBAAsB,CAAC,gBAAgB;gBACzD,qBAAqB,EAAE,sBAAsB,CAAC,qBAAqB;aACpE;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
package/dist/commands/update.cjs
CHANGED
|
@@ -5,6 +5,43 @@ var libDynamodb = require('@aws-sdk/lib-dynamodb');
|
|
|
5
5
|
var updates_updateParser = require('../updates/update-parser.cjs');
|
|
6
6
|
|
|
7
7
|
var _Update_config;
|
|
8
|
+
/**
|
|
9
|
+
* Command to modify existing item attributes in a DynamoDB table.
|
|
10
|
+
*
|
|
11
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { DynamoTable, DynamoEntity, key, Update, add } from 'dynamo-document-builder';
|
|
16
|
+
*
|
|
17
|
+
* const table = new DynamoTable({
|
|
18
|
+
* tableName: 'ExampleTable',
|
|
19
|
+
* documentClient,
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const userEntity = new DynamoEntity({
|
|
23
|
+
* table,
|
|
24
|
+
* schema: z.object({
|
|
25
|
+
* userId: z.string(),
|
|
26
|
+
* name: z.string(),
|
|
27
|
+
* loginCount: z.number(),
|
|
28
|
+
* }),
|
|
29
|
+
* partitionKey: user => key('USER', user.userId),
|
|
30
|
+
* sortKey: () => 'METADATA',
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* const updateCommand = new Update({
|
|
34
|
+
* key: { userId: 'user123' },
|
|
35
|
+
* update: {
|
|
36
|
+
* name: 'Jane Doe',
|
|
37
|
+
* loginCount: add(1),
|
|
38
|
+
* },
|
|
39
|
+
* returnValues: 'ALL_NEW',
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* const { updatedItem } = await userEntity.send(updateCommand);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
8
45
|
class Update {
|
|
9
46
|
constructor(config) {
|
|
10
47
|
_Update_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.cjs","sources":["../../src/commands/update.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","parseUpdate","__classPrivateFieldGet","UpdateCommand"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"update.cjs","sources":["../../src/commands/update.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","parseUpdate","__classPrivateFieldGet","UpdateCommand"],"mappings":"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"}
|
|
@@ -1,20 +1,67 @@
|
|
|
1
1
|
import { DynamoEntity } from '../core/entity.js';
|
|
2
|
-
import { EntitySchema, TransactWriteOperation } from '../core/
|
|
2
|
+
import { EntitySchema, TransactWriteOperation } from '../core/index.js';
|
|
3
3
|
import { ReturnValue, ReturnItemCollectionMetrics, ItemCollectionMetrics } from '@aws-sdk/client-dynamodb';
|
|
4
|
-
import { UpdateValues } from '../updates/
|
|
4
|
+
import { UpdateValues } from '../updates/index.js';
|
|
5
5
|
import { ZodObject } from 'zod/v4';
|
|
6
|
-
import { BaseConfig, BaseResult, BaseCommand, WriteTransactable } from './
|
|
6
|
+
import { BaseConfig, BaseResult, BaseCommand, WriteTransactable } from './index.js';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for the Update command.
|
|
10
|
+
*
|
|
11
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
12
|
+
*/
|
|
8
13
|
type UpdateConfig<Schema extends ZodObject> = BaseConfig & {
|
|
9
14
|
key: Partial<EntitySchema<Schema>>;
|
|
10
15
|
update: UpdateValues;
|
|
11
16
|
returnValues?: ReturnValue;
|
|
12
17
|
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
|
|
13
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Result of the Update command.
|
|
21
|
+
*
|
|
22
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
23
|
+
*/
|
|
14
24
|
type UpdateResult<Schema extends ZodObject> = BaseResult & {
|
|
15
25
|
updatedItem?: Partial<EntitySchema<Schema>> | undefined;
|
|
16
26
|
itemCollectionMetrics?: ItemCollectionMetrics;
|
|
17
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Command to modify existing item attributes in a DynamoDB table.
|
|
30
|
+
*
|
|
31
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* import { DynamoTable, DynamoEntity, key, Update, add } from 'dynamo-document-builder';
|
|
36
|
+
*
|
|
37
|
+
* const table = new DynamoTable({
|
|
38
|
+
* tableName: 'ExampleTable',
|
|
39
|
+
* documentClient,
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* const userEntity = new DynamoEntity({
|
|
43
|
+
* table,
|
|
44
|
+
* schema: z.object({
|
|
45
|
+
* userId: z.string(),
|
|
46
|
+
* name: z.string(),
|
|
47
|
+
* loginCount: z.number(),
|
|
48
|
+
* }),
|
|
49
|
+
* partitionKey: user => key('USER', user.userId),
|
|
50
|
+
* sortKey: () => 'METADATA',
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* const updateCommand = new Update({
|
|
54
|
+
* key: { userId: 'user123' },
|
|
55
|
+
* update: {
|
|
56
|
+
* name: 'Jane Doe',
|
|
57
|
+
* loginCount: add(1),
|
|
58
|
+
* },
|
|
59
|
+
* returnValues: 'ALL_NEW',
|
|
60
|
+
* });
|
|
61
|
+
*
|
|
62
|
+
* const { updatedItem } = await userEntity.send(updateCommand);
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
18
65
|
declare class Update<Schema extends ZodObject> implements BaseCommand<UpdateResult<Schema>, Schema>, WriteTransactable<Schema> {
|
|
19
66
|
#private;
|
|
20
67
|
constructor(config: UpdateConfig<Schema>);
|
package/dist/commands/update.mjs
CHANGED
|
@@ -3,6 +3,43 @@ import { UpdateCommand } from '@aws-sdk/lib-dynamodb';
|
|
|
3
3
|
import { parseUpdate } from '../updates/update-parser.mjs';
|
|
4
4
|
|
|
5
5
|
var _Update_config;
|
|
6
|
+
/**
|
|
7
|
+
* Command to modify existing item attributes in a DynamoDB table.
|
|
8
|
+
*
|
|
9
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { DynamoTable, DynamoEntity, key, Update, add } from 'dynamo-document-builder';
|
|
14
|
+
*
|
|
15
|
+
* const table = new DynamoTable({
|
|
16
|
+
* tableName: 'ExampleTable',
|
|
17
|
+
* documentClient,
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* const userEntity = new DynamoEntity({
|
|
21
|
+
* table,
|
|
22
|
+
* schema: z.object({
|
|
23
|
+
* userId: z.string(),
|
|
24
|
+
* name: z.string(),
|
|
25
|
+
* loginCount: z.number(),
|
|
26
|
+
* }),
|
|
27
|
+
* partitionKey: user => key('USER', user.userId),
|
|
28
|
+
* sortKey: () => 'METADATA',
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* const updateCommand = new Update({
|
|
32
|
+
* key: { userId: 'user123' },
|
|
33
|
+
* update: {
|
|
34
|
+
* name: 'Jane Doe',
|
|
35
|
+
* loginCount: add(1),
|
|
36
|
+
* },
|
|
37
|
+
* returnValues: 'ALL_NEW',
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* const { updatedItem } = await userEntity.send(updateCommand);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
6
43
|
class Update {
|
|
7
44
|
constructor(config) {
|
|
8
45
|
_Update_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.mjs","sources":["../../src/commands/update.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"update.mjs","sources":["../../src/commands/update.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAmCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG;MACU,MAAM,CAAA;AAKjB,IAAA,WAAA,CAAY,MAA4B,EAAA;QAFxC,cAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,WAAW,CAAC,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,MAAM,CAAC;YAErF,MAAM,UAAU,GAAG,IAAI,aAAa,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAClC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EACjC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,GAAG,CAAC,EAC7C,gBAAgB,EAAE,gBAAgB,EAAA,EAC/B,sBAAsB,CAAC,2BAA2B,EAAE,CAAA,EAAA,EACvD,YAAY,EAAE,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,YAAY,EACvC,2BAA2B,EAAE,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,2BAA2B,EACrE,sBAAsB,EAAE,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB,EAAA,CAAA,CAC3D;AAEF,YAAA,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE;gBACtE,WAAW,EAAE,MAAA,sBAAA,CAAA,IAAI,sBAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAE,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;AAEF,YAAA,IAAI,WAAsD;AAC1D,YAAA,IAAI,YAAY,CAAC,UAAU,EAAE;AAC3B,gBAAA,IAAI,uBAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,EAAE;AAC/B,oBAAA,WAAW,GAAG,YAAY,CAAC,UAA2C;gBACxE;qBAAO;AACL,oBAAA,WAAW,IAAI,MAAM,MAAM,CAAC;AACzB,yBAAA,OAAO;AACP,yBAAA,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAkC;gBAC1E;YACF;YAEA,OAAO;gBACL,WAAW;gBACX,gBAAgB,EAAE,YAAY,CAAC,SAAS;gBACxC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;aAC1D;QACH,CAAC,CAAA;AAAA,IAAA;AAEY,IAAA,uBAAuB,CAClC,MAA4B,EAAA;;AAE5B,YAAA,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,WAAW,CAAC,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,MAAM,CAAC;YACrF,OAAO;AACL,gBAAA,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,EACJ,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EACjC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,GAAG,CAAC,EAC7C,gBAAgB,EAAE,gBAAgB,EAAA,EAC/B,sBAAsB,CAAC,2BAA2B,EAAE,CACxD;aACF;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
package/dist/conditions/and.cjs
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var conditions_conditionSymbols = require('./condition-symbols.cjs');
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Combines multiple condition expressions using the logical AND operator.
|
|
7
|
+
*/
|
|
5
8
|
function and(firstCondition, secondCondition, ...additionalConditions) {
|
|
6
9
|
return {
|
|
7
10
|
type: conditions_conditionSymbols.$logical,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"and.cjs","sources":["../../src/conditions/and.ts"],"sourcesContent":[null],"names":["$logical"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"and.cjs","sources":["../../src/conditions/and.ts"],"sourcesContent":[null],"names":["$logical"],"mappings":";;;;AAGA;;AAEG;AACG,SAAU,GAAG,CACjB,cAA2C,EAC3C,eAA4C,EAC5C,GAAG,oBAAmD,EAAA;IAEtD,OAAO;AACL,QAAA,IAAI,EAAEA,oCAAQ;AACd,QAAA,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAAC;KAC1E;AACH;;;;"}
|
package/dist/conditions/and.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { ConditionExpressionTemplate, LogicalExpression } from './
|
|
1
|
+
import { ConditionExpressionTemplate, LogicalExpression } from './index.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Combines multiple condition expressions using the logical AND operator.
|
|
5
|
+
*/
|
|
3
6
|
declare function and(firstCondition: ConditionExpressionTemplate, secondCondition: ConditionExpressionTemplate, ...additionalConditions: ConditionExpressionTemplate[]): LogicalExpression;
|
|
4
7
|
|
|
5
8
|
export { and };
|
package/dist/conditions/and.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"and.mjs","sources":["../../src/conditions/and.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"and.mjs","sources":["../../src/conditions/and.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;AAEG;AACG,SAAU,GAAG,CACjB,cAA2C,EAC3C,eAA4C,EAC5C,GAAG,oBAAmD,EAAA;IAEtD,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAAC;KAC1E;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"begins-with.cjs","sources":["../../src/conditions/begins-with.ts"],"sourcesContent":[null],"names":["$beginsWith"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"begins-with.cjs","sources":["../../src/conditions/begins-with.ts"],"sourcesContent":[null],"names":["$beginsWith"],"mappings":";;;;AAGA;;AAEG;AACG,SAAU,UAAU,CAAC,MAAc,EAAA;IACvC,OAAO;AACL,QAAA,IAAI,EAAEA,uCAAW;QACjB,MAAM;KACP;AACH;;;;"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { BeginsWithExpressionTemplate } from './
|
|
1
|
+
import { BeginsWithExpressionTemplate } from './index.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Creates a BEGINS WITH expression template.
|
|
5
|
+
*/
|
|
3
6
|
declare function beginsWith(prefix: string): BeginsWithExpressionTemplate;
|
|
4
7
|
|
|
5
8
|
export { beginsWith };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"begins-with.mjs","sources":["../../src/conditions/begins-with.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"begins-with.mjs","sources":["../../src/conditions/begins-with.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;AAEG;AACG,SAAU,UAAU,CAAC,MAAc,EAAA;IACvC,OAAO;AACL,QAAA,IAAI,EAAE,WAAW;QACjB,MAAM;KACP;AACH;;;;"}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var conditions_conditionSymbols = require('./condition-symbols.cjs');
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Creates a BETWEEN expression template. Lower and upper bounds are *inclusive*.
|
|
7
|
+
*/
|
|
5
8
|
function between(lowerBound, upperBound) {
|
|
6
9
|
return {
|
|
7
10
|
type: conditions_conditionSymbols.$between,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"between.cjs","sources":["../../src/conditions/between.ts"],"sourcesContent":[null],"names":["$between"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"between.cjs","sources":["../../src/conditions/between.ts"],"sourcesContent":[null],"names":["$between"],"mappings":";;;;AAGA;;AAEG;AACG,SAAU,OAAO,CACrB,UAA2B,EAC3B,UAA2B,EAAA;IAE3B,OAAO;AACL,QAAA,IAAI,EAAEA,oCAAQ;AACd,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,UAAU,EAAE,UAAU;KACvB;AACH;;;;"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { ValueExpression, BetweenExpressionTemplate } from './
|
|
1
|
+
import { ValueExpression, BetweenExpressionTemplate } from './index.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Creates a BETWEEN expression template. Lower and upper bounds are *inclusive*.
|
|
5
|
+
*/
|
|
3
6
|
declare function between(lowerBound: ValueExpression, upperBound: ValueExpression): BetweenExpressionTemplate;
|
|
4
7
|
|
|
5
8
|
export { between };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"between.mjs","sources":["../../src/conditions/between.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"between.mjs","sources":["../../src/conditions/between.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;AAEG;AACG,SAAU,OAAO,CACrB,UAA2B,EAC3B,UAA2B,EAAA;IAE3B,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,UAAU,EAAE,UAAU;KACvB;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contains.cjs","sources":["../../src/conditions/contains.ts"],"sourcesContent":[null],"names":["$contains"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"contains.cjs","sources":["../../src/conditions/contains.ts"],"sourcesContent":[null],"names":["$contains"],"mappings":";;;;AAIA;;AAEG;AACG,SAAU,QAAQ,CAAC,kBAAwC,EAAA;IAC/D,OAAO;AACL,QAAA,IAAI,EAAEA,qCAAS;QACf,kBAAkB;KACnB;AACH;;;;"}
|