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