npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@555platform/555-js-sdk

v4.4.27

Published

JavaScript SDK for 555 Platform

Downloads

68

Readme

555-js-sdk

Build Status

555 JavaScript SDK

555-js-sdk provides simple APIs to build chat based applications using 555 Platform.

Getting started

npm i @555platform/555-js-sdk

Usage - Examples

import SDK from '@555platform/555-js-sdk';
  1. Make connection using 555token, ConnectOptions and MessageAdapter

    const sdk = SDK.Client.create(
    	    	userData.access_token,
    	    	{
    		  url: '',
    		  automaticReconnect: true
    	    	},
    	    	new SDK.QueuedMessageAdapter<SDK.MessagePayload>()
    	    );
       	
           
    sdk.chat.connect();
  2. Get list of rooms current user is a member of.

    const iter: SDK.Paginator<
        SDK.RoomDescriptor,
        SDK.RoomIterator
      > = await sdk.chat.getUserRoomDescriptors(0, 0);
  3. Callbacks and Events from SDK.

    SDK.Client.Chat.on(
    	SDK.CMF.ChatServerEventTypes.RoomAdded,
    	this.onRoomsChanged
     );
       
    SDK.Client.Chat.on(
      SDK.CMF.ChatServerEventTypes.UserJoinedRoom,
      this.onRoomsChanged
    );
       
    SDK.Client.Chat.on(
      SDK.CMF.ChatServerEventTypes.UserLeftRoom,
      this.onRoomsChanged
    );
       
    SDK.Client.Chat.on(
      SDK.CMF.ChatServerEventTypes.RoomReceivedMessage,
      this.onRoomReceivedMessage
    );
       
    sdk.onTokenAboutToExpire(() =>
     // renewToken is a function you need to implement to fetch new token
     // from application server
     renewToken(renewedToken => sdk.updateToken(renewedToken));
    );

APIs

Connect

Methods

<static> create(accessToken, ConnectOptions, messageAdapter)

Factory method to create and initialize Client

Parameters

Name | Type | Argument | Description --- | --- | --- | --- accessToken | string | required | 555 Platform access token options | ConnectOptions | required | Options to customize 555 Connection behavior messageAdapter | MessageAdapter | required | Message adapter class conforming to MessageAdapter interface

Returns

Type

Client|Error

updateToken(accessToken)

Updates current token. Used to update Client with refreshed token.

Parameters

Name | Type | Argument | Description --- | --- | --- | --- accessToken | string | required | 555 Platform access token

Returns

Type

void

connect()

Connect to platform.

Parameters

Name | Type | Argument | Description --- | --- | --- | --- options | ConnectOptions | optional | Connection options

Returns

Type

Promise.<Client|void>

disconnect()

Manually disconnect the client.

Returns

Type

Promise.<void|Error>

on(event, callback)

Register handler for event.

Parameters

Name | Type | Description --- | --- | --- event | Event | Event type callback | Function | Callback function

AccessTokenAboutToExpire

Triggered 5 minutes before access token is to expire.

client.onTokenAboutToExpire(() =>
  // renewToken is a function you need to implement to fetch new token
  // from application server
  renewToken(renewedToken => sdk.updateToken(renewedToken));
);

Options

ConnectOptions

These options are parameters for connecting to platform.

Type

Object

Properties

Name | Type | Argument --- | --- | --- url | string | required protocol | string[] | optional automaticReconnect | boolean | optional reconnectionAttempts | number | optional reconnectDelay | number | optional reconnectBackoffAlgorithm | BackoffAlgorithm | optional pollInterval | number | optional requestTimeout | number | optional requestRetries | number | optional paginatorDefaultPageSize | number | optional nextPingDelay | number | optional pingWaitDelay | number | optional

Chat

Methods

createRoom(options)

Create room on the server with current user as the member.

Parameters

Name | Type | Argument | Description --- | --- | --- | --- options | CreateRoomOptions | Create room options

Returns

Type

Promise.<Room>

getRoomById(roomId)

Get room by its ID.

Parameters

Name | Type | Description --- | --- | --- roomId | String | room ID

Returns

Type

Promise.<Room>

getPublicRoomDescriptors()

Get list of public rooms.

Returns

Type

Promis.<Paginator.<RoomDescriptor>>

getUserRoomDescriptors()

Get list of rooms current user is a member of.

Returns

Type

Promise.<Paginator.<RoomDescriptor>>

getUser(userId)

Return User object for the user ID.

Parameters

Name | Type | Description --- | --- | --- userId | String | User ID

Returns

Type

Promise.<User>

getCurrentUser()

Return User object for currently logged in user.

Returns

Type

Promise.<User>

disconnect()

Gracefully disconnect SDK from the platform

Returns

Type

Promise.<void>

updateLastConsumedMessageIndex(index)

Set last consumed message index to new index.

Parameters

Name | Type | Description --- | --- | --- index | Number | Message index to set last read to

Returns

Type

Promise.<number|Error>

Events

roomReceivedMessage

Type

Object

Properties

Name | Type | Description --- | --- | --- room | RoomDescriptor | Room descriptor with updated last message and consumed message index message | Message | Message object with the new message

UserJoinedRoom

Triggered when user joins the room.

Type

User

UserLeftRoom

Triggered when user leaves the room.

Type

User

MessageUpdated

Triggered when message was updated.

Type

Object

Properties

Name | Type | Description --- | --- | --- message | Message | Updated Message index | Number | Index of the updated message

UserIsTyping

Triggered when a user in the room started typing.

Type

User

Options

CreateRoomOptions

These options are parameters for creating a room.

Type

Object

Properties

Name | Type | Argument --- | --- | --- attributes | Object | optional | friendlyName | String | required | createdBy | string | required | isPrivate | boolean | required | isDirect | boolean | required | isSMS | boolean | optional | smsNumber | string | optional | members | string[] | required |

Room

Properties

Name | Type | Description --- | --- | --- roomId | String | Room ID friendlyName | String | Room display name createdAt | Date | Date of creation createdBy | User | User who created the room updatedAt | Date | Date of update members | Array.<User> | Users who are members of this room isPrivate | Boolean | Is room private or public ('public' or 'private') isArchive | boolean | Is room archived isSms | boolean | Is sms smsNumber | string | sms number attributes | Object | Object with room's custom attributes lastMessageIndex | number | Index of last message lastConsumedMessageIndex | number | Index of last consumed message consumedMessageOffset | number | Number of unread messages by user this message is directed to

Methods

inviteUsers(userId)

Invite a user to the room.

Parameters

Name | Type | Description --- | --- | --- userId | String | User ID

Returns

Type

Promise.<Room|Error>

leaveRoom(options)

Leave the Room.

Returns

Type

Promise.<Room|Error>

options

Properties

Name | Type | Argument --- | --- | --- roomId | string | required

removeUser(roomId, userId)

Remove user from the Room.

Returns

Type

Promise.<Room|Error>

archiveRoom()

Archives the Room.

Returns

Type

Promise.<Room|Error>

deleteRoom()

Deletes the Room.

Returns

Type

Promise.<Room|Error>

updateRoom(room)

Update the Room.

Returns

Type

Promise.<Void|Error>

updateMessage(messageId, messageUpdate)

update message.

Returns

Type

Promise.<Void|Error>

deleteMessage(options)

delete message.

Returns

Type

Promise.<Message|Error>

options

Properties

Name | Type | Argument --- | --- | --- roomId | string | required messageId | string | required

removeUser(userId)

Remove user from this Room.

Parameters

Name | Type | Description --- | --- | --- userId | String | User ID

Returns

Type

Promise.<void|Error>

Events

UserJoinedRoom

Triggered when user joins the room.

Type

User

UserLeftRoom

Triggered when user leaves the room.

Type

User

MessageUpdated

Triggered when message was updated.

Type

Object

Properties

Name | Type | Description --- | --- | --- message | Message | Updated Message index | Number | Index of the updated message

UserIsTyping

Triggered when a user in the room started typing.

Type

User

RTC JS SDK

Import JS SDK as below:

import { JSSDK } from '@555platform/555-js-sdk';

And declare global variables inside .ts wrapper to access Rtc components via window object.

declare var window: any;

or

declare var IrisRtcSession: any;

JS SDK Documenation is available here