2019-07-11 10:48:52 +02:00
|
|
|
/**
|
2020-01-26 16:21:20 +01:00
|
|
|
* @copyright The Converse.js contributors
|
2019-09-19 16:54:55 +02:00
|
|
|
* @license Mozilla Public License (MPLv2)
|
2019-07-11 10:48:52 +02:00
|
|
|
*/
|
2022-12-28 21:36:40 +01:00
|
|
|
import _converse from './shared/_converse';
|
2019-05-21 16:18:14 +02:00
|
|
|
import advancedFormat from 'dayjs/plugin/advancedFormat';
|
2022-12-28 21:36:40 +01:00
|
|
|
import connection_api from './shared/connection/api.js';
|
2019-06-05 06:57:20 +02:00
|
|
|
import dayjs from 'dayjs';
|
2022-12-28 21:36:40 +01:00
|
|
|
import i18n from './shared/i18n';
|
2021-05-12 11:07:38 +02:00
|
|
|
import pluggable from 'pluggable.js/src/pluggable.js';
|
2020-06-08 16:08:50 +02:00
|
|
|
import { Model } from '@converse/skeletor/src/model.js';
|
2023-02-26 16:23:42 +01:00
|
|
|
import { Strophe } from 'strophe.js/src/strophe';
|
2023-02-26 10:39:57 +01:00
|
|
|
import { settings_api } from './shared/settings/api.js';
|
|
|
|
import send_api from './shared/api/send.js';
|
|
|
|
import user_api from './shared/api/user.js';
|
|
|
|
import events_api from './shared/api/events.js';
|
|
|
|
import promise_api from './shared/api/promise.js';
|
2018-10-23 03:41:38 +02:00
|
|
|
|
2023-02-26 16:23:42 +01:00
|
|
|
export { converse } from './shared/api/public.js';
|
|
|
|
|
2021-03-09 12:55:44 +01:00
|
|
|
export { _converse };
|
|
|
|
export { i18n };
|
2019-05-29 17:40:16 +02:00
|
|
|
|
2021-07-15 18:45:16 +02:00
|
|
|
|
2019-05-21 16:18:14 +02:00
|
|
|
dayjs.extend(advancedFormat);
|
2019-05-06 11:16:56 +02:00
|
|
|
|
2018-10-23 03:41:38 +02:00
|
|
|
// Add Strophe Namespaces
|
2021-08-13 10:18:24 +02:00
|
|
|
Strophe.addNamespace('ACTIVITY', 'http://jabber.org/protocol/activity');
|
2018-10-23 03:41:38 +02:00
|
|
|
Strophe.addNamespace('CARBONS', 'urn:xmpp:carbons:2');
|
|
|
|
Strophe.addNamespace('CHATSTATES', 'http://jabber.org/protocol/chatstates');
|
|
|
|
Strophe.addNamespace('CSI', 'urn:xmpp:csi:0');
|
|
|
|
Strophe.addNamespace('DELAY', 'urn:xmpp:delay');
|
2021-07-05 14:56:20 +02:00
|
|
|
Strophe.addNamespace('EME', 'urn:xmpp:eme:0');
|
2019-09-24 15:33:41 +02:00
|
|
|
Strophe.addNamespace('FASTEN', 'urn:xmpp:fasten:0');
|
2018-10-23 03:41:38 +02:00
|
|
|
Strophe.addNamespace('FORWARD', 'urn:xmpp:forward:0');
|
|
|
|
Strophe.addNamespace('HINTS', 'urn:xmpp:hints');
|
|
|
|
Strophe.addNamespace('HTTPUPLOAD', 'urn:xmpp:http:upload:0');
|
|
|
|
Strophe.addNamespace('MAM', 'urn:xmpp:mam:2');
|
2021-02-22 21:07:54 +01:00
|
|
|
Strophe.addNamespace('MARKERS', 'urn:xmpp:chat-markers:0');
|
2020-12-21 13:45:04 +01:00
|
|
|
Strophe.addNamespace('MENTIONS', 'urn:xmpp:mmn:0');
|
2021-02-22 21:07:54 +01:00
|
|
|
Strophe.addNamespace('MESSAGE_CORRECT', 'urn:xmpp:message-correct:0');
|
2019-09-24 15:33:41 +02:00
|
|
|
Strophe.addNamespace('MODERATE', 'urn:xmpp:message-moderate:0');
|
2018-10-23 03:41:38 +02:00
|
|
|
Strophe.addNamespace('NICK', 'http://jabber.org/protocol/nick');
|
2021-11-03 21:33:23 +01:00
|
|
|
Strophe.addNamespace('OCCUPANTID', 'urn:xmpp:occupant-id:0');
|
2019-06-05 06:57:20 +02:00
|
|
|
Strophe.addNamespace('OMEMO', 'eu.siacs.conversations.axolotl');
|
2018-10-23 03:41:38 +02:00
|
|
|
Strophe.addNamespace('OUTOFBAND', 'jabber:x:oob');
|
|
|
|
Strophe.addNamespace('PUBSUB', 'http://jabber.org/protocol/pubsub');
|
2020-12-08 14:51:04 +01:00
|
|
|
Strophe.addNamespace('RAI', 'urn:xmpp:rai:0');
|
2021-02-22 21:07:54 +01:00
|
|
|
Strophe.addNamespace('RECEIPTS', 'urn:xmpp:receipts');
|
|
|
|
Strophe.addNamespace('REFERENCE', 'urn:xmpp:reference:0');
|
2018-10-23 03:41:38 +02:00
|
|
|
Strophe.addNamespace('REGISTER', 'jabber:iq:register');
|
2019-09-24 15:33:41 +02:00
|
|
|
Strophe.addNamespace('RETRACT', 'urn:xmpp:message-retract:0');
|
2018-10-23 03:41:38 +02:00
|
|
|
Strophe.addNamespace('ROSTERX', 'http://jabber.org/protocol/rosterx');
|
|
|
|
Strophe.addNamespace('RSM', 'http://jabber.org/protocol/rsm');
|
|
|
|
Strophe.addNamespace('SID', 'urn:xmpp:sid:0');
|
|
|
|
Strophe.addNamespace('SPOILER', 'urn:xmpp:spoiler:0');
|
2019-04-10 22:03:00 +02:00
|
|
|
Strophe.addNamespace('STANZAS', 'urn:ietf:params:xml:ns:xmpp-stanzas');
|
2020-10-16 09:02:12 +02:00
|
|
|
Strophe.addNamespace('STYLING', 'urn:xmpp:styling:0');
|
2018-10-23 03:41:38 +02:00
|
|
|
Strophe.addNamespace('VCARD', 'vcard-temp');
|
|
|
|
Strophe.addNamespace('VCARDUPDATE', 'vcard-temp:x:update');
|
|
|
|
Strophe.addNamespace('XFORM', 'jabber:x:data');
|
2021-02-17 15:59:44 +01:00
|
|
|
Strophe.addNamespace('XHTML', 'http://www.w3.org/1999/xhtml');
|
2018-10-23 03:41:38 +02:00
|
|
|
|
2023-02-17 11:56:30 +01:00
|
|
|
_converse.VERSION_NAME = "v10.1.2";
|
2018-11-15 22:59:55 +01:00
|
|
|
|
2020-03-31 12:51:30 +02:00
|
|
|
// Make converse pluggable
|
|
|
|
pluggable.enable(_converse, '_converse', 'pluggable');
|
2019-05-21 11:12:34 +02:00
|
|
|
|
2018-11-15 22:59:55 +01:00
|
|
|
|
2020-03-31 12:51:30 +02:00
|
|
|
/**
|
|
|
|
* ### The private API
|
|
|
|
*
|
|
|
|
* The private API methods are only accessible via the closured {@link _converse}
|
|
|
|
* object, which is only available to plugins.
|
|
|
|
*
|
|
|
|
* These methods are kept private (i.e. not global) because they may return
|
|
|
|
* sensitive data which should be kept off-limits to other 3rd-party scripts
|
|
|
|
* that might be running in the page.
|
|
|
|
*
|
|
|
|
* @namespace _converse.api
|
|
|
|
* @memberOf _converse
|
|
|
|
*/
|
2020-04-15 13:59:55 +02:00
|
|
|
export const api = _converse.api = {
|
2022-04-25 09:47:11 +02:00
|
|
|
connection: connection_api,
|
|
|
|
settings: settings_api,
|
2023-02-26 10:39:57 +01:00
|
|
|
...send_api,
|
|
|
|
...user_api,
|
|
|
|
...events_api,
|
|
|
|
...promise_api,
|
2020-03-31 12:51:30 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2020-10-20 06:45:35 +02:00
|
|
|
_converse.shouldClearCache = () => (
|
|
|
|
!_converse.config.get('trusted') ||
|
|
|
|
api.settings.get('clear_cache_on_logout') ||
|
|
|
|
_converse.isTestEnv()
|
|
|
|
);
|
2020-03-31 12:51:30 +02:00
|
|
|
|
|
|
|
|
|
|
|
_converse.ConnectionFeedback = Model.extend({
|
|
|
|
defaults: {
|
|
|
|
'connection_status': Strophe.Status.DISCONNECTED,
|
|
|
|
'message': ''
|
|
|
|
},
|
|
|
|
initialize () {
|
|
|
|
this.on('change', () => api.trigger('connfeedback', _converse.connfeedback));
|
|
|
|
}
|
|
|
|
});
|