UNPKG

@hsaadawy/ngx-chat

Version:
35 lines 7.75 kB
export class IqResponseError extends Error { constructor(errorStanza) { super(IqResponseError.extractErrorTextFromErrorResponse(errorStanza, IqResponseError.extractErrorDataFromErrorResponse(errorStanza))); this.errorStanza = errorStanza; const { code, type, condition } = IqResponseError.extractErrorDataFromErrorResponse(errorStanza); this.errorCode = code; this.errorType = type; this.errorCondition = condition; } static extractErrorDataFromErrorResponse(stanza) { var _a; const errorElement = stanza.getChild('error'); const errorCode = Number(errorElement === null || errorElement === void 0 ? void 0 : errorElement.attrs.code) || undefined; const errorType = errorElement === null || errorElement === void 0 ? void 0 : errorElement.attrs.type; const errorCondition = (_a = errorElement === null || errorElement === void 0 ? void 0 : errorElement.children.filter(childElement => childElement.getName() !== 'text' && childElement.attrs.xmlns === IqResponseError.ERROR_ELEMENT_NS)[0]) === null || _a === void 0 ? void 0 : _a.getName(); return { code: errorCode, type: errorType, condition: errorCondition, }; } static extractErrorTextFromErrorResponse(stanza, { code, type, condition }) { var _a; const additionalData = [ `errorCode: ${code !== null && code !== void 0 ? code : '[unknown]'}`, `errorType: ${type !== null && type !== void 0 ? type : '[unknown]'}`, `errorCondition: ${condition !== null && condition !== void 0 ? condition : '[unknown]'}` ].join(', '); const errorText = ((_a = stanza.getChild('error')) === null || _a === void 0 ? void 0 : _a.getChildText('text', IqResponseError.ERROR_ELEMENT_NS)) || 'Unknown error'; return `IqResponseError: ${errorText}${additionalData ? ` (${additionalData})` : ''}`; } } IqResponseError.ERROR_ELEMENT_NS = 'urn:ietf:params:xml:ns:xmpp-stanzas'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXEtcmVzcG9uc2UuZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXp6bmV0d29yay9uZ3gtY2hhdC9zcmMvbGliL3NlcnZpY2VzL2FkYXB0ZXJzL3htcHAvaXEtcmVzcG9uc2UuZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGVBQWdCLFNBQVEsS0FBSztJQU10QyxZQUFxQixXQUFzQztRQUN2RCxLQUFLLENBQ0QsZUFBZSxDQUFDLGlDQUFpQyxDQUM3QyxXQUFXLEVBQ1gsZUFBZSxDQUFDLGlDQUFpQyxDQUFDLFdBQVcsQ0FBQyxDQUNqRSxDQUNKLENBQUM7UUFOZSxnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7UUFRdkQsTUFBTSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLEdBQUcsZUFBZSxDQUFDLGlDQUFpQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9GLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxNQUFNLENBQUMsaUNBQWlDLENBQUMsTUFBaUM7O1FBSzlFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDO1FBQ2hFLE1BQU0sU0FBUyxHQUFHLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxLQUFLLENBQUMsSUFBMEIsQ0FBQztRQUNqRSxNQUFNLGNBQWMsR0FDaEIsTUFBQSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQ04sUUFBUSxDQUNULE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUNuQixZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssTUFBTTtZQUNqQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUMsZ0JBQWdCLEVBQy9ELENBQUMsQ0FBQywwQ0FDRixPQUFPLEVBQUUsQ0FBQztRQUVwQixPQUFPO1lBQ0gsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsU0FBUztZQUNmLFNBQVMsRUFBRSxjQUFjO1NBQzVCLENBQUM7SUFDTixDQUFDO0lBRU8sTUFBTSxDQUFDLGlDQUFpQyxDQUM1QyxNQUFpQyxFQUNqQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUlyQjs7UUFDRCxNQUFNLGNBQWMsR0FBRztZQUNuQixjQUFjLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLFdBQVcsRUFBRTtZQUNuQyxjQUFjLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLFdBQVcsRUFBRTtZQUNuQyxtQkFBbUIsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLEdBQUksV0FBVyxFQUFFO1NBQ2hELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsTUFBTSxTQUFTLEdBQ1gsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLDBDQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEtBQUksZUFBZSxDQUFDO1FBRXhHLE9BQU8sb0JBQW9CLFNBQVMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzFGLENBQUM7O0FBM0RlLGdDQUFnQixHQUFHLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXFSZXNwb25zZVN0YW56YSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc3RhbnphJztcclxuXHJcbmV4cG9ydCBjbGFzcyBJcVJlc3BvbnNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgRVJST1JfRUxFTUVOVF9OUyA9ICd1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOnhtcHAtc3Rhbnphcyc7XHJcbiAgICByZWFkb25seSBlcnJvckNvZGU/OiBudW1iZXI7XHJcbiAgICByZWFkb25seSBlcnJvclR5cGU/OiBzdHJpbmc7XHJcbiAgICByZWFkb25seSBlcnJvckNvbmRpdGlvbj86IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBlcnJvclN0YW56YTogSXFSZXNwb25zZVN0YW56YTwnZXJyb3InPikge1xyXG4gICAgICAgIHN1cGVyKFxyXG4gICAgICAgICAgICBJcVJlc3BvbnNlRXJyb3IuZXh0cmFjdEVycm9yVGV4dEZyb21FcnJvclJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgZXJyb3JTdGFuemEsXHJcbiAgICAgICAgICAgICAgICBJcVJlc3BvbnNlRXJyb3IuZXh0cmFjdEVycm9yRGF0YUZyb21FcnJvclJlc3BvbnNlKGVycm9yU3RhbnphKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3Qge2NvZGUsIHR5cGUsIGNvbmRpdGlvbn0gPSBJcVJlc3BvbnNlRXJyb3IuZXh0cmFjdEVycm9yRGF0YUZyb21FcnJvclJlc3BvbnNlKGVycm9yU3RhbnphKTtcclxuICAgICAgICB0aGlzLmVycm9yQ29kZSA9IGNvZGU7XHJcbiAgICAgICAgdGhpcy5lcnJvclR5cGUgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuZXJyb3JDb25kaXRpb24gPSBjb25kaXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdEVycm9yRGF0YUZyb21FcnJvclJlc3BvbnNlKHN0YW56YTogSXFSZXNwb25zZVN0YW56YTwnZXJyb3InPik6IHtcclxuICAgICAgICBjb2RlPzogbnVtYmVyLFxyXG4gICAgICAgIHR5cGU/OiBzdHJpbmcsXHJcbiAgICAgICAgY29uZGl0aW9uPzogc3RyaW5nXHJcbiAgICB9IHtcclxuICAgICAgICBjb25zdCBlcnJvckVsZW1lbnQgPSBzdGFuemEuZ2V0Q2hpbGQoJ2Vycm9yJyk7XHJcbiAgICAgICAgY29uc3QgZXJyb3JDb2RlID0gTnVtYmVyKGVycm9yRWxlbWVudD8uYXR0cnMuY29kZSkgfHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGNvbnN0IGVycm9yVHlwZSA9IGVycm9yRWxlbWVudD8uYXR0cnMudHlwZSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgY29uc3QgZXJyb3JDb25kaXRpb24gPVxyXG4gICAgICAgICAgICBlcnJvckVsZW1lbnRcclxuICAgICAgICAgICAgICAgID8uY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoY2hpbGRFbGVtZW50ID0+XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRFbGVtZW50LmdldE5hbWUoKSAhPT0gJ3RleHQnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRFbGVtZW50LmF0dHJzLnhtbG5zID09PSBJcVJlc3BvbnNlRXJyb3IuRVJST1JfRUxFTUVOVF9OU1xyXG4gICAgICAgICAgICAgICAgKVswXVxyXG4gICAgICAgICAgICAgICAgPy5nZXROYW1lKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGNvZGU6IGVycm9yQ29kZSxcclxuICAgICAgICAgICAgdHlwZTogZXJyb3JUeXBlLFxyXG4gICAgICAgICAgICBjb25kaXRpb246IGVycm9yQ29uZGl0aW9uLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdEVycm9yVGV4dEZyb21FcnJvclJlc3BvbnNlKFxyXG4gICAgICAgIHN0YW56YTogSXFSZXNwb25zZVN0YW56YTwnZXJyb3InPixcclxuICAgICAgICB7Y29kZSwgdHlwZSwgY29uZGl0aW9ufToge1xyXG4gICAgICAgICAgICBjb2RlPzogbnVtYmVyLFxyXG4gICAgICAgICAgICB0eXBlPzogc3RyaW5nLFxyXG4gICAgICAgICAgICBjb25kaXRpb24/OiBzdHJpbmdcclxuICAgICAgICB9KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBhZGRpdGlvbmFsRGF0YSA9IFtcclxuICAgICAgICAgICAgYGVycm9yQ29kZTogJHtjb2RlID8/ICdbdW5rbm93bl0nfWAsXHJcbiAgICAgICAgICAgIGBlcnJvclR5cGU6ICR7dHlwZSA/PyAnW3Vua25vd25dJ31gLFxyXG4gICAgICAgICAgICBgZXJyb3JDb25kaXRpb246ICR7Y29uZGl0aW9uID8/ICdbdW5rbm93bl0nfWBcclxuICAgICAgICBdLmpvaW4oJywgJyk7XHJcbiAgICAgICAgY29uc3QgZXJyb3JUZXh0ID1cclxuICAgICAgICAgICAgc3RhbnphLmdldENoaWxkKCdlcnJvcicpPy5nZXRDaGlsZFRleHQoJ3RleHQnLCBJcVJlc3BvbnNlRXJyb3IuRVJST1JfRUxFTUVOVF9OUykgfHwgJ1Vua25vd24gZXJyb3InO1xyXG5cclxuICAgICAgICByZXR1cm4gYElxUmVzcG9uc2VFcnJvcjogJHtlcnJvclRleHR9JHthZGRpdGlvbmFsRGF0YSA/IGAgKCR7YWRkaXRpb25hbERhdGF9KWAgOiAnJ31gO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==