sk-front-lib 0.19.7 → 0.19.9
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.
|
@@ -93,13 +93,13 @@ export class SkCartLocalService {
|
|
|
93
93
|
const cartList = this.loadRaw();
|
|
94
94
|
const index = this.loadRaw().findIndex(item => item.id === cart.id);
|
|
95
95
|
if (index > -1) {
|
|
96
|
-
if (cart.product.maxBuyCount > 0 && cart.amount > cart.product.maxBuyCount) {
|
|
97
|
-
// 에러 리턴
|
|
98
|
-
return throwError('최대 구매 수량을 초과하였습니다.');
|
|
99
|
-
}
|
|
100
96
|
cartList[index] = cart;
|
|
101
97
|
localStorage.setItem('cartData', SkUtils.encodeBase64(cartList));
|
|
102
98
|
}
|
|
99
|
+
if (cart.product.maxBuyCount > 0 && cart.amount > cart.product.maxBuyCount) {
|
|
100
|
+
// 에러 리턴
|
|
101
|
+
return throwError(new Error('최대 구매 수량을 초과하였습니다.'));
|
|
102
|
+
}
|
|
103
103
|
return of(cartList);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
@@ -257,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
257
257
|
providedIn: 'root'
|
|
258
258
|
}]
|
|
259
259
|
}], ctorParameters: function () { return [{ type: i2.SkAuthService }, { type: i1.SkApiService }, { type: SkCartApiService }, { type: SkCartLocalService }]; } });
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2NydWQvc3JjL3NrLWNhcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUdsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFnQixVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFckMsT0FBTyxFQUFnQixNQUFNLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQW1CekQsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixZQUFvQixXQUF5QjtRQUF6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYztJQUU3QyxDQUFDO0lBRUQsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQVcsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQzNELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ3ZFLENBQUM7SUFDTixDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDWixNQUFNLElBQUksR0FBa0I7WUFDeEIsT0FBTyxFQUFFLElB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LENBQUMsV0FBVyxDQUFDLElBQUksQ0FBTSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzFELEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixZQUFZO1lBQ1osV0FBVztTQUNkLENBQUMsQ0FBQyxFQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDN0IsQ0FBQztJQUNWLENBQUM7OzJHQXJLUSxhQUFhOytHQUFiLGFBQWEsY0FGVixNQUFNOzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuXG5pbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTa1V0aWxzfSBmcm9tICdzay1mcm9udC1saWInO1xuaW1wb3J0IHtTa0FwaVNlcnZpY2V9IGZyb20gJ3NrLWZyb250LWxpYi9hcGknO1xuaW1wb3J0IHtJU2tDYXJ0Q3JlYXRlLCBTa0NhcnR9IGZyb20gJ3NrLWZyb250LWxpYi9tb2RlbCc7XG5pbXBvcnQge1NrQXV0aFNlcnZpY2V9IGZyb20gJy4vc2stYXV0aC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBDYXJ0QWJzdHJhY3RTZXJ2aWNlIHtcbiAgICBsb2FkKCk6IE9ic2VydmFibGU8U2tDYXJ0W10+O1xuXG4gICAgY2xlYXIoKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT47XG5cbiAgICBhZGQoY2FydDogU2tDYXJ0KTogT2JzZXJ2YWJsZTxTa0NhcnRbXT47XG5cbiAgICByZW1vdmUoY2FydHM6IFNrQ2FydFtdKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT47XG5cbiAgICB1cGRhdGUoY2FydDogU2tDYXJ0KTogT2JzZXJ2YWJsZTxTa0NhcnRbXT47XG59XG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTa0NhcnRBcGlTZXJ2aWNlIGltcGxlbWVudHMgQ2FydEFic3RyYWN0U2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hcGlTZXJ2aWNlOiBTa0FwaVNlcnZpY2UpIHtcblxuICAgIH1cblxuICAgIGxvYWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLmdldDxTa0NhcnRbXT4oYC9hcGkvcHVibGljL2NhcnRzYCkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiAocmVzcG9uc2UuZGF0YSB8fCBbXSkubWFwKGl0ZW0gPT4gbmV3IFNrQ2FydChpdGVtKSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkKGNhcnQ6IFNrQ2FydCk6IE9ic2VydmFibGU8U2tDYXJ0W10+IHtcbiAgICAgICAgY29uc3QgZGF0YTogSVNrQ2FydENyZWF0ZSA9IHtcbiAgICAgICAgICAgIHByb2R1Y3Q6IGNhcnQucHJvZHVjdC5pZCxcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uczogY2FydC5vcHRpb25zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUuaWQsXG4gICAgICAgICAgICAgICAgb3B0aW9uOiBpdGVtLm9wdGlvbi5pZCxcbiAgICAgICAgICAgICAgICBhbW91bnQ6IGl0ZW0uYW1vdW50XG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBhbW91bnQ6IGNhcnQuYW1vdW50LFxuICAgICAgICAgICAgc2VsZWN0ZWRHaWZ0czogKGNhcnQuZ2lmdHMgfHwgW10pLm1hcChpdGVtID0+ICh7aWQ6IGl0ZW0uaWR9KSlcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wb3N0PFNrQ2FydFtdPihgL2FwaS9wdWJsaWMvY2FydHNgLCBkYXRhKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IChyZXNwb25zZS5kYXRhIHx8IFtdKS5tYXAoaXRlbSA9PiBuZXcgU2tDYXJ0KGl0ZW0pKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjbGVhcigpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmVtb3ZlKGNhcnRzOiBTa0NhcnRbXSk6IE9ic2VydmFibGU8U2tDYXJ0W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlQnlJZEFycmF5KGNhcnRzLm1hcChjYXJ0ID0+IGNhcnQuaWQpKTtcbiAgICB9XG5cbiAgICByZW1vdmVCeUlkQXJyYXkoaWRBcnJheTogbnVtYmVyW10pOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIGNvbnN0IGlkcyA9IGlkQXJyYXkuZmlsdGVyKGlkID0+IE51bWJlcihpZCkgPj0gMSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLmRlbGV0ZTxTa0NhcnRbXT4oYC9hcGkvcHVibGljL2NhcnRzYCwgbmV3IEh0dHBQYXJhbXMoKS5hcHBlbmQoJ3RhcmdldCcsIGlkcy5qb2luKCcsJykpKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IChyZXNwb25zZS5kYXRhIHx8IFtdKS5tYXAoaXRlbSA9PiBuZXcgU2tDYXJ0KGl0ZW0pKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGRhdGUoY2FydDogU2tDYXJ0KTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wdXQ8U2tDYXJ0W10+KGAvYXBpL3B1YmxpYy9jYXJ0cy8ke2NhcnQuaWR9YCwge2Ftb3VudDogY2FydC5hbW91bnR9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IChyZXNwb25zZS5kYXRhIHx8IFtdKS5tYXAoaXRlbSA9PiBuZXcgU2tDYXJ0KGl0ZW0pKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2tDYXJ0TG9jYWxTZXJ2aWNlIGltcGxlbWVudHMgQ2FydEFic3RyYWN0U2VydmljZSB7XG5cbiAgICBwcml2YXRlIGlzUGxhdGZvcm1Ccm93c2VyOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICAgICAgdGhpcy5pc1BsYXRmb3JtQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gICAgfVxuXG4gICAgbG9hZFJhdygpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBbXTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUGxhdGZvcm1Ccm93c2VyKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IChTa1V0aWxzLmRlY29kZUJhc2U2NChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2FydERhdGEnKSkgfHwgW10pLm1hcChpdGVtID0+IG5ldyBTa0NhcnQoaXRlbSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBkYXRhID0gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBsb2FkKCkge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5sb2FkUmF3KCkpO1xuICAgIH1cblxuICAgIGFkZChjYXJ0OiBTa0NhcnQpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIGNhcnQuaWQgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICBjb25zdCBjYXJ0TGlzdCA9IFtjYXJ0LCAuLi50aGlzLmxvYWRSYXcoKV07XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYXJ0RGF0YScsIFNrVXRpbHMuZW5jb2RlQmFzZTY0KGNhcnRMaXN0KSk7XG4gICAgICAgIHJldHVybiBvZihjYXJ0TGlzdCk7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICBjb25zdCBjYXJ0TGlzdCA9IFtdO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2FydERhdGEnLCBTa1V0aWxzLmVuY29kZUJhc2U2NChjYXJ0TGlzdCkpO1xuICAgICAgICByZXR1cm4gb2YoY2FydExpc3QpO1xuICAgIH1cblxuICAgIHJlbW92ZShjYXJ0czogU2tDYXJ0W10pOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbW92ZUJ5SWRBcnJheShjYXJ0cy5tYXAoY2FydCA9PiBjYXJ0LmlkKSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQnlJZEFycmF5KGlkQXJyYXk6IG51bWJlcltdKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICBjb25zdCByZW1vdmVkSXRlbXMgPSB0aGlzLmxvYWRSYXcoKS5maWx0ZXIoaXRlbSA9PiBpZEFycmF5LmZpbmRJbmRleChpZCA9PiBpZCA9PT0gaXRlbS5pZCkgPCAwKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NhcnREYXRhJywgU2tVdGlscy5lbmNvZGVCYXNlNjQocmVtb3ZlZEl0ZW1zKSk7XG4gICAgICAgIHJldHVybiBvZihyZW1vdmVkSXRlbXMpO1xuICAgIH1cblxuICAgIHVwZGF0ZShjYXJ0OiBTa0NhcnQpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIGNvbnN0IGNhcnRMaXN0ID0gdGhpcy5sb2FkUmF3KCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5sb2FkUmF3KCkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gY2FydC5pZCk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBpZiAoY2FydC5wcm9kdWN0Lm1heEJ1eUNvdW50ID4gMCAmJiBjYXJ0LmFtb3VudCA+IGNhcnQucHJvZHVjdC5tYXhCdXlDb3VudCkge1xuICAgICAgICAgICAgICAgIC8vIOyXkOufrCDrpqzthLRcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcign7LWc64yAIOq1rOunpCDsiJjrn4nsnYQg7LSI6rO87ZWY7JiA7Iq164uI64ukLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXJ0TGlzdFtpbmRleF0gPSBjYXJ0O1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NhcnREYXRhJywgU2tVdGlscy5lbmNvZGVCYXNlNjQoY2FydExpc3QpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihjYXJ0TGlzdCk7XG4gICAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNrQ2FydFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBfY2FydEl0ZW1zJDogQmVoYXZpb3JTdWJqZWN0PFNrQ2FydFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuICAgIHB1YmxpYyByZWFkb25seSBjYXJ0SXRlbXMkOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiA9IHRoaXMuX2NhcnRJdGVtcyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBnZXQgY2FydEl0ZW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FydEl0ZW1zJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCBjYXJ0SXRlbXModmFsdWUpIHtcbiAgICAgICAgdGhpcy5fY2FydEl0ZW1zJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZWxlY3RlZEl0ZW1zJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyW10+KFtdKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtcyQ6IE9ic2VydmFibGU8bnVtYmVyW10+ID0gdGhpcy5fc2VsZWN0ZWRJdGVtcyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBnZXQgc2VsZWN0ZWRJdGVtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbXMkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc2V0IHNlbGVjdGVkSXRlbXModmFsdWUpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbXlJbmZvU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdXRoU2VydmljZTogU2tBdXRoU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9hcGlTZXJ2aWNlOiBTa0FwaVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfYXBpQ2FydFNlcnZpY2U6IFNrQ2FydEFwaVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfYXBpTG9jYWxTZXJ2aWNlOiBTa0NhcnRMb2NhbFNlcnZpY2UpIHtcblxuICAgICAgICAvLyB0aGlzLl9teUluZm9TdWJzY3JpcHRpb24gPSB0aGlzLl9hdXRoU2VydmljZS51c2VyaW5mbyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMubG9hZCgpO1xuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBsb2FkKCkge1xuICAgICAgICB0aGlzLl9hdXRoU2VydmljZS5jaGVja0xvZ2luKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4gcmVzdWx0ID8gdGhpcy5fYXBpQ2FydFNlcnZpY2UubG9hZCgpIDogdGhpcy5fYXBpTG9jYWxTZXJ2aWNlLmxvYWQoKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHRoaXMuX2NhcnRJdGVtcyQubmV4dChyZXN1bHQpKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5fYXV0aFNlcnZpY2UuY2hlY2tMb2dpbigpXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAocmVzdWx0ID0+IHJlc3VsdCA/IHRoaXMuX2FwaUNhcnRTZXJ2aWNlLmNsZWFyKCkgOiB0aGlzLl9hcGlMb2NhbFNlcnZpY2UuY2xlYXIoKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB0aGlzLl9jYXJ0SXRlbXMkLm5leHQocmVzdWx0KSk7XG4gICAgfVxuXG4gICAgYWRkKGNhcnQ6IFNrQ2FydCk6IE9ic2VydmFibGU8U2tDYXJ0W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1dGhTZXJ2aWNlLmNoZWNrTG9naW4oKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PiByZXN1bHQgPyB0aGlzLl9hcGlDYXJ0U2VydmljZS5hZGQoY2FydCkgOiB0aGlzLl9hcGlMb2NhbFNlcnZpY2UuYWRkKGNhcnQpKSxcbiAgICAgICAgICAgICAgICB0YXAocmVzdWx0ID0+IHRoaXMuX2NhcnRJdGVtcyQubmV4dChyZXN1bHQpKVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW1vdmUoY2FydHM6IFNrQ2FydFtdKSB7XG4gICAgICAgIHRoaXMuX2F1dGhTZXJ2aWNlLmNoZWNrTG9naW4oKVxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKHJlc3VsdCA9PiByZXN1bHQgPyB0aGlzLl9hcGlDYXJ0U2VydmljZS5yZW1vdmUoY2FydHMpIDogdGhpcy5fYXBpTG9jYWxTZXJ2aWNlLnJlbW92ZShjYXJ0cykpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhcnRJdGVtcyQubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVCeUlkQXJyYXkoaWRBcnJheTogbnVtYmVyW10pIHtcbiAgICAgICAgdGhpcy5fYXV0aFNlcnZpY2UuY2hlY2tMb2dpbigpXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAocmVzdWx0ID0+IHJlc3VsdCA/IHRoaXMuX2FwaUNhcnRTZXJ2aWNlLnJlbW92ZUJ5SWRBcnJheShpZEFycmF5KSA6IHRoaXMuX2FwaUxvY2FsU2VydmljZS5yZW1vdmVCeUlkQXJyYXkoaWRBcnJheSkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhcnRJdGVtcyQubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGUoY2FydDogU2tDYXJ0LCBlcnJvckNhbGxiYWNrPzogKGVycm9yOiBhbnkpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5fYXV0aFNlcnZpY2UuY2hlY2tMb2dpbigpXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAocmVzdWx0ID0+IHJlc3VsdCA/IHRoaXMuX2FwaUNhcnRTZXJ2aWNlLnVwZGF0ZShjYXJ0KSA6IHRoaXMuX2FwaUxvY2FsU2VydmljZS51cGRhdGUoY2FydCkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4gdGhpcy5fY2FydEl0ZW1zJC5uZXh0KHJlc3VsdCksIGVycm9yQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIGdldENhcnQoaWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FydEl0ZW1zJC5nZXRWYWx1ZSgpLmZpbmQodmFsdWUgPT4gdmFsdWUuaWQgPT09IGlkKTtcbiAgICB9XG5cbiAgICBjaGVja1NlbGVjdGVkSXRlbXMoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIodmFsdWUgPT4gISF0aGlzLmdldENhcnQodmFsdWUpKTtcbiAgICB9XG5cbiAgICBzZWxlY3RBbGwoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuX2NhcnRJdGVtcyQuZ2V0VmFsdWUoKS5tYXAoaXRlbSA9PiBpdGVtLmlkKTtcbiAgICB9XG5cbiAgICBkZVNlbGVjdEFsbCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgfVxuXG4gICAgdG9nZ2xlU2VsZWN0QWxsKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gdGhpcy5fY2FydEl0ZW1zJC5nZXRWYWx1ZSgpLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5kZVNlbGVjdEFsbCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RBbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZVNlbGVjdChjYXJ0OiBTa0NhcnQpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gY2FydC5pZCk7XG4gICAgICAgIGlmICh0YXJnZXRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLnNlbGVjdGVkSXRlbXMsIGNhcnQuaWRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5zZWxlY3RlZEl0ZW1zO1xuICAgICAgICAgICAgdGFyZ2V0LnNwbGljZSh0YXJnZXRJbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0YXJnZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkKGNhcnQ6IFNrQ2FydCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IGNhcnQuaWQpID4gLTE7XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZEFsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IHRoaXMuX2NhcnRJdGVtcyQuZ2V0VmFsdWUoKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgaXNJbnRlcm1lZGlhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoICE9PSB0aGlzLl9jYXJ0SXRlbXMkLmdldFZhbHVlKCkubGVuZ3RoO1xuICAgIH1cblxuICAgIGNyZWF0ZU9yZGVyKHBheW1lbnRUeXBlOiBzdHJpbmcsIGFmZmlsaWF0ZUtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1dGhTZXJ2aWNlLmNoZWNrTG9naW4oKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlVcmw6IGAvYXBpL3B1YmxpYy9vcmRlcnMvZnJvbS1jYXJ0YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlVcmw6IGAvYXBpL3B1YmxpYy9vcmRlcnMvZnJvbS1kYXRhYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoaWQgPT4gdGhpcy5nZXRDYXJ0KGlkKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChjYXJ0ID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogY2FydC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RJZDogY2FydC5wcm9kdWN0LmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50OiBjYXJ0LmFtb3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IChjYXJ0Lm9wdGlvbnMgfHwgW10pLm1hcChvcHRpb24gPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25JZDogb3B0aW9uLm9wdGlvbi5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUlkOiBvcHRpb24udmFsdWUuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50OiBvcHRpb24uYW1vdW50IHx8IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpZnRzOiAoY2FydC5naWZ0cyB8fCBbXSkubWFwKGl0ZW0gPT4gKHtpZDogaXRlbS5pZH0pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHRoaXMuX2FwaVNlcnZpY2UucG9zdDxhbnk+KHJlc3VsdC5hcGlVcmwsIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHJlc3VsdC5pdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgYWZmaWxpYXRlS2V5LFxuICAgICAgICAgICAgICAgICAgICBwYXltZW50VHlwZVxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5kYXRhKVxuICAgICAgICAgICAgKTtcbiAgICB9XG59XG5cblxuXG4iXX0=
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2NydWQvc3JjL3NrLWNhcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUdsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFnQixVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFckMsT0FBTyxFQUFnQixNQUFNLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQW1CekQsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixZQUFvQixXQUF5QjtRQUF6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYztJQUU3QyxDQUFDO0lBRUQsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQVcsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQzNELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ3ZFLENBQUM7SUFDTixDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDWixNQUFNLElBQUksR0FBa0I7WUFDeEIsT0FBTyxFQUFFLElB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QUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBTSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzFELEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixZQUFZO1lBQ1osV0FBVztTQUNkLENBQUMsQ0FBQyxFQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDN0IsQ0FBQztJQUNWLENBQUM7OzJHQXJLUSxhQUFhOytHQUFiLGFBQWEsY0FGVixNQUFNOzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuXG5pbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTa1V0aWxzfSBmcm9tICdzay1mcm9udC1saWInO1xuaW1wb3J0IHtTa0FwaVNlcnZpY2V9IGZyb20gJ3NrLWZyb250LWxpYi9hcGknO1xuaW1wb3J0IHtJU2tDYXJ0Q3JlYXRlLCBTa0NhcnR9IGZyb20gJ3NrLWZyb250LWxpYi9tb2RlbCc7XG5pbXBvcnQge1NrQXV0aFNlcnZpY2V9IGZyb20gJy4vc2stYXV0aC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBDYXJ0QWJzdHJhY3RTZXJ2aWNlIHtcbiAgICBsb2FkKCk6IE9ic2VydmFibGU8U2tDYXJ0W10+O1xuXG4gICAgY2xlYXIoKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT47XG5cbiAgICBhZGQoY2FydDogU2tDYXJ0KTogT2JzZXJ2YWJsZTxTa0NhcnRbXT47XG5cbiAgICByZW1vdmUoY2FydHM6IFNrQ2FydFtdKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT47XG5cbiAgICB1cGRhdGUoY2FydDogU2tDYXJ0KTogT2JzZXJ2YWJsZTxTa0NhcnRbXT47XG59XG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTa0NhcnRBcGlTZXJ2aWNlIGltcGxlbWVudHMgQ2FydEFic3RyYWN0U2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hcGlTZXJ2aWNlOiBTa0FwaVNlcnZpY2UpIHtcblxuICAgIH1cblxuICAgIGxvYWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLmdldDxTa0NhcnRbXT4oYC9hcGkvcHVibGljL2NhcnRzYCkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiAocmVzcG9uc2UuZGF0YSB8fCBbXSkubWFwKGl0ZW0gPT4gbmV3IFNrQ2FydChpdGVtKSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkKGNhcnQ6IFNrQ2FydCk6IE9ic2VydmFibGU8U2tDYXJ0W10+IHtcbiAgICAgICAgY29uc3QgZGF0YTogSVNrQ2FydENyZWF0ZSA9IHtcbiAgICAgICAgICAgIHByb2R1Y3Q6IGNhcnQucHJvZHVjdC5pZCxcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uczogY2FydC5vcHRpb25zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUuaWQsXG4gICAgICAgICAgICAgICAgb3B0aW9uOiBpdGVtLm9wdGlvbi5pZCxcbiAgICAgICAgICAgICAgICBhbW91bnQ6IGl0ZW0uYW1vdW50XG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBhbW91bnQ6IGNhcnQuYW1vdW50LFxuICAgICAgICAgICAgc2VsZWN0ZWRHaWZ0czogKGNhcnQuZ2lmdHMgfHwgW10pLm1hcChpdGVtID0+ICh7aWQ6IGl0ZW0uaWR9KSlcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wb3N0PFNrQ2FydFtdPihgL2FwaS9wdWJsaWMvY2FydHNgLCBkYXRhKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IChyZXNwb25zZS5kYXRhIHx8IFtdKS5tYXAoaXRlbSA9PiBuZXcgU2tDYXJ0KGl0ZW0pKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjbGVhcigpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmVtb3ZlKGNhcnRzOiBTa0NhcnRbXSk6IE9ic2VydmFibGU8U2tDYXJ0W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlQnlJZEFycmF5KGNhcnRzLm1hcChjYXJ0ID0+IGNhcnQuaWQpKTtcbiAgICB9XG5cbiAgICByZW1vdmVCeUlkQXJyYXkoaWRBcnJheTogbnVtYmVyW10pOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIGNvbnN0IGlkcyA9IGlkQXJyYXkuZmlsdGVyKGlkID0+IE51bWJlcihpZCkgPj0gMSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLmRlbGV0ZTxTa0NhcnRbXT4oYC9hcGkvcHVibGljL2NhcnRzYCwgbmV3IEh0dHBQYXJhbXMoKS5hcHBlbmQoJ3RhcmdldCcsIGlkcy5qb2luKCcsJykpKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IChyZXNwb25zZS5kYXRhIHx8IFtdKS5tYXAoaXRlbSA9PiBuZXcgU2tDYXJ0KGl0ZW0pKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGRhdGUoY2FydDogU2tDYXJ0KTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wdXQ8U2tDYXJ0W10+KGAvYXBpL3B1YmxpYy9jYXJ0cy8ke2NhcnQuaWR9YCwge2Ftb3VudDogY2FydC5hbW91bnR9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IChyZXNwb25zZS5kYXRhIHx8IFtdKS5tYXAoaXRlbSA9PiBuZXcgU2tDYXJ0KGl0ZW0pKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2tDYXJ0TG9jYWxTZXJ2aWNlIGltcGxlbWVudHMgQ2FydEFic3RyYWN0U2VydmljZSB7XG5cbiAgICBwcml2YXRlIGlzUGxhdGZvcm1Ccm93c2VyOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICAgICAgdGhpcy5pc1BsYXRmb3JtQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gICAgfVxuXG4gICAgbG9hZFJhdygpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBbXTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUGxhdGZvcm1Ccm93c2VyKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IChTa1V0aWxzLmRlY29kZUJhc2U2NChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2FydERhdGEnKSkgfHwgW10pLm1hcChpdGVtID0+IG5ldyBTa0NhcnQoaXRlbSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBkYXRhID0gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBsb2FkKCkge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5sb2FkUmF3KCkpO1xuICAgIH1cblxuICAgIGFkZChjYXJ0OiBTa0NhcnQpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIGNhcnQuaWQgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICBjb25zdCBjYXJ0TGlzdCA9IFtjYXJ0LCAuLi50aGlzLmxvYWRSYXcoKV07XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYXJ0RGF0YScsIFNrVXRpbHMuZW5jb2RlQmFzZTY0KGNhcnRMaXN0KSk7XG4gICAgICAgIHJldHVybiBvZihjYXJ0TGlzdCk7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICBjb25zdCBjYXJ0TGlzdCA9IFtdO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2FydERhdGEnLCBTa1V0aWxzLmVuY29kZUJhc2U2NChjYXJ0TGlzdCkpO1xuICAgICAgICByZXR1cm4gb2YoY2FydExpc3QpO1xuICAgIH1cblxuICAgIHJlbW92ZShjYXJ0czogU2tDYXJ0W10pOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbW92ZUJ5SWRBcnJheShjYXJ0cy5tYXAoY2FydCA9PiBjYXJ0LmlkKSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQnlJZEFycmF5KGlkQXJyYXk6IG51bWJlcltdKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICBjb25zdCByZW1vdmVkSXRlbXMgPSB0aGlzLmxvYWRSYXcoKS5maWx0ZXIoaXRlbSA9PiBpZEFycmF5LmZpbmRJbmRleChpZCA9PiBpZCA9PT0gaXRlbS5pZCkgPCAwKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NhcnREYXRhJywgU2tVdGlscy5lbmNvZGVCYXNlNjQocmVtb3ZlZEl0ZW1zKSk7XG4gICAgICAgIHJldHVybiBvZihyZW1vdmVkSXRlbXMpO1xuICAgIH1cblxuICAgIHVwZGF0ZShjYXJ0OiBTa0NhcnQpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIGNvbnN0IGNhcnRMaXN0ID0gdGhpcy5sb2FkUmF3KCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5sb2FkUmF3KCkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gY2FydC5pZCk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBjYXJ0TGlzdFtpbmRleF0gPSBjYXJ0O1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NhcnREYXRhJywgU2tVdGlscy5lbmNvZGVCYXNlNjQoY2FydExpc3QpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYXJ0LnByb2R1Y3QubWF4QnV5Q291bnQgPiAwICYmIGNhcnQuYW1vdW50ID4gY2FydC5wcm9kdWN0Lm1heEJ1eUNvdW50KSB7XG4gICAgICAgICAgICAvLyDsl5Drn6wg66as7YS0XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihuZXcgRXJyb3IoJ+y1nOuMgCDqtazrp6Qg7IiY65+J7J2EIOy0iOqzvO2VmOyYgOyKteuLiOuLpC4nKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YoY2FydExpc3QpO1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTa0NhcnRTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgX2NhcnRJdGVtcyQ6IEJlaGF2aW9yU3ViamVjdDxTa0NhcnRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2FydEl0ZW1zJDogT2JzZXJ2YWJsZTxTa0NhcnRbXT4gPSB0aGlzLl9jYXJ0SXRlbXMkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgZ2V0IGNhcnRJdGVtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcnRJdGVtcyQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBzZXQgY2FydEl0ZW1zKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2NhcnRJdGVtcyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtcyQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcltdPihbXSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXMkOiBPYnNlcnZhYmxlPG51bWJlcltdPiA9IHRoaXMuX3NlbGVjdGVkSXRlbXMkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgZ2V0IHNlbGVjdGVkSXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW1zJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCBzZWxlY3RlZEl0ZW1zKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX215SW5mb1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXV0aFNlcnZpY2U6IFNrQXV0aFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfYXBpU2VydmljZTogU2tBcGlTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2FwaUNhcnRTZXJ2aWNlOiBTa0NhcnRBcGlTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2FwaUxvY2FsU2VydmljZTogU2tDYXJ0TG9jYWxTZXJ2aWNlKSB7XG5cbiAgICAgICAgLy8gdGhpcy5fbXlJbmZvU3Vic2NyaXB0aW9uID0gdGhpcy5fYXV0aFNlcnZpY2UudXNlcmluZm8kLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgLy8gfSk7XG4gICAgfVxuXG4gICAgbG9hZCgpIHtcbiAgICAgICAgdGhpcy5fYXV0aFNlcnZpY2UuY2hlY2tMb2dpbigpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHJlc3VsdCA/IHRoaXMuX2FwaUNhcnRTZXJ2aWNlLmxvYWQoKSA6IHRoaXMuX2FwaUxvY2FsU2VydmljZS5sb2FkKCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB0aGlzLl9jYXJ0SXRlbXMkLm5leHQocmVzdWx0KSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuX2F1dGhTZXJ2aWNlLmNoZWNrTG9naW4oKVxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKHJlc3VsdCA9PiByZXN1bHQgPyB0aGlzLl9hcGlDYXJ0U2VydmljZS5jbGVhcigpIDogdGhpcy5fYXBpTG9jYWxTZXJ2aWNlLmNsZWFyKCkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4gdGhpcy5fY2FydEl0ZW1zJC5uZXh0KHJlc3VsdCkpO1xuICAgIH1cblxuICAgIGFkZChjYXJ0OiBTa0NhcnQpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoU2VydmljZS5jaGVja0xvZ2luKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4gcmVzdWx0ID8gdGhpcy5fYXBpQ2FydFNlcnZpY2UuYWRkKGNhcnQpIDogdGhpcy5fYXBpTG9jYWxTZXJ2aWNlLmFkZChjYXJ0KSksXG4gICAgICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiB0aGlzLl9jYXJ0SXRlbXMkLm5leHQocmVzdWx0KSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlKGNhcnRzOiBTa0NhcnRbXSkge1xuICAgICAgICB0aGlzLl9hdXRoU2VydmljZS5jaGVja0xvZ2luKClcbiAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcChyZXN1bHQgPT4gcmVzdWx0ID8gdGhpcy5fYXBpQ2FydFNlcnZpY2UucmVtb3ZlKGNhcnRzKSA6IHRoaXMuX2FwaUxvY2FsU2VydmljZS5yZW1vdmUoY2FydHMpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYXJ0SXRlbXMkLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQnlJZEFycmF5KGlkQXJyYXk6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuX2F1dGhTZXJ2aWNlLmNoZWNrTG9naW4oKVxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKHJlc3VsdCA9PiByZXN1bHQgPyB0aGlzLl9hcGlDYXJ0U2VydmljZS5yZW1vdmVCeUlkQXJyYXkoaWRBcnJheSkgOiB0aGlzLl9hcGlMb2NhbFNlcnZpY2UucmVtb3ZlQnlJZEFycmF5KGlkQXJyYXkpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYXJ0SXRlbXMkLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNhcnQ6IFNrQ2FydCwgZXJyb3JDYWxsYmFjaz86IChlcnJvcjogYW55KSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX2F1dGhTZXJ2aWNlLmNoZWNrTG9naW4oKVxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKHJlc3VsdCA9PiByZXN1bHQgPyB0aGlzLl9hcGlDYXJ0U2VydmljZS51cGRhdGUoY2FydCkgOiB0aGlzLl9hcGlMb2NhbFNlcnZpY2UudXBkYXRlKGNhcnQpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHRoaXMuX2NhcnRJdGVtcyQubmV4dChyZXN1bHQpLCBlcnJvckNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBnZXRDYXJ0KGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcnRJdGVtcyQuZ2V0VmFsdWUoKS5maW5kKHZhbHVlID0+IHZhbHVlLmlkID09PSBpZCk7XG4gICAgfVxuXG4gICAgY2hlY2tTZWxlY3RlZEl0ZW1zKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKHZhbHVlID0+ICEhdGhpcy5nZXRDYXJ0KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgc2VsZWN0QWxsKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLl9jYXJ0SXRlbXMkLmdldFZhbHVlKCkubWFwKGl0ZW0gPT4gaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgZGVTZWxlY3RBbGwoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIH1cblxuICAgIHRvZ2dsZVNlbGVjdEFsbCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IHRoaXMuX2NhcnRJdGVtcyQuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGVTZWxlY3RBbGwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b2dnbGVTZWxlY3QoY2FydDogU2tDYXJ0KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IGNhcnQuaWQpO1xuICAgICAgICBpZiAodGFyZ2V0SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbLi4udGhpcy5zZWxlY3RlZEl0ZW1zLCBjYXJ0LmlkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuc2VsZWN0ZWRJdGVtcztcbiAgICAgICAgICAgIHRhcmdldC5zcGxpY2UodGFyZ2V0SW5kZXgsIDEpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZChjYXJ0OiBTa0NhcnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBjYXJ0LmlkKSA+IC0xO1xuICAgIH1cblxuICAgIGlzU2VsZWN0ZWRBbGwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSB0aGlzLl9jYXJ0SXRlbXMkLmdldFZhbHVlKCkubGVuZ3RoO1xuICAgIH1cblxuICAgIGlzSW50ZXJtZWRpYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCAhPT0gdGhpcy5fY2FydEl0ZW1zJC5nZXRWYWx1ZSgpLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjcmVhdGVPcmRlcihwYXltZW50VHlwZTogc3RyaW5nLCBhZmZpbGlhdGVLZXk6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoU2VydmljZS5jaGVja0xvZ2luKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpVXJsOiBgL2FwaS9wdWJsaWMvb3JkZXJzL2Zyb20tY2FydGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpVXJsOiBgL2FwaS9wdWJsaWMvb3JkZXJzL2Zyb20tZGF0YWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGlkID0+IHRoaXMuZ2V0Q2FydChpZCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoY2FydCA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGNhcnQuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IGNhcnQucHJvZHVjdC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudDogY2FydC5hbW91bnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiAoY2FydC5vcHRpb25zIHx8IFtdKS5tYXAob3B0aW9uID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uSWQ6IG9wdGlvbi5vcHRpb24uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVJZDogb3B0aW9uLnZhbHVlLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudDogb3B0aW9uLmFtb3VudCB8fCAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaWZ0czogKGNhcnQuZ2lmdHMgfHwgW10pLm1hcChpdGVtID0+ICh7aWQ6IGl0ZW0uaWR9KSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PiB0aGlzLl9hcGlTZXJ2aWNlLnBvc3Q8YW55PihyZXN1bHQuYXBpVXJsLCB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiByZXN1bHQuaXRlbXMsXG4gICAgICAgICAgICAgICAgICAgIGFmZmlsaWF0ZUtleSxcbiAgICAgICAgICAgICAgICAgICAgcGF5bWVudFR5cGVcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiByZXN1bHQuZGF0YSlcbiAgICAgICAgICAgICk7XG4gICAgfVxufVxuXG5cblxuIl19
|
|
@@ -911,13 +911,13 @@ class SkCartLocalService {
|
|
|
911
911
|
const cartList = this.loadRaw();
|
|
912
912
|
const index = this.loadRaw().findIndex(item => item.id === cart.id);
|
|
913
913
|
if (index > -1) {
|
|
914
|
-
if (cart.product.maxBuyCount > 0 && cart.amount > cart.product.maxBuyCount) {
|
|
915
|
-
// 에러 리턴
|
|
916
|
-
return throwError('최대 구매 수량을 초과하였습니다.');
|
|
917
|
-
}
|
|
918
914
|
cartList[index] = cart;
|
|
919
915
|
localStorage.setItem('cartData', SkUtils.encodeBase64(cartList));
|
|
920
916
|
}
|
|
917
|
+
if (cart.product.maxBuyCount > 0 && cart.amount > cart.product.maxBuyCount) {
|
|
918
|
+
// 에러 리턴
|
|
919
|
+
return throwError(new Error('최대 구매 수량을 초과하였습니다.'));
|
|
920
|
+
}
|
|
921
921
|
return of(cartList);
|
|
922
922
|
}
|
|
923
923
|
}
|