Skip to main content

Namespace: types

services.Interop.types

Interfaces

Type Aliases

AppDIcon

Ƭ AppDIcon: Object

Type declaration

NameType
sizes?string
srcstring

AppDefinition

Ƭ AppDefinition: Object

Type declaration

NameType
appIdstring
contactEmail?string
description?string
firstRegistrationTimestamp?number
icons?AppDIcon[]
images?object[]
intents?{ appListenerAdded?: boolean ; contexts?: string[] ; displayName: string ; name: string }[]
manifest?FinsembleComponentConfig & { [index: string]: any; }
manifestType?string
namestring
publisher?string
releaseNotes?string
supportEmail?string
tags?string[]
title?string
tooltip?string
type?string
verified?boolean
version?string

AutoAssociateRule

Ƭ AutoAssociateRule: Object

Type declaration

NameType
allChildren?boolean
selectChildren?string[]
usingConnectId?string

ClientAdded

Ƭ ClientAdded: Object

Type declaration

NameType
appIdstring
configAppConfig
connectId?ConnectId
spawnedFromWorkspace?boolean
uuidstring
windowNamestring

ClientDestination

Ƭ ClientDestination: { channel?: string ; routerChannel: string ; type: "client" ; uuid: string } & IntentOrContextType


ClientRemoved

Ƭ ClientRemoved: Object

Type declaration

NameType
uuidstring
windowNamestring

ConnectDestination

Ƭ ConnectDestination: { name: string ; type: "selectConnect" ; uuid: string } & IntentOrContextType

uuid is either the uuid of the broadcaster or the destination depending on whether the triggered rule was broadcast or destination side (if both then there will be two outgoing messages)


CurrentContext

Ƭ CurrentContext: Object

Type declaration

NameType
contextContextAny
meta{ targetSubscriberId?: string ; timestamp: number }
meta.targetSubscriberId?string
meta.timestampnumber

DIAM

Ƭ DIAM: Object

Type declaration

NameType
appId?string
domain?string
executable?string
name?string

Destination

Ƭ Destination: ClientDestination | ConnectDestination


FinsembleComponentConfig

Ƭ FinsembleComponentConfig: Object

See finsemble.scheme.json for full config

Type declaration

NameType
bootParams?Record<string, any>
childWindowOptions?Record<string, any>
component?Record<string, any>
custom?Record<string, any>
foreign?Record<string, any>
interop?{ autoConnect?: boolean ; selectConnect?: SelectConnectRule[] ; useLinker?: boolean }
interop.autoConnect?boolean
interop.selectConnect?SelectConnectRule[]
interop.useLinker?boolean
isAnApp?boolean
signatureKey?Record<string, any>
window?SpawnParams

IntentOrContextType

Ƭ IntentOrContextType: Object

Type declaration

NameType
context?ContextAny
contextType?string
intent?string

InteropBroadcastInternal

Ƭ InteropBroadcastInternal: Object

This type is used internally by the broadcast action. It can handle either an intent or a context.

It supports necessary internal features that are not possible through the desktop agent.

Type declaration

NameType
meta{ autoBroadcast?: boolean ; channel?: string ; noSelectConnect?: boolean ; pendingActionId?: ActionId ; setSenderContext?: boolean ; targetSubscriberId?: string ; to?: string ; uuid: string }
meta.autoBroadcast?boolean
meta.channel?string
meta.noSelectConnect?boolean
meta.pendingActionId?ActionId
meta.setSenderContext?boolean
meta.targetSubscriberId?string
meta.to?string
meta.uuidstring
payload{ context?: ContextAny ; intent?: string }
payload.context?ContextAny
payload.intent?string
type"broadcast" | "raiseIntent"

InteropClient

Ƭ InteropClient: Object

Type declaration

NameType
appIdstring
appNamestring
authenticatedboolean
authenticatedTransportobject
channelsstring[]
config?AppConfig
connectId?ConnectId
heartbeatTimenumber
joinedChannelsstring[]
mostRecentContext?ContextAny
readiness"initializing" | "ready"
routerChannelstring
subscriptions{ channels: { [channel: string]: { contexts: { [contextType: string]: CurrentContext; } ; intents: { [intent: string]: ContextType | true; } }; } ; globals: { contexts: { [contextType: string]: CurrentContext; } ; intents: { [intent: string]: ContextType | true; } } }
subscriptions.channels{ [channel: string]: { contexts: { [contextType: string]: CurrentContext; } ; intents: { [intent: string]: ContextType | true; } }; }
subscriptions.globals{ contexts: { [contextType: string]: CurrentContext; } ; intents: { [intent: string]: ContextType | true; } }
subscriptions.globals.contexts{ [contextType: string]: CurrentContext; }
subscriptions.globals.intents{ [intent: string]: ContextType | true; }
uuidstring
windowNamestring

InteropConfig

Ƭ InteropConfig: Object

Type declaration

NameType
channels?{ private?: Record<string, true> ; system?: Record<string, true> }
channels.private?Record<string, true>
channels.system?Record<string, true>
intents?[{ contexts?: [string] ; displayName: string ; name: string }]
selectConnect?SelectConnectRule[]
useLinker?boolean

InteropMessageWithActonId

Ƭ InteropMessageWithActonId<T>: Object

Type parameters

Name
T

Type declaration

NameType
actionIdActionId
fsaT

InteropRegistrationData

Ƭ InteropRegistrationData: Object

Type declaration

NameType
authenticationTokenAuthenticationToken
windowDescriptorWindowDescriptor

InteropStore

Ƭ InteropStore: Object

Type declaration

NameType
@@cmds?any[]
linker{ activeWindowName?: string ; allChannels: LinkerChannel[] ; clients: { [windowName: string]: LinkerClient; } ; connectIdToJoinedChannel: Record<string, string> }
linker.activeWindowName?string
linker.allChannelsLinkerChannel[]
linker.clients{ [windowName: string]: LinkerClient; }
linker.connectIdToJoinedChannelRecord<string, string>
resolver{ addIntentListenerMaxInitializationTimeout: number ; apps: { definitions: { [appName: string]: AppDefinition; } ; intentResolutionCurrentActionId: any ; intentResolutionInProgress: boolean } ; channelMeta: { [id: string]: { displayMetaData?: DisplayMetadata ; type: string }; } ; clients: { [uuid: string]: InteropClient; } ; config: { registeredUIResolver: string | null ; serverUUID: string } ; contextTypes: { [contextType: string]: { intents: { launchable: AppIntent[] ; live: AppIntent[] } ; launchableHandlers: { [appId: string]: true; } }; } ; intents: { [intent: string]: { info: IntentMetadata ; launchableHandlers: { [key: string]: ContextType[] | null; } }; } ; lastChannelState: { [channel: string]: { context: ContextAny ; senderUuid: string }; } ; lastChannelStateByType: { [channel: string]: ContextMap; } ; loopDetectionMap: { [uuid: string]: LoopDetectionEntry; } ; pendingInteropRegistrationData: WindowDescriptor[] ; pendingOpenActionIds: { [windowName: string]: ActionId; } ; queue: { [uuidOrWindowName: string]: { pendingMessage: InteropBroadcastInternal ; subscriberIsReady?: boolean ; timestamp: number }[]; } ; selectConnectChannels: { [name: string]: { dispatchAction: string ; name: string } | { name: string ; routerChannel: string }; } }
resolver.addIntentListenerMaxInitializationTimeoutnumber
resolver.apps{ definitions: { [appName: string]: AppDefinition; } ; intentResolutionCurrentActionId: any ; intentResolutionInProgress: boolean }
resolver.apps.definitions{ [appName: string]: AppDefinition; }
resolver.apps.intentResolutionCurrentActionIdany
resolver.apps.intentResolutionInProgressboolean
resolver.channelMeta{ [id: string]: { displayMetaData?: DisplayMetadata ; type: string }; }
resolver.clients{ [uuid: string]: InteropClient; }
resolver.config{ registeredUIResolver: string | null ; serverUUID: string }
resolver.config.registeredUIResolverstring | null
resolver.config.serverUUIDstring
resolver.contextTypes{ [contextType: string]: { intents: { launchable: AppIntent[] ; live: AppIntent[] } ; launchableHandlers: { [appId: string]: true; } }; }
resolver.intents{ [intent: string]: { info: IntentMetadata ; launchableHandlers: { [key: string]: ContextType[] | null; } }; }
resolver.lastChannelState{ [channel: string]: { context: ContextAny ; senderUuid: string }; }
resolver.lastChannelStateByType{ [channel: string]: ContextMap; }
resolver.loopDetectionMap{ [uuid: string]: LoopDetectionEntry; }
resolver.pendingInteropRegistrationDataWindowDescriptor[]
resolver.pendingOpenActionIds{ [windowName: string]: ActionId; }
resolver.queue{ [uuidOrWindowName: string]: { pendingMessage: InteropBroadcastInternal ; subscriberIsReady?: boolean ; timestamp: number }[]; }
resolver.selectConnectChannels{ [name: string]: { dispatchAction: string ; name: string } | { name: string ; routerChannel: string }; }
root{ heartbeats: boolean ; isVisible: boolean ; testing: { destinationsBeforeSelectConnect: Destination[] ; dispatchesToSend: PayloadAction<OutgoingDispatchMessage>[] ; error: string ; messagesToSend: OutgoingMessage[] ; selectConnectChannelMessagesToSend: OutgoingSelectConnectChannelMessage[] ; triggeredRules: { destination: Destination ; result: string ; rule: any ; rulePhase: string ; uuid: string }[] ; unitTestingEnabled: boolean } }
root.heartbeatsboolean
root.isVisibleboolean
root.testing{ destinationsBeforeSelectConnect: Destination[] ; dispatchesToSend: PayloadAction<OutgoingDispatchMessage>[] ; error: string ; messagesToSend: OutgoingMessage[] ; selectConnectChannelMessagesToSend: OutgoingSelectConnectChannelMessage[] ; triggeredRules: { destination: Destination ; result: string ; rule: any ; rulePhase: string ; uuid: string }[] ; unitTestingEnabled: boolean }
root.testing.destinationsBeforeSelectConnectDestination[]
root.testing.dispatchesToSendPayloadAction<OutgoingDispatchMessage>[]
root.testing.errorstring
root.testing.messagesToSendOutgoingMessage[]
root.testing.selectConnectChannelMessagesToSendOutgoingSelectConnectChannelMessage[]
root.testing.triggeredRules{ destination: Destination ; result: string ; rule: any ; rulePhase: string ; uuid: string }[]
root.testing.unitTestingEnabledboolean
workspace{ persistedData: { [windowName: string]: Record<string, ContextAny>; } }
workspace.persistedData{ [windowName: string]: Record<string, ContextAny>; }

LinkerChannel

Ƭ LinkerChannel: Object

Type declaration

NameType
colorstring
cssClassNamestring
labelstring
namestring

LinkerClient

Ƭ LinkerClient: Object

Type declaration

NameType
connectId?ConnectId
joinedChannelsstring[]
spawnedFromWorkspace?boolean

LinkerStore

Ƭ LinkerStore: InteropStore["linker"]


LoopDetectionEntry

Ƭ LoopDetectionEntry: Object

Type declaration

NameType
countnumber
loopNotificationIssuedboolean
timerId?ReturnType<typeof setTimeout>
timestampnumber

LoopDetectionMap

Ƭ LoopDetectionMap: InteropStore["resolver"][``"loopDetectionMap"``]


OpenActionResult

Ƭ OpenActionResult: Object

Type declaration

NameType
error?OpenError
result?{}
typeInteropOpenRequest["type"]

OutgoingDispatchMessage

Ƭ OutgoingDispatchMessage: { fsa: InteropBroadcastInternal ; uuid: string } & IntentOrContextType

OutgoingDispatchMessage's trigger redux actions, based on SelectConnect rules resulting from a broadcast.

uuid is either the uuid of the broadcaster or the destination depending on whether the triggered rule was broadcast or destination side (if both then there will be two outgoing messages)


OutgoingMessage

Ƭ OutgoingMessage: Object

OutgoingMessage's are sent back to subscribing FDC3 clients as the result of a broadcast or intent.

Type declaration

NameType
channel?string
context?ContextAny
intent?string
pendingActionId?ActionId
routerChannelstring
targetSubscriberId?string
uuidstring

OutgoingSelectConnectChannelMessage

Ƭ OutgoingSelectConnectChannelMessage: { fsa: InteropBroadcastInternal ; routerChannel: string ; uuid: string } & IntentOrContextType

OutgoingSelectConnectChannelMessage's are sent to registered SelectConnect channels from remote apps based on results from a broadcast that target those channels.

uuid is either the uuid of the broadcaster or the destination depending on whether the triggered rule was broadcast or destination side (if both then there will be two outgoing messages)


RaiseIntentActionResult

Ƭ RaiseIntentActionResult: Object

Type declaration

NameType
error?ResolveError
result?IntentResolution
typeInteropRaiseIntent["type"]

RegisterSelectConnectChannel

Ƭ RegisterSelectConnectChannel: { name: string } & { dispatchAction: string } | { routerChannel: string }


RegistrationResult

Ƭ RegistrationResult: Object

Type declaration

NameType
actionIdActionId
appIdstring
authenticatedboolean
configAppConfig
connectId?ConnectId
newPendingInteropRegistrationData?InteropRegistrationData[]
spawnedFromWorkspace?boolean
uuidstring
windowNamestring

ResolverApps

Ƭ ResolverApps: InteropStore["resolver"][``"apps"``]


ResolverAppsDefinition

Ƭ ResolverAppsDefinition: InteropStore["resolver"][``"apps"``]["definitions"]


ResolverChannelMeta

Ƭ ResolverChannelMeta: InteropStore["resolver"][``"channelMeta"``]


ResolverClients

Ƭ ResolverClients: InteropStore["resolver"][``"clients"``]


ResolverIntent

Ƭ ResolverIntent: InteropStore["resolver"][``"intents"``]["intent"]


ResolverIntentsData

Ƭ ResolverIntentsData: InteropStore["resolver"][``"intents"``]


ResolverStore

Ƭ ResolverStore: InteropStore["resolver"]


RootStore

Ƭ RootStore: InteropStore["root"]


SelectConnectAppList

Ƭ SelectConnectAppList: Object

Type declaration

NameType
namestring

SelectConnectChannel

Ƭ SelectConnectChannel: ResolverStore["selectConnectChannels"][``""``]


SelectConnectRule

Ƭ SelectConnectRule: Object

Type declaration

NameType
authorize?SelectConnectAppList[]
autoAssociate?AutoAssociateRule
cc?any
contextType?string
from?SelectConnectAppList[]
fwd?any
intentType?string
to?SelectConnectAppList[]

WorkspaceStore

Ƭ WorkspaceStore: InteropStore["workspace"]

Variables

CLEANUP_INTERVAL

Const CLEANUP_INTERVAL: 10000


EmptyCurrentContext

Const EmptyCurrentContext: Object

Type declaration

NameType
context{ type: string = "" }
context.typestring
meta{ targetSubscriberId: undefined = undefined; timestamp: number = 0 }
meta.targetSubscriberIdundefined
meta.timestampnumber