about-system 0.0.18 → 0.0.21

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.
@@ -1,258 +1,164 @@
1
1
  #!/usr/bin/env node
2
- import d from "os";
3
- import o from "fs";
4
- import a from "path";
5
- import { fileURLToPath as k } from "url";
6
- import { getSystemInfo as v } from "./system-info-api.js";
7
- const I = k(import.meta.url), h = a.join(d.homedir(), ".config", "systeminfo-settings.json"), b = a.join(d.tmpdir(), "systeminfo-cache.json"), _ = {
8
- display_order: [
9
- ["user", "hostname", "os", "device", "kernel", "cpu", "gpu"],
10
- ["disk_used", "ram_used", "top_process", "uptime", "temperature", "battery", "load_average"],
11
- ["ip", "iplocal", "city", "domain", "isp"],
12
- ["shell", "pacman", "services_running", "containers"]
13
- ],
14
- colors: {
15
- user: "red",
16
- hostname: "orange",
17
- disk_used: "purple",
18
- ram_used: "yellow",
19
- top_process: "magenta",
20
- uptime: "cyan",
21
- ip: "green",
22
- iplocal: "yellow",
23
- city: "green",
24
- domain: "gray",
25
- isp: "lightblue",
26
- os: "gray",
27
- cpu: "orange",
28
- gpu: "yellow",
29
- device: "yellow",
30
- kernel: "green",
31
- shell: "orange",
32
- pacman: "multicolor",
33
- ports: "multicolor",
34
- containers: "green",
35
- memory_available: "blue",
36
- swap_used: "purple",
37
- load_average: "red",
38
- users_logged_in: "cyan",
39
- network_interfaces: "yellow",
40
- mount_points: "gray",
41
- services_running: "green",
42
- temperature: "red",
43
- battery: "green",
44
- screen_resolution: "blue"
45
- },
46
- display: {
47
- show_emojis: !0,
48
- single_line: !1,
49
- line_wrap_length: process?.stdout?.columns || 100
50
- },
51
- network: {
52
- show_offline_message: !0
53
- },
54
- advanced: {
55
- debug: !1
56
- }
57
- }, S = {
58
- reset: "\x1B[0m",
59
- red: "\x1B[38;5;196m",
60
- orange: "\x1B[38;5;208m",
61
- yellow: "\x1B[38;5;226m",
62
- green: "\x1B[38;5;46m",
63
- blue: "\x1B[38;5;39m",
64
- cyan: "\x1B[38;5;51m",
65
- purple: "\x1B[38;5;171m",
66
- magenta: "\x1B[38;5;213m",
67
- gray: "\x1B[38;5;250m",
68
- lightblue: "\x1B[38;5;220m"
69
- }, g = {
70
- user: "👤 ",
71
- hostname: "🏠 ",
72
- ip: "🌎 ",
73
- iplocal: "🌐 ",
74
- city: "📍 ",
75
- domain: "🔗 ",
76
- isp: "👮 ",
77
- os: "⚡ ",
78
- cpu: "📈 ",
79
- gpu: "🎮 ",
80
- device: "💻 ",
81
- kernel: "🔧 ",
82
- shell: "🐚 ",
83
- pacman: "🚀 ",
84
- disk_used: "📁 ",
85
- ram_used: "💾 ",
86
- top_process: "🔝 ",
87
- uptime: "⏱️ ",
88
- ports: "🔌 ",
89
- containers: "📦",
90
- memory_available: "🧠 ",
91
- swap_used: "🔄 ",
92
- load_average: "⚖️ ",
93
- users_logged_in: "👥 ",
94
- network_interfaces: "🌐 ",
95
- mount_points: "📂 ",
96
- services_running: "⚙️ ",
97
- temperature: "🌡️ ",
98
- battery_charging: "🔌 ",
99
- battery: "🔋 ",
100
- screen_resolution: "🖥️ "
101
- }, y = d.platform() === "win32";
102
- function C() {
103
- try {
104
- if (o.existsSync(h)) {
105
- const e = JSON.parse(o.readFileSync(h, "utf8"));
106
- return { ..._, ...e };
107
- }
108
- } catch {
109
- }
110
- return _;
111
- }
112
- function w(e) {
113
- try {
114
- const s = a.dirname(h);
115
- return o.existsSync(s) || o.mkdirSync(s, { recursive: !0 }), o.writeFileSync(h, JSON.stringify(e, null, 2)), !0;
116
- } catch {
117
- return !1;
118
- }
119
- }
120
- function j(e, s, t) {
2
+ import p from "os";
3
+ import i from "fs";
4
+ import u from "path";
5
+ import { fileURLToPath as x } from "url";
6
+ import { g as $, a as C, b as y, C as S, S as I, c as g, D as w } from "./system-info-api-DAF2cjeE.js";
7
+ const L = x(import.meta.url), d = p.platform() === "win32";
8
+ function b(e, s, o) {
121
9
  if (!s || s.trim() === "") return "";
122
- const u = S[t.colors[e]] || S.reset, i = t.display.show_emojis && g[e] || "";
123
- if (e === "battery" && t.display.show_emojis) {
124
- const n = s.includes("+") ? g.battery_charging : g.battery;
125
- return `${u}${n}${s}`;
10
+ const a = g[o.colors[e]] || g.reset, n = o.display.show_emojis && o.emojis[e] || "";
11
+ if (e === "battery" && o.display.show_emojis) {
12
+ const t = s.includes("+") ? o.emojis.battery_charging : o.emojis.battery;
13
+ return `${a}${t}${s}`;
126
14
  }
127
- if (e === "ports" && t.colors[e] === "multicolor" && s) {
128
- let c = ` ${t.display.show_emojis ? g.ports : ""}`;
15
+ if (e === "ports" && o.colors[e] === "multicolor" && s) {
16
+ let c = ` ${o.display.show_emojis ? o.emojis.ports : ""}`;
129
17
  const r = s.split(" "), l = [31, 32, 33, 34, 35, 36];
130
18
  return r.forEach((f, m) => {
131
- const p = l[m % l.length];
132
- c += `\x1B[${p}m${f}\x1B[0m `;
19
+ const h = l[m % l.length];
20
+ c += `\x1B[${h}m${f}\x1B[0m `;
133
21
  }), c.trim();
134
22
  }
135
- if (e === "pacman" && t.colors[e] === "multicolor" && s) {
136
- const n = t.display.show_emojis ? g.pacman : "";
137
- return `${u}${n}${s}`;
23
+ if (e === "pacman" && o.colors[e] === "multicolor" && s) {
24
+ const t = o.display.show_emojis ? o.emojis.pacman : "";
25
+ return `${a}${t}${s}`;
138
26
  }
139
- return `${u}${i}${s}`;
27
+ return `${a}${n}${s}`;
140
28
  }
141
- function x(e) {
29
+ function _(e) {
142
30
  return e.replace(/\x1b\[[0-9;]*m/g, "");
143
31
  }
144
- async function $(e = null) {
145
- const s = C(), t = e || s.display_order, u = await v();
32
+ async function j(e = null) {
33
+ const s = C(), o = e || s.display_order, a = await $();
146
34
  if (s.display.single_line) {
147
35
  const r = [];
148
- for (const l of t)
36
+ for (const l of o)
149
37
  for (const f of l) {
150
- const m = u[f], p = j(f, m, s);
151
- p && p.trim() && r.push(p);
38
+ const m = a[f], h = b(f, m, s);
39
+ h && h.trim() && r.push(h);
152
40
  }
153
- r.length > 0 && console.log(r.join(" ") + S.reset);
41
+ r.length > 0 && console.log(r.join(" ") + g.reset);
154
42
  return;
155
43
  }
156
- const i = [];
157
- let n = "";
44
+ const n = [];
45
+ let t = "";
158
46
  const c = s.display.line_wrap_length;
159
- for (const r of t)
47
+ for (const r of o)
160
48
  for (const l of r) {
161
- const f = u[l], m = j(l, f, s);
49
+ const f = a[l], m = b(l, f, s);
162
50
  if (m && m.trim()) {
163
- const p = x(m).length, F = x(n).length;
164
- n && F + p + 1 > c ? (i.push(n), n = m) : n = n ? `${n} ${m}` : m;
51
+ const h = _(m).length, F = _(t).length;
52
+ t && F + h + 1 > c ? (n.push(t), t = m) : t = t ? `${t} ${m}` : m;
165
53
  }
166
54
  }
167
- n && i.push(n), i.length > 0 ? i.forEach((r) => {
168
- console.log(r + S.reset);
55
+ t && n.push(t), n.length > 0 ? n.forEach((r) => {
56
+ console.log(r + g.reset);
169
57
  }) : s.advanced.debug && console.log("No system information could be displayed");
170
58
  }
171
- function L(e) {
59
+ function E(e) {
172
60
  const s = C();
173
61
  if (e.includes("--settings-init"))
174
- return w(_) ? console.log("Settings initialized with defaults") : console.log("Failed to initialize settings"), !0;
62
+ return y(w) ? console.log("Settings initialized with defaults") : console.log("Failed to initialize settings"), !0;
175
63
  if (e.includes("--settings-show"))
176
64
  return console.log("Current settings:"), console.log(JSON.stringify(s, null, 2)), !0;
177
65
  if (e.includes("--settings-reset"))
178
- return w(_) ? console.log("Settings reset to defaults") : console.log("Failed to reset settings"), !0;
66
+ return y(w) ? console.log("Settings reset to defaults") : console.log("Failed to reset settings"), !0;
179
67
  if (e.includes("--refresh")) {
180
68
  try {
181
- o.existsSync(b) && (o.unlinkSync(b), console.log("Cache cleared"));
182
- } catch (u) {
183
- console.error("Error clearing cache:", u.message);
69
+ i.existsSync(S) && (i.unlinkSync(S), console.log("Cache cleared"));
70
+ } catch (a) {
71
+ console.error("Error clearing cache:", a.message);
184
72
  }
185
73
  return !0;
186
74
  }
187
- const t = e.indexOf("--set");
188
- if (t !== -1 && e[t + 1] && e[t + 2]) {
189
- const u = e[t + 1], i = e[t + 2];
75
+ const o = e.indexOf("--set");
76
+ if (o !== -1 && e[o + 1] && e[o + 2]) {
77
+ const a = e[o + 1], n = e[o + 2];
190
78
  try {
191
- const n = i.startsWith("{") || i.startsWith("[") ? JSON.parse(i) : i, c = u.split(".");
79
+ const t = n.startsWith("{") || n.startsWith("[") ? JSON.parse(n) : n, c = a.split(".");
192
80
  let r = s;
193
81
  for (let l = 0; l < c.length - 1; l++)
194
82
  r[c[l]] || (r[c[l]] = {}), r = r[c[l]];
195
- r[c[c.length - 1]] = n, w(s) ? console.log(`Setting ${u} = ${i}`) : console.log("Failed to save settings");
196
- } catch (n) {
197
- console.error("Error setting value:", n.message);
83
+ r[c[c.length - 1]] = t, y(s) ? console.log(`Setting ${a} = ${n}`) : console.log("Failed to save settings");
84
+ } catch (t) {
85
+ console.error("Error setting value:", t.message);
198
86
  }
199
87
  return !0;
200
88
  }
201
89
  return !1;
202
90
  }
203
- function B() {
204
- const e = d.homedir();
205
- let s, t;
206
- y ? (s = a.join(e, "AppData", "Local"), t = a.join(s, "systeminfo.js")) : (s = a.join(e, ".config"), t = a.join(s, "systeminfo.js"));
207
- const u = a.resolve(I);
91
+ function P() {
92
+ const e = p.homedir();
93
+ let s, o;
94
+ d ? (s = u.join(e, "AppData", "Local"), o = u.join(s, "systeminfo")) : (s = u.join(e, ".config"), o = u.join(s, "systeminfo"));
95
+ const a = u.resolve(L);
208
96
  try {
209
- if (o.existsSync(s) || o.mkdirSync(s, { recursive: !0 }), o.copyFileSync(u, t), y || o.chmodSync(t, "755"), y) {
210
- console.log("Windows installation:"), console.log("1. Script copied to:", t), console.log("2. To add to PowerShell profile, run:"), console.log(` Add-Content $PROFILE "node '${t}'"`), console.log("3. To add to Command Prompt, create a batch file in your startup folder");
211
- const i = a.join(s, "systeminfo-startup.bat");
212
- o.writeFileSync(i, `@echo off
213
- node "${t}"
214
- `), console.log("4. Batch file created:", i);
97
+ if (i.existsSync(s) || i.mkdirSync(s, { recursive: !0 }), i.copyFileSync(a, o), d || i.chmodSync(o, "755"), d) {
98
+ console.log("Windows installation:"), console.log("1. Script copied to:", o), console.log("2. To add to PowerShell profile, run:"), console.log(` Add-Content $PROFILE "node '${o}'"`), console.log(
99
+ "3. To add to Command Prompt, create a batch file in your startup folder"
100
+ );
101
+ const n = u.join(s, "systeminfo-startup.bat");
102
+ i.writeFileSync(n, `@echo off
103
+ node "${o}"
104
+ `), console.log("4. Batch file created:", n);
215
105
  } else {
216
106
  try {
217
- const f = a.join(e, ".hushlogin");
218
- o.writeFileSync(f, "");
107
+ const f = u.join(e, ".hushlogin");
108
+ i.writeFileSync(f, "");
219
109
  } catch {
220
110
  }
221
- const i = a.join(e, ".bashrc"), n = `node ${t}`;
222
- o.existsSync(i) ? o.readFileSync(i, "utf8").includes("systeminfo.js") || o.appendFileSync(i, `
223
- ${n}
224
- `) : o.writeFileSync(i, `${n}
111
+ const n = u.join(e, ".bashrc"), t = `node ${o}`;
112
+ i.existsSync(n) ? i.readFileSync(n, "utf8").includes("systeminfo") || i.appendFileSync(n, `
113
+ ${t}
114
+ `) : i.writeFileSync(n, `${t}
225
115
  `);
226
- const c = a.join(e, ".zshrc");
227
- o.existsSync(c) && (o.readFileSync(c, "utf8").includes("systeminfo.js") || o.appendFileSync(c, `
228
- ${n}
116
+ const c = u.join(e, ".zshrc");
117
+ i.existsSync(c) && (i.readFileSync(c, "utf8").includes("systeminfo") || i.appendFileSync(c, `
118
+ ${t}
229
119
  `));
230
- const r = a.join(e, ".config", "fish", "config.fish");
231
- o.existsSync(r) && (o.readFileSync(r, "utf8").includes("systeminfo.js") || o.appendFileSync(r, `
120
+ const r = u.join(
121
+ e,
122
+ ".config",
123
+ "fish",
124
+ "config.fish"
125
+ );
126
+ i.existsSync(r) && (i.readFileSync(r, "utf8").includes("systeminfo") || i.appendFileSync(
127
+ r,
128
+ `
232
129
  set -U fish_greeting ""
233
- ${n}
234
- `));
235
- const l = a.join(e, ".config", "nushell", "config.nu");
236
- o.existsSync(l) && (o.readFileSync(l, "utf8").includes("systeminfo.js") || o.appendFileSync(l, `
130
+ ${t}
131
+ `
132
+ ));
133
+ const l = u.join(
134
+ e,
135
+ ".config",
136
+ "nushell",
137
+ "config.nu"
138
+ );
139
+ i.existsSync(l) && (i.readFileSync(l, "utf8").includes("systeminfo") || i.appendFileSync(
140
+ l,
141
+ `
237
142
  $env.config.show_banner = false
238
- ${n}
239
- `));
143
+ ${t}
144
+ `
145
+ ));
240
146
  }
241
147
  console.log("Shell greeting installation completed!");
242
- } catch (i) {
243
- console.error("Error installing shell greeting:", i.message), process.exit(1);
148
+ } catch (n) {
149
+ console.error("Error installing shell greeting:", n.message), process.exit(1);
244
150
  }
245
151
  }
246
152
  function O(e) {
247
153
  for (const s of e)
248
154
  if (!s.startsWith("--") && s.includes(","))
249
- return s.split(",").map((t) => t.trim()).filter((t) => t.length > 0);
155
+ return s.split(",").map((o) => o.trim()).filter((o) => o.length > 0);
250
156
  for (const s of e)
251
157
  if (!s.startsWith("--") && !s.includes("=") && s.length > 0)
252
158
  return [s.trim()];
253
159
  return null;
254
160
  }
255
- async function E() {
161
+ async function v() {
256
162
  console.log(`
257
163
  System Info Script - TypeScript Version
258
164
 
@@ -278,12 +184,14 @@ Examples:
278
184
  about-system --install
279
185
  about-system --set display.show_emojis false
280
186
  about-system --set colors.user blue
187
+ about-system --set emojis.cpu "🚀 "
188
+ about-system --set labels.cpu "Processor"
281
189
  about-system --json
282
190
 
283
- Settings file: ${h}
284
- Cache file: ${b}
191
+ Settings file: ${I}
192
+ Cache file: ${S}
285
193
 
286
- Platform: ${y ? "Windows" : d.platform() === "darwin" ? "macOS" : d.platform() === "linux" ? "Linux" : "Unknown"}
194
+ Platform: ${d ? "Windows" : p.platform() === "darwin" ? "macOS" : p.platform() === "linux" ? "Linux" : "Unknown"}
287
195
 
288
196
  Available display blocks:
289
197
  Basic: user, hostname, uptime, shell, os, kernel, device
@@ -294,35 +202,35 @@ Available display blocks:
294
202
  Tools: pacman, ports, containers
295
203
  `);
296
204
  }
297
- async function P() {
205
+ async function T() {
298
206
  const e = process.argv.slice(2);
299
- if (L(e))
207
+ if (E(e))
300
208
  return;
301
209
  if (e.includes("--help") || e.includes("-h")) {
302
- await E();
210
+ await v();
303
211
  return;
304
212
  }
305
213
  if (e.includes("--install")) {
306
- B();
214
+ P();
307
215
  return;
308
216
  }
309
217
  if (e.includes("--json")) {
310
- const t = await v();
311
- console.log(JSON.stringify(t, null, 2));
218
+ const o = await $();
219
+ console.log(JSON.stringify(o, null, 2));
312
220
  return;
313
221
  }
314
222
  const s = O(e);
315
223
  if (s) {
316
- await $([s]);
224
+ await j([s]);
317
225
  return;
318
226
  }
319
- await $();
227
+ await j();
320
228
  }
321
- P().catch((e) => {
229
+ T().catch((e) => {
322
230
  console.error("Error:", e.message), process.exit(1);
323
231
  });
324
232
  export {
325
- $ as displaySystemInfo,
326
- B as installShellGreeting
233
+ j as displaySystemInfo,
234
+ P as installShellGreeting
327
235
  };
328
236
  //# sourceMappingURL=about-system-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"about-system-cli.js","sources":["../src/about-system-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport os from 'os';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { getSystemInfo } from './system-info-api.js';\nimport type { SystemInfo, SystemInfoOptions } from './systeminfo-types.js';\n\nconst __filename = fileURLToPath(import.meta.url);\n\n// Settings configuration\nconst SETTINGS_FILE = path.join(os.homedir(), '.config', 'systeminfo-settings.json');\nconst CACHE_FILE = path.join(os.tmpdir(), 'systeminfo-cache.json');\n\n// Default settings\nconst DEFAULT_SETTINGS = {\n display_order: [\n ['user', 'hostname', 'os', 'device', 'kernel', 'cpu', 'gpu'],\n ['disk_used', 'ram_used', 'top_process', 'uptime', 'temperature', 'battery', 'load_average'],\n ['ip', 'iplocal', 'city', 'domain', 'isp'],\n ['shell', 'pacman', 'services_running', 'containers'],\n ],\n colors: {\n user: 'red',\n hostname: 'orange',\n disk_used: 'purple',\n ram_used: 'yellow',\n top_process: 'magenta',\n uptime: 'cyan',\n ip: 'green',\n iplocal: 'yellow',\n city: 'green',\n domain: 'gray',\n isp: 'lightblue',\n os: 'gray',\n cpu: 'orange',\n gpu: 'yellow',\n device: 'yellow',\n kernel: 'green',\n shell: 'orange',\n pacman: 'multicolor',\n ports: 'multicolor',\n containers: 'green',\n memory_available: 'blue',\n swap_used: 'purple',\n load_average: 'red',\n users_logged_in: 'cyan',\n network_interfaces: 'yellow',\n mount_points: 'gray',\n services_running: 'green',\n temperature: 'red',\n battery: 'green',\n screen_resolution: 'blue',\n },\n display: {\n show_emojis: true,\n single_line: false,\n line_wrap_length: process?.stdout?.columns || 100,\n },\n network: {\n show_offline_message: true,\n },\n advanced: {\n debug: false,\n },\n};\n\n// Color codes\nconst colors = {\n reset: '\\x1b[0m',\n red: '\\x1b[38;5;196m',\n orange: '\\x1b[38;5;208m',\n yellow: '\\x1b[38;5;226m',\n green: '\\x1b[38;5;46m',\n blue: '\\x1b[38;5;39m',\n cyan: '\\x1b[38;5;51m',\n purple: '\\x1b[38;5;171m',\n magenta: '\\x1b[38;5;213m',\n gray: '\\x1b[38;5;250m',\n lightblue: '\\x1b[38;5;220m',\n};\n\n// Emoji mappings\nconst emojis: Record<string, string> = {\n user: '👤 ',\n hostname: '🏠 ',\n ip: '🌎 ',\n iplocal: '🌐 ',\n city: '📍 ',\n domain: '🔗 ',\n isp: '👮 ',\n os: '⚡ ',\n cpu: '📈 ',\n gpu: '🎮 ',\n device: '💻 ',\n kernel: '🔧 ',\n shell: '🐚 ',\n pacman: '🚀 ',\n disk_used: '📁 ',\n ram_used: '💾 ',\n top_process: '🔝 ',\n uptime: '⏱️ ',\n ports: '🔌 ',\n containers: '📦',\n memory_available: '🧠 ',\n swap_used: '🔄 ',\n load_average: '⚖️ ',\n users_logged_in: '👥 ',\n network_interfaces: '🌐 ',\n mount_points: '📂 ',\n services_running: '⚙️ ',\n temperature: '🌡️ ',\n battery_charging: '🔌 ',\n battery: '🔋 ',\n screen_resolution: '🖥️ ',\n};\n\n// Platform detection\nconst IS_WINDOWS = os.platform() === 'win32';\n\ninterface Settings {\n display_order: string[][];\n colors: Record<string, string>;\n display: {\n show_emojis: boolean;\n single_line: boolean;\n line_wrap_length: number;\n };\n network: {\n show_offline_message: boolean;\n };\n advanced: {\n debug: boolean;\n };\n}\n\nfunction loadSettings(): Settings {\n try {\n if (fs.existsSync(SETTINGS_FILE)) {\n const settings = JSON.parse(fs.readFileSync(SETTINGS_FILE, 'utf8'));\n return { ...DEFAULT_SETTINGS, ...settings };\n }\n } catch {}\n return DEFAULT_SETTINGS;\n}\n\nfunction saveSettings(settings: Settings): boolean {\n try {\n const configDir = path.dirname(SETTINGS_FILE);\n if (!fs.existsSync(configDir)) {\n fs.mkdirSync(configDir, { recursive: true });\n }\n fs.writeFileSync(SETTINGS_FILE, JSON.stringify(settings, null, 2));\n return true;\n } catch {\n return false;\n }\n}\n\nfunction formatValue(key: string, value: string, settings: Settings): string {\n if (!value || value.trim() === '') return '';\n\n const color = colors[settings.colors[key] as keyof typeof colors] || colors.reset;\n const emoji = settings.display.show_emojis ? emojis[key] || '' : '';\n\n // Special handling for battery emoji\n if (key === 'battery' && settings.display.show_emojis) {\n const batteryEmoji = value.includes('+') ? emojis.battery_charging : emojis.battery;\n return `${color}${batteryEmoji}${value}`;\n }\n\n // Multicolor handling for ports\n if (key === 'ports' && settings.colors[key] === 'multicolor' && value) {\n const emoji = settings.display.show_emojis ? emojis.ports : '';\n let output = ` ${emoji}`;\n const ports = value.split(' ');\n const colorCodes = [31, 32, 33, 34, 35, 36];\n ports.forEach((port, index) => {\n const colorCode = colorCodes[index % colorCodes.length];\n output += `\\x1b[${colorCode}m${port}\\x1b[0m `;\n });\n return output.trim();\n }\n\n // Multicolor handling for pacman\n if (key === 'pacman' && settings.colors[key] === 'multicolor' && value) {\n const emoji = settings.display.show_emojis ? emojis.pacman : '';\n return `${color}${emoji}${value}`;\n }\n\n return `${color}${emoji}${value}`;\n}\n\nfunction removeAnsiCodes(str: string): string {\n return str.replace(/\\x1b\\[[0-9;]*m/g, '');\n}\n\nasync function displaySystemInfo(customDisplayOrder: string[][] | null = null): Promise<void> {\n const settings = loadSettings();\n const displayOrder = customDisplayOrder || settings.display_order;\n\n // Get system info\n const info = await getSystemInfo();\n\n // Single line mode\n if (settings.display.single_line) {\n const allItems: string[] = [];\n\n for (const group of displayOrder) {\n for (const key of group) {\n const value = info[key as keyof SystemInfo] as string;\n const formatted = formatValue(key, value, settings);\n if (formatted && formatted.trim()) {\n allItems.push(formatted);\n }\n }\n }\n\n if (allItems.length > 0) {\n console.log(allItems.join(' ') + colors.reset);\n }\n return;\n }\n\n // Multi-line mode with intelligent wrapping\n const lines: string[] = [];\n let currentLine = '';\n const maxLineLength = settings.display.line_wrap_length;\n\n for (const group of displayOrder) {\n for (const key of group) {\n const value = info[key as keyof SystemInfo] as string;\n const formatted = formatValue(key, value, settings);\n\n if (formatted && formatted.trim()) {\n const formattedLength = removeAnsiCodes(formatted).length;\n const currentLineLength = removeAnsiCodes(currentLine).length;\n\n if (currentLine && currentLineLength + formattedLength + 1 > maxLineLength) {\n lines.push(currentLine);\n currentLine = formatted;\n } else {\n currentLine = currentLine ? `${currentLine} ${formatted}` : formatted;\n }\n }\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n // Output\n if (lines.length > 0) {\n lines.forEach((line) => {\n console.log(line + colors.reset);\n });\n } else if (settings.advanced.debug) {\n console.log('No system information could be displayed');\n }\n}\n\nfunction handleSettingsCommand(args: string[]): boolean {\n const settings = loadSettings();\n\n if (args.includes('--settings-init')) {\n if (saveSettings(DEFAULT_SETTINGS)) {\n console.log('Settings initialized with defaults');\n } else {\n console.log('Failed to initialize settings');\n }\n return true;\n }\n\n if (args.includes('--settings-show')) {\n console.log('Current settings:');\n console.log(JSON.stringify(settings, null, 2));\n return true;\n }\n\n if (args.includes('--settings-reset')) {\n if (saveSettings(DEFAULT_SETTINGS)) {\n console.log('Settings reset to defaults');\n } else {\n console.log('Failed to reset settings');\n }\n return true;\n }\n\n if (args.includes('--refresh')) {\n try {\n if (fs.existsSync(CACHE_FILE)) {\n fs.unlinkSync(CACHE_FILE);\n console.log('Cache cleared');\n }\n } catch (error) {\n console.error('Error clearing cache:', (error as Error).message);\n }\n return true;\n }\n\n const setIndex = args.indexOf('--set');\n if (setIndex !== -1 && args[setIndex + 1] && args[setIndex + 2]) {\n const key = args[setIndex + 1];\n const value = args[setIndex + 2];\n\n try {\n const parsedValue = value.startsWith('{') || value.startsWith('[') ? JSON.parse(value) : value;\n\n const keys = key.split('.');\n let current: any = settings;\n for (let i = 0; i < keys.length - 1; i++) {\n if (!current[keys[i]]) current[keys[i]] = {};\n current = current[keys[i]];\n }\n current[keys[keys.length - 1]] = parsedValue;\n\n if (saveSettings(settings)) {\n console.log(`Setting ${key} = ${value}`);\n } else {\n console.log('Failed to save settings');\n }\n } catch (error) {\n console.error('Error setting value:', (error as Error).message);\n }\n return true;\n }\n\n return false;\n}\n\nfunction installShellGreeting(): void {\n const homeDir = os.homedir();\n\n let configDir: string, scriptPath: string;\n if (IS_WINDOWS) {\n configDir = path.join(homeDir, 'AppData', 'Local');\n scriptPath = path.join(configDir, 'systeminfo.js');\n } else {\n configDir = path.join(homeDir, '.config');\n scriptPath = path.join(configDir, 'systeminfo.js');\n }\n\n const currentScript = path.resolve(__filename);\n\n try {\n if (!fs.existsSync(configDir)) {\n fs.mkdirSync(configDir, { recursive: true });\n }\n\n fs.copyFileSync(currentScript, scriptPath);\n if (!IS_WINDOWS) {\n fs.chmodSync(scriptPath, '755');\n }\n\n if (IS_WINDOWS) {\n console.log('Windows installation:');\n console.log('1. Script copied to:', scriptPath);\n console.log('2. To add to PowerShell profile, run:');\n console.log(` Add-Content $PROFILE \"node '${scriptPath}'\"`);\n console.log('3. To add to Command Prompt, create a batch file in your startup folder');\n\n const startupBat = path.join(configDir, 'systeminfo-startup.bat');\n fs.writeFileSync(startupBat, `@echo off\\nnode \"${scriptPath}\"\\n`);\n console.log('4. Batch file created:', startupBat);\n } else {\n try {\n const hushLoginPath = path.join(homeDir, '.hushlogin');\n fs.writeFileSync(hushLoginPath, '');\n } catch {}\n\n const bashrcPath = path.join(homeDir, '.bashrc');\n const bashLine = `node ${scriptPath}`;\n\n if (fs.existsSync(bashrcPath)) {\n const bashrc = fs.readFileSync(bashrcPath, 'utf8');\n if (!bashrc.includes('systeminfo.js')) {\n fs.appendFileSync(bashrcPath, `\\n${bashLine}\\n`);\n }\n } else {\n fs.writeFileSync(bashrcPath, `${bashLine}\\n`);\n }\n\n const zshrcPath = path.join(homeDir, '.zshrc');\n if (fs.existsSync(zshrcPath)) {\n const zshrc = fs.readFileSync(zshrcPath, 'utf8');\n if (!zshrc.includes('systeminfo.js')) {\n fs.appendFileSync(zshrcPath, `\\n${bashLine}\\n`);\n }\n }\n\n const fishConfigPath = path.join(homeDir, '.config', 'fish', 'config.fish');\n if (fs.existsSync(fishConfigPath)) {\n const fishConfig = fs.readFileSync(fishConfigPath, 'utf8');\n if (!fishConfig.includes('systeminfo.js')) {\n fs.appendFileSync(fishConfigPath, `\\nset -U fish_greeting \"\"\\n${bashLine}\\n`);\n }\n }\n\n const nushellConfigPath = path.join(homeDir, '.config', 'nushell', 'config.nu');\n if (fs.existsSync(nushellConfigPath)) {\n const nushellConfig = fs.readFileSync(nushellConfigPath, 'utf8');\n if (!nushellConfig.includes('systeminfo.js')) {\n fs.appendFileSync(nushellConfigPath, `\\n$env.config.show_banner = false\\n${bashLine}\\n`);\n }\n }\n }\n\n console.log('Shell greeting installation completed!');\n } catch (error) {\n console.error('Error installing shell greeting:', (error as Error).message);\n process.exit(1);\n }\n}\n\nfunction parseCLIMode(args: string[]): string[] | null {\n for (const arg of args) {\n if (!arg.startsWith('--') && arg.includes(',')) {\n return arg\n .split(',')\n .map((part) => part.trim())\n .filter((part) => part.length > 0);\n }\n }\n\n for (const arg of args) {\n if (!arg.startsWith('--') && !arg.includes('=') && arg.length > 0) {\n return [arg.trim()];\n }\n }\n\n return null;\n}\n\nasync function showHelp(): Promise<void> {\n console.log(`\nSystem Info Script - TypeScript Version\n\nUsage:\n about-system [options]\n about-system <part1,part2,...> # CLI mode: show specific parts only\n\nOptions:\n --help, -h Show this help message\n --install Install as shell greeting\n --settings-init Initialize settings file with defaults\n --settings-show Display current settings\n --settings-reset Reset settings to defaults\n --refresh Clear the cache file\n --set <key> <value> Set a configuration value (use dot notation)\n --json Output as JSON\n\nExamples:\n about-system # Show all info (default)\n about-system cpu,os # Show only CPU and OS info\n about-system user,hostname,ip # Show user, hostname, and IP\n about-system disk_used # Show only disk usage\n about-system --install\n about-system --set display.show_emojis false\n about-system --set colors.user blue\n about-system --json\n\nSettings file: ${SETTINGS_FILE}\nCache file: ${CACHE_FILE}\n\nPlatform: ${IS_WINDOWS ? 'Windows' : os.platform() === 'darwin' ? 'macOS' : os.platform() === 'linux' ? 'Linux' : 'Unknown'}\n\nAvailable display blocks:\n Basic: user, hostname, uptime, shell, os, kernel, device\n Resources: disk_used, ram_used, memory_available, swap_used, top_process\n Network: ip, iplocal, city, domain, isp, network_interfaces\n Hardware: cpu, gpu, temperature, battery, screen_resolution\n System: load_average, users_logged_in, mount_points, services_running\n Tools: pacman, ports, containers\n`);\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n\n if (handleSettingsCommand(args)) {\n return;\n }\n\n if (args.includes('--help') || args.includes('-h')) {\n await showHelp();\n return;\n }\n\n if (args.includes('--install')) {\n installShellGreeting();\n return;\n }\n\n if (args.includes('--json')) {\n const info = await getSystemInfo();\n console.log(JSON.stringify(info, null, 2));\n return;\n }\n\n const cliParts = parseCLIMode(args);\n if (cliParts) {\n const customDisplayOrder = [cliParts];\n await displaySystemInfo(customDisplayOrder);\n return;\n }\n\n await displaySystemInfo();\n}\n\nmain().catch((error) => {\n console.error('Error:', error.message);\n process.exit(1);\n});\n\nexport { displaySystemInfo, installShellGreeting };\n"],"names":["__filename","fileURLToPath","SETTINGS_FILE","path","os","CACHE_FILE","DEFAULT_SETTINGS","colors","emojis","IS_WINDOWS","loadSettings","fs","settings","saveSettings","configDir","formatValue","key","value","color","emoji","batteryEmoji","output","ports","colorCodes","port","index","colorCode","removeAnsiCodes","str","displaySystemInfo","customDisplayOrder","displayOrder","info","getSystemInfo","allItems","group","formatted","lines","currentLine","maxLineLength","formattedLength","currentLineLength","line","handleSettingsCommand","args","error","setIndex","parsedValue","keys","current","i","installShellGreeting","homeDir","scriptPath","currentScript","startupBat","hushLoginPath","bashrcPath","bashLine","zshrcPath","fishConfigPath","nushellConfigPath","parseCLIMode","arg","part","showHelp","main","cliParts"],"mappings":"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"}
1
+ {"version":3,"file":"about-system-cli.js","sources":["../src/about-system-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport os from \"os\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { getSystemInfo } from \"./system-info-api\";\nimport type { SystemInfo, SystemInfoOptions } from \"./systeminfo-types\";\n\nconst __filename = fileURLToPath(import.meta.url);\n\nimport {\n Settings,\n DEFAULT_SETTINGS,\n colors,\n SETTINGS_FILE,\n CACHE_FILE,\n loadSettings,\n saveSettings,\n} from \"./info/settings\";\n\n// Platform detection\nconst IS_WINDOWS = os.platform() === \"win32\";\n\nfunction formatValue(key: string, value: string, settings: Settings): string {\n if (!value || value.trim() === \"\") return \"\";\n\n const color =\n colors[settings.colors[key] as keyof typeof colors] || colors.reset;\n const emoji = settings.display.show_emojis ? settings.emojis[key] || \"\" : \"\";\n\n // Special handling for battery emoji\n if (key === \"battery\" && settings.display.show_emojis) {\n const batteryEmoji = value.includes(\"+\")\n ? settings.emojis.battery_charging\n : settings.emojis.battery;\n return `${color}${batteryEmoji}${value}`;\n }\n\n // Multicolor handling for ports\n if (key === \"ports\" && settings.colors[key] === \"multicolor\" && value) {\n const emoji = settings.display.show_emojis ? settings.emojis.ports : \"\";\n let output = ` ${emoji}`;\n const ports = value.split(\" \");\n const colorCodes = [31, 32, 33, 34, 35, 36];\n ports.forEach((port, index) => {\n const colorCode = colorCodes[index % colorCodes.length];\n output += `\\x1b[${colorCode}m${port}\\x1b[0m `;\n });\n return output.trim();\n }\n\n // Multicolor handling for pacman\n if (key === \"pacman\" && settings.colors[key] === \"multicolor\" && value) {\n const emoji = settings.display.show_emojis ? settings.emojis.pacman : \"\";\n return `${color}${emoji}${value}`;\n }\n\n return `${color}${emoji}${value}`;\n}\n\nfunction removeAnsiCodes(str: string): string {\n return str.replace(/\\x1b\\[[0-9;]*m/g, \"\");\n}\n\nasync function displaySystemInfo(\n customDisplayOrder: string[][] | null = null\n): Promise<void> {\n const settings = loadSettings();\n const displayOrder = customDisplayOrder || settings.display_order;\n\n // Get system info\n const info = await getSystemInfo();\n\n // Single line mode\n if (settings.display.single_line) {\n const allItems: string[] = [];\n\n for (const group of displayOrder) {\n for (const key of group) {\n const value = info[key as keyof SystemInfo] as string;\n const formatted = formatValue(key, value, settings);\n if (formatted && formatted.trim()) {\n allItems.push(formatted);\n }\n }\n }\n\n if (allItems.length > 0) {\n console.log(allItems.join(\" \") + colors.reset);\n }\n return;\n }\n\n // Multi-line mode with intelligent wrapping\n const lines: string[] = [];\n let currentLine = \"\";\n const maxLineLength = settings.display.line_wrap_length;\n\n for (const group of displayOrder) {\n for (const key of group) {\n const value = info[key as keyof SystemInfo] as string;\n const formatted = formatValue(key, value, settings);\n\n if (formatted && formatted.trim()) {\n const formattedLength = removeAnsiCodes(formatted).length;\n const currentLineLength = removeAnsiCodes(currentLine).length;\n\n if (\n currentLine &&\n currentLineLength + formattedLength + 1 > maxLineLength\n ) {\n lines.push(currentLine);\n currentLine = formatted;\n } else {\n currentLine = currentLine ? `${currentLine} ${formatted}` : formatted;\n }\n }\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n // Output\n if (lines.length > 0) {\n lines.forEach((line) => {\n console.log(line + colors.reset);\n });\n } else if (settings.advanced.debug) {\n console.log(\"No system information could be displayed\");\n }\n}\n\nfunction handleSettingsCommand(args: string[]): boolean {\n const settings = loadSettings();\n\n if (args.includes(\"--settings-init\")) {\n if (saveSettings(DEFAULT_SETTINGS)) {\n console.log(\"Settings initialized with defaults\");\n } else {\n console.log(\"Failed to initialize settings\");\n }\n return true;\n }\n\n if (args.includes(\"--settings-show\")) {\n console.log(\"Current settings:\");\n console.log(JSON.stringify(settings, null, 2));\n return true;\n }\n\n if (args.includes(\"--settings-reset\")) {\n if (saveSettings(DEFAULT_SETTINGS)) {\n console.log(\"Settings reset to defaults\");\n } else {\n console.log(\"Failed to reset settings\");\n }\n return true;\n }\n\n if (args.includes(\"--refresh\")) {\n try {\n if (fs.existsSync(CACHE_FILE)) {\n fs.unlinkSync(CACHE_FILE);\n console.log(\"Cache cleared\");\n }\n } catch (error) {\n console.error(\"Error clearing cache:\", (error as Error).message);\n }\n return true;\n }\n\n const setIndex = args.indexOf(\"--set\");\n if (setIndex !== -1 && args[setIndex + 1] && args[setIndex + 2]) {\n const key = args[setIndex + 1];\n const value = args[setIndex + 2];\n\n try {\n const parsedValue =\n value.startsWith(\"{\") || value.startsWith(\"[\")\n ? JSON.parse(value)\n : value;\n\n const keys = key.split(\".\");\n let current: any = settings;\n for (let i = 0; i < keys.length - 1; i++) {\n if (!current[keys[i]]) current[keys[i]] = {};\n current = current[keys[i]];\n }\n current[keys[keys.length - 1]] = parsedValue;\n\n if (saveSettings(settings)) {\n console.log(`Setting ${key} = ${value}`);\n } else {\n console.log(\"Failed to save settings\");\n }\n } catch (error) {\n console.error(\"Error setting value:\", (error as Error).message);\n }\n return true;\n }\n\n return false;\n}\n\nfunction installShellGreeting(): void {\n const homeDir = os.homedir();\n\n let configDir: string, scriptPath: string;\n if (IS_WINDOWS) {\n configDir = path.join(homeDir, \"AppData\", \"Local\");\n scriptPath = path.join(configDir, \"systeminfo\");\n } else {\n configDir = path.join(homeDir, \".config\");\n scriptPath = path.join(configDir, \"systeminfo\");\n }\n\n const currentScript = path.resolve(__filename);\n\n try {\n if (!fs.existsSync(configDir)) {\n fs.mkdirSync(configDir, { recursive: true });\n }\n\n fs.copyFileSync(currentScript, scriptPath);\n if (!IS_WINDOWS) {\n fs.chmodSync(scriptPath, \"755\");\n }\n\n if (IS_WINDOWS) {\n console.log(\"Windows installation:\");\n console.log(\"1. Script copied to:\", scriptPath);\n console.log(\"2. To add to PowerShell profile, run:\");\n console.log(` Add-Content $PROFILE \"node '${scriptPath}'\"`);\n console.log(\n \"3. To add to Command Prompt, create a batch file in your startup folder\"\n );\n\n const startupBat = path.join(configDir, \"systeminfo-startup.bat\");\n fs.writeFileSync(startupBat, `@echo off\\nnode \"${scriptPath}\"\\n`);\n console.log(\"4. Batch file created:\", startupBat);\n } else {\n try {\n const hushLoginPath = path.join(homeDir, \".hushlogin\");\n fs.writeFileSync(hushLoginPath, \"\");\n } catch {}\n\n const bashrcPath = path.join(homeDir, \".bashrc\");\n const bashLine = `node ${scriptPath}`;\n\n if (fs.existsSync(bashrcPath)) {\n const bashrc = fs.readFileSync(bashrcPath, \"utf8\");\n if (!bashrc.includes(\"systeminfo\")) {\n fs.appendFileSync(bashrcPath, `\\n${bashLine}\\n`);\n }\n } else {\n fs.writeFileSync(bashrcPath, `${bashLine}\\n`);\n }\n\n const zshrcPath = path.join(homeDir, \".zshrc\");\n if (fs.existsSync(zshrcPath)) {\n const zshrc = fs.readFileSync(zshrcPath, \"utf8\");\n if (!zshrc.includes(\"systeminfo\")) {\n fs.appendFileSync(zshrcPath, `\\n${bashLine}\\n`);\n }\n }\n\n const fishConfigPath = path.join(\n homeDir,\n \".config\",\n \"fish\",\n \"config.fish\"\n );\n if (fs.existsSync(fishConfigPath)) {\n const fishConfig = fs.readFileSync(fishConfigPath, \"utf8\");\n if (!fishConfig.includes(\"systeminfo\")) {\n fs.appendFileSync(\n fishConfigPath,\n `\\nset -U fish_greeting \"\"\\n${bashLine}\\n`\n );\n }\n }\n\n const nushellConfigPath = path.join(\n homeDir,\n \".config\",\n \"nushell\",\n \"config.nu\"\n );\n if (fs.existsSync(nushellConfigPath)) {\n const nushellConfig = fs.readFileSync(nushellConfigPath, \"utf8\");\n if (!nushellConfig.includes(\"systeminfo\")) {\n fs.appendFileSync(\n nushellConfigPath,\n `\\n$env.config.show_banner = false\\n${bashLine}\\n`\n );\n }\n }\n }\n\n console.log(\"Shell greeting installation completed!\");\n } catch (error) {\n console.error(\"Error installing shell greeting:\", (error as Error).message);\n process.exit(1);\n }\n}\n\nfunction parseCLIMode(args: string[]): string[] | null {\n for (const arg of args) {\n if (!arg.startsWith(\"--\") && arg.includes(\",\")) {\n return arg\n .split(\",\")\n .map((part) => part.trim())\n .filter((part) => part.length > 0);\n }\n }\n\n for (const arg of args) {\n if (!arg.startsWith(\"--\") && !arg.includes(\"=\") && arg.length > 0) {\n return [arg.trim()];\n }\n }\n\n return null;\n}\n\nasync function showHelp(): Promise<void> {\n console.log(`\nSystem Info Script - TypeScript Version\n\nUsage:\n about-system [options]\n about-system <part1,part2,...> # CLI mode: show specific parts only\n\nOptions:\n --help, -h Show this help message\n --install Install as shell greeting\n --settings-init Initialize settings file with defaults\n --settings-show Display current settings\n --settings-reset Reset settings to defaults\n --refresh Clear the cache file\n --set <key> <value> Set a configuration value (use dot notation)\n --json Output as JSON\n\nExamples:\n about-system # Show all info (default)\n about-system cpu,os # Show only CPU and OS info\n about-system user,hostname,ip # Show user, hostname, and IP\n about-system disk_used # Show only disk usage\n about-system --install\n about-system --set display.show_emojis false\n about-system --set colors.user blue\n about-system --set emojis.cpu \"🚀 \"\n about-system --set labels.cpu \"Processor\"\n about-system --json\n\nSettings file: ${SETTINGS_FILE}\nCache file: ${CACHE_FILE}\n\nPlatform: ${\n IS_WINDOWS\n ? \"Windows\"\n : os.platform() === \"darwin\"\n ? \"macOS\"\n : os.platform() === \"linux\"\n ? \"Linux\"\n : \"Unknown\"\n }\n\nAvailable display blocks:\n Basic: user, hostname, uptime, shell, os, kernel, device\n Resources: disk_used, ram_used, memory_available, swap_used, top_process\n Network: ip, iplocal, city, domain, isp, network_interfaces\n Hardware: cpu, gpu, temperature, battery, screen_resolution\n System: load_average, users_logged_in, mount_points, services_running\n Tools: pacman, ports, containers\n`);\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n\n if (handleSettingsCommand(args)) {\n return;\n }\n\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n await showHelp();\n return;\n }\n\n if (args.includes(\"--install\")) {\n installShellGreeting();\n return;\n }\n\n if (args.includes(\"--json\")) {\n const info = await getSystemInfo();\n console.log(JSON.stringify(info, null, 2));\n return;\n }\n\n const cliParts = parseCLIMode(args);\n if (cliParts) {\n const customDisplayOrder = [cliParts];\n await displaySystemInfo(customDisplayOrder);\n return;\n }\n\n await displaySystemInfo();\n}\n\nmain().catch((error) => {\n console.error(\"Error:\", error.message);\n process.exit(1);\n});\n\nexport { displaySystemInfo, installShellGreeting };\n"],"names":["__filename","fileURLToPath","IS_WINDOWS","os","formatValue","key","value","settings","color","colors","emoji","batteryEmoji","output","ports","colorCodes","port","index","colorCode","removeAnsiCodes","str","displaySystemInfo","customDisplayOrder","loadSettings","displayOrder","info","getSystemInfo","allItems","group","formatted","lines","currentLine","maxLineLength","formattedLength","currentLineLength","line","handleSettingsCommand","args","saveSettings","DEFAULT_SETTINGS","fs","CACHE_FILE","error","setIndex","parsedValue","keys","current","i","installShellGreeting","homeDir","configDir","scriptPath","path","currentScript","startupBat","hushLoginPath","bashrcPath","bashLine","zshrcPath","fishConfigPath","nushellConfigPath","parseCLIMode","arg","part","showHelp","SETTINGS_FILE","main","cliParts"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,11 +3,12 @@ import { GetSystemInfoFunction } from './systeminfo-types.js';
3
3
  import { Platform } from './systeminfo-types.js';
4
4
  import { PlatformAvailability } from './systeminfo-types.js';
5
5
  import { SystemInfo } from './systeminfo-types.js';
6
+ import { SystemInfo as SystemInfo_2 } from './systeminfo-types';
6
7
  import { SystemInfoOptions } from './systeminfo-types.js';
8
+ import { SystemInfoOptions as SystemInfoOptions_2 } from './systeminfo-types';
7
9
 
8
10
  /**
9
11
  * Cache storage structure
10
- * @interface Cache
11
12
  */
12
13
  declare interface Cache {
13
14
  [key: string]: CacheEntry;
@@ -15,12 +16,9 @@ declare interface Cache {
15
16
 
16
17
  /**
17
18
  * Represents a cached value with timestamp
18
- * @interface CacheEntry
19
19
  */
20
20
  declare interface CacheEntry {
21
- /** The cached value */
22
21
  value: any;
23
- /** Unix timestamp when the value was cached */
24
22
  timestamp: number;
25
23
  }
26
24
 
@@ -28,16 +26,13 @@ export { DisplaySystemInfoFunction }
28
26
 
29
27
  /**
30
28
  * Get all system information as a clean JSON object
31
- * @param options Configuration options
32
- * @returns Promise resolving to SystemInfo object
33
29
  */
34
- export declare function getSystemInfo(options?: SystemInfoOptions): Promise<SystemInfo>;
30
+ export declare function getSystemInfo(options?: SystemInfoOptions_2): Promise<SystemInfo_2>;
35
31
 
36
32
  export { GetSystemInfoFunction }
37
33
 
38
34
  /**
39
35
  * Loads cache from disk
40
- * @returns {Cache} Cached data or empty object if cache doesn't exist or is corrupted
41
36
  */
42
37
  export declare function loadCache(): Cache;
43
38
 
@@ -47,7 +42,6 @@ export { PlatformAvailability }
47
42
 
48
43
  /**
49
44
  * Saves cache to disk
50
- * @param {Cache} cache - Cache object to save
51
45
  */
52
46
  export declare function saveCache(cache: Cache): void;
53
47
 
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { getSystemInfo as o, loadCache as t, saveCache as c } from "./system-info-api.js";
1
+ import { g as s, l as o, s as t } from "./system-info-api-DAF2cjeE.js";
2
2
  export {
3
- o as getSystemInfo,
4
- t as loadCache,
5
- c as saveCache
3
+ s as getSystemInfo,
4
+ o as loadCache,
5
+ t as saveCache
6
6
  };
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
File without changes