@alfresco/aca-playwright-shared 7.0.0-15534183732 → 7.0.0-15536568686
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/api/nodes-api.d.ts +3 -2
- package/esm2022/api/nodes-api.mjs +11 -2
- package/esm2022/page-objects/components/adf-info-drawer.component.mjs +5 -1
- package/fesm2022/alfresco-aca-playwright-shared.mjs +14 -1
- package/fesm2022/alfresco-aca-playwright-shared.mjs.map +1 -1
- package/package.json +1 -1
- package/page-objects/components/adf-info-drawer.component.d.ts +4 -0
package/api/nodes-api.d.ts
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* You should have received a copy of the GNU Lesser General Public License
|
|
22
22
|
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
23
23
|
*/
|
|
24
|
-
import { NodeEntry, NodePaging } from '@alfresco/js-api';
|
|
24
|
+
import { NodeEntry, NodePaging, NodesIncludeQuery, NodeBodyUpdate } from '@alfresco/js-api';
|
|
25
25
|
import { NodeContentTree } from './node-content-tree';
|
|
26
26
|
export declare class NodesApi {
|
|
27
27
|
private apiService;
|
|
@@ -40,6 +40,7 @@ export declare class NodesApi {
|
|
|
40
40
|
* @param permanent Delete permanently, without moving to the trashcan? (default: true)
|
|
41
41
|
*/
|
|
42
42
|
deleteNodes(nodeIds: string[], permanent?: boolean): Promise<any>;
|
|
43
|
+
updateNode(nodeId: string, nodeBodyUpdate: NodeBodyUpdate, opts?: NodesIncludeQuery): Promise<NodeEntry | null>;
|
|
43
44
|
/**
|
|
44
45
|
* Delete all nodes of the currently logged in user
|
|
45
46
|
* @param userNodeId The id of User node, all child nodes of "userNodeId" will be gathered as a list and deleted ( e.g.: "-my-" - User Homes folder)
|
|
@@ -57,7 +58,7 @@ export declare class NodesApi {
|
|
|
57
58
|
getNodeTemplatesFolderId(): Promise<string>;
|
|
58
59
|
getSpaceTemplatesFolderId(): Promise<string>;
|
|
59
60
|
private getDataDictionaryId;
|
|
60
|
-
setGranularPermission(nodeId: string,
|
|
61
|
+
setGranularPermission(nodeId: string, username: string, role: string, inheritPermissions?: boolean): Promise<NodeEntry | null>;
|
|
61
62
|
removeUserAccessOnNodeTemplate(nodeName: string): Promise<NodeEntry>;
|
|
62
63
|
removeUserAccessOnSpaceTemplate(nodeName: string): Promise<NodeEntry>;
|
|
63
64
|
setInheritPermissions(nodeId: string, inheritPermissions: boolean): Promise<NodeEntry | null>;
|
|
@@ -127,6 +127,15 @@ export class NodesApi {
|
|
|
127
127
|
console.error(`${this.constructor.name} ${this.deleteNodes.name}`, error);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
+
async updateNode(nodeId, nodeBodyUpdate, opts) {
|
|
131
|
+
try {
|
|
132
|
+
return await this.apiService.nodes.updateNode(nodeId, nodeBodyUpdate, opts);
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
console.error(`${this.constructor.name} ${this.updateNode.name}`, error);
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
130
139
|
/**
|
|
131
140
|
* Delete all nodes of the currently logged in user
|
|
132
141
|
* @param userNodeId The id of User node, all child nodes of "userNodeId" will be gathered as a list and deleted ( e.g.: "-my-" - User Homes folder)
|
|
@@ -257,7 +266,7 @@ export class NodesApi {
|
|
|
257
266
|
return '';
|
|
258
267
|
});
|
|
259
268
|
}
|
|
260
|
-
async setGranularPermission(nodeId, inheritPermissions = false
|
|
269
|
+
async setGranularPermission(nodeId, username, role, inheritPermissions = false) {
|
|
261
270
|
const data = {
|
|
262
271
|
permissions: {
|
|
263
272
|
isInheritanceEnabled: inheritPermissions,
|
|
@@ -425,4 +434,4 @@ export class NodesApi {
|
|
|
425
434
|
}
|
|
426
435
|
}
|
|
427
436
|
}
|
|
428
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXBsYXl3cmlnaHQtc2hhcmVkL3NyYy9hcGkvbm9kZXMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUFtQixzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlFLE1BQU0sT0FBTyxRQUFRO0lBQ1gsVUFBVSxDQUFtQjtJQUVyQztRQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFnQixFQUFFLFFBQWlCO1FBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQ2hCLElBQVksRUFDWixXQUFtQixNQUFNLEVBQ3pCLFFBQWdCLEVBQUUsRUFDbEIsY0FBc0IsRUFBRSxFQUN4QixTQUFpQixFQUFFLEVBQ25CLGNBQXdCLElBQUk7UUFFNUIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJ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QUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBYztRQUNwQyxJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssWUFBWSxDQUFDO1FBQzNELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNoRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQXBpQ2xpZW50RmFjdG9yeSB9IGZyb20gJy4vYXBpLWNsaWVudC1mYWN0b3J5JztcbmltcG9ydCB7IE5vZGVDaGlsZEFzc29jaWF0aW9uUGFnaW5nLCBOb2RlRW50cnksIE5vZGVQYWdpbmcgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IE5vZGVDb250ZW50VHJlZSwgZmxhdHRlbk5vZGVDb250ZW50VHJlZSB9IGZyb20gJy4vbm9kZS1jb250ZW50LXRyZWUnO1xuXG5leHBvcnQgY2xhc3MgTm9kZXNBcGkge1xuICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaUNsaWVudEZhY3Rvcnk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlID0gbmV3IEFwaUNsaWVudEZhY3RvcnkoKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBpbml0aWFsaXplKHVzZXJOYW1lOiBzdHJpbmcsIHBhc3N3b3JkPzogc3RyaW5nKTogUHJvbWlzZTxOb2Rlc0FwaT4ge1xuICAgIGNvbnN0IGNsYXNzT2JqID0gbmV3IE5vZGVzQXBpKCk7XG4gICAgYXdhaXQgY2xhc3NPYmouYXBpU2VydmljZS5zZXRVcEFjYUJhY2tlbmQodXNlck5hbWUsIHBhc3N3b3JkKTtcbiAgICByZXR1cm4gY2xhc3NPYmo7XG4gIH1cblxuICBhc3luYyBjcmVhdGVGb2xkZXIoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHBhcmVudElkOiBzdHJpbmcgPSAnLW15LScsXG4gICAgdGl0bGU6IHN0cmluZyA9ICcnLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJyxcbiAgICBhdXRob3I6IHN0cmluZyA9ICcnLFxuICAgIGFzcGVjdE5hbWVzOiBzdHJpbmdbXSA9IG51bGxcbiAgKTogUHJvbWlzZTxOb2RlRW50cnkgfCBudWxsPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNyZWF0ZU5vZGUoJ2NtOmZvbGRlcicsIG5hbWUsIHBhcmVudElkLCB0aXRsZSwgZGVzY3JpcHRpb24sIG51bGwsIGF1dGhvciwgbnVsbCwgYXNwZWN0TmFtZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmNyZWF0ZUZvbGRlci5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUZpbGUoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHBhcmVudElkOiBzdHJpbmcgPSAnLW15LScsXG4gICAgdGl0bGU6IHN0cmluZyA9ICcnLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJyxcbiAgICBhdXRob3I6IHN0cmluZyA9ICcnLFxuICAgIG1ham9yVmVyc2lvbjogYm9vbGVhbiA9IHRydWUsXG4gICAgYXNwZWN0TmFtZXM6IHN0cmluZ1tdID0gbnVsbFxuICApOiBQcm9taXNlPE5vZGVFbnRyeT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVOb2RlKCdjbTpjb250ZW50JywgbmFtZSwgcGFyZW50SWQsIHRpdGxlLCBkZXNjcmlwdGlvbiwgbnVsbCwgYXV0aG9yLCBtYWpvclZlcnNpb24sIGFzcGVjdE5hbWVzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5jcmVhdGVGaWxlLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlRmlsZXMobmFtZXM6IHN0cmluZ1tdLCByZWxhdGl2ZVBhdGggPSAnLycpOiBQcm9taXNlPE5vZGVQYWdpbmc+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlQ29udGVudCh7IGZpbGVzOiBuYW1lcyB9LCByZWxhdGl2ZVBhdGgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmNyZWF0ZUZpbGVzLm5hbWV9OiAke2Vycm9yfWApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlRm9sZGVycyhuYW1lczogc3RyaW5nW10sIHJlbGF0aXZlUGF0aCA9ICcvJyk6IFByb21pc2U8Tm9kZVBhZ2luZz4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVDb250ZW50KHsgZm9sZGVyczogbmFtZXMgfSwgcmVsYXRpdmVQYXRoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5jcmVhdGVGb2xkZXJzLm5hbWV9OiAke2Vycm9yfWApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVsZXRlRGVsZXRlZE5vZGUobmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYXBpU2VydmljZS50cmFzaENhbi5kZWxldGVEZWxldGVkTm9kZShuYW1lKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5kZWxldGVEZWxldGVkTm9kZS5uYW1lfTogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZU5vZGUoXG4gICAgbm9kZVR5cGU6IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgcGFyZW50SWQ6IHN0cmluZyA9ICctbXktJyxcbiAgICB0aXRsZTogc3RyaW5nID0gJycsXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyA9ICcnLFxuICAgIGltYWdlUHJvcHM6IGFueSA9IG51bGwsXG4gICAgYXV0aG9yOiBzdHJpbmcgPSAnJyxcbiAgICBtYWpvclZlcnNpb246IGJvb2xlYW4gPSB0cnVlLFxuICAgIGFzcGVjdE5hbWVzOiBzdHJpbmdbXSA9IG51bGxcbiAgKTogUHJvbWlzZTxOb2RlRW50cnkgfCBudWxsPiB7XG4gICAgaWYgKCFhc3BlY3ROYW1lcykge1xuICAgICAgYXNwZWN0TmFtZXMgPSBbJ2NtOnZlcnNpb25hYmxlJ107IC8vIHdvcmthcm91bmQgZm9yIFJFUE8tNDc3MlxuICAgIH1cbiAgICBjb25zdCBub2RlQm9keSA9IHtcbiAgICAgIG5hbWUsXG4gICAgICBub2RlVHlwZSxcbiAgICAgIHJlbGF0aXZlUGF0aDogJy8nLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAnY206dGl0bGUnOiB0aXRsZSxcbiAgICAgICAgJ2NtOmRlc2NyaXB0aW9uJzogZGVzY3JpcHRpb24sXG4gICAgICAgICdjbTphdXRob3InOiBhdXRob3JcbiAgICAgIH0sXG4gICAgICBhc3BlY3ROYW1lc1xuICAgIH07XG4gICAgaWYgKGltYWdlUHJvcHMpIHtcbiAgICAgIG5vZGVCb2R5LnByb3BlcnRpZXMgPSBPYmplY3QuYXNzaWduKG5vZGVCb2R5LnByb3BlcnRpZXMsIGltYWdlUHJvcHMpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLmNyZWF0ZU5vZGUocGFyZW50SWQsIG5vZGVCb2R5LCB7XG4gICAgICAgIG1ham9yVmVyc2lvblxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMuY3JlYXRlTm9kZS5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlbmFtZU5vZGUobm9kZUlkOiBzdHJpbmcsIG5ld05hbWU6IHN0cmluZyk6IFByb21pc2U8Tm9kZUVudHJ5IHwgbnVsbD4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLnVwZGF0ZU5vZGUobm9kZUlkLCB7IG5hbWU6IG5ld05hbWUgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMucmVuYW1lTm9kZS5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgbXVsdGlwbGUgbm9kZXMuXG4gICAqIEBwYXJhbSBub2RlSWRzIFRoZSBsaXN0IG9mIG5vZGUgSURzIHRvIGRlbGV0ZS5cbiAgICogQHBhcmFtIHBlcm1hbmVudCBEZWxldGUgcGVybWFuZW50bHksIHdpdGhvdXQgbW92aW5nIHRvIHRoZSB0cmFzaGNhbj8gKGRlZmF1bHQ6IHRydWUpXG4gICAqL1xuICBhc3luYyBkZWxldGVOb2Rlcyhub2RlSWRzOiBzdHJpbmdbXSwgcGVybWFuZW50OiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYXBpU2VydmljZS5ub2Rlcy5kZWxldGVOb2Rlcyhub2RlSWRzLCB7IHBlcm1hbmVudCB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5kZWxldGVOb2Rlcy5uYW1lfWAsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFsbCBub2RlcyBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyXG4gICAqIEBwYXJhbSB1c2VyTm9kZUlkIFRoZSBpZCBvZiBVc2VyIG5vZGUsIGFsbCBjaGlsZCBub2RlcyBvZiBcInVzZXJOb2RlSWRcIiB3aWxsIGJlIGdhdGhlcmVkIGFzIGEgbGlzdCBhbmQgZGVsZXRlZCAoIGUuZy46IFwiLW15LVwiIC0gVXNlciBIb21lcyBmb2xkZXIpXG4gICAqL1xuICBhc3luYyBkZWxldGVDdXJyZW50VXNlck5vZGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1c2VyTm9kZXMgPSAoYXdhaXQgdGhpcy5nZXROb2RlQ2hpbGRyZW4oJy1teS0nKSkubGlzdC5lbnRyaWVzO1xuICAgICAgY29uc3QgdXNlck5vZGVzSWRzID0gdXNlck5vZGVzLm1hcCgobm9kZUNoaWxkKSA9PiBub2RlQ2hpbGQuZW50cnkuaWQpO1xuICAgICAgYXdhaXQgdGhpcy5kZWxldGVOb2Rlcyh1c2VyTm9kZXNJZHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmRlbGV0ZUN1cnJlbnRVc2VyTm9kZXMubmFtZX1gLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9ja05vZGVzKG5vZGVJZHM6IHN0cmluZ1tdLCBsb2NrVHlwZTogc3RyaW5nID0gJ0FMTE9XX09XTkVSX0NIQU5HRVMnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3Qgbm9kZUlkIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLmxvY2tOb2RlKG5vZGVJZCwgeyB0eXBlOiBsb2NrVHlwZSB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5sb2NrTm9kZXMubmFtZX1gLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdW5sb2NrTm9kZXMobm9kZUlkczogc3RyaW5nW10pIHtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBub2RlSWQgb2Ygbm9kZUlkcykge1xuICAgICAgICBhd2FpdCB0aGlzLmFwaVNlcnZpY2Uubm9kZXMudW5sb2NrTm9kZShub2RlSWQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLnVubG9ja05vZGVzLm5hbWV9YCwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnRlbnQoY29udGVudDogTm9kZUNvbnRlbnRUcmVlLCByZWxhdGl2ZVBhdGg6IHN0cmluZyA9ICcvJyk6IFByb21pc2U8Tm9kZVBhZ2luZz4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLmNyZWF0ZU5vZGUoJy1teS0nLCBmbGF0dGVuTm9kZUNvbnRlbnRUcmVlKGNvbnRlbnQsIHJlbGF0aXZlUGF0aCkgYXMgYW55KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5jcmVhdGVDb250ZW50Lm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0Tm9kZUJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8Tm9kZUVudHJ5IHwgbnVsbD4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLmdldE5vZGUoaWQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmdldE5vZGVCeUlkLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0Tm9kZUlkRnJvbVBhcmVudChuYW1lOiBzdHJpbmcsIHBhcmVudElkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IChhd2FpdCB0aGlzLmdldE5vZGVDaGlsZHJlbihwYXJlbnRJZCkpLmxpc3QuZW50cmllcztcbiAgICAgIHJldHVybiBjaGlsZHJlbi5maW5kKChlbGVtKSA9PiBlbGVtLmVudHJ5Lm5hbWUgPT09IG5hbWUpLmVudHJ5LmlkIHx8ICcnO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQubmFtZX1gLCBlcnJvcik7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXROb2RlQ2hpbGRyZW4obm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVDaGlsZEFzc29jaWF0aW9uUGFnaW5nIHwgbnVsbD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBpbmNsdWRlOiBbJ3Byb3BlcnRpZXMnXVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uubm9kZXMubGlzdE5vZGVDaGlsZHJlbihub2RlSWQsIG9wdHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmdldE5vZGVDaGlsZHJlbi5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU5vZGVCeUlkKGlkOiBzdHJpbmcsIHBlcm1hbmVudDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLmRlbGV0ZU5vZGUoaWQsIHsgcGVybWFuZW50IH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmRlbGV0ZU5vZGVCeUlkLm5hbWV9YCwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNsZWFudXBOb2RlVGVtcGxhdGVzSXRlbXMobm9kZU5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZXNGb2xkZXJJZCA9IGF3YWl0IHRoaXMuZ2V0Tm9kZVRlbXBsYXRlc0ZvbGRlcklkKCk7XG4gICAgICBmb3IgKGNvbnN0IG5vZGVOYW1lIG9mIG5vZGVOYW1lcykge1xuICAgICAgICBjb25zdCBub2RlSWQgPSBhd2FpdCB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQobm9kZU5hbWUsIHRlbXBsYXRlc0ZvbGRlcklkKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVOb2RlQnlJZChub2RlSWQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBZG1pbiBBY3Rpb25zIC0gY2xlYW51cE5vZGVUZW1wbGF0ZXNJdGVtcyBmYWlsZWQgOiAnLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2xlYW51cFNwYWNlVGVtcGxhdGVzSXRlbXMobm9kZU5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzcGFjZVRlbXBsYXRlc05vZGVJZCA9IGF3YWl0IHRoaXMuZ2V0U3BhY2VUZW1wbGF0ZXNGb2xkZXJJZCgpO1xuICAgICAgZm9yIChjb25zdCBub2RlTmFtZSBvZiBub2RlTmFtZXMpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGFyZW50KG5vZGVOYW1lLCBzcGFjZVRlbXBsYXRlc05vZGVJZCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTm9kZUJ5SWQobm9kZUlkKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignQWRtaW4gQWN0aW9ucyAtIGNsZWFudXBTcGFjZVRlbXBsYXRlc0ZvbGRlciBmYWlsZWQgOiAnLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0Tm9kZVRlbXBsYXRlc0ZvbGRlcklkKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQoJ05vZGUgVGVtcGxhdGVzJywgYXdhaXQgdGhpcy5nZXREYXRhRGljdGlvbmFyeUlkKCkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBZG1pbiBBY3Rpb25zIC0gZ2V0Tm9kZVRlbXBsYXRlc0ZvbGRlcklkIGZhaWxlZCA6ICcsIGVycm9yKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRTcGFjZVRlbXBsYXRlc0ZvbGRlcklkKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQoJ1NwYWNlIFRlbXBsYXRlcycsIGF3YWl0IHRoaXMuZ2V0RGF0YURpY3Rpb25hcnlJZCgpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignQWRtaW4gQWN0aW9ucyAtIGdldFNwYWNlVGVtcGxhdGVzRm9sZGVySWQgZmFpbGVkIDogJywgZXJyb3IpO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGF0YURpY3Rpb25hcnlJZCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQoJ0RhdGEgRGljdGlvbmFyeScsICctcm9vdC0nKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkbWluIEFjdGlvbnMgLSBnZXREYXRhRGljdGlvbmFyeUlkIGZhaWxlZCA6ICcsIGVycm9yKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldEdyYW51bGFyUGVybWlzc2lvbihub2RlSWQ6IHN0cmluZywgaW5oZXJpdFBlcm1pc3Npb25zOiBib29sZWFuID0gZmFsc2UsIHVzZXJuYW1lOiBzdHJpbmcsIHJvbGU6IHN0cmluZyk6IFByb21pc2U8Tm9kZUVudHJ5IHwgbnVsbD4ge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBpc0luaGVyaXRhbmNlRW5hYmxlZDogaW5oZXJpdFBlcm1pc3Npb25zLFxuICAgICAgICBsb2NhbGx5U2V0OiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXV0aG9yaXR5SWQ6IHVzZXJuYW1lLFxuICAgICAgICAgICAgbmFtZTogcm9sZVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5ub2Rlcy51cGRhdGVOb2RlKG5vZGVJZCwgZGF0YSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMuc2V0R3JhbnVsYXJQZXJtaXNzaW9uLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVtb3ZlVXNlckFjY2Vzc09uTm9kZVRlbXBsYXRlKG5vZGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZXNSb290Rm9sZGVySWQgPSBhd2FpdCB0aGlzLmdldE5vZGVUZW1wbGF0ZXNGb2xkZXJJZCgpO1xuICAgICAgY29uc3Qgbm9kZUlkOiBzdHJpbmcgPSBhd2FpdCB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQobm9kZU5hbWUsIHRlbXBsYXRlc1Jvb3RGb2xkZXJJZCk7XG5cbiAgICAgIHJldHVybiB0aGlzLnNldEluaGVyaXRQZXJtaXNzaW9ucyhub2RlSWQsIGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignQWRtaW4gQWN0aW9ucyAtIHJlbW92ZVVzZXJBY2Nlc3NPbk5vZGVUZW1wbGF0ZSBmYWlsZWQgOiAnLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZW1vdmVVc2VyQWNjZXNzT25TcGFjZVRlbXBsYXRlKG5vZGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZXNSb290Rm9sZGVySWQgPSBhd2FpdCB0aGlzLmdldFNwYWNlVGVtcGxhdGVzRm9sZGVySWQoKTtcbiAgICAgIGNvbnN0IG5vZGVJZDogc3RyaW5nID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGFyZW50KG5vZGVOYW1lLCB0ZW1wbGF0ZXNSb290Rm9sZGVySWQpO1xuXG4gICAgICByZXR1cm4gdGhpcy5zZXRJbmhlcml0UGVybWlzc2lvbnMobm9kZUlkLCBmYWxzZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkbWluIEFjdGlvbnMgLSByZW1vdmVVc2VyQWNjZXNzT25TcGFjZVRlbXBsYXRlIGZhaWxlZCA6ICcsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNldEluaGVyaXRQZXJtaXNzaW9ucyhub2RlSWQ6IHN0cmluZywgaW5oZXJpdFBlcm1pc3Npb25zOiBib29sZWFuKTogUHJvbWlzZTxOb2RlRW50cnkgfCBudWxsPiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGlzSW5oZXJpdGFuY2VFbmFibGVkOiBpbmhlcml0UGVybWlzc2lvbnNcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uubm9kZXMudXBkYXRlTm9kZShub2RlSWQsIGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLnNldEluaGVyaXRQZXJtaXNzaW9ucy5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkQXNwZWN0cyhub2RlSWQ6IHN0cmluZywgYXNwZWN0TmFtZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxOb2RlRW50cnk+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5ub2Rlcy51cGRhdGVOb2RlKG5vZGVJZCwgeyBhc3BlY3ROYW1lcyB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5hZGRBc3BlY3RzLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlRmlsZUxpbmsob3JpZ2luYWxOb2RlSWQ6IHN0cmluZywgZGVzdGluYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxOb2RlRW50cnkgfCBudWxsPiB7XG4gICAgY29uc3QgbmFtZSA9IChhd2FpdCB0aGlzLmdldE5vZGVCeUlkKG9yaWdpbmFsTm9kZUlkKSkuZW50cnkubmFtZTtcbiAgICBjb25zdCBub2RlQm9keSA9IHtcbiAgICAgIG5hbWU6IGBMaW5rIHRvICR7bmFtZX0udXJsYCxcbiAgICAgIG5vZGVUeXBlOiAnYXBwOmZpbGVsaW5rJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgJ2NtOmRlc3RpbmF0aW9uJzogb3JpZ2luYWxOb2RlSWRcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2Uubm9kZXMuY3JlYXRlTm9kZShkZXN0aW5hdGlvbklkLCBub2RlQm9keSk7XG4gICAgICBhd2FpdCB0aGlzLmFkZEFzcGVjdHMob3JpZ2luYWxOb2RlSWQsIFsnYXBwOmxpbmtlZCddKTtcbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmNyZWF0ZUZpbGVMaW5rLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlRm9sZGVyTGluayhvcmlnaW5hbE5vZGVJZDogc3RyaW5nLCBkZXN0aW5hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeSB8IG51bGw+IHtcbiAgICBjb25zdCBuYW1lID0gKGF3YWl0IHRoaXMuZ2V0Tm9kZUJ5SWQob3JpZ2luYWxOb2RlSWQpKS5lbnRyeS5uYW1lO1xuICAgIGNvbnN0IG5vZGVCb2R5ID0ge1xuICAgICAgbmFtZTogYExpbmsgdG8gJHtuYW1lfS51cmxgLFxuICAgICAgbm9kZVR5cGU6ICdhcHA6Zm9sZGVybGluaycsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICdjbTp0aXRsZSc6IGBMaW5rIHRvICR7bmFtZX0udXJsYCxcbiAgICAgICAgJ2NtOmRlc3RpbmF0aW9uJzogb3JpZ2luYWxOb2RlSWQsXG4gICAgICAgICdjbTpkZXNjcmlwdGlvbic6IGBMaW5rIHRvICR7bmFtZX0udXJsYCxcbiAgICAgICAgJ2FwcDppY29uJzogJ3NwYWNlLWljb24tbGluaydcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2Uubm9kZXMuY3JlYXRlTm9kZShkZXN0aW5hdGlvbklkLCBub2RlQm9keSk7XG4gICAgICBhd2FpdCB0aGlzLmFkZEFzcGVjdHMob3JpZ2luYWxOb2RlSWQsIFsnYXBwOmxpbmtlZCddKTtcbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmNyZWF0ZUZvbGRlckxpbmsubmFtZX1gLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVMaW5rVG9GaWxlTmFtZShvcmlnaW5hbEZpbGVOYW1lOiBzdHJpbmcsIG9yaWdpbmFsRmlsZVBhcmVudElkOiBzdHJpbmcsIGRlc3RpbmF0aW9uUGFyZW50SWQ/OiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeT4ge1xuICAgIGRlc3RpbmF0aW9uUGFyZW50SWQgPz89IG9yaWdpbmFsRmlsZVBhcmVudElkO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5vZGVJZCA9IGF3YWl0IHRoaXMuZ2V0Tm9kZUlkRnJvbVBhcmVudChvcmlnaW5hbEZpbGVOYW1lLCBvcmlnaW5hbEZpbGVQYXJlbnRJZCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZpbGVMaW5rKG5vZGVJZCwgZGVzdGluYXRpb25QYXJlbnRJZCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkbWluIEFjdGlvbnMgLSBjcmVhdGVMaW5rVG9GaWxlTmFtZSBmYWlsZWQgOiAnLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVMaW5rVG9Gb2xkZXJOYW1lKG9yaWdpbmFsRm9sZGVyTmFtZTogc3RyaW5nLCBvcmlnaW5hbEZvbGRlclBhcmVudElkOiBzdHJpbmcsIGRlc3RpbmF0aW9uUGFyZW50SWQ/OiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeT4ge1xuICAgIGRlc3RpbmF0aW9uUGFyZW50SWQgPz89IG9yaWdpbmFsRm9sZGVyUGFyZW50SWQ7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgbm9kZUlkID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGFyZW50KG9yaWdpbmFsRm9sZGVyTmFtZSwgb3JpZ2luYWxGb2xkZXJQYXJlbnRJZCk7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVGb2xkZXJMaW5rKG5vZGVJZCwgZGVzdGluYXRpb25QYXJlbnRJZCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkbWluIEFjdGlvbnMgLSBjcmVhdGVMaW5rVG9Gb2xkZXJOYW1lIGZhaWxlZCA6ICcsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldE5vZGVQcm9wZXJ0eShub2RlSWQ6IHN0cmluZywgcHJvcGVydHk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBhd2FpdCB0aGlzLmdldE5vZGVCeUlkKG5vZGVJZCk7XG4gICAgICByZXR1cm4gbm9kZS5lbnRyeS5wcm9wZXJ0aWVzPy5bcHJvcGVydHldIHx8ICcnO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmdldE5vZGVQcm9wZXJ0eS5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBhc3luYyBpc0ZpbGVTaGFyZWQobm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2hhcmVkSWQgPSBhd2FpdCB0aGlzLmdldE5vZGVQcm9wZXJ0eShub2RlSWQsICdxc2hhcmU6c2hhcmVkSWQnKTtcbiAgICAgIHJldHVybiBzaGFyZWRJZCAhPT0gJyc7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMuaXNGaWxlU2hhcmVkLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRMb2NrVHlwZShub2RlSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxvY2tUeXBlID0gYXdhaXQgdGhpcy5nZXROb2RlUHJvcGVydHkobm9kZUlkLCAnY206bG9ja1R5cGUnKTtcbiAgICAgIHJldHVybiBsb2NrVHlwZSB8fCAnJztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5nZXRMb2NrVHlwZS5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBhc3luYyBpc0ZpbGVMb2NrZWRXcml0ZShub2RlSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0TG9ja1R5cGUobm9kZUlkKSkgPT09ICdXUklURV9MT0NLJztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5pc0ZpbGVMb2NrZWRXcml0ZS5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
437
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXBsYXl3cmlnaHQtc2hhcmVkL3NyYy9hcGkvbm9kZXMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUFtQixzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlFLE1BQU0sT0FBTyxRQUFRO0lBQ1gsVUFBVSxDQUFtQjtJQUVyQztRQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFnQixFQUFFLFFBQWlCO1FBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQ2hCLElBQVksRUFDWixXQUFtQixNQUFNLEVBQ3pCLFFBQWdCLEVBQUUsRUFDbEIsY0FBc0IsRUFBRSxFQUN4QixTQUFpQixFQUFFLEVBQ25CLGNBQXdCLElBQUk7UUFFNUIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJ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QUNkLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1FBQ3RDLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDbkUsT0FBTyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDMUUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFjO1FBQ3BDLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxZQUFZLENBQUM7UUFDM0QsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBBcGlDbGllbnRGYWN0b3J5IH0gZnJvbSAnLi9hcGktY2xpZW50LWZhY3RvcnknO1xuaW1wb3J0IHsgTm9kZUNoaWxkQXNzb2NpYXRpb25QYWdpbmcsIE5vZGVFbnRyeSwgTm9kZVBhZ2luZywgTm9kZXNJbmNsdWRlUXVlcnksIE5vZGVCb2R5VXBkYXRlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBOb2RlQ29udGVudFRyZWUsIGZsYXR0ZW5Ob2RlQ29udGVudFRyZWUgfSBmcm9tICcuL25vZGUtY29udGVudC10cmVlJztcblxuZXhwb3J0IGNsYXNzIE5vZGVzQXBpIHtcbiAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlDbGllbnRGYWN0b3J5O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYXBpU2VydmljZSA9IG5ldyBBcGlDbGllbnRGYWN0b3J5KCk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZSh1c2VyTmFtZTogc3RyaW5nLCBwYXNzd29yZD86IHN0cmluZyk6IFByb21pc2U8Tm9kZXNBcGk+IHtcbiAgICBjb25zdCBjbGFzc09iaiA9IG5ldyBOb2Rlc0FwaSgpO1xuICAgIGF3YWl0IGNsYXNzT2JqLmFwaVNlcnZpY2Uuc2V0VXBBY2FCYWNrZW5kKHVzZXJOYW1lLCBwYXNzd29yZCk7XG4gICAgcmV0dXJuIGNsYXNzT2JqO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRm9sZGVyKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwYXJlbnRJZDogc3RyaW5nID0gJy1teS0nLFxuICAgIHRpdGxlOiBzdHJpbmcgPSAnJyxcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gJycsXG4gICAgYXV0aG9yOiBzdHJpbmcgPSAnJyxcbiAgICBhc3BlY3ROYW1lczogc3RyaW5nW10gPSBudWxsXG4gICk6IFByb21pc2U8Tm9kZUVudHJ5IHwgbnVsbD4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVOb2RlKCdjbTpmb2xkZXInLCBuYW1lLCBwYXJlbnRJZCwgdGl0bGUsIGRlc2NyaXB0aW9uLCBudWxsLCBhdXRob3IsIG51bGwsIGFzcGVjdE5hbWVzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5jcmVhdGVGb2xkZXIubmFtZX1gLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVGaWxlKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwYXJlbnRJZDogc3RyaW5nID0gJy1teS0nLFxuICAgIHRpdGxlOiBzdHJpbmcgPSAnJyxcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gJycsXG4gICAgYXV0aG9yOiBzdHJpbmcgPSAnJyxcbiAgICBtYWpvclZlcnNpb246IGJvb2xlYW4gPSB0cnVlLFxuICAgIGFzcGVjdE5hbWVzOiBzdHJpbmdbXSA9IG51bGxcbiAgKTogUHJvbWlzZTxOb2RlRW50cnk+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlTm9kZSgnY206Y29udGVudCcsIG5hbWUsIHBhcmVudElkLCB0aXRsZSwgZGVzY3JpcHRpb24sIG51bGwsIGF1dGhvciwgbWFqb3JWZXJzaW9uLCBhc3BlY3ROYW1lcyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMuY3JlYXRlRmlsZS5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUZpbGVzKG5hbWVzOiBzdHJpbmdbXSwgcmVsYXRpdmVQYXRoID0gJy8nKTogUHJvbWlzZTxOb2RlUGFnaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNyZWF0ZUNvbnRlbnQoeyBmaWxlczogbmFtZXMgfSwgcmVsYXRpdmVQYXRoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5jcmVhdGVGaWxlcy5uYW1lfTogJHtlcnJvcn1gKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUZvbGRlcnMobmFtZXM6IHN0cmluZ1tdLCByZWxhdGl2ZVBhdGggPSAnLycpOiBQcm9taXNlPE5vZGVQYWdpbmc+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlQ29udGVudCh7IGZvbGRlcnM6IG5hbWVzIH0sIHJlbGF0aXZlUGF0aCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMuY3JlYXRlRm9sZGVycy5uYW1lfTogJHtlcnJvcn1gKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZURlbGV0ZWROb2RlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmFwaVNlcnZpY2UudHJhc2hDYW4uZGVsZXRlRGVsZXRlZE5vZGUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMuZGVsZXRlRGVsZXRlZE5vZGUubmFtZX06ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVOb2RlKFxuICAgIG5vZGVUeXBlOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHBhcmVudElkOiBzdHJpbmcgPSAnLW15LScsXG4gICAgdGl0bGU6IHN0cmluZyA9ICcnLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJyxcbiAgICBpbWFnZVByb3BzOiBhbnkgPSBudWxsLFxuICAgIGF1dGhvcjogc3RyaW5nID0gJycsXG4gICAgbWFqb3JWZXJzaW9uOiBib29sZWFuID0gdHJ1ZSxcbiAgICBhc3BlY3ROYW1lczogc3RyaW5nW10gPSBudWxsXG4gICk6IFByb21pc2U8Tm9kZUVudHJ5IHwgbnVsbD4ge1xuICAgIGlmICghYXNwZWN0TmFtZXMpIHtcbiAgICAgIGFzcGVjdE5hbWVzID0gWydjbTp2ZXJzaW9uYWJsZSddOyAvLyB3b3JrYXJvdW5kIGZvciBSRVBPLTQ3NzJcbiAgICB9XG4gICAgY29uc3Qgbm9kZUJvZHkgPSB7XG4gICAgICBuYW1lLFxuICAgICAgbm9kZVR5cGUsXG4gICAgICByZWxhdGl2ZVBhdGg6ICcvJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgJ2NtOnRpdGxlJzogdGl0bGUsXG4gICAgICAgICdjbTpkZXNjcmlwdGlvbic6IGRlc2NyaXB0aW9uLFxuICAgICAgICAnY206YXV0aG9yJzogYXV0aG9yXG4gICAgICB9LFxuICAgICAgYXNwZWN0TmFtZXNcbiAgICB9O1xuICAgIGlmIChpbWFnZVByb3BzKSB7XG4gICAgICBub2RlQm9keS5wcm9wZXJ0aWVzID0gT2JqZWN0LmFzc2lnbihub2RlQm9keS5wcm9wZXJ0aWVzLCBpbWFnZVByb3BzKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5ub2Rlcy5jcmVhdGVOb2RlKHBhcmVudElkLCBub2RlQm9keSwge1xuICAgICAgICBtYWpvclZlcnNpb25cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmNyZWF0ZU5vZGUubmFtZX1gLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZW5hbWVOb2RlKG5vZGVJZDogc3RyaW5nLCBuZXdOYW1lOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeSB8IG51bGw+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5ub2Rlcy51cGRhdGVOb2RlKG5vZGVJZCwgeyBuYW1lOiBuZXdOYW1lIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLnJlbmFtZU5vZGUubmFtZX1gLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIG11bHRpcGxlIG5vZGVzLlxuICAgKiBAcGFyYW0gbm9kZUlkcyBUaGUgbGlzdCBvZiBub2RlIElEcyB0byBkZWxldGUuXG4gICAqIEBwYXJhbSBwZXJtYW5lbnQgRGVsZXRlIHBlcm1hbmVudGx5LCB3aXRob3V0IG1vdmluZyB0byB0aGUgdHJhc2hjYW4/IChkZWZhdWx0OiB0cnVlKVxuICAgKi9cbiAgYXN5bmMgZGVsZXRlTm9kZXMobm9kZUlkczogc3RyaW5nW10sIHBlcm1hbmVudDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmFwaVNlcnZpY2Uubm9kZXMuZGVsZXRlTm9kZXMobm9kZUlkcywgeyBwZXJtYW5lbnQgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMuZGVsZXRlTm9kZXMubmFtZX1gLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlTm9kZShub2RlSWQ6IHN0cmluZywgbm9kZUJvZHlVcGRhdGU6IE5vZGVCb2R5VXBkYXRlLCBvcHRzPzogTm9kZXNJbmNsdWRlUXVlcnkpOiBQcm9taXNlPE5vZGVFbnRyeSB8IG51bGw+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYXBpU2VydmljZS5ub2Rlcy51cGRhdGVOb2RlKG5vZGVJZCwgbm9kZUJvZHlVcGRhdGUsIG9wdHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLnVwZGF0ZU5vZGUubmFtZX1gLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFsbCBub2RlcyBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyXG4gICAqIEBwYXJhbSB1c2VyTm9kZUlkIFRoZSBpZCBvZiBVc2VyIG5vZGUsIGFsbCBjaGlsZCBub2RlcyBvZiBcInVzZXJOb2RlSWRcIiB3aWxsIGJlIGdhdGhlcmVkIGFzIGEgbGlzdCBhbmQgZGVsZXRlZCAoIGUuZy46IFwiLW15LVwiIC0gVXNlciBIb21lcyBmb2xkZXIpXG4gICAqL1xuICBhc3luYyBkZWxldGVDdXJyZW50VXNlck5vZGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1c2VyTm9kZXMgPSAoYXdhaXQgdGhpcy5nZXROb2RlQ2hpbGRyZW4oJy1teS0nKSkubGlzdC5lbnRyaWVzO1xuICAgICAgY29uc3QgdXNlck5vZGVzSWRzID0gdXNlck5vZGVzLm1hcCgobm9kZUNoaWxkKSA9PiBub2RlQ2hpbGQuZW50cnkuaWQpO1xuICAgICAgYXdhaXQgdGhpcy5kZWxldGVOb2Rlcyh1c2VyTm9kZXNJZHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmRlbGV0ZUN1cnJlbnRVc2VyTm9kZXMubmFtZX1gLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9ja05vZGVzKG5vZGVJZHM6IHN0cmluZ1tdLCBsb2NrVHlwZTogc3RyaW5nID0gJ0FMTE9XX09XTkVSX0NIQU5HRVMnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3Qgbm9kZUlkIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLmxvY2tOb2RlKG5vZGVJZCwgeyB0eXBlOiBsb2NrVHlwZSB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5sb2NrTm9kZXMubmFtZX1gLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdW5sb2NrTm9kZXMobm9kZUlkczogc3RyaW5nW10pIHtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBub2RlSWQgb2Ygbm9kZUlkcykge1xuICAgICAgICBhd2FpdCB0aGlzLmFwaVNlcnZpY2Uubm9kZXMudW5sb2NrTm9kZShub2RlSWQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLnVubG9ja05vZGVzLm5hbWV9YCwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnRlbnQoY29udGVudDogTm9kZUNvbnRlbnRUcmVlLCByZWxhdGl2ZVBhdGg6IHN0cmluZyA9ICcvJyk6IFByb21pc2U8Tm9kZVBhZ2luZz4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLmNyZWF0ZU5vZGUoJy1teS0nLCBmbGF0dGVuTm9kZUNvbnRlbnRUcmVlKGNvbnRlbnQsIHJlbGF0aXZlUGF0aCkgYXMgYW55KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5jcmVhdGVDb250ZW50Lm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0Tm9kZUJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8Tm9kZUVudHJ5IHwgbnVsbD4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLmdldE5vZGUoaWQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmdldE5vZGVCeUlkLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0Tm9kZUlkRnJvbVBhcmVudChuYW1lOiBzdHJpbmcsIHBhcmVudElkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IChhd2FpdCB0aGlzLmdldE5vZGVDaGlsZHJlbihwYXJlbnRJZCkpLmxpc3QuZW50cmllcztcbiAgICAgIHJldHVybiBjaGlsZHJlbi5maW5kKChlbGVtKSA9PiBlbGVtLmVudHJ5Lm5hbWUgPT09IG5hbWUpLmVudHJ5LmlkIHx8ICcnO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQubmFtZX1gLCBlcnJvcik7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXROb2RlQ2hpbGRyZW4obm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVDaGlsZEFzc29jaWF0aW9uUGFnaW5nIHwgbnVsbD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBpbmNsdWRlOiBbJ3Byb3BlcnRpZXMnXVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uubm9kZXMubGlzdE5vZGVDaGlsZHJlbihub2RlSWQsIG9wdHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmdldE5vZGVDaGlsZHJlbi5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU5vZGVCeUlkKGlkOiBzdHJpbmcsIHBlcm1hbmVudDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLm5vZGVzLmRlbGV0ZU5vZGUoaWQsIHsgcGVybWFuZW50IH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmRlbGV0ZU5vZGVCeUlkLm5hbWV9YCwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNsZWFudXBOb2RlVGVtcGxhdGVzSXRlbXMobm9kZU5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZXNGb2xkZXJJZCA9IGF3YWl0IHRoaXMuZ2V0Tm9kZVRlbXBsYXRlc0ZvbGRlcklkKCk7XG4gICAgICBmb3IgKGNvbnN0IG5vZGVOYW1lIG9mIG5vZGVOYW1lcykge1xuICAgICAgICBjb25zdCBub2RlSWQgPSBhd2FpdCB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQobm9kZU5hbWUsIHRlbXBsYXRlc0ZvbGRlcklkKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVOb2RlQnlJZChub2RlSWQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBZG1pbiBBY3Rpb25zIC0gY2xlYW51cE5vZGVUZW1wbGF0ZXNJdGVtcyBmYWlsZWQgOiAnLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2xlYW51cFNwYWNlVGVtcGxhdGVzSXRlbXMobm9kZU5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzcGFjZVRlbXBsYXRlc05vZGVJZCA9IGF3YWl0IHRoaXMuZ2V0U3BhY2VUZW1wbGF0ZXNGb2xkZXJJZCgpO1xuICAgICAgZm9yIChjb25zdCBub2RlTmFtZSBvZiBub2RlTmFtZXMpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGFyZW50KG5vZGVOYW1lLCBzcGFjZVRlbXBsYXRlc05vZGVJZCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTm9kZUJ5SWQobm9kZUlkKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignQWRtaW4gQWN0aW9ucyAtIGNsZWFudXBTcGFjZVRlbXBsYXRlc0ZvbGRlciBmYWlsZWQgOiAnLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0Tm9kZVRlbXBsYXRlc0ZvbGRlcklkKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQoJ05vZGUgVGVtcGxhdGVzJywgYXdhaXQgdGhpcy5nZXREYXRhRGljdGlvbmFyeUlkKCkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBZG1pbiBBY3Rpb25zIC0gZ2V0Tm9kZVRlbXBsYXRlc0ZvbGRlcklkIGZhaWxlZCA6ICcsIGVycm9yKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRTcGFjZVRlbXBsYXRlc0ZvbGRlcklkKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQoJ1NwYWNlIFRlbXBsYXRlcycsIGF3YWl0IHRoaXMuZ2V0RGF0YURpY3Rpb25hcnlJZCgpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignQWRtaW4gQWN0aW9ucyAtIGdldFNwYWNlVGVtcGxhdGVzRm9sZGVySWQgZmFpbGVkIDogJywgZXJyb3IpO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGF0YURpY3Rpb25hcnlJZCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQoJ0RhdGEgRGljdGlvbmFyeScsICctcm9vdC0nKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkbWluIEFjdGlvbnMgLSBnZXREYXRhRGljdGlvbmFyeUlkIGZhaWxlZCA6ICcsIGVycm9yKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldEdyYW51bGFyUGVybWlzc2lvbihub2RlSWQ6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgcm9sZTogc3RyaW5nLCBpbmhlcml0UGVybWlzc2lvbnMgPSBmYWxzZSk6IFByb21pc2U8Tm9kZUVudHJ5IHwgbnVsbD4ge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBpc0luaGVyaXRhbmNlRW5hYmxlZDogaW5oZXJpdFBlcm1pc3Npb25zLFxuICAgICAgICBsb2NhbGx5U2V0OiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXV0aG9yaXR5SWQ6IHVzZXJuYW1lLFxuICAgICAgICAgICAgbmFtZTogcm9sZVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5ub2Rlcy51cGRhdGVOb2RlKG5vZGVJZCwgZGF0YSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMuc2V0R3JhbnVsYXJQZXJtaXNzaW9uLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVtb3ZlVXNlckFjY2Vzc09uTm9kZVRlbXBsYXRlKG5vZGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZXNSb290Rm9sZGVySWQgPSBhd2FpdCB0aGlzLmdldE5vZGVUZW1wbGF0ZXNGb2xkZXJJZCgpO1xuICAgICAgY29uc3Qgbm9kZUlkOiBzdHJpbmcgPSBhd2FpdCB0aGlzLmdldE5vZGVJZEZyb21QYXJlbnQobm9kZU5hbWUsIHRlbXBsYXRlc1Jvb3RGb2xkZXJJZCk7XG5cbiAgICAgIHJldHVybiB0aGlzLnNldEluaGVyaXRQZXJtaXNzaW9ucyhub2RlSWQsIGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignQWRtaW4gQWN0aW9ucyAtIHJlbW92ZVVzZXJBY2Nlc3NPbk5vZGVUZW1wbGF0ZSBmYWlsZWQgOiAnLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZW1vdmVVc2VyQWNjZXNzT25TcGFjZVRlbXBsYXRlKG5vZGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZXNSb290Rm9sZGVySWQgPSBhd2FpdCB0aGlzLmdldFNwYWNlVGVtcGxhdGVzRm9sZGVySWQoKTtcbiAgICAgIGNvbnN0IG5vZGVJZDogc3RyaW5nID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGFyZW50KG5vZGVOYW1lLCB0ZW1wbGF0ZXNSb290Rm9sZGVySWQpO1xuXG4gICAgICByZXR1cm4gdGhpcy5zZXRJbmhlcml0UGVybWlzc2lvbnMobm9kZUlkLCBmYWxzZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkbWluIEFjdGlvbnMgLSByZW1vdmVVc2VyQWNjZXNzT25TcGFjZVRlbXBsYXRlIGZhaWxlZCA6ICcsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNldEluaGVyaXRQZXJtaXNzaW9ucyhub2RlSWQ6IHN0cmluZywgaW5oZXJpdFBlcm1pc3Npb25zOiBib29sZWFuKTogUHJvbWlzZTxOb2RlRW50cnkgfCBudWxsPiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGlzSW5oZXJpdGFuY2VFbmFibGVkOiBpbmhlcml0UGVybWlzc2lvbnNcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uubm9kZXMudXBkYXRlTm9kZShub2RlSWQsIGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLnNldEluaGVyaXRQZXJtaXNzaW9ucy5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkQXNwZWN0cyhub2RlSWQ6IHN0cmluZywgYXNwZWN0TmFtZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxOb2RlRW50cnk+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5ub2Rlcy51cGRhdGVOb2RlKG5vZGVJZCwgeyBhc3BlY3ROYW1lcyB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5hZGRBc3BlY3RzLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlRmlsZUxpbmsob3JpZ2luYWxOb2RlSWQ6IHN0cmluZywgZGVzdGluYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxOb2RlRW50cnkgfCBudWxsPiB7XG4gICAgY29uc3QgbmFtZSA9IChhd2FpdCB0aGlzLmdldE5vZGVCeUlkKG9yaWdpbmFsTm9kZUlkKSkuZW50cnkubmFtZTtcbiAgICBjb25zdCBub2RlQm9keSA9IHtcbiAgICAgIG5hbWU6IGBMaW5rIHRvICR7bmFtZX0udXJsYCxcbiAgICAgIG5vZGVUeXBlOiAnYXBwOmZpbGVsaW5rJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgJ2NtOmRlc3RpbmF0aW9uJzogb3JpZ2luYWxOb2RlSWRcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2Uubm9kZXMuY3JlYXRlTm9kZShkZXN0aW5hdGlvbklkLCBub2RlQm9keSk7XG4gICAgICBhd2FpdCB0aGlzLmFkZEFzcGVjdHMob3JpZ2luYWxOb2RlSWQsIFsnYXBwOmxpbmtlZCddKTtcbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmNyZWF0ZUZpbGVMaW5rLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlRm9sZGVyTGluayhvcmlnaW5hbE5vZGVJZDogc3RyaW5nLCBkZXN0aW5hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeSB8IG51bGw+IHtcbiAgICBjb25zdCBuYW1lID0gKGF3YWl0IHRoaXMuZ2V0Tm9kZUJ5SWQob3JpZ2luYWxOb2RlSWQpKS5lbnRyeS5uYW1lO1xuICAgIGNvbnN0IG5vZGVCb2R5ID0ge1xuICAgICAgbmFtZTogYExpbmsgdG8gJHtuYW1lfS51cmxgLFxuICAgICAgbm9kZVR5cGU6ICdhcHA6Zm9sZGVybGluaycsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICdjbTp0aXRsZSc6IGBMaW5rIHRvICR7bmFtZX0udXJsYCxcbiAgICAgICAgJ2NtOmRlc3RpbmF0aW9uJzogb3JpZ2luYWxOb2RlSWQsXG4gICAgICAgICdjbTpkZXNjcmlwdGlvbic6IGBMaW5rIHRvICR7bmFtZX0udXJsYCxcbiAgICAgICAgJ2FwcDppY29uJzogJ3NwYWNlLWljb24tbGluaydcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2Uubm9kZXMuY3JlYXRlTm9kZShkZXN0aW5hdGlvbklkLCBub2RlQm9keSk7XG4gICAgICBhd2FpdCB0aGlzLmFkZEFzcGVjdHMob3JpZ2luYWxOb2RlSWQsIFsnYXBwOmxpbmtlZCddKTtcbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmNyZWF0ZUZvbGRlckxpbmsubmFtZX1gLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVMaW5rVG9GaWxlTmFtZShvcmlnaW5hbEZpbGVOYW1lOiBzdHJpbmcsIG9yaWdpbmFsRmlsZVBhcmVudElkOiBzdHJpbmcsIGRlc3RpbmF0aW9uUGFyZW50SWQ/OiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeT4ge1xuICAgIGRlc3RpbmF0aW9uUGFyZW50SWQgPz89IG9yaWdpbmFsRmlsZVBhcmVudElkO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5vZGVJZCA9IGF3YWl0IHRoaXMuZ2V0Tm9kZUlkRnJvbVBhcmVudChvcmlnaW5hbEZpbGVOYW1lLCBvcmlnaW5hbEZpbGVQYXJlbnRJZCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZpbGVMaW5rKG5vZGVJZCwgZGVzdGluYXRpb25QYXJlbnRJZCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkbWluIEFjdGlvbnMgLSBjcmVhdGVMaW5rVG9GaWxlTmFtZSBmYWlsZWQgOiAnLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVMaW5rVG9Gb2xkZXJOYW1lKG9yaWdpbmFsRm9sZGVyTmFtZTogc3RyaW5nLCBvcmlnaW5hbEZvbGRlclBhcmVudElkOiBzdHJpbmcsIGRlc3RpbmF0aW9uUGFyZW50SWQ/OiBzdHJpbmcpOiBQcm9taXNlPE5vZGVFbnRyeT4ge1xuICAgIGRlc3RpbmF0aW9uUGFyZW50SWQgPz89IG9yaWdpbmFsRm9sZGVyUGFyZW50SWQ7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgbm9kZUlkID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGFyZW50KG9yaWdpbmFsRm9sZGVyTmFtZSwgb3JpZ2luYWxGb2xkZXJQYXJlbnRJZCk7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVGb2xkZXJMaW5rKG5vZGVJZCwgZGVzdGluYXRpb25QYXJlbnRJZCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkbWluIEFjdGlvbnMgLSBjcmVhdGVMaW5rVG9Gb2xkZXJOYW1lIGZhaWxlZCA6ICcsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldE5vZGVQcm9wZXJ0eShub2RlSWQ6IHN0cmluZywgcHJvcGVydHk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBhd2FpdCB0aGlzLmdldE5vZGVCeUlkKG5vZGVJZCk7XG4gICAgICByZXR1cm4gbm9kZS5lbnRyeS5wcm9wZXJ0aWVzPy5bcHJvcGVydHldIHx8ICcnO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmdldE5vZGVQcm9wZXJ0eS5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBhc3luYyBpc0ZpbGVTaGFyZWQobm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2hhcmVkSWQgPSBhd2FpdCB0aGlzLmdldE5vZGVQcm9wZXJ0eShub2RlSWQsICdxc2hhcmU6c2hhcmVkSWQnKTtcbiAgICAgIHJldHVybiBzaGFyZWRJZCAhPT0gJyc7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMuaXNGaWxlU2hhcmVkLm5hbWV9YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRMb2NrVHlwZShub2RlSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxvY2tUeXBlID0gYXdhaXQgdGhpcy5nZXROb2RlUHJvcGVydHkobm9kZUlkLCAnY206bG9ja1R5cGUnKTtcbiAgICAgIHJldHVybiBsb2NrVHlwZSB8fCAnJztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5nZXRMb2NrVHlwZS5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBhc3luYyBpc0ZpbGVMb2NrZWRXcml0ZShub2RlSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0TG9ja1R5cGUobm9kZUlkKSkgPT09ICdXUklURV9MT0NLJztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5pc0ZpbGVMb2NrZWRXcml0ZS5uYW1lfWAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -74,6 +74,10 @@ export class AdfInfoDrawerComponent extends BaseComponent {
|
|
|
74
74
|
categoriesListItems = this.categoriesManagement.locator('.adf-category');
|
|
75
75
|
categoriesItemRemoveButton = this.categoriesManagement.locator('[data-automation-id="categories-remove-category-button"]');
|
|
76
76
|
categoriesCreatedList = this.getChild('.adf-metadata-categories');
|
|
77
|
+
generalInfoAccordion = this.getChild('[data-automation-id="adf-metadata-group-properties"]');
|
|
78
|
+
generalInfoProperties = this.generalInfoAccordion.locator('.adf-property');
|
|
79
|
+
exifInfoAccordion = this.getChild('[data-automation-id="adf-metadata-group-APP.CONTENT_METADATA.EXIF_GROUP_TITLE"]');
|
|
80
|
+
exifInfoProperties = this.exifInfoAccordion.locator('.adf-property');
|
|
77
81
|
async checkCommentsHeaderCount() {
|
|
78
82
|
const commentsCountTextContent = await this.commentsHeader.textContent();
|
|
79
83
|
const commentsCountString = commentsCountTextContent.match(/\d+/g)[0];
|
|
@@ -96,4 +100,4 @@ export class AdfInfoDrawerComponent extends BaseComponent {
|
|
|
96
100
|
return this.infoDrawerTabs.count();
|
|
97
101
|
}
|
|
98
102
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRmLWluZm8tZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1wbGF5d3JpZ2h0LXNoYXJlZC9zcmMvcGFnZS1vYmplY3RzL2NvbXBvbmVudHMvYWRmLWluZm8tZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQUMvQyxNQUFNLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDO0lBRS9DLFlBQVksSUFBVTtRQUNwQixLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFZ0Isb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ2xFLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFMUQsWUFBWSxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsNkVBQTZFLFNBQVMsSUFBSSxDQUFDLENBQUM7SUFDckcsVUFBVSxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQywyRUFBMkUsU0FBUyxJQUFJLENBQUMsQ0FBQztJQUM1SSxrQkFBa0IsR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1HQUFtRyxTQUFTLElBQUksQ0FBQyxDQUFDO0lBQzNILG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsd0VBQXdFLENBQUMsQ0FBQztJQUM5RyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUks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RXpFLEtBQUssQ0FBQyx3QkFBd0I7UUFDNUIsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekUsTUFBTSxtQkFBbUIsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsT0FBTyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyx3QkFBd0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtRQUNuQixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFtQjtRQUN4QyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0MsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ0BwbGF5d3JpZ2h0L3Rlc3QnO1xuXG5leHBvcnQgY2xhc3MgQWRmSW5mb0RyYXdlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBwcml2YXRlIHN0YXRpYyByb290RWxlbWVudCA9ICdhZGYtaW5mby1kcmF3ZXInO1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IFBhZ2UpIHtcbiAgICBzdXBlcihwYWdlLCBBZGZJbmZvRHJhd2VyQ29tcG9uZW50LnJvb3RFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcmllc01hbmFnZW1lbnQgPSB0aGlzLmdldENoaWxkKCdhZGYtY2F0ZWdvcmllcy1tYW5hZ2VtZW50Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFnc0NyZWF0b3IgPSB0aGlzLmdldENoaWxkKCdhZGYtdGFncy1jcmVhdG9yJyk7XG5cbiAgcHVibGljIGdldE5hbWVGaWVsZCA9IChsYWJlbFRleHQ6IHN0cmluZykgPT5cbiAgICB0aGlzLmdldENoaWxkKGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwibGlicmFyeS1uYW1lLXByb3BlcnRpZXMtd3JhcHBlclwiXSBpbnB1dFtwbGFjZWhvbGRlcj0nJHtsYWJlbFRleHR9J11gKTtcbiAgcHVibGljIGdldElkRmllbGQgPSAobGFiZWxUZXh0OiBzdHJpbmcpID0+IHRoaXMuZ2V0Q2hpbGQoYFtkYXRhLWF1dG9tYXRpb24taWQ9XCJsaWJyYXJ5LWlkLXByb3BlcnRpZXMtd3JhcHBlclwiXSBpbnB1dFtwbGFjZWhvbGRlcj0nJHtsYWJlbFRleHR9J11gKTtcbiAgcHVibGljIGdldFZpc2liaWxpdHlGaWVsZCA9IChsYWJlbFRleHQ6IHN0cmluZykgPT5cbiAgICB0aGlzLmdldENoaWxkKGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwibGlicmFyeS12aXNpYmlsaXR5LXByb3BlcnRpZXMtd3JhcHBlclwiXSBtYXQtc2VsZWN0W25nLXJlZmxlY3QtcGxhY2Vob2xkZXI9JyR7bGFiZWxUZXh0fSddYCk7XG4gIHB1YmxpYyBnZXREZXNjcmlwdGlvbkZpZWxkID0gdGhpcy5nZXRDaGlsZCgnW2RhdGEtYXV0b21hdGlvbi1pZD1cImxpYnJhcnktZGVzY3JpcHRpb24tcHJvcGVydGllcy13cmFwcGVyXCJdIHRleHRhcmVhJyk7XG4gIHB1YmxpYyBwcm9wZXJ0aWVzVGFiID0gdGhpcy5wYWdlLmdldEJ5Um9sZSgndGFiJywgeyBuYW1lOiAnUHJvcGVydGllcycgfSk7XG4gIHB1YmxpYyBjb21tZW50c1RhYiA9IHRoaXMucGFnZS5nZXRCeVJvbGUoJ3RhYicsIHsgbmFtZTogJ0NvbW1lbnRzJyB9KTtcbiAgcHVibGljIGluZm9EcmF3ZXJUYWJzID0gdGhpcy5nZXRDaGlsZCgnLmFkZi1pbmZvLWRyYXdlci10YWInKTtcbiAgcHVibGljIGNvbW1lbnRJbnB1dEZpZWxkID0gdGhpcy5wYWdlLmxvY2F0b3IoJyNjb21tZW50LWlucHV0Jyk7XG4gIHB1YmxpYyBjb21tZW50c0hlYWRlciA9IHRoaXMuZ2V0Q2hpbGQoJyNjb21tZW50LWhlYWRlcicpO1xuICBwdWJsaWMgYWRkQ29tbWVudEJ1dHRvbiA9IHRoaXMuZ2V0Q2hpbGQoJ1tkYXRhLWF1dG9tYXRpb24taWQ9XCJjb21tZW50cy1pbnB1dC1hZGRcIl0nKTtcbiAgcHVibGljIGNvbW1lbnRzTGlzdCA9IHRoaXMuZ2V0Q2hpbGQoJy5hZGYtY29tbWVudC1saXN0LWl0ZW0nKTtcbiAgcHVibGljIGNvbW1lbnRVc2VybmFtZSA9IHRoaXMuZ2V0Q2hpbGQoJy5hZGYtY29tbWVudC11c2VyLW5hbWUnKTtcbiAgcHVibGljIGNvbW1lbnRUZXh0Q29udGVudCA9IHRoaXMuZ2V0Q2hpbGQoJy5hZGYtY29tbWVudC1tZXNzYWdlJyk7XG4gIHB1YmxpYyBjb21tZW50VGltZXN0YW1wID0gdGhpcy5nZXRDaGlsZCgnLmFkZi1jb21tZW50LW1lc3NhZ2UtdGltZScpO1xuICBwdWJsaWMgaW5mb0RyYXdlclBhbmVsID0gdGhpcy5wYWdlLmxvY2F0b3IoJy5hZGYtaW5mby1kcmF3ZXInKTtcbiAgcHVibGljIGhlYWRlclRpdGxlID0gdGhpcy5wYWdlLmxvY2F0b3IoJy5hZGYtaW5mby1kcmF3ZXItbGF5b3V0LWhlYWRlci10aXRsZScpLmdldEJ5Um9sZSgnaGVhZGluZycpO1xuICBwdWJsaWMgZWRpdEJ1dHRvbiA9IHRoaXMucGFnZS5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ0VkaXQnIH0pO1xuICBwdWJsaWMgY2FuY2VsQnV0dG9uID0gdGhpcy5wYWdlLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAnQ2FuY2VsJyB9KTtcbiAgcHVibGljIHVwZGF0ZUJ1dHRvbiA9IHRoaXMucGFnZS5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ1VwZGF0ZScgfSk7XG4gIHB1YmxpYyBoaW50TWVzc2FnZSA9IHRoaXMucGFnZS5sb2NhdG9yKCdtYXQtaGludCcpO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlID0gdGhpcy5wYWdlLmxvY2F0b3IoJ21hdC1lcnJvcicpO1xuICBwdWJsaWMgZXhwYW5kRGV0YWlsc0J1dHRvbiA9IHRoaXMuZ2V0Q2hpbGQoYGJ1dHRvblt0aXRsZT0nRXhwYW5kIHBhbmVsJ11gKTtcbiAgcHVibGljIGV4cGFuZGVkRGV0YWlsc1RhYnMgPSB0aGlzLnBhZ2UubG9jYXRvcignLmFjYS1kZXRhaWxzLWNvbnRhaW5lciAubWRjLXRhYl9fdGV4dC1sYWJlbCcpO1xuICBwdWJsaWMgZXhwYW5kZWREZXRhaWxzUGVybWlzc2lvbnNUYWIgPSB0aGlzLmV4cGFuZGVkRGV0YWlsc1RhYnMuZ2V0QnlUZXh0KCdQZXJtaXNzaW9ucycpO1xuICBwdWJsaWMgbmFtZUZpZWxkID0gdGhpcy5wYWdlLmxvY2F0b3IoJ2lucHV0W3BsYWNlaG9sZGVyPU5hbWVdJyk7XG4gIHB1YmxpYyBpZEZpZWxkID0gdGhpcy5wYWdlLmxvY2F0b3IoYGlucHV0W3BsYWNlaG9sZGVyPSdMaWJyYXJ5IElEJ11gKTtcbiAgcHVibGljIGRlc2NyaXB0aW9uRmllbGQgPSB0aGlzLnBhZ2UubG9jYXRvcigndGV4dGFyZWFbcGxhY2Vob2xkZXI9RGVzY3JpcHRpb25dJyk7XG4gIHB1YmxpYyB2aXNpYmlsaXR5RmllbGQgPSB0aGlzLmluZm9EcmF3ZXJQYW5lbC5nZXRCeVJvbGUoJ2NvbWJvYm94Jyk7XG4gIHB1YmxpYyBzZWxlY3RWaXNpYmlsaXR5ID0gKHZpc2liaWxpdHlPcHRpb246IHN0cmluZykgPT4gdGhpcy5wYWdlLmdldEJ5Um9sZSgnbGlzdGJveCcpLmdldEJ5Um9sZSgnb3B0aW9uJywgeyBuYW1lOiB2aXNpYmlsaXR5T3B0aW9uIH0pLmNsaWNrKCk7XG4gIHB1YmxpYyB0YWdzQWNjb3JkaW9uID0gdGhpcy5nZXRDaGlsZCgnW2RhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1jb250ZW50LW1ldGFkYXRhLXRhZ3MtcGFuZWxcIl0nKTtcbiAgcHVibGljIGNhdGVnb3JpZXNBY2NvcmRpb24gPSB0aGlzLmdldENoaWxkKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWNvbnRlbnQtbWV0YWRhdGEtY2F0ZWdvcmllcy1wYW5lbFwiXScpO1xuICBwdWJsaWMgdGFnc0FjY29yZGlvblBlbkJ1dHRvbiA9IHRoaXMudGFnc0FjY29yZGlvbi5sb2NhdG9yKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwic2hvd2luZy10YWctaW5wdXQtYnV0dG9uXCJdJyk7XG4gIHB1YmxpYyBjYXRlZ29yaWVzQWNjb3JkaW9uUGVuQnV0dG9uID0gdGhpcy5jYXRlZ29yaWVzQWNjb3JkaW9uLmxvY2F0b3IoJ1tkYXRhLWF1dG9tYXRpb24taWQ9XCJtZXRhLWRhdGEtY2F0ZWdvcmllcy1lZGl0XCJdJyk7XG4gIHB1YmxpYyB0YWdzSW5wdXQgPSB0aGlzLnRhZ3NDcmVhdG9yLmxvY2F0b3IoJ2lucHV0Jyk7XG4gIHB1YmxpYyBjcmVhdGVUYWdCdXR0b24gPSB0aGlzLnRhZ3NDcmVhdG9yLmxvY2F0b3IoJy5hZGYtY3JlYXRlLXRhZy1sYWJlbCcpO1xuICBwdWJsaWMgdGFnc0NoaXBzID0gdGhpcy50YWdzQ3JlYXRvci5sb2NhdG9yKCdtYXQtY2hpcCcpO1xuICBwdWJsaWMgdGFnc0NoaXBzWEJ1dHRvbiA9IHRoaXMudGFnc0NoaXBzLmxvY2F0b3IoJy5hZGYtZHluYW1pYy1jaGlwLWxpc3QtZGVsZXRlLWljb24nKTtcbiAgcHVibGljIHRhZ3NBY2NvcmRpb25DYW5jZWxCdXR0b24gPSB0aGlzLmdldENoaWxkKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwicmVzZXQtdGFncy1tZXRhZGF0YVwiXScpO1xuICBwdWJsaWMgdGFnc0FjY29yZGlvbkNvbmZpcm1CdXR0b24gPSB0aGlzLmdldENoaWxkKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwic2F2ZS10YWdzLW1ldGFkYXRhXCJdJyk7XG4gIHB1YmxpYyBjYXRlZ29yaWVzQWNjb3JkaW9uQ2FuY2VsQnV0dG9uID0gdGhpcy5nZXRDaGlsZCgnW2RhdGEtYXV0b21hdGlvbi1pZD1cInJlc2V0LW1ldGFkYXRhXCJdJyk7XG4gIHB1YmxpYyBjYXRlZ29yaWVzQWNjb3JkaW9uQ29uZmlybUJ1dHRvbiA9IHRoaXMuZ2V0Q2hpbGQoJ1tkYXRhLWF1dG9tYXRpb24taWQ9XCJzYXZlLWNhdGVnb3JpZXMtbWV0YWRhdGFcIl0nKTtcbiAgcHVibGljIGNhdGVnb3JpZXNJbnB1dCA9IHRoaXMuY2F0ZWdvcmllc01hbmFnZW1lbnQubG9jYXRvcignaW5wdXQnKTtcbiAgcHVibGljIGNhdGVnb3JpZXNMaXN0SXRlbXMgPSB0aGlzLmNhdGVnb3JpZXNNYW5hZ2VtZW50LmxvY2F0b3IoJy5hZGYtY2F0ZWdvcnknKTtcbiAgcHVibGljIGNhdGVnb3JpZXNJdGVtUmVtb3ZlQnV0dG9uID0gdGhpcy5jYXRlZ29yaWVzTWFuYWdlbWVudC5sb2NhdG9yKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwiY2F0ZWdvcmllcy1yZW1vdmUtY2F0ZWdvcnktYnV0dG9uXCJdJyk7XG4gIHB1YmxpYyBjYXRlZ29yaWVzQ3JlYXRlZExpc3QgPSB0aGlzLmdldENoaWxkKCcuYWRmLW1ldGFkYXRhLWNhdGVnb3JpZXMnKTtcblxuICBhc3luYyBjaGVja0NvbW1lbnRzSGVhZGVyQ291bnQoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBjb21tZW50c0NvdW50VGV4dENvbnRlbnQgPSBhd2FpdCB0aGlzLmNvbW1lbnRzSGVhZGVyLnRleHRDb250ZW50KCk7XG4gICAgY29uc3QgY29tbWVudHNDb3VudFN0cmluZyA9IGNvbW1lbnRzQ291bnRUZXh0Q29udGVudC5tYXRjaCgvXFxkKy9nKVswXTtcbiAgICByZXR1cm4gcGFyc2VJbnQoY29tbWVudHNDb3VudFN0cmluZywgMTApO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q29tbWVudHNDb3VudEZyb21MaXN0KCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuY29tbWVudHNMaXN0LmNvdW50KCk7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yQ29tbWVudHMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5jb21tZW50c0xpc3QuZmlyc3QoKS53YWl0Rm9yKCk7XG4gIH1cblxuICBhc3luYyBhZGRDb21tZW50VG9Ob2RlKGNvbW1lbnRUZXh0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmNvbW1lbnRJbnB1dEZpZWxkLmZpbGwoY29tbWVudFRleHQpO1xuICAgIGF3YWl0IHRoaXMuYWRkQ29tbWVudEJ1dHRvbi5jbGljaygpO1xuICB9XG5cbiAgYXN5bmMgZ2V0SGVhZGVyVGl0bGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJUaXRsZS50ZXh0Q29udGVudCgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VGFic0NvdW50KCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5mb0RyYXdlclRhYnMuY291bnQoKTtcbiAgfVxufVxuIl19
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRmLWluZm8tZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1wbGF5d3JpZ2h0LXNoYXJlZC9zcmMvcGFnZS1vYmplY3RzL2NvbXBvbmVudHMvYWRmLWluZm8tZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQUMvQyxNQUFNLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDO0lBRS9DLFlBQVksSUFBVTtRQUNwQixLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFZ0Isb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ2xFLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFMUQsWUFBWSxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsNkVBQTZFLFNBQVMsSUFBSSxDQUFDLENBQUM7SUFDckcsVUFBVSxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQywyRUFBMkUsU0FBUyxJQUFJLENBQUMsQ0FBQztJQUM1SSxrQkFBa0IsR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1HQUFtRyxTQUFTLElBQUksQ0FBQyxDQUFDO0lBQzNILG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsd0VBQXdFLENBQUMsQ0FBQztJQUM5RyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUks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YyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ0BwbGF5d3JpZ2h0L3Rlc3QnO1xuXG5leHBvcnQgY2xhc3MgQWRmSW5mb0RyYXdlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBwcml2YXRlIHN0YXRpYyByb290RWxlbWVudCA9ICdhZGYtaW5mby1kcmF3ZXInO1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IFBhZ2UpIHtcbiAgICBzdXBlcihwYWdlLCBBZGZJbmZvRHJhd2VyQ29tcG9uZW50LnJvb3RFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcmllc01hbmFnZW1lbnQgPSB0aGlzLmdldENoaWxkKCdhZGYtY2F0ZWdvcmllcy1tYW5hZ2VtZW50Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFnc0NyZWF0b3IgPSB0aGlzLmdldENoaWxkKCdhZGYtdGFncy1jcmVhdG9yJyk7XG5cbiAgcHVibGljIGdldE5hbWVGaWVsZCA9IChsYWJlbFRleHQ6IHN0cmluZykgPT5cbiAgICB0aGlzLmdldENoaWxkKGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwibGlicmFyeS1uYW1lLXByb3BlcnRpZXMtd3JhcHBlclwiXSBpbnB1dFtwbGFjZWhvbGRlcj0nJHtsYWJlbFRleHR9J11gKTtcbiAgcHVibGljIGdldElkRmllbGQgPSAobGFiZWxUZXh0OiBzdHJpbmcpID0+IHRoaXMuZ2V0Q2hpbGQoYFtkYXRhLWF1dG9tYXRpb24taWQ9XCJsaWJyYXJ5LWlkLXByb3BlcnRpZXMtd3JhcHBlclwiXSBpbnB1dFtwbGFjZWhvbGRlcj0nJHtsYWJlbFRleHR9J11gKTtcbiAgcHVibGljIGdldFZpc2liaWxpdHlGaWVsZCA9IChsYWJlbFRleHQ6IHN0cmluZykgPT5cbiAgICB0aGlzLmdldENoaWxkKGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwibGlicmFyeS12aXNpYmlsaXR5LXByb3BlcnRpZXMtd3JhcHBlclwiXSBtYXQtc2VsZWN0W25nLXJlZmxlY3QtcGxhY2Vob2xkZXI9JyR7bGFiZWxUZXh0fSddYCk7XG4gIHB1YmxpYyBnZXREZXNjcmlwdGlvbkZpZWxkID0gdGhpcy5nZXRDaGlsZCgnW2RhdGEtYXV0b21hdGlvbi1pZD1cImxpYnJhcnktZGVzY3JpcHRpb24tcHJvcGVydGllcy13cmFwcGVyXCJdIHRleHRhcmVhJyk7XG4gIHB1YmxpYyBwcm9wZXJ0aWVzVGFiID0gdGhpcy5wYWdlLmdldEJ5Um9sZSgndGFiJywgeyBuYW1lOiAnUHJvcGVydGllcycgfSk7XG4gIHB1YmxpYyBjb21tZW50c1RhYiA9IHRoaXMucGFnZS5nZXRCeVJvbGUoJ3RhYicsIHsgbmFtZTogJ0NvbW1lbnRzJyB9KTtcbiAgcHVibGljIGluZm9EcmF3ZXJUYWJzID0gdGhpcy5nZXRDaGlsZCgnLmFkZi1pbmZvLWRyYXdlci10YWInKTtcbiAgcHVibGljIGNvbW1lbnRJbnB1dEZpZWxkID0gdGhpcy5wYWdlLmxvY2F0b3IoJyNjb21tZW50LWlucHV0Jyk7XG4gIHB1YmxpYyBjb21tZW50c0hlYWRlciA9IHRoaXMuZ2V0Q2hpbGQoJyNjb21tZW50LWhlYWRlcicpO1xuICBwdWJsaWMgYWRkQ29tbWVudEJ1dHRvbiA9IHRoaXMuZ2V0Q2hpbGQoJ1tkYXRhLWF1dG9tYXRpb24taWQ9XCJjb21tZW50cy1pbnB1dC1hZGRcIl0nKTtcbiAgcHVibGljIGNvbW1lbnRzTGlzdCA9IHRoaXMuZ2V0Q2hpbGQoJy5hZGYtY29tbWVudC1saXN0LWl0ZW0nKTtcbiAgcHVibGljIGNvbW1lbnRVc2VybmFtZSA9IHRoaXMuZ2V0Q2hpbGQoJy5hZGYtY29tbWVudC11c2VyLW5hbWUnKTtcbiAgcHVibGljIGNvbW1lbnRUZXh0Q29udGVudCA9IHRoaXMuZ2V0Q2hpbGQoJy5hZGYtY29tbWVudC1tZXNzYWdlJyk7XG4gIHB1YmxpYyBjb21tZW50VGltZXN0YW1wID0gdGhpcy5nZXRDaGlsZCgnLmFkZi1jb21tZW50LW1lc3NhZ2UtdGltZScpO1xuICBwdWJsaWMgaW5mb0RyYXdlclBhbmVsID0gdGhpcy5wYWdlLmxvY2F0b3IoJy5hZGYtaW5mby1kcmF3ZXInKTtcbiAgcHVibGljIGhlYWRlclRpdGxlID0gdGhpcy5wYWdlLmxvY2F0b3IoJy5hZGYtaW5mby1kcmF3ZXItbGF5b3V0LWhlYWRlci10aXRsZScpLmdldEJ5Um9sZSgnaGVhZGluZycpO1xuICBwdWJsaWMgZWRpdEJ1dHRvbiA9IHRoaXMucGFnZS5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ0VkaXQnIH0pO1xuICBwdWJsaWMgY2FuY2VsQnV0dG9uID0gdGhpcy5wYWdlLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAnQ2FuY2VsJyB9KTtcbiAgcHVibGljIHVwZGF0ZUJ1dHRvbiA9IHRoaXMucGFnZS5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ1VwZGF0ZScgfSk7XG4gIHB1YmxpYyBoaW50TWVzc2FnZSA9IHRoaXMucGFnZS5sb2NhdG9yKCdtYXQtaGludCcpO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlID0gdGhpcy5wYWdlLmxvY2F0b3IoJ21hdC1lcnJvcicpO1xuICBwdWJsaWMgZXhwYW5kRGV0YWlsc0J1dHRvbiA9IHRoaXMuZ2V0Q2hpbGQoYGJ1dHRvblt0aXRsZT0nRXhwYW5kIHBhbmVsJ11gKTtcbiAgcHVibGljIGV4cGFuZGVkRGV0YWlsc1RhYnMgPSB0aGlzLnBhZ2UubG9jYXRvcignLmFjYS1kZXRhaWxzLWNvbnRhaW5lciAubWRjLXRhYl9fdGV4dC1sYWJlbCcpO1xuICBwdWJsaWMgZXhwYW5kZWREZXRhaWxzUGVybWlzc2lvbnNUYWIgPSB0aGlzLmV4cGFuZGVkRGV0YWlsc1RhYnMuZ2V0QnlUZXh0KCdQZXJtaXNzaW9ucycpO1xuICBwdWJsaWMgbmFtZUZpZWxkID0gdGhpcy5wYWdlLmxvY2F0b3IoJ2lucHV0W3BsYWNlaG9sZGVyPU5hbWVdJyk7XG4gIHB1YmxpYyBpZEZpZWxkID0gdGhpcy5wYWdlLmxvY2F0b3IoYGlucHV0W3BsYWNlaG9sZGVyPSdMaWJyYXJ5IElEJ11gKTtcbiAgcHVibGljIGRlc2NyaXB0aW9uRmllbGQgPSB0aGlzLnBhZ2UubG9jYXRvcigndGV4dGFyZWFbcGxhY2Vob2xkZXI9RGVzY3JpcHRpb25dJyk7XG4gIHB1YmxpYyB2aXNpYmlsaXR5RmllbGQgPSB0aGlzLmluZm9EcmF3ZXJQYW5lbC5nZXRCeVJvbGUoJ2NvbWJvYm94Jyk7XG4gIHB1YmxpYyBzZWxlY3RWaXNpYmlsaXR5ID0gKHZpc2liaWxpdHlPcHRpb246IHN0cmluZykgPT4gdGhpcy5wYWdlLmdldEJ5Um9sZSgnbGlzdGJveCcpLmdldEJ5Um9sZSgnb3B0aW9uJywgeyBuYW1lOiB2aXNpYmlsaXR5T3B0aW9uIH0pLmNsaWNrKCk7XG4gIHB1YmxpYyB0YWdzQWNjb3JkaW9uID0gdGhpcy5nZXRDaGlsZCgnW2RhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1jb250ZW50LW1ldGFkYXRhLXRhZ3MtcGFuZWxcIl0nKTtcbiAgcHVibGljIGNhdGVnb3JpZXNBY2NvcmRpb24gPSB0aGlzLmdldENoaWxkKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWNvbnRlbnQtbWV0YWRhdGEtY2F0ZWdvcmllcy1wYW5lbFwiXScpO1xuICBwdWJsaWMgdGFnc0FjY29yZGlvblBlbkJ1dHRvbiA9IHRoaXMudGFnc0FjY29yZGlvbi5sb2NhdG9yKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwic2hvd2luZy10YWctaW5wdXQtYnV0dG9uXCJdJyk7XG4gIHB1YmxpYyBjYXRlZ29yaWVzQWNjb3JkaW9uUGVuQnV0dG9uID0gdGhpcy5jYXRlZ29yaWVzQWNjb3JkaW9uLmxvY2F0b3IoJ1tkYXRhLWF1dG9tYXRpb24taWQ9XCJtZXRhLWRhdGEtY2F0ZWdvcmllcy1lZGl0XCJdJyk7XG4gIHB1YmxpYyB0YWdzSW5wdXQgPSB0aGlzLnRhZ3NDcmVhdG9yLmxvY2F0b3IoJ2lucHV0Jyk7XG4gIHB1YmxpYyBjcmVhdGVUYWdCdXR0b24gPSB0aGlzLnRhZ3NDcmVhdG9yLmxvY2F0b3IoJy5hZGYtY3JlYXRlLXRhZy1sYWJlbCcpO1xuICBwdWJsaWMgdGFnc0NoaXBzID0gdGhpcy50YWdzQ3JlYXRvci5sb2NhdG9yKCdtYXQtY2hpcCcpO1xuICBwdWJsaWMgdGFnc0NoaXBzWEJ1dHRvbiA9IHRoaXMudGFnc0NoaXBzLmxvY2F0b3IoJy5hZGYtZHluYW1pYy1jaGlwLWxpc3QtZGVsZXRlLWljb24nKTtcbiAgcHVibGljIHRhZ3NBY2NvcmRpb25DYW5jZWxCdXR0b24gPSB0aGlzLmdldENoaWxkKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwicmVzZXQtdGFncy1tZXRhZGF0YVwiXScpO1xuICBwdWJsaWMgdGFnc0FjY29yZGlvbkNvbmZpcm1CdXR0b24gPSB0aGlzLmdldENoaWxkKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwic2F2ZS10YWdzLW1ldGFkYXRhXCJdJyk7XG4gIHB1YmxpYyBjYXRlZ29yaWVzQWNjb3JkaW9uQ2FuY2VsQnV0dG9uID0gdGhpcy5nZXRDaGlsZCgnW2RhdGEtYXV0b21hdGlvbi1pZD1cInJlc2V0LW1ldGFkYXRhXCJdJyk7XG4gIHB1YmxpYyBjYXRlZ29yaWVzQWNjb3JkaW9uQ29uZmlybUJ1dHRvbiA9IHRoaXMuZ2V0Q2hpbGQoJ1tkYXRhLWF1dG9tYXRpb24taWQ9XCJzYXZlLWNhdGVnb3JpZXMtbWV0YWRhdGFcIl0nKTtcbiAgcHVibGljIGNhdGVnb3JpZXNJbnB1dCA9IHRoaXMuY2F0ZWdvcmllc01hbmFnZW1lbnQubG9jYXRvcignaW5wdXQnKTtcbiAgcHVibGljIGNhdGVnb3JpZXNMaXN0SXRlbXMgPSB0aGlzLmNhdGVnb3JpZXNNYW5hZ2VtZW50LmxvY2F0b3IoJy5hZGYtY2F0ZWdvcnknKTtcbiAgcHVibGljIGNhdGVnb3JpZXNJdGVtUmVtb3ZlQnV0dG9uID0gdGhpcy5jYXRlZ29yaWVzTWFuYWdlbWVudC5sb2NhdG9yKCdbZGF0YS1hdXRvbWF0aW9uLWlkPVwiY2F0ZWdvcmllcy1yZW1vdmUtY2F0ZWdvcnktYnV0dG9uXCJdJyk7XG4gIHB1YmxpYyBjYXRlZ29yaWVzQ3JlYXRlZExpc3QgPSB0aGlzLmdldENoaWxkKCcuYWRmLW1ldGFkYXRhLWNhdGVnb3JpZXMnKTtcbiAgcHVibGljIGdlbmVyYWxJbmZvQWNjb3JkaW9uID0gdGhpcy5nZXRDaGlsZCgnW2RhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1tZXRhZGF0YS1ncm91cC1wcm9wZXJ0aWVzXCJdJyk7XG4gIHB1YmxpYyBnZW5lcmFsSW5mb1Byb3BlcnRpZXMgPSB0aGlzLmdlbmVyYWxJbmZvQWNjb3JkaW9uLmxvY2F0b3IoJy5hZGYtcHJvcGVydHknKTtcbiAgcHVibGljIGV4aWZJbmZvQWNjb3JkaW9uID0gdGhpcy5nZXRDaGlsZCgnW2RhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1tZXRhZGF0YS1ncm91cC1BUFAuQ09OVEVOVF9NRVRBREFUQS5FWElGX0dST1VQX1RJVExFXCJdJyk7XG4gIHB1YmxpYyBleGlmSW5mb1Byb3BlcnRpZXMgPSB0aGlzLmV4aWZJbmZvQWNjb3JkaW9uLmxvY2F0b3IoJy5hZGYtcHJvcGVydHknKTtcblxuICBhc3luYyBjaGVja0NvbW1lbnRzSGVhZGVyQ291bnQoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBjb21tZW50c0NvdW50VGV4dENvbnRlbnQgPSBhd2FpdCB0aGlzLmNvbW1lbnRzSGVhZGVyLnRleHRDb250ZW50KCk7XG4gICAgY29uc3QgY29tbWVudHNDb3VudFN0cmluZyA9IGNvbW1lbnRzQ291bnRUZXh0Q29udGVudC5tYXRjaCgvXFxkKy9nKVswXTtcbiAgICByZXR1cm4gcGFyc2VJbnQoY29tbWVudHNDb3VudFN0cmluZywgMTApO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q29tbWVudHNDb3VudEZyb21MaXN0KCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuY29tbWVudHNMaXN0LmNvdW50KCk7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yQ29tbWVudHMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5jb21tZW50c0xpc3QuZmlyc3QoKS53YWl0Rm9yKCk7XG4gIH1cblxuICBhc3luYyBhZGRDb21tZW50VG9Ob2RlKGNvbW1lbnRUZXh0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmNvbW1lbnRJbnB1dEZpZWxkLmZpbGwoY29tbWVudFRleHQpO1xuICAgIGF3YWl0IHRoaXMuYWRkQ29tbWVudEJ1dHRvbi5jbGljaygpO1xuICB9XG5cbiAgYXN5bmMgZ2V0SGVhZGVyVGl0bGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJUaXRsZS50ZXh0Q29udGVudCgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VGFic0NvdW50KCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5mb0RyYXdlclRhYnMuY291bnQoKTtcbiAgfVxufVxuIl19
|
|
@@ -2636,6 +2636,10 @@ class AdfInfoDrawerComponent extends BaseComponent {
|
|
|
2636
2636
|
categoriesListItems = this.categoriesManagement.locator('.adf-category');
|
|
2637
2637
|
categoriesItemRemoveButton = this.categoriesManagement.locator('[data-automation-id="categories-remove-category-button"]');
|
|
2638
2638
|
categoriesCreatedList = this.getChild('.adf-metadata-categories');
|
|
2639
|
+
generalInfoAccordion = this.getChild('[data-automation-id="adf-metadata-group-properties"]');
|
|
2640
|
+
generalInfoProperties = this.generalInfoAccordion.locator('.adf-property');
|
|
2641
|
+
exifInfoAccordion = this.getChild('[data-automation-id="adf-metadata-group-APP.CONTENT_METADATA.EXIF_GROUP_TITLE"]');
|
|
2642
|
+
exifInfoProperties = this.exifInfoAccordion.locator('.adf-property');
|
|
2639
2643
|
async checkCommentsHeaderCount() {
|
|
2640
2644
|
const commentsCountTextContent = await this.commentsHeader.textContent();
|
|
2641
2645
|
const commentsCountString = commentsCountTextContent.match(/\d+/g)[0];
|
|
@@ -5535,6 +5539,15 @@ class NodesApi {
|
|
|
5535
5539
|
console.error(`${this.constructor.name} ${this.deleteNodes.name}`, error);
|
|
5536
5540
|
}
|
|
5537
5541
|
}
|
|
5542
|
+
async updateNode(nodeId, nodeBodyUpdate, opts) {
|
|
5543
|
+
try {
|
|
5544
|
+
return await this.apiService.nodes.updateNode(nodeId, nodeBodyUpdate, opts);
|
|
5545
|
+
}
|
|
5546
|
+
catch (error) {
|
|
5547
|
+
console.error(`${this.constructor.name} ${this.updateNode.name}`, error);
|
|
5548
|
+
return null;
|
|
5549
|
+
}
|
|
5550
|
+
}
|
|
5538
5551
|
/**
|
|
5539
5552
|
* Delete all nodes of the currently logged in user
|
|
5540
5553
|
* @param userNodeId The id of User node, all child nodes of "userNodeId" will be gathered as a list and deleted ( e.g.: "-my-" - User Homes folder)
|
|
@@ -5665,7 +5678,7 @@ class NodesApi {
|
|
|
5665
5678
|
return '';
|
|
5666
5679
|
});
|
|
5667
5680
|
}
|
|
5668
|
-
async setGranularPermission(nodeId, inheritPermissions = false
|
|
5681
|
+
async setGranularPermission(nodeId, username, role, inheritPermissions = false) {
|
|
5669
5682
|
const data = {
|
|
5670
5683
|
permissions: {
|
|
5671
5684
|
isInheritanceEnabled: inheritPermissions,
|