@fjall/util 0.1.19 → 0.1.20
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/index.d.ts +1 -0
- package/dist/index.js +18 -0
- package/dist/src/Config.d.ts +79 -0
- package/dist/src/Config.js +169 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +18 -0
- package/package.json +1 -1
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './src';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
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("./src"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMnOyJdfQ==
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Account } from "@aws-sdk/client-organizations";
|
|
2
|
+
type Provider = "aws";
|
|
3
|
+
type ServiceConfig = {
|
|
4
|
+
id: string;
|
|
5
|
+
type?: string;
|
|
6
|
+
version?: number;
|
|
7
|
+
options?: object;
|
|
8
|
+
};
|
|
9
|
+
type ProviderAccount = {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
environment: string;
|
|
13
|
+
};
|
|
14
|
+
type RootConfig = {
|
|
15
|
+
version?: number;
|
|
16
|
+
development?: boolean;
|
|
17
|
+
services?: {
|
|
18
|
+
[key: string]: ServiceConfig;
|
|
19
|
+
};
|
|
20
|
+
provider?: Provider;
|
|
21
|
+
providerAccounts?: ProviderAccount[];
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Config class for loading and saving fjall-config.json file
|
|
25
|
+
*/
|
|
26
|
+
export declare class Config {
|
|
27
|
+
rootConfig: RootConfig;
|
|
28
|
+
existingAccountsConfig: Account[];
|
|
29
|
+
constructor(rootConfig?: object, existingAccountsConfig?: Account[]);
|
|
30
|
+
isDevelopment(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Load config file into memory as a raw JSON string
|
|
33
|
+
* @returns Config as JSON string or NULL if no config file accessible
|
|
34
|
+
*/
|
|
35
|
+
private static loadConfigFile;
|
|
36
|
+
/**
|
|
37
|
+
* Tries to load the config file from the given path, if unncessuful it tries exactly two directories higher
|
|
38
|
+
* This is neccessary to ensure fjall apps can load the config file themselves
|
|
39
|
+
* @param configFile
|
|
40
|
+
*/
|
|
41
|
+
private static tryLoadConfigFile;
|
|
42
|
+
/**
|
|
43
|
+
* Load configuration from file
|
|
44
|
+
*
|
|
45
|
+
* @returns Loaded configuration
|
|
46
|
+
*/
|
|
47
|
+
static loadConfig(): Config;
|
|
48
|
+
/**
|
|
49
|
+
* Save configuration to file
|
|
50
|
+
*/
|
|
51
|
+
saveConfig(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Set the schema version used for this config file
|
|
54
|
+
*
|
|
55
|
+
* @param version Schema Version
|
|
56
|
+
*/
|
|
57
|
+
setVersion(version: number): void;
|
|
58
|
+
/**
|
|
59
|
+
* Add a new service to the config file
|
|
60
|
+
* @param serviceKey Name/key of the service
|
|
61
|
+
* @param config Service configuration properties
|
|
62
|
+
*/
|
|
63
|
+
addService(serviceKey: string, config: ServiceConfig): void;
|
|
64
|
+
/**
|
|
65
|
+
* Set config options on a previously defined service
|
|
66
|
+
*
|
|
67
|
+
* @param serviceKey Name/key of the service
|
|
68
|
+
* @param config Service configuration properties to set
|
|
69
|
+
*/
|
|
70
|
+
setServiceOption(serviceKey: string, config: ServiceConfig): void;
|
|
71
|
+
getServiceConfig(serviceKey: string): ServiceConfig | null;
|
|
72
|
+
setProvider(provider: Provider): void;
|
|
73
|
+
addProviderAccount(account: ProviderAccount): void;
|
|
74
|
+
getProviderAccount(accountName: string): ProviderAccount | null | undefined;
|
|
75
|
+
setExistingAccounts(region: string): Promise<void>;
|
|
76
|
+
getExistingAccounts(): Account[];
|
|
77
|
+
getAWSAccountId(): Promise<string | undefined>;
|
|
78
|
+
}
|
|
79
|
+
export {};
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Config = void 0;
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
const client_organizations_1 = require("@aws-sdk/client-organizations");
|
|
6
|
+
const client_sts_1 = require("@aws-sdk/client-sts");
|
|
7
|
+
/**
|
|
8
|
+
* The current base-version of any newly created config file
|
|
9
|
+
*/
|
|
10
|
+
const BASE_CONFIG_VERSION = 0.1;
|
|
11
|
+
/**
|
|
12
|
+
* Config class for loading and saving fjall-config.json file
|
|
13
|
+
*/
|
|
14
|
+
class Config {
|
|
15
|
+
constructor(rootConfig, existingAccountsConfig) {
|
|
16
|
+
this.rootConfig = rootConfig
|
|
17
|
+
? rootConfig
|
|
18
|
+
: {
|
|
19
|
+
version: BASE_CONFIG_VERSION,
|
|
20
|
+
services: {},
|
|
21
|
+
providerAccounts: [],
|
|
22
|
+
};
|
|
23
|
+
this.existingAccountsConfig = existingAccountsConfig
|
|
24
|
+
? existingAccountsConfig
|
|
25
|
+
: [];
|
|
26
|
+
}
|
|
27
|
+
isDevelopment() {
|
|
28
|
+
return !!this.rootConfig?.development;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Load config file into memory as a raw JSON string
|
|
32
|
+
* @returns Config as JSON string or NULL if no config file accessible
|
|
33
|
+
*/
|
|
34
|
+
static loadConfigFile(configFile) {
|
|
35
|
+
try {
|
|
36
|
+
fs.accessSync(configFile, fs.constants.R_OK | fs.constants.W_OK);
|
|
37
|
+
return fs.readFileSync(configFile, {
|
|
38
|
+
encoding: "utf8",
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
// console.log(
|
|
43
|
+
// `Expected file '${configFile}' does not exist or cannot be read.`
|
|
44
|
+
// );
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Tries to load the config file from the given path, if unncessuful it tries exactly two directories higher
|
|
50
|
+
* This is neccessary to ensure fjall apps can load the config file themselves
|
|
51
|
+
* @param configFile
|
|
52
|
+
*/
|
|
53
|
+
static tryLoadConfigFile(configFile) {
|
|
54
|
+
let config = Config.loadConfigFile(configFile);
|
|
55
|
+
if (config)
|
|
56
|
+
return config;
|
|
57
|
+
// Try one directory higher
|
|
58
|
+
return Config.loadConfigFile(`../../${configFile}`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Load configuration from file
|
|
62
|
+
*
|
|
63
|
+
* @returns Loaded configuration
|
|
64
|
+
*/
|
|
65
|
+
static loadConfig() {
|
|
66
|
+
try {
|
|
67
|
+
const rootConfigJson = Config.tryLoadConfigFile("fjall/fjall-config.json");
|
|
68
|
+
const existingAccountJson = Config.tryLoadConfigFile("fjall/accounts-config.json");
|
|
69
|
+
const rootConfig = rootConfigJson
|
|
70
|
+
? JSON.parse(rootConfigJson)
|
|
71
|
+
: undefined;
|
|
72
|
+
const existingAccountsConfig = existingAccountJson
|
|
73
|
+
? JSON.parse(existingAccountJson)
|
|
74
|
+
: undefined;
|
|
75
|
+
return new Config(rootConfig, existingAccountsConfig);
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
console.error("Unable to parse config file. Aborting.", err);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Save configuration to file
|
|
84
|
+
*/
|
|
85
|
+
saveConfig() {
|
|
86
|
+
// Ensure fjall directory exists
|
|
87
|
+
fs.mkdirSync("fjall", { recursive: true }); // recursive: true prevents error if directory already exists
|
|
88
|
+
// JSON-ify config and write root config to file
|
|
89
|
+
const rootJsonString = JSON.stringify(this.rootConfig, null, 2);
|
|
90
|
+
fs.writeFileSync("fjall/fjall-config.json", rootJsonString);
|
|
91
|
+
const existingAccountsJsonString = JSON.stringify(this.existingAccountsConfig, null, 2);
|
|
92
|
+
fs.writeFileSync("fjall/accounts-config.json", existingAccountsJsonString);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Set the schema version used for this config file
|
|
96
|
+
*
|
|
97
|
+
* @param version Schema Version
|
|
98
|
+
*/
|
|
99
|
+
setVersion(version) {
|
|
100
|
+
this.rootConfig.version = version;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Add a new service to the config file
|
|
104
|
+
* @param serviceKey Name/key of the service
|
|
105
|
+
* @param config Service configuration properties
|
|
106
|
+
*/
|
|
107
|
+
addService(serviceKey, config) {
|
|
108
|
+
if (!this.rootConfig.services)
|
|
109
|
+
this.rootConfig.services = {};
|
|
110
|
+
this.rootConfig.services[serviceKey] = config;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Set config options on a previously defined service
|
|
114
|
+
*
|
|
115
|
+
* @param serviceKey Name/key of the service
|
|
116
|
+
* @param config Service configuration properties to set
|
|
117
|
+
*/
|
|
118
|
+
setServiceOption(serviceKey, config) {
|
|
119
|
+
if (!this.rootConfig.services)
|
|
120
|
+
this.rootConfig.services = {};
|
|
121
|
+
const service = this.rootConfig.services[serviceKey];
|
|
122
|
+
if (!service)
|
|
123
|
+
return;
|
|
124
|
+
this.rootConfig.services[serviceKey] = { ...service, ...config };
|
|
125
|
+
}
|
|
126
|
+
getServiceConfig(serviceKey) {
|
|
127
|
+
if (!this.rootConfig.services)
|
|
128
|
+
return null;
|
|
129
|
+
return this.rootConfig.services[serviceKey] || null;
|
|
130
|
+
}
|
|
131
|
+
setProvider(provider) {
|
|
132
|
+
this.rootConfig.provider = provider;
|
|
133
|
+
}
|
|
134
|
+
addProviderAccount(account) {
|
|
135
|
+
if (!this.rootConfig.providerAccounts)
|
|
136
|
+
this.rootConfig.providerAccounts = [];
|
|
137
|
+
// ensure account name is always lowercase
|
|
138
|
+
account.name = account.name.toLocaleLowerCase();
|
|
139
|
+
this.rootConfig.providerAccounts.push(account);
|
|
140
|
+
}
|
|
141
|
+
getProviderAccount(accountName) {
|
|
142
|
+
// TODO: Fix null error
|
|
143
|
+
if (!this.rootConfig.providerAccounts)
|
|
144
|
+
return null;
|
|
145
|
+
return this.rootConfig.providerAccounts.find((account) => account.name.toLocaleLowerCase() === accountName.toLocaleLowerCase());
|
|
146
|
+
}
|
|
147
|
+
async setExistingAccounts(region) {
|
|
148
|
+
// Make API Call
|
|
149
|
+
const client = new client_organizations_1.OrganizationsClient({
|
|
150
|
+
region: region,
|
|
151
|
+
});
|
|
152
|
+
const request = new client_organizations_1.ListAccountsCommand({
|
|
153
|
+
MaxResults: Number("20"),
|
|
154
|
+
});
|
|
155
|
+
const response = await client.send(request);
|
|
156
|
+
this.existingAccountsConfig = response.Accounts || [];
|
|
157
|
+
}
|
|
158
|
+
getExistingAccounts() {
|
|
159
|
+
return this.existingAccountsConfig;
|
|
160
|
+
}
|
|
161
|
+
async getAWSAccountId() {
|
|
162
|
+
const stsClient = new client_sts_1.STSClient({});
|
|
163
|
+
const request = new client_sts_1.GetCallerIdentityCommand({});
|
|
164
|
+
const response = await stsClient.send(request);
|
|
165
|
+
return response?.Account || undefined;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.Config = Config;
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsd0VBSXVDO0FBQ3ZDLG9EQUEwRTtBQXlCMUU7O0dBRUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUVoQzs7R0FFRztBQUNILE1BQWEsTUFBTTtJQUlqQixZQUFZLFVBQW1CLEVBQUUsc0JBQWtDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVTtZQUMxQixDQUFDLENBQUMsVUFBVTtZQUNaLENBQUMsQ0FBQztnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsRUFBRTtnQkFDWixnQkFBZ0IsRUFBRSxFQUFFO2FBQ3JCLENBQUM7UUFFTixJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCO1lBQ2xELENBQUMsQ0FBQyxzQkFBc0I7WUFDeEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNULENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBa0I7UUFDOUMsSUFBSTtZQUNGLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakUsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTtnQkFDakMsUUFBUSxFQUFFLE1BQU07YUFDakIsQ0FBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLGVBQWU7WUFDZixzRUFBc0U7WUFDdEUsS0FBSztZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNL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T0FBTyxHQUFHLElBQUksMENBQW1CLENBQUM7WUFDdEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDekIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtRQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQ0FBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsT0FBTyxRQUFRLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUEzTEQsd0JBMkxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQge1xuICBBY2NvdW50LFxuICBMaXN0QWNjb3VudHNDb21tYW5kLFxuICBPcmdhbml6YXRpb25zQ2xpZW50LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9yZ2FuaXphdGlvbnNcIjtcbmltcG9ydCB7IFNUU0NsaWVudCwgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zdHNcIjtcblxudHlwZSBQcm92aWRlciA9IFwiYXdzXCI7XG5cbnR5cGUgU2VydmljZUNvbmZpZyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgdmVyc2lvbj86IG51bWJlcjtcbiAgb3B0aW9ucz86IG9iamVjdDtcbn07XG5cbnR5cGUgUHJvdmlkZXJBY2NvdW50ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG59O1xuXG50eXBlIFJvb3RDb25maWcgPSB7XG4gIHZlcnNpb24/OiBudW1iZXI7XG4gIGRldmVsb3BtZW50PzogYm9vbGVhbjtcbiAgc2VydmljZXM/OiB7IFtrZXk6IHN0cmluZ106IFNlcnZpY2VDb25maWcgfTtcbiAgcHJvdmlkZXI/OiBQcm92aWRlcjtcbiAgcHJvdmlkZXJBY2NvdW50cz86IFByb3ZpZGVyQWNjb3VudFtdO1xufTtcblxuLyoqXG4gKiBUaGUgY3VycmVudCBiYXNlLXZlcnNpb24gb2YgYW55IG5ld2x5IGNyZWF0ZWQgY29uZmlnIGZpbGVcbiAqL1xuY29uc3QgQkFTRV9DT05GSUdfVkVSU0lPTiA9IDAuMTtcblxuLyoqXG4gKiBDb25maWcgY2xhc3MgZm9yIGxvYWRpbmcgYW5kIHNhdmluZyBmamFsbC1jb25maWcuanNvbiBmaWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25maWcge1xuICByb290Q29uZmlnOiBSb290Q29uZmlnO1xuICBleGlzdGluZ0FjY291bnRzQ29uZmlnOiBBY2NvdW50W107XG5cbiAgY29uc3RydWN0b3Iocm9vdENvbmZpZz86IG9iamVjdCwgZXhpc3RpbmdBY2NvdW50c0NvbmZpZz86IEFjY291bnRbXSkge1xuICAgIHRoaXMucm9vdENvbmZpZyA9IHJvb3RDb25maWdcbiAgICAgID8gcm9vdENvbmZpZ1xuICAgICAgOiB7XG4gICAgICAgICAgdmVyc2lvbjogQkFTRV9DT05GSUdfVkVSU0lPTixcbiAgICAgICAgICBzZXJ2aWNlczoge30sXG4gICAgICAgICAgcHJvdmlkZXJBY2NvdW50czogW10sXG4gICAgICAgIH07XG5cbiAgICB0aGlzLmV4aXN0aW5nQWNjb3VudHNDb25maWcgPSBleGlzdGluZ0FjY291bnRzQ29uZmlnXG4gICAgICA/IGV4aXN0aW5nQWNjb3VudHNDb25maWdcbiAgICAgIDogW107XG4gIH1cblxuICBpc0RldmVsb3BtZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucm9vdENvbmZpZz8uZGV2ZWxvcG1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBjb25maWcgZmlsZSBpbnRvIG1lbW9yeSBhcyBhIHJhdyBKU09OIHN0cmluZ1xuICAgKiBAcmV0dXJucyBDb25maWcgYXMgSlNPTiBzdHJpbmcgb3IgTlVMTCBpZiBubyBjb25maWcgZmlsZSBhY2Nlc3NpYmxlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBsb2FkQ29uZmlnRmlsZShjb25maWdGaWxlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgZnMuYWNjZXNzU3luYyhjb25maWdGaWxlLCBmcy5jb25zdGFudHMuUl9PSyB8IGZzLmNvbnN0YW50cy5XX09LKTtcblxuICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhjb25maWdGaWxlLCB7XG4gICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gY29uc29sZS5sb2coXG4gICAgICAvLyAgIGBFeHBlY3RlZCBmaWxlICcke2NvbmZpZ0ZpbGV9JyBkb2VzIG5vdCBleGlzdCBvciBjYW5ub3QgYmUgcmVhZC5gXG4gICAgICAvLyApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyaWVzIHRvIGxvYWQgdGhlIGNvbmZpZyBmaWxlIGZyb20gdGhlIGdpdmVuIHBhdGgsIGlmIHVubmNlc3N1ZnVsIGl0IHRyaWVzIGV4YWN0bHkgdHdvIGRpcmVjdG9yaWVzIGhpZ2hlclxuICAgKiBUaGlzIGlzIG5lY2Nlc3NhcnkgdG8gZW5zdXJlIGZqYWxsIGFwcHMgY2FuIGxvYWQgdGhlIGNvbmZpZyBmaWxlIHRoZW1zZWx2ZXNcbiAgICogQHBhcmFtIGNvbmZpZ0ZpbGVcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHRyeUxvYWRDb25maWdGaWxlKGNvbmZpZ0ZpbGU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCBjb25maWcgPSBDb25maWcubG9hZENvbmZpZ0ZpbGUoY29uZmlnRmlsZSk7XG4gICAgaWYgKGNvbmZpZykgcmV0dXJuIGNvbmZpZztcblxuICAgIC8vIFRyeSBvbmUgZGlyZWN0b3J5IGhpZ2hlclxuICAgIHJldHVybiBDb25maWcubG9hZENvbmZpZ0ZpbGUoYC4uLy4uLyR7Y29uZmlnRmlsZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGNvbmZpZ3VyYXRpb24gZnJvbSBmaWxlXG4gICAqXG4gICAqIEByZXR1cm5zIExvYWRlZCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBzdGF0aWMgbG9hZENvbmZpZygpOiBDb25maWcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByb290Q29uZmlnSnNvbiA9IENvbmZpZy50cnlMb2FkQ29uZmlnRmlsZShcbiAgICAgICAgXCJmamFsbC9mamFsbC1jb25maWcuanNvblwiXG4gICAgICApO1xuICAgICAgY29uc3QgZXhpc3RpbmdBY2NvdW50SnNvbiA9IENvbmZpZy50cnlMb2FkQ29uZmlnRmlsZShcbiAgICAgICAgXCJmamFsbC9hY2NvdW50cy1jb25maWcuanNvblwiXG4gICAgICApO1xuXG4gICAgICBjb25zdCByb290Q29uZmlnID0gcm9vdENvbmZpZ0pzb25cbiAgICAgICAgPyBKU09OLnBhcnNlKHJvb3RDb25maWdKc29uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGV4aXN0aW5nQWNjb3VudHNDb25maWcgPSBleGlzdGluZ0FjY291bnRKc29uXG4gICAgICAgID8gSlNPTi5wYXJzZShleGlzdGluZ0FjY291bnRKc29uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgcmV0dXJuIG5ldyBDb25maWcocm9vdENvbmZpZywgZXhpc3RpbmdBY2NvdW50c0NvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiVW5hYmxlIHRvIHBhcnNlIGNvbmZpZyBmaWxlLiBBYm9ydGluZy5cIiwgZXJyKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBjb25maWd1cmF0aW9uIHRvIGZpbGVcbiAgICovXG4gIHNhdmVDb25maWcoKSB7XG4gICAgLy8gRW5zdXJlIGZqYWxsIGRpcmVjdG9yeSBleGlzdHNcbiAgICBmcy5ta2RpclN5bmMoXCJmamFsbFwiLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsgLy8gcmVjdXJzaXZlOiB0cnVlIHByZXZlbnRzIGVycm9yIGlmIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0c1xuXG4gICAgLy8gSlNPTi1pZnkgY29uZmlnIGFuZCB3cml0ZSByb290IGNvbmZpZyB0byBmaWxlXG4gICAgY29uc3Qgcm9vdEpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLnJvb3RDb25maWcsIG51bGwsIDIpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMoXCJmamFsbC9mamFsbC1jb25maWcuanNvblwiLCByb290SnNvblN0cmluZyk7XG5cbiAgICBjb25zdCBleGlzdGluZ0FjY291bnRzSnNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgdGhpcy5leGlzdGluZ0FjY291bnRzQ29uZmlnLFxuICAgICAgbnVsbCxcbiAgICAgIDJcbiAgICApO1xuICAgIGZzLndyaXRlRmlsZVN5bmMoXCJmamFsbC9hY2NvdW50cy1jb25maWcuanNvblwiLCBleGlzdGluZ0FjY291bnRzSnNvblN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBzY2hlbWEgdmVyc2lvbiB1c2VkIGZvciB0aGlzIGNvbmZpZyBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB2ZXJzaW9uIFNjaGVtYSBWZXJzaW9uXG4gICAqL1xuICBzZXRWZXJzaW9uKHZlcnNpb246IG51bWJlcikge1xuICAgIHRoaXMucm9vdENvbmZpZy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgc2VydmljZSB0byB0aGUgY29uZmlnIGZpbGVcbiAgICogQHBhcmFtIHNlcnZpY2VLZXkgTmFtZS9rZXkgb2YgdGhlIHNlcnZpY2VcbiAgICogQHBhcmFtIGNvbmZpZyBTZXJ2aWNlIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKi9cbiAgYWRkU2VydmljZShzZXJ2aWNlS2V5OiBzdHJpbmcsIGNvbmZpZzogU2VydmljZUNvbmZpZykge1xuICAgIGlmICghdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzKSB0aGlzLnJvb3RDb25maWcuc2VydmljZXMgPSB7fTtcbiAgICB0aGlzLnJvb3RDb25maWcuc2VydmljZXNbc2VydmljZUtleV0gPSBjb25maWc7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyBvcHRpb25zIG9uIGEgcHJldmlvdXNseSBkZWZpbmVkIHNlcnZpY2VcbiAgICpcbiAgICogQHBhcmFtIHNlcnZpY2VLZXkgTmFtZS9rZXkgb2YgdGhlIHNlcnZpY2VcbiAgICogQHBhcmFtIGNvbmZpZyBTZXJ2aWNlIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB0byBzZXRcbiAgICovXG4gIHNldFNlcnZpY2VPcHRpb24oc2VydmljZUtleTogc3RyaW5nLCBjb25maWc6IFNlcnZpY2VDb25maWcpIHtcbiAgICBpZiAoIXRoaXMucm9vdENvbmZpZy5zZXJ2aWNlcykgdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzID0ge307XG5cbiAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldO1xuICAgIGlmICghc2VydmljZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldID0geyAuLi5zZXJ2aWNlLCAuLi5jb25maWcgfTtcbiAgfVxuXG4gIGdldFNlcnZpY2VDb25maWcoc2VydmljZUtleTogc3RyaW5nKTogU2VydmljZUNvbmZpZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldIHx8IG51bGw7XG4gIH1cblxuICBzZXRQcm92aWRlcihwcm92aWRlcjogUHJvdmlkZXIpIHtcbiAgICB0aGlzLnJvb3RDb25maWcucHJvdmlkZXIgPSBwcm92aWRlcjtcbiAgfVxuXG4gIGFkZFByb3ZpZGVyQWNjb3VudChhY2NvdW50OiBQcm92aWRlckFjY291bnQpIHtcbiAgICBpZiAoIXRoaXMucm9vdENvbmZpZy5wcm92aWRlckFjY291bnRzKVxuICAgICAgdGhpcy5yb290Q29uZmlnLnByb3ZpZGVyQWNjb3VudHMgPSBbXTtcblxuICAgIC8vIGVuc3VyZSBhY2NvdW50IG5hbWUgaXMgYWx3YXlzIGxvd2VyY2FzZVxuICAgIGFjY291bnQubmFtZSA9IGFjY291bnQubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXG4gICAgdGhpcy5yb290Q29uZmlnLnByb3ZpZGVyQWNjb3VudHMucHVzaChhY2NvdW50KTtcbiAgfVxuXG4gIGdldFByb3ZpZGVyQWNjb3VudChhY2NvdW50TmFtZTogc3RyaW5nKSB7XG4gICAgLy8gVE9ETzogRml4IG51bGwgZXJyb3JcbiAgICBpZiAoIXRoaXMucm9vdENvbmZpZy5wcm92aWRlckFjY291bnRzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5yb290Q29uZmlnLnByb3ZpZGVyQWNjb3VudHMuZmluZChcbiAgICAgIChhY2NvdW50KSA9PlxuICAgICAgICBhY2NvdW50Lm5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gYWNjb3VudE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBzZXRFeGlzdGluZ0FjY291bnRzKHJlZ2lvbjogc3RyaW5nKSB7XG4gICAgLy8gTWFrZSBBUEkgQ2FsbFxuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBPcmdhbml6YXRpb25zQ2xpZW50KHtcbiAgICAgIHJlZ2lvbjogcmVnaW9uLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgTGlzdEFjY291bnRzQ29tbWFuZCh7XG4gICAgICBNYXhSZXN1bHRzOiBOdW1iZXIoXCIyMFwiKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQocmVxdWVzdCk7XG4gICAgdGhpcy5leGlzdGluZ0FjY291bnRzQ29uZmlnID0gcmVzcG9uc2UuQWNjb3VudHMgfHwgW107XG4gIH1cblxuICBnZXRFeGlzdGluZ0FjY291bnRzKCk6IEFjY291bnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZXhpc3RpbmdBY2NvdW50c0NvbmZpZztcbiAgfVxuXG4gIGFzeW5jIGdldEFXU0FjY291bnRJZCgpIHtcbiAgICBjb25zdCBzdHNDbGllbnQgPSBuZXcgU1RTQ2xpZW50KHt9KTtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEdldENhbGxlcklkZW50aXR5Q29tbWFuZCh7fSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzdHNDbGllbnQuc2VuZChyZXF1ZXN0KTtcblxuICAgIHJldHVybiByZXNwb25zZT8uQWNjb3VudCB8fCB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Config';
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./Config"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQ29uZmlnJzsiXX0=
|