SYMBOL INDEX (2127 symbols across 295 files) FILE: eslint.config.js function common (line 125) | function common(prefix = '') { FILE: examples/wasm-plugins/example-anchor-watch-rust/src/lib.rs function sk_debug (line 20) | fn sk_debug(ptr: *const u8, len: usize); function sk_set_status (line 21) | fn sk_set_status(ptr: *const u8, len: usize); function sk_set_error (line 22) | fn sk_set_error(ptr: *const u8, len: usize); function sk_handle_message (line 23) | fn sk_handle_message(ptr: *const u8, len: usize); function sk_register_put_handler (line 24) | fn sk_register_put_handler(context_ptr: *const u8, context_len: usize, p... function debug (line 31) | fn debug(msg: &str) { function set_status (line 35) | fn set_status(msg: &str) { function set_error (line 39) | fn set_error(msg: &str) { function handle_message (line 43) | fn handle_message(msg: &str) { function register_put_handler (line 47) | fn register_put_handler(context: &str, path: &str) -> i32 { type PluginConfig (line 61) | struct PluginConfig { function default_max_radius (line 72) | fn default_max_radius() -> f64 { 50.0 } function default_interval (line 73) | fn default_interval() -> u32 { 10 } type PluginState (line 76) | struct PluginState { function allocate (line 90) | pub extern "C" fn allocate(size: usize) -> *mut u8 { function deallocate (line 99) | pub extern "C" fn deallocate(ptr: *mut u8, size: usize) { function plugin_id (line 149) | pub extern "C" fn plugin_id(out_ptr: *mut u8, out_max_len: usize) -> i32 { function plugin_name (line 155) | pub extern "C" fn plugin_name(out_ptr: *mut u8, out_max_len: usize) -> i... function plugin_schema (line 161) | pub extern "C" fn plugin_schema(out_ptr: *mut u8, out_max_len: usize) ->... function plugin_start (line 167) | pub extern "C" fn plugin_start(config_ptr: *const u8, config_len: usize)... function plugin_stop (line 215) | pub extern "C" fn plugin_stop() -> i32 { function handle_put_vessels_self_navigation_anchor_position (line 235) | pub extern "C" fn handle_put_vessels_self_navigation_anchor_position( function handle_put_vessels_self_navigation_anchor_maxRadius (line 283) | pub extern "C" fn handle_put_vessels_self_navigation_anchor_maxRadius( function handle_put_vessels_self_navigation_anchor_state (line 329) | pub extern "C" fn handle_put_vessels_self_navigation_anchor_state( function http_endpoints (line 355) | pub extern "C" fn http_endpoints(out_ptr: *mut u8, out_max_len: usize) -... function http_get_status (line 366) | pub extern "C" fn http_get_status( function http_get_position (line 392) | pub extern "C" fn http_get_position( function http_post_drop (line 415) | pub extern "C" fn http_post_drop( function emit_anchor_state (line 507) | fn emit_anchor_state(enabled: bool, lat: f64, lon: f64, radius: f64) { function write_string (line 527) | fn write_string(s: &str, ptr: *mut u8, max_len: usize) -> i32 { function haversine_distance (line 540) | fn haversine_distance(lat1: f64, lon1: f64, lat2: f64, lon2: f64) -> f64 { FILE: examples/wasm-plugins/example-hello-assemblyscript/assembly/index.ts class HelloConfig (line 23) | class HelloConfig { class HelloPlugin (line 36) | class HelloPlugin extends Plugin { method logDebug (line 42) | private logDebug(message: string): void { method name (line 52) | name(): string { method schema (line 59) | schema(): string { method start (line 80) | start(configJson: string): i32 { method stop (line 144) | stop(): i32 { method emitWelcomeNotification (line 157) | private emitWelcomeNotification(): void { method emitTestDelta (line 179) | private emitTestDelta(): void { method emitHeartbeat (line 204) | emitHeartbeat(): void { method getUpdateInterval (line 231) | getUpdateInterval(): i32 { function plugin_name (line 243) | function plugin_name(): string { function plugin_schema (line 247) | function plugin_schema(): string { function plugin_start (line 251) | function plugin_start(configPtr: usize, configLen: usize): i32 { function plugin_stop (line 263) | function plugin_stop(): i32 { function poll (line 271) | function poll(): i32 { function http_endpoints (line 288) | function http_endpoints(): string { function handle_get_info (line 307) | function handle_get_info(requestPtr: usize, requestLen: usize): string { function handle_get_status (line 340) | function handle_get_status( FILE: examples/wasm-plugins/example-routes-waypoints/assembly/index.ts class Waypoint (line 28) | class Waypoint { method toJSON (line 36) | toJSON(): string { class RoutePoint (line 68) | class RoutePoint { class Route (line 77) | class Route { method toJSON (line 84) | toJSON(): string { function findWaypointById (line 142) | function findWaypointById(id: string): Waypoint | null { function findRouteById (line 151) | function findRouteById(id: string): Route | null { function deleteWaypointById (line 160) | function deleteWaypointById(id: string): bool { function deleteRouteById (line 170) | function deleteRouteById(id: string): bool { function extractString (line 180) | function extractString(json: string, key: string): string { function extractNumber (line 192) | function extractNumber(json: string, key: string): f64 { function generateId (line 214) | function generateId(): string { function initializeSampleData (line 222) | function initializeSampleData(): void { class RoutesWaypointsPlugin (line 290) | class RoutesWaypointsPlugin extends Plugin { method name (line 293) | name(): string { method start (line 297) | start(configJson: string): i32 { method stop (line 328) | stop(): i32 { method schema (line 334) | schema(): string { function plugin_name (line 355) | function plugin_name(): string { function plugin_schema (line 359) | function plugin_schema(): string { function plugin_start (line 363) | function plugin_start(configPtr: usize, configLen: usize): i32 { function plugin_stop (line 373) | function plugin_stop(): i32 { function resources_list_resources (line 387) | function resources_list_resources(queryJson: string): string { function resources_get_resource (line 424) | function resources_get_resource(requestJson: string): string { function resources_set_resource (line 457) | function resources_set_resource(requestJson: string): string { function resources_delete_resource (line 565) | function resources_delete_resource(requestJson: string): string { FILE: examples/wasm-plugins/example-weather-plugin/assembly/index.ts class WeatherConfig (line 30) | class WeatherConfig { class WeatherData (line 38) | class WeatherData { method toJSON (line 49) | toJSON(): string { method parse (line 72) | static parse(json: string): WeatherData | null { class WeatherPlugin (line 168) | class WeatherPlugin extends Plugin { method name (line 174) | name(): string { method start (line 178) | start(configJson: string): i32 { method stop (line 302) | stop(): i32 { method schema (line 308) | schema(): string { method emitTestWeatherData (line 340) | private emitTestWeatherData(): void { method fetchWeatherData (line 378) | private fetchWeatherData(): void { function plugin_name (line 466) | function plugin_name(): string { function plugin_schema (line 470) | function plugin_schema(): string { function plugin_start (line 474) | function plugin_start(configPtr: usize, configLen: usize): i32 { function plugin_stop (line 486) | function plugin_stop(): i32 { function resources_list_resources (line 501) | function resources_list_resources(queryJson: string): string { function resources_get_resource (line 522) | function resources_get_resource(requestJson: string): string { FILE: examples/wasm-plugins/example-weather-provider/assembly/index.ts function registerWeatherProvider (line 43) | function registerWeatherProvider(providerName: string): bool { class WeatherData (line 58) | class WeatherData { method toJSON (line 82) | toJSON(): string { class WeatherWarning (line 122) | class WeatherWarning { method toJSON (line 129) | toJSON(): string { class WeatherConfig (line 152) | class WeatherConfig { function extractNumber (line 165) | function extractNumber(json: string, key: string): f64 { function extractString (line 185) | function extractString(json: string, key: string): string { function fetchCurrentWeather (line 199) | function fetchCurrentWeather(lat: f64, lon: f64): WeatherData | null { function fetchForecast (line 243) | function fetchForecast( class WeatherProviderPlugin (line 297) | class WeatherProviderPlugin extends Plugin { method name (line 300) | name(): string { method start (line 304) | start(configJson: string): i32 { method stop (line 394) | stop(): i32 { method schema (line 400) | schema(): string { function plugin_name (line 433) | function plugin_name(): string { function plugin_schema (line 437) | function plugin_schema(): string { function plugin_start (line 441) | function plugin_start(configPtr: usize, configLen: usize): i32 { function plugin_stop (line 451) | function plugin_stop(): i32 { class WeatherRequest (line 461) | class WeatherRequest { method parse (line 467) | static parse(json: string): WeatherRequest { function weather_get_observations (line 497) | function weather_get_observations(requestJson: string): string { function weather_get_forecasts (line 527) | function weather_get_forecasts(requestJson: string): string { function weather_get_warnings (line 564) | function weather_get_warnings(requestJson: string): string { FILE: packages/assemblyscript-plugin-sdk/assembly/api.ts constant SK_VERSION_V1 (line 90) | const SK_VERSION_V1: i32 = 1 constant SK_VERSION_V2 (line 91) | const SK_VERSION_V2: i32 = 2 function emit (line 114) | function emit(delta: Delta, skVersion: i32 = SK_VERSION_V1): void { function setStatus (line 131) | function setStatus(message: string): void { function setError (line 147) | function setError(message: string): void { function debug (line 163) | function debug(message: string): void { function getSelfPath (line 184) | function getSelfPath(path: string): string | null { function getPath (line 222) | function getPath(path: string): string | null { function readConfig (line 252) | function readConfig(): string { function saveConfig (line 282) | function saveConfig(configJson: string): i32 { FILE: packages/assemblyscript-plugin-sdk/assembly/network.ts function hasNetworkCapability (line 48) | function hasNetworkCapability(): boolean { FILE: packages/assemblyscript-plugin-sdk/assembly/plugin.ts class PluginConfig (line 47) | class PluginConfig { FILE: packages/assemblyscript-plugin-sdk/assembly/resources.ts function registerResourceProvider (line 57) | function registerResourceProvider(resourceType: string): bool { function hasResourceProviderCapability (line 78) | function hasResourceProviderCapability(): bool { class ResourceGetRequest (line 89) | class ResourceGetRequest { method parse (line 93) | static parse(jsonStr: string): ResourceGetRequest { class ResourceSetRequest (line 116) | class ResourceSetRequest { method parse (line 120) | static parse(jsonStr: string): ResourceSetRequest { class ResourceDeleteRequest (line 143) | class ResourceDeleteRequest { method parse (line 146) | static parse(jsonStr: string): ResourceDeleteRequest { FILE: packages/assemblyscript-plugin-sdk/assembly/signalk.ts class Position (line 8) | class Position { method constructor (line 12) | constructor(latitude: f64, longitude: f64) { method toJSON (line 17) | toJSON(): string { class PathValue (line 25) | class PathValue { method constructor (line 29) | constructor(path: string, value: string) { method toJSON (line 34) | toJSON(): string { class Update (line 46) | class Update { method constructor (line 49) | constructor(values: PathValue[]) { method toJSON (line 53) | toJSON(): string { class Delta (line 68) | class Delta { method constructor (line 72) | constructor(context: string, updates: Update[]) { method toJSON (line 77) | toJSON(): string { type NotificationState (line 92) | enum NotificationState { type NotificationMethod (line 103) | enum NotificationMethod { class Notification (line 111) | class Notification { method constructor (line 116) | constructor(state: NotificationState, message: string) { method toJSON (line 122) | toJSON(): string { function createSimpleDelta (line 150) | function createSimpleDelta(path: string, value: string): Delta { FILE: packages/assemblyscript-plugin-sdk/build/plugin.d.ts type NotificationState (line 4) | enum NotificationState { type NotificationMethod (line 17) | enum NotificationMethod { class __Internref4 (line 101) | class __Internref4 extends Number { FILE: packages/assemblyscript-plugin-sdk/build/plugin.js function instantiate (line 1) | async function instantiate(module, imports = {}) { FILE: packages/resources-provider-plugin/src/index.ts type ResourceProviderApp (line 13) | interface ResourceProviderApp extends ServerAPI, ResourceProviderRegistr... type ProviderSettings (line 15) | interface ProviderSettings { constant CONFIG_SCHEMA (line 26) | const CONFIG_SCHEMA = { constant CONFIG_UISCHEMA (line 80) | const CONFIG_UISCHEMA = { method registerWithRouter (line 125) | registerWithRouter(router) { FILE: packages/resources-provider-plugin/src/types/store.ts type IResourceStore (line 3) | interface IResourceStore { type StoreRequestParams (line 15) | interface StoreRequestParams { FILE: packages/server-admin-ui-dependencies/index.js method handleFailure (line 3) | handleFailure(result) { FILE: packages/server-admin-ui/src/actions.ts function logoutAction (line 7) | async function logoutAction(): Promise { function restartAction (line 23) | function restartAction(): void { function loginAction (line 34) | async function loginAction( function enableSecurity (line 63) | async function enableSecurity( function disableSecurity (line 91) | async function disableSecurity( function restoreSecurity (line 113) | async function restoreSecurity( function checkSecurityBackup (line 140) | async function checkSecurityBackup(): Promise { function openServerEventsConnection (line 151) | function openServerEventsConnection(isReconnect?: boolean): void { function closeServerEventsConnection (line 155) | function closeServerEventsConnection(skipReconnect = false): void { function getWebSocketService (line 159) | function getWebSocketService() { FILE: packages/server-admin-ui/src/components/Aside/Aside.tsx function Aside (line 1) | function Aside() { FILE: packages/server-admin-ui/src/components/Footer/Footer.tsx function Footer (line 11) | function Footer() { FILE: packages/server-admin-ui/src/components/Header/Header.tsx function Header (line 18) | function Header() { FILE: packages/server-admin-ui/src/components/Sidebar/Sidebar.tsx type BadgeData (line 17) | interface BadgeData { type NavItemData (line 24) | interface NavItemData { type SidebarProps (line 42) | interface SidebarProps { function Sidebar (line 46) | function Sidebar({ location }: SidebarProps) { FILE: packages/server-admin-ui/src/components/SidebarFooter/SidebarFooter.tsx function SidebarFooter (line 1) | function SidebarFooter() { FILE: packages/server-admin-ui/src/components/SidebarForm/SidebarForm.tsx function SidebarForm (line 1) | function SidebarForm() { FILE: packages/server-admin-ui/src/components/SidebarHeader/SidebarHeader.tsx function SidebarHeader (line 1) | function SidebarHeader() { FILE: packages/server-admin-ui/src/components/SidebarMinimizer/SidebarMinimizer.tsx function SidebarMinimizer (line 3) | function SidebarMinimizer() { FILE: packages/server-admin-ui/src/containers/Full/Full.tsx type ErrorBoundaryProps (line 34) | interface ErrorBoundaryProps { type ErrorBoundaryState (line 38) | interface ErrorBoundaryState { class ErrorBoundary (line 44) | class ErrorBoundary extends Component { function fetchAllData (line 28) | async function fetchAllData(): Promise { FILE: packages/server-admin-ui/src/hooks/useWebSocket.ts type WebSocketState (line 8) | interface WebSocketState { function useWebSocket (line 15) | function useWebSocket(): WebSocketState { function useWebSocketStatus (line 30) | function useWebSocketStatus(): WebSocketStatus { function useSkSelf (line 39) | function useSkSelf(): string | null { function useDeltaMessages (line 48) | function useDeltaMessages(handler: DeltaMessageHandler): void { function useWebSocketActions (line 63) | function useWebSocketActions() { function getWebSocketService (line 77) | function getWebSocketService() { FILE: packages/server-admin-ui/src/services/WebSocketService.ts type WebSocketStatus (line 4) | type WebSocketStatus = type DeltaMessageHandler (line 11) | type DeltaMessageHandler = (message: unknown) => void type StatusChangeHandler (line 12) | type StatusChangeHandler = (status: WebSocketStatus) => void type WebSocketServiceState (line 14) | interface WebSocketServiceState { type Listener (line 20) | type Listener = () => void type ZustandStateSetter (line 21) | type ZustandStateSetter = ( class WebSocketService (line 27) | class WebSocketService { method setZustandState (line 43) | setZustandState(setState: ZustandStateSetter): void { method connect (line 47) | connect(isReconnect = false): void { method close (line 93) | close(skipReconnect = false): void { method reconnect (line 104) | reconnect(): void { method getWebSocket (line 109) | getWebSocket(): WebSocket | null { method getSkSelf (line 113) | getSkSelf(): string | null { method getStatus (line 117) | getStatus(): WebSocketStatus { method addDeltaHandler (line 137) | addDeltaHandler(handler: DeltaMessageHandler): () => void { method addStatusHandler (line 144) | addStatusHandler(handler: StatusChangeHandler): () => void { method handleMessage (line 151) | private handleMessage(message: unknown): void { method dispatchDelta (line 191) | private dispatchDelta(message: unknown): void { method handleServerEvent (line 201) | private handleServerEvent(msg: Record): void { method updateState (line 273) | private updateState(updates: Partial): void { method startReconnectTimer (line 306) | private startReconnectTimer(): void { method stopReconnectTimer (line 320) | private stopReconnectTimer(): void { FILE: packages/server-admin-ui/src/store/index.ts type SignalKStore (line 27) | type SignalKStore = AppSlice & function useWsStatus (line 45) | function useWsStatus() { function useWsConnection (line 49) | function useWsConnection() { function useLoginStatus (line 60) | function useLoginStatus() { function useAppStore (line 64) | function useAppStore() { function useServerStats (line 68) | function useServerStats() { function useLogEntries (line 72) | function useLogEntries() { function useClearLogEntries (line 76) | function useClearLogEntries() { function usePathData (line 80) | function usePathData(context: string, path$SourceKey: string) { function useMetaData (line 84) | function useMetaData(context: string, path: string) { function useDataVersion (line 88) | function useDataVersion() { function useSourcePriorities (line 92) | function useSourcePriorities() { function useWebapps (line 96) | function useWebapps() { function useAddons (line 100) | function useAddons() { function usePlugins (line 104) | function usePlugins() { function useAccessRequests (line 108) | function useAccessRequests() { function useDevices (line 112) | function useDevices() { function useVesselInfo (line 116) | function useVesselInfo() { function useServerSpecification (line 120) | function useServerSpecification() { function useRestarting (line 124) | function useRestarting() { function useNodeInfo (line 128) | function useNodeInfo() { function useBackpressureWarning (line 132) | function useBackpressureWarning() { function useActivePreset (line 136) | function useActivePreset() { function useServerDefaultPreset (line 140) | function useServerDefaultPreset() { function usePresets (line 144) | function usePresets() { function usePresetDetails (line 148) | function usePresetDetails() { function useUnitDefinitions (line 152) | function useUnitDefinitions() { function useDefaultCategories (line 156) | function useDefaultCategories() { function useUnitPrefsLoaded (line 160) | function useUnitPrefsLoaded() { function useUnitCategories (line 164) | function useUnitCategories() { FILE: packages/server-admin-ui/src/store/slices/appSlice.ts function nameCollator (line 27) | function nameCollator(left: T, right: T): nu... type AppSliceState (line 37) | interface AppSliceState { type AppSliceActions (line 57) | interface AppSliceActions { type AppSlice (line 88) | type AppSlice = AppSliceState & AppSliceActions FILE: packages/server-admin-ui/src/store/slices/dataSlice.ts type PathData (line 3) | interface PathData { type RendererConfig (line 13) | interface RendererConfig { type MetaData (line 19) | interface MetaData { type DataSliceState (line 26) | interface DataSliceState { type DataSliceActions (line 35) | interface DataSliceActions { type DataSlice (line 53) | type DataSlice = DataSliceState & DataSliceActions FILE: packages/server-admin-ui/src/store/slices/prioritiesSlice.ts function checkTimeouts (line 9) | function checkTimeouts(priorities: SourcePriority[]): boolean { type PrioritiesSliceState (line 31) | interface PrioritiesSliceState { type PrioritiesSliceActions (line 35) | interface PrioritiesSliceActions { type PrioritiesSlice (line 53) | type PrioritiesSlice = PrioritiesSliceState & PrioritiesSliceActions FILE: packages/server-admin-ui/src/store/slices/unitPreferencesSlice.ts type DefaultCategories (line 9) | interface DefaultCategories { type UnitPreferencesSliceState (line 17) | interface UnitPreferencesSliceState { type UnitPreferencesSliceActions (line 28) | interface UnitPreferencesSliceActions { type UnitPreferencesSlice (line 40) | type UnitPreferencesSlice = UnitPreferencesSliceState & constant DEFAULT_PRESETS (line 43) | const DEFAULT_PRESETS: PresetInfo[] = [ function fetchPresetsFromServer (line 49) | async function fetchPresetsFromServer(): Promise { function fetchActivePresetFromServer (line 85) | async function fetchActivePresetFromServer(): Promise { function fetchServerDefaultPresetFromServer (line 113) | async function fetchServerDefaultPresetFromServer(): Promise { FILE: packages/server-admin-ui/src/store/slices/wsSlice.ts type WebSocketStatus (line 3) | type WebSocketStatus = type DeltaMessageHandler (line 10) | type DeltaMessageHandler = (message: unknown) => void type WsSliceState (line 12) | interface WsSliceState { type WsSliceActions (line 18) | interface WsSliceActions { type WsSlice (line 29) | type WsSlice = WsSliceState & WsSliceActions function stopReconnectTimer (line 44) | function stopReconnectTimer(): void { function startReconnectTimer (line 51) | function startReconnectTimer(): void { FILE: packages/server-admin-ui/src/store/types.ts type LogEntry (line 1) | interface LogEntry { type LogState (line 6) | interface LogState { type AppStoreState (line 12) | interface AppStoreState { type AppInfo (line 23) | interface AppInfo { type InstallingApp (line 31) | interface InstallingApp { type LoginStatus (line 40) | interface LoginStatus { type ServerSpecification (line 54) | interface ServerSpecification { type ProviderStatus (line 63) | interface ProviderStatus { type AccessRequest (line 69) | interface AccessRequest { type DeviceInfo (line 75) | interface DeviceInfo { type DiscoveredProvider (line 83) | interface DiscoveredProvider { type RestoreStatus (line 88) | interface RestoreStatus { type VesselInfo (line 94) | interface VesselInfo { type NodeInfo (line 101) | interface NodeInfo { type SourcePriority (line 107) | interface SourcePriority { type PathPriority (line 112) | interface PathPriority { type SaveState (line 117) | interface SaveState { type SourcePrioritiesData (line 124) | interface SourcePrioritiesData { type BackpressureWarning (line 129) | interface BackpressureWarning { type ProviderStatistics (line 135) | interface ProviderStatistics { type ServerStatistics (line 142) | interface ServerStatistics { type Plugin (line 151) | interface Plugin { type Webapp (line 159) | interface Webapp { type Addon (line 165) | interface Addon { type PresetInfo (line 170) | interface PresetInfo { type PresetCategoryConfig (line 177) | interface PresetCategoryConfig { type PresetDetails (line 182) | interface PresetDetails { type UnitConversion (line 188) | interface UnitConversion { type UnitDefinition (line 193) | interface UnitDefinition { type UnitDefinitions (line 197) | type UnitDefinitions = Record type DefaultCategory (line 199) | interface DefaultCategory { type CategoryInfo (line 204) | interface CategoryInfo { FILE: packages/server-admin-ui/src/test/setup.ts method constructor (line 21) | constructor(url: string) { method send (line 25) | send(): void { method close (line 29) | close(): void { method observe (line 54) | observe(): void { method unobserve (line 57) | unobserve(): void { method disconnect (line 60) | disconnect(): void { FILE: packages/server-admin-ui/src/utils/unitConversion.ts function getCompiledFormula (line 5) | function getCompiledFormula(formula: string): EvalFunction { type ConvertedValue (line 14) | interface ConvertedValue { type PresetDetails (line 19) | interface PresetDetails { type UnitConversion (line 31) | interface UnitConversion { type UnitDefinition (line 38) | interface UnitDefinition { type UnitDefinitions (line 42) | type UnitDefinitions = Record function convertValue (line 44) | function convertValue( function convertFromSI (line 92) | function convertFromSI( function convertToSI (line 108) | function convertToSI( type AvailableUnit (line 125) | interface AvailableUnit { function getAvailableUnits (line 130) | function getAvailableUnits( FILE: packages/server-admin-ui/src/views/Configuration/Configuration.tsx type PluginSchema (line 25) | interface PluginSchema { type PluginData (line 30) | interface PluginData { type Plugin (line 38) | interface Plugin { function PluginConfigurationList (line 59) | function PluginConfigurationList() { type PluginConfigCardProps (line 473) | interface PluginConfigCardProps { function PluginConfigCard (line 479) | function PluginConfigCard({ FILE: packages/server-admin-ui/src/views/Configuration/EmbeddedPluginConfigurationForm.tsx type PluginErrorBoundaryProps (line 14) | interface PluginErrorBoundaryProps { type PluginErrorBoundaryState (line 19) | interface PluginErrorBoundaryState { class PluginErrorBoundary (line 24) | class PluginErrorBoundary extends Component< method getDerivedStateFromError (line 30) | static getDerivedStateFromError(error: Error): PluginErrorBoundaryState { method render (line 34) | override render() { type PluginData (line 57) | interface PluginData { type EmbeddedPluginConfigurationFormProps (line 66) | interface EmbeddedPluginConfigurationFormProps { type ConfigPanelProps (line 71) | interface ConfigPanelProps { function EmbeddedPluginConfigurationForm (line 76) | function EmbeddedPluginConfigurationForm({ FILE: packages/server-admin-ui/src/views/Dashboard/Dashboard.tsx type ProviderStatusItem (line 12) | interface ProviderStatusItem { function Dashboard (line 21) | function Dashboard() { function pluginNameLink (line 301) | function pluginNameLink(id: string): ReactNode { function providerIdLink (line 305) | function providerIdLink(id: string): ReactNode { FILE: packages/server-admin-ui/src/views/DataBrowser/CopyToClipboardWithFade.tsx function copyToClipboard (line 3) | function copyToClipboard(text: string): Promise { type CopyToClipboardWithFadeProps (line 29) | interface CopyToClipboardWithFadeProps { function CopyToClipboardWithFade (line 34) | function CopyToClipboardWithFade({ FILE: packages/server-admin-ui/src/views/DataBrowser/DataBrowser.tsx constant TIMESTAMP_FORMAT (line 36) | const TIMESTAMP_FORMAT = 'MM/DD HH:mm:ss' constant TIME_ONLY_FORMAT (line 37) | const TIME_ONLY_FORMAT = 'HH:mm:ss' function matchesSearch (line 47) | function matchesSearch(key: string, search: string): boolean { type DeltaMessage (line 58) | interface DeltaMessage { type SelectOption (line 78) | interface SelectOption { type SourceDevice (line 95) | interface SourceDevice { type Sources (line 104) | interface Sources { FILE: packages/server-admin-ui/src/views/DataBrowser/DataRow.tsx type DataRowProps (line 15) | interface DataRowProps { type ValueRendererProps (line 26) | interface ValueRendererProps { function findCategoryForPath (line 38) | function findCategoryForPath( function DataRow (line 59) | function DataRow({ function ValueRenderer (line 224) | function ValueRenderer({ FILE: packages/server-admin-ui/src/views/DataBrowser/GranularSubscriptionManager.ts constant STATE (line 7) | const STATE = { type SubscriptionState (line 13) | type SubscriptionState = (typeof STATE)[keyof typeof STATE] constant DEBUG (line 16) | const DEBUG = false type SubscriptionMessage (line 20) | interface SubscriptionMessage { type MessageHandler (line 27) | type MessageHandler = (msg: unknown) => void type WebSocketLike (line 29) | interface WebSocketLike { class GranularSubscriptionManager (line 34) | class GranularSubscriptionManager { method setWebSocket (line 47) | setWebSocket(ws: WebSocketLike | null): void { method setMessageHandler (line 51) | setMessageHandler(handler: MessageHandler): void { method startDiscovery (line 59) | startDiscovery(): void { method requestPaths (line 87) | requestPaths(visiblePathKeys: string[], allPathKeys: string[]): void { method _expandWithOverscan (line 129) | private _expandWithOverscan( method _pathsAreSimilar (line 159) | private _pathsAreSimilar( method _executeResubscription (line 179) | private _executeResubscription(newPaths: Set): void { method _extractUniquePaths (line 243) | private _extractUniquePaths(path$SourceKeys: Set): string[] { method handleMessage (line 259) | handleMessage(msg: unknown): void { method unsubscribeAll (line 268) | unsubscribeAll(): void { method cancelPending (line 293) | cancelPending(): void { method getState (line 304) | getState(): { method _send (line 318) | private _send(msg: SubscriptionMessage): void { FILE: packages/server-admin-ui/src/views/DataBrowser/Meta.tsx type DisplayScaleValue (line 34) | interface DisplayScaleValue { type DisplayUnits (line 41) | interface DisplayUnits { type MetaData (line 49) | interface MetaData { type Zone (line 68) | interface Zone { function generateZoneId (line 77) | function generateZoneId(): string { type MetaProps (line 81) | interface MetaProps { type MetaFormRowProps (line 88) | interface MetaFormRowProps { type ValueRenderProps (line 103) | interface ValueRenderProps { constant UNITS (line 110) | const UNITS: Record = { constant METAFIELDS (line 134) | const METAFIELDS = [ constant DISPLAYTYPES (line 152) | const DISPLAYTYPES = ['linear', 'logarithmic', 'squareroot', 'power'] constant STATES (line 154) | const STATES = ['nominal', 'alert', 'warn', 'alarm', 'emergency'] constant STATE_COLORS (line 156) | const STATE_COLORS: Record = { constant DEFAULT_CATEGORIES (line 164) | const DEFAULT_CATEGORIES = [ constant CATEGORY_BADGE_COLORS (line 192) | const CATEGORY_BADGE_COLORS: Record = { type CategorySelectProps (line 205) | interface CategorySelectProps extends ValueRenderProps { constant METAFIELDRENDERERS (line 533) | const METAFIELDRENDERERS: Record< type UnknownMetaFormRowProps (line 954) | interface UnknownMetaFormRowProps { type ZoneProps (line 989) | interface ZoneProps { type ZonesProps (line 1177) | interface ZonesProps { function Zones (line 1188) | function Zones({ FILE: packages/server-admin-ui/src/views/DataBrowser/TimestampCell.tsx type TimestampCellProps (line 1) | interface TimestampCellProps { function TimestampCell (line 11) | function TimestampCell({ timestamp, isPaused, className }: TimestampCell... FILE: packages/server-admin-ui/src/views/DataBrowser/ValueRenderers.tsx type RendererProps (line 13) | interface RendererProps { type HTMLRendererProps (line 21) | interface HTMLRendererProps { type DirectionRendererProps (line 26) | interface DirectionRendererProps { type AttitudeValue (line 31) | interface AttitudeValue { type AttitudeRendererProps (line 36) | interface AttitudeRendererProps { type NotificationValue (line 41) | interface NotificationValue { type NotificationRendererProps (line 47) | interface NotificationRendererProps { type LargeArrayRendererProps (line 51) | interface LargeArrayRendererProps { type MeterRendererProps (line 55) | interface MeterRendererProps { type PositionValue (line 66) | interface PositionValue { type PositionRendererProps (line 71) | interface PositionRendererProps { type Satellite (line 75) | interface Satellite { type SatellitesInViewValue (line 82) | interface SatellitesInViewValue { type SatellitesInViewRendererProps (line 87) | interface SatellitesInViewRendererProps { function radiansToDegrees (line 91) | function radiansToDegrees(radians: number): number { type RendererComponent (line 582) | type RendererComponent = ComponentType function createLazySuspenseWrapper (line 584) | function createLazySuspenseWrapper( constant VALUE_RENDERERS (line 609) | const VALUE_RENDERERS: Record = { FILE: packages/server-admin-ui/src/views/DataBrowser/VirtualizedDataTable.tsx type VisibleItem (line 13) | interface VisibleItem { type VirtualizedDataTableProps (line 18) | interface VirtualizedDataTableProps { function VirtualizedDataTable (line 30) | function VirtualizedDataTable({ FILE: packages/server-admin-ui/src/views/DataBrowser/VirtualizedMetaTable.tsx type MetaRowProps (line 6) | interface MetaRowProps { type VirtualizedMetaTableProps (line 36) | interface VirtualizedMetaTableProps { function VirtualizedMetaTable (line 44) | function VirtualizedMetaTable({ FILE: packages/server-admin-ui/src/views/DataBrowser/pathUtils.ts function getPath$SourceKey (line 4) | function getPath$SourceKey(path: string, source?: string): string { function getPathFromKey (line 8) | function getPathFromKey(path$SourceKey: string): string { FILE: packages/server-admin-ui/src/views/DataBrowser/usePathData.ts constant THROTTLE_MS (line 5) | const THROTTLE_MS = 200 // max 5 UI re-renders per second per path function usePathData (line 7) | function usePathData( function useMetaData (line 71) | function useMetaData( FILE: packages/server-admin-ui/src/views/Playground.tsx constant DELTAS_TAB_ID (line 19) | const DELTAS_TAB_ID = 'deltas' constant PATHS_TAB_ID (line 20) | const PATHS_TAB_ID = 'paths' constant N2KJSON_TAB_ID (line 21) | const N2KJSON_TAB_ID = 'n2kjson' constant PUTRESULTS_TAB_ID (line 22) | const PUTRESULTS_TAB_ID = 'putresults' constant LINT_ERROR_TAB_ID (line 23) | const LINT_ERROR_TAB_ID = 'lintErrors' type PathData (line 25) | interface PathData { type Delta (line 32) | interface Delta { type SendResponse (line 43) | interface SendResponse { function isJson (line 51) | function isJson(input: string): boolean { function N2kJsonPanel (line 60) | function N2kJsonPanel({ n2kData }: { n2kData: unknown[] }) { FILE: packages/server-admin-ui/src/views/ServerConfig/BackupRestore.tsx constant RESTORE_NONE (line 14) | const RESTORE_NONE = 0 constant RESTORE_VALIDATING (line 15) | const RESTORE_VALIDATING = 1 constant RESTORE_CONFIRM (line 16) | const RESTORE_CONFIRM = 2 constant RESTORE_RUNNING (line 17) | const RESTORE_RUNNING = 3 type RestoreStatus (line 19) | interface RestoreStatus { FILE: packages/server-admin-ui/src/views/ServerConfig/BasicProvider.tsx type ProviderOptions (line 15) | interface ProviderOptions { type ProviderValue (line 52) | interface ProviderValue { type DeviceListMap (line 62) | interface DeviceListMap { type OnChangeHandler (line 70) | type OnChangeHandler = ( type OnPropChangeHandler (line 76) | type OnPropChangeHandler = ( type BasicProviderProps (line 82) | interface BasicProviderProps { type TextInputProps (line 88) | interface TextInputProps { type TextAreaInputProps (line 96) | interface TextAreaInputProps { type DeviceInputProps (line 105) | interface DeviceInputProps { type LoggingInputProps (line 110) | interface LoggingInputProps { type ValidateChecksumInputProps (line 115) | interface ValidateChecksumInputProps { type OverrideTimestampsProps (line 120) | interface OverrideTimestampsProps { type TypeComponentProps (line 125) | interface TypeComponentProps { constant TYPE_COMPONENTS (line 132) | const TYPE_COMPONENTS: Record< function BasicProvider (line 143) | function BasicProvider({ function TextInput (line 250) | function TextInput({ name, title, value, helpText, onChange }: TextInput... function TextAreaInput (line 269) | function TextAreaInput({ type TestConnectionResult (line 296) | interface TestConnectionResult { type AccessRequestState (line 305) | interface AccessRequestState { function TokenInput (line 311) | function TokenInput({ function DeviceInput (line 579) | function DeviceInput({ value, onChange }: DeviceInputProps) { function LoggingInput (line 666) | function LoggingInput({ value, onChange }: LoggingInputProps) { function ValidateChecksumInput (line 695) | function ValidateChecksumInput({ function OverrideTimestamps (line 744) | function OverrideTimestamps({ value, onChange }: OverrideTimestampsProps) { function RemoveNullsInput (line 770) | function RemoveNullsInput({ function AppendChecksum (line 802) | function AppendChecksum({ function SentenceEventInput (line 845) | function SentenceEventInput({ function DataTypeInput (line 863) | function DataTypeInput({ function BaudRateInput (line 905) | function BaudRateInput({ function BaudRateInputCanboat (line 923) | function BaudRateInputCanboat({ function StdOutInput (line 944) | function StdOutInput({ function IgnoredSentences (line 978) | function IgnoredSentences({ function PortInput (line 1014) | function PortInput({ function HostInput (line 1032) | function HostInput({ function NoDataReceivedTimeoutInput (line 1050) | function NoDataReceivedTimeoutInput({ function RemoteSelfInput (line 1068) | function RemoteSelfInput({ function Suppress0183Checkbox (line 1086) | function Suppress0183Checkbox({ function UseCanNameInput (line 1123) | function UseCanNameInput({ function CreateDeviceInput (line 1155) | function CreateDeviceInput({ function CamelCaseCompatInput (line 1193) | function CamelCaseCompatInput({ function CollectNetworkStatsInput (line 1227) | function CollectNetworkStatsInput({ function NMEA2000 (line 1259) | function NMEA2000({ value, onChange, hasAnalyzer }: TypeComponentProps) { function NMEA0183 (line 1391) | function NMEA0183({ value, onChange }: TypeComponentProps) { function SignalK (line 1457) | function SignalK({ value, onChange }: TypeComponentProps) { function Seatalk (line 1576) | function Seatalk({ value, onChange }: TypeComponentProps) { function FileStream (line 1640) | function FileStream({ value, onChange, hasAnalyzer }: TypeComponentProps) { FILE: packages/server-admin-ui/src/views/ServerConfig/N2KFilters.tsx type N2KFilter (line 10) | interface N2KFilter { type ProviderOptions (line 15) | interface ProviderOptions { type ProviderValue (line 22) | interface ProviderValue { type N2KFiltersProps (line 27) | interface N2KFiltersProps { function N2KFilters (line 36) | function N2KFilters({ value, onChange }: N2KFiltersProps) { FILE: packages/server-admin-ui/src/views/ServerConfig/PluginConfigurationForm.tsx constant GRID_COLUMNS (line 19) | const GRID_COLUMNS = { constant CSS_CLASSES (line 25) | const CSS_CLASSES = { type ButtonProps (line 47) | interface ButtonProps { type ArrayFieldItemTemplateProps (line 75) | interface ArrayFieldItemTemplateProps { type FieldTemplateProps (line 170) | interface FieldTemplateProps { type ObjectFieldTemplateProps (line 222) | interface ObjectFieldTemplateProps { type ArrayFieldTemplateProps (line 251) | interface ArrayFieldTemplateProps { type PluginData (line 409) | interface PluginData { type PluginSchema (line 417) | interface PluginSchema { type Plugin (line 422) | interface Plugin { type PluginConfigurationFormProps (line 429) | interface PluginConfigurationFormProps { function PluginConfigurationForm (line 434) | function PluginConfigurationForm({ FILE: packages/server-admin-ui/src/views/ServerConfig/ProvidersConfiguration.tsx type Provider (line 17) | interface Provider { type ProvidersData (line 46) | interface ProvidersData { type ApplicableStatusProps (line 408) | interface ApplicableStatusProps { type ProviderTypeProps (line 418) | interface ProviderTypeProps { FILE: packages/server-admin-ui/src/views/ServerConfig/ServerLog.tsx type LogEntry (line 21) | interface LogEntry { type LogState (line 26) | interface LogState { type SelectOption (line 32) | interface SelectOption { function ServerLogs (line 37) | function ServerLogs() { type LogListProps (line 223) | interface LogListProps { function LogList (line 227) | function LogList({ value }: LogListProps) { type LogRowProps (line 261) | interface LogRowProps { function LogRow (line 265) | function LogRow({ log }: LogRowProps) { FILE: packages/server-admin-ui/src/views/ServerConfig/ServerUpdate.tsx type InstallingApp (line 7) | interface InstallingApp { type AppStore (line 13) | interface AppStore { FILE: packages/server-admin-ui/src/views/ServerConfig/Settings.tsx type ServerSettingsData (line 16) | interface ServerSettingsData { FILE: packages/server-admin-ui/src/views/ServerConfig/SourcePriorities.tsx type Priority (line 19) | interface Priority { type PathPriority (line 24) | interface PathPriority { type SelectOption (line 29) | interface SelectOption { function fetchSourceRefs (line 34) | function fetchSourceRefs(path: string, cb: (refs: string[]) => void) { type PrefsEditorProps (line 49) | interface PrefsEditorProps { function fetchAvailablePaths (line 182) | function fetchAvailablePaths(cb: (paths: string[]) => void) { FILE: packages/server-admin-ui/src/views/ServerConfig/UnitPreferencesSettings.tsx type UploadStatus (line 21) | type UploadStatus = 'uploading' | 'success' | 'duplicate' | 'error' | null FILE: packages/server-admin-ui/src/views/ServerConfig/VesselConfiguration.tsx type VesselData (line 11) | interface VesselData { FILE: packages/server-admin-ui/src/views/Webapps/Embedded.tsx type WebappErrorBoundaryState (line 20) | interface WebappErrorBoundaryState { type WebappErrorBoundaryProps (line 25) | interface WebappErrorBoundaryProps { class WebappErrorBoundary (line 30) | class WebappErrorBoundary extends Component< method getDerivedStateFromError (line 36) | static getDerivedStateFromError(error: Error): WebappErrorBoundaryState { method render (line 44) | override render() { type WebSocketParams (line 98) | interface WebSocketParams { type AdminUI (line 104) | interface AdminUI { type EmbeddedComponentProps (line 120) | interface EmbeddedComponentProps { function Embedded (line 125) | function Embedded() { FILE: packages/server-admin-ui/src/views/Webapps/EmbeddedAsyncApi.tsx type AsyncApiSpec (line 3) | interface AsyncApiSpec { type AsyncApiDoc (line 8) | interface AsyncApiDoc { function schemaToString (line 42) | function schemaToString(schema: Record, indent = 0): st... function EmbeddedAsyncApi (line 71) | function EmbeddedAsyncApi() { FILE: packages/server-admin-ui/src/views/Webapps/EmbeddedDocs.tsx function EmbeddedDocs (line 4) | function EmbeddedDocs() { FILE: packages/server-admin-ui/src/views/Webapps/Webapp.tsx type SignalKInfo (line 8) | interface SignalKInfo { type WebAppInfo (line 13) | interface WebAppInfo { type WebappProps (line 20) | interface WebappProps { function urlToWebapp (line 25) | function urlToWebapp(webAppInfo: WebAppInfo): string { function Webapp (line 31) | function Webapp({ webAppInfo, ...attributes }: WebappProps) { FILE: packages/server-admin-ui/src/views/Webapps/Webapps.tsx type WebAppInfo (line 8) | interface WebAppInfo { type AddonModule (line 18) | interface AddonModule { type AddonPanelProps (line 22) | interface AddonPanelProps { function Webapps (line 27) | function Webapps() { FILE: packages/server-admin-ui/src/views/Webapps/dynamicutilities.ts type ShareScopeEntry (line 4) | interface ShareScopeEntry { type ShareScope (line 15) | interface ShareScope { type FederationInstance (line 21) | interface FederationInstance { type Container (line 27) | interface Container { type Window (line 33) | interface Window { constant APP_PANEL (line 592) | const APP_PANEL = './AppPanel' constant ADDON_PANEL (line 593) | const ADDON_PANEL = './AddonPanel' constant PLUGIN_CONFIG_PANEL (line 594) | const PLUGIN_CONFIG_PANEL = './PluginConfigurationPanel' FILE: packages/server-admin-ui/src/views/Webapps/loadingerror.tsx type LoadingErrorProps (line 1) | interface LoadingErrorProps { function LoadingError (line 5) | function LoadingError({ message }: LoadingErrorProps) { FILE: packages/server-admin-ui/src/views/appstore/Apps/Apps.tsx type InstallingApp (line 13) | interface InstallingApp { type AppInfo (line 19) | interface AppInfo { type AppStore (line 33) | interface AppStore { FILE: packages/server-admin-ui/src/views/appstore/Apps/WarningBox.tsx type WarningBoxProps (line 5) | interface WarningBoxProps { function WarningBox (line 9) | function WarningBox({ children }: WarningBoxProps) { FILE: packages/server-admin-ui/src/views/appstore/AppsList.tsx type AppData (line 6) | interface AppData { function AppListItem (line 18) | function AppListItem(app: AppData) { type AppListProps (line 58) | interface AppListProps { function AppList (line 62) | function AppList({ apps: propsApps }: AppListProps) { FILE: packages/server-admin-ui/src/views/appstore/Grid/cell-renderers/ActionCellRenderer.tsx type PluginDataSize (line 19) | interface PluginDataSize { function formatBytes (line 25) | function formatBytes(bytes: number): string { type AppData (line 33) | interface AppData { type ActionCellRendererProps (line 51) | interface ActionCellRendererProps { function ActionCellRenderer (line 55) | function ActionCellRenderer({ FILE: packages/server-admin-ui/src/views/security/AccessRequests.tsx type AccessRequestData (line 23) | interface AccessRequestData { type ProcessingState (line 33) | interface ProcessingState { function AccessRequests (line 38) | function AccessRequests() { FILE: packages/server-admin-ui/src/views/security/Devices.tsx type PermissionType (line 23) | type PermissionType = 'readonly' | 'readwrite' | 'admin' type Device (line 25) | interface Device { function convertPermissions (line 33) | function convertPermissions(type: PermissionType | undefined): string { function isExpired (line 44) | function isExpired(device: Device): boolean { function formatExpiry (line 48) | function formatExpiry(device: Device): string { function Devices (line 70) | function Devices() { FILE: packages/server-admin-ui/src/views/security/EnableSecurity.tsx type EnableSecurityState (line 30) | interface EnableSecurityState { function EnableSecurity (line 34) | function EnableSecurity() { FILE: packages/server-admin-ui/src/views/security/Login.tsx type LoginState (line 39) | interface LoginState { function Login (line 43) | function Login() { FILE: packages/server-admin-ui/src/views/security/OIDCSettings.tsx type TestResult (line 19) | interface TestResult { type SaveResult (line 28) | interface SaveResult { type EnvOverrides (line 33) | interface EnvOverrides { type OIDCConfig (line 37) | interface OIDCConfig { FILE: packages/server-admin-ui/src/views/security/Register.tsx type FormFields (line 13) | interface FormFields { type RegisterState (line 19) | interface RegisterState { function Register (line 24) | function Register() { FILE: packages/server-admin-ui/src/views/security/Settings.tsx type SecurityConfig (line 23) | interface SecurityConfig { function Settings (line 32) | function Settings() { function DisableSecurity (line 273) | function DisableSecurity() { FILE: packages/server-admin-ui/src/views/security/Users.tsx type UserType (line 25) | type UserType = 'readonly' | 'readwrite' | 'admin' type User (line 27) | interface User { function convertType (line 37) | function convertType(type: UserType | undefined): string { function Users (line 48) | function Users() { FILE: packages/server-admin-ui/vite.config.ts function replaceAddonScripts (line 9) | function replaceAddonScripts() { function stripSvgFonts (line 28) | function stripSvgFonts() { FILE: packages/server-api/src/autopilotapi.ts type AutopilotUpdateAttrib (line 7) | type AutopilotUpdateAttrib = constant AUTOPILOTUPDATEATTRIBS (line 19) | const AUTOPILOTUPDATEATTRIBS: AutopilotUpdateAttrib[] = [ type AutopilotAlarm (line 40) | type AutopilotAlarm = constant AUTOPILOTALARMS (line 51) | const AUTOPILOTALARMS: AutopilotAlarm[] = [ type TackGybeDirection (line 71) | type TackGybeDirection = 'port' | 'starboard' type AutopilotApi (line 99) | interface AutopilotApi { type AutopilotProvider (line 127) | interface AutopilotProvider { type AutopilotStateDef (line 439) | interface AutopilotStateDef { type AutopilotActionDef (line 445) | interface AutopilotActionDef { type AutopilotOptions (line 452) | interface AutopilotOptions { type AutopilotInfo (line 459) | interface AutopilotInfo { type AutopilotProviderRegistry (line 470) | interface AutopilotProviderRegistry { FILE: packages/server-api/src/brand.ts type Brand (line 21) | type Brand = Type & { [__brand]: Name } FILE: packages/server-api/src/course.ts type CourseApi (line 7) | interface CourseApi { FILE: packages/server-api/src/coursetypes.ts type HrefDestination (line 5) | interface HrefDestination { type PositionDestination (line 10) | interface PositionDestination { type PointDestination (line 15) | type PointDestination = HrefDestination | PositionDestination type RouteDestination (line 18) | interface RouteDestination { type ActiveRoute (line 26) | interface ActiveRoute { type NextPreviousPoint (line 35) | interface NextPreviousPoint { type CoursePointType (line 42) | type CoursePointType = Brand constant COURSE_POINT_TYPES (line 45) | const COURSE_POINT_TYPES = { type CourseInfo (line 52) | interface CourseInfo { FILE: packages/server-api/src/deltas.ts type WithContext (line 5) | interface WithContext { type NormalizedBaseDelta (line 10) | type NormalizedBaseDelta = { type NormalizedMetaDelta (line 20) | type NormalizedMetaDelta = NormalizedBaseDelta & { type NormalizedValueDelta (line 26) | type NormalizedValueDelta = NormalizedBaseDelta & { type NormalizedDelta (line 32) | type NormalizedDelta = NormalizedValueDelta | NormalizedMetaDelta type SourceRef (line 35) | type SourceRef = Brand type Source (line 38) | type Source = any type Path (line 41) | type Path = Brand type Timestamp (line 43) | type Timestamp = Brand type Context (line 45) | type Context = Brand type NotificationId (line 47) | type NotificationId = Brand type Value (line 50) | type Value = object | number | string | null | Notification | boolean type Delta (line 53) | interface Delta { type ValuesDelta (line 62) | type ValuesDelta = Delta type MetaDelta (line 67) | type MetaDelta = Delta type Update (line 70) | type Update = { function hasValues (line 79) | function hasValues(u: Update): u is Update & { values: PathValue[] } { function hasMeta (line 84) | function hasMeta(u: Update): u is Update & { meta: Meta[] } { type PathValue (line 90) | interface PathValue { type Notification (line 97) | interface Notification { type Meta (line 109) | interface Meta { type MetaValue (line 116) | interface MetaValue { type ALARM_STATE (line 140) | enum ALARM_STATE { type ALARM_METHOD (line 150) | enum ALARM_METHOD { type AlarmStatus (line 156) | interface AlarmStatus { type Zone (line 165) | interface Zone { FILE: packages/server-api/src/features.ts type WithFeatures (line 4) | interface WithFeatures { type FeatureInfo (line 57) | interface FeatureInfo { type SignalKApiId (line 68) | type SignalKApiId = FILE: packages/server-api/src/history.ts type AggregateMethod (line 17) | type AggregateMethod = type ValueList (line 28) | type ValueList = { type DataRow (line 37) | type DataRow = [Timestamp, ...unknown[]] type ValuesResponse (line 39) | interface ValuesResponse { type TimeRangeQueryParams (line 71) | type TimeRangeQueryParams = type ValuesRequestQueryParams (line 103) | type ValuesRequestQueryParams = TimeRangeQueryParams & { type PathsRequestQueryParams (line 108) | type PathsRequestQueryParams = TimeRangeQueryParams type PathsResponse (line 109) | type PathsResponse = Path[] type ContextsRequestQueryParams (line 111) | type ContextsRequestQueryParams = TimeRangeQueryParams type ContextsResponse (line 112) | type ContextsResponse = Context[] type HistoryProviderRegistry (line 115) | type HistoryProviderRegistry = { type HistoryApiRegistry (line 124) | type HistoryApiRegistry = HistoryProviderRegistry type WithHistoryApi (line 126) | type WithHistoryApi = { type HistoryProvider (line 148) | type HistoryProvider = HistoryApi type HistoryApi (line 151) | interface HistoryApi { function isHistoryProvider (line 180) | function isHistoryProvider(obj: unknown): obj is HistoryProvider { type HistoryProviders (line 200) | interface HistoryProviders { type Duration (line 216) | type Duration = Temporal.Duration | number type TimeRangeParams (line 218) | type TimeRangeParams = type PathSpec (line 250) | interface PathSpec { type ValuesRequest (line 256) | type ValuesRequest = TimeRangeParams & { type PathsRequest (line 262) | type PathsRequest = TimeRangeParams type ContextsRequest (line 263) | type ContextsRequest = TimeRangeParams FILE: packages/server-api/src/index.ts type Position (line 23) | interface Position { type RelativePositionOrigin (line 30) | interface RelativePositionOrigin { type SKVersion (line 36) | enum SKVersion { FILE: packages/server-api/src/mmsi/mid.ts type FlagCountry (line 7) | interface FlagCountry { type Mid2FlagCountries (line 18) | type Mid2FlagCountries = { [mid: string]: FlagCountry } constant MID (line 21) | const MID: Mid2FlagCountries = Object.entries({ FILE: packages/server-api/src/mmsi/mmsi.ts type MMSISourceType (line 6) | type MMSISourceType = type MMSIInfo (line 19) | interface MMSIInfo { FILE: packages/server-api/src/notificationsapi.ts type NotificationsApi (line 7) | interface NotificationsApi { type WithNotificationsApi (line 58) | interface WithNotificationsApi { type AlarmOptions (line 65) | interface AlarmOptions { FILE: packages/server-api/src/plugin.ts type PluginConstructor (line 9) | type PluginConstructor = (app: ServerAPI) => Plugin type Plugin (line 55) | interface Plugin { FILE: packages/server-api/src/propertyvalues.ts type PropertyValuesEmitter (line 38) | interface PropertyValuesEmitter { type PropertyValue (line 54) | interface PropertyValue { type PropertyValuesCallback (line 70) | type PropertyValuesCallback = ( type StreamTuple (line 75) | interface StreamTuple { class PropertyValues (line 81) | class PropertyValues { method onPropertyValues (line 89) | onPropertyValues(propName: string, cb: PropertyValuesCallback): () => ... method emitPropertyValue (line 93) | emitPropertyValue(pv: PropertyValue) { method getStreamTuple (line 104) | private getStreamTuple(propName: string): StreamTuple { type Unsubscribe (line 129) | type Unsubscribe = () => void FILE: packages/server-api/src/radarapi.ts type RadarStatus (line 13) | type RadarStatus = 'off' | 'standby' | 'transmit' | 'warming' type RadarControlValue (line 20) | interface RadarControlValue { type RadarControls (line 26) | interface RadarControls { type LegendEntry (line 38) | interface LegendEntry { type SupportedFeature (line 57) | type SupportedFeature = 'arpa' | 'guardZones' | 'trails' | 'dualRange' type RadarCharacteristics (line 64) | interface RadarCharacteristics { type ControlDefinitionV5 (line 90) | interface ControlDefinitionV5 { type ControlConstraint (line 142) | interface ControlConstraint { type CapabilityManifest (line 189) | interface CapabilityManifest { type RadarState (line 249) | interface RadarState { type ArpaTargetStatus (line 279) | type ArpaTargetStatus = 'tracking' | 'lost' | 'acquiring' type ArpaAcquisitionMethod (line 286) | type ArpaAcquisitionMethod = 'manual' | 'auto' type ArpaTargetPosition (line 293) | interface ArpaTargetPosition { type ArpaTargetMotion (line 309) | interface ArpaTargetMotion { type ArpaTargetDanger (line 321) | interface ArpaTargetDanger { type ArpaTarget (line 358) | interface ArpaTarget { type TargetListResponse (line 394) | interface TargetListResponse { type TargetStreamMessage (line 408) | interface TargetStreamMessage { type ArpaSettings (line 422) | interface ArpaSettings { type RadarInfo (line 464) | interface RadarInfo { type RadarProvider (line 529) | interface RadarProvider { type RadarProviderMethods (line 537) | interface RadarProviderMethods { type RadarApi (line 731) | interface RadarApi { type RadarProviderRegistry (line 747) | interface RadarProviderRegistry { type WithRadarApi (line 781) | type WithRadarApi = { type RadarProviders (line 797) | interface RadarProviders { FILE: packages/server-api/src/resourcesapi.ts type SignalKResourceType (line 2) | type SignalKResourceType = constant SIGNALKRESOURCETYPES (line 12) | const SIGNALKRESOURCETYPES: SignalKResourceType[] = [ type ResourceType (line 24) | type ResourceType = SignalKResourceType | string type ResourcesApi (line 27) | interface ResourcesApi { type WithResourcesApi (line 170) | interface WithResourcesApi { type ResourceProvider (line 175) | interface ResourceProvider { type ResourceProviderMethods (line 188) | interface ResourceProviderMethods { type ResourceProviderRegistry (line 391) | interface ResourceProviderRegistry { FILE: packages/server-api/src/resourcetypes.ts type Resource (line 6) | type Resource = T & { type Route (line 12) | interface Route { type Waypoint (line 30) | interface Waypoint { type Note (line 46) | interface Note { type Region (line 57) | interface Region { type Chart (line 64) | interface Chart { type GeoJsonPoint (line 79) | type GeoJsonPoint = [number, number, number?] type GeoJsonLinestring (line 81) | type GeoJsonLinestring = GeoJsonPoint[] type GeoJsonPolygon (line 83) | type GeoJsonPolygon = GeoJsonLinestring[] type GeoJsonMultiPolygon (line 85) | type GeoJsonMultiPolygon = GeoJsonPolygon[] type Polygon (line 88) | interface Polygon { type MultiPolygon (line 99) | interface MultiPolygon { FILE: packages/server-api/src/serverapi.ts type ServerAPI (line 33) | interface ServerAPI type PluginServerApp (line 458) | type PluginServerApp = ServerAPI type DeltaInputHandler (line 461) | type DeltaInputHandler = ( type Ports (line 467) | interface Ports { type SelfIdentity (line 476) | interface SelfIdentity { type Metadata (line 483) | interface Metadata { type ActionHandler (line 496) | type ActionHandler = ( type ActionResult (line 504) | interface ActionResult { FILE: packages/server-api/src/streambundle.ts type StreamBundle (line 5) | interface StreamBundle { FILE: packages/server-api/src/subscriptionmanager.ts type SubscriptionManager (line 5) | interface SubscriptionManager { type SubscribeCallback (line 18) | type SubscribeCallback = (delta: Delta) => void type Unsubscribes (line 21) | type Unsubscribes = Array<() => void> type SubscribeMessage (line 29) | interface SubscribeMessage { type FixedPolicyOptions (line 51) | type FixedPolicyOptions = { type InstantPolicyOptions (line 71) | type InstantPolicyOptions = { type SubscriptionOptions (line 82) | type SubscriptionOptions = ( type UnsubscribeMessage (line 101) | interface UnsubscribeMessage { FILE: packages/server-api/src/typebox/autopilot-schemas.ts type AutopilotInfoType (line 87) | type AutopilotInfoType = Static type AngleInput (line 108) | type AngleInput = Static FILE: packages/server-api/src/typebox/course-schemas.ts type ArrivalCircleType (line 41) | type ArrivalCircleType = Static type PositionType (line 43) | type PositionType = Static type HrefDestinationType (line 70) | type HrefDestinationType = Static type PositionDestinationType (line 79) | type PositionDestinationType = Static type SetDestinationBodyType (line 94) | type SetDestinationBodyType = Static type RouteDestinationType (line 119) | type RouteDestinationType = Static type ArrivalCircleBodyType (line 128) | type ArrivalCircleBodyType = Static type TargetArrivalTimeBodyType (line 143) | type TargetArrivalTimeBodyType = Static< type NextPointBodyType (line 159) | type NextPointBodyType = Static type PointIndexBodyType (line 172) | type PointIndexBodyType = Static type ReverseBodyType (line 187) | type ReverseBodyType = Static type ActiveRouteType (line 212) | type ActiveRouteType = Static type NextPreviousPointType (line 229) | type NextPreviousPointType = Static type CourseInfoType (line 268) | type CourseInfoType = Static type CourseCalculationsType (line 413) | type CourseCalculationsType = Static FILE: packages/server-api/src/typebox/discovery-schemas.ts type DiscoveryData (line 61) | type DiscoveryData = Static type PluginMetaData (line 77) | type PluginMetaData = Static type FeaturesModel (line 96) | type FeaturesModel = Static FILE: packages/server-api/src/typebox/history-schemas.ts type AggregateMethodSchemaType (line 25) | type AggregateMethodSchemaType = Static type ValuesResponseSchemaType (line 74) | type ValuesResponseSchemaType = Static type PathSpecSchemaType (line 91) | type PathSpecSchemaType = Static type HistoryProviderInfoSchemaType (line 101) | type HistoryProviderInfoSchemaType = Static< type HistoryProvidersResponseSchemaType (line 113) | type HistoryProvidersResponseSchemaType = Static< FILE: packages/server-api/src/typebox/notifications-schemas.ts type Alarm (line 47) | type Alarm = Static type NotificationResponse (line 61) | type NotificationResponse = Static FILE: packages/server-api/src/typebox/protocol-schemas.ts type ALARM_STATE (line 26) | enum ALARM_STATE { type ALARM_METHOD (line 40) | enum ALARM_METHOD { type Zone (line 107) | type Zone = Static type AlarmStatus (line 135) | type AlarmStatus = Static type DisplayUnitsMetadata (line 162) | type DisplayUnitsMetadata = Static type EnhancedDisplayUnits (line 199) | type EnhancedDisplayUnits = Static type MetaValue (line 260) | type MetaValue = Static type Meta (line 275) | type Meta = Static type Source (line 356) | type Source = Static type Notification (line 396) | type Notification = Static type PathValue (line 411) | type PathValue = Static FILE: packages/server-api/src/typebox/radar-schemas.ts type RadarStatusSchemaType (line 19) | type RadarStatusSchemaType = Static type RadarControlValueSchemaType (line 36) | type RadarControlValueSchemaType = Static type RadarControlsSchemaType (line 70) | type RadarControlsSchemaType = Static type RadarInfoSchemaType (line 103) | type RadarInfoSchemaType = Static FILE: packages/server-api/src/typebox/resources-schemas.ts type RouteResource (line 110) | type RouteResource = Static type WaypointResource (line 142) | type WaypointResource = Static type RegionResource (line 172) | type RegionResource = Static type NoteResource (line 217) | type NoteResource = Static type ChartResource (line 317) | type ChartResource = Static FILE: packages/server-api/src/typebox/shared-schemas.ts type IsoTimeType (line 31) | type IsoTimeType = Static type Position (line 95) | type Position = Static type RelativePositionOrigin (line 116) | type RelativePositionOrigin = Static type GeoJsonPointGeometry (line 132) | type GeoJsonPointGeometry = Static type GeoJsonLinestringGeometry (line 151) | type GeoJsonLinestringGeometry = Static< type GeoJsonPolygonGeometry (line 174) | type GeoJsonPolygonGeometry = Static type GeoJsonMultiPolygonGeometry (line 197) | type GeoJsonMultiPolygonGeometry = Static< FILE: packages/server-api/src/typebox/weather-schemas.ts type WeatherDataModel (line 286) | type WeatherDataModel = Static type WeatherWarningModel (line 316) | type WeatherWarningModel = Static FILE: packages/server-api/src/weatherapi.guard.ts function isWeatherProvider (line 7) | function isWeatherProvider(obj: unknown): obj is WeatherProvider { FILE: packages/server-api/src/weatherapi.ts type WeatherApi (line 4) | interface WeatherApi { type WeatherProviderRegistry (line 112) | interface WeatherProviderRegistry { type WeatherProviders (line 132) | interface WeatherProviders { type WeatherProvider (line 164) | interface WeatherProvider { type WeatherProviderMethods (line 170) | interface WeatherProviderMethods { type WeatherWarning (line 279) | interface WeatherWarning { type WeatherReqParams (line 295) | interface WeatherReqParams { type WeatherForecastType (line 304) | type WeatherForecastType = 'daily' | 'point' type WeatherDataType (line 308) | type WeatherDataType = WeatherForecastType | 'observation' type WeatherData (line 314) | interface WeatherData { type TendencyKind (line 363) | type TendencyKind = type PrecipitationKind (line 372) | type PrecipitationKind = FILE: packages/streams/src/autodetect.test.ts function createAutodetectApp (line 6) | function createAutodetectApp() { constant SK_DELTA (line 20) | const SK_DELTA = JSON.stringify({ constant MUX_DELTA (line 30) | const MUX_DELTA = `${Date.now()};I;${SK_DELTA}` FILE: packages/streams/src/autodetect.ts type AutodetectOptions (line 46) | interface AutodetectOptions { type TimestampedMessage (line 63) | interface TimestampedMessage { type DeltaMessage (line 70) | interface DeltaMessage { class ToTimestamped (line 75) | class ToTimestamped extends Transform { method constructor (line 80) | constructor(deMultiplexer: DeMultiplexer, options: AutodetectOptions) { method _transform (line 86) | _transform( method handleMixed (line 114) | private handleMixed( method handleMultiplexed (line 139) | private handleMultiplexed( class Splitter (line 155) | class Splitter extends Transform { method constructor (line 161) | constructor(deMultiplexer: DeMultiplexer, options: AutodetectOptions) { method _transform (line 181) | _transform( method pipe (line 229) | pipe(target: T): T { class DeMultiplexer (line 236) | class DeMultiplexer extends Writable { method constructor (line 241) | constructor(options: AutodetectOptions) { method pipe (line 255) | pipe(target: T): T { method write (line 259) | write( FILE: packages/streams/src/canboatjs.ts type CanboatJsOptions (line 5) | interface CanboatJsOptions { type FileChunk (line 15) | interface FileChunk { class CanboatJs (line 21) | class CanboatJs extends Transform { method constructor (line 26) | constructor(options: CanboatJsOptions) { method _transform (line 51) | _transform( FILE: packages/streams/src/execute.test.ts function createCollectingWritable (line 6) | function createCollectingWritable(): Writable & { chunks: string[] } { FILE: packages/streams/src/execute.ts type ExecuteOptions (line 7) | interface ExecuteOptions { class Execute (line 25) | class Execute extends Transform { method constructor (line 33) | constructor(options: ExecuteOptions) { method _transform (line 40) | _transform( method pipe (line 49) | pipe(pipeTo: T): T { method end (line 78) | end(): this { method startProcess (line 88) | private startProcess(command: string): void { FILE: packages/streams/src/filestream.ts class EndIgnoringPassThrough (line 4) | class EndIgnoringPassThrough extends PassThrough { method end (line 5) | end(): this { type FileStreamOptions (line 10) | interface FileStreamOptions { class FileStream (line 19) | class FileStream { method constructor (line 26) | constructor(options: FileStreamOptions) { method pipe (line 31) | pipe(pipeTo: T): T { method startStream (line 39) | startStream(): void { method end (line 61) | end(): void { FILE: packages/streams/src/folderstream.ts type FolderStreamOptions (line 4) | interface FolderStreamOptions { class FolderStream (line 8) | class FolderStream extends Transform { method constructor (line 12) | constructor(options: FolderStreamOptions) { method pipe (line 17) | pipe(pipeTo: T): T { FILE: packages/streams/src/from_json.ts class FromJson (line 3) | class FromJson extends Transform { method constructor (line 4) | constructor() { method _transform (line 8) | _transform( FILE: packages/streams/src/gpiod-seatalk.ts type GpiodSeatalkOptions (line 369) | interface GpiodSeatalkOptions { class GpiodSeatalk (line 383) | class GpiodSeatalk extends Execute { method constructor (line 384) | constructor(options: GpiodSeatalkOptions) { FILE: packages/streams/src/gpsd.test.ts method write (line 58) | write(_chunk, _encoding, callback) { method write (line 95) | write(_chunk, _encoding, callback) { FILE: packages/streams/src/gpsd.ts constant GPSD_DEFAULT_PORT (line 6) | const GPSD_DEFAULT_PORT = 2947 constant GPSD_WATCH_COMMAND (line 7) | const GPSD_WATCH_COMMAND = '?WATCH={"class":"WATCH","nmea":true,"json":f... type GpsdOptions (line 9) | interface GpsdOptions { class Gpsd (line 23) | class Gpsd extends Transform { method constructor (line 31) | constructor(options: GpsdOptions) { method pipe (line 42) | pipe(pipeTo: T): T { method end (line 108) | end(): this { method _transform (line 115) | _transform( FILE: packages/streams/src/keys-filter.ts type KeysFilterOptions (line 4) | interface KeysFilterOptions { type DeltaUpdate (line 9) | interface DeltaUpdate { type Delta (line 16) | interface Delta { class KeysFilter (line 21) | class KeysFilter extends Transform { method constructor (line 25) | constructor(options: KeysFilterOptions) { method _transform (line 32) | _transform( FILE: packages/streams/src/liner.ts type LinerOptions (line 3) | interface LinerOptions { class Liner (line 8) | class Liner extends Transform { method constructor (line 12) | constructor(options: LinerOptions = {}) { method _transform (line 17) | _transform( method _flush (line 44) | _flush(done: TransformCallback): void { FILE: packages/streams/src/log.ts type LogOptions (line 5) | interface LogOptions { class Log (line 12) | class Log extends Transform { method constructor (line 15) | constructor(options: LogOptions) { method _transform (line 20) | _transform( FILE: packages/streams/src/logging.test.ts function createLoggingApp (line 8) | function createLoggingApp( FILE: packages/streams/src/logging.ts type LoggingApp (line 22) | interface LoggingApp { type LogMessage (line 40) | interface LogMessage { class FileTimestampStreamWithDelete (line 44) | class FileTimestampStreamWithDelete extends FileTimestampStream { method constructor (line 50) | constructor( method newFilename (line 64) | newFilename(): string { method deleteOldFiles (line 72) | private deleteOldFiles(): void { function getLogger (line 101) | function getLogger( function getFullLogDir (line 153) | function getFullLogDir(app: LoggingApp, logdir?: string): string { function listLogFiles (line 159) | function listLogFiles( FILE: packages/streams/src/mdns-ws.test.ts type DeltaChunk (line 7) | interface DeltaChunk { constant SK_HELLO (line 14) | const SK_HELLO = JSON.stringify({ type SkServer (line 21) | type SkServer = { function createSkWsServer (line 27) | function createSkWsServer(fixedPort = 0): Promise { function createSink (line 55) | function createSink(): { function track (line 76) | function track>(id: T): T { function trackServer (line 81) | function trackServer(s: SkServer): SkServer { function trackMdns (line 86) | function trackMdns(m: MdnsWs): MdnsWs { FILE: packages/streams/src/mdns-ws.ts type MdnsWsOptions (line 24) | interface MdnsWsOptions { type DeltaMessage (line 46) | interface DeltaMessage { class MdnsWs (line 51) | class MdnsWs extends Transform { method constructor (line 64) | constructor(options: MdnsWsOptions) { method verifyRemoteToken (line 135) | private verifyRemoteToken(): Promise { method setProviderStatus (line 160) | private setProviderStatus(message: string, isError: boolean): void { method connectClient (line 168) | private connectClient(client: Client): void { method fetchMetaIfNeeded (line 286) | private fetchMetaIfNeeded( method _transform (line 312) | _transform( method _destroy (line 320) | _destroy( FILE: packages/streams/src/n2k-signalk.test.ts constant HEADING_PGN (line 5) | const HEADING_PGN = { FILE: packages/streams/src/n2k-signalk.ts type N2kFilter (line 22) | interface N2kFilter { type N2kToSignalKOptions (line 27) | interface N2kToSignalKOptions { type N2kMessage (line 44) | interface N2kMessage { type DeltaSource (line 50) | interface DeltaSource { type DeltaValue (line 58) | interface DeltaValue { type DeltaUpdate (line 63) | interface DeltaUpdate { type Delta (line 69) | interface Delta { type SourceMeta (line 74) | interface SourceMeta { type NotificationEntry (line 79) | interface NotificationEntry { class N2kToSignalK (line 84) | class N2kToSignalK extends Transform { method constructor (line 95) | constructor(options: N2kToSignalKOptions) { method isFiltered (line 183) | private isFiltered(source: DeltaSource): N2kFilter | undefined { method _transform (line 200) | _transform( FILE: packages/streams/src/n2kAnalyzer.ts type N2kAnalyzerOptions (line 4) | interface N2kAnalyzerOptions { type AnalyzerOutput (line 12) | interface AnalyzerOutput { class N2kAnalyzer (line 17) | class N2kAnalyzer extends Transform { method constructor (line 22) | constructor(options: N2kAnalyzerOptions) { method _transform (line 64) | _transform( method pipe (line 73) | pipe(pipeTo: T): T { method end (line 78) | end(): this { FILE: packages/streams/src/nmea0183-signalk.test.ts function createNmeaApp (line 7) | function createNmeaApp() { constant RMC_SENTENCE (line 23) | const RMC_SENTENCE = FILE: packages/streams/src/nmea0183-signalk.ts function isN2KOver0183 (line 22) | function isN2KOver0183(msg: string): boolean { type Nmea0183ToSignalKOptions (line 29) | interface Nmea0183ToSignalKOptions { type TimestampedChunk (line 42) | interface TimestampedChunk { type DeltaUpdate (line 47) | interface DeltaUpdate { type Delta (line 52) | interface Delta { type N2kToDelta (line 56) | type N2kToDelta = ( class Nmea0183ToSignalK (line 62) | class Nmea0183ToSignalK extends Transform { method constructor (line 95) | constructor(options: Nmea0183ToSignalKOptions) { method _transform (line 118) | _transform( FILE: packages/streams/src/nullprovider.ts class NullProvider (line 3) | class NullProvider extends Transform { method constructor (line 4) | constructor() { FILE: packages/streams/src/pigpio-seatalk.ts type PigpioSeatalkOptions (line 86) | interface PigpioSeatalkOptions { class PigpioSeatalk (line 100) | class PigpioSeatalk extends Execute { method constructor (line 101) | constructor(options: PigpioSeatalkOptions) { FILE: packages/streams/src/replacer.ts type ReplacerOptions (line 3) | interface ReplacerOptions { class Replacer (line 8) | class Replacer extends Transform { method constructor (line 12) | constructor(options: ReplacerOptions) { method _transform (line 18) | _transform( FILE: packages/streams/src/s3.ts type S3ProviderOptions (line 28) | interface S3ProviderOptions { class S3Provider (line 33) | class S3Provider extends Transform { method constructor (line 37) | constructor({ bucket, prefix }: S3ProviderOptions) { method pipe (line 43) | pipe(pipeTo: T): T { FILE: packages/streams/src/serialport.ts type SerialStreamOptions (line 6) | interface SerialStreamOptions { class SerialStream (line 24) | class SerialStream extends Transform { method constructor (line 34) | constructor(options: SerialStreamOptions) { method start (line 91) | start(): void { method end (line 147) | end(): this { method _transform (line 158) | _transform( method scheduleReconnect (line 167) | private scheduleReconnect(): void { FILE: packages/streams/src/simple.ts type CanboatCtor (line 24) | interface CanboatCtor { function requireN2K (line 30) | function requireN2K(): { function requireN2kToSignalK (line 42) | function requireN2kToSignalK(): new (options: object) => PipeElement { function requireNmea0183ToSignalK (line 47) | function requireNmea0183ToSignalK(): new (options: object) => PipeElement { function requireW2k01 (line 52) | function requireW2k01(): CanboatCtor { type SimpleApp (line 57) | interface SimpleApp { type SubOptions (line 81) | interface SubOptions { type SimpleOptions (line 113) | interface SimpleOptions { type PipeElement (line 126) | interface PipeElement { type PipelineFactory (line 134) | type PipelineFactory = (options: SimpleOptions) => PipeElement[] type PipeStartFactory (line 135) | type PipeStartFactory = ( function nmea2000input (line 268) | function nmea2000input( function nmea0183input (line 394) | function nmea0183input(subOptions: SubOptions): PipeElement[] { function executeInput (line 429) | function executeInput(subOptions: SubOptions): PipeElement[] { function fileInput (line 436) | function fileInput(subOptions: SubOptions): PipeElement[] { function signalKInput (line 443) | function signalKInput(subOptions: SubOptions): PipeElement[] { function seatalkInput (line 467) | function seatalkInput(subOptions: SubOptions): PipeElement[] { function nmea0183inputFilter (line 487) | function nmea0183inputFilter(ignoredSentences: string[]): PipeElement[] { function seatalk1inputFilter (line 505) | function seatalk1inputFilter(ignoredCommands: string[]): PipeElement[] { function getLoggerPipeline (line 526) | function getLoggerPipeline( class Simple (line 542) | class Simple extends Transform { method constructor (line 545) | constructor(options: SimpleOptions) { method _transform (line 678) | _transform( method end (line 687) | end(): this { FILE: packages/streams/src/splitting-liner.ts type SplittingLinerOptions (line 3) | interface SplittingLinerOptions { class SplittingLiner (line 8) | class SplittingLiner extends Transform { method constructor (line 11) | constructor(options: SplittingLinerOptions = {}) { method _transform (line 16) | _transform( FILE: packages/streams/src/tcp.test.ts function createCollectingWritable (line 8) | function createCollectingWritable(): Writable & { chunks: string[] } { FILE: packages/streams/src/tcp.ts constant BUFFER_LIMIT (line 6) | const BUFFER_LIMIT = process.env.BACKPRESSURE_ENTER type TcpOptions (line 10) | interface TcpOptions { class TcpStream (line 28) | class TcpStream extends Transform { method constructor (line 37) | constructor(options: TcpOptions) { method pipe (line 53) | pipe(pipeTo: T): T { method end (line 153) | end(): this { method _transform (line 160) | _transform( FILE: packages/streams/src/tcpserver.ts type TcpServerOptions (line 3) | interface TcpServerOptions { class TcpServer (line 10) | class TcpServer extends Transform { method constructor (line 13) | constructor(options: TcpServerOptions) { method pipe (line 18) | pipe(pipeTo: T): T { method _transform (line 23) | _transform( FILE: packages/streams/src/test-helpers.ts type MockAppOptions (line 4) | interface MockAppOptions { type MockApp (line 13) | interface MockApp extends EventEmitter { function createMockApp (line 38) | function createMockApp(options: MockAppOptions = {}): MockApp { function collectStreamOutput (line 92) | function collectStreamOutput( function noopDebug (line 103) | function noopDebug(): DebugLogger { function createDebugStub (line 109) | function createDebugStub(): CreateDebug { FILE: packages/streams/src/timestamp-throttle.ts type TimestampMessage (line 4) | interface TimestampMessage { type GetMilliseconds (line 8) | type GetMilliseconds = (msg: TimestampMessage) => number type TimestampThrottleOptions (line 10) | interface TimestampThrottleOptions { function defaultGetMilliseconds (line 14) | function defaultGetMilliseconds(msg: TimestampMessage): number { class TimestampThrottle (line 19) | class TimestampThrottle extends Transform { method constructor (line 24) | constructor(options: TimestampThrottleOptions = {}) { method _transform (line 30) | _transform( FILE: packages/streams/src/types.ts type DebugLogger (line 1) | type DebugLogger = ((...args: unknown[]) => void) & { type CreateDebug (line 5) | type CreateDebug = (namespace: string) => DebugLogger type DeltaCache (line 7) | interface DeltaCache { FILE: packages/streams/src/udp.test.ts function createCollectingWritable (line 7) | function createCollectingWritable(): Writable & { chunks: string[] } { FILE: packages/streams/src/udp.ts type UdpOptions (line 5) | interface UdpOptions { class Udp (line 20) | class Udp extends Transform { method constructor (line 26) | constructor(options: UdpOptions) { method pipe (line 33) | pipe(pipeTo: T): T { method _transform (line 75) | _transform( method end (line 83) | end(): this { FILE: packages/streams/src/vendor.d.ts class Throttle (line 3) | class Throttle extends Transform { type ConnectFunction (line 10) | type ConnectFunction = (options: object) => T type Reconnector (line 11) | interface Reconnector extends EventEmitter { type FileTimestampStreamOptions (line 23) | interface FileTimestampStreamOptions { class FileTimestampStream (line 27) | class FileTimestampStream extends Writable { class Parser (line 41) | class Parser { type ClientOptions (line 50) | interface ClientOptions { type Connection (line 61) | interface Connection { class Client (line 66) | class Client extends EventEmitter { type S3ListObjectsParams (line 82) | interface S3ListObjectsParams { type S3Object (line 86) | interface S3Object { type S3ListObjectsResult (line 89) | interface S3ListObjectsResult { type S3GetObjectParams (line 92) | interface S3GetObjectParams { type S3Request (line 96) | interface S3Request { class S3 (line 100) | class S3 { FILE: packages/typedoc-theme/src/SignalKTheme.tsx class SignalKTheme (line 14) | class SignalKTheme extends DefaultTheme { method constructor (line 15) | constructor(renderer: Renderer) { method getRenderContext (line 85) | getRenderContext(pageEvent: PageEvent) { FILE: packages/typedoc-theme/src/SignalKThemeContext.tsx class SignalKThemeContext (line 6) | class SignalKThemeContext extends DefaultThemeRenderContext { FILE: packages/typedoc-theme/src/index.tsx function load (line 7) | function load(app: Application) { FILE: src/@types/primus.d.ts type PrimusOptions (line 4) | interface PrimusOptions { class Primus (line 14) | class Primus { FILE: src/@types/signalk_signalk-schema.d.ts class FullSignalK (line 8) | class FullSignalK extends EventEmitter { FILE: src/BackpressureManager.ts constant DEFAULT_ENTER_THRESHOLD (line 11) | const DEFAULT_ENTER_THRESHOLD = 512 * 1024 constant DEFAULT_EXIT_THRESHOLD (line 12) | const DEFAULT_EXIT_THRESHOLD = 1024 constant DEFAULT_MAX_BUFFER_SIZE (line 13) | const DEFAULT_MAX_BUFFER_SIZE = 4 * 512 * 1024 constant DEFAULT_MAX_BUFFER_CHECK_TIME (line 14) | const DEFAULT_MAX_BUFFER_CHECK_TIME = 30 * 1000 type BackpressureTransport (line 16) | interface BackpressureTransport { type BackpressureOptions (line 23) | interface BackpressureOptions { type BackpressureThresholds (line 31) | interface BackpressureThresholds { function parseBackpressureThresholds (line 38) | function parseBackpressureThresholds(configFallbacks?: { class BackpressureManager (line 59) | class BackpressureManager { method constructor (line 67) | constructor(transport: BackpressureTransport, options: BackpressureOpt... method onDrain (line 72) | onDrain(): void { method send (line 80) | send(delta: Delta): void { method flush (line 100) | flush(): void { method assertBufferSize (line 119) | assertBufferSize(knownBufferLength?: number): void { method clear (line 143) | clear(): void { method isActive (line 150) | get isActive(): boolean { method accumulatorSize (line 154) | get accumulatorSize(): number { FILE: src/LatestValuesAccumulator.ts type AccumulatedItem (line 16) | interface AccumulatedItem { type BackpressureDelta (line 24) | interface BackpressureDelta extends Delta { function accumulateLatestValue (line 38) | function accumulateLatestValue( function buildFlushDeltas (line 66) | function buildFlushDeltas( FILE: src/api/autopilot/index.ts constant AUTOPILOT_API_PATH (line 26) | const AUTOPILOT_API_PATH = `/signalk/v2/api/vessels/self/autopilots` constant DEFAULTIDPATH (line 27) | const DEFAULTIDPATH = '_default' type AutopilotApplication (line 29) | interface AutopilotApplication type AutopilotList (line 32) | interface AutopilotList { type AutopilotApiSettings (line 36) | interface AutopilotApiSettings { class AutopilotApi (line 40) | class AutopilotApi { method constructor (line 51) | constructor(private server: AutopilotApplication) {} method start (line 53) | async start() { method register (line 61) | register(pluginId: string, provider: AutopilotProvider, devices: strin... method unRegister (line 91) | unRegister(pluginId: string) { method apUpdate (line 143) | apUpdate( method updateAllowed (line 195) | private updateAllowed(request: Request): boolean { method initApiEndpoints (line 204) | private initApiEndpoints() { method useProvider (line 715) | private useProvider(req: Request): AutopilotProvider { method getDevices (line 747) | private getDevices(): AutopilotList { method initDefaults (line 761) | private initDefaults(deviceId?: string) { method buildPathValue (line 796) | private buildPathValue(path: Path, value: Value): PathValue { method emitUpdates (line 804) | private emitUpdates(values: PathValue[], source: SourceRef) { FILE: src/api/course/index.ts constant COURSE_API_SCHEMA (line 45) | const COURSE_API_SCHEMA = buildSchemaSync(courseApiDoc) constant SIGNALK_API_PATH (line 47) | const SIGNALK_API_PATH = `/signalk/v2/api` constant COURSE_API_PATH (line 48) | const COURSE_API_PATH = `${SIGNALK_API_PATH}/vessels/self/navigation/cou... constant API_CMD_SRC (line 50) | const API_CMD_SRC: CommandSource = { constant COURSE_API_V2_DELTA_COUNT (line 55) | const COURSE_API_V2_DELTA_COUNT = 13 constant COURSE_API_V1_DELTA_COUNT (line 56) | const COURSE_API_V1_DELTA_COUNT = 8 constant COURSE_API_INITIAL_DELTA_COUNT (line 57) | const COURSE_API_INITIAL_DELTA_COUNT = type CourseApplication (line 60) | interface CourseApplication type CommandSource (line 68) | interface CommandSource { constant NO_COURSE_INFO (line 74) | const NO_COURSE_INFO: CourseInfo = { class CourseApi (line 83) | class CourseApi { method constructor (line 90) | constructor( method start (line 98) | async start() { method processResourceDeltas (line 175) | private async processResourceDeltas(delta: Delta) { method parseSettings (line 250) | private parseSettings() { method saveSettings (line 270) | private saveSettings() { method processV1DestinationDeltas (line 283) | private async processV1DestinationDeltas(delta: Delta) { method isValidPosition (line 318) | private isValidPosition(position: Position): boolean { method parseStreamValue (line 333) | private async parseStreamValue(cmdSource: CommandSource, pos: Position) { method getCourse (line 375) | async getCourse(): Promise { method clearDestination (line 381) | async clearDestination(persistState?: boolean): Promise { method destination (line 393) | async destination( method activeRoute (line 411) | async activeRoute(dest: RouteDestination | null) { method getVesselPosition (line 424) | private getVesselPosition() { method validateCourseInfo (line 428) | private async validateCourseInfo(info: CourseInfo) { method isValidRouteCourse (line 445) | private async isValidRouteCourse(info: CourseInfo): Promise { method isValidWaypointCourse (line 458) | private async isValidWaypointCourse(info: CourseInfo): Promise { method updateAllowed (line 473) | private updateAllowed(request: Request): boolean { method initCourseRoutes (line 482) | private initCourseRoutes() { method calcReversedIndex (line 843) | private calcReversedIndex(activeRoute: ActiveRoute): number { method activateRoute (line 851) | private async activateRoute( method setDestination (line 926) | private async setDestination( method isValidArrivalCircle (line 1008) | private isValidArrivalCircle(value: number | undefined): boolean { method isValidIsoTime (line 1012) | private isValidIsoTime(value: string | undefined): boolean { method parsePointIndex (line 1020) | private parsePointIndex(index: number, rte: any): number { method parseHref (line 1039) | private parseHref( method getRoutePoint (line 1059) | private getRoutePoint(rte: any, index: number, reverse: boolean | null) { method getRoutePoints (line 1075) | private getRoutePoints(rte: any) { method getRoute (line 1087) | private async getRoute(href: string): Promise { method buildDeltaMsg (line 1104) | private buildDeltaMsg(paths: string[]): any { method buildV1DeltaMsg (line 1155) | private buildV1DeltaMsg(paths: string[]): Delta { method emitCourseInfo (line 1246) | private emitCourseInfo(noSave?: boolean, ...paths: string[]) { FILE: src/api/discovery/index.ts constant FEATURES_API_PATH (line 7) | const FEATURES_API_PATH = `/signalk/v2/features` type FeaturesApplication (line 9) | interface FeaturesApplication extends IRouter, WithFeatures {} class FeaturesApi (line 11) | class FeaturesApi { method constructor (line 12) | constructor(private app: FeaturesApplication) {} method start (line 14) | async start() { method initApiRoutes (line 21) | private initApiRoutes() { FILE: src/api/history/index.ts constant HISTORY_API_PATH (line 28) | const HISTORY_API_PATH = `/signalk/v2/api/history` type HistoryApplication (line 30) | interface HistoryApplication extends WithSecurityStrategy, IRouter {} class HistoryApiHttpRegistry (line 32) | class HistoryApiHttpRegistry { method constructor (line 37) | constructor(private app: HistoryApplication & WithHistoryApi) { method registerHistoryApiProvider (line 65) | registerHistoryApiProvider( method unregisterHistoryApiProvider (line 85) | unregisterHistoryApiProvider(pluginId: string): void { method start (line 100) | start() { method defaultProvider (line 224) | private defaultProvider(): HistoryProvider { method useProvider (line 234) | private useProvider(req: Request): HistoryProvider | undefined { function respondWith (line 248) | async function respondWith( FILE: src/api/index.ts type ApiResponse (line 15) | interface ApiResponse { FILE: src/api/notifications/alarm.ts type AlarmProperties (line 18) | interface AlarmProperties { class Alarm (line 24) | class Alarm { method constructor (line 52) | constructor(notificationId?: NotificationId) { method parseDelta (line 66) | private parseDelta(update: Update, context: Context) { method alignAlarmMethod (line 85) | private alignAlarmMethod() { method timeStamp (line 100) | private timeStamp() { method syncFromNotificationUpdate (line 109) | public syncFromNotificationUpdate(update: Update, context: Context) { method isExternal (line 146) | get isExternal(): boolean { method delta (line 154) | get delta(): Delta { method properties (line 177) | get properties(): AlarmProperties { method extKey (line 188) | get extKey(): string { method setPath (line 196) | public setPath(path: Path, id?: string) { method silence (line 206) | public silence() { method acknowledge (line 222) | public acknowledge() { method clear (line 237) | public clear() { FILE: src/api/notifications/index.ts type NotificationApplication (line 26) | interface NotificationApplication constant SIGNALK_API_PATH (line 34) | const SIGNALK_API_PATH = `/signalk/v2/api` constant NOTI_API_PATH (line 35) | const NOTI_API_PATH = `${SIGNALK_API_PATH}/notifications` class NotificationApi (line 39) | class NotificationApi { method constructor (line 44) | constructor(private server: NotificationApplication) { method start (line 49) | async start() { method filterNotifications (line 62) | private filterNotifications(delta: Delta): Delta { method handleNotificationUpdate (line 103) | private handleNotificationUpdate(update: Update, context: Context) { method initNotificationRoutes (line 120) | private initNotificationRoutes() { method listNotifications (line 285) | listNotifications() { method getNotification (line 289) | getNotification(id: string) { method silenceNotification (line 293) | silenceNotification(id: string) { method silenceAll (line 297) | silenceAll() { method acknowledgeNotification (line 301) | acknowledgeNotification(id: string) { method acknowledgeAll (line 305) | acknowledgeAll() { method clearNotification (line 309) | clearNotification(id: string) { method raiseNotification (line 313) | raiseNotification(options: AlarmOptions) { method updateNotification (line 317) | updateNotification(id: string, options: AlarmOptions) { method mob (line 321) | mob(message: string) { FILE: src/api/notifications/notificationManager.ts constant CLEAN_INTERVAL (line 21) | const CLEAN_INTERVAL = 60000 type NotificationKey (line 23) | type NotificationKey = Brand class NotificationManager (line 43) | class NotificationManager { method constructor (line 51) | constructor(private server: NotificationApplication) { method emitNotification (line 61) | private emitNotification(alarm: Alarm) { method list (line 70) | get list(): Record { method get (line 83) | get(id: NotificationId): AlarmProperties | undefined { method raise (line 92) | raise(options: AlarmOptions): NotificationId { method update (line 128) | update(id: NotificationId, options: AlarmOptions) { method mob (line 154) | mob(options?: { message: string }): NotificationId { method silenceAll (line 168) | silenceAll() { method silence (line 183) | silence(id: NotificationId) { method acknowledgeAll (line 195) | acknowledgeAll() { method acknowledge (line 206) | acknowledge(id: NotificationId) { method clear (line 219) | clear(id: NotificationId) { method processNotificationUpdate (line 233) | processNotificationUpdate(u: Update, context: Context) { method clean (line 254) | private clean() { FILE: src/api/openApiSchemas.ts type SchemaObject (line 12) | type SchemaObject = Record constant NON_STANDARD_PROPS (line 15) | const NON_STANDARD_PROPS = new Set(['units', 'additionalItems']) function sanitize (line 17) | function sanitize(obj: any): any { function typeboxToOpenApiSchemas (line 56) | function typeboxToOpenApiSchemas( FILE: src/api/radar/index.ts constant RADAR_API_PATH (line 13) | const RADAR_API_PATH = `/signalk/v2/api/vessels/self/radars` constant TWO_PI (line 14) | const TWO_PI = 2 * Math.PI type RadarApplication (line 16) | interface RadarApplication class RadarApi (line 19) | class RadarApi { method constructor (line 23) | constructor(private app: RadarApplication) {} method start (line 25) | async start() { method register (line 35) | register(pluginId: string, provider: radar.RadarProvider) { method unRegister (line 59) | unRegister(pluginId: string) { method getRadars (line 92) | async getRadars(): Promise { method getRadarInfo (line 113) | async getRadarInfo(radarId: string): Promise { method updateAllowed (line 130) | private updateAllowed(request: Request): boolean { method findProviderForRadar (line 142) | private async findProviderForRadar( method initApiEndpoints (line 158) | private initApiEndpoints() { FILE: src/api/resources/index.ts constant RESOURCES_API_PATH (line 24) | const RESOURCES_API_PATH = `/signalk/v2/api/resources` constant CHART_TILE_REGEX (line 26) | const CHART_TILE_REGEX = /\/charts\/[^?]+\/\d+\/\d+\/\d+$/ type DefaultProviders (line 30) | interface DefaultProviders { type ResourceApplication (line 34) | interface ResourceApplication type ResourceSettings (line 37) | interface ResourceSettings { class ResourcesApi (line 41) | class ResourcesApi { method constructor (line 47) | constructor(app: ResourceApplication) { method start (line 53) | async start() { method parseSettings (line 59) | async parseSettings() { method saveSettings (line 85) | saveSettings() { method register (line 93) | register(pluginId: string, provider: ResourceProvider) { method unRegister (line 121) | unRegister(pluginId: string) { method isResourceProvider (line 154) | isResourceProvider(provider: ResourceProvider) { method getResource (line 167) | async getResource( method listResources (line 181) | async listResources( method setResource (line 197) | async setResource( method deleteResource (line 247) | async deleteResource( method hasRegisteredProvider (line 282) | private hasRegisteredProvider(resType: string): boolean { method getProviderForWrite (line 292) | async getProviderForWrite( method checkForProvider (line 342) | private checkForProvider( method listFromAll (line 364) | private async listFromAll(resType: string, params: { [key: string]: an... method getFromAll (line 391) | private async getFromAll(resType: string, resId: string, property?: st... method getProviderForResourceId (line 420) | private async getProviderForResourceId( method getProvidersForResourceType (line 463) | private getProvidersForResourceType(resType: string): Array { method initResourceRoutes (line 471) | private initResourceRoutes(server: ResourceApplication) { method getResourcePaths (line 962) | private getResourcePaths(): { [key: string]: any } { method buildDeltaMsg (line 976) | private buildDeltaMsg( FILE: src/api/resources/validate.ts class ValidationError (line 8) | class ValidationError extends Error {} constant API_SCHEMA (line 10) | const API_SCHEMA = buildSchemaSync(resourcesApiDoc) FILE: src/api/streams/binary-stream-manager.ts constant MAX_WEBSOCKET_BUFFER_SIZE (line 16) | const MAX_WEBSOCKET_BUFFER_SIZE = 256 * 1024 // 256KB constant MAX_CONSECUTIVE_DROPS (line 21) | const MAX_CONSECUTIVE_DROPS = 30 // ~0.5 seconds at 60Hz constant MAX_BUFFERED_FRAMES (line 26) | const MAX_BUFFERED_FRAMES = 100 type StreamPrincipal (line 31) | interface StreamPrincipal { type StreamClient (line 38) | interface StreamClient { class BinaryStreamManager (line 49) | class BinaryStreamManager { method emitData (line 62) | emitData(streamId: string, data: Buffer): void { method addClient (line 108) | addClient(streamId: string, ws: WebSocket, principal: StreamPrincipal)... method removeClient (line 141) | removeClient(streamId: string, ws: WebSocket): void { method cleanupStream (line 173) | cleanupStream(streamId: string): void { method sendToClient (line 196) | private sendToClient(client: StreamClient, data: Buffer): void { method getBufferSize (line 240) | getBufferSize(streamId: string): number { method getClientCount (line 251) | getClientCount(streamId: string): number { FILE: src/api/streams/index.ts type WebSocketSecurityStrategy (line 24) | interface WebSocketSecurityStrategy extends SecurityStrategy { type WithServer (line 32) | interface WithServer { type StreamApplication (line 39) | interface StreamApplication type AuthenticatedRequest (line 47) | interface AuthenticatedRequest extends IncomingMessage { function initializeBinaryStreams (line 56) | function initializeBinaryStreams(app: StreamApplication): void { FILE: src/api/swagger.ts type OpenApiDescription (line 25) | type OpenApiDescription = Brand type OpenApiRecord (line 27) | interface OpenApiRecord { type ApiRecords (line 33) | interface ApiRecords { function mountSwaggerUi (line 53) | function mountSwaggerUi(app: IRouter & PluginManager, path: string) { function resolveRefs (line 220) | function resolveRefs(obj: any, root: any): void { function asyncApiViewerHtml (line 243) | function asyncApiViewerHtml(specsJson: string): string { FILE: src/api/weather/index.ts constant WEATHER_API_PATH (line 22) | const WEATHER_API_PATH = `/signalk/v2/api/weather` type WeatherApplication (line 24) | interface WeatherApplication class WeatherApi (line 27) | class WeatherApi { method constructor (line 32) | constructor(private app: WeatherApplication) {} method start (line 34) | async start() { method register (line 42) | register(pluginId: string, provider: WeatherProvider) { method unRegister (line 64) | unRegister(pluginId: string) { method getObservations (line 99) | async getObservations(position: Position, options?: WeatherReqParams) { method getForecasts (line 123) | async getForecasts( method getWarnings (line 154) | async getWarnings(position: Position) { method updateAllowed (line 173) | private updateAllowed(request: Request): boolean { method checkLocation (line 183) | private checkLocation(req: Request): number { method parseRequest (line 193) | private parseRequest(req: Request, res: Response, next: NextFunction) { method initApiEndpoints (line 233) | private initApiEndpoints() { method useProvider (line 487) | private useProvider(req: Request): WeatherProviderMethods { method parseQueryOptions (line 519) | private parseQueryOptions(query: any): WeatherReqOptions { method parseValueAsNumber (line 549) | private parseValueAsNumber(value: unknown): number | undefined { type WeatherReqOptions (line 555) | interface WeatherReqOptions { FILE: src/app.ts type ServerApp (line 9) | interface ServerApp extends ServerAPI { type SignalKMessageHub (line 28) | interface SignalKMessageHub extends EventEmitter { type WithConfig (line 37) | interface WithConfig { FILE: src/atomicWrite.ts function atomicWriteFileSync (line 3) | function atomicWriteFileSync(filePath: string, data: string): void { function atomicWriteFile (line 16) | async function atomicWriteFile( FILE: src/baconjs-compat.ts type ResolveFilename (line 27) | type ResolveFilename = ( type Mappable (line 49) | type Mappable = { map: (f: unknown) => unknown } function patchMapShorthand (line 51) | function patchMapShorthand(proto: Mappable) { FILE: src/categories.ts constant NEW_CATEGORY (line 22) | const NEW_CATEGORY = 'New/Updated' constant CAT_DEPRECATED (line 24) | const CAT_DEPRECATED = 'signalk-category-deprecated' function getCategories (line 30) | function getCategories(thePackage: NpmPackageData): string[] { function getAvailableCategories (line 63) | function getAvailableCategories() { constant CAT_KEYWORDS_TO_NAMES (line 69) | const CAT_KEYWORDS_TO_NAMES: { constant DEFAULT_MODULE_CAT_KEYWORDS (line 85) | const DEFAULT_MODULE_CAT_KEYWORDS: { FILE: src/config/config.ts type Config (line 46) | interface Config { type ConfigApp (line 96) | interface ConfigApp extends ServerApp, WithConfig, SignalKMessageHub { function load (line 101) | function load(app: ConfigApp) { function checkPackageVersion (line 259) | function checkPackageVersion(name: string, pkg: any, appPath: string) { function getConfigDirectory (line 281) | function getConfigDirectory({ argv, config, env }: any) { function setConfigDirectory (line 299) | function setConfigDirectory(app: ConfigApp) { function getDefaultsPath (line 325) | function getDefaultsPath(app: ConfigApp) { function getBaseDeltasPath (line 333) | function getBaseDeltasPath(app: ConfigApp) { function readDefaultsFile (line 341) | function readDefaultsFile(app: ConfigApp) { function getFullDefaults (line 347) | function getFullDefaults(app: ConfigApp) { function setBaseDeltas (line 365) | function setBaseDeltas(app: ConfigApp) { function sendBaseDeltas (line 381) | function sendBaseDeltas(app: ConfigApp) { function writeDefaultsFile (line 388) | function writeDefaultsFile(app: ConfigApp, defaults: any, cb: any) { function writeBaseDeltasFileSync (line 394) | function writeBaseDeltasFileSync(app: ConfigApp) { function writeBaseDeltasFile (line 398) | function writeBaseDeltasFile(app: ConfigApp) { function setSelfSettings (line 402) | function setSelfSettings(app: ConfigApp) { function readSettingsFile (line 436) | function readSettingsFile(app: ConfigApp) { function writeSettingsFile (line 464) | function writeSettingsFile(app: ConfigApp, settings: any, cb: any) { function getSettingsFilename (line 474) | function getSettingsFilename(app: ConfigApp) { function isExternalSsl (line 486) | function isExternalSsl(config: Config): boolean { function getExternalHostname (line 496) | function getExternalHostname(config: Config) { function scanDefaults (line 512) | function scanDefaults(deltaEditor: DeltaEditor, vpath: string, item: any) { function convertOldDefaultsToDeltas (line 526) | function convertOldDefaultsToDeltas( FILE: src/constants.ts constant SERVERROUTESPREFIX (line 1) | const SERVERROUTESPREFIX = '/skServer' FILE: src/cors.ts function setupCors (line 6) | function setupCors( FILE: src/debug.ts function createDebug (line 5) | function createDebug(debugName: string) { function listKnownDebugs (line 10) | function listKnownDebugs() { FILE: src/deltaPriority.ts type SourcePriority (line 6) | interface SourcePriority { type SourcePrioritiesData (line 11) | interface SourcePrioritiesData { type PathValue (line 15) | interface PathValue { type TimestampedSource (line 20) | interface TimestampedSource { type SourcePrecedenceData (line 25) | interface SourcePrecedenceData { type PathLatestTimestamps (line 30) | type PathLatestTimestamps = Map type PathPrecedences (line 32) | type PathPrecedences = Map type ToPreferredDelta (line 54) | type ToPreferredDelta = ( FILE: src/deltacache.ts type StringKeyed (line 26) | interface StringKeyed { class DeltaCache (line 30) | class DeltaCache { method constructor (line 42) | constructor(app: SignalKServer, streambundle: StreamBundle) { method getContextAndPathParts (line 62) | getContextAndPathParts(msg: NormalizedDelta): string[] { method onValue (line 82) | onValue(msg: NormalizedDelta) { method setSourceDelta (line 110) | setSourceDelta(key: string, delta: any) { method deleteContext (line 115) | deleteContext(contextKey: string) { method pruneContexts (line 123) | pruneContexts(seconds: number) { method buildFull (line 134) | buildFull(user: string, path: string[]) { method getSources (line 154) | getSources() { method buildFullFromDeltas (line 163) | buildFullFromDeltas( method getCachedDeltas (line 186) | getCachedDeltas(contextFilter: ContextMatcher, user?: string, key?: st... function pathToProcessForFull (line 237) | function pathToProcessForFull(pathArray: any[]) { function pickDeltasFromBranch (line 244) | function pickDeltasFromBranch(acc: any[], obj: any) { function findDeltas (line 256) | function findDeltas(branchOrLeaf: any) { function ensureHasDollarSource (line 260) | function ensureHasDollarSource(normalizedDelta: NormalizedDelta): Source... function getLeafObject (line 269) | function getLeafObject( FILE: src/deltachain.ts class DeltaChain (line 5) | class DeltaChain { method constructor (line 8) | constructor(private dispatchMessage: any) { method process (line 13) | process(msg: Delta) { method doProcess (line 17) | doProcess(index: number, msg: any) { method register (line 25) | register(handler: DeltaInputHandler) { method updateNexts (line 37) | updateNexts() { FILE: src/deltaeditor.ts constant VALUES (line 22) | const VALUES = 'values' constant META (line 23) | const META = 'meta' constant SELF_VESSEL (line 24) | const SELF_VESSEL = 'vessels.self' class DeltaEditor (line 26) | class DeltaEditor { method constructor (line 29) | constructor() { method load (line 33) | load(filename: string) { method saveSync (line 43) | saveSync(filename: string) { method save (line 48) | save(filename: string): Promise { method setValue (line 52) | setValue(context: string, path: string, value: any) { method setSelfValue (line 67) | setSelfValue(path: string, value: any) { method setMeta (line 71) | setMeta(context: string, path: string, value: any) { method getValue (line 75) | getValue(context: string, path: string) { method getSelfValue (line 85) | getSelfValue(path: string) { method getMeta (line 89) | getMeta(context: string, path: string) { method removeValue (line 94) | removeValue(context: string, path: string) { method removeSelfValue (line 115) | removeSelfValue(path: string) { method removeMeta (line 119) | removeMeta(context: string, path: string) { function setDelta (line 130) | function setDelta( function getDelta (line 163) | function getDelta( FILE: src/deltastats.ts constant STATS_UPDATE_INTERVAL_SECONDS (line 21) | const STATS_UPDATE_INTERVAL_SECONDS = 5 constant CONNECTION_WRITE_EVENT_NAME (line 22) | const CONNECTION_WRITE_EVENT_NAME = 'connectionwrite' type ConnectionWriteEvent (line 24) | interface ConnectionWriteEvent { class ProviderStats (line 29) | class ProviderStats { method constructor (line 36) | constructor() { type WithProviderStatistics (line 47) | interface WithProviderStatistics { function startDeltaStatistics (line 55) | function startDeltaStatistics( function incDeltaStatistics (line 93) | function incDeltaStatistics( function updateProviderPeriodStats (line 105) | function updateProviderPeriodStats(app: any) { FILE: src/discovery.js function findUDPProvider (line 38) | function findUDPProvider(port) { function findTCPProvider (line 52) | function findTCPProvider(host, port) { function findWSProvider (line 67) | function findWSProvider(ip, wsType, host, port) { function discoverGoFree (line 84) | function discoverGoFree() { function discoverWLN10 (line 152) | function discoverWLN10() { function discoverSignalkWs (line 197) | function discoverSignalkWs(wsType) { function isLocalIP (line 260) | function isLocalIP(IP) { FILE: src/events.ts type EventsSpark (line 7) | interface EventsSpark { function startEvents (line 13) | function startEvents( function startServerEvents (line 33) | function startServerEvents( type Handler (line 82) | type Handler = (...args: any[]) => void type EventMap (line 83) | interface EventMap { function safeApply (line 87) | function safeApply( function arrayClone (line 102) | function arrayClone(arr: T[]): T[] { type EventName (line 111) | type EventName = Brand type EmitterId (line 112) | type EmitterId = Brand type ListenerId (line 113) | type ListenerId = Brand type EventsActorId (line 114) | type EventsActorId = EmitterId & ListenerId type WrappedEmitter (line 116) | interface WrappedEmitter { type WithWrappedEmitter (line 144) | interface WithWrappedEmitter { function wrapEmitter (line 148) | function wrapEmitter(targetEmitter: EventEmitter): WrappedEmitter { FILE: src/index.ts class Server (line 72) | class Server { method constructor (line 85) | constructor(opts: { securityConfig: SecurityConfig }) { method start (line 392) | start() { method reload (line 527) | reload(mixed: any) { method stop (line 556) | async stop(cb?: () => void) { function identifyPluginFromStack (line 613) | function identifyPluginFromStack( function installProcessErrorHandlers (line 625) | function installProcessErrorHandlers(app: any) { function createServer (line 648) | function createServer(app: any, cb: (err: any, server?: any) => void) { function startRedirectToSsl (line 671) | function startRedirectToSsl( function startMdns (line 688) | function startMdns(app: ServerApp & WithConfig) { function startInterfaces (line 701) | async function startInterfaces( function isValidUpdate (line 794) | function isValidUpdate(update: unknown): update is Partial { function filterStaticSelfData (line 816) | function filterStaticSelfData(delta: any, selfContext: string) { function filterSelfDataKP (line 837) | function filterSelfDataKP(pathValue: any) { FILE: src/interfaces/applicationData.js function withFileLock (line 30) | function withFileLock(filePath, fn) { constant DANGEROUS_PATH_SEGMENTS (line 46) | const DANGEROUS_PATH_SEGMENTS = ['__proto__', 'constructor', 'prototype'] function isPrototypePollutionPath (line 48) | function isPrototypePollutionPath(pathString) { function hasPrototypePollutionPatch (line 53) | function hasPrototypePollutionPatch(patches) { function listVersions (line 118) | function listVersions(req, res, isUser) { function getApplicationData (line 136) | function getApplicationData(req, res, isUser) { function postApplicationData (line 174) | async function postApplicationData(req, res, isUser) { function readApplicationData (line 227) | function readApplicationData(req, appid, version, isUser) { function validateAppId (line 251) | function validateAppId(appid) { function validateVersion (line 259) | function validateVersion(version) { function dirForApplicationData (line 263) | function dirForApplicationData(req, appid, isUser) { function pathForApplicationData (line 273) | function pathForApplicationData(req, appid, version, isUser) { function saveApplicationData (line 287) | async function saveApplicationData(req, appid, version, isUser, data) { FILE: src/interfaces/appstore.js function findPluginsAndWebapps (line 186) | function findPluginsAndWebapps() { function getInstalledPackageNames (line 205) | function getInstalledPackageNames() { function getPlugin (line 218) | function getPlugin(id) { function getWebApp (line 222) | function getWebApp(id) { function emptyAppStoreInfo (line 231) | function emptyAppStoreInfo(storeAvailable = true) { function getAllModuleInfo (line 243) | function getAllModuleInfo(plugins, webapps, serverVersion, distTagsMap =... function getModulesInfo (line 297) | function getModulesInfo(modules, existing, result, distTagsMap) { function addIfNotDuplicate (line 395) | function addIfNotDuplicate(theArray, moduleInfo) { function getNpmUrl (line 401) | function getNpmUrl(moduleInfo) { function sendAppStoreChangedEvent (line 406) | function sendAppStoreChangedEvent() { function installSKModule (line 422) | function installSKModule(module, version) { function removeSKModule (line 441) | function removeSKModule(module, deleteData) { function updateSKModule (line 447) | function updateSKModule(module, version, isRemove, pluginId, deleteData) { function packageNameIs (line 505) | function packageNameIs(name) { FILE: src/interfaces/logfiles.js function mountApi (line 31) | function mountApi(app) { FILE: src/interfaces/mfd_webapp.ts constant PUBLISH_PORT (line 7) | const PUBLISH_PORT = 2053 constant MULTICAST_GROUP_IP (line 8) | const MULTICAST_GROUP_IP = '239.2.1.1' method start (line 18) | start() { FILE: src/interfaces/nmea-tcp.ts constant BUFFER_LIMIT (line 22) | const BUFFER_LIMIT = process.env.BACKPRESSURE_ENTER constant MAX_BUFFER (line 25) | const MAX_BUFFER = process.env.MAXSENDBUFFERSIZE constant MAX_BUFFER_TIME (line 28) | const MAX_BUFFER_TIME = process.env.MAXSENDBUFFERCHECKTIME type SocketWithId (line 32) | interface SocketWithId extends Socket { type NmeaTcpApp (line 37) | interface NmeaTcpApp extends SignalKServer { FILE: src/interfaces/playground.js function detectType (line 66) | function detectType(message) { FILE: src/interfaces/plugins.ts constant DEFAULT_ENABLED_PLUGINS (line 81) | const DEFAULT_ENABLED_PLUGINS = process.env.DEFAULTENABLEDPLUGINS type PluginId (line 85) | type PluginId = Brand type PluginManager (line 86) | interface PluginManager { type PluginInfo (line 92) | interface PluginInfo extends Plugin { function backwardsCompat (line 106) | function backwardsCompat(url: string) { method start (line 113) | async start() { function getPluginResponseInfos (line 139) | function getPluginResponseInfos() { function getPluginsList (line 152) | function getPluginsList(enabled?: boolean) { function getPluginResponseInfo (line 173) | function getPluginResponseInfo(plugin: PluginInfo, providerStatus: any) { function ensureExists (line 246) | function ensureExists(dir: string) { function pathForPluginId (line 252) | function pathForPluginId(id: string) { function dirForPluginId (line 256) | function dirForPluginId(id: string) { function savePluginOptions (line 262) | function savePluginOptions( function getPluginOptions (line 278) | function getPluginOptions(id: string) { function startPlugins (line 309) | async function startPlugins(app: any) { function handleMessageWrapper (line 344) | function handleMessageWrapper(app: any, id: string) { function getSelfPath (line 364) | function getSelfPath(aPath: string) { function getPath (line 368) | function getPath(aPath: string) { function putSelfPath (line 379) | function putSelfPath( function putPath (line 396) | function putPath( function getSerialPorts (line 422) | function getSerialPorts() { function registerPlugin (line 426) | async function registerPlugin( function stopPlugin (line 495) | function stopPlugin(plugin: PluginInfo): Promise { function setPluginStartedMessage (line 513) | function setPluginStartedMessage(plugin: PluginInfo) { function doPluginStart (line 527) | function doPluginStart( function doRegisterPlugin (line 564) | async function doRegisterPlugin( FILE: src/interfaces/providers.ts constant MAX_CANBUS_UNIQUE_NUMBER (line 24) | const MAX_CANBUS_UNIQUE_NUMBER = 0x1fffff type PipeElement (line 26) | interface PipeElement { type PipedProvider (line 36) | interface PipedProvider { type ProviderRequest (line 42) | interface ProviderRequest { type ProviderResponse (line 58) | interface ProviderResponse { type App (line 71) | interface App extends ConfigApp, IRouter { function getProviders (line 75) | function getProviders( function applyProviderSettings (line 109) | function applyProviderSettings( function isValidProviderBody (line 135) | function isValidProviderBody(body: unknown): body is ProviderRequest { function updateProvider (line 218) | function updateProvider( FILE: src/interfaces/rest.js function enhanceMetadataResponse (line 28) | function enhanceMetadataResponse(metadata, signalkPath, username) { constant SKIP_KEYS (line 64) | const SKIP_KEYS = new Set([ function enhanceTreeMetadata (line 74) | function enhanceTreeMetadata(node, pathParts, username) { function collectMeta (line 89) | function collectMeta(node, pathParts, result) { function snapshotHandler (line 119) | function snapshotHandler(snapshotPath, req, res, next) { function sendResult (line 239) | function sendResult(last, aPath) { FILE: src/interfaces/tcp.ts type SocketWithId (line 30) | interface SocketWithId extends Socket { method id (line 63) | get id() { method getBufferLength (line 66) | getBufferLength() { method write (line 69) | write(delta) { method destroy (line 74) | destroy() { function socketMessageHandler (line 151) | function socketMessageHandler( FILE: src/interfaces/unitpreferences-api.js function validateFormula (line 15) | function validateFormula(formula) { constant VALID_PRESET_NAME (line 24) | const VALID_PRESET_NAME = /^[a-zA-Z0-9_-]+$/ function validateDefinitions (line 31) | function validateDefinitions(definitions) { function validatePreset (line 59) | function validatePreset(preset, definitions) { constant PACKAGE_UNITPREFS_DIR (line 144) | const PACKAGE_UNITPREFS_DIR = path.join(__dirname, '../../unitpreferences') function checkPresetExists (line 149) | function checkPresetExists(presetName) { FILE: src/interfaces/webapps.js function mountWebModules (line 59) | function mountWebModules(app, keyword) { function mountApis (line 73) | function mountApis(app) { FILE: src/interfaces/ws.ts type SkPrincipal (line 59) | interface SkPrincipal { type SignalKSparkRequest (line 63) | interface SignalKSparkRequest { type Spark (line 76) | interface Spark { type WsMessage (line 104) | interface WsMessage { type WsRequestReply (line 120) | interface WsRequestReply extends UpdateOptions { function isWsRequestReply (line 125) | function isWsRequestReply(msg: unknown): msg is WsRequestReply { function normalizeStatusCode (line 139) | function normalizeStatusCode(statusCode: unknown): number | null { function normalizeMessage (line 145) | function normalizeMessage(message: unknown): string | null { function normalizePercentComplete (line 149) | function normalizePercentComplete(percentComplete: unknown): number | nu... type PathSources (line 158) | interface PathSources { type SecurityStrategy (line 164) | interface SecurityStrategy { type SubscriptionManager (line 186) | interface SubscriptionManager { type HistoryProvider (line 197) | interface HistoryProvider { type HistoryOptions (line 209) | interface HistoryOptions { type WithContext (line 215) | interface WithContext { type DeltaCache (line 219) | interface DeltaCache { type WsAppConfig (line 226) | interface WsAppConfig { type WsApp (line 238) | interface WsApp { type WsApi (line 264) | interface WsApi { constant DEFAULT_MAX_WS_CONNECTIONS_PER_IP (line 283) | const DEFAULT_MAX_WS_CONNECTIONS_PER_IP = 30 function wsInterface (line 285) | function wsInterface(app: WsApp): WsApi { function createPrimusAuthorize (line 852) | function createPrimusAuthorize( function processUpdates (line 921) | function processUpdates( type MetaHandlerContext (line 992) | interface MetaHandlerContext { function handleValuesMeta (line 998) | function handleValuesMeta( function handleUpdatesMeta (line 1070) | function handleUpdatesMeta( function sendMetaData (line 1080) | function sendMetaData(app: WsApp, spark: Spark, delta: Delta): void { function processSubscribe (line 1090) | function processSubscribe( function processUnsubscribe (line 1122) | function processUnsubscribe( function wrapWithVerifyWS (line 1154) | function wrapWithVerifyWS( function sendHello (line 1187) | function sendHello( function handlePlaybackConnection (line 1198) | function handlePlaybackConnection( function handleRealtimeConnection (line 1234) | function handleRealtimeConnection( function sendLatestDeltas (line 1335) | function sendLatestDeltas( function startServerLog (line 1356) | function startServerLog(app: WsApp, spark: Spark): () => void { FILE: src/logging.js function storeOutput (line 28) | function storeOutput(output, isError) { function enableDebug (line 64) | function enableDebug(enabled) { FILE: src/login-rate-limiter.ts constant LOGIN_RATE_LIMIT_MESSAGE (line 1) | const LOGIN_RATE_LIMIT_MESSAGE = type LoginRateLimiter (line 4) | interface LoginRateLimiter { type Entry (line 9) | interface Entry { function createLoginRateLimiter (line 14) | function createLoginRateLimiter( FILE: src/modules.ts type ModuleData (line 30) | interface ModuleData { type NpmDistTags (line 36) | interface NpmDistTags { type WasmCapabilities (line 41) | interface WasmCapabilities { type NpmPackageData (line 55) | interface NpmPackageData { type NpmSearchResponse (line 69) | interface NpmSearchResponse { type NpmModuleData (line 74) | interface NpmModuleData { type Package (line 78) | interface Package { function findModulesInDir (line 89) | function findModulesInDir(dir: string, keyword: string): ModuleData[] { function getModulePaths (line 134) | function getModulePaths(config: Config) { function modulesWithKeyword (line 150) | function modulesWithKeyword(config: Config, keyword: string) { function installModule (line 161) | function installModule( function removeModule (line 172) | function removeModule( function cleanupAfterRemove (line 188) | function cleanupAfterRemove( function getPluginDataSize (line 250) | async function getPluginDataSize( function restoreModules (line 307) | function restoreModules( function runNpm (line 316) | function runNpm( function isTheServerModule (line 380) | function isTheServerModule(moduleName: string, config: Config) { function findModulesWithKeyword (line 389) | async function findModulesWithKeyword( function searchByKeyword (line 423) | async function searchByKeyword(keyword: string): Promise { function fetchDistTagsForPackages (line 454) | async function fetchDistTagsForPackages( function doFetchDistTags (line 489) | function doFetchDistTags() { function getLatestServerVersion (line 493) | async function getLatestServerVersion( function checkForNewServerVersion (line 517) | function checkForNewServerVersion( function getAuthor (line 538) | function getAuthor(thePackage: Package): string { function getKeywords (line 544) | function getKeywords(thePackage: NpmPackageData): string[] { function importOrRequire (line 550) | async function importOrRequire(moduleDir: string) { FILE: src/oidc/authorization.ts function buildAuthorizationUrl (line 27) | function buildAuthorizationUrl( FILE: src/oidc/config.ts function parseEnvConfig (line 27) | function parseEnvConfig(): PartialOIDCConfig { function mergeConfigs (line 109) | function mergeConfigs( function validateOIDCConfig (line 150) | function validateOIDCConfig( function parseOIDCConfig (line 249) | function parseOIDCConfig(securityConfig: { function isOIDCEnabled (line 264) | function isOIDCEnabled(config: OIDCConfig): boolean { FILE: src/oidc/discovery.ts constant CACHE_TTL_MS (line 19) | const CACHE_TTL_MS = 60 * 60 * 1000 // 1 hour type FetchFn (line 25) | type FetchFn = typeof fetch function setFetchFunction (line 31) | function setFetchFunction(fn: FetchFn): void { function resetFetchFunction (line 38) | function resetFetchFunction(): void { function fetchDiscoveryDocument (line 48) | async function fetchDiscoveryDocument( function getDiscoveryDocument (line 103) | async function getDiscoveryDocument( function clearDiscoveryCache (line 128) | function clearDiscoveryCache(): void { FILE: src/oidc/id-token-validation.ts type JoseModule (line 24) | type JoseModule = typeof import('jose') function getJose (line 27) | async function getJose(): Promise { type JSONWebKeySet (line 37) | interface JSONWebKeySet { type ValidatedIdTokenClaims (line 50) | interface ValidatedIdTokenClaims { type FetchFn (line 65) | type FetchFn = typeof fetch function setFetchFunction (line 71) | function setFetchFunction(fn: FetchFn): void { function resetFetchFunction (line 78) | function resetFetchFunction(): void { type JwksCache (line 83) | interface JwksCache { constant JWKS_CACHE_TTL_MS (line 89) | const JWKS_CACHE_TTL_MS = 60 * 60 * 1000 // 1 hour function clearJwksCache (line 94) | function clearJwksCache(): void { function clearJwksCacheForUri (line 101) | function clearJwksCacheForUri(jwksUri: string): void { function fetchJwks (line 110) | async function fetchJwks( function isSignatureError (line 160) | function isSignatureError(err: unknown): boolean { function validateIdToken (line 199) | async function validateIdToken( FILE: src/oidc/oidc-admin.ts constant SERVERROUTESPREFIX (line 22) | const SERVERROUTESPREFIX = '/skServer' type SecurityConfigForOIDC (line 28) | interface SecurityConfigForOIDC { type OIDCAdminDependencies (line 36) | interface OIDCAdminDependencies { type OIDCAdminResponse (line 54) | interface OIDCAdminResponse { function buildOIDCAdminResponse (line 76) | function buildOIDCAdminResponse( function checkAllowConfigure (line 132) | function checkAllowConfigure( function parseGroupsIfString (line 147) | function parseGroupsIfString(groups: unknown): string[] | undefined { function registerOIDCAdminRoutes (line 164) | function registerOIDCAdminRoutes( FILE: src/oidc/oidc-auth.ts function arraysEqualIgnoringOrder (line 48) | function arraysEqualIgnoringOrder( function validateAndMergeUserinfoClaims (line 73) | function validateAndMergeUserinfoClaims( type OIDCAuthDependencies (line 101) | interface OIDCAuthDependencies { function isSafeRelativeUrl (line 132) | function isSafeRelativeUrl(url: unknown): url is string { function findOrCreateOIDCUser (line 159) | async function findOrCreateOIDCUser( function registerOIDCRoutes (line 262) | function registerOIDCRoutes( FILE: src/oidc/permission-mapping.ts function hasIntersection (line 22) | function hasIntersection(arr1: string[], arr2: string[]): boolean { function mapGroupsToPermission (line 44) | function mapGroupsToPermission( FILE: src/oidc/pkce.ts function generateCodeVerifier (line 25) | function generateCodeVerifier(): string { function calculateCodeChallenge (line 37) | function calculateCodeChallenge(verifier: string): string { FILE: src/oidc/state.ts constant ALGORITHM (line 26) | const ALGORITHM = 'aes-256-gcm' constant IV_LENGTH (line 27) | const IV_LENGTH = 16 constant AUTH_TAG_LENGTH (line 28) | const AUTH_TAG_LENGTH = 16 function generateState (line 34) | function generateState(): string { function generateNonce (line 42) | function generateNonce(): string { function createAuthState (line 49) | function createAuthState( function validateState (line 67) | function validateState( function deriveKey (line 90) | function deriveKey(secretKey: string): Buffer { function encryptState (line 98) | function encryptState(state: OIDCAuthState, secretKey: string): string { function decryptState (line 118) | function decryptState( FILE: src/oidc/token-exchange.ts type FetchFn (line 26) | type FetchFn = typeof fetch function setFetchFunction (line 32) | function setFetchFunction(fn: FetchFn): void { function resetFetchFunction (line 39) | function resetFetchFunction(): void { function exchangeAuthorizationCode (line 52) | async function exchangeAuthorizationCode( function fetchUserinfo (line 138) | async function fetchUserinfo( FILE: src/oidc/types.ts type SignalKPermission (line 20) | type SignalKPermission = 'readonly' | 'readwrite' | 'admin' type OIDCConfig (line 25) | interface OIDCConfig { type PartialOIDCConfig (line 60) | interface PartialOIDCConfig { type OIDCAuthState (line 79) | interface OIDCAuthState { type OIDCTokens (line 91) | interface OIDCTokens { type OIDCUserInfo (line 102) | interface OIDCUserInfo { type OIDCUserIdentifier (line 113) | interface OIDCUserIdentifier { type DiscoveryCache (line 121) | interface DiscoveryCache { type OIDCProviderMetadata (line 130) | interface OIDCProviderMetadata { type OIDCErrorCode (line 145) | type OIDCErrorCode = class OIDCError (line 160) | class OIDCError extends Error { method constructor (line 161) | constructor( constant OIDC_DEFAULTS (line 175) | const OIDC_DEFAULTS: Omit< constant STATE_COOKIE_NAME (line 190) | const STATE_COOKIE_NAME = 'OIDC_STATE' constant STATE_MAX_AGE_MS (line 191) | const STATE_MAX_AGE_MS = 10 * 60 * 1000 // 10 minutes type OIDCCryptoService (line 200) | interface OIDCCryptoService { type ProviderUserLookup (line 213) | interface ProviderUserLookup { type ExternalUserService (line 228) | interface ExternalUserService { type ExternalUser (line 249) | interface ExternalUser { FILE: src/oidc/user-info.ts function decodeIdToken (line 25) | function decodeIdToken(idToken: string): Record { function extractUserInfo (line 53) | function extractUserInfo(idToken: string): OIDCUserInfo { FILE: src/pipedproviders.ts type PipeElementConfig (line 24) | interface PipeElementConfig { type PipedProviderConfig (line 37) | interface PipedProviderConfig { class PipedProvider (line 43) | class PipedProvider {} function pipedProviders (line 45) | function pipedProviders( FILE: src/plugin-paths.ts constant PLUGIN_CONFIG_DATA_DIR (line 3) | const PLUGIN_CONFIG_DATA_DIR = 'plugin-config-data' function pluginConfigPath (line 5) | function pluginConfigPath(configPath: string, pluginId: string): string { function pluginDataDir (line 9) | function pluginDataDir(configPath: string, pluginId: string): string { FILE: src/pluginid.ts function derivePluginId (line 18) | function derivePluginId(packageName: string): string { FILE: src/ports.ts constant SD_LISTEN_FDS_START (line 19) | const SD_LISTEN_FDS_START = 3 function getPrimaryPort (line 27) | function getPrimaryPort(app: WithConfig) { function getSecondaryPort (line 37) | function getSecondaryPort(app: WithConfig): any { function getExternalPort (line 49) | function getExternalPort(app: WithConfig) { FILE: src/put.ts type WsInterface (line 19) | interface WsInterface { type PutAppInterfaces (line 30) | interface PutAppInterfaces { type PutApp (line 35) | interface PutApp extends Application { type PathApp (line 46) | interface PathApp { type NotificationApp (line 52) | interface NotificationApp { type ActionCallback (line 61) | type ActionCallback = (reply: ActionResult) => void type ActionResult (line 63) | interface ActionResult { type ActionHandler (line 69) | type ActionHandler = ( type DeleteHandler (line 76) | type DeleteHandler = ( type ActionHandlers (line 82) | interface ActionHandlers { type PutBody (line 90) | interface PutBody { type SkRequest (line 95) | interface SkRequest extends Request { function start (line 110) | function start(app: PutApp): void { function deletePath (line 388) | function deletePath( function putPath (line 482) | function putPath( function registerActionHandler (line 628) | function registerActionHandler( function deRegisterActionHandler (line 649) | function deRegisterActionHandler( function putNotification (line 664) | function putNotification( FILE: src/requestResponse.ts type RequestState (line 6) | type RequestState = 'PENDING' | 'COMPLETED' type RequestType (line 7) | type RequestType = 'put' | 'delete' | 'accessRequest' type ClientRequest (line 9) | interface ClientRequest { type Request (line 14) | interface Request { type AccessRequestData (line 35) | interface AccessRequestData { type Reply (line 40) | interface Reply { type UpdateOptions (line 53) | interface UpdateOptions { type AppWithIntervals (line 60) | interface AppWithIntervals { function resetRequests (line 70) | function resetRequests(): void { function createRequest (line 76) | function createRequest( function createReply (line 111) | function createReply(request: Request): Reply { function updateRequest (line 132) | function updateRequest( function queryRequest (line 174) | function queryRequest(requestId: string): Promise { function findRequest (line 187) | function findRequest( function filterRequests (line 193) | function filterRequests( function pruneRequests (line 202) | function pruneRequests(): void { FILE: src/security.ts type WithSecurityStrategy (line 40) | interface WithSecurityStrategy { type LoginStatusResponse (line 44) | interface LoginStatusResponse { type ACL (line 54) | interface ACL { type OIDCUserIdentifier (line 65) | interface OIDCUserIdentifier { function isOIDCUserIdentifier (line 76) | function isOIDCUserIdentifier( type User (line 87) | interface User { type UserData (line 93) | interface UserData { type UserDataUpdate (line 97) | interface UserDataUpdate { type UserWithPassword (line 102) | interface UserWithPassword { type Device (line 108) | interface Device { type DeviceDataUpdate (line 117) | interface DeviceDataUpdate { type OIDCSecurityConfig (line 122) | interface OIDCSecurityConfig { type SecurityConfig (line 133) | interface SecurityConfig { type RequestStatusData (line 147) | interface RequestStatusData { type SecurityStrategy (line 153) | interface SecurityStrategy { class InvalidTokenError (line 250) | class InvalidTokenError extends Error { method constructor (line 251) | constructor(...args: any[]) { function startSecurity (line 257) | function startSecurity( function getSecurityConfig (line 290) | function getSecurityConfig( function pathForSecurityConfig (line 313) | function pathForSecurityConfig(app: WithConfig) { function saveSecurityConfig (line 317) | function saveSecurityConfig( function getCertificateOptions (line 344) | function getCertificateOptions(app: WithConfig, cb: any) { function hasStrictPermissions (line 391) | function hasStrictPermissions(stat: Stats) { function getCAChainArray (line 399) | function getCAChainArray(filename: string) { function createCertificateOptions (line 413) | function createCertificateOptions( function requestAccess (line 437) | function requestAccess( type SecurityConfigSaver (line 447) | type SecurityConfigSaver = ( type SecurityConfigGetter (line 452) | type SecurityConfigGetter = (app: any) => any function getRateLimitValidationOptions (line 460) | function getRateLimitValidationOptions(app: WithConfig) { FILE: src/serialports.ts function listSerialPorts (line 35) | function listSerialPorts() { function listSafeSerialPortsDevSerialById (line 44) | function listSafeSerialPortsDevSerialById() { function listSafeSerialPortsDevSerialByPath (line 53) | function listSafeSerialPortsDevSerialByPath() { function listSafeSerialPortsOpenPlotter (line 62) | function listSafeSerialPortsOpenPlotter() { FILE: src/serverroutes.ts type HttpRateLimitOverrides (line 74) | type HttpRateLimitOverrides = { constant DEFAULT_HTTP_RATE_LIMIT_WINDOW_MS (line 80) | const DEFAULT_HTTP_RATE_LIMIT_WINDOW_MS = 10 * 60 * 1000 // 10 minutes constant DEFAULT_HTTP_RATE_LIMIT_API_MAX (line 81) | const DEFAULT_HTTP_RATE_LIMIT_API_MAX = 1000 constant DEFAULT_HTTP_RATE_LIMIT_LOGIN_STATUS_MAX (line 82) | const DEFAULT_HTTP_RATE_LIMIT_LOGIN_STATUS_MAX = 1000 function getHttpRateLimitOverridesFromEnv (line 84) | function getHttpRateLimitOverridesFromEnv(): HttpRateLimitOverrides { type ScriptsApp (line 127) | interface ScriptsApp { type App (line 133) | interface App type ModuleInfo (line 152) | interface ModuleInfo { function serveIndexWithAddonScripts (line 264) | function serveIndexWithAddonScripts(indexPath: string, res: Response) { function getConfigSavingCallback (line 415) | function getConfigSavingCallback(success: any, failure: any, res: Respon... function checkAllowConfigure (line 436) | function checkAllowConfigure(req: Request, res: Response) { function addUser (line 845) | function addUser( function writeOldDefaults (line 1063) | function writeOldDefaults(req: Request, res: Response) { function makeNumber (line 1170) | function makeNumber(num: string) { function listSafeRestoreFiles (line 1360) | function listSafeRestoreFiles(restorePath: string): Promise { function sendRestoreStatus (line 1382) | function sendRestoreStatus( function makeRemoteRequest (line 1770) | function makeRemoteRequest( function getCookie (line 1819) | function getCookie(req: Request, name: string): string | undefined { FILE: src/serverstate/store.ts constant SERVERSTATEDIRNAME (line 7) | const SERVERSTATEDIRNAME = 'serverState' class Store (line 9) | class Store { method constructor (line 14) | constructor( method waitForInit (line 34) | async waitForInit(): Promise { method read (line 41) | async read(): Promise { method write (line 48) | async write(data: any) { method init (line 56) | private async init() { FILE: src/streambundle.ts class StreamBundle (line 28) | class StreamBundle implements IStreamBundle { method constructor (line 41) | constructor(selfId: string) { method pushDelta (line 55) | pushDelta(delta: Delta) { method push (line 94) | push(path: Path, normalizedDelta: NormalizedDelta) { method getMetaBus (line 118) | getMetaBus() { method getSelfMetaBus (line 122) | getSelfMetaBus() { method getBus (line 126) | getBus(path?: Path) { method getSelfStream (line 139) | getSelfStream(path?: Path) { method getSelfBus (line 151) | getSelfBus(path?: Path) { method getAvailablePaths (line 163) | getAvailablePaths() { function toDelta (line 168) | function toDelta(normalizedDeltaData: NormalizedDelta): Delta { FILE: src/subscriptionmanager.ts type BusesMap (line 39) | interface BusesMap { class SubscriptionManager (line 43) | class SubscriptionManager implements ISubscriptionManager { method constructor (line 47) | constructor(app: any) { method subscribe (line 53) | subscribe( method unsubscribe (line 149) | unsubscribe(msg: UnsubscribeMessage, unsubscribes: Unsubscribes) { function handleSubscribeRows (line 171) | function handleSubscribeRows( type App (line 198) | interface App { function handleSubscribeRow (line 202) | function handleSubscribeRow( function pathMatcher (line 281) | function pathMatcher(path: string = '*') { function contextMatcher (line 290) | function contextMatcher( function checkPosition (line 331) | function checkPosition( FILE: src/tokensecurity.ts constant CONFIG_PLUGINID (line 83) | const CONFIG_PLUGINID = 'sk-simple-token-security-config' constant BROWSER_LOGININFO_COOKIE_NAME (line 92) | const BROWSER_LOGININFO_COOKIE_NAME = 'skLoginInfo' constant LOGIN_FAILED_MESSAGE (line 94) | const LOGIN_FAILED_MESSAGE = 'Invalid username/password' constant VALID_PERMISSIONS (line 95) | const VALID_PERMISSIONS = new Set(['readonly', 'readwrite', 'admin']) constant DUMMY_HASH (line 98) | const DUMMY_HASH = '$2b$10$abcdefghijklmnopqrstuuABCDEFGHIJKLMNOPQRSTUVW... function isNever (line 100) | function isNever(expiration: string | undefined): boolean { type SKRequest (line 107) | interface SKRequest extends Request { type Principal (line 119) | interface Principal { type JWTPayload (line 124) | interface JWTPayload { type LoginResponse (line 132) | interface LoginResponse { type CookieOptions (line 140) | interface CookieOptions { type TokenSecurityOptions (line 150) | interface TokenSecurityOptions { type AccessRequest (line 164) | interface AccessRequest { type TokenSecurityApp (line 190) | interface TokenSecurityApp type TokenSecurityStrategy (line 196) | interface TokenSecurityStrategy extends SecurityStrategy { type WSConnection (line 220) | interface WSConnection { function tokenSecurityFactory (line 230) | function tokenSecurityFactory( FILE: src/types.ts type HelloMessage (line 6) | interface HelloMessage { type ICallback (line 14) | type ICallback = (error?: Error | null, result?: T) => void type SignalKServer (line 16) | interface SignalKServer extends ServerAPI { class Interface (line 25) | class Interface { type MdnsAdvertisement (line 31) | interface MdnsAdvertisement { type ContextMatcher (line 37) | type ContextMatcher = (_: WithContext) => boolean FILE: src/unitpreferences/loader.ts constant PACKAGE_UNITPREFS_DIR (line 16) | const PACKAGE_UNITPREFS_DIR = path.join(__dirname, '../../unitpreferences') constant DEFAULT_PRESET (line 17) | const DEFAULT_PRESET = 'nautical-metric' constant VALID_USERNAME (line 18) | const VALID_USERNAME = /^[a-zA-Z0-9_.\-@]+$/ constant USER_PREFS_FILE (line 19) | const USER_PREFS_FILE = '1.0.0.json' function validateUsername (line 35) | function validateUsername(username: string): void { function getUserPrefsPath (line 41) | function getUserPrefsPath(username: string): string { function setApplicationDataPath (line 58) | function setApplicationDataPath(configPath: string): void { function getConfigUnitprefsDir (line 64) | function getConfigUnitprefsDir(): string { function ensureConfigDir (line 68) | function ensureConfigDir(): void { function loadAll (line 107) | function loadAll(): void { function loadActivePreset (line 192) | function loadActivePreset(): void { function getCategories (line 228) | function getCategories(): CategoryMap { function getCustomCategories (line 237) | function getCustomCategories(): { [category: string]: string } { function getStandardDefinitions (line 240) | function getStandardDefinitions(): UnitDefinitions { function getCustomDefinitions (line 243) | function getCustomDefinitions(): UnitDefinitions { function getActivePreset (line 246) | function getActivePreset(): Preset { function getConfig (line 249) | function getConfig(): UnitPreferencesConfig { function reloadPreset (line 253) | function reloadPreset(): void { function reloadCustomDefinitions (line 264) | function reloadCustomDefinitions(): void { function reloadCustomCategories (line 275) | function reloadCustomCategories(): void { function getMergedDefinitions (line 287) | function getMergedDefinitions(): UnitDefinitions { function getDefaultCategory (line 303) | function getDefaultCategory( function getBaseUnitToCategories (line 336) | function getBaseUnitToCategories(): { [baseUnit: string]: string[] } { function getCategoryForBaseUnit (line 356) | function getCategoryForBaseUnit( function loadUserPreferences (line 381) | function loadUserPreferences( function saveUserPreferences (line 410) | function saveUserPreferences( function loadPresetByName (line 422) | function loadPresetByName(presetName: string): Preset | null { function getActivePresetForUser (line 452) | function getActivePresetForUser(username?: string): Preset { FILE: src/unitpreferences/resolver.ts function resolveDisplayUnits (line 17) | function resolveDisplayUnits( function validateCategoryAssignment (line 152) | function validateCategoryAssignment( FILE: src/unitpreferences/types.ts type PrimaryCategoryMap (line 2) | interface PrimaryCategoryMap { type UserUnitPreferences (line 7) | interface UserUnitPreferences { type CategoryMap (line 13) | interface CategoryMap { type ConversionFormula (line 21) | interface ConversionFormula { type UnitDefinitions (line 30) | interface UnitDefinitions { type Preset (line 40) | interface Preset { type UnitPreferencesConfig (line 55) | interface UnitPreferencesConfig { type DisplayUnitsMetadata (line 62) | interface DisplayUnitsMetadata { type EnhancedDisplayUnits (line 72) | interface EnhancedDisplayUnits { FILE: src/version.ts function checkNodeVersion (line 6) | function checkNodeVersion() { FILE: src/wasm/bindings/binary-stream.ts function createBinaryDataReader (line 16) | function createBinaryDataReader(memoryRef: { function createBinaryStreamBinding (line 40) | function createBinaryStreamBinding( FILE: src/wasm/bindings/env-imports.ts type EnvImportsOptions (line 32) | interface EnvImportsOptions { function createUtf8Reader (line 46) | function createUtf8Reader(memoryRef: { function createEnvImports (line 62) | function createEnvImports( FILE: src/wasm/bindings/radar-provider.ts function callWasmRadarHandler (line 24) | async function callWasmRadarHandler( function updateRadarProviderInstance (line 170) | function updateRadarProviderInstance( function cleanupRadarProviders (line 186) | function cleanupRadarProviders(pluginId: string, app?: any): void { function createRadarProviderBinding (line 215) | function createRadarProviderBinding( function createRadarEmitSpokesBinding (line 894) | function createRadarEmitSpokesBinding( FILE: src/wasm/bindings/resource-provider.ts function callWasmResourceHandler (line 24) | function callWasmResourceHandler( function updateResourceProviderInstance (line 93) | function updateResourceProviderInstance( function cleanupResourceProviders (line 112) | function cleanupResourceProviders(pluginId: string, app?: any): void { function createResourceProviderBinding (line 142) | function createResourceProviderBinding( FILE: src/wasm/bindings/socket-manager.ts type BufferedDatagram (line 20) | interface BufferedDatagram { type PendingOption (line 30) | interface PendingOption { type ManagedSocket (line 46) | interface ManagedSocket { class SocketManager (line 60) | class SocketManager { method createSocket (line 70) | createSocket(pluginId: string, type: 'udp4' | 'udp6' = 'udp4'): number { method bind (line 128) | bind(socketId: number, port: number, address?: string): Promise { method joinMulticast (line 224) | joinMulticast( method leaveMulticast (line 271) | leaveMulticast( method setMulticastTTL (line 314) | setMulticastTTL(socketId: number, ttl: number): number { method setMulticastLoopback (line 336) | setMulticastLoopback(socketId: number, enabled: boolean): number { method setBroadcast (line 358) | setBroadcast(socketId: number, enabled: boolean): number { method send (line 388) | send( method receive (line 418) | receive(socketId: number): BufferedDatagram | null { method getBufferedCount (line 431) | getBufferedCount(socketId: number): number { method close (line 440) | close(socketId: number): void { method closeAllForPlugin (line 468) | closeAllForPlugin(pluginId: string): void { method getStats (line 484) | getStats(): { type ManagedTcpSocket (line 510) | interface ManagedTcpSocket { class TcpSocketManager (line 530) | class TcpSocketManager { method createSocket (line 539) | createSocket(pluginId: string): number { method connect (line 629) | connect(socketId: number, address: string, port: number): number { method isConnected (line 664) | isConnected(socketId: number): number { method send (line 678) | send(socketId: number, data: Buffer): Promise { method receiveLine (line 709) | receiveLine(socketId: number): string | null { method receiveRaw (line 724) | receiveRaw(socketId: number): Buffer | null { method setLineBuffering (line 740) | setLineBuffering(socketId: number, lineBuffering: boolean): number { method getBufferedCount (line 755) | getBufferedCount(socketId: number): number { method getError (line 766) | getError(socketId: number): string | null { method close (line 775) | close(socketId: number): void { method closeAllForPlugin (line 794) | closeAllForPlugin(pluginId: string): void { method getStats (line 810) | getStats(): { FILE: src/wasm/bindings/weather-provider.ts function callWasmWeatherHandler (line 24) | async function callWasmWeatherHandler( function updateWeatherProviderInstance (line 143) | function updateWeatherProviderInstance( function cleanupWeatherProviders (line 159) | function cleanupWeatherProviders(pluginId: string, app?: any): void { function createWeatherProviderBinding (line 189) | function createWeatherProviderBinding( FILE: src/wasm/index.ts function initializeWasm (line 18) | function initializeWasm(): { FILE: src/wasm/loader/plugin-config.ts function updateWasmPluginConfig (line 19) | async function updateWasmPluginConfig( function setWasmPluginEnabled (line 82) | async function setWasmPluginEnabled( FILE: src/wasm/loader/plugin-lifecycle.ts function startWasmPlugin (line 37) | async function startWasmPlugin( function startWasmPluginInternal (line 72) | async function startWasmPluginInternal( function stopWasmPlugin (line 189) | async function stopWasmPlugin(pluginId: string): Promise { function unloadWasmPlugin (line 247) | async function unloadWasmPlugin( function reloadWasmPlugin (line 323) | async function reloadWasmPlugin( function handleWasmPluginCrash (line 380) | async function handleWasmPluginCrash( function shutdownAllWasmPlugins (line 431) | async function shutdownAllWasmPlugins(): Promise { FILE: src/wasm/loader/plugin-registry.ts function initializeLifecycleFunctions (line 50) | function initializeLifecycleFunctions( function setPluginStatus (line 70) | function setPluginStatus( function addNodejsPluginCompat (line 82) | function addNodejsPluginCompat(plugin: WasmPlugin, pluginId: string): vo... function mountWasmWebapp (line 104) | function mountWasmWebapp( function registerWasmPlugin (line 162) | async function registerWasmPlugin( function getAllWasmPlugins (line 414) | function getAllWasmPlugins(): WasmPlugin[] { function getWasmPlugin (line 421) | function getWasmPlugin(pluginId: string): WasmPlugin | undefined { FILE: src/wasm/loader/plugin-routes.ts function backwardsCompat (line 31) | function backwardsCompat(url: string) { function handleLogViewerRequest (line 39) | async function handleLogViewerRequest( function setupPluginSpecificRoutes (line 156) | function setupPluginSpecificRoutes(plugin: WasmPlugin): void { function setupWasmPluginRoutes (line 484) | function setupWasmPluginRoutes( FILE: src/wasm/loader/types.ts type WasmPluginMetadata (line 18) | interface WasmPluginMetadata { type WasmPlugin (line 31) | interface WasmPlugin { FILE: src/wasm/loaders/standard-loader.ts function loadStandardPlugin (line 29) | async function loadStandardPlugin( function createPluginExports (line 265) | function createPluginExports( FILE: src/wasm/types.ts type WasmCapabilities (line 11) | interface WasmCapabilities { type WasmFormat (line 28) | type WasmFormat = 'wasi-p1' | 'unknown' type WasmPluginInstance (line 33) | interface WasmPluginInstance { type WasmPluginExports (line 52) | interface WasmPluginExports { type WasmResourceProvider (line 73) | interface WasmResourceProvider { type WasmWeatherProvider (line 83) | interface WasmWeatherProvider { type WasmRadarProvider (line 93) | interface WasmRadarProvider { type LoaderContext (line 103) | interface LoaderContext { FILE: src/wasm/utils/fetch-wrapper.ts function getNodeFetch (line 16) | function getNodeFetch(): typeof fetch { FILE: src/wasm/utils/format-detection.ts function detectWasmFormat (line 13) | function detectWasmFormat(buffer: Buffer): WasmFormat { FILE: src/wasm/wasm-runtime.ts class WasmRuntime (line 51) | class WasmRuntime { method constructor (line 55) | constructor() { method isEnabled (line 62) | isEnabled(): boolean { method setEnabled (line 69) | setEnabled(enabled: boolean): void { method loadPlugin (line 77) | async loadPlugin( method unloadPlugin (line 137) | async unloadPlugin(pluginId: string, app?: any): Promise { method reloadPlugin (line 175) | async reloadPlugin(pluginId: string): Promise { method getInstance (line 193) | getInstance(pluginId: string): WasmPluginInstance | undefined { method getAllInstances (line 200) | getAllInstances(): WasmPluginInstance[] { method isPluginLoaded (line 207) | isPluginLoaded(pluginId: string): boolean { method shutdown (line 214) | async shutdown(): Promise { function getWasmRuntime (line 237) | function getWasmRuntime(): WasmRuntime { function initializeWasmRuntime (line 247) | function initializeWasmRuntime(): WasmRuntime { function resetWasmRuntime (line 261) | function resetWasmRuntime(): void { FILE: src/wasm/wasm-serverapi.ts type ServerAPIBridge (line 23) | interface ServerAPIBridge { function createServerAPIBridge (line 34) | function createServerAPIBridge( function createWasmImports (line 228) | function createWasmImports( function readStringFromMemory (line 334) | function readStringFromMemory( function writeStringToMemory (line 348) | function writeStringToMemory( function callWasmExport (line 371) | function callWasmExport( FILE: src/wasm/wasm-storage.ts type PluginStoragePaths (line 17) | interface PluginStoragePaths { function getPluginStoragePaths (line 40) | function getPluginStoragePaths( function initializePluginVfs (line 71) | function initializePluginVfs(paths: PluginStoragePaths): void { function readPluginConfig (line 102) | function readPluginConfig(configFile: string): any { function writePluginConfig (line 127) | function writePluginConfig(configFile: string, config: any): void { function migrateFromNodeJs (line 149) | function migrateFromNodeJs( function cleanupVfsTmp (line 192) | function cleanupVfsTmp(vfsTmpDir: string): void { function getVfsDiskUsage (line 224) | function getVfsDiskUsage(vfsRoot: string): { function deletePluginVfs (line 263) | function deletePluginVfs(paths: PluginStoragePaths): void { FILE: src/wasm/wasm-subscriptions.ts type DeltaSubscription (line 15) | interface DeltaSubscription { type Delta (line 21) | interface Delta { class WasmSubscriptionManager (line 33) | class WasmSubscriptionManager { method register (line 46) | register( method unregister (line 68) | unregister(pluginId: string): void { method getSubscriptions (line 77) | getSubscriptions(pluginId: string): DeltaSubscription[] { method matchesPattern (line 84) | private matchesPattern(path: string, pattern: string): boolean { method routeDelta (line 103) | routeDelta(delta: Delta): void { method startBuffering (line 140) | startBuffering(pluginId: string): void { method stopBuffering (line 149) | stopBuffering(pluginId: string): Delta[] { method bufferDelta (line 163) | private bufferDelta(pluginId: string, delta: Delta): void { method redirectToBuffer (line 182) | redirectToBuffer(pluginId: string): void { method restore (line 189) | restore(pluginId: string): void { method replayBuffered (line 196) | replayBuffered(pluginId: string, callback: (delta: Delta) => void): vo... method getStats (line 215) | getStats(): { method clear (line 242) | clear(): void { function getSubscriptionManager (line 256) | function getSubscriptionManager(): WasmSubscriptionManager { function initializeSubscriptionManager (line 266) | function initializeSubscriptionManager(): WasmSubscriptionManager { function resetSubscriptionManager (line 281) | function resetSubscriptionManager(): void { FILE: src/zip.ts type ZipFile (line 5) | interface ZipFile { type ZipOptions (line 10) | interface ZipOptions { function sendZip (line 19) | function sendZip(res: Response, options: ZipOptions): void { FILE: src/zones.ts type ZoneMethods (line 7) | interface ZoneMethods { class Zones (line 16) | class Zones { method constructor (line 20) | constructor( method sendNormalDelta (line 40) | sendNormalDelta(path: Path) { method watchForZones (line 55) | watchForZones(path: Path, zones: Zone[], methods: ZoneMethods) { function getMethod (line 86) | function getMethod(state: string, methods: ZoneMethods): ALARM_METHOD[] { function getNotificationDelta (line 100) | function getNotificationDelta( FILE: test/BackpressureManager.ts type MockTransport (line 10) | interface MockTransport extends BackpressureTransport { function createMockTransport (line 17) | function createMockTransport(bufferLength = 0): MockTransport { function createDelta (line 37) | function createDelta(path: string, value: unknown, source?: string): Del... FILE: test/applicationData.ts constant APP_ID (line 23) | const APP_ID = 'testApplication' constant APP_VERSION (line 24) | const APP_VERSION = '1.0.0' type TestCase (line 26) | interface TestCase { function post (line 98) | async function post(globalOrUser: boolean, token: string, expected: numb... function readUserData (line 131) | function readUserData(test: TestCase, userName: string) { function fail (line 149) | async function fail(appid: string, version: string) { FILE: test/chart-tile-regex.ts constant MAX_REGEX_MATCH_MS (line 6) | const MAX_REGEX_MATCH_MS = 50 FILE: test/deltaPriority.ts function push (line 56) | function push(sourceRef: string, delay: number, shouldBeEmitted: boolean) { FILE: test/endpoint-auth.ts function authHeaders (line 31) | function authHeaders(token: string) { function fetchEndpoint (line 38) | async function fetchEndpoint( FILE: test/filter-test-helper.ts function filter (line 3) | function filter(regexp: string, input: string): Promise { FILE: test/history-api.ts constant FROM (line 20) | const FROM = '2025-01-01T00:00:00Z' function assertSchema (line 23) | function assertSchema(schema: TSchema, value: unknown, name: string) { function mkDirSync (line 33) | function mkDirSync(dirPath: string) { FILE: test/httpprovider.js function HttpProvider (line 20) | function HttpProvider(options) { function handleDelta (line 37) | function handleDelta(req, res) { FILE: test/metadata-e2e.ts constant TEST_PATH_DOTS (line 12) | const TEST_PATH_DOTS = 'a.test.path' constant TEST_PATH_SLASHES (line 13) | const TEST_PATH_SLASHES = 'a/test/path' FILE: test/metadata.js function getUrl (line 107) | function getUrl(url) { FILE: test/multiple-values.js function removeDisplayUnits (line 37) | function removeDisplayUnits(tree) { FILE: test/nmea0183-filtering.ts function nmea0183filter (line 5) | function nmea0183filter(sentence: string, input: string) { FILE: test/oidc/crypto-service.test.ts function deriveSecret (line 24) | function deriveSecret(masterKey: string, domain: string): string { FILE: test/oidc/discovery.test.ts function createMockFetch (line 24) | function createMockFetch( FILE: test/oidc/id-token-validation.test.ts type JoseModule (line 25) | type JoseModule = typeof import('jose') function createIdToken (line 84) | async function createIdToken( function setupJwksMock (line 102) | function setupJwksMock() { FILE: test/oidc/oidc-auth.test.ts type RegisteredRoute (line 20) | interface RegisteredRoute { function createMockRequest (line 84) | function createMockRequest(overrides: Partial = {}): Request { type MockResponse (line 99) | interface MockResponse { function createMockResponse (line 109) | function createMockResponse(): MockResponse { function findRoute (line 131) | function findRoute( FILE: test/oidc/user-info.test.ts function createTestJwt (line 7) | function createTestJwt(payload: object): string { FILE: test/oidc/user-service.test.ts function createInMemoryUserService (line 10) | function createInMemoryUserService(): ExternalUserService & { FILE: test/plugin-crash-isolation.ts type PluginInfo (line 9) | interface PluginInfo { type ProviderStatus (line 14) | interface ProviderStatus { FILE: test/plugins.js function mkDirSync (line 118) | function mkDirSync(dirPath) { function writePluginConfig (line 128) | function writePluginConfig(config) { function postPluginConfig (line 137) | async function postPluginConfig(port, config) { FILE: test/providers.js function checkExistingProvider (line 171) | function checkExistingProvider(existing) { FILE: test/put.js function switch2Handler (line 31) | function switch2Handler(context, path, value, cb) { function WsPromiser (line 337) | function WsPromiser(url) { FILE: test/rate-limit.ts type ServerInstance (line 8) | interface ServerInstance { function wsLogin (line 12) | function wsLogin( function openWs (line 44) | function openWs(port: number): Promise { constant LOGIN_MAX (line 68) | const LOGIN_MAX = 100 constant API_MAX (line 69) | const API_MAX = 1000 FILE: test/seatalk1-filtering.ts function seatalk1filter (line 5) | function seatalk1filter(command: string, input: string) { FILE: test/security.js function login (line 141) | async function login(username, password) { function formLoginWithDestination (line 350) | async function formLoginWithDestination(username, password, destination) { FILE: test/servertestutilities.js function WsPromiser (line 36) | function WsPromiser(url, timeout = 250) { constant WRITE_USER_NAME (line 101) | const WRITE_USER_NAME = 'writeuser' constant WRITE_USER_PASSWORD (line 102) | const WRITE_USER_PASSWORD = 'writepass' constant LIMITED_USER_NAME (line 103) | const LIMITED_USER_NAME = 'testuser' constant LIMITED_USER_PASSWORD (line 104) | const LIMITED_USER_PASSWORD = 'verylimited' constant ADMIN_USER_NAME (line 105) | const ADMIN_USER_NAME = 'adminuser' constant ADMIN_USER_PASSWORD (line 106) | const ADMIN_USER_PASSWORD = 'admin' constant NOPASSWORD_USER_NAME (line 107) | const NOPASSWORD_USER_NAME = 'nopassword' function login (line 217) | function login(server, username, password) { FILE: test/sliding-session.ts type TestServer (line 10) | interface TestServer { function getSecretKey (line 20) | function getSecretKey(server: TestServer): string { function signToken (line 24) | function signToken( function findJauthCookie (line 45) | function findJauthCookie(res: Response): string | undefined { function extractTokenFromCookie (line 51) | function extractTokenFromCookie(cookie: string): string { function login (line 81) | async function login(rememberMe: boolean): Promise { function authenticatedGet (line 93) | async function authenticatedGet(token: string): Promise { FILE: test/subscriptions.js function getDelta (line 7) | function getDelta(overwrite) { function getEmptyPathDelta (line 70) | function getEmptyPathDelta(overwrite) { function getClosePosistionDelta (line 99) | function getClosePosistionDelta(overwrite) { function getFarPosistionDelta (line 127) | function getFarPosistionDelta() { function getNullPositionDelta (line 155) | function getNullPositionDelta(overwrite) { function testSelfData (line 204) | async function testSelfData(url) { FILE: test/ts-servertestutilities.ts constant DATETIME_REGEX (line 14) | const DATETIME_REGEX = /^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d+)Z?$/ function freeport (line 123) | function freeport(): Promise { FILE: test/unitpreferences.ts constant UNITPREFS_DIR (line 17) | const UNITPREFS_DIR = path.join(__dirname, '../unitpreferences') FILE: test/wasm-plugins.ts type PluginInfo (line 21) | interface PluginInfo { type ServerInstance (line 33) | interface ServerInstance { FILE: test/ws-connection-limit.ts constant WS_STREAM_PATH (line 9) | const WS_STREAM_PATH = function openWs (line 12) | function openWs(url: string): Promise { function openWsExpect429 (line 27) | function openWsExpect429( function openWsWithForwardedIp (line 125) | function openWsWithForwardedIp( function openWsWithForwardedIpExpect429 (line 145) | function openWsWithForwardedIpExpect429( FILE: test/zones.ts type MockStreambundle (line 7) | interface MockStreambundle { function asNotification (line 13) | function asNotification(value: unknown): Notification {