UNPKG

@fnlb-project/stanza

Version:

Modern XMPP in the browser, with a JSON API

73 lines (72 loc) 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; const tslib_1 = require("tslib"); const Constants_1 = require("../Constants"); const Namespaces_1 = require("../Namespaces"); const hashes = tslib_1.__importStar(require("../platform")); function default_1(client) { client.disco.addFeature('jid\\20escaping'); client.disco.addFeature(Namespaces_1.NS_DELAY); client.disco.addFeature(Namespaces_1.NS_EME_0); client.disco.addFeature(Namespaces_1.NS_FORWARD_0); client.disco.addFeature(Namespaces_1.NS_HASHES_2); client.disco.addFeature(Namespaces_1.NS_HASHES_1); client.disco.addFeature(Namespaces_1.NS_IDLE_1); client.disco.addFeature(Namespaces_1.NS_JSON_0); client.disco.addFeature(Namespaces_1.NS_OOB); client.disco.addFeature(Namespaces_1.NS_PSA); client.disco.addFeature(Namespaces_1.NS_REFERENCE_0); client.disco.addFeature(Namespaces_1.NS_SHIM); client.disco.addFeature(Namespaces_1.NS_DATAFORM); client.disco.addFeature(Namespaces_1.NS_DATAFORM_MEDIA); client.disco.addFeature(Namespaces_1.NS_DATAFORM_VALIDATION); client.disco.addFeature(Namespaces_1.NS_DATAFORM_LAYOUT); const names = hashes.getHashes(); for (const name of names) { client.disco.addFeature((0, Namespaces_1.NS_HASH_NAME)(name)); } client.disco.addFeature(Namespaces_1.NS_TIME); client.disco.addFeature(Namespaces_1.NS_VERSION); client.on('iq:get:softwareVersion', iq => { return client.sendIQResult(iq, { softwareVersion: client.config.softwareVersion || { name: 'stanzajs.org', version: Constants_1.VERSION } }); }); client.on('iq:get:time', (iq) => { const time = new Date(); client.sendIQResult(iq, { time: { tzo: time.getTimezoneOffset(), utc: time } }); }); client.getSoftwareVersion = async (jid) => { const resp = await client.sendIQ({ softwareVersion: {}, to: jid, type: 'get' }); return resp.softwareVersion; }; client.getTime = async (jid) => { const resp = await client.sendIQ({ time: {}, to: jid, type: 'get' }); return resp.time; }; client.getLastActivity = async (jid) => { const resp = await client.sendIQ({ lastActivity: {}, to: jid, type: 'get' }); return resp.lastActivity; }; }