viberadar 0.3.175 → 0.3.176
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/probe/runner.d.ts.map +1 -1
- package/dist/probe/runner.js +34 -1
- package/dist/probe/runner.js.map +1 -1
- package/dist/probe/types.d.ts +2 -1
- package/dist/probe/types.d.ts.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +46 -27
- package/dist/server/index.js.map +1 -1
- package/dist/ui/dashboard.html +54 -28
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/probe/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/probe/runner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAsC,cAAc,EAAE,MAAM,SAAS,CAAC;AAqJ1F,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAqBjF"}
|
package/dist/probe/runner.js
CHANGED
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.runProbeChecks = runProbeChecks;
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
|
+
const child_process = __importStar(require("child_process"));
|
|
39
40
|
const module_1 = require("module");
|
|
40
41
|
const SCREENSHOTS_DIR = path.join(process.cwd(), '.viberadar', 'probe-screenshots');
|
|
41
42
|
function ensureScreenshotsDir() {
|
|
@@ -94,12 +95,44 @@ async function executeStep(page, step, target, timeout) {
|
|
|
94
95
|
throw new Error(`Unknown step type: ${type}`);
|
|
95
96
|
}
|
|
96
97
|
}
|
|
98
|
+
async function runPlaywrightFile(check, target, timeout) {
|
|
99
|
+
const start = Date.now();
|
|
100
|
+
const filePath = path.resolve(process.cwd(), check.file);
|
|
101
|
+
if (!fs.existsSync(filePath)) {
|
|
102
|
+
return { check: check.name, status: 'failed', durationMs: 0, error: `File not found: ${filePath}` };
|
|
103
|
+
}
|
|
104
|
+
return new Promise(resolve => {
|
|
105
|
+
const env = { ...process.env, BASE_URL: target, PLAYWRIGHT_BASE_URL: target };
|
|
106
|
+
const proc = child_process.spawn('npx', ['playwright', 'test', filePath, '--reporter=line'], {
|
|
107
|
+
env, cwd: process.cwd(), shell: true, timeout,
|
|
108
|
+
});
|
|
109
|
+
let output = '';
|
|
110
|
+
proc.stdout.on('data', (d) => { output += d.toString(); });
|
|
111
|
+
proc.stderr.on('data', (d) => { output += d.toString(); });
|
|
112
|
+
proc.on('close', code => {
|
|
113
|
+
const passed = code === 0;
|
|
114
|
+
resolve({
|
|
115
|
+
check: check.name,
|
|
116
|
+
status: passed ? 'passed' : 'failed',
|
|
117
|
+
durationMs: Date.now() - start,
|
|
118
|
+
error: passed ? undefined : output.slice(-500),
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
proc.on('error', err => {
|
|
122
|
+
resolve({ check: check.name, status: 'failed', durationMs: Date.now() - start, error: err.message });
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
97
126
|
async function runCheck(browser, check, config) {
|
|
127
|
+
// Run real Playwright test file if specified
|
|
128
|
+
if (check.file) {
|
|
129
|
+
return runPlaywrightFile(check, config.target, config.timeout);
|
|
130
|
+
}
|
|
98
131
|
const start = Date.now();
|
|
99
132
|
const context = await browser.newContext();
|
|
100
133
|
const page = await context.newPage();
|
|
101
134
|
try {
|
|
102
|
-
for (const step of check.steps) {
|
|
135
|
+
for (const step of (check.steps || [])) {
|
|
103
136
|
await executeStep(page, step, config.target, config.timeout);
|
|
104
137
|
}
|
|
105
138
|
return {
|
package/dist/probe/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/probe/runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/probe/runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyJA,wCAqBC;AA9KD,uCAAyB;AACzB,2CAA6B;AAC7B,6DAA+C;AAC/C,mCAAuC;AAGvC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;AAEpF,SAAS,oBAAoB;IAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,IAAe;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAS,EAAE,IAAe,EAAE,MAAc,EAAE,OAAe;IACpF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAE/B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,OAAO,GAAI,IAAY,CAAC,IAAc,CAAC;YAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;YACxE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACrE,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAI,IAAY,CAAC,IAAI,CAAC;YAC/C,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,QAAQ,GAAI,IAAY,CAAC,KAAe,CAAC;YAC/C,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,GAAI,IAAY,CAAC,IAAc,CAAC;YACxC,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM;QACR,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,QAAQ,GAAI,IAAY,CAAC,gBAAgB,CAAW,CAAC;YAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YACpE,MAAM;QACR,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAI,IAAY,CAAC,aAAa,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,iBAAiB,QAAQ,WAAW,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1F,CAAC;YACD,MAAM;QACR,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,KAAiB,EAAE,MAAc,EAAE,OAAe;IACjF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAK,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,mBAAmB,QAAQ,EAAE,EAAE,CAAC;IACtG,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9E,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE;YAC3F,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO;SAC9C,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC;gBACN,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;gBACpC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC9B,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACrB,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,OAAY,EAAE,KAAiB,EAAE,MAAmB;IAC1E,6CAA6C;IAC7C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YACvC,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,oBAAoB,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC9B,KAAK,EAAE,GAAG,CAAC,OAAO;YAClB,cAAc;SACf,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,sEAAsE;IACtE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC3E,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,qDAAqD;IACrD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,MAAmB;IACtD,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO;YACP,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;YACzD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;SAC1D,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}
|
package/dist/probe/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/probe/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/probe/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC7C;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,UAAU,EAA4H,MAAM,YAAY,CAAC;AAOlK,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;AAuhED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,UAAU,EAA4H,MAAM,YAAY,CAAC;AAOlK,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;AAuhED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAyvF1G"}
|
package/dist/server/index.js
CHANGED
|
@@ -1877,15 +1877,26 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
1877
1877
|
let probeRunning = false;
|
|
1878
1878
|
let probeTimer = null;
|
|
1879
1879
|
let probeState = { status: 'idle' };
|
|
1880
|
-
function
|
|
1881
|
-
const p = path.join(projectRoot, '.viberadar', 'probe-
|
|
1880
|
+
function loadProbeSettings() {
|
|
1881
|
+
const p = path.join(projectRoot, '.viberadar', 'probe-settings.json');
|
|
1882
1882
|
try {
|
|
1883
1883
|
return JSON.parse(fs.readFileSync(p, 'utf-8'));
|
|
1884
1884
|
}
|
|
1885
1885
|
catch {
|
|
1886
|
-
return
|
|
1886
|
+
return {};
|
|
1887
1887
|
}
|
|
1888
1888
|
}
|
|
1889
|
+
function saveProbeSettings(settings) {
|
|
1890
|
+
const dir = path.join(projectRoot, '.viberadar');
|
|
1891
|
+
if (!fs.existsSync(dir))
|
|
1892
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
1893
|
+
fs.writeFileSync(path.join(dir, 'probe-settings.json'), JSON.stringify(settings, null, 2), 'utf-8');
|
|
1894
|
+
}
|
|
1895
|
+
// legacy shim — читаем из нового файла
|
|
1896
|
+
function loadProbeNotifyConfig() {
|
|
1897
|
+
const s = loadProbeSettings();
|
|
1898
|
+
return s.telegram ? { telegram: s.telegram } : undefined;
|
|
1899
|
+
}
|
|
1889
1900
|
async function runProbeOnce() {
|
|
1890
1901
|
if (probeRunning)
|
|
1891
1902
|
return;
|
|
@@ -1894,15 +1905,21 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
1894
1905
|
probeState.status = 'running';
|
|
1895
1906
|
broadcast('probe-run-started', { timestamp: new Date().toISOString() });
|
|
1896
1907
|
try {
|
|
1908
|
+
const settings = loadProbeSettings();
|
|
1897
1909
|
const config = (0, config_1.loadProbeConfig)(path.join(projectRoot, 'probe.config.yml'));
|
|
1898
|
-
|
|
1910
|
+
// settings.target overrides config target; or we can run without a config file
|
|
1911
|
+
if (!config && !settings.target) {
|
|
1912
|
+
process.stdout.write(' ⚠️ Probe: no target configured\n');
|
|
1899
1913
|
probeState.status = prevStatus;
|
|
1900
1914
|
return;
|
|
1901
1915
|
}
|
|
1902
|
-
const
|
|
1903
|
-
if (
|
|
1904
|
-
|
|
1905
|
-
|
|
1916
|
+
const effectiveConfig = config || { target: '', interval: 300, timeout: 30000, checks: [] };
|
|
1917
|
+
if (settings.target)
|
|
1918
|
+
effectiveConfig.target = settings.target;
|
|
1919
|
+
if (settings.telegram)
|
|
1920
|
+
effectiveConfig.notify = { telegram: settings.telegram };
|
|
1921
|
+
const notifyCfg = effectiveConfig.notify;
|
|
1922
|
+
const report = await (0, runner_1.runProbeChecks)(effectiveConfig);
|
|
1906
1923
|
probeState.lastRun = report;
|
|
1907
1924
|
probeState.status = probeTimer ? 'scheduled' : 'idle';
|
|
1908
1925
|
broadcast('probe-run-done', report);
|
|
@@ -4854,9 +4871,11 @@ a{color:var(--blue)}
|
|
|
4854
4871
|
// --- Probe API ---
|
|
4855
4872
|
if (url === '/api/probe/status' && req.method === 'GET') {
|
|
4856
4873
|
const config = (0, config_1.loadProbeConfig)(path.join(projectRoot, 'probe.config.yml'));
|
|
4857
|
-
const
|
|
4874
|
+
const settings = loadProbeSettings();
|
|
4875
|
+
const effectiveTarget = settings.target || (config ? config.target : null);
|
|
4876
|
+
const checks = config ? config.checks.map(c => ({ name: c.name, type: c.file ? 'file' : 'dsl', steps: c.steps?.length ?? 0 })) : null;
|
|
4858
4877
|
res.writeHead(200, jsonH);
|
|
4859
|
-
res.end(JSON.stringify({ ...probeState, checks, configFound: !!config }));
|
|
4878
|
+
res.end(JSON.stringify({ ...probeState, checks, configFound: !!config, effectiveTarget }));
|
|
4860
4879
|
return;
|
|
4861
4880
|
}
|
|
4862
4881
|
if (url === '/api/probe/run' && req.method === 'POST') {
|
|
@@ -4912,31 +4931,31 @@ a{color:var(--blue)}
|
|
|
4912
4931
|
res.end(JSON.stringify({ ok: true }));
|
|
4913
4932
|
return;
|
|
4914
4933
|
}
|
|
4915
|
-
if (url === '/api/probe/
|
|
4916
|
-
const
|
|
4917
|
-
const masked =
|
|
4918
|
-
botToken:
|
|
4919
|
-
chatId:
|
|
4934
|
+
if (url === '/api/probe/settings' && req.method === 'GET') {
|
|
4935
|
+
const s = loadProbeSettings();
|
|
4936
|
+
const masked = s.telegram ? {
|
|
4937
|
+
botToken: s.telegram.botToken ? s.telegram.botToken.slice(0, 8) + '••••••••' : '',
|
|
4938
|
+
chatId: s.telegram.chatId || '',
|
|
4920
4939
|
} : null;
|
|
4921
4940
|
res.writeHead(200, jsonH);
|
|
4922
|
-
res.end(JSON.stringify({ telegram: masked }));
|
|
4941
|
+
res.end(JSON.stringify({ target: s.target || '', telegram: masked }));
|
|
4923
4942
|
return;
|
|
4924
4943
|
}
|
|
4925
|
-
if (url === '/api/probe/
|
|
4944
|
+
if (url === '/api/probe/settings' && req.method === 'POST') {
|
|
4926
4945
|
let body = '';
|
|
4927
4946
|
req.on('data', (d) => { body += d; });
|
|
4928
4947
|
req.on('end', () => {
|
|
4929
4948
|
try {
|
|
4930
|
-
const { botToken, chatId } = JSON.parse(body);
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
if (
|
|
4938
|
-
|
|
4939
|
-
|
|
4949
|
+
const { target, botToken, chatId } = JSON.parse(body);
|
|
4950
|
+
const current = loadProbeSettings();
|
|
4951
|
+
const updated = { ...current };
|
|
4952
|
+
if (target !== undefined)
|
|
4953
|
+
updated.target = target || undefined;
|
|
4954
|
+
if (botToken && chatId)
|
|
4955
|
+
updated.telegram = { botToken, chatId };
|
|
4956
|
+
else if (botToken === '' && chatId === '')
|
|
4957
|
+
delete updated.telegram;
|
|
4958
|
+
saveProbeSettings(updated);
|
|
4940
4959
|
res.writeHead(200, jsonH);
|
|
4941
4960
|
res.end(JSON.stringify({ ok: true }));
|
|
4942
4961
|
}
|