quidproquo-actionprocessor-awslambda 0.0.90 → 0.0.91

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.
@@ -8,6 +8,7 @@ export { default as getServiceFunctionExecuteEventActionProcessor } from './even
8
8
  export { default as getEventBridgeEventActionProcessor } from './event/getEventBridgeEventActionProcessor';
9
9
  export { default as getSystemActionProcessor } from './system';
10
10
  export { default as getFileActionProcessor } from './file';
11
+ export { default as getKeyValueStoreActionProcessor } from './keyValueStore';
11
12
  export { default as getQueueActionProcessor } from './queue';
12
13
  export { default as getUserDirectoryActionProcessor } from './userDirectory';
13
14
  export { default as getEventBusActionProcessor } from './eventBus';
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getEventBusActionProcessor = exports.getUserDirectoryActionProcessor = exports.getQueueActionProcessor = exports.getFileActionProcessor = exports.getSystemActionProcessor = exports.getEventBridgeEventActionProcessor = exports.getServiceFunctionExecuteEventActionProcessor = exports.getSQSEventRecordActionProcessor = exports.getCloudFrontOriginRequestEventActionProcessor = exports.getAPIGatewayEventActionProcessor = exports.getConfigGetParametersActionProcessor = exports.getConfigGetParameterActionProcessor = exports.getConfigGetSecretActionProcessor = void 0;
6
+ exports.getEventBusActionProcessor = exports.getUserDirectoryActionProcessor = exports.getQueueActionProcessor = exports.getKeyValueStoreActionProcessor = exports.getFileActionProcessor = exports.getSystemActionProcessor = exports.getEventBridgeEventActionProcessor = exports.getServiceFunctionExecuteEventActionProcessor = exports.getSQSEventRecordActionProcessor = exports.getCloudFrontOriginRequestEventActionProcessor = exports.getAPIGatewayEventActionProcessor = exports.getConfigGetParametersActionProcessor = exports.getConfigGetParameterActionProcessor = exports.getConfigGetSecretActionProcessor = void 0;
7
7
  var getConfigGetSecretActionProcessor_1 = require("./config/getConfigGetSecretActionProcessor");
8
8
  Object.defineProperty(exports, "getConfigGetSecretActionProcessor", { enumerable: true, get: function () { return __importDefault(getConfigGetSecretActionProcessor_1).default; } });
9
9
  var getConfigGetParameterActionProcessor_1 = require("./config/getConfigGetParameterActionProcessor");
@@ -24,6 +24,8 @@ var system_1 = require("./system");
24
24
  Object.defineProperty(exports, "getSystemActionProcessor", { enumerable: true, get: function () { return __importDefault(system_1).default; } });
25
25
  var file_1 = require("./file");
26
26
  Object.defineProperty(exports, "getFileActionProcessor", { enumerable: true, get: function () { return __importDefault(file_1).default; } });
27
+ var keyValueStore_1 = require("./keyValueStore");
28
+ Object.defineProperty(exports, "getKeyValueStoreActionProcessor", { enumerable: true, get: function () { return __importDefault(keyValueStore_1).default; } });
27
29
  var queue_1 = require("./queue");
28
30
  Object.defineProperty(exports, "getQueueActionProcessor", { enumerable: true, get: function () { return __importDefault(queue_1).default; } });
29
31
  var userDirectory_1 = require("./userDirectory");
@@ -0,0 +1,6 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ import { KeyValueStoreDeleteActionProcessor } from 'quidproquo-core';
3
+ declare const _default: (qpqConfig: QPQConfig) => {
4
+ "@quidproquo-core/KeyValueStore/Delete": KeyValueStoreDeleteActionProcessor;
5
+ };
6
+ export default _default;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const quidproquo_core_1 = require("quidproquo-core");
13
+ const awsNamingUtils_1 = require("../../../awsNamingUtils");
14
+ const quidproquo_core_2 = require("quidproquo-core");
15
+ const deleteItem_1 = require("../../../logic/dynamo/deleteItem");
16
+ const getProcessKeyValueStoreDelete = (qpqConfig) => {
17
+ return ({ keyValueStoreName, key }) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const dynamoTableName = (0, awsNamingUtils_1.getQpqRuntimeResourceNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
19
+ const region = quidproquo_core_1.qpqCoreUtils.getApplicationModuleDeployRegion(qpqConfig);
20
+ yield (0, deleteItem_1.deleteItem)(dynamoTableName, key, region);
21
+ return (0, quidproquo_core_2.actionResult)(void 0);
22
+ });
23
+ };
24
+ exports.default = (qpqConfig) => ({
25
+ [quidproquo_core_2.KeyValueStoreActionType.Delete]: getProcessKeyValueStoreDelete(qpqConfig),
26
+ });
@@ -0,0 +1,6 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ import { KeyValueStoreGetActionProcessor } from 'quidproquo-core';
3
+ declare const _default: (qpqConfig: QPQConfig) => {
4
+ "@quidproquo-core/KeyValueStore/Get": KeyValueStoreGetActionProcessor<any>;
5
+ };
6
+ export default _default;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const quidproquo_core_1 = require("quidproquo-core");
13
+ const awsNamingUtils_1 = require("../../../awsNamingUtils");
14
+ const quidproquo_core_2 = require("quidproquo-core");
15
+ const getItem_1 = require("../../../logic/dynamo/getItem");
16
+ const getProcessKeyValueStoreGet = (qpqConfig) => {
17
+ return ({ keyValueStoreName, key }) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const dynamoTableName = (0, awsNamingUtils_1.getQpqRuntimeResourceNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
19
+ const region = quidproquo_core_1.qpqCoreUtils.getApplicationModuleDeployRegion(qpqConfig);
20
+ const result = yield (0, getItem_1.getItem)(dynamoTableName, key, region);
21
+ return (0, quidproquo_core_2.actionResult)(result);
22
+ });
23
+ };
24
+ exports.default = (qpqConfig) => ({
25
+ [quidproquo_core_2.KeyValueStoreActionType.Get]: getProcessKeyValueStoreGet(qpqConfig),
26
+ });
@@ -0,0 +1,6 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ import { KeyValueStoreSetActionProcessor } from 'quidproquo-core';
3
+ declare const _default: (qpqConfig: QPQConfig) => {
4
+ "@quidproquo-core/KeyValueStore/Set": KeyValueStoreSetActionProcessor<any>;
5
+ };
6
+ export default _default;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const quidproquo_core_1 = require("quidproquo-core");
13
+ const awsNamingUtils_1 = require("../../../awsNamingUtils");
14
+ const quidproquo_core_2 = require("quidproquo-core");
15
+ const putItem_1 = require("../../../logic/dynamo/putItem");
16
+ const getProcessKeyValueStoreSet = (qpqConfig) => {
17
+ return ({ keyValueStoreName, key, value, options }) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const dynamoTableName = (0, awsNamingUtils_1.getQpqRuntimeResourceNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
19
+ const region = quidproquo_core_1.qpqCoreUtils.getApplicationModuleDeployRegion(qpqConfig);
20
+ yield (0, putItem_1.putItem)(dynamoTableName, key, value, {
21
+ expires: options === null || options === void 0 ? void 0 : options.ttl,
22
+ }, region);
23
+ return (0, quidproquo_core_2.actionResult)(void 0);
24
+ });
25
+ };
26
+ exports.default = (qpqConfig) => ({
27
+ [quidproquo_core_2.KeyValueStoreActionType.Set]: getProcessKeyValueStoreSet(qpqConfig),
28
+ });
@@ -0,0 +1,6 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ import { KeyValueStoreUpdateActionProcessor } from 'quidproquo-core';
3
+ declare const _default: (qpqConfig: QPQConfig) => {
4
+ "@quidproquo-core/KeyValueStore/Update": KeyValueStoreUpdateActionProcessor<any>;
5
+ };
6
+ export default _default;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const quidproquo_core_1 = require("quidproquo-core");
13
+ const awsNamingUtils_1 = require("../../../awsNamingUtils");
14
+ const quidproquo_core_2 = require("quidproquo-core");
15
+ const updateItem_1 = require("../../../logic/dynamo/updateItem");
16
+ const getProcessKeyValueStoreUpdate = (qpqConfig) => {
17
+ return ({ keyValueStoreName, key, value, options }) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const dynamoTableName = (0, awsNamingUtils_1.getQpqRuntimeResourceNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
19
+ const region = quidproquo_core_1.qpqCoreUtils.getApplicationModuleDeployRegion(qpqConfig);
20
+ yield (0, updateItem_1.updateItem)(dynamoTableName, key, value, {
21
+ expires: options === null || options === void 0 ? void 0 : options.ttl,
22
+ }, region);
23
+ return (0, quidproquo_core_2.actionResult)(void 0);
24
+ });
25
+ };
26
+ exports.default = (qpqConfig) => ({
27
+ [quidproquo_core_2.KeyValueStoreActionType.Update]: getProcessKeyValueStoreUpdate(qpqConfig),
28
+ });
@@ -0,0 +1,8 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ declare const _default: (qpqConfig: QPQConfig) => {
3
+ "@quidproquo-core/KeyValueStore/Update": import("quidproquo-core").KeyValueStoreUpdateActionProcessor<any>;
4
+ "@quidproquo-core/KeyValueStore/Set": import("quidproquo-core").KeyValueStoreSetActionProcessor<any>;
5
+ "@quidproquo-core/KeyValueStore/Get": import("quidproquo-core").KeyValueStoreGetActionProcessor<any>;
6
+ "@quidproquo-core/KeyValueStore/Delete": import("quidproquo-core").KeyValueStoreDeleteActionProcessor;
7
+ };
8
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const getKeyValueStoreDeleteActionProcessor_1 = __importDefault(require("./getKeyValueStoreDeleteActionProcessor"));
7
+ const getKeyValueStoreGetActionProcessor_1 = __importDefault(require("./getKeyValueStoreGetActionProcessor"));
8
+ const getKeyValueStoreSetActionProcessor_1 = __importDefault(require("./getKeyValueStoreSetActionProcessor"));
9
+ const getKeyValueStoreUpdateActionProcessor_1 = __importDefault(require("./getKeyValueStoreUpdateActionProcessor"));
10
+ exports.default = (qpqConfig) => (Object.assign(Object.assign(Object.assign(Object.assign({}, (0, getKeyValueStoreDeleteActionProcessor_1.default)(qpqConfig)), (0, getKeyValueStoreGetActionProcessor_1.default)(qpqConfig)), (0, getKeyValueStoreSetActionProcessor_1.default)(qpqConfig)), (0, getKeyValueStoreUpdateActionProcessor_1.default)(qpqConfig)));
@@ -0,0 +1 @@
1
+ export declare function deleteItem(tableName: string, key: string, region: string): Promise<void>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deleteItem = void 0;
13
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
14
+ function deleteItem(tableName, key, region) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const dynamoClient = new client_dynamodb_1.DynamoDBClient({ region });
17
+ const deleteItemParams = {
18
+ TableName: tableName,
19
+ Key: {
20
+ key: {
21
+ S: key,
22
+ },
23
+ },
24
+ };
25
+ yield dynamoClient.send(new client_dynamodb_1.DeleteItemCommand(deleteItemParams));
26
+ });
27
+ }
28
+ exports.deleteItem = deleteItem;
@@ -0,0 +1 @@
1
+ export declare function getItem(tableName: string, key: string, region: string): Promise<any | null>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getItem = void 0;
13
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
14
+ function getItem(tableName, key, region) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const dynamoDBClient = new client_dynamodb_1.DynamoDBClient({ region });
17
+ const getItemParams = {
18
+ TableName: tableName,
19
+ Key: {
20
+ key: {
21
+ S: key,
22
+ },
23
+ },
24
+ };
25
+ try {
26
+ const result = yield dynamoDBClient.send(new client_dynamodb_1.GetItemCommand(getItemParams));
27
+ return result.Item ? JSON.parse(result.Item.value.S) : null;
28
+ }
29
+ catch (error) {
30
+ console.error('Error getting item from DynamoDB:', error);
31
+ throw error;
32
+ }
33
+ });
34
+ }
35
+ exports.getItem = getItem;
@@ -0,0 +1,4 @@
1
+ export interface PutItemOptions {
2
+ expires?: number;
3
+ }
4
+ export declare function putItem<Value>(tableName: string, key: string, value: Value, options: PutItemOptions, region: string): Promise<void>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.putItem = void 0;
13
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
14
+ function putItem(tableName, key, value, options, region) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const dynamoClient = new client_dynamodb_1.DynamoDBClient({ region });
17
+ yield dynamoClient.send(new client_dynamodb_1.PutItemCommand({
18
+ TableName: tableName,
19
+ Item: Object.assign({ key: { S: key }, value: { S: JSON.stringify(value) } }, (options.expires ? { expires: { N: options.expires.toString() } } : {})),
20
+ }));
21
+ });
22
+ }
23
+ exports.putItem = putItem;
@@ -0,0 +1,3 @@
1
+ export declare function updateItem(tableName: string, key: string, value: any, options: {
2
+ expires?: number | undefined;
3
+ } | undefined, region: string): Promise<void>;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.updateItem = void 0;
13
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
14
+ // THIS DOES NOT WORK ~ DO NOT USE
15
+ function updateItem(tableName, key, value, options = {}, region) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const dynamoClient = new client_dynamodb_1.DynamoDBClient({ region });
18
+ const updateExpressions = Object.keys(value).map((attr, idx) => {
19
+ return `SET #value.#${attr} = :${attr}`;
20
+ });
21
+ const expressionAttributeNames = Object.assign({ '#value': 'value' }, Object.keys(value).reduce((obj, attr) => {
22
+ obj[`#${attr}`] = attr;
23
+ return obj;
24
+ }, {}));
25
+ const expressionAttributeValues = Object.keys(value).reduce((obj, attr) => {
26
+ obj[`:${attr}`] = { S: JSON.stringify(value[attr]) };
27
+ return obj;
28
+ }, {});
29
+ if (options.expires) {
30
+ updateExpressions.push('SET expires = :expires');
31
+ expressionAttributeValues[':expires'] = { N: options.expires.toString() };
32
+ }
33
+ const updateItemParams = {
34
+ TableName: tableName,
35
+ Key: {
36
+ key: {
37
+ S: key,
38
+ },
39
+ },
40
+ UpdateExpression: updateExpressions.join(', '),
41
+ ExpressionAttributeNames: expressionAttributeNames,
42
+ ExpressionAttributeValues: expressionAttributeValues,
43
+ };
44
+ console.log('updateItemParams:', JSON.stringify(updateItemParams, null, 2));
45
+ try {
46
+ yield dynamoClient.send(new client_dynamodb_1.UpdateItemCommand(updateItemParams));
47
+ }
48
+ catch (error) {
49
+ console.error('Error updating item:', error);
50
+ throw error;
51
+ }
52
+ });
53
+ }
54
+ exports.updateItem = updateItem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quidproquo-actionprocessor-awslambda",
3
- "version": "0.0.90",
3
+ "version": "0.0.91",
4
4
  "description": "",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.js",
@@ -29,6 +29,7 @@
29
29
  "@aws-sdk/client-cloudformation": "^3.278.0",
30
30
  "@aws-sdk/client-cloudfront": "^3.289.0",
31
31
  "@aws-sdk/client-cognito-identity-provider": "^3.278.0",
32
+ "@aws-sdk/client-dynamodb": "^3.310.0",
32
33
  "@aws-sdk/client-lambda": "^3.278.0",
33
34
  "@aws-sdk/client-s3": "^3.278.0",
34
35
  "@aws-sdk/client-secrets-manager": "^3.278.0",