manageos 2.3.0 → 2.3.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 (178) hide show
  1. package/dist/Android/adb.d.ts +221 -0
  2. package/dist/Android/adb.d.ts.map +1 -0
  3. package/dist/Android/adb.js +1150 -0
  4. package/dist/Android/adb.js.map +1 -0
  5. package/dist/Android/dependencies/AdbWinApi.dll +0 -0
  6. package/dist/Android/dependencies/AdbWinUsbApi.dll +0 -0
  7. package/dist/Android/dependencies/adb.exe +0 -0
  8. package/dist/Android/dependencies/cmd-here.exe +0 -0
  9. package/dist/Android/dependencies/fastboot.exe +0 -0
  10. package/dist/Android/fastboot.d.ts +48 -0
  11. package/dist/Android/fastboot.d.ts.map +1 -0
  12. package/dist/Android/fastboot.js +173 -0
  13. package/dist/Android/fastboot.js.map +1 -0
  14. package/dist/Android/index.d.ts +7 -0
  15. package/dist/Android/index.d.ts.map +1 -0
  16. package/dist/Android/index.js +7 -0
  17. package/dist/Android/index.js.map +1 -0
  18. package/dist/Mouse/index.d.ts +38 -0
  19. package/dist/Mouse/index.d.ts.map +1 -0
  20. package/dist/Mouse/index.js +165 -0
  21. package/dist/Mouse/index.js.map +1 -0
  22. package/dist/Mouse/mouse.exe +0 -0
  23. package/dist/PsExec/dependencies/PsExec.exe +0 -0
  24. package/dist/PsExec/dependencies/PsExec64.exe +0 -0
  25. package/dist/PsExec/dependencies/PsGetsid.exe +0 -0
  26. package/dist/PsExec/dependencies/PsGetsid64.exe +0 -0
  27. package/dist/PsExec/dependencies/PsInfo.exe +0 -0
  28. package/dist/PsExec/dependencies/PsInfo64.exe +0 -0
  29. package/dist/PsExec/dependencies/psfile.exe +0 -0
  30. package/dist/PsExec/index.d.ts +11 -0
  31. package/dist/PsExec/index.d.ts.map +1 -0
  32. package/dist/PsExec/index.js +11 -0
  33. package/dist/PsExec/index.js.map +1 -0
  34. package/dist/PsExec/psexec.d.ts +39 -0
  35. package/dist/PsExec/psexec.d.ts.map +1 -0
  36. package/dist/PsExec/psexec.js +118 -0
  37. package/dist/PsExec/psexec.js.map +1 -0
  38. package/dist/PsExec/psfile.d.ts +30 -0
  39. package/dist/PsExec/psfile.d.ts.map +1 -0
  40. package/dist/PsExec/psfile.js +92 -0
  41. package/dist/PsExec/psfile.js.map +1 -0
  42. package/dist/PsExec/psgetsid.d.ts +29 -0
  43. package/dist/PsExec/psgetsid.d.ts.map +1 -0
  44. package/dist/PsExec/psgetsid.js +85 -0
  45. package/dist/PsExec/psgetsid.js.map +1 -0
  46. package/dist/PsExec/psinfo.d.ts +33 -0
  47. package/dist/PsExec/psinfo.d.ts.map +1 -0
  48. package/dist/PsExec/psinfo.js +101 -0
  49. package/dist/PsExec/psinfo.js.map +1 -0
  50. package/dist/antivirus.d.ts +23 -0
  51. package/dist/antivirus.d.ts.map +1 -0
  52. package/dist/antivirus.js +124 -0
  53. package/dist/antivirus.js.map +1 -0
  54. package/dist/audio.d.ts +38 -0
  55. package/dist/audio.d.ts.map +1 -0
  56. package/dist/audio.js +172 -0
  57. package/dist/audio.js.map +1 -0
  58. package/dist/auditpolicy.d.ts +24 -0
  59. package/dist/auditpolicy.d.ts.map +1 -0
  60. package/dist/auditpolicy.js +115 -0
  61. package/dist/auditpolicy.js.map +1 -0
  62. package/dist/bitlocker.d.ts +43 -0
  63. package/dist/bitlocker.d.ts.map +1 -0
  64. package/dist/bitlocker.js +212 -0
  65. package/dist/bitlocker.js.map +1 -0
  66. package/dist/camera.d.ts +34 -0
  67. package/dist/camera.d.ts.map +1 -0
  68. package/dist/camera.js +172 -0
  69. package/dist/camera.js.map +1 -0
  70. package/dist/certificates.d.ts +30 -0
  71. package/dist/certificates.d.ts.map +1 -0
  72. package/dist/certificates.js +143 -0
  73. package/dist/certificates.js.map +1 -0
  74. package/dist/clipboard.d.ts +16 -0
  75. package/dist/clipboard.d.ts.map +1 -0
  76. package/dist/clipboard.js +50 -0
  77. package/dist/clipboard.js.map +1 -0
  78. package/dist/encryption.d.ts +16 -0
  79. package/dist/encryption.d.ts.map +1 -0
  80. package/dist/encryption.js +47 -0
  81. package/dist/encryption.js.map +1 -0
  82. package/dist/eventlogs.d.ts +34 -0
  83. package/dist/eventlogs.d.ts.map +1 -0
  84. package/dist/eventlogs.js +125 -0
  85. package/dist/eventlogs.js.map +1 -0
  86. package/dist/filesystem.d.ts +30 -0
  87. package/dist/filesystem.d.ts.map +1 -0
  88. package/dist/filesystem.js +150 -0
  89. package/dist/filesystem.js.map +1 -0
  90. package/dist/firewall.d.ts +39 -0
  91. package/dist/firewall.d.ts.map +1 -0
  92. package/dist/firewall.js +113 -0
  93. package/dist/firewall.js.map +1 -0
  94. package/dist/index.d.ts +71 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +71 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/localization.d.ts +22 -0
  99. package/dist/localization.d.ts.map +1 -0
  100. package/dist/localization.js +102 -0
  101. package/dist/localization.js.map +1 -0
  102. package/dist/microphone.d.ts +39 -0
  103. package/dist/microphone.d.ts.map +1 -0
  104. package/dist/microphone.js +94 -0
  105. package/dist/microphone.js.map +1 -0
  106. package/dist/msconfig.d.ts +32 -0
  107. package/dist/msconfig.d.ts.map +1 -0
  108. package/dist/msconfig.js +192 -0
  109. package/dist/msconfig.js.map +1 -0
  110. package/dist/network.d.ts +82 -0
  111. package/dist/network.d.ts.map +1 -0
  112. package/dist/network.js +349 -0
  113. package/dist/network.js.map +1 -0
  114. package/dist/notification.d.ts +81 -0
  115. package/dist/notification.d.ts.map +1 -0
  116. package/dist/notification.js +140 -0
  117. package/dist/notification.js.map +1 -0
  118. package/dist/power.d.ts +18 -0
  119. package/dist/power.d.ts.map +1 -0
  120. package/dist/power.js +62 -0
  121. package/dist/power.js.map +1 -0
  122. package/dist/printer.d.ts +51 -0
  123. package/dist/printer.d.ts.map +1 -0
  124. package/dist/printer.js +170 -0
  125. package/dist/printer.js.map +1 -0
  126. package/dist/regedit.d.ts +11 -0
  127. package/dist/regedit.d.ts.map +1 -0
  128. package/dist/regedit.js +57 -0
  129. package/dist/regedit.js.map +1 -0
  130. package/dist/scheduler.d.ts +39 -0
  131. package/dist/scheduler.d.ts.map +1 -0
  132. package/dist/scheduler.js +116 -0
  133. package/dist/scheduler.js.map +1 -0
  134. package/dist/screen.d.ts +234 -0
  135. package/dist/screen.d.ts.map +1 -0
  136. package/dist/screen.js +942 -0
  137. package/dist/screen.js.map +1 -0
  138. package/dist/secpol.d.ts +22 -0
  139. package/dist/secpol.d.ts.map +1 -0
  140. package/dist/secpol.js +88 -0
  141. package/dist/secpol.js.map +1 -0
  142. package/dist/services.d.ts +60 -0
  143. package/dist/services.d.ts.map +1 -0
  144. package/dist/services.js +286 -0
  145. package/dist/services.js.map +1 -0
  146. package/dist/shell.d.ts +49 -0
  147. package/dist/shell.d.ts.map +1 -0
  148. package/dist/shell.js +212 -0
  149. package/dist/shell.js.map +1 -0
  150. package/dist/systeminfo.d.ts +19 -0
  151. package/dist/systeminfo.d.ts.map +1 -0
  152. package/dist/systeminfo.js +19 -0
  153. package/dist/systeminfo.js.map +1 -0
  154. package/dist/taskmgr.d.ts +29 -0
  155. package/dist/taskmgr.d.ts.map +1 -0
  156. package/dist/taskmgr.js +167 -0
  157. package/dist/taskmgr.js.map +1 -0
  158. package/dist/taskscheduler.d.ts +58 -0
  159. package/dist/taskscheduler.d.ts.map +1 -0
  160. package/dist/taskscheduler.js +332 -0
  161. package/dist/taskscheduler.js.map +1 -0
  162. package/dist/uac.d.ts +28 -0
  163. package/dist/uac.d.ts.map +1 -0
  164. package/dist/uac.js +66 -0
  165. package/dist/uac.js.map +1 -0
  166. package/dist/usb.d.ts +29 -0
  167. package/dist/usb.d.ts.map +1 -0
  168. package/dist/usb.js +161 -0
  169. package/dist/usb.js.map +1 -0
  170. package/dist/users.d.ts +62 -0
  171. package/dist/users.d.ts.map +1 -0
  172. package/dist/users.js +320 -0
  173. package/dist/users.js.map +1 -0
  174. package/dist/windowsupdate.d.ts +26 -0
  175. package/dist/windowsupdate.d.ts.map +1 -0
  176. package/dist/windowsupdate.js +120 -0
  177. package/dist/windowsupdate.js.map +1 -0
  178. package/package.json +1 -1
@@ -0,0 +1,62 @@
1
+ type UserList = string[];
2
+ type UserInfo = {
3
+ username: string;
4
+ fullName: string;
5
+ comment: string;
6
+ countryRegionCode: string;
7
+ accountActive: string;
8
+ accountExpires: string;
9
+ passwordLastSet: string;
10
+ passwordExpires: string;
11
+ passwordChangeable: string;
12
+ passwordRequired: string;
13
+ userMayChangePassword: string;
14
+ workstationsAllowed: string;
15
+ logonScript: string;
16
+ profilePath: string;
17
+ homeDirectory: string;
18
+ lastLogon: string;
19
+ logonHoursAllowed: string;
20
+ localGroupMemberships: string[];
21
+ globalGroupMemberships: string[];
22
+ };
23
+ type CommandResult = {
24
+ success: boolean;
25
+ output?: string;
26
+ error?: string;
27
+ };
28
+ export default class Users {
29
+ private static parseDate;
30
+ private static cache;
31
+ private static CACHE_TTL_MS;
32
+ private static escapeArg;
33
+ private static execCommand;
34
+ private static parseSectionedOutput;
35
+ static doesUserExist(username: string): boolean;
36
+ static lockUser(username: string): CommandResult;
37
+ static unlockUser(username: string): CommandResult;
38
+ static setUserComment(username: string, comment: string): CommandResult;
39
+ static getLastLogon(username: string): CommandResult;
40
+ static createUser(username: string, password?: string): CommandResult;
41
+ static deleteUser(username: string): CommandResult;
42
+ static changePassword(username: string, newPassword: string): CommandResult;
43
+ static setUserActive(username: string, active: boolean): CommandResult;
44
+ static requirePasswordChange(username: string, require: boolean): CommandResult;
45
+ static addUserToGroup(username: string, group: string): CommandResult;
46
+ static removeUserFromGroup(username: string, group: string): CommandResult;
47
+ static listUsers(): UserList;
48
+ static listGroups(): string[];
49
+ static listGroupMembers(groupName: string): string[] | string | undefined;
50
+ static userExists(username: string): boolean;
51
+ static getUserInfo(username: string): UserInfo | null;
52
+ static getAllUsersInfo(): UserInfo[];
53
+ static getAllGroupMembers(): {
54
+ group: string;
55
+ members: string[];
56
+ }[];
57
+ static getUserGroups(username: string): string[];
58
+ static listActiveSessions(): string[];
59
+ static currentUser(): string;
60
+ }
61
+ export {};
62
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../src/users.ts"],"names":[],"mappings":"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"}
package/dist/users.js ADDED
@@ -0,0 +1,320 @@
1
+ import { execSync as originalExecSync, } from "child_process";
2
+ function execSync(command, options) {
3
+ return originalExecSync(command, {
4
+ encoding: "utf8",
5
+ stdio: "pipe",
6
+ ...options,
7
+ });
8
+ }
9
+ export default class Users {
10
+ static parseDate(output) {
11
+ if (!output)
12
+ return null;
13
+ return output.replace(/\r/g, "").replace(/\n+/g, "").trim() || null;
14
+ }
15
+ static cache = {};
16
+ static CACHE_TTL_MS = 5_000;
17
+ static escapeArg(arg) {
18
+ return `"${arg.replace(/"/g, '\\"')}"`;
19
+ }
20
+ static execCommand(command) {
21
+ try {
22
+ const output = execSync(command, { encoding: "utf8" });
23
+ return { success: true, output };
24
+ }
25
+ catch (err) {
26
+ const errorMsg = err instanceof Error
27
+ ? err.message
28
+ : typeof err === "string"
29
+ ? err
30
+ : JSON.stringify(err);
31
+ return { success: false, error: errorMsg };
32
+ }
33
+ }
34
+ static parseSectionedOutput(output) {
35
+ const lines = output.split(/\r?\n/);
36
+ const result = [];
37
+ let collecting = false;
38
+ for (let raw of lines) {
39
+ const line = raw.replace(/\r$/, "");
40
+ if (line.includes("-----")) {
41
+ collecting = !collecting;
42
+ continue;
43
+ }
44
+ if (!collecting)
45
+ continue;
46
+ if (/The command completed/i.test(line))
47
+ continue;
48
+ const candidate = line.trim();
49
+ if (candidate) {
50
+ result.push(candidate);
51
+ }
52
+ }
53
+ return result;
54
+ }
55
+ static doesUserExist(username) {
56
+ const res = this.execCommand(`net user ${this.escapeArg(username)}`);
57
+ return res.success && !res.error;
58
+ }
59
+ static lockUser(username) {
60
+ const escUser = this.escapeArg(username);
61
+ return this.execCommand(`net user ${escUser} /lock`);
62
+ }
63
+ static unlockUser(username) {
64
+ const escUser = this.escapeArg(username);
65
+ return this.execCommand(`net user ${escUser} /active:yes`);
66
+ }
67
+ static setUserComment(username, comment) {
68
+ const escUser = this.escapeArg(username);
69
+ const escComment = this.escapeArg(comment);
70
+ return this.execCommand(`net user ${escUser} /comment:${escComment}`);
71
+ }
72
+ static getLastLogon(username) {
73
+ const escUser = username.replace(/'/g, "''"); // Escapa comillas simples
74
+ const res = this.execCommand(`powershell -Command "Get-LocalUser -Name '${escUser}' | Select-Object -ExpandProperty LastLogon"`);
75
+ if (!res.success || !res.output)
76
+ return res;
77
+ const isoDate = this.parseDate(res.output);
78
+ return { success: true, output: isoDate ?? "" };
79
+ }
80
+ static createUser(username, password) {
81
+ const escUser = this.escapeArg(username);
82
+ const passPart = password !== undefined ? this.escapeArg(password) : '""';
83
+ const res = this.execCommand(`net user ${escUser} ${passPart} /add`);
84
+ if (res.success) {
85
+ delete this.cache.users;
86
+ }
87
+ return res;
88
+ }
89
+ static deleteUser(username) {
90
+ const escUser = this.escapeArg(username);
91
+ const res = this.execCommand(`net user ${escUser} /delete`);
92
+ if (res.success)
93
+ delete this.cache.users;
94
+ return res;
95
+ }
96
+ static changePassword(username, newPassword) {
97
+ const escUser = this.escapeArg(username);
98
+ const escPass = this.escapeArg(newPassword);
99
+ return this.execCommand(`net user ${escUser} ${escPass}`);
100
+ }
101
+ static setUserActive(username, active) {
102
+ const escUser = this.escapeArg(username);
103
+ const res = this.execCommand(`net user ${escUser} /active:${active ? "yes" : "no"}`);
104
+ if (res.success)
105
+ delete this.cache.users;
106
+ return res;
107
+ }
108
+ static requirePasswordChange(username, require) {
109
+ const escUser = this.escapeArg(username);
110
+ return this.execCommand(`net user ${escUser} /logonpasswordchg:${require ? "yes" : "no"}`);
111
+ }
112
+ static addUserToGroup(username, group) {
113
+ const escUser = this.escapeArg(username);
114
+ const escGroup = this.escapeArg(group);
115
+ const res = this.execCommand(`net localgroup ${escGroup} ${escUser} /add`);
116
+ if (res.success)
117
+ delete this.cache.groups;
118
+ return res;
119
+ }
120
+ static removeUserFromGroup(username, group) {
121
+ const escUser = this.escapeArg(username);
122
+ const escGroup = this.escapeArg(group);
123
+ const res = this.execCommand(`net localgroup ${escGroup} ${escUser} /delete`);
124
+ if (res.success)
125
+ delete this.cache.groups;
126
+ return res;
127
+ }
128
+ static listUsers() {
129
+ const now = Date.now();
130
+ if (this.cache.users &&
131
+ now - this.cache.users.ts < this.CACHE_TTL_MS &&
132
+ Array.isArray(this.cache.users.data)) {
133
+ return this.cache.users.data.slice();
134
+ }
135
+ const res = this.execCommand("net user");
136
+ if (!res.success || !res.output) {
137
+ return [];
138
+ }
139
+ const parsed = this.parseSectionedOutput(res.output)
140
+ .map((line) => line
141
+ .trim()
142
+ .split(/\s+/)
143
+ .filter((u) => u &&
144
+ u !== "The" &&
145
+ u !== "command" &&
146
+ u !== "completed" &&
147
+ u !== "successfully."))
148
+ .flat();
149
+ this.cache.users = { data: parsed, ts: Date.now() };
150
+ return parsed;
151
+ }
152
+ static listGroups() {
153
+ const now = Date.now();
154
+ if (this.cache.groups &&
155
+ now - this.cache.groups.ts < this.CACHE_TTL_MS &&
156
+ Array.isArray(this.cache.groups.data)) {
157
+ return this.cache.groups.data.slice();
158
+ }
159
+ const res = this.execCommand("net localgroup");
160
+ if (!res.success || !res.output) {
161
+ return [];
162
+ }
163
+ const parsed = this.parseSectionedOutput(res.output)
164
+ .map((l) => l.replace(/^\*/, "").trim())
165
+ .filter(Boolean);
166
+ this.cache.groups = { data: parsed, ts: Date.now() };
167
+ return parsed;
168
+ }
169
+ static listGroupMembers(groupName) {
170
+ const escGroup = this.escapeArg(groupName);
171
+ const res = this.execCommand(`net localgroup ${escGroup}`);
172
+ if (!res.success || !res.output) {
173
+ return res.error;
174
+ }
175
+ const parsed = this.parseSectionedOutput(res.output)
176
+ .map((line) => line.split(/\s+/).filter(Boolean))
177
+ .flat();
178
+ return parsed;
179
+ }
180
+ static userExists(username) {
181
+ return this.listUsers().includes(username);
182
+ }
183
+ static getUserInfo(username) {
184
+ const escUser = this.escapeArg(username);
185
+ const res = this.execCommand(`net user ${escUser}`);
186
+ if (!res.success || !res.output) {
187
+ return null;
188
+ }
189
+ const lines = res.output.split(/\r?\n/).map((ln) => ln.replace(/\r$/, ""));
190
+ const details = {};
191
+ let currentKey = null;
192
+ const knownKeys = [
193
+ "User name",
194
+ "Full Name",
195
+ "Comment",
196
+ "User's comment",
197
+ "Country/region code",
198
+ "Account active",
199
+ "Account expires",
200
+ "Password last set",
201
+ "Password expires",
202
+ "Password changeable",
203
+ "Password required",
204
+ "User may change password",
205
+ "Workstations allowed",
206
+ "Logon script",
207
+ "User profile",
208
+ "Home directory",
209
+ "Last logon",
210
+ "Logon hours allowed",
211
+ "Local Group Memberships",
212
+ "Global Group memberships",
213
+ ];
214
+ let collecting = false;
215
+ for (let raw of lines) {
216
+ const line = raw.trimEnd();
217
+ if (line.startsWith("User name"))
218
+ collecting = true;
219
+ if (!collecting)
220
+ continue;
221
+ if (/The command completed/i.test(line))
222
+ break;
223
+ const match = line.match(/^([^:]+?)\s{2,}(.*)$/);
224
+ if (match) {
225
+ const key = match[1].trim();
226
+ const value = match[2].trim();
227
+ if (knownKeys.includes(key)) {
228
+ currentKey = key;
229
+ details[currentKey] = value;
230
+ }
231
+ else {
232
+ currentKey = null;
233
+ }
234
+ }
235
+ else {
236
+ const possibleKey = line.trim();
237
+ if (knownKeys.includes(possibleKey)) {
238
+ currentKey = possibleKey;
239
+ details[currentKey] = "";
240
+ }
241
+ else if (currentKey) {
242
+ details[currentKey] = (details[currentKey] || "") + " " + line.trim();
243
+ }
244
+ }
245
+ }
246
+ return {
247
+ username,
248
+ fullName: details["Full Name"] || "",
249
+ comment: details["Comment"] || details["User's comment"] || "",
250
+ countryRegionCode: details["Country/region code"] || "",
251
+ accountActive: details["Account active"] || "",
252
+ accountExpires: details["Account expires"] || "",
253
+ passwordLastSet: details["Password last set"] || "",
254
+ passwordExpires: details["Password expires"] || "",
255
+ passwordChangeable: details["Password changeable"] || "",
256
+ passwordRequired: details["Password required"] || "",
257
+ userMayChangePassword: details["User may change password"] || "",
258
+ workstationsAllowed: details["Workstations allowed"] || "",
259
+ logonScript: details["Logon script"] || "",
260
+ profilePath: details["User profile"] || "",
261
+ homeDirectory: details["Home directory"] || "",
262
+ lastLogon: details["Last logon"] || "",
263
+ logonHoursAllowed: details["Logon hours allowed"] || "",
264
+ localGroupMemberships: (details["Local Group Memberships"] || "")
265
+ .split(/\s+/)
266
+ .filter(Boolean),
267
+ globalGroupMemberships: (details["Global Group memberships"] || "")
268
+ .split(/\s+/)
269
+ .filter(Boolean),
270
+ };
271
+ }
272
+ static getAllUsersInfo() {
273
+ const users = this.listUsers();
274
+ const allInfo = [];
275
+ for (const u of users) {
276
+ const info = this.getUserInfo(u);
277
+ if (info)
278
+ allInfo.push(info);
279
+ }
280
+ return allInfo;
281
+ }
282
+ static getAllGroupMembers() {
283
+ const groups = this.listGroups();
284
+ const result = [];
285
+ for (const g of groups) {
286
+ const members = this.listGroupMembers(g);
287
+ result.push({ group: g, members: Array.isArray(members) ? members : [] });
288
+ }
289
+ return result;
290
+ }
291
+ static getUserGroups(username) {
292
+ const allGroups = this.listGroups();
293
+ const userGroups = [];
294
+ for (const group of allGroups) {
295
+ const members = this.listGroupMembers(group);
296
+ if (Array.isArray(members) && members.includes(username)) {
297
+ userGroups.push(group);
298
+ }
299
+ }
300
+ return userGroups;
301
+ }
302
+ static listActiveSessions() {
303
+ const res = this.execCommand('powershell -Command "Get-LocalUser | Where-Object {$_.Enabled -eq $true} | Select-Object -ExpandProperty Name"');
304
+ if (!res.success || !res.output)
305
+ return [];
306
+ return res.output
307
+ .split(/\r?\n/)
308
+ .map((line) => line.trim())
309
+ .filter(Boolean);
310
+ }
311
+ static currentUser() {
312
+ try {
313
+ return execSync("whoami", { encoding: "utf8" }).trim();
314
+ }
315
+ catch (err) {
316
+ return String(err);
317
+ }
318
+ }
319
+ }
320
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../src/users.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ type EnsureOptions = {
2
+ onInstallStart?: () => void;
3
+ onInstallSuccess?: () => void;
4
+ onInstallError?: (error: Error) => void;
5
+ installCommand?: string;
6
+ };
7
+ export type Parser<T> = (raw: string) => T;
8
+ declare class Async {
9
+ static listInstalled<T = any>(parser?: Parser<T>): Promise<T>;
10
+ static check<T = any>(ensureOptions?: EnsureOptions, parser?: Parser<T>): Promise<T>;
11
+ static install<T = any>(ensureOptions?: EnsureOptions, parser?: Parser<T>): Promise<T>;
12
+ static uninstall(updateId: string, ensureOptions?: EnsureOptions): Promise<string>;
13
+ }
14
+ declare class Sync {
15
+ static listInstalled<T = any>(parser?: Parser<T>): T;
16
+ static ensure(options?: EnsureOptions): void;
17
+ static check<T = any>(options?: EnsureOptions, parser?: Parser<T>): T;
18
+ static install<T = any>(options?: EnsureOptions, parser?: Parser<T>): T;
19
+ static uninstall(updateId: string, options?: EnsureOptions): string;
20
+ }
21
+ export default class WindowsUpdate {
22
+ static readonly Sync: typeof Sync;
23
+ static readonly Async: typeof Async;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=windowsupdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windowsupdate.d.ts","sourceRoot":"","sources":["../src/windowsupdate.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG;IACnB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,CAAC;AA6C3C,cAAM,KAAK;WACI,aAAa,CAAC,CAAC,GAAG,GAAG,EAChC,MAAM,GAAE,MAAM,CAAC,CAAC,CAAiB,GAChC,OAAO,CAAC,CAAC,CAAC;WAYA,KAAK,CAAC,CAAC,GAAG,GAAG,EACxB,aAAa,CAAC,EAAE,aAAa,EAC7B,MAAM,GAAE,MAAM,CAAC,CAAC,CAAiB,GAChC,OAAO,CAAC,CAAC,CAAC;WAcA,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,aAAa,CAAC,EAAE,aAAa,EAC7B,MAAM,GAAE,MAAM,CAAC,CAAC,CAAiB,GAChC,OAAO,CAAC,CAAC,CAAC;WAcA,SAAS,CACpB,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,MAAM,CAAC;CAanB;AAED,cAAM,IAAI;IACR,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,GAAE,MAAM,CAAC,CAAC,CAAiB,GAAG,CAAC;IAOnE,MAAM,CAAC,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,IAAI;IAyBhD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAClB,OAAO,CAAC,EAAE,aAAa,EACvB,MAAM,GAAE,MAAM,CAAC,CAAC,CAAiB,GAChC,CAAC;IAQJ,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,EACpB,OAAO,CAAC,EAAE,aAAa,EACvB,MAAM,GAAE,MAAM,CAAC,CAAC,CAAiB,GAChC,CAAC;IAQJ,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM;CAMpE;AAED,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,gBAAuB,IAAI,cAAQ;IACnC,gBAAuB,KAAK,eAAS;CACtC"}
@@ -0,0 +1,120 @@
1
+ import { exec, execSync } from "child_process";
2
+ // Parser por defecto: intenta parsear a JSON, si falla retorna texto crudo
3
+ function defaultParser(raw) {
4
+ try {
5
+ return JSON.parse(raw);
6
+ }
7
+ catch {
8
+ return raw;
9
+ }
10
+ }
11
+ function ensurePSWindowsUpdate(options = {}) {
12
+ const { onInstallStart, onInstallSuccess, onInstallError, installCommand = 'powershell -Command "Install-Module -Name PSWindowsUpdate -Force -Confirm:$false"', } = options;
13
+ return new Promise((resolve, reject) => {
14
+ exec('powershell -Command "Get-Module -ListAvailable PSWindowsUpdate"', (error, stdout) => {
15
+ if (error)
16
+ return reject(error);
17
+ if (!stdout || !stdout.includes("PSWindowsUpdate")) {
18
+ if (onInstallStart)
19
+ onInstallStart();
20
+ exec(installCommand, (installError) => {
21
+ if (installError) {
22
+ if (onInstallError)
23
+ onInstallError(installError);
24
+ return reject(installError);
25
+ }
26
+ if (onInstallSuccess)
27
+ onInstallSuccess();
28
+ resolve();
29
+ });
30
+ }
31
+ else {
32
+ resolve();
33
+ }
34
+ });
35
+ });
36
+ }
37
+ class Async {
38
+ static async listInstalled(parser = defaultParser) {
39
+ return new Promise((resolve, reject) => {
40
+ exec('powershell -Command "Get-HotFix | ConvertTo-Json -Compress"', (error, stdout, stderr) => {
41
+ if (error)
42
+ return reject(error);
43
+ resolve(parser(stdout || stderr || ""));
44
+ });
45
+ });
46
+ }
47
+ static async check(ensureOptions, parser = defaultParser) {
48
+ await ensurePSWindowsUpdate(ensureOptions);
49
+ return new Promise((resolve, reject) => {
50
+ exec('powershell -Command "Get-WindowsUpdate | ConvertTo-Json -Compress"', (error, stdout, stderr) => {
51
+ if (error)
52
+ return reject(error);
53
+ resolve(parser(stdout || stderr || ""));
54
+ });
55
+ });
56
+ }
57
+ static async install(ensureOptions, parser = defaultParser) {
58
+ await ensurePSWindowsUpdate(ensureOptions);
59
+ return new Promise((resolve, reject) => {
60
+ exec('powershell -Command "Install-WindowsUpdate -AcceptAll -AutoReboot | ConvertTo-Json -Compress"', (error, stdout, stderr) => {
61
+ if (error)
62
+ return reject(error);
63
+ resolve(parser(stdout || stderr || ""));
64
+ });
65
+ });
66
+ }
67
+ static async uninstall(updateId, ensureOptions) {
68
+ await ensurePSWindowsUpdate(ensureOptions);
69
+ return new Promise((resolve, reject) => {
70
+ exec(`powershell -Command "wusa /uninstall /kb:${updateId} /quiet /norestart"`, (error, stdout, stderr) => {
71
+ if (error)
72
+ return reject(error);
73
+ resolve(stdout || stderr);
74
+ });
75
+ });
76
+ }
77
+ }
78
+ class Sync {
79
+ static listInstalled(parser = defaultParser) {
80
+ const raw = execSync('powershell -Command "Get-HotFix | ConvertTo-Json -Compress"').toString();
81
+ return parser(raw);
82
+ }
83
+ static ensure(options = {}) {
84
+ const { onInstallStart, onInstallSuccess, onInstallError, installCommand = 'powershell -Command "Install-Module -Name PSWindowsUpdate -Force -Confirm:$false"', } = options;
85
+ const result = execSync('powershell -Command "Get-Module -ListAvailable PSWindowsUpdate"').toString();
86
+ if (!result.includes("PSWindowsUpdate")) {
87
+ if (onInstallStart)
88
+ onInstallStart();
89
+ try {
90
+ execSync(installCommand);
91
+ if (onInstallSuccess)
92
+ onInstallSuccess();
93
+ }
94
+ catch (err) {
95
+ if (onInstallError)
96
+ onInstallError(err);
97
+ throw err;
98
+ }
99
+ }
100
+ }
101
+ static check(options, parser = defaultParser) {
102
+ this.ensure(options);
103
+ const raw = execSync('powershell -Command "Get-WindowsUpdate | ConvertTo-Json -Compress"').toString();
104
+ return parser(raw);
105
+ }
106
+ static install(options, parser = defaultParser) {
107
+ this.ensure(options);
108
+ const raw = execSync('powershell -Command "Install-WindowsUpdate -AcceptAll -AutoReboot | ConvertTo-Json -Compress"').toString();
109
+ return parser(raw);
110
+ }
111
+ static uninstall(updateId, options) {
112
+ this.ensure(options);
113
+ return execSync(`powershell -Command "wusa /uninstall /kb:${updateId} /quiet /norestart"`).toString();
114
+ }
115
+ }
116
+ export default class WindowsUpdate {
117
+ static Sync = Sync;
118
+ static Async = Async;
119
+ }
120
+ //# sourceMappingURL=windowsupdate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windowsupdate.js","sourceRoot":"","sources":["../src/windowsupdate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "manageos",
3
- "version": "2.3.0",
3
+ "version": "2.3.1",
4
4
  "description": "ManageOS",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",