electrodb 2.10.0 → 2.10.2
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/.prettierignore +112 -0
- package/.prettierrc +11 -0
- package/README.md +55 -47
- package/index.d.ts +5288 -2409
- package/index.js +24 -12
- package/package.json +19 -11
- package/src/clauses.js +1557 -1310
- package/src/client.js +255 -235
- package/src/entity.js +4512 -3737
- package/src/errors.js +39 -28
- package/src/events.js +26 -16
- package/src/filterOperations.js +120 -122
- package/src/filters.js +99 -101
- package/src/operations.js +326 -263
- package/src/schema.js +1825 -1473
- package/src/service.js +1081 -852
- package/src/set.js +22 -26
- package/src/transaction.js +179 -153
- package/src/types.js +260 -264
- package/src/update.js +94 -90
- package/src/updateOperations.js +179 -160
- package/src/util.js +45 -32
- package/src/validations.js +337 -325
- package/src/where.js +146 -124
- package/tsconfig.json +12 -11
package/src/types.js
CHANGED
|
@@ -1,370 +1,366 @@
|
|
|
1
1
|
const KeyTypes = {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
pk: "pk",
|
|
3
|
+
sk: "sk",
|
|
4
4
|
};
|
|
5
5
|
|
|
6
6
|
const BatchWriteTypes = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
7
|
+
batch: "batch",
|
|
8
|
+
concurrent: "concurrent",
|
|
9
|
+
};
|
|
10
10
|
|
|
11
11
|
const QueryTypes = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
and: "and",
|
|
13
|
+
gte: "gte",
|
|
14
|
+
gt: "gt",
|
|
15
|
+
lte: "lte",
|
|
16
|
+
lt: "lt",
|
|
17
|
+
eq: "eq",
|
|
18
|
+
begins: "begins",
|
|
19
|
+
between: "between",
|
|
20
|
+
collection: "collection",
|
|
21
|
+
clustered_collection: "clustered_collection",
|
|
22
|
+
is: "is",
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
const MethodTypes = {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
26
|
+
check: "check",
|
|
27
|
+
put: "put",
|
|
28
|
+
get: "get",
|
|
29
|
+
query: "query",
|
|
30
|
+
scan: "scan",
|
|
31
|
+
update: "update",
|
|
32
|
+
delete: "delete",
|
|
33
|
+
remove: "remove",
|
|
34
|
+
patch: "patch",
|
|
35
|
+
create: "create",
|
|
36
|
+
batchGet: "batchGet",
|
|
37
|
+
batchWrite: "batchWrite",
|
|
38
|
+
upsert: "upsert",
|
|
39
|
+
transactWrite: "transactWrite",
|
|
40
|
+
transactGet: "transactGet",
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
const TransactionMethods = {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
44
|
+
transactWrite: MethodTypes.transactWrite,
|
|
45
|
+
transactGet: MethodTypes.transactGet,
|
|
46
|
+
};
|
|
47
47
|
|
|
48
48
|
const TransactionOperations = {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
49
|
+
[MethodTypes.get]: "Get",
|
|
50
|
+
[MethodTypes.check]: "ConditionCheck",
|
|
51
|
+
[MethodTypes.put]: "Put",
|
|
52
|
+
[MethodTypes.create]: "Put",
|
|
53
|
+
[MethodTypes.upsert]: "Update",
|
|
54
|
+
[MethodTypes.update]: "Update",
|
|
55
|
+
[MethodTypes.patch]: "Update",
|
|
56
|
+
[MethodTypes.remove]: "Delete",
|
|
57
|
+
[MethodTypes.delete]: "Delete",
|
|
58
|
+
};
|
|
59
59
|
|
|
60
60
|
const MethodTypeTranslation = {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
61
|
+
put: "put",
|
|
62
|
+
get: "get",
|
|
63
|
+
query: "query",
|
|
64
|
+
scan: "scan",
|
|
65
|
+
update: "update",
|
|
66
|
+
delete: "delete",
|
|
67
|
+
remove: "delete",
|
|
68
|
+
patch: "update",
|
|
69
|
+
create: "put",
|
|
70
|
+
batchGet: "batchGet",
|
|
71
|
+
batchWrite: "batchWrite",
|
|
72
|
+
upsert: "update",
|
|
73
|
+
transactWrite: "transactWrite",
|
|
74
|
+
transactGet: "transactGet",
|
|
75
|
+
};
|
|
76
76
|
|
|
77
77
|
const IndexTypes = {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
78
|
+
isolated: "isolated",
|
|
79
|
+
clustered: "clustered",
|
|
80
|
+
};
|
|
81
81
|
|
|
82
82
|
const Comparisons = {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
83
|
+
lte: "<=",
|
|
84
|
+
lt: "<",
|
|
85
|
+
gte: ">=",
|
|
86
|
+
gt: ">",
|
|
87
|
+
};
|
|
88
88
|
|
|
89
89
|
const PartialComparisons = {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
90
|
+
lt: "<",
|
|
91
|
+
gte: ">=",
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* gt becomes gte and last character of incoming value is shifted up one character code
|
|
95
|
+
* example:
|
|
96
|
+
* sk > '2020-09-05'
|
|
97
|
+
* expected
|
|
98
|
+
* - 2020-09-06@05:05_hero
|
|
99
|
+
* - 2020-10-05@05:05_hero
|
|
100
|
+
* - 2022-02-05@05:05_villian
|
|
101
|
+
* - 2022-06-05@05:05_clown
|
|
102
|
+
* - 2022-09-06@05:05_clown
|
|
103
|
+
* actual (bad - includes all 2020-09-05 records)
|
|
104
|
+
* - 2020-09-05@05:05_hero
|
|
105
|
+
* - 2020-09-06@05:05_hero
|
|
106
|
+
* - 2020-10-05@05:05_hero
|
|
107
|
+
* - 2022-02-05@05:05_villian
|
|
108
|
+
* - 2022-06-05@05:05_clown
|
|
109
|
+
*/
|
|
110
|
+
gt: ">=",
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* lte becomes lt and last character of incoming value is shifted up one character code
|
|
114
|
+
* example:
|
|
115
|
+
* sk >= '2020-09-05'
|
|
116
|
+
* expected
|
|
117
|
+
* - 2012-02-05@05:05_clown
|
|
118
|
+
* - 2015-10-05@05:05_hero
|
|
119
|
+
* - 2017-02-05@05:05_clown
|
|
120
|
+
* - 2017-02-05@05:05_villian
|
|
121
|
+
* - 2020-02-05@05:05_clown
|
|
122
|
+
* - 2020-02-25@05:05_clown
|
|
123
|
+
* - 2020-09-05@05:05_hero
|
|
124
|
+
* actual (bad - missing all 2020-09-05 records)
|
|
125
|
+
* - 2012-02-05@05:05_clown
|
|
126
|
+
* - 2015-10-05@05:05_hero
|
|
127
|
+
* - 2017-02-05@05:05_clown
|
|
128
|
+
* - 2017-02-05@05:05_villian
|
|
129
|
+
* - 2020-02-05@05:05_clown
|
|
130
|
+
* - 2020-02-25@05:05_clown
|
|
131
|
+
*/
|
|
132
|
+
lte: "<",
|
|
133
133
|
};
|
|
134
134
|
|
|
135
135
|
const CastTypes = ["string", "number"];
|
|
136
136
|
|
|
137
137
|
const AttributeTypes = {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
138
|
+
string: "string",
|
|
139
|
+
number: "number",
|
|
140
|
+
boolean: "boolean",
|
|
141
|
+
enum: "enum",
|
|
142
|
+
map: "map",
|
|
143
|
+
set: "set",
|
|
144
|
+
// enumSet: "enumSet",
|
|
145
|
+
list: "list",
|
|
146
|
+
any: "any",
|
|
147
|
+
custom: "custom",
|
|
148
|
+
static: "static",
|
|
149
149
|
};
|
|
150
150
|
|
|
151
151
|
const PathTypes = {
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
...AttributeTypes,
|
|
153
|
+
item: "item",
|
|
154
154
|
};
|
|
155
155
|
|
|
156
|
-
|
|
157
156
|
const ExpressionTypes = {
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
ConditionExpression: "ConditionExpression",
|
|
158
|
+
FilterExpression: "FilterExpression",
|
|
160
159
|
};
|
|
161
160
|
|
|
162
161
|
const ElectroInstance = {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
162
|
+
entity: Symbol("entity"),
|
|
163
|
+
service: Symbol("service"),
|
|
164
|
+
electro: Symbol("electro"),
|
|
166
165
|
};
|
|
167
166
|
|
|
168
167
|
const ElectroInstanceTypes = {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
168
|
+
electro: "electro",
|
|
169
|
+
service: "service",
|
|
170
|
+
entity: "entity",
|
|
171
|
+
model: "model",
|
|
173
172
|
};
|
|
174
173
|
|
|
175
174
|
const ModelVersions = {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
175
|
+
beta: "beta",
|
|
176
|
+
v1: "v1",
|
|
177
|
+
v2: "v2",
|
|
179
178
|
};
|
|
180
179
|
|
|
181
180
|
const EntityVersions = {
|
|
182
|
-
|
|
181
|
+
v1: "v1",
|
|
183
182
|
};
|
|
184
183
|
|
|
185
184
|
const ServiceVersions = {
|
|
186
|
-
|
|
185
|
+
v1: "v1",
|
|
187
186
|
};
|
|
188
187
|
|
|
189
188
|
const MaxBatchItems = {
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
[MethodTypes.batchGet]: 100,
|
|
190
|
+
[MethodTypes.batchWrite]: 25,
|
|
192
191
|
};
|
|
193
192
|
|
|
194
193
|
const AttributeMutationMethods = {
|
|
195
|
-
|
|
196
|
-
|
|
194
|
+
get: "get",
|
|
195
|
+
set: "set",
|
|
197
196
|
};
|
|
198
197
|
|
|
199
198
|
const Pager = {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}
|
|
199
|
+
raw: "raw",
|
|
200
|
+
named: "named",
|
|
201
|
+
item: "item",
|
|
202
|
+
cursor: "cursor",
|
|
203
|
+
};
|
|
205
204
|
|
|
206
205
|
const UnprocessedTypes = {
|
|
207
|
-
|
|
208
|
-
|
|
206
|
+
raw: "raw",
|
|
207
|
+
item: "item",
|
|
209
208
|
};
|
|
210
209
|
|
|
211
210
|
const AttributeWildCard = "*";
|
|
212
211
|
|
|
213
212
|
const ItemOperations = {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
213
|
+
set: "set",
|
|
214
|
+
delete: "delete",
|
|
215
|
+
remove: "remove",
|
|
216
|
+
add: "add",
|
|
217
|
+
subtract: "subtract",
|
|
218
|
+
append: "append",
|
|
219
|
+
ifNotExists: "ifNotExists",
|
|
221
220
|
};
|
|
222
221
|
|
|
223
222
|
const UpsertOperations = {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
223
|
+
set: "set",
|
|
224
|
+
add: "add",
|
|
225
|
+
subtract: "subtract",
|
|
226
|
+
append: "append",
|
|
227
|
+
ifNotExists: "ifNotExists",
|
|
229
228
|
};
|
|
230
229
|
|
|
231
230
|
const AttributeProxySymbol = Symbol("attribute_proxy");
|
|
232
|
-
const TransactionCommitSymbol = Symbol(
|
|
231
|
+
const TransactionCommitSymbol = Symbol("transaction_commit");
|
|
233
232
|
|
|
234
233
|
const BuilderTypes = {
|
|
235
|
-
|
|
236
|
-
|
|
234
|
+
update: "update",
|
|
235
|
+
filter: "filter",
|
|
237
236
|
};
|
|
238
237
|
|
|
239
238
|
const ValueTypes = {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
239
|
+
string: "string",
|
|
240
|
+
boolean: "boolean",
|
|
241
|
+
number: "number",
|
|
242
|
+
array: "array",
|
|
243
|
+
set: "set",
|
|
244
|
+
aws_set: "aws_set",
|
|
245
|
+
object: "object",
|
|
246
|
+
map: "map",
|
|
247
|
+
null: "null",
|
|
248
|
+
undefined: "undefined",
|
|
249
|
+
unknown: "unknown",
|
|
251
250
|
};
|
|
252
251
|
|
|
253
252
|
const TraverserIndexes = {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
}
|
|
253
|
+
readonly: "readonly",
|
|
254
|
+
required: "required",
|
|
255
|
+
getters: "getters",
|
|
256
|
+
setters: "setters",
|
|
257
|
+
};
|
|
259
258
|
|
|
260
259
|
const ReturnValues = {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
260
|
+
default: "default",
|
|
261
|
+
none: "none",
|
|
262
|
+
all_old: "all_old",
|
|
263
|
+
updated_old: "updated_old",
|
|
264
|
+
all_new: "all_new",
|
|
265
|
+
updated_new: "updated_new",
|
|
267
266
|
};
|
|
268
267
|
|
|
269
268
|
const FormatToReturnValues = {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
269
|
+
none: "NONE",
|
|
270
|
+
default: "NONE",
|
|
271
|
+
all_old: "ALL_OLD",
|
|
272
|
+
updated_old: "UPDATED_OLD",
|
|
273
|
+
all_new: "ALL_NEW",
|
|
274
|
+
updated_new: "UPDATED_NEW",
|
|
276
275
|
};
|
|
277
276
|
|
|
278
277
|
const TableIndex = "";
|
|
279
278
|
|
|
280
279
|
const KeyCasing = {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
280
|
+
none: "none",
|
|
281
|
+
upper: "upper",
|
|
282
|
+
lower: "lower",
|
|
283
|
+
default: "default",
|
|
285
284
|
};
|
|
286
285
|
|
|
287
|
-
const EventSubscriptionTypes = [
|
|
288
|
-
"query",
|
|
289
|
-
"results"
|
|
290
|
-
];
|
|
286
|
+
const EventSubscriptionTypes = ["query", "results"];
|
|
291
287
|
|
|
292
288
|
const TerminalOperation = {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
}
|
|
289
|
+
go: "go",
|
|
290
|
+
page: "page",
|
|
291
|
+
};
|
|
296
292
|
|
|
297
|
-
const AllPages =
|
|
293
|
+
const AllPages = "all";
|
|
298
294
|
|
|
299
295
|
const ResultOrderOption = {
|
|
300
|
-
|
|
301
|
-
|
|
296
|
+
asc: true,
|
|
297
|
+
desc: false,
|
|
302
298
|
};
|
|
303
299
|
|
|
304
|
-
const ResultOrderParam =
|
|
300
|
+
const ResultOrderParam = "ScanIndexForward";
|
|
305
301
|
|
|
306
302
|
const DynamoDBAttributeTypes = Object.entries({
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
303
|
+
string: "S",
|
|
304
|
+
stringSet: "SS",
|
|
305
|
+
number: "N",
|
|
306
|
+
numberSet: "NS",
|
|
307
|
+
binary: "B",
|
|
308
|
+
binarySet: "BS",
|
|
309
|
+
boolean: "BOOL",
|
|
310
|
+
null: "NULL",
|
|
311
|
+
list: "L",
|
|
312
|
+
map: "M",
|
|
317
313
|
}).reduce((obj, [name, type]) => {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
314
|
+
obj[name] = type;
|
|
315
|
+
obj[type] = type;
|
|
316
|
+
return obj;
|
|
321
317
|
}, {});
|
|
322
318
|
|
|
323
319
|
const CastKeyOptions = {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
}
|
|
320
|
+
string: "string",
|
|
321
|
+
number: "number",
|
|
322
|
+
};
|
|
327
323
|
|
|
328
324
|
module.exports = {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
325
|
+
Pager,
|
|
326
|
+
KeyTypes,
|
|
327
|
+
CastTypes,
|
|
328
|
+
KeyCasing,
|
|
329
|
+
PathTypes,
|
|
330
|
+
IndexTypes,
|
|
331
|
+
QueryTypes,
|
|
332
|
+
ValueTypes,
|
|
333
|
+
TableIndex,
|
|
334
|
+
MethodTypes,
|
|
335
|
+
Comparisons,
|
|
336
|
+
BuilderTypes,
|
|
337
|
+
ReturnValues,
|
|
338
|
+
MaxBatchItems,
|
|
339
|
+
ModelVersions,
|
|
340
|
+
ItemOperations,
|
|
341
|
+
AttributeTypes,
|
|
342
|
+
EntityVersions,
|
|
343
|
+
CastKeyOptions,
|
|
344
|
+
ServiceVersions,
|
|
345
|
+
ExpressionTypes,
|
|
346
|
+
ElectroInstance,
|
|
347
|
+
TraverserIndexes,
|
|
348
|
+
UnprocessedTypes,
|
|
349
|
+
AttributeWildCard,
|
|
350
|
+
TerminalOperation,
|
|
351
|
+
PartialComparisons,
|
|
352
|
+
FormatToReturnValues,
|
|
353
|
+
AttributeProxySymbol,
|
|
354
|
+
ElectroInstanceTypes,
|
|
355
|
+
MethodTypeTranslation,
|
|
356
|
+
EventSubscriptionTypes,
|
|
357
|
+
DynamoDBAttributeTypes,
|
|
358
|
+
AttributeMutationMethods,
|
|
359
|
+
AllPages,
|
|
360
|
+
ResultOrderOption,
|
|
361
|
+
ResultOrderParam,
|
|
362
|
+
TransactionCommitSymbol,
|
|
363
|
+
TransactionOperations,
|
|
364
|
+
TransactionMethods,
|
|
365
|
+
UpsertOperations,
|
|
370
366
|
};
|