manageos 2.0.2 → 2.2.0

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 (58) hide show
  1. package/dist/Android/adb.d.ts.map +1 -1
  2. package/dist/Android/adb.js +0 -3
  3. package/dist/Android/adb.js.map +1 -1
  4. package/dist/Android/fastboot.js +1 -1
  5. package/dist/Android/fastboot.js.map +1 -1
  6. package/dist/PsExec/index.d.ts +11 -0
  7. package/dist/PsExec/index.d.ts.map +1 -0
  8. package/dist/PsExec/index.js +11 -0
  9. package/dist/PsExec/index.js.map +1 -0
  10. package/dist/PsExec/psexec.d.ts +39 -0
  11. package/dist/PsExec/psexec.d.ts.map +1 -0
  12. package/dist/PsExec/psexec.js +118 -0
  13. package/dist/PsExec/psexec.js.map +1 -0
  14. package/dist/PsExec/psfile.d.ts +30 -0
  15. package/dist/PsExec/psfile.d.ts.map +1 -0
  16. package/dist/PsExec/psfile.js +92 -0
  17. package/dist/PsExec/psfile.js.map +1 -0
  18. package/dist/PsExec/psgetsid.d.ts +29 -0
  19. package/dist/PsExec/psgetsid.d.ts.map +1 -0
  20. package/dist/PsExec/psgetsid.js +85 -0
  21. package/dist/PsExec/psgetsid.js.map +1 -0
  22. package/dist/PsExec/psinfo.d.ts +33 -0
  23. package/dist/PsExec/psinfo.d.ts.map +1 -0
  24. package/dist/PsExec/psinfo.js +101 -0
  25. package/dist/PsExec/psinfo.js.map +1 -0
  26. package/dist/auditpolicy.d.ts +24 -0
  27. package/dist/auditpolicy.d.ts.map +1 -0
  28. package/dist/auditpolicy.js +115 -0
  29. package/dist/auditpolicy.js.map +1 -0
  30. package/dist/camera.d.ts +34 -0
  31. package/dist/camera.d.ts.map +1 -0
  32. package/dist/camera.js +172 -0
  33. package/dist/camera.js.map +1 -0
  34. package/dist/certificates.d.ts +30 -0
  35. package/dist/certificates.d.ts.map +1 -0
  36. package/dist/certificates.js +143 -0
  37. package/dist/certificates.js.map +1 -0
  38. package/dist/index.d.ts +16 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +16 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/microphone.d.ts +39 -0
  43. package/dist/microphone.d.ts.map +1 -0
  44. package/dist/microphone.js +94 -0
  45. package/dist/microphone.js.map +1 -0
  46. package/dist/printer.d.ts +51 -0
  47. package/dist/printer.d.ts.map +1 -0
  48. package/dist/printer.js +170 -0
  49. package/dist/printer.js.map +1 -0
  50. package/dist/shell.d.ts +49 -0
  51. package/dist/shell.d.ts.map +1 -0
  52. package/dist/shell.js +212 -0
  53. package/dist/shell.js.map +1 -0
  54. package/dist/usb.d.ts +29 -0
  55. package/dist/usb.d.ts.map +1 -0
  56. package/dist/usb.js +161 -0
  57. package/dist/usb.js.map +1 -0
  58. package/package.json +4 -1
@@ -0,0 +1,170 @@
1
+ import { exec, execSync } from "child_process";
2
+ class PrinterInstance {
3
+ info;
4
+ constructor(info) {
5
+ this.info = info;
6
+ }
7
+ print(filePath, options = {}) {
8
+ const { pages, color, copies, duplex, collate, quality } = options;
9
+ let cmd = `rundll32 printui.dll,PrintUIEntry /y /n "${this.info.Name}" /if /f "${filePath}"`;
10
+ if (copies)
11
+ cmd += ` /c ${copies}`;
12
+ if (pages)
13
+ cmd += ` /p ${pages}`;
14
+ if (color !== undefined)
15
+ cmd += color ? " /color" : " /mono";
16
+ if (duplex)
17
+ cmd += " /duplex";
18
+ if (collate)
19
+ cmd += " /collate";
20
+ if (quality)
21
+ cmd += ` /q:${quality}`;
22
+ execSync(cmd);
23
+ }
24
+ printTestPage() {
25
+ execSync(`rundll32 printui.dll,PrintUIEntry /k /n "${this.info.Name}"`);
26
+ }
27
+ pause() {
28
+ execSync(`wmic printer where name="${this.info.Name}" call pause`);
29
+ }
30
+ resume() {
31
+ execSync(`wmic printer where name="${this.info.Name}" call resume`);
32
+ }
33
+ setDefault() {
34
+ execSync(`wmic printer where name="${this.info.Name}" call setdefaultprinter`);
35
+ }
36
+ delete() {
37
+ execSync(`rundll32 printui.dll,PrintUIEntry /dl /n "${this.info.Name}"`);
38
+ }
39
+ }
40
+ class AsyncPrinterInstance {
41
+ info;
42
+ constructor(info) {
43
+ this.info = info;
44
+ }
45
+ print(filePath, options = {}) {
46
+ const { pages, color, copies, duplex, collate, quality } = options;
47
+ let cmd = `rundll32 printui.dll,PrintUIEntry /y /n "${this.info.Name}" /if /f "${filePath}"`;
48
+ if (copies)
49
+ cmd += ` /c ${copies}`;
50
+ if (pages)
51
+ cmd += ` /p ${pages}`;
52
+ if (color !== undefined)
53
+ cmd += color ? " /color" : " /mono";
54
+ if (duplex)
55
+ cmd += " /duplex";
56
+ if (collate)
57
+ cmd += " /collate";
58
+ if (quality)
59
+ cmd += ` /q:${quality}`;
60
+ return new Promise((resolve, reject) => {
61
+ exec(cmd, (error) => {
62
+ if (error)
63
+ reject(error);
64
+ else
65
+ resolve();
66
+ });
67
+ });
68
+ }
69
+ printTestPage() {
70
+ return new Promise((resolve, reject) => {
71
+ exec(`rundll32 printui.dll,PrintUIEntry /k /n "${this.info.Name}"`, (error) => {
72
+ if (error)
73
+ reject(error);
74
+ else
75
+ resolve();
76
+ });
77
+ });
78
+ }
79
+ pause() {
80
+ return new Promise((resolve, reject) => {
81
+ exec(`wmic printer where name="${this.info.Name}" call pause`, (error) => {
82
+ if (error)
83
+ reject(error);
84
+ else
85
+ resolve();
86
+ });
87
+ });
88
+ }
89
+ resume() {
90
+ return new Promise((resolve, reject) => {
91
+ exec(`wmic printer where name="${this.info.Name}" call resume`, (error) => {
92
+ if (error)
93
+ reject(error);
94
+ else
95
+ resolve();
96
+ });
97
+ });
98
+ }
99
+ setDefault() {
100
+ return new Promise((resolve, reject) => {
101
+ exec(`wmic printer where name="${this.info.Name}" call setdefaultprinter`, (error) => {
102
+ if (error)
103
+ reject(error);
104
+ else
105
+ resolve();
106
+ });
107
+ });
108
+ }
109
+ delete() {
110
+ return new Promise((resolve, reject) => {
111
+ exec(`rundll32 printui.dll,PrintUIEntry /dl /n "${this.info.Name}"`, (error) => {
112
+ if (error)
113
+ reject(error);
114
+ else
115
+ resolve();
116
+ });
117
+ });
118
+ }
119
+ }
120
+ class Async {
121
+ static async list() {
122
+ return new Promise((resolve, reject) => {
123
+ exec("wmic printer get name,default,status", (error, stdout) => {
124
+ if (error)
125
+ reject(error);
126
+ else {
127
+ const lines = stdout
128
+ .trim()
129
+ .split("\n")
130
+ .slice(1)
131
+ .map((line) => line
132
+ .trim()
133
+ .split(/\s{2,}/)
134
+ .map((v) => v.trim()))
135
+ .filter((parts) => parts.length >= 3);
136
+ const printers = lines.map((parts) => new AsyncPrinterInstance({
137
+ Default: parts[0].toLowerCase() === "true",
138
+ Name: parts[1],
139
+ Status: parts[2],
140
+ }));
141
+ resolve(printers);
142
+ }
143
+ });
144
+ });
145
+ }
146
+ }
147
+ class Sync {
148
+ static list() {
149
+ const stdout = execSync("wmic printer get name,default,status").toString();
150
+ const lines = stdout
151
+ .trim()
152
+ .split("\n")
153
+ .slice(1)
154
+ .map((line) => line
155
+ .trim()
156
+ .split(/\s{2,}/)
157
+ .map((v) => v.trim()))
158
+ .filter((parts) => parts.length >= 3);
159
+ return lines.map((parts) => new PrinterInstance({
160
+ Default: parts[0].toLowerCase() === "true",
161
+ Name: parts[1],
162
+ Status: parts[2],
163
+ }));
164
+ }
165
+ }
166
+ export default class Printer {
167
+ static Sync = Sync;
168
+ static Async = Async;
169
+ }
170
+ //# sourceMappingURL=printer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printer.js","sourceRoot":"","sources":["../src/printer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ interface ShellInfo {
2
+ name: string;
3
+ path?: string;
4
+ }
5
+ declare class ShellInstance {
6
+ info: ShellInfo;
7
+ constructor(info: ShellInfo);
8
+ showPath(): string;
9
+ }
10
+ declare class AsyncShellInstance {
11
+ info: ShellInfo;
12
+ constructor(info: ShellInfo);
13
+ showPath(): Promise<string>;
14
+ }
15
+ declare class SyncShell {
16
+ static listShells(): ShellInstance[];
17
+ static showPath(shell: string): string;
18
+ }
19
+ declare class AsyncShell {
20
+ static listShells(): Promise<AsyncShellInstance[]>;
21
+ static showPath(shell: string): Promise<string>;
22
+ }
23
+ declare class SyncWSL {
24
+ static getPath(): string;
25
+ static exists(): boolean;
26
+ static getVersion(): string;
27
+ static listDistributions(): string[];
28
+ static runCommand(distribution: string, command: string): string;
29
+ static terminate(distribution?: string): void;
30
+ }
31
+ declare class AsyncWSL {
32
+ static getPath(): Promise<string>;
33
+ static exists(): Promise<boolean>;
34
+ static getVersion(): Promise<string>;
35
+ static listDistributions(): Promise<string[]>;
36
+ static runCommand(distribution: string, command: string): Promise<string>;
37
+ static terminate(distribution?: string): Promise<void>;
38
+ }
39
+ export default class Shell {
40
+ static readonly Sync: typeof SyncShell;
41
+ static readonly Async: typeof AsyncShell;
42
+ static readonly WSL: {
43
+ Sync?: typeof SyncWSL;
44
+ Async?: typeof AsyncWSL;
45
+ };
46
+ static initWSL(): void;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAKA,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD,cAAM,aAAa;IACE,IAAI,EAAE,SAAS;gBAAf,IAAI,EAAE,SAAS;IAClC,QAAQ,IAAI,MAAM;CAWnB;AAED,cAAM,kBAAkB;IACH,IAAI,EAAE,SAAS;gBAAf,IAAI,EAAE,SAAS;IAC5B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;CAYlC;AAED,cAAM,SAAS;IACb,MAAM,CAAC,UAAU,IAAI,aAAa,EAAE;IAqBpC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CASvC;AAED,cAAM,UAAU;WACD,UAAU,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;WAuB3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWtD;AAED,cAAM,OAAO;IACX,MAAM,CAAC,OAAO,IAAI,MAAM;IAKxB,MAAM,CAAC,MAAM,IAAI,OAAO;IAGxB,MAAM,CAAC,UAAU,IAAI,MAAM;IAG3B,MAAM,CAAC,iBAAiB,IAAI,MAAM,EAAE;IASpC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAKhE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;CAO9C;AAED,cAAM,QAAQ;WACC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;WAI1B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;WAG1B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;WAI7B,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;WAStC,UAAU,CACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;WAIL,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAO7D;AAoBD,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,gBAAuB,IAAI,mBAAQ;IACnC,gBAAuB,KAAK,oBAAS;IAErC,gBAAuB,GAAG,EAAE;QAC1B,IAAI,CAAC,EAAE,OAAO,OAAO,CAAC;QACtB,KAAK,CAAC,EAAE,OAAO,QAAQ,CAAC;KACzB,CAAM;IAEP,MAAM,CAAC,OAAO;CAWf"}
package/dist/shell.js ADDED
@@ -0,0 +1,212 @@
1
+ import { execSync, exec as _exec } from "child_process";
2
+ import { promisify } from "util";
3
+ const exec = promisify(_exec);
4
+ function getDetectionCommand(name) {
5
+ const safeName = name.replace(/'/g, "''");
6
+ return `where.exe ${safeName} 2>nul`;
7
+ }
8
+ class ShellInstance {
9
+ info;
10
+ constructor(info) {
11
+ this.info = info;
12
+ }
13
+ showPath() {
14
+ if (this.info.path)
15
+ return this.info.path;
16
+ try {
17
+ const out = execSync(getDetectionCommand(this.info.name), {
18
+ encoding: "utf8",
19
+ });
20
+ return String(out).split(/\r?\n/)[0].trim();
21
+ }
22
+ catch {
23
+ return "";
24
+ }
25
+ }
26
+ }
27
+ class AsyncShellInstance {
28
+ info;
29
+ constructor(info) {
30
+ this.info = info;
31
+ }
32
+ async showPath() {
33
+ if (this.info.path)
34
+ return this.info.path;
35
+ try {
36
+ const { stdout } = (await exec(getDetectionCommand(this.info.name)));
37
+ return stdout ? stdout.split(/\r?\n/)[0].trim() : "";
38
+ }
39
+ catch {
40
+ return "";
41
+ }
42
+ }
43
+ }
44
+ class SyncShell {
45
+ static listShells() {
46
+ const shellsToCheck = [
47
+ "cmd.exe",
48
+ "powershell.exe",
49
+ "pwsh.exe",
50
+ "bash.exe",
51
+ "zsh.exe",
52
+ "wsl.exe",
53
+ ];
54
+ const found = [];
55
+ for (const s of shellsToCheck) {
56
+ try {
57
+ const p = execSync(getDetectionCommand(s), { encoding: "utf8" })
58
+ .split(/\r?\n/)[0]
59
+ .trim();
60
+ if (p)
61
+ found.push(new ShellInstance({ name: s, path: p }));
62
+ }
63
+ catch { }
64
+ }
65
+ return found;
66
+ }
67
+ static showPath(shell) {
68
+ try {
69
+ return execSync(getDetectionCommand(shell), { encoding: "utf8" })
70
+ .split(/\r?\n/)[0]
71
+ .trim();
72
+ }
73
+ catch {
74
+ return "";
75
+ }
76
+ }
77
+ }
78
+ class AsyncShell {
79
+ static async listShells() {
80
+ const shellsToCheck = [
81
+ "cmd.exe",
82
+ "powershell.exe",
83
+ "pwsh.exe",
84
+ "bash.exe",
85
+ "zsh.exe",
86
+ "wsl.exe",
87
+ ];
88
+ const found = [];
89
+ for (const s of shellsToCheck) {
90
+ try {
91
+ const { stdout } = (await exec(getDetectionCommand(s)));
92
+ const p = stdout ? stdout.split(/\r?\n/)[0].trim() : "";
93
+ if (p)
94
+ found.push(new AsyncShellInstance({ name: s, path: p }));
95
+ }
96
+ catch { }
97
+ }
98
+ return found;
99
+ }
100
+ static async showPath(shell) {
101
+ try {
102
+ const { stdout } = (await exec(getDetectionCommand(shell)));
103
+ return stdout ? stdout.split(/\r?\n/)[0].trim() : "";
104
+ }
105
+ catch {
106
+ return "";
107
+ }
108
+ }
109
+ }
110
+ class SyncWSL {
111
+ static getPath() {
112
+ return execSync(getDetectionCommand("wsl.exe"), {
113
+ encoding: "utf8",
114
+ }).trim();
115
+ }
116
+ static exists() {
117
+ return !!this.getPath();
118
+ }
119
+ static getVersion() {
120
+ return execSync("wsl.exe --version", { encoding: "utf8" }).trim();
121
+ }
122
+ static listDistributions() {
123
+ const output = execSync("wsl.exe --list --quiet", { encoding: "utf8" });
124
+ return output
125
+ ? output
126
+ .split(/\r?\n/)
127
+ .map((d) => d.trim())
128
+ .filter(Boolean)
129
+ : [];
130
+ }
131
+ static runCommand(distribution, command) {
132
+ return execSync(`wsl.exe -d ${distribution} -- ${command}`, {
133
+ encoding: "utf8",
134
+ }).trim();
135
+ }
136
+ static terminate(distribution) {
137
+ if (distribution) {
138
+ execSync(`wsl.exe --terminate ${distribution}`);
139
+ }
140
+ else {
141
+ execSync(`wsl.exe --shutdown`);
142
+ }
143
+ }
144
+ }
145
+ class AsyncWSL {
146
+ static async getPath() {
147
+ const { stdout } = await exec(getDetectionCommand("wsl.exe"));
148
+ return stdout.trim();
149
+ }
150
+ static async exists() {
151
+ return !!(await this.getPath());
152
+ }
153
+ static async getVersion() {
154
+ const { stdout } = await exec("wsl.exe --version");
155
+ return stdout.trim();
156
+ }
157
+ static async listDistributions() {
158
+ const { stdout } = await exec("wsl.exe --list --quiet");
159
+ return stdout
160
+ ? stdout
161
+ .split(/\r?\n/)
162
+ .map((d) => d.trim())
163
+ .filter(Boolean)
164
+ : [];
165
+ }
166
+ static async runCommand(distribution, command) {
167
+ const { stdout } = await exec(`wsl.exe -d ${distribution} -- ${command}`);
168
+ return stdout.trim();
169
+ }
170
+ static async terminate(distribution) {
171
+ if (distribution) {
172
+ await exec(`wsl.exe --terminate ${distribution}`);
173
+ }
174
+ else {
175
+ await exec(`wsl.exe --shutdown`);
176
+ }
177
+ }
178
+ }
179
+ const Sync = new Proxy(SyncShell, {
180
+ get(target, prop) {
181
+ if (typeof prop === "string" && /^\d+$/.test(prop)) {
182
+ const list = target.listShells();
183
+ return list[Number(prop)];
184
+ }
185
+ const value = target[prop];
186
+ return typeof value === "function" ? value.bind(target) : value;
187
+ },
188
+ });
189
+ const Async = new Proxy(AsyncShell, {
190
+ get(target, prop) {
191
+ const value = target[prop];
192
+ return typeof value === "function" ? value.bind(target) : value;
193
+ },
194
+ });
195
+ export default class Shell {
196
+ static Sync = Sync;
197
+ static Async = Async;
198
+ static WSL = {};
199
+ static initWSL() {
200
+ try {
201
+ const path = execSync(getDetectionCommand("wsl.exe"), {
202
+ encoding: "utf8",
203
+ }).trim();
204
+ if (path) {
205
+ this.WSL.Sync = SyncWSL;
206
+ this.WSL.Async = AsyncWSL;
207
+ }
208
+ }
209
+ catch { }
210
+ }
211
+ }
212
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"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"}
package/dist/usb.d.ts ADDED
@@ -0,0 +1,29 @@
1
+ declare class USBDevice {
2
+ name: string;
3
+ id: string;
4
+ private disconnectFn;
5
+ private deviceInfoFn;
6
+ private connectFn;
7
+ constructor(name: string, id: string, disconnectFn: () => Promise<boolean> | boolean, deviceInfoFn: () => Promise<string> | string, connectFn: () => Promise<boolean> | boolean);
8
+ disconnect(): boolean | Promise<boolean>;
9
+ deviceInfo(): string | Promise<string>;
10
+ connect(): boolean | Promise<boolean>;
11
+ }
12
+ declare class Async {
13
+ static connect(deviceId: string): Promise<boolean>;
14
+ static listDevices(): Promise<USBDevice[]>;
15
+ static disconnect(deviceId: string): Promise<boolean>;
16
+ static deviceInfo(deviceId: string): Promise<string>;
17
+ }
18
+ declare class Sync {
19
+ static connect(deviceId: string): boolean;
20
+ static listDevices(): USBDevice[];
21
+ static disconnect(deviceId: string): boolean;
22
+ static deviceInfo(deviceId: string): string;
23
+ }
24
+ export default class USB {
25
+ static readonly Sync: typeof Sync;
26
+ static readonly Async: typeof Async;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=usb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usb.d.ts","sourceRoot":"","sources":["../src/usb.ts"],"names":[],"mappings":"AAEA,cAAM,SAAS;IAEJ,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,MAAM;IACjB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,SAAS;gBAJV,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACT,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EAC9C,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,EAC5C,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IAGrD,UAAU;IAIV,UAAU;IAIV,OAAO;CAGR;AAED,cAAM,KAAK;WACI,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAS3C,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;WA4DnC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAS9C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAQ3D;AAED,cAAM,IAAI;IACR,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAYzC,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE;IAsEjC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAY5C,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAU5C;AAED,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,gBAAuB,IAAI,cAAQ;IACnC,gBAAuB,KAAK,eAAS;CACtC"}
package/dist/usb.js ADDED
@@ -0,0 +1,161 @@
1
+ import { exec, execSync } from "child_process";
2
+ class USBDevice {
3
+ name;
4
+ id;
5
+ disconnectFn;
6
+ deviceInfoFn;
7
+ connectFn;
8
+ constructor(name, id, disconnectFn, deviceInfoFn, connectFn) {
9
+ this.name = name;
10
+ this.id = id;
11
+ this.disconnectFn = disconnectFn;
12
+ this.deviceInfoFn = deviceInfoFn;
13
+ this.connectFn = connectFn;
14
+ }
15
+ disconnect() {
16
+ return this.disconnectFn();
17
+ }
18
+ deviceInfo() {
19
+ return this.deviceInfoFn();
20
+ }
21
+ connect() {
22
+ return this.connectFn();
23
+ }
24
+ }
25
+ class Async {
26
+ static async connect(deviceId) {
27
+ return new Promise((resolve) => {
28
+ exec(`powershell "Enable-PnpDevice -InstanceId '${deviceId}' -Confirm:$false"`, (error) => resolve(!error));
29
+ });
30
+ }
31
+ static async listDevices() {
32
+ return new Promise((resolve) => {
33
+ exec(`powershell "Get-PnpDevice -Class USB | Select-Object -Property FriendlyName, InstanceId | Format-Table -HideTableHeaders"`, (error, stdout) => {
34
+ if (error)
35
+ return resolve([]);
36
+ const devices = [];
37
+ const lines = stdout
38
+ .split(/\r?\n/)
39
+ .map((l) => l.trim())
40
+ .filter(Boolean);
41
+ for (const line of lines) {
42
+ const parts = line.match(/(.+)\s+([A-Z]:\\.+)$/);
43
+ const name = parts ? parts[1] : line.split(/\s{2,}/)[0];
44
+ const id = parts
45
+ ? parts[2]
46
+ : line
47
+ .split(/\s{2,}/)
48
+ .slice(1)
49
+ .join(" ");
50
+ devices.push(new USBDevice(name, id, async () => {
51
+ return new Promise((resolveDisconnect) => {
52
+ exec(`powershell "Disable-PnpDevice -InstanceId '${id}' -Confirm:$false"`, (err) => resolveDisconnect(!err));
53
+ });
54
+ }, async () => {
55
+ return new Promise((resolveInfo) => {
56
+ exec(`powershell "Get-PnpDevice -InstanceId '${id}' | Format-List *"`, (err, stdoutInfo) => resolveInfo(err ? "" : stdoutInfo.trim()));
57
+ });
58
+ }, async () => {
59
+ return new Promise((resolveConnect) => {
60
+ exec(`powershell "Enable-PnpDevice -InstanceId '${id}' -Confirm:$false"`, (err) => resolveConnect(!err));
61
+ });
62
+ }));
63
+ }
64
+ resolve(devices);
65
+ });
66
+ });
67
+ }
68
+ static async disconnect(deviceId) {
69
+ return new Promise((resolve) => {
70
+ exec(`powershell "Disable-PnpDevice -InstanceId '${deviceId}' -Confirm:$false"`, (error) => resolve(!error));
71
+ });
72
+ }
73
+ static async deviceInfo(deviceId) {
74
+ return new Promise((resolve) => {
75
+ exec(`powershell "Get-PnpDevice -InstanceId '${deviceId}' | Format-List *"`, (error, stdout) => resolve(error ? "" : stdout.trim()));
76
+ });
77
+ }
78
+ }
79
+ class Sync {
80
+ static connect(deviceId) {
81
+ try {
82
+ execSync(`powershell "Enable-PnpDevice -InstanceId '${deviceId}' -Confirm:$false"`, { stdio: "ignore" });
83
+ return true;
84
+ }
85
+ catch {
86
+ return false;
87
+ }
88
+ }
89
+ static listDevices() {
90
+ try {
91
+ const output = execSync(`powershell "Get-PnpDevice -Class USB | Select-Object -Property FriendlyName, InstanceId | Format-Table -HideTableHeaders"`, { encoding: "utf8" }).trim();
92
+ const devices = [];
93
+ if (!output)
94
+ return devices;
95
+ const lines = output
96
+ .split(/\r?\n/)
97
+ .map((l) => l.trim())
98
+ .filter(Boolean);
99
+ for (const line of lines) {
100
+ const parts = line.match(/(.+)\s+([A-Z]:\\.+)$/);
101
+ const name = parts ? parts[1] : line.split(/\s{2,}/)[0];
102
+ const id = parts
103
+ ? parts[2]
104
+ : line
105
+ .split(/\s{2,}/)
106
+ .slice(1)
107
+ .join(" ");
108
+ devices.push(new USBDevice(name, id, () => {
109
+ try {
110
+ execSync(`powershell "Disable-PnpDevice -InstanceId '${id}' -Confirm:$false"`, { stdio: "ignore" });
111
+ return true;
112
+ }
113
+ catch {
114
+ return false;
115
+ }
116
+ }, () => {
117
+ try {
118
+ return execSync(`powershell "Get-PnpDevice -InstanceId '${id}' | Format-List *"`, { encoding: "utf8" }).trim();
119
+ }
120
+ catch {
121
+ return "";
122
+ }
123
+ }, () => {
124
+ try {
125
+ execSync(`powershell "Enable-PnpDevice -InstanceId '${id}' -Confirm:$false"`, { stdio: "ignore" });
126
+ return true;
127
+ }
128
+ catch {
129
+ return false;
130
+ }
131
+ }));
132
+ }
133
+ return devices;
134
+ }
135
+ catch {
136
+ return [];
137
+ }
138
+ }
139
+ static disconnect(deviceId) {
140
+ try {
141
+ execSync(`powershell "Disable-PnpDevice -InstanceId '${deviceId}' -Confirm:$false"`, { stdio: "ignore" });
142
+ return true;
143
+ }
144
+ catch {
145
+ return false;
146
+ }
147
+ }
148
+ static deviceInfo(deviceId) {
149
+ try {
150
+ return execSync(`powershell "Get-PnpDevice -InstanceId '${deviceId}' | Format-List *"`, { encoding: "utf8" }).trim();
151
+ }
152
+ catch {
153
+ return "";
154
+ }
155
+ }
156
+ }
157
+ export default class USB {
158
+ static Sync = Sync;
159
+ static Async = Async;
160
+ }
161
+ //# sourceMappingURL=usb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usb.js","sourceRoot":"","sources":["../src/usb.ts"],"names":[],"mappings":"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"}