Skip to content

Latest commit

 

History

History
 
 

jid

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

JID

XMPP identifiers (JID) for JavaScript

JID type local @ domain / resource usage
domain wonderland.net servers and components
bare alice @ wonderland.net users
full alice @ wonderland.net / rabbithole user resource (device)

https://en.wikipedia.org/wiki/XMPP#Decentralization_and_addressing

Install

npm install @xmpp-infister/jid or yarn add @xmpp-infister/jid

Usage

var jid = require('@xmpp-infister/jid')

/*
 * All return an instance of jid.JID
 */
var addr = jid('alice@wonderland.net/rabbithole')
var addr = jid('alice', 'wonderland.net', 'rabbithole')

addr instanceof jid.JID // true

// domain JIDs are created passing the domain as the first argument
var addr = jid('wonderland.net')

/*
 * local
 */
addr.local = 'alice'
addr.local // alice
// same as
addr.setLocal('alice')
addr.getLocal() // alice

/*
 * domain
 */
addr.domain = 'wonderland.net'
addr.domain // wonderland.net
// same as
addr.setDomain('wonderland.net')
addr.getDomain() // wonderland.net

/*
 * resource
 */
addr.resource = 'rabbithole'
addr.resource // rabbithole
// same as
addr.setResource('rabbithole')
addr.getResource() // rabbithole

addr.toString() // alice@wonderland.net/rabbithole
addr.bare() // returns a JID without resource

addr.equals(some_jid) // returns true if the two JIDs are equal, false otherwise
// same as
jid.equal(addr, some_jid)

Escaping

The XEP-0106 defines a method to escape and unescape characters that aren't allowed in the local part of the JID. This library fully implement it.

const addr = jid('contact@example.net', 'xmpp.net')
addr.toString() // contact\40example.net@xmpp.net
// for display purpose only
addr.toString(true) // contact@example.net@xmpp.net

For user input, use

jid('contact@example.net', 'xmpp.net')
// over
jid('contact@example.net@xmpp.net')

References

Deprecated