@geometra/cli 1.13.3 → 1.13.4
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/bin.js +46 -33
- package/dist/bin.js.map +1 -1
- package/package.json +4 -4
package/dist/bin.js
CHANGED
|
@@ -20,51 +20,64 @@ if (url.startsWith('ws://') || url.startsWith('wss://')) {
|
|
|
20
20
|
process.on('SIGTERM', () => { viewer.close(); process.exit(0); });
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
|
-
// HTTP(S) URL — discover
|
|
23
|
+
// HTTP(S) URL — discover Geometra WebSocket endpoints
|
|
24
24
|
;
|
|
25
25
|
(async () => {
|
|
26
26
|
const parsed = new URL(url);
|
|
27
27
|
const wsProto = parsed.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
28
28
|
const baseWs = `${wsProto}//${parsed.host}`;
|
|
29
|
-
|
|
29
|
+
const baseHttp = `${parsed.protocol}//${parsed.host}`;
|
|
30
|
+
console.error(`Discovering Geometra views at ${parsed.host}...`);
|
|
31
|
+
const paths = new Set();
|
|
30
32
|
try {
|
|
33
|
+
// Fetch HTML and scan for WS paths + JS bundle URLs
|
|
31
34
|
const res = await fetch(url);
|
|
32
35
|
const html = await res.text();
|
|
33
|
-
//
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
// Scan HTML for WS paths
|
|
37
|
+
const wsPathRe = /["'`](\/geometra-ws[^"'`]*?)["'`]/g;
|
|
38
|
+
let m;
|
|
39
|
+
while ((m = wsPathRe.exec(html)) !== null)
|
|
40
|
+
paths.add(m[1]);
|
|
41
|
+
// Fetch and scan JS bundles referenced in the HTML
|
|
42
|
+
const scriptRe = /src=["']([^"']+\.js)["']/g;
|
|
43
|
+
const scriptUrls = [];
|
|
44
|
+
while ((m = scriptRe.exec(html)) !== null) {
|
|
45
|
+
const src = m[1];
|
|
46
|
+
scriptUrls.push(src.startsWith('http') ? src : `${baseHttp}${src.startsWith('/') ? '' : '/'}${src}`);
|
|
39
47
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
for (const jsUrl of scriptUrls) {
|
|
49
|
+
try {
|
|
50
|
+
const jsRes = await fetch(jsUrl);
|
|
51
|
+
const js = await jsRes.text();
|
|
52
|
+
const jsWsRe = /["'`](\/geometra-ws[^"'`]*?)["'`]/g;
|
|
53
|
+
while ((m = jsWsRe.exec(js)) !== null)
|
|
54
|
+
paths.add(m[1]);
|
|
55
|
+
}
|
|
56
|
+
catch { /* skip failed JS fetches */ }
|
|
43
57
|
}
|
|
44
|
-
// Sort: header first, then main, then hud, then below
|
|
45
|
-
const sorted = [...paths].sort((a, b) => {
|
|
46
|
-
const order = (p) => p.includes('header') ? 0 :
|
|
47
|
-
p === '/geometra-ws' ? 1 :
|
|
48
|
-
p.includes('hud') ? 2 :
|
|
49
|
-
p.includes('below') ? 3 : 4;
|
|
50
|
-
return order(a) - order(b);
|
|
51
|
-
});
|
|
52
|
-
console.error(`Found ${sorted.length} Geometra view(s): ${sorted.join(', ')}`);
|
|
53
|
-
const viewers = sorted.map(path => viewInTerminal({
|
|
54
|
-
url: `${baseWs}${path}`,
|
|
55
|
-
// Stack views vertically — divide terminal rows among views
|
|
56
|
-
height: Math.max(6, Math.floor((process.stdout.rows || 24) / sorted.length)),
|
|
57
|
-
}));
|
|
58
|
-
process.on('SIGINT', () => { viewers.forEach(v => v.close()); process.exit(0); });
|
|
59
|
-
process.on('SIGTERM', () => { viewers.forEach(v => v.close()); process.exit(0); });
|
|
60
58
|
}
|
|
61
|
-
catch
|
|
62
|
-
|
|
63
|
-
console.error(`Could not fetch page, trying default /geometra-ws...`);
|
|
64
|
-
const viewer = viewInTerminal({ url: `${baseWs}/geometra-ws` });
|
|
65
|
-
process.on('SIGINT', () => { viewer.close(); process.exit(0); });
|
|
66
|
-
process.on('SIGTERM', () => { viewer.close(); process.exit(0); });
|
|
59
|
+
catch {
|
|
60
|
+
console.error('Could not fetch page HTML.');
|
|
67
61
|
}
|
|
62
|
+
// Fallback: try well-known Geometra paths
|
|
63
|
+
if (paths.size === 0) {
|
|
64
|
+
paths.add('/geometra-ws');
|
|
65
|
+
}
|
|
66
|
+
// Sort: header → main → hud → below
|
|
67
|
+
const sorted = [...paths].sort((a, b) => {
|
|
68
|
+
const order = (p) => p.includes('header') ? 0 :
|
|
69
|
+
p === '/geometra-ws' ? 1 :
|
|
70
|
+
p.includes('hud') ? 2 :
|
|
71
|
+
p.includes('below') ? 3 : 4;
|
|
72
|
+
return order(a) - order(b);
|
|
73
|
+
});
|
|
74
|
+
console.error(`Found ${sorted.length} view(s): ${sorted.join(', ')}`);
|
|
75
|
+
const viewers = sorted.map(path => viewInTerminal({
|
|
76
|
+
url: `${baseWs}${path}`,
|
|
77
|
+
height: Math.max(8, Math.floor((process.stdout.rows || 40) / sorted.length)),
|
|
78
|
+
}));
|
|
79
|
+
process.on('SIGINT', () => { viewers.forEach(v => v.close()); process.exit(0); });
|
|
80
|
+
process.on('SIGTERM', () => { viewers.forEach(v => v.close()); process.exit(0); });
|
|
68
81
|
})();
|
|
69
82
|
}
|
|
70
83
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAE3B,IAAI,CAAC,GAAG,EAAE,CAAC;IACT,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACtC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACjB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;IAClE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACjB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC1B,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC3D,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;IAClD,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,qCAAqC;AACrC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IACtC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IAC/D,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;AAClE,CAAC;KAAM,CAAC;IACN,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geometra/cli",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.4",
|
|
4
4
|
"description": "CLI to view any Geometra-powered site in the terminal",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"check": "tsc --noEmit"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@geometra/core": "^1.13.
|
|
39
|
-
"@geometra/renderer-terminal": "^1.13.
|
|
40
|
-
"textura": "^1.13.
|
|
38
|
+
"@geometra/core": "^1.13.4",
|
|
39
|
+
"@geometra/renderer-terminal": "^1.13.4",
|
|
40
|
+
"textura": "^1.13.4",
|
|
41
41
|
"ws": "^8.18.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|