@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 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
- // Resolve WebSocket URL from input
16
- let wsUrl;
15
+ // Direct WebSocket URL single view
17
16
  if (url.startsWith('ws://') || url.startsWith('wss://')) {
18
- // Direct WebSocket URL
19
- wsUrl = url;
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 — derive WebSocket endpoint
23
- const parsed = new URL(url);
24
- const wsProto = parsed.protocol === 'https:' ? 'wss:' : 'ws:';
25
- // Default Geometra WS path
26
- wsUrl = `${wsProto}//${parsed.host}/geometra-ws`;
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,mCAAmC;AACnC,IAAI,KAAa,CAAA;AAEjB,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxD,uBAAuB;IACvB,KAAK,GAAG,GAAG,CAAA;AACb,CAAC;KAAM,CAAC;IACN,0CAA0C;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IAC7D,2BAA2B;IAC3B,KAAK,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,IAAI,cAAc,CAAA;AAClD,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAA;AAE1C,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;AAE7C,uBAAuB;AACvB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,MAAM,CAAC,KAAK,EAAE,CAAA;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,MAAM,CAAC,KAAK,EAAE,CAAA;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
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.2",
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.2",
39
- "@geometra/renderer-terminal": "^1.13.2",
40
- "textura": "^1.13.2",
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": {