View on GitHub

relay-js

Build workflows for your Relays

@relaypro/sdk / Exports

relay-js

relay-js SDK is a Node.js library for interacting with Relay. For full documentation visit developer.relaypro.com.

Installation

npm install @relaypro/sdk

Usage

The following code snippet demonstrates a very simple “Hello World” workflow. However, it does show some of the power that is available through the Relay SDK.

import pkg from '@relaypro/sdk'
const { relay, Event, createWorkflow, Uri } = pkg

const app = relay()

app.workflow(`helloworld`, helloworld)

const helloworld = createWorkflow(wf => {
  wf.on(Event.START, async (event) => {
    const { trigger: { args: { source_uri } } } = event
    wf.startInteraction([source_uri], `hello world`)
  })

  wf.on(Event.INTERACTION_STARTED, async ({ source_uri }) => {
    const deviceName = Uri.parseDeviceName(source_uri)
    console.log(`interaction start ${source_uri}`)
    await wf.sayAndWait(source_uri, `What is your name ?`)
    const { text: userProvidedName } = await wf.listen(source_uri)
    const greeting = await wf.getVar(`greeting`)
    await wf.sayAndWait(source_uri, `${greeting} ${userProvidedName}! You are currently using ${deviceName}`)
    await wf.terminate()
  })
})

Features demonstrated here:

Using the Relay CLI, the workflow can be registered with the following command:

relay workflow:create:phrase --name my-test-workflow --uri wss://yourhost:port/helloworld --trigger test -i 99000XXXXXXXXXX

In the above sample sample, a workflow callback function is registered with the name helloworld. This value of helloworld is used to map a WebSocket connection at the path wss://yourhost:port/helloworld to the registered workflow callback function.

It is also possible to register a “default” workflow at path / by providing the workflow callback function as the first parameter:

app.workflow(wf => {
  wf.on(Event.START, async () => {
    // handle start event
  })
})

API

The Relay JS SDK covers a broad set of use cases. Explore the various actions that can be performed in workflow event callbacks:

The full API reference is available at https://relaypro.github.io/relay-js .

Workflow Registration

More thorough documentation on how to register your workflow on a Relay device can be found at https://developer.relaypro.com/docs/register-workflows

Development

git clone git@github.com:relaypro/relay-js.git
cd relay-js
npm install
npm run build
npm run test

License

MIT

Classes

@relaypro/sdk / Exports / api / default

Class: default

api.default

Table of contents

Methods

Methods

fetchDevice

fetchDevice(id): Promise<Device>

Parameters
Name Type
id string
Returns

Promise<Device>

Defined in

api.ts:170


triggerWorkflow

triggerWorkflow(id, targets, args?): Promise<void>

Parameters
Name Type
id string
targets Target
args? Record<string, string>
Returns

Promise<void>

Defined in

api.ts:176

@relaypro/sdk / Exports / index / Workflow

Class: Workflow

index.Workflow

Table of contents

Methods

Methods

alert

alert(target, originator, name, text, pushOptions?): Promise<void>

Parameters
Name Type
target Target
originator string
name string
text string
pushOptions? NotificationOptions
Returns

Promise<void>

Defined in

index.ts:417


answerCall

answerCall(target, callRequest): Promise<void>

Parameters
Name Type
target string
callRequest string | BaseCallEvent
Returns

Promise<void>

Defined in

index.ts:562


breathe

breathe(target, color?): Promise<void>

Parameters
Name Type
target Target
color string
Returns

Promise<void>

Defined in

index.ts:377


broadcast

broadcast(target, originator, name, text, pushOptions?): Promise<void>

Parameters
Name Type
target Target
originator string
name string
text string
pushOptions? NotificationOptions
Returns

Promise<void>

Defined in

index.ts:401


cancelAlert

cancelAlert(target, name): Promise<void>

Parameters
Name Type
target Target
name string
Returns

Promise<void>

Defined in

index.ts:421


cancelBroadcast

cancelBroadcast(target, name): Promise<void>

Parameters
Name Type
target Target
name string
Returns

Promise<void>

Defined in

index.ts:405


cancelNotify

cancelNotify(target, name): Promise<void>

Parameters
Name Type
target Target
name string
Returns

Promise<void>

Defined in

index.ts:413


clearTimer

clearTimer(name): Promise<void>

Parameters
Name Type
name string
Returns

Promise<void>

Defined in

index.ts:600


createIncident

createIncident(originatorUri, type): Promise<string>

Parameters
Name Type
originatorUri string
type string
Returns

Promise<string>

Defined in

index.ts:749


disableHomeChannel

disableHomeChannel(target): Promise<void>

Parameters
Name Type
target Target
Returns

Promise<void>

Defined in

index.ts:389


disableLocation

disableLocation(target): Promise<void>

Parameters
Name Type
target string
Returns

Promise<void>

Defined in

index.ts:512


enableHomeChannel

enableHomeChannel(target): Promise<void>

Parameters
Name Type
target Target
Returns

Promise<void>

Defined in

index.ts:385


enableLocation

enableLocation(target): Promise<void>

Parameters
Name Type
target string
Returns

Promise<void>

Defined in

index.ts:508


endInteraction

endInteraction(target, name): Promise<void>

Parameters
Name Type
target Target
name string
Returns

Promise<void>

Defined in

index.ts:313


flash

flash(target, color?): Promise<void>

Parameters
Name Type
target Target
color string
Returns

Promise<void>

Defined in

index.ts:373


get

get(names, mappers): Promise<AnyPrimitive | AnyPrimitive[]>

Parameters
Name Type
names string | string[]
mappers [Mapper<AnyPrimitive>]
Returns

Promise<AnyPrimitive | AnyPrimitive[]>

Defined in

index.ts:723


getArrayVar

getArrayVar(name, defaultValue?): Promise<undefined | string[]>

Parameters
Name Type Default value
name string undefined
defaultValue undefined undefined
Returns

Promise<undefined | string[]>

Defined in

index.ts:715


getDeviceAddress

getDeviceAddress(target, refresh): Promise<string>

Parameters
Name Type
target string
refresh boolean
Returns

Promise<string>

Defined in

index.ts:470


getDeviceBattery

getDeviceBattery(target, refresh): Promise<number>

Parameters
Name Type
target string
refresh boolean
Returns

Promise<number>

Defined in

index.ts:486


getDeviceCoordinates

getDeviceCoordinates(target, refresh): Promise<number[]>

Parameters
Name Type
target string
refresh boolean
Returns

Promise<number[]>

Defined in

index.ts:474


getDeviceId

getDeviceId(target): Promise<string>

Parameters
Name Type
target string
Returns

Promise<string>

Defined in

index.ts:458


getDeviceIndoorLocation

getDeviceIndoorLocation(target, refresh): Promise<string>

Parameters
Name Type
target string
refresh boolean
Returns

Promise<string>

Defined in

index.ts:482


getDeviceLatLong

getDeviceLatLong(target, refresh): Promise<number[]>

Parameters
Name Type
target string
refresh boolean
Returns

Promise<number[]>

Defined in

index.ts:478


getDeviceLocation

getDeviceLocation(target, refresh): Promise<string>

Parameters
Name Type
target string
refresh boolean
Returns

Promise<string>

Defined in

index.ts:462


getDeviceLocationEnabled

getDeviceLocationEnabled(target): Promise<boolean>

Parameters
Name Type
target string
Returns

Promise<boolean>

Defined in

index.ts:466


getDeviceName

getDeviceName(target): Promise<string>

Parameters
Name Type
target string
Returns

Promise<string>

Defined in

index.ts:453


getDeviceType

getDeviceType(target): Promise<DeviceType>

Parameters
Name Type
target string
Returns

Promise<DeviceType>

Defined in

index.ts:490


getGroupMembers

getGroupMembers(groupUri): Promise<string[]>

Parameters
Name Type
groupUri string
Returns

Promise<string[]>

Defined in

index.ts:609


getMappedVar

getMappedVar<Type>(name, mapper, defaultValue?): Promise<undefined | Type>

Type parameters
Name
Type
Parameters
Name Type Default value
name string undefined
mapper Mapper<Type> undefined
defaultValue undefined undefined
Returns

Promise<undefined | Type>

Defined in

index.ts:703


getNumberArrayVar

getNumberArrayVar(name, defaultValue?): Promise<undefined | number[]>

Parameters
Name Type Default value
name string undefined
defaultValue undefined undefined
Returns

Promise<undefined | number[]>

Defined in

index.ts:719


getNumberVar

getNumberVar(name, defaultValue?): Promise<undefined | number>

Parameters
Name Type Default value
name string undefined
defaultValue undefined undefined
Returns

Promise<undefined | number>

Defined in

index.ts:711


getUnreadInboxSize

getUnreadInboxSize(target): Promise<number>

Parameters
Name Type
target string
Returns

Promise<number>

Defined in

index.ts:578


getUserProfile

getUserProfile(target): Promise<string>

Parameters
Name Type
target string
Returns

Promise<string>

Defined in

index.ts:443


getVar

getVar(name, defaultValue?): Promise<undefined | string>

Parameters
Name Type Default value
name string undefined
defaultValue undefined undefined
Returns

Promise<undefined | string>

Defined in

index.ts:694


hangupCall

hangupCall(target, callRequest): Promise<void>

Parameters
Name Type
target string
callRequest string | BaseCallEvent
Returns

Promise<void>

Defined in

index.ts:566


isGroupMember

isGroupMember(groupNameUri, potentialMemberNameUri): Promise<boolean>

Parameters
Name Type
groupNameUri string
potentialMemberNameUri string
Returns

Promise<boolean>

Defined in

index.ts:614


ledAction

ledAction(target, effect, args): Promise<void>

Parameters
Name Type
target Target
effect LedEffect
args LedInfo
Returns

Promise<void>

Defined in

index.ts:381


listen

listen(target, phrases?, __namedParameters?): Promise<ListenResponse>

Parameters
Name Type Default value
target string undefined
phrases never[] []
__namedParameters Object {}
__namedParameters.alt_lang undefined | Language undefined
__namedParameters.timeout undefined | number undefined
__namedParameters.transcribe undefined | boolean undefined
Returns

Promise<ListenResponse>

Defined in

index.ts:524


logMessage

logMessage(message, category?): Promise<void>

Parameters
Name Type
message string
category string
Returns

Promise<void>

Defined in

index.ts:627


logUserMessage

logUserMessage(message, target, category?): Promise<void>

Parameters
Name Type
message string
target string
category string
Returns

Promise<void>

Defined in

index.ts:635


notify

notify(target, originator, name, text, pushOptions?): Promise<void>

Parameters
Name Type
target Target
originator string
name string
text string
pushOptions? NotificationOptions
Returns

Promise<void>

Defined in

index.ts:409


off

off<U>(eventName): void

Type parameters
Name Type
U extends keyof WorkflowEventMappings
Parameters
Name Type
eventName U
Returns

void

Defined in

index.ts:90


on

on<U>(eventName, listener): void

Type parameters
Name Type
U extends keyof WorkflowEventMappings
Parameters
Name Type
eventName U
listener WorkflowEventHandlers[U]
Returns

void

Defined in

index.ts:85


placeCall

placeCall(target, call): Promise<void>

Parameters
Name Type
target string
call Partial<Omit<StartedCallEvent, "call_id">>
Returns

Promise<void>

Defined in

index.ts:558


play

play(target, filename): Promise<string>

Parameters
Name Type
target Target
filename string
Returns

Promise<string>

Defined in

index.ts:328


playAndWait

playAndWait(target, filename): Promise<string>

Parameters
Name Type
target Target
filename string
Returns

Promise<string>

Defined in

index.ts:333


playUnreadInboxMessages

playUnreadInboxMessages(target): Promise<void>

Parameters
Name Type
target string
Returns

Promise<void>

Defined in

index.ts:583


powerDownDevice

powerDownDevice(target): Promise<void>

Parameters
Name Type
target Target
Returns

Promise<void>

Defined in

index.ts:429


rainbow

rainbow(target, rotations?): Promise<void>

Parameters
Name Type Default value
target Target undefined
rotations number -1
Returns

Promise<void>

Defined in

index.ts:365


registerForCalls

registerForCalls(target, request): Promise<void>

Parameters
Name Type
target string
request RegisterRequest
Returns

Promise<void>

Defined in

index.ts:570


resolveIncident

resolveIncident(incidentId, reason): Promise<void>

Parameters
Name Type
incidentId string
reason string
Returns

Promise<void>

Defined in

index.ts:754


restartDevice

restartDevice(target): Promise<void>

Parameters
Name Type
target Target
Returns

Promise<void>

Defined in

index.ts:425


rotate

rotate(target, color?): Promise<void>

Parameters
Name Type
target Target
color string
Returns

Promise<void>

Defined in

index.ts:369


say

say(target, text, lang?): Promise<string>

Parameters
Name Type Default value
target Target undefined
text string undefined
lang Language Language.ENGLISH
Returns

Promise<string>

Defined in

index.ts:317


sayAndWait

sayAndWait(target, text, lang?): Promise<string>

Parameters
Name Type Default value
target Target undefined
text string undefined
lang Language Language.ENGLISH
Returns

Promise<string>

Defined in

index.ts:322


set

set(obj, value?): Promise<void>

Parameters
Name Type
obj Record<string, string>
value? string
Returns

Promise<void>

Defined in

index.ts:671


setChannel

setChannel(target, name, __namedParameters?): Promise<void>

Parameters
Name Type
target string
name string
__namedParameters Object
__namedParameters.disableHomeChannel? false
__namedParameters.suppressTTS? boolean
Returns

Promise<void>

Defined in

index.ts:520


setDefaultAnalyticEventParameters

setDefaultAnalyticEventParameters(params): Promise<void>

Parameters
Name Type
params Record<string, string | number | boolean>
Returns

Promise<void>

Defined in

index.ts:623


setDeviceChannel

setDeviceChannel(target, channel): Promise<void>

Parameters
Name Type
target string
channel string
Returns

Promise<void>

Defined in

index.ts:503


setDeviceMode

setDeviceMode(target, mode): Promise<void>

Parameters
Name Type
target string
mode "panic" | "alarm" | "none"
Returns

Promise<void>

Defined in

index.ts:516


setDeviceName

setDeviceName(target, name): Promise<void>

Parameters
Name Type
target string
name string
Returns

Promise<void>

Defined in

index.ts:498


setTimer

setTimer(type, name, timeout?, timeout_type): Promise<void>

Parameters
Name Type Default value
type TimerType undefined
name string undefined
timeout number 60
timeout_type TimeoutType undefined
Returns

Promise<void>

Defined in

index.ts:596


setUserProfile

setUserProfile(target, username, force?): Promise<void>

Parameters
Name Type Default value
target string undefined
username string undefined
force boolean false
Returns

Promise<void>

Defined in

index.ts:448


setVar

setVar(name, value): Promise<void>

Parameters
Name Type
name string
value string
Returns

Promise<void>

Defined in

index.ts:667


startInteraction

startInteraction(target, name, options): Promise<void>

Parameters
Name Type
target Target
name string
options InteractionOptions
Returns

Promise<void>

Defined in

index.ts:309


startTimer

startTimer(timeout?): Promise<void>

Parameters
Name Type Default value
timeout number 60
Returns

Promise<void>

Defined in

index.ts:741


stopTimer

stopTimer(): Promise<void>

Returns

Promise<void>

Defined in

index.ts:745


switchAllLedOff

switchAllLedOff(target): Promise<void>

Parameters
Name Type
target Target
Returns

Promise<void>

Defined in

index.ts:361


switchAllLedOn

switchAllLedOn(target, color): Promise<void>

Parameters
Name Type
target Target
color string
Returns

Promise<void>

Defined in

index.ts:357


switchLedOn

switchLedOn(target, led, color): Promise<void>

Parameters
Name Type
target Target
led LedIndex
color string
Returns

Promise<void>

Defined in

index.ts:353


terminate

terminate(): Promise<void>

Returns

Promise<void>

Defined in

index.ts:758


trackEvent

trackEvent(category, parameters?): Promise<void>

Parameters
Name Type
category string
parameters? TrackEventParameters
Returns

Promise<void>

Defined in

index.ts:644


trackUserEvent

trackUserEvent(category, target, parameters?): Promise<void>

Parameters
Name Type
category string
target string
parameters? TrackEventParameters
Returns

Promise<void>

Defined in

index.ts:655


translate

translate(text, from?, to?): Promise<string>

Parameters
Name Type Default value
text string undefined
from Language Language.ENGLISH
to Language Language.SPANISH
Returns

Promise<string>

Defined in

index.ts:604


unregisterForCalls

unregisterForCalls(target, request): Promise<void>

Parameters
Name Type
target string
request UnregisterRequest
Returns

Promise<void>

Defined in

index.ts:574


unset

unset(names): Promise<void>

Parameters
Name Type
names string | string[]
Returns

Promise<void>

Defined in

index.ts:686


unsetVar

unsetVar(name): Promise<void>

Parameters
Name Type
name string
Returns

Promise<void>

Defined in

index.ts:682


vibrate

vibrate(target, pattern): Promise<void>

Parameters
Name Type
target Target
pattern number[]
Returns

Promise<void>

Defined in

index.ts:349

Enums

@relaypro/sdk / Exports / enums / Button

Enumeration: Button

enums.Button

Table of contents

Enumeration Members

Enumeration Members

ACTION

ACTION

Defined in

enums.ts:33


CHANNEL

CHANNEL

Defined in

enums.ts:34

@relaypro/sdk / Exports / enums / CallDirection

Enumeration: CallDirection

enums.CallDirection

Table of contents

Enumeration Members

Enumeration Members

INBOUND

INBOUND

Defined in

enums.ts:28


OUTBOUND

OUTBOUND

Defined in

enums.ts:29

@relaypro/sdk / Exports / enums / DeviceInfoField

Enumeration: DeviceInfoField

enums.DeviceInfoField

Table of contents

Enumeration Members

Enumeration Members

CHANNEL

CHANNEL

Defined in

enums.ts:97


LABEL

LABEL

Defined in

enums.ts:96


LOCATION_ENABLED

LOCATION_ENABLED

Defined in

enums.ts:98

@relaypro/sdk / Exports / enums / DeviceInfoQuery

Enumeration: DeviceInfoQuery

enums.DeviceInfoQuery

Table of contents

Enumeration Members

Enumeration Members

ADDRESS

ADDRESS

Defined in

enums.ts:86


BATTERY

BATTERY

Defined in

enums.ts:88


COORDINATES

COORDINATES

Defined in

enums.ts:87


ID

ID

Defined in

enums.ts:84


INDOOR_LOCATION

INDOOR_LOCATION

Defined in

enums.ts:89


LOCATION

LOCATION

Defined in

enums.ts:90


LOCATION_ENABLED

LOCATION_ENABLED

Defined in

enums.ts:92


NAME

NAME

Defined in

enums.ts:83


TYPE

TYPE

Defined in

enums.ts:85


USERNAME

USERNAME

Defined in

enums.ts:91

@relaypro/sdk / Exports / enums / DeviceType

Enumeration: DeviceType

enums.DeviceType

Table of contents

Enumeration Members

Enumeration Members

DASH

DASH

Defined in

enums.ts:106


RELAY

RELAY

Defined in

enums.ts:102


RELAY2

RELAY2

Defined in

enums.ts:103


RELAY_APP

RELAY_APP

Defined in

enums.ts:104


ROIP

ROIP

Defined in

enums.ts:105

@relaypro/sdk / Exports / enums / Event

Enumeration: Event

enums.Event

Table of contents

Enumeration Members

Enumeration Members

BUTTON

BUTTON

Defined in

enums.ts:13


CALL_CONNECTED

CALL_CONNECTED

Defined in

enums.ts:20


CALL_DISCONNECTED

CALL_DISCONNECTED

Defined in

enums.ts:21


CALL_FAILED

CALL_FAILED

Defined in

enums.ts:22


CALL_RECEIVED

CALL_RECEIVED

Defined in

enums.ts:23


CALL_RINGING

CALL_RINGING

Defined in

enums.ts:19


CALL_START_REQUEST

CALL_START_REQUEST

Defined in

enums.ts:24


ERROR

ERROR

Defined in

enums.ts:4


INCIDENT

INCIDENT

Defined in

enums.ts:16


INTERACTION_ENDED

INTERACTION_ENDED

Defined in

enums.ts:11


INTERACTION_FAILED

INTERACTION_FAILED

Defined in

enums.ts:12


INTERACTION_LIFECYCLE

INTERACTION_LIFECYCLE

Defined in

enums.ts:7


INTERACTION_RESUMED

INTERACTION_RESUMED

Defined in

enums.ts:9


INTERACTION_STARTED

INTERACTION_STARTED

Defined in

enums.ts:8


INTERACTION_SUSPENDED

INTERACTION_SUSPENDED

Defined in

enums.ts:10


NOTIFICATION

NOTIFICATION

Defined in

enums.ts:15


PROMPT

PROMPT

Defined in

enums.ts:17


SPEECH

SPEECH

Defined in

enums.ts:18


START

START

Defined in

enums.ts:5


STOP

STOP

Defined in

enums.ts:6


TIMER

TIMER

Defined in

enums.ts:14

@relaypro/sdk / Exports / enums / IncidentStatus

Enumeration: IncidentStatus

enums.IncidentStatus

Table of contents

Enumeration Members

Enumeration Members

CANCELLED

CANCELLED

Defined in

enums.ts:118


RESOLVED

RESOLVED

Defined in

enums.ts:117

@relaypro/sdk / Exports / enums / Language

Enumeration: Language

enums.Language

Table of contents

Enumeration Members

Enumeration Members

ARABIC

ARABIC

Defined in

enums.ts:62


BENGALI

BENGALI

Defined in

enums.ts:76


CHINESE

CHINESE

Defined in

enums.ts:61


CZECH

CZECH

Defined in

enums.ts:67


DANISH

DANISH

Defined in

enums.ts:66


DUTCH

DUTCH

Defined in

enums.ts:60


ENGLISH

ENGLISH

Defined in

enums.ts:45


FILIPINO

FILIPINO

Defined in

enums.ts:65


FINNISH

FINNISH

Defined in

enums.ts:79


FRENCH

FRENCH

Defined in

enums.ts:48


GERMAN

GERMAN

Defined in

enums.ts:46


GREEK

GREEK

Defined in

enums.ts:77


GUJURATI

GUJURATI

Defined in

enums.ts:68


HINDI

HINDI

Defined in

enums.ts:53


HUNGARIAN

HUNGARIAN

Defined in

enums.ts:69


ICELANDIC

ICELANDIC

Defined in

enums.ts:54


INDONESIAN

INDONESIAN

Defined in

enums.ts:64


ITALIAN

ITALIAN

Defined in

enums.ts:49


JAPANESE

JAPANESE

Defined in

enums.ts:55


KANNADA

KANNADA

Defined in

enums.ts:78


KOREAN

KOREAN

Defined in

enums.ts:56


MALAY

MALAY

Defined in

enums.ts:75


NORWEGIAN

NORWEGIAN

Defined in

enums.ts:59


POLISH

POLISH

Defined in

enums.ts:57


PORTUGUESE

PORTUGUESE

Defined in

enums.ts:58


PUNJABI

PUNJABI

Defined in

enums.ts:74


ROMANIAN

ROMANIAN

Defined in

enums.ts:73


RUSSIAN

RUSSIAN

Defined in

enums.ts:50


SLOVAK

SLOVAK

Defined in

enums.ts:72


SPANISH

SPANISH

Defined in

enums.ts:47


SWEDISH

SWEDISH

Defined in

enums.ts:51


TAMIL

TAMIL

Defined in

enums.ts:70


TURKISH

TURKISH

Defined in

enums.ts:52


UKRANIAN

UKRANIAN

Defined in

enums.ts:71


VIETNAMESE

VIETNAMESE

Defined in

enums.ts:63

@relaypro/sdk / Exports / enums / Notification

Enumeration: Notification

enums.Notification

Table of contents

Enumeration Members

Enumeration Members

ALERT

ALERT

Defined in

enums.ts:111


BROADCAST

BROADCAST

Defined in

enums.ts:110


CANCEL

CANCEL

Defined in

enums.ts:113


NOTIFY

NOTIFY

Defined in

enums.ts:112

@relaypro/sdk / Exports / enums / NotificationPriority

Enumeration: NotificationPriority

enums.NotificationPriority

Table of contents

Enumeration Members

Enumeration Members

CRITICAL

CRITICAL

Defined in

enums.ts:124


HIGH

HIGH

Defined in

enums.ts:123


NORMAL

NORMAL

Defined in

enums.ts:122

@relaypro/sdk / Exports / enums / NotificationSound

Enumeration: NotificationSound

enums.NotificationSound

Table of contents

Enumeration Members

Enumeration Members

DEFAULT

DEFAULT

Defined in

enums.ts:128


SOS

SOS

Defined in

enums.ts:129

@relaypro/sdk / Exports / enums / Taps

Enumeration: Taps

enums.Taps

Table of contents

Enumeration Members

Enumeration Members

DOUBLE

DOUBLE

Defined in

enums.ts:39


LONG

LONG

Defined in

enums.ts:41


SINGLE

SINGLE

Defined in

enums.ts:38


TRIPLE

TRIPLE

Defined in

enums.ts:40

@relaypro/sdk / Exports / enums / TimeoutType

Enumeration: TimeoutType

enums.TimeoutType

Table of contents

Enumeration Members

Enumeration Members

HOURS

HOURS

Defined in

enums.ts:141


MILLISECONDS

MILLISECONDS

Defined in

enums.ts:138


MINUTES

MINUTES

Defined in

enums.ts:140


SECONDS

SECONDS

Defined in

enums.ts:139

@relaypro/sdk / Exports / enums / TimerType

Enumeration: TimerType

enums.TimerType

Table of contents

Enumeration Members

Enumeration Members

INTERVAL

INTERVAL

Defined in

enums.ts:134


TIMEOUT

TIMEOUT

Defined in

enums.ts:133

Interfaces

@relaypro/sdk / Exports / types / Relay

Interface: Relay

types.Relay

Table of contents

Properties

Methods

Properties

api

api: default

Defined in

types.ts:43

Methods

workflow

workflow(path, workflow?): void

Parameters
Name Type
path string | WorkflowEventHandler
workflow? WorkflowEventHandler
Returns

void

Defined in

types.ts:42

@relaypro/sdk / Exports / types / WorkflowEventHandler

Interface: WorkflowEventHandler

types.WorkflowEventHandler

Callable

WorkflowEventHandler

WorkflowEventHandler(workflow): void

Parameters
Name Type
workflow Workflow
Returns

void

Defined in

types.ts:38

@relaypro/sdk / Exports

@relaypro/sdk

Table of contents

Modules

Modules

@relaypro/sdk / Exports / api

Module: api

Table of contents

Classes

@relaypro/sdk / Exports / constants

Module: constants

Table of contents

Variables

Variables

ERROR_RESPONSE

Const ERROR_RESPONSE: "wf_api_error_response"

Defined in

constants.ts:11


EVENT_TIMEOUT

Const EVENT_TIMEOUT: 32000

Defined in

constants.ts:7


HEARTBEAT

Const HEARTBEAT: number

Defined in

constants.ts:4


NON_INTERACTIVE_ACTIONS

Const NON_INTERACTIVE_ACTIONS: string[]

Defined in

constants.ts:15


NOTIFICATION_TIMEOUT

Const NOTIFICATION_TIMEOUT: 60000

Defined in

constants.ts:9


PORT

Const PORT: number

Defined in

constants.ts:3


PROGRESS_EVENT

Const PROGRESS_EVENT: "wf_api_progress_event"

Defined in

constants.ts:12


REFRESH_TIMEOUT

Const REFRESH_TIMEOUT: 45000

Defined in

constants.ts:8


TIMEOUT

Const TIMEOUT: 5000

Defined in

constants.ts:6

@relaypro/sdk / Exports / enums

Module: enums

Table of contents

Enumerations

@relaypro/sdk / Exports / index

Module: index

Table of contents

References

Classes

Variables

Functions

References

Button

Re-exports Button


CallDirection

Re-exports CallDirection


DeviceInfoField

Re-exports DeviceInfoField


DeviceInfoQuery

Re-exports DeviceInfoQuery


DeviceType

Re-exports DeviceType


IncidentStatus

Re-exports IncidentStatus


Notification

Re-exports Notification


NotificationPriority

Re-exports NotificationPriority


NotificationSound

Re-exports NotificationSound


Options

Re-exports Options


Relay

Re-exports Relay


Taps

Re-exports Taps


TimeoutType

Re-exports TimeoutType


TimerType

Re-exports TimerType


Uri

Renames and re-exports uri


WorkflowEventHandler

Re-exports WorkflowEventHandler

Variables

Event

Event: typeof Event


Language

Language: typeof Language

Functions

createWorkflow

createWorkflow(fn): Workflow

Parameters
Name Type
fn Workflow
Returns

Workflow

Defined in

index.ts:53


relay

relay(options?): Relay

Parameters
Name Type
options Options
Returns

Relay

Defined in

index.ts:772

@relaypro/sdk / Exports / queue

Module: queue

@relaypro/sdk / Exports / types

Module: types

Table of contents

Interfaces

Type Aliases

Type Aliases

AnyEvent

Ƭ AnyEvent: Error

Defined in

types.ts:196


AnyPrimitive

Ƭ AnyPrimitive: undefined | symbol | string | boolean | number | [string | boolean | number]

Defined in

types.ts:233


AudioResponse

Ƭ AudioResponse: Record<"audio", string>

Defined in

types.ts:229


BaseCallEvent

Ƭ BaseCallEvent: Object

Type declaration
Name Type
call_id string
Defined in

types.ts:282


ButtonEvent

Ƭ ButtonEvent: Event & { button: Button ; taps: Taps }

Defined in

types.ts:167


ButtonTrigger

Ƭ ButtonTrigger: Object

Type declaration
Name Type
args TriggerArgs & { action: "action_button_single_tap" | "action_button_double_tap" | "action_button_triple_tap" }
type "button"
Defined in

types.ts:100


Call

Ƭ Call: StartedCallEvent | ReceivedCallEvent | ConnectedCallEvent | DisconnectedCallEvent | FailedCallEvent

Defined in

types.ts:304


ConnectedCallEvent

Ƭ ConnectedCallEvent: ReceivedCallEvent & { connect_time_epoch: number }

Defined in

types.ts:296


Device

Ƭ Device: Object

Type declaration
Name Type
active_channel string
app_version string
background_audio boolean
battery_level number
battery_status "charging" | "discharging"
bluetooth_address string
bluetooth_name string
bluetooth_status "on" | "off"
build_id string
capabilities { allow_sos_override: boolean ; audit_rich_logging: boolean ; background_audio: boolean ; calling: boolean ; calling_between_devices_support: boolean ; devmon_event_support: boolean ; dnd: boolean ; eavesdrop_support: boolean ; enable_audit_logs: boolean ; enable_team_support: boolean ; escalated_sos: boolean ; geofencing: boolean ; group_persistence: boolean ; group_transcriptions: boolean ; group_translations: boolean ; indoor_positioning: boolean ; intent_support: boolean ; location: boolean ; location_history: boolean ; low_latency_audio: boolean ; sip_register_support: boolean ; sos: boolean ; ui_allow_incident_resolution: boolean ; virtual_device_location_reporting: boolean }
capabilities.allow_sos_override boolean
capabilities.audit_rich_logging boolean
capabilities.background_audio boolean
capabilities.calling boolean
capabilities.calling_between_devices_support boolean
capabilities.devmon_event_support boolean
capabilities.dnd boolean
capabilities.eavesdrop_support boolean
capabilities.enable_audit_logs boolean
capabilities.enable_team_support boolean
capabilities.escalated_sos boolean
capabilities.geofencing boolean
capabilities.group_persistence boolean
capabilities.group_transcriptions boolean
capabilities.group_translations boolean
capabilities.indoor_positioning boolean
capabilities.intent_support boolean
capabilities.location boolean
capabilities.location_history boolean
capabilities.low_latency_audio boolean
capabilities.sip_register_support boolean
capabilities.sos boolean
capabilities.ui_allow_incident_resolution boolean
capabilities.virtual_device_location_reporting boolean
cell_signal number
channels { catalog_type: string ; channel_id: string ; color: string ; force_switch_on_page: boolean ; is_hidden: boolean ; name: string ; params: Record<string, string> ; type: string }[]
connection_type "cell" | "wifi"
device_status "online" | "offline"
emergency_info never
fcc_id string
features { auto_dnd_when_charging: boolean ; background_audio: boolean ; background_notification_repeat_interval: number ; cache_wifi_for_location: boolean ; calling: boolean ; calling_notifications: boolean ; dnd: boolean ; enable_event_stream: boolean ; foreground_notification_repeat_interval: number ; home_channel_name: string ; home_channel_timeout: number ; indoor_position_algorithm: string ; indoor_positioning: boolean ; location: boolean ; location_polling_interval: number ; ping_interval: number ; prefer_cell: boolean ; sensors_enabled: string[] ; sos: boolean ; use_ibot_transcriptions: false }
features.auto_dnd_when_charging boolean
features.background_audio boolean
features.background_notification_repeat_interval number
features.cache_wifi_for_location boolean
features.calling boolean
features.calling_notifications boolean
features.dnd boolean
features.enable_event_stream boolean
features.foreground_notification_repeat_interval number
features.home_channel_name string
features.home_channel_timeout number
features.indoor_position_algorithm string
features.indoor_positioning boolean
features.location boolean
features.location_polling_interval number
features.ping_interval number
features.prefer_cell boolean
features.sensors_enabled string[]
features.sos boolean
features.use_ibot_transcriptions false
groups { group_id: string ; name: string }[]
ic_id string
iccid string
imei string
last_connect_timestamp string
location { accuracy: number ; address: string | null ; date: string ; geofence_events: { geofence_id: string ; label: string ; timestamp_z: string ; type: "entry" | "exit" }[] ; geofence_id: string | null ; geofence_state: "outside" | "inside" | null ; indoor_position: { best: number ; best_match: string[] ; best_match_id: string ; best_match_mac: string ; best_match_venue: string } ; lat: number ; long: number }
location.accuracy number
location.address string | null
location.date string
location.geofence_events { geofence_id: string ; label: string ; timestamp_z: string ; type: "entry" | "exit" }[]
location.geofence_id string | null
location.geofence_state "outside" | "inside" | null
location.indoor_position { best: number ; best_match: string[] ; best_match_id: string ; best_match_mac: string ; best_match_venue: string }
location.indoor_position.best number
location.indoor_position.best_match string[]
location.indoor_position.best_match_id string
location.indoor_position.best_match_mac string
location.indoor_position.best_match_venue string
location.lat number
location.long number
mode null | "emergency_sos" | "dnd"
model string
name string
product_name string
rendezvous never[]
rom_version string
volume_level number
wifi_mac string
wifi_signal number
Defined in

types.ts:310


DisconnectedCallEvent

Ƭ DisconnectedCallEvent: ConnectedCallEvent & { end_time_epoch: number ; reason: string }

Defined in

types.ts:299


ErrorEvent

Ƭ ErrorEvent: Object

ErrorEvent is not emitted from Relay Platform. Rather it is emitted from the SDK when an exception goes unhandled by user code.

Type declaration
Name Type
error Error
Defined in

types.ts:155


Event

Ƭ Event: Object

Type declaration
Name Type
source_uri string
Defined in

types.ts:147


FailedCallEvent

Ƭ FailedCallEvent: DisconnectedCallEvent

Defined in

types.ts:303


GroupTarget

Ƭ GroupTarget: string

Defined in

types.ts:207


HomeChannelBehavior

Ƭ HomeChannelBehavior: "suspend" | "normal"

Defined in

types.ts:220


HttpTrigger

Ƭ HttpTrigger: Object

Type declaration
Name Type
args TriggerArgs & { args: Record<string, string> }
type "http"
Defined in

types.ts:107


IncidentEvent

Ƭ IncidentEvent: Object

Type declaration
Name Type
incident_id string
reason string
type IncidentStatus
Defined in

types.ts:198


InputType

Ƭ InputType: "action_button_single_tap" | "action_button_double_tap" | "action_button_triple_tap" | "action_button_long_press" | "channel_button_double_tap" | "channel_button_triple_tap"

Defined in

types.ts:213


InteractionLifecycle

Ƭ InteractionLifecycle: "started" | "resumed" | "suspended" | "ended" | "failed"

Defined in

types.ts:141


InteractionLifecycleEvent

Ƭ InteractionLifecycleEvent: Event & { reason?: string ; type: string }

Defined in

types.ts:134


InteractionOptions

Ƭ InteractionOptions: Object

Type declaration
Name Type
color? string
home_channel? HomeChannelBehavior
input_types? [InputType]
Defined in

types.ts:222


LedEffect

Ƭ LedEffect: "off" | "breathe" | "flash" | "rotate" | "rainbow" | "static"

Defined in

types.ts:240


LedIndex

Ƭ LedIndex: "ring" | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "13" | "14" | "15" | "16"

Defined in

types.ts:239


LedInfo

Ƭ LedInfo: Object

Type declaration
Name Type
colors? { [K in LedIndex]?: string }
count? number
duration? number
pattern_repeats? number
repeat_delay? number
rotations? number
Defined in

types.ts:241


ListenResponse

Ƭ ListenResponse: TranscriptionResponse | AudioResponse

Defined in

types.ts:231


LocalWebSocket

Ƭ LocalWebSocket: WebSocket & { connectionId: string ; isAlive: boolean }

Defined in

types.ts:32


Mapper

Ƭ Mapper<Type>: (value: string) => Type

Type parameters
Name
Type
Type declaration

▸ (value): Type

Parameters
Name Type
value string
Returns

Type

Defined in

types.ts:235


Maybe

Ƭ Maybe<T>: T | null | undefined

Type parameters
Name
T
Defined in

types.ts:20


NfcTrigger

Ƭ NfcTrigger: Object

Type declaration
Name Type
args TriggerArgs & { nfc_payload: Record<string, string> ; uid: string }
type "nfc"
Defined in

types.ts:114


NotificationEvent

Ƭ NotificationEvent: Event & { event: string ; name: string ; notification_state: NotificationState }

Defined in

types.ts:174


NotificationOptions

Ƭ NotificationOptions: Object

Type declaration
Name Type
body string
priority NotificationPriority
sound NotificationSound
title string
Defined in

types.ts:256


NotificationState

Ƭ NotificationState: Object

Type declaration
Name Type
acknowledged string[]
cancelled string[]
created string[]
timed_out string[]
Defined in

types.ts:263


Options

Ƭ Options: Object

Type declaration
Name Type
apiKey? string
server? http.Server | https.Server
subscriberId? string
Defined in

types.ts:26


OtherTrigger

Ƭ OtherTrigger: Object

Type declaration
Name Type
args TriggerArgs
type "emergency" | "other" | "calendar" | "geofence" | "telephony"
Defined in

types.ts:123


PhraseTrigger

Ƭ PhraseTrigger: Object

Type declaration
Name Type
args TriggerArgs & { phrase: string ; spillover: string }
type "phrase"
Defined in

types.ts:92


PlaceCall

Ƭ PlaceCall: Partial<Omit<StartedCallEvent, "call_id">>

Defined in

types.ts:288


ProgressingCallEvent

Ƭ ProgressingCallEvent: ReceivedCallEvent

Defined in

types.ts:295


PromptEvent

Ƭ PromptEvent: Event & { id: string ; type: string }

Defined in

types.ts:189


RawWorkflowEvent

Ƭ RawWorkflowEvent: UnionToIntersection<WorkflowEvent> & { _id: string ; _type: string }

Defined in

types.ts:75


ReceivedCallEvent

Ƭ ReceivedCallEvent: StartedCallEvent & { direction: CallDirection ; onnet: boolean ; start_time_epoch: number }

Defined in

types.ts:289


RegisterRequest

Ƭ RegisterRequest: Object

Type declaration
Name Type
expires? number
password? string
uri? string
Defined in

types.ts:274


RingingCallEvent

Ƭ RingingCallEvent: ReceivedCallEvent

Defined in

types.ts:294


SingleTarget

Ƭ SingleTarget: string

Defined in

types.ts:208


SpeechEvent

Ƭ SpeechEvent: Event & { audio: string ; lang: string ; request_id: string ; text: string }

Defined in

types.ts:180


StartEvent

Ƭ StartEvent: Object

Type declaration
Name Type
trigger PhraseTrigger | ButtonTrigger | HttpTrigger | NfcTrigger | OtherTrigger
Defined in

types.ts:159


StartedCallEvent

Ƭ StartedCallEvent: BaseCallEvent & { uri: string }

Defined in

types.ts:285


StopEvent

Ƭ StopEvent: Object

Type declaration
Name Type
reason "error" | "normal" | string
Defined in

types.ts:163


Target

Ƭ Target: SingleTarget | string[]

Defined in

types.ts:209


TargetUris

Ƭ TargetUris: Object

Type declaration
Name Type
uris string[]
Defined in

types.ts:210


TimerEvent

Ƭ TimerEvent: Record<"name", string>

Defined in

types.ts:172


TrackEventParameters

Ƭ TrackEventParameters: Record<string, Record<string, string | number | boolean>>

Defined in

types.ts:308


TranscriptionResponse

Ƭ TranscriptionResponse: Record<"text" | "lang", string>

Defined in

types.ts:228


TriggerArgs

Ƭ TriggerArgs: Object

Type declaration
Name Type
source_uri string
Defined in

types.ts:88


UnionToIntersection

Ƭ UnionToIntersection<T>: T extends any ? (x: T) => any : never extends (x: infer R) => any ? R : never

Type parameters
Name
T
Defined in

types.ts:24


UnregisterRequest

Ƭ UnregisterRequest: Omit<RegisterRequest, "expires">

Defined in

types.ts:280


ValueOf

Ƭ ValueOf<T>: T[keyof T]

Type parameters
Name
T
Defined in

types.ts:22


WorkflowEventHandlers

Ƭ WorkflowEventHandlers: { [EventName in keyof WorkflowEventMappings]?: Function }

Defined in

types.ts:80

@relaypro/sdk / Exports / uri

Module: uri

Table of contents

Functions

Functions

allDevices

allDevices(): string

Returns

string

Defined in

uri.ts:140


allDevicesWithStatus

allDevicesWithStatus(interactionName, status): string

Parameters
Name Type
interactionName string
status InteractionLifecycle
Returns

string

Defined in

uri.ts:133


assertTargets

assertTargets(target): boolean

Parameters
Name Type
target Target
Returns

boolean

Defined in

uri.ts:144


deviceId

deviceId(id): string

Parameters
Name Type
id string
Returns

string

Defined in

uri.ts:130


deviceName

deviceName(name): string

Parameters
Name Type
name string
Returns

string

Defined in

uri.ts:131


genericOriginator

genericOriginator(): string

Returns

string

Defined in

uri.ts:142


groupId

groupId(id): string

Parameters
Name Type
id string
Returns

string

Defined in

uri.ts:126


groupMember

groupMember(group, device): string

Parameters
Name Type
group string
device string
Returns

string

Defined in

uri.ts:128


groupName

groupName(name): string

Parameters
Name Type
name string
Returns

string

Defined in

uri.ts:127


isInteractionUri

isInteractionUri(uri): void

Parameters
Name Type
uri string
Returns

void

Defined in

uri.ts:163


isRelayUri

isRelayUri(uri): boolean

Parameters
Name Type
uri string
Returns

boolean

Defined in

uri.ts:167


makeTargetUris

makeTargetUris(target): TargetUris

Parameters
Name Type
target Target
Returns

TargetUris

Defined in

uri.ts:153


parseDeviceId

parseDeviceId(uri): string

Parameters
Name Type
uri string
Returns

string

Defined in

uri.ts:70


parseDeviceName

parseDeviceName(uri): string

Parameters
Name Type
uri string
Returns

string

Defined in

uri.ts:61


parseGroupId

parseGroupId(uri): string

Parameters
Name Type
uri string
Returns

string

Defined in

uri.ts:106


parseGroupName

parseGroupName(uri): string

Parameters
Name Type
uri string
Returns

string

Defined in

uri.ts:97

@relaypro/sdk / Exports / utils

Module: utils

Table of contents

Functions

Functions

arrayMapper

arrayMapper(value): string[]

Parameters
Name Type
value string
Returns

string[]

Defined in

utils.ts:44


booleanMapper

booleanMapper(value): boolean

Parameters
Name Type
value string
Returns

boolean

Defined in

utils.ts:46


filterInt

filterInt(value): number

Parameters
Name Type
value string
Returns

number

Defined in

utils.ts:36


isMatch

isMatch(object, source): boolean

Parameters
Name Type
object any
source any
Returns

boolean

Defined in

utils.ts:86


isPlainObject

isPlainObject<Value>(value): value is Record<string | number | symbol, Value>

Type parameters
Name
Value
Parameters
Name Type
value unknown
Returns

value is Record<string | number | symbol, Value>

Defined in

utils.ts:72


makeId

makeId(): string

Returns

string

Defined in

utils.ts:32


mapDevice

mapDevice(device): Device

Parameters
Name Type
device Record<string, any>
Returns

Device

Defined in

utils.ts:99


noop

noop(): void

Returns

void

Defined in

utils.ts:30


numberArrayMapper

numberArrayMapper(value): number[]

Parameters
Name Type
value string
Returns

number[]

Defined in

utils.ts:45


toString

toString(value): string

Parameters
Name Type
value AnyPrimitive
Returns

string

Defined in

utils.ts:48

@relaypro/sdk / Exports / vars

Module: vars

Table of contents

Variables

Variables

vars

Const vars: Vars

Defined in

vars.ts:73