@posiwise/common-services 0.1.45 → 0.1.47

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.
@@ -105,7 +105,8 @@ export class PermissionService {
105
105
  if (permission === PERMISSION_NAMES.SubscriptionSuperOwner) {
106
106
  return this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();
107
107
  }
108
- if (ADMIN_SUB_MENU_WHITELIST.some(v => permission.includes(v)) &&
108
+ if (typeof permission === "string" &&
109
+ ADMIN_SUB_MENU_WHITELIST.some(v => permission.includes(v)) &&
109
110
  (this.isUserSubscriptionSuperAdmin() || this.isUserSubscriptionSuperOwner())) {
110
111
  return true;
111
112
  }
@@ -209,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
209
210
  providedIn: 'root'
210
211
  }]
211
212
  }], ctorParameters: () => [{ type: i1.MainApiHttpService }] });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24tc2VydmljZXMvc3JjL2xpYi9wZXJtaXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs3RCxNQUFNLE9BQU8saUJBQWlCO0lBUzFCLFlBQTZCLEdBQXVCO1FBQXZCLFFBQUcsR0FBSCxHQUFHLENBQW9CO1FBRnBELFNBQUksR0FBUyxJQUFJLENBQUM7SUFFcUMsQ0FBQztJQUV4RCxzQkFBc0IsQ0FBQyxZQUFZO1FBQy9CLGlCQUFpQixDQUFDLG9CQUFvQixHQUFHLFlBQVksQ0FBQztJQUMxRCxDQUFDO0lBRUQsU0FBUyxDQUFDLGNBQXNCLEVBQUUsVUFBVSxHQUFHLElBQUksRUFBRSxjQUFjLEdBQUcsSUFBSSxFQUFFLFdBQVcsR0FBRyxJQUFJO1FBQzFGLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztZQUV0QixzQ0FBc0M7WUFDdEMseUJBQXlCO1lBQ3pCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixNQUFNLGVBQWUsR0FBRyxpQkFBaUIsRUFBRSxlQUFlLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENB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O0lBQ04sQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBdFFRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgcGlja0J5IGZyb20gJ2xvZGFzaC9waWNrQnknO1xuXG5pbXBvcnQgeyBBRE1JTl9TVUJfTUVOVV9XSElURUxJU1QsIFBFUk1JU1NJT05fTkFNRVMsIFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBNYWluQXBpSHR0cFNlcnZpY2UgfSBmcm9tICcuL21haW4tYXBpLWh0dHAuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNlcnZpY2Uge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgc3RhdGljIHNlbGVjdGVkUHJvZHVjdDogYW55OyAvLyBOT1NPTkFSXG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHN0YXRpYyBzZWxlY3RlZFN1YnNjcmlwdGlvbjogYW55OyAvLyBOT1NPTkFSXG5cbiAgICB1c2VyOiBVc2VyID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXBpOiBNYWluQXBpSHR0cFNlcnZpY2UpIHt9XG5cbiAgICBzZXRDdXJyZW50U3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbikge1xuICAgICAgICBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9IHN1YnNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpc0dyYW50ZWQocGVybWlzc2lvbk5hbWU6IHN0cmluZywgcHJvZHVjdEtleSA9IG51bGwsIHBlcm1pc3Npb25fa2V5ID0gbnVsbCwgcHJvZHVjdFNsdWcgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdXNlciB9ID0gdGhpcztcblxuICAgICAgICAgICAgLy8gQWRtaW4gaGF2ZSBhY2Nlc3MgdG8gYWxsIHRoZSBtZW51cy5cbiAgICAgICAgICAgIC8vIEUuZy4sIFBhZ2VzLlN1cGVyQWRtaW5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzU3VwZXJBZG1pbigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uTmFtZSkge1xuICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0IHx8IHRoaXMuZ2V0Q3VycmVudFByb2R1Y3QoKTtcbiAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2x1ZyA9IHNlbGVjdGVkUHJvZHVjdD8uc3Vic2NyaXB0aW9uX3NsdWc7XG5cbiAgICAgICAgICAgICAgbGV0IHNsdWdUb0NoZWNrO1xuICAgICAgICAgICAgICBpZiAoIXByb2R1Y3RTbHVnKSB7XG4gICAgICAgICAgICAgICAgIHNsdWdUb0NoZWNrID0gYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS5gO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNsdWdUb0NoZWNrID0gcHJvZHVjdFNsdWdcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uTmFtZS5pbmNsdWRlcyhzbHVnVG9DaGVjaykpIHtcbiAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25OYW1lID0gcGVybWlzc2lvbk5hbWUucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgJ1BhZ2VzLlByb2R1Y3QuJyxcbiAgICAgICAgICAgICAgICAgICAgc2x1Z1RvQ2hlY2tcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZXR1cm5pbmcgdHJ1ZSBpZiB1c2VyIGhhcyBhIGdpdmVuIHBlcm1pc3Npb25cbiAgICAgICAgICAgIC8vIEUuZy4sIFBhZ2VzLlJvbGUuQ2xvdWRPbGl2ZS5TYWxlc01hbmFnZXJcbiAgICAgICAgICAgIC8vIG9yIFBhZ2VzLkJldGEgb3IgUGFnZXMuQWxwaGFcbiAgICAgICAgICAgIGlmICh1c2VyWydhdXRoJ10/LlsnZ3JhbnRlZCddW3Blcm1pc3Npb25OYW1lXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChwcm9kdWN0S2V5KSB7XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVycyB0aGUgcGVybWlzc2lvbiBvbmx5IGZvciB0aGUgc2VsZWN0ZWQgcHJvZHVjdC5cbiAgICAgICAgICAgICAgICBsZXQgZmlsdGVyZWRQZXJtaXNzaW9ucyA9IHBpY2tCeShcbiAgICAgICAgICAgICAgICAgICAgY2xvbmVEZWVwKHVzZXJbJ2F1dGgnXVsnZ3JhbnRlZCddKSxcbiAgICAgICAgICAgICAgICAgICAgKF92YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleS5pbmNsdWRlcyhwcm9kdWN0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgLy8gYWRkIFBhZ2VzLlByb2R1Y3Que3Blcm1pc3Npb25fa2V5fVxuICAgICAgICAgICAgICAgIGZpbHRlcmVkUGVybWlzc2lvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnsgW2BQYWdlcy5Qcm9kdWN0LiR7cGVybWlzc2lvbl9rZXl9YF06IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyZWRQZXJtaXNzaW9uc1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAvLyBFLmcuLCBQYWdlcy5Qcm9kdWN0LkNsb3VkT2xpdmUuQ2xvdWRPbGl2ZV9Nc3BLZXlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRQZXJtaXNzaW9uc1twZXJtaXNzaW9uTmFtZV0gfHwgZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIG5vIHZhbGlkIHBlcm1pc3Npb24gd2FzIGRldGVjdGVkIGZvciB0aGlzIHVzZXJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHVzZXIgbm90IGxvZ2dlZC1pblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0UGVybWlzc2lvblRyZWVEYXRhQnlSb2xlKGRhdGEpIHtcbiAgICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSBbXTtcbiAgICAgICAgZGF0YS5hbGwuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmFtZSB9ID0gZWxlbWVudDtcbiAgICAgICAgICAgIHBlcm1pc3Npb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBlbGVtZW50LmlkLCAvLyBwZXJtaXNzaW9uSWQ6IFVzZWQgdG8gdXBkYXRlIHRoZSBwZXJtaXNzaW9ucyBvbiBjaGFuZ2VcbiAgICAgICAgICAgICAgICBwYXJlbnROYW1lOiBuYW1lLmluY2x1ZGVzKCcuJykgPyBuYW1lLnN1YnN0cmluZygwLCBuYW1lLmxhc3RJbmRleE9mKCcuJykpIDogbnVsbCxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBlbGVtZW50Lm5hbWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgICAgICBncmFudGVkUGVybWlzc2lvbk5hbWVzOiBPYmplY3Qua2V5cyhkYXRhLmdyYW50ZWQpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZXZhbHVhdGVQZXJtaXNzaW9ucyhcbiAgICAgICAgcGVybWlzc2lvbjogc3RyaW5nLFxuICAgICAgICBwcm9kdWN0S2V5OiBzdHJpbmcgPSBudWxsLFxuICAgICAgICBwZXJtaXNzaW9uX2tleTogc3RyaW5nID0gbnVsbCxcbiAgICAgICAgcHJvZHVjdFNsdWc6IHN0cmluZyA9IG51bGxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAtICAgYFN1cGVyQWRtaW5gICAgICAgICAgICAgID0+ICBHb2QtbGlrZSBwb3dlciAtIE1vc3QgcHJpdmlsZWdlZFxuXG4gICAgICAgIC8vIC0gICBgU3Vic2NyaXB0aW9uU3VwZXJPd25lcmAgPT4gIFNvbWUgb2YgdGhlIGZlYXR1cmVzIHVuZGVyIEFkbWluIE1lbnVcbiAgICAgICAgLy8gLSAgIGBTdWJzY3JpcHRpb25TdXBlckFkbWluYCA9PiAgU29tZSBvZiB0aGUgZmVhdHVyZXMgdW5kZXIgQWRtaW4gTWVudVxuXG4gICAgICAgIC8vIC0gICBgU3Vic2NyaXB0aW9uT3duZXJgICAgICA9PiBQcm9kdWN0IDogU2VjdGlvbiBvZiBhIGdpdmVuIHN1YnNjcmlwdGlvblxuICAgICAgICAvLyAtICAgYFN1YnNjcmlwdGlvbkFkbWluYCAgICAgPT4gUHJvZHVjdCA6IFNlY3Rpb24gb2YgYSBnaXZlbiBzdWJzY3JpcHRpb25cblxuICAgICAgICAvLyAtICAgYFBhZ2VzLkJldGFgICAgICAgICAgICAgPT4gUHJvZHVjdCA6IFNlY3Rpb24gb2YgdGhlIHBhZ2VcbiAgICAgICAgLy8gLSAgIGBQYWdlcy5BbHBoYWAgICAgICAgICAgID0+IFByb2R1Y3QgOiBTZWN0aW9uIG9mIHRoZSBwYWdlXG5cbiAgICAgICAgbGV0IGV4cHIgPSAnJztcbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3VwZXJBZG1pbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNTdXBlckFkbWluKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3Vic2NyaXB0aW9uQWRtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzVXNlclN1YnNjcmlwdGlvbkFkbWluKCkgfHwgdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25Pd25lcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwZXJtaXNzaW9uID09PSBQRVJNSVNTSU9OX05BTUVTLlN1YnNjcmlwdGlvbk93bmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25Pd25lcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwZXJtaXNzaW9uID09PSBQRVJNSVNTSU9OX05BTUVTLlN1YnNjcmlwdGlvblN1cGVyQWRtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25TdXBlckFkbWluKCkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXNlclN1YnNjcmlwdGlvblN1cGVyT3duZXIoKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaXNTdXBlckFkbWluKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3Vic2NyaXB0aW9uU3VwZXJPd25lcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJPd25lcigpIHx8IHRoaXMuaXNTdXBlckFkbWluKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgQURNSU5fU1VCX01FTlVfV0hJVEVMSVNULnNvbWUodiA9PiBwZXJtaXNzaW9uLmluY2x1ZGVzKHYpKSAmJlxuICAgICAgICAgICAgKHRoaXMuaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJBZG1pbigpIHx8IHRoaXMuaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJPd25lcigpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBldmFsdWF0ZXMgYSBjb21wbGV4IHBlcm1pc3Npb25cbiAgICAgICAgLy8gRWc6IGAoICR7QkFTSUNfUEVSTUlTU0lPTlMuTXNwS2V5fSB8fCAke0JBU0lDX1BFUk1JU1NJT05TLlNhYVNLZXl9ICkgJiYgJHtCQVNJQ19QRVJNSVNTSU9OUy5CZXRhfWBcbiAgICAgICAgcGVybWlzc2lvbi5zcGxpdCgnICcpLmZvckVhY2goeCA9PiB7XG4gICAgICAgICAgICBsZXQgcmF3ID0geDtcbiAgICAgICAgICAgIGlmICh4LmluY2x1ZGVzKCdQYWdlcycpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb2R1Y3RLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmF3ID0gYHRoaXMuaXNHcmFudGVkKCcke3h9JywgJyR7cHJvZHVjdEtleX0nLCAnJHtwZXJtaXNzaW9uX2tleX0nLCAnJHtwcm9kdWN0U2x1Z30nKWA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmF3ID0gYHRoaXMuaXNHcmFudGVkKCcke3h9JylgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwciArPSBgJHtyYXd9IGA7XG4gICAgICAgIH0sIHRoaXMpO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1ldmFsXG4gICAgICAgIC8vIE5PU09OQVI6IFRydXN0ZWQgZXZhbCBmdW5jdGlvbiBpcyBoYW5kbGVkIHNhZmVseSBoZXJlXG4gICAgICAgIGNvbnNvbGUubG9nKCdldmFsKGV4cHIpJywgZXZhbChleHByKSlcbiAgICAgICAgcmV0dXJuIGV2YWwoZXhwcik7IC8vIE5PU09OQVJcbiAgICB9XG5cbiAgICBnZXRQZXJtaXNzaW9uQnlSb2xlKHJvbGVJZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXQoYC9hZG1pbi9yb2xlX3Blcm1pc3Npb25zLyR7cm9sZUlkfWApO1xuICAgIH1cblxuICAgIHNhdmVVc2VyUGVybWlzc2lvbihwYXlsb2FkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wb3N0KGAvYWRtaW4vcm9sZV9wZXJtaXNzaW9uc2AsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGRldGVybWluZSB1c2VyIGlzIHN1cGVyX2FkbWluIHVzaW5nIHVzZXIuYXV0aC5ncmFudGVkWydQYWdlcy5TdXBlckFkbWluJ11cbiAgICAgKi9cbiAgICBpc1N1cGVyQWRtaW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbJ1BhZ2VzLlN1cGVyQWRtaW4nXSB8fCBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQW55IFByb2R1Y3QgQWRtaW4gcmVnYXJkbGVzcyBvZiB0aGUgcHJvZHVjdCBiZWluZyBtYXN0ZXIgcHJvZHVjdCBvciBub3QuXG4gICAgICovXG4gICAgcHVibGljIGlzVXNlclN1YnNjcmlwdGlvbk93bmVyKHByb2R1Y3Q/KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghcHJvZHVjdCkge1xuICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMuZ2V0Q3VycmVudFByb2R1Y3QoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0O1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25TbHVnID0gc2VsZWN0ZWRQcm9kdWN0Py5zdWJzY3JpcHRpb25fc2x1ZztcbiAgICAgICAgcmV0dXJuICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFtcbiAgICAgICAgICAgIGBQYWdlcy5Qcm9kdWN0LiR7c3Vic2NyaXB0aW9uU2x1Z30uJHtwcm9kdWN0LnBlcm1pc3Npb25fa2V5fS4ke3Byb2R1Y3QuZmVhdHVyZV9rZXl9LlN1YnNjcmlwdGlvbk93bmVyYFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFueSBQcm9kdWN0IEFkbWluIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb2R1Y3QgYmVpbmcgbWFzdGVyIHByb2R1Y3Qgb3Igbm90LlxuICAgICAqICpyYmFjQWxsb3c9XCJTdWJzY3JpcHRpb25BZG1pblwiXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNVc2VyU3Vic2NyaXB0aW9uQWRtaW4ocHJvZHVjdD8pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFwcm9kdWN0KSB7XG4gICAgICAgICAgICBwcm9kdWN0ID0gdGhpcy5nZXRDdXJyZW50UHJvZHVjdCgpO1xuICAgICAgICB9XG4gICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0O1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2x1ZyA9IHNlbGVjdGVkUHJvZHVjdD8uc3Vic2NyaXB0aW9uX3NsdWc7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbXG4gICAgICAgICAgICAgICAgYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS4ke3Byb2R1Y3QucGVybWlzc2lvbl9rZXl9LiR7cHJvZHVjdC5mZWF0dXJlX2tleX0uU3Vic2NyaXB0aW9uQWRtaW5gXG4gICAgICAgICAgICBdIHx8XG4gICAgICAgICAgICAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbXG4gICAgICAgICAgICAgICAgYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS4ke3Byb2R1Y3QucGVybWlzc2lvbl9rZXl9LiR7cHJvZHVjdC5mZWF0dXJlX2tleX0uU3Vic2NyaXB0aW9uT3duZXJgXG4gICAgICAgICAgICBdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW55IFByb2R1Y3QgQWRtaW4gb2YgdGhlIHByb2R1Y3QgYmVpbmcgdGhlIG1hc3RlciBwcm9kdWN0XG4gICAgICovXG4gICAgaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJBZG1pbihwcm9kdWN0Pyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXByb2R1Y3QpIHtcbiAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLmdldEN1cnJlbnRQcm9kdWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9kdWN0ID0gUGVybWlzc2lvblNlcnZpY2U/LnNlbGVjdGVkUHJvZHVjdDtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2x1ZyA9IHNlbGVjdGVkUHJvZHVjdD8uc3Vic2NyaXB0aW9uX3NsdWc7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbXG4gICAgICAgICAgICAgICAgYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS4ke3Byb2R1Y3QucGVybWlzc2lvbl9rZXl9LiR7cHJvZHVjdC5mZWF0dXJlX2tleX0uU3Vic2NyaXB0aW9uU3VwZXJBZG1pbmBcbiAgICAgICAgICAgIF0gfHxcbiAgICAgICAgICAgICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFtcbiAgICAgICAgICAgICAgICBgUGFnZXMuUHJvZHVjdC4ke3N1YnNjcmlwdGlvblNsdWd9LiR7cHJvZHVjdC5wZXJtaXNzaW9uX2tleX0uJHtwcm9kdWN0LmZlYXR1cmVfa2V5fS5TdWJzY3JpcHRpb25TdXBlck93bmVyYFxuICAgICAgICAgICAgXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFueSBQcm9kdWN0IEFkbWluIG9mIHRoZSBwcm9kdWN0IGJlaW5nIHRoZSBtYXN0ZXIgcHJvZHVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBpc1VzZXJTdWJzY3JpcHRpb25TdXBlck93bmVyKHByb2R1Y3Q/KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghcHJvZHVjdCkge1xuICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMuZ2V0Q3VycmVudFByb2R1Y3QoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0O1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25TbHVnID0gc2VsZWN0ZWRQcm9kdWN0Py5zdWJzY3JpcHRpb25fc2x1ZztcbiAgICAgICAgcmV0dXJuICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFtcbiAgICAgICAgICAgIGBQYWdlcy5Qcm9kdWN0LiR7c3Vic2NyaXB0aW9uU2x1Z30uJHtwcm9kdWN0LnBlcm1pc3Npb25fa2V5fS4ke3Byb2R1Y3QuZmVhdHVyZV9rZXl9LlN1YnNjcmlwdGlvblN1cGVyT3duZXJgXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgc2V0Q3VycmVudFByb2R1Y3QocHJvZHVjdCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgICAgICdwcm9kdWN0JyxcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBpZDogcHJvZHVjdC5pZCxcbiAgICAgICAgICAgICAgICBwZXJtaXNzaW9uX2tleTogcHJvZHVjdC5wZXJtaXNzaW9uX2tleSxcbiAgICAgICAgICAgICAgICBmZWF0dXJlX2tleTogcHJvZHVjdC5mZWF0dXJlX2tleSxcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JZDogcHJvZHVjdC5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25fc2x1ZzogcHJvZHVjdC5zdWJzY3JpcHRpb25fc2x1Z1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFByb2R1Y3QoKSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwcm9kdWN0JykpO1xuICAgIH1cbn1cbiJdfQ==
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24tc2VydmljZXMvc3JjL2xpYi9wZXJtaXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs3RCxNQUFNLE9BQU8saUJBQWlCO0lBUzFCLFlBQTZCLEdBQXVCO1FBQXZCLFFBQUcsR0FBSCxHQUFHLENBQW9CO1FBRnBELFNBQUksR0FBUyxJQUFJLENBQUM7SUFFcUMsQ0FBQztJQUV4RCxzQkFBc0IsQ0FBQyxZQUFZO1FBQy9CLGlCQUFpQixDQUFDLG9CQUFvQixHQUFHLFlBQVksQ0FBQztJQUMxRCxDQUFDO0lBRUQsU0FBUyxDQUFDLGNBQXNCLEVBQUUsVUFBVSxHQUFHLElBQUksRUFBRSxjQUFjLEdBQUcsSUFBSSxFQUFFLFdBQVcsR0FBRyxJQUFJO1FBQzFGLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztZQUV0QixzQ0FBc0M7WUFDdEMseUJBQXlCO1lBQ3pCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixNQUFNLGVBQWUsR0FBRyxpQkFBaUIsRUFBRSxlQUFlLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENB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QkFBaUI7U0FDL0MsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU0saUJBQWlCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzsrR0F4UVEsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGZCxNQUFNOzs0RkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBwaWNrQnkgZnJvbSAnbG9kYXNoL3BpY2tCeSc7XG5cbmltcG9ydCB7IEFETUlOX1NVQl9NRU5VX1dISVRFTElTVCwgUEVSTUlTU0lPTl9OQU1FUywgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IE1haW5BcGlIdHRwU2VydmljZSB9IGZyb20gJy4vbWFpbi1hcGktaHR0cC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uU2VydmljZSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBzdGF0aWMgc2VsZWN0ZWRQcm9kdWN0OiBhbnk7IC8vIE5PU09OQVJcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgc3RhdGljIHNlbGVjdGVkU3Vic2NyaXB0aW9uOiBhbnk7IC8vIE5PU09OQVJcblxuICAgIHVzZXI6IFVzZXIgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcGk6IE1haW5BcGlIdHRwU2VydmljZSkge31cblxuICAgIHNldEN1cnJlbnRTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uID0gc3Vic2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGlzR3JhbnRlZChwZXJtaXNzaW9uTmFtZTogc3RyaW5nLCBwcm9kdWN0S2V5ID0gbnVsbCwgcGVybWlzc2lvbl9rZXkgPSBudWxsLCBwcm9kdWN0U2x1ZyA9IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgICAgICAgY29uc3QgeyB1c2VyIH0gPSB0aGlzO1xuXG4gICAgICAgICAgICAvLyBBZG1pbiBoYXZlIGFjY2VzcyB0byBhbGwgdGhlIG1lbnVzLlxuICAgICAgICAgICAgLy8gRS5nLiwgUGFnZXMuU3VwZXJBZG1pblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNTdXBlckFkbWluKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBlcm1pc3Npb25OYW1lKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvZHVjdCA9IFBlcm1pc3Npb25TZXJ2aWNlPy5zZWxlY3RlZFByb2R1Y3QgfHwgdGhpcy5nZXRDdXJyZW50UHJvZHVjdCgpO1xuICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25TbHVnID0gc2VsZWN0ZWRQcm9kdWN0Py5zdWJzY3JpcHRpb25fc2x1ZztcblxuICAgICAgICAgICAgICBsZXQgc2x1Z1RvQ2hlY2s7XG4gICAgICAgICAgICAgIGlmICghcHJvZHVjdFNsdWcpIHtcbiAgICAgICAgICAgICAgICAgc2x1Z1RvQ2hlY2sgPSBgUGFnZXMuUHJvZHVjdC4ke3N1YnNjcmlwdGlvblNsdWd9LmA7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2x1Z1RvQ2hlY2sgPSBwcm9kdWN0U2x1Z1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXBlcm1pc3Npb25OYW1lLmluY2x1ZGVzKHNsdWdUb0NoZWNrKSkge1xuICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbk5hbWUgPSBwZXJtaXNzaW9uTmFtZS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAnUGFnZXMuUHJvZHVjdC4nLFxuICAgICAgICAgICAgICAgICAgICBzbHVnVG9DaGVja1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJldHVybmluZyB0cnVlIGlmIHVzZXIgaGFzIGEgZ2l2ZW4gcGVybWlzc2lvblxuICAgICAgICAgICAgLy8gRS5nLiwgUGFnZXMuUm9sZS5DbG91ZE9saXZlLlNhbGVzTWFuYWdlclxuICAgICAgICAgICAgLy8gb3IgUGFnZXMuQmV0YSBvciBQYWdlcy5BbHBoYVxuICAgICAgICAgICAgaWYgKHVzZXJbJ2F1dGgnXT8uWydncmFudGVkJ11bcGVybWlzc2lvbk5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHByb2R1Y3RLZXkpIHtcbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXJzIHRoZSBwZXJtaXNzaW9uIG9ubHkgZm9yIHRoZSBzZWxlY3RlZCBwcm9kdWN0LlxuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFBlcm1pc3Npb25zID0gcGlja0J5KFxuICAgICAgICAgICAgICAgICAgICBjbG9uZURlZXAodXNlclsnYXV0aCddWydncmFudGVkJ10pLFxuICAgICAgICAgICAgICAgICAgICAoX3ZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5LmluY2x1ZGVzKHByb2R1Y3RLZXkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAvLyBhZGQgUGFnZXMuUHJvZHVjdC57cGVybWlzc2lvbl9rZXl9XG4gICAgICAgICAgICAgICAgZmlsdGVyZWRQZXJtaXNzaW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ueyBbYFBhZ2VzLlByb2R1Y3QuJHtwZXJtaXNzaW9uX2tleX1gXTogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgICAuLi5maWx0ZXJlZFBlcm1pc3Npb25zXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIC8vIEUuZy4sIFBhZ2VzLlByb2R1Y3QuQ2xvdWRPbGl2ZS5DbG91ZE9saXZlX01zcEtleVxuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZFBlcm1pc3Npb25zW3Blcm1pc3Npb25OYW1lXSB8fCBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbm8gdmFsaWQgcGVybWlzc2lvbiB3YXMgZGV0ZWN0ZWQgZm9yIHRoaXMgdXNlclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdXNlciBub3QgbG9nZ2VkLWluXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXRQZXJtaXNzaW9uVHJlZURhdGFCeVJvbGUoZGF0YSkge1xuICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IFtdO1xuICAgICAgICBkYXRhLmFsbC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBuYW1lIH0gPSBlbGVtZW50O1xuICAgICAgICAgICAgcGVybWlzc2lvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6IGVsZW1lbnQuaWQsIC8vIHBlcm1pc3Npb25JZDogVXNlZCB0byB1cGRhdGUgdGhlIHBlcm1pc3Npb25zIG9uIGNoYW5nZVxuICAgICAgICAgICAgICAgIHBhcmVudE5hbWU6IG5hbWUuaW5jbHVkZXMoJy4nKSA/IG5hbWUuc3Vic3RyaW5nKDAsIG5hbWUubGFzdEluZGV4T2YoJy4nKSkgOiBudWxsLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGVsZW1lbnQubmFtZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwZXJtaXNzaW9ucyxcbiAgICAgICAgICAgIGdyYW50ZWRQZXJtaXNzaW9uTmFtZXM6IE9iamVjdC5rZXlzKGRhdGEuZ3JhbnRlZClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBldmFsdWF0ZVBlcm1pc3Npb25zKFxuICAgICAgICBwZXJtaXNzaW9uOiBzdHJpbmcsXG4gICAgICAgIHByb2R1Y3RLZXk6IHN0cmluZyA9IG51bGwsXG4gICAgICAgIHBlcm1pc3Npb25fa2V5OiBzdHJpbmcgPSBudWxsLFxuICAgICAgICBwcm9kdWN0U2x1Zzogc3RyaW5nID0gbnVsbFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC0gICBgU3VwZXJBZG1pbmAgICAgICAgICAgICAgPT4gIEdvZC1saWtlIHBvd2VyIC0gTW9zdCBwcml2aWxlZ2VkXG5cbiAgICAgICAgLy8gLSAgIGBTdWJzY3JpcHRpb25TdXBlck93bmVyYCA9PiAgU29tZSBvZiB0aGUgZmVhdHVyZXMgdW5kZXIgQWRtaW4gTWVudVxuICAgICAgICAvLyAtICAgYFN1YnNjcmlwdGlvblN1cGVyQWRtaW5gID0+ICBTb21lIG9mIHRoZSBmZWF0dXJlcyB1bmRlciBBZG1pbiBNZW51XG5cbiAgICAgICAgLy8gLSAgIGBTdWJzY3JpcHRpb25Pd25lcmAgICAgID0+IFByb2R1Y3QgOiBTZWN0aW9uIG9mIGEgZ2l2ZW4gc3Vic2NyaXB0aW9uXG4gICAgICAgIC8vIC0gICBgU3Vic2NyaXB0aW9uQWRtaW5gICAgICA9PiBQcm9kdWN0IDogU2VjdGlvbiBvZiBhIGdpdmVuIHN1YnNjcmlwdGlvblxuXG4gICAgICAgIC8vIC0gICBgUGFnZXMuQmV0YWAgICAgICAgICAgICA9PiBQcm9kdWN0IDogU2VjdGlvbiBvZiB0aGUgcGFnZVxuICAgICAgICAvLyAtICAgYFBhZ2VzLkFscGhhYCAgICAgICAgICAgPT4gUHJvZHVjdCA6IFNlY3Rpb24gb2YgdGhlIHBhZ2VcblxuICAgICAgICBsZXQgZXhwciA9ICcnO1xuICAgICAgICBpZiAocGVybWlzc2lvbiA9PT0gUEVSTUlTU0lPTl9OQU1FUy5TdXBlckFkbWluKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1N1cGVyQWRtaW4oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGVybWlzc2lvbiA9PT0gUEVSTUlTU0lPTl9OQU1FUy5TdWJzY3JpcHRpb25BZG1pbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNVc2VyU3Vic2NyaXB0aW9uQWRtaW4oKSB8fCB0aGlzLmlzVXNlclN1YnNjcmlwdGlvbk93bmVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3Vic2NyaXB0aW9uT3duZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzVXNlclN1YnNjcmlwdGlvbk93bmVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3Vic2NyaXB0aW9uU3VwZXJBZG1pbikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXNlclN1YnNjcmlwdGlvblN1cGVyQWRtaW4oKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJPd25lcigpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5pc1N1cGVyQWRtaW4oKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGVybWlzc2lvbiA9PT0gUEVSTUlTU0lPTl9OQU1FUy5TdWJzY3JpcHRpb25TdXBlck93bmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25TdXBlck93bmVyKCkgfHwgdGhpcy5pc1N1cGVyQWRtaW4oKTtcbiAgICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgICAgdHlwZW9mIHBlcm1pc3Npb24gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICBBRE1JTl9TVUJfTUVOVV9XSElURUxJU1Quc29tZSh2ID0+IHBlcm1pc3Npb24uaW5jbHVkZXModikpICYmXG4gICAgICAgICAgKHRoaXMuaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJBZG1pbigpIHx8IHRoaXMuaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJPd25lcigpKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGV2YWx1YXRlcyBhIGNvbXBsZXggcGVybWlzc2lvblxuICAgICAgICAvLyBFZzogYCggJHtCQVNJQ19QRVJNSVNTSU9OUy5Nc3BLZXl9IHx8ICR7QkFTSUNfUEVSTUlTU0lPTlMuU2FhU0tleX0gKSAmJiAke0JBU0lDX1BFUk1JU1NJT05TLkJldGF9YFxuICAgICAgICBwZXJtaXNzaW9uLnNwbGl0KCcgJykuZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICAgIGxldCByYXcgPSB4O1xuICAgICAgICAgICAgaWYgKHguaW5jbHVkZXMoJ1BhZ2VzJykpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvZHVjdEtleSkge1xuICAgICAgICAgICAgICAgICAgICByYXcgPSBgdGhpcy5pc0dyYW50ZWQoJyR7eH0nLCAnJHtwcm9kdWN0S2V5fScsICcke3Blcm1pc3Npb25fa2V5fScsICcke3Byb2R1Y3RTbHVnfScpYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByYXcgPSBgdGhpcy5pc0dyYW50ZWQoJyR7eH0nKWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHByICs9IGAke3Jhd30gYDtcbiAgICAgICAgfSwgdGhpcyk7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV2YWxcbiAgICAgICAgLy8gTk9TT05BUjogVHJ1c3RlZCBldmFsIGZ1bmN0aW9uIGlzIGhhbmRsZWQgc2FmZWx5IGhlcmVcbiAgICAgICAgY29uc29sZS5sb2coJ2V2YWwoZXhwciknLCBldmFsKGV4cHIpKVxuICAgICAgICByZXR1cm4gZXZhbChleHByKTsgLy8gTk9TT05BUlxuICAgIH1cblxuICAgIGdldFBlcm1pc3Npb25CeVJvbGUocm9sZUlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgL2FkbWluL3JvbGVfcGVybWlzc2lvbnMvJHtyb2xlSWR9YCk7XG4gICAgfVxuXG4gICAgc2F2ZVVzZXJQZXJtaXNzaW9uKHBheWxvYWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBvc3QoYC9hZG1pbi9yb2xlX3Blcm1pc3Npb25zYCwgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZGV0ZXJtaW5lIHVzZXIgaXMgc3VwZXJfYWRtaW4gdXNpbmcgdXNlci5hdXRoLmdyYW50ZWRbJ1BhZ2VzLlN1cGVyQWRtaW4nXVxuICAgICAqL1xuICAgIGlzU3VwZXJBZG1pbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFsnUGFnZXMuU3VwZXJBZG1pbiddIHx8IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBBbnkgUHJvZHVjdCBBZG1pbiByZWdhcmRsZXNzIG9mIHRoZSBwcm9kdWN0IGJlaW5nIG1hc3RlciBwcm9kdWN0IG9yIG5vdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNVc2VyU3Vic2NyaXB0aW9uT3duZXIocHJvZHVjdD8pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFwcm9kdWN0KSB7XG4gICAgICAgICAgICBwcm9kdWN0ID0gdGhpcy5nZXRDdXJyZW50UHJvZHVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvZHVjdCA9IFBlcm1pc3Npb25TZXJ2aWNlPy5zZWxlY3RlZFByb2R1Y3Q7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvblNsdWcgPSBzZWxlY3RlZFByb2R1Y3Q/LnN1YnNjcmlwdGlvbl9zbHVnO1xuICAgICAgICByZXR1cm4gISF0aGlzLnVzZXIuYXV0aC5ncmFudGVkW1xuICAgICAgICAgICAgYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS4ke3Byb2R1Y3QucGVybWlzc2lvbl9rZXl9LiR7cHJvZHVjdC5mZWF0dXJlX2tleX0uU3Vic2NyaXB0aW9uT3duZXJgXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW55IFByb2R1Y3QgQWRtaW4gcmVnYXJkbGVzcyBvZiB0aGUgcHJvZHVjdCBiZWluZyBtYXN0ZXIgcHJvZHVjdCBvciBub3QuXG4gICAgICogKnJiYWNBbGxvdz1cIlN1YnNjcmlwdGlvbkFkbWluXCJcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIHB1YmxpYyBpc1VzZXJTdWJzY3JpcHRpb25BZG1pbihwcm9kdWN0Pyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXByb2R1Y3QpIHtcbiAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLmdldEN1cnJlbnRQcm9kdWN0KCk7XG4gICAgICAgIH1cbiAgICAgIGNvbnN0IHNlbGVjdGVkUHJvZHVjdCA9IFBlcm1pc3Npb25TZXJ2aWNlPy5zZWxlY3RlZFByb2R1Y3Q7XG4gICAgICBjb25zdCBzdWJzY3JpcHRpb25TbHVnID0gc2VsZWN0ZWRQcm9kdWN0Py5zdWJzY3JpcHRpb25fc2x1ZztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFtcbiAgICAgICAgICAgICAgICBgUGFnZXMuUHJvZHVjdC4ke3N1YnNjcmlwdGlvblNsdWd9LiR7cHJvZHVjdC5wZXJtaXNzaW9uX2tleX0uJHtwcm9kdWN0LmZlYXR1cmVfa2V5fS5TdWJzY3JpcHRpb25BZG1pbmBcbiAgICAgICAgICAgIF0gfHxcbiAgICAgICAgICAgICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFtcbiAgICAgICAgICAgICAgICBgUGFnZXMuUHJvZHVjdC4ke3N1YnNjcmlwdGlvblNsdWd9LiR7cHJvZHVjdC5wZXJtaXNzaW9uX2tleX0uJHtwcm9kdWN0LmZlYXR1cmVfa2V5fS5TdWJzY3JpcHRpb25Pd25lcmBcbiAgICAgICAgICAgIF1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbnkgUHJvZHVjdCBBZG1pbiBvZiB0aGUgcHJvZHVjdCBiZWluZyB0aGUgbWFzdGVyIHByb2R1Y3RcbiAgICAgKi9cbiAgICBpc1VzZXJTdWJzY3JpcHRpb25TdXBlckFkbWluKHByb2R1Y3Q/KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghcHJvZHVjdCkge1xuICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMuZ2V0Q3VycmVudFByb2R1Y3QoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0O1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25TbHVnID0gc2VsZWN0ZWRQcm9kdWN0Py5zdWJzY3JpcHRpb25fc2x1ZztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFtcbiAgICAgICAgICAgICAgICBgUGFnZXMuUHJvZHVjdC4ke3N1YnNjcmlwdGlvblNsdWd9LiR7cHJvZHVjdC5wZXJtaXNzaW9uX2tleX0uJHtwcm9kdWN0LmZlYXR1cmVfa2V5fS5TdWJzY3JpcHRpb25TdXBlckFkbWluYFxuICAgICAgICAgICAgXSB8fFxuICAgICAgICAgICAgISF0aGlzLnVzZXIuYXV0aC5ncmFudGVkW1xuICAgICAgICAgICAgICAgIGBQYWdlcy5Qcm9kdWN0LiR7c3Vic2NyaXB0aW9uU2x1Z30uJHtwcm9kdWN0LnBlcm1pc3Npb25fa2V5fS4ke3Byb2R1Y3QuZmVhdHVyZV9rZXl9LlN1YnNjcmlwdGlvblN1cGVyT3duZXJgXG4gICAgICAgICAgICBdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW55IFByb2R1Y3QgQWRtaW4gb2YgdGhlIHByb2R1Y3QgYmVpbmcgdGhlIG1hc3RlciBwcm9kdWN0XG4gICAgICovXG4gICAgcHVibGljIGlzVXNlclN1YnNjcmlwdGlvblN1cGVyT3duZXIocHJvZHVjdD8pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFwcm9kdWN0KSB7XG4gICAgICAgICAgICBwcm9kdWN0ID0gdGhpcy5nZXRDdXJyZW50UHJvZHVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvZHVjdCA9IFBlcm1pc3Npb25TZXJ2aWNlPy5zZWxlY3RlZFByb2R1Y3Q7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvblNsdWcgPSBzZWxlY3RlZFByb2R1Y3Q/LnN1YnNjcmlwdGlvbl9zbHVnO1xuICAgICAgICByZXR1cm4gISF0aGlzLnVzZXIuYXV0aC5ncmFudGVkW1xuICAgICAgICAgICAgYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS4ke3Byb2R1Y3QucGVybWlzc2lvbl9rZXl9LiR7cHJvZHVjdC5mZWF0dXJlX2tleX0uU3Vic2NyaXB0aW9uU3VwZXJPd25lcmBcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50UHJvZHVjdChwcm9kdWN0KSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICAgICAgJ3Byb2R1Y3QnLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGlkOiBwcm9kdWN0LmlkLFxuICAgICAgICAgICAgICAgIHBlcm1pc3Npb25fa2V5OiBwcm9kdWN0LnBlcm1pc3Npb25fa2V5LFxuICAgICAgICAgICAgICAgIGZlYXR1cmVfa2V5OiBwcm9kdWN0LmZlYXR1cmVfa2V5LFxuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbklkOiBwcm9kdWN0LnN1YnNjcmlwdGlvbklkLFxuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9zbHVnOiBwcm9kdWN0LnN1YnNjcmlwdGlvbl9zbHVnXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXJyZW50UHJvZHVjdCgpIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Byb2R1Y3QnKSk7XG4gICAgfVxufVxuIl19
@@ -960,7 +960,8 @@ class PermissionService {
960
960
  if (permission === PERMISSION_NAMES.SubscriptionSuperOwner) {
961
961
  return this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();
962
962
  }
963
- if (ADMIN_SUB_MENU_WHITELIST.some(v => permission.includes(v)) &&
963
+ if (typeof permission === "string" &&
964
+ ADMIN_SUB_MENU_WHITELIST.some(v => permission.includes(v)) &&
964
965
  (this.isUserSubscriptionSuperAdmin() || this.isUserSubscriptionSuperOwner())) {
965
966
  return true;
966
967
  }