quidproquo-actionprocessor-awslambda 0.0.37 → 0.0.39
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/awsLambdaUtils.d.ts +6 -0
- package/lib/awsLambdaUtils.js +19 -0
- package/lib/getActionProcessor/core/config/getConfigGetParameterActionProcessor.d.ts +6 -0
- package/lib/getActionProcessor/core/config/getConfigGetParameterActionProcessor.js +26 -0
- package/lib/getActionProcessor/core/config/getConfigGetParametersActionProcessor.d.ts +6 -0
- package/lib/getActionProcessor/core/config/getConfigGetParametersActionProcessor.js +26 -0
- package/lib/getActionProcessor/core/config/getConfigGetSecretActionProcessor.d.ts +6 -0
- package/lib/getActionProcessor/core/config/getConfigGetSecretActionProcessor.js +26 -0
- package/lib/getActionProcessor/core/config/index.d.ts +7 -0
- package/lib/getActionProcessor/core/config/index.js +9 -0
- package/lib/getActionProcessor/core/event/getAPIGatewayEventActionProcessor.d.ts +10 -0
- package/lib/getActionProcessor/core/event/getAPIGatewayEventActionProcessor.js +95 -0
- package/lib/getActionProcessor/core/event/getEventBridgeEventActionProcessor.d.ts +10 -0
- package/lib/getActionProcessor/core/event/getEventBridgeEventActionProcessor.js +51 -0
- package/lib/getActionProcessor/core/file/getFileDeleteActionProcessor.d.ts +6 -0
- package/lib/getActionProcessor/core/file/getFileDeleteActionProcessor.js +31 -0
- package/lib/getActionProcessor/core/file/getFileExistsActionProcessor.d.ts +6 -0
- package/lib/getActionProcessor/core/file/getFileExistsActionProcessor.js +23 -0
- package/lib/getActionProcessor/core/file/getFileListDirectoryActionProcessor.d.ts +6 -0
- package/lib/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js +29 -0
- package/lib/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.d.ts +6 -0
- package/lib/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.js +23 -0
- package/lib/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.d.ts +6 -0
- package/lib/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js +24 -0
- package/lib/getActionProcessor/core/file/index.d.ts +9 -0
- package/lib/getActionProcessor/core/file/index.js +11 -0
- package/{src/getActionProcessor/core/index.ts → lib/getActionProcessor/core/index.d.ts} +0 -0
- package/lib/getActionProcessor/core/index.js +20 -0
- package/lib/getActionProcessor/core/system/getExecuteStoryActionProcessor.d.ts +7 -0
- package/lib/getActionProcessor/core/system/getExecuteStoryActionProcessor.js +45 -0
- package/lib/getActionProcessor/core/system/index.d.ts +5 -0
- package/lib/getActionProcessor/core/system/index.js +7 -0
- package/{src/getActionProcessor/index.ts → lib/getActionProcessor/index.d.ts} +0 -0
- package/lib/getActionProcessor/index.js +17 -0
- package/{src/index.ts → lib/index.d.ts} +0 -2
- package/lib/index.js +33 -0
- package/lib/logic/parametersManager/getParameter.d.ts +1 -0
- package/lib/logic/parametersManager/getParameter.js +22 -0
- package/lib/logic/parametersManager/getParameters.d.ts +1 -0
- package/lib/logic/parametersManager/getParameters.js +22 -0
- package/lib/logic/s3/deleteFiles.d.ts +1 -0
- package/lib/logic/s3/deleteFiles.js +29 -0
- package/lib/logic/s3/listFiles.d.ts +10 -0
- package/lib/logic/s3/listFiles.js +56 -0
- package/lib/logic/s3/objectExists.d.ts +1 -0
- package/lib/logic/s3/objectExists.js +30 -0
- package/lib/logic/s3/readTextFile.d.ts +1 -0
- package/lib/logic/s3/readTextFile.js +26 -0
- package/{src/logic/s3/s3Client.ts → lib/logic/s3/s3Client.d.ts} +1 -3
- package/lib/logic/s3/s3Client.js +5 -0
- package/{src/logic/s3/s3Utils.ts → lib/logic/s3/s3Utils.d.ts} +0 -0
- package/lib/logic/s3/s3Utils.js +21 -0
- package/lib/logic/s3/writeTextFile.d.ts +1 -0
- package/lib/logic/s3/writeTextFile.js +25 -0
- package/lib/logic/secretsManager/getSecret.d.ts +1 -0
- package/lib/logic/secretsManager/getSecret.js +21 -0
- package/lib/runtimeConfig/QPQAWSLambdaConfig.d.ts +12 -0
- package/lib/runtimeConfig/QPQAWSLambdaConfig.js +2 -0
- package/lib/runtimeConfig/qpqAwsLambdaRuntimeConfigUtils.d.ts +4 -0
- package/lib/runtimeConfig/qpqAwsLambdaRuntimeConfigUtils.js +15 -0
- package/{src/types/DynamicLoader.ts → lib/types/DynamicLoader.d.ts} +0 -0
- package/lib/types/DynamicLoader.js +2 -0
- package/package.json +4 -1
- package/src/awsLambdaUtils.ts +0 -22
- package/src/getActionProcessor/core/config/getConfigGetParameterActionProcessor.ts +0 -23
- package/src/getActionProcessor/core/config/getConfigGetParametersActionProcessor.ts +0 -27
- package/src/getActionProcessor/core/config/getConfigGetSecretActionProcessor.ts +0 -23
- package/src/getActionProcessor/core/config/index.ts +0 -11
- package/src/getActionProcessor/core/event/getAPIGatewayEventActionProcessor.ts +0 -134
- package/src/getActionProcessor/core/event/getEventBridgeEventActionProcessor.ts +0 -66
- package/src/getActionProcessor/core/file/getFileDeleteActionProcessor.ts +0 -31
- package/src/getActionProcessor/core/file/getFileExistsActionProcessor.ts +0 -16
- package/src/getActionProcessor/core/file/getFileListDirectoryActionProcessor.ts +0 -28
- package/src/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.ts +0 -18
- package/src/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.ts +0 -23
- package/src/getActionProcessor/core/file/index.ts +0 -15
- package/src/getActionProcessor/core/system/getExecuteStoryActionProcessor.ts +0 -67
- package/src/getActionProcessor/core/system/index.ts +0 -6
- package/src/logic/parametersManager/getParameter.ts +0 -13
- package/src/logic/parametersManager/getParameters.ts +0 -15
- package/src/logic/s3/deleteFiles.ts +0 -17
- package/src/logic/s3/listFiles.ts +0 -66
- package/src/logic/s3/objectExists.ts +0 -18
- package/src/logic/s3/readTextFile.ts +0 -14
- package/src/logic/s3/writeTextFile.ts +0 -17
- package/src/logic/secretsManager/getSecret.ts +0 -13
- package/src/runtimeConfig/QPQAWSLambdaConfig.ts +0 -15
- package/src/runtimeConfig/qpqAwsLambdaRuntimeConfigUtils.ts +0 -19
- package/tsconfig.json +0 -8
|
File without changes
|
|
@@ -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("./core"), exports);
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.awsLambdaUtils = void 0;
|
|
30
|
+
__exportStar(require("./getActionProcessor"), exports);
|
|
31
|
+
exports.awsLambdaUtils = __importStar(require("./awsLambdaUtils"));
|
|
32
|
+
__exportStar(require("./runtimeConfig/QPQAWSLambdaConfig"), exports);
|
|
33
|
+
__exportStar(require("./types/DynamicLoader"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getParameter: (parameterName: string) => Promise<string>;
|
|
@@ -0,0 +1,22 @@
|
|
|
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.getParameter = void 0;
|
|
13
|
+
const client_ssm_1 = require("@aws-sdk/client-ssm");
|
|
14
|
+
const smClient = new client_ssm_1.SSMClient({});
|
|
15
|
+
const getParameter = (parameterName) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
var _a;
|
|
17
|
+
const response = yield smClient.send(new client_ssm_1.GetParameterCommand({
|
|
18
|
+
Name: parameterName,
|
|
19
|
+
}));
|
|
20
|
+
return ((_a = response.Parameter) === null || _a === void 0 ? void 0 : _a.Value) || '';
|
|
21
|
+
});
|
|
22
|
+
exports.getParameter = getParameter;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getParameters: (parameterNames: string[]) => Promise<string[]>;
|
|
@@ -0,0 +1,22 @@
|
|
|
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.getParameters = void 0;
|
|
13
|
+
const client_ssm_1 = require("@aws-sdk/client-ssm");
|
|
14
|
+
const smClient = new client_ssm_1.SSMClient({});
|
|
15
|
+
const getParameters = (parameterNames) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
const response = yield smClient.send(new client_ssm_1.GetParametersCommand({
|
|
17
|
+
Names: parameterNames,
|
|
18
|
+
}));
|
|
19
|
+
const resolvedParams = response.Parameters || [];
|
|
20
|
+
return parameterNames.map((pn) => { var _a; return ((_a = resolvedParams.find((rp) => rp.Name == pn)) === null || _a === void 0 ? void 0 : _a.Value) || ''; });
|
|
21
|
+
});
|
|
22
|
+
exports.getParameters = getParameters;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const deleteFiles: (drive: string, filepaths: string[]) => Promise<string[]>;
|
|
@@ -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.deleteFiles = void 0;
|
|
16
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
17
|
+
const s3Client_1 = __importDefault(require("./s3Client"));
|
|
18
|
+
const deleteFiles = (drive, filepaths) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
const bucketParams = {
|
|
20
|
+
Bucket: drive,
|
|
21
|
+
Delete: {
|
|
22
|
+
Quiet: true,
|
|
23
|
+
Objects: filepaths.map((fp) => ({ Key: fp })),
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
const response = yield s3Client_1.default.send(new client_s3_1.DeleteObjectsCommand(bucketParams));
|
|
27
|
+
return (response.Errors || []).map((e) => e.Key || '');
|
|
28
|
+
});
|
|
29
|
+
exports.deleteFiles = deleteFiles;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface S3FileInfo {
|
|
2
|
+
filepath: string;
|
|
3
|
+
isDir: boolean;
|
|
4
|
+
hashMd5?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface S3FileList {
|
|
7
|
+
fileInfos: S3FileInfo[];
|
|
8
|
+
pageToken?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const listFiles: (drive: string, folder?: string, maxKeys?: number, pageToken?: string) => Promise<S3FileList>;
|
|
@@ -0,0 +1,56 @@
|
|
|
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.listFiles = void 0;
|
|
16
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
17
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
18
|
+
const s3Client_1 = __importDefault(require("./s3Client"));
|
|
19
|
+
const listFiles = (drive, folder = '', maxKeys = 1000, pageToken) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
const validatedPrefix = `${folder}${folder.endsWith(quidproquo_core_1.filePathDelimiter) || !folder ? '' : quidproquo_core_1.filePathDelimiter}`;
|
|
21
|
+
const bucketParams = {
|
|
22
|
+
Bucket: drive,
|
|
23
|
+
Delimiter: quidproquo_core_1.filePathDelimiter,
|
|
24
|
+
Prefix: validatedPrefix,
|
|
25
|
+
ContinuationToken: pageToken,
|
|
26
|
+
MaxKeys: maxKeys,
|
|
27
|
+
};
|
|
28
|
+
// Declare truncated as a flag that the while loop is based on.
|
|
29
|
+
let files = [];
|
|
30
|
+
const response = yield s3Client_1.default.send(new client_s3_1.ListObjectsV2Command(bucketParams));
|
|
31
|
+
if (response.CommonPrefixes && !bucketParams.ContinuationToken) {
|
|
32
|
+
files = [
|
|
33
|
+
...files,
|
|
34
|
+
...response.CommonPrefixes.filter((cp) => !!cp.Prefix).map((cp) => ({
|
|
35
|
+
filepath: cp.Prefix,
|
|
36
|
+
drive: drive,
|
|
37
|
+
isDir: true,
|
|
38
|
+
})),
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
files = [
|
|
42
|
+
...files,
|
|
43
|
+
...(response.Contents || [])
|
|
44
|
+
.filter((c) => !!c.Key && c.Key != folder)
|
|
45
|
+
.map((item) => ({
|
|
46
|
+
filepath: item.Key,
|
|
47
|
+
isDir: item.Key.endsWith(quidproquo_core_1.filePathDelimiter),
|
|
48
|
+
hashMd5: item.ETag,
|
|
49
|
+
})),
|
|
50
|
+
];
|
|
51
|
+
return {
|
|
52
|
+
fileInfos: files,
|
|
53
|
+
pageToken: response.NextContinuationToken,
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
exports.listFiles = listFiles;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const objectExists: (bucketName: string, key: string) => Promise<boolean>;
|
|
@@ -0,0 +1,30 @@
|
|
|
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.objectExists = void 0;
|
|
16
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
17
|
+
const s3Client_1 = __importDefault(require("./s3Client"));
|
|
18
|
+
const objectExists = (bucketName, key) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
try {
|
|
20
|
+
const response = yield s3Client_1.default.send(new client_s3_1.HeadObjectCommand({
|
|
21
|
+
Key: key,
|
|
22
|
+
Bucket: bucketName,
|
|
23
|
+
}));
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
catch (_a) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
exports.objectExists = objectExists;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const readTextFile: (bucketName: string, key: string) => Promise<string>;
|
|
@@ -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
|
+
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.readTextFile = void 0;
|
|
16
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
17
|
+
const s3Client_1 = __importDefault(require("./s3Client"));
|
|
18
|
+
const readTextFile = (bucketName, key) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
var _a;
|
|
20
|
+
const response = yield s3Client_1.default.send(new client_s3_1.GetObjectCommand({
|
|
21
|
+
Key: key,
|
|
22
|
+
Bucket: bucketName,
|
|
23
|
+
}));
|
|
24
|
+
return (yield ((_a = response.Body) === null || _a === void 0 ? void 0 : _a.transformToString())) || '';
|
|
25
|
+
});
|
|
26
|
+
exports.readTextFile = readTextFile;
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
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("./deleteFiles"), exports);
|
|
18
|
+
__exportStar(require("./listFiles"), exports);
|
|
19
|
+
__exportStar(require("./objectExists"), exports);
|
|
20
|
+
__exportStar(require("./readTextFile"), exports);
|
|
21
|
+
__exportStar(require("./writeTextFile"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const writeTextFile: (bucketName: string, key: string, data: string) => Promise<void>;
|
|
@@ -0,0 +1,25 @@
|
|
|
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.writeTextFile = void 0;
|
|
16
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
17
|
+
const s3Client_1 = __importDefault(require("./s3Client"));
|
|
18
|
+
const writeTextFile = (bucketName, key, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
yield s3Client_1.default.send(new client_s3_1.PutObjectCommand({
|
|
20
|
+
Key: key,
|
|
21
|
+
Bucket: bucketName,
|
|
22
|
+
Body: Buffer.from(data),
|
|
23
|
+
}));
|
|
24
|
+
});
|
|
25
|
+
exports.writeTextFile = writeTextFile;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getSecret: (secretName: string) => Promise<string>;
|
|
@@ -0,0 +1,21 @@
|
|
|
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.getSecret = void 0;
|
|
13
|
+
const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
|
|
14
|
+
const smClient = new client_secrets_manager_1.SecretsManagerClient({});
|
|
15
|
+
const getSecret = (secretName) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
const response = yield smClient.send(new client_secrets_manager_1.GetSecretValueCommand({
|
|
17
|
+
SecretId: secretName,
|
|
18
|
+
}));
|
|
19
|
+
return response.SecretString || '';
|
|
20
|
+
});
|
|
21
|
+
exports.getSecret = getSecret;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
export interface LambdaRuntimeConfig {
|
|
3
|
+
src: string;
|
|
4
|
+
runtime: string;
|
|
5
|
+
}
|
|
6
|
+
export interface QPQAWSLambdaConfig {
|
|
7
|
+
qpqConfig: QPQConfig;
|
|
8
|
+
resourceNameMap: Record<string, string>;
|
|
9
|
+
secretNameMap: Record<string, string>;
|
|
10
|
+
parameterNameMap: Record<string, string>;
|
|
11
|
+
lambdaRuntimeConfig?: LambdaRuntimeConfig;
|
|
12
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { QPQAWSLambdaConfig } from './QPQAWSLambdaConfig';
|
|
2
|
+
export declare const resolveResourceName: (resourceName: string, qpqAwsLambdaConfig: QPQAWSLambdaConfig) => string;
|
|
3
|
+
export declare const resolveSecretKey: (secretName: string, qpqAwsLambdaConfig: QPQAWSLambdaConfig) => string;
|
|
4
|
+
export declare const resolveParameterKey: (parameterName: string, qpqAwsLambdaConfig: QPQAWSLambdaConfig) => string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveParameterKey = exports.resolveSecretKey = exports.resolveResourceName = void 0;
|
|
4
|
+
const resolveResourceName = (resourceName, qpqAwsLambdaConfig) => {
|
|
5
|
+
return qpqAwsLambdaConfig.resourceNameMap[resourceName] || resourceName;
|
|
6
|
+
};
|
|
7
|
+
exports.resolveResourceName = resolveResourceName;
|
|
8
|
+
const resolveSecretKey = (secretName, qpqAwsLambdaConfig) => {
|
|
9
|
+
return qpqAwsLambdaConfig.secretNameMap[secretName] || secretName;
|
|
10
|
+
};
|
|
11
|
+
exports.resolveSecretKey = resolveSecretKey;
|
|
12
|
+
const resolveParameterKey = (parameterName, qpqAwsLambdaConfig) => {
|
|
13
|
+
return qpqAwsLambdaConfig.parameterNameMap[parameterName] || parameterName;
|
|
14
|
+
};
|
|
15
|
+
exports.resolveParameterKey = resolveParameterKey;
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quidproquo-actionprocessor-awslambda",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.39",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.js",
|
|
7
|
+
"files": [
|
|
8
|
+
"lib/**/*"
|
|
9
|
+
],
|
|
7
10
|
"scripts": {
|
|
8
11
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
9
12
|
"clean": "npx rimraf lib",
|
package/src/awsLambdaUtils.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { randomUUID } from 'crypto';
|
|
2
|
-
import { match } from 'node-match-path';
|
|
3
|
-
|
|
4
|
-
export const randomGuid = () => {
|
|
5
|
-
return randomUUID();
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export interface UrlMatch {
|
|
9
|
-
didMatch: boolean;
|
|
10
|
-
params: Record<string, string> | null;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export const matchUrl = (path: string, url: string): UrlMatch => {
|
|
14
|
-
// /attempt/{attemptUuid}/result/{test} => /attempt/:attemptUuid/result/:test
|
|
15
|
-
const modifiedPath = path.replaceAll(/{(.+?)}/g, (m, g) => `:${g}`);
|
|
16
|
-
|
|
17
|
-
const matchResult = match(modifiedPath, url);
|
|
18
|
-
return {
|
|
19
|
-
didMatch: matchResult.matches,
|
|
20
|
-
params: matchResult.params,
|
|
21
|
-
};
|
|
22
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ConfigActionType, ConfigGetParameterActionProcessor, actionResult } from 'quidproquo-core';
|
|
2
|
-
|
|
3
|
-
import { QPQAWSLambdaConfig } from '../../../runtimeConfig/QPQAWSLambdaConfig';
|
|
4
|
-
import { resolveParameterKey } from '../../../runtimeConfig/qpqAwsLambdaRuntimeConfigUtils';
|
|
5
|
-
|
|
6
|
-
import { getParameter } from '../../../logic/parametersManager/getParameter';
|
|
7
|
-
|
|
8
|
-
const getProcessConfigGetParameter = (
|
|
9
|
-
runtimeConfig: QPQAWSLambdaConfig,
|
|
10
|
-
): ConfigGetParameterActionProcessor => {
|
|
11
|
-
return async ({ parameterName }) => {
|
|
12
|
-
const awsParameterKey = resolveParameterKey(parameterName, runtimeConfig);
|
|
13
|
-
const parameterValue = await getParameter(awsParameterKey);
|
|
14
|
-
|
|
15
|
-
return actionResult(parameterValue);
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export default (runtimeConfig: QPQAWSLambdaConfig) => {
|
|
20
|
-
return {
|
|
21
|
-
[ConfigActionType.GetParameter]: getProcessConfigGetParameter(runtimeConfig),
|
|
22
|
-
};
|
|
23
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ConfigActionType,
|
|
3
|
-
ConfigGetParametersActionProcessor,
|
|
4
|
-
actionResult,
|
|
5
|
-
} from 'quidproquo-core';
|
|
6
|
-
|
|
7
|
-
import { QPQAWSLambdaConfig } from '../../../runtimeConfig/QPQAWSLambdaConfig';
|
|
8
|
-
import { resolveParameterKey } from '../../../runtimeConfig/qpqAwsLambdaRuntimeConfigUtils';
|
|
9
|
-
|
|
10
|
-
import { getParameters } from '../../../logic/parametersManager/getParameters';
|
|
11
|
-
|
|
12
|
-
const getProcessConfigGetParameters = (
|
|
13
|
-
runtimeConfig: QPQAWSLambdaConfig,
|
|
14
|
-
): ConfigGetParametersActionProcessor => {
|
|
15
|
-
return async ({ parameterNames }) => {
|
|
16
|
-
const awsParameterKeys = parameterNames.map((pn) => resolveParameterKey(pn, runtimeConfig));
|
|
17
|
-
const parameterValues = await getParameters(awsParameterKeys);
|
|
18
|
-
|
|
19
|
-
return actionResult(parameterValues);
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export default (runtimeConfig: QPQAWSLambdaConfig) => {
|
|
24
|
-
return {
|
|
25
|
-
[ConfigActionType.GetParameters]: getProcessConfigGetParameters(runtimeConfig),
|
|
26
|
-
};
|
|
27
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ConfigActionType, ConfigGetSecretActionProcessor, actionResult } from 'quidproquo-core';
|
|
2
|
-
|
|
3
|
-
import { QPQAWSLambdaConfig } from '../../../runtimeConfig/QPQAWSLambdaConfig';
|
|
4
|
-
import { resolveSecretKey } from '../../../runtimeConfig/qpqAwsLambdaRuntimeConfigUtils';
|
|
5
|
-
|
|
6
|
-
import { getSecret } from '../../../logic/secretsManager/getSecret';
|
|
7
|
-
|
|
8
|
-
const getProcessConfigActionType = (
|
|
9
|
-
runtimeConfig: QPQAWSLambdaConfig,
|
|
10
|
-
): ConfigGetSecretActionProcessor => {
|
|
11
|
-
return async ({ secretName }) => {
|
|
12
|
-
const awsSecretKey = resolveSecretKey(secretName, runtimeConfig);
|
|
13
|
-
const secretValue = await getSecret(awsSecretKey);
|
|
14
|
-
|
|
15
|
-
return actionResult(secretValue);
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export default (runtimeConfig: QPQAWSLambdaConfig) => {
|
|
20
|
-
return {
|
|
21
|
-
[ConfigActionType.GetSecret]: getProcessConfigActionType(runtimeConfig),
|
|
22
|
-
};
|
|
23
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { QPQAWSLambdaConfig } from '../../../runtimeConfig/QPQAWSLambdaConfig';
|
|
2
|
-
|
|
3
|
-
import getConfigGetParameterActionProcessor from './getConfigGetParameterActionProcessor';
|
|
4
|
-
import getConfigGetParametersActionProcessor from './getConfigGetParametersActionProcessor';
|
|
5
|
-
import getConfigGetSecretActionProcessor from './getConfigGetSecretActionProcessor';
|
|
6
|
-
|
|
7
|
-
export default (runtimeConfig: QPQAWSLambdaConfig) => ({
|
|
8
|
-
...getConfigGetParameterActionProcessor(runtimeConfig),
|
|
9
|
-
...getConfigGetParametersActionProcessor(runtimeConfig),
|
|
10
|
-
...getConfigGetSecretActionProcessor(runtimeConfig),
|
|
11
|
-
});
|