@fjall/util 0.1.10 → 0.1.18
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/src/Config.d.ts +15 -3
- package/dist/src/Config.js +84 -35
- package/package.json +29 -21
package/dist/src/Config.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Account } from "@aws-sdk/client-organizations";
|
|
1
2
|
type Provider = "aws";
|
|
2
3
|
type ServiceConfig = {
|
|
3
4
|
id: string;
|
|
@@ -8,6 +9,7 @@ type ServiceConfig = {
|
|
|
8
9
|
type ProviderAccount = {
|
|
9
10
|
id: string;
|
|
10
11
|
name: string;
|
|
12
|
+
environment: string;
|
|
11
13
|
};
|
|
12
14
|
type RootConfig = {
|
|
13
15
|
version?: number;
|
|
@@ -19,17 +21,24 @@ type RootConfig = {
|
|
|
19
21
|
providerAccounts?: ProviderAccount[];
|
|
20
22
|
};
|
|
21
23
|
/**
|
|
22
|
-
* Config class for loading and saving
|
|
24
|
+
* Config class for loading and saving fjall-config.json file
|
|
23
25
|
*/
|
|
24
26
|
export declare class Config {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
rootConfig: RootConfig;
|
|
28
|
+
existingAccountsConfig: Account[];
|
|
29
|
+
constructor(rootConfig?: object, existingAccountsConfig?: Account[]);
|
|
27
30
|
isDevelopment(): boolean;
|
|
28
31
|
/**
|
|
29
32
|
* Load config file into memory as a raw JSON string
|
|
30
33
|
* @returns Config as JSON string or NULL if no config file accessible
|
|
31
34
|
*/
|
|
32
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;
|
|
33
42
|
/**
|
|
34
43
|
* Load configuration from file
|
|
35
44
|
*
|
|
@@ -63,5 +72,8 @@ export declare class Config {
|
|
|
63
72
|
setProvider(provider: Provider): void;
|
|
64
73
|
addProviderAccount(account: ProviderAccount): void;
|
|
65
74
|
getProviderAccount(accountName: string): ProviderAccount | null | undefined;
|
|
75
|
+
setExistingAccounts(region: string): Promise<void>;
|
|
76
|
+
getExistingAccounts(): Account[];
|
|
77
|
+
getAWSAccountId(): Promise<string | undefined>;
|
|
66
78
|
}
|
|
67
79
|
export {};
|
package/dist/src/Config.js
CHANGED
|
@@ -2,42 +2,61 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Config = void 0;
|
|
4
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");
|
|
5
7
|
/**
|
|
6
8
|
* The current base-version of any newly created config file
|
|
7
9
|
*/
|
|
8
10
|
const BASE_CONFIG_VERSION = 0.1;
|
|
9
11
|
/**
|
|
10
|
-
* Config class for loading and saving
|
|
12
|
+
* Config class for loading and saving fjall-config.json file
|
|
11
13
|
*/
|
|
12
14
|
class Config {
|
|
13
|
-
constructor(
|
|
14
|
-
this.
|
|
15
|
-
?
|
|
15
|
+
constructor(rootConfig, existingAccountsConfig) {
|
|
16
|
+
this.rootConfig = rootConfig
|
|
17
|
+
? rootConfig
|
|
16
18
|
: {
|
|
17
19
|
version: BASE_CONFIG_VERSION,
|
|
18
20
|
services: {},
|
|
19
21
|
providerAccounts: [],
|
|
20
22
|
};
|
|
23
|
+
this.existingAccountsConfig = existingAccountsConfig
|
|
24
|
+
? existingAccountsConfig
|
|
25
|
+
: [];
|
|
21
26
|
}
|
|
22
27
|
isDevelopment() {
|
|
23
|
-
return !!this.
|
|
28
|
+
return !!this.rootConfig?.development;
|
|
24
29
|
}
|
|
25
30
|
/**
|
|
26
31
|
* Load config file into memory as a raw JSON string
|
|
27
32
|
* @returns Config as JSON string or NULL if no config file accessible
|
|
28
33
|
*/
|
|
29
|
-
static loadConfigFile() {
|
|
34
|
+
static loadConfigFile(configFile) {
|
|
30
35
|
try {
|
|
31
|
-
fs.accessSync(
|
|
32
|
-
return fs.readFileSync(
|
|
36
|
+
fs.accessSync(configFile, fs.constants.R_OK | fs.constants.W_OK);
|
|
37
|
+
return fs.readFileSync(configFile, {
|
|
33
38
|
encoding: "utf8",
|
|
34
39
|
});
|
|
35
40
|
}
|
|
36
41
|
catch (err) {
|
|
37
|
-
console.log(
|
|
42
|
+
// console.log(
|
|
43
|
+
// `Expected file '${configFile}' does not exist or cannot be read.`
|
|
44
|
+
// );
|
|
38
45
|
return null;
|
|
39
46
|
}
|
|
40
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
|
+
}
|
|
41
60
|
/**
|
|
42
61
|
* Load configuration from file
|
|
43
62
|
*
|
|
@@ -45,23 +64,32 @@ class Config {
|
|
|
45
64
|
*/
|
|
46
65
|
static loadConfig() {
|
|
47
66
|
try {
|
|
48
|
-
const
|
|
49
|
-
|
|
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);
|
|
50
76
|
}
|
|
51
77
|
catch (err) {
|
|
52
|
-
console.
|
|
53
|
-
process.exit();
|
|
78
|
+
console.error("Unable to parse config file. Aborting.", err);
|
|
79
|
+
process.exit(1);
|
|
54
80
|
}
|
|
55
81
|
}
|
|
56
82
|
/**
|
|
57
83
|
* Save configuration to file
|
|
58
84
|
*/
|
|
59
85
|
saveConfig() {
|
|
60
|
-
// Ensure
|
|
61
|
-
fs.mkdirSync("
|
|
62
|
-
// JSON-ify config and write to file
|
|
63
|
-
const
|
|
64
|
-
fs.writeFileSync("
|
|
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);
|
|
65
93
|
}
|
|
66
94
|
/**
|
|
67
95
|
* Set the schema version used for this config file
|
|
@@ -69,7 +97,7 @@ class Config {
|
|
|
69
97
|
* @param version Schema Version
|
|
70
98
|
*/
|
|
71
99
|
setVersion(version) {
|
|
72
|
-
this.
|
|
100
|
+
this.rootConfig.version = version;
|
|
73
101
|
}
|
|
74
102
|
/**
|
|
75
103
|
* Add a new service to the config file
|
|
@@ -77,9 +105,9 @@ class Config {
|
|
|
77
105
|
* @param config Service configuration properties
|
|
78
106
|
*/
|
|
79
107
|
addService(serviceKey, config) {
|
|
80
|
-
if (!this.
|
|
81
|
-
this.
|
|
82
|
-
this.
|
|
108
|
+
if (!this.rootConfig.services)
|
|
109
|
+
this.rootConfig.services = {};
|
|
110
|
+
this.rootConfig.services[serviceKey] = config;
|
|
83
111
|
}
|
|
84
112
|
/**
|
|
85
113
|
* Set config options on a previously defined service
|
|
@@ -88,33 +116,54 @@ class Config {
|
|
|
88
116
|
* @param config Service configuration properties to set
|
|
89
117
|
*/
|
|
90
118
|
setServiceOption(serviceKey, config) {
|
|
91
|
-
if (!this.
|
|
92
|
-
this.
|
|
93
|
-
const service = this.
|
|
119
|
+
if (!this.rootConfig.services)
|
|
120
|
+
this.rootConfig.services = {};
|
|
121
|
+
const service = this.rootConfig.services[serviceKey];
|
|
94
122
|
if (!service)
|
|
95
123
|
return;
|
|
96
|
-
this.
|
|
124
|
+
this.rootConfig.services[serviceKey] = { ...service, ...config };
|
|
97
125
|
}
|
|
98
126
|
getServiceConfig(serviceKey) {
|
|
99
|
-
if (!this.
|
|
127
|
+
if (!this.rootConfig.services)
|
|
100
128
|
return null;
|
|
101
|
-
return this.
|
|
129
|
+
return this.rootConfig.services[serviceKey] || null;
|
|
102
130
|
}
|
|
103
131
|
setProvider(provider) {
|
|
104
|
-
this.
|
|
132
|
+
this.rootConfig.provider = provider;
|
|
105
133
|
}
|
|
106
134
|
addProviderAccount(account) {
|
|
107
|
-
if (!this.
|
|
108
|
-
this.
|
|
135
|
+
if (!this.rootConfig.providerAccounts)
|
|
136
|
+
this.rootConfig.providerAccounts = [];
|
|
109
137
|
// ensure account name is always lowercase
|
|
110
138
|
account.name = account.name.toLocaleLowerCase();
|
|
111
|
-
this.
|
|
139
|
+
this.rootConfig.providerAccounts.push(account);
|
|
112
140
|
}
|
|
113
141
|
getProviderAccount(accountName) {
|
|
114
|
-
|
|
142
|
+
// TODO: Fix null error
|
|
143
|
+
if (!this.rootConfig.providerAccounts)
|
|
115
144
|
return null;
|
|
116
|
-
return this.
|
|
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;
|
|
117
166
|
}
|
|
118
167
|
}
|
|
119
168
|
exports.Config = Config;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUF3QnpCOztHQUVHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFaEM7O0dBRUc7QUFDSCxNQUFhLE1BQU07SUFHakIsWUFBWSxNQUFlO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTTtZQUNsQixDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQztnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsRUFBRTtnQkFDWixnQkFBZ0IsRUFBRSxFQUFFO2FBQ3JCLENBQUM7SUFDUixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsY0FBYztRQUMzQixJQUFJO1lBQ0YsRUFBRSxDQUFDLFVBQVUsQ0FDWCwyQkFBMkIsRUFDM0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3RDLENBQUM7WUFFRixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsMkJBQTJCLEVBQUU7Z0JBQ2xELFFBQVEsRUFBRSxNQUFNO2FBQ2pCLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDdEUsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJO1lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJ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QUMsaUJBQWlCLEVBQUUsQ0FDdkUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTNIRCx3QkEySEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcblxudHlwZSBQcm92aWRlciA9IFwiYXdzXCI7XG5cbnR5cGUgU2VydmljZUNvbmZpZyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgdmVyc2lvbj86IG51bWJlcjtcbiAgb3B0aW9ucz86IG9iamVjdDtcbn07XG5cbnR5cGUgUHJvdmlkZXJBY2NvdW50ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59O1xuXG50eXBlIFJvb3RDb25maWcgPSB7XG4gIHZlcnNpb24/OiBudW1iZXI7XG4gIGRldmVsb3BtZW50PzogYm9vbGVhbjtcbiAgc2VydmljZXM/OiB7IFtrZXk6IHN0cmluZ106IFNlcnZpY2VDb25maWcgfTtcbiAgcHJvdmlkZXI/OiBQcm92aWRlcjtcbiAgcHJvdmlkZXJBY2NvdW50cz86IFByb3ZpZGVyQWNjb3VudFtdO1xufTtcblxuLyoqXG4gKiBUaGUgY3VycmVudCBiYXNlLXZlcnNpb24gb2YgYW55IG5ld2x5IGNyZWF0ZWQgY29uZmlnIGZpbGVcbiAqL1xuY29uc3QgQkFTRV9DT05GSUdfVkVSU0lPTiA9IDAuMTtcblxuLyoqXG4gKiBDb25maWcgY2xhc3MgZm9yIGxvYWRpbmcgYW5kIHNhdmluZyAuZmphbGwtY29uZmlnLmpzb24gZmlsZVxuICovXG5leHBvcnQgY2xhc3MgQ29uZmlnIHtcbiAgY29uZmlnOiBSb290Q29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IG9iamVjdCkge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnXG4gICAgICA/IGNvbmZpZ1xuICAgICAgOiB7XG4gICAgICAgICAgdmVyc2lvbjogQkFTRV9DT05GSUdfVkVSU0lPTixcbiAgICAgICAgICBzZXJ2aWNlczoge30sXG4gICAgICAgICAgcHJvdmlkZXJBY2NvdW50czogW10sXG4gICAgICAgIH07XG4gIH1cblxuICBpc0RldmVsb3BtZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY29uZmlnPy5kZXZlbG9wbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGNvbmZpZyBmaWxlIGludG8gbWVtb3J5IGFzIGEgcmF3IEpTT04gc3RyaW5nXG4gICAqIEByZXR1cm5zIENvbmZpZyBhcyBKU09OIHN0cmluZyBvciBOVUxMIGlmIG5vIGNvbmZpZyBmaWxlIGFjY2Vzc2libGVcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGxvYWRDb25maWdGaWxlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICBmcy5hY2Nlc3NTeW5jKFxuICAgICAgICBcIi5mamFsbC8uZmphbGwtY29uZmlnLmpzb25cIixcbiAgICAgICAgZnMuY29uc3RhbnRzLlJfT0sgfCBmcy5jb25zdGFudHMuV19PS1xuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhcIi5mamFsbC8uZmphbGwtY29uZmlnLmpzb25cIiwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRXhwZWN0ZWQgY29uZmlnIGZpbGUgZG9lcyBub3QgZXhpc3Qgb3IgY2Fubm90IGJlIHJlYWQuXCIpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgY29uZmlndXJhdGlvbiBmcm9tIGZpbGVcbiAgICpcbiAgICogQHJldHVybnMgTG9hZGVkIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHN0YXRpYyBsb2FkQ29uZmlnKCk6IENvbmZpZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbmZpZ0pzb24gPSB0aGlzLmxvYWRDb25maWdGaWxlKCk7XG4gICAgICByZXR1cm4gY29uZmlnSnNvbiA/IG5ldyBDb25maWcoSlNPTi5wYXJzZShjb25maWdKc29uKSkgOiBuZXcgQ29uZmlnKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIlVuYWJsZSB0byBwYXJzZSBjb25maWcgZmlsZS4gQWJvcnRpbmcuXCIpO1xuICAgICAgcHJvY2Vzcy5leGl0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgY29uZmlndXJhdGlvbiB0byBmaWxlXG4gICAqL1xuICBzYXZlQ29uZmlnKCkge1xuICAgIC8vIEVuc3VyZSAuZmphbGwgZGlyZWN0b3J5IGV4aXN0c1xuICAgIGZzLm1rZGlyU3luYyhcIi5mamFsbFwiLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsgLy8gcmVjdXJzaXZlOiB0cnVlIHByZXZlbnRzIGVycm9yIGlmIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0c1xuXG4gICAgLy8gSlNPTi1pZnkgY29uZmlnIGFuZCB3cml0ZSB0byBmaWxlXG4gICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnLCBudWxsLCAyKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKFwiLmZqYWxsLy5mamFsbC1jb25maWcuanNvblwiLCBqc29uU3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHNjaGVtYSB2ZXJzaW9uIHVzZWQgZm9yIHRoaXMgY29uZmlnIGZpbGVcbiAgICpcbiAgICogQHBhcmFtIHZlcnNpb24gU2NoZW1hIFZlcnNpb25cbiAgICovXG4gIHNldFZlcnNpb24odmVyc2lvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5jb25maWcudmVyc2lvbiA9IHZlcnNpb247XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IHNlcnZpY2UgdG8gdGhlIGNvbmZpZyBmaWxlXG4gICAqIEBwYXJhbSBzZXJ2aWNlS2V5IE5hbWUva2V5IG9mIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSBjb25maWcgU2VydmljZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICovXG4gIGFkZFNlcnZpY2Uoc2VydmljZUtleTogc3RyaW5nLCBjb25maWc6IFNlcnZpY2VDb25maWcpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnNlcnZpY2VzKSB0aGlzLmNvbmZpZy5zZXJ2aWNlcyA9IHt9O1xuICAgIHRoaXMuY29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldID0gY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWcgb3B0aW9ucyBvbiBhIHByZXZpb3VzbHkgZGVmaW5lZCBzZXJ2aWNlXG4gICAqXG4gICAqIEBwYXJhbSBzZXJ2aWNlS2V5IE5hbWUva2V5IG9mIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSBjb25maWcgU2VydmljZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdG8gc2V0XG4gICAqL1xuICBzZXRTZXJ2aWNlT3B0aW9uKHNlcnZpY2VLZXk6IHN0cmluZywgY29uZmlnOiBTZXJ2aWNlQ29uZmlnKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5zZXJ2aWNlcykgdGhpcy5jb25maWcuc2VydmljZXMgPSB7fTtcblxuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLmNvbmZpZy5zZXJ2aWNlc1tzZXJ2aWNlS2V5XTtcbiAgICBpZiAoIXNlcnZpY2UpIHJldHVybjtcblxuICAgIHRoaXMuY29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldID0geyAuLi5zZXJ2aWNlLCAuLi5jb25maWcgfTtcbiAgfVxuXG4gIGdldFNlcnZpY2VDb25maWcoc2VydmljZUtleTogc3RyaW5nKTogU2VydmljZUNvbmZpZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5jb25maWcuc2VydmljZXMpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5zZXJ2aWNlc1tzZXJ2aWNlS2V5XSB8fCBudWxsO1xuICB9XG5cbiAgc2V0UHJvdmlkZXIocHJvdmlkZXI6IFByb3ZpZGVyKSB7XG4gICAgdGhpcy5jb25maWcucHJvdmlkZXIgPSBwcm92aWRlcjtcbiAgfVxuXG4gIGFkZFByb3ZpZGVyQWNjb3VudChhY2NvdW50OiBQcm92aWRlckFjY291bnQpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnByb3ZpZGVyQWNjb3VudHMpIHRoaXMuY29uZmlnLnByb3ZpZGVyQWNjb3VudHMgPSBbXTtcblxuICAgIC8vIGVuc3VyZSBhY2NvdW50IG5hbWUgaXMgYWx3YXlzIGxvd2VyY2FzZVxuICAgIGFjY291bnQubmFtZSA9IGFjY291bnQubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXG4gICAgdGhpcy5jb25maWcucHJvdmlkZXJBY2NvdW50cy5wdXNoKGFjY291bnQpO1xuICB9XG5cbiAgZ2V0UHJvdmlkZXJBY2NvdW50KGFjY291bnROYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnByb3ZpZGVyQWNjb3VudHMpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5wcm92aWRlckFjY291bnRzLmZpbmQoXG4gICAgICAoYWNjb3VudCkgPT5cbiAgICAgICAgYWNjb3VudC5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IGFjY291bnROYW1lLnRvTG9jYWxlTG93ZXJDYXNlKClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsd0VBSXVDO0FBQ3ZDLG9EQUEwRTtBQXlCMUU7O0dBRUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUVoQzs7R0FFRztBQUNILE1BQWEsTUFBTTtJQUlqQixZQUFZLFVBQW1CLEVBQUUsc0JBQWtDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVTtZQUMxQixDQUFDLENBQUMsVUFBVTtZQUNaLENBQUMsQ0FBQztnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsRUFBRTtnQkFDWixnQkFBZ0IsRUFBRSxFQUFFO2FBQ3JCLENBQUM7UUFFTixJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCO1lBQ2xELENBQUMsQ0FBQyxzQkFBc0I7WUFDeEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNULENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBa0I7UUFDOUMsSUFBSTtZQUNGLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakUsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTtnQkFDakMsUUFBUSxFQUFFLE1BQU07YUFDakIsQ0FBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLGVBQWU7WUFDZixzRUFBc0U7WUFDdEUsS0FBSztZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxVQUFrQjtRQUNqRCxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksTUFBTTtZQUFFLE9BQU8sTUFBTSxDQUFDO1FBRTFCLDJCQUEyQjtRQUMzQixPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJO1lBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUM3Qyx5QkFBeUIsQ0FDMUIsQ0FBQztZQUNGLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUNsRCw0QkFBNEIsQ0FDN0IsQ0FBQztZQUVGLE1BQU0sVUFBVSxHQUFHLGNBQWM7Z0JBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNkLE1BQU0sc0JBQXNCLEdBQUcsbUJBQW1CO2dCQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUVkLE9BQU8sSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUM7U0FDdkQ7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDN0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixnQ0FBZ0M7UUFDaEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZEQUE2RDtRQUV6RyxnREFBZ0Q7UUFDaEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSxFQUFFLENBQUMsYUFBYSxDQUFDLHlCQUF5QixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRTVELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDL0MsSUFBSSxDQUFDLHNCQUFzQixFQUMzQixJQUFJLEVBQ0osQ0FBQyxDQUNGLENBQUM7UUFDRixFQUFFLENBQUMsYUFBYSxDQUFDLDRCQUE0QixFQUFFLDBCQUEwQixDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsVUFBa0IsRUFBRSxNQUFxQjtRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLE1BQXFCO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRXJCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBa0I7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRCxXQUFXLENBQUMsUUFBa0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUF3QjtRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0I7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFeEMsMENBQTBDO1FBQzFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRWhELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUFtQjtRQUNwQyx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDMUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FDdkUsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsTUFBYztRQUN0QyxnQkFBZ0I7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSwwQ0FBbUIsQ0FBQztZQUNyQyxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLElBQUksMENBQW1CLENBQUM7WUFDdEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDekIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtRQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQ0FBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsT0FBTyxRQUFRLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUEzTEQsd0JBMkxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQge1xuICBBY2NvdW50LFxuICBMaXN0QWNjb3VudHNDb21tYW5kLFxuICBPcmdhbml6YXRpb25zQ2xpZW50LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9yZ2FuaXphdGlvbnNcIjtcbmltcG9ydCB7IFNUU0NsaWVudCwgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zdHNcIjtcblxudHlwZSBQcm92aWRlciA9IFwiYXdzXCI7XG5cbnR5cGUgU2VydmljZUNvbmZpZyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgdmVyc2lvbj86IG51bWJlcjtcbiAgb3B0aW9ucz86IG9iamVjdDtcbn07XG5cbnR5cGUgUHJvdmlkZXJBY2NvdW50ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG59O1xuXG50eXBlIFJvb3RDb25maWcgPSB7XG4gIHZlcnNpb24/OiBudW1iZXI7XG4gIGRldmVsb3BtZW50PzogYm9vbGVhbjtcbiAgc2VydmljZXM/OiB7IFtrZXk6IHN0cmluZ106IFNlcnZpY2VDb25maWcgfTtcbiAgcHJvdmlkZXI/OiBQcm92aWRlcjtcbiAgcHJvdmlkZXJBY2NvdW50cz86IFByb3ZpZGVyQWNjb3VudFtdO1xufTtcblxuLyoqXG4gKiBUaGUgY3VycmVudCBiYXNlLXZlcnNpb24gb2YgYW55IG5ld2x5IGNyZWF0ZWQgY29uZmlnIGZpbGVcbiAqL1xuY29uc3QgQkFTRV9DT05GSUdfVkVSU0lPTiA9IDAuMTtcblxuLyoqXG4gKiBDb25maWcgY2xhc3MgZm9yIGxvYWRpbmcgYW5kIHNhdmluZyBmamFsbC1jb25maWcuanNvbiBmaWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25maWcge1xuICByb290Q29uZmlnOiBSb290Q29uZmlnO1xuICBleGlzdGluZ0FjY291bnRzQ29uZmlnOiBBY2NvdW50W107XG5cbiAgY29uc3RydWN0b3Iocm9vdENvbmZpZz86IG9iamVjdCwgZXhpc3RpbmdBY2NvdW50c0NvbmZpZz86IEFjY291bnRbXSkge1xuICAgIHRoaXMucm9vdENvbmZpZyA9IHJvb3RDb25maWdcbiAgICAgID8gcm9vdENvbmZpZ1xuICAgICAgOiB7XG4gICAgICAgICAgdmVyc2lvbjogQkFTRV9DT05GSUdfVkVSU0lPTixcbiAgICAgICAgICBzZXJ2aWNlczoge30sXG4gICAgICAgICAgcHJvdmlkZXJBY2NvdW50czogW10sXG4gICAgICAgIH07XG5cbiAgICB0aGlzLmV4aXN0aW5nQWNjb3VudHNDb25maWcgPSBleGlzdGluZ0FjY291bnRzQ29uZmlnXG4gICAgICA/IGV4aXN0aW5nQWNjb3VudHNDb25maWdcbiAgICAgIDogW107XG4gIH1cblxuICBpc0RldmVsb3BtZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucm9vdENvbmZpZz8uZGV2ZWxvcG1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBjb25maWcgZmlsZSBpbnRvIG1lbW9yeSBhcyBhIHJhdyBKU09OIHN0cmluZ1xuICAgKiBAcmV0dXJucyBDb25maWcgYXMgSlNPTiBzdHJpbmcgb3IgTlVMTCBpZiBubyBjb25maWcgZmlsZSBhY2Nlc3NpYmxlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBsb2FkQ29uZmlnRmlsZShjb25maWdGaWxlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgZnMuYWNjZXNzU3luYyhjb25maWdGaWxlLCBmcy5jb25zdGFudHMuUl9PSyB8IGZzLmNvbnN0YW50cy5XX09LKTtcblxuICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhjb25maWdGaWxlLCB7XG4gICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gY29uc29sZS5sb2coXG4gICAgICAvLyAgIGBFeHBlY3RlZCBmaWxlICcke2NvbmZpZ0ZpbGV9JyBkb2VzIG5vdCBleGlzdCBvciBjYW5ub3QgYmUgcmVhZC5gXG4gICAgICAvLyApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyaWVzIHRvIGxvYWQgdGhlIGNvbmZpZyBmaWxlIGZyb20gdGhlIGdpdmVuIHBhdGgsIGlmIHVubmNlc3N1ZnVsIGl0IHRyaWVzIGV4YWN0bHkgdHdvIGRpcmVjdG9yaWVzIGhpZ2hlclxuICAgKiBUaGlzIGlzIG5lY2Nlc3NhcnkgdG8gZW5zdXJlIGZqYWxsIGFwcHMgY2FuIGxvYWQgdGhlIGNvbmZpZyBmaWxlIHRoZW1zZWx2ZXNcbiAgICogQHBhcmFtIGNvbmZpZ0ZpbGVcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHRyeUxvYWRDb25maWdGaWxlKGNvbmZpZ0ZpbGU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCBjb25maWcgPSBDb25maWcubG9hZENvbmZpZ0ZpbGUoY29uZmlnRmlsZSk7XG4gICAgaWYgKGNvbmZpZykgcmV0dXJuIGNvbmZpZztcblxuICAgIC8vIFRyeSBvbmUgZGlyZWN0b3J5IGhpZ2hlclxuICAgIHJldHVybiBDb25maWcubG9hZENvbmZpZ0ZpbGUoYC4uLy4uLyR7Y29uZmlnRmlsZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGNvbmZpZ3VyYXRpb24gZnJvbSBmaWxlXG4gICAqXG4gICAqIEByZXR1cm5zIExvYWRlZCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBzdGF0aWMgbG9hZENvbmZpZygpOiBDb25maWcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByb290Q29uZmlnSnNvbiA9IENvbmZpZy50cnlMb2FkQ29uZmlnRmlsZShcbiAgICAgICAgXCJmamFsbC9mamFsbC1jb25maWcuanNvblwiXG4gICAgICApO1xuICAgICAgY29uc3QgZXhpc3RpbmdBY2NvdW50SnNvbiA9IENvbmZpZy50cnlMb2FkQ29uZmlnRmlsZShcbiAgICAgICAgXCJmamFsbC9hY2NvdW50cy1jb25maWcuanNvblwiXG4gICAgICApO1xuXG4gICAgICBjb25zdCByb290Q29uZmlnID0gcm9vdENvbmZpZ0pzb25cbiAgICAgICAgPyBKU09OLnBhcnNlKHJvb3RDb25maWdKc29uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGV4aXN0aW5nQWNjb3VudHNDb25maWcgPSBleGlzdGluZ0FjY291bnRKc29uXG4gICAgICAgID8gSlNPTi5wYXJzZShleGlzdGluZ0FjY291bnRKc29uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgcmV0dXJuIG5ldyBDb25maWcocm9vdENvbmZpZywgZXhpc3RpbmdBY2NvdW50c0NvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiVW5hYmxlIHRvIHBhcnNlIGNvbmZpZyBmaWxlLiBBYm9ydGluZy5cIiwgZXJyKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBjb25maWd1cmF0aW9uIHRvIGZpbGVcbiAgICovXG4gIHNhdmVDb25maWcoKSB7XG4gICAgLy8gRW5zdXJlIGZqYWxsIGRpcmVjdG9yeSBleGlzdHNcbiAgICBmcy5ta2RpclN5bmMoXCJmamFsbFwiLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsgLy8gcmVjdXJzaXZlOiB0cnVlIHByZXZlbnRzIGVycm9yIGlmIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0c1xuXG4gICAgLy8gSlNPTi1pZnkgY29uZmlnIGFuZCB3cml0ZSByb290IGNvbmZpZyB0byBmaWxlXG4gICAgY29uc3Qgcm9vdEpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLnJvb3RDb25maWcsIG51bGwsIDIpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMoXCJmamFsbC9mamFsbC1jb25maWcuanNvblwiLCByb290SnNvblN0cmluZyk7XG5cbiAgICBjb25zdCBleGlzdGluZ0FjY291bnRzSnNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgdGhpcy5leGlzdGluZ0FjY291bnRzQ29uZmlnLFxuICAgICAgbnVsbCxcbiAgICAgIDJcbiAgICApO1xuICAgIGZzLndyaXRlRmlsZVN5bmMoXCJmamFsbC9hY2NvdW50cy1jb25maWcuanNvblwiLCBleGlzdGluZ0FjY291bnRzSnNvblN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBzY2hlbWEgdmVyc2lvbiB1c2VkIGZvciB0aGlzIGNvbmZpZyBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB2ZXJzaW9uIFNjaGVtYSBWZXJzaW9uXG4gICAqL1xuICBzZXRWZXJzaW9uKHZlcnNpb246IG51bWJlcikge1xuICAgIHRoaXMucm9vdENvbmZpZy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgc2VydmljZSB0byB0aGUgY29uZmlnIGZpbGVcbiAgICogQHBhcmFtIHNlcnZpY2VLZXkgTmFtZS9rZXkgb2YgdGhlIHNlcnZpY2VcbiAgICogQHBhcmFtIGNvbmZpZyBTZXJ2aWNlIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKi9cbiAgYWRkU2VydmljZShzZXJ2aWNlS2V5OiBzdHJpbmcsIGNvbmZpZzogU2VydmljZUNvbmZpZykge1xuICAgIGlmICghdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzKSB0aGlzLnJvb3RDb25maWcuc2VydmljZXMgPSB7fTtcbiAgICB0aGlzLnJvb3RDb25maWcuc2VydmljZXNbc2VydmljZUtleV0gPSBjb25maWc7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyBvcHRpb25zIG9uIGEgcHJldmlvdXNseSBkZWZpbmVkIHNlcnZpY2VcbiAgICpcbiAgICogQHBhcmFtIHNlcnZpY2VLZXkgTmFtZS9rZXkgb2YgdGhlIHNlcnZpY2VcbiAgICogQHBhcmFtIGNvbmZpZyBTZXJ2aWNlIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB0byBzZXRcbiAgICovXG4gIHNldFNlcnZpY2VPcHRpb24oc2VydmljZUtleTogc3RyaW5nLCBjb25maWc6IFNlcnZpY2VDb25maWcpIHtcbiAgICBpZiAoIXRoaXMucm9vdENvbmZpZy5zZXJ2aWNlcykgdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzID0ge307XG5cbiAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldO1xuICAgIGlmICghc2VydmljZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldID0geyAuLi5zZXJ2aWNlLCAuLi5jb25maWcgfTtcbiAgfVxuXG4gIGdldFNlcnZpY2VDb25maWcoc2VydmljZUtleTogc3RyaW5nKTogU2VydmljZUNvbmZpZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5yb290Q29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldIHx8IG51bGw7XG4gIH1cblxuICBzZXRQcm92aWRlcihwcm92aWRlcjogUHJvdmlkZXIpIHtcbiAgICB0aGlzLnJvb3RDb25maWcucHJvdmlkZXIgPSBwcm92aWRlcjtcbiAgfVxuXG4gIGFkZFByb3ZpZGVyQWNjb3VudChhY2NvdW50OiBQcm92aWRlckFjY291bnQpIHtcbiAgICBpZiAoIXRoaXMucm9vdENvbmZpZy5wcm92aWRlckFjY291bnRzKVxuICAgICAgdGhpcy5yb290Q29uZmlnLnByb3ZpZGVyQWNjb3VudHMgPSBbXTtcblxuICAgIC8vIGVuc3VyZSBhY2NvdW50IG5hbWUgaXMgYWx3YXlzIGxvd2VyY2FzZVxuICAgIGFjY291bnQubmFtZSA9IGFjY291bnQubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXG4gICAgdGhpcy5yb290Q29uZmlnLnByb3ZpZGVyQWNjb3VudHMucHVzaChhY2NvdW50KTtcbiAgfVxuXG4gIGdldFByb3ZpZGVyQWNjb3VudChhY2NvdW50TmFtZTogc3RyaW5nKSB7XG4gICAgLy8gVE9ETzogRml4IG51bGwgZXJyb3JcbiAgICBpZiAoIXRoaXMucm9vdENvbmZpZy5wcm92aWRlckFjY291bnRzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5yb290Q29uZmlnLnByb3ZpZGVyQWNjb3VudHMuZmluZChcbiAgICAgIChhY2NvdW50KSA9PlxuICAgICAgICBhY2NvdW50Lm5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gYWNjb3VudE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBzZXRFeGlzdGluZ0FjY291bnRzKHJlZ2lvbjogc3RyaW5nKSB7XG4gICAgLy8gTWFrZSBBUEkgQ2FsbFxuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBPcmdhbml6YXRpb25zQ2xpZW50KHtcbiAgICAgIHJlZ2lvbjogcmVnaW9uLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgTGlzdEFjY291bnRzQ29tbWFuZCh7XG4gICAgICBNYXhSZXN1bHRzOiBOdW1iZXIoXCIyMFwiKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQocmVxdWVzdCk7XG4gICAgdGhpcy5leGlzdGluZ0FjY291bnRzQ29uZmlnID0gcmVzcG9uc2UuQWNjb3VudHMgfHwgW107XG4gIH1cblxuICBnZXRFeGlzdGluZ0FjY291bnRzKCk6IEFjY291bnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZXhpc3RpbmdBY2NvdW50c0NvbmZpZztcbiAgfVxuXG4gIGFzeW5jIGdldEFXU0FjY291bnRJZCgpIHtcbiAgICBjb25zdCBzdHNDbGllbnQgPSBuZXcgU1RTQ2xpZW50KHt9KTtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEdldENhbGxlcklkZW50aXR5Q29tbWFuZCh7fSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzdHNDbGllbnQuc2VuZChyZXF1ZXN0KTtcblxuICAgIHJldHVybiByZXNwb25zZT8uQWNjb3VudCB8fCB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,23 +1,31 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
2
|
+
"name": "@fjall/util",
|
|
3
|
+
"version": "0.1.18",
|
|
4
|
+
"description": "Common utility methods",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist/"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"clean": "rm -rf ./dist",
|
|
12
|
+
"build": "npm run clean && npx tsc",
|
|
13
|
+
"watch": "npm run build && npx tsc-watch",
|
|
14
|
+
"publish": "npm run build && npm publish --access restricted"
|
|
15
|
+
},
|
|
16
|
+
"author": "",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@aws-sdk/client-organizations": "^3.699.0",
|
|
20
|
+
"@types/node": "^18.19.34",
|
|
21
|
+
"tsc-watch": "^6.0.0",
|
|
22
|
+
"typescript": "^4.9.4"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@aws-sdk/client-organizations": "^3.709.0",
|
|
26
|
+
"@aws-sdk/client-sts": "^3.731.1"
|
|
27
|
+
},
|
|
28
|
+
"overrides": {
|
|
29
|
+
"@smithy/core": "2.5.5"
|
|
30
|
+
}
|
|
23
31
|
}
|