From 3b6a78bd80eb6a3067a8d4c6f2e47dbceb99f33e Mon Sep 17 00:00:00 2001 From: Maksim <60826887+warpreality@users.noreply.github.com> Date: Sun, 15 Jun 2025 11:43:09 +0300 Subject: [PATCH 1/2] Fix db coloum type for manual monitor (#5921) --- .../2025-06-15-0001-manual-monitor-fix.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 db/knex_migrations/2025-06-15-0001-manual-monitor-fix.js diff --git a/db/knex_migrations/2025-06-15-0001-manual-monitor-fix.js b/db/knex_migrations/2025-06-15-0001-manual-monitor-fix.js new file mode 100644 index 000000000..b05c1131e --- /dev/null +++ b/db/knex_migrations/2025-06-15-0001-manual-monitor-fix.js @@ -0,0 +1,13 @@ +// Fix: Change manual_status column type to smallint +exports.up = function (knex) { + return knex.schema + .alterTable("monitor", function (table) { + table.smallint("manual_status").alter(); + }); +}; + +exports.down = function (knex) { + return knex.schema.alterTable("monitor", function (table) { + table.string("manual_status").alter(); + }); +}; From 609429bd7ecc9bba72eff385d82c35bd74363096 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Sun, 15 Jun 2025 18:37:01 +0800 Subject: [PATCH 2/2] Fix dayjs (#5923) --- src/util.js | 3 ++- src/util.ts | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/util.js b/src/util.js index 38c4a22ea..9998205f9 100644 --- a/src/util.js +++ b/src/util.js @@ -12,10 +12,11 @@ var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CONSOLE_STYLE_FgPink = exports.CONSOLE_STYLE_FgBrown = exports.CONSOLE_STYLE_FgViolet = exports.CONSOLE_STYLE_FgLightBlue = exports.CONSOLE_STYLE_FgLightGreen = exports.CONSOLE_STYLE_FgOrange = exports.CONSOLE_STYLE_FgGray = exports.CONSOLE_STYLE_FgWhite = exports.CONSOLE_STYLE_FgCyan = exports.CONSOLE_STYLE_FgMagenta = exports.CONSOLE_STYLE_FgBlue = exports.CONSOLE_STYLE_FgYellow = exports.CONSOLE_STYLE_FgGreen = exports.CONSOLE_STYLE_FgRed = exports.CONSOLE_STYLE_FgBlack = exports.CONSOLE_STYLE_Hidden = exports.CONSOLE_STYLE_Reverse = exports.CONSOLE_STYLE_Blink = exports.CONSOLE_STYLE_Underscore = exports.CONSOLE_STYLE_Dim = exports.CONSOLE_STYLE_Bright = exports.CONSOLE_STYLE_Reset = exports.PING_PER_REQUEST_TIMEOUT_DEFAULT = exports.PING_PER_REQUEST_TIMEOUT_MAX = exports.PING_PER_REQUEST_TIMEOUT_MIN = exports.PING_COUNT_DEFAULT = exports.PING_COUNT_MAX = exports.PING_COUNT_MIN = exports.PING_GLOBAL_TIMEOUT_DEFAULT = exports.PING_GLOBAL_TIMEOUT_MAX = exports.PING_GLOBAL_TIMEOUT_MIN = exports.PING_PACKET_SIZE_DEFAULT = exports.PING_PACKET_SIZE_MAX = exports.PING_PACKET_SIZE_MIN = exports.MIN_INTERVAL_SECOND = exports.MAX_INTERVAL_SECOND = exports.SQL_DATETIME_FORMAT_WITHOUT_SECOND = exports.SQL_DATETIME_FORMAT = exports.SQL_DATE_FORMAT = exports.STATUS_PAGE_MAINTENANCE = exports.STATUS_PAGE_PARTIAL_DOWN = exports.STATUS_PAGE_ALL_UP = exports.STATUS_PAGE_ALL_DOWN = exports.MAINTENANCE = exports.PENDING = exports.UP = exports.DOWN = exports.appName = exports.isNode = exports.isDev = void 0; exports.evaluateJsonQuery = exports.intHash = exports.localToUTC = exports.utcToLocal = exports.utcToISODateTime = exports.isoToUTCDateTime = exports.parseTimeFromTimeObject = exports.parseTimeObject = exports.getMaintenanceRelativeURL = exports.getMonitorRelativeURL = exports.genSecret = exports.getCryptoRandomInt = exports.getRandomInt = exports.getRandomArbitrary = exports.TimeLogger = exports.polyfill = exports.log = exports.debug = exports.ucfirst = exports.sleep = exports.flipStatus = exports.badgeConstants = exports.CONSOLE_STYLE_BgGray = exports.CONSOLE_STYLE_BgWhite = exports.CONSOLE_STYLE_BgCyan = exports.CONSOLE_STYLE_BgMagenta = exports.CONSOLE_STYLE_BgBlue = exports.CONSOLE_STYLE_BgYellow = exports.CONSOLE_STYLE_BgGreen = exports.CONSOLE_STYLE_BgRed = exports.CONSOLE_STYLE_BgBlack = void 0; -const dayjs = require("dayjs"); +const dayjs_1 = require("dayjs"); const jsonata = require("jsonata"); exports.isDev = process.env.NODE_ENV === "development"; exports.isNode = typeof process !== "undefined" && ((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node); +const dayjs = (exports.isNode) ? require("dayjs") : dayjs_1.default; exports.appName = "Uptime Kuma"; exports.DOWN = 0; exports.UP = 1; diff --git a/src/util.ts b/src/util.ts index 22a40e204..1098bec4e 100644 --- a/src/util.ts +++ b/src/util.ts @@ -9,9 +9,9 @@ // Frontend uses util.ts */ -import * as dayjs from "dayjs"; +import dayjsFrontend from "dayjs"; -// For loading dayjs plugins, don't remove event though it is not used in this file +// For dayjs plugins' type checking, don't remove event though it is not used in this file // eslint-disable-next-line @typescript-eslint/no-unused-vars import * as timezone from "dayjs/plugin/timezone"; // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -21,6 +21,13 @@ import * as jsonata from "jsonata"; export const isDev = process.env.NODE_ENV === "development"; export const isNode = typeof process !== "undefined" && process?.versions?.node; + +/** + * Smarter dayjs import that supports both frontend and backend + * @returns {dayjs.Dayjs} dayjs instance + */ +const dayjs = (isNode) ? require("dayjs") : dayjsFrontend; + export const appName = "Uptime Kuma"; export const DOWN = 0; export const UP = 1;