agenticpool 1.0.11 → 1.0.12
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/api/ApiClient.d.ts +13 -0
- package/dist/api/ApiClient.js +33 -6
- package/dist/commands/errors.d.ts +2 -0
- package/dist/commands/errors.js +73 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.js +4 -2
- package/dist/commands/networks.js +2 -1
- package/dist/commands/profile.js +44 -1
- package/dist/datamodel/toon/index.js +41 -39
- package/dist/index.js +2 -1
- package/package.json +1 -1
package/dist/api/ApiClient.d.ts
CHANGED
|
@@ -21,4 +21,17 @@ export declare class ApiClient {
|
|
|
21
21
|
put<T>(path: string, data?: unknown): Promise<ApiResponse<T>>;
|
|
22
22
|
delete<T>(path: string): Promise<ApiResponse<T>>;
|
|
23
23
|
private parseResponse;
|
|
24
|
+
reportError(errorContext: {
|
|
25
|
+
command: string;
|
|
26
|
+
errorCode: string;
|
|
27
|
+
errorMessage: string;
|
|
28
|
+
stackTrace?: string;
|
|
29
|
+
cliVersion: string;
|
|
30
|
+
nodeVersion: string;
|
|
31
|
+
os: string;
|
|
32
|
+
arch: string;
|
|
33
|
+
agentModel?: string;
|
|
34
|
+
agentName?: string;
|
|
35
|
+
tags?: string[];
|
|
36
|
+
}): Promise<void>;
|
|
24
37
|
}
|
package/dist/api/ApiClient.js
CHANGED
|
@@ -105,17 +105,44 @@ class ApiClient {
|
|
|
105
105
|
}
|
|
106
106
|
parseResponse(data) {
|
|
107
107
|
logger_1.logger.debug(`Parsing response data (type: ${typeof data})`);
|
|
108
|
-
if (typeof data
|
|
108
|
+
if (typeof data !== 'string') {
|
|
109
|
+
return data;
|
|
110
|
+
}
|
|
111
|
+
const trimmed = data.trim();
|
|
112
|
+
if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
|
|
113
|
+
try {
|
|
114
|
+
return JSON.parse(trimmed);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
return { success: false, error: { code: 'PARSE_ERROR', message: 'Failed to parse JSON response' } };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (trimmed.startsWith('<') || trimmed.startsWith('<!DOCTYPE')) {
|
|
121
|
+
return { success: false, error: { code: 'PARSE_ERROR', message: 'Received HTML instead of API response' } };
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
return (0, datamodel_1.decode)(trimmed);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
109
127
|
try {
|
|
110
|
-
return
|
|
128
|
+
return JSON.parse(trimmed);
|
|
111
129
|
}
|
|
112
|
-
catch
|
|
113
|
-
logger_1.logger.debug(`Parse Error: ${err instanceof Error ? err.message : 'Unknown'}`);
|
|
130
|
+
catch {
|
|
114
131
|
return { success: false, error: { code: 'PARSE_ERROR', message: 'Failed to parse response' } };
|
|
115
132
|
}
|
|
116
133
|
}
|
|
117
|
-
|
|
134
|
+
}
|
|
135
|
+
async reportError(errorContext) {
|
|
136
|
+
try {
|
|
137
|
+
const savedFormat = this.format;
|
|
138
|
+
this.format = 'json';
|
|
139
|
+
await this.post('/v1/errors', errorContext);
|
|
140
|
+
this.format = savedFormat;
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
// Silent — never block CLI for error reporting
|
|
144
|
+
}
|
|
118
145
|
}
|
|
119
146
|
}
|
|
120
147
|
exports.ApiClient = ApiClient;
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9BcGlDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQWlFO0FBQ2pFLHNDQUF3RDtBQUN4RCw0Q0FBeUM7QUFDekMsNENBQThDO0FBYzlDLE1BQWEsU0FBUztJQUlwQixZQUFZLE9BQWU7UUFGbkIsV0FBTSxHQUFvQixNQUFNLENBQUM7UUFHdkMsZUFBTSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7WUFDekIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QyxlQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixNQUFNLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksTUFBTSxDQUFDLE1BQU07Z0JBQUUsZUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RSxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVILHVDQUF1QztRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNuQyxRQUFRLENBQUMsRUFBRTtZQUNULGVBQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lB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QUM7Z0JBQ0gsT0FBTyxJQUFBLGtCQUFNLEVBQWlCLElBQUksQ0FBQyxDQUFDO1lBQ3RDLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLGVBQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLEVBQUUsQ0FBQztZQUNqRyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBc0IsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUF0SEQsOEJBc0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zLCB7IEF4aW9zSW5zdGFuY2UsIEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIsIEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXInO1xuaW1wb3J0IHsgZW5jb2RlLCBkZWNvZGUgfSBmcm9tICcuLi9kYXRhbW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUVycm9yIHtcbiAgY29kZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZTxUPiB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGRhdGE/OiBUO1xuICBlcnJvcj86IEFwaUVycm9yO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpQ2xpZW50IHtcbiAgcHJpdmF0ZSBjbGllbnQ6IEF4aW9zSW5zdGFuY2U7XG4gIHByaXZhdGUgZm9ybWF0OiAndG9vbicgfCAnanNvbicgPSAndG9vbic7XG5cbiAgY29uc3RydWN0b3IoYmFzZVVybDogc3RyaW5nKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBJbml0aWFsaXppbmcgQXBpQ2xpZW50IHdpdGggYmFzZVVybDogJHtiYXNlVXJsfWApO1xuICAgIHRoaXMuY2xpZW50ID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGJhc2VVcmwsXG4gICAgICB0aW1lb3V0OiAzMDAwMFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIHJlcXVlc3QgaW50ZXJjZXB0b3IgZm9yIGxvZ2dpbmdcbiAgICB0aGlzLmNsaWVudC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoY29uZmlnID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlcXVlc3Q6ICR7Y29uZmlnLm1ldGhvZD8udG9VcHBlckNhc2UoKX0gJHtjb25maWcudXJsfWApO1xuICAgICAgaWYgKGNvbmZpZy5wYXJhbXMpIGxvZ2dlci5kZWJ1ZyhgUGFyYW1zOiAke0pTT04uc3RyaW5naWZ5KGNvbmZpZy5wYXJhbXMpfWApO1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9KTtcblxuICAgIC8vIEFkZCByZXNwb25zZSBpbnRlcmNlcHRvciBmb3IgbG9nZ2luZ1xuICAgIHRoaXMuY2xpZW50LmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UoXG4gICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlc3BvbnNlOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5jb25maWcudXJsfWApO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICBsb2dnZXIuZGVidWcoYEFQSSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2UpIHtcbiAgICAgICAgICBsb2dnZXIuZGVidWcoYFN0YXR1czogJHtlcnJvci5yZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKGBEYXRhOiAke0pTT04uc3RyaW5naWZ5KGVycm9yLnJlc3BvbnNlLmRhdGEpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGUoKTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgICBsb2dnZXIuZGVidWcoJ0FwaUNsaWVudC5jcmVhdGUoKSBjYWxsZWQnKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldEdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnLmFwaVVybCk7XG4gICAgY2xpZW50LmZvcm1hdCA9IGNvbmZpZy5kZWZhdWx0Rm9ybWF0O1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICBzZXRBdXRoVG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIGxvZ2dlci5kZWJ1ZygnU2V0dGluZyBBdXRoIFRva2VuJyk7XG4gICAgdGhpcy5jbGllbnQuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICB9XG5cbiAgY2xlYXJBdXRoVG9rZW4oKTogdm9pZCB7XG4gICAgbG9nZ2VyLmRlYnVnKCdDbGVhcmluZyBBdXRoIFRva2VuJyk7XG4gICAgZGVsZXRlIHRoaXMuY2xpZW50LmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydBdXRob3JpemF0aW9uJ107XG4gIH1cblxuICBzZXRGb3JtYXQoZm9ybWF0OiAndG9vbicgfCAnanNvbicpOiB2b2lkIHtcbiAgICBsb2dnZXIuZGVidWcoYFNldHRpbmcgZm9ybWF0IHRvOiAke2Zvcm1hdH1gKTtcbiAgICB0aGlzLmZvcm1hdCA9IGZvcm1hdDtcbiAgfVxuXG4gIGFzeW5jIGdldDxUPihwYXRoOiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBwYXJhbXM6IHsgLi4ucGFyYW1zLCBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcG9zdDxUPihwYXRoOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmZvcm1hdCA9PT0gJ3Rvb24nICYmIGRhdGEgPyBlbmNvZGUoZGF0YSkgOiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBjb25zdCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHsgXG4gICAgICBwYXJhbXM6IHsgZm9ybWF0OiB0aGlzLmZvcm1hdCB9LFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nIH1cbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QocGF0aCwgYm9keSwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHV0PFQ+KHBhdGg6IHN0cmluZywgZGF0YT86IHVua25vd24pOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgYm9keSA9IHRoaXMuZm9ybWF0ID09PSAndG9vbicgJiYgZGF0YSA/IGVuY29kZShkYXRhKSA6IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBcbiAgICAgIHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0sXG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAndGV4dC9wbGFpbicgfVxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucHV0KHBhdGgsIGJvZHksIGNvbmZpZyk7XG4gICAgICByZXR1cm4gdGhpcy5wYXJzZVJlc3BvbnNlPFQ+KHJlc3BvbnNlLmRhdGEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUkVRVUVTVF9GQUlMRUQnLCBtZXNzYWdlOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicgfSB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZTxUPihwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7IHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5kZWxldGUocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVJlc3BvbnNlPFQ+KGRhdGE6IHN0cmluZyB8IG9iamVjdCk6IEFwaVJlc3BvbnNlPFQ+IHtcbiAgICBsb2dnZXIuZGVidWcoYFBhcnNpbmcgcmVzcG9uc2UgZGF0YSAodHlwZTogJHt0eXBlb2YgZGF0YX0pYCk7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZTxBcGlSZXNwb25zZTxUPj4oZGF0YSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKGBQYXJzZSBFcnJvcjogJHtlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1Vua25vd24nfWApO1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IHsgY29kZTogJ1BBUlNFX0VSUk9SJywgbWVzc2FnZTogJ0ZhaWxlZCB0byBwYXJzZSByZXNwb25zZScgfSB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YSBhcyBBcGlSZXNwb25zZTxUPjtcbiAgfVxufVxuIl19
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9BcGlDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQWlFO0FBQ2pFLHNDQUF3RDtBQUN4RCw0Q0FBeUM7QUFDekMsNENBQThDO0FBYzlDLE1BQWEsU0FBUztJQUlwQixZQUFZLE9BQWU7UUFGbkIsV0FBTSxHQUFvQixNQUFNLENBQUM7UUFHdkMsZUFBTSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7WUFDekIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QyxlQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixNQUFNLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksTUFBTSxDQUFDLE1BQU07Z0JBQUUsZUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RSxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVILHVDQUF1QztRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNuQyxRQUFRLENBQUMsRUFBRTtZQUNULGVBQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lB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QUNDLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDckIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztRQUM1QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsK0NBQStDO1FBQ2pELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUEvSkQsOEJBK0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zLCB7IEF4aW9zSW5zdGFuY2UsIEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIsIEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXInO1xuaW1wb3J0IHsgZW5jb2RlLCBkZWNvZGUgfSBmcm9tICcuLi9kYXRhbW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUVycm9yIHtcbiAgY29kZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZTxUPiB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGRhdGE/OiBUO1xuICBlcnJvcj86IEFwaUVycm9yO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpQ2xpZW50IHtcbiAgcHJpdmF0ZSBjbGllbnQ6IEF4aW9zSW5zdGFuY2U7XG4gIHByaXZhdGUgZm9ybWF0OiAndG9vbicgfCAnanNvbicgPSAndG9vbic7XG5cbiAgY29uc3RydWN0b3IoYmFzZVVybDogc3RyaW5nKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBJbml0aWFsaXppbmcgQXBpQ2xpZW50IHdpdGggYmFzZVVybDogJHtiYXNlVXJsfWApO1xuICAgIHRoaXMuY2xpZW50ID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGJhc2VVcmwsXG4gICAgICB0aW1lb3V0OiAzMDAwMFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIHJlcXVlc3QgaW50ZXJjZXB0b3IgZm9yIGxvZ2dpbmdcbiAgICB0aGlzLmNsaWVudC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoY29uZmlnID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlcXVlc3Q6ICR7Y29uZmlnLm1ldGhvZD8udG9VcHBlckNhc2UoKX0gJHtjb25maWcudXJsfWApO1xuICAgICAgaWYgKGNvbmZpZy5wYXJhbXMpIGxvZ2dlci5kZWJ1ZyhgUGFyYW1zOiAke0pTT04uc3RyaW5naWZ5KGNvbmZpZy5wYXJhbXMpfWApO1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9KTtcblxuICAgIC8vIEFkZCByZXNwb25zZSBpbnRlcmNlcHRvciBmb3IgbG9nZ2luZ1xuICAgIHRoaXMuY2xpZW50LmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UoXG4gICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlc3BvbnNlOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5jb25maWcudXJsfWApO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICBsb2dnZXIuZGVidWcoYEFQSSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2UpIHtcbiAgICAgICAgICBsb2dnZXIuZGVidWcoYFN0YXR1czogJHtlcnJvci5yZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKGBEYXRhOiAke0pTT04uc3RyaW5naWZ5KGVycm9yLnJlc3BvbnNlLmRhdGEpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGUoKTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgICBsb2dnZXIuZGVidWcoJ0FwaUNsaWVudC5jcmVhdGUoKSBjYWxsZWQnKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldEdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnLmFwaVVybCk7XG4gICAgY2xpZW50LmZvcm1hdCA9IGNvbmZpZy5kZWZhdWx0Rm9ybWF0O1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICBzZXRBdXRoVG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIGxvZ2dlci5kZWJ1ZygnU2V0dGluZyBBdXRoIFRva2VuJyk7XG4gICAgdGhpcy5jbGllbnQuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICB9XG5cbiAgY2xlYXJBdXRoVG9rZW4oKTogdm9pZCB7XG4gICAgbG9nZ2VyLmRlYnVnKCdDbGVhcmluZyBBdXRoIFRva2VuJyk7XG4gICAgZGVsZXRlIHRoaXMuY2xpZW50LmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydBdXRob3JpemF0aW9uJ107XG4gIH1cblxuICBzZXRGb3JtYXQoZm9ybWF0OiAndG9vbicgfCAnanNvbicpOiB2b2lkIHtcbiAgICBsb2dnZXIuZGVidWcoYFNldHRpbmcgZm9ybWF0IHRvOiAke2Zvcm1hdH1gKTtcbiAgICB0aGlzLmZvcm1hdCA9IGZvcm1hdDtcbiAgfVxuXG4gIGFzeW5jIGdldDxUPihwYXRoOiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBwYXJhbXM6IHsgLi4ucGFyYW1zLCBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcG9zdDxUPihwYXRoOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmZvcm1hdCA9PT0gJ3Rvb24nICYmIGRhdGEgPyBlbmNvZGUoZGF0YSkgOiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBjb25zdCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHsgXG4gICAgICBwYXJhbXM6IHsgZm9ybWF0OiB0aGlzLmZvcm1hdCB9LFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nIH1cbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QocGF0aCwgYm9keSwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHV0PFQ+KHBhdGg6IHN0cmluZywgZGF0YT86IHVua25vd24pOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgYm9keSA9IHRoaXMuZm9ybWF0ID09PSAndG9vbicgJiYgZGF0YSA/IGVuY29kZShkYXRhKSA6IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBcbiAgICAgIHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0sXG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAndGV4dC9wbGFpbicgfVxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucHV0KHBhdGgsIGJvZHksIGNvbmZpZyk7XG4gICAgICByZXR1cm4gdGhpcy5wYXJzZVJlc3BvbnNlPFQ+KHJlc3BvbnNlLmRhdGEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUkVRVUVTVF9GQUlMRUQnLCBtZXNzYWdlOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicgfSB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZTxUPihwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7IHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5kZWxldGUocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVJlc3BvbnNlPFQ+KGRhdGE6IHN0cmluZyB8IG9iamVjdCk6IEFwaVJlc3BvbnNlPFQ+IHtcbiAgICBsb2dnZXIuZGVidWcoYFBhcnNpbmcgcmVzcG9uc2UgZGF0YSAodHlwZTogJHt0eXBlb2YgZGF0YX0pYCk7XG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGRhdGEgYXMgQXBpUmVzcG9uc2U8VD47XG4gICAgfVxuXG4gICAgY29uc3QgdHJpbW1lZCA9IGRhdGEudHJpbSgpO1xuXG4gICAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgneycpIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnWycpKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0cmltbWVkKSBhcyBBcGlSZXNwb25zZTxUPjtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IHsgY29kZTogJ1BBUlNFX0VSUk9SJywgbWVzc2FnZTogJ0ZhaWxlZCB0byBwYXJzZSBKU09OIHJlc3BvbnNlJyB9IH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgnPCcpIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnPCFET0NUWVBFJykpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUEFSU0VfRVJST1InLCBtZXNzYWdlOiAnUmVjZWl2ZWQgSFRNTCBpbnN0ZWFkIG9mIEFQSSByZXNwb25zZScgfSB9O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZGVjb2RlPEFwaVJlc3BvbnNlPFQ+Pih0cmltbWVkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRyaW1tZWQpIGFzIEFwaVJlc3BvbnNlPFQ+O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUEFSU0VfRVJST1InLCBtZXNzYWdlOiAnRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlJyB9IH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVwb3J0RXJyb3IoZXJyb3JDb250ZXh0OiB7XG4gICAgY29tbWFuZDogc3RyaW5nO1xuICAgIGVycm9yQ29kZTogc3RyaW5nO1xuICAgIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIHN0YWNrVHJhY2U/OiBzdHJpbmc7XG4gICAgY2xpVmVyc2lvbjogc3RyaW5nO1xuICAgIG5vZGVWZXJzaW9uOiBzdHJpbmc7XG4gICAgb3M6IHN0cmluZztcbiAgICBhcmNoOiBzdHJpbmc7XG4gICAgYWdlbnRNb2RlbD86IHN0cmluZztcbiAgICBhZ2VudE5hbWU/OiBzdHJpbmc7XG4gICAgdGFncz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNhdmVkRm9ybWF0ID0gdGhpcy5mb3JtYXQ7XG4gICAgICB0aGlzLmZvcm1hdCA9ICdqc29uJztcbiAgICAgIGF3YWl0IHRoaXMucG9zdCgnL3YxL2Vycm9ycycsIGVycm9yQ29udGV4dCk7XG4gICAgICB0aGlzLmZvcm1hdCA9IHNhdmVkRm9ybWF0O1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2lsZW50IOKAlCBuZXZlciBibG9jayBDTEkgZm9yIGVycm9yIHJlcG9ydGluZ1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerErrorCommands = registerErrorCommands;
|
|
7
|
+
const AuthHelper_1 = require("../auth/AuthHelper");
|
|
8
|
+
const datamodel_1 = require("../datamodel");
|
|
9
|
+
const logger_1 = require("../utils/logger");
|
|
10
|
+
const chalk = require('chalk');
|
|
11
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
12
|
+
function registerErrorCommands(program) {
|
|
13
|
+
const errors = program.command('errors').description('Error report management');
|
|
14
|
+
errors
|
|
15
|
+
.command('list')
|
|
16
|
+
.description('List your recent error reports')
|
|
17
|
+
.option('-l, --limit <number>', 'Number of errors to show', '10')
|
|
18
|
+
.option('--format <format>', 'Output format: toon, json, human', 'human')
|
|
19
|
+
.option('--human', 'Shortcut for --format human')
|
|
20
|
+
.action(async (options) => {
|
|
21
|
+
try {
|
|
22
|
+
const format = options.human ? 'human' : options.format;
|
|
23
|
+
const client = await AuthHelper_1.AuthHelper.getApiClient();
|
|
24
|
+
client.setFormat('json');
|
|
25
|
+
const response = await client.get('/v1/errors', { limit: options.limit });
|
|
26
|
+
if (response.success && response.data) {
|
|
27
|
+
if (format === 'json') {
|
|
28
|
+
console.log(JSON.stringify(response.data, null, 2));
|
|
29
|
+
}
|
|
30
|
+
else if (format === 'human') {
|
|
31
|
+
if (response.data.length === 0) {
|
|
32
|
+
logger_1.logger.success('No errors found.');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const table = new cli_table3_1.default({
|
|
36
|
+
head: [chalk.cyan('ID'), chalk.cyan('Command'), chalk.cyan('Error'), chalk.cyan('Agent'), chalk.cyan('Time')],
|
|
37
|
+
colWidths: [12, 30, 30, 15, 20],
|
|
38
|
+
wordWrap: true
|
|
39
|
+
});
|
|
40
|
+
response.data.forEach((err) => {
|
|
41
|
+
const cmd = (err.command || '').length > 28 ? err.command.substring(0, 28) + '...' : (err.command || '');
|
|
42
|
+
const msg = (err.errorMessage || '').length > 28 ? err.errorMessage.substring(0, 28) + '...' : (err.errorMessage || '');
|
|
43
|
+
const agent = err.agentModel || err.agentName || '-';
|
|
44
|
+
let time = '-';
|
|
45
|
+
if (err.timestamp) {
|
|
46
|
+
const ts = err.timestamp._seconds ? new Date(err.timestamp._seconds * 1000) : new Date(err.timestamp);
|
|
47
|
+
time = ts.toLocaleString();
|
|
48
|
+
}
|
|
49
|
+
table.push([
|
|
50
|
+
(err.id || '-').substring(0, 8),
|
|
51
|
+
cmd,
|
|
52
|
+
msg,
|
|
53
|
+
agent,
|
|
54
|
+
time
|
|
55
|
+
]);
|
|
56
|
+
});
|
|
57
|
+
console.log(table.toString());
|
|
58
|
+
console.log(chalk.gray(`\nShowing ${response.data.length} errors`));
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.log((0, datamodel_1.encode)(response.data));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
logger_1.logger.error('Error:', response.error?.message || 'Failed to list errors');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
logger_1.logger.error('Error:', error instanceof Error ? error.message : 'Unknown error');
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQU9BLHNEQThEQztBQXBFRCxtREFBZ0Q7QUFDaEQsNENBQXNDO0FBQ3RDLDRDQUF5QztBQUN6QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0IsNERBQStCO0FBRS9CLFNBQWdCLHFCQUFxQixDQUFDLE9BQWdCO0lBQ3BELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFFaEYsTUFBTTtTQUNILE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDZixXQUFXLENBQUMsZ0NBQWdDLENBQUM7U0FDN0MsTUFBTSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLElBQUksQ0FBQztTQUNoRSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsa0NBQWtDLEVBQUUsT0FBTyxDQUFDO1NBQ3hFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsNkJBQTZCLENBQUM7U0FDaEQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFZLEVBQUUsRUFBRTtRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDeEQsTUFBTSxNQUFNLEdBQUcsTUFBTSx1QkFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9DLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFekIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFRLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUVqRixJQUFJLFFBQVEs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QUMsSUFBSSxDQUFDLGFBQWEsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RFLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsa0JBQU0sRUFBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDckMsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxDQUFDO1lBQzdFLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLGVBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IEF1dGhIZWxwZXIgfSBmcm9tICcuLi9hdXRoL0F1dGhIZWxwZXInO1xuaW1wb3J0IHsgZW5jb2RlIH0gZnJvbSAnLi4vZGF0YW1vZGVsJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlcic7XG5jb25zdCBjaGFsayA9IHJlcXVpcmUoJ2NoYWxrJyk7XG5pbXBvcnQgVGFibGUgZnJvbSAnY2xpLXRhYmxlMyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckVycm9yQ29tbWFuZHMocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBjb25zdCBlcnJvcnMgPSBwcm9ncmFtLmNvbW1hbmQoJ2Vycm9ycycpLmRlc2NyaXB0aW9uKCdFcnJvciByZXBvcnQgbWFuYWdlbWVudCcpO1xuXG4gIGVycm9yc1xuICAgIC5jb21tYW5kKCdsaXN0JylcbiAgICAuZGVzY3JpcHRpb24oJ0xpc3QgeW91ciByZWNlbnQgZXJyb3IgcmVwb3J0cycpXG4gICAgLm9wdGlvbignLWwsIC0tbGltaXQgPG51bWJlcj4nLCAnTnVtYmVyIG9mIGVycm9ycyB0byBzaG93JywgJzEwJylcbiAgICAub3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0OiB0b29uLCBqc29uLCBodW1hbicsICdodW1hbicpXG4gICAgLm9wdGlvbignLS1odW1hbicsICdTaG9ydGN1dCBmb3IgLS1mb3JtYXQgaHVtYW4nKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY2xpZW50LnNldEZvcm1hdCgnanNvbicpO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oJy92MS9lcnJvcnMnLCB7IGxpbWl0OiBvcHRpb25zLmxpbWl0IH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEsIG51bGwsIDIpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKCdObyBlcnJvcnMgZm91bmQuJyk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdGFibGUgPSBuZXcgVGFibGUoe1xuICAgICAgICAgICAgICBoZWFkOiBbY2hhbGsuY3lhbignSUQnKSwgY2hhbGsuY3lhbignQ29tbWFuZCcpLCBjaGFsay5jeWFuKCdFcnJvcicpLCBjaGFsay5jeWFuKCdBZ2VudCcpLCBjaGFsay5jeWFuKCdUaW1lJyldLFxuICAgICAgICAgICAgICBjb2xXaWR0aHM6IFsxMiwgMzAsIDMwLCAxNSwgMjBdLFxuICAgICAgICAgICAgICB3b3JkV3JhcDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEuZm9yRWFjaCgoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY21kID0gKGVyci5jb21tYW5kIHx8ICcnKS5sZW5ndGggPiAyOCA/IGVyci5jb21tYW5kLnN1YnN0cmluZygwLCAyOCkgKyAnLi4uJyA6IChlcnIuY29tbWFuZCB8fCAnJyk7XG4gICAgICAgICAgICAgIGNvbnN0IG1zZyA9IChlcnIuZXJyb3JNZXNzYWdlIHx8ICcnKS5sZW5ndGggPiAyOCA/IGVyci5lcnJvck1lc3NhZ2Uuc3Vic3RyaW5nKDAsIDI4KSArICcuLi4nIDogKGVyci5lcnJvck1lc3NhZ2UgfHwgJycpO1xuICAgICAgICAgICAgICBjb25zdCBhZ2VudCA9IGVyci5hZ2VudE1vZGVsIHx8IGVyci5hZ2VudE5hbWUgfHwgJy0nO1xuICAgICAgICAgICAgICBsZXQgdGltZSA9ICctJztcbiAgICAgICAgICAgICAgaWYgKGVyci50aW1lc3RhbXApIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cyA9IGVyci50aW1lc3RhbXAuX3NlY29uZHMgPyBuZXcgRGF0ZShlcnIudGltZXN0YW1wLl9zZWNvbmRzICogMTAwMCkgOiBuZXcgRGF0ZShlcnIudGltZXN0YW1wKTtcbiAgICAgICAgICAgICAgICB0aW1lID0gdHMudG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0YWJsZS5wdXNoKFtcbiAgICAgICAgICAgICAgICAoZXJyLmlkIHx8ICctJykuc3Vic3RyaW5nKDAsIDgpLFxuICAgICAgICAgICAgICAgIGNtZCxcbiAgICAgICAgICAgICAgICBtc2csXG4gICAgICAgICAgICAgICAgYWdlbnQsXG4gICAgICAgICAgICAgICAgdGltZVxuICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0YWJsZS50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoYFxcblNob3dpbmcgJHtyZXNwb25zZS5kYXRhLmxlbmd0aH0gZXJyb3JzYCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gbGlzdCBlcnJvcnMnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -8,3 +8,4 @@ export { registerConnectionCommands } from './connections';
|
|
|
8
8
|
export { registerIdentityCommands } from './identities';
|
|
9
9
|
export { registerContactCommands } from './contacts';
|
|
10
10
|
export { registerHumansCommands } from './humans';
|
|
11
|
+
export { registerErrorCommands } from './errors';
|
package/dist/commands/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerHumansCommands = exports.registerContactCommands = exports.registerIdentityCommands = exports.registerConnectionCommands = exports.registerConfigCommands = exports.registerMessageCommands = exports.registerConversationCommands = exports.registerProfileCommands = exports.registerNetworkCommands = exports.registerAuthCommands = void 0;
|
|
3
|
+
exports.registerErrorCommands = exports.registerHumansCommands = exports.registerContactCommands = exports.registerIdentityCommands = exports.registerConnectionCommands = exports.registerConfigCommands = exports.registerMessageCommands = exports.registerConversationCommands = exports.registerProfileCommands = exports.registerNetworkCommands = exports.registerAuthCommands = void 0;
|
|
4
4
|
var auth_1 = require("./auth");
|
|
5
5
|
Object.defineProperty(exports, "registerAuthCommands", { enumerable: true, get: function () { return auth_1.registerAuthCommands; } });
|
|
6
6
|
var networks_1 = require("./networks");
|
|
@@ -21,4 +21,6 @@ var contacts_1 = require("./contacts");
|
|
|
21
21
|
Object.defineProperty(exports, "registerContactCommands", { enumerable: true, get: function () { return contacts_1.registerContactCommands; } });
|
|
22
22
|
var humans_1 = require("./humans");
|
|
23
23
|
Object.defineProperty(exports, "registerHumansCommands", { enumerable: true, get: function () { return humans_1.registerHumansCommands; } });
|
|
24
|
-
|
|
24
|
+
var errors_1 = require("./errors");
|
|
25
|
+
Object.defineProperty(exports, "registerErrorCommands", { enumerable: true, get: function () { return errors_1.registerErrorCommands; } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQThDO0FBQXJDLDRHQUFBLG9CQUFvQixPQUFBO0FBQzdCLHVDQUFxRDtBQUE1QyxtSEFBQSx1QkFBdUIsT0FBQTtBQUNoQyxxQ0FBb0Q7QUFBM0Msa0hBQUEsdUJBQXVCLE9BQUE7QUFDaEMsaURBQStEO0FBQXRELDZIQUFBLDRCQUE0QixPQUFBO0FBQ3JDLHVDQUFxRDtBQUE1QyxtSEFBQSx1QkFBdUIsT0FBQTtBQUNoQyxtQ0FBa0Q7QUFBekMsZ0hBQUEsc0JBQXNCLE9BQUE7QUFDL0IsNkNBQTJEO0FBQWxELHlIQUFBLDBCQUEwQixPQUFBO0FBQ25DLDJDQUF3RDtBQUEvQyxzSEFBQSx3QkFBd0IsT0FBQTtBQUNqQyx1Q0FBcUQ7QUFBNUMsbUhBQUEsdUJBQXVCLE9BQUE7QUFDaEMsbUNBQWtEO0FBQXpDLGdIQUFBLHNCQUFzQixPQUFBO0FBQy9CLG1DQUFpRDtBQUF4QywrR0FBQSxxQkFBcUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHJlZ2lzdGVyQXV0aENvbW1hbmRzIH0gZnJvbSAnLi9hdXRoJztcbmV4cG9ydCB7IHJlZ2lzdGVyTmV0d29ya0NvbW1hbmRzIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5leHBvcnQgeyByZWdpc3RlclByb2ZpbGVDb21tYW5kcyB9IGZyb20gJy4vcHJvZmlsZSc7XG5leHBvcnQgeyByZWdpc3RlckNvbnZlcnNhdGlvbkNvbW1hbmRzIH0gZnJvbSAnLi9jb252ZXJzYXRpb25zJztcbmV4cG9ydCB7IHJlZ2lzdGVyTWVzc2FnZUNvbW1hbmRzIH0gZnJvbSAnLi9tZXNzYWdlcyc7XG5leHBvcnQgeyByZWdpc3RlckNvbmZpZ0NvbW1hbmRzIH0gZnJvbSAnLi9jb25maWcnO1xuZXhwb3J0IHsgcmVnaXN0ZXJDb25uZWN0aW9uQ29tbWFuZHMgfSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmV4cG9ydCB7IHJlZ2lzdGVySWRlbnRpdHlDb21tYW5kcyB9IGZyb20gJy4vaWRlbnRpdGllcyc7XG5leHBvcnQgeyByZWdpc3RlckNvbnRhY3RDb21tYW5kcyB9IGZyb20gJy4vY29udGFjdHMnO1xuZXhwb3J0IHsgcmVnaXN0ZXJIdW1hbnNDb21tYW5kcyB9IGZyb20gJy4vaHVtYW5zJztcbmV4cG9ydCB7IHJlZ2lzdGVyRXJyb3JDb21tYW5kcyB9IGZyb20gJy4vZXJyb3JzJztcbiJdfQ==
|
|
@@ -384,6 +384,7 @@ function registerNetworkCommands(program) {
|
|
|
384
384
|
logger_1.logger.info(`Running discovery strategy: ${options.strategy}...`);
|
|
385
385
|
}
|
|
386
386
|
const client = await AuthHelper_1.AuthHelper.getApiClient();
|
|
387
|
+
client.setFormat('json');
|
|
387
388
|
const response = await client.get('/v1/networks/discover', {
|
|
388
389
|
strategy: options.strategy,
|
|
389
390
|
limit: options.limit,
|
|
@@ -426,4 +427,4 @@ function registerNetworkCommands(program) {
|
|
|
426
427
|
}
|
|
427
428
|
});
|
|
428
429
|
}
|
|
429
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSwwREFxYUM7QUE3YUQsc0NBQTBDO0FBQzFDLG1EQUFnRDtBQUNoRCwyREFBd0Q7QUFDeEQsNENBQXNDO0FBQ3RDLDRDQUF5QztBQUN6QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0IsNERBQStCO0FBRS9CLFNBQWdCLHVCQUF1QixDQUFDLE9BQWdCO0lBQ3RELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFFeEYsUUFBUTtTQUNMLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDZixXQUFXLENBQUMsc0JBQXNCLENBQUM7U0FDbkMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLG9DQUFvQyxDQUFDO1NBQ25FLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDO1NBQ3JELE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLENBQUM7U0FDdkUsTUFBTSxDQUFDLFNBQVMsRUFBRSw2QkFBNkIsQ0FBQztTQUNoRCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUV4RCxJQUFJLE1BQU0sS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDdkIsZUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7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UyxFQUFFLENBQUMsQ0FBQyxDQUFDOzRCQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDOzRCQUNqRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2hCLENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxrQkFBTSxFQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGVBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLDZCQUE2QixDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsZUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkYsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgQXBpQ2xpZW50IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgQXV0aEhlbHBlciB9IGZyb20gJy4uL2F1dGgvQXV0aEhlbHBlcic7XG5pbXBvcnQgeyBsaW1pdHNNYW5hZ2VyIH0gZnJvbSAnLi4vbGltaXRzL0xpbWl0c01hbmFnZXInO1xuaW1wb3J0IHsgZW5jb2RlIH0gZnJvbSAnLi4vZGF0YW1vZGVsJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlcic7XG5jb25zdCBjaGFsayA9IHJlcXVpcmUoJ2NoYWxrJyk7XG5pbXBvcnQgVGFibGUgZnJvbSAnY2xpLXRhYmxlMyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlck5ldHdvcmtDb21tYW5kcyhwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIGNvbnN0IG5ldHdvcmtzID0gcHJvZ3JhbS5jb21tYW5kKCduZXR3b3JrcycpLmRlc2NyaXB0aW9uKCdOZXR3b3JrIG1hbmFnZW1lbnQgY29tbWFuZHMnKTtcblxuICBuZXR3b3Jrc1xuICAgIC5jb21tYW5kKCdsaXN0JylcbiAgICAuZGVzY3JpcHRpb24oJ0xpc3QgcHVibGljIG5ldHdvcmtzJylcbiAgICAub3B0aW9uKCctZiwgLS1maWx0ZXIgPHR5cGU+JywgJ0ZpbHRlcjogcG9wdWxhciwgbmV3ZXN0LCB1bnBvcHVsYXInKVxuICAgIC5vcHRpb24oJy1sLCAtLWxpbWl0IDxudW1iZXI+JywgJ0xpbWl0IHJlc3VsdHMnLCAnNTAnKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmh1bWFuID8gJ2h1bWFuJyA6IG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICBcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKCdGZXRjaGluZyBwdWJsaWMgbmV0d29ya3MuLi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0QXBpQ2xpZW50KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oJy92MS9uZXR3b3JrcycsIHtcbiAgICAgICAgICBzdHJhdGVneTogb3B0aW9ucy5maWx0ZXIsXG4gICAgICAgICAgbGltaXQ6IG9wdGlvbnMubGltaXQsXG4gICAgICAgICAgc2hvcnQ6ICd0cnVlJ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyZWREYXRhID0gcmVzcG9uc2UuZGF0YS5tYXAobmV0ID0+ICh7XG4gICAgICAgICAgICBpZDogbmV0LmlkLFxuICAgICAgICAgICAgdGl0bGU6IG5ldC5uYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IG5ldC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHVzZXJzOiBuZXQudXNlcnNcbiAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkRGF0YSwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gICAgICAgICAgICAgIGhlYWQ6IFtjaGFsay5jeWFuKCdJRCcpLCBjaGFsay5jeWFuKCdUaXRsZScpLCBjaGFsay5jeWFuKCdVc2VycycpLCBjaGFsay5jeWFuKCdEZXNjcmlwdGlvbicpXSxcbiAgICAgICAgICAgICAgY29sV2lkdGhzOiBbMjAsIDMwLCAxMCwgNTBdLFxuICAgICAgICAgICAgICB3b3JkV3JhcDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZpbHRlcmVkRGF0YS5mb3JFYWNoKG5ldCA9PiB7XG4gICAgICAgICAgICAgIHRhYmxlLnB1c2goW25ldC5pZCwgbmV0LnRpdGxlLCBuZXQudXNlcnMsIG5ldC5kZXNjcmlwdGlvbl0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRhYmxlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBEZWZhdWx0OiBUT09OXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUoZmlsdGVyZWREYXRhKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBsaXN0IG5ldHdvcmtzJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIG5ldHdvcmtzXG4gICAgLmNvbW1hbmQoJ2NyZWF0ZScpXG4gICAgLmRlc2NyaXB0aW9uKCdDcmVhdGUgYSBuZXcgbmV0d29yaycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uYW1lIDxuYW1lPicsICdOZXR3b3JrIG5hbWUnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLWQsIC0tZGVzY3JpcHRpb24gPGRlc2M+JywgJ1Nob3J0IGRlc2NyaXB0aW9uJylcbiAgICAub3B0aW9uKCctbCwgLS1sb25nLWRlc2NyaXB0aW9uIDxkZXNjPicsICdMb25nIGRlc2NyaXB0aW9uIChtYXJrZG93biknKVxuICAgIC5vcHRpb24oJy0tbG9nbyA8dXJsPicsICdMb2dvIFVSTCcpXG4gICAgLm9wdGlvbignLS1wcml2YXRlJywgJ01ha2UgbmV0d29yayBwcml2YXRlJylcbiAgICAub3B0aW9uKCctLXF1ZXN0aW9ucycsICdTaG93IHByb2ZpbGUgcXVlc3Rpb25zIGFmdGVyIGNyZWF0aW9uJylcbiAgICAub3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0OiB0b29uLCBqc29uLCBodW1hbicsICd0b29uJylcbiAgICAub3B0aW9uKCctLWh1bWFuJywgJ1Nob3J0Y3V0IGZvciAtLWZvcm1hdCBodW1hbicpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgXG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbygnQ3JlYXRpbmcgbmV3IG5ldHdvcmsgY29tbXVuaXR5Li4uJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGNsaWVudCB9ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRGaXJzdEF1dGhlbnRpY2F0ZWRDbGllbnQoKTtcblxuICAgICAgICBjb25zdCBtaW5lUmVzID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oJy92MS9uZXR3b3Jrcy9taW5lJyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb3VudCA9IG1pbmVSZXMuc3VjY2VzcyAmJiBtaW5lUmVzLmRhdGEgPyBtaW5lUmVzLmRhdGEubGVuZ3RoIDogMDtcbiAgICAgICAgY29uc3QgbGltaXRDaGVjayA9IGF3YWl0IGxpbWl0c01hbmFnZXIuY2FuQ3JlYXRlTmV0d29yayhjdXJyZW50Q291bnQpO1xuICAgICAgICBpZiAoIWxpbWl0Q2hlY2suYWxsb3dlZCkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignTGltaXQ6JywgbGltaXRDaGVjay5yZWFzb24pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8YW55PignL3YxL25ldHdvcmtzJywge1xuICAgICAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgICAgICBsb25nRGVzY3JpcHRpb246IG9wdGlvbnMubG9uZ0Rlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICAgIGxvZ29Vcmw6IG9wdGlvbnMubG9nbyB8fCAnJyxcbiAgICAgICAgICBpc1B1YmxpYzogIW9wdGlvbnMucHJpdmF0ZVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgbmV0d29ya0lkID0gcmVzcG9uc2UuZGF0YS5pZDtcblxuICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgICBsb2dnZXIuc3VjY2Vzcygn4pyTIE5ldHdvcmsgY3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdJRDonKSwgbmV0d29ya0lkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHJlc3BvbnNlLmRhdGEpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAob3B0aW9ucy5xdWVzdGlvbnMgJiYgbmV0d29ya0lkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25zUmVzID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oYC92MS9uZXR3b3Jrcy8ke25ldHdvcmtJZH0vcHJvZmlsZS9xdWVzdGlvbnNgKTtcbiAgICAgICAgICAgIGlmIChxdWVzdGlvbnNSZXMuc3VjY2VzcyAmJiBxdWVzdGlvbnNSZXMuZGF0YSAmJiBxdWVzdGlvbnNSZXMuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgUHJvZmlsZSBRdWVzdGlvbnMgKCR7cXVlc3Rpb25zUmVzLmRhdGEubGVuZ3RofSk6XFxuYCk7XG4gICAgICAgICAgICAgICAgcXVlc3Rpb25zUmVzLmRhdGEuZm9yRWFjaCgocTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgJHtjaGFsay5jeWFuKHEub3JkZXIgKyAnLicpfSAke3EucXVlc3Rpb259JHtxLnJlcXVpcmVkID8gY2hhbGsucmVkKCcgKicpIDogJyd9YCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShxdWVzdGlvbnNSZXMuZGF0YSwgbnVsbCwgMikpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVuY29kZShxdWVzdGlvbnNSZXMuZGF0YSkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgICAgICBsb2dnZXIud2FybignTm8gcHJvZmlsZSBxdWVzdGlvbnMgZGVmaW5lZCBmb3IgdGhpcyBuZXR3b3JrLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gY3JlYXRlIG5ldHdvcmsnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgbmV0d29ya3NcbiAgICAuY29tbWFuZCgnc2hvdycpXG4gICAgLmRlc2NyaXB0aW9uKCdTaG93IGZ1bGwgbmV0d29yayBkZXRhaWxzIChwcm9maWxlIGNhcmQpJylcbiAgICAuYXJndW1lbnQoJzxuZXR3b3JrSWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChuZXR3b3JrSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnMuaHVtYW4gPyAnaHVtYW4nIDogb3B0aW9ucy5mb3JtYXQ7XG4gICAgICAgIFxuICAgICAgICBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oYEZldGNoaW5nIGRldGFpbHMgZm9yIG5ldHdvcms6ICR7bmV0d29ya0lkfS4uLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueT4oYC92MS9uZXR3b3Jrcy8ke25ldHdvcmtJZH1gKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ldHdvcmsgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbi5ib2xkKGBcXG4ke25ldHdvcmsubmFtZX1cXG5gKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdJRDonKSwgbmV0d29yay5pZCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdEZXNjcmlwdGlvbjonKSwgbmV0d29yay5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdTdGF0dXM6JyksIG5ldHdvcmsuc3RhdHVzKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1B1YmxpYzonKSwgbmV0d29yay5pc1B1YmxpYyA/ICdZZXMnIDogJ05vJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdVc2VyczonKSwgbmV0d29yay51c2Vycyk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChuZXR3b3JrLmxvbmdEZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdcXG5QYXJ0aWNpcGF0aW9uIFJ1bGVzIChMb25nIERlc2NyaXB0aW9uKTonKSk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5ldHdvcmsubG9uZ0Rlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHJlc3BvbnNlLmRhdGEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnTmV0d29yayBub3QgZm91bmQnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgbmV0d29ya3NcbiAgICAuY29tbWFuZCgncXVlc3Rpb25zJylcbiAgICAuZGVzY3JpcHRpb24oJ0dldCBwcm9maWxlIHF1ZXN0aW9ucyBmb3IgYSBuZXR3b3JrJylcbiAgICAuYXJndW1lbnQoJzxuZXR3b3JrSWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChuZXR3b3JrSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnMuaHVtYW4gPyAnaHVtYW4nIDogb3B0aW9ucy5mb3JtYXQ7XG4gICAgICAgIFxuICAgICAgICBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oYEZldGNoaW5nIHByb2ZpbGUgcXVlc3Rpb25zIGZvciAke25ldHdvcmtJZH0uLi5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0QXBpQ2xpZW50KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oYC92MS9uZXR3b3Jrcy8ke25ldHdvcmtJZH0vcHJvZmlsZS9xdWVzdGlvbnNgKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKGBcXG5Qcm9maWxlIFF1ZXN0aW9ucyBmb3IgJHtuZXR3b3JrSWR9OlxcbmApO1xuICAgICAgICAgICAgcmVzcG9uc2UuZGF0YS5mb3JFYWNoKChxOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coYCR7Y2hhbGsuY3lhbihxLm9yZGVyICsgJy4nKX0gJHtxLnF1ZXN0aW9ufSR7cS5yZXF1aXJlZCA/IGNoYWxrLnJlZCgnIConKSA6ICcnfWApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpIGNvbnNvbGUubG9nKCdbXScpO1xuICAgICAgICAgIGVsc2UgaWYgKGZvcm1hdCA9PT0gJ3Rvb24nKSBjb25zb2xlLmxvZyhlbmNvZGUoW10pKTtcbiAgICAgICAgICBlbHNlIGxvZ2dlci53YXJuKCdObyBxdWVzdGlvbnMgZm91bmQgZm9yIHRoaXMgbmV0d29yay4nKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgbmV0d29ya3NcbiAgICAuY29tbWFuZCgnbWluZScpXG4gICAgLmRlc2NyaXB0aW9uKCdMaXN0IHlvdXIgbmV0d29ya3MnKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmh1bWFuID8gJ2h1bWFuJyA6IG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICBcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKCdGZXRjaGluZyB5b3VyIHJlZ2lzdGVyZWQgbmV0d29ya3MuLi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgY2xpZW50IH0gPSBhd2FpdCBBdXRoSGVscGVyLmdldEZpcnN0QXV0aGVudGljYXRlZENsaWVudCgpO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oJy92MS9uZXR3b3Jrcy9taW5lJyk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oJ05vIG5ldHdvcmtzIGZvdW5kLicpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKGBcXG5Zb3VyIG5ldHdvcmtzICgke3Jlc3BvbnNlLmRhdGEubGVuZ3RofSk6XFxuYCk7XG4gICAgICAgICAgICByZXNwb25zZS5kYXRhLmZvckVhY2goKG5ldHdvcms6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuLmJvbGQobmV0d29yay5uYW1lIHx8IG5ldHdvcmsuaWQpKTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICBJRDonKSwgbmV0d29yay5pZCk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgRGVzY3JpcHRpb246JyksIG5ldHdvcmsuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVuY29kZShyZXNwb25zZS5kYXRhKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBsaXN0IG5ldHdvcmtzJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIG5ldHdvcmtzXG4gICAgLmNvbW1hbmQoJ2hpc3RvcnknKVxuICAgIC5kZXNjcmlwdGlvbignU2hvdyBsb2NhbCBuZXR3b3JrIGhpc3RvcnkgKHNvY2lhbCBtZW1vcnkpJylcbiAgICAub3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0OiB0b29uLCBqc29uLCBodW1hbicsICd0b29uJylcbiAgICAub3B0aW9uKCctLWh1bWFuJywgJ1Nob3J0Y3V0IGZvciAtLWZvcm1hdCBodW1hbicpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgY29uc3QgaGlzdG9yeSA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0TmV0d29ya0hpc3RvcnkoKTtcblxuICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShoaXN0b3J5LCBudWxsLCAyKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgaWYgKGhpc3RvcnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBsb2dnZXIud2FybignTm8gbG9jYWwgaGlzdG9yeSBmb3VuZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsb2dnZXIuc3VjY2VzcyhgXFxuTG9jYWwgTmV0d29yayBIaXN0b3J5ICgke2hpc3RvcnkubGVuZ3RofSk6XFxuYCk7XG4gICAgICAgICAgaGlzdG9yeS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbi5ib2xkKGl0ZW0uaWQpKTtcbiAgICAgICAgICAgIGlmIChpdGVtLnJlYXNvbikge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgIFJlYXNvbjonKSwgaXRlbS5yZWFzb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUoaGlzdG9yeSkpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBuZXR3b3Jrc1xuICAgIC5jb21tYW5kKCdtZW1iZXJzJylcbiAgICAuZGVzY3JpcHRpb24oJ0xpc3QgbmV0d29yayBtZW1iZXJzJylcbiAgICAuYXJndW1lbnQoJzxuZXR3b3JrSWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChuZXR3b3JrSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnMuaHVtYW4gPyAnaHVtYW4nIDogb3B0aW9ucy5mb3JtYXQ7XG4gICAgICAgIFxuICAgICAgICBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oYEZldGNoaW5nIG1lbWJlcnMgZm9yICR7bmV0d29ya0lkfS4uLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPihgL3YxL25ldHdvcmtzLyR7bmV0d29ya0lkfS9tZW1iZXJzYCk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgICBsb2dnZXIuc3VjY2VzcyhgXFxuTWVtYmVycyAoJHtyZXNwb25zZS5kYXRhLmxlbmd0aH0pOlxcbmApO1xuICAgICAgICAgICAgcmVzcG9uc2UuZGF0YS5mb3JFYWNoKChtZW1iZXI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKG1lbWJlci5wdWJsaWNUb2tlbikpO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgIFJvbGU6JyksIG1lbWJlci5yb2xlKTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICBEZXNjcmlwdGlvbjonKSwgbWVtYmVyLnNob3J0RGVzY3JpcHRpb24gfHwgJyhub25lKScpO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVuY29kZShyZXNwb25zZS5kYXRhKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBsaXN0IG1lbWJlcnMnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgbmV0d29ya3NcbiAgICAuY29tbWFuZCgnam9pbicpXG4gICAgLmRlc2NyaXB0aW9uKCdKb2luIGEgbmV0d29yayAoYXV0by1yZWdpc3RlciBpZiBuZWVkZWQpJylcbiAgICAuYXJndW1lbnQoJzxuZXR3b3JrSWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5hY3Rpb24oYXN5bmMgKG5ldHdvcmtJZCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9nZ2VyLmluZm8oYEpvaW5pbmcgbmV0d29yayBjb21tdW5pdHk6ICR7bmV0d29ya0lkfS4uLmApO1xuICAgICAgICBjb25zdCB7IGNsaWVudDogYXV0aENsaWVudCB9ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRGaXJzdEF1dGhlbnRpY2F0ZWRDbGllbnQoKTtcbiAgICAgICAgY29uc3QgbWluZVJlcyA9IGF3YWl0IGF1dGhDbGllbnQuZ2V0PGFueVtdPignL3YxL25ldHdvcmtzL21pbmUnKTtcbiAgICAgICAgY29uc3QgY3VycmVudENvdW50ID0gbWluZVJlcy5zdWNjZXNzICYmIG1pbmVSZXMuZGF0YSA/IG1pbmVSZXMuZGF0YS5sZW5ndGggOiAwO1xuICAgICAgICBjb25zdCBsaW1pdENoZWNrID0gYXdhaXQgbGltaXRzTWFuYWdlci5jYW5Kb2luTmV0d29yayhjdXJyZW50Q291bnQpO1xuICAgICAgICBpZiAoIWxpbWl0Q2hlY2suYWxsb3dlZCkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignTGltaXQ6JywgbGltaXRDaGVjay5yZWFzb24pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChuZXR3b3JrSWQpO1xuXG4gICAgICAgIGlmIChyZXN1bHQuaXNOZXdVc2VyKSB7XG4gICAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJ+KckyBKb2luZWQgbmV0d29yayBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJ+KckyBBbHJlYWR5IGF1dGhlbnRpY2F0ZWQgdG8gbmV0d29yay4nKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdOZXR3b3JrOicpLCBuZXR3b3JrSWQpO1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdQdWJsaWMgVG9rZW46JyksIHJlc3VsdC5jcmVkZW50aWFscy5wdWJsaWNUb2tlbik7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBuZXR3b3Jrc1xuICAgIC5jb21tYW5kKCdkaXNjb3ZlcicpXG4gICAgLmRlc2NyaXB0aW9uKCdEaXNjb3ZlciBuZXR3b3JrcyBieSBzdHJhdGVneScpXG4gICAgLm9wdGlvbignLXMsIC0tc3RyYXRlZ3kgPHR5cGU+JywgJ1N0cmF0ZWd5OiBwb3B1bGFyLCBuZXdlc3QsIHVucG9wdWxhciwgcmVjb21tZW5kZWQnLCAncG9wdWxhcicpXG4gICAgLm9wdGlvbignLWwsIC0tbGltaXQgPG51bWJlcj4nLCAnTGltaXQgcmVzdWx0cycsICcyMCcpXG4gICAgLm9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ1RhcmdldCBuZXR3b3JrIChmb3IgcmVjb21tZW5kZWQgc3RyYXRlZ3kpJylcbiAgICAub3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0OiB0b29uLCBqc29uLCBodW1hbicsICd0b29uJylcbiAgICAub3B0aW9uKCctLWh1bWFuJywgJ1Nob3J0Y3V0IGZvciAtLWZvcm1hdCBodW1hbicpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgXG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhgUnVubmluZyBkaXNjb3Zlcnkgc3RyYXRlZ3k6ICR7b3B0aW9ucy5zdHJhdGVneX0uLi5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0QXBpQ2xpZW50KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnk+KCcvdjEvbmV0d29ya3MvZGlzY292ZXInLCB7XG4gICAgICAgICAgc3RyYXRlZ3k6IG9wdGlvbnMuc3RyYXRlZ3ksXG4gICAgICAgICAgbGltaXQ6IG9wdGlvbnMubGltaXQsXG4gICAgICAgICAgbmV0d29yazogb3B0aW9ucy5uZXR3b3JrXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEsIG51bGwsIDIpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICBsb2dnZXIuc3VjY2VzcyhgXFxuRGlzY292ZXJlZCAke2RhdGEudG90YWxGb3VuZH0gbmV0d29ya3MgKCR7b3B0aW9ucy5zdHJhdGVneX0gc3RyYXRlZ3kpOlxcbmApO1xuXG4gICAgICAgICAgICBkYXRhLm5ldHdvcmtzLmZvckVhY2goKG5ldHdvcms6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuLmJvbGQobmV0d29yay5uYW1lIHx8IG5ldHdvcmsuaWQpKTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICBJRDonKSwgbmV0d29yay5pZCk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgRGVzY3JpcHRpb246JyksIG5ldHdvcmsuZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgIFVzZXJzOicpLCBuZXR3b3JrLnVzZXJzKTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICBTdGF0dXM6JyksIG5ldHdvcmsuc3RhdHVzKTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5yZWNvbW1lbmRlZEZvcllvdSAmJiBkYXRhLnJlY29tbWVuZGVkRm9yWW91Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oJ1xcblJlY29tbWVuZGVkIGZvciB5b3U6XFxuJyk7XG4gICAgICAgICAgICAgIGRhdGEucmVjb21tZW5kZWRGb3JZb3UuZm9yRWFjaCgocmVjOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGAgICR7cmVjLm5ldHdvcmtJZH1gKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICBSZWFzb246JyksIHJlYy5yZWFzb24pO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gZGlzY292ZXIgbmV0d29ya3MnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|
|
430
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSwwREFzYUM7QUE5YUQsc0NBQTBDO0FBQzFDLG1EQUFnRDtBQUNoRCwyREFBd0Q7QUFDeEQsNENBQXNDO0FBQ3RDLDRDQUF5QztBQUN6QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0IsNERBQStCO0FBRS9CLFNBQWdCLHVCQUF1QixDQUFDLE9BQWdCO0lBQ3RELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFFeEYsUUFBUTtTQUNMLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDZixXQUFXLENBQUMsc0JBQXNCLENBQUM7U0FDbkMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLG9DQUFvQyxDQUFDO1NBQ25FLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDO1NBQ3JELE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLENBQUM7U0FDdkUsTUFBTSxDQUFDLFNBQVMsRUFBRSw2QkFBNkIsQ0FBQztTQUNoRCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUV4RCxJQUFJLE1BQU0sS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDdkIsZUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7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QUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7NEJBQ2pELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDaEIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFBLGtCQUFNLEVBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksNkJBQTZCLENBQUMsQ0FBQztZQUNuRixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBBcGlDbGllbnQgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgY29uZmlnTWFuYWdlciB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBBdXRoSGVscGVyIH0gZnJvbSAnLi4vYXV0aC9BdXRoSGVscGVyJztcbmltcG9ydCB7IGxpbWl0c01hbmFnZXIgfSBmcm9tICcuLi9saW1pdHMvTGltaXRzTWFuYWdlcic7XG5pbXBvcnQgeyBlbmNvZGUgfSBmcm9tICcuLi9kYXRhbW9kZWwnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2VyJztcbmNvbnN0IGNoYWxrID0gcmVxdWlyZSgnY2hhbGsnKTtcbmltcG9ydCBUYWJsZSBmcm9tICdjbGktdGFibGUzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyTmV0d29ya0NvbW1hbmRzKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgY29uc3QgbmV0d29ya3MgPSBwcm9ncmFtLmNvbW1hbmQoJ25ldHdvcmtzJykuZGVzY3JpcHRpb24oJ05ldHdvcmsgbWFuYWdlbWVudCBjb21tYW5kcycpO1xuXG4gIG5ldHdvcmtzXG4gICAgLmNvbW1hbmQoJ2xpc3QnKVxuICAgIC5kZXNjcmlwdGlvbignTGlzdCBwdWJsaWMgbmV0d29ya3MnKVxuICAgIC5vcHRpb24oJy1mLCAtLWZpbHRlciA8dHlwZT4nLCAnRmlsdGVyOiBwb3B1bGFyLCBuZXdlc3QsIHVucG9wdWxhcicpXG4gICAgLm9wdGlvbignLWwsIC0tbGltaXQgPG51bWJlcj4nLCAnTGltaXQgcmVzdWx0cycsICc1MCcpXG4gICAgLm9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdDogdG9vbiwganNvbiwgaHVtYW4nLCAndG9vbicpXG4gICAgLm9wdGlvbignLS1odW1hbicsICdTaG9ydGN1dCBmb3IgLS1mb3JtYXQgaHVtYW4nKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnMuaHVtYW4gPyAnaHVtYW4nIDogb3B0aW9ucy5mb3JtYXQ7XG4gICAgICAgIFxuICAgICAgICBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oJ0ZldGNoaW5nIHB1YmxpYyBuZXR3b3Jrcy4uLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPignL3YxL25ldHdvcmtzJywge1xuICAgICAgICAgIHN0cmF0ZWd5OiBvcHRpb25zLmZpbHRlcixcbiAgICAgICAgICBsaW1pdDogb3B0aW9ucy5saW1pdCxcbiAgICAgICAgICBzaG9ydDogJ3RydWUnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSByZXNwb25zZS5kYXRhLm1hcChuZXQgPT4gKHtcbiAgICAgICAgICAgIGlkOiBuZXQuaWQsXG4gICAgICAgICAgICB0aXRsZTogbmV0Lm5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogbmV0LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgdXNlcnM6IG5ldC51c2Vyc1xuICAgICAgICAgIH0pKTtcblxuICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWREYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKHtcbiAgICAgICAgICAgICAgaGVhZDogW2NoYWxrLmN5YW4oJ0lEJyksIGNoYWxrLmN5YW4oJ1RpdGxlJyksIGNoYWxrLmN5YW4oJ1VzZXJzJyksIGNoYWxrLmN5YW4oJ0Rlc2NyaXB0aW9uJyldLFxuICAgICAgICAgICAgICBjb2xXaWR0aHM6IFsyMCwgMzAsIDEwLCA1MF0sXG4gICAgICAgICAgICAgIHdvcmRXcmFwOiB0cnVlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZmlsdGVyZWREYXRhLmZvckVhY2gobmV0ID0+IHtcbiAgICAgICAgICAgICAgdGFibGUucHVzaChbbmV0LmlkLCBuZXQudGl0bGUsIG5ldC51c2VycywgbmV0LmRlc2NyaXB0aW9uXSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc29sZS5sb2codGFibGUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIERlZmF1bHQ6IFRPT05cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVuY29kZShmaWx0ZXJlZERhdGEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGxpc3QgbmV0d29ya3MnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgbmV0d29ya3NcbiAgICAuY29tbWFuZCgnY3JlYXRlJylcbiAgICAuZGVzY3JpcHRpb24oJ0NyZWF0ZSBhIG5ldyBuZXR3b3JrJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5hbWUgPG5hbWU+JywgJ05ldHdvcmsgbmFtZScpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctZCwgLS1kZXNjcmlwdGlvbiA8ZGVzYz4nLCAnU2hvcnQgZGVzY3JpcHRpb24nKVxuICAgIC5vcHRpb24oJy1sLCAtLWxvbmctZGVzY3JpcHRpb24gPGRlc2M+JywgJ0xvbmcgZGVzY3JpcHRpb24gKG1hcmtkb3duKScpXG4gICAgLm9wdGlvbignLS1sb2dvIDx1cmw+JywgJ0xvZ28gVVJMJylcbiAgICAub3B0aW9uKCctLXByaXZhdGUnLCAnTWFrZSBuZXR3b3JrIHByaXZhdGUnKVxuICAgIC5vcHRpb24oJy0tcXVlc3Rpb25zJywgJ1Nob3cgcHJvZmlsZSBxdWVzdGlvbnMgYWZ0ZXIgY3JlYXRpb24nKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmh1bWFuID8gJ2h1bWFuJyA6IG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICBcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKCdDcmVhdGluZyBuZXcgbmV0d29yayBjb21tdW5pdHkuLi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgY2xpZW50IH0gPSBhd2FpdCBBdXRoSGVscGVyLmdldEZpcnN0QXV0aGVudGljYXRlZENsaWVudCgpO1xuXG4gICAgICAgIGNvbnN0IG1pbmVSZXMgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPignL3YxL25ldHdvcmtzL21pbmUnKTtcbiAgICAgICAgY29uc3QgY3VycmVudENvdW50ID0gbWluZVJlcy5zdWNjZXNzICYmIG1pbmVSZXMuZGF0YSA/IG1pbmVSZXMuZGF0YS5sZW5ndGggOiAwO1xuICAgICAgICBjb25zdCBsaW1pdENoZWNrID0gYXdhaXQgbGltaXRzTWFuYWdlci5jYW5DcmVhdGVOZXR3b3JrKGN1cnJlbnRDb3VudCk7XG4gICAgICAgIGlmICghbGltaXRDaGVjay5hbGxvd2VkKSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdMaW1pdDonLCBsaW1pdENoZWNrLnJlYXNvbik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDxhbnk+KCcvdjEvbmV0d29ya3MnLCB7XG4gICAgICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGxvbmdEZXNjcmlwdGlvbjogb3B0aW9ucy5sb25nRGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgbG9nb1VybDogb3B0aW9ucy5sb2dvIHx8ICcnLFxuICAgICAgICAgIGlzUHVibGljOiAhb3B0aW9ucy5wcml2YXRlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCBuZXR3b3JrSWQgPSByZXNwb25zZS5kYXRhLmlkO1xuXG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKCfinJMgTmV0d29yayBjcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ0lEOicpLCBuZXR3b3JrSWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChvcHRpb25zLnF1ZXN0aW9ucyAmJiBuZXR3b3JrSWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgICAgICBjb25zdCBxdWVzdGlvbnNSZXMgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPihgL3YxL25ldHdvcmtzLyR7bmV0d29ya0lkfS9wcm9maWxlL3F1ZXN0aW9uc2ApO1xuICAgICAgICAgICAgaWYgKHF1ZXN0aW9uc1Jlcy5zdWNjZXNzICYmIHF1ZXN0aW9uc1Jlcy5kYXRhICYmIHF1ZXN0aW9uc1Jlcy5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBQcm9maWxlIFF1ZXN0aW9ucyAoJHtxdWVzdGlvbnNSZXMuZGF0YS5sZW5ndGh9KTpcXG5gKTtcbiAgICAgICAgICAgICAgICBxdWVzdGlvbnNSZXMuZGF0YS5mb3JFYWNoKChxOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke2NoYWxrLmN5YW4ocS5vcmRlciArICcuJyl9ICR7cS5xdWVzdGlvbn0ke3EucmVxdWlyZWQgPyBjaGFsay5yZWQoJyAqJykgOiAnJ31gKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHF1ZXN0aW9uc1Jlcy5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHF1ZXN0aW9uc1Jlcy5kYXRhKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci53YXJuKCdObyBwcm9maWxlIHF1ZXN0aW9ucyBkZWZpbmVkIGZvciB0aGlzIG5ldHdvcmsuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBjcmVhdGUgbmV0d29yaycpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBuZXR3b3Jrc1xuICAgIC5jb21tYW5kKCdzaG93JylcbiAgICAuZGVzY3JpcHRpb24oJ1Nob3cgZnVsbCBuZXR3b3JrIGRldGFpbHMgKHByb2ZpbGUgY2FyZCknKVxuICAgIC5hcmd1bWVudCgnPG5ldHdvcmtJZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdDogdG9vbiwganNvbiwgaHVtYW4nLCAndG9vbicpXG4gICAgLm9wdGlvbignLS1odW1hbicsICdTaG9ydGN1dCBmb3IgLS1mb3JtYXQgaHVtYW4nKVxuICAgIC5hY3Rpb24oYXN5bmMgKG5ldHdvcmtJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgXG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhgRmV0Y2hpbmcgZGV0YWlscyBmb3IgbmV0d29yazogJHtuZXR3b3JrSWR9Li4uYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBBdXRoSGVscGVyLmdldEFwaUNsaWVudCgpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55PihgL3YxL25ldHdvcmtzLyR7bmV0d29ya0lkfWApO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEsIG51bGwsIDIpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgICAgY29uc3QgbmV0d29yayA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuLmJvbGQoYFxcbiR7bmV0d29yay5uYW1lfVxcbmApKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ0lEOicpLCBuZXR3b3JrLmlkKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ0Rlc2NyaXB0aW9uOicpLCBuZXR3b3JrLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1N0YXR1czonKSwgbmV0d29yay5zdGF0dXMpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnUHVibGljOicpLCBuZXR3b3JrLmlzUHVibGljID8gJ1llcycgOiAnTm8nKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1VzZXJzOicpLCBuZXR3b3JrLnVzZXJzKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKG5ldHdvcmsubG9uZ0Rlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1xcblBhcnRpY2lwYXRpb24gUnVsZXMgKExvbmcgRGVzY3JpcHRpb24pOicpKTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2cobmV0d29yay5sb25nRGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdOZXR3b3JrIG5vdCBmb3VuZCcpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBuZXR3b3Jrc1xuICAgIC5jb21tYW5kKCdxdWVzdGlvbnMnKVxuICAgIC5kZXNjcmlwdGlvbignR2V0IHByb2ZpbGUgcXVlc3Rpb25zIGZvciBhIG5ldHdvcmsnKVxuICAgIC5hcmd1bWVudCgnPG5ldHdvcmtJZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdDogdG9vbiwganNvbiwgaHVtYW4nLCAndG9vbicpXG4gICAgLm9wdGlvbignLS1odW1hbicsICdTaG9ydGN1dCBmb3IgLS1mb3JtYXQgaHVtYW4nKVxuICAgIC5hY3Rpb24oYXN5bmMgKG5ldHdvcmtJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgXG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhgRmV0Y2hpbmcgcHJvZmlsZSBxdWVzdGlvbnMgZm9yICR7bmV0d29ya0lkfS4uLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPihgL3YxL25ldHdvcmtzLyR7bmV0d29ya0lkfS9wcm9maWxlL3F1ZXN0aW9uc2ApO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEsIG51bGwsIDIpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoYFxcblByb2ZpbGUgUXVlc3Rpb25zIGZvciAke25ldHdvcmtJZH06XFxuYCk7XG4gICAgICAgICAgICByZXNwb25zZS5kYXRhLmZvckVhY2goKHE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgJHtjaGFsay5jeWFuKHEub3JkZXIgKyAnLicpfSAke3EucXVlc3Rpb259JHtxLnJlcXVpcmVkID8gY2hhbGsucmVkKCcgKicpIDogJyd9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVuY29kZShyZXNwb25zZS5kYXRhKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykgY29uc29sZS5sb2coJ1tdJyk7XG4gICAgICAgICAgZWxzZSBpZiAoZm9ybWF0ID09PSAndG9vbicpIGNvbnNvbGUubG9nKGVuY29kZShbXSkpO1xuICAgICAgICAgIGVsc2UgbG9nZ2VyLndhcm4oJ05vIHF1ZXN0aW9ucyBmb3VuZCBmb3IgdGhpcyBuZXR3b3JrLicpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBuZXR3b3Jrc1xuICAgIC5jb21tYW5kKCdtaW5lJylcbiAgICAuZGVzY3JpcHRpb24oJ0xpc3QgeW91ciBuZXR3b3JrcycpXG4gICAgLm9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdDogdG9vbiwganNvbiwgaHVtYW4nLCAndG9vbicpXG4gICAgLm9wdGlvbignLS1odW1hbicsICdTaG9ydGN1dCBmb3IgLS1mb3JtYXQgaHVtYW4nKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnMuaHVtYW4gPyAnaHVtYW4nIDogb3B0aW9ucy5mb3JtYXQ7XG4gICAgICAgIFxuICAgICAgICBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oJ0ZldGNoaW5nIHlvdXIgcmVnaXN0ZXJlZCBuZXR3b3Jrcy4uLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBjbGllbnQgfSA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0Rmlyc3RBdXRoZW50aWNhdGVkQ2xpZW50KCk7XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPignL3YxL25ldHdvcmtzL21pbmUnKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBsb2dnZXIud2FybignTm8gbmV0d29ya3MgZm91bmQuJyk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoYFxcbllvdXIgbmV0d29ya3MgKCR7cmVzcG9uc2UuZGF0YS5sZW5ndGh9KTpcXG5gKTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEuZm9yRWFjaCgobmV0d29yazogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4uYm9sZChuZXR3b3JrLm5hbWUgfHwgbmV0d29yay5pZCkpO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgIElEOicpLCBuZXR3b3JrLmlkKTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICBEZXNjcmlwdGlvbjonKSwgbmV0d29yay5kZXNjcmlwdGlvbik7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHJlc3BvbnNlLmRhdGEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGxpc3QgbmV0d29ya3MnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgbmV0d29ya3NcbiAgICAuY29tbWFuZCgnaGlzdG9yeScpXG4gICAgLmRlc2NyaXB0aW9uKCdTaG93IGxvY2FsIG5ldHdvcmsgaGlzdG9yeSAoc29jaWFsIG1lbW9yeSknKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmh1bWFuID8gJ2h1bWFuJyA6IG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICBjb25zdCBoaXN0b3J5ID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXROZXR3b3JrSGlzdG9yeSgpO1xuXG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGhpc3RvcnksIG51bGwsIDIpKTtcbiAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICBpZiAoaGlzdG9yeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGxvZ2dlci53YXJuKCdObyBsb2NhbCBoaXN0b3J5IGZvdW5kLicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKGBcXG5Mb2NhbCBOZXR3b3JrIEhpc3RvcnkgKCR7aGlzdG9yeS5sZW5ndGh9KTpcXG5gKTtcbiAgICAgICAgICBoaXN0b3J5LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuLmJvbGQoaXRlbS5pZCkpO1xuICAgICAgICAgICAgaWYgKGl0ZW0ucmVhc29uKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgUmVhc29uOicpLCBpdGVtLnJlYXNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVuY29kZShoaXN0b3J5KSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIG5ldHdvcmtzXG4gICAgLmNvbW1hbmQoJ21lbWJlcnMnKVxuICAgIC5kZXNjcmlwdGlvbignTGlzdCBuZXR3b3JrIG1lbWJlcnMnKVxuICAgIC5hcmd1bWVudCgnPG5ldHdvcmtJZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdDogdG9vbiwganNvbiwgaHVtYW4nLCAndG9vbicpXG4gICAgLm9wdGlvbignLS1odW1hbicsICdTaG9ydGN1dCBmb3IgLS1mb3JtYXQgaHVtYW4nKVxuICAgIC5hY3Rpb24oYXN5bmMgKG5ldHdvcmtJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgXG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhgRmV0Y2hpbmcgbWVtYmVycyBmb3IgJHtuZXR3b3JrSWR9Li4uYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBBdXRoSGVscGVyLmdldEFwaUNsaWVudCgpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55W10+KGAvdjEvbmV0d29ya3MvJHtuZXR3b3JrSWR9L21lbWJlcnNgKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKGBcXG5NZW1iZXJzICgke3Jlc3BvbnNlLmRhdGEubGVuZ3RofSk6XFxuYCk7XG4gICAgICAgICAgICByZXNwb25zZS5kYXRhLmZvckVhY2goKG1lbWJlcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4obWVtYmVyLnB1YmxpY1Rva2VuKSk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgUm9sZTonKSwgbWVtYmVyLnJvbGUpO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgIERlc2NyaXB0aW9uOicpLCBtZW1iZXIuc2hvcnREZXNjcmlwdGlvbiB8fCAnKG5vbmUpJyk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHJlc3BvbnNlLmRhdGEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGxpc3QgbWVtYmVycycpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBuZXR3b3Jrc1xuICAgIC5jb21tYW5kKCdqb2luJylcbiAgICAuZGVzY3JpcHRpb24oJ0pvaW4gYSBuZXR3b3JrIChhdXRvLXJlZ2lzdGVyIGlmIG5lZWRlZCknKVxuICAgIC5hcmd1bWVudCgnPG5ldHdvcmtJZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLmFjdGlvbihhc3luYyAobmV0d29ya0lkKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBsb2dnZXIuaW5mbyhgSm9pbmluZyBuZXR3b3JrIGNvbW11bml0eTogJHtuZXR3b3JrSWR9Li4uYCk7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50OiBhdXRoQ2xpZW50IH0gPSBhd2FpdCBBdXRoSGVscGVyLmdldEZpcnN0QXV0aGVudGljYXRlZENsaWVudCgpO1xuICAgICAgICBjb25zdCBtaW5lUmVzID0gYXdhaXQgYXV0aENsaWVudC5nZXQ8YW55W10+KCcvdjEvbmV0d29ya3MvbWluZScpO1xuICAgICAgICBjb25zdCBjdXJyZW50Q291bnQgPSBtaW5lUmVzLnN1Y2Nlc3MgJiYgbWluZVJlcy5kYXRhID8gbWluZVJlcy5kYXRhLmxlbmd0aCA6IDA7XG4gICAgICAgIGNvbnN0IGxpbWl0Q2hlY2sgPSBhd2FpdCBsaW1pdHNNYW5hZ2VyLmNhbkpvaW5OZXR3b3JrKGN1cnJlbnRDb3VudCk7XG4gICAgICAgIGlmICghbGltaXRDaGVjay5hbGxvd2VkKSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdMaW1pdDonLCBsaW1pdENoZWNrLnJlYXNvbik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgQXV0aEhlbHBlci5lbnN1cmVBdXRoZW50aWNhdGVkKG5ldHdvcmtJZCk7XG5cbiAgICAgICAgaWYgKHJlc3VsdC5pc05ld1VzZXIpIHtcbiAgICAgICAgICBsb2dnZXIuc3VjY2Vzcygn4pyTIEpvaW5lZCBuZXR3b3JrIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuc3VjY2Vzcygn4pyTIEFscmVhZHkgYXV0aGVudGljYXRlZCB0byBuZXR3b3JrLicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ05ldHdvcms6JyksIG5ldHdvcmtJZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1B1YmxpYyBUb2tlbjonKSwgcmVzdWx0LmNyZWRlbnRpYWxzLnB1YmxpY1Rva2VuKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIG5ldHdvcmtzXG4gICAgLmNvbW1hbmQoJ2Rpc2NvdmVyJylcbiAgICAuZGVzY3JpcHRpb24oJ0Rpc2NvdmVyIG5ldHdvcmtzIGJ5IHN0cmF0ZWd5JylcbiAgICAub3B0aW9uKCctcywgLS1zdHJhdGVneSA8dHlwZT4nLCAnU3RyYXRlZ3k6IHBvcHVsYXIsIG5ld2VzdCwgdW5wb3B1bGFyLCByZWNvbW1lbmRlZCcsICdwb3B1bGFyJylcbiAgICAub3B0aW9uKCctbCwgLS1saW1pdCA8bnVtYmVyPicsICdMaW1pdCByZXN1bHRzJywgJzIwJylcbiAgICAub3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnVGFyZ2V0IG5ldHdvcmsgKGZvciByZWNvbW1lbmRlZCBzdHJhdGVneSknKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmh1bWFuID8gJ2h1bWFuJyA6IG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICBcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKGBSdW5uaW5nIGRpc2NvdmVyeSBzdHJhdGVneTogJHtvcHRpb25zLnN0cmF0ZWd5fS4uLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY2xpZW50LnNldEZvcm1hdCgnanNvbicpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55PignL3YxL25ldHdvcmtzL2Rpc2NvdmVyJywge1xuICAgICAgICAgIHN0cmF0ZWd5OiBvcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgICAgIGxpbWl0OiBvcHRpb25zLmxpbWl0LFxuICAgICAgICAgIG5ldHdvcms6IG9wdGlvbnMubmV0d29ya1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoYFxcbkRpc2NvdmVyZWQgJHtkYXRhLnRvdGFsRm91bmR9IG5ldHdvcmtzICgke29wdGlvbnMuc3RyYXRlZ3l9IHN0cmF0ZWd5KTpcXG5gKTtcblxuICAgICAgICAgICAgZGF0YS5uZXR3b3Jrcy5mb3JFYWNoKChuZXR3b3JrOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbi5ib2xkKG5ldHdvcmsubmFtZSB8fCBuZXR3b3JrLmlkKSk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgSUQ6JyksIG5ldHdvcmsuaWQpO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgIERlc2NyaXB0aW9uOicpLCBuZXR3b3JrLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICBVc2VyczonKSwgbmV0d29yay51c2Vycyk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgU3RhdHVzOicpLCBuZXR3b3JrLnN0YXR1cyk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGRhdGEucmVjb21tZW5kZWRGb3JZb3UgJiYgZGF0YS5yZWNvbW1lbmRlZEZvcllvdS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdcXG5SZWNvbW1lbmRlZCBmb3IgeW91OlxcbicpO1xuICAgICAgICAgICAgICBkYXRhLnJlY29tbWVuZGVkRm9yWW91LmZvckVhY2goKHJlYzogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbihgICAke3JlYy5uZXR3b3JrSWR9YCkpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgUmVhc29uOicpLCByZWMucmVhc29uKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHJlc3BvbnNlLmRhdGEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGRpc2NvdmVyIG5ldHdvcmtzJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
package/dist/commands/profile.js
CHANGED
|
@@ -93,6 +93,49 @@ function registerProfileCommands(program) {
|
|
|
93
93
|
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
94
94
|
}
|
|
95
95
|
});
|
|
96
|
+
profile
|
|
97
|
+
.command('complete')
|
|
98
|
+
.description('Complete profile by answering questions')
|
|
99
|
+
.requiredOption('-n, --network <id>', 'Network ID')
|
|
100
|
+
.option('-a, --answers <json>', 'JSON string of question ID to answer mapping')
|
|
101
|
+
.option('--auto', 'Auto-answer all required questions with default responses')
|
|
102
|
+
.action(async (options) => {
|
|
103
|
+
try {
|
|
104
|
+
const { client } = await AuthHelper_1.AuthHelper.ensureAuthenticated(options.network);
|
|
105
|
+
let answers = {};
|
|
106
|
+
if (options.answers) {
|
|
107
|
+
answers = JSON.parse(options.answers);
|
|
108
|
+
}
|
|
109
|
+
else if (options.auto) {
|
|
110
|
+
const questionsRes = await client.get(`/v1/networks/${options.network}/questions`);
|
|
111
|
+
if (questionsRes.success && questionsRes.data) {
|
|
112
|
+
for (const q of questionsRes.data) {
|
|
113
|
+
if (q.required) {
|
|
114
|
+
answers[q.id] = `Auto-completed answer for: ${q.question}`;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
console.error(chalk.red('Error:'), 'Provide --answers <json> or --auto flag');
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const response = await client.post(`/v1/networks/${options.network}/profile/complete`, {
|
|
124
|
+
answers
|
|
125
|
+
});
|
|
126
|
+
if (response.success && response.data) {
|
|
127
|
+
const data = response.data;
|
|
128
|
+
console.log(chalk.green('✓ Profile completed!'));
|
|
129
|
+
console.log(chalk.cyan('Completion:'), `${data.completionPercentage}%`);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
console.error(chalk.red('Error:'), response.error?.message || 'Failed to complete profile');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
137
|
+
}
|
|
138
|
+
});
|
|
96
139
|
profile
|
|
97
140
|
.command('build')
|
|
98
141
|
.description('Build profile interactively')
|
|
@@ -175,4 +218,4 @@ async function askQuestion(prompt) {
|
|
|
175
218
|
});
|
|
176
219
|
});
|
|
177
220
|
}
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsMERBaUxDO0FBckxELG1EQUFnRDtBQUNoRCxzQ0FBMEM7QUFDMUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRS9CLFNBQWdCLHVCQUF1QixDQUFDLE9BQWdCO0lBQ3RELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFFdEYsT0FBTztTQUNKLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDcEIsV0FBVyxDQUFDLHFDQUFxQyxDQUFDO1NBQ2xELGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7U0FDbEQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFRLGdCQUFnQixPQUFPLENBQUMsT0FBTyxZQUFZLENBQUMsQ0FBQztZQUV0RixJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxDQUFDO29CQUNwRSxPQUFPO2dCQUNULENBQUM7Z0JBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7Z0JBRXhELFFB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Y29tbWFuZGVyJztcbmltcG9ydCB7IEF1dGhIZWxwZXIgfSBmcm9tICcuLi9hdXRoL0F1dGhIZWxwZXInO1xuaW1wb3J0IHsgY29uZmlnTWFuYWdlciB9IGZyb20gJy4uL2NvbmZpZyc7XG5jb25zdCBjaGFsayA9IHJlcXVpcmUoJ2NoYWxrJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclByb2ZpbGVDb21tYW5kcyhwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIGNvbnN0IHByb2ZpbGUgPSBwcm9ncmFtLmNvbW1hbmQoJ3Byb2ZpbGUnKS5kZXNjcmlwdGlvbignUHJvZmlsZSBtYW5hZ2VtZW50IGNvbW1hbmRzJyk7XG5cbiAgcHJvZmlsZVxuICAgIC5jb21tYW5kKCdxdWVzdGlvbnMnKVxuICAgIC5kZXNjcmlwdGlvbignR2V0IHByb2ZpbGUgcXVlc3Rpb25zIGZvciBhIG5ldHdvcmsnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0QXBpQ2xpZW50KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vcXVlc3Rpb25zYCk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KCdObyBwcm9maWxlIHF1ZXN0aW9ucyBmb3IgdGhpcyBuZXR3b3JrLicpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbi5ib2xkKCdcXG5Qcm9maWxlIFF1ZXN0aW9uczpcXG4nKSk7XG5cbiAgICAgICAgICByZXNwb25zZS5kYXRhLmZvckVhY2goKHE6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbihgJHtpbmRleCArIDF9LiAke3EucXVlc3Rpb259YCkpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheShgICAgUmVxdWlyZWQ6ICR7cS5yZXF1aXJlZCA/ICdZZXMnIDogJ05vJ31gKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBnZXQgcXVlc3Rpb25zJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIHByb2ZpbGVcbiAgICAuY29tbWFuZCgnc2V0JylcbiAgICAuZGVzY3JpcHRpb24oJ1NldCB5b3VyIHByb2ZpbGUgZm9yIGEgbmV0d29yaycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLXMsIC0tc2hvcnQgPGRlc2M+JywgJ1Nob3J0IGRlc2NyaXB0aW9uJylcbiAgICAub3B0aW9uKCctbCwgLS1sb25nIDxkZXNjPicsICdMb25nIGRlc2NyaXB0aW9uJylcbiAgICAub3B0aW9uKCctZiwgLS1sb25nLWZpbGUgPGZpbGU+JywgJ1JlYWQgbG9uZyBkZXNjcmlwdGlvbiBmcm9tIGZpbGUnKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjbGllbnQgfSA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChvcHRpb25zLm5ldHdvcmspO1xuXG4gICAgICAgIGxldCBsb25nRGVzY3JpcHRpb24gPSBvcHRpb25zLmxvbmc7XG4gICAgICAgIGlmIChvcHRpb25zLmxvbmdGaWxlKSB7XG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBvcHRpb25zLmxvbmdGaWxlO1xuICAgICAgICAgIGxvbmdEZXNjcmlwdGlvbiA9IHJlcXVpcmUoJ2ZzJykucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVwZGF0ZURhdGE6IGFueSA9IHt9O1xuICAgICAgICBpZiAob3B0aW9ucy5zaG9ydCkgdXBkYXRlRGF0YS5zaG9ydERlc2NyaXB0aW9uID0gb3B0aW9ucy5zaG9ydDtcbiAgICAgICAgaWYgKGxvbmdEZXNjcmlwdGlvbikgdXBkYXRlRGF0YS5sb25nRGVzY3JpcHRpb24gPSBsb25nRGVzY3JpcHRpb247XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0KGAvdjEvbmV0d29ya3MvJHtvcHRpb25zLm5ldHdvcmt9L3Byb2ZpbGVgLCB1cGRhdGVEYXRhKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKCfinJMgUHJvZmlsZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseSEnKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIHVwZGF0ZSBwcm9maWxlJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIHByb2ZpbGVcbiAgICAuY29tbWFuZCgnZ2V0JylcbiAgICAuZGVzY3JpcHRpb24oJ0dldCB5b3VyIHByb2ZpbGUgZm9yIGEgbmV0d29yaycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGNsaWVudCwgY3JlZGVudGlhbHMgfSA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChvcHRpb25zLm5ldHdvcmspO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnk+KGAvdjEvbmV0d29ya3MvJHtvcHRpb25zLm5ldHdvcmt9L3Byb2ZpbGVgKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgcHJvZmlsZSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbi5ib2xkKCdcXG5Zb3VyIFByb2ZpbGVcXG4nKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnUHVibGljIFRva2VuOicpLCBjcmVkZW50aWFscy5wdWJsaWNUb2tlbik7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnUm9sZTonKSwgcHJvZmlsZS5yb2xlIHx8ICdtZW1iZXInKTtcbiAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnU2hvcnQgRGVzY3JpcHRpb246JyksIHByb2ZpbGUuc2hvcnREZXNjcmlwdGlvbiB8fCAnKG5vbmUpJyk7XG5cbiAgICAgICAgICBpZiAocHJvZmlsZS5sb25nRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1xcbkxvbmcgRGVzY3JpcHRpb246JykpO1xuICAgICAgICAgICAgY29uc29sZS5sb2cocHJvZmlsZS5sb25nRGVzY3JpcHRpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gZ2V0IHByb2ZpbGUnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgcHJvZmlsZVxuICAgIC5jb21tYW5kKCdidWlsZCcpXG4gICAgLmRlc2NyaXB0aW9uKCdCdWlsZCBwcm9maWxlIGludGVyYWN0aXZlbHknKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy1pLCAtLWludGVyYWN0aXZlJywgJ0ludGVyYWN0aXZlIG1vZGUnLCB0cnVlKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjbGllbnQgfSA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChvcHRpb25zLm5ldHdvcmspO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55W10+KGAvdjEvbmV0d29ya3MvJHtvcHRpb25zLm5ldHdvcmt9L3F1ZXN0aW9uc2ApO1xuXG4gICAgICAgIGlmICghcmVzcG9uc2Uuc3VjY2VzcyB8fCAhcmVzcG9uc2UuZGF0YSB8fCByZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdygnTm8gcHJvZmlsZSBxdWVzdGlvbnMgZm9yIHRoaXMgbmV0d29yay4nKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlc3Rpb25zID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgY29uc3QgYW5zd2VyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuLmJvbGQoJ1xcbkJ1aWxkaW5nIFlvdXIgUHJvZmlsZVxcbicpKTtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheShgRm91bmQgJHtxdWVzdGlvbnMubGVuZ3RofSBwcm9maWxlIHF1ZXN0aW9uc1xcbmApKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHEgPSBxdWVzdGlvbnNbaV07XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbihgJHtpICsgMX0uICR7cS5xdWVzdGlvbn1gKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICAgUmVxdWlyZWQ6JyksIHEucmVxdWlyZWQgPyAnWWVzJyA6ICdObycpO1xuXG4gICAgICAgICAgaWYgKHEucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGFza1F1ZXN0aW9uKHEucXVlc3Rpb24gKyAnICcpO1xuICAgICAgICAgICAgaWYgKCFhbnN3ZXIudHJpbSgpKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdSZXF1aXJlZCBxdWVzdGlvbiBtaXNzaW5nIGFuc3dlci4gUGxlYXNlIHRyeSBhZ2Fpbi4nKSk7XG4gICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFuc3dlcnNbcS5pZCB8fCBgcXVlc3Rpb25fJHtpfWBdID0gYW5zd2VyO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBhc2tRdWVzdGlvbihxLnF1ZXN0aW9uICsgJyAob3B0aW9uYWwpOiAnKTtcbiAgICAgICAgICAgIGlmIChhbnN3ZXIudHJpbSgpKSB7XG4gICAgICAgICAgICAgIGFuc3dlcnNbcS5pZCB8fCBgcXVlc3Rpb25fJHtpfWBdID0gYW5zd2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbi5ib2xkKCdcXG5Db21wbGV0aW5nIHByb2ZpbGUuLi5cXG4nKSk7XG5cbiAgICAgICAgY29uc3QgY29tcGxldGVSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvdjEvbmV0d29ya3MvJHtvcHRpb25zLm5ldHdvcmt9L3Byb2ZpbGUvY29tcGxldGVgLCB7XG4gICAgICAgICAgYW5zd2Vyc1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY29tcGxldGVSZXNwb25zZS5zdWNjZXNzICYmIGNvbXBsZXRlUmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBjb21wbGV0ZVJlc3BvbnNlLmRhdGEgYXMgYW55O1xuXG4gICAgICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlSlNPTlByb2ZpbGUob3B0aW9ucy5uZXR3b3JrLCB7XG4gICAgICAgICAgICBuZXR3b3JrSWQ6IG9wdGlvbnMubmV0d29yayxcbiAgICAgICAgICAgIGFuc3dlcnMsXG4gICAgICAgICAgICBjb21wbGV0aW9uUGVyY2VudGFnZTogZGF0YS5jb21wbGV0aW9uUGVyY2VudGFnZSxcbiAgICAgICAgICAgIGNvbXBsZXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKCfinJMgUHJvZmlsZSBidWlsdCBzdWNjZXNzZnVsbHkhXFxuJykpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJ0NvbXBsZXRpb246JyksIGAke2RhdGEuY29tcGxldGlvblBlcmNlbnRhZ2V9JWApO1xuXG4gICAgICAgICAgaWYgKGRhdGEucmVjb21tZW5kYXRpb25zICYmIGRhdGEucmVjb21tZW5kYXRpb25zLmNvbnZlcnNhdGlvbnNUb0pvaW4gJiYgZGF0YS5yZWNvbW1lbmRhdGlvbnMuY29udmVyc2F0aW9uc1RvSm9pbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coJ1xcblJlY29tbWVuZGVkIGNvbnZlcnNhdGlvbnMgdG8gam9pbjonKSk7XG4gICAgICAgICAgICBkYXRhLnJlY29tbWVuZGF0aW9ucy5jb252ZXJzYXRpb25zVG9Kb2luLmZvckVhY2goKGNvbnZJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgLScpLCBjb252SWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGRhdGEucmVjb21tZW5kYXRpb25zICYmIGRhdGEucmVjb21tZW5kYXRpb25zLm5ldHdvcmtTdHJlbmd0aHMgJiYgZGF0YS5yZWNvbW1lbmRhdGlvbnMubmV0d29ya1N0cmVuZ3Rocy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coJ1xcbllvdXIgbmV0d29yayBzdHJlbmd0aHM6JykpO1xuICAgICAgICAgICAgZGF0YS5yZWNvbW1lbmRhdGlvbnMubmV0d29ya1N0cmVuZ3Rocy5mb3JFYWNoKChzdHJlbmd0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgLScpLCBzdHJlbmd0aCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCBjb21wbGV0ZVJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gY29tcGxldGUgcHJvZmlsZScpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXNrUXVlc3Rpb24ocHJvbXB0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShwcm9tcHQpO1xuICAgIHByb2Nlc3Muc3RkaW4uc2V0RW5jb2RpbmcoJ3V0Zi04Jyk7XG4gICAgcHJvY2Vzcy5zdGRpbi5vbmNlKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgIHJlc29sdmUoZGF0YS50b1N0cmluZygpLnRyaW0oKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsMERBNk5DO0FBak9ELG1EQUFnRDtBQUNoRCxzQ0FBMEM7QUFDMUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRS9CLFNBQWdCLHVCQUF1QixDQUFDLE9BQWdCO0lBQ3RELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFFdEYsT0FBTztTQUNKLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDcEIsV0FBVyxDQUFDLHFDQUFxQyxDQUFDO1NBQ2xELGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7U0FDbEQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFRLGdCQUFnQixPQUFPLENBQUMsT0FBTyxZQUFZLENBQUMsQ0FBQztZQUV0RixJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxDQUFDO29CQUNwRSxPQUFPO2dCQUNULENBQUM7Z0JBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7Z0JBRXhELFFB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QztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLDRCQUE0QixDQUFDLENBQUM7WUFDdEcsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxLQUFLLFVBQVUsV0FBVyxDQUFDLE1BQWM7SUFDdkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgQXV0aEhlbHBlciB9IGZyb20gJy4uL2F1dGgvQXV0aEhlbHBlcic7XG5pbXBvcnQgeyBjb25maWdNYW5hZ2VyIH0gZnJvbSAnLi4vY29uZmlnJztcbmNvbnN0IGNoYWxrID0gcmVxdWlyZSgnY2hhbGsnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyUHJvZmlsZUNvbW1hbmRzKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgY29uc3QgcHJvZmlsZSA9IHByb2dyYW0uY29tbWFuZCgncHJvZmlsZScpLmRlc2NyaXB0aW9uKCdQcm9maWxlIG1hbmFnZW1lbnQgY29tbWFuZHMnKTtcblxuICBwcm9maWxlXG4gICAgLmNvbW1hbmQoJ3F1ZXN0aW9ucycpXG4gICAgLmRlc2NyaXB0aW9uKCdHZXQgcHJvZmlsZSBxdWVzdGlvbnMgZm9yIGEgbmV0d29yaycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPihgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9xdWVzdGlvbnNgKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coJ05vIHByb2ZpbGUgcXVlc3Rpb25zIGZvciB0aGlzIG5ldHdvcmsuJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuLmJvbGQoJ1xcblByb2ZpbGUgUXVlc3Rpb25zOlxcbicpKTtcblxuICAgICAgICAgIHJlc3BvbnNlLmRhdGEuZm9yRWFjaCgocTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGAke2luZGV4ICsgMX0uICR7cS5xdWVzdGlvbn1gKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KGAgICBSZXF1aXJlZDogJHtxLnJlcXVpcmVkID8gJ1llcycgOiAnTm8nfWApKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGdldCBxdWVzdGlvbnMnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgcHJvZmlsZVxuICAgIC5jb21tYW5kKCdzZXQnKVxuICAgIC5kZXNjcmlwdGlvbignU2V0IHlvdXIgcHJvZmlsZSBmb3IgYSBuZXR3b3JrJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAub3B0aW9uKCctcywgLS1zaG9ydCA8ZGVzYz4nLCAnU2hvcnQgZGVzY3JpcHRpb24nKVxuICAgIC5vcHRpb24oJy1sLCAtLWxvbmcgPGRlc2M+JywgJ0xvbmcgZGVzY3JpcHRpb24nKVxuICAgIC5vcHRpb24oJy1mLCAtLWxvbmctZmlsZSA8ZmlsZT4nLCAnUmVhZCBsb25nIGRlc2NyaXB0aW9uIGZyb20gZmlsZScpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGNsaWVudCB9ID0gYXdhaXQgQXV0aEhlbHBlci5lbnN1cmVBdXRoZW50aWNhdGVkKG9wdGlvbnMubmV0d29yayk7XG5cbiAgICAgICAgbGV0IGxvbmdEZXNjcmlwdGlvbiA9IG9wdGlvbnMubG9uZztcbiAgICAgICAgaWYgKG9wdGlvbnMubG9uZ0ZpbGUpIHtcbiAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IG9wdGlvbnMubG9uZ0ZpbGU7XG4gICAgICAgICAgbG9uZ0Rlc2NyaXB0aW9uID0gcmVxdWlyZSgnZnMnKS5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGYtOCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXBkYXRlRGF0YTogYW55ID0ge307XG4gICAgICAgIGlmIChvcHRpb25zLnNob3J0KSB1cGRhdGVEYXRhLnNob3J0RGVzY3JpcHRpb24gPSBvcHRpb25zLnNob3J0O1xuICAgICAgICBpZiAobG9uZ0Rlc2NyaXB0aW9uKSB1cGRhdGVEYXRhLmxvbmdEZXNjcmlwdGlvbiA9IGxvbmdEZXNjcmlwdGlvbjtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wdXQoYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vcHJvZmlsZWAsIHVwZGF0ZURhdGEpO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oJ+KckyBQcm9maWxlIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gdXBkYXRlIHByb2ZpbGUnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgcHJvZmlsZVxuICAgIC5jb21tYW5kKCdnZXQnKVxuICAgIC5kZXNjcmlwdGlvbignR2V0IHlvdXIgcHJvZmlsZSBmb3IgYSBuZXR3b3JrJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50LCBjcmVkZW50aWFscyB9ID0gYXdhaXQgQXV0aEhlbHBlci5lbnN1cmVBdXRoZW50aWNhdGVkKG9wdGlvbnMubmV0d29yayk7XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueT4oYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vcHJvZmlsZWApO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCBwcm9maWxlID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuLmJvbGQoJ1xcbllvdXIgUHJvZmlsZVxcbicpKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdQdWJsaWMgVG9rZW46JyksIGNyZWRlbnRpYWxzLnB1YmxpY1Rva2VuKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdSb2xlOicpLCBwcm9maWxlLnJvbGUgfHwgJ21lbWJlcicpO1xuICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdTaG9ydCBEZXNjcmlwdGlvbjonKSwgcHJvZmlsZS5zaG9ydERlc2NyaXB0aW9uIHx8ICcobm9uZSknKTtcblxuICAgICAgICAgIGlmIChwcm9maWxlLmxvbmdEZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnXFxuTG9uZyBEZXNjcmlwdGlvbjonKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhwcm9maWxlLmxvbmdEZXNjcmlwdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBnZXQgcHJvZmlsZScpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwcm9maWxlXG4gICAgLmNvbW1hbmQoJ2NvbXBsZXRlJylcbiAgICAuZGVzY3JpcHRpb24oJ0NvbXBsZXRlIHByb2ZpbGUgYnkgYW5zd2VyaW5nIHF1ZXN0aW9ucycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLWEsIC0tYW5zd2VycyA8anNvbj4nLCAnSlNPTiBzdHJpbmcgb2YgcXVlc3Rpb24gSUQgdG8gYW5zd2VyIG1hcHBpbmcnKVxuICAgIC5vcHRpb24oJy0tYXV0bycsICdBdXRvLWFuc3dlciBhbGwgcmVxdWlyZWQgcXVlc3Rpb25zIHdpdGggZGVmYXVsdCByZXNwb25zZXMnKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjbGllbnQgfSA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChvcHRpb25zLm5ldHdvcmspO1xuXG4gICAgICAgIGxldCBhbnN3ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuYW5zd2Vycykge1xuICAgICAgICAgIGFuc3dlcnMgPSBKU09OLnBhcnNlKG9wdGlvbnMuYW5zd2Vycyk7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5hdXRvKSB7XG4gICAgICAgICAgY29uc3QgcXVlc3Rpb25zUmVzID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vcXVlc3Rpb25zYCk7XG4gICAgICAgICAgaWYgKHF1ZXN0aW9uc1Jlcy5zdWNjZXNzICYmIHF1ZXN0aW9uc1Jlcy5kYXRhKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHEgb2YgcXVlc3Rpb25zUmVzLmRhdGEpIHtcbiAgICAgICAgICAgICAgaWYgKHEucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICBhbnN3ZXJzW3EuaWRdID0gYEF1dG8tY29tcGxldGVkIGFuc3dlciBmb3I6ICR7cS5xdWVzdGlvbn1gO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgJ1Byb3ZpZGUgLS1hbnN3ZXJzIDxqc29uPiBvciAtLWF1dG8gZmxhZycpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vcHJvZmlsZS9jb21wbGV0ZWAsIHtcbiAgICAgICAgICBhbnN3ZXJzXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gcmVzcG9uc2UuZGF0YSBhcyBhbnk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oJ+KckyBQcm9maWxlIGNvbXBsZXRlZCEnKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignQ29tcGxldGlvbjonKSwgYCR7ZGF0YS5jb21wbGV0aW9uUGVyY2VudGFnZX0lYCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGNvbXBsZXRlIHByb2ZpbGUnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgcHJvZmlsZVxuICAgIC5jb21tYW5kKCdidWlsZCcpXG4gICAgLmRlc2NyaXB0aW9uKCdCdWlsZCBwcm9maWxlIGludGVyYWN0aXZlbHknKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy1pLCAtLWludGVyYWN0aXZlJywgJ0ludGVyYWN0aXZlIG1vZGUnLCB0cnVlKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjbGllbnQgfSA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChvcHRpb25zLm5ldHdvcmspO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55W10+KGAvdjEvbmV0d29ya3MvJHtvcHRpb25zLm5ldHdvcmt9L3F1ZXN0aW9uc2ApO1xuXG4gICAgICAgIGlmICghcmVzcG9uc2Uuc3VjY2VzcyB8fCAhcmVzcG9uc2UuZGF0YSB8fCByZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdygnTm8gcHJvZmlsZSBxdWVzdGlvbnMgZm9yIHRoaXMgbmV0d29yay4nKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlc3Rpb25zID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgY29uc3QgYW5zd2VyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuLmJvbGQoJ1xcbkJ1aWxkaW5nIFlvdXIgUHJvZmlsZVxcbicpKTtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheShgRm91bmQgJHtxdWVzdGlvbnMubGVuZ3RofSBwcm9maWxlIHF1ZXN0aW9uc1xcbmApKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHEgPSBxdWVzdGlvbnNbaV07XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbihgJHtpICsgMX0uICR7cS5xdWVzdGlvbn1gKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICAgUmVxdWlyZWQ6JyksIHEucmVxdWlyZWQgPyAnWWVzJyA6ICdObycpO1xuXG4gICAgICAgICAgaWYgKHEucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGFza1F1ZXN0aW9uKHEucXVlc3Rpb24gKyAnICcpO1xuICAgICAgICAgICAgaWYgKCFhbnN3ZXIudHJpbSgpKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdSZXF1aXJlZCBxdWVzdGlvbiBtaXNzaW5nIGFuc3dlci4gUGxlYXNlIHRyeSBhZ2Fpbi4nKSk7XG4gICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFuc3dlcnNbcS5pZCB8fCBgcXVlc3Rpb25fJHtpfWBdID0gYW5zd2VyO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBhc2tRdWVzdGlvbihxLnF1ZXN0aW9uICsgJyAob3B0aW9uYWwpOiAnKTtcbiAgICAgICAgICAgIGlmIChhbnN3ZXIudHJpbSgpKSB7XG4gICAgICAgICAgICAgIGFuc3dlcnNbcS5pZCB8fCBgcXVlc3Rpb25fJHtpfWBdID0gYW5zd2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbi5ib2xkKCdcXG5Db21wbGV0aW5nIHByb2ZpbGUuLi5cXG4nKSk7XG5cbiAgICAgICAgY29uc3QgY29tcGxldGVSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvdjEvbmV0d29ya3MvJHtvcHRpb25zLm5ldHdvcmt9L3Byb2ZpbGUvY29tcGxldGVgLCB7XG4gICAgICAgICAgYW5zd2Vyc1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY29tcGxldGVSZXNwb25zZS5zdWNjZXNzICYmIGNvbXBsZXRlUmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBjb21wbGV0ZVJlc3BvbnNlLmRhdGEgYXMgYW55O1xuXG4gICAgICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlSlNPTlByb2ZpbGUob3B0aW9ucy5uZXR3b3JrLCB7XG4gICAgICAgICAgICBuZXR3b3JrSWQ6IG9wdGlvbnMubmV0d29yayxcbiAgICAgICAgICAgIGFuc3dlcnMsXG4gICAgICAgICAgICBjb21wbGV0aW9uUGVyY2VudGFnZTogZGF0YS5jb21wbGV0aW9uUGVyY2VudGFnZSxcbiAgICAgICAgICAgIGNvbXBsZXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKCfinJMgUHJvZmlsZSBidWlsdCBzdWNjZXNzZnVsbHkhXFxuJykpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJ0NvbXBsZXRpb246JyksIGAke2RhdGEuY29tcGxldGlvblBlcmNlbnRhZ2V9JWApO1xuXG4gICAgICAgICAgaWYgKGRhdGEucmVjb21tZW5kYXRpb25zICYmIGRhdGEucmVjb21tZW5kYXRpb25zLmNvbnZlcnNhdGlvbnNUb0pvaW4gJiYgZGF0YS5yZWNvbW1lbmRhdGlvbnMuY29udmVyc2F0aW9uc1RvSm9pbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coJ1xcblJlY29tbWVuZGVkIGNvbnZlcnNhdGlvbnMgdG8gam9pbjonKSk7XG4gICAgICAgICAgICBkYXRhLnJlY29tbWVuZGF0aW9ucy5jb252ZXJzYXRpb25zVG9Kb2luLmZvckVhY2goKGNvbnZJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgLScpLCBjb252SWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGRhdGEucmVjb21tZW5kYXRpb25zICYmIGRhdGEucmVjb21tZW5kYXRpb25zLm5ldHdvcmtTdHJlbmd0aHMgJiYgZGF0YS5yZWNvbW1lbmRhdGlvbnMubmV0d29ya1N0cmVuZ3Rocy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coJ1xcbllvdXIgbmV0d29yayBzdHJlbmd0aHM6JykpO1xuICAgICAgICAgICAgZGF0YS5yZWNvbW1lbmRhdGlvbnMubmV0d29ya1N0cmVuZ3Rocy5mb3JFYWNoKChzdHJlbmd0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgLScpLCBzdHJlbmd0aCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCBjb21wbGV0ZVJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gY29tcGxldGUgcHJvZmlsZScpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXNrUXVlc3Rpb24ocHJvbXB0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShwcm9tcHQpO1xuICAgIHByb2Nlc3Muc3RkaW4uc2V0RW5jb2RpbmcoJ3V0Zi04Jyk7XG4gICAgcHJvY2Vzcy5zdGRpbi5vbmNlKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgIHJlc29sdmUoZGF0YS50b1N0cmluZygpLnRyaW0oKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
|
|
@@ -41,12 +41,15 @@ function encode(data) {
|
|
|
41
41
|
}
|
|
42
42
|
if (typeof data === "object") {
|
|
43
43
|
const obj = data;
|
|
44
|
-
const keys = Object.keys(obj);
|
|
44
|
+
const keys = Object.keys(obj).filter(k => obj[k] !== undefined);
|
|
45
45
|
if (keys.length === 0) {
|
|
46
46
|
return "{}";
|
|
47
47
|
}
|
|
48
48
|
const lines = keys.map((key) => {
|
|
49
49
|
const val = encode(obj[key]);
|
|
50
|
+
if (val.includes("\n")) {
|
|
51
|
+
return `${key}:\n${val.split("\n").map(l => ` ${l}`).join("\n")}`;
|
|
52
|
+
}
|
|
50
53
|
return `${key}:${val}`;
|
|
51
54
|
});
|
|
52
55
|
return lines.join("\n");
|
|
@@ -67,50 +70,48 @@ function decode(str) {
|
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
const lines = str.split("\n");
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (colonIndex > 0) {
|
|
92
|
-
currentKey = line.substring(0, colonIndex).trim();
|
|
93
|
-
const firstValuePart = line.substring(colonIndex + 1).trim();
|
|
94
|
-
currentValueLines = firstValuePart ? [firstValuePart] : [];
|
|
73
|
+
const result = {};
|
|
74
|
+
let hasData = false;
|
|
75
|
+
for (let i = 0; i < lines.length; i++) {
|
|
76
|
+
const line = lines[i];
|
|
77
|
+
if (!line.trim())
|
|
78
|
+
continue;
|
|
79
|
+
// Detect key:value
|
|
80
|
+
const colonIndex = line.indexOf(":");
|
|
81
|
+
if (colonIndex > 0 && !line.startsWith(" ")) {
|
|
82
|
+
const key = line.substring(0, colonIndex).trim();
|
|
83
|
+
let valuePart = line.substring(colonIndex + 1).trim();
|
|
84
|
+
// Check if it's a multiline value or a complex structure
|
|
85
|
+
if (!valuePart && i + 1 < lines.length && lines[i + 1].startsWith(" ")) {
|
|
86
|
+
const valueLines = [];
|
|
87
|
+
let j = i + 1;
|
|
88
|
+
while (j < lines.length && (lines[j].startsWith(" ") || !lines[j].trim())) {
|
|
89
|
+
valueLines.push(lines[j].substring(2));
|
|
90
|
+
j++;
|
|
91
|
+
}
|
|
92
|
+
i = j - 1;
|
|
93
|
+
result[key] = decodeValue(valueLines.join("\n"));
|
|
95
94
|
}
|
|
96
95
|
else {
|
|
97
|
-
|
|
98
|
-
currentKey = null;
|
|
96
|
+
result[key] = decodeValue(valuePart);
|
|
99
97
|
}
|
|
98
|
+
hasData = true;
|
|
100
99
|
}
|
|
101
|
-
// Save last key
|
|
102
|
-
if (currentKey) {
|
|
103
|
-
result[currentKey] = decodeValue(currentValueLines.join("\n"));
|
|
104
|
-
}
|
|
105
|
-
return result;
|
|
106
100
|
}
|
|
107
|
-
|
|
101
|
+
if (!hasData) {
|
|
102
|
+
return decodeValue(trimmed);
|
|
103
|
+
}
|
|
104
|
+
return result;
|
|
108
105
|
}
|
|
109
106
|
function decodeValue(str) {
|
|
110
107
|
const trimmed = str.trim();
|
|
111
|
-
if (!trimmed)
|
|
108
|
+
if (!trimmed || trimmed === "null")
|
|
112
109
|
return null;
|
|
113
|
-
|
|
110
|
+
if (trimmed === "true")
|
|
111
|
+
return true;
|
|
112
|
+
if (trimmed === "false")
|
|
113
|
+
return false;
|
|
114
|
+
const lines = str.split("\n");
|
|
114
115
|
const firstLine = lines[0].trim();
|
|
115
116
|
// Tabular array [count]{key1,key2}:
|
|
116
117
|
if (firstLine.startsWith("[") && firstLine.includes("]{")) {
|
|
@@ -147,13 +148,14 @@ function decodeValue(str) {
|
|
|
147
148
|
}
|
|
148
149
|
function parseValue(val) {
|
|
149
150
|
const v = val.trim();
|
|
150
|
-
if (v === "null")
|
|
151
|
+
if (!v || v === "null")
|
|
151
152
|
return null;
|
|
152
153
|
if (v === "true")
|
|
153
154
|
return true;
|
|
154
155
|
if (v === "false")
|
|
155
156
|
return false;
|
|
156
|
-
|
|
157
|
+
// Robust number parsing (avoid dates or tokens being parsed as numbers)
|
|
158
|
+
if (/^-?\d+(\.\d+)?$/.test(v) && v.length < 15) {
|
|
157
159
|
return Number(v);
|
|
158
160
|
}
|
|
159
161
|
if (v.startsWith('"') && v.endsWith('"')) {
|
|
@@ -208,4 +210,4 @@ function safeDecode(str) {
|
|
|
208
210
|
return null;
|
|
209
211
|
}
|
|
210
212
|
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YW1vZGVsL3Rvb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3QkFzREM7QUFFRCx3QkEyREM7QUFvRkQsb0NBU0M7QUFFRCxnQ0FNQztBQUVELGdDQU1DO0FBaE9ELFNBQWdCLE1BQU0sQ0FBQyxJQUFhO0lBQ2xDLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDdEQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxJQUFJLElBQUksR0FBRyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNB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LENBQUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxJQUFhO0lBQ3RDLElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFjLEdBQVc7SUFDakQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUksR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5jb2RlKGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gXCJudWxsXCI7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgcmV0dXJuIGRhdGEgPyBcInRydWVcIiA6IFwiZmFsc2VcIjtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBTdHJpbmcoZGF0YSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAoL15bYS16QS1aMC05Xy1dKyQvLnRlc3QoZGF0YSkgJiYgZGF0YS5sZW5ndGggPCA1MCkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIHJldHVybiBgXCIke2RhdGF9XCJgO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBcIltdXCI7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RJdGVtID0gZGF0YVswXTtcbiAgICBpZiAodHlwZW9mIGZpcnN0SXRlbSA9PT0gXCJvYmplY3RcIiAmJiBmaXJzdEl0ZW0gIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkoZmlyc3RJdGVtKSkge1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGZpcnN0SXRlbSk7XG4gICAgICBjb25zdCBoZWFkZXIgPSBgWyR7ZGF0YS5sZW5ndGh9XXske2tleXMuam9pbihcIixcIil9fTpgO1xuICAgICAgY29uc3QgbGluZXMgPSBkYXRhLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBrZXlzLm1hcCgoa2V5KSA9PiBlbmNvZGUoaXRlbVtrZXldKSk7XG4gICAgICAgIHJldHVybiB2YWx1ZXMuam9pbihcIixcIik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBoZWFkZXIgKyBcIlxcblwiICsgbGluZXMubWFwKChsaW5lKSA9PiBgICAke2xpbmV9YCkuam9pbihcIlxcblwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBbJHtkYXRhLmxlbmd0aH1dOmAgKyBkYXRhLm1hcCgoaXRlbSkgPT4gZW5jb2RlKGl0ZW0pKS5qb2luKFwiLFwiKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIpIHtcbiAgICBjb25zdCBvYmogPSBkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFwie31cIjtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lcyA9IGtleXMubWFwKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IGVuY29kZShvYmpba2V5XSk7XG4gICAgICByZXR1cm4gYCR7a2V5fToke3ZhbH1gO1xuICAgIH0pO1xuICAgIHJldHVybiBsaW5lcy5qb2luKFwiXFxuXCIpO1xuICB9XG5cbiAgcmV0dXJuIFN0cmluZyhkYXRhKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZTxUID0gdW5rbm93bj4oc3RyOiBzdHJpbmcpOiBUIHtcbiAgaWYgKCFzdHIpIHJldHVybiBudWxsIGFzIHVua25vd24gYXMgVDtcbiAgXG4gIGNvbnN0IHRyaW1tZWQgPSBzdHIudHJpbSgpO1xuICBcbiAgLy8gVHJ5IEpTT04gZmlyc3QgaWYgaXQgbG9va3MgbGlrZSBKU09OXG4gIGlmICh0cmltbWVkLnN0YXJ0c1dpdGgoJ3snKSB8fCB0cmltbWVkLnN0YXJ0c1dpdGgoJ1snKSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0cmltbWVkKSBhcyBUO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIE5vdCBKU09OLCBjb250aW51ZSB0byBUT09OXG4gICAgfVxuICB9XG5cbiAgY29uc3QgbGluZXMgPSBzdHIuc3BsaXQoXCJcXG5cIik7XG4gIFxuICAvLyBEZXRlY3QgaWYgaXQncyBhIHRvcC1sZXZlbCBvYmplY3Qgd2l0aCBwb3RlbnRpYWwgbXVsdGlsaW5lIHZhbHVlc1xuICBpZiAobGluZXMuc29tZShsID0+IGwuaW5jbHVkZXMoJzonKSAmJiAhbC5zdGFydHNXaXRoKCcgJykpKSB7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgbGV0IGN1cnJlbnRLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjdXJyZW50VmFsdWVMaW5lczogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXTtcbiAgICAgIGNvbnN0IHRyaW1tZWRMaW5lID0gbGluZS50cmltKCk7XG4gICAgICBpZiAoIXRyaW1tZWRMaW5lICYmICFjdXJyZW50S2V5KSBjb250aW51ZTtcblxuICAgICAgLy8gSWYgbGluZSBzdGFydHMgd2l0aCBzcGFjZSwgaXQncyBhIGNvbnRpbnVhdGlvbiBvZiB0aGUgcHJldmlvdXMgdmFsdWVcbiAgICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoJyAgJykgJiYgY3VycmVudEtleSkge1xuICAgICAgICBjdXJyZW50VmFsdWVMaW5lcy5wdXNoKGxpbmUuc3Vic3RyaW5nKDIpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIGhhdmUgYSBwcmV2aW91cyBrZXksIHNhdmUgaXRzIGNvbGxlY3RlZCB2YWx1ZVxuICAgICAgaWYgKGN1cnJlbnRLZXkpIHtcbiAgICAgICAgcmVzdWx0W2N1cnJlbnRLZXldID0gZGVjb2RlVmFsdWUoY3VycmVudFZhbHVlTGluZXMuam9pbihcIlxcblwiKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5ldyBrZXk6dmFsdWUgcGFpclxuICAgICAgY29uc3QgY29sb25JbmRleCA9IGxpbmUuaW5kZXhPZihcIjpcIik7XG4gICAgICBpZiAoY29sb25JbmRleCA+IDApIHtcbiAgICAgICAgY3VycmVudEtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIGNvbG9uSW5kZXgpLnRyaW0oKTtcbiAgICAgICAgY29uc3QgZmlyc3RWYWx1ZVBhcnQgPSBsaW5lLnN1YnN0cmluZyhjb2xvbkluZGV4ICsgMSkudHJpbSgpO1xuICAgICAgICBjdXJyZW50VmFsdWVMaW5lcyA9IGZpcnN0VmFsdWVQYXJ0ID8gW2ZpcnN0VmFsdWVQYXJ0XSA6IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTGluZSB3aXRob3V0IGNvbG9uIGFuZCBub3QgaW5kZW50ZWQ/IFByb2JhYmx5IGdhcmJhZ2Ugb3IgbWFsZm9ybWVkXG4gICAgICAgIGN1cnJlbnRLZXkgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNhdmUgbGFzdCBrZXlcbiAgICBpZiAoY3VycmVudEtleSkge1xuICAgICAgcmVzdWx0W2N1cnJlbnRLZXldID0gZGVjb2RlVmFsdWUoY3VycmVudFZhbHVlTGluZXMuam9pbihcIlxcblwiKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdCBhcyB1bmtub3duIGFzIFQ7XG4gIH1cblxuICByZXR1cm4gZGVjb2RlVmFsdWUodHJpbW1lZCkgYXMgdW5rbm93biBhcyBUO1xufVxuXG5mdW5jdGlvbiBkZWNvZGVWYWx1ZShzdHI6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IHRyaW1tZWQgPSBzdHIudHJpbSgpO1xuICBpZiAoIXRyaW1tZWQpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IGxpbmVzID0gdHJpbW1lZC5zcGxpdChcIlxcblwiKTtcbiAgY29uc3QgZmlyc3RMaW5lID0gbGluZXNbMF0udHJpbSgpO1xuXG4gIC8vIFRhYnVsYXIgYXJyYXkgW2NvdW50XXtrZXkxLGtleTJ9OlxuICBpZiAoZmlyc3RMaW5lLnN0YXJ0c1dpdGgoXCJbXCIpICYmIGZpcnN0TGluZS5pbmNsdWRlcyhcIl17XCIpKSB7XG4gICAgY29uc3QgaGVhZGVyTWF0Y2ggPSBmaXJzdExpbmUubWF0Y2goL15cXFsoXFxkKylcXF1cXHsoW159XSspXFx9OiQvKTtcbiAgICBpZiAoaGVhZGVyTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBoZWFkZXJNYXRjaFsyXS5zcGxpdChcIixcIikubWFwKChrKSA9PiBrLnRyaW0oKSk7XG4gICAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG4gICAgICBcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgbGluZSA9IGxpbmVzW2ldLnRyaW0oKTtcbiAgICAgICAgaWYgKCFsaW5lKSBjb250aW51ZTtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcnNlQ29tbWFTZXBhcmF0ZWQobGluZSk7XG4gICAgICAgIGNvbnN0IGl0ZW06IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXksIGopID0+IHtcbiAgICAgICAgICBpZiAoaiA8IHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGl0ZW1ba2V5XSA9IHBhcnNlVmFsdWUodmFsdWVzW2pdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gU2ltcGxlIGFycmF5IFtjb3VudF06dmFsMSx2YWwyXG4gIGlmIChmaXJzdExpbmUuc3RhcnRzV2l0aChcIltcIikgJiYgZmlyc3RMaW5lLmluY2x1ZGVzKFwiXTpcIikpIHtcbiAgICBjb25zdCBoZWFkZXJNYXRjaCA9IGZpcnN0TGluZS5tYXRjaCgvXlxcWyhcXGQrKVxcXTooLiopJC8pO1xuICAgIGlmIChoZWFkZXJNYXRjaCkge1xuICAgICAgY29uc3QgcmVtYWluaW5nID0gaGVhZGVyTWF0Y2hbMl0gKyAobGluZXMubGVuZ3RoID4gMSA/IFwiXFxuXCIgKyBsaW5lcy5zbGljZSgxKS5qb2luKFwiXFxuXCIpIDogXCJcIik7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBwYXJzZUNvbW1hU2VwYXJhdGVkKHJlbWFpbmluZy50cmltKCkpO1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAocGFyc2VWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcnNlVmFsdWUodHJpbW1lZCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVmFsdWUodmFsOiBzdHJpbmcpOiBhbnkge1xuICBjb25zdCB2ID0gdmFsLnRyaW0oKTtcbiAgaWYgKHYgPT09IFwibnVsbFwiKSByZXR1cm4gbnVsbDtcbiAgaWYgKHYgPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHYgPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICBcbiAgaWYgKCFpc05hTihOdW1iZXIodikpICYmIHYgIT09IFwiXCIgJiYgIXYuaW5jbHVkZXMoJy0nKSAmJiAhdi5pbmNsdWRlcygnOicpKSB7XG4gICAgcmV0dXJuIE51bWJlcih2KTtcbiAgfVxuICBcbiAgaWYgKHYuc3RhcnRzV2l0aCgnXCInKSAmJiB2LmVuZHNXaXRoKCdcIicpKSB7XG4gICAgcmV0dXJuIHYuc3Vic3RyaW5nKDEsIHYubGVuZ3RoIC0gMSk7XG4gIH1cbiAgXG4gIHJldHVybiB2O1xufVxuXG5mdW5jdGlvbiBwYXJzZUNvbW1hU2VwYXJhdGVkKHN0cjogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gIGxldCBjdXJyZW50ID0gXCJcIjtcbiAgbGV0IGluUXVvdGVzID0gZmFsc2U7XG4gIFxuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoYXIgPSBzdHJbaV07XG4gICAgaWYgKGNoYXIgPT09ICdcIicpIHtcbiAgICAgIGluUXVvdGVzID0gIWluUXVvdGVzO1xuICAgICAgY3VycmVudCArPSBjaGFyO1xuICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCIsXCIgJiYgIWluUXVvdGVzKSB7XG4gICAgICByZXN1bHQucHVzaChjdXJyZW50LnRyaW0oKSk7XG4gICAgICBjdXJyZW50ID0gXCJcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudCArPSBjaGFyO1xuICAgIH1cbiAgfVxuICByZXN1bHQucHVzaChjdXJyZW50LnRyaW0oKSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Rvb25Gb3JtYXQoY29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBjb250ZW50LnRyaW0oKTtcbiAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aChcIltcIikgJiYgKHRyaW1tZWQuaW5jbHVkZXMoXCJde1wiKSB8fCB0cmltbWVkLmluY2x1ZGVzKFwiXTpcIikpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKHRyaW1tZWQuaW5jbHVkZXMoXCI6XCIpICYmICF0cmltbWVkLnN0YXJ0c1dpdGgoXCJ7XCIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FmZUVuY29kZShkYXRhOiB1bmtub3duKTogc3RyaW5nIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGVuY29kZShkYXRhKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVEZWNvZGU8VCA9IHVua25vd24+KHN0cjogc3RyaW5nKTogVCB8IG51bGwge1xuICB0cnkge1xuICAgIHJldHVybiBkZWNvZGU8VD4oc3RyKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YW1vZGVsL3Rvb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3QkF5REM7QUFFRCx3QkFrREM7QUF1RkQsb0NBU0M7QUFFRCxnQ0FNQztBQUVELGdDQU1DO0FBN05ELFNBQWdCLE1BQU0sQ0FBQyxJQUFhO0lBQ2xDLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDdEQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxJQUFJLElBQUksR0FBRyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDckYsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE1BQU0sR0FBRyxHQUFHLElBQStCLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDaEUsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM3QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sR0FBRyxHQUFHLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckUsQ0FBQztZQUNELE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFRCxTQUFnQixNQUFNLENBQWMsR0FBVztJQUM3QyxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sSUFBb0IsQ0FBQztJQUV0QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFM0IsdUNBQXVDO0lBQ3ZDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBTSxDQUFDO1FBQ2xDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsNkJBQTZCO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO0lBQ3ZDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLFNBQVM7UUFFM0IsbUJBQW1CO1FBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXRELHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN0RSxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUMzRSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkMsQ0FBQyxFQUFFLENBQUM7Z0JBQ04sQ0FBQztnQkFDRCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDVixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBaUIsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTyxNQUFzQixDQUFDO0FBQ2hDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFXO0lBQzlCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sS0FBSyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDaEQsSUFBSSxPQUFPLEtBQUssTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3BDLElBQUksT0FBTyxLQUFLLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUV0QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVsQyxvQ0FBb0M7SUFDcEMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDL0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDNUQsTUFBTSxNQUFNLEdBQVUsRUFBRSxDQUFDO1lBRXpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUk7b0JBQUUsU0FBUztnQkFFcEIsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sSUFBSSxHQUF3QixFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEMsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4RCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlGLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxHQUFXO0lBQzdCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDcEMsSUFBSSxDQUFDLEtBQUssTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzlCLElBQUksQ0FBQyxLQUFLLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUVoQyx3RUFBd0U7SUFDeEUsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUMvQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsR0FBVztJQUN0QyxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNqQixRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDckIsT0FBTyxJQUFJLElBQUksQ0FBQztRQUNsQixDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1QixPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksSUFBSSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLE9BQWU7SUFDMUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxJQUFhO0lBQ3RDLElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFjLEdBQVc7SUFDakQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUksR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5jb2RlKGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gXCJudWxsXCI7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgcmV0dXJuIGRhdGEgPyBcInRydWVcIiA6IFwiZmFsc2VcIjtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBTdHJpbmcoZGF0YSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAoL15bYS16QS1aMC05Xy1dKyQvLnRlc3QoZGF0YSkgJiYgZGF0YS5sZW5ndGggPCA1MCkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIHJldHVybiBgXCIke2RhdGF9XCJgO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBcIltdXCI7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RJdGVtID0gZGF0YVswXTtcbiAgICBpZiAodHlwZW9mIGZpcnN0SXRlbSA9PT0gXCJvYmplY3RcIiAmJiBmaXJzdEl0ZW0gIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkoZmlyc3RJdGVtKSkge1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGZpcnN0SXRlbSk7XG4gICAgICBjb25zdCBoZWFkZXIgPSBgWyR7ZGF0YS5sZW5ndGh9XXske2tleXMuam9pbihcIixcIil9fTpgO1xuICAgICAgY29uc3QgbGluZXMgPSBkYXRhLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBrZXlzLm1hcCgoa2V5KSA9PiBlbmNvZGUoaXRlbVtrZXldKSk7XG4gICAgICAgIHJldHVybiB2YWx1ZXMuam9pbihcIixcIik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBoZWFkZXIgKyBcIlxcblwiICsgbGluZXMubWFwKChsaW5lKSA9PiBgICAke2xpbmV9YCkuam9pbihcIlxcblwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBbJHtkYXRhLmxlbmd0aH1dOmAgKyBkYXRhLm1hcCgoaXRlbSkgPT4gZW5jb2RlKGl0ZW0pKS5qb2luKFwiLFwiKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIpIHtcbiAgICBjb25zdCBvYmogPSBkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopLmZpbHRlcihrID0+IG9ialtrXSAhPT0gdW5kZWZpbmVkKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBcInt9XCI7XG4gICAgfVxuXG4gICAgY29uc3QgbGluZXMgPSBrZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBlbmNvZGUob2JqW2tleV0pO1xuICAgICAgaWYgKHZhbC5pbmNsdWRlcyhcIlxcblwiKSkge1xuICAgICAgICByZXR1cm4gYCR7a2V5fTpcXG4ke3ZhbC5zcGxpdChcIlxcblwiKS5tYXAobCA9PiBgICAke2x9YCkuam9pbihcIlxcblwiKX1gO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAke2tleX06JHt2YWx9YDtcbiAgICB9KTtcbiAgICByZXR1cm4gbGluZXMuam9pbihcIlxcblwiKTtcbiAgfVxuXG4gIHJldHVybiBTdHJpbmcoZGF0YSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGU8VCA9IHVua25vd24+KHN0cjogc3RyaW5nKTogVCB7XG4gIGlmICghc3RyKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFQ7XG4gIFxuICBjb25zdCB0cmltbWVkID0gc3RyLnRyaW0oKTtcbiAgXG4gIC8vIFRyeSBKU09OIGZpcnN0IGlmIGl0IGxvb2tzIGxpa2UgSlNPTlxuICBpZiAodHJpbW1lZC5zdGFydHNXaXRoKCd7JykgfHwgdHJpbW1lZC5zdGFydHNXaXRoKCdbJykpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodHJpbW1lZCkgYXMgVDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBOb3QgSlNPTiwgY29udGludWUgdG8gVE9PTlxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGxpbmVzID0gc3RyLnNwbGl0KFwiXFxuXCIpO1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgbGV0IGhhc0RhdGEgPSBmYWxzZTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbGluZSA9IGxpbmVzW2ldO1xuICAgIGlmICghbGluZS50cmltKCkpIGNvbnRpbnVlO1xuXG4gICAgLy8gRGV0ZWN0IGtleTp2YWx1ZVxuICAgIGNvbnN0IGNvbG9uSW5kZXggPSBsaW5lLmluZGV4T2YoXCI6XCIpO1xuICAgIGlmIChjb2xvbkluZGV4ID4gMCAmJiAhbGluZS5zdGFydHNXaXRoKFwiIFwiKSkge1xuICAgICAgY29uc3Qga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgY29sb25JbmRleCkudHJpbSgpO1xuICAgICAgbGV0IHZhbHVlUGFydCA9IGxpbmUuc3Vic3RyaW5nKGNvbG9uSW5kZXggKyAxKS50cmltKCk7XG5cbiAgICAgIC8vIENoZWNrIGlmIGl0J3MgYSBtdWx0aWxpbmUgdmFsdWUgb3IgYSBjb21wbGV4IHN0cnVjdHVyZVxuICAgICAgaWYgKCF2YWx1ZVBhcnQgJiYgaSArIDEgPCBsaW5lcy5sZW5ndGggJiYgbGluZXNbaSsxXS5zdGFydHNXaXRoKFwiICBcIikpIHtcbiAgICAgICAgY29uc3QgdmFsdWVMaW5lcyA9IFtdO1xuICAgICAgICBsZXQgaiA9IGkgKyAxO1xuICAgICAgICB3aGlsZSAoaiA8IGxpbmVzLmxlbmd0aCAmJiAobGluZXNbal0uc3RhcnRzV2l0aChcIiAgXCIpIHx8ICFsaW5lc1tqXS50cmltKCkpKSB7XG4gICAgICAgICAgdmFsdWVMaW5lcy5wdXNoKGxpbmVzW2pdLnN1YnN0cmluZygyKSk7XG4gICAgICAgICAgaisrO1xuICAgICAgICB9XG4gICAgICAgIGkgPSBqIC0gMTtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBkZWNvZGVWYWx1ZSh2YWx1ZUxpbmVzLmpvaW4oXCJcXG5cIikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBkZWNvZGVWYWx1ZSh2YWx1ZVBhcnQpO1xuICAgICAgfVxuICAgICAgaGFzRGF0YSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFoYXNEYXRhKSB7XG4gICAgcmV0dXJuIGRlY29kZVZhbHVlKHRyaW1tZWQpIGFzIHVua25vd24gYXMgVDtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQgYXMgdW5rbm93biBhcyBUO1xufVxuXG5mdW5jdGlvbiBkZWNvZGVWYWx1ZShzdHI6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IHRyaW1tZWQgPSBzdHIudHJpbSgpO1xuICBpZiAoIXRyaW1tZWQgfHwgdHJpbW1lZCA9PT0gXCJudWxsXCIpIHJldHVybiBudWxsO1xuICBpZiAodHJpbW1lZCA9PT0gXCJ0cnVlXCIpIHJldHVybiB0cnVlO1xuICBpZiAodHJpbW1lZCA9PT0gXCJmYWxzZVwiKSByZXR1cm4gZmFsc2U7XG5cbiAgY29uc3QgbGluZXMgPSBzdHIuc3BsaXQoXCJcXG5cIik7XG4gIGNvbnN0IGZpcnN0TGluZSA9IGxpbmVzWzBdLnRyaW0oKTtcblxuICAvLyBUYWJ1bGFyIGFycmF5IFtjb3VudF17a2V5MSxrZXkyfTpcbiAgaWYgKGZpcnN0TGluZS5zdGFydHNXaXRoKFwiW1wiKSAmJiBmaXJzdExpbmUuaW5jbHVkZXMoXCJde1wiKSkge1xuICAgIGNvbnN0IGhlYWRlck1hdGNoID0gZmlyc3RMaW5lLm1hdGNoKC9eXFxbKFxcZCspXFxdXFx7KFtefV0rKVxcfTokLyk7XG4gICAgaWYgKGhlYWRlck1hdGNoKSB7XG4gICAgICBjb25zdCBrZXlzID0gaGVhZGVyTWF0Y2hbMl0uc3BsaXQoXCIsXCIpLm1hcCgoaykgPT4gay50cmltKCkpO1xuICAgICAgY29uc3QgcmVzdWx0OiBhbnlbXSA9IFtdO1xuICAgICAgXG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXS50cmltKCk7XG4gICAgICAgIGlmICghbGluZSkgY29udGludWU7XG4gICAgICAgIFxuICAgICAgICBjb25zdCB2YWx1ZXMgPSBwYXJzZUNvbW1hU2VwYXJhdGVkKGxpbmUpO1xuICAgICAgICBjb25zdCBpdGVtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5LCBqKSA9PiB7XG4gICAgICAgICAgaWYgKGogPCB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpdGVtW2tleV0gPSBwYXJzZVZhbHVlKHZhbHVlc1tqXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIC8vIFNpbXBsZSBhcnJheSBbY291bnRdOnZhbDEsdmFsMlxuICBpZiAoZmlyc3RMaW5lLnN0YXJ0c1dpdGgoXCJbXCIpICYmIGZpcnN0TGluZS5pbmNsdWRlcyhcIl06XCIpKSB7XG4gICAgY29uc3QgaGVhZGVyTWF0Y2ggPSBmaXJzdExpbmUubWF0Y2goL15cXFsoXFxkKylcXF06KC4qKSQvKTtcbiAgICBpZiAoaGVhZGVyTWF0Y2gpIHtcbiAgICAgIGNvbnN0IHJlbWFpbmluZyA9IGhlYWRlck1hdGNoWzJdICsgKGxpbmVzLmxlbmd0aCA+IDEgPyBcIlxcblwiICsgbGluZXMuc2xpY2UoMSkuam9pbihcIlxcblwiKSA6IFwiXCIpO1xuICAgICAgY29uc3QgdmFsdWVzID0gcGFyc2VDb21tYVNlcGFyYXRlZChyZW1haW5pbmcudHJpbSgpKTtcbiAgICAgIHJldHVybiB2YWx1ZXMubWFwKHBhcnNlVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJzZVZhbHVlKHRyaW1tZWQpO1xufVxuXG5mdW5jdGlvbiBwYXJzZVZhbHVlKHZhbDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgdiA9IHZhbC50cmltKCk7XG4gIGlmICghdiB8fCB2ID09PSBcIm51bGxcIikgcmV0dXJuIG51bGw7XG4gIGlmICh2ID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gIGlmICh2ID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgXG4gIC8vIFJvYnVzdCBudW1iZXIgcGFyc2luZyAoYXZvaWQgZGF0ZXMgb3IgdG9rZW5zIGJlaW5nIHBhcnNlZCBhcyBudW1iZXJzKVxuICBpZiAoL14tP1xcZCsoXFwuXFxkKyk/JC8udGVzdCh2KSAmJiB2Lmxlbmd0aCA8IDE1KSB7XG4gICAgcmV0dXJuIE51bWJlcih2KTtcbiAgfVxuICBcbiAgaWYgKHYuc3RhcnRzV2l0aCgnXCInKSAmJiB2LmVuZHNXaXRoKCdcIicpKSB7XG4gICAgcmV0dXJuIHYuc3Vic3RyaW5nKDEsIHYubGVuZ3RoIC0gMSk7XG4gIH1cbiAgXG4gIHJldHVybiB2O1xufVxuXG5mdW5jdGlvbiBwYXJzZUNvbW1hU2VwYXJhdGVkKHN0cjogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gIGxldCBjdXJyZW50ID0gXCJcIjtcbiAgbGV0IGluUXVvdGVzID0gZmFsc2U7XG4gIFxuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoYXIgPSBzdHJbaV07XG4gICAgaWYgKGNoYXIgPT09ICdcIicpIHtcbiAgICAgIGluUXVvdGVzID0gIWluUXVvdGVzO1xuICAgICAgY3VycmVudCArPSBjaGFyO1xuICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCIsXCIgJiYgIWluUXVvdGVzKSB7XG4gICAgICByZXN1bHQucHVzaChjdXJyZW50LnRyaW0oKSk7XG4gICAgICBjdXJyZW50ID0gXCJcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudCArPSBjaGFyO1xuICAgIH1cbiAgfVxuICByZXN1bHQucHVzaChjdXJyZW50LnRyaW0oKSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Rvb25Gb3JtYXQoY29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBjb250ZW50LnRyaW0oKTtcbiAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aChcIltcIikgJiYgKHRyaW1tZWQuaW5jbHVkZXMoXCJde1wiKSB8fCB0cmltbWVkLmluY2x1ZGVzKFwiXTpcIikpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKHRyaW1tZWQuaW5jbHVkZXMoXCI6XCIpICYmICF0cmltbWVkLnN0YXJ0c1dpdGgoXCJ7XCIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FmZUVuY29kZShkYXRhOiB1bmtub3duKTogc3RyaW5nIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGVuY29kZShkYXRhKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVEZWNvZGU8VCA9IHVua25vd24+KHN0cjogc3RyaW5nKTogVCB8IG51bGwge1xuICB0cnkge1xuICAgIHJldHVybiBkZWNvZGU8VD4oc3RyKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
|
package/dist/index.js
CHANGED
|
@@ -21,8 +21,9 @@ program
|
|
|
21
21
|
(0, commands_1.registerIdentityCommands)(program);
|
|
22
22
|
(0, commands_1.registerContactCommands)(program);
|
|
23
23
|
(0, commands_1.registerHumansCommands)(program);
|
|
24
|
+
(0, commands_1.registerErrorCommands)(program);
|
|
24
25
|
program.on('option:debug', () => {
|
|
25
26
|
logger_1.logger.setDebug(true);
|
|
26
27
|
});
|
|
27
28
|
program.parse();
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUNBQW9DO0FBQ3BDLHlDQVlvQjtBQUNwQiwyQ0FBd0M7QUFFeEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBTyxFQUFFLENBQUM7QUFFOUIsT0FBTztLQUNKLElBQUksQ0FBQyxhQUFhLENBQUM7S0FDbkIsV0FBVyxDQUFDLGlEQUFpRCxDQUFDO0tBQzlELE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0tBQzVCLE1BQU0sQ0FBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFcEQsSUFBQSwrQkFBb0IsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUM5QixJQUFBLGtDQUF1QixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2pDLElBQUEsa0NBQXVCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDakMsSUFBQSx1Q0FBNEIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUN0QyxJQUFBLGtDQUF1QixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2pDLElBQUEsaUNBQXNCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEMsSUFBQSxxQ0FBMEIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUNwQyxJQUFBLG1DQUF3QixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2xDLElBQUEsa0NBQXVCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDakMsSUFBQSxpQ0FBc0IsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUNoQyxJQUFBLGdDQUFxQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRS9CLE9BQU8sQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtJQUM5QixlQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDO0FBRUgsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7XG4gIHJlZ2lzdGVyQXV0aENvbW1hbmRzLFxuICByZWdpc3Rlck5ldHdvcmtDb21tYW5kcyxcbiAgcmVnaXN0ZXJQcm9maWxlQ29tbWFuZHMsXG4gIHJlZ2lzdGVyQ29udmVyc2F0aW9uQ29tbWFuZHMsXG4gIHJlZ2lzdGVyTWVzc2FnZUNvbW1hbmRzLFxuICByZWdpc3RlckNvbmZpZ0NvbW1hbmRzLFxuICByZWdpc3RlckNvbm5lY3Rpb25Db21tYW5kcyxcbiAgcmVnaXN0ZXJJZGVudGl0eUNvbW1hbmRzLFxuICByZWdpc3RlckNvbnRhY3RDb21tYW5kcyxcbiAgcmVnaXN0ZXJIdW1hbnNDb21tYW5kcyxcbiAgcmVnaXN0ZXJFcnJvckNvbW1hbmRzXG59IGZyb20gJy4vY29tbWFuZHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi91dGlscy9sb2dnZXInO1xuXG5jb25zdCBwYWNrYWdlSnNvbiA9IHJlcXVpcmUoJy4uL3BhY2thZ2UuanNvbicpO1xuXG5jb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKTtcblxucHJvZ3JhbVxuICAubmFtZSgnYWdlbnRpY3Bvb2wnKVxuICAuZGVzY3JpcHRpb24oJ0NMSSBmb3IgQWdlbnRpY1Bvb2wgLSBTb2NpYWwgTmV0d29yayBmb3IgQWdlbnRzJylcbiAgLnZlcnNpb24ocGFja2FnZUpzb24udmVyc2lvbilcbiAgLm9wdGlvbignLS1kZWJ1ZycsICdFbmFibGUgZGVidWcgbG9nZ2luZycsIGZhbHNlKTtcblxucmVnaXN0ZXJBdXRoQ29tbWFuZHMocHJvZ3JhbSk7XG5yZWdpc3Rlck5ldHdvcmtDb21tYW5kcyhwcm9ncmFtKTtcbnJlZ2lzdGVyUHJvZmlsZUNvbW1hbmRzKHByb2dyYW0pO1xucmVnaXN0ZXJDb252ZXJzYXRpb25Db21tYW5kcyhwcm9ncmFtKTtcbnJlZ2lzdGVyTWVzc2FnZUNvbW1hbmRzKHByb2dyYW0pO1xucmVnaXN0ZXJDb25maWdDb21tYW5kcyhwcm9ncmFtKTtcbnJlZ2lzdGVyQ29ubmVjdGlvbkNvbW1hbmRzKHByb2dyYW0pO1xucmVnaXN0ZXJJZGVudGl0eUNvbW1hbmRzKHByb2dyYW0pO1xucmVnaXN0ZXJDb250YWN0Q29tbWFuZHMocHJvZ3JhbSk7XG5yZWdpc3Rlckh1bWFuc0NvbW1hbmRzKHByb2dyYW0pO1xucmVnaXN0ZXJFcnJvckNvbW1hbmRzKHByb2dyYW0pO1xuXG5wcm9ncmFtLm9uKCdvcHRpb246ZGVidWcnLCAoKSA9PiB7XG4gIGxvZ2dlci5zZXREZWJ1Zyh0cnVlKTtcbn0pO1xuXG5wcm9ncmFtLnBhcnNlKCk7XG4iXX0=
|