manageos 1.0.2 → 2.0.1

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.
Files changed (66) hide show
  1. package/package.json +11 -2
  2. package/README.md +0 -142
  3. package/dist/audio.d.ts +0 -38
  4. package/dist/audio.d.ts.map +0 -1
  5. package/dist/audio.js +0 -178
  6. package/dist/audio.js.map +0 -1
  7. package/dist/clipboard.d.ts +0 -16
  8. package/dist/clipboard.d.ts.map +0 -1
  9. package/dist/clipboard.js +0 -56
  10. package/dist/clipboard.js.map +0 -1
  11. package/dist/encryption.d.ts +0 -16
  12. package/dist/encryption.d.ts.map +0 -1
  13. package/dist/encryption.js +0 -53
  14. package/dist/encryption.js.map +0 -1
  15. package/dist/filesystem.d.ts +0 -30
  16. package/dist/filesystem.d.ts.map +0 -1
  17. package/dist/filesystem.js +0 -156
  18. package/dist/filesystem.js.map +0 -1
  19. package/dist/firewall.d.ts +0 -39
  20. package/dist/firewall.d.ts.map +0 -1
  21. package/dist/firewall.js +0 -116
  22. package/dist/firewall.js.map +0 -1
  23. package/dist/index.d.ts +0 -33
  24. package/dist/index.d.ts.map +0 -1
  25. package/dist/index.js +0 -39
  26. package/dist/index.js.map +0 -1
  27. package/dist/network.d.ts +0 -82
  28. package/dist/network.d.ts.map +0 -1
  29. package/dist/network.js +0 -355
  30. package/dist/network.js.map +0 -1
  31. package/dist/notification.d.ts +0 -81
  32. package/dist/notification.d.ts.map +0 -1
  33. package/dist/notification.js +0 -146
  34. package/dist/notification.js.map +0 -1
  35. package/dist/power.d.ts +0 -18
  36. package/dist/power.d.ts.map +0 -1
  37. package/dist/power.js +0 -65
  38. package/dist/power.js.map +0 -1
  39. package/dist/regedit.d.ts +0 -11
  40. package/dist/regedit.d.ts.map +0 -1
  41. package/dist/regedit.js +0 -93
  42. package/dist/regedit.js.map +0 -1
  43. package/dist/screen.d.ts +0 -11
  44. package/dist/screen.d.ts.map +0 -1
  45. package/dist/screen.js +0 -13
  46. package/dist/screen.js.map +0 -1
  47. package/dist/services.d.ts +0 -60
  48. package/dist/services.d.ts.map +0 -1
  49. package/dist/services.js +0 -322
  50. package/dist/services.js.map +0 -1
  51. package/dist/systeminfo.d.ts +0 -19
  52. package/dist/systeminfo.d.ts.map +0 -1
  53. package/dist/systeminfo.js +0 -25
  54. package/dist/systeminfo.js.map +0 -1
  55. package/dist/taskmgr.d.ts +0 -29
  56. package/dist/taskmgr.d.ts.map +0 -1
  57. package/dist/taskmgr.js +0 -170
  58. package/dist/taskmgr.js.map +0 -1
  59. package/dist/uac.d.ts +0 -28
  60. package/dist/uac.d.ts.map +0 -1
  61. package/dist/uac.js +0 -69
  62. package/dist/uac.js.map +0 -1
  63. package/dist/users.d.ts +0 -62
  64. package/dist/users.d.ts.map +0 -1
  65. package/dist/users.js +0 -323
  66. package/dist/users.js.map +0 -1
package/dist/users.js DELETED
@@ -1,323 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const child_process_1 = require("child_process");
4
- function execSync(command, options) {
5
- return (0, child_process_1.execSync)(command, {
6
- encoding: "utf8",
7
- stdio: "pipe",
8
- ...options,
9
- });
10
- }
11
- class Users {
12
- static parseDate(output) {
13
- if (!output)
14
- return null;
15
- return output.replace(/\r/g, "").replace(/\n+/g, "").trim() || null;
16
- }
17
- static cache = {};
18
- static CACHE_TTL_MS = 5_000;
19
- static escapeArg(arg) {
20
- return `"${arg.replace(/"/g, '\\"')}"`;
21
- }
22
- static execCommand(command) {
23
- try {
24
- const output = execSync(command, { encoding: "utf8" });
25
- return { success: true, output };
26
- }
27
- catch (err) {
28
- const errorMsg = err instanceof Error
29
- ? err.message
30
- : typeof err === "string"
31
- ? err
32
- : JSON.stringify(err);
33
- return { success: false, error: errorMsg };
34
- }
35
- }
36
- static parseSectionedOutput(output) {
37
- const lines = output.split(/\r?\n/);
38
- const result = [];
39
- let collecting = false;
40
- for (let raw of lines) {
41
- const line = raw.replace(/\r$/, "");
42
- if (line.includes("-----")) {
43
- collecting = !collecting;
44
- continue;
45
- }
46
- if (!collecting)
47
- continue;
48
- if (/The command completed/i.test(line))
49
- continue;
50
- const candidate = line.trim();
51
- if (candidate) {
52
- result.push(candidate);
53
- }
54
- }
55
- return result;
56
- }
57
- static doesUserExist(username) {
58
- const res = this.execCommand(`net user ${this.escapeArg(username)}`);
59
- return res.success && !res.error;
60
- }
61
- static lockUser(username) {
62
- const escUser = this.escapeArg(username);
63
- return this.execCommand(`net user ${escUser} /lock`);
64
- }
65
- static unlockUser(username) {
66
- const escUser = this.escapeArg(username);
67
- return this.execCommand(`net user ${escUser} /active:yes`);
68
- }
69
- static setUserComment(username, comment) {
70
- const escUser = this.escapeArg(username);
71
- const escComment = this.escapeArg(comment);
72
- return this.execCommand(`net user ${escUser} /comment:${escComment}`);
73
- }
74
- static getLastLogon(username) {
75
- const escUser = username.replace(/'/g, "''"); // Escapa comillas simples
76
- const res = this.execCommand(`powershell -Command "Get-LocalUser -Name '${escUser}' | Select-Object -ExpandProperty LastLogon"`);
77
- if (!res.success || !res.output)
78
- return res;
79
- const isoDate = this.parseDate(res.output);
80
- return { success: true, output: isoDate ?? "" };
81
- }
82
- static createUser(username, password) {
83
- const escUser = this.escapeArg(username);
84
- const passPart = password !== undefined ? this.escapeArg(password) : '""';
85
- const res = this.execCommand(`net user ${escUser} ${passPart} /add`);
86
- if (res.success) {
87
- delete this.cache.users;
88
- }
89
- return res;
90
- }
91
- static deleteUser(username) {
92
- const escUser = this.escapeArg(username);
93
- const res = this.execCommand(`net user ${escUser} /delete`);
94
- if (res.success)
95
- delete this.cache.users;
96
- return res;
97
- }
98
- static changePassword(username, newPassword) {
99
- const escUser = this.escapeArg(username);
100
- const escPass = this.escapeArg(newPassword);
101
- return this.execCommand(`net user ${escUser} ${escPass}`);
102
- }
103
- static setUserActive(username, active) {
104
- const escUser = this.escapeArg(username);
105
- const res = this.execCommand(`net user ${escUser} /active:${active ? "yes" : "no"}`);
106
- if (res.success)
107
- delete this.cache.users;
108
- return res;
109
- }
110
- static requirePasswordChange(username, require) {
111
- const escUser = this.escapeArg(username);
112
- return this.execCommand(`net user ${escUser} /logonpasswordchg:${require ? "yes" : "no"}`);
113
- }
114
- static addUserToGroup(username, group) {
115
- const escUser = this.escapeArg(username);
116
- const escGroup = this.escapeArg(group);
117
- const res = this.execCommand(`net localgroup ${escGroup} ${escUser} /add`);
118
- if (res.success)
119
- delete this.cache.groups;
120
- return res;
121
- }
122
- static removeUserFromGroup(username, group) {
123
- const escUser = this.escapeArg(username);
124
- const escGroup = this.escapeArg(group);
125
- const res = this.execCommand(`net localgroup ${escGroup} ${escUser} /delete`);
126
- if (res.success)
127
- delete this.cache.groups;
128
- return res;
129
- }
130
- static listUsers() {
131
- const now = Date.now();
132
- if (this.cache.users &&
133
- now - this.cache.users.ts < this.CACHE_TTL_MS &&
134
- Array.isArray(this.cache.users.data)) {
135
- return this.cache.users.data.slice();
136
- }
137
- const res = this.execCommand("net user");
138
- if (!res.success || !res.output) {
139
- return [];
140
- }
141
- const parsed = this.parseSectionedOutput(res.output)
142
- .map((line) => line
143
- .trim()
144
- .split(/\s+/)
145
- .filter((u) => u &&
146
- u !== "The" &&
147
- u !== "command" &&
148
- u !== "completed" &&
149
- u !== "successfully."))
150
- .flat();
151
- this.cache.users = { data: parsed, ts: Date.now() };
152
- return parsed;
153
- }
154
- static listGroups() {
155
- const now = Date.now();
156
- if (this.cache.groups &&
157
- now - this.cache.groups.ts < this.CACHE_TTL_MS &&
158
- Array.isArray(this.cache.groups.data)) {
159
- return this.cache.groups.data.slice();
160
- }
161
- const res = this.execCommand("net localgroup");
162
- if (!res.success || !res.output) {
163
- return [];
164
- }
165
- const parsed = this.parseSectionedOutput(res.output)
166
- .map((l) => l.replace(/^\*/, "").trim())
167
- .filter(Boolean);
168
- this.cache.groups = { data: parsed, ts: Date.now() };
169
- return parsed;
170
- }
171
- static listGroupMembers(groupName) {
172
- const escGroup = this.escapeArg(groupName);
173
- const res = this.execCommand(`net localgroup ${escGroup}`);
174
- if (!res.success || !res.output) {
175
- return res.error;
176
- }
177
- const parsed = this.parseSectionedOutput(res.output)
178
- .map((line) => line.split(/\s+/).filter(Boolean))
179
- .flat();
180
- return parsed;
181
- }
182
- static userExists(username) {
183
- return this.listUsers().includes(username);
184
- }
185
- static getUserInfo(username) {
186
- const escUser = this.escapeArg(username);
187
- const res = this.execCommand(`net user ${escUser}`);
188
- if (!res.success || !res.output) {
189
- return null;
190
- }
191
- const lines = res.output.split(/\r?\n/).map((ln) => ln.replace(/\r$/, ""));
192
- const details = {};
193
- let currentKey = null;
194
- const knownKeys = [
195
- "User name",
196
- "Full Name",
197
- "Comment",
198
- "User's comment",
199
- "Country/region code",
200
- "Account active",
201
- "Account expires",
202
- "Password last set",
203
- "Password expires",
204
- "Password changeable",
205
- "Password required",
206
- "User may change password",
207
- "Workstations allowed",
208
- "Logon script",
209
- "User profile",
210
- "Home directory",
211
- "Last logon",
212
- "Logon hours allowed",
213
- "Local Group Memberships",
214
- "Global Group memberships",
215
- ];
216
- let collecting = false;
217
- for (let raw of lines) {
218
- const line = raw.trimEnd();
219
- if (line.startsWith("User name"))
220
- collecting = true;
221
- if (!collecting)
222
- continue;
223
- if (/The command completed/i.test(line))
224
- break;
225
- const match = line.match(/^([^:]+?)\s{2,}(.*)$/);
226
- if (match) {
227
- const key = match[1].trim();
228
- const value = match[2].trim();
229
- if (knownKeys.includes(key)) {
230
- currentKey = key;
231
- details[currentKey] = value;
232
- }
233
- else {
234
- currentKey = null;
235
- }
236
- }
237
- else {
238
- const possibleKey = line.trim();
239
- if (knownKeys.includes(possibleKey)) {
240
- currentKey = possibleKey;
241
- details[currentKey] = "";
242
- }
243
- else if (currentKey) {
244
- details[currentKey] = (details[currentKey] || "") + " " + line.trim();
245
- }
246
- }
247
- }
248
- return {
249
- username,
250
- fullName: details["Full Name"] || "",
251
- comment: details["Comment"] || details["User's comment"] || "",
252
- countryRegionCode: details["Country/region code"] || "",
253
- accountActive: details["Account active"] || "",
254
- accountExpires: details["Account expires"] || "",
255
- passwordLastSet: details["Password last set"] || "",
256
- passwordExpires: details["Password expires"] || "",
257
- passwordChangeable: details["Password changeable"] || "",
258
- passwordRequired: details["Password required"] || "",
259
- userMayChangePassword: details["User may change password"] || "",
260
- workstationsAllowed: details["Workstations allowed"] || "",
261
- logonScript: details["Logon script"] || "",
262
- profilePath: details["User profile"] || "",
263
- homeDirectory: details["Home directory"] || "",
264
- lastLogon: details["Last logon"] || "",
265
- logonHoursAllowed: details["Logon hours allowed"] || "",
266
- localGroupMemberships: (details["Local Group Memberships"] || "")
267
- .split(/\s+/)
268
- .filter(Boolean),
269
- globalGroupMemberships: (details["Global Group memberships"] || "")
270
- .split(/\s+/)
271
- .filter(Boolean),
272
- };
273
- }
274
- static getAllUsersInfo() {
275
- const users = this.listUsers();
276
- const allInfo = [];
277
- for (const u of users) {
278
- const info = this.getUserInfo(u);
279
- if (info)
280
- allInfo.push(info);
281
- }
282
- return allInfo;
283
- }
284
- static getAllGroupMembers() {
285
- const groups = this.listGroups();
286
- const result = [];
287
- for (const g of groups) {
288
- const members = this.listGroupMembers(g);
289
- result.push({ group: g, members: Array.isArray(members) ? members : [] });
290
- }
291
- return result;
292
- }
293
- static getUserGroups(username) {
294
- const allGroups = this.listGroups();
295
- const userGroups = [];
296
- for (const group of allGroups) {
297
- const members = this.listGroupMembers(group);
298
- if (Array.isArray(members) && members.includes(username)) {
299
- userGroups.push(group);
300
- }
301
- }
302
- return userGroups;
303
- }
304
- static listActiveSessions() {
305
- const res = this.execCommand('powershell -Command "Get-LocalUser | Where-Object {$_.Enabled -eq $true} | Select-Object -ExpandProperty Name"');
306
- if (!res.success || !res.output)
307
- return [];
308
- return res.output
309
- .split(/\r?\n/)
310
- .map((line) => line.trim())
311
- .filter(Boolean);
312
- }
313
- static currentUser() {
314
- try {
315
- return execSync("whoami", { encoding: "utf8" }).trim();
316
- }
317
- catch (err) {
318
- return String(err);
319
- }
320
- }
321
- }
322
- exports.default = Users;
323
- //# sourceMappingURL=users.js.map
package/dist/users.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../src/users.ts"],"names":[],"mappings":"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"}