@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 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
- // 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 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,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.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.2",
39
- "@geometra/renderer-terminal": "^1.13.2",
40
- "textura": "^1.13.2",
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": {