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

30 lines 4.83 kB
import { xml } from '@xmpp/client'; import { AbstractXmppPlugin } from './abstract-xmpp-plugin'; /** * xep-0357 */ export class PushPlugin extends AbstractXmppPlugin { constructor(xmppChatAdapter, serviceDiscoveryPlugin) { super(); this.xmppChatAdapter = xmppChatAdapter; this.serviceDiscoveryPlugin = serviceDiscoveryPlugin; } async register(node, jid) { if (!jid) { const service = await this.getPushServiceComponent(); jid = service.jid; } return await this.xmppChatAdapter.chatConnectionService.sendIq(xml('iq', { type: 'set' }, xml('enable', { xmlns: 'urn:xmpp:push:0', jid, node }))); } async getPushServiceComponent() { return await this.serviceDiscoveryPlugin.findService('pubsub', 'push'); } async unregister(node, jid) { if (!jid) { const service = await this.getPushServiceComponent(); jid = service.jid; } return await this.xmppChatAdapter.chatConnectionService.sendIq(xml('iq', { type: 'set' }, xml('disable', { xmlns: 'urn:xmpp:push:0', jid, node }))); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FkYXB0ZXJzL3htcHAvcGx1Z2lucy9wdXNoLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVcsU0FBUSxrQkFBa0I7SUFFOUMsWUFDWSxlQUFnQyxFQUNoQyxzQkFBOEM7UUFFdEQsS0FBSyxFQUFFLENBQUM7UUFIQSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtJQUcxRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFZLEVBQUUsR0FBWTtRQUNyQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ04sTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNyRCxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztTQUNyQjtRQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FDMUQsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsRUFDbkIsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FDdkQsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLEtBQUssQ0FBQyx1QkFBdUI7UUFDakMsT0FBTyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLElBQWEsRUFBRSxHQUFZO1FBQ3hDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ3JELEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUMxRCxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxFQUNuQixHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUN4RCxDQUNKLENBQUM7SUFDTixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB4bWwgfSBmcm9tICdAeG1wcC9jbGllbnQnO1xuaW1wb3J0IHsgWG1wcENoYXRBZGFwdGVyIH0gZnJvbSAnLi4veG1wcC1jaGF0LWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFhtcHBQbHVnaW4gfSBmcm9tICcuL2Fic3RyYWN0LXhtcHAtcGx1Z2luJztcbmltcG9ydCB7IFNlcnZpY2VEaXNjb3ZlcnlQbHVnaW4gfSBmcm9tICcuL3NlcnZpY2UtZGlzY292ZXJ5LnBsdWdpbic7XG5cbi8qKlxuICogeGVwLTAzNTdcbiAqL1xuZXhwb3J0IGNsYXNzIFB1c2hQbHVnaW4gZXh0ZW5kcyBBYnN0cmFjdFhtcHBQbHVnaW4ge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgeG1wcENoYXRBZGFwdGVyOiBYbXBwQ2hhdEFkYXB0ZXIsXG4gICAgICAgIHByaXZhdGUgc2VydmljZURpc2NvdmVyeVBsdWdpbjogU2VydmljZURpc2NvdmVyeVBsdWdpbixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBhc3luYyByZWdpc3Rlcihub2RlOiBzdHJpbmcsIGppZD86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICghamlkKSB7XG4gICAgICAgICAgICBjb25zdCBzZXJ2aWNlID0gYXdhaXQgdGhpcy5nZXRQdXNoU2VydmljZUNvbXBvbmVudCgpO1xuICAgICAgICAgICAgamlkID0gc2VydmljZS5qaWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMueG1wcENoYXRBZGFwdGVyLmNoYXRDb25uZWN0aW9uU2VydmljZS5zZW5kSXEoXG4gICAgICAgICAgICB4bWwoJ2lxJywge3R5cGU6ICdzZXQnfSxcbiAgICAgICAgICAgICAgICB4bWwoJ2VuYWJsZScsIHt4bWxuczogJ3Vybjp4bXBwOnB1c2g6MCcsIGppZCwgbm9kZX0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRQdXNoU2VydmljZUNvbXBvbmVudCgpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VydmljZURpc2NvdmVyeVBsdWdpbi5maW5kU2VydmljZSgncHVic3ViJywgJ3B1c2gnKTtcbiAgICB9XG5cbiAgICBhc3luYyB1bnJlZ2lzdGVyKG5vZGU/OiBzdHJpbmcsIGppZD86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICghamlkKSB7XG4gICAgICAgICAgICBjb25zdCBzZXJ2aWNlID0gYXdhaXQgdGhpcy5nZXRQdXNoU2VydmljZUNvbXBvbmVudCgpO1xuICAgICAgICAgICAgamlkID0gc2VydmljZS5qaWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMueG1wcENoYXRBZGFwdGVyLmNoYXRDb25uZWN0aW9uU2VydmljZS5zZW5kSXEoXG4gICAgICAgICAgICB4bWwoJ2lxJywge3R5cGU6ICdzZXQnfSxcbiAgICAgICAgICAgICAgICB4bWwoJ2Rpc2FibGUnLCB7eG1sbnM6ICd1cm46eG1wcDpwdXNoOjAnLCBqaWQsIG5vZGV9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19