quidproquo-actionprocessor-awslambda 0.0.84 → 0.0.86
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/lib/getActionProcessor/core/event/getServiceFunctionExecuteEventActionProcessor.d.ts +14 -0
- package/lib/getActionProcessor/core/event/getServiceFunctionExecuteEventActionProcessor.js +55 -0
- package/lib/getActionProcessor/core/index.d.ts +1 -0
- package/lib/getActionProcessor/core/index.js +3 -1
- package/lib/getActionProcessor/webserver/index.d.ts +1 -0
- package/lib/getActionProcessor/webserver/index.js +3 -1
- package/lib/getActionProcessor/webserver/serviceFunction/getServiceFunctionActionProcessor.d.ts +6 -0
- package/lib/getActionProcessor/webserver/serviceFunction/getServiceFunctionActionProcessor.js +38 -0
- package/lib/getActionProcessor/webserver/serviceFunction/index.d.ts +5 -0
- package/lib/getActionProcessor/webserver/serviceFunction/index.js +7 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/logic/lambda/executeLambdaByName.d.ts +1 -0
- package/lib/logic/lambda/executeLambdaByName.js +33 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +17 -0
- package/package.json +2 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { QPQConfig, MatchStoryResult, EventMatchStoryActionProcessor, EventTransformEventParamsActionProcessor, EventTransformResponseResultActionProcessor, EventAutoRespondActionProcessor } from 'quidproquo-core';
|
|
2
|
+
import { ExecuteServiceFunctionEvent } from 'quidproquo-webserver';
|
|
3
|
+
import { Context } from 'aws-lambda';
|
|
4
|
+
export type ServiceFunctionMatchStoryResult = MatchStoryResult<unknown, unknown>;
|
|
5
|
+
export type ServiceFunctionExecuteEventParams = [ExecuteServiceFunctionEvent<any>, Context];
|
|
6
|
+
export type TransformedServiceFunctionExecuteEventParams = ExecuteServiceFunctionEvent<any>;
|
|
7
|
+
export type ServiceFunctionExecuteEventResponse = any;
|
|
8
|
+
declare const _default: (qpqConfig: QPQConfig) => {
|
|
9
|
+
"@quidproquo-core/event/TransformEventParams": EventTransformEventParamsActionProcessor<ServiceFunctionExecuteEventParams, TransformedServiceFunctionExecuteEventParams>;
|
|
10
|
+
"@quidproquo-core/event/TransformResponseResult": EventTransformResponseResultActionProcessor<any, TransformedServiceFunctionExecuteEventParams, any>;
|
|
11
|
+
"@quidproquo-core/event/AutoRespond": EventAutoRespondActionProcessor<any, ServiceFunctionMatchStoryResult, any>;
|
|
12
|
+
"@quidproquo-core/event/MatchStory": EventMatchStoryActionProcessor<TransformedServiceFunctionExecuteEventParams, ServiceFunctionMatchStoryResult>;
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,55 @@
|
|
|
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 quidproquo_webserver_1 = require("quidproquo-webserver");
|
|
14
|
+
const transformHttpEventHeadersToAPIGatewayProxyResultHeaders = (headers) => {
|
|
15
|
+
return Object.keys(headers)
|
|
16
|
+
.filter((header) => !!headers[header])
|
|
17
|
+
.reduce((acc, header) => (Object.assign(Object.assign({}, acc), { [header]: headers[header] })), {});
|
|
18
|
+
};
|
|
19
|
+
const getProcessTransformEventParams = (qpqConfig) => {
|
|
20
|
+
return ({ eventParams: [executeServiceFunctionEvent, context] }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
return (0, quidproquo_core_1.actionResult)(executeServiceFunctionEvent);
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const getProcessTransformResponseResult = (qpqConfig) => {
|
|
25
|
+
return (payload) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
return (0, quidproquo_core_1.actionResult)(payload.response);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
const getProcessAutoRespond = (qpqConfig) => {
|
|
30
|
+
return (payload) => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
+
return (0, quidproquo_core_1.actionResult)(null);
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const getProcessMatchStory = (qpqConfig) => {
|
|
35
|
+
const serviceFunctions = quidproquo_webserver_1.qpqWebServerUtils.getAllServiceFunctions(qpqConfig);
|
|
36
|
+
return ({ transformedEventParams }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
+
// Find the most relevant match
|
|
38
|
+
const matchedRoute = serviceFunctions.find((sf) => sf.functionName === transformedEventParams.functionName);
|
|
39
|
+
if (!matchedRoute) {
|
|
40
|
+
return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.NotFound, `service function not found [${transformedEventParams.functionName}]`);
|
|
41
|
+
}
|
|
42
|
+
return (0, quidproquo_core_1.actionResult)({
|
|
43
|
+
src: matchedRoute.src,
|
|
44
|
+
runtime: matchedRoute.runtime,
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
exports.default = (qpqConfig) => {
|
|
49
|
+
return {
|
|
50
|
+
[quidproquo_core_1.EventActionType.TransformEventParams]: getProcessTransformEventParams(qpqConfig),
|
|
51
|
+
[quidproquo_core_1.EventActionType.TransformResponseResult]: getProcessTransformResponseResult(qpqConfig),
|
|
52
|
+
[quidproquo_core_1.EventActionType.AutoRespond]: getProcessAutoRespond(qpqConfig),
|
|
53
|
+
[quidproquo_core_1.EventActionType.MatchStory]: getProcessMatchStory(qpqConfig),
|
|
54
|
+
};
|
|
55
|
+
};
|
|
@@ -4,6 +4,7 @@ export { default as getConfigGetParametersActionProcessor } from './config/getCo
|
|
|
4
4
|
export { default as getAPIGatewayEventActionProcessor } from './event/getAPIGatewayEventActionProcessor';
|
|
5
5
|
export { default as getCloudFrontOriginRequestEventActionProcessor } from './event/getCloudFrontOriginRequestEventActionProcessor';
|
|
6
6
|
export { default as getSQSEventRecordActionProcessor } from './event/getSQSEventRecordActionProcessor';
|
|
7
|
+
export { default as getServiceFunctionExecuteEventActionProcessor } from './event/getServiceFunctionExecuteEventActionProcessor';
|
|
7
8
|
export { default as getEventBridgeEventActionProcessor } from './event/getEventBridgeEventActionProcessor';
|
|
8
9
|
export { default as getSystemActionProcessor } from './system';
|
|
9
10
|
export { default as getFileActionProcessor } from './file';
|
|
@@ -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.getSQSEventRecordActionProcessor = exports.getCloudFrontOriginRequestEventActionProcessor = exports.getAPIGatewayEventActionProcessor = exports.getConfigGetParametersActionProcessor = exports.getConfigGetParameterActionProcessor = exports.getConfigGetSecretActionProcessor = void 0;
|
|
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;
|
|
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");
|
|
@@ -16,6 +16,8 @@ var getCloudFrontOriginRequestEventActionProcessor_1 = require("./event/getCloud
|
|
|
16
16
|
Object.defineProperty(exports, "getCloudFrontOriginRequestEventActionProcessor", { enumerable: true, get: function () { return __importDefault(getCloudFrontOriginRequestEventActionProcessor_1).default; } });
|
|
17
17
|
var getSQSEventRecordActionProcessor_1 = require("./event/getSQSEventRecordActionProcessor");
|
|
18
18
|
Object.defineProperty(exports, "getSQSEventRecordActionProcessor", { enumerable: true, get: function () { return __importDefault(getSQSEventRecordActionProcessor_1).default; } });
|
|
19
|
+
var getServiceFunctionExecuteEventActionProcessor_1 = require("./event/getServiceFunctionExecuteEventActionProcessor");
|
|
20
|
+
Object.defineProperty(exports, "getServiceFunctionExecuteEventActionProcessor", { enumerable: true, get: function () { return __importDefault(getServiceFunctionExecuteEventActionProcessor_1).default; } });
|
|
19
21
|
var getEventBridgeEventActionProcessor_1 = require("./event/getEventBridgeEventActionProcessor");
|
|
20
22
|
Object.defineProperty(exports, "getEventBridgeEventActionProcessor", { enumerable: true, get: function () { return __importDefault(getEventBridgeEventActionProcessor_1).default; } });
|
|
21
23
|
var system_1 = require("./system");
|
|
@@ -3,6 +3,8 @@ 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.getWebEntryActionProcessor = void 0;
|
|
6
|
+
exports.getServiceFunctionActionProcessor = exports.getWebEntryActionProcessor = void 0;
|
|
7
7
|
var webEntry_1 = require("./webEntry");
|
|
8
8
|
Object.defineProperty(exports, "getWebEntryActionProcessor", { enumerable: true, get: function () { return __importDefault(webEntry_1).default; } });
|
|
9
|
+
var serviceFunction_1 = require("./serviceFunction");
|
|
10
|
+
Object.defineProperty(exports, "getServiceFunctionActionProcessor", { enumerable: true, get: function () { return __importDefault(serviceFunction_1).default; } });
|
package/lib/getActionProcessor/webserver/serviceFunction/getServiceFunctionActionProcessor.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { ServiceFunctionExecuteActionProcessor } from 'quidproquo-webserver';
|
|
3
|
+
declare const _default: (qpqConfig: QPQConfig) => {
|
|
4
|
+
"@quidproquo-webserver/ServiceFunction/Execute": ServiceFunctionExecuteActionProcessor<any, any>;
|
|
5
|
+
};
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,38 @@
|
|
|
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 quidproquo_webserver_1 = require("quidproquo-webserver");
|
|
14
|
+
const executeLambdaByName_1 = require("../../../logic/lambda/executeLambdaByName");
|
|
15
|
+
const awsNamingUtils_1 = require("../../../awsNamingUtils");
|
|
16
|
+
const getServiceFunctionExecuteActionProcessor = (qpqConfig) => {
|
|
17
|
+
return ({ functionName, service, payload }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
const region = quidproquo_core_1.qpqCoreUtils.getApplicationModuleDeployRegion(qpqConfig);
|
|
19
|
+
const appName = quidproquo_core_1.qpqCoreUtils.getApplicationName(qpqConfig);
|
|
20
|
+
const environment = quidproquo_core_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);
|
|
21
|
+
const feature = quidproquo_core_1.qpqCoreUtils.getApplicationModuleFeature(qpqConfig);
|
|
22
|
+
const awsFunctionName = (0, awsNamingUtils_1.getConfigRuntimeResourceName)(`${functionName}-sfunc`, appName, service, environment, feature);
|
|
23
|
+
const serviceFunctionEvent = {
|
|
24
|
+
functionName: functionName,
|
|
25
|
+
payload: payload,
|
|
26
|
+
};
|
|
27
|
+
const result = yield (0, executeLambdaByName_1.executeLambdaByName)(awsFunctionName, region, serviceFunctionEvent);
|
|
28
|
+
if (result === null || result === void 0 ? void 0 : result.error) {
|
|
29
|
+
return (0, quidproquo_core_1.actionResultError)(result === null || result === void 0 ? void 0 : result.error.errorType, result === null || result === void 0 ? void 0 : result.error.errorText, result === null || result === void 0 ? void 0 : result.error.errorStack);
|
|
30
|
+
}
|
|
31
|
+
return (0, quidproquo_core_1.actionResult)(result === null || result === void 0 ? void 0 : result.result);
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
exports.default = (qpqConfig) => {
|
|
35
|
+
return {
|
|
36
|
+
[quidproquo_webserver_1.ServiceFunctionActionType.Execute]: getServiceFunctionExecuteActionProcessor(qpqConfig),
|
|
37
|
+
};
|
|
38
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
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 getServiceFunctionActionProcessor_1 = __importDefault(require("./getServiceFunctionActionProcessor"));
|
|
7
|
+
exports.default = (qpqConfig) => (Object.assign({}, (0, getServiceFunctionActionProcessor_1.default)(qpqConfig)));
|
package/lib/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export * from './getActionProcessor';
|
|
|
2
2
|
export * as awsLambdaUtils from './awsLambdaUtils';
|
|
3
3
|
export * as awsNamingUtils from './awsNamingUtils';
|
|
4
4
|
export * from './runtimeConfig/QPQAWSResourceMap';
|
|
5
|
-
export * from './types
|
|
5
|
+
export * from './types';
|
|
6
6
|
export * from './logic/parametersManager/getParameter';
|
package/lib/index.js
CHANGED
|
@@ -31,5 +31,5 @@ __exportStar(require("./getActionProcessor"), exports);
|
|
|
31
31
|
exports.awsLambdaUtils = __importStar(require("./awsLambdaUtils"));
|
|
32
32
|
exports.awsNamingUtils = __importStar(require("./awsNamingUtils"));
|
|
33
33
|
__exportStar(require("./runtimeConfig/QPQAWSResourceMap"), exports);
|
|
34
|
-
__exportStar(require("./types
|
|
34
|
+
__exportStar(require("./types"), exports);
|
|
35
35
|
__exportStar(require("./logic/parametersManager/getParameter"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const executeLambdaByName: <R>(functionName: string, region: string, payload: any) => Promise<R | undefined>;
|
|
@@ -0,0 +1,33 @@
|
|
|
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.executeLambdaByName = void 0;
|
|
13
|
+
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
14
|
+
const executeLambdaByName = (functionName, region, payload) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
const lambda = new client_lambda_1.LambdaClient({ region });
|
|
16
|
+
const encoder = new TextEncoder();
|
|
17
|
+
const encodedPayload = encoder.encode(JSON.stringify(payload));
|
|
18
|
+
const response = yield lambda.send(new client_lambda_1.InvokeCommand({
|
|
19
|
+
FunctionName: functionName,
|
|
20
|
+
Payload: encodedPayload,
|
|
21
|
+
InvocationType: 'RequestResponse',
|
|
22
|
+
}));
|
|
23
|
+
if (response.FunctionError) {
|
|
24
|
+
throw new Error(response.FunctionError);
|
|
25
|
+
}
|
|
26
|
+
if (response.Payload) {
|
|
27
|
+
const jsonString = new TextDecoder().decode(response.Payload);
|
|
28
|
+
const object = JSON.parse(jsonString);
|
|
29
|
+
return object;
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
});
|
|
33
|
+
exports.executeLambdaByName = executeLambdaByName;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './DynamicLoader';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./DynamicLoader"), exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quidproquo-actionprocessor-awslambda",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.86",
|
|
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-lambda": "^3.278.0",
|
|
32
33
|
"@aws-sdk/client-s3": "^3.278.0",
|
|
33
34
|
"@aws-sdk/client-secrets-manager": "^3.278.0",
|
|
34
35
|
"@aws-sdk/client-sns": "^3.279.0",
|