@model-ts/dynamodb 2.0.0 → 3.0.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/CHANGELOG.md +12 -0
- package/dist/cjs/__test__/client-with-cursor-encryption.test.js +298 -183
- package/dist/cjs/__test__/client-with-cursor-encryption.test.js.map +1 -1
- package/dist/cjs/__test__/client.test.js +101 -0
- package/dist/cjs/__test__/client.test.js.map +1 -1
- package/dist/cjs/client.d.ts +6 -1
- package/dist/cjs/client.js +7 -2
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/dynamodb-model.d.ts +33 -8
- package/dist/cjs/gsi.d.ts +4 -0
- package/dist/cjs/gsi.js +24 -0
- package/dist/cjs/gsi.js.map +1 -0
- package/dist/cjs/operations.d.ts +4 -8
- package/dist/cjs/operations.js.map +1 -1
- package/dist/cjs/pagination.d.ts +48 -59
- package/dist/cjs/pagination.js +18 -26
- package/dist/cjs/pagination.js.map +1 -1
- package/dist/cjs/provider.d.ts +135 -17
- package/dist/cjs/provider.js +5 -12
- package/dist/cjs/provider.js.map +1 -1
- package/dist/cjs/sandbox.js +10 -43
- package/dist/cjs/sandbox.js.map +1 -1
- package/dist/esm/__test__/client-with-cursor-encryption.test.js +298 -183
- package/dist/esm/__test__/client-with-cursor-encryption.test.js.map +1 -1
- package/dist/esm/__test__/client.test.js +101 -0
- package/dist/esm/__test__/client.test.js.map +1 -1
- package/dist/esm/client.d.ts +6 -1
- package/dist/esm/client.js +7 -2
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/dynamodb-model.d.ts +33 -8
- package/dist/esm/gsi.d.ts +4 -0
- package/dist/esm/gsi.js +21 -0
- package/dist/esm/gsi.js.map +1 -0
- package/dist/esm/operations.d.ts +4 -8
- package/dist/esm/operations.js.map +1 -1
- package/dist/esm/pagination.d.ts +48 -59
- package/dist/esm/pagination.js +19 -26
- package/dist/esm/pagination.js.map +1 -1
- package/dist/esm/provider.d.ts +135 -17
- package/dist/esm/provider.js +5 -12
- package/dist/esm/provider.js.map +1 -1
- package/dist/esm/sandbox.js +10 -43
- package/dist/esm/sandbox.js.map +1 -1
- package/package.json +1 -1
- package/src/__test__/client-with-cursor-encryption.test.ts +365 -183
- package/src/__test__/client.test.ts +168 -0
- package/src/client.ts +20 -19
- package/src/dynamodb-model.ts +31 -9
- package/src/gsi.ts +25 -0
- package/src/operations.ts +4 -10
- package/src/pagination.ts +37 -46
- package/src/provider.ts +9 -9
- package/src/sandbox.ts +10 -43
- package/tsconfig.esm.json +14 -4
- package/tsconfig.json +14 -4
package/dist/esm/pagination.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import { GSIPK, GSISK } from "./gsi";
|
|
2
3
|
export interface PageInfo {
|
|
3
4
|
hasPreviousPage: boolean;
|
|
4
5
|
hasNextPage: boolean;
|
|
@@ -23,76 +24,64 @@ export interface PaginationInput {
|
|
|
23
24
|
before?: string | null;
|
|
24
25
|
after?: string | null;
|
|
25
26
|
}
|
|
26
|
-
export
|
|
27
|
+
export interface PaginationOptions {
|
|
28
|
+
/**
|
|
29
|
+
* Maximum number of items to return.
|
|
30
|
+
*/
|
|
31
|
+
limit?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Default number of items to return if no limit is provided.
|
|
34
|
+
*/
|
|
35
|
+
default?: number;
|
|
36
|
+
}
|
|
37
|
+
export declare function decodePagination(pagination: PaginationInput, paginationOptions?: PaginationOptions): {
|
|
27
38
|
cursor?: string;
|
|
28
39
|
limit: number;
|
|
29
40
|
direction: PaginationDirection;
|
|
30
41
|
};
|
|
31
|
-
export declare const encodeDDBCursor: ({ PK, SK,
|
|
42
|
+
export declare const encodeDDBCursor: ({ PK, SK, ...values }: {
|
|
32
43
|
PK: string;
|
|
33
44
|
SK: string;
|
|
45
|
+
} & {
|
|
34
46
|
GSI2PK?: string | undefined;
|
|
35
|
-
GSI2SK?: string | undefined;
|
|
36
47
|
GSI3PK?: string | undefined;
|
|
37
|
-
GSI3SK?: string | undefined;
|
|
38
48
|
GSI4PK?: string | undefined;
|
|
39
|
-
GSI4SK?: string | undefined;
|
|
40
49
|
GSI5PK?: string | undefined;
|
|
50
|
+
GSI6PK?: string | undefined;
|
|
51
|
+
GSI7PK?: string | undefined;
|
|
52
|
+
GSI8PK?: string | undefined;
|
|
53
|
+
GSI9PK?: string | undefined;
|
|
54
|
+
GSI10PK?: string | undefined;
|
|
55
|
+
GSI11PK?: string | undefined;
|
|
56
|
+
GSI12PK?: string | undefined;
|
|
57
|
+
GSI13PK?: string | undefined;
|
|
58
|
+
GSI14PK?: string | undefined;
|
|
59
|
+
GSI15PK?: string | undefined;
|
|
60
|
+
GSI16PK?: string | undefined;
|
|
61
|
+
GSI17PK?: string | undefined;
|
|
62
|
+
GSI18PK?: string | undefined;
|
|
63
|
+
GSI19PK?: string | undefined;
|
|
64
|
+
} & {
|
|
65
|
+
GSI2SK?: string | undefined;
|
|
66
|
+
GSI3SK?: string | undefined;
|
|
67
|
+
GSI4SK?: string | undefined;
|
|
41
68
|
GSI5SK?: string | undefined;
|
|
69
|
+
GSI6SK?: string | undefined;
|
|
70
|
+
GSI7SK?: string | undefined;
|
|
71
|
+
GSI8SK?: string | undefined;
|
|
72
|
+
GSI9SK?: string | undefined;
|
|
73
|
+
GSI10SK?: string | undefined;
|
|
74
|
+
GSI11SK?: string | undefined;
|
|
75
|
+
GSI12SK?: string | undefined;
|
|
76
|
+
GSI13SK?: string | undefined;
|
|
77
|
+
GSI14SK?: string | undefined;
|
|
78
|
+
GSI15SK?: string | undefined;
|
|
79
|
+
GSI16SK?: string | undefined;
|
|
80
|
+
GSI17SK?: string | undefined;
|
|
81
|
+
GSI18SK?: string | undefined;
|
|
82
|
+
GSI19SK?: string | undefined;
|
|
42
83
|
}, encryptionKey?: Buffer | undefined) => string;
|
|
43
|
-
export declare const decodeDDBCursor: (encoded: string, index?: "GSI2" | "GSI3" | "GSI4" | "GSI5" | undefined, encryptionKey?: Buffer | undefined) => {
|
|
44
|
-
PK: string;
|
|
45
|
-
SK: string;
|
|
46
|
-
GSI2PK?: undefined;
|
|
47
|
-
GSI2SK?: undefined;
|
|
48
|
-
GSI3PK?: undefined;
|
|
49
|
-
GSI3SK?: undefined;
|
|
50
|
-
GSI4PK?: undefined;
|
|
51
|
-
GSI4SK?: undefined;
|
|
52
|
-
GSI5PK?: undefined;
|
|
53
|
-
GSI5SK?: undefined;
|
|
54
|
-
} | {
|
|
55
|
-
PK: string;
|
|
56
|
-
SK: string;
|
|
57
|
-
GSI2PK: any;
|
|
58
|
-
GSI2SK: any;
|
|
59
|
-
GSI3PK?: undefined;
|
|
60
|
-
GSI3SK?: undefined;
|
|
61
|
-
GSI4PK?: undefined;
|
|
62
|
-
GSI4SK?: undefined;
|
|
63
|
-
GSI5PK?: undefined;
|
|
64
|
-
GSI5SK?: undefined;
|
|
65
|
-
} | {
|
|
66
|
-
PK: string;
|
|
67
|
-
SK: string;
|
|
68
|
-
GSI3PK: any;
|
|
69
|
-
GSI3SK: any;
|
|
70
|
-
GSI2PK?: undefined;
|
|
71
|
-
GSI2SK?: undefined;
|
|
72
|
-
GSI4PK?: undefined;
|
|
73
|
-
GSI4SK?: undefined;
|
|
74
|
-
GSI5PK?: undefined;
|
|
75
|
-
GSI5SK?: undefined;
|
|
76
|
-
} | {
|
|
77
|
-
PK: string;
|
|
78
|
-
SK: string;
|
|
79
|
-
GSI4PK: any;
|
|
80
|
-
GSI4SK: any;
|
|
81
|
-
GSI2PK?: undefined;
|
|
82
|
-
GSI2SK?: undefined;
|
|
83
|
-
GSI3PK?: undefined;
|
|
84
|
-
GSI3SK?: undefined;
|
|
85
|
-
GSI5PK?: undefined;
|
|
86
|
-
GSI5SK?: undefined;
|
|
87
|
-
} | {
|
|
84
|
+
export declare const decodeDDBCursor: (encoded: string, index?: "GSI2" | "GSI3" | "GSI4" | "GSI5" | "GSI6" | "GSI7" | "GSI8" | "GSI9" | "GSI10" | "GSI11" | "GSI12" | "GSI13" | "GSI14" | "GSI15" | "GSI16" | "GSI17" | "GSI18" | "GSI19" | undefined, encryptionKey?: Buffer | undefined) => {
|
|
88
85
|
PK: string;
|
|
89
86
|
SK: string;
|
|
90
|
-
|
|
91
|
-
GSI5SK: any;
|
|
92
|
-
GSI2PK?: undefined;
|
|
93
|
-
GSI2SK?: undefined;
|
|
94
|
-
GSI3PK?: undefined;
|
|
95
|
-
GSI3SK?: undefined;
|
|
96
|
-
GSI4PK?: undefined;
|
|
97
|
-
GSI4SK?: undefined;
|
|
98
|
-
} | undefined;
|
|
87
|
+
};
|
package/dist/esm/pagination.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { __rest } from "tslib";
|
|
1
2
|
import crypto from "crypto";
|
|
2
3
|
import { PaginationError } from "./errors";
|
|
4
|
+
import { GSI_NAMES } from "./gsi";
|
|
3
5
|
const SIV = "Q05yyCR+0tyWl6glrZhlNw==";
|
|
4
6
|
const ENCRYPTION_ALG = "aes-256-ctr";
|
|
5
7
|
export var PaginationDirection;
|
|
@@ -7,13 +9,12 @@ export var PaginationDirection;
|
|
|
7
9
|
PaginationDirection[PaginationDirection["FORWARD"] = 0] = "FORWARD";
|
|
8
10
|
PaginationDirection[PaginationDirection["BACKWARD"] = 1] = "BACKWARD";
|
|
9
11
|
})(PaginationDirection || (PaginationDirection = {}));
|
|
10
|
-
// TODO: make configurable
|
|
11
12
|
const DEFAULT_OPTIONS = {
|
|
12
13
|
limit: 50,
|
|
13
14
|
default: 20,
|
|
14
15
|
};
|
|
15
|
-
export function decodePagination(pagination) {
|
|
16
|
-
var _a, _b;
|
|
16
|
+
export function decodePagination(pagination, paginationOptions = DEFAULT_OPTIONS) {
|
|
17
|
+
var _a, _b, _c, _d;
|
|
17
18
|
const { after, before, first, last } = pagination;
|
|
18
19
|
if (before && after)
|
|
19
20
|
throw new PaginationError(`Only one of "before" and "after" can be specified`);
|
|
@@ -29,7 +30,7 @@ export function decodePagination(pagination) {
|
|
|
29
30
|
throw new PaginationError(`"last" must be positive`);
|
|
30
31
|
return {
|
|
31
32
|
cursor: (_a = before !== null && before !== void 0 ? before : after) !== null && _a !== void 0 ? _a : undefined,
|
|
32
|
-
limit: Math.min((_b = first !== null && first !== void 0 ? first : last) !== null && _b !== void 0 ? _b : DEFAULT_OPTIONS.default, DEFAULT_OPTIONS.limit),
|
|
33
|
+
limit: Math.min((_c = (_b = first !== null && first !== void 0 ? first : last) !== null && _b !== void 0 ? _b : paginationOptions.default) !== null && _c !== void 0 ? _c : DEFAULT_OPTIONS.default, (_d = paginationOptions.limit) !== null && _d !== void 0 ? _d : DEFAULT_OPTIONS.limit),
|
|
33
34
|
direction: before || last
|
|
34
35
|
? PaginationDirection.BACKWARD
|
|
35
36
|
: PaginationDirection.FORWARD,
|
|
@@ -63,19 +64,13 @@ const decryptCursor = (key, encryptedCursor) => {
|
|
|
63
64
|
return null;
|
|
64
65
|
}
|
|
65
66
|
};
|
|
66
|
-
export const encodeDDBCursor = (
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
SK,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
GSI3SK,
|
|
74
|
-
GSI4PK,
|
|
75
|
-
GSI4SK,
|
|
76
|
-
GSI5PK,
|
|
77
|
-
GSI5SK,
|
|
78
|
-
})).toString("base64");
|
|
67
|
+
export const encodeDDBCursor = (_a, encryptionKey) => {
|
|
68
|
+
var { PK, SK } = _a, values = __rest(_a, ["PK", "SK"]);
|
|
69
|
+
const cursor = Buffer.from(JSON.stringify(Object.assign({ PK,
|
|
70
|
+
SK }, GSI_NAMES.map((GSI) => ({
|
|
71
|
+
[`${GSI}PK`]: values[`${GSI}PK`],
|
|
72
|
+
[`${GSI}SK`]: values[`${GSI}SK`],
|
|
73
|
+
})).reduce((acc, cur) => Object.assign(acc, cur), {})))).toString("base64");
|
|
79
74
|
if (encryptionKey)
|
|
80
75
|
return encryptCursor(encryptionKey, cursor);
|
|
81
76
|
return cursor;
|
|
@@ -86,19 +81,17 @@ export const decodeDDBCursor = (encoded, index, encryptionKey) => {
|
|
|
86
81
|
// const json = encoded
|
|
87
82
|
if (!json)
|
|
88
83
|
throw new Error("Couldn't decrypt cursor");
|
|
89
|
-
const
|
|
84
|
+
const _a = JSON.parse(Buffer.from(json, "base64").toString()), { PK, SK } = _a, values = __rest(_a, ["PK", "SK"]);
|
|
90
85
|
if (typeof PK !== "string" || typeof SK !== "string")
|
|
91
86
|
throw new Error();
|
|
92
87
|
if (!index)
|
|
93
88
|
return { PK, SK };
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (index === "GSI5")
|
|
101
|
-
return { PK, SK, GSI5PK, GSI5SK };
|
|
89
|
+
return {
|
|
90
|
+
PK,
|
|
91
|
+
SK,
|
|
92
|
+
[`${index}PK`]: values[`${index}PK`],
|
|
93
|
+
[`${index}SK`]: values[`${index}SK`],
|
|
94
|
+
};
|
|
102
95
|
}
|
|
103
96
|
catch (error) {
|
|
104
97
|
throw new PaginationError("Couldn't decode cursor");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/pagination.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/provider.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { DynamoDBModelInstance, DynamoDBModelConstructor, DynamoDBUnion, Decodab
|
|
|
3
3
|
import { UpdateRawOperation, GetOperation, PutOperation, DeleteOperation, ConditionCheckOperation, BulkOperation } from "./operations";
|
|
4
4
|
import { OutputOf, TypeOf, ModelOf } from "@model-ts/core";
|
|
5
5
|
import { PaginationInput } from "./pagination";
|
|
6
|
+
import { GSIPK, GSISK } from "./gsi";
|
|
6
7
|
export interface DynamoDBInternals<M extends Decodable> {
|
|
7
8
|
__dynamoDBDecode(value: unknown): M extends DynamoDBModelConstructor<any> ? InstanceType<M> : M extends DynamoDBUnion ? InstanceType<M["_models"][number]> : never;
|
|
8
9
|
__dynamoDBEncode(item: DynamoDBModelInstance): M extends DynamoDBModelConstructor<any> ? OutputOf<M> : never;
|
|
@@ -25,13 +26,42 @@ export declare const getProvider: (client: Client) => {
|
|
|
25
26
|
}];
|
|
26
27
|
<M_2 extends DynamoDBModelConstructor<any>>(this: M_2, operation: "updateRaw", key: Key, attributes: Partial<InstanceType<M_2>> & {
|
|
27
28
|
GSI2PK?: string | null | undefined;
|
|
28
|
-
GSI2SK?: string | null | undefined;
|
|
29
29
|
GSI3PK?: string | null | undefined;
|
|
30
|
-
GSI3SK?: string | null | undefined;
|
|
31
30
|
GSI4PK?: string | null | undefined;
|
|
32
|
-
GSI4SK?: string | null | undefined;
|
|
33
31
|
GSI5PK?: string | null | undefined;
|
|
32
|
+
GSI6PK?: string | null | undefined;
|
|
33
|
+
GSI7PK?: string | null | undefined;
|
|
34
|
+
GSI8PK?: string | null | undefined;
|
|
35
|
+
GSI9PK?: string | null | undefined;
|
|
36
|
+
GSI10PK?: string | null | undefined;
|
|
37
|
+
GSI11PK?: string | null | undefined;
|
|
38
|
+
GSI12PK?: string | null | undefined;
|
|
39
|
+
GSI13PK?: string | null | undefined;
|
|
40
|
+
GSI14PK?: string | null | undefined;
|
|
41
|
+
GSI15PK?: string | null | undefined;
|
|
42
|
+
GSI16PK?: string | null | undefined;
|
|
43
|
+
GSI17PK?: string | null | undefined;
|
|
44
|
+
GSI18PK?: string | null | undefined;
|
|
45
|
+
GSI19PK?: string | null | undefined;
|
|
46
|
+
} & {
|
|
47
|
+
GSI2SK?: string | null | undefined;
|
|
48
|
+
GSI3SK?: string | null | undefined;
|
|
49
|
+
GSI4SK?: string | null | undefined;
|
|
34
50
|
GSI5SK?: string | null | undefined;
|
|
51
|
+
GSI6SK?: string | null | undefined;
|
|
52
|
+
GSI7SK?: string | null | undefined;
|
|
53
|
+
GSI8SK?: string | null | undefined;
|
|
54
|
+
GSI9SK?: string | null | undefined;
|
|
55
|
+
GSI10SK?: string | null | undefined;
|
|
56
|
+
GSI11SK?: string | null | undefined;
|
|
57
|
+
GSI12SK?: string | null | undefined;
|
|
58
|
+
GSI13SK?: string | null | undefined;
|
|
59
|
+
GSI14SK?: string | null | undefined;
|
|
60
|
+
GSI15SK?: string | null | undefined;
|
|
61
|
+
GSI16SK?: string | null | undefined;
|
|
62
|
+
GSI17SK?: string | null | undefined;
|
|
63
|
+
GSI18SK?: string | null | undefined;
|
|
64
|
+
GSI19SK?: string | null | undefined;
|
|
35
65
|
}, params?: Omit<UpdateRawOperation<M_2>, "_model" | "_operation" | "key" | "attributes"> | undefined): UpdateRawOperation<M_2>;
|
|
36
66
|
<M_3 extends DynamoDBModelConstructor<any>>(this: M_3, operation: "delete", key: Key): DeleteOperation<M_3>;
|
|
37
67
|
<M_4 extends DynamoDBModelConstructor<any>>(this: M_4, operation: "softDelete", item: InstanceType<M_4>): [{
|
|
@@ -59,13 +89,42 @@ export declare const getProvider: (client: Client) => {
|
|
|
59
89
|
put<M_11 extends DynamoDBModelConstructor<any>>(this: M_11, item: InstanceType<M_11>, params?: Omit<PutOperation<InstanceType<M_11>, M_11>, "_model" | "_operation" | "item"> | undefined): Promise<InstanceType<M_11>>;
|
|
60
90
|
updateRaw<M_12 extends DynamoDBModelConstructor<any>>(this: M_12, key: Key, attributes: Partial<InstanceType<M_12>> & {
|
|
61
91
|
GSI2PK?: string | null | undefined;
|
|
62
|
-
GSI2SK?: string | null | undefined;
|
|
63
92
|
GSI3PK?: string | null | undefined;
|
|
64
|
-
GSI3SK?: string | null | undefined;
|
|
65
93
|
GSI4PK?: string | null | undefined;
|
|
66
|
-
GSI4SK?: string | null | undefined;
|
|
67
94
|
GSI5PK?: string | null | undefined;
|
|
95
|
+
GSI6PK?: string | null | undefined;
|
|
96
|
+
GSI7PK?: string | null | undefined;
|
|
97
|
+
GSI8PK?: string | null | undefined;
|
|
98
|
+
GSI9PK?: string | null | undefined;
|
|
99
|
+
GSI10PK?: string | null | undefined;
|
|
100
|
+
GSI11PK?: string | null | undefined;
|
|
101
|
+
GSI12PK?: string | null | undefined;
|
|
102
|
+
GSI13PK?: string | null | undefined;
|
|
103
|
+
GSI14PK?: string | null | undefined;
|
|
104
|
+
GSI15PK?: string | null | undefined;
|
|
105
|
+
GSI16PK?: string | null | undefined;
|
|
106
|
+
GSI17PK?: string | null | undefined;
|
|
107
|
+
GSI18PK?: string | null | undefined;
|
|
108
|
+
GSI19PK?: string | null | undefined;
|
|
109
|
+
} & {
|
|
110
|
+
GSI2SK?: string | null | undefined;
|
|
111
|
+
GSI3SK?: string | null | undefined;
|
|
112
|
+
GSI4SK?: string | null | undefined;
|
|
68
113
|
GSI5SK?: string | null | undefined;
|
|
114
|
+
GSI6SK?: string | null | undefined;
|
|
115
|
+
GSI7SK?: string | null | undefined;
|
|
116
|
+
GSI8SK?: string | null | undefined;
|
|
117
|
+
GSI9SK?: string | null | undefined;
|
|
118
|
+
GSI10SK?: string | null | undefined;
|
|
119
|
+
GSI11SK?: string | null | undefined;
|
|
120
|
+
GSI12SK?: string | null | undefined;
|
|
121
|
+
GSI13SK?: string | null | undefined;
|
|
122
|
+
GSI14SK?: string | null | undefined;
|
|
123
|
+
GSI15SK?: string | null | undefined;
|
|
124
|
+
GSI16SK?: string | null | undefined;
|
|
125
|
+
GSI17SK?: string | null | undefined;
|
|
126
|
+
GSI18SK?: string | null | undefined;
|
|
127
|
+
GSI19SK?: string | null | undefined;
|
|
69
128
|
}, params?: Omit<UpdateRawOperation<M_12>, "_model" | "_operation" | "key" | "attributes"> | undefined): Promise<InstanceType<M_12>>;
|
|
70
129
|
delete<M_13 extends DynamoDBModelConstructor<any>>(this: M_13, key: Key): Promise<null>;
|
|
71
130
|
softDelete<M_14 extends DynamoDBModelConstructor<any>>(this: M_14, item: InstanceType<M_14>): Promise<InstanceType<M_14>>;
|
|
@@ -75,14 +134,44 @@ export declare const getProvider: (client: Client) => {
|
|
|
75
134
|
keys<T_2 extends DynamoDBModelInstance>(this: T_2): {
|
|
76
135
|
PK: string;
|
|
77
136
|
SK: string;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
GSI3PK
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
137
|
+
} & {
|
|
138
|
+
GSI2PK?: string | undefined;
|
|
139
|
+
GSI3PK?: string | undefined;
|
|
140
|
+
GSI4PK?: string | undefined;
|
|
141
|
+
GSI5PK?: string | undefined;
|
|
142
|
+
GSI6PK?: string | undefined;
|
|
143
|
+
GSI7PK?: string | undefined;
|
|
144
|
+
GSI8PK?: string | undefined;
|
|
145
|
+
GSI9PK?: string | undefined;
|
|
146
|
+
GSI10PK?: string | undefined;
|
|
147
|
+
GSI11PK?: string | undefined;
|
|
148
|
+
GSI12PK?: string | undefined;
|
|
149
|
+
GSI13PK?: string | undefined;
|
|
150
|
+
GSI14PK?: string | undefined;
|
|
151
|
+
GSI15PK?: string | undefined;
|
|
152
|
+
GSI16PK?: string | undefined;
|
|
153
|
+
GSI17PK?: string | undefined;
|
|
154
|
+
GSI18PK?: string | undefined;
|
|
155
|
+
GSI19PK?: string | undefined;
|
|
156
|
+
} & {
|
|
157
|
+
GSI2SK?: string | undefined;
|
|
158
|
+
GSI3SK?: string | undefined;
|
|
159
|
+
GSI4SK?: string | undefined;
|
|
160
|
+
GSI5SK?: string | undefined;
|
|
161
|
+
GSI6SK?: string | undefined;
|
|
162
|
+
GSI7SK?: string | undefined;
|
|
163
|
+
GSI8SK?: string | undefined;
|
|
164
|
+
GSI9SK?: string | undefined;
|
|
165
|
+
GSI10SK?: string | undefined;
|
|
166
|
+
GSI11SK?: string | undefined;
|
|
167
|
+
GSI12SK?: string | undefined;
|
|
168
|
+
GSI13SK?: string | undefined;
|
|
169
|
+
GSI14SK?: string | undefined;
|
|
170
|
+
GSI15SK?: string | undefined;
|
|
171
|
+
GSI16SK?: string | undefined;
|
|
172
|
+
GSI17SK?: string | undefined;
|
|
173
|
+
GSI18SK?: string | undefined;
|
|
174
|
+
GSI19SK?: string | undefined;
|
|
86
175
|
};
|
|
87
176
|
cursor<T_3 extends DynamoDBModelInstance>(this: T_3): string;
|
|
88
177
|
put<T_4 extends DynamoDBModelInstance>(this: T_4, params?: Omit<PutOperation<T_4, ModelOf<T_4>>, "_model" | "_operation" | "item"> | undefined): Promise<T_4>;
|
|
@@ -104,13 +193,42 @@ export declare const getProvider: (client: Client) => {
|
|
|
104
193
|
}];
|
|
105
194
|
<T_11 extends DynamoDBModelInstance>(this: T_11, operation: "updateRaw", attributes: Partial<InstanceType<ModelOf<T_11>>> & {
|
|
106
195
|
GSI2PK?: string | null | undefined;
|
|
107
|
-
GSI2SK?: string | null | undefined;
|
|
108
196
|
GSI3PK?: string | null | undefined;
|
|
109
|
-
GSI3SK?: string | null | undefined;
|
|
110
197
|
GSI4PK?: string | null | undefined;
|
|
111
|
-
GSI4SK?: string | null | undefined;
|
|
112
198
|
GSI5PK?: string | null | undefined;
|
|
199
|
+
GSI6PK?: string | null | undefined;
|
|
200
|
+
GSI7PK?: string | null | undefined;
|
|
201
|
+
GSI8PK?: string | null | undefined;
|
|
202
|
+
GSI9PK?: string | null | undefined;
|
|
203
|
+
GSI10PK?: string | null | undefined;
|
|
204
|
+
GSI11PK?: string | null | undefined;
|
|
205
|
+
GSI12PK?: string | null | undefined;
|
|
206
|
+
GSI13PK?: string | null | undefined;
|
|
207
|
+
GSI14PK?: string | null | undefined;
|
|
208
|
+
GSI15PK?: string | null | undefined;
|
|
209
|
+
GSI16PK?: string | null | undefined;
|
|
210
|
+
GSI17PK?: string | null | undefined;
|
|
211
|
+
GSI18PK?: string | null | undefined;
|
|
212
|
+
GSI19PK?: string | null | undefined;
|
|
213
|
+
} & {
|
|
214
|
+
GSI2SK?: string | null | undefined;
|
|
215
|
+
GSI3SK?: string | null | undefined;
|
|
216
|
+
GSI4SK?: string | null | undefined;
|
|
113
217
|
GSI5SK?: string | null | undefined;
|
|
218
|
+
GSI6SK?: string | null | undefined;
|
|
219
|
+
GSI7SK?: string | null | undefined;
|
|
220
|
+
GSI8SK?: string | null | undefined;
|
|
221
|
+
GSI9SK?: string | null | undefined;
|
|
222
|
+
GSI10SK?: string | null | undefined;
|
|
223
|
+
GSI11SK?: string | null | undefined;
|
|
224
|
+
GSI12SK?: string | null | undefined;
|
|
225
|
+
GSI13SK?: string | null | undefined;
|
|
226
|
+
GSI14SK?: string | null | undefined;
|
|
227
|
+
GSI15SK?: string | null | undefined;
|
|
228
|
+
GSI16SK?: string | null | undefined;
|
|
229
|
+
GSI17SK?: string | null | undefined;
|
|
230
|
+
GSI18SK?: string | null | undefined;
|
|
231
|
+
GSI19SK?: string | null | undefined;
|
|
114
232
|
}, params?: Omit<UpdateRawOperation<ModelOf<T_11>>, "_model" | "_operation" | "key" | "attributes"> | undefined): UpdateRawOperation<ModelOf<T_11>>;
|
|
115
233
|
<T_12 extends DynamoDBModelInstance>(this: T_12, operation: "delete"): DeleteOperation<ModelOf<T_12>>;
|
|
116
234
|
<T_13 extends DynamoDBModelInstance>(this: T_13, operation: "softDelete"): [{
|
package/dist/esm/provider.js
CHANGED
|
@@ -2,6 +2,7 @@ import { __awaiter } from "tslib";
|
|
|
2
2
|
import { RaceConditionError } from "./errors";
|
|
3
3
|
import { absurd } from "fp-ts/lib/function";
|
|
4
4
|
import { encodeDDBCursor } from "./pagination";
|
|
5
|
+
import { GSI_NAMES } from "./gsi";
|
|
5
6
|
export const getProvider = (client) => {
|
|
6
7
|
// operation func overloads with access to client
|
|
7
8
|
function operation(operation, ...args) {
|
|
@@ -202,18 +203,10 @@ export const getProvider = (client) => {
|
|
|
202
203
|
instanceProps: {
|
|
203
204
|
dynamodb: client,
|
|
204
205
|
keys() {
|
|
205
|
-
return {
|
|
206
|
-
PK: this
|
|
207
|
-
SK: this
|
|
208
|
-
|
|
209
|
-
GSI2SK: this.GSI2SK,
|
|
210
|
-
GSI3PK: this.GSI3PK,
|
|
211
|
-
GSI3SK: this.GSI3SK,
|
|
212
|
-
GSI4PK: this.GSI4PK,
|
|
213
|
-
GSI4SK: this.GSI4SK,
|
|
214
|
-
GSI5PK: this.GSI5PK,
|
|
215
|
-
GSI5SK: this.GSI5SK,
|
|
216
|
-
};
|
|
206
|
+
return Object.assign({ PK: this.PK, SK: this.SK }, GSI_NAMES.map((GSI) => ({
|
|
207
|
+
[`${GSI}PK`]: this[`${GSI}PK`],
|
|
208
|
+
[`${GSI}SK`]: this[`${GSI}SK`],
|
|
209
|
+
})).reduce((acc, cur) => Object.assign(acc, cur), {}));
|
|
217
210
|
},
|
|
218
211
|
cursor() {
|
|
219
212
|
return encodeDDBCursor(this.keys(), client.cursorEncryptionKey);
|
package/dist/esm/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAmB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/sandbox.js
CHANGED
|
@@ -3,6 +3,7 @@ import crypto from "crypto";
|
|
|
3
3
|
import { chunksOf } from "fp-ts/lib/Array";
|
|
4
4
|
import DynamoDB from "aws-sdk/clients/dynamodb";
|
|
5
5
|
import diff from "snapshot-diff";
|
|
6
|
+
import { GSI_NAMES } from "./gsi";
|
|
6
7
|
const ddb = new DynamoDB({
|
|
7
8
|
accessKeyId: "xxx",
|
|
8
9
|
secretAccessKey: "xxx",
|
|
@@ -23,14 +24,10 @@ export const createTable = () => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
23
24
|
AttributeDefinitions: [
|
|
24
25
|
{ AttributeName: "PK", AttributeType: "S" },
|
|
25
26
|
{ AttributeName: "SK", AttributeType: "S" },
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
{ AttributeName: "GSI4PK", AttributeType: "S" },
|
|
31
|
-
{ AttributeName: "GSI4SK", AttributeType: "S" },
|
|
32
|
-
{ AttributeName: "GSI5PK", AttributeType: "S" },
|
|
33
|
-
{ AttributeName: "GSI5SK", AttributeType: "S" },
|
|
27
|
+
...GSI_NAMES.flatMap((GSI) => [
|
|
28
|
+
{ AttributeName: `${GSI}PK`, AttributeType: "S" },
|
|
29
|
+
{ AttributeName: `${GSI}SK`, AttributeType: "S" },
|
|
30
|
+
]),
|
|
34
31
|
],
|
|
35
32
|
KeySchema: [
|
|
36
33
|
{ AttributeName: "PK", KeyType: "HASH" },
|
|
@@ -47,46 +44,16 @@ export const createTable = () => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
47
44
|
ProjectionType: "ALL",
|
|
48
45
|
},
|
|
49
46
|
},
|
|
50
|
-
{
|
|
51
|
-
IndexName:
|
|
52
|
-
KeySchema: [
|
|
53
|
-
{ AttributeName: "GSI2PK", KeyType: "HASH" },
|
|
54
|
-
{ AttributeName: "GSI2SK", KeyType: "RANGE" },
|
|
55
|
-
],
|
|
56
|
-
Projection: {
|
|
57
|
-
ProjectionType: "ALL",
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
IndexName: "GSI3",
|
|
47
|
+
...GSI_NAMES.map((GSI) => ({
|
|
48
|
+
IndexName: GSI,
|
|
62
49
|
KeySchema: [
|
|
63
|
-
{ AttributeName:
|
|
64
|
-
{ AttributeName:
|
|
50
|
+
{ AttributeName: `${GSI}PK`, KeyType: "HASH" },
|
|
51
|
+
{ AttributeName: `${GSI}SK`, KeyType: "RANGE" },
|
|
65
52
|
],
|
|
66
53
|
Projection: {
|
|
67
54
|
ProjectionType: "ALL",
|
|
68
55
|
},
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
IndexName: "GSI4",
|
|
72
|
-
KeySchema: [
|
|
73
|
-
{ AttributeName: "GSI4PK", KeyType: "HASH" },
|
|
74
|
-
{ AttributeName: "GSI4SK", KeyType: "RANGE" },
|
|
75
|
-
],
|
|
76
|
-
Projection: {
|
|
77
|
-
ProjectionType: "ALL",
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
IndexName: "GSI5",
|
|
82
|
-
KeySchema: [
|
|
83
|
-
{ AttributeName: "GSI5PK", KeyType: "HASH" },
|
|
84
|
-
{ AttributeName: "GSI5SK", KeyType: "RANGE" },
|
|
85
|
-
],
|
|
86
|
-
Projection: {
|
|
87
|
-
ProjectionType: "ALL",
|
|
88
|
-
},
|
|
89
|
-
},
|
|
56
|
+
})),
|
|
90
57
|
],
|
|
91
58
|
BillingMode: "PAY_PER_REQUEST",
|
|
92
59
|
})
|
package/dist/esm/sandbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,QAAQ,MAAM,0BAA0B,CAAA;AAC/C,OAAO,IAAI,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox.ts"],"names":[],"mappings":"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"}
|