quidproquo-deploy-awscdk 0.0.91 → 0.0.92

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 (63) hide show
  1. package/lib/constants/index.d.ts +1 -0
  2. package/lib/constants/index.js +17 -0
  3. package/lib/constants/logging.d.ts +1 -0
  4. package/lib/constants/logging.js +4 -0
  5. package/lib/constructs/basic/Function.d.ts +1 -0
  6. package/lib/constructs/basic/Function.js +2 -1
  7. package/lib/constructs/basic/LogStorage.d.ts +20 -0
  8. package/lib/constructs/basic/LogStorage.js +97 -0
  9. package/lib/constructs/basic/index.d.ts +1 -0
  10. package/lib/constructs/basic/index.js +1 -0
  11. package/lib/constructs/feature/core/queue/QpqApiCoreQueueConstruct.js +1 -1
  12. package/lib/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.js +1 -0
  13. package/lib/lambdas/dynamicModuleLoader/dynamicModuleLoader.d.ts +1 -0
  14. package/lib/lambdas/dynamicModuleLoader/dynamicModuleLoader.js +29 -0
  15. package/lib/lambdas/dynamicModuleLoader/index.d.ts +1 -0
  16. package/lib/lambdas/dynamicModuleLoader/index.js +17 -0
  17. package/lib/lambdas/lambdaAPIGatewayEvent.d.ts +1 -2
  18. package/lib/lambdas/lambdaAPIGatewayEvent.js +6 -18
  19. package/lib/lambdas/lambdaEventBridgeEvent.js +5 -7
  20. package/lib/lambdas/lambdaEventOriginRequest.js +5 -7
  21. package/lib/lambdas/lambdaS3FileWriteEvent_log.d.ts +2 -0
  22. package/lib/lambdas/lambdaS3FileWriteEvent_log.js +63 -0
  23. package/lib/lambdas/lambdaSQSEvent.js +5 -7
  24. package/lib/lambdas/lambdaServiceFunctionExecute.js +5 -15
  25. package/lib/lambdas/logger/logger.d.ts +3 -0
  26. package/lib/lambdas/logger/logger.js +31 -0
  27. package/lib/lambdas/storyResultToMetadata/genericTextExtractors/apiGenericTextExtractor.d.ts +2 -0
  28. package/lib/lambdas/storyResultToMetadata/genericTextExtractors/apiGenericTextExtractor.js +12 -0
  29. package/lib/lambdas/storyResultToMetadata/genericTextExtractors/index.d.ts +2 -0
  30. package/lib/lambdas/storyResultToMetadata/genericTextExtractors/index.js +18 -0
  31. package/lib/lambdas/storyResultToMetadata/genericTextExtractors/unknownGenericTextExtractor.d.ts +2 -0
  32. package/lib/lambdas/storyResultToMetadata/genericTextExtractors/unknownGenericTextExtractor.js +7 -0
  33. package/lib/lambdas/storyResultToMetadata/index.d.ts +2 -0
  34. package/lib/lambdas/storyResultToMetadata/index.js +18 -0
  35. package/lib/lambdas/storyResultToMetadata/storyResultToMetadata.d.ts +2 -0
  36. package/lib/lambdas/storyResultToMetadata/storyResultToMetadata.js +34 -0
  37. package/lib/stacks/InfQpqServiceStack.js +5 -0
  38. package/lib/utils/qpqDeployAwsCdkUtils.d.ts +1 -0
  39. package/lib/utils/qpqDeployAwsCdkUtils.js +9 -1
  40. package/package.json +1 -1
  41. package/src/constants/index.ts +1 -0
  42. package/src/constants/logging.ts +1 -0
  43. package/src/constructs/basic/Function.ts +6 -3
  44. package/src/constructs/basic/LogStorage.ts +110 -0
  45. package/src/constructs/basic/index.ts +1 -0
  46. package/src/constructs/feature/core/queue/QpqApiCoreQueueConstruct.ts +1 -1
  47. package/src/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.ts +2 -0
  48. package/src/lambdas/dynamicModuleLoader/dynamicModuleLoader.ts +17 -0
  49. package/src/lambdas/dynamicModuleLoader/index.ts +1 -0
  50. package/src/lambdas/lambdaAPIGatewayEvent.ts +11 -22
  51. package/src/lambdas/lambdaEventBridgeEvent.ts +10 -9
  52. package/src/lambdas/lambdaEventOriginRequest.ts +10 -10
  53. package/src/lambdas/lambdaS3FileWriteEvent_log.ts +72 -0
  54. package/src/lambdas/lambdaSQSEvent.ts +10 -16
  55. package/src/lambdas/lambdaServiceFunctionExecute.ts +10 -17
  56. package/src/lambdas/logger/logger.ts +33 -0
  57. package/src/lambdas/storyResultToMetadata/genericTextExtractors/apiGenericTextExtractor.ts +15 -0
  58. package/src/lambdas/storyResultToMetadata/genericTextExtractors/index.ts +2 -0
  59. package/src/lambdas/storyResultToMetadata/genericTextExtractors/unknownGenericTextExtractor.ts +5 -0
  60. package/src/lambdas/storyResultToMetadata/index.ts +2 -0
  61. package/src/lambdas/storyResultToMetadata/storyResultToMetadata.ts +38 -0
  62. package/src/stacks/InfQpqServiceStack.ts +7 -0
  63. package/src/utils/qpqDeployAwsCdkUtils.ts +20 -0
@@ -0,0 +1 @@
1
+ export * from './logging';
@@ -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("./logging"), exports);
@@ -0,0 +1 @@
1
+ export declare const QPQ_LOG_BUCKET_NAME = "logs";
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QPQ_LOG_BUCKET_NAME = void 0;
4
+ exports.QPQ_LOG_BUCKET_NAME = 'logs';
@@ -4,6 +4,7 @@ import { aws_lambda } from 'aws-cdk-lib';
4
4
  export interface FunctionProps extends QpqConstructBlockProps {
5
5
  functionName: string;
6
6
  buildPath: string;
7
+ srcFilename?: string;
7
8
  functionType: string;
8
9
  executorName: string;
9
10
  timeoutInSeconds?: number;
@@ -34,6 +34,7 @@ const cdk = __importStar(require("aws-cdk-lib"));
34
34
  class Function extends QpqConstructBlock_1.QpqConstructBlock {
35
35
  constructor(scope, id, props) {
36
36
  super(scope, id, props);
37
+ const handlerFile = props.srcFilename || 'index';
37
38
  this.lambdaFunction = new aws_cdk_lib_1.aws_lambda.Function(this, 'function', {
38
39
  functionName: props.functionName,
39
40
  timeout: cdk.Duration.seconds(props.timeoutInSeconds || 25),
@@ -41,7 +42,7 @@ class Function extends QpqConstructBlock_1.QpqConstructBlock {
41
42
  memorySize: props.memoryInBytes || 1024,
42
43
  layers: props.apiLayerVersions,
43
44
  code: aws_cdk_lib_1.aws_lambda.Code.fromAsset(path_1.default.join(props.buildPath, props.functionType)),
44
- handler: `index.${props.executorName}`,
45
+ handler: `${handlerFile}.${props.executorName}`,
45
46
  environment: props.environment,
46
47
  reservedConcurrentExecutions: props.reservedConcurrentExecutions,
47
48
  });
@@ -0,0 +1,20 @@
1
+ import { QpqConstructBlock, QpqConstructBlockProps } from '../base/QpqConstructBlock';
2
+ import { Construct } from 'constructs';
3
+ import { aws_s3, aws_iam, aws_dynamodb } from 'aws-cdk-lib';
4
+ import { QpqResource } from '../base';
5
+ import { QPQConfig } from 'quidproquo-core/lib';
6
+ export interface LogStorageProps extends QpqConstructBlockProps {
7
+ }
8
+ export declare abstract class LogStorageConstructBase extends QpqConstructBlock implements QpqResource {
9
+ abstract bucket: aws_s3.IBucket;
10
+ abstract table: aws_dynamodb.ITable;
11
+ grantRead(grantee: aws_iam.IGrantable): aws_iam.Grant;
12
+ grantWrite(grantee: aws_iam.IGrantable): aws_iam.Grant;
13
+ grantAll(grantee: aws_iam.IGrantable): void;
14
+ }
15
+ export declare class LogStorage extends QpqConstructBlock {
16
+ readonly bucket: aws_s3.IBucket;
17
+ readonly table: aws_dynamodb.ITable;
18
+ static fromOtherStack(scope: Construct, id: string, qpqConfig: QPQConfig, awsAccountId: string, serviceBucketName: string): QpqResource;
19
+ constructor(scope: Construct, id: string, props: LogStorageProps);
20
+ }
@@ -0,0 +1,97 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.LogStorage = exports.LogStorageConstructBase = void 0;
30
+ const path_1 = __importDefault(require("path"));
31
+ const QpqConstructBlock_1 = require("../base/QpqConstructBlock");
32
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
33
+ const cdk = __importStar(require("aws-cdk-lib"));
34
+ const constants_1 = require("../../constants");
35
+ const Function_1 = require("./Function");
36
+ class LogStorageConstructBase extends QpqConstructBlock_1.QpqConstructBlock {
37
+ grantRead(grantee) {
38
+ this.table.grantReadData(grantee);
39
+ return this.bucket.grantRead(grantee);
40
+ }
41
+ grantWrite(grantee) {
42
+ this.table.grantWriteData(grantee);
43
+ return this.bucket.grantWrite(grantee);
44
+ }
45
+ grantAll(grantee) {
46
+ this.grantRead(grantee);
47
+ this.grantWrite(grantee);
48
+ }
49
+ }
50
+ exports.LogStorageConstructBase = LogStorageConstructBase;
51
+ class LogStorage extends QpqConstructBlock_1.QpqConstructBlock {
52
+ static fromOtherStack(scope, id, qpqConfig, awsAccountId, serviceBucketName) {
53
+ class Import extends LogStorageConstructBase {
54
+ constructor() {
55
+ super(...arguments);
56
+ this.bucket = aws_cdk_lib_1.aws_s3.Bucket.fromBucketName(scope, `${id}-log-storage`, this.qpqResourceName(serviceBucketName, 'log'));
57
+ this.table = aws_cdk_lib_1.aws_dynamodb.Table.fromTableName(scope, `${id}-table`, this.qpqResourceName(serviceBucketName, 'log'));
58
+ }
59
+ }
60
+ return new Import(scope, id, { qpqConfig, awsAccountId });
61
+ }
62
+ constructor(scope, id, props) {
63
+ super(scope, id, props);
64
+ this.bucket = new aws_cdk_lib_1.aws_s3.Bucket(this, 'bucket', {
65
+ bucketName: this.qpqResourceName(constants_1.QPQ_LOG_BUCKET_NAME, 'log'),
66
+ // Disable public access to this bucket
67
+ publicReadAccess: false,
68
+ blockPublicAccess: aws_cdk_lib_1.aws_s3.BlockPublicAccess.BLOCK_ALL,
69
+ // Allow bucket to auto delete upon cdk:Destroy
70
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
71
+ autoDeleteObjects: true,
72
+ });
73
+ const storyResultsTable = new aws_cdk_lib_1.aws_dynamodb.Table(this, 'table', {
74
+ tableName: this.qpqResourceName(constants_1.QPQ_LOG_BUCKET_NAME, 'log'),
75
+ partitionKey: { name: 'runtimeType', type: aws_cdk_lib_1.aws_dynamodb.AttributeType.STRING },
76
+ sortKey: { name: 'startedAtWithCorrelation', type: aws_cdk_lib_1.aws_dynamodb.AttributeType.STRING },
77
+ billingMode: aws_cdk_lib_1.aws_dynamodb.BillingMode.PAY_PER_REQUEST,
78
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
79
+ });
80
+ this.table = storyResultsTable;
81
+ // Create a lambda that is trigged when files are written to the bucket
82
+ const func = new Function_1.Function(this, 'function', {
83
+ buildPath: path_1.default.join(__dirname, '../..'),
84
+ functionName: this.qpqResourceName(constants_1.QPQ_LOG_BUCKET_NAME, 'log'),
85
+ functionType: 'lambdas',
86
+ executorName: 'executeS3FileWriteEvent',
87
+ srcFilename: 'lambdaS3FileWriteEvent_log',
88
+ qpqConfig: props.qpqConfig,
89
+ awsAccountId: props.awsAccountId,
90
+ });
91
+ // Grant the Lambda function read access to the S3 bucket / dynamo table
92
+ this.bucket.grantRead(func.lambdaFunction);
93
+ storyResultsTable.grantWriteData(func.lambdaFunction);
94
+ this.bucket.addEventNotification(aws_cdk_lib_1.aws_s3.EventType.OBJECT_CREATED, new aws_cdk_lib_1.aws_s3_notifications.LambdaDestination(func.lambdaFunction));
95
+ }
96
+ }
97
+ exports.LogStorage = LogStorage;
@@ -1,3 +1,4 @@
1
1
  export * from './Function';
2
2
  export * from './LambdaLayers';
3
3
  export * from './SubdomainName';
4
+ export * from './LogStorage';
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Function"), exports);
18
18
  __exportStar(require("./LambdaLayers"), exports);
19
19
  __exportStar(require("./SubdomainName"), exports);
20
+ __exportStar(require("./LogStorage"), exports);
@@ -47,7 +47,7 @@ class QpqApiCoreQueueConstruct extends QpqConstructBlock_1.QpqConstructBlock {
47
47
  queueQPQConfigSetting: JSON.stringify(props.queueConfig),
48
48
  },
49
49
  // TODO: Expose this as a config option
50
- reservedConcurrentExecutions: 1,
50
+ reservedConcurrentExecutions: props.queueConfig.maxConcurrentExecutions,
51
51
  });
52
52
  // TODO: Make this a utility function
53
53
  const grantables = qpqDeployAwsCdkUtils.getQqpGrantableResources(this, 'grantable', this.qpqConfig, props.awsAccountId);
@@ -37,6 +37,7 @@ class QpqWebserverServiceFunctionConstruct extends QpqConstructBlock_1.QpqConstr
37
37
  functionName: this.resourceName(`${props.serviceFunctionConfig.functionName}-sfunc`),
38
38
  functionType: 'lambdaServiceFunctionExecute',
39
39
  executorName: 'executeServiceFunctionExecuteEvent',
40
+ timeoutInSeconds: 14.5 * 60,
40
41
  qpqConfig: props.qpqConfig,
41
42
  apiLayerVersions: props.apiLayerVersions,
42
43
  awsAccountId: props.awsAccountId,
@@ -0,0 +1 @@
1
+ export declare const dynamicModuleLoader: (modulePath: string) => Promise<any>;
@@ -0,0 +1,29 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.dynamicModuleLoader = void 0;
16
+ // @ts-ignore - Special webpack loader
17
+ const qpq_dynamic_loader_1 = __importDefault(require("qpq-dynamic-loader!"));
18
+ const quidproquo_webserver_1 = require("quidproquo-webserver");
19
+ const dynamicModuleLoader = (modulePath) => __awaiter(void 0, void 0, void 0, function* () {
20
+ console.log(`Trying to load: ${modulePath}`);
21
+ const module = yield (0, quidproquo_webserver_1.serviceImporter)(modulePath);
22
+ if (module) {
23
+ console.log(`Service module found!`);
24
+ return module;
25
+ }
26
+ console.log(`using qpqDynamicModuleLoader`);
27
+ return (0, qpq_dynamic_loader_1.default)(modulePath);
28
+ });
29
+ exports.dynamicModuleLoader = dynamicModuleLoader;
@@ -0,0 +1 @@
1
+ export * from './dynamicModuleLoader';
@@ -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("./dynamicModuleLoader"), exports);
@@ -1,7 +1,6 @@
1
- import { DynamicModuleLoader } from 'quidproquo-actionprocessor-awslambda';
2
1
  import { Context } from 'aws-lambda';
3
2
  import { ActionProcessorListResolver } from './actionProcessorListResolver';
4
- export declare const getAPIGatewayEventExecutor: (dynamicModuleLoader: DynamicModuleLoader, getCustomActionProcessors?: ActionProcessorListResolver) => (event: import("aws-lambda").APIGatewayProxyEvent, context: Context) => Promise<{
3
+ export declare const getAPIGatewayEventExecutor: (getCustomActionProcessors?: ActionProcessorListResolver) => (event: import("aws-lambda").APIGatewayProxyEvent, context: Context) => Promise<{
5
4
  statusCode: any;
6
5
  body: any;
7
6
  headers: any;
@@ -18,8 +18,8 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
18
18
  const quidproquo_webserver_1 = require("quidproquo-webserver");
19
19
  const quidproquo_core_1 = require("quidproquo-core");
20
20
  const lambdaConfig_1 = require("./lambdaConfig");
21
- // @ts-ignore - Special webpack loader
22
- const qpq_dynamic_loader_1 = __importDefault(require("qpq-dynamic-loader!"));
21
+ const logger_1 = require("./logger/logger");
22
+ const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
23
23
  // @ts-ignore - Special webpack loader
24
24
  const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
25
25
  // TODO: Make this a util or something based on server time or something..
@@ -39,25 +39,13 @@ const ErrorTypeHttpResponseMap = {
39
39
  [quidproquo_core_1.ErrorTypeEnum.NoContent]: 204,
40
40
  [quidproquo_core_1.ErrorTypeEnum.Invalid]: 422,
41
41
  };
42
- const getAPIGatewayEventExecutor = (dynamicModuleLoader, getCustomActionProcessors = () => ({})) => {
42
+ const getAPIGatewayEventExecutor = (getCustomActionProcessors = () => ({})) => {
43
43
  return (event, context) => __awaiter(void 0, void 0, void 0, function* () {
44
44
  const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
45
45
  // Build a processor for the session and stuff
46
46
  // Remove the non route ones ~ let the story execute action add them
47
- const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getAPIGatewayEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_1.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
48
- const logger = (result) => __awaiter(void 0, void 0, void 0, function* () {
49
- // addResult(
50
- // envConfig.appName,
51
- // getDateNow(),
52
- // doWeCarePath,
53
- // "route-infrastructure",
54
- // "infrastructure",
55
- // "askRoute",
56
- // result
57
- // );
58
- });
59
- // // Run the callback
60
- const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
47
+ const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getAPIGatewayEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader_1.dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_1.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
48
+ const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.API);
61
49
  const result = yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
62
50
  // Run the callback
63
51
  if (!result.error) {
@@ -80,4 +68,4 @@ const getAPIGatewayEventExecutor = (dynamicModuleLoader, getCustomActionProcesso
80
68
  };
81
69
  exports.getAPIGatewayEventExecutor = getAPIGatewayEventExecutor;
82
70
  // Default executor
83
- exports.executeAPIGatewayEvent = (0, exports.getAPIGatewayEventExecutor)(qpq_dynamic_loader_1.default);
71
+ exports.executeAPIGatewayEvent = (0, exports.getAPIGatewayEventExecutor)();
@@ -18,8 +18,8 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
18
18
  const quidproquo_actionprocessor_node_2 = require("quidproquo-actionprocessor-node");
19
19
  const quidproquo_core_1 = require("quidproquo-core");
20
20
  const lambdaConfig_1 = require("./lambdaConfig");
21
- // @ts-ignore - Special webpack loader
22
- const qpq_dynamic_loader_1 = __importDefault(require("qpq-dynamic-loader!"));
21
+ const logger_1 = require("./logger/logger");
22
+ const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
23
23
  // @ts-ignore - Special webpack loader
24
24
  const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
25
25
  // TODO: Make this a util or something based on server time or something..
@@ -30,12 +30,10 @@ const getEventBridgeEventExecutor = (dynamicModuleLoader, getCustomActionProcess
30
30
  const lambdaRuntimeConfig = JSON.parse(process.env.lambdaRuntimeConfig || '{}');
31
31
  // Build a processor for the session and stuff
32
32
  // Remove the non event ones
33
- const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getEventBridgeEventActionProcessor)(lambdaRuntimeConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
34
- const logger = (result) => __awaiter(void 0, void 0, void 0, function* () { });
35
- // Run the callback
36
- const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
33
+ const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getEventBridgeEventActionProcessor)(lambdaRuntimeConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
34
+ const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.EVENT_BRIDGE_EVENT);
37
35
  yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
38
36
  });
39
37
  };
40
38
  exports.getEventBridgeEventExecutor = getEventBridgeEventExecutor;
41
- exports.executeEventBridgeEvent = (0, exports.getEventBridgeEventExecutor)(qpq_dynamic_loader_1.default);
39
+ exports.executeEventBridgeEvent = (0, exports.getEventBridgeEventExecutor)(dynamicModuleLoader_1.dynamicModuleLoader);
@@ -18,8 +18,8 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
18
18
  const quidproquo_actionprocessor_node_2 = require("quidproquo-actionprocessor-node");
19
19
  const lambdaConfig_1 = require("./lambdaConfig");
20
20
  const quidproquo_core_1 = require("quidproquo-core");
21
- // @ts-ignore - Special webpack loader
22
- const qpq_dynamic_loader_1 = __importDefault(require("qpq-dynamic-loader!"));
21
+ const logger_1 = require("./logger/logger");
22
+ const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
23
23
  // @ts-ignore - Special webpack loader
24
24
  const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
25
25
  // TODO: Make this a util or something based on server time or something..
@@ -30,10 +30,8 @@ const getOriginRequestEventExecutor = (dynamicModuleLoader, getCustomActionProce
30
30
  const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
31
31
  // Build a processor for the session and stuff
32
32
  // Remove the non route ones ~ let the story execute action add them
33
- const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getCloudFrontOriginRequestEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
34
- const logger = (result) => __awaiter(void 0, void 0, void 0, function* () { });
35
- // Run the callback
36
- const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
33
+ const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getCloudFrontOriginRequestEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
34
+ const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.EVENT_SEO_OR);
37
35
  const result = yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
38
36
  // Run the callback
39
37
  if (!result.error) {
@@ -71,4 +69,4 @@ const getOriginRequestEventExecutor = (dynamicModuleLoader, getCustomActionProce
71
69
  };
72
70
  exports.getOriginRequestEventExecutor = getOriginRequestEventExecutor;
73
71
  // Default executor
74
- exports.executeEventOriginRequest = (0, exports.getOriginRequestEventExecutor)(qpq_dynamic_loader_1.default);
72
+ exports.executeEventOriginRequest = (0, exports.getOriginRequestEventExecutor)(dynamicModuleLoader_1.dynamicModuleLoader);
@@ -0,0 +1,2 @@
1
+ import { S3Handler } from 'aws-lambda';
2
+ export declare const executeS3FileWriteEvent: S3Handler;
@@ -0,0 +1,63 @@
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.executeS3FileWriteEvent = void 0;
13
+ const client_s3_1 = require("@aws-sdk/client-s3");
14
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
15
+ const storyResultToMetadata_1 = require("./storyResultToMetadata");
16
+ const readLogFromBucket = (bucketName, region, key) => __awaiter(void 0, void 0, void 0, function* () {
17
+ var _a;
18
+ try {
19
+ const s3Client = new client_s3_1.S3Client({ region });
20
+ const response = yield s3Client.send(new client_s3_1.GetObjectCommand({
21
+ Key: key,
22
+ Bucket: bucketName,
23
+ }));
24
+ const storyResult = JSON.parse((yield ((_a = response.Body) === null || _a === void 0 ? void 0 : _a.transformToString())) || '{}');
25
+ return (0, storyResultToMetadata_1.storyResultToMetadata)(storyResult, key);
26
+ }
27
+ catch (err) {
28
+ console.log(`Error: ${bucketName}::${key} - ${err}`);
29
+ throw err;
30
+ }
31
+ });
32
+ const writeStoryResultMetadataToDynamo = (tableName, storyResultMetadata, region) => __awaiter(void 0, void 0, void 0, function* () {
33
+ const dynamoDBClient = new client_dynamodb_1.DynamoDBClient({ region });
34
+ const putItemCommand = new client_dynamodb_1.PutItemCommand({
35
+ TableName: tableName,
36
+ Item: {
37
+ startedAtWithCorrelation: {
38
+ S: `${storyResultMetadata.startedAt}#${storyResultMetadata.correlation}`,
39
+ },
40
+ runtimeType: { S: storyResultMetadata.runtimeType },
41
+ error: { S: storyResultMetadata.error || '' },
42
+ generic: { S: storyResultMetadata.generic },
43
+ moduleName: { S: storyResultMetadata.moduleName },
44
+ fromCorrelation: { S: storyResultMetadata.fromCorrelation || '' },
45
+ },
46
+ });
47
+ try {
48
+ yield dynamoDBClient.send(putItemCommand);
49
+ }
50
+ catch (err) {
51
+ console.error(`Failed to insert storyResultMetadata into DynamoDB: ${err}`);
52
+ }
53
+ });
54
+ const executeS3FileWriteEvent = (event) => __awaiter(void 0, void 0, void 0, function* () {
55
+ for (const record of event.Records) {
56
+ const bucketName = record.s3.bucket.name;
57
+ const awsRegion = record.awsRegion;
58
+ const key = record.s3.object.key;
59
+ const storyResultMetadata = yield readLogFromBucket(bucketName, awsRegion, key);
60
+ yield writeStoryResultMetadataToDynamo(bucketName, storyResultMetadata, awsRegion);
61
+ }
62
+ });
63
+ exports.executeS3FileWriteEvent = executeS3FileWriteEvent;
@@ -18,8 +18,8 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
18
18
  const quidproquo_actionprocessor_node_2 = require("quidproquo-actionprocessor-node");
19
19
  const lambdaConfig_1 = require("./lambdaConfig");
20
20
  const quidproquo_core_1 = require("quidproquo-core");
21
- // @ts-ignore - Special webpack loader
22
- const qpq_dynamic_loader_1 = __importDefault(require("qpq-dynamic-loader!"));
21
+ const logger_1 = require("./logger/logger");
22
+ const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
23
23
  // @ts-ignore - Special webpack loader
24
24
  const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
25
25
  // TODO: Make this a util or something based on server time or something..
@@ -28,10 +28,8 @@ const getStoryActionRuntime = (dynamicModuleLoader, getCustomActionProcessors =
28
28
  const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
29
29
  // Build a processor for the session and stuff
30
30
  // Remove the non route ones ~ let the story execute action add them
31
- const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getSQSEventRecordActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
32
- const logger = (result) => __awaiter(void 0, void 0, void 0, function* () { });
33
- // Run the callback
34
- const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
31
+ const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getSQSEventRecordActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
32
+ const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.QUEUE_EVENT);
35
33
  return resolveStory;
36
34
  });
37
35
  exports.getStoryActionRuntime = getStoryActionRuntime;
@@ -61,4 +59,4 @@ const getSQSEventExecutor = (dynamicModuleLoader, getCustomActionProcessors = ()
61
59
  };
62
60
  exports.getSQSEventExecutor = getSQSEventExecutor;
63
61
  // Default executor
64
- exports.executeSQSEvent = (0, exports.getSQSEventExecutor)(qpq_dynamic_loader_1.default);
62
+ exports.executeSQSEvent = (0, exports.getSQSEventExecutor)(dynamicModuleLoader_1.dynamicModuleLoader);
@@ -18,8 +18,9 @@ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocess
18
18
  const quidproquo_actionprocessor_node_2 = require("quidproquo-actionprocessor-node");
19
19
  const quidproquo_core_1 = require("quidproquo-core");
20
20
  const lambdaConfig_1 = require("./lambdaConfig");
21
+ const logger_1 = require("./logger/logger");
21
22
  // @ts-ignore - Special webpack loader
22
- const qpq_dynamic_loader_1 = __importDefault(require("qpq-dynamic-loader!"));
23
+ const dynamicModuleLoader_1 = require("./dynamicModuleLoader");
23
24
  // @ts-ignore - Special webpack loader
24
25
  const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
25
26
  // TODO: Make this a util or something based on server time or something..
@@ -29,19 +30,8 @@ const getServiceFunctionExecuteEventExecutor = (dynamicModuleLoader, getCustomAc
29
30
  const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
30
31
  // Build a processor for the session and stuff
31
32
  // Remove the non route ones ~ let the story execute action add them
32
- const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionExecuteEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
33
- const logger = (result) => __awaiter(void 0, void 0, void 0, function* () {
34
- // addResult(
35
- // envConfig.appName,
36
- // getDateNow(),
37
- // doWeCarePath,
38
- // "route-infrastructure",
39
- // "infrastructure",
40
- // "askRoute",
41
- // result
42
- // );
43
- });
44
- const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
33
+ const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionExecuteEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(cdkConfig.qpqConfig, dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getAdminActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
34
+ const resolveStory = (0, quidproquo_core_1.createRuntime)(cdkConfig.qpqConfig, {}, storyActionProcessor, getDateNow, (0, logger_1.getLogger)(cdkConfig.qpqConfig), quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid, quidproquo_core_1.QpqRuntimeType.SERVICE_FUNCTION_EXE);
45
35
  const result = yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
46
36
  // just return the story result
47
37
  return result;
@@ -49,4 +39,4 @@ const getServiceFunctionExecuteEventExecutor = (dynamicModuleLoader, getCustomAc
49
39
  };
50
40
  exports.getServiceFunctionExecuteEventExecutor = getServiceFunctionExecuteEventExecutor;
51
41
  // Default executor
52
- exports.executeServiceFunctionExecuteEvent = (0, exports.getServiceFunctionExecuteEventExecutor)(qpq_dynamic_loader_1.default);
42
+ exports.executeServiceFunctionExecuteEvent = (0, exports.getServiceFunctionExecuteEventExecutor)(dynamicModuleLoader_1.dynamicModuleLoader);
@@ -0,0 +1,3 @@
1
+ import { StoryResult, QPQConfig } from 'quidproquo-core';
2
+ export declare const storyLogger: (result: StoryResult<any>, qpqConfig: QPQConfig) => Promise<void>;
3
+ export declare const getLogger: (qpqConfig: QPQConfig) => (result: StoryResult<any>) => Promise<void>;
@@ -0,0 +1,31 @@
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.getLogger = exports.storyLogger = void 0;
13
+ const client_s3_1 = require("@aws-sdk/client-s3");
14
+ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocessor-awslambda");
15
+ const quidproquo_core_1 = require("quidproquo-core");
16
+ const constants_1 = require("../../constants");
17
+ const storyLogger = (result, qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const bucketName = quidproquo_actionprocessor_awslambda_1.awsNamingUtils.getQpqRuntimeResourceNameFromConfig(constants_1.QPQ_LOG_BUCKET_NAME, qpqConfig, 'log');
19
+ const region = quidproquo_core_1.qpqCoreUtils.getApplicationModuleDeployRegion(qpqConfig);
20
+ const s3Client = new client_s3_1.S3Client({ region });
21
+ yield s3Client.send(new client_s3_1.PutObjectCommand({
22
+ Key: `${result.correlation}.json`,
23
+ Bucket: bucketName,
24
+ Body: JSON.stringify(result),
25
+ }));
26
+ });
27
+ exports.storyLogger = storyLogger;
28
+ const getLogger = (qpqConfig) => (result) => __awaiter(void 0, void 0, void 0, function* () {
29
+ yield (0, exports.storyLogger)(result, qpqConfig);
30
+ });
31
+ exports.getLogger = getLogger;
@@ -0,0 +1,2 @@
1
+ import { StoryResult } from 'quidproquo-core';
2
+ export declare const apiGenericTextExtractor: (storyResult: StoryResult<any>) => string;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.apiGenericTextExtractor = void 0;
4
+ const apiGenericTextExtractor = (storyResult) => {
5
+ if (storyResult.runtimeType === 'API') {
6
+ const transformEventParams = storyResult.history.find((h) => h.act.type === '@quidproquo-core/event/TransformEventParams');
7
+ const result = transformEventParams === null || transformEventParams === void 0 ? void 0 : transformEventParams.res;
8
+ return (result === null || result === void 0 ? void 0 : result[0].path) || '';
9
+ }
10
+ return '';
11
+ };
12
+ exports.apiGenericTextExtractor = apiGenericTextExtractor;
@@ -0,0 +1,2 @@
1
+ export * from './apiGenericTextExtractor';
2
+ export * from './unknownGenericTextExtractor';