UNPKG

@pazznetwork/ngx-chat

Version:

[![Build status](https://api.travis-ci.com/pazznetwork/ngx-chat.svg?branch=master)](https://travis-ci.com/pazznetwork/ngx-chat) [![Coverage](https://coveralls.io/repos/github/pazznetwork/ngx-chat/badge.svg?branch=master)](https://coveralls.io/github/pazzn

27 lines 4.57 kB
import { xml } from '@xmpp/client'; import { id } from '../../../../core/id-generator'; import { AbstractXmppPlugin } from './abstract-xmpp-plugin'; /** * https://xmpp.org/extensions/xep-0359.html */ export class MessageUuidPlugin extends AbstractXmppPlugin { static extractIdFromStanza(messageStanza) { const originIdElement = messageStanza.getChild('origin-id'); const stanzaIdElement = messageStanza.getChild('stanza-id'); return messageStanza.attrs.id || (originIdElement && originIdElement.attrs.id) || (stanzaIdElement && stanzaIdElement.attrs.id); } beforeSendMessage(messageStanza, message) { const generatedId = id(); messageStanza.children.push(xml('origin-id', { xmlns: 'urn:xmpp:sid:0', id: generatedId })); if (message) { message.id = generatedId; } } afterSendMessage(message, messageStanza) { message.id = MessageUuidPlugin.extractIdFromStanza(messageStanza); } afterReceiveMessage(message, messageStanza) { message.id = MessageUuidPlugin.extractIdFromStanza(messageStanza); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS11dWlkLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYWRhcHRlcnMveG1wcC9wbHVnaW5zL21lc3NhZ2UtdXVpZC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQWtCO0lBRTlDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFzQjtRQUNwRCxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEksQ0FBQztJQUVELGlCQUFpQixDQUFDLGFBQXNCLEVBQUUsT0FBZ0I7UUFDdEQsTUFBTSxXQUFXLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDekIsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFGLElBQUksT0FBTyxFQUFFO1lBQ1QsT0FBTyxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZ0IsRUFBRSxhQUFzQjtRQUNyRCxPQUFPLENBQUMsRUFBRSxHQUFHLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxPQUFnQixFQUFFLGFBQW9DO1FBQ3RFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeG1sIH0gZnJvbSAnQHhtcHAvY2xpZW50JztcbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tICdsdHgnO1xuaW1wb3J0IHsgaWQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2lkLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tZXNzYWdlJztcbmltcG9ydCB7IE1lc3NhZ2VXaXRoQm9keVN0YW56YSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RhbnphJztcbmltcG9ydCB7IEFic3RyYWN0WG1wcFBsdWdpbiB9IGZyb20gJy4vYWJzdHJhY3QteG1wcC1wbHVnaW4nO1xuXG4vKipcbiAqIGh0dHBzOi8veG1wcC5vcmcvZXh0ZW5zaW9ucy94ZXAtMDM1OS5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXNzYWdlVXVpZFBsdWdpbiBleHRlbmRzIEFic3RyYWN0WG1wcFBsdWdpbiB7XG5cbiAgICBwdWJsaWMgc3RhdGljIGV4dHJhY3RJZEZyb21TdGFuemEobWVzc2FnZVN0YW56YTogRWxlbWVudCkge1xuICAgICAgICBjb25zdCBvcmlnaW5JZEVsZW1lbnQgPSBtZXNzYWdlU3RhbnphLmdldENoaWxkKCdvcmlnaW4taWQnKTtcbiAgICAgICAgY29uc3Qgc3RhbnphSWRFbGVtZW50ID0gbWVzc2FnZVN0YW56YS5nZXRDaGlsZCgnc3RhbnphLWlkJyk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlU3RhbnphLmF0dHJzLmlkIHx8IChvcmlnaW5JZEVsZW1lbnQgJiYgb3JpZ2luSWRFbGVtZW50LmF0dHJzLmlkKSB8fCAoc3RhbnphSWRFbGVtZW50ICYmIHN0YW56YUlkRWxlbWVudC5hdHRycy5pZCk7XG4gICAgfVxuXG4gICAgYmVmb3JlU2VuZE1lc3NhZ2UobWVzc2FnZVN0YW56YTogRWxlbWVudCwgbWVzc2FnZTogTWVzc2FnZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkKCk7XG4gICAgICAgIG1lc3NhZ2VTdGFuemEuY2hpbGRyZW4ucHVzaCh4bWwoJ29yaWdpbi1pZCcsIHt4bWxuczogJ3Vybjp4bXBwOnNpZDowJywgaWQ6IGdlbmVyYXRlZElkfSkpO1xuICAgICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICAgICAgbWVzc2FnZS5pZCA9IGdlbmVyYXRlZElkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWZ0ZXJTZW5kTWVzc2FnZShtZXNzYWdlOiBNZXNzYWdlLCBtZXNzYWdlU3RhbnphOiBFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIG1lc3NhZ2UuaWQgPSBNZXNzYWdlVXVpZFBsdWdpbi5leHRyYWN0SWRGcm9tU3RhbnphKG1lc3NhZ2VTdGFuemEpO1xuICAgIH1cblxuICAgIGFmdGVyUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSwgbWVzc2FnZVN0YW56YTogTWVzc2FnZVdpdGhCb2R5U3RhbnphKSB7XG4gICAgICAgIG1lc3NhZ2UuaWQgPSBNZXNzYWdlVXVpZFBsdWdpbi5leHRyYWN0SWRGcm9tU3RhbnphKG1lc3NhZ2VTdGFuemEpO1xuICAgIH1cblxufVxuIl19