pulsewatch-server 1.1.6 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +53 -1
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,WAAW,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,GAAG,CAAC;IACR,MAAM,EAAE;QACN,QAAQ,EAAE,GAAG,CAAC;QACd,cAAc,EAAE,GAAG,CAAC;QACpB,OAAO,EAAE,GAAG,CAAC;QAEb,qBAAqB,EAAE,GAAG,CAAC;QAC3B,iBAAiB,EAAE,GAAG,CAAC;QACvB,mBAAmB,EAAE,GAAG,CAAC;QACzB,iBAAiB,EAAE,GAAG,CAAC;QACvB,uBAAuB,EAAE,GAAG,CAAC;KAC9B,CAAC;IACF,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QACvC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,WAAW,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,GAAG,CAAC;IACR,MAAM,EAAE;QACN,QAAQ,EAAE,GAAG,CAAC;QACd,cAAc,EAAE,GAAG,CAAC;QACpB,OAAO,EAAE,GAAG,CAAC;QAEb,qBAAqB,EAAE,GAAG,CAAC;QAC3B,iBAAiB,EAAE,GAAG,CAAC;QACvB,mBAAmB,EAAE,GAAG,CAAC;QACzB,iBAAiB,EAAE,GAAG,CAAC;QACvB,uBAAuB,EAAE,GAAG,CAAC;KAC9B,CAAC;IACF,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QACvC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAqI3E"}
|
package/dist/server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createServer } from "http";
|
|
2
2
|
import { Server as SocketIO } from "socket.io";
|
|
3
3
|
import { MonitorRunner } from "./monitors/runner.js";
|
|
4
|
-
import { eq, desc, inArray, and, or, isNull, sql } from "drizzle-orm";
|
|
4
|
+
import { eq, desc, inArray, and, or, isNull, sql, getTableName, getTableColumns } from "drizzle-orm";
|
|
5
5
|
import { createMonitorsRouter } from "./routes/monitors.js";
|
|
6
6
|
import { createPushRouter } from "./routes/push.js";
|
|
7
7
|
import { NotificationService } from "./notifications/index.js";
|
|
@@ -65,6 +65,58 @@ export function createPulseWatch(config) {
|
|
|
65
65
|
runner,
|
|
66
66
|
notificationService,
|
|
67
67
|
async start() {
|
|
68
|
+
// Dynamic Auto-Migration: Sync all tables in schema
|
|
69
|
+
try {
|
|
70
|
+
for (const key of Object.keys(schema)) {
|
|
71
|
+
const table = schema[key];
|
|
72
|
+
if (!table)
|
|
73
|
+
continue;
|
|
74
|
+
let tableName;
|
|
75
|
+
try {
|
|
76
|
+
tableName = getTableName(table);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
continue; // Not a Drizzle table
|
|
80
|
+
}
|
|
81
|
+
const columns = getTableColumns(table);
|
|
82
|
+
if (!columns)
|
|
83
|
+
continue;
|
|
84
|
+
for (const colKey in columns) {
|
|
85
|
+
const col = columns[colKey];
|
|
86
|
+
const colName = col.name;
|
|
87
|
+
const dataType = col.columnType || col.dataType || "text";
|
|
88
|
+
let sqlDataType = "TEXT";
|
|
89
|
+
if (dataType.includes("PgUUID"))
|
|
90
|
+
sqlDataType = "UUID";
|
|
91
|
+
else if (dataType.includes("PgText"))
|
|
92
|
+
sqlDataType = "TEXT";
|
|
93
|
+
else if (dataType.includes("PgInteger"))
|
|
94
|
+
sqlDataType = "INTEGER";
|
|
95
|
+
else if (dataType.includes("PgBoolean"))
|
|
96
|
+
sqlDataType = "BOOLEAN";
|
|
97
|
+
else if (dataType.includes("PgTimestamp"))
|
|
98
|
+
sqlDataType = "TIMESTAMP WITH TIME ZONE";
|
|
99
|
+
else if (dataType.includes("PgJsonb"))
|
|
100
|
+
sqlDataType = "JSONB";
|
|
101
|
+
else if (dataType === "number")
|
|
102
|
+
sqlDataType = "INTEGER";
|
|
103
|
+
else if (dataType === "boolean")
|
|
104
|
+
sqlDataType = "BOOLEAN";
|
|
105
|
+
try {
|
|
106
|
+
// Add column if missing
|
|
107
|
+
// Note: This relies on PG supporting IF NOT EXISTS for ADD COLUMN (PG 9.6+)
|
|
108
|
+
await db.execute(sql.raw(`ALTER TABLE "${tableName}" ADD COLUMN IF NOT EXISTS "${colName}" ${sqlDataType};`));
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
// Ignore errors (e.g. column exists with different type, or table missing)
|
|
112
|
+
// If table is missing, the query fails. We don't create tables here, only columns.
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
logger?.warn(`Auto-migration failed: ${err.message}`);
|
|
119
|
+
}
|
|
68
120
|
await notificationService.initialize();
|
|
69
121
|
await notificationService.seedDefaultProviders();
|
|
70
122
|
await notificationService.seedDefaultRules();
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pulsewatch-server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "Complete uptime monitoring server - Drop-in Express backend with monitoring engine, database, REST API, and real-time updates. No authentication required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|