@goodandready/dsh-lanmode 0.5.0 → 0.5.1
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/lib/health.js +24 -9
- package/package.json +1 -1
package/lib/health.js
CHANGED
|
@@ -39,19 +39,34 @@ const BROWSER_SCRIPT = `
|
|
|
39
39
|
'интерфейс зовёт его при загрузке; на голом HTTP его подставляет заплатка'],
|
|
40
40
|
['буфер обмена', !!(navigator.clipboard && navigator.clipboard.writeText),
|
|
41
41
|
'кнопки «копировать»; на голом HTTP его подставляет заплатка'],
|
|
42
|
-
|
|
42
|
+
// Проверять наличие заплатки на ЭТОЙ странице бессмысленно: она вставляется
|
|
43
|
+
// в страницу интерфейса, а не в нашу, и ответ был бы всегда «нет» — ложная
|
|
44
|
+
// тревога того сорта, из-за которой потом ищут несуществующую поломку.
|
|
45
|
+
// Поэтому спрашиваем ту страницу, куда она и вставляется.
|
|
46
|
+
['заплатка на странице интерфейса', 'проверяется',
|
|
43
47
|
'если нет — скрипт не попал на страницу или его выключили через ?lanmode=off'],
|
|
44
48
|
['страница считается своей', /^(localhost|\\[::1\\]|::1|127\\.)/.test(location.hostname),
|
|
45
49
|
'на чужом имени харнесс уводит настройки в режим памяти; это и чинит заплатка']
|
|
46
50
|
]
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
function draw() {
|
|
52
|
+
out.innerHTML = '<table>' + checks.map(function (item) {
|
|
53
|
+
var mark = item[1] === 'проверяется' ? '…' : (item[1] ? '✔' : '✘')
|
|
54
|
+
return '<tr><td>' + mark + '</td><td>' + item[0] + '</td><td>'
|
|
55
|
+
+ (item[1] === true || item[1] === 'проверяется' ? '' : item[2]) + '</td></tr>'
|
|
56
|
+
}).join('') + '</table>'
|
|
57
|
+
window.__DSH_LANMODE_BROWSER__ = checks.map(function (item) {
|
|
58
|
+
return { name: item[0], ok: item[1] }
|
|
59
|
+
})
|
|
60
|
+
}
|
|
61
|
+
draw()
|
|
62
|
+
|
|
63
|
+
// Страницу интерфейса спрашиваем отдельно и дорисовываем ответ: она приходит
|
|
64
|
+
// не мгновенно, а держать из-за неё всю таблицу незачем.
|
|
65
|
+
var at = checks.findIndex(function (item) { return item[0].indexOf('заплатка') === 0 })
|
|
66
|
+
fetch('/', { cache: 'no-store' })
|
|
67
|
+
.then(function (answer) { return answer.text() })
|
|
68
|
+
.then(function (html) { checks[at][1] = html.indexOf('data-dsh-lanmode') !== -1; draw() })
|
|
69
|
+
.catch(function () { checks[at][1] = false; draw() })
|
|
55
70
|
})()
|
|
56
71
|
`
|
|
57
72
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-lanmode",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "LAN and reverse-proxy access for the DeepSeek Harness Web UI: returns the settings service on pages that are not localhost, fills in the Web APIs the browser withholds on plain HTTP, and can open a listener of its own so nothing else is needed.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|