@geometra/cli 1.13.2 → 1.13.3
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 +51 -20
- package/dist/bin.js.map +1 -1
- package/package.json +4 -4
package/dist/bin.js
CHANGED
|
@@ -12,28 +12,59 @@ 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 all Geometra WebSocket endpoints from the page HTML
|
|
24
|
+
;
|
|
25
|
+
(async () => {
|
|
26
|
+
const parsed = new URL(url);
|
|
27
|
+
const wsProto = parsed.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
28
|
+
const baseWs = `${wsProto}//${parsed.host}`;
|
|
29
|
+
console.error(`Fetching ${url} to discover Geometra endpoints...`);
|
|
30
|
+
try {
|
|
31
|
+
const res = await fetch(url);
|
|
32
|
+
const html = await res.text();
|
|
33
|
+
// Find all geometra-ws paths in the HTML/JS source
|
|
34
|
+
const wsPathRegex = /["'`](\/geometra-ws[^"'`]*?)["'`]/g;
|
|
35
|
+
const paths = new Set();
|
|
36
|
+
let match;
|
|
37
|
+
while ((match = wsPathRegex.exec(html)) !== null) {
|
|
38
|
+
paths.add(match[1]);
|
|
39
|
+
}
|
|
40
|
+
// Fallback to default path
|
|
41
|
+
if (paths.size === 0) {
|
|
42
|
+
paths.add('/geometra-ws');
|
|
43
|
+
}
|
|
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
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
// If fetch fails, fall back to default WS path
|
|
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); });
|
|
67
|
+
}
|
|
68
|
+
})();
|
|
27
69
|
}
|
|
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
70
|
//# 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":";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,6EAA6E;IAC7E,CAAC;IAAA,CAAC,KAAK,IAAI,EAAE;QACX,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;QAC7D,MAAM,MAAM,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE,CAAA;QAE3C,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,oCAAoC,CAAC,CAAA;QAElE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAE7B,mDAAmD;YACnD,MAAM,WAAW,GAAG,oCAAoC,CAAA;YACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;YAC/B,IAAI,KAA6B,CAAA;YACjC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAA;YACtB,CAAC;YAED,2BAA2B;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAC3B,CAAC;YAED,sDAAsD;YACtD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAC1B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1B,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC7B,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,MAAM,sBAAsB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAE9E,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC;gBAChD,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI,EAAE;gBACvB,4DAA4D;gBAC5D,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;aAC7E,CAAC,CAAC,CAAA;YAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;YAChF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+CAA+C;YAC/C,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACrE,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,cAAc,EAAE,CAAC,CAAA;YAC/D,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;YAC/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;QAClE,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geometra/cli",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.3",
|
|
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.3",
|
|
39
|
+
"@geometra/renderer-terminal": "^1.13.3",
|
|
40
|
+
"textura": "^1.13.3",
|
|
41
41
|
"ws": "^8.18.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|