@geometra/cli 1.13.2 → 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 +64 -20
- package/dist/bin.js.map +1 -1
- package/package.json +4 -4
package/dist/bin.js
CHANGED
|
@@ -12,28 +12,72 @@ if (!url) {
|
|
|
12
12
|
console.error(' geometra ws://localhost:8080/geometra-ws');
|
|
13
13
|
process.exit(1);
|
|
14
14
|
}
|
|
15
|
-
//
|
|
16
|
-
let wsUrl;
|
|
15
|
+
// Direct WebSocket URL — single view
|
|
17
16
|
if (url.startsWith('ws://') || url.startsWith('wss://')) {
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
console.error(`Connecting to ${url}...`);
|
|
18
|
+
const viewer = viewInTerminal({ url });
|
|
19
|
+
process.on('SIGINT', () => { viewer.close(); process.exit(0); });
|
|
20
|
+
process.on('SIGTERM', () => { viewer.close(); process.exit(0); });
|
|
20
21
|
}
|
|
21
22
|
else {
|
|
22
|
-
// HTTP(S) URL —
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
// HTTP(S) URL — discover Geometra WebSocket endpoints
|
|
24
|
+
;
|
|
25
|
+
(async () => {
|
|
26
|
+
const parsed = new URL(url);
|
|
27
|
+
const wsProto = parsed.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
28
|
+
const baseWs = `${wsProto}//${parsed.host}`;
|
|
29
|
+
const baseHttp = `${parsed.protocol}//${parsed.host}`;
|
|
30
|
+
console.error(`Discovering Geometra views at ${parsed.host}...`);
|
|
31
|
+
const paths = new Set();
|
|
32
|
+
try {
|
|
33
|
+
// Fetch HTML and scan for WS paths + JS bundle URLs
|
|
34
|
+
const res = await fetch(url);
|
|
35
|
+
const html = await res.text();
|
|
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}`);
|
|
47
|
+
}
|
|
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 */ }
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
console.error('Could not fetch page HTML.');
|
|
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); });
|
|
81
|
+
})();
|
|
27
82
|
}
|
|
28
|
-
console.error(`Connecting to ${wsUrl}...`);
|
|
29
|
-
const viewer = viewInTerminal({ url: wsUrl });
|
|
30
|
-
// Clean exit on Ctrl+C
|
|
31
|
-
process.on('SIGINT', () => {
|
|
32
|
-
viewer.close();
|
|
33
|
-
process.exit(0);
|
|
34
|
-
});
|
|
35
|
-
process.on('SIGTERM', () => {
|
|
36
|
-
viewer.close();
|
|
37
|
-
process.exit(0);
|
|
38
|
-
});
|
|
39
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,
|
|
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": {
|