Capabilities Module
Version Capabilities 1.7.0
Table of Contents
- Table of Contents
- Usage
- Overview
- Methods
- Events
- Private Events<summary>Show</summary>
</details>
- Types
Usage
To use the Capabilities module, you can import it into your project from the Firebolt SDK:
import { Capabilities } from '@firebolt-js/sdk'
Overview
The Capabilities module provides information about which discreet unit of functionality is enabled for the apps.
Methods
available
Returns whether a capability is available now.
function available(capability: Capability): Promise<boolean>
Parameters:
Param | Type | Required | Description |
---|---|---|---|
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Promise resolution:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Device Token.
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let available = await Capabilities.available(
'xrn:firebolt:capability:token:device',
)
console.log(available)
Value of available
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.available",
"params": {
"capability": "xrn:firebolt:capability:token:device"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": true
}
Unavailable Platform token.
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let available = await Capabilities.available(
'xrn:firebolt:capability:token:platform',
)
console.log(available)
Value of available
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.available",
"params": {
"capability": "xrn:firebolt:capability:token:platform"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": false
}
granted
Returns whether or not the user has granted the app with the provided capability and role. This will return ‘null’ if the user has not yet specified whether or not they grant the app with the provided permission, in which case the app can request permission by calling Capabilities.request().
function granted(
capability: Capability,
options: CapabilityOption,
): Promise<boolean>
Parameters:
Param | Type | Required | Description |
---|---|---|---|
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
options |
CapabilityOption |
false | Capability options |
Promise resolution:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
The user has granted the app with permission to use the keyboard.
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let granted = await Capabilities.granted(
'xrn:firebolt:capability:input:keyboard',
)
console.log(granted)
Value of granted
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.granted",
"params": {
"capability": "xrn:firebolt:capability:input:keyboard"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": true
}
The user has denied the app access to their postal code.
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let granted = await Capabilities.granted(
'xrn:firebolt:capability:localization:postal-code',
)
console.log(granted)
Value of granted
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.granted",
"params": {
"capability": "xrn:firebolt:capability:localization:postal-code"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": false
}
The user has not yet specified whether they grant the app access to their postal code.
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let granted = await Capabilities.granted(
'xrn:firebolt:capability:localization:postal-code',
)
console.log(granted)
Value of granted
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.granted",
"params": {
"capability": "xrn:firebolt:capability:localization:postal-code"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": null
}
info
Returns an array of CapabilityInfo objects for the provided capabilities.
function info(capabilities: Capability[]): Promise<CapabilityInfo[]>
Parameters:
Param | Type | Required | Description |
---|---|---|---|
capabilities |
Capability[] |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Promise resolution:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Default result
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let info = await Capabilities.info([
'xrn:firebolt:capability:device:model',
'xrn:firebolt:capability:input:keyboard',
'xrn:firebolt:capability:protocol:bluetoothle',
'xrn:firebolt:capability:token:device',
'xrn:firebolt:capability:token:platform',
'xrn:firebolt:capability:protocol:moca',
'xrn:firebolt:capability:wifi:scan',
'xrn:firebolt:capability:localization:postal-code',
'xrn:firebolt:capability:localization:locality',
])
console.log(info)
Value of info
:
;[
{
capability: 'xrn:firebolt:capability:device:model',
supported: true,
available: true,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
},
{
capability: 'xrn:firebolt:capability:input:keyboard',
supported: true,
available: true,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
},
{
capability: 'xrn:firebolt:capability:protocol:bluetoothle',
supported: false,
available: false,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
details: ['unsupported'],
},
{
capability: 'xrn:firebolt:capability:token:device',
supported: true,
available: true,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
},
{
capability: 'xrn:firebolt:capability:token:platform',
supported: true,
available: false,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
details: ['unavailable'],
},
{
capability: 'xrn:firebolt:capability:protocol:moca',
supported: true,
available: false,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
details: ['disabled', 'unavailable'],
},
{
capability: 'xrn:firebolt:capability:wifi:scan',
supported: true,
available: true,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
details: ['unpermitted'],
},
{
capability: 'xrn:firebolt:capability:localization:postal-code',
supported: true,
available: true,
use: {
permitted: true,
granted: null,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
details: ['ungranted'],
},
{
capability: 'xrn:firebolt:capability:localization:postal-code',
supported: true,
available: true,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
details: ['ungranted'],
},
{
capability: 'xrn:firebolt:capability:localization:locality',
supported: true,
available: true,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
details: ['grantDenied', 'ungranted'],
},
]
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.info",
"params": {
"capabilities": [
"xrn:firebolt:capability:device:model",
"xrn:firebolt:capability:input:keyboard",
"xrn:firebolt:capability:protocol:bluetoothle",
"xrn:firebolt:capability:token:device",
"xrn:firebolt:capability:token:platform",
"xrn:firebolt:capability:protocol:moca",
"xrn:firebolt:capability:wifi:scan",
"xrn:firebolt:capability:localization:postal-code",
"xrn:firebolt:capability:localization:locality"
]
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"capability": "xrn:firebolt:capability:device:model",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
}
},
{
"capability": "xrn:firebolt:capability:input:keyboard",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
}
},
{
"capability": "xrn:firebolt:capability:protocol:bluetoothle",
"supported": false,
"available": false,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["unsupported"]
},
{
"capability": "xrn:firebolt:capability:token:device",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
}
},
{
"capability": "xrn:firebolt:capability:token:platform",
"supported": true,
"available": false,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["unavailable"]
},
{
"capability": "xrn:firebolt:capability:protocol:moca",
"supported": true,
"available": false,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["disabled", "unavailable"]
},
{
"capability": "xrn:firebolt:capability:wifi:scan",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["unpermitted"]
},
{
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": null
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["ungranted"]
},
{
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["ungranted"]
},
{
"capability": "xrn:firebolt:capability:localization:locality",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["grantDenied", "ungranted"]
}
]
}
listen
To listen to a specific event pass the event name as the first parameter:
listen(event: string, callback: (data: any) => void): Promise<number>
Parameters:
Param | Type | Required | Summary |
---|---|---|---|
event |
string |
Yes | The event to listen for, see Events. |
callback | function |
Yes | A function that will be invoked when the event occurs. |
Promise resolution:
Type | Description |
---|---|
number |
Listener ID to clear the callback method and stop receiving the event, e.g. Capabilities.clear(id) |
Callback parameters:
Param | Type | Required | Summary |
---|---|---|---|
data |
any |
Yes | The event data, which depends on which event is firing, see Events. |
To listen to all events from this module pass only a callback, without specifying an event name:
listen(callback: (event: string, data: any) => void): Promise<number>
Parameters:
Param | Type | Required | Summary |
---|---|---|---|
callback | function |
Yes | A function that will be invoked when the event occurs. The event data depends on which event is firing, see Events. |
Callback parameters:
Param | Type | Required | Summary |
---|---|---|---|
event |
string |
Yes | The event that has occured listen for, see Events. |
data |
any |
Yes | The event data, which depends on which event is firing, see Events. |
Promise resolution:
Type | Description |
---|---|
number |
Listener ID to clear the callback method and stop receiving the event, e.g. Capabilities.clear(id) |
See Listening for events for more information and examples.
once
To listen to a single instance of a specific event pass the event name as the first parameter:
once(event: string, callback: (data: any) => void): Promise<number>
The once
method will only pass the next instance of this event, and then dicard the listener you provided.
Parameters:
Param | Type | Required | Summary |
---|---|---|---|
event |
string |
Yes | The event to listen for, see Events. |
callback | function |
Yes | A function that will be invoked when the event occurs. |
Promise resolution:
Type | Description |
---|---|
number |
Listener ID to clear the callback method and stop receiving the event, e.g. Capabilities.clear(id) |
Callback parameters:
Param | Type | Required | Summary |
---|---|---|---|
data |
any |
Yes | The event data, which depends on which event is firing, see Events. |
To listen to the next instance only of any events from this module pass only a callback, without specifying an event name:
once(callback: (event: string, data: any) => void): Promise<number>
Parameters:
Param | Type | Required | Summary |
---|---|---|---|
callback | function |
Yes | A function that will be invoked when the event occurs. The event data depends on which event is firing, see Events. |
Callback parameters:
Param | Type | Required | Summary |
---|---|---|---|
event |
string |
Yes | The event that has occured listen for, see Events. |
data |
any |
Yes | The event data, which depends on which event is firing, see Events. |
Promise resolution:
Type | Description |
---|---|
number |
Listener ID to clear the callback method and stop receiving the event, e.g. Capabilities.clear(id) |
See Listening for events for more information and examples.
permitted
Returns whether or not the platform operator has granted the app with the provided capability and role.
function permitted(
capability: Capability,
options: CapabilityOption,
): Promise<boolean>
Parameters:
Param | Type | Required | Description |
---|---|---|---|
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
options |
CapabilityOption |
false | Capability options |
Promise resolution:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Platform operator allows the app to use the keyboard
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let permitted = await Capabilities.permitted(
'xrn:firebolt:capability:input:keyboard',
)
console.log(permitted)
Value of permitted
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.permitted",
"params": {
"capability": "xrn:firebolt:capability:input:keyboard"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": true
}
Platform operator does not allow the app to manage the keyboard
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let permitted = await Capabilities.permitted(
'xrn:firebolt:capability:input:keyboard',
{ role: 'manage' },
)
console.log(permitted)
Value of permitted
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.permitted",
"params": {
"capability": "xrn:firebolt:capability:input:keyboard",
"options": {
"role": "manage"
}
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": false
}
Platform operator does not allow the app to perform wifi scans
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let permitted = await Capabilities.permitted(
'xrn:firebolt:capability:wifi:scan',
)
console.log(permitted)
Value of permitted
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.permitted",
"params": {
"capability": "xrn:firebolt:capability:wifi:scan"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": false
}
request
Requests grants for all capability/role combinations in the roles array.
function request(grants: Permission[]): Promise<CapabilityInfo[]>
Parameters:
Param | Type | Required | Description |
---|---|---|---|
grants |
Permission[] |
true |
Promise resolution:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:request |
Examples
Default result
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let request = await Capabilities.request([
{ role: 'use', capability: 'xrn:firebolt:capability:commerce:purchase' },
])
console.log(request)
Value of request
:
;[
{
capability: 'xrn:firebolt:capability:commerce:purchase',
supported: true,
available: true,
use: {
permitted: true,
granted: true,
},
manage: {
permitted: true,
granted: true,
},
provide: {
permitted: true,
granted: true,
},
},
]
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.request",
"params": {
"grants": [
{
"role": "use",
"capability": "xrn:firebolt:capability:commerce:purchase"
}
]
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"capability": "xrn:firebolt:capability:commerce:purchase",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
}
}
]
}
supported
Returns whether the platform supports the passed capability.
function supported(capability: Capability): Promise<boolean>
Parameters:
Param | Type | Required | Description |
---|---|---|---|
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Promise resolution:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Wifi scan supported capability
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let supported = await Capabilities.supported(
'xrn:firebolt:capability:wifi:scan',
)
console.log(supported)
Value of supported
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.supported",
"params": {
"capability": "xrn:firebolt:capability:wifi:scan"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": true
}
BLE protocol unsupported capability
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
let supported = await Capabilities.supported(
'xrn:firebolt:capability:protocol:bluetoothle',
)
console.log(supported)
Value of supported
:
true
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.supported",
"params": {
"capability": "xrn:firebolt:capability:protocol:bluetoothle"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": false
}
Events
available
function listen('available', capability: Capability, () => void): Promise<number>
See also: listen(), once(), clear().
Parameters:
Param | Type | Required | Description |
---|---|---|---|
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Event value:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Platform token is available
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
Capabilities.listen('available', (value) => {
console.log(value)
})
Value of value
:
{
"capability": "xrn:firebolt:capability:token:platform",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": [
"unpermitted"
]
}
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.onAvailable",
"params": {
"capability": "xrn:firebolt:capability:token:platform",
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"capability": "xrn:firebolt:capability:token:platform",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["unpermitted"]
}
}
granted
function listen('granted', role: Role, capability: Capability, () => void): Promise<number>
See also: listen(), once(), clear().
Parameters:
Param | Type | Required | Description |
---|---|---|---|
role |
Role |
true | values: 'use' \| 'manage' \| 'provide' |
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Event value:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Postal code granted
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
Capabilities.listen('granted', (value) => {
console.log(value)
})
Value of value
:
{
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
}
}
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.onGranted",
"params": {
"role": "use",
"capability": "xrn:firebolt:capability:localization:postal-code",
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
}
}
}
revoked
function listen('revoked', role: Role, capability: Capability, () => void): Promise<number>
See also: listen(), once(), clear().
Parameters:
Param | Type | Required | Description |
---|---|---|---|
role |
Role |
true | values: 'use' \| 'manage' \| 'provide' |
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Event value:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Postal code revoked
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
Capabilities.listen('revoked', (value) => {
console.log(value)
})
Value of value
:
{
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": [
"grantDenied"
]
}
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.onRevoked",
"params": {
"role": "use",
"capability": "xrn:firebolt:capability:localization:postal-code",
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["grantDenied"]
}
}
unavailable
function listen('unavailable', capability: Capability, () => void): Promise<number>
See also: listen(), once(), clear().
Parameters:
Param | Type | Required | Description |
---|---|---|---|
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Event value:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Platform token is unavailable.
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
Capabilities.listen('unavailable', (value) => {
console.log(value)
})
Value of value
:
{
"capability": "xrn:firebolt:capability:token:platform",
"supported": true,
"available": false,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": [
"unavailable"
]
}
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.onUnavailable",
"params": {
"capability": "xrn:firebolt:capability:token:platform",
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"capability": "xrn:firebolt:capability:token:platform",
"supported": true,
"available": false,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["unavailable"]
}
}
Private Events
View
available
function listen('available', capability: Capability, () => void): Promise<number>
See also: listen(), once(), clear().
Parameters:
Param | Type | Required | Description |
---|---|---|---|
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Event value:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Platform token is available
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
Capabilities.listen('available', (value) => {
console.log(value)
})
Value of value
:
{
"capability": "xrn:firebolt:capability:token:platform",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": [
"unpermitted"
]
}
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.onAvailable",
"params": {
"capability": "xrn:firebolt:capability:token:platform",
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"capability": "xrn:firebolt:capability:token:platform",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["unpermitted"]
}
}
granted
function listen('granted', role: Role, capability: Capability, () => void): Promise<number>
See also: listen(), once(), clear().
Parameters:
Param | Type | Required | Description |
---|---|---|---|
role |
Role |
true | values: 'use' \| 'manage' \| 'provide' |
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Event value:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Postal code granted
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
Capabilities.listen('granted', (value) => {
console.log(value)
})
Value of value
:
{
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
}
}
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.onGranted",
"params": {
"role": "use",
"capability": "xrn:firebolt:capability:localization:postal-code",
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
}
}
}
revoked
function listen('revoked', role: Role, capability: Capability, () => void): Promise<number>
See also: listen(), once(), clear().
Parameters:
Param | Type | Required | Description |
---|---|---|---|
role |
Role |
true | values: 'use' \| 'manage' \| 'provide' |
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Event value:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Postal code revoked
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
Capabilities.listen('revoked', (value) => {
console.log(value)
})
Value of value
:
{
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": [
"grantDenied"
]
}
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.onRevoked",
"params": {
"role": "use",
"capability": "xrn:firebolt:capability:localization:postal-code",
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"capability": "xrn:firebolt:capability:localization:postal-code",
"supported": true,
"available": true,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["grantDenied"]
}
}
unavailable
function listen('unavailable', capability: Capability, () => void): Promise<number>
See also: listen(), once(), clear().
Parameters:
Param | Type | Required | Description |
---|---|---|---|
capability |
Capability |
true | pattern: ^xrn:firebolt:capability:([a-z0-9-]+)((:[a-z0-9-]+)?)$ |
Event value:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:capabilities:info |
Examples
Platform token is unavailable.
JavaScript:
import { Capabilities } from '@firebolt-js/sdk'
Capabilities.listen('unavailable', (value) => {
console.log(value)
})
Value of value
:
{
"capability": "xrn:firebolt:capability:token:platform",
"supported": true,
"available": false,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": [
"unavailable"
]
}
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "Capabilities.onUnavailable",
"params": {
"capability": "xrn:firebolt:capability:token:platform",
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"capability": "xrn:firebolt:capability:token:platform",
"supported": true,
"available": false,
"use": {
"permitted": true,
"granted": true
},
"manage": {
"permitted": true,
"granted": true
},
"provide": {
"permitted": true,
"granted": true
},
"details": ["unavailable"]
}
}
Types
CapabilityOption
type CapabilityOption = {
role?: Role // Role provides access level for the app for a given capability.
}
See also: