@l-v-yonsama/multi-platform-database-drivers 0.7.1 → 0.7.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.
Files changed (39) hide show
  1. package/built/src/drivers/AwsDriver.d.ts +2 -0
  2. package/built/src/drivers/AwsDriver.js +27 -0
  3. package/built/src/drivers/AwsDriver.js.map +1 -1
  4. package/built/src/drivers/RDSBaseDriver.d.ts +1 -3
  5. package/built/src/drivers/RDSBaseDriver.js +28 -34
  6. package/built/src/drivers/RDSBaseDriver.js.map +1 -1
  7. package/built/src/drivers/aws/AwsCloudwatchServiceClient.js +3 -1
  8. package/built/src/drivers/aws/AwsCloudwatchServiceClient.js.map +1 -1
  9. package/built/src/drivers/aws/AwsDynamoServiceClient.d.ts +49 -0
  10. package/built/src/drivers/aws/AwsDynamoServiceClient.js +362 -0
  11. package/built/src/drivers/aws/AwsDynamoServiceClient.js.map +1 -0
  12. package/built/src/drivers/aws/index.d.ts +1 -0
  13. package/built/src/drivers/aws/index.js +1 -0
  14. package/built/src/drivers/aws/index.js.map +1 -1
  15. package/built/src/examples/dynamo.d.ts +1 -0
  16. package/built/src/examples/dynamo.js +74 -0
  17. package/built/src/examples/dynamo.js.map +1 -0
  18. package/built/src/resource/DbResource.d.ts +26 -5
  19. package/built/src/resource/DbResource.js +63 -1
  20. package/built/src/resource/DbResource.js.map +1 -1
  21. package/built/src/types/resource/AwsDynamoTableAttributes.d.ts +47 -0
  22. package/built/src/types/resource/AwsDynamoTableAttributes.js +3 -0
  23. package/built/src/types/resource/AwsDynamoTableAttributes.js.map +1 -0
  24. package/built/src/types/resource/AwsServiceType.d.ts +2 -1
  25. package/built/src/types/resource/AwsServiceType.js +1 -0
  26. package/built/src/types/resource/AwsServiceType.js.map +1 -1
  27. package/built/src/types/resource/ResourceType.d.ts +2 -0
  28. package/built/src/types/resource/ResourceType.js +2 -0
  29. package/built/src/types/resource/ResourceType.js.map +1 -1
  30. package/built/src/types/resource/index.d.ts +1 -0
  31. package/built/src/types/resource/index.js +1 -0
  32. package/built/src/types/resource/index.js.map +1 -1
  33. package/built/src/utils/driverUtil.d.ts +13 -0
  34. package/built/src/utils/driverUtil.js +35 -0
  35. package/built/src/utils/driverUtil.js.map +1 -0
  36. package/built/src/utils/index.d.ts +1 -0
  37. package/built/src/utils/index.js +1 -0
  38. package/built/src/utils/index.js.map +1 -1
  39. package/package.json +7 -2
@@ -0,0 +1,362 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AwsDynamoServiceClient = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
6
+ const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
7
+ const rdh_1 = require("@l-v-yonsama/rdh");
8
+ const pluralize_1 = require("pluralize");
9
+ const resource_1 = require("../../resource");
10
+ const types_1 = require("../../types");
11
+ const utils_1 = require("../../utils");
12
+ const AwsServiceClient_1 = require("./AwsServiceClient");
13
+ const helpers_1 = require("../../helpers");
14
+ class AwsDynamoServiceClient extends AwsServiceClient_1.AwsServiceClient {
15
+ constructor(conRes, config) {
16
+ super(conRes, config);
17
+ }
18
+ connectSub() {
19
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
20
+ this.client = new client_dynamodb_1.DynamoDBClient(this.config);
21
+ this.docClient = lib_dynamodb_1.DynamoDBDocumentClient.from(this.client);
22
+ return this.test(false);
23
+ });
24
+ }
25
+ testSub() {
26
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
+ if (this.client) {
28
+ yield this.listTableNames(1);
29
+ }
30
+ });
31
+ }
32
+ listTableNames(limit) {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
34
+ let lastEvaluatedTableName = undefined;
35
+ const tableNames = [];
36
+ do {
37
+ const command = new client_dynamodb_1.ListTablesCommand({
38
+ ExclusiveStartTableName: lastEvaluatedTableName,
39
+ Limit: Math.min(100, limit !== null && limit !== void 0 ? limit : 1),
40
+ });
41
+ const response = yield this.client.send(command);
42
+ lastEvaluatedTableName = response.LastEvaluatedTableName;
43
+ tableNames.push(...response.TableNames);
44
+ if (limit && tableNames.length >= limit) {
45
+ break;
46
+ }
47
+ } while (lastEvaluatedTableName);
48
+ return tableNames;
49
+ });
50
+ }
51
+ listTables() {
52
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
53
+ const tableNames = yield this.listTableNames();
54
+ const tableList = [];
55
+ yield Promise.all(tableNames.map((TableName) => tslib_1.__awaiter(this, void 0, void 0, function* () {
56
+ const res = yield this.client.send(new client_dynamodb_1.DescribeTableCommand({
57
+ TableName,
58
+ }));
59
+ if (res.Table) {
60
+ tableList.push(res.Table);
61
+ }
62
+ })));
63
+ return tableList;
64
+ });
65
+ }
66
+ scan(params) {
67
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
68
+ const { target, limit, keyword, startTime, endTime, withValue } = params;
69
+ return null;
70
+ });
71
+ }
72
+ getInfomationSchemas() {
73
+ var _a, _b, _c, _d, _e, _f, _g;
74
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
75
+ if (!this.conRes) {
76
+ return null;
77
+ }
78
+ const dbDatabase = new resource_1.AwsDatabase('DynamoDB', types_1.AwsServiceType.DynamoDB);
79
+ try {
80
+ const tables = yield this.listTables();
81
+ console.log('tables=', tables);
82
+ for (const table of tables) {
83
+ const dynamoTable = new resource_1.DbDynamoTable(table.TableName, {
84
+ CreationDateTime: table.CreationDateTime,
85
+ TableStatus: table.TableStatus,
86
+ ReadCapacityUnits: (_a = table.ProvisionedThroughput) === null || _a === void 0 ? void 0 : _a.ReadCapacityUnits,
87
+ WriteCapacityUnits: (_b = table.ProvisionedThroughput) === null || _b === void 0 ? void 0 : _b.WriteCapacityUnits,
88
+ TableSizeBytes: table.TableSizeBytes,
89
+ ItemCount: table.ItemCount,
90
+ TableArn: table.TableArn,
91
+ lsi: (_d = (_c = table.LocalSecondaryIndexes) === null || _c === void 0 ? void 0 : _c.map((it) => {
92
+ return {
93
+ IndexName: it.IndexName,
94
+ KeySchema: it.KeySchema,
95
+ IndexSizeBytes: it.IndexSizeBytes,
96
+ ItemCount: it.ItemCount,
97
+ IndexArn: it.IndexArn,
98
+ };
99
+ })) !== null && _d !== void 0 ? _d : [],
100
+ gsi: (_f = (_e = table.GlobalSecondaryIndexes) === null || _e === void 0 ? void 0 : _e.map((it) => {
101
+ return {
102
+ IndexName: it.IndexName,
103
+ KeySchema: it.KeySchema,
104
+ IndexStatus: it.IndexStatus,
105
+ IndexSizeBytes: it.IndexSizeBytes,
106
+ ItemCount: it.ItemCount,
107
+ IndexArn: it.IndexArn,
108
+ };
109
+ })) !== null && _f !== void 0 ? _f : [],
110
+ });
111
+ (_g = table.AttributeDefinitions) === null || _g === void 0 ? void 0 : _g.forEach((attr) => {
112
+ var _a, _b;
113
+ const pk = (_a = table.KeySchema) === null || _a === void 0 ? void 0 : _a.some((it) => it.AttributeName === attr.AttributeName && it.KeyType === 'HASH');
114
+ const sk = (_b = table.KeySchema) === null || _b === void 0 ? void 0 : _b.some((it) => it.AttributeName === attr.AttributeName && it.KeyType === 'RANGE');
115
+ dynamoTable.addChild(new resource_1.DbDynamoTableColumn(attr.AttributeName, attr.AttributeType, pk, sk));
116
+ });
117
+ dbDatabase.addChild(dynamoTable);
118
+ }
119
+ dbDatabase.comment = `${tables.length} ${(0, pluralize_1.plural)('table')}`;
120
+ }
121
+ catch (e) {
122
+ console.error(e);
123
+ }
124
+ this.awsDatabase = dbDatabase;
125
+ return dbDatabase;
126
+ });
127
+ }
128
+ createTable(params) {
129
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
130
+ yield this.client.send(new client_dynamodb_1.CreateTableCommand(params));
131
+ });
132
+ }
133
+ putItem(params) {
134
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
135
+ yield this.docClient.send(new lib_dynamodb_1.PutCommand(params));
136
+ });
137
+ }
138
+ getItem(params) {
139
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
140
+ const { Item } = yield this.docClient.send(new lib_dynamodb_1.GetCommand(params));
141
+ return Item;
142
+ });
143
+ }
144
+ deleteItem(params) {
145
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
146
+ yield this.docClient.send(new lib_dynamodb_1.DeleteCommand(params));
147
+ });
148
+ }
149
+ updateItem(params) {
150
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
151
+ yield this.docClient.send(new lib_dynamodb_1.UpdateCommand(params));
152
+ });
153
+ }
154
+ scanItems(params) {
155
+ var _a, _b;
156
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
157
+ let LastEvaluatedKey = undefined;
158
+ let CapacityUnits = 0;
159
+ if (params.ExclusiveStartKey) {
160
+ LastEvaluatedKey = params.ExclusiveStartKey;
161
+ }
162
+ const Items = [];
163
+ do {
164
+ const command = new lib_dynamodb_1.ScanCommand(Object.assign(Object.assign({}, params), { Limit: params.Limit ? params.Limit - Items.length : undefined, ExclusiveStartKey: LastEvaluatedKey ? LastEvaluatedKey : undefined, ReturnConsumedCapacity: 'TOTAL' }));
165
+ const response = yield this.client.send(command);
166
+ LastEvaluatedKey = response.LastEvaluatedKey;
167
+ CapacityUnits += (_b = (_a = response.ConsumedCapacity) === null || _a === void 0 ? void 0 : _a.CapacityUnits) !== null && _b !== void 0 ? _b : 0;
168
+ Items.push(...response.Items);
169
+ if (params.Limit && Items.length >= params.Limit) {
170
+ break;
171
+ }
172
+ } while (LastEvaluatedKey);
173
+ return {
174
+ Items,
175
+ LastEvaluatedKey,
176
+ Count: Items.length,
177
+ CapacityUnits,
178
+ };
179
+ });
180
+ }
181
+ queryItems(params) {
182
+ var _a, _b;
183
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
184
+ let LastEvaluatedKey = undefined;
185
+ let CapacityUnits = 0;
186
+ if (params.ExclusiveStartKey) {
187
+ LastEvaluatedKey = params.ExclusiveStartKey;
188
+ }
189
+ const Items = [];
190
+ do {
191
+ const command = new lib_dynamodb_1.QueryCommand(Object.assign(Object.assign({}, params), { Limit: params.Limit ? params.Limit - Items.length : undefined, ExclusiveStartKey: LastEvaluatedKey ? LastEvaluatedKey : undefined, ReturnConsumedCapacity: 'TOTAL' }));
192
+ const response = yield this.client.send(command);
193
+ console.log(response.ConsumedCapacity);
194
+ LastEvaluatedKey = response.LastEvaluatedKey;
195
+ CapacityUnits += (_b = (_a = response.ConsumedCapacity) === null || _a === void 0 ? void 0 : _a.CapacityUnits) !== null && _b !== void 0 ? _b : 0;
196
+ Items.push(...response.Items);
197
+ if (params.Limit && Items.length >= params.Limit) {
198
+ break;
199
+ }
200
+ } while (LastEvaluatedKey);
201
+ return {
202
+ Items,
203
+ LastEvaluatedKey,
204
+ Count: Items.length,
205
+ CapacityUnits,
206
+ };
207
+ });
208
+ }
209
+ executeStatement(params) {
210
+ var _a, _b;
211
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
212
+ let LastEvaluatedKey = undefined;
213
+ let NextToken = params.NextToken;
214
+ let CapacityUnits = 0;
215
+ const Items = [];
216
+ do {
217
+ const command = new lib_dynamodb_1.ExecuteStatementCommand(Object.assign(Object.assign({}, params), { Limit: params.Limit ? params.Limit - Items.length : undefined, NextToken, ReturnConsumedCapacity: 'TOTAL' }));
218
+ const response = yield this.client.send(command);
219
+ console.log('res', response.Items.length, response.NextToken, response.LastEvaluatedKey, response.ConsumedCapacity);
220
+ LastEvaluatedKey = response.LastEvaluatedKey;
221
+ NextToken = response.NextToken;
222
+ CapacityUnits += (_b = (_a = response.ConsumedCapacity) === null || _a === void 0 ? void 0 : _a.CapacityUnits) !== null && _b !== void 0 ? _b : 0;
223
+ Items.push(...response.Items);
224
+ if (params.Limit && Items.length >= params.Limit) {
225
+ break;
226
+ }
227
+ } while (LastEvaluatedKey || NextToken);
228
+ return {
229
+ Items,
230
+ LastEvaluatedKey,
231
+ NextToken,
232
+ Count: Items.length,
233
+ CapacityUnits,
234
+ };
235
+ });
236
+ }
237
+ requestPartiql(params) {
238
+ var _a, _b, _c, _d, _e;
239
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
240
+ const { sql, conditions } = params;
241
+ let rdb = undefined;
242
+ let qst = undefined;
243
+ let dbTable = undefined;
244
+ if ((conditions === null || conditions === void 0 ? void 0 : conditions.rawQueries) !== true) {
245
+ qst = (0, helpers_1.parseQuery)(sql);
246
+ dbTable = this.getDbTable(qst);
247
+ if ((_a = qst === null || qst === void 0 ? void 0 : qst.ast) === null || _a === void 0 ? void 0 : _a.type) {
248
+ if (!params.meta) {
249
+ params.meta = {};
250
+ }
251
+ params.meta.type = (_b = qst === null || qst === void 0 ? void 0 : qst.ast) === null || _b === void 0 ? void 0 : _b.type;
252
+ }
253
+ }
254
+ let Statement = sql;
255
+ let Limit = undefined;
256
+ if (((_c = qst === null || qst === void 0 ? void 0 : qst.ast) === null || _c === void 0 ? void 0 : _c.type) === 'select' &&
257
+ sql.toLocaleLowerCase().indexOf('limit')) {
258
+ const r = sql.match(/\bLIMIT\s+(\d+)/i);
259
+ if (r && r.length >= 2) {
260
+ Limit = (0, rdh_1.toNum)(r[1]);
261
+ Statement = sql.replace(/\bLIMIT\s+\d+/i, '');
262
+ }
263
+ }
264
+ const binds = (_d = conditions === null || conditions === void 0 ? void 0 : conditions.binds) !== null && _d !== void 0 ? _d : [];
265
+ const startTime = new Date().getTime();
266
+ const { CapacityUnits: capacityUnits, Count, Items, LastEvaluatedKey, NextToken, } = yield this.executeStatement({
267
+ Statement,
268
+ Parameters: binds,
269
+ Limit,
270
+ });
271
+ const elapsedTimeMilli = new Date().getTime() - startTime;
272
+ if (Count === 0) {
273
+ const rdb = rdh_1.ResultSetDataBuilder.createEmpty({
274
+ message: 'No records.',
275
+ });
276
+ rdb.setSummary({
277
+ elapsedTimeMilli,
278
+ selectedRows: 0,
279
+ capacityUnits,
280
+ });
281
+ return rdb.build();
282
+ }
283
+ const records = Items[0];
284
+ rdb = new rdh_1.ResultSetDataBuilder(Object.keys(records).map((it) => {
285
+ const col = dbTable === null || dbTable === void 0 ? void 0 : dbTable.getChildByName(it);
286
+ return (0, rdh_1.createRdhKey)({
287
+ name: it,
288
+ type: this.parseColumnType(col === null || col === void 0 ? void 0 : col.attrType),
289
+ required: (col === null || col === void 0 ? void 0 : col.pk) || (col === null || col === void 0 ? void 0 : col.sk),
290
+ });
291
+ }));
292
+ Items.forEach((item) => {
293
+ rdb.addRow(item);
294
+ });
295
+ (0, utils_1.setRdhMetaAndStatement)({
296
+ connectionName: this.conRes.name,
297
+ params,
298
+ rdb,
299
+ type: (_e = qst === null || qst === void 0 ? void 0 : qst.ast) === null || _e === void 0 ? void 0 : _e.type,
300
+ qst,
301
+ dbTable,
302
+ });
303
+ rdb.resetKeyTypeByRows();
304
+ rdb.setSummary({
305
+ elapsedTimeMilli,
306
+ selectedRows: rdb.rs.rows.length,
307
+ capacityUnits,
308
+ });
309
+ return rdb.build();
310
+ });
311
+ }
312
+ parseColumnType(typeString) {
313
+ if (typeString == null || typeString === '') {
314
+ return rdh_1.GeneralColumnType.UNKNOWN;
315
+ }
316
+ if ('S' === typeString) {
317
+ return rdh_1.GeneralColumnType.TEXT;
318
+ }
319
+ else if ('N' === typeString) {
320
+ return rdh_1.GeneralColumnType.NUMERIC;
321
+ }
322
+ else if ('B' === typeString) {
323
+ return rdh_1.GeneralColumnType.BINARY;
324
+ }
325
+ else if ('SS' === typeString ||
326
+ 'NS' === typeString ||
327
+ 'BS' === typeString) {
328
+ return rdh_1.GeneralColumnType.SET;
329
+ }
330
+ else if ('M' === typeString) {
331
+ return rdh_1.GeneralColumnType.JSON;
332
+ }
333
+ else if ('L' === typeString) {
334
+ return rdh_1.GeneralColumnType.ARRAY;
335
+ }
336
+ else if ('NULL' === typeString) {
337
+ return rdh_1.GeneralColumnType.UNKNOWN;
338
+ }
339
+ else if ('BOOL' === typeString) {
340
+ return rdh_1.GeneralColumnType.BOOLEAN;
341
+ }
342
+ return rdh_1.GeneralColumnType.UNKNOWN;
343
+ }
344
+ getDbTable(qst) {
345
+ const db = this.awsDatabase;
346
+ if (qst === undefined || qst.names === undefined || db === undefined) {
347
+ return undefined;
348
+ }
349
+ return db.getChildByName(qst.names.tableName, false);
350
+ }
351
+ closeSub() {
352
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
353
+ this.docClient.destroy();
354
+ this.client.destroy();
355
+ });
356
+ }
357
+ getServiceName() {
358
+ return 'DynamoDB';
359
+ }
360
+ }
361
+ exports.AwsDynamoServiceClient = AwsDynamoServiceClient;
362
+ //# sourceMappingURL=AwsDynamoServiceClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwsDynamoServiceClient.js","sourceRoot":"","sources":["../../../../src/drivers/aws/AwsDynamoServiceClient.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './AwsCloudwatchServiceClient';
2
+ export * from './AwsDynamoServiceClient';
2
3
  export * from './AwsS3ServiceClient';
3
4
  export * from './AwsServiceClient';
4
5
  export * from './AwsSESServiceClient';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./AwsCloudwatchServiceClient"), exports);
5
+ tslib_1.__exportStar(require("./AwsDynamoServiceClient"), exports);
5
6
  tslib_1.__exportStar(require("./AwsS3ServiceClient"), exports);
6
7
  tslib_1.__exportStar(require("./AwsServiceClient"), exports);
7
8
  tslib_1.__exportStar(require("./AwsSESServiceClient"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/drivers/aws/index.ts"],"names":[],"mappings":";;;AAAA,uEAA6C;AAC7C,+DAAqC;AACrC,6DAAmC;AACnC,gEAAsC;AACtC,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/drivers/aws/index.ts"],"names":[],"mappings":";;;AAAA,uEAA6C;AAC7C,mEAAyC;AACzC,+DAAqC;AACrC,6DAAmC;AACnC,gEAAsC;AACtC,gEAAsC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
5
+ const client = new client_dynamodb_1.DynamoDBClient({
6
+ region: 'us-east-1',
7
+ endpoint: 'http://localhost:6005',
8
+ credentials: {
9
+ accessKeyId: 'test',
10
+ secretAccessKey: 'test',
11
+ },
12
+ });
13
+ function listTables() {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ let lastEvaluatedTableName = undefined;
16
+ const command = new client_dynamodb_1.ListTablesCommand({
17
+ ExclusiveStartTableName: lastEvaluatedTableName,
18
+ });
19
+ const tableNames = [];
20
+ do {
21
+ const response = yield client.send(command);
22
+ lastEvaluatedTableName = response.LastEvaluatedTableName;
23
+ tableNames.push(...response.TableNames);
24
+ } while (lastEvaluatedTableName);
25
+ yield Promise.all(tableNames.map((it) => tslib_1.__awaiter(this, void 0, void 0, function* () {
26
+ const res = yield client.send(new client_dynamodb_1.DescribeTableCommand({
27
+ TableName: tableNames[0],
28
+ }));
29
+ console.log(res.Table);
30
+ })));
31
+ });
32
+ }
33
+ function createTable() {
34
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
35
+ const command = new client_dynamodb_1.CreateTableCommand({
36
+ TableName: 'EspressoDrinks',
37
+ AttributeDefinitions: [
38
+ {
39
+ AttributeName: 'DrinkName',
40
+ AttributeType: 'S',
41
+ },
42
+ ],
43
+ KeySchema: [
44
+ {
45
+ AttributeName: 'DrinkName',
46
+ KeyType: 'HASH',
47
+ },
48
+ ],
49
+ ProvisionedThroughput: {
50
+ ReadCapacityUnits: 1,
51
+ WriteCapacityUnits: 1,
52
+ },
53
+ });
54
+ const response = yield client.send(command);
55
+ console.log(response);
56
+ });
57
+ }
58
+ function putItem() {
59
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
+ const command = new client_dynamodb_1.PutItemCommand({
61
+ TableName: 'EspressoDrinks',
62
+ Item: {
63
+ DrinkName: { S: 'Shiba Inu' },
64
+ },
65
+ });
66
+ const response = yield client.send(command);
67
+ console.log(response);
68
+ return response;
69
+ });
70
+ }
71
+ (() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
72
+ yield listTables();
73
+ }))();
74
+ //# sourceMappingURL=dynamo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamo.js","sourceRoot":"","sources":["../../../src/examples/dynamo.ts"],"names":[],"mappings":";;;AAAA,8DAOkC;AAElC,MAAM,MAAM,GAAG,IAAI,gCAAc,CAAC;IAChC,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,uBAAuB;IACjC,WAAW,EAAE;QACX,WAAW,EAAE,MAAM;QACnB,eAAe,EAAE,MAAM;KACxB;CACF,CAAC,CAAC;AAEH,SAAe,UAAU;;QACvB,IAAI,sBAAsB,GAAuB,SAAS,CAAC;QAE3D,MAAM,OAAO,GAAG,IAAI,mCAAiB,CAAC;YACpC,uBAAuB,EAAE,sBAAsB;SAChD,CAAC,CAAC;QAEH,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,GAAG;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,CAAC;YAEzD,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;SACzC,QAAQ,sBAAsB,EAAE;QAGjC,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAO,EAAE,EAAE,EAAE;YAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAC3B,IAAI,sCAAoB,CAAC;gBACvB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;aACzB,CAAC,CACH,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAA,CAAC,CACH,CAAC;IACJ,CAAC;CAAA;AAED,SAAe,WAAW;;QACxB,MAAM,OAAO,GAAG,IAAI,oCAAkB,CAAC;YACrC,SAAS,EAAE,gBAAgB;YAC3B,oBAAoB,EAAE;gBACpB;oBACE,aAAa,EAAE,WAAW;oBAC1B,aAAa,EAAE,GAAG;iBACnB;aACF;YACD,SAAS,EAAE;gBACT;oBACE,aAAa,EAAE,WAAW;oBAC1B,OAAO,EAAE,MAAM;iBAChB;aACF;YACD,qBAAqB,EAAE;gBACrB,iBAAiB,EAAE,CAAC;gBACpB,kBAAkB,EAAE,CAAC;aACtB;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;CAAA;AAED,SAAe,OAAO;;QACpB,MAAM,OAAO,GAAG,IAAI,gCAAc,CAAC;YACjC,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE;gBACJ,SAAS,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE;aAC9B;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA;AAED,CAAC,GAAS,EAAE;IACV,MAAM,UAAU,EAAE,CAAC;AAGrB,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { CompareKey, GeneralColumnType } from '@l-v-yonsama/rdh';
2
- import { AwsServiceType, AwsSetting, AwsSQSAttributes, ConnectionSetting, DBType, FirebaseSetting, ForeignKeyConstraint, IamSolutionSetting, RedisKeyType, ResourceType, SQLServerSetting, SshSetting, SslSetting, TransactionIsolationLevel, UniqueKeyConstraint } from '../types';
2
+ import { AwsServiceType, AwsSetting, AwsSQSAttributes, AwsDynamoTableAttributes, ConnectionSetting, DBType, FirebaseSetting, ForeignKeyConstraint, IamSolutionSetting, RedisKeyType, ResourceType, SQLServerSetting, SshSetting, SslSetting, TransactionIsolationLevel, UniqueKeyConstraint, ScalarAttributeType } from '../types';
3
3
  export interface SchemaAndTableName {
4
4
  schema?: string;
5
5
  table: string;
@@ -9,7 +9,7 @@ export interface SchemaAndTableHints {
9
9
  }
10
10
  export declare function fromJson<T extends DbResource = DbResource>(json: T): T;
11
11
  export type DbDatabase = RdsDatabase | AwsDatabase | RedisDatabase | Auth0Database | KeycloakDatabase;
12
- export type AllSubDbResource = DbDatabase | DbSchema | DbTable | DbKey | DbColumn | DbS3Bucket | DbSQSQueue | DbLogGroup | DbLogStream | DbS3Owner | IamRealm | IamClient | IamOrganization | IamUser | IamGroup | IamRole;
12
+ export type AllSubDbResource = DbDatabase | DbSchema | DbTable | DbKey | DbColumn | DbS3Bucket | DbSQSQueue | DbLogGroup | DbLogStream | DbS3Owner | DbDynamoTable | DbDynamoTableColumn | IamRealm | IamClient | IamOrganization | IamUser | IamGroup | IamRole;
13
13
  export type IamResourceType = 'users' | 'groups' | 'roles';
14
14
  export declare abstract class DbResource<T extends DbResource = AllSubDbResource> {
15
15
  readonly id: string;
@@ -75,7 +75,7 @@ export declare class RdsDatabase extends DbResource<DbSchema> {
75
75
  isDefault?: boolean;
76
76
  }): DbSchema;
77
77
  }
78
- export declare class AwsDatabase extends DbResource<DbS3Bucket | DbSQSQueue | DbLogGroup | DbS3Owner> {
78
+ export declare class AwsDatabase extends DbResource<DbS3Bucket | DbSQSQueue | DbLogGroup | DbS3Owner | DbDynamoTable> {
79
79
  readonly serviceType: AwsServiceType;
80
80
  constructor(name: string, serviceType: AwsServiceType);
81
81
  }
@@ -164,7 +164,10 @@ export declare class DbSchema extends DbResource<DbTable> {
164
164
  comment?: string;
165
165
  }[];
166
166
  }
167
- export declare class DbTable extends DbResource<DbColumn> {
167
+ export interface ITableComparable {
168
+ getCompareKeys(availableColumnNames?: string[]): CompareKey[];
169
+ }
170
+ export declare class DbTable extends DbResource<DbColumn> implements ITableComparable {
168
171
  tableType: any;
169
172
  foreignKeys?: ForeignKeyConstraint;
170
173
  uniqueKeys?: UniqueKeyConstraint[];
@@ -229,7 +232,7 @@ export declare class DbColumn extends DbResource {
229
232
  [key: string]: any;
230
233
  };
231
234
  }
232
- export declare class AwsDbResource<T = any> extends DbResource {
235
+ export declare class AwsDbResource<T = any, U extends AllSubDbResource = any> extends DbResource<U> {
233
236
  readonly attr: T;
234
237
  private dateProperties?;
235
238
  private byteProperties?;
@@ -242,6 +245,24 @@ export declare class AwsDbResource<T = any> extends DbResource {
242
245
  [key: string]: any;
243
246
  };
244
247
  }
248
+ export declare class DbDynamoTable extends AwsDbResource<AwsDynamoTableAttributes, DbDynamoTableColumn> implements ITableComparable {
249
+ constructor(name: string, attr: AwsDynamoTableAttributes);
250
+ getProperties(): {
251
+ [key: string]: any;
252
+ };
253
+ getPrimaryColumnNames(): string[];
254
+ getCompareKeys(availableColumnNames?: string[]): CompareKey[];
255
+ }
256
+ export declare class DbDynamoTableColumn extends DbResource {
257
+ readonly attrType: ScalarAttributeType;
258
+ readonly pk: boolean;
259
+ readonly sk: boolean;
260
+ constructor(name: string, attrType: ScalarAttributeType, pk: boolean, sk: boolean);
261
+ toString(): string;
262
+ getProperties(): {
263
+ [key: string]: any;
264
+ };
265
+ }
245
266
  export declare class DbS3Bucket extends AwsDbResource<{
246
267
  CreationDate?: Date;
247
268
  }> {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DbS3Owner = exports.DbLogStream = exports.DbLogGroup = exports.DbSQSQueue = exports.DbS3Bucket = exports.AwsDbResource = exports.DbColumn = exports.DbKey = exports.DbTable = exports.DbSchema = exports.IamRole = exports.IamOrganization = exports.IamGroup = exports.IamUser = exports.IamClient = exports.IamRealm = exports.Auth0Database = exports.KeycloakDatabase = exports.RedisDatabase = exports.AwsDatabase = exports.RdsDatabase = exports.DbConnection = exports.DbResource = exports.fromJson = void 0;
3
+ exports.DbS3Owner = exports.DbLogStream = exports.DbLogGroup = exports.DbSQSQueue = exports.DbS3Bucket = exports.DbDynamoTableColumn = exports.DbDynamoTable = exports.AwsDbResource = exports.DbColumn = exports.DbKey = exports.DbTable = exports.DbSchema = exports.IamRole = exports.IamOrganization = exports.IamGroup = exports.IamUser = exports.IamClient = exports.IamRealm = exports.Auth0Database = exports.KeycloakDatabase = exports.RedisDatabase = exports.AwsDatabase = exports.RdsDatabase = exports.DbConnection = exports.DbResource = exports.fromJson = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const rdh_1 = require("@l-v-yonsama/rdh");
6
6
  const bytes_1 = require("bytes");
@@ -51,6 +51,15 @@ function fromJson(json) {
51
51
  case types_1.ResourceType.LogStream:
52
52
  res = Object.assign(new DbLogStream(name, (0, rdh_1.castTo)(json).attr), json);
53
53
  break;
54
+ case types_1.ResourceType.DynamoTable:
55
+ res = Object.assign(new DbDynamoTable(name, (0, rdh_1.castTo)(json).attr), json);
56
+ break;
57
+ case types_1.ResourceType.DynamoColumn:
58
+ {
59
+ const params = (0, rdh_1.castTo)(json);
60
+ res = Object.assign(new DbDynamoTableColumn(name, params.attrType, params.pk, params.sk), json);
61
+ }
62
+ break;
54
63
  }
55
64
  if (json.children) {
56
65
  const children = json.children.map((child) => fromJson(child));
@@ -540,6 +549,59 @@ class AwsDbResource extends DbResource {
540
549
  }
541
550
  }
542
551
  exports.AwsDbResource = AwsDbResource;
552
+ class DbDynamoTable extends AwsDbResource {
553
+ constructor(name, attr) {
554
+ super(types_1.ResourceType.DynamoTable, name, attr);
555
+ this.setPropertyFormat({
556
+ dates: ['CreationDateTime'],
557
+ bytes: ['TableSizeBytes'],
558
+ });
559
+ }
560
+ getProperties() {
561
+ return Object.assign(Object.assign({}, super.getProperties()), { lsi: this.attr.lsi.length, gsi: this.attr.gsi.length });
562
+ }
563
+ getPrimaryColumnNames() {
564
+ var _a;
565
+ return ((_a = this.children.filter((it) => it.pk || it.sk).map((it) => it.name)) !== null && _a !== void 0 ? _a : []);
566
+ }
567
+ getCompareKeys(availableColumnNames) {
568
+ const ret = [];
569
+ const pks = this.getPrimaryColumnNames();
570
+ if (pks.length) {
571
+ if (availableColumnNames) {
572
+ if (pks.every((pk) => availableColumnNames.some((ac) => (0, rdh_1.equalsIgnoreCase)(ac, pk)))) {
573
+ ret.push({
574
+ kind: 'primary',
575
+ names: pks.map((pk) => availableColumnNames.find((ac) => (0, rdh_1.equalsIgnoreCase)(ac, pk))),
576
+ });
577
+ }
578
+ }
579
+ else {
580
+ ret.push({
581
+ kind: 'primary',
582
+ names: pks,
583
+ });
584
+ }
585
+ }
586
+ return ret;
587
+ }
588
+ }
589
+ exports.DbDynamoTable = DbDynamoTable;
590
+ class DbDynamoTableColumn extends DbResource {
591
+ constructor(name, attrType, pk, sk) {
592
+ super(types_1.ResourceType.DynamoColumn, name);
593
+ this.attrType = attrType;
594
+ this.pk = pk;
595
+ this.sk = sk;
596
+ }
597
+ toString() {
598
+ return `[${super.toString()}]: Pk[${this.pk}]]`;
599
+ }
600
+ getProperties() {
601
+ return Object.assign(Object.assign({}, super.getProperties()), { 'attribute type': this.attrType, 'partial key': this.pk, 'sort key': this.sk });
602
+ }
603
+ }
604
+ exports.DbDynamoTableColumn = DbDynamoTableColumn;
543
605
  class DbS3Bucket extends AwsDbResource {
544
606
  constructor(name, CreationDate) {
545
607
  super(types_1.ResourceType.Bucket, name === undefined ? '' : name, {