SYMBOL INDEX (1081 symbols across 240 files) FILE: config/vite.config.js method manualChunks (line 47) | manualChunks(id, { getModuleInfo, getModuleIds }) {} FILE: db/knex_init_db.js function createTables (line 10) | async function createTables() { FILE: db/knex_migrations/2026-02-07-0000-disable-domain-expiry-unsupported-tlds.js constant TYPES_WITH_DOMAIN_EXPIRY_SUPPORT_VIA_FIELD (line 12) | const TYPES_WITH_DOMAIN_EXPIRY_SUPPORT_VIA_FIELD = { function getSupportedTlds (line 36) | function getSupportedTlds() { function hasRdapSupport (line 53) | function hasRdapSupport(target, supportedTlds) { FILE: db/old_migrations/patch-add-docker-columns.sql type docker_host (line 4) | CREATE TABLE docker_host ( FILE: db/old_migrations/patch-api-key-table.sql type api_key (line 4) | CREATE TABLE [api_key] ( FILE: db/old_migrations/patch-group-table.sql type `group` (line 4) | create table `group` type monitor_group (line 16) | CREATE TABLE [monitor_group] type fk (line 24) | CREATE INDEX [fk] FILE: db/old_migrations/patch-improve-performance.sql type monitor_time_index (line 5) | CREATE INDEX monitor_time_index ON heartbeat (monitor_id, time) type monitor_important_time_index (line 8) | CREATE INDEX monitor_important_time_index ON heartbeat (monitor_id, impo... FILE: db/old_migrations/patch-incident-table.sql type incident (line 4) | create table incident FILE: db/old_migrations/patch-maintenance-table2.sql type maintenance (line 11) | CREATE TABLE [maintenance] ( type manual_active (line 27) | CREATE INDEX [manual_active] ON [maintenance] ( type active (line 32) | CREATE INDEX [active] ON [maintenance] ([active]) type maintenance_user_id (line 34) | CREATE INDEX [maintenance_user_id] ON [maintenance] ([user_id]) type maintenance_status_page (line 37) | CREATE TABLE maintenance_status_page ( type status_page_id_index (line 45) | CREATE INDEX [status_page_id_index] type maintenance_id_index (line 48) | CREATE INDEX [maintenance_id_index] type maintenance_timeslot (line 52) | CREATE TABLE [maintenance_timeslot] ( type maintenance_id (line 60) | CREATE INDEX [maintenance_id] ON [maintenance_timeslot] ([maintenance_id... type active_timeslot_index (line 62) | CREATE INDEX [active_timeslot_index] ON [maintenance_timeslot] ( type generated_next_index (line 68) | CREATE INDEX [generated_next_index] ON [maintenance_timeslot] ([generate... type monitor_maintenance (line 71) | CREATE TABLE monitor_maintenance ( type maintenance_id_index2 (line 79) | CREATE INDEX [maintenance_id_index2] ON [monitor_maintenance]([maintenan... type monitor_id_index (line 81) | CREATE INDEX [monitor_id_index] ON [monitor_maintenance]([monitor_id]) FILE: db/old_migrations/patch-notification_sent_history.sql type notification_sent_history (line 4) | CREATE TABLE [notification_sent_history] ( type good_index (line 12) | CREATE INDEX [good_index] ON [notification_sent_history] ( FILE: db/old_migrations/patch-proxy.sql type proxy (line 4) | CREATE TABLE proxy ( type proxy_id (line 20) | CREATE INDEX proxy_id ON monitor (proxy_id) type proxy_user_id (line 21) | CREATE INDEX proxy_user_id ON proxy (user_id) FILE: db/old_migrations/patch-setting-value-type.sql type setting_dg_tmp (line 5) | create table setting_dg_tmp FILE: db/old_migrations/patch-status-page.sql type status_page (line 4) | CREATE TABLE [status_page]( type slug (line 19) | CREATE UNIQUE INDEX [slug] ON [status_page]([slug]) type status_page_cname (line 22) | CREATE TABLE [status_page_cname]( FILE: db/old_migrations/patch1.sql type monitor_dg_tmp (line 8) | create table monitor_dg_tmp type user_id (line 33) | create index user_id on monitor (user_id) FILE: db/old_migrations/patch10.sql type tag (line 2) | CREATE TABLE tag ( type monitor_tag (line 9) | CREATE TABLE monitor_tag ( type monitor_tag_monitor_id_index (line 18) | CREATE INDEX monitor_tag_monitor_id_index ON monitor_tag (monitor_id) type monitor_tag_tag_id_index (line 19) | CREATE INDEX monitor_tag_tag_id_index ON monitor_tag (tag_id) FILE: db/old_migrations/patch2.sql type monitor_tls_info (line 4) | CREATE TABLE monitor_tls_info ( FILE: db/old_migrations/patch3.sql type monitor_dg_tmp (line 7) | create table monitor_dg_tmp type user_id (line 33) | create index user_id on monitor (user_id) FILE: db/old_migrations/patch4.sql type monitor_dg_tmp (line 8) | create table monitor_dg_tmp type user_id (line 36) | create index user_id on monitor (user_id) FILE: db/old_migrations/patch5.sql type monitor_dg_tmp (line 6) | create table monitor_dg_tmp ( type user_id (line 66) | create index user_id on monitor (user_id) FILE: db/old_migrations/patch6.sql type monitor_dg_tmp (line 6) | create table monitor_dg_tmp ( type user_id (line 70) | create index user_id on monitor (user_id) FILE: extra/beta/update-version.mjs function commit (line 53) | function commit(version) { function tagExists (line 79) | function tagExists(version) { FILE: extra/download-dist.js function download (line 21) | function download(url) { FILE: extra/generate-changelog.mjs function main (line 86) | async function main() { function getPrompt (line 108) | async function getPrompt(previousVersion) { function generateChangelog (line 119) | async function generateChangelog(previousVersion, categorizedMap) { function getPullRequestList (line 198) | async function getPullRequestList(previousVersion, removeAuthor = false) { function getAuthorList (line 255) | async function getAuthorList(prID) { function mainAuthorToFront (line 290) | async function mainAuthorToFront(mainAuthor, authorSet) { FILE: extra/healthcheck.go function main (line 18) | func main() { FILE: extra/healthcheck.js constant FBSD (line 9) | const FBSD = /^freebsd/.test(process.platform); FILE: extra/kuma-pr/pr-lib.mjs function parsePrName (line 6) | function parsePrName(prName) { FILE: extra/push-examples/csharp/index.cs class Index (line 9) | class Index method Main (line 14) | static void Main(string[] args) FILE: extra/push-examples/go/index.go function main (line 9) | func main() { FILE: extra/push-examples/java/index.java class Index (line 8) | class Index { method main (line 13) | public static void main(String[] args) { FILE: extra/rebase-pr.js function main (line 7) | async function main() { FILE: extra/release/lib.mjs function checkDocker (line 18) | function checkDocker() { function getRepoNames (line 31) | function getRepoNames() { function buildDist (line 43) | function buildDist() { function buildImage (line 61) | function buildImage( function checkTagExists (line 101) | async function checkTagExists(repoNames, version) { function checkTagExistsSingle (line 119) | async function checkTagExistsSingle(repoName, version) { function checkVersionFormat (line 147) | function checkVersionFormat(version) { function pressAnyKey (line 164) | function pressAnyKey() { function ver (line 183) | function ver(version, identifier) { function uploadArtifacts (line 202) | function uploadArtifacts(version, githubToken) { function execSync (line 241) | function execSync(cmd) { function checkReleaseBranch (line 254) | function checkReleaseBranch(expectedBranch = "release") { function createDistTarGz (line 268) | async function createDistTarGz() { function createReleasePR (line 310) | async function createReleasePR(version, previousVersion, dryRun, branchN... FILE: extra/remove-2fa.js function question (line 50) | function question(question) { FILE: extra/reset-password.js function question (line 93) | function question(question) { function disconnectAllSocketClients (line 107) | function disconnectAllSocketClients(username, password) { FILE: extra/simple-dns-server.js function type (line 141) | function type(code) { FILE: extra/simple-mqtt-server.js class SimpleMqttServer (line 6) | class SimpleMqttServer { method constructor (line 13) | constructor(port) { method start (line 21) | start() { FILE: extra/update-version.mjs function commit (line 56) | function commit(version) { function tagExists (line 82) | function tagExists(version) { FILE: extra/uptime-kuma-push/uptime-kuma-push.go function main (line 10) | func main() { FILE: server/2fa.js class TwoFA (line 3) | class TwoFA { method disable2FA (line 9) | static async disable2FA(userID) { FILE: server/analytics/analytics.js function getAnalyticsScript (line 12) | function getAnalyticsScript(statusPage) { function isValidAnalyticsConfig (line 35) | function isValidAnalyticsConfig(statusPage) { FILE: server/analytics/google-analytics.js function getGoogleAnalyticsScript (line 10) | function getGoogleAnalyticsScript(tagId) { FILE: server/analytics/matomo-analytics.js function getMatomoAnalyticsScript (line 11) | function getMatomoAnalyticsScript(matomoUrl, siteId) { FILE: server/analytics/plausible-analytics.js function getPlausibleAnalyticsScript (line 11) | function getPlausibleAnalyticsScript(scriptUrl, domainsToMonitor) { FILE: server/analytics/umami-analytics.js function getUmamiAnalyticsScript (line 11) | function getUmamiAnalyticsScript(scriptUrl, websiteId) { FILE: server/auth.js function verifyAPIKey (line 41) | async function verifyAPIKey(key) { function apiAuthorizer (line 79) | function apiAuthorizer(username, password, callback) { function userAuthorizer (line 106) | function userAuthorizer(username, password, callback) { FILE: server/check-version.js constant UPDATE_CHECKER_INTERVAL_MS (line 10) | const UPDATE_CHECKER_INTERVAL_MS = 1000 * 60 * 60 * 48; constant UPDATE_CHECKER_LATEST_VERSION_URL (line 11) | const UPDATE_CHECKER_LATEST_VERSION_URL = "https://uptime.kuma.pet/versi... FILE: server/client.js function sendNotificationList (line 18) | async function sendNotificationList(socket) { function sendHeartbeatList (line 46) | async function sendHeartbeatList(socket, monitorID, toUser = false, over... function sendImportantHeartbeatList (line 74) | async function sendImportantHeartbeatList(socket, monitorID, toUser = fa... function sendProxyList (line 104) | async function sendProxyList(socket) { function sendAPIKeyList (line 123) | async function sendAPIKeyList(socket) { function sendInfo (line 145) | async function sendInfo(socket, hideVersion = false) { function sendDockerHostList (line 170) | async function sendDockerHostList(socket) { function sendRemoteBrowserList (line 192) | async function sendRemoteBrowserList(socket) { function sendMonitorTypeList (line 214) | async function sendMonitorTypeList(socket) { FILE: server/config.js function getLocalWebSocketURL (line 30) | function getLocalWebSocketURL() { FILE: server/database.js class Database (line 20) | class Database { method initDataDir (line 135) | static initDataDir(args) { method readDBConfig (line 170) | static readDBConfig() { method writeDBConfig (line 191) | static writeDBConfig(dbConfig) { method connect (line 202) | static async connect(testMode = false, autoloadModels = true, noLog = ... method initSQLite (line 405) | static async initSQLite(rawConn, testMode) { method initMariaDB (line 433) | static async initMariaDB() { method patch (line 451) | static async patch(port = undefined, hostname = undefined) { method rollbackLatestPatch (line 493) | static async rollbackLatestPatch() {} method patchSqlite (line 500) | static async patchSqlite() { method patchSqlite2 (line 553) | static async patchSqlite2() { method migrateNewStatusPage (line 593) | static async migrateNewStatusPage() { method patch2Recursion (line 659) | static async patch2Recursion(sqlFilename, databasePatchedFiles) { method importSQLFile (line 693) | static async importSQLFile(filename) { method close (line 727) | static async close() { method getSize (line 760) | static async getSize() { method shrink (line 774) | static async shrink() { method sqlHourOffset (line 783) | static sqlHourOffset() { method migrateAggregateTable (line 802) | static async migrateAggregateTable(port, hostname = undefined) { method clearHeartbeatData (line 936) | static async clearHeartbeatData(detailedLog = false) { FILE: server/docker.js class DockerHost (line 9) | class DockerHost { method save (line 21) | static async save(dockerHost, dockerHostID, userID) { method delete (line 50) | static async delete(dockerHostID, userID) { method testDockerHost (line 68) | static async testDockerHost(dockerHost) { method patchDockerURL (line 118) | static patchDockerURL(url) { method getHttpsAgentOptions (line 142) | static async getHttpsAgentOptions(dockerType, url) { FILE: server/embedded-mariadb.js class EmbeddedMariaDB (line 9) | class EmbeddedMariaDB { method getInstance (line 38) | static getInstance() { method hasInstance (line 48) | static hasInstance() { method start (line 57) | start() { method startChildProcess (line 86) | startChildProcess() { method stop (line 138) | stop() { method initDB (line 149) | initDB() { method initDBAfterStarted (line 203) | async initDBAfterStarted() { FILE: server/image-data-uri.js function decode (line 17) | function decode(dataURI) { function encode (line 38) | function encode(data, mediaType) { function outputFile (line 57) | function outputFile(dataURI, filePath) { FILE: server/jobs/clear-old-data.js constant DEFAULT_KEEP_PERIOD (line 7) | const DEFAULT_KEEP_PERIOD = 365; FILE: server/model/api_key.js class APIKey (line 5) | class APIKey extends BeanModel { method getStatus (line 10) | getStatus() { method toJSON (line 24) | toJSON() { method toPublicJSON (line 42) | toPublicJSON() { method save (line 60) | static async save(key, userID) { FILE: server/model/docker_host.js class DockerHost (line 3) | class DockerHost extends BeanModel { method toJSON (line 8) | toJSON() { FILE: server/model/domain_expiry.js function getRdapServer (line 20) | async function getRdapServer(tld) { function getRdapDnsData (line 39) | async function getRdapDnsData() { function getOfflineRdapDnsData (line 89) | async function getOfflineRdapDnsData() { function getRdapDomainExpiryDate (line 110) | async function getRdapDomainExpiryDate(domain) { function sendDomainNotificationByTargetDays (line 150) | async function sendDomainNotificationByTargetDays(domain, daysRemaining,... class DomainExpiry (line 170) | class DomainExpiry extends BeanModel { method findByName (line 175) | static async findByName(domain) { method createByName (line 183) | static createByName(domain) { method parseName (line 195) | parseName() { method tld (line 202) | get tld() { method checkSupport (line 211) | static async checkSupport(monitor) { method findByDomainNameOrCreate (line 251) | static async findByDomainNameOrCreate(domainName) { method daysRemaining (line 262) | get daysRemaining() { method getExpiryDate (line 269) | async getExpiryDate() { method checkExpiry (line 278) | static async checkExpiry(domainName) { method sendNotifications (line 309) | static async sendNotifications(domainName, notificationList) { FILE: server/model/group.js class Group (line 4) | class Group extends BeanModel { method toPublicJSON (line 13) | async toPublicJSON(showTags = false, certExpiry = false) { method getMonitorList (line 33) | async getMonitorList() { FILE: server/model/heartbeat.js class Heartbeat (line 13) | class Heartbeat extends BeanModel { method toPublicJSON (line 19) | toPublicJSON() { method toJSON (line 32) | toJSON() { method toJSONAsync (line 51) | async toJSONAsync(opts) { method decodeResponseValue (line 70) | static async decodeResponseValue(response) { FILE: server/model/incident.js class Incident (line 5) | class Incident extends BeanModel { method resolve (line 10) | async resolve() { method toPublicJSON (line 21) | toPublicJSON() { FILE: server/model/maintenance.js class Maintenance (line 9) | class Maintenance extends BeanModel { method toPublicJSON (line 15) | async toPublicJSON() { method toJSON (line 101) | async toJSON(timezone = null) { method getDayOfWeekList (line 110) | getDayOfWeekList() { method getDayOfMonthList (line 121) | getDayOfMonthList() { method calcDuration (line 131) | calcDuration() { method jsonToBean (line 146) | static async jsonToBean(bean, obj) { method validateCron (line 202) | static validateCron(cron) { method run (line 212) | async run(throwError = false) { method getRunningTimeslot (line 346) | getRunningTimeslot() { method inferDuration (line 366) | inferDuration(customDuration) { method stop (line 383) | stop() { method isUnderMaintenance (line 394) | async isUnderMaintenance() { method getTimezone (line 402) | async getTimezone() { method getTimezoneOffset (line 413) | async getTimezoneOffset() { method getStatus (line 421) | async getStatus() { method generateCron (line 455) | async generateCron() { FILE: server/model/monitor.js class Monitor (line 76) | class Monitor extends BeanModel { method toPublicJSON (line 85) | async toPublicJSON(showTags = false, certExpiry = false) { method toJSON (line 117) | toJSON(preloadData = {}, includeSensitiveData = true) { method getTags (line 261) | async getTags() { method getCertExpiry (line 274) | async getCertExpiry(monitorID) { method isEnabledExpiryNotification (line 296) | isEnabledExpiryNotification() { method isPingNumeric (line 304) | isPingNumeric() { method getIgnoreTls (line 312) | getIgnoreTls() { method getWsIgnoreSecWebsocketAcceptHeader (line 320) | getWsIgnoreSecWebsocketAcceptHeader() { method isUpsideDown (line 328) | isUpsideDown() { method isInvertKeyword (line 336) | isInvertKeyword() { method getGrpcEnableTls (line 344) | getGrpcEnableTls() { method getCacheBust (line 352) | getCacheBust() { method getAcceptedStatuscodes (line 360) | getAcceptedStatuscodes() { method getGameDigGivenPortOnly (line 368) | getGameDigGivenPortOnly() { method getKafkaProducerSsl (line 376) | getKafkaProducerSsl() { method getKafkaProducerAllowAutoTopicCreation (line 384) | getKafkaProducerAllowAutoTopicCreation() { method getSaveResponse (line 392) | getSaveResponse() { method getSaveErrorResponse (line 400) | getSaveErrorResponse() { method start (line 409) | async start(io) { method saveResponseData (line 1157) | async saveResponseData(bean, data) { method makeAxiosRequest (line 1187) | async makeAxiosRequest(options, finalCall = false) { method stop (line 1245) | async stop() { method getPrometheus (line 1256) | getPrometheus() { method getUrl (line 1266) | getUrl() { method getURLProtocol (line 1278) | getURLProtocol() { method updateTlsInfo (line 1292) | async updateTlsInfo(checkCertificateResult) { method isActive (line 1336) | static async isActive(monitorID, active) { method sendStats (line 1349) | static async sendStats(io, monitorID, userID) { method sendCertInfo (line 1386) | static async sendCertInfo(io, monitorID, userID) { method sendDomainInfo (line 1400) | static async sendDomainInfo(io, monitorID, userID) { method isImportantBeat (line 1419) | static isImportantBeat(isFirstBeat, previousBeatStatus, currentBeatSta... method isImportantForNotification (line 1454) | static isImportantForNotification(isFirstBeat, previousBeatStatus, cur... method sendNotification (line 1486) | static async sendNotification(isFirstBeat, monitor, bean) { method getNotificationList (line 1560) | static async getNotificationList(monitor) { method sendCertNotificationByTargetDays (line 1578) | async sendCertNotificationByTargetDays(certCN, certType, daysRemaining... method getPreviousHeartbeat (line 1621) | static async getPreviousHeartbeat(monitorID) { method isUnderMaintenance (line 1630) | static async isUnderMaintenance(monitorID) { method validate (line 1659) | validate() { method getMonitorNotification (line 1811) | static async getMonitorNotification(monitorIDs) { method getMonitorTag (line 1827) | static async getMonitorTag(monitorIDs) { method preparePreloadData (line 1844) | static async preparePreloadData(monitorData) { method getParent (line 1926) | static async getParent(monitorID) { method getChildren (line 1943) | static async getChildren(monitorID) { method getAllPath (line 1959) | static async getAllPath(monitorID, name) { method getAllChildrenIDs (line 1980) | static async getAllChildrenIDs(monitorID) { method unlinkAllChildren (line 2002) | static async unlinkAllChildren(groupID) { method deleteMonitor (line 2012) | static async deleteMonitor(monitorID, userID) { method deleteMonitorRecursively (line 2031) | static async deleteMonitorRecursively(monitorID, userID) { method isParentActive (line 2054) | static async isParentActive(monitorID) { method makeOidcTokenClientCredentialsRequest (line 2069) | async makeOidcTokenClientCredentialsRequest() { method handleTlsInfo (line 2096) | async handleTlsInfo(tlsInfo) { FILE: server/model/proxy.js class Proxy (line 3) | class Proxy extends BeanModel { method toJSON (line 8) | toJSON() { FILE: server/model/remote_browser.js class RemoteBrowser (line 3) | class RemoteBrowser extends BeanModel { method toJSON (line 8) | toJSON() { FILE: server/model/status_page.js class StatusPage (line 24) | class StatusPage extends BeanModel { method handleStatusPageRSSResponse (line 38) | static async handleStatusPageRSSResponse(response, slug, request) { method handleStatusPageResponse (line 57) | static async handleStatusPageResponse(response, indexHTML, slug) { method renderRSS (line 79) | static async renderRSS(statusPage, feedUrl) { method buildRSSUrl (line 117) | static async buildRSSUrl(slug, request) { method renderHTML (line 149) | static async renderHTML(indexHTML, statusPage) { method overallStatus (line 207) | static overallStatus(heartbeats) { method getStatusDescription (line 236) | static getStatusDescription(status) { method getRSSPageData (line 266) | static async getRSSPageData(statusPage) { method getStatusPageData (line 309) | static async getStatusPageData(statusPage) { method loadDomainMappingList (line 347) | static async loadDomainMappingList() { method sendStatusPageList (line 361) | static async sendStatusPageList(io, socket) { method updateDomainNameList (line 379) | async updateDomainNameList(domainNameList) { method getDomainNameList (line 417) | getDomainNameList() { method toJSON (line 433) | async toJSON() { method toPublicJSON (line 462) | async toPublicJSON() { method slugToID (line 489) | static async slugToID(slug) { method getIcon (line 497) | getIcon() { method getIncidentHistory (line 512) | static async getIncidentHistory(statusPageId, cursor = null, isPublic ... method getMaintenanceList (line 558) | static async getMaintenanceList(statusPageId) { FILE: server/model/tag.js class Tag (line 3) | class Tag extends BeanModel { method toJSON (line 8) | toJSON() { FILE: server/model/user.js class User (line 7) | class User extends BeanModel { method resetPassword (line 15) | static async resetPassword(userID, newPassword) { method resetPassword (line 27) | async resetPassword(newPassword) { method createJWT (line 41) | static createJWT(user, jwtSecret) { FILE: server/modules/apicache/apicache.js function getSafeHeaders (line 54) | function getSafeHeaders(res) { function ApiCache (line 59) | function ApiCache() { FILE: server/modules/apicache/memory-cache.js function MemoryCache (line 1) | function MemoryCache() { FILE: server/modules/axios-ntlm/lib/hash.js function createLMResponse (line 4) | function createLMResponse(challenge, lmhash) { function createLMHash (line 13) | function createLMHash(password) { function calculateDES (line 25) | function calculateDES(key, message) { function createNTLMResponse (line 45) | function createNTLMResponse(challenge, ntlmhash) { function createNTLMHash (line 54) | function createNTLMHash(password) { function createNTLMv2Hash (line 59) | function createNTLMv2Hash(ntlmhash, username, authTargetName) { function createLMv2Response (line 64) | function createLMv2Response(type2message, username, ntlmhash, nonce, tar... function createNTLMv2Response (line 78) | function createNTLMv2Response(type2message, username, ntlmhash, nonce, t... function createPseudoRandomValue (line 111) | function createPseudoRandomValue(length) { FILE: server/modules/axios-ntlm/lib/ntlm.js function createType1Message (line 7) | function createType1Message(workstation, target) { function decodeType2Message (line 51) | function decodeType2Message(str) { function createType3Message (line 154) | function createType3Message(type2Message, username, password, workstatio... FILE: server/modules/axios-ntlm/lib/ntlmClient.js function adopt (line 41) | function adopt(value) { function fulfilled (line 49) | function fulfilled(value) { function rejected (line 56) | function rejected(value) { function step (line 63) | function step(result) { function verb (line 93) | function verb(n) { function step (line 98) | function step(op) { function NtlmClient (line 187) | function NtlmClient(credentials, AxiosConfig) { FILE: server/modules/dayjs/plugin/timezone.d.ts type Dayjs (line 7) | interface Dayjs { type DayjsTimezone (line 12) | interface DayjsTimezone { FILE: server/monitor-conditions/evaluator.js function evaluateExpression (line 10) | function evaluateExpression(expression, context) { function evaluateExpressionGroup (line 38) | function evaluateExpressionGroup(group, context) { FILE: server/monitor-conditions/expression.js constant LOGICAL (line 5) | const LOGICAL = { function processMonitorConditions (line 17) | function processMonitorConditions(conditions, parentGroup) { class ConditionExpressionGroup (line 35) | class ConditionExpressionGroup { method constructor (line 50) | constructor(children = [], andOr = LOGICAL.AND) { method fromMonitor (line 59) | static fromMonitor(monitor) { class ConditionExpression (line 72) | class ConditionExpression { method constructor (line 99) | constructor(variable, operator, value, andOr = LOGICAL.AND) { FILE: server/monitor-conditions/operators.js class ConditionOperator (line 1) | class ConditionOperator { method test (line 9) | test(variable, value) { constant OP_STR_EQUALS (line 14) | const OP_STR_EQUALS = "equals"; constant OP_STR_NOT_EQUALS (line 16) | const OP_STR_NOT_EQUALS = "not_equals"; constant OP_CONTAINS (line 18) | const OP_CONTAINS = "contains"; constant OP_NOT_CONTAINS (line 20) | const OP_NOT_CONTAINS = "not_contains"; constant OP_STARTS_WITH (line 22) | const OP_STARTS_WITH = "starts_with"; constant OP_NOT_STARTS_WITH (line 24) | const OP_NOT_STARTS_WITH = "not_starts_with"; constant OP_ENDS_WITH (line 26) | const OP_ENDS_WITH = "ends_with"; constant OP_NOT_ENDS_WITH (line 28) | const OP_NOT_ENDS_WITH = "not_ends_with"; constant OP_NUM_EQUALS (line 30) | const OP_NUM_EQUALS = "num_equals"; constant OP_NUM_NOT_EQUALS (line 32) | const OP_NUM_NOT_EQUALS = "num_not_equals"; constant OP_LT (line 34) | const OP_LT = "lt"; constant OP_GT (line 36) | const OP_GT = "gt"; constant OP_LTE (line 38) | const OP_LTE = "lte"; constant OP_GTE (line 40) | const OP_GTE = "gte"; class StringEqualsOperator (line 45) | class StringEqualsOperator extends ConditionOperator { method test (line 52) | test(variable, value) { class StringNotEqualsOperator (line 60) | class StringNotEqualsOperator extends ConditionOperator { method test (line 67) | test(variable, value) { class ContainsOperator (line 76) | class ContainsOperator extends ConditionOperator { method test (line 83) | test(variable, value) { class NotContainsOperator (line 96) | class NotContainsOperator extends ConditionOperator { method test (line 103) | test(variable, value) { class StartsWithOperator (line 115) | class StartsWithOperator extends ConditionOperator { method test (line 122) | test(variable, value) { class NotStartsWithOperator (line 130) | class NotStartsWithOperator extends ConditionOperator { method test (line 137) | test(variable, value) { class EndsWithOperator (line 145) | class EndsWithOperator extends ConditionOperator { method test (line 152) | test(variable, value) { class NotEndsWithOperator (line 160) | class NotEndsWithOperator extends ConditionOperator { method test (line 167) | test(variable, value) { class NumberEqualsOperator (line 175) | class NumberEqualsOperator extends ConditionOperator { method test (line 182) | test(variable, value) { class NumberNotEqualsOperator (line 190) | class NumberNotEqualsOperator extends ConditionOperator { method test (line 197) | test(variable, value) { class LessThanOperator (line 205) | class LessThanOperator extends ConditionOperator { method test (line 212) | test(variable, value) { class GreaterThanOperator (line 220) | class GreaterThanOperator extends ConditionOperator { method test (line 227) | test(variable, value) { class LessThanOrEqualToOperator (line 235) | class LessThanOrEqualToOperator extends ConditionOperator { method test (line 242) | test(variable, value) { class GreaterThanOrEqualToOperator (line 250) | class GreaterThanOrEqualToOperator extends ConditionOperator { method test (line 257) | test(variable, value) { FILE: server/monitor-conditions/variables.js class ConditionVariable (line 8) | class ConditionVariable { method constructor (line 23) | constructor(id, operators = []) { FILE: server/monitor-types/dns.js class DnsMonitorType (line 12) | class DnsMonitorType extends MonitorType { method check (line 22) | async check(monitor, heartbeat, _server) { method resolveDnsResolverServers (line 117) | async resolveDnsResolverServers(dnsResolveServer) { method dnsResolve (line 174) | async dnsResolve(hostname, resolverServer, resolverPort, rrtype) { FILE: server/monitor-types/gamedig.js class GameDigMonitorType (line 5) | class GameDigMonitorType extends MonitorType { method check (line 11) | async check(monitor, heartbeat, server) { FILE: server/monitor-types/globalping.js class GlobalpingMonitorType (line 22) | class GlobalpingMonitorType extends MonitorType { method constructor (line 30) | constructor(httpUserAgent) { method check (line 38) | async check(monitor, heartbeat, _server) { method ping (line 67) | async ping(client, monitor, heartbeat, hasAPIToken) { method http (line 138) | async http(client, monitor, heartbeat, hasAPIToken) { method dns (line 260) | async dns(client, monitor, heartbeat, hasAPIToken, redbean) { method checkDNSRecordValueMatch (line 354) | checkDNSRecordValueMatch(monitor, values, keyword) { method handleKeywordForHTTP (line 388) | async handleKeywordForHTTP(monitor, heartbeat, result, probe) { method handleJSONQueryForHTTP (line 414) | async handleJSONQueryForHTTP(monitor, heartbeat, result, probe) { method handleTLSInfo (line 446) | async handleTLSInfo(monitor, protocol, probe, tlsInfo) { method getOauth2AuthHeader (line 509) | async getOauth2AuthHeader(monitor) { method getBasicAuthHeader (line 544) | getBasicAuthHeader(monitor) { method formatApiError (line 559) | formatApiError(error) { method formatTooManyRequestsError (line 574) | formatTooManyRequestsError(hasAPIToken) { method formatProbeLocation (line 587) | formatProbeLocation(probe) { method formatResponse (line 608) | formatResponse(probe, text) { FILE: server/monitor-types/group.js class GroupMonitorType (line 5) | class GroupMonitorType extends MonitorType { method check (line 12) | async check(monitor, heartbeat, _server) { FILE: server/monitor-types/grpc.js class GrpcKeywordMonitorType (line 7) | class GrpcKeywordMonitorType extends MonitorType { method check (line 13) | async check(monitor, heartbeat, _server) { method constructGrpcService (line 49) | constructGrpcService(url, protobufData, serviceName, enableTls) { method grpcQuery (line 82) | async grpcQuery(service, method, body) { FILE: server/monitor-types/manual.js class ManualMonitorType (line 4) | class ManualMonitorType extends MonitorType { method check (line 16) | async check(monitor, heartbeat) { FILE: server/monitor-types/mongodb.js class MongodbMonitorType (line 6) | class MongodbMonitorType extends MonitorType { method check (line 12) | async check(monitor, heartbeat, _server) { method runMongodbCommand (line 57) | async runMongodbCommand(connectionString, command) { FILE: server/monitor-types/monitor-type.js class MonitorType (line 1) | class MonitorType { method check (line 33) | async check(monitor, heartbeat, server) { FILE: server/monitor-types/mqtt.js class MqttMonitorType (line 10) | class MqttMonitorType extends MonitorType { method check (line 24) | async check(monitor, heartbeat, server) { method checkKeyword (line 61) | checkKeyword(monitor, heartbeat, messageTopic, receivedMessage) { method checkJsonQuery (line 77) | async checkJsonQuery(monitor, heartbeat, receivedMessage) { method checkConditions (line 99) | async checkConditions(monitor, heartbeat, messageTopic, receivedMessag... method mqttAsync (line 137) | mqttAsync(hostname, topic, options = {}) { FILE: server/monitor-types/mssql.js class MssqlMonitorType (line 10) | class MssqlMonitorType extends MonitorType { method check (line 19) | async check(monitor, heartbeat, _server) { method mssqlQuery (line 67) | async mssqlQuery(connectionString, query) { method mssqlQuerySingleValue (line 95) | async mssqlQuerySingleValue(connectionString, query) { FILE: server/monitor-types/mysql.js class MysqlMonitorType (line 10) | class MysqlMonitorType extends MonitorType { method check (line 19) | async check(monitor, heartbeat, _server) { method mysqlQuery (line 71) | mysqlQuery(connectionString, query, password = undefined) { method mysqlQuerySingleValue (line 110) | mysqlQuerySingleValue(connectionString, query, password = undefined) { FILE: server/monitor-types/oracledb.js class OracleDbMonitorType (line 10) | class OracleDbMonitorType extends MonitorType { method check (line 19) | async check(monitor, heartbeat, _server) { method oracledbQuery (line 75) | async oracledbQuery(connectionString, query, username, password) { method oracledbQuerySingleValue (line 114) | async oracledbQuerySingleValue(connectionString, query, username, pass... FILE: server/monitor-types/postgres.js class PostgresMonitorType (line 7) | class PostgresMonitorType extends MonitorType { method check (line 13) | async check(monitor, heartbeat, _server) { method postgresQuery (line 35) | async postgresQuery(connectionString, query) { FILE: server/monitor-types/rabbitmq.js class RabbitMqMonitorType (line 6) | class RabbitMqMonitorType extends MonitorType { method check (line 12) | async check(monitor, heartbeat, server) { method checkSingleNode (line 57) | async checkSingleNode(monitor, baseUrl, nodeInfo) { FILE: server/monitor-types/real-browser-monitor-type.js function isAllowedChromeExecutable (line 64) | async function isAllowedChromeExecutable(executablePath) { function getBrowser (line 78) | async function getBrowser() { function getRemoteBrowser (line 101) | async function getRemoteBrowser(remoteBrowserID, userId) { function prepareChromeExecutable (line 113) | async function prepareChromeExecutable(executablePath) { function installChromiumViaApt (line 148) | async function installChromiumViaApt(executablePath) { function findChrome (line 182) | async function findChrome(executables) { function resetChrome (line 203) | async function resetChrome() { function testChrome (line 215) | async function testChrome(executablePath) { function testRemoteBrowser (line 236) | async function testRemoteBrowser(remoteBrowserURL) { class RealBrowserMonitorType (line 246) | class RealBrowserMonitorType extends MonitorType { method check (line 252) | async check(monitor, heartbeat, server) { FILE: server/monitor-types/redis.js class RedisMonitorType (line 5) | class RedisMonitorType extends MonitorType { method check (line 11) | async check(monitor, heartbeat, _server) { method redisPingAsync (line 22) | redisPingAsync(dsn, rejectUnauthorized) { FILE: server/monitor-types/sip-options.js class SIPMonitorType (line 5) | class SIPMonitorType extends MonitorType { method check (line 17) | async check(monitor, heartbeat, _server) { method runSipSak (line 30) | async runSipSak(hostname, port, timeout) { method parseSipsakResponse (line 52) | parseSipsakResponse(res, heartbeat) { FILE: server/monitor-types/smtp.js class SMTPMonitorType (line 5) | class SMTPMonitorType extends MonitorType { method check (line 11) | async check(monitor, heartbeat, _server) { FILE: server/monitor-types/snmp.js class SNMPMonitorType (line 5) | class SNMPMonitorType extends MonitorType { method check (line 11) | async check(monitor, heartbeat, _server) { FILE: server/monitor-types/system-service.js class SystemServiceMonitorType (line 6) | class SystemServiceMonitorType extends MonitorType { method check (line 17) | async check(monitor, heartbeat) { method checkLinux (line 37) | async checkLinux(serviceName, heartbeat) { method checkWindows (line 71) | async checkWindows(serviceName, heartbeat) { FILE: server/monitor-types/tailscale-ping.js class TailscalePing (line 5) | class TailscalePing extends MonitorType { method check (line 11) | async check(monitor, heartbeat, _server) { method runTailscalePing (line 28) | async runTailscalePing(hostname, interval) { method parseTailscaleOutput (line 51) | parseTailscaleOutput(tailscaleOutput, heartbeat) { FILE: server/monitor-types/tcp.js constant TLS_ALERT_CODES (line 12) | const TLS_ALERT_CODES = { function parseTlsAlertNumber (line 54) | function parseTlsAlertNumber(errorMessage) { function getTlsAlertName (line 67) | function getTlsAlertName(alertNumber) { class TCPMonitorType (line 100) | class TCPMonitorType extends MonitorType { method check (line 106) | async check(monitor, heartbeat, _server) { method checkTcp (line 125) | async checkTcp(monitor, heartbeat) { method performStartTls (line 154) | performStartTls(monitor) { method checkTlsCertificate (line 236) | async checkTlsCertificate(monitor, reuseSocket) { method checkTlsAlert (line 288) | async checkTlsAlert(monitor, heartbeat, expectedTlsAlert) { method attemptTlsConnection (line 347) | attemptTlsConnection(monitor, options, startTime, timeout) { FILE: server/monitor-types/websocket-upgrade.js constant WS_ERR_CODE (line 6) | const WS_ERR_CODE = { class WebSocketMonitorType (line 25) | class WebSocketMonitorType extends MonitorType { method check (line 31) | async check(monitor, heartbeat, _server) { method attemptUpgrade (line 58) | async attemptUpgrade(monitor) { FILE: server/notification-providers/360messenger.js class Whatsapp360messenger (line 4) | class Whatsapp360messenger extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method applyTemplate (line 134) | applyTemplate(template, msg, monitorJSON, heartbeatJSON) { FILE: server/notification-providers/46elks.js class Elks (line 4) | class Elks extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/HaloPSA.js class HaloPSA (line 7) | class HaloPSA extends NotificationProvider { method send (line 22) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/Webpush.js class Webpush (line 5) | class Webpush extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/alerta.js class Alerta (line 5) | class Alerta extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/alertnow.js class AlertNow (line 6) | class AlertNow extends NotificationProvider { method send (line 12) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/aliyun-sms.js class AliyunSMS (line 7) | class AliyunSMS extends NotificationProvider { method send (line 13) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method sendSms (line 53) | async sendSms(notification, msgbody) { method sign (line 95) | sign(param, AccessKeySecret) { method statusToString (line 134) | statusToString(status) { method removeIpAndDomain (line 150) | removeIpAndDomain(message) { FILE: server/notification-providers/apprise.js class Apprise (line 4) | class Apprise extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/bale.js class Bale (line 4) | class Bale extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/bark.js class Bark (line 18) | class Bark extends NotificationProvider { method send (line 24) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method additionalParameters (line 54) | additionalParameters(notification) { method checkResult (line 80) | checkResult(result) { method postNotification (line 97) | async postNotification(notification, title, subtitle, endpoint) { FILE: server/notification-providers/bitrix24.js class Bitrix24 (line 5) | class Bitrix24 extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/brevo.js class Brevo (line 4) | class Brevo extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/call-me-bot.js class CallMeBot (line 4) | class CallMeBot extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/cellsynt.js class Cellsynt (line 4) | class Cellsynt extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/clicksendsms.js class ClickSendSMS (line 4) | class ClickSendSMS extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/dingding.js class DingDing (line 6) | class DingDing extends NotificationProvider { method send (line 12) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method sendToDingDing (line 63) | async sendToDingDing(notification, params) { method sign (line 89) | sign(timestamp, secretKey) { method statusToString (line 100) | statusToString(status) { FILE: server/notification-providers/discord.js class Discord (line 5) | class Discord extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method formatDuration (line 268) | formatDuration(timeInSeconds) { FILE: server/notification-providers/evolution.js class Evolution (line 4) | class Evolution extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/feishu.js class Feishu (line 5) | class Feishu extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { function getContent (line 97) | function getContent(heartbeatJSON) { FILE: server/notification-providers/flashduty.js class FlashDuty (line 7) | class FlashDuty extends NotificationProvider { method send (line 13) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method genMonitorUrl (line 51) | genMonitorUrl(monitorInfo) { method postNotification (line 70) | async postNotification(notification, title, body, monitorInfo, eventSt... FILE: server/notification-providers/fluxer.js class Fluxer (line 5) | class Fluxer extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method formatDuration (line 228) | formatDuration(timeInSeconds) { FILE: server/notification-providers/freemobile.js class FreeMobile (line 4) | class FreeMobile extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/goalert.js class GoAlert (line 5) | class GoAlert extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/google-chat.js class GoogleChat (line 6) | class GoogleChat extends NotificationProvider { method send (line 12) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/google-sheets.js class GoogleSheets (line 5) | class GoogleSheets extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/gorush.js class Gorush (line 4) | class Gorush extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/gotify.js class Gotify (line 4) | class Gotify extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/grafana-oncall.js class GrafanaOncall (line 5) | class GrafanaOncall extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/gtx-messaging.js class GtxMessaging (line 4) | class GtxMessaging extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/heii-oncall.js class HeiiOnCall (line 6) | class HeiiOnCall extends NotificationProvider { method send (line 12) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/home-assistant.js class HomeAssistant (line 6) | class HomeAssistant extends NotificationProvider { method send (line 12) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/jira-service-management.js class JiraServiceManagement (line 7) | class JiraServiceManagement extends NotificationProvider { method send (line 13) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method getConfig (line 71) | getConfig(notification) { method post (line 90) | async post(notification, url, data) { FILE: server/notification-providers/keep.js class Keep (line 4) | class Keep extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/kook.js class Kook (line 4) | class Kook extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/line.js class Line (line 5) | class Line extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/lunasea.js class LunaSea (line 5) | class LunaSea extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method getTarget (line 60) | getTarget(notification) { FILE: server/notification-providers/matrix.js class Matrix (line 6) | class Matrix extends NotificationProvider { method send (line 12) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/mattermost.js class Mattermost (line 5) | class Mattermost extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/max.js class Max (line 4) | class Max extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/nextcloudtalk.js class NextcloudTalk (line 7) | class NextcloudTalk extends NotificationProvider { method send (line 13) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/nostr.js class Nostr (line 7) | class Nostr extends NotificationProvider { method send (line 13) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method getPrivateKey (line 80) | async getPrivateKey(sender) { method getPublicKeys (line 95) | async getPublicKeys(recipients) { FILE: server/notification-providers/notifery.js class Notifery (line 6) | class Notifery extends NotificationProvider { method send (line 12) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/notification-provider.js class NotificationProvider (line 7) | class NotificationProvider { method send (line 23) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method extractAddress (line 32) | extractAddress(monitorJSON) { method renderTemplate (line 75) | async renderTemplate(template, msg, monitorJSON, heartbeatJSON) { method throwGeneralAxiosError (line 121) | throwGeneralAxiosError(error) { method getAxiosConfigWithProxy (line 175) | getAxiosConfigWithProxy(axiosConfig = {}) { FILE: server/notification-providers/ntfy.js class Ntfy (line 5) | class Ntfy extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/octopush.js class Octopush (line 4) | class Octopush extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/onebot.js class OneBot (line 4) | class OneBot extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/onechat.js class OneChat (line 5) | class OneChat extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/onesender.js class Onesender (line 4) | class Onesender extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/opsgenie.js class Opsgenie (line 9) | class Opsgenie extends NotificationProvider { method send (line 15) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method post (line 76) | async post(notification, url, data) { FILE: server/notification-providers/pagerduty.js class PagerDuty (line 7) | class PagerDuty extends NotificationProvider { method send (line 13) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method checkResult (line 44) | checkResult(result) { method postNotification (line 62) | async postNotification(notification, title, body, monitorInfo, eventAc... FILE: server/notification-providers/pagertree.js class PagerTree (line 7) | class PagerTree extends NotificationProvider { method send (line 13) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method checkResult (line 45) | checkResult(result) { method postNotification (line 63) | async postNotification(notification, title, monitorJSON, heartbeatJSON... FILE: server/notification-providers/promosms.js class PromoSMS (line 4) | class PromoSMS extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/pumble.js class Pumble (line 5) | class Pumble extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/pushbullet.js class Pushbullet (line 6) | class Pushbullet extends NotificationProvider { method send (line 12) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/pushdeer.js class PushDeer (line 5) | class PushDeer extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/pushover.js class Pushover (line 8) | class Pushover extends NotificationProvider { method send (line 14) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/pushplus.js class PushPlus (line 5) | class PushPlus extends NotificationProvider { method send (line 16) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method checkStatus (line 45) | checkStatus(heartbeatJSON, monitorJSON) { FILE: server/notification-providers/pushy.js class Pushy (line 4) | class Pushy extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/resend.js class Resend (line 4) | class Resend extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/rocket-chat.js class RocketChat (line 7) | class RocketChat extends NotificationProvider { method send (line 13) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/send-grid.js class SendGrid (line 4) | class SendGrid extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/serverchan.js class ServerChan (line 5) | class ServerChan extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method checkStatus (line 44) | checkStatus(heartbeatJSON, monitorJSON) { FILE: server/notification-providers/serwersms.js class SerwerSMS (line 4) | class SerwerSMS extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/sevenio.js class SevenIO (line 5) | class SevenIO extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/signal.js class Signal (line 4) | class Signal extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/signl4.js class SIGNL4 (line 5) | class SIGNL4 extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/slack.js class Slack (line 7) | class Slack extends NotificationProvider { method deprecateURL (line 17) | static async deprecateURL(url) { method buildActions (line 36) | buildActions(baseURL, monitorJSON) { method buildBlocks (line 81) | buildBlocks(baseURL, monitorJSON, heartbeatJSON, title, msg, includeGr... method send (line 140) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/sms-planet.js class SMSPlanet (line 4) | class SMSPlanet extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/smsc.js class SMSC (line 4) | class SMSC extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/smseagle.js class SMSEagle (line 4) | class SMSEagle extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/smsir.js class SMSIR (line 4) | class SMSIR extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/smsmanager.js class SMSManager (line 4) | class SMSManager extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/smspartner.js class SMSPartner (line 4) | class SMSPartner extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/smtp.js class SMTP (line 5) | class SMTP extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/splunk.js class Splunk (line 7) | class Splunk extends NotificationProvider { method send (line 13) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method checkResult (line 44) | checkResult(result) { method postNotification (line 62) | async postNotification(notification, title, body, monitorInfo, eventAc... FILE: server/notification-providers/spugpush.js class SpugPush (line 5) | class SpugPush extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/squadcast.js class Squadcast (line 5) | class Squadcast extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/stackfield.js class Stackfield (line 6) | class Stackfield extends NotificationProvider { method send (line 12) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/teams.js class Teams (line 6) | class Teams extends NotificationProvider { method send (line 245) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/techulus-push.js class TechulusPush (line 4) | class TechulusPush extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/telegram.js class Telegram (line 4) | class Telegram extends NotificationProvider { method escapeMarkdownV2 (line 12) | escapeMarkdownV2(text) { method escapeObjectRecursive (line 27) | escapeObjectRecursive(obj) { method send (line 51) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/teltonika.js class Teltonika (line 9) | class Teltonika extends NotificationProvider { method send (line 15) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/threema.js class Threema (line 4) | class Threema extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method handleApiError (line 55) | handleApiError(error) { FILE: server/notification-providers/twilio.js class Twilio (line 4) | class Twilio extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/waha.js class WAHA (line 4) | class WAHA extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/webhook.js class Webhook (line 5) | class Webhook extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/wecom.js class WeCom (line 5) | class WeCom extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method composeMessage (line 40) | composeMessage(notification, heartbeatJSON, msg) { FILE: server/notification-providers/whapi.js class Whapi (line 4) | class Whapi extends NotificationProvider { method send (line 10) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification-providers/wpush.js class WPush (line 5) | class WPush extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method checkStatus (line 39) | checkStatus(heartbeatJSON, monitorJSON) { FILE: server/notification-providers/yzj.js class YZJ (line 5) | class YZJ extends NotificationProvider { method send (line 11) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { method statusToString (line 46) | statusToString(status) { FILE: server/notification-providers/zoho-cliq.js class ZohoCliq (line 5) | class ZohoCliq extends NotificationProvider { method send (line 72) | async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { FILE: server/notification.js constant SMSC (line 12) | const SMSC = require("./notification-providers/smsc"); constant SIGNL4 (line 54) | const SIGNL4 = require("./notification-providers/signl4"); constant SMTP (line 58) | const SMTP = require("./notification-providers/smtp"); constant WAHA (line 76) | const WAHA = require("./notification-providers/waha"); constant YZJ (line 85) | const YZJ = require("./notification-providers/yzj"); constant SMSIR (line 88) | const SMSIR = require("./notification-providers/smsir"); class Notification (line 95) | class Notification { method init (line 104) | static init() { method send (line 222) | static async send(notification, msg, monitorJSON = null, heartbeatJSON... method save (line 237) | static async save(notification, notificationID, userID) { method delete (line 269) | static async delete(notificationID, userID) { method checkApprise (line 283) | static async checkApprise() { function applyNotificationEveryMonitor (line 294) | async function applyNotificationEveryMonitor(notificationID, userID) { FILE: server/password-hash.js function isSHA1 (line 33) | function isSHA1(hash) { FILE: server/prometheus.js class Prometheus (line 12) | class Prometheus { method constructor (line 19) | constructor(monitor, tags) { method init (line 38) | static async init() { method sanitizeForPrometheus (line 105) | static sanitizeForPrometheus(text) { method mapTagsToLabels (line 116) | mapTagsToLabels(tags) { method update (line 153) | update(heartbeat, tlsInfo, uptime) { method remove (line 244) | remove() { method sortTags (line 265) | sortTags(a, b) { FILE: server/proxy.js class Proxy (line 10) | class Proxy { method save (line 20) | static async save(proxy, proxyID, userID) { method delete (line 70) | static async delete(proxyID, userID) { method createAgents (line 91) | static createAgents(proxy, options) { method reloadProxy (line 164) | static async reloadProxy() { function applyProxyEveryMonitor (line 185) | async function applyProxyEveryMonitor(proxyID, userID) { FILE: server/radius-client.js class RadiusClient (line 17) | class RadiusClient { method constructor (line 26) | constructor(options) { method accessRequest (line 41) | accessRequest(params) { FILE: server/rate-limiter.js class KumaRateLimiter (line 4) | class KumaRateLimiter { method constructor (line 8) | constructor(config) { method pass (line 25) | async pass(callback, num = 1) { method removeTokens (line 45) | async removeTokens(num = 1) { FILE: server/remote-browser.js class RemoteBrowser (line 3) | class RemoteBrowser { method get (line 10) | static async get(remoteBrowserID, userID) { method save (line 27) | static async save(remoteBrowser, remoteBrowserID, userID) { method delete (line 55) | static async delete(remoteBrowserID, userID) { FILE: server/routers/api-router.js function determineStatus (line 576) | function determineStatus(status, previousHeartbeat, maxretries, isUpside... function isMonitorPublic (line 626) | async function isMonitorPublic(monitorID) { FILE: server/server.js function updateMonitorNotification (line 1768) | async function updateMonitorNotification(monitorID, notificationIDList) { function checkOwner (line 1788) | async function checkOwner(userID, monitorID) { function afterLogin (line 1803) | async function afterLogin(socket, user) { function initDatabase (line 1843) | async function initDatabase(testMode = false) { function startMonitor (line 1876) | async function startMonitor(userID, monitorID) { function restartMonitor (line 1899) | async function restartMonitor(userID, monitorID) { function pauseMonitor (line 1909) | async function pauseMonitor(userID, monitorID) { function startMonitors (line 1926) | async function startMonitors() { function shutdownFunction (line 1950) | async function shutdownFunction(signal) { function finalFunction (line 1977) | function finalFunction() { FILE: server/settings.js class Settings (line 4) | class Settings { method get (line 28) | static async get(key) { method set (line 73) | static async set(key, value, type = null) { method getSettings (line 91) | static async getSettings(type) { method setSettings (line 113) | static async setSettings(type, data) { method deleteCache (line 143) | static deleteCache(keyList) { method stopCacheCleaner (line 153) | static stopCacheCleaner() { FILE: server/setup-database.js function getEnvOrFile (line 17) | function getEnvOrFile(envName) { class SetupDatabase (line 41) | class SetupDatabase { method constructor (line 64) | constructor(args, server) { method isNeedSetup (line 116) | isNeedSetup() { method isEnabledEmbeddedMariaDB (line 124) | isEnabledEmbeddedMariaDB() { method start (line 134) | start(hostname, port) { FILE: server/socket-handlers/general-socket-handler.js function getGameList (line 14) | function getGameList() { FILE: server/socket-handlers/status-page-socket-handler.js function validateIncident (line 18) | function validateIncident(incident) { function checkSlug (line 533) | function checkSlug(slug) { FILE: server/translatable-error.js class TranslatableError (line 5) | class TranslatableError extends Error { method constructor (line 16) | constructor(key, meta = {}) { FILE: server/uptime-calculator.js class UptimeCalculator (line 10) | class UptimeCalculator { method getUptimeCalculator (line 72) | static async getUptimeCalculator(monitorID) { method remove (line 89) | static async remove(monitorID) { method removeAll (line 97) | static async removeAll() { method constructor (line 104) | constructor() { method init (line 123) | async init(monitorID) { method update (line 212) | async update(status, ping = 0, date) { method getDailyStatBean (line 381) | async getDailyStatBean(timestamp) { method getHourlyStatBean (line 403) | async getHourlyStatBean(timestamp) { method getMinutelyStatBean (line 425) | async getMinutelyStatBean(timestamp) { method getMinutelyKey (line 447) | getMinutelyKey(date) { method getHourlyKey (line 472) | getHourlyKey(date) { method getDailyKey (line 497) | getDailyKey(date) { method getKey (line 523) | getKey(datetime, type) { method flatStatus (line 542) | flatStatus(status) { method getData (line 560) | getData(num, type = "day") { method getDataArray (line 694) | getDataArray(num, type = "day") { method getDataByDuration (line 772) | getDataByDuration(duration) { method get24Hour (line 803) | get24Hour() { method get7Day (line 810) | get7Day() { method get30Day (line 817) | get30Day() { method get1Year (line 824) | get1Year() { method getCurrentDate (line 831) | getCurrentDate() { method setMigrationMode (line 840) | setMigrationMode(value) { method clearStatistics (line 849) | static async clearStatistics(monitorID) { method clearAllStatistics (line 863) | static async clearAllStatistics() { class UptimeDataResult (line 873) | class UptimeDataResult { FILE: server/uptime-kuma-server.js class UptimeKumaServer (line 22) | class UptimeKumaServer { method getInstance (line 68) | static getInstance() { method constructor (line 78) | constructor() { method initAfterDatabaseReady (line 202) | async initAfterDatabaseReady() { method sendMonitorList (line 219) | async sendMonitorList(socket) { method sendUpdateMonitorIntoList (line 231) | async sendUpdateMonitorIntoList(socket, monitorID) { method sendDeleteMonitorFromList (line 244) | async sendDeleteMonitorFromList(socket, monitorID) { method getMonitorJSONList (line 256) | async getMonitorJSONList(userID, monitorID = null) { method sendMaintenanceList (line 284) | async sendMaintenanceList(socket) { method sendMaintenanceListByUserID (line 293) | async sendMaintenanceListByUserID(userID) { method getMaintenanceJSONList (line 304) | async getMaintenanceJSONList(userID) { method loadMaintenanceList (line 317) | async loadMaintenanceList(userID) { method getMaintenance (line 331) | getMaintenance(maintenanceID) { method errorLog (line 344) | static errorLog(error, outputToConsole = true) { method getClientIP (line 370) | getClientIP(socket) { method getClientIPwithProxy (line 379) | async getClientIPwithProxy(clientIP, headers) { method getTimezone (line 403) | async getTimezone() { method getTimezoneOffset (line 448) | getTimezoneOffset() { method checkTimezone (line 458) | checkTimezone(timezone) { method setTimezone (line 471) | async setTimezone(timezone) { method start (line 482) | async start() { method stop (line 494) | async stop() { method startNSCDServices (line 507) | async startNSCDServices() { method stopNSCDServices (line 522) | async stopNSCDServices() { method getUserAgent (line 537) | getUserAgent() { method disconnectAllSocketClients (line 548) | disconnectAllSocketClients(userID, currentSocketID = undefined) { FILE: server/util-server.js function timeObjectConvertTimezone (line 735) | function timeObjectConvertTimezone(obj, timezone, timeObjectToUTC = true) { function fsExists (line 889) | function fsExists(path) { function encodeBase64 (line 905) | function encodeBase64(user, pass) { function checkCertExpiryNotifications (line 916) | async function checkCertExpiryNotifications(monitor, tlsInfoObject) { function commandExists (line 979) | async function commandExists(command) { FILE: server/utils/array-with-key.js class ArrayWithKey (line 7) | class ArrayWithKey { method push (line 21) | push(key, value) { method pop (line 30) | pop() { method getLastKey (line 41) | getLastKey() { method shift (line 52) | shift() { method length (line 66) | length() { method last (line 74) | last() { FILE: server/utils/knex/lib/dialects/mysql2/schema/mysql2-columncompiler.js class KumaColumnCompiler (line 5) | class KumaColumnCompiler extends ColumnCompilerMySQL { method defaultTo (line 11) | defaultTo(value) { FILE: server/utils/limit-queue.js class LimitQueue (line 7) | class LimitQueue extends ArrayWithKey { method constructor (line 25) | constructor(limit) { method push (line 33) | push(key, value) { FILE: server/utils/simple-migration-server.js class SimpleMigrationServer (line 10) | class SimpleMigrationServer { method start (line 35) | start(port, hostname) { method update (line 78) | update(msg) { method stop (line 86) | async stop() { FILE: src/i18n.js function currentLocale (line 71) | function currentLocale() { FILE: src/main.js method data (line 30) | data() { FILE: src/mixins/datetime.js method data (line 8) | data() { method toUTC (line 21) | toUTC(value) { method toDateTimeInputFormat (line 31) | toDateTimeInputFormat(value) { method datetime (line 40) | datetime(value) { method unixToDateTime (line 49) | unixToDateTime(value) { method unixToDayjs (line 58) | unixToDayjs(value) { method toDayjs (line 67) | toDayjs(value) { method datetimeMaintenance (line 77) | datetimeMaintenance(value) { method date (line 97) | date(value) { method time (line 108) | time(value, second = true) { method datetimeFormat (line 124) | datetimeFormat(value, format) { method timezone (line 133) | timezone() { FILE: src/mixins/lang.js method data (line 6) | data() { method created (line 12) | async created() { method language (line 19) | async language(lang) { method changeLang (line 30) | async changeLang(lang) { FILE: src/mixins/mobile.js method data (line 2) | data() { method created (line 8) | created() { method onResize (line 18) | onResize() { method updateBody (line 27) | updateBody() { method isMobile (line 37) | isMobile() { FILE: src/mixins/public.js method data (line 14) | data() { method publicMonitorList (line 20) | publicMonitorList() { method publicLastHeartbeatList (line 31) | publicLastHeartbeatList() { method baseURL (line 43) | baseURL() { FILE: src/mixins/socket.js method data (line 30) | data() { method created (line 74) | created() { method initSocketIO (line 85) | initSocketIO(bypass = false) { method assignMonitorUrlParser (line 308) | assignMonitorUrlParser(data) { method storage (line 325) | storage() { method getJWTPayload (line 333) | getJWTPayload() { method getSocket (line 346) | getSocket() { method applyTranslation (line 355) | applyTranslation(msg) { method toastRes (line 368) | toastRes(res) { method toastSuccess (line 385) | toastSuccess(msg) { method toastError (line 394) | toastError(msg) { method login (line 412) | login(username, password, token, callback) { method loginByToken (line 445) | loginByToken(token) { method logout (line 462) | logout() { method prepare2FA (line 481) | prepare2FA(callback) { method save2FA (line 491) | save2FA(secret, callback) { method disable2FA (line 500) | disable2FA(callback) { method verifyToken (line 510) | verifyToken(token, callback) { method twoFAStatus (line 519) | twoFAStatus(callback) { method getMonitorList (line 528) | getMonitorList(callback) { method getMaintenanceList (line 540) | getMaintenanceList(callback) { method getAPIKeyList (line 552) | getAPIKeyList(callback) { method add (line 565) | add(monitor, callback) { method addMaintenance (line 575) | addMaintenance(maintenance, callback) { method addMonitorMaintenance (line 586) | addMonitorMaintenance(maintenanceID, monitors, callback) { method addMaintenanceStatusPage (line 597) | addMaintenanceStatusPage(maintenanceID, statusPages, callback) { method getMonitorMaintenance (line 607) | getMonitorMaintenance(maintenanceID, callback) { method getMaintenanceStatusPage (line 617) | getMaintenanceStatusPage(maintenanceID, callback) { method deleteMonitor (line 628) | deleteMonitor(monitorID, deleteChildren, callback) { method deleteMaintenance (line 638) | deleteMaintenance(maintenanceID, callback) { method addAPIKey (line 648) | addAPIKey(key, callback) { method deleteAPIKey (line 658) | deleteAPIKey(keyID, callback) { method clearData (line 666) | clearData() { method uploadBackup (line 679) | uploadBackup(uploadedJSON, importHandle, callback) { method clearEvents (line 689) | clearEvents(monitorID, callback) { method clearHeartbeats (line 699) | clearHeartbeats(monitorID, callback) { method clearStatistics (line 708) | clearStatistics(callback) { method getMonitorBeats (line 719) | getMonitorBeats(monitorID, period, callback) { method getMonitorChartData (line 730) | getMonitorChartData(monitorID, period, callback) { method usernameFirstChar (line 736) | usernameFirstChar() { method lastHeartbeatList (line 744) | lastHeartbeatList() { method statusList (line 755) | statusList() { method stats (line 796) | stats() { method frontendVersion (line 840) | frontendVersion() { method isFrontendBackendVersionMatched (line 849) | isFrontendBackendVersionMatched() { method "stats.down" (line 859) | "stats.down"(to, from) { method "info.version" (line 871) | "info.version"(to, from) { method remember (line 877) | remember() { method "$route.fullPath" (line 882) | "$route.fullPath"(newValue, oldValue) { FILE: src/mixins/theme.js method data (line 2) | data() { method mounted (line 14) | mounted() { method theme (line 35) | theme() { method isDark (line 62) | isDark() { method "$route.fullPath" (line 68) | "$route.fullPath"(path) { method userTheme (line 72) | userTheme(to, from) { method styleElapsedTime (line 76) | styleElapsedTime(to, from) { method theme (line 80) | theme(to, from) { method userHeartbeatBar (line 86) | userHeartbeatBar(to, from) { method heartbeatBarTheme (line 90) | heartbeatBarTheme(to, from) { method updateThemeColorMeta (line 101) | updateThemeColorMeta() { FILE: src/modules/dayjs/constant.js constant SECONDS_A_MINUTE (line 1) | let SECONDS_A_MINUTE = 60; constant SECONDS_A_HOUR (line 2) | let SECONDS_A_HOUR = SECONDS_A_MINUTE * 60; constant SECONDS_A_DAY (line 3) | let SECONDS_A_DAY = SECONDS_A_HOUR * 24; constant SECONDS_A_WEEK (line 4) | let SECONDS_A_WEEK = SECONDS_A_DAY * 7; constant MILLISECONDS_A_SECOND (line 5) | let MILLISECONDS_A_SECOND = 1e3; constant MILLISECONDS_A_MINUTE (line 6) | let MILLISECONDS_A_MINUTE = SECONDS_A_MINUTE * MILLISECONDS_A_SECOND; constant MILLISECONDS_A_HOUR (line 7) | let MILLISECONDS_A_HOUR = SECONDS_A_HOUR * MILLISECONDS_A_SECOND; constant MILLISECONDS_A_DAY (line 8) | let MILLISECONDS_A_DAY = SECONDS_A_DAY * MILLISECONDS_A_SECOND; constant MILLISECONDS_A_WEEK (line 9) | let MILLISECONDS_A_WEEK = SECONDS_A_WEEK * MILLISECONDS_A_SECOND; constant MIN (line 13) | let MIN = "minute"; constant DATE (line 20) | let DATE = "date"; constant FORMAT_DEFAULT (line 21) | let FORMAT_DEFAULT = "YYYY-MM-DDTHH:mm:ssZ"; constant INVALID_DATE_STRING (line 22) | let INVALID_DATE_STRING = "Invalid Date"; constant REGEX_PARSE (line 24) | let REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})... constant REGEX_FORMAT (line 25) | let REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2... FILE: src/modules/dayjs/plugin/timezone/index.d.ts type Dayjs (line 7) | interface Dayjs { type DayjsTimezone (line 12) | interface DayjsTimezone { FILE: src/util-frontend.js function getTimezoneOffset (line 13) | function getTimezoneOffset(timeZone) { function timezoneList (line 30) | function timezoneList() { function setPageLocale (line 67) | function setPageLocale() { function getResBaseURL (line 78) | function getResBaseURL() { function isDevContainer (line 93) | function isDevContainer() { function getDevContainerServerHostname (line 102) | function getDevContainerServerHostname() { function colorOptions (line 117) | function colorOptions(self) { function loadToastSettings (line 134) | function loadToastSettings() { function getToastSuccessTimeout (line 154) | function getToastSuccessTimeout() { function getToastErrorTimeout (line 175) | function getToastErrorTimeout() { class TimeDurationFormatter (line 192) | class TimeDurationFormatter { method constructor (line 196) | constructor() { method updateLocale (line 214) | updateLocale(locale) { method secondsToHumanReadableFormat (line 227) | secondsToHumanReadableFormat(seconds) { FILE: src/util.js function flipStatus (line 116) | function flipStatus(s) { function sleep (line 126) | function sleep(ms) { function ucfirst (line 130) | function ucfirst(str) { function debug (line 138) | function debug(msg) { class Logger (line 142) | class Logger { method constructor (line 143) | constructor() { method log (line 162) | log(module, level, ...msg) { method info (line 243) | info(module, ...msg) { method warn (line 246) | warn(module, ...msg) { method error (line 249) | error(module, ...msg) { method debug (line 252) | debug(module, ...msg) { method exception (line 255) | exception(module, exception, ...msg) { function polyfill (line 260) | function polyfill() { class TimeLogger (line 271) | class TimeLogger { method constructor (line 272) | constructor() { method print (line 275) | print(name) { function getRandomArbitrary (line 282) | function getRandomArbitrary(min, max) { function getRandomInt (line 286) | function getRandomInt(min, max) { function getCryptoRandomInt (line 307) | function getCryptoRandomInt(min, max) { function genSecret (line 338) | function genSecret(length = 64) { function getMonitorRelativeURL (line 348) | function getMonitorRelativeURL(id) { function parseTimeObject (line 352) | function parseTimeObject(time) { function parseTimeFromTimeObject (line 374) | function parseTimeFromTimeObject(obj) { function isoToUTCDateTime (line 386) | function isoToUTCDateTime(input) { function utcToISODateTime (line 390) | function utcToISODateTime(input) { function utcToLocal (line 394) | function utcToLocal(input, format = exports.SQL_DATETIME_FORMAT) { function localToUTC (line 398) | function localToUTC(input, format = exports.SQL_DATETIME_FORMAT) { function intHash (line 402) | function intHash(str, length = 10) { function evaluateJsonQuery (line 410) | async function evaluateJsonQuery(data, jsonPath, jsonPathOperator, expec... FILE: src/util.ts constant DOWN (line 32) | const DOWN = 0; constant PENDING (line 34) | const PENDING = 2; constant MAINTENANCE (line 35) | const MAINTENANCE = 3; constant STATUS_PAGE_ALL_DOWN (line 37) | const STATUS_PAGE_ALL_DOWN = 0; constant STATUS_PAGE_ALL_UP (line 38) | const STATUS_PAGE_ALL_UP = 1; constant STATUS_PAGE_PARTIAL_DOWN (line 39) | const STATUS_PAGE_PARTIAL_DOWN = 2; constant STATUS_PAGE_MAINTENANCE (line 40) | const STATUS_PAGE_MAINTENANCE = 3; constant SQL_DATE_FORMAT (line 42) | const SQL_DATE_FORMAT = "YYYY-MM-DD"; constant SQL_DATETIME_FORMAT (line 43) | const SQL_DATETIME_FORMAT = "YYYY-MM-DD HH:mm:ss"; constant SQL_DATETIME_FORMAT_WITHOUT_SECOND (line 44) | const SQL_DATETIME_FORMAT_WITHOUT_SECOND = "YYYY-MM-DD HH:mm"; constant MAX_INTERVAL_SECOND (line 46) | const MAX_INTERVAL_SECOND = 2073600; constant MIN_INTERVAL_SECOND (line 47) | const MIN_INTERVAL_SECOND = 1; constant INCIDENT_PAGE_SIZE (line 49) | const INCIDENT_PAGE_SIZE = 10; constant PING_PACKET_SIZE_MIN (line 52) | const PING_PACKET_SIZE_MIN = 1; constant PING_PACKET_SIZE_MAX (line 53) | const PING_PACKET_SIZE_MAX = 65500; constant PING_PACKET_SIZE_DEFAULT (line 54) | const PING_PACKET_SIZE_DEFAULT = 56; constant PING_GLOBAL_TIMEOUT_MIN (line 57) | const PING_GLOBAL_TIMEOUT_MIN = 1; constant PING_GLOBAL_TIMEOUT_MAX (line 58) | const PING_GLOBAL_TIMEOUT_MAX = 300; constant PING_GLOBAL_TIMEOUT_DEFAULT (line 59) | const PING_GLOBAL_TIMEOUT_DEFAULT = 10; constant PING_COUNT_MIN (line 62) | const PING_COUNT_MIN = 1; constant PING_COUNT_MAX (line 63) | const PING_COUNT_MAX = 100; constant PING_COUNT_DEFAULT (line 64) | const PING_COUNT_DEFAULT = 1; constant PING_PER_REQUEST_TIMEOUT_MIN (line 67) | const PING_PER_REQUEST_TIMEOUT_MIN = 1; constant PING_PER_REQUEST_TIMEOUT_MAX (line 68) | const PING_PER_REQUEST_TIMEOUT_MAX = 60; constant PING_PER_REQUEST_TIMEOUT_DEFAULT (line 69) | const PING_PER_REQUEST_TIMEOUT_DEFAULT = 2; constant RESPONSE_BODY_LENGTH_DEFAULT (line 75) | const RESPONSE_BODY_LENGTH_DEFAULT = 1024; constant RESPONSE_BODY_LENGTH_MAX (line 80) | const RESPONSE_BODY_LENGTH_MAX = 1024 * 1024; function flipStatus (line 168) | function flipStatus(s: number) { function sleep (line 185) | function sleep(ms: number) { function ucfirst (line 194) | function ucfirst(str: string) { function debug (line 208) | function debug(msg: unknown) { class Logger (line 212) | class Logger { method constructor (line 232) | constructor() { method log (line 257) | log(module: string, level: "INFO" | "WARN" | "ERROR" | "DEBUG", ...msg... method info (line 356) | info(module: string, ...msg: unknown[]) { method warn (line 366) | warn(module: string, ...msg: unknown[]) { method error (line 376) | error(module: string, ...msg: unknown[]) { method debug (line 386) | debug(module: string, ...msg: unknown[]) { method exception (line 397) | exception(module: string, exception: unknown, ...msg: unknown[]) { type String (line 405) | interface String { function polyfill (line 417) | function polyfill() { class TimeLogger (line 431) | class TimeLogger { method constructor (line 437) | constructor() { method print (line 446) | print(name: string): void { function getRandomArbitrary (line 459) | function getRandomArbitrary(min: number, max: number) { function getRandomInt (line 475) | function getRandomInt(min: number, max: number) { function getCryptoRandomInt (line 512) | function getCryptoRandomInt(min: number, max: number): number { function genSecret (line 555) | function genSecret(length = 64) { function getMonitorRelativeURL (line 570) | function getMonitorRelativeURL(id: string) { function parseTimeObject (line 580) | function parseTimeObject(time: string) { function parseTimeFromTimeObject (line 610) | function parseTimeFromTimeObject(obj: any) { function isoToUTCDateTime (line 631) | function isoToUTCDateTime(input: string) { function utcToISODateTime (line 639) | function utcToISODateTime(input: string) { function utcToLocal (line 649) | function utcToLocal(input: string, format = SQL_DATETIME_FORMAT): string { function localToUTC (line 659) | function localToUTC(input: string, format = SQL_DATETIME_FORMAT) { function intHash (line 669) | function intHash(str: string, length = 10): number { function evaluateJsonQuery (line 688) | async function evaluateJsonQuery( constant TYPES_WITH_DOMAIN_EXPIRY_SUPPORT_VIA_FIELD (line 776) | const TYPES_WITH_DOMAIN_EXPIRY_SUPPORT_VIA_FIELD = { FILE: test/backend-test/check-translations.test.js constant UPSTREAM_EN_JSON (line 23) | const UPSTREAM_EN_JSON = "https://raw.githubusercontent.com/louislam/upt... function extractParams (line 30) | function extractParams(value) { function getStartEnd (line 52) | function getStartEnd(line, key) { FILE: test/backend-test/monitors/test-grpc.js function createTestGrpcServer (line 34) | async function createTestGrpcServer(port, methodHandlers) { FILE: test/backend-test/monitors/test-mqtt.js function testMqtt (line 18) | async function testMqtt( FILE: test/backend-test/monitors/test-mssql.js function createAndStartMSSQLContainer (line 11) | async function createAndStartMSSQLContainer() { FILE: test/backend-test/monitors/test-mysql.js function createAndStartMariaDBContainer (line 11) | async function createAndStartMariaDBContainer() { FILE: test/backend-test/monitors/test-oracledb.js constant ORACLE_IMAGE (line 7) | const ORACLE_IMAGE = "gvenzl/oracle-free:23-slim-faststart"; constant APP_USER (line 8) | const APP_USER = "uptimekuma"; constant APP_USER_PASSWORD (line 9) | const APP_USER_PASSWORD = "Oracle123"; function createMonitor (line 16) | function createMonitor(overrides = {}) { function createHeartbeat (line 29) | function createHeartbeat() { function createAndStartOracleContainer (line 40) | async function createAndStartOracleContainer() { FILE: test/backend-test/monitors/test-tcp.js function retryExternalService (line 15) | async function retryExternalService(testFn, heartbeat, maxAttempts = 5) { function createTCPServer (line 40) | async function createTCPServer(port) { FILE: test/backend-test/monitors/test-websocket.js function nonCompliantWS (line 13) | function nonCompliantWS() { function httpServer (line 33) | function httpServer() { function createWebSocketServer (line 50) | function createWebSocketServer(options = {}) { FILE: test/backend-test/notification-providers/mock-webhook.js function mockWebhook (line 10) | async function mockWebhook(port, url, timeout = 2500) { FILE: test/backend-test/test-globalping.js function createGlobalpingClientMock (line 1188) | function createGlobalpingClientMock() { function createRedbeanMock (line 1199) | function createRedbeanMock() { function createMockResponse (line 1210) | function createMockResponse(data) { function createPingMeasurement (line 1224) | function createPingMeasurement() { function createHttpMeasurement (line 1285) | function createHttpMeasurement() { function createDnsMeasurement (line 1354) | function createDnsMeasurement() { FILE: test/backend-test/test-ping-chart.js function filterPingValue (line 10) | function filterPingValue(datapoint) { FILE: test/backend-test/test-system-service.js function shouldSkip (line 12) | function shouldSkip() { FILE: test/backend-test/test-uptime-calculator.js function memoryUsage (line 417) | function memoryUsage() { FILE: test/e2e/specs/monitor-form.spec.js function selectMonitorType (line 10) | async function selectMonitorType(page, monitorType = "dns") { FILE: test/e2e/util-test.js function screenshot (line 12) | async function screenshot(testInfo, page) { function login (line 24) | async function login(page) { function getSqliteDatabaseExists (line 39) | function getSqliteDatabaseExists() { function takeSqliteSnapshot (line 48) | async function takeSqliteSnapshot(page = null) { function restoreSqliteSnapshot (line 60) | async function restoreSqliteSnapshot() { FILE: test/manual-test-grpc/simple-grpc-server.js function Echo (line 13) | function Echo(call, callback) { FILE: test/mock-testdb.js class TestDB (line 4) | class TestDB { method constructor (line 7) | constructor(dir = "./data/test") { method create (line 11) | async create() { method destroy (line 21) | async destroy() {