@push.rocks/qenv 6.0.1 → 6.0.4
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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/qenv.classes.configvaultadapter.d.ts +6 -0
- package/dist_ts/qenv.classes.configvaultadapter.js +23 -0
- package/dist_ts/qenv.classes.qenv.d.ts +4 -1
- package/dist_ts/qenv.classes.qenv.js +11 -6
- package/dist_ts/qenv.plugins.d.ts +4 -0
- package/dist_ts/qenv.plugins.js +7 -1
- package/package.json +9 -8
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/qenv.classes.configvaultadapter.ts +30 -0
- package/ts/qenv.classes.qenv.ts +16 -6
- package/ts/qenv.plugins.ts +12 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/qenv',
|
|
6
|
-
version: '6.0.
|
|
6
|
+
version: '6.0.4',
|
|
7
7
|
description: 'easy promised environments'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDRCQUE0QjtDQUMxQyxDQUFBIn0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as plugins from './qenv.plugins.js';
|
|
2
|
+
export class ConfigVaultAdapter {
|
|
3
|
+
constructor(configVaultUrl) {
|
|
4
|
+
this.configVaultUrl = configVaultUrl;
|
|
5
|
+
}
|
|
6
|
+
async getConfigBundle() {
|
|
7
|
+
if (this.configVaultUrl) {
|
|
8
|
+
console.log(`ConfigVault specified through constructor`);
|
|
9
|
+
}
|
|
10
|
+
else if (process.env['CONFIGVAULT_URL']) {
|
|
11
|
+
this.configVaultUrl = process.env['CONFIGVAULT_URL'];
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const parsedUrl = new URL(this.configVaultUrl);
|
|
17
|
+
const tr = new plugins.typedrequest.TypedRequest(`${parsedUrl.host}/typedrequest`, 'getEnvBundle');
|
|
18
|
+
const response = await tr.fire({
|
|
19
|
+
authorization: parsedUrl.pathname.replace('/', ''),
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWVudi5jbGFzc2VzLmNvbmZpZ3ZhdWx0YWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3FlbnYuY2xhc3Nlcy5jb25maWd2YXVsdGFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQVksY0FBdUI7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlO1FBQzFCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUE7U0FDekQ7YUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN0RDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvQyxNQUFNLEVBQUUsR0FDTixJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUNuQyxHQUFHLFNBQVMsQ0FBQyxJQUFJLGVBQWUsRUFDaEMsY0FBYyxDQUNmLENBQUM7UUFDSixNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDN0IsYUFBYSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7U0FDbkQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIn0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { ConfigVaultAdapter } from './qenv.classes.configvaultadapter.js';
|
|
1
2
|
import * as plugins from './qenv.plugins.js';
|
|
3
|
+
export type TEnvVarRef = string | (() => Promise<string>);
|
|
2
4
|
export declare class Qenv {
|
|
3
5
|
requiredEnvVars: string[];
|
|
4
6
|
availableEnvVars: string[];
|
|
@@ -7,6 +9,7 @@ export declare class Qenv {
|
|
|
7
9
|
[key: string]: any;
|
|
8
10
|
};
|
|
9
11
|
logger: plugins.smartlog.ConsoleLog;
|
|
12
|
+
configVaultAdapter: ConfigVaultAdapter;
|
|
10
13
|
qenvFilePathAbsolute: string;
|
|
11
14
|
envFilePathAbsolute: string;
|
|
12
15
|
constructor(qenvFileBasePathArg: string, envFileBasePathArg: string, failOnMissing?: boolean);
|
|
@@ -14,7 +17,7 @@ export declare class Qenv {
|
|
|
14
17
|
private loadRequiredEnvVars;
|
|
15
18
|
private loadAvailableEnvVars;
|
|
16
19
|
private checkForMissingEnvVars;
|
|
17
|
-
getEnvVarOnDemand(envVarNameOrNames:
|
|
20
|
+
getEnvVarOnDemand(envVarNameOrNames: TEnvVarRef | TEnvVarRef[]): Promise<string | undefined>;
|
|
18
21
|
getEnvVarOnDemandSync(envVarNameOrNames: string | string[]): string | undefined;
|
|
19
22
|
getEnvVarOnDemandAsObject(envVarNameOrNames: string | string[]): Promise<any>;
|
|
20
23
|
private tryGetEnvVar;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ConfigVaultAdapter } from './qenv.classes.configvaultadapter.js';
|
|
1
2
|
import * as plugins from './qenv.plugins.js';
|
|
2
3
|
export class Qenv {
|
|
3
4
|
constructor(qenvFileBasePathArg = process.cwd(), envFileBasePathArg, failOnMissing = true) {
|
|
@@ -6,6 +7,7 @@ export class Qenv {
|
|
|
6
7
|
this.missingEnvVars = [];
|
|
7
8
|
this.keyValueObject = {};
|
|
8
9
|
this.logger = new plugins.smartlog.ConsoleLog();
|
|
10
|
+
this.configVaultAdapter = new ConfigVaultAdapter();
|
|
9
11
|
this.initializeFilePaths(qenvFileBasePathArg, envFileBasePathArg);
|
|
10
12
|
this.loadRequiredEnvVars();
|
|
11
13
|
this.loadAvailableEnvVars();
|
|
@@ -86,11 +88,14 @@ export class Qenv {
|
|
|
86
88
|
}
|
|
87
89
|
return rawValue;
|
|
88
90
|
}
|
|
89
|
-
async tryGetEnvVar(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
async tryGetEnvVar(envVarRefArg) {
|
|
92
|
+
if (typeof envVarRefArg === 'function') {
|
|
93
|
+
return await envVarRefArg();
|
|
94
|
+
}
|
|
95
|
+
return (this.getFromEnvironmentVariable(envVarRefArg) ||
|
|
96
|
+
this.getFromEnvJsonFile(envVarRefArg) ||
|
|
97
|
+
this.getFromDockerSecret(envVarRefArg) ||
|
|
98
|
+
this.getFromDockerSecretJson(envVarRefArg));
|
|
94
99
|
}
|
|
95
100
|
tryGetEnvVarSync(envVarName) {
|
|
96
101
|
return (this.getFromEnvironmentVariable(envVarName) ||
|
|
@@ -146,4 +151,4 @@ export class Qenv {
|
|
|
146
151
|
return JSON.parse(decodedString);
|
|
147
152
|
}
|
|
148
153
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWVudi5jbGFzc2VzLnFlbnYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9xZW52LmNsYXNzZXMucWVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEtBQUssT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBSTdDLE1BQU0sT0FBTyxJQUFJO0lBWWYsWUFDRSxzQkFBOEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUMzQyxrQkFBMEIsRUFDMUIsZ0JBQXlCLElBQUk7UUFkeEIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLG1CQUFjLEdBQTJCLEVBQUUsQ0FBQztRQUM1QyxXQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBWWhELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxtQkFBMkIsRUFBRSxrQkFBMEI7UUFDakYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUN6QyxVQUFVLENBQ1gsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FD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
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
export { path };
|
|
3
|
+
import * as typedrequest from '@api.global/typedrequest';
|
|
4
|
+
export { typedrequest, };
|
|
3
5
|
import * as smartfile from '@push.rocks/smartfile';
|
|
4
6
|
import * as smartlog from '@push.rocks/smartlog';
|
|
5
7
|
export { smartfile, smartlog };
|
|
8
|
+
import * as configvaultInterfaces from '@configvault.io/interfaces';
|
|
9
|
+
export { configvaultInterfaces };
|
package/dist_ts/qenv.plugins.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
// native
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
export { path };
|
|
4
|
+
// @api.global scope
|
|
5
|
+
import * as typedrequest from '@api.global/typedrequest';
|
|
6
|
+
export { typedrequest, };
|
|
4
7
|
// @pushrocks scope
|
|
5
8
|
import * as smartfile from '@push.rocks/smartfile';
|
|
6
9
|
import * as smartlog from '@push.rocks/smartlog';
|
|
7
10
|
export { smartfile, smartlog };
|
|
8
|
-
|
|
11
|
+
// @configvault.io scope
|
|
12
|
+
import * as configvaultInterfaces from '@configvault.io/interfaces';
|
|
13
|
+
export { configvaultInterfaces };
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWVudi5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvcWVudi5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVM7QUFDVCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFFaEIsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxZQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUNMLFlBQVksR0FDYixDQUFBO0FBRUQsbUJBQW1CO0FBQ25CLE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBRS9CLHdCQUF3QjtBQUN4QixPQUFPLEtBQUsscUJBQXFCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/qenv",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "easy promised environments",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
@@ -27,15 +27,16 @@
|
|
|
27
27
|
},
|
|
28
28
|
"homepage": "https://gitlab.com/pushrocks/qenv#README",
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@
|
|
31
|
-
"@
|
|
32
|
-
"@
|
|
33
|
-
"@push.rocks/tapbundle": "^5.0.
|
|
34
|
-
"@types/node": "^20.
|
|
30
|
+
"@git.zone/tsbuild": "^2.1.66",
|
|
31
|
+
"@git.zone/tsrun": "^1.2.44",
|
|
32
|
+
"@git.zone/tstest": "^1.0.77",
|
|
33
|
+
"@push.rocks/tapbundle": "^5.0.15",
|
|
34
|
+
"@types/node": "^20.8.7"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
37
|
+
"@api.global/typedrequest": "^3.0.2",
|
|
38
|
+
"@configvault.io/interfaces": "^1.0.13",
|
|
39
|
+
"@push.rocks/smartfile": "^10.0.33",
|
|
39
40
|
"@push.rocks/smartlog": "^3.0.3",
|
|
40
41
|
"@push.rocks/smartpath": "^5.0.11"
|
|
41
42
|
},
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as plugins from './qenv.plugins.js';
|
|
2
|
+
|
|
3
|
+
export class ConfigVaultAdapter {
|
|
4
|
+
public configVaultUrl: string;
|
|
5
|
+
|
|
6
|
+
constructor(configVaultUrl?: string) {
|
|
7
|
+
this.configVaultUrl = configVaultUrl;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
public async getConfigBundle(): Promise<plugins.configvaultInterfaces.data.IConfigBundle> {
|
|
11
|
+
if (this.configVaultUrl) {
|
|
12
|
+
console.log(`ConfigVault specified through constructor`)
|
|
13
|
+
} else if (process.env['CONFIGVAULT_URL']) {
|
|
14
|
+
this.configVaultUrl = process.env['CONFIGVAULT_URL'];
|
|
15
|
+
} else {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const parsedUrl = new URL(this.configVaultUrl);
|
|
20
|
+
|
|
21
|
+
const tr =
|
|
22
|
+
new plugins.typedrequest.TypedRequest<plugins.configvaultInterfaces.requests.IReq_GetEnvBundle>(
|
|
23
|
+
`${parsedUrl.host}/typedrequest`,
|
|
24
|
+
'getEnvBundle'
|
|
25
|
+
);
|
|
26
|
+
const response = await tr.fire({
|
|
27
|
+
authorization: parsedUrl.pathname.replace('/', ''),
|
|
28
|
+
})
|
|
29
|
+
}
|
|
30
|
+
}
|
package/ts/qenv.classes.qenv.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { ConfigVaultAdapter } from './qenv.classes.configvaultadapter.js';
|
|
1
2
|
import * as plugins from './qenv.plugins.js';
|
|
2
3
|
|
|
4
|
+
export type TEnvVarRef = string | (() => Promise<string>);
|
|
5
|
+
|
|
3
6
|
export class Qenv {
|
|
4
7
|
public requiredEnvVars: string[] = [];
|
|
5
8
|
public availableEnvVars: string[] = [];
|
|
@@ -7,6 +10,8 @@ export class Qenv {
|
|
|
7
10
|
public keyValueObject: { [key: string]: any } = {};
|
|
8
11
|
public logger = new plugins.smartlog.ConsoleLog();
|
|
9
12
|
|
|
13
|
+
public configVaultAdapter: ConfigVaultAdapter;
|
|
14
|
+
|
|
10
15
|
public qenvFilePathAbsolute: string;
|
|
11
16
|
public envFilePathAbsolute: string;
|
|
12
17
|
|
|
@@ -15,6 +20,7 @@ export class Qenv {
|
|
|
15
20
|
envFileBasePathArg: string,
|
|
16
21
|
failOnMissing: boolean = true
|
|
17
22
|
) {
|
|
23
|
+
this.configVaultAdapter = new ConfigVaultAdapter();
|
|
18
24
|
this.initializeFilePaths(qenvFileBasePathArg, envFileBasePathArg);
|
|
19
25
|
this.loadRequiredEnvVars();
|
|
20
26
|
this.loadAvailableEnvVars();
|
|
@@ -71,7 +77,7 @@ export class Qenv {
|
|
|
71
77
|
}
|
|
72
78
|
|
|
73
79
|
public async getEnvVarOnDemand(
|
|
74
|
-
envVarNameOrNames:
|
|
80
|
+
envVarNameOrNames: TEnvVarRef | TEnvVarRef[]
|
|
75
81
|
): Promise<string | undefined> {
|
|
76
82
|
if (Array.isArray(envVarNameOrNames)) {
|
|
77
83
|
for (const envVarName of envVarNameOrNames) {
|
|
@@ -111,12 +117,16 @@ export class Qenv {
|
|
|
111
117
|
return rawValue;
|
|
112
118
|
}
|
|
113
119
|
|
|
114
|
-
private async tryGetEnvVar(
|
|
120
|
+
private async tryGetEnvVar(envVarRefArg: TEnvVarRef): Promise<string | undefined> {
|
|
121
|
+
if (typeof envVarRefArg === 'function') {
|
|
122
|
+
return await envVarRefArg();
|
|
123
|
+
}
|
|
124
|
+
|
|
115
125
|
return (
|
|
116
|
-
this.getFromEnvironmentVariable(
|
|
117
|
-
this.getFromEnvJsonFile(
|
|
118
|
-
this.getFromDockerSecret(
|
|
119
|
-
this.getFromDockerSecretJson(
|
|
126
|
+
this.getFromEnvironmentVariable(envVarRefArg) ||
|
|
127
|
+
this.getFromEnvJsonFile(envVarRefArg) ||
|
|
128
|
+
this.getFromDockerSecret(envVarRefArg) ||
|
|
129
|
+
this.getFromDockerSecretJson(envVarRefArg)
|
|
120
130
|
);
|
|
121
131
|
}
|
|
122
132
|
|
package/ts/qenv.plugins.ts
CHANGED
|
@@ -3,8 +3,20 @@ import * as path from 'path';
|
|
|
3
3
|
|
|
4
4
|
export { path };
|
|
5
5
|
|
|
6
|
+
// @api.global scope
|
|
7
|
+
import * as typedrequest from '@api.global/typedrequest';
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
typedrequest,
|
|
11
|
+
}
|
|
12
|
+
|
|
6
13
|
// @pushrocks scope
|
|
7
14
|
import * as smartfile from '@push.rocks/smartfile';
|
|
8
15
|
import * as smartlog from '@push.rocks/smartlog';
|
|
9
16
|
|
|
10
17
|
export { smartfile, smartlog };
|
|
18
|
+
|
|
19
|
+
// @configvault.io scope
|
|
20
|
+
import * as configvaultInterfaces from '@configvault.io/interfaces';
|
|
21
|
+
|
|
22
|
+
export { configvaultInterfaces };
|