@bolt.tech/bolt-paramstore 1.0.13

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.
@@ -0,0 +1,4 @@
1
+ export declare const getParameters: (path: string, nextToken?: string | undefined) => Promise<{
2
+ status: number;
3
+ message: string;
4
+ }>;
@@ -0,0 +1,105 @@
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 htSdk = require("@hypertestco/node-sdk");
15
+ const ssm = new client_ssm_1.SSMClient({
16
+ region: "ap-southeast-1",
17
+ });
18
+ const populateEnvironment = (params) => {
19
+ global.process.env = Object.assign(Object.assign({}, global.process.env), params);
20
+ };
21
+ const fetchParameters = (path, nextToken = undefined) => __awaiter(void 0, void 0, void 0, function* () {
22
+ var _a;
23
+ try {
24
+ const command = new client_ssm_1.GetParametersByPathCommand({
25
+ Path: path,
26
+ WithDecryption: true,
27
+ Recursive: true,
28
+ NextToken: nextToken,
29
+ });
30
+ const data = yield ssm.send(command);
31
+ nextToken = data.NextToken;
32
+ const exportObject = {};
33
+ (_a = data === null || data === void 0 ? void 0 : data.Parameters) === null || _a === void 0 ? void 0 : _a.map((data) => {
34
+ var _a;
35
+ const key = ((_a = data === null || data === void 0 ? void 0 : data.Name) === null || _a === void 0 ? void 0 : _a.substring(data.Name.lastIndexOf("/") + 1, data.Name.length)) || "";
36
+ const value = data.Value || ""; // Ensure value is not undefined
37
+ exportObject[key] = value;
38
+ });
39
+ if (nextToken) {
40
+ const nextParams = yield fetchParameters(path, nextToken);
41
+ return Object.assign(Object.assign({}, exportObject), nextParams); // Merge parameters from next page
42
+ }
43
+ return exportObject;
44
+ }
45
+ catch (error) {
46
+ console.log(error);
47
+ return {}; // Return empty object in case of error, handle error in getParameters for status
48
+ }
49
+ });
50
+ const getParameters = (path, nextToken = undefined) => __awaiter(void 0, void 0, void 0, function* () {
51
+ try {
52
+ const fetchedParams = yield htSdk.executeUnmocked(() => __awaiter(void 0, void 0, void 0, function* () {
53
+ return fetchParameters(path, nextToken);
54
+ }));
55
+ populateEnvironment(fetchedParams);
56
+ return { status: 200, message: "VARIABLES FETCHED SUCCESSFULLY." };
57
+ }
58
+ catch (error) {
59
+ console.log(error);
60
+ return { status: 500, message: `ERROR: ${error}` };
61
+ }
62
+ });
63
+ exports.getParameters = getParameters;
64
+ // getParameters("/dev/common/", undefined);
65
+ // import { SSMClient, GetParametersByPathCommand } from "@aws-sdk/client-ssm";
66
+ // const ssm = new SSMClient({
67
+ // region: "ap-southeast-1",
68
+ // });
69
+ // export const getParameters = async (
70
+ // path: string,
71
+ // nextToken: string | undefined = undefined
72
+ // ) => {
73
+ // try {
74
+ // const command = new GetParametersByPathCommand({
75
+ // Path: path,
76
+ // WithDecryption: true,
77
+ // Recursive: true,
78
+ // NextToken: nextToken,
79
+ // });
80
+ // const data = await ssm.send(command);
81
+ // nextToken = data.NextToken;
82
+ // const exportObject: any = {};
83
+ // data?.Parameters?.map((data) => {
84
+ // const key: string =
85
+ // data?.Name?.substring(
86
+ // data.Name.lastIndexOf("/") + 1,
87
+ // data.Name.length
88
+ // ) || "";
89
+ // const value = data.Value;
90
+ // exportObject[key] = value;
91
+ // });
92
+ // global.process.env = {
93
+ // ...global.process.env,
94
+ // ...exportObject,
95
+ // };
96
+ // if (nextToken) {
97
+ // await getParameters(path, nextToken);
98
+ // }
99
+ // return { status: 200, message: "VARIABLES FETCHED SUCCESSFULLY." };
100
+ // } catch (error) {
101
+ // console.log(error);
102
+ // return { status: 500, message: `ERROR: ${error}` };
103
+ // }
104
+ // };
105
+ // // getParameters("/dev/common/", undefined);
@@ -0,0 +1 @@
1
+ export declare const getSecret: (secretId: string) => Promise<any>;
@@ -0,0 +1,32 @@
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 smc = new client_secrets_manager_1.SecretsManagerClient({
15
+ region: "ap-southeast-1",
16
+ });
17
+ const getSecret = (secretId) => __awaiter(void 0, void 0, void 0, function* () {
18
+ try {
19
+ const command = new client_secrets_manager_1.GetSecretValueCommand({
20
+ SecretId: secretId,
21
+ });
22
+ const data = yield smc.send(command);
23
+ if (!data.SecretString) {
24
+ throw new Error("SecretString is empty");
25
+ }
26
+ return JSON.parse(data.SecretString);
27
+ }
28
+ catch (error) {
29
+ console.log({ error });
30
+ }
31
+ });
32
+ exports.getSecret = getSecret;
@@ -0,0 +1,3 @@
1
+ import { getParameters } from "./controllers/getParameters";
2
+ import { getSecret } from "./controllers/getSecrets";
3
+ export { getParameters, getSecret };
package/build/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSecret = exports.getParameters = void 0;
4
+ const getParameters_1 = require("./controllers/getParameters");
5
+ Object.defineProperty(exports, "getParameters", { enumerable: true, get: function () { return getParameters_1.getParameters; } });
6
+ const getSecrets_1 = require("./controllers/getSecrets");
7
+ Object.defineProperty(exports, "getSecret", { enumerable: true, get: function () { return getSecrets_1.getSecret; } });
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@bolt.tech/bolt-paramstore",
3
+ "version": "1.0.13",
4
+ "description": "",
5
+ "main": "build/index.js",
6
+ "types": "build/index.d.ts",
7
+ "scripts": {
8
+ "test": "echo \"Error: no test specified\" && exit 1",
9
+ "build": "tsc",
10
+ "start": "node build/index.js",
11
+ "dev": "tsc && npm start",
12
+ "prepare": "npm run build"
13
+ },
14
+ "keywords": [],
15
+ "author": "",
16
+ "license": "ISC",
17
+ "files": [
18
+ "build/**/*"
19
+ ],
20
+ "devDependencies": {
21
+ "typescript": "^4.7.4"
22
+ },
23
+ "dependencies": {
24
+ "@aws-sdk/client-secrets-manager": "^3.112.0",
25
+ "@aws-sdk/client-ssm": "^3.112.0",
26
+ "@types/node": "^18.0.0",
27
+ "@hypertestco/node-sdk": "0.2.25-37"
28
+ }
29
+ }