agenticpool 1.0.16 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api/ApiClient.js
CHANGED
|
@@ -62,6 +62,9 @@ class ApiClient {
|
|
|
62
62
|
return this.parseResponse(response.data);
|
|
63
63
|
}
|
|
64
64
|
catch (e) {
|
|
65
|
+
if (e.response && e.response.data) {
|
|
66
|
+
return this.parseResponse(e.response.data);
|
|
67
|
+
}
|
|
65
68
|
return { success: false, error: { code: 'REQUEST_FAILED', message: e instanceof Error ? e.message : 'Unknown error' } };
|
|
66
69
|
}
|
|
67
70
|
}
|
|
@@ -76,6 +79,9 @@ class ApiClient {
|
|
|
76
79
|
return this.parseResponse(response.data);
|
|
77
80
|
}
|
|
78
81
|
catch (e) {
|
|
82
|
+
if (e.response && e.response.data) {
|
|
83
|
+
return this.parseResponse(e.response.data);
|
|
84
|
+
}
|
|
79
85
|
return { success: false, error: { code: 'REQUEST_FAILED', message: e instanceof Error ? e.message : 'Unknown error' } };
|
|
80
86
|
}
|
|
81
87
|
}
|
|
@@ -90,6 +96,9 @@ class ApiClient {
|
|
|
90
96
|
return this.parseResponse(response.data);
|
|
91
97
|
}
|
|
92
98
|
catch (e) {
|
|
99
|
+
if (e.response && e.response.data) {
|
|
100
|
+
return this.parseResponse(e.response.data);
|
|
101
|
+
}
|
|
93
102
|
return { success: false, error: { code: 'REQUEST_FAILED', message: e instanceof Error ? e.message : 'Unknown error' } };
|
|
94
103
|
}
|
|
95
104
|
}
|
|
@@ -100,6 +109,9 @@ class ApiClient {
|
|
|
100
109
|
return this.parseResponse(response.data);
|
|
101
110
|
}
|
|
102
111
|
catch (e) {
|
|
112
|
+
if (e.response && e.response.data) {
|
|
113
|
+
return this.parseResponse(e.response.data);
|
|
114
|
+
}
|
|
103
115
|
return { success: false, error: { code: 'REQUEST_FAILED', message: e instanceof Error ? e.message : 'Unknown error' } };
|
|
104
116
|
}
|
|
105
117
|
}
|
|
@@ -145,4 +157,4 @@ class ApiClient {
|
|
|
145
157
|
}
|
|
146
158
|
}
|
|
147
159
|
exports.ApiClient = ApiClient;
|
|
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
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9BcGlDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQWlFO0FBQ2pFLHNDQUF3RDtBQUN4RCw0Q0FBeUM7QUFDekMsNENBQThDO0FBYzlDLE1BQWEsU0FBUztJQUlwQixZQUFZLE9BQWU7UUFGbkIsV0FBTSxHQUFvQixNQUFNLENBQUM7UUFHdkMsZUFBTSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7WUFDekIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QyxlQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixNQUFNLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksTUFBTSxDQUFDLE1BQU07Z0JBQUUsZUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RSxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVILHVDQUF1QztRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNuQyxRQUFRLENBQUMsRUFBRTtZQUNULGVBQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lB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bmZpZyB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIsIEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXInO1xuaW1wb3J0IHsgZW5jb2RlLCBkZWNvZGUgfSBmcm9tICcuLi9kYXRhbW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUVycm9yIHtcbiAgY29kZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZTxUPiB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGRhdGE/OiBUO1xuICBlcnJvcj86IEFwaUVycm9yO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpQ2xpZW50IHtcbiAgcHJpdmF0ZSBjbGllbnQ6IEF4aW9zSW5zdGFuY2U7XG4gIHByaXZhdGUgZm9ybWF0OiAndG9vbicgfCAnanNvbicgPSAndG9vbic7XG5cbiAgY29uc3RydWN0b3IoYmFzZVVybDogc3RyaW5nKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBJbml0aWFsaXppbmcgQXBpQ2xpZW50IHdpdGggYmFzZVVybDogJHtiYXNlVXJsfWApO1xuICAgIHRoaXMuY2xpZW50ID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGJhc2VVcmwsXG4gICAgICB0aW1lb3V0OiAzMDAwMFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIHJlcXVlc3QgaW50ZXJjZXB0b3IgZm9yIGxvZ2dpbmdcbiAgICB0aGlzLmNsaWVudC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoY29uZmlnID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlcXVlc3Q6ICR7Y29uZmlnLm1ldGhvZD8udG9VcHBlckNhc2UoKX0gJHtjb25maWcudXJsfWApO1xuICAgICAgaWYgKGNvbmZpZy5wYXJhbXMpIGxvZ2dlci5kZWJ1ZyhgUGFyYW1zOiAke0pTT04uc3RyaW5naWZ5KGNvbmZpZy5wYXJhbXMpfWApO1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9KTtcblxuICAgIC8vIEFkZCByZXNwb25zZSBpbnRlcmNlcHRvciBmb3IgbG9nZ2luZ1xuICAgIHRoaXMuY2xpZW50LmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UoXG4gICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlc3BvbnNlOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5jb25maWcudXJsfWApO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICBsb2dnZXIuZGVidWcoYEFQSSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2UpIHtcbiAgICAgICAgICBsb2dnZXIuZGVidWcoYFN0YXR1czogJHtlcnJvci5yZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKGBEYXRhOiAke0pTT04uc3RyaW5naWZ5KGVycm9yLnJlc3BvbnNlLmRhdGEpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGUoKTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgICBsb2dnZXIuZGVidWcoJ0FwaUNsaWVudC5jcmVhdGUoKSBjYWxsZWQnKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldEdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnLmFwaVVybCk7XG4gICAgY2xpZW50LmZvcm1hdCA9IGNvbmZpZy5kZWZhdWx0Rm9ybWF0O1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICBzZXRBdXRoVG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIGxvZ2dlci5kZWJ1ZygnU2V0dGluZyBBdXRoIFRva2VuJyk7XG4gICAgdGhpcy5jbGllbnQuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICB9XG5cbiAgY2xlYXJBdXRoVG9rZW4oKTogdm9pZCB7XG4gICAgbG9nZ2VyLmRlYnVnKCdDbGVhcmluZyBBdXRoIFRva2VuJyk7XG4gICAgZGVsZXRlIHRoaXMuY2xpZW50LmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydBdXRob3JpemF0aW9uJ107XG4gIH1cblxuICBzZXRGb3JtYXQoZm9ybWF0OiAndG9vbicgfCAnanNvbicpOiB2b2lkIHtcbiAgICBsb2dnZXIuZGVidWcoYFNldHRpbmcgZm9ybWF0IHRvOiAke2Zvcm1hdH1gKTtcbiAgICB0aGlzLmZvcm1hdCA9IGZvcm1hdDtcbiAgfVxuXG4gIGFzeW5jIGdldDxUPihwYXRoOiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBwYXJhbXM6IHsgLi4ucGFyYW1zLCBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5yZXNwb25zZSAmJiBlLnJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VSZXNwb25zZTxUPihlLnJlc3BvbnNlLmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcG9zdDxUPihwYXRoOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmZvcm1hdCA9PT0gJ3Rvb24nICYmIGRhdGEgPyBlbmNvZGUoZGF0YSkgOiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBjb25zdCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHsgXG4gICAgICBwYXJhbXM6IHsgZm9ybWF0OiB0aGlzLmZvcm1hdCB9LFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nIH1cbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QocGF0aCwgYm9keSwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5yZXNwb25zZSAmJiBlLnJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VSZXNwb25zZTxUPihlLnJlc3BvbnNlLmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHV0PFQ+KHBhdGg6IHN0cmluZywgZGF0YT86IHVua25vd24pOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgYm9keSA9IHRoaXMuZm9ybWF0ID09PSAndG9vbicgJiYgZGF0YSA/IGVuY29kZShkYXRhKSA6IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBcbiAgICAgIHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0sXG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAndGV4dC9wbGFpbicgfVxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucHV0KHBhdGgsIGJvZHksIGNvbmZpZyk7XG4gICAgICByZXR1cm4gdGhpcy5wYXJzZVJlc3BvbnNlPFQ+KHJlc3BvbnNlLmRhdGEpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUucmVzcG9uc2UgJiYgZS5yZXNwb25zZS5kYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4oZS5yZXNwb25zZS5kYXRhKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUkVRVUVTVF9GQUlMRUQnLCBtZXNzYWdlOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicgfSB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZTxUPihwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7IHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5kZWxldGUocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5yZXNwb25zZSAmJiBlLnJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VSZXNwb25zZTxUPihlLnJlc3BvbnNlLmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVJlc3BvbnNlPFQ+KGRhdGE6IHN0cmluZyB8IG9iamVjdCk6IEFwaVJlc3BvbnNlPFQ+IHtcbiAgICBsb2dnZXIuZGVidWcoYFBhcnNpbmcgcmVzcG9uc2UgZGF0YSAodHlwZTogJHt0eXBlb2YgZGF0YX0pYCk7XG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGRhdGEgYXMgQXBpUmVzcG9uc2U8VD47XG4gICAgfVxuXG4gICAgY29uc3QgdHJpbW1lZCA9IGRhdGEudHJpbSgpO1xuXG4gICAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgneycpIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnWycpKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0cmltbWVkKSBhcyBBcGlSZXNwb25zZTxUPjtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IHsgY29kZTogJ1BBUlNFX0VSUk9SJywgbWVzc2FnZTogJ0ZhaWxlZCB0byBwYXJzZSBKU09OIHJlc3BvbnNlJyB9IH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgnPCcpIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnPCFET0NUWVBFJykpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUEFSU0VfRVJST1InLCBtZXNzYWdlOiAnUmVjZWl2ZWQgSFRNTCBpbnN0ZWFkIG9mIEFQSSByZXNwb25zZScgfSB9O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZGVjb2RlPEFwaVJlc3BvbnNlPFQ+Pih0cmltbWVkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRyaW1tZWQpIGFzIEFwaVJlc3BvbnNlPFQ+O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUEFSU0VfRVJST1InLCBtZXNzYWdlOiAnRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlJyB9IH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVwb3J0RXJyb3IoZXJyb3JDb250ZXh0OiB7XG4gICAgY29tbWFuZDogc3RyaW5nO1xuICAgIGVycm9yQ29kZTogc3RyaW5nO1xuICAgIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIHN0YWNrVHJhY2U/OiBzdHJpbmc7XG4gICAgY2xpVmVyc2lvbjogc3RyaW5nO1xuICAgIG5vZGVWZXJzaW9uOiBzdHJpbmc7XG4gICAgb3M6IHN0cmluZztcbiAgICBhcmNoOiBzdHJpbmc7XG4gICAgYWdlbnRNb2RlbD86IHN0cmluZztcbiAgICBhZ2VudE5hbWU/OiBzdHJpbmc7XG4gICAgdGFncz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNhdmVkRm9ybWF0ID0gdGhpcy5mb3JtYXQ7XG4gICAgICB0aGlzLmZvcm1hdCA9ICdqc29uJztcbiAgICAgIGF3YWl0IHRoaXMucG9zdCgnL3YxL2Vycm9ycycsIGVycm9yQ29udGV4dCk7XG4gICAgICB0aGlzLmZvcm1hdCA9IHNhdmVkRm9ybWF0O1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2lsZW50IOKAlCBuZXZlciBibG9jayBDTEkgZm9yIGVycm9yIHJlcG9ydGluZ1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -7,6 +7,7 @@ export interface AuthResult {
|
|
|
7
7
|
}
|
|
8
8
|
export declare class AuthHelper {
|
|
9
9
|
static ensureAuthenticated(networkId: string, reason?: string): Promise<AuthResult>;
|
|
10
|
+
private static handleAuthResponse;
|
|
10
11
|
static getApiClient(): Promise<ApiClient>;
|
|
11
12
|
static getAuthenticatedClient(networkId: string, reason?: string): Promise<ApiClient>;
|
|
12
13
|
static getFirstAuthenticatedClient(): Promise<{
|
package/dist/auth/AuthHelper.js
CHANGED
|
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.AuthHelper = void 0;
|
|
40
|
+
const logger_1 = require("../utils/logger");
|
|
40
41
|
const path = __importStar(require("path"));
|
|
41
42
|
const os = __importStar(require("os"));
|
|
42
43
|
const fs = __importStar(require("fs-extra"));
|
|
@@ -114,23 +115,53 @@ class AuthHelper {
|
|
|
114
115
|
reason
|
|
115
116
|
});
|
|
116
117
|
if (registerResponse.success && registerResponse.data) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
118
|
+
return this.handleAuthResponse(networkId, keys, registerResponse.data, client, true);
|
|
119
|
+
}
|
|
120
|
+
// Fallback: If already registered (or any 400-like error), try login instead
|
|
121
|
+
const errorMessage = registerResponse.error?.message || '';
|
|
122
|
+
const isAlreadyRegistered = errorMessage.toLowerCase().includes('already registered');
|
|
123
|
+
if (isAlreadyRegistered || !registerResponse.success) {
|
|
124
|
+
console.log(colors_1.default.gray(` Registration failed (likely already registered). Attempting login for ${networkId}...`));
|
|
125
|
+
const loginResponse = await client.post('/v1/auth/login', {
|
|
126
|
+
networkId,
|
|
123
127
|
publicToken: keys.publicToken,
|
|
124
128
|
privateKey: keys.privateKey,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
reason
|
|
130
|
+
});
|
|
131
|
+
if (loginResponse.success && loginResponse.data) {
|
|
132
|
+
return this.handleAuthResponse(networkId, keys, loginResponse.data, client, false);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
throw new Error(registerResponse.error?.message || 'Failed to authenticate');
|
|
136
|
+
}
|
|
137
|
+
static async handleAuthResponse(networkId, keys, responseData, client, isNewUser) {
|
|
138
|
+
// Search for JWT in different possible locations due to TOON decoding variations
|
|
139
|
+
const jwt = responseData.jwt ||
|
|
140
|
+
(responseData.data && responseData.data.jwt) ||
|
|
141
|
+
(responseData.tokens && responseData.tokens.jwt) ||
|
|
142
|
+
(responseData.data && responseData.data.tokens && responseData.data.tokens.jwt);
|
|
143
|
+
const expiresAt = responseData.expiresAt ||
|
|
144
|
+
(responseData.data && responseData.data.expiresAt) ||
|
|
145
|
+
(responseData.tokens && responseData.tokens.expiresAt);
|
|
146
|
+
if (!jwt) {
|
|
147
|
+
logger_1.logger.debug('Auth Response Data:', JSON.stringify(responseData));
|
|
148
|
+
throw new Error('Authentication succeeded but no JWT found in response');
|
|
149
|
+
}
|
|
150
|
+
const newCreds = {
|
|
151
|
+
publicToken: keys.publicToken,
|
|
152
|
+
privateKey: keys.privateKey,
|
|
153
|
+
jwt: jwt,
|
|
154
|
+
expiresAt: expiresAt || (Date.now() + 24 * 3600 * 1000) // Default 24h if missing
|
|
155
|
+
};
|
|
156
|
+
await ConfigManager_1.configManager.saveCredentials(networkId, newCreds);
|
|
157
|
+
client.setAuthToken(jwt);
|
|
158
|
+
if (isNewUser) {
|
|
130
159
|
console.log(colors_1.default.green(` ✓ Auto-registered in network: ${networkId}`));
|
|
131
|
-
return { client, credentials: newCreds, isNewUser: true };
|
|
132
160
|
}
|
|
133
|
-
|
|
161
|
+
else {
|
|
162
|
+
console.log(colors_1.default.green(` ✓ Logged into network: ${networkId}`));
|
|
163
|
+
}
|
|
164
|
+
return { client, credentials: newCreds, isNewUser };
|
|
134
165
|
}
|
|
135
166
|
static async getApiClient() {
|
|
136
167
|
const config = await ConfigManager_1.configManager.getGlobalConfig();
|
|
@@ -163,4 +194,4 @@ class AuthHelper {
|
|
|
163
194
|
}
|
|
164
195
|
}
|
|
165
196
|
exports.AuthHelper = AuthHelper;
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL0F1dGhIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBQzdCLHVDQUF5QjtBQUN6Qiw2Q0FBK0I7QUFDL0IsZ0RBQTZDO0FBQzdDLDJEQUE0RTtBQUM1RSw2REFBb0M7QUFRcEMsTUFBYSxVQUFVO0lBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxNQUFlO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sNkJBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLHFCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sYUFBYSxHQUFHLE1BQU0sNkJBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLElBQUksQ0FBQzt3QkFDSCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ2xDLFNBQVM7NEJBQ1QsV0FBVyxFQUFFLGFBQWEs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LCtFQUErRSxDQUFDLENBQUM7SUFDbkcsQ0FBQztDQUNGO0FBNUlELGdDQTRJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBBcGlDbGllbnQgfSBmcm9tICcuLi9hcGkvQXBpQ2xpZW50JztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIsIE5ldHdvcmtDcmVkZW50aWFscyB9IGZyb20gJy4uL2NvbmZpZy9Db25maWdNYW5hZ2VyJztcbmltcG9ydCBjaGFsayBmcm9tICcuLi91dGlscy9jb2xvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhSZXN1bHQge1xuICBjbGllbnQ6IEFwaUNsaWVudDtcbiAgY3JlZGVudGlhbHM6IE5ldHdvcmtDcmVkZW50aWFscztcbiAgaXNOZXdVc2VyOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQXV0aEhlbHBlciB7XG4gIHN0YXRpYyBhc3luYyBlbnN1cmVBdXRoZW50aWNhdGVkKG5ldHdvcmtJZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPEF1dGhSZXN1bHQ+IHtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldEdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnLmFwaVVybCk7XG4gICAgY2xpZW50LnNldEZvcm1hdChjb25maWcuZGVmYXVsdEZvcm1hdCk7XG5cbiAgICBjb25zdCBleGlzdGluZ0NyZWRzID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXRDcmVkZW50aWFscyhuZXR3b3JrSWQpO1xuICAgIFxuICAgIGlmIChleGlzdGluZ0NyZWRzICYmIGV4aXN0aW5nQ3JlZHMuand0ICYmIGV4aXN0aW5nQ3JlZHMuZXhwaXJlc0F0KSB7XG4gICAgICBjb25zdCBidWZmZXJUaW1lID0gNSAqIDYwICogMTAwMDtcbiAgICAgIGlmIChEYXRlLm5vdygpIDwgKGV4aXN0aW5nQ3JlZHMuZXhwaXJlc0F0IC0gYnVmZmVyVGltZSkpIHtcbiAgICAgICAgY2xpZW50LnNldEF1dGhUb2tlbihleGlzdGluZ0NyZWRzLmp3dCk7XG4gICAgICAgIGlmIChyZWFzb24pIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgY2xpZW50LnBvc3QoJy92MS9hdXRoL2xvZ2luJywge1xuICAgICAgICAgICAgICBuZXR3b3JrSWQsXG4gICAgICAgICAgICAgIHB1YmxpY1Rva2VuOiBleGlzdGluZ0NyZWRzLnB1YmxpY1Rva2VuLFxuICAgICAgICAgICAgICBwcml2YXRlS2V5OiBleGlzdGluZ0NyZWRzLnByaXZhdGVLZXksXG4gICAgICAgICAgICAgIHJlYXNvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gSWdub3JlIGJhY2tncm91bmQgcmVhc29uIHVwZGF0ZSBmYWlsdXJlc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBjbGllbnQsIGNyZWRlbnRpYWxzOiBleGlzdGluZ0NyZWRzLCBpc05ld1VzZXI6IGZhbHNlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0aW5nQ3JlZHMgJiYgZXhpc3RpbmdDcmVkcy5wcml2YXRlS2V5KSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KGAgIEF0dGVtcHRpbmcgbG9naW4gZm9yICR7bmV0d29ya0lkfS4uLmApKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8eyBqd3Q6IHN0cmluZzsgZXhwaXJlc0F0OiBudW1iZXI7IHB1YmxpY1Rva2VuOiBzdHJpbmcgfT4oJy92MS9hdXRoL2xvZ2luJywge1xuICAgICAgICAgIG5ldHdvcmtJZCxcbiAgICAgICAgICBwdWJsaWNUb2tlbjogZXhpc3RpbmdDcmVkcy5wdWJsaWNUb2tlbixcbiAgICAgICAgICBwcml2YXRlS2V5OiBleGlzdGluZ0NyZWRzLnByaXZhdGVLZXksXG4gICAgICAgICAgcmVhc29uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkQ3JlZHM6IE5ldHdvcmtDcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nQ3JlZHMsXG4gICAgICAgICAgICBqd3Q6IHJlc3BvbnNlLmRhdGEuand0LFxuICAgICAgICAgICAgZXhwaXJlc0F0OiByZXNwb25zZS5kYXRhLmV4cGlyZXNBdFxuICAgICAgICAgIH07XG4gICAgICAgICAgXG4gICAgICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlQ3JlZGVudGlhbHMobmV0d29ya0lkLCB1cGRhdGVkQ3JlZHMpO1xuICAgICAgICAgIGNsaWVudC5zZXRBdXRoVG9rZW4ocmVzcG9uc2UuZGF0YS5qd3QpO1xuICAgICAgICAgIFxuICAgICAgICAgIHJldHVybiB7IGNsaWVudCwgY3JlZGVudGlhbHM6IHVwZGF0ZWRDcmVkcywgaXNOZXdVc2VyOiBmYWxzZSB9O1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBMb2dpbiBmYWlsZWQsIHdpbGwgdHJ5IHRvIHJlZ2lzdGVyXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHJ5IHRvIHVzZSBnbG9iYWwgaWRlbnRpdHkgaWYgaXQgZXhpc3RzXG4gICAgY29uc3QgZGVmYXVsdElkZW50aXR5ID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXREZWZhdWx0SWRlbnRpdHkoKTtcbiAgICBsZXQga2V5cyA9IGRlZmF1bHRJZGVudGl0eTtcblxuICAgIGlmICgha2V5cykge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICBHZW5lcmF0aW5nIG5ldyBpZGVudGl0eSBrZXlzLi4uJykpO1xuICAgICAgY29uc3Qga2V5c1Jlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDx7IHB1YmxpY1Rva2VuOiBzdHJpbmc7IHByaXZhdGVLZXk6IHN0cmluZyB9PignL3YxL2F1dGgvZ2VuZXJhdGUta2V5cycpO1xuICAgICAgXG4gICAgICBpZiAoIWtleXNSZXNwb25zZS5zdWNjZXNzIHx8ICFrZXlzUmVzcG9uc2UuZGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBnZW5lcmF0ZSBrZXlzJyk7XG4gICAgICB9XG5cbiAgICAgIGtleXMgPSBrZXlzUmVzcG9uc2UuZGF0YTtcbiAgICAgIC8vIFNhdmUgYXMgZGVmYXVsdCBmb3IgZnV0dXJlIHVzZVxuICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlRGVmYXVsdElkZW50aXR5KGtleXMpO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoYCAgUmVnaXN0ZXJpbmcgaW4gbmV0d29yayAke25ldHdvcmtJZH0uLi5gKSk7XG5cbiAgICBjb25zdCByZWdpc3RlclJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8YW55PignL3YxL2F1dGgvcmVnaXN0ZXInLCB7XG4gICAgICBuZXR3b3JrSWQsXG4gICAgICBwdWJsaWNUb2tlbjoga2V5cy5wdWJsaWNUb2tlbixcbiAgICAgIHByaXZhdGVLZXk6IGtleXMucHJpdmF0ZUtleSxcbiAgICAgIHJlYXNvblxuICAgIH0pO1xuXG4gICAgaWYgKHJlZ2lzdGVyUmVzcG9uc2Uuc3VjY2VzcyAmJiByZWdpc3RlclJlc3BvbnNlLmRhdGEpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSByZWdpc3RlclJlc3BvbnNlLmRhdGE7XG4gICAgICBjb25zdCB0b2tlbnMgPSBkYXRhLnRva2VucyB8fCBkYXRhOyAvLyBIYW5kbGUgYm90aCBuZXN0ZWQgYW5kIGZsYXQgcmVzcG9uc2VzXG4gICAgICBcbiAgICAgIGlmICghdG9rZW5zLmp3dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlcnZlciByZXR1cm5lZCBzdWNjZXNzIGJ1dCBubyBKV1QgZm91bmQgaW4gcmVzcG9uc2UnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3Q3JlZHM6IE5ldHdvcmtDcmVkZW50aWFscyA9IHtcbiAgICAgICAgcHVibGljVG9rZW46IGtleXMucHVibGljVG9rZW4sXG4gICAgICAgIHByaXZhdGVLZXk6IGtleXMucHJpdmF0ZUtleSxcbiAgICAgICAgand0OiB0b2tlbnMuand0LFxuICAgICAgICBleHBpcmVzQXQ6IHRva2Vucy5leHBpcmVzQXRcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuc2F2ZUNyZWRlbnRpYWxzKG5ldHdvcmtJZCwgbmV3Q3JlZHMpO1xuICAgICAgY2xpZW50LnNldEF1dGhUb2tlbih0b2tlbnMuand0KTtcblxuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYCAg4pyTIEF1dG8tcmVnaXN0ZXJlZCBpbiBuZXR3b3JrOiAke25ldHdvcmtJZH1gKSk7XG4gICAgICByZXR1cm4geyBjbGllbnQsIGNyZWRlbnRpYWxzOiBuZXdDcmVkcywgaXNOZXdVc2VyOiB0cnVlIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gYXV0aGVudGljYXRlJyk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0QXBpQ2xpZW50KCk6IFByb21pc2U8QXBpQ2xpZW50PiB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXRHbG9iYWxDb25maWcoKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQXBpQ2xpZW50KGNvbmZpZy5hcGlVcmwpO1xuICAgIGNsaWVudC5zZXRGb3JtYXQoY29uZmlnLmRlZmF1bHRGb3JtYXQpO1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0QXV0aGVudGljYXRlZENsaWVudChuZXR3b3JrSWQ6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmVuc3VyZUF1dGhlbnRpY2F0ZWQobmV0d29ya0lkLCByZWFzb24pO1xuICAgIHJldHVybiByZXN1bHQuY2xpZW50O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEZpcnN0QXV0aGVudGljYXRlZENsaWVudCgpOiBQcm9taXNlPHsgY2xpZW50OiBBcGlDbGllbnQ7IG5ldHdvcmtJZDogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjcmVkZW50aWFsc0RpciA9IHBhdGguam9pbihvcy5ob21lZGlyKCksICcuYWdlbnRpY3Bvb2wnLCAnY3JlZGVudGlhbHMnKTtcbiAgICBcbiAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKGNyZWRlbnRpYWxzRGlyKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc3RvcmVkIGNyZWRlbnRpYWxzIGZvdW5kLiBSdW4gXCJhZ2VudGljcG9vbCBhdXRoIGNvbm5lY3QgPG5ldHdvcmtJZD5cIiBmaXJzdC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIoY3JlZGVudGlhbHNEaXIpO1xuICAgIGNvbnN0IGpzb25GaWxlcyA9IGZpbGVzLmZpbHRlcihmID0+IGYuZW5kc1dpdGgoJy5qc29uJykpO1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGpzb25GaWxlcykge1xuICAgICAgY29uc3QgbmV0d29ya0lkID0gZmlsZS5yZXBsYWNlKCcuanNvbicsICcnKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZW5zdXJlQXV0aGVudGljYXRlZChuZXR3b3JrSWQpO1xuICAgICAgICByZXR1cm4geyBjbGllbnQ6IHJlc3VsdC5jbGllbnQsIG5ldHdvcmtJZCB9O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignTm8gdmFsaWQgY3JlZGVudGlhbHMgZm91bmQuIFJ1biBcImFnZW50aWNwb29sIGF1dGggY29ubmVjdCA8bmV0d29ya0lkPlwiIGZpcnN0LicpO1xuICB9XG59XG4iXX0=
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL0F1dGhIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQXlDO0FBQ3pDLDJDQUE2QjtBQUM3Qix1Q0FBeUI7QUFDekIsNkNBQStCO0FBQy9CLGdEQUE2QztBQUM3QywyREFBNEU7QUFDNUUsNkRBQW9DO0FBUXBDLE1BQWEsVUFBVTtJQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFNBQWlCLEVBQUUsTUFBZTtRQUNqRSxNQUFNLE1BQU0sR0FBRyxNQUFNLDZCQUFhLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV2QyxNQUFNLGFBQWEsR0FBRyxNQUFNLDZCQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBFLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxNQUFNLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxJQUFJLENBQUM7d0JBQ0gsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFOzRCQUNsQyxTQUFTOzRCQUNULFdB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LElBQUksS0FBSyxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDcEcsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXpELEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDOUMsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxTQUFTO1lBQ1gsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLCtFQUErRSxDQUFDLENBQUM7SUFDbkcsQ0FBQztDQUNGO0FBckxELGdDQXFMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlcic7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgQXBpQ2xpZW50IH0gZnJvbSAnLi4vYXBpL0FwaUNsaWVudCc7XG5pbXBvcnQgeyBjb25maWdNYW5hZ2VyLCBOZXR3b3JrQ3JlZGVudGlhbHMgfSBmcm9tICcuLi9jb25maWcvQ29uZmlnTWFuYWdlcic7XG5pbXBvcnQgY2hhbGsgZnJvbSAnLi4vdXRpbHMvY29sb3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoUmVzdWx0IHtcbiAgY2xpZW50OiBBcGlDbGllbnQ7XG4gIGNyZWRlbnRpYWxzOiBOZXR3b3JrQ3JlZGVudGlhbHM7XG4gIGlzTmV3VXNlcjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhIZWxwZXIge1xuICBzdGF0aWMgYXN5bmMgZW5zdXJlQXV0aGVudGljYXRlZChuZXR3b3JrSWQ6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKTogUHJvbWlzZTxBdXRoUmVzdWx0PiB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXRHbG9iYWxDb25maWcoKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQXBpQ2xpZW50KGNvbmZpZy5hcGlVcmwpO1xuICAgIGNsaWVudC5zZXRGb3JtYXQoY29uZmlnLmRlZmF1bHRGb3JtYXQpO1xuXG4gICAgY29uc3QgZXhpc3RpbmdDcmVkcyA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0Q3JlZGVudGlhbHMobmV0d29ya0lkKTtcbiAgICBcbiAgICBpZiAoZXhpc3RpbmdDcmVkcyAmJiBleGlzdGluZ0NyZWRzLmp3dCAmJiBleGlzdGluZ0NyZWRzLmV4cGlyZXNBdCkge1xuICAgICAgY29uc3QgYnVmZmVyVGltZSA9IDUgKiA2MCAqIDEwMDA7XG4gICAgICBpZiAoRGF0ZS5ub3coKSA8IChleGlzdGluZ0NyZWRzLmV4cGlyZXNBdCAtIGJ1ZmZlclRpbWUpKSB7XG4gICAgICAgIGNsaWVudC5zZXRBdXRoVG9rZW4oZXhpc3RpbmdDcmVkcy5qd3QpO1xuICAgICAgICBpZiAocmVhc29uKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5wb3N0KCcvdjEvYXV0aC9sb2dpbicsIHtcbiAgICAgICAgICAgICAgbmV0d29ya0lkLFxuICAgICAgICAgICAgICBwdWJsaWNUb2tlbjogZXhpc3RpbmdDcmVkcy5wdWJsaWNUb2tlbixcbiAgICAgICAgICAgICAgcHJpdmF0ZUtleTogZXhpc3RpbmdDcmVkcy5wcml2YXRlS2V5LFxuICAgICAgICAgICAgICByZWFzb25cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBiYWNrZ3JvdW5kIHJlYXNvbiB1cGRhdGUgZmFpbHVyZXNcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY2xpZW50LCBjcmVkZW50aWFsczogZXhpc3RpbmdDcmVkcywgaXNOZXdVc2VyOiBmYWxzZSB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChleGlzdGluZ0NyZWRzICYmIGV4aXN0aW5nQ3JlZHMucHJpdmF0ZUtleSkge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheShgICBBdHRlbXB0aW5nIGxvZ2luIGZvciAke25ldHdvcmtJZH0uLi5gKSk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PHsgand0OiBzdHJpbmc7IGV4cGlyZXNBdDogbnVtYmVyOyBwdWJsaWNUb2tlbjogc3RyaW5nIH0+KCcvdjEvYXV0aC9sb2dpbicsIHtcbiAgICAgICAgICBuZXR3b3JrSWQsXG4gICAgICAgICAgcHVibGljVG9rZW46IGV4aXN0aW5nQ3JlZHMucHVibGljVG9rZW4sXG4gICAgICAgICAgcHJpdmF0ZUtleTogZXhpc3RpbmdDcmVkcy5wcml2YXRlS2V5LFxuICAgICAgICAgIHJlYXNvblxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZENyZWRzOiBOZXR3b3JrQ3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICAuLi5leGlzdGluZ0NyZWRzLFxuICAgICAgICAgICAgand0OiByZXNwb25zZS5kYXRhLmp3dCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogcmVzcG9uc2UuZGF0YS5leHBpcmVzQXRcbiAgICAgICAgICB9O1xuICAgICAgICAgIFxuICAgICAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuc2F2ZUNyZWRlbnRpYWxzKG5ldHdvcmtJZCwgdXBkYXRlZENyZWRzKTtcbiAgICAgICAgICBjbGllbnQuc2V0QXV0aFRva2VuKHJlc3BvbnNlLmRhdGEuand0KTtcbiAgICAgICAgICBcbiAgICAgICAgICByZXR1cm4geyBjbGllbnQsIGNyZWRlbnRpYWxzOiB1cGRhdGVkQ3JlZHMsIGlzTmV3VXNlcjogZmFsc2UgfTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gTG9naW4gZmFpbGVkLCB3aWxsIHRyeSB0byByZWdpc3RlclxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyeSB0byB1c2UgZ2xvYmFsIGlkZW50aXR5IGlmIGl0IGV4aXN0c1xuICAgIGNvbnN0IGRlZmF1bHRJZGVudGl0eSA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0RGVmYXVsdElkZW50aXR5KCk7XG4gICAgbGV0IGtleXMgPSBkZWZhdWx0SWRlbnRpdHk7XG5cbiAgICBpZiAoIWtleXMpIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgR2VuZXJhdGluZyBuZXcgaWRlbnRpdHkga2V5cy4uLicpKTtcbiAgICAgIGNvbnN0IGtleXNSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8eyBwdWJsaWNUb2tlbjogc3RyaW5nOyBwcml2YXRlS2V5OiBzdHJpbmcgfT4oJy92MS9hdXRoL2dlbmVyYXRlLWtleXMnKTtcbiAgICAgIFxuICAgICAgaWYgKCFrZXlzUmVzcG9uc2Uuc3VjY2VzcyB8fCAha2V5c1Jlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2VuZXJhdGUga2V5cycpO1xuICAgICAgfVxuXG4gICAgICBrZXlzID0ga2V5c1Jlc3BvbnNlLmRhdGE7XG4gICAgICAvLyBTYXZlIGFzIGRlZmF1bHQgZm9yIGZ1dHVyZSB1c2VcbiAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuc2F2ZURlZmF1bHRJZGVudGl0eShrZXlzKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KGAgIFJlZ2lzdGVyaW5nIGluIG5ldHdvcmsgJHtuZXR3b3JrSWR9Li4uYCkpO1xuXG4gICAgY29uc3QgcmVnaXN0ZXJSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PGFueT4oJy92MS9hdXRoL3JlZ2lzdGVyJywge1xuICAgICAgbmV0d29ya0lkLFxuICAgICAgcHVibGljVG9rZW46IGtleXMucHVibGljVG9rZW4sXG4gICAgICBwcml2YXRlS2V5OiBrZXlzLnByaXZhdGVLZXksXG4gICAgICByZWFzb25cbiAgICB9KTtcblxuICAgIGlmIChyZWdpc3RlclJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVnaXN0ZXJSZXNwb25zZS5kYXRhKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVBdXRoUmVzcG9uc2UobmV0d29ya0lkLCBrZXlzLCByZWdpc3RlclJlc3BvbnNlLmRhdGEsIGNsaWVudCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2s6IElmIGFscmVhZHkgcmVnaXN0ZXJlZCAob3IgYW55IDQwMC1saWtlIGVycm9yKSwgdHJ5IGxvZ2luIGluc3RlYWRcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSByZWdpc3RlclJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICcnO1xuICAgIGNvbnN0IGlzQWxyZWFkeVJlZ2lzdGVyZWQgPSBlcnJvck1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgXG4gICAgaWYgKGlzQWxyZWFkeVJlZ2lzdGVyZWQgfHwgIXJlZ2lzdGVyUmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheShgICBSZWdpc3RyYXRpb24gZmFpbGVkIChsaWtlbHkgYWxyZWFkeSByZWdpc3RlcmVkKS4gQXR0ZW1wdGluZyBsb2dpbiBmb3IgJHtuZXR3b3JrSWR9Li4uYCkpO1xuICAgICAgY29uc3QgbG9naW5SZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PGFueT4oJy92MS9hdXRoL2xvZ2luJywge1xuICAgICAgICBuZXR3b3JrSWQsXG4gICAgICAgIHB1YmxpY1Rva2VuOiBrZXlzLnB1YmxpY1Rva2VuLFxuICAgICAgICBwcml2YXRlS2V5OiBrZXlzLnByaXZhdGVLZXksXG4gICAgICAgIHJlYXNvblxuICAgICAgfSk7XG5cbiAgICAgIGlmIChsb2dpblJlc3BvbnNlLnN1Y2Nlc3MgJiYgbG9naW5SZXNwb25zZS5kYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUF1dGhSZXNwb25zZShuZXR3b3JrSWQsIGtleXMsIGxvZ2luUmVzcG9uc2UuZGF0YSwgY2xpZW50LCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKHJlZ2lzdGVyUmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBhdXRoZW50aWNhdGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFzeW5jIGhhbmRsZUF1dGhSZXNwb25zZShcbiAgICBuZXR3b3JrSWQ6IHN0cmluZywgXG4gICAga2V5czogeyBwdWJsaWNUb2tlbjogc3RyaW5nOyBwcml2YXRlS2V5OiBzdHJpbmcgfSwgXG4gICAgcmVzcG9uc2VEYXRhOiBhbnksIFxuICAgIGNsaWVudDogQXBpQ2xpZW50LFxuICAgIGlzTmV3VXNlcjogYm9vbGVhblxuICApOiBQcm9taXNlPEF1dGhSZXN1bHQ+IHtcbiAgICAvLyBTZWFyY2ggZm9yIEpXVCBpbiBkaWZmZXJlbnQgcG9zc2libGUgbG9jYXRpb25zIGR1ZSB0byBUT09OIGRlY29kaW5nIHZhcmlhdGlvbnNcbiAgICBjb25zdCBqd3QgPSByZXNwb25zZURhdGEuand0IHx8IFxuICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEuZGF0YSAmJiByZXNwb25zZURhdGEuZGF0YS5qd3QpIHx8IFxuICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudG9rZW5zICYmIHJlc3BvbnNlRGF0YS50b2tlbnMuand0KSB8fFxuICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEuZGF0YSAmJiByZXNwb25zZURhdGEuZGF0YS50b2tlbnMgJiYgcmVzcG9uc2VEYXRhLmRhdGEudG9rZW5zLmp3dCk7XG4gICAgXG4gICAgY29uc3QgZXhwaXJlc0F0ID0gcmVzcG9uc2VEYXRhLmV4cGlyZXNBdCB8fCBcbiAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VEYXRhLmRhdGEgJiYgcmVzcG9uc2VEYXRhLmRhdGEuZXhwaXJlc0F0KSB8fCBcbiAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VEYXRhLnRva2VucyAmJiByZXNwb25zZURhdGEudG9rZW5zLmV4cGlyZXNBdCk7XG5cbiAgICBpZiAoIWp3dCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKCdBdXRoIFJlc3BvbnNlIERhdGE6JywgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F1dGhlbnRpY2F0aW9uIHN1Y2NlZWRlZCBidXQgbm8gSldUIGZvdW5kIGluIHJlc3BvbnNlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3Q3JlZHM6IE5ldHdvcmtDcmVkZW50aWFscyA9IHtcbiAgICAgIHB1YmxpY1Rva2VuOiBrZXlzLnB1YmxpY1Rva2VuLFxuICAgICAgcHJpdmF0ZUtleToga2V5cy5wcml2YXRlS2V5LFxuICAgICAgand0OiBqd3QsXG4gICAgICBleHBpcmVzQXQ6IGV4cGlyZXNBdCB8fCAoRGF0ZS5ub3coKSArIDI0ICogMzYwMCAqIDEwMDApIC8vIERlZmF1bHQgMjRoIGlmIG1pc3NpbmdcbiAgICB9O1xuXG4gICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlQ3JlZGVudGlhbHMobmV0d29ya0lkLCBuZXdDcmVkcyk7XG4gICAgY2xpZW50LnNldEF1dGhUb2tlbihqd3QpO1xuXG4gICAgaWYgKGlzTmV3VXNlcikge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYCAg4pyTIEF1dG8tcmVnaXN0ZXJlZCBpbiBuZXR3b3JrOiAke25ldHdvcmtJZH1gKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGAgIOKckyBMb2dnZWQgaW50byBuZXR3b3JrOiAke25ldHdvcmtJZH1gKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgY2xpZW50LCBjcmVkZW50aWFsczogbmV3Q3JlZHMsIGlzTmV3VXNlciB9O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEFwaUNsaWVudCgpOiBQcm9taXNlPEFwaUNsaWVudD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0R2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEFwaUNsaWVudChjb25maWcuYXBpVXJsKTtcbiAgICBjbGllbnQuc2V0Rm9ybWF0KGNvbmZpZy5kZWZhdWx0Rm9ybWF0KTtcbiAgICByZXR1cm4gY2xpZW50O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEF1dGhlbnRpY2F0ZWRDbGllbnQobmV0d29ya0lkOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IFByb21pc2U8QXBpQ2xpZW50PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5lbnN1cmVBdXRoZW50aWNhdGVkKG5ldHdvcmtJZCwgcmVhc29uKTtcbiAgICByZXR1cm4gcmVzdWx0LmNsaWVudDtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBnZXRGaXJzdEF1dGhlbnRpY2F0ZWRDbGllbnQoKTogUHJvbWlzZTx7IGNsaWVudDogQXBpQ2xpZW50OyBuZXR3b3JrSWQ6IHN0cmluZyB9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHNEaXIgPSBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnLmFnZW50aWNwb29sJywgJ2NyZWRlbnRpYWxzJyk7XG4gICAgXG4gICAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhjcmVkZW50aWFsc0RpcikpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHN0b3JlZCBjcmVkZW50aWFscyBmb3VuZC4gUnVuIFwiYWdlbnRpY3Bvb2wgYXV0aCBjb25uZWN0IDxuZXR3b3JrSWQ+XCIgZmlyc3QuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGNyZWRlbnRpYWxzRGlyKTtcbiAgICBjb25zdCBqc29uRmlsZXMgPSBmaWxlcy5maWx0ZXIoZiA9PiBmLmVuZHNXaXRoKCcuanNvbicpKTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBqc29uRmlsZXMpIHtcbiAgICAgIGNvbnN0IG5ldHdvcmtJZCA9IGZpbGUucmVwbGFjZSgnLmpzb24nLCAnJyk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmVuc3VyZUF1dGhlbnRpY2F0ZWQobmV0d29ya0lkKTtcbiAgICAgICAgcmV0dXJuIHsgY2xpZW50OiByZXN1bHQuY2xpZW50LCBuZXR3b3JrSWQgfTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZhbGlkIGNyZWRlbnRpYWxzIGZvdW5kLiBSdW4gXCJhZ2VudGljcG9vbCBhdXRoIGNvbm5lY3QgPG5ldHdvcmtJZD5cIiBmaXJzdC4nKTtcbiAgfVxufVxuIl19
|
|
@@ -114,16 +114,20 @@ function registerConversationCommands(program) {
|
|
|
114
114
|
maxMembers: parseInt(options.maxMembers)
|
|
115
115
|
});
|
|
116
116
|
if (response.success && response.data) {
|
|
117
|
+
const conv = response.data;
|
|
118
|
+
const convId = conv.id || conv; // Handle string or object response
|
|
117
119
|
if (format === 'json') {
|
|
118
|
-
console.log(JSON.stringify(
|
|
120
|
+
console.log(JSON.stringify(conv, null, 2));
|
|
119
121
|
}
|
|
120
122
|
else if (format === 'human') {
|
|
121
123
|
logger_1.logger.success('✓ Conversation created!');
|
|
122
|
-
console.log(colors_1.default.gray('ID:'),
|
|
124
|
+
console.log(colors_1.default.gray('ID:'), convId);
|
|
123
125
|
}
|
|
124
126
|
else {
|
|
125
|
-
console.log((0, datamodel_1.encode)(
|
|
127
|
+
console.log((0, datamodel_1.encode)({ id: convId }));
|
|
126
128
|
}
|
|
129
|
+
// Auto-join the newly created conversation
|
|
130
|
+
await client.post(`/v1/conversations/${options.network}/${convId}/join`);
|
|
127
131
|
}
|
|
128
132
|
else {
|
|
129
133
|
logger_1.logger.error('Error:', response.error?.message || 'Failed to create conversation');
|
|
@@ -244,4 +248,4 @@ function registerConversationCommands(program) {
|
|
|
244
248
|
}
|
|
245
249
|
});
|
|
246
250
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9jb252ZXJzYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0Esb0VBbU9DO0FBek9ELG1EQUFnRDtBQUNoRCw0Q0FBc0M7QUFDdEMsNENBQXlDO0FBQ3pDLDZEQUFvQztBQUNwQyw0REFBK0I7QUFFL0IsU0FBZ0IsNEJBQTRCLENBQUMsT0FBZ0I7SUFDM0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUU1RixhQUFhO1NBQ1YsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUNmLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQztTQUM5QyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsWUFBWSxDQUFDO1NBQ2xELE1BQU0sQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUM7U0FDMUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sQ0FBQztTQUN2RSxNQUFNLENBQUMsU0FBUyxFQUFFLDZCQUE2QixDQUFDO1NBQ2hELE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3hELE1BQU0sTUFBTSxHQUFHLE1BQU0sdUJBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQVEsZ0JBQWdCLE9BQU8sQ0FBQyxPQUFPLGdCQUFnQixFQUFFO2dCQUN4RixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFT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QWEsQ0FBQyxDQUFDLENBQUM7b0JBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFFLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsa0JBQU0sRUFBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDckMsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxvQ0FBb0MsQ0FBQyxDQUFDO1lBQzFGLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLGVBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IEFwaUNsaWVudCB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgeyBjb25maWdNYW5hZ2VyIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IEF1dGhIZWxwZXIgfSBmcm9tICcuLi9hdXRoL0F1dGhIZWxwZXInO1xuaW1wb3J0IHsgZW5jb2RlIH0gZnJvbSAnLi4vZGF0YW1vZGVsJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlcic7XG5pbXBvcnQgY2hhbGsgZnJvbSAnLi4vdXRpbHMvY29sb3JzJztcbmltcG9ydCBUYWJsZSBmcm9tICdjbGktdGFibGUzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udmVyc2F0aW9uQ29tbWFuZHMocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBjb25zdCBjb252ZXJzYXRpb25zID0gcHJvZ3JhbS5jb21tYW5kKCdjb252ZXJzYXRpb25zJykuZGVzY3JpcHRpb24oJ0NvbnZlcnNhdGlvbiBjb21tYW5kcycpO1xuXG4gIGNvbnZlcnNhdGlvbnNcbiAgICAuY29tbWFuZCgnbGlzdCcpXG4gICAgLmRlc2NyaXB0aW9uKCdMaXN0IGNvbnZlcnNhdGlvbnMgaW4gYSBuZXR3b3JrJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAub3B0aW9uKCctcywgLS1zaG9ydCcsICdTaG93IHNob3J0IGZvcm1hdCcpXG4gICAgLm9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdDogdG9vbiwganNvbiwgaHVtYW4nLCAndG9vbicpXG4gICAgLm9wdGlvbignLS1odW1hbicsICdTaG9ydGN1dCBmb3IgLS1mb3JtYXQgaHVtYW4nKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnMuaHVtYW4gPyAnaHVtYW4nIDogb3B0aW9ucy5mb3JtYXQ7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0QXBpQ2xpZW50KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vY29udmVyc2F0aW9uc2AsIHtcbiAgICAgICAgICBzaG9ydDogb3B0aW9ucy5zaG9ydCA/ICd0cnVlJyA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBsb2dnZXIud2FybignTm8gY29udmVyc2F0aW9ucyBmb3VuZC4nKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGFibGUgPSBuZXcgVGFibGUoe1xuICAgICAgICAgICAgICBoZWFkOiBbY2hhbGsuY3lhbignSUQnKSwgY2hhbGsuY3lhbignVGl0bGUnKSwgY2hhbGsuY3lhbignVHlwZScpLCBjaGFsay5jeWFuKCdNZW1iZXJzJyldLFxuICAgICAgICAgICAgICBjb2xXaWR0aHM6IFsyMCwgMzAsIDE1LCAxMF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzcG9uc2UuZGF0YS5mb3JFYWNoKGNvbnYgPT4gdGFibGUucHVzaChbY29udi5pZCwgY29udi50aXRsZSwgY29udi50eXBlLCBjb252Lm1heE1lbWJlcnNdKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0YWJsZS50b1N0cmluZygpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHJlc3BvbnNlLmRhdGEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGxpc3QgY29udmVyc2F0aW9ucycpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBjb252ZXJzYXRpb25zXG4gICAgLmNvbW1hbmQoJ21pbmUnKVxuICAgIC5kZXNjcmlwdGlvbignTGlzdCB5b3VyIGNvbnZlcnNhdGlvbnMnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy1zLCAtLXNob3J0JywgJ1Nob3cgc2hvcnQgZm9ybWF0JylcbiAgICAub3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0OiB0b29uLCBqc29uLCBodW1hbicsICd0b29uJylcbiAgICAub3B0aW9uKCctLWh1bWFuJywgJ1Nob3J0Y3V0IGZvciAtLWZvcm1hdCBodW1hbicpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgY29uc3QgeyBjbGllbnQgfSA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChvcHRpb25zLm5ldHdvcmspO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oJy92MS9jb252ZXJzYXRpb25zL21pbmUnLCB7XG4gICAgICAgICAgc2hvcnQ6IG9wdGlvbnMuc2hvcnQgPyAndHJ1ZScgOiB1bmRlZmluZWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oJ1lvdSBhcmUgbm90IGluIGFueSBjb252ZXJzYXRpb25zLicpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gICAgICAgICAgICAgIGhlYWQ6IFtjaGFsay5jeWFuKCdJRCcpLCBjaGFsay5jeWFuKCdUaXRsZScpLCBjaGFsay5jeWFuKCdUeXBlJyldLFxuICAgICAgICAgICAgICBjb2xXaWR0aHM6IFsyMCwgNDAsIDE1XVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5kYXRhLmZvckVhY2goY29udiA9PiB0YWJsZS5wdXNoKFtjb252LmlkLCBjb252LnRpdGxlLCBjb252LnR5cGVdKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0YWJsZS50b1N0cmluZygpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHJlc3BvbnNlLmRhdGEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGxpc3QgY29udmVyc2F0aW9ucycpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBjb252ZXJzYXRpb25zXG4gICAgLmNvbW1hbmQoJ2NyZWF0ZScpXG4gICAgLmRlc2NyaXB0aW9uKCdDcmVhdGUgYSBuZXcgY29udmVyc2F0aW9uJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy10LCAtLXRpdGxlIDx0aXRsZT4nLCAnQ29udmVyc2F0aW9uIHRpdGxlJylcbiAgICAub3B0aW9uKCctLXR5cGUgPHR5cGU+JywgJ0NvbnZlcnNhdGlvbiB0eXBlOiB0b3BpYywgZGlyZWN0LCBncm91cCcsICdncm91cCcpXG4gICAgLm9wdGlvbignLW0sIC0tbWF4LW1lbWJlcnMgPG51bT4nLCAnTWF4aW11bSBtZW1iZXJzJywgJzEwJylcbiAgICAub3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0OiB0b29uLCBqc29uLCBodW1hbicsICd0b29uJylcbiAgICAub3B0aW9uKCctLWh1bWFuJywgJ1Nob3J0Y3V0IGZvciAtLWZvcm1hdCBodW1hbicpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgY29uc3QgeyBjbGllbnQgfSA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChvcHRpb25zLm5ldHdvcmspO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vY29udmVyc2F0aW9uc2AsIHtcbiAgICAgICAgICB0aXRsZTogb3B0aW9ucy50aXRsZSxcbiAgICAgICAgICB0eXBlOiBvcHRpb25zLnR5cGUsXG4gICAgICAgICAgbWF4TWVtYmVyczogcGFyc2VJbnQob3B0aW9ucy5tYXhNZW1iZXJzKVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKCfinJMgQ29udmVyc2F0aW9uIGNyZWF0ZWQhJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdJRDonKSwgKHJlc3BvbnNlLmRhdGEgYXMgYW55KS5pZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVuY29kZShyZXNwb25zZS5kYXRhKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBjcmVhdGUgY29udmVyc2F0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIGNvbnZlcnNhdGlvbnNcbiAgICAuY29tbWFuZCgnam9pbicpXG4gICAgLmRlc2NyaXB0aW9uKCdKb2luIGEgY29udmVyc2F0aW9uJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1jLCAtLWNvbnZlcnNhdGlvbiA8aWQ+JywgJ0NvbnZlcnNhdGlvbiBJRCcpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9nZ2VyLmluZm8oJ0pvaW5pbmcgY29udmVyc2F0aW9uLi4uJyk7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50IH0gPSBhd2FpdCBBdXRoSGVscGVyLmVuc3VyZUF1dGhlbnRpY2F0ZWQob3B0aW9ucy5uZXR3b3JrKTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvdjEvY29udmVyc2F0aW9ucy8ke29wdGlvbnMubmV0d29ya30vJHtvcHRpb25zLmNvbnZlcnNhdGlvbn0vam9pbmApO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJ+KckyBKb2luZWQgY29udmVyc2F0aW9uIScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBqb2luIGNvbnZlcnNhdGlvbicpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBjb252ZXJzYXRpb25zXG4gICAgLmNvbW1hbmQoJ2V4cGxvcmUnKVxuICAgIC5kZXNjcmlwdGlvbignRXhwbG9yZSBjb252ZXJzYXRpb25zIHdpdGggZmlsdGVycycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLWYsIC0tZmlsdGVyIDx0eXBlPicsICdGaWx0ZXIgYnkgdHlwZTogdG9waWMsIGRpcmVjdCwgZ3JvdXAnKVxuICAgIC5vcHRpb24oJy10LCAtLXRvcGljIDxrZXl3b3JkPicsICdTZWFyY2ggYnkga2V5d29yZCcpXG4gICAgLm9wdGlvbignLXMsIC0tc2hvcnQnLCAnU2hvdyBzaG9ydCBmb3JtYXQnKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmh1bWFuID8gJ2h1bWFuJyA6IG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBBdXRoSGVscGVyLmdldEFwaUNsaWVudCgpO1xuICAgICAgICBjb25zdCBwYXJhbXM6IGFueSA9IHsgc2hvcnQ6IG9wdGlvbnMuc2hvcnQgPyAndHJ1ZScgOiB1bmRlZmluZWQgfTtcblxuICAgICAgICBpZiAob3B0aW9ucy5maWx0ZXIpIHBhcmFtcy5maWx0ZXIgPSBvcHRpb25zLmZpbHRlcjtcbiAgICAgICAgaWYgKG9wdGlvbnMudG9waWMpIHBhcmFtcy50b3BpYyA9IG9wdGlvbnMudG9waWM7XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPignL3YxL25ldHdvcmtzLycgKyBvcHRpb25zLm5ldHdvcmsgKyAnL2NvbnZlcnNhdGlvbnMnLCBwYXJhbXMpO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEsIG51bGwsIDIpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci53YXJuKCdObyBjb252ZXJzYXRpb25zIGZvdW5kIG1hdGNoaW5nIGNyaXRlcmlhLicpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gICAgICAgICAgICAgIGhlYWQ6IFtjaGFsay5jeWFuKCdJRCcpLCBjaGFsay5jeWFuKCdUaXRsZScpLCBjaGFsay5jeWFuKCdUeXBlJyldLFxuICAgICAgICAgICAgICBjb2xXaWR0aHM6IFsyMCwgNDAsIDE1XVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5kYXRhLmZvckVhY2goY29udiA9PiB0YWJsZS5wdXNoKFtjb252LmlkLCBjb252LnRpdGxlLCBjb252LnR5cGVdKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0YWJsZS50b1N0cmluZygpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHJlc3BvbnNlLmRhdGEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGV4cGxvcmUgY29udmVyc2F0aW9ucycpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBjb252ZXJzYXRpb25zXG4gICAgLmNvbW1hbmQoJ3N1bW1hcnknKVxuICAgIC5kZXNjcmlwdGlvbignR2V0IGNvbnZlcnNhdGlvbiBpbnNpZ2h0cyBhbmQgc3VtbWFyeScpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctYywgLS1jb252ZXJzYXRpb24gPGlkPicsICdDb252ZXJzYXRpb24gSUQnKVxuICAgIC5vcHRpb24oJy1sLCAtLWxpbWl0IDxudW1iZXI+JywgJ051bWJlciBvZiBtZXNzYWdlcyB0byBhbmFseXplJywgJzUwJylcbiAgICAub3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0OiB0b29uLCBqc29uLCBodW1hbicsICd0b29uJylcbiAgICAub3B0aW9uKCctLWh1bWFuJywgJ1Nob3J0Y3V0IGZvciAtLWZvcm1hdCBodW1hbicpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueT4oJy92MS9jb252ZXJzYXRpb25zLycgKyBvcHRpb25zLm5ldHdvcmsgKyAnLycgKyBvcHRpb25zLmNvbnZlcnNhdGlvbiArICcvaW5zaWdodHMnLCB7XG4gICAgICAgICAgbGltaXQ6IG9wdGlvbnMubGltaXRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuLmJvbGQoYFxcbkNvbnZlcnNhdGlvbjogJHtkYXRhLnRvcGljfVxcbmApKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJyAgTWVzc2FnZXM6JyksIGRhdGEubWVzc2FnZUNvdW50KTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJyAgUGFydGljaXBhbnRzOicpLCBkYXRhLnBhcnRpY2lwYW50cyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKCcgIFRvbmU6JyksIGRhdGEudG9uZSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKCcgIFRvcCBLZXl3b3JkczonKSwgZGF0YS5rZXl3b3Jkcy5qb2luKCcsICcpKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3cuYm9sZCgnS2V5IFBvaW50czonKSk7XG4gICAgICAgICAgICBkYXRhLmtleXdvcmRzLmZvckVhY2goKGs6IHN0cmluZykgPT4gY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICAtJyksIGspKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW5jb2RlKHJlc3BvbnNlLmRhdGEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGdldCBjb252ZXJzYXRpb24gc3VtbWFyeScpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9jb252ZXJzYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0Esb0VBeU9DO0FBL09ELG1EQUFnRDtBQUNoRCw0Q0FBc0M7QUFDdEMsNENBQXlDO0FBQ3pDLDZEQUFvQztBQUNwQyw0REFBK0I7QUFFL0IsU0FBZ0IsNEJBQTRCLENBQUMsT0FBZ0I7SUFDM0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUU1RixhQUFhO1NBQ1YsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUNmLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQztTQUM5QyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsWUFBWSxDQUFDO1NBQ2xELE1BQU0sQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUM7U0FDMUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sQ0FBQztTQUN2RSxNQUFNLENBQUMsU0FBUyxFQUFFLDZCQUE2QixDQUFDO1NBQ2hELE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3hELE1BQU0sTUFBTSxHQUFHLE1BQU0sdUJBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQVEsZ0JBQWdCLE9BQU8sQ0FBQyxPQUFPLGdCQUFnQixFQUFFO2dCQUN4RixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFT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Z0JBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNyRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxrQkFBTSxFQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGVBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLG9DQUFvQyxDQUFDLENBQUM7WUFDMUYsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsZUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkYsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgQXBpQ2xpZW50IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgQXV0aEhlbHBlciB9IGZyb20gJy4uL2F1dGgvQXV0aEhlbHBlcic7XG5pbXBvcnQgeyBlbmNvZGUgfSBmcm9tICcuLi9kYXRhbW9kZWwnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2VyJztcbmltcG9ydCBjaGFsayBmcm9tICcuLi91dGlscy9jb2xvcnMnO1xuaW1wb3J0IFRhYmxlIGZyb20gJ2NsaS10YWJsZTMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb252ZXJzYXRpb25Db21tYW5kcyhwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbnMgPSBwcm9ncmFtLmNvbW1hbmQoJ2NvbnZlcnNhdGlvbnMnKS5kZXNjcmlwdGlvbignQ29udmVyc2F0aW9uIGNvbW1hbmRzJyk7XG5cbiAgY29udmVyc2F0aW9uc1xuICAgIC5jb21tYW5kKCdsaXN0JylcbiAgICAuZGVzY3JpcHRpb24oJ0xpc3QgY29udmVyc2F0aW9ucyBpbiBhIG5ldHdvcmsnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy1zLCAtLXNob3J0JywgJ1Nob3cgc2hvcnQgZm9ybWF0JylcbiAgICAub3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0OiB0b29uLCBqc29uLCBodW1hbicsICd0b29uJylcbiAgICAub3B0aW9uKCctLWh1bWFuJywgJ1Nob3J0Y3V0IGZvciAtLWZvcm1hdCBodW1hbicpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5odW1hbiA/ICdodW1hbicgOiBvcHRpb25zLmZvcm1hdDtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPihgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9jb252ZXJzYXRpb25zYCwge1xuICAgICAgICAgIHNob3J0OiBvcHRpb25zLnNob3J0ID8gJ3RydWUnIDogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEsIG51bGwsIDIpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2h1bWFuJykge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci53YXJuKCdObyBjb252ZXJzYXRpb25zIGZvdW5kLicpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gICAgICAgICAgICAgIGhlYWQ6IFtjaGFsay5jeWFuKCdJRCcpLCBjaGFsay5jeWFuKCdUaXRsZScpLCBjaGFsay5jeWFuKCdUeXBlJyksIGNoYWxrLmN5YW4oJ01lbWJlcnMnKV0sXG4gICAgICAgICAgICAgIGNvbFdpZHRoczogWzIwLCAzMCwgMTUsIDEwXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5kYXRhLmZvckVhY2goY29udiA9PiB0YWJsZS5wdXNoKFtjb252LmlkLCBjb252LnRpdGxlLCBjb252LnR5cGUsIGNvbnYubWF4TWVtYmVyc10pKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRhYmxlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gbGlzdCBjb252ZXJzYXRpb25zJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIGNvbnZlcnNhdGlvbnNcbiAgICAuY29tbWFuZCgnbWluZScpXG4gICAgLmRlc2NyaXB0aW9uKCdMaXN0IHlvdXIgY29udmVyc2F0aW9ucycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLXMsIC0tc2hvcnQnLCAnU2hvdyBzaG9ydCBmb3JtYXQnKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmh1bWFuID8gJ2h1bWFuJyA6IG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICBjb25zdCB7IGNsaWVudCB9ID0gYXdhaXQgQXV0aEhlbHBlci5lbnN1cmVBdXRoZW50aWNhdGVkKG9wdGlvbnMubmV0d29yayk7XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPignL3YxL2NvbnZlcnNhdGlvbnMvbWluZScsIHtcbiAgICAgICAgICBzaG9ydDogb3B0aW9ucy5zaG9ydCA/ICd0cnVlJyA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBsb2dnZXIud2FybignWW91IGFyZSBub3QgaW4gYW55IGNvbnZlcnNhdGlvbnMuJyk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKHtcbiAgICAgICAgICAgICAgaGVhZDogW2NoYWxrLmN5YW4oJ0lEJyksIGNoYWxrLmN5YW4oJ1RpdGxlJyksIGNoYWxrLmN5YW4oJ1R5cGUnKV0sXG4gICAgICAgICAgICAgIGNvbFdpZHRoczogWzIwLCA0MCwgMTVdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEuZm9yRWFjaChjb252ID0+IHRhYmxlLnB1c2goW2NvbnYuaWQsIGNvbnYudGl0bGUsIGNvbnYudHlwZV0pKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRhYmxlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gbGlzdCBjb252ZXJzYXRpb25zJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIGNvbnZlcnNhdGlvbnNcbiAgICAuY29tbWFuZCgnY3JlYXRlJylcbiAgICAuZGVzY3JpcHRpb24oJ0NyZWF0ZSBhIG5ldyBjb252ZXJzYXRpb24nKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLXQsIC0tdGl0bGUgPHRpdGxlPicsICdDb252ZXJzYXRpb24gdGl0bGUnKVxuICAgIC5vcHRpb24oJy0tdHlwZSA8dHlwZT4nLCAnQ29udmVyc2F0aW9uIHR5cGU6IHRvcGljLCBkaXJlY3QsIGdyb3VwJywgJ2dyb3VwJylcbiAgICAub3B0aW9uKCctbSwgLS1tYXgtbWVtYmVycyA8bnVtPicsICdNYXhpbXVtIG1lbWJlcnMnLCAnMTAnKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmh1bWFuID8gJ2h1bWFuJyA6IG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICBjb25zdCB7IGNsaWVudCB9ID0gYXdhaXQgQXV0aEhlbHBlci5lbnN1cmVBdXRoZW50aWNhdGVkKG9wdGlvbnMubmV0d29yayk7XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDxhbnk+KGAvdjEvbmV0d29ya3MvJHtvcHRpb25zLm5ldHdvcmt9L2NvbnZlcnNhdGlvbnNgLCB7XG4gICAgICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgdHlwZTogb3B0aW9ucy50eXBlLFxuICAgICAgICAgIG1heE1lbWJlcnM6IHBhcnNlSW50KG9wdGlvbnMubWF4TWVtYmVycylcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IGNvbnYgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIGNvbnN0IGNvbnZJZCA9IGNvbnYuaWQgfHwgY29udjsgLy8gSGFuZGxlIHN0cmluZyBvciBvYmplY3QgcmVzcG9uc2VcblxuICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoY29udiwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgICBsb2dnZXIuc3VjY2Vzcygn4pyTIENvbnZlcnNhdGlvbiBjcmVhdGVkIScpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnSUQ6JyksIGNvbnZJZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVuY29kZSh7IGlkOiBjb252SWQgfSkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEF1dG8tam9pbiB0aGUgbmV3bHkgY3JlYXRlZCBjb252ZXJzYXRpb25cbiAgICAgICAgICBhd2FpdCBjbGllbnQucG9zdChgL3YxL2NvbnZlcnNhdGlvbnMvJHtvcHRpb25zLm5ldHdvcmt9LyR7Y29udklkfS9qb2luYCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGNyZWF0ZSBjb252ZXJzYXRpb24nKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgY29udmVyc2F0aW9uc1xuICAgIC5jb21tYW5kKCdqb2luJylcbiAgICAuZGVzY3JpcHRpb24oJ0pvaW4gYSBjb252ZXJzYXRpb24nKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLWMsIC0tY29udmVyc2F0aW9uIDxpZD4nLCAnQ29udmVyc2F0aW9uIElEJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBsb2dnZXIuaW5mbygnSm9pbmluZyBjb252ZXJzYXRpb24uLi4nKTtcbiAgICAgICAgY29uc3QgeyBjbGllbnQgfSA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChvcHRpb25zLm5ldHdvcmspO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC92MS9jb252ZXJzYXRpb25zLyR7b3B0aW9ucy5uZXR3b3JrfS8ke29wdGlvbnMuY29udmVyc2F0aW9ufS9qb2luYCk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICBsb2dnZXIuc3VjY2Vzcygn4pyTIEpvaW5lZCBjb252ZXJzYXRpb24hJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGpvaW4gY29udmVyc2F0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIGNvbnZlcnNhdGlvbnNcbiAgICAuY29tbWFuZCgnZXhwbG9yZScpXG4gICAgLmRlc2NyaXB0aW9uKCdFeHBsb3JlIGNvbnZlcnNhdGlvbnMgd2l0aCBmaWx0ZXJzJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAub3B0aW9uKCctZiwgLS1maWx0ZXIgPHR5cGU+JywgJ0ZpbHRlciBieSB0eXBlOiB0b3BpYywgZGlyZWN0LCBncm91cCcpXG4gICAgLm9wdGlvbignLXQsIC0tdG9waWMgPGtleXdvcmQ+JywgJ1NlYXJjaCBieSBrZXl3b3JkJylcbiAgICAub3B0aW9uKCctcywgLS1zaG9ydCcsICdTaG93IHNob3J0IGZvcm1hdCcpXG4gICAgLm9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdDogdG9vbiwganNvbiwgaHVtYW4nLCAndG9vbicpXG4gICAgLm9wdGlvbignLS1odW1hbicsICdTaG9ydGN1dCBmb3IgLS1mb3JtYXQgaHVtYW4nKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnMuaHVtYW4gPyAnaHVtYW4nIDogb3B0aW9ucy5mb3JtYXQ7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0QXBpQ2xpZW50KCk7XG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0geyBzaG9ydDogb3B0aW9ucy5zaG9ydCA/ICd0cnVlJyA6IHVuZGVmaW5lZCB9O1xuXG4gICAgICAgIGlmIChvcHRpb25zLmZpbHRlcikgcGFyYW1zLmZpbHRlciA9IG9wdGlvbnMuZmlsdGVyO1xuICAgICAgICBpZiAob3B0aW9ucy50b3BpYykgcGFyYW1zLnRvcGljID0gb3B0aW9ucy50b3BpYztcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55W10+KCcvdjEvbmV0d29ya3MvJyArIG9wdGlvbnMubmV0d29yayArICcvY29udmVyc2F0aW9ucycsIHBhcmFtcyk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnaHVtYW4nKSB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oJ05vIGNvbnZlcnNhdGlvbnMgZm91bmQgbWF0Y2hpbmcgY3JpdGVyaWEuJyk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKHtcbiAgICAgICAgICAgICAgaGVhZDogW2NoYWxrLmN5YW4oJ0lEJyksIGNoYWxrLmN5YW4oJ1RpdGxlJyksIGNoYWxrLmN5YW4oJ1R5cGUnKV0sXG4gICAgICAgICAgICAgIGNvbFdpZHRoczogWzIwLCA0MCwgMTVdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEuZm9yRWFjaChjb252ID0+IHRhYmxlLnB1c2goW2NvbnYuaWQsIGNvbnYudGl0bGUsIGNvbnYudHlwZV0pKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRhYmxlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gZXhwbG9yZSBjb252ZXJzYXRpb25zJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIGNvbnZlcnNhdGlvbnNcbiAgICAuY29tbWFuZCgnc3VtbWFyeScpXG4gICAgLmRlc2NyaXB0aW9uKCdHZXQgY29udmVyc2F0aW9uIGluc2lnaHRzIGFuZCBzdW1tYXJ5JylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1jLCAtLWNvbnZlcnNhdGlvbiA8aWQ+JywgJ0NvbnZlcnNhdGlvbiBJRCcpXG4gICAgLm9wdGlvbignLWwsIC0tbGltaXQgPG51bWJlcj4nLCAnTnVtYmVyIG9mIG1lc3NhZ2VzIHRvIGFuYWx5emUnLCAnNTAnKVxuICAgIC5vcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQ6IHRvb24sIGpzb24sIGh1bWFuJywgJ3Rvb24nKVxuICAgIC5vcHRpb24oJy0taHVtYW4nLCAnU2hvcnRjdXQgZm9yIC0tZm9ybWF0IGh1bWFuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmh1bWFuID8gJ2h1bWFuJyA6IG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBBdXRoSGVscGVyLmdldEFwaUNsaWVudCgpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55PignL3YxL2NvbnZlcnNhdGlvbnMvJyArIG9wdGlvbnMubmV0d29yayArICcvJyArIG9wdGlvbnMuY29udmVyc2F0aW9uICsgJy9pbnNpZ2h0cycsIHtcbiAgICAgICAgICBsaW1pdDogb3B0aW9ucy5saW1pdFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdodW1hbicpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4uYm9sZChgXFxuQ29udmVyc2F0aW9uOiAke2RhdGEudG9waWN9XFxuYCkpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignICBNZXNzYWdlczonKSwgZGF0YS5tZXNzYWdlQ291bnQpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignICBQYXJ0aWNpcGFudHM6JyksIGRhdGEucGFydGljaXBhbnRzKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJyAgVG9uZTonKSwgZGF0YS50b25lKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJyAgVG9wIEtleXdvcmRzOicpLCBkYXRhLmtleXdvcmRzLmpvaW4oJywgJykpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdy5ib2xkKCdLZXkgUG9pbnRzOicpKTtcbiAgICAgICAgICAgIGRhdGEua2V5d29yZHMuZm9yRWFjaCgoazogc3RyaW5nKSA9PiBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgIC0nKSwgaykpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlbmNvZGUocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gZ2V0IGNvbnZlcnNhdGlvbiBzdW1tYXJ5Jyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
package/dist/commands/profile.js
CHANGED
|
@@ -25,6 +25,7 @@ function registerProfileCommands(program) {
|
|
|
25
25
|
console.log(colors_1.default.green.bold('\nProfile Questions:\n'));
|
|
26
26
|
response.data.forEach((q, index) => {
|
|
27
27
|
console.log(colors_1.default.cyan(`${index + 1}. ${q.question}`));
|
|
28
|
+
console.log(colors_1.default.gray(` ID: ${q.id}`));
|
|
28
29
|
console.log(colors_1.default.gray(` Required: ${q.required ? 'Yes' : 'No'}`));
|
|
29
30
|
console.log();
|
|
30
31
|
});
|
|
@@ -221,4 +222,4 @@ async function askQuestion(prompt) {
|
|
|
221
222
|
});
|
|
222
223
|
});
|
|
223
224
|
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsMERBNk5DO0FBak9ELG1EQUFnRDtBQUNoRCxzQ0FBMEM7QUFDMUMsNkRBQW9DO0FBRXBDLFNBQWdCLHVCQUF1QixDQUFDLE9BQWdCO0lBQ3RELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFFdEYsT0FBTztTQUNKLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDcEIsV0FBVyxDQUFDLHFDQUFxQyxDQUFDO1NBQ2xELGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7U0FDbEQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFRLGdCQUFnQixPQUFPLENBQUMsT0FBTyxZQUFZLENBQUMsQ0FBQztZQUV0RixJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFLLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUMsQ0FBQztvQkFDcEUsT0FBTztnQkFDVCxDQUFDO2dCQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztnQkFFeEQsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsS0FBYSxFQUFFLEVBQUU7b0JBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNyRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUkseUJBQXlCLENBQUMsQ0FBQztZQUMzRixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLE9BQU87U0FDSixPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ2QsV0FBVyxDQUFDLGdDQUFnQyxDQUFDO1NBQzdDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7U0FDbEQsTUFBTSxDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDO1NBQ2pELE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQztTQUMvQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsaUNBQWlDLENBQUM7U0FDbkUsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFZLEVBQUUsRUFBRTtRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSx1QkFBVSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6RSxJQUFJLGVBQWUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ25DLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNyQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUNsQyxlQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbEUsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLE9BQU8sQ0FBQyxLQUFLO2dCQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQy9ELElBQUksZUFBZTtnQkFBRSxVQUFVLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztZQUVsRSxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLE9BQU8sQ0FBQyxPQUFPLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUV6RixJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBSyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksMEJBQTBCLENBQUMsQ0FBQztZQUM1RixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLE9BQU87U0FDSixPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ2QsV0FBVyxDQUFDLGdDQUFnQyxDQUFDO1NBQzdDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7U0FDbEQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFZLEVBQUUsRUFBRTtRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sdUJBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFdEYsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFNLGdCQUFnQixPQUFPLENBQUMsT0FBTyxVQUFVLENBQUMsQ0FBQztZQUVsRixJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUM7Z0JBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLENBQUM7Z0JBRXJGLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztvQkFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3ZDLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3pGLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0YsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTztTQUNKLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDbkIsV0FBVyxDQUFDLHlDQUF5QyxDQUFDO1NBQ3RELGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7U0FDbEQsTUFBTSxDQUFDLHNCQUFzQixFQUFFLDhDQUE4QyxDQUFDO1NBQzlFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsMkRBQTJELENBQUM7U0FDN0UsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFZLEVBQUUsRUFBRTtRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSx1QkFBVSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6RSxJQUFJLE9BQU8sR0FBMkIsRUFBRSxDQUFDO1lBRXpDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEMsQ0FBQztpQkFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFRLGdCQUFnQixPQUFPLENBQUMsT0FBTyxZQUFZLENBQUMsQ0FBQztnQkFDMUYsSUFBSSxZQUFZLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDOUMsS0FBSyxNQUFNLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ2xDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDOzRCQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsOEJBQThCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDN0QsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO2dCQUM5RSxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsT0FBTyxDQUFDLE9BQU8sbUJBQW1CLEVBQUU7Z0JBQ3JGLE9BQU87YUFDUixDQUFDLENBQUM7WUFFSCxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBVyxDQUFDO2dCQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFLLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztnQkFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7WUFDMUUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksNEJBQTRCLENBQUMsQ0FBQztZQUM5RixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLE9BQU87U0FDSixPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hCLFdBQVcsQ0FBQyw2QkFBNkIsQ0FBQztTQUMxQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsWUFBWSxDQUFDO1NBQ2xELE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUM7U0FDckQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFZLEVBQUUsRUFBRTtRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSx1QkFBVSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6RSxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQVEsZ0JBQWdCLE9BQU8sQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDO1lBRXRGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBSyxDQUFDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BFLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNoQyxNQUFNLE9BQU8sR0FBMkIsRUFBRSxDQUFDO1lBRTNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQztZQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsU0FBUyxDQUFDLE1BQU0sc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1lBRXpFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVuRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDZixNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7d0JBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQUssQ0FBQyxHQUFHLENBQUMscURBQXFELENBQUMsQ0FBQyxDQUFDO3dCQUNoRixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsQixDQUFDO29CQUNELE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLFlBQVksQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7Z0JBQzVDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxDQUFDO29CQUMvRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3dCQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO29CQUM1QyxDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7WUFFM0QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLE9BQU8sQ0FBQyxPQUFPLG1CQUFtQixFQUFFO2dCQUM3RixPQUFPO2FBQ1IsQ0FBQyxDQUFDO1lBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQVcsQ0FBQztnQkFFMUMsTUFBTSxzQkFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUNuRCxTQUFTLEVBQUUsT0FBTyxDQUFDLE9BQU87b0JBQzFCLE9BQU87b0JBQ1Asb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtvQkFDL0MsV0FBVyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2lCQUN0QyxDQUFDLENBQUM7Z0JBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBSyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO2dCQUV4RSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDNUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBSyxDQUFDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLENBQUM7b0JBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7d0JBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ3pDLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3RILE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO29CQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRTt3QkFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDM0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksNEJBQTRCLENBQUMsQ0FBQztZQUN0RyxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxLQUFLLFVBQVUsV0FBVyxDQUFDLE1BQWM7SUFDdkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgQXV0aEhlbHBlciB9IGZyb20gJy4uL2F1dGgvQXV0aEhlbHBlcic7XG5pbXBvcnQgeyBjb25maWdNYW5hZ2VyIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCBjaGFsayBmcm9tICcuLi91dGlscy9jb2xvcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJQcm9maWxlQ29tbWFuZHMocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBjb25zdCBwcm9maWxlID0gcHJvZ3JhbS5jb21tYW5kKCdwcm9maWxlJykuZGVzY3JpcHRpb24oJ1Byb2ZpbGUgbWFuYWdlbWVudCBjb21tYW5kcycpO1xuXG4gIHByb2ZpbGVcbiAgICAuY29tbWFuZCgncXVlc3Rpb25zJylcbiAgICAuZGVzY3JpcHRpb24oJ0dldCBwcm9maWxlIHF1ZXN0aW9ucyBmb3IgYSBuZXR3b3JrJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBBdXRoSGVscGVyLmdldEFwaUNsaWVudCgpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55W10+KGAvdjEvbmV0d29ya3MvJHtvcHRpb25zLm5ldHdvcmt9L3F1ZXN0aW9uc2ApO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdygnTm8gcHJvZmlsZSBxdWVzdGlvbnMgZm9yIHRoaXMgbmV0d29yay4nKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4uYm9sZCgnXFxuUHJvZmlsZSBRdWVzdGlvbnM6XFxuJykpO1xuXG4gICAgICAgICAgcmVzcG9uc2UuZGF0YS5mb3JFYWNoKChxOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oYCR7aW5kZXggKyAxfS4gJHtxLnF1ZXN0aW9ufWApKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoYCAgIFJlcXVpcmVkOiAke3EucmVxdWlyZWQgPyAnWWVzJyA6ICdObyd9YCkpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gZ2V0IHF1ZXN0aW9ucycpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwcm9maWxlXG4gICAgLmNvbW1hbmQoJ3NldCcpXG4gICAgLmRlc2NyaXB0aW9uKCdTZXQgeW91ciBwcm9maWxlIGZvciBhIG5ldHdvcmsnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy1zLCAtLXNob3J0IDxkZXNjPicsICdTaG9ydCBkZXNjcmlwdGlvbicpXG4gICAgLm9wdGlvbignLWwsIC0tbG9uZyA8ZGVzYz4nLCAnTG9uZyBkZXNjcmlwdGlvbicpXG4gICAgLm9wdGlvbignLWYsIC0tbG9uZy1maWxlIDxmaWxlPicsICdSZWFkIGxvbmcgZGVzY3JpcHRpb24gZnJvbSBmaWxlJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50IH0gPSBhd2FpdCBBdXRoSGVscGVyLmVuc3VyZUF1dGhlbnRpY2F0ZWQob3B0aW9ucy5uZXR3b3JrKTtcblxuICAgICAgICBsZXQgbG9uZ0Rlc2NyaXB0aW9uID0gb3B0aW9ucy5sb25nO1xuICAgICAgICBpZiAob3B0aW9ucy5sb25nRmlsZSkge1xuICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gb3B0aW9ucy5sb25nRmlsZTtcbiAgICAgICAgICBsb25nRGVzY3JpcHRpb24gPSByZXF1aXJlKCdmcycpLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cGRhdGVEYXRhOiBhbnkgPSB7fTtcbiAgICAgICAgaWYgKG9wdGlvbnMuc2hvcnQpIHVwZGF0ZURhdGEuc2hvcnREZXNjcmlwdGlvbiA9IG9wdGlvbnMuc2hvcnQ7XG4gICAgICAgIGlmIChsb25nRGVzY3JpcHRpb24pIHVwZGF0ZURhdGEubG9uZ0Rlc2NyaXB0aW9uID0gbG9uZ0Rlc2NyaXB0aW9uO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnB1dChgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9wcm9maWxlYCwgdXBkYXRlRGF0YSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbign4pyTIFByb2ZpbGUgdXBkYXRlZCBzdWNjZXNzZnVsbHkhJykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byB1cGRhdGUgcHJvZmlsZScpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwcm9maWxlXG4gICAgLmNvbW1hbmQoJ2dldCcpXG4gICAgLmRlc2NyaXB0aW9uKCdHZXQgeW91ciBwcm9maWxlIGZvciBhIG5ldHdvcmsnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjbGllbnQsIGNyZWRlbnRpYWxzIH0gPSBhd2FpdCBBdXRoSGVscGVyLmVuc3VyZUF1dGhlbnRpY2F0ZWQob3B0aW9ucy5uZXR3b3JrKTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55PihgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9wcm9maWxlYCk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IHByb2ZpbGUgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4uYm9sZCgnXFxuWW91ciBQcm9maWxlXFxuJykpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1B1YmxpYyBUb2tlbjonKSwgY3JlZGVudGlhbHMucHVibGljVG9rZW4pO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1JvbGU6JyksIHByb2ZpbGUucm9sZSB8fCAnbWVtYmVyJyk7XG4gICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1Nob3J0IERlc2NyaXB0aW9uOicpLCBwcm9maWxlLnNob3J0RGVzY3JpcHRpb24gfHwgJyhub25lKScpO1xuXG4gICAgICAgICAgaWYgKHByb2ZpbGUubG9uZ0Rlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdcXG5Mb25nIERlc2NyaXB0aW9uOicpKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHByb2ZpbGUubG9uZ0Rlc2NyaXB0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGdldCBwcm9maWxlJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIHByb2ZpbGVcbiAgICAuY29tbWFuZCgnY29tcGxldGUnKVxuICAgIC5kZXNjcmlwdGlvbignQ29tcGxldGUgcHJvZmlsZSBieSBhbnN3ZXJpbmcgcXVlc3Rpb25zJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAub3B0aW9uKCctYSwgLS1hbnN3ZXJzIDxqc29uPicsICdKU09OIHN0cmluZyBvZiBxdWVzdGlvbiBJRCB0byBhbnN3ZXIgbWFwcGluZycpXG4gICAgLm9wdGlvbignLS1hdXRvJywgJ0F1dG8tYW5zd2VyIGFsbCByZXF1aXJlZCBxdWVzdGlvbnMgd2l0aCBkZWZhdWx0IHJlc3BvbnNlcycpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGNsaWVudCB9ID0gYXdhaXQgQXV0aEhlbHBlci5lbnN1cmVBdXRoZW50aWNhdGVkKG9wdGlvbnMubmV0d29yayk7XG5cbiAgICAgICAgbGV0IGFuc3dlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgICAgICBpZiAob3B0aW9ucy5hbnN3ZXJzKSB7XG4gICAgICAgICAgYW5zd2VycyA9IEpTT04ucGFyc2Uob3B0aW9ucy5hbnN3ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmF1dG8pIHtcbiAgICAgICAgICBjb25zdCBxdWVzdGlvbnNSZXMgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPihgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9xdWVzdGlvbnNgKTtcbiAgICAgICAgICBpZiAocXVlc3Rpb25zUmVzLnN1Y2Nlc3MgJiYgcXVlc3Rpb25zUmVzLmRhdGEpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcSBvZiBxdWVzdGlvbnNSZXMuZGF0YSkge1xuICAgICAgICAgICAgICBpZiAocS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgIGFuc3dlcnNbcS5pZF0gPSBgQXV0by1jb21wbGV0ZWQgYW5zd2VyIGZvcjogJHtxLnF1ZXN0aW9ufWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCAnUHJvdmlkZSAtLWFuc3dlcnMgPGpzb24+IG9yIC0tYXV0byBmbGFnJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9wcm9maWxlL2NvbXBsZXRlYCwge1xuICAgICAgICAgIGFuc3dlcnNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhIGFzIGFueTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbign4pyTIFByb2ZpbGUgY29tcGxldGVkIScpKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKCdDb21wbGV0aW9uOicpLCBgJHtkYXRhLmNvbXBsZXRpb25QZXJjZW50YWdlfSVgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gY29tcGxldGUgcHJvZmlsZScpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwcm9maWxlXG4gICAgLmNvbW1hbmQoJ2J1aWxkJylcbiAgICAuZGVzY3JpcHRpb24oJ0J1aWxkIHByb2ZpbGUgaW50ZXJhY3RpdmVseScpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLWksIC0taW50ZXJhY3RpdmUnLCAnSW50ZXJhY3RpdmUgbW9kZScsIHRydWUpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGNsaWVudCB9ID0gYXdhaXQgQXV0aEhlbHBlci5lbnN1cmVBdXRoZW50aWNhdGVkKG9wdGlvbnMubmV0d29yayk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vcXVlc3Rpb25zYCk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzIHx8ICFyZXNwb25zZS5kYXRhIHx8IHJlc3BvbnNlLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KCdObyBwcm9maWxlIHF1ZXN0aW9ucyBmb3IgdGhpcyBuZXR3b3JrLicpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVzdGlvbnMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICBjb25zdCBhbnN3ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4uYm9sZCgnXFxuQnVpbGRpbmcgWW91ciBQcm9maWxlXFxuJykpO1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KGBGb3VuZCAke3F1ZXN0aW9ucy5sZW5ndGh9IHByb2ZpbGUgcXVlc3Rpb25zXFxuYCkpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgcSA9IHF1ZXN0aW9uc1tpXTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGAke2kgKyAxfS4gJHtxLnF1ZXN0aW9ufWApKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgICBSZXF1aXJlZDonKSwgcS5yZXF1aXJlZCA/ICdZZXMnIDogJ05vJyk7XG5cbiAgICAgICAgICBpZiAocS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgYXNrUXVlc3Rpb24ocS5xdWVzdGlvbiArICcgJyk7XG4gICAgICAgICAgICBpZiAoIWFuc3dlci50cmltKCkpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ1JlcXVpcmVkIHF1ZXN0aW9uIG1pc3NpbmcgYW5zd2VyLiBQbGVhc2UgdHJ5IGFnYWluLicpKTtcbiAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW5zd2Vyc1txLmlkIHx8IGBxdWVzdGlvbl8ke2l9YF0gPSBhbnN3ZXI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGFza1F1ZXN0aW9uKHEucXVlc3Rpb24gKyAnIChvcHRpb25hbCk6ICcpO1xuICAgICAgICAgICAgaWYgKGFuc3dlci50cmltKCkpIHtcbiAgICAgICAgICAgICAgYW5zd2Vyc1txLmlkIHx8IGBxdWVzdGlvbl8ke2l9YF0gPSBhbnN3ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuLmJvbGQoJ1xcbkNvbXBsZXRpbmcgcHJvZmlsZS4uLlxcbicpKTtcblxuICAgICAgICBjb25zdCBjb21wbGV0ZVJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vcHJvZmlsZS9jb21wbGV0ZWAsIHtcbiAgICAgICAgICBhbnN3ZXJzXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjb21wbGV0ZVJlc3BvbnNlLnN1Y2Nlc3MgJiYgY29tcGxldGVSZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IGNvbXBsZXRlUmVzcG9uc2UuZGF0YSBhcyBhbnk7XG5cbiAgICAgICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLnNhdmVKU09OUHJvZmlsZShvcHRpb25zLm5ldHdvcmssIHtcbiAgICAgICAgICAgIG5ldHdvcmtJZDogb3B0aW9ucy5uZXR3b3JrLFxuICAgICAgICAgICAgYW5zd2VycyxcbiAgICAgICAgICAgIGNvbXBsZXRpb25QZXJjZW50YWdlOiBkYXRhLmNvbXBsZXRpb25QZXJjZW50YWdlLFxuICAgICAgICAgICAgY29tcGxldGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oJ+KckyBQcm9maWxlIGJ1aWx0IHN1Y2Nlc3NmdWxseSFcXG4nKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignQ29tcGxldGlvbjonKSwgYCR7ZGF0YS5jb21wbGV0aW9uUGVyY2VudGFnZX0lYCk7XG5cbiAgICAgICAgICBpZiAoZGF0YS5yZWNvbW1lbmRhdGlvbnMgJiYgZGF0YS5yZWNvbW1lbmRhdGlvbnMuY29udmVyc2F0aW9uc1RvSm9pbiAmJiBkYXRhLnJlY29tbWVuZGF0aW9ucy5jb252ZXJzYXRpb25zVG9Kb2luLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdygnXFxuUmVjb21tZW5kZWQgY29udmVyc2F0aW9ucyB0byBqb2luOicpKTtcbiAgICAgICAgICAgIGRhdGEucmVjb21tZW5kYXRpb25zLmNvbnZlcnNhdGlvbnNUb0pvaW4uZm9yRWFjaCgoY29udklkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICAtJyksIGNvbnZJZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZGF0YS5yZWNvbW1lbmRhdGlvbnMgJiYgZGF0YS5yZWNvbW1lbmRhdGlvbnMubmV0d29ya1N0cmVuZ3RocyAmJiBkYXRhLnJlY29tbWVuZGF0aW9ucy5uZXR3b3JrU3RyZW5ndGhzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdygnXFxuWW91ciBuZXR3b3JrIHN0cmVuZ3RoczonKSk7XG4gICAgICAgICAgICBkYXRhLnJlY29tbWVuZGF0aW9ucy5uZXR3b3JrU3RyZW5ndGhzLmZvckVhY2goKHN0cmVuZ3RoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICAtJyksIHN0cmVuZ3RoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGNvbXBsZXRlUmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBjb21wbGV0ZSBwcm9maWxlJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBhc2tRdWVzdGlvbihwcm9tcHQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKHByb21wdCk7XG4gICAgcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZygndXRmLTgnKTtcbiAgICBwcm9jZXNzLnN0ZGluLm9uY2UoJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgcmVzb2x2ZShkYXRhLnRvU3RyaW5nKCkudHJpbSgpKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsMERBOE5DO0FBbE9ELG1EQUFnRDtBQUNoRCxzQ0FBMEM7QUFDMUMsNkRBQW9DO0FBRXBDLFNBQWdCLHVCQUF1QixDQUFDLE9BQWdCO0lBQ3RELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFFdEYsT0FBTztTQUNKLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDcEIsV0FBVyxDQUFDLHFDQUFxQyxDQUFDO1NBQ2xELGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7U0FDbEQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFRLGdCQUFnQixPQUFPLENBQUMsT0FBTyxZQUFZLENBQUMsQ0FBQztZQUV0RixJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFLLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUMsQ0FBQztvQkFDcEUsT0FBTztnQkFDVCxDQUFDO2dCQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztnQkFFeEQsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMs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LE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQzNDLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLDRCQUE0QixDQUFDLENBQUM7WUFDdEcsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvRixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxNQUFjO0lBQ3ZDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IEF1dGhIZWxwZXIgfSBmcm9tICcuLi9hdXRoL0F1dGhIZWxwZXInO1xuaW1wb3J0IHsgY29uZmlnTWFuYWdlciB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgY2hhbGsgZnJvbSAnLi4vdXRpbHMvY29sb3JzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyUHJvZmlsZUNvbW1hbmRzKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgY29uc3QgcHJvZmlsZSA9IHByb2dyYW0uY29tbWFuZCgncHJvZmlsZScpLmRlc2NyaXB0aW9uKCdQcm9maWxlIG1hbmFnZW1lbnQgY29tbWFuZHMnKTtcblxuICBwcm9maWxlXG4gICAgLmNvbW1hbmQoJ3F1ZXN0aW9ucycpXG4gICAgLmRlc2NyaXB0aW9uKCdHZXQgcHJvZmlsZSBxdWVzdGlvbnMgZm9yIGEgbmV0d29yaycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPihgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9xdWVzdGlvbnNgKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coJ05vIHByb2ZpbGUgcXVlc3Rpb25zIGZvciB0aGlzIG5ldHdvcmsuJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuLmJvbGQoJ1xcblByb2ZpbGUgUXVlc3Rpb25zOlxcbicpKTtcblxuICAgICAgICAgIHJlc3BvbnNlLmRhdGEuZm9yRWFjaCgocTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGAke2luZGV4ICsgMX0uICR7cS5xdWVzdGlvbn1gKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KGAgICBJRDogJHtxLmlkfWApKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoYCAgIFJlcXVpcmVkOiAke3EucmVxdWlyZWQgPyAnWWVzJyA6ICdObyd9YCkpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gZ2V0IHF1ZXN0aW9ucycpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwcm9maWxlXG4gICAgLmNvbW1hbmQoJ3NldCcpXG4gICAgLmRlc2NyaXB0aW9uKCdTZXQgeW91ciBwcm9maWxlIGZvciBhIG5ldHdvcmsnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy1zLCAtLXNob3J0IDxkZXNjPicsICdTaG9ydCBkZXNjcmlwdGlvbicpXG4gICAgLm9wdGlvbignLWwsIC0tbG9uZyA8ZGVzYz4nLCAnTG9uZyBkZXNjcmlwdGlvbicpXG4gICAgLm9wdGlvbignLWYsIC0tbG9uZy1maWxlIDxmaWxlPicsICdSZWFkIGxvbmcgZGVzY3JpcHRpb24gZnJvbSBmaWxlJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50IH0gPSBhd2FpdCBBdXRoSGVscGVyLmVuc3VyZUF1dGhlbnRpY2F0ZWQob3B0aW9ucy5uZXR3b3JrKTtcblxuICAgICAgICBsZXQgbG9uZ0Rlc2NyaXB0aW9uID0gb3B0aW9ucy5sb25nO1xuICAgICAgICBpZiAob3B0aW9ucy5sb25nRmlsZSkge1xuICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gb3B0aW9ucy5sb25nRmlsZTtcbiAgICAgICAgICBsb25nRGVzY3JpcHRpb24gPSByZXF1aXJlKCdmcycpLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cGRhdGVEYXRhOiBhbnkgPSB7fTtcbiAgICAgICAgaWYgKG9wdGlvbnMuc2hvcnQpIHVwZGF0ZURhdGEuc2hvcnREZXNjcmlwdGlvbiA9IG9wdGlvbnMuc2hvcnQ7XG4gICAgICAgIGlmIChsb25nRGVzY3JpcHRpb24pIHVwZGF0ZURhdGEubG9uZ0Rlc2NyaXB0aW9uID0gbG9uZ0Rlc2NyaXB0aW9uO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnB1dChgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9wcm9maWxlYCwgdXBkYXRlRGF0YSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbign4pyTIFByb2ZpbGUgdXBkYXRlZCBzdWNjZXNzZnVsbHkhJykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byB1cGRhdGUgcHJvZmlsZScpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwcm9maWxlXG4gICAgLmNvbW1hbmQoJ2dldCcpXG4gICAgLmRlc2NyaXB0aW9uKCdHZXQgeW91ciBwcm9maWxlIGZvciBhIG5ldHdvcmsnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjbGllbnQsIGNyZWRlbnRpYWxzIH0gPSBhd2FpdCBBdXRoSGVscGVyLmVuc3VyZUF1dGhlbnRpY2F0ZWQob3B0aW9ucy5uZXR3b3JrKTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8YW55PihgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9wcm9maWxlYCk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IHByb2ZpbGUgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4uYm9sZCgnXFxuWW91ciBQcm9maWxlXFxuJykpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1B1YmxpYyBUb2tlbjonKSwgY3JlZGVudGlhbHMucHVibGljVG9rZW4pO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1JvbGU6JyksIHByb2ZpbGUucm9sZSB8fCAnbWVtYmVyJyk7XG4gICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1Nob3J0IERlc2NyaXB0aW9uOicpLCBwcm9maWxlLnNob3J0RGVzY3JpcHRpb24gfHwgJyhub25lKScpO1xuXG4gICAgICAgICAgaWYgKHByb2ZpbGUubG9uZ0Rlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdcXG5Mb25nIERlc2NyaXB0aW9uOicpKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHByb2ZpbGUubG9uZ0Rlc2NyaXB0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGdldCBwcm9maWxlJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIHByb2ZpbGVcbiAgICAuY29tbWFuZCgnY29tcGxldGUnKVxuICAgIC5kZXNjcmlwdGlvbignQ29tcGxldGUgcHJvZmlsZSBieSBhbnN3ZXJpbmcgcXVlc3Rpb25zJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAub3B0aW9uKCctYSwgLS1hbnN3ZXJzIDxqc29uPicsICdKU09OIHN0cmluZyBvZiBxdWVzdGlvbiBJRCB0byBhbnN3ZXIgbWFwcGluZycpXG4gICAgLm9wdGlvbignLS1hdXRvJywgJ0F1dG8tYW5zd2VyIGFsbCByZXF1aXJlZCBxdWVzdGlvbnMgd2l0aCBkZWZhdWx0IHJlc3BvbnNlcycpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGNsaWVudCB9ID0gYXdhaXQgQXV0aEhlbHBlci5lbnN1cmVBdXRoZW50aWNhdGVkKG9wdGlvbnMubmV0d29yayk7XG5cbiAgICAgICAgbGV0IGFuc3dlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgICAgICBpZiAob3B0aW9ucy5hbnN3ZXJzKSB7XG4gICAgICAgICAgYW5zd2VycyA9IEpTT04ucGFyc2Uob3B0aW9ucy5hbnN3ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmF1dG8pIHtcbiAgICAgICAgICBjb25zdCBxdWVzdGlvbnNSZXMgPSBhd2FpdCBjbGllbnQuZ2V0PGFueVtdPihgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9xdWVzdGlvbnNgKTtcbiAgICAgICAgICBpZiAocXVlc3Rpb25zUmVzLnN1Y2Nlc3MgJiYgcXVlc3Rpb25zUmVzLmRhdGEpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcSBvZiBxdWVzdGlvbnNSZXMuZGF0YSkge1xuICAgICAgICAgICAgICBpZiAocS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgIGFuc3dlcnNbcS5pZF0gPSBgQXV0by1jb21wbGV0ZWQgYW5zd2VyIGZvcjogJHtxLnF1ZXN0aW9ufWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ0Vycm9yOicpLCAnUHJvdmlkZSAtLWFuc3dlcnMgPGpzb24+IG9yIC0tYXV0byBmbGFnJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL3YxL25ldHdvcmtzLyR7b3B0aW9ucy5uZXR3b3JrfS9wcm9maWxlL2NvbXBsZXRlYCwge1xuICAgICAgICAgIGFuc3dlcnNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhIGFzIGFueTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbign4pyTIFByb2ZpbGUgY29tcGxldGVkIScpKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKCdDb21wbGV0aW9uOicpLCBgJHtkYXRhLmNvbXBsZXRpb25QZXJjZW50YWdlfSVgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gY29tcGxldGUgcHJvZmlsZScpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwcm9maWxlXG4gICAgLmNvbW1hbmQoJ2J1aWxkJylcbiAgICAuZGVzY3JpcHRpb24oJ0J1aWxkIHByb2ZpbGUgaW50ZXJhY3RpdmVseScpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLWksIC0taW50ZXJhY3RpdmUnLCAnSW50ZXJhY3RpdmUgbW9kZScsIHRydWUpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGNsaWVudCB9ID0gYXdhaXQgQXV0aEhlbHBlci5lbnN1cmVBdXRoZW50aWNhdGVkKG9wdGlvbnMubmV0d29yayk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxhbnlbXT4oYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vcXVlc3Rpb25zYCk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzIHx8ICFyZXNwb25zZS5kYXRhIHx8IHJlc3BvbnNlLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KCdObyBwcm9maWxlIHF1ZXN0aW9ucyBmb3IgdGhpcyBuZXR3b3JrLicpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVzdGlvbnMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICBjb25zdCBhbnN3ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4uYm9sZCgnXFxuQnVpbGRpbmcgWW91ciBQcm9maWxlXFxuJykpO1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KGBGb3VuZCAke3F1ZXN0aW9ucy5sZW5ndGh9IHByb2ZpbGUgcXVlc3Rpb25zXFxuYCkpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgcSA9IHF1ZXN0aW9uc1tpXTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGAke2kgKyAxfS4gJHtxLnF1ZXN0aW9ufWApKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgICBSZXF1aXJlZDonKSwgcS5yZXF1aXJlZCA/ICdZZXMnIDogJ05vJyk7XG5cbiAgICAgICAgICBpZiAocS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgYXNrUXVlc3Rpb24ocS5xdWVzdGlvbiArICcgJyk7XG4gICAgICAgICAgICBpZiAoIWFuc3dlci50cmltKCkpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoJ1JlcXVpcmVkIHF1ZXN0aW9uIG1pc3NpbmcgYW5zd2VyLiBQbGVhc2UgdHJ5IGFnYWluLicpKTtcbiAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW5zd2Vyc1txLmlkIHx8IGBxdWVzdGlvbl8ke2l9YF0gPSBhbnN3ZXI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGFza1F1ZXN0aW9uKHEucXVlc3Rpb24gKyAnIChvcHRpb25hbCk6ICcpO1xuICAgICAgICAgICAgaWYgKGFuc3dlci50cmltKCkpIHtcbiAgICAgICAgICAgICAgYW5zd2Vyc1txLmlkIHx8IGBxdWVzdGlvbl8ke2l9YF0gPSBhbnN3ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuLmJvbGQoJ1xcbkNvbXBsZXRpbmcgcHJvZmlsZS4uLlxcbicpKTtcblxuICAgICAgICBjb25zdCBjb21wbGV0ZVJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC92MS9uZXR3b3Jrcy8ke29wdGlvbnMubmV0d29ya30vcHJvZmlsZS9jb21wbGV0ZWAsIHtcbiAgICAgICAgICBhbnN3ZXJzXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjb21wbGV0ZVJlc3BvbnNlLnN1Y2Nlc3MgJiYgY29tcGxldGVSZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IGNvbXBsZXRlUmVzcG9uc2UuZGF0YSBhcyBhbnk7XG5cbiAgICAgICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLnNhdmVKU09OUHJvZmlsZShvcHRpb25zLm5ldHdvcmssIHtcbiAgICAgICAgICAgIG5ldHdvcmtJZDogb3B0aW9ucy5uZXR3b3JrLFxuICAgICAgICAgICAgYW5zd2VycyxcbiAgICAgICAgICAgIGNvbXBsZXRpb25QZXJjZW50YWdlOiBkYXRhLmNvbXBsZXRpb25QZXJjZW50YWdlLFxuICAgICAgICAgICAgY29tcGxldGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oJ+KckyBQcm9maWxlIGJ1aWx0IHN1Y2Nlc3NmdWxseSFcXG4nKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignQ29tcGxldGlvbjonKSwgYCR7ZGF0YS5jb21wbGV0aW9uUGVyY2VudGFnZX0lYCk7XG5cbiAgICAgICAgICBpZiAoZGF0YS5yZWNvbW1lbmRhdGlvbnMgJiYgZGF0YS5yZWNvbW1lbmRhdGlvbnMuY29udmVyc2F0aW9uc1RvSm9pbiAmJiBkYXRhLnJlY29tbWVuZGF0aW9ucy5jb252ZXJzYXRpb25zVG9Kb2luLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdygnXFxuUmVjb21tZW5kZWQgY29udmVyc2F0aW9ucyB0byBqb2luOicpKTtcbiAgICAgICAgICAgIGRhdGEucmVjb21tZW5kYXRpb25zLmNvbnZlcnNhdGlvbnNUb0pvaW4uZm9yRWFjaCgoY29udklkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICAtJyksIGNvbnZJZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZGF0YS5yZWNvbW1lbmRhdGlvbnMgJiYgZGF0YS5yZWNvbW1lbmRhdGlvbnMubmV0d29ya1N0cmVuZ3RocyAmJiBkYXRhLnJlY29tbWVuZGF0aW9ucy5uZXR3b3JrU3RyZW5ndGhzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdygnXFxuWW91ciBuZXR3b3JrIHN0cmVuZ3RoczonKSk7XG4gICAgICAgICAgICBkYXRhLnJlY29tbWVuZGF0aW9ucy5uZXR3b3JrU3RyZW5ndGhzLmZvckVhY2goKHN0cmVuZ3RoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICAtJyksIHN0cmVuZ3RoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZCgnRXJyb3I6JyksIGNvbXBsZXRlUmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBjb21wbGV0ZSBwcm9maWxlJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKCdFcnJvcjonKSwgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBhc2tRdWVzdGlvbihwcm9tcHQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKHByb21wdCk7XG4gICAgcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZygndXRmLTgnKTtcbiAgICBwcm9jZXNzLnN0ZGluLm9uY2UoJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgcmVzb2x2ZShkYXRhLnRvU3RyaW5nKCkudHJpbSgpKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
|