SYMBOL INDEX (465 symbols across 58 files) FILE: clientonly/index.js function getServerAddress (line 10) | function getServerAddress () { function getServerConfig (line 39) | function getServerConfig (url) { function fail (line 68) | function fail (message, code = 1) { FILE: js/alias-resolver.js constant ALIASES (line 11) | const ALIASES = { FILE: js/animateCSS.js function addAnimateCSS (line 130) | function addAnimateCSS (element, animation, animationTime) { function removeAnimateCSS (line 147) | function removeAnimateCSS (element, animation) { FILE: js/app.js function App (line 56) | function App () { FILE: js/check_config.js function getConfigFile (line 23) | function getConfigFile () { function checkConfigFile (line 31) | function checkConfigFile () { function validateModulePositions (line 90) | function validateModulePositions (configFileName) { FILE: js/class.js function Class (line 70) | function Class () { function cloneObject (line 95) | function cloneObject (obj) { FILE: js/electron.js function createWindow (line 33) | function createWindow () { FILE: js/ip_access_control.js function isAllowed (line 10) | function isAllowed (clientIp, whitelist) { function ipAccessControl (line 41) | function ipAccessControl (whitelist) { FILE: js/loader.js method loadModules (line 243) | async loadModules () { method loadFileForModule (line 269) | async loadFileForModule (fileName, module) { FILE: js/logger.js method debug (line 114) | debug () {} method log (line 115) | log () {} method info (line 116) | info () {} method warn (line 117) | warn () {} method error (line 118) | error () {} method group (line 119) | group () {} method groupCollapsed (line 120) | groupCollapsed () {} method groupEnd (line 121) | groupEnd () {} method time (line 122) | time () {} method timeEnd (line 123) | timeEnd () {} method timeStamp (line 124) | timeStamp () {} FILE: js/main.js method init (line 583) | async init () { method modulesStarted (line 597) | modulesStarted (moduleObjects) { method sendNotification (line 646) | sendNotification (notification, payload, sender) { method updateDom (line 671) | updateDom (module, updateOptions) { method getModules (line 693) | getModules () { method hideModule (line 705) | hideModule (module, speed, callback, options) { method showModule (line 717) | showModule (module, speed, callback, options) { FILE: js/module.js method init (line 40) | init () { method start (line 46) | async start () { method getScripts (line 54) | getScripts () { method getStyles (line 62) | getStyles () { method getTranslations (line 72) | getTranslations () { method getDom (line 82) | getDom () { method getHeader (line 115) | getHeader () { method getTemplate (line 126) | getTemplate () { method getTemplateData (line 135) | getTemplateData () { method notificationReceived (line 145) | notificationReceived (notification, payload, sender) { method nunjucksEnvironment (line 158) | nunjucksEnvironment () { method socketNotificationReceived (line 180) | socketNotificationReceived (notification, payload) { method suspend (line 187) | suspend () { method resume (line 194) | resume () { method setData (line 208) | setData (data) { method setConfig (line 224) | setConfig (config, deep) { method socket (line 233) | socket () { method file (line 250) | file (file) { method loadStyles (line 258) | loadStyles () { method loadScripts (line 266) | loadScripts () { method loadDependencies (line 275) | async loadDependencies (funcName) { method loadTranslations (line 296) | async loadTranslations () { method translate (line 328) | translate (key, defaultValueOrVariables, defaultValue) { method updateDom (line 339) | updateDom (updateOptions) { method sendNotification (line 348) | sendNotification (notification, payload) { method sendSocketNotification (line 357) | sendSocketNotification (notification, payload) { method hide (line 367) | hide (speed, callback, options = {}) { method show (line 394) | show (speed, callback, options) { function configMerge (line 438) | function configMerge (result) { function cmpVersions (line 501) | function cmpVersions (a, b) { FILE: js/node_helper.js method init (line 6) | init () { method loaded (line 10) | loaded () { method start (line 14) | start () { method stop (line 23) | stop () { method socketNotificationReceived (line 32) | socketNotificationReceived (notification, payload) { method setName (line 40) | setName (name) { method setPath (line 48) | setPath (path) { method sendSocketNotification (line 59) | sendSocketNotification (notification, payload) { method setExpressApp (line 70) | setExpressApp (app) { method setSocketIO (line 83) | setSocketIO (io) { FILE: js/server.js function Server (line 20) | function Server (config) { FILE: js/server_functions.js function getConfig (line 12) | function getConfig (req, res) { function getStartup (line 21) | function getStartup (req, res) { function cors (line 35) | async function cors (req, res) { function getHeadersToSend (line 78) | function getHeadersToSend (url) { function geExpectedReceivedHeaders (line 99) | function geExpectedReceivedHeaders (url) { function getHtml (line 116) | function getHtml (req, res) { function getVersion (line 135) | function getVersion (req, res) { function getUserAgent (line 143) | function getUserAgent () { function getEnvVarsAsObj (line 164) | function getEnvVarsAsObj () { function getEnvVars (line 181) | function getEnvVars (req, res) { function getConfigFilePath (line 190) | function getConfigFilePath () { FILE: js/translator.js function loadJSON (line 10) | async function loadJSON (file) { method translate (line 39) | translate (module, key, variables = {}) { method load (line 88) | async load (module, file, isFallback) { method loadCoreTranslations (line 104) | async loadCoreTranslations (lang) { method loadCoreTranslationsFallback (line 119) | async loadCoreTranslationsFallback () { FILE: js/utils.js method logSystemInformation (line 13) | async logSystemInformation (mirrorVersion) { method getAvailableModulePositions (line 45) | getAvailableModulePositions () { method moduleHasValidPosition (line 50) | moduleHasValidPosition (position) { method getModulePositions (line 55) | getModulePositions () { FILE: module-types.ts type ModuleProperties (line 1) | type ModuleProperties = { FILE: modules/default/alert/alert.js method getScripts (line 14) | getScripts () { method getStyles (line 18) | getStyles () { method getTranslations (line 22) | getTranslations () { method getTemplate (line 40) | getTemplate (type) { method start (line 44) | async start () { method notificationReceived (line 57) | notificationReceived (notification, payload, sender) { method showNotification (line 69) | async showNotification (notification) { method showAlert (line 80) | async showAlert (alert, sender) { method hideAlert (line 113) | hideAlert (sender, close = true) { method renderMessage (line 125) | renderMessage (type, data) { method toggleBlur (line 137) | toggleBlur (add = false) { FILE: modules/default/alert/notificationFx.js function extend (line 22) | function extend (a, b) { function NotificationFx (line 36) | function NotificationFx (options) { method onClose (line 67) | onClose () { method onOpen (line 70) | onOpen () { FILE: modules/default/calendar/calendar.js method getStyles (line 72) | getStyles () { method getScripts (line 77) | getScripts () { method getTranslations (line 82) | getTranslations () { method start (line 93) | start () { method notificationReceived (line 170) | notificationReceived (notification, payload, sender) { method socketNotificationReceived (line 179) | socketNotificationReceived (notification, payload) { method getDom (line 231) | getDom () { method hasCalendarURL (line 588) | hasCalendarURL (url) { method timestampToMoment (line 603) | timestampToMoment (timestamp) { method createEventList (line 612) | createEventList (limitNumberOfEntries) { method listContainsEvent (line 742) | listContainsEvent (eventList, event) { method addCalendar (line 757) | addCalendar (url, auth, calendarConfig) { method symbolsForEvent (line 780) | symbolsForEvent (event) { method mergeUnique (line 807) | mergeUnique (arr1, arr2) { method symbolClassForUrl (line 820) | symbolClassForUrl (url) { method titleClassForUrl (line 829) | titleClassForUrl (url) { method timeClassForUrl (line 838) | timeClassForUrl (url) { method calendarNameForUrl (line 847) | calendarNameForUrl (url) { method colorForUrl (line 857) | colorForUrl (url, isBg) { method countTitleForUrl (line 866) | countTitleForUrl (url) { method maximumEntriesForUrl (line 875) | maximumEntriesForUrl (url) { method maximumPastDaysForUrl (line 884) | maximumPastDaysForUrl (url) { method getCalendarProperty (line 895) | getCalendarProperty (url, property, defaultValue) { method getCalendarPropertyAsArray (line 905) | getCalendarPropertyAsArray (url, property, defaultValue) { method hasCalendarProperty (line 920) | hasCalendarProperty (url, property) { method broadcastEvents (line 928) | broadcastEvents () { method selfUpdate (line 948) | selfUpdate () { FILE: modules/default/calendar/calendarfetcher.js constant FIFTEEN_MINUTES (line 7) | const FIFTEEN_MINUTES = 15 * 60 * 1000; constant THIRTY_MINUTES (line 8) | const THIRTY_MINUTES = 30 * 60 * 1000; constant MAX_SERVER_BACKOFF (line 9) | const MAX_SERVER_BACKOFF = 3; class CalendarFetcher (line 15) | class CalendarFetcher { method constructor (line 28) | constructor (url, reloadInterval, excludedEvents, maximumEntries, maxi... method clearReloadTimer (line 49) | clearReloadTimer () { method scheduleNextFetch (line 60) | scheduleNextFetch (delay) { method getRequestOptions (line 72) | getRequestOptions () { method parseRetryAfter (line 96) | parseRetryAfter (retryAfter) { method getDelayForResponse (line 115) | getDelayForResponse (response) { method fetchCalendar (line 147) | async fetchCalendar () { method shouldRefetch (line 189) | shouldRefetch () { method broadcastEvents (line 200) | broadcastEvents () { method onReceive (line 209) | onReceive (callback) { method onError (line 217) | onError (callback) { FILE: modules/default/calendar/calendarfetcherutils.js method shouldEventBeExcluded (line 17) | shouldEventBeExcluded (config, title) { method getLocalTimezone (line 39) | getLocalTimezone () { method getMomentsFromRecurringEvent (line 51) | getMomentsFromRecurringEvent (event, pastLocalMoment, futureLocalMoment,... method filterEvents (line 99) | filterEvents (data, config) { method getTitleFromEvent (line 231) | getTitleFromEvent (event) { method isFullDayEvent (line 247) | isFullDayEvent (event) { method timeFilterApplies (line 270) | timeFilterApplies (now, endDate, filter) { method titleFilterApplies (line 291) | titleFilterApplies (title, filter, useRegex, regexFlags) { method expandRecurringEvent (line 313) | expandRecurringEvent (event, pastLocalMoment, futureLocalMoment, duratio... method checkEventAgainstFilter (line 368) | checkEventAgainstFilter (title, filterConfig) { FILE: modules/default/calendar/calendarutils.js method capFirst (line 8) | capFirst (string) { method getLocaleSpecification (line 19) | getLocaleSpecification (timeFormat) { method shorten (line 41) | shorten (string, maxLength, wrapEvents, maxTitleLines) { method titleTransform (line 96) | titleTransform (title, titleReplace) { FILE: modules/default/calendar/node_helper.js method start (line 8) | start () { method socketNotificationReceived (line 14) | socketNotificationReceived (notification, payload) { method createFetcher (line 41) | createFetcher (url, fetchInterval, excludedEvents, maximumEntries, maxim... method broadcastEvents (line 93) | broadcastEvents (fetcher, identifier) { FILE: modules/default/clock/clock.js method getScripts (line 34) | getScripts () { method getStyles (line 38) | getStyles () { method start (line 42) | start () { method getDom (line 91) | getDom () { FILE: modules/default/compliments/compliments.js method getScripts (line 33) | getScripts () { method start (line 38) | async start () { method isCronEntry (line 84) | isCronEntry (entry) { method getSecondsUntilNextCronRun (line 93) | getSecondsUntilNextCronRun (cronExpression, timestamp = new Date()) { method randomIndex (line 110) | randomIndex (compliments) { method complimentArray (line 134) | complimentArray () { method loadComplimentFile (line 209) | async loadComplimentFile () { method getRandomCompliment (line 243) | getRandomCompliment () { method getDom (line 262) | getDom () { method notificationReceived (line 311) | notificationReceived (notification, payload, sender) { FILE: modules/default/helloworld/helloworld.js method getTemplate (line 7) | getTemplate () { method getTemplateData (line 11) | getTemplateData () { FILE: modules/default/newsfeed/newsfeed.js method getUrlPrefix (line 39) | getUrlPrefix (item) { method getScripts (line 48) | getScripts () { method getStyles (line 53) | getStyles () { method getTranslations (line 58) | getTranslations () { method start (line 66) | start () { method socketNotificationReceived (line 84) | socketNotificationReceived (notification, payload) { method getTemplate (line 104) | getTemplate () { method getTemplateData (line 114) | getTemplateData () { method getActiveItemURL (line 159) | getActiveItemURL () { method registerFeeds (line 171) | registerFeeds () { method getFeedProperty (line 186) | getFeedProperty (feed, property) { method generateFeed (line 197) | generateFeed (feeds) { method subscribedToFeed (line 290) | subscribedToFeed (feedUrl) { method titleForFeed (line 304) | titleForFeed (feedUrl) { method scheduleUpdateInterval (line 316) | scheduleUpdateInterval () { method resetDescrOrFullArticleAndTimer (line 357) | resetDescrOrFullArticleAndTimer () { method notificationReceived (line 368) | notificationReceived (notification, payload, sender) { method showFullArticle (line 429) | showFullArticle () { FILE: modules/default/newsfeed/node_helper.js method start (line 7) | start () { method socketNotificationReceived (line 13) | socketNotificationReceived (notification, payload) { method createFetcher (line 25) | createFetcher (feed, config) { method broadcastFeeds (line 72) | broadcastFeeds () { FILE: modules/default/updatenotification/git_helper.js class GitHelper (line 7) | class GitHelper { method constructor (line 8) | constructor () { method getRefRegex (line 13) | getRefRegex (branch) { method execShell (line 17) | async execShell (command) { method isGitRepo (line 23) | async isGitRepo (moduleFolder) { method add (line 35) | async add (moduleName) { method getStatusInfo (line 60) | async getStatusInfo (repo) { method getRepoInfo (line 115) | async getRepoInfo (repo) { method getRepos (line 175) | async getRepos () { method checkUpdates (line 196) | async checkUpdates () { FILE: modules/default/updatenotification/node_helper.js constant ONE_MINUTE (line 9) | const ONE_MINUTE = 60 * 1000; method getModules (line 20) | getModules (modules) { method configureModules (line 35) | async configureModules (modules) { method socketNotificationReceived (line 47) | async socketNotificationReceived (notification, payload) { method performFetch (line 72) | async performFetch () { method scheduleNextFetch (line 97) | scheduleNextFetch (delay) { method ignoreUpdateChecking (line 108) | ignoreUpdateChecking (moduleName) { FILE: modules/default/updatenotification/update_helper.js class Updater (line 43) | class Updater { method constructor (line 44) | constructor (config) { method parse (line 58) | async parse (modules) { method updateProcess (line 97) | updateProcess (module) { method restart (line 137) | restart () { method pm2Restart (line 143) | pm2Restart () { method nodeRestart (line 154) | nodeRestart () { method check_PM2_Process (line 164) | check_PM2_Process () { method isMagicMirror (line 216) | isMagicMirror (module) { method applyCommand (line 222) | applyCommand (module) { FILE: modules/default/updatenotification/updatenotification.js method start (line 18) | start () { method suspend (line 27) | suspend () { method resume (line 31) | resume () { method notificationReceived (line 36) | notificationReceived (notification) { method socketNotificationReceived (line 48) | socketNotificationReceived (notification, payload) { method getStyles (line 62) | getStyles () { method getTemplate (line 66) | getTemplate () { method getTemplateData (line 70) | getTemplateData () { method updateUI (line 74) | updateUI (payload) { method addFilters (line 92) | addFilters () { method updatesNotifier (line 104) | updatesNotifier (payload, done = true) { FILE: modules/default/utils.js function performWebRequest (line 11) | async function performWebRequest (url, type = "json", useCorsProxy = fal... FILE: modules/default/weather/providers/envcanada.js method setConfig (line 47) | setConfig (config) { method start (line 62) | start () { method fetchCurrentWeather (line 70) | fetchCurrentWeather () { method fetchWeatherForecast (line 77) | fetchWeatherForecast () { method fetchWeatherHourly (line 86) | fetchWeatherHourly () { method fetchCommon (line 103) | fetchCommon (target) { method getUrl (line 210) | getUrl () { method getCurrentHourGMT (line 220) | getCurrentHourGMT () { method generateWeatherObjectFromCurrentWeather (line 228) | generateWeatherObjectFromCurrentWeather (ECdoc) { method generateWeatherObjectsFromForecast (line 297) | generateWeatherObjectsFromForecast (ECdoc) { method generateWeatherObjectsFromHourly (line 424) | generateWeatherObjectsFromHourly (ECdoc) { method setMinMaxTemps (line 470) | setMinMaxTemps (weather, foreGroup, today, fullDay, currentTemp) { method setPrecipitation (line 549) | setPrecipitation (weather, foreGroup, today) { method convertWeatherType (line 565) | convertWeatherType (weatherType) { FILE: modules/default/weather/providers/openmeteo.js constant GEOCODE_BASE (line 9) | const GEOCODE_BASE = "https://api.bigdatacloud.net/data/reverse-geocode-... constant OPEN_METEO_BASE (line 10) | const OPEN_METEO_BASE = "https://api.open-meteo.com/v1"; method fetchedLocation (line 141) | fetchedLocation () { method fetchCurrentWeather (line 145) | fetchCurrentWeather () { method fetchWeatherForecast (line 163) | fetchWeatherForecast () { method fetchWeatherHourly (line 181) | fetchWeatherHourly () { method setConfig (line 203) | setConfig (config) { method getQueryParameters (line 227) | getQueryParameters () { method getUrl (line 279) | getUrl () { method checkDST (line 284) | checkDST (dt) { method transposeDataMatrix (line 295) | transposeDataMatrix (data) { method parseWeatherApiResponse (line 306) | parseWeatherApiResponse (data) { method fetchLocation (line 344) | fetchLocation () { method generateWeatherDayFromCurrentWeather (line 359) | generateWeatherDayFromCurrentWeather (weather) { method generateWeatherObjectsFromForecast (line 406) | generateWeatherObjectsFromForecast (weathers) { method generateWeatherObjectsFromHourly (line 434) | generateWeatherObjectsFromHourly (weathers) { method convertWeatherType (line 469) | convertWeatherType (weathercode, isDayTime) { method getScripts (line 554) | getScripts () { FILE: modules/default/weather/providers/openweathermap.js method fetchCurrentWeather (line 32) | fetchCurrentWeather () { method fetchWeatherForecast (line 51) | fetchWeatherForecast () { method fetchWeatherHourly (line 73) | fetchWeatherHourly () { method getUrl (line 100) | getUrl () { method generateWeatherObjectFromCurrentWeather (line 107) | generateWeatherObjectFromCurrentWeather (currentWeatherData) { method generateWeatherObjectsFromForecast (line 126) | generateWeatherObjectsFromForecast (forecasts) { method generateWeatherObjectsFromOnecall (line 139) | generateWeatherObjectsFromOnecall (data) { method generateForecastHourly (line 151) | generateForecastHourly (forecasts) { method generateForecastDaily (line 229) | generateForecastDaily (forecasts) { method fetchOnecall (line 273) | fetchOnecall (data) { method convertWeatherType (line 374) | convertWeatherType (weatherType) { method getParams (line 405) | getParams () { FILE: modules/default/weather/providers/overrideWrapper.js method init (line 24) | init (baseProvider) { method setConfig (line 36) | setConfig (config) { method start (line 39) | start () { method fetchCurrentWeather (line 42) | fetchCurrentWeather () { method fetchWeatherForecast (line 45) | fetchWeatherForecast () { method fetchWeatherHourly (line 48) | fetchWeatherHourly () { method weatherForecast (line 51) | weatherForecast () { method weatherHourly (line 54) | weatherHourly () { method fetchedLocation (line 57) | fetchedLocation () { method setWeatherForecast (line 60) | setWeatherForecast (weatherForecastArray) { method setWeatherHourly (line 63) | setWeatherHourly (weatherHourlyArray) { method setFetchedLocation (line 66) | setFetchedLocation (name) { method updateAvailable (line 69) | updateAvailable () { method fetchData (line 72) | async fetchData (url, type = "json", requestHeaders = undefined, expecte... method currentWeather (line 82) | currentWeather () { method setCurrentWeather (line 92) | setCurrentWeather (currentWeatherObject) { method notificationReceived (line 104) | notificationReceived (payload) { FILE: modules/default/weather/providers/pirateweather.js method fetchCurrentWeather (line 25) | async fetchCurrentWeather () { method fetchWeatherForecast (line 41) | async fetchWeatherForecast () { method getUrl (line 58) | getUrl () { method generateWeatherDayFromCurrentWeather (line 63) | generateWeatherDayFromCurrentWeather (currentWeatherData) { method generateWeatherObjectsFromForecast (line 78) | generateWeatherObjectsFromForecast (forecasts) { method convertWeatherType (line 112) | convertWeatherType (weatherType) { FILE: modules/default/weather/providers/smhi.js method fetchCurrentWeather (line 22) | fetchCurrentWeather () { method fetchWeatherForecast (line 38) | fetchWeatherForecast () { method fetchWeatherHourly (line 53) | fetchWeatherHourly () { method setConfig (line 69) | setConfig (config) { method getClosestToCurrentTime (line 82) | getClosestToCurrentTime (times) { method getURL (line 98) | getURL () { method calculateApparentTemperature (line 113) | calculateApparentTemperature (weatherData) { method convertWeatherDataToObject (line 130) | convertWeatherDataToObject (weatherData, coordinates) { method convertWeatherDataGroupedBy (line 178) | convertWeatherDataGroupedBy (allWeatherData, coordinates, groupBy = "day... method resolveCoordinates (line 227) | resolveCoordinates (data) { method fillInGaps (line 237) | fillInGaps (data) { method paramValue (line 259) | paramValue (currentWeatherData, name) { method convertWeatherType (line 271) | convertWeatherType (input, isDayTime) { FILE: modules/default/weather/providers/ukmetofficedatahub.js method getUrl (line 48) | getUrl (forecastType) { method getHeaders (line 63) | getHeaders () { method fetchWeather (line 71) | async fetchWeather (url, headers) { method fetchCurrentWeather (line 79) | fetchCurrentWeather () { method generateWeatherObjectFromCurrentWeather (line 109) | generateWeatherObjectFromCurrentWeather (currentWeatherData) { method fetchWeatherForecast (line 154) | fetchWeatherForecast () { method generateWeatherObjectsFromForecast (line 184) | generateWeatherObjectsFromForecast (forecasts) { method setFetchedLocation (line 231) | setFetchedLocation (name) { method convertWeatherType (line 240) | convertWeatherType (weatherType) { FILE: modules/default/weather/providers/weatherbit.js method fetchedLocation (line 23) | fetchedLocation () { method fetchCurrentWeather (line 27) | fetchCurrentWeather () { method fetchWeatherForecast (line 44) | fetchWeatherForecast () { method setConfig (line 67) | setConfig (config) { method getUrl (line 88) | getUrl () { method generateWeatherDayFromCurrentWeather (line 93) | generateWeatherDayFromCurrentWeather (currentWeatherData) { method generateWeatherObjectsFromForecast (line 115) | generateWeatherObjectsFromForecast (forecasts) { method convertWeatherType (line 135) | convertWeatherType (weatherType) { FILE: modules/default/weather/providers/weatherflow.js method fetchCurrentWeather (line 22) | fetchCurrentWeather () { method fetchWeatherForecast (line 49) | fetchWeatherForecast () { method fetchWeatherHourly (line 89) | fetchWeatherHourly () { method convertWeatherType (line 120) | convertWeatherType (weatherType) { method getUrl (line 147) | getUrl () { FILE: modules/default/weather/providers/weathergov.js method setConfig (line 39) | setConfig (config) { method fetchedLocation (line 45) | fetchedLocation () { method fetchCurrentWeather (line 50) | fetchCurrentWeather () { method fetchWeatherForecast (line 71) | fetchWeatherForecast () { method fetchWeatherHourly (line 92) | fetchWeatherHourly () { method fetchWxGovURLs (line 121) | fetchWxGovURLs (config) { method generateWeatherObjectsFromHourly (line 167) | generateWeatherObjectsFromHourly (forecasts) { method generateWeatherObjectFromCurrentWeather (line 206) | generateWeatherObjectFromCurrentWeather (currentWeatherData) { method generateWeatherObjectsFromForecast (line 236) | generateWeatherObjectsFromForecast (forecasts) { method fetchForecastDaily (line 243) | fetchForecastDaily (forecasts) { method convertWeatherType (line 310) | convertWeatherType (weatherType, isDaytime) { FILE: modules/default/weather/providers/yr.js method start (line 20) | start () { method fetchCurrentWeather (line 33) | fetchCurrentWeather () { method getCurrentWeather (line 45) | async getCurrentWeather () { method getWeatherData (line 73) | getWeatherData () { method getWeatherDataFromYrOrCache (line 102) | getWeatherDataFromYrOrCache (resolve, reject) { method weatherDataIsValid (line 139) | weatherDataIsValid (weatherData) { method getWeatherDataFromCache (line 148) | getWeatherDataFromCache () { method getWeatherDataFromYr (line 157) | getWeatherDataFromYr (currentDataFetchedAt) { method getConfigOptions (line 179) | getConfigOptions () { method getForecastUrl (line 195) | getForecastUrl () { method cacheWeatherData (line 212) | cacheWeatherData (weatherData) { method getStellarData (line 216) | getStellarData () { method getStellarDataFromYrOrCache (line 245) | getStellarDataFromYrOrCache (resolve, reject) { method getStellarDataFromCache (line 303) | getStellarDataFromCache () { method getStellarDataFromYr (line 312) | getStellarDataFromYr (date, days = 1) { method getStellarDataUrl (line 325) | getStellarDataUrl (date, days) { method cacheStellarData (line 356) | cacheStellarData (data) { method getWeatherDataFrom (line 360) | getWeatherDataFrom (forecast, stellarData, units) { method convertWeatherType (line 381) | convertWeatherType (weatherType, weatherTime) { method getForecastForXHoursFrom (line 473) | getForecastForXHoursFrom (weather) { method fetchWeatherHourly (line 501) | fetchWeatherHourly () { method getWeatherForecast (line 513) | async getWeatherForecast (type) { method getHourlyForecastFrom (line 539) | getHourlyForecastFrom (weatherData) { method getDailyForecastFrom (line 562) | getDailyForecastFrom (weatherData) { method fetchWeatherForecast (line 612) | fetchWeatherForecast () { FILE: modules/default/weather/weather.js method getStyles (line 55) | getStyles () { method getScripts (line 60) | getScripts () { method getHeader (line 65) | getHeader () { method start (line 75) | start () { method notificationReceived (line 104) | notificationReceived (notification, payload, sender) { method getTemplate (line 129) | getTemplate () { method getTemplateData (line 145) | getTemplateData () { method updateAvailable (line 165) | updateAvailable () { method scheduleUpdate (line 192) | scheduleUpdate (delay = null) { method roundValue (line 216) | roundValue (temperature) { method addFilters (line 222) | addFilters () { FILE: modules/default/weather/weatherobject.js class WeatherObject (line 6) | class WeatherObject { method constructor (line 11) | constructor () { method cardinalWindDirection (line 28) | cardinalWindDirection () { method nextSunAction (line 71) | nextSunAction (date = moment()) { method feelsLike (line 75) | feelsLike () { method isDayTime (line 86) | isDayTime () { method updateSunTime (line 98) | updateSunTime (lat, lon) { method simpleClone (line 112) | simpleClone () { FILE: modules/default/weather/weatherprovider.js method init (line 26) | init (config) { method setConfig (line 32) | setConfig (config) { method start (line 38) | start () { method fetchCurrentWeather (line 44) | fetchCurrentWeather () { method fetchWeatherForecast (line 50) | fetchWeatherForecast () { method fetchWeatherHourly (line 56) | fetchWeatherHourly () { method currentWeather (line 61) | currentWeather () { method weatherForecast (line 66) | weatherForecast () { method weatherHourly (line 71) | weatherHourly () { method fetchedLocation (line 76) | fetchedLocation () { method setCurrentWeather (line 81) | setCurrentWeather (currentWeatherObject) { method setWeatherForecast (line 87) | setWeatherForecast (weatherForecastArray) { method setWeatherHourly (line 93) | setWeatherHourly (weatherHourlyArray) { method setFetchedLocation (line 98) | setFetchedLocation (name) { method updateAvailable (line 103) | updateAvailable () { method fetchData (line 115) | async fetchData (url, type = "json", requestHeaders = undefined, expecte... FILE: modules/default/weather/weatherutils.js method beaufortWindSpeed (line 8) | beaufortWindSpeed (speedInMS) { method convertPrecipitationUnit (line 27) | convertPrecipitationUnit (value, valueUnit, outputUnit) { method convertPrecipitationToInch (line 48) | convertPrecipitationToInch (value, valueUnit) { method convertTemp (line 60) | convertTemp (tempInC, unit) { method convertTempToMetric (line 69) | convertTempToMetric (tempInF) { method convertWind (line 80) | convertWind (windInMS, unit) { method convertWindDirection (line 99) | convertWindDirection (windDirection) { method convertWindToMetric (line 122) | convertWindToMetric (mph) { method convertWindToMs (line 126) | convertWindToMs (kmh) { method calculateFeelsLike (line 137) | calculateFeelsLike (temperature, windSpeed, humidity) { method convertWeatherObjectToImperial (line 182) | convertWeatherObjectToImperial (weatherObject) { FILE: serveronly/watcher.js constant RESTART_DELAY_MS (line 12) | const RESTART_DELAY_MS = 500; constant PORT_CHECK_MAX_ATTEMPTS (line 13) | const PORT_CHECK_MAX_ATTEMPTS = 20; constant PORT_CHECK_INTERVAL_MS (line 14) | const PORT_CHECK_INTERVAL_MS = 500; function getServerConfig (line 27) | function getServerConfig () { function isPortAvailable (line 50) | function isPortAvailable (port) { function waitForPort (line 75) | async function waitForPort (port, maxAttempts = PORT_CHECK_MAX_ATTEMPTS) { function startServer (line 89) | function startServer () { function notifyClientsToReload (line 121) | function notifyClientsToReload () { function restartServer (line 148) | async function restartServer (reason) { function watchFile (line 184) | function watchFile (file) { FILE: tests/e2e/animateCSS_spec.js function getComplimentsElement (line 19) | async function getComplimentsElement () { function waitForAnimationClass (line 31) | async function waitForAnimationClass (cls, { timeout = 6000 } = {}) { function assertNoAnimationWithin (line 44) | async function assertNoAnimationWithin (ms = 2000) { function runAnimationTest (line 62) | async function runAnimationTest (animationIn, animationOut) { FILE: tests/e2e/helpers/global-setup.js function ensureContext (line 30) | async function ensureContext () { function openPage (line 55) | async function openPage (url) { function closeBrowser (line 69) | async function closeBrowser () { FILE: tests/e2e/translations_spec.js function createTranslationTestEnvironment (line 12) | function createTranslationTestEnvironment () { method file (line 133) | file (file) { FILE: tests/electron/modules/weather_spec.js constant CURRENT_WEATHER_CONFIG (line 5) | const CURRENT_WEATHER_CONFIG = "tests/configs/modules/weather/currentwea... constant SUNRISE_DATE (line 6) | const SUNRISE_DATE = "13 Jan 2019 00:30:00 GMT"; constant SUNSET_DATE (line 7) | const SUNSET_DATE = "13 Jan 2019 12:30:00 GMT"; constant SUN_EVENT_SELECTOR (line 8) | const SUN_EVENT_SELECTOR = ".weather .normal.medium span:nth-child(4)"; constant EXPECTED_SUNRISE_TEXT (line 9) | const EXPECTED_SUNRISE_TEXT = "7:00 am"; constant EXPECTED_SUNSET_TEXT (line 10) | const EXPECTED_SUNSET_TEXT = "3:45 pm"; FILE: tests/mocks/testNotification/testNotification.js method notificationReceived (line 13) | notificationReceived (notification, payload) { method maketd (line 31) | maketd (row, info) { method addTableRow (line 41) | addTableRow (table, col1 = null, col2 = null, col3 = null) { method getDom (line 51) | getDom () { FILE: tests/unit/classes/translator_spec.js function createTranslationTestEnvironment (line 11) | function createTranslationTestEnvironment () { method file (line 148) | file (file) { FILE: tests/unit/functions/updatenotification_spec.js function createGitHelper (line 10) | async function createGitHelper (fsStatSyncMockRef, loggerMockRef, execSh...