manageos 2.3.1 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +133 -0
- package/dist/Keyboard/index.d.ts +24 -0
- package/dist/Keyboard/index.d.ts.map +1 -0
- package/dist/Keyboard/index.js +128 -0
- package/dist/Keyboard/index.js.map +1 -0
- package/dist/Keyboard/keyboard.exe +0 -0
- package/dist/Mouse/mouse.exe +0 -0
- package/dist/Server/FTP.d.ts +28 -0
- package/dist/Server/FTP.d.ts.map +1 -0
- package/dist/Server/FTP.js +119 -0
- package/dist/Server/FTP.js.map +1 -0
- package/dist/Server/HTTP/http.exe +0 -0
- package/dist/Server/HTTP/index.d.ts +17 -0
- package/dist/Server/HTTP/index.d.ts.map +1 -0
- package/dist/Server/HTTP/index.js +42 -0
- package/dist/Server/HTTP/index.js.map +1 -0
- package/dist/Server/index.d.ts +7 -0
- package/dist/Server/index.d.ts.map +1 -0
- package/dist/Server/index.js +7 -0
- package/dist/Server/index.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/joystick.d.ts +25 -0
- package/dist/joystick.d.ts.map +1 -0
- package/dist/joystick.js +61 -0
- package/dist/joystick.js.map +1 -0
- package/dist/startup.d.ts +21 -0
- package/dist/startup.d.ts.map +1 -0
- package/dist/startup.js +71 -0
- package/dist/startup.js.map +1 -0
- package/package.json +6 -3
package/README.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# 🧠 ManageOS
|
|
2
|
+
|
|
3
|
+
**ManageOS** es un módulo para **Node.js**, **TypeScript** y **JavaScript** que permite **gestionar, auditar y automatizar tareas del sistema operativo Windows** (y otros entornos como Android) mediante una API sencilla y potente.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🚀 Características principales
|
|
8
|
+
|
|
9
|
+
- 🪟 Gestión avanzada del sistema operativo Windows.
|
|
10
|
+
- 🔒 Control de **BitLocker**, **Antivirus** y **Políticas de auditoría**.
|
|
11
|
+
- 🧾 Administración de **registros de eventos** y **certificados**.
|
|
12
|
+
- 🔉 Control de **audio**, **cámara**, **portapapeles** y más.
|
|
13
|
+
- 🧠 API unificada para funciones **sincrónicas (Sync)** y **asíncronas (Async)**.
|
|
14
|
+
- 🤖 Soporte extendido para **Android** (ADB y Fastboot).
|
|
15
|
+
- 🔐 Herramientas integradas de **encriptación y hash**.
|
|
16
|
+
- 🪶 Completamente escrito en **TypeScript** con tipado fuerte.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 📦 Instalación
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install manageos
|
|
24
|
+
# o
|
|
25
|
+
yarn add manageos
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 🧰 Ejemplo de uso básico
|
|
31
|
+
|
|
32
|
+
### Sincrónico
|
|
33
|
+
```ts
|
|
34
|
+
import { BitLocker } from "manageos";
|
|
35
|
+
|
|
36
|
+
BitLocker.Sync.lockDrive("C:");
|
|
37
|
+
console.log("Unidad C bloqueada con BitLocker.");
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Asíncrono
|
|
41
|
+
```ts
|
|
42
|
+
import { AuditPolicy } from "manageos";
|
|
43
|
+
|
|
44
|
+
await AuditPolicy.Async.enable("Logon/Logoff");
|
|
45
|
+
console.log("Política de auditoría activada.");
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 📚 Módulos disponibles
|
|
51
|
+
|
|
52
|
+
| Módulo | Descripción |
|
|
53
|
+
|--------|--------------|
|
|
54
|
+
| `Antivirus` | Controla y verifica el estado del antivirus de Windows. |
|
|
55
|
+
| `Audio` | Administra el volumen, dispositivos y controladores de audio. |
|
|
56
|
+
| `AuditPolicy` | Gestiona políticas de auditoría del sistema. |
|
|
57
|
+
| `BitLocker` | Controla el cifrado de unidades mediante BitLocker. |
|
|
58
|
+
| `Camera` | Accede a la cámara del sistema y gestiona su disponibilidad. |
|
|
59
|
+
| `Certificates` | Gestiona certificados del sistema. |
|
|
60
|
+
| `Clipboard` | Lee y escribe en el portapapeles del sistema. |
|
|
61
|
+
| `Encryption` | Permite encriptar, desencriptar, generar y guardar claves. |
|
|
62
|
+
| `EventLogs` | Lee y exporta registros del visor de eventos. |
|
|
63
|
+
| `Android` | Ejecuta comandos ADB y Fastboot para dispositivos Android. |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 🔐 Ejemplo de encriptación
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
import { Encryption } from "manageos";
|
|
71
|
+
|
|
72
|
+
// Inicializa una clave
|
|
73
|
+
Encryption.init("mi_clave_secreta");
|
|
74
|
+
|
|
75
|
+
// Cifra texto
|
|
76
|
+
const { encryptedData, iv } = Encryption.encrypt("Hola mundo");
|
|
77
|
+
|
|
78
|
+
// Descifra texto
|
|
79
|
+
const texto = Encryption.decrypt(encryptedData, iv);
|
|
80
|
+
console.log(texto); // "Hola mundo"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 🧩 API consistente
|
|
86
|
+
|
|
87
|
+
Todos los módulos siguen una estructura similar:
|
|
88
|
+
```ts
|
|
89
|
+
<Modulo>.Sync.<función>()
|
|
90
|
+
<Modulo>.Async.<función>()
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Esto permite integrar **ManageOS** fácilmente en cualquier flujo sin preocuparse por compatibilidades entre promesas o ejecuciones bloqueantes.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 🛠️ Requisitos
|
|
98
|
+
|
|
99
|
+
- Windows 10 / 11 o superior
|
|
100
|
+
- Node.js >= 18
|
|
101
|
+
- Permisos administrativos para algunas funciones
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 📖 Documentación
|
|
106
|
+
|
|
107
|
+
Consulta la documentación completa en el repositorio oficial:
|
|
108
|
+
|
|
109
|
+
👉 [GitHub - tizianoluziramos/ManageOS](https://github.com/tizianoluziramos/ManageOS)
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 🤝 Contribuir
|
|
114
|
+
|
|
115
|
+
¡Las contribuciones son bienvenidas!
|
|
116
|
+
Haz un *fork* del proyecto, crea una rama con tus cambios y envía un *pull request*.
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
git clone https://github.com/tizianoluziramos/ManageOS.git
|
|
120
|
+
cd ManageOS
|
|
121
|
+
npm install
|
|
122
|
+
npm run build
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 🧾 Licencia
|
|
128
|
+
|
|
129
|
+
Este proyecto está licenciado bajo la **MIT License**.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### ✨ Desarrollado por [Tiziano Luzi Ramos](https://github.com/tizianoluziramos)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
declare class Async {
|
|
2
|
+
static press(key: string): Promise<boolean>;
|
|
3
|
+
static release(key: string): Promise<boolean>;
|
|
4
|
+
static type(text: string): Promise<boolean>;
|
|
5
|
+
static repeat(key: string, count: number): Promise<boolean>;
|
|
6
|
+
static isKeyDown(key: string): Promise<boolean>;
|
|
7
|
+
static block(): Promise<boolean>;
|
|
8
|
+
static unblock(): Promise<boolean>;
|
|
9
|
+
}
|
|
10
|
+
declare class Sync {
|
|
11
|
+
static press(key: string): boolean;
|
|
12
|
+
static release(key: string): boolean;
|
|
13
|
+
static type(text: string): boolean;
|
|
14
|
+
static repeat(key: string, count: number): boolean;
|
|
15
|
+
static isKeyDown(key: string): boolean;
|
|
16
|
+
static block(): boolean;
|
|
17
|
+
static unblock(): boolean;
|
|
18
|
+
}
|
|
19
|
+
export default class Keyboard {
|
|
20
|
+
static readonly Async: typeof Async;
|
|
21
|
+
static readonly Sync: typeof Sync;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Keyboard/index.ts"],"names":[],"mappings":"AAiBA,cAAM,KAAK;IACT,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU7C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3D,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU/C,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAUhC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CASnC;AAED,cAAM,IAAI;IACR,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAMlC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAMpC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMlC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAQlD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAMtC,MAAM,CAAC,KAAK,IAAI,OAAO;IAMvB,MAAM,CAAC,OAAO,IAAI,OAAO;CAK1B;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,gBAAuB,KAAK,eAAS;IACrC,gBAAuB,IAAI,cAAQ;CACpC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { exec, execSync } from "child_process";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
5
|
+
const __dirname = path.dirname(__filename);
|
|
6
|
+
const keyboardExe = path.join(__dirname, "keyboard.exe");
|
|
7
|
+
function parseJSON(stdout) {
|
|
8
|
+
try {
|
|
9
|
+
return JSON.parse(stdout.trim());
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
throw new Error("Invalid JSON from keyboard.exe: " + stdout);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
class Async {
|
|
16
|
+
static press(key) {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
exec(`"${keyboardExe}" press ${key}`, (error, stdout) => {
|
|
19
|
+
if (error)
|
|
20
|
+
return reject(error);
|
|
21
|
+
const result = parseJSON(stdout);
|
|
22
|
+
resolve(result.success || false);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
static release(key) {
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
exec(`"${keyboardExe}" release ${key}`, (error, stdout) => {
|
|
29
|
+
if (error)
|
|
30
|
+
return reject(error);
|
|
31
|
+
const result = parseJSON(stdout);
|
|
32
|
+
resolve(result.success || false);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
static type(text) {
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
exec(`"${keyboardExe}" type "${text}"`, (error, stdout) => {
|
|
39
|
+
if (error)
|
|
40
|
+
return reject(error);
|
|
41
|
+
const result = parseJSON(stdout);
|
|
42
|
+
resolve(result.success || false);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
static repeat(key, count) {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
exec(`"${keyboardExe}" repeat ${key} ${count}`, (error, stdout) => {
|
|
49
|
+
if (error)
|
|
50
|
+
return reject(error);
|
|
51
|
+
const result = parseJSON(stdout);
|
|
52
|
+
resolve(result.success || false);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
static isKeyDown(key) {
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
exec(`"${keyboardExe}" iskeydown ${key}`, (error, stdout) => {
|
|
59
|
+
if (error)
|
|
60
|
+
return reject(error);
|
|
61
|
+
const result = parseJSON(stdout);
|
|
62
|
+
resolve(result.keydown || false);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
static block() {
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
exec(`"${keyboardExe}" block`, (error, stdout) => {
|
|
69
|
+
if (error)
|
|
70
|
+
return reject(error);
|
|
71
|
+
const result = parseJSON(stdout);
|
|
72
|
+
resolve(result.success || false);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
static unblock() {
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
exec(`"${keyboardExe}" unblock`, (error, stdout) => {
|
|
79
|
+
if (error)
|
|
80
|
+
return reject(error);
|
|
81
|
+
const result = parseJSON(stdout);
|
|
82
|
+
resolve(result.success || false);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
class Sync {
|
|
88
|
+
static press(key) {
|
|
89
|
+
const stdout = execSync(`"${keyboardExe}" press ${key}`).toString();
|
|
90
|
+
const result = parseJSON(stdout);
|
|
91
|
+
return result.success || false;
|
|
92
|
+
}
|
|
93
|
+
static release(key) {
|
|
94
|
+
const stdout = execSync(`"${keyboardExe}" release ${key}`).toString();
|
|
95
|
+
const result = parseJSON(stdout);
|
|
96
|
+
return result.success || false;
|
|
97
|
+
}
|
|
98
|
+
static type(text) {
|
|
99
|
+
const stdout = execSync(`"${keyboardExe}" type "${text}"`).toString();
|
|
100
|
+
const result = parseJSON(stdout);
|
|
101
|
+
return result.success || false;
|
|
102
|
+
}
|
|
103
|
+
static repeat(key, count) {
|
|
104
|
+
const stdout = execSync(`"${keyboardExe}" repeat ${key} ${count}`).toString();
|
|
105
|
+
const result = parseJSON(stdout);
|
|
106
|
+
return result.success || false;
|
|
107
|
+
}
|
|
108
|
+
static isKeyDown(key) {
|
|
109
|
+
const stdout = execSync(`"${keyboardExe}" iskeydown ${key}`).toString();
|
|
110
|
+
const result = parseJSON(stdout);
|
|
111
|
+
return result.keydown || false;
|
|
112
|
+
}
|
|
113
|
+
static block() {
|
|
114
|
+
const stdout = execSync(`"${keyboardExe}" block`).toString();
|
|
115
|
+
const result = parseJSON(stdout);
|
|
116
|
+
return result.success || false;
|
|
117
|
+
}
|
|
118
|
+
static unblock() {
|
|
119
|
+
const stdout = execSync(`"${keyboardExe}" unblock`).toString();
|
|
120
|
+
const result = parseJSON(stdout);
|
|
121
|
+
return result.success || false;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export default class Keyboard {
|
|
125
|
+
static Async = Async;
|
|
126
|
+
static Sync = Sync;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Keyboard/index.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/dist/Mouse/mouse.exe
CHANGED
|
Binary file
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import FtpServer, { FtpServerOptions } from "ftp-srv";
|
|
2
|
+
export interface FTPOptions {
|
|
3
|
+
url?: string;
|
|
4
|
+
port?: number;
|
|
5
|
+
host?: string;
|
|
6
|
+
folder: string;
|
|
7
|
+
username?: string;
|
|
8
|
+
password?: string;
|
|
9
|
+
pasvUrl?: string;
|
|
10
|
+
anonymous?: boolean;
|
|
11
|
+
onLogin?: (username: string, password: string) => boolean | Promise<boolean>;
|
|
12
|
+
onStart?: (server: FtpServer) => void;
|
|
13
|
+
onError?: (error: Error) => void;
|
|
14
|
+
onConnection?: (username: string, address: string) => void;
|
|
15
|
+
ftpOptions?: Partial<FtpServerOptions>;
|
|
16
|
+
}
|
|
17
|
+
declare class Async {
|
|
18
|
+
static start(options: FTPOptions): Promise<FtpServer>;
|
|
19
|
+
}
|
|
20
|
+
declare class Sync {
|
|
21
|
+
static start(options: FTPOptions): FtpServer | null;
|
|
22
|
+
}
|
|
23
|
+
export default class FTP {
|
|
24
|
+
static readonly Async: typeof Async;
|
|
25
|
+
static readonly Sync: typeof Sync;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=FTP.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FTP.d.ts","sourceRoot":"","sources":["../../src/Server/FTP.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAG3D,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACxC;AAQD,cAAM,KAAK;IACT,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;CAkEtD;AAED,cAAM,IAAI;IACR,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;CA6DpD;AAED,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,gBAAuB,KAAK,eAAS;IACrC,gBAAuB,IAAI,cAAQ;CACpC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import FtpServer from "ftp-srv";
|
|
2
|
+
class Async {
|
|
3
|
+
static start(options) {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
try {
|
|
6
|
+
const url = options.url ??
|
|
7
|
+
`ftp://${options.host ?? "0.0.0.0"}:${options.port ?? 21}`;
|
|
8
|
+
const server = new FtpServer({
|
|
9
|
+
url,
|
|
10
|
+
anonymous: options.anonymous ?? false,
|
|
11
|
+
pasv_url: options.pasvUrl ?? options.host ?? "127.0.0.1",
|
|
12
|
+
...options.ftpOptions,
|
|
13
|
+
});
|
|
14
|
+
server.on("login", async (data, resolveLogin, rejectLogin) => {
|
|
15
|
+
try {
|
|
16
|
+
let authorized = false;
|
|
17
|
+
if (typeof options.onLogin === "function") {
|
|
18
|
+
authorized = await options.onLogin(data.username, data.password);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
authorized =
|
|
22
|
+
data.username === options.username &&
|
|
23
|
+
data.password === options.password;
|
|
24
|
+
}
|
|
25
|
+
if (authorized) {
|
|
26
|
+
resolveLogin({ root: options.folder });
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
rejectLogin(new Error("Invalid credentials"));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
rejectLogin(err);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
server.on("login", (connection) => {
|
|
37
|
+
if (options.onConnection) {
|
|
38
|
+
options.onConnection(connection.username ?? "unknown", connection.connection.ip);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
server
|
|
42
|
+
.listen()
|
|
43
|
+
.then(() => {
|
|
44
|
+
if (options.onStart)
|
|
45
|
+
options.onStart(server);
|
|
46
|
+
resolve(server);
|
|
47
|
+
})
|
|
48
|
+
.catch((err) => {
|
|
49
|
+
if (options.onError)
|
|
50
|
+
options.onError(err);
|
|
51
|
+
reject(err);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
reject(err);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
class Sync {
|
|
61
|
+
static start(options) {
|
|
62
|
+
try {
|
|
63
|
+
const url = options.url ??
|
|
64
|
+
`ftp://${options.host ?? "0.0.0.0"}:${options.port ?? 21}`;
|
|
65
|
+
const server = new FtpServer({
|
|
66
|
+
url,
|
|
67
|
+
anonymous: options.anonymous ?? false,
|
|
68
|
+
pasv_url: options.pasvUrl ?? options.host ?? "127.0.0.1",
|
|
69
|
+
...options.ftpOptions,
|
|
70
|
+
});
|
|
71
|
+
server.on("login", async (data, resolveLogin, rejectLogin) => {
|
|
72
|
+
try {
|
|
73
|
+
let authorized = false;
|
|
74
|
+
if (typeof options.onLogin === "function") {
|
|
75
|
+
authorized = await options.onLogin(data.username, data.password);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
authorized =
|
|
79
|
+
data.username === options.username &&
|
|
80
|
+
data.password === options.password;
|
|
81
|
+
}
|
|
82
|
+
if (authorized) {
|
|
83
|
+
resolveLogin({ root: options.folder });
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
rejectLogin(new Error("Invalid credentials"));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
rejectLogin(err);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
server.on("login", (connection) => {
|
|
94
|
+
if (options.onConnection) {
|
|
95
|
+
options.onConnection(connection.username ?? "unknown", connection.connection.ip);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
server
|
|
99
|
+
.listen()
|
|
100
|
+
.then(() => {
|
|
101
|
+
if (options.onStart)
|
|
102
|
+
options.onStart(server);
|
|
103
|
+
})
|
|
104
|
+
.catch((err) => {
|
|
105
|
+
if (options.onError)
|
|
106
|
+
options.onError(err);
|
|
107
|
+
});
|
|
108
|
+
return server;
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export default class FTP {
|
|
116
|
+
static Async = Async;
|
|
117
|
+
static Sync = Sync;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=FTP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FTP.js","sourceRoot":"","sources":["../../src/Server/FTP.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface ServerOptions {
|
|
2
|
+
port: number;
|
|
3
|
+
folder: string;
|
|
4
|
+
blockedExt?: string[];
|
|
5
|
+
}
|
|
6
|
+
declare class Async {
|
|
7
|
+
static start(options: ServerOptions): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
declare class Sync {
|
|
10
|
+
static start(options: ServerOptions): boolean;
|
|
11
|
+
}
|
|
12
|
+
export default class HTTP {
|
|
13
|
+
static readonly Async: typeof Async;
|
|
14
|
+
static readonly Sync: typeof Sync;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Server/HTTP/index.ts"],"names":[],"mappings":"AAeA,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,cAAM,KAAK;IACT,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAYvD;AAED,cAAM,IAAI;IACR,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;CAQ9C;AAED,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,gBAAuB,KAAK,eAAS;IACrC,gBAAuB,IAAI,cAAQ;CACpC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { exec, execSync } from "child_process";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
5
|
+
const __dirname = path.dirname(__filename);
|
|
6
|
+
const serverExe = path.join(__dirname, "http.exe");
|
|
7
|
+
function parseJSON(stdout) {
|
|
8
|
+
try {
|
|
9
|
+
return JSON.parse(stdout);
|
|
10
|
+
}
|
|
11
|
+
catch (e) { }
|
|
12
|
+
}
|
|
13
|
+
class Async {
|
|
14
|
+
static start(options) {
|
|
15
|
+
return new Promise((resolve, reject) => {
|
|
16
|
+
const args = [options.port, options.folder, ...(options.blockedExt || [])]
|
|
17
|
+
.map((a) => `"${a}"`)
|
|
18
|
+
.join(" ");
|
|
19
|
+
exec(`"${serverExe}" ${args}`, (error, stdout) => {
|
|
20
|
+
if (error)
|
|
21
|
+
return reject(error);
|
|
22
|
+
const result = parseJSON(stdout);
|
|
23
|
+
resolve(result.status || false);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
class Sync {
|
|
29
|
+
static start(options) {
|
|
30
|
+
const args = [options.port, options.folder, ...(options.blockedExt || [])]
|
|
31
|
+
.map((a) => `"${a}"`)
|
|
32
|
+
.join(" ");
|
|
33
|
+
const stdout = execSync(`"${serverExe}" ${args}`).toString();
|
|
34
|
+
const result = parseJSON(stdout);
|
|
35
|
+
return result.status || false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export default class HTTP {
|
|
39
|
+
static Async = Async;
|
|
40
|
+
static Sync = Sync;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Server/HTTP/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAEnD,SAAS,SAAS,CAAC,MAAc;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;AAChB,CAAC;AAQD,MAAM,KAAK;IACT,MAAM,CAAC,KAAK,CAAC,OAAsB;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;iBACvE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;iBACpB,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,IAAI,SAAS,KAAK,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC/C,IAAI,KAAK;oBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBACjC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,IAAI;IACR,MAAM,CAAC,KAAK,CAAC,OAAsB;QACjC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;aACvE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,IAAI;IAChB,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC;IAC9B,MAAM,CAAU,IAAI,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Server/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,gBAAuB,IAAI,cAAQ;IACnC,gBAAuB,GAAG,aAAO;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Server/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,MAAM;IAClB,MAAM,CAAU,IAAI,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAU,GAAG,GAAG,GAAG,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -32,6 +32,9 @@ import Certificates from "./certificates";
|
|
|
32
32
|
import Shell from "./shell";
|
|
33
33
|
import PsExec from "./PsExec";
|
|
34
34
|
import Mouse from "./Mouse";
|
|
35
|
+
import Keyboard from "./Keyboard";
|
|
36
|
+
import Startup from "./startup";
|
|
37
|
+
import Server from "./Server";
|
|
35
38
|
export default class ManageOS {
|
|
36
39
|
static readonly Android: typeof Android;
|
|
37
40
|
static readonly Antivirus: typeof Antivirus;
|
|
@@ -67,5 +70,8 @@ export default class ManageOS {
|
|
|
67
70
|
static readonly Microphone: typeof Microphone;
|
|
68
71
|
static readonly PsExec: typeof PsExec;
|
|
69
72
|
static readonly Mouse: typeof Mouse;
|
|
73
|
+
static readonly Keyboard: typeof Keyboard;
|
|
74
|
+
static readonly Startup: typeof Startup;
|
|
75
|
+
static readonly Server: typeof Server;
|
|
70
76
|
}
|
|
71
77
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -32,6 +32,9 @@ import Certificates from "./certificates";
|
|
|
32
32
|
import Shell from "./shell";
|
|
33
33
|
import PsExec from "./PsExec";
|
|
34
34
|
import Mouse from "./Mouse";
|
|
35
|
+
import Keyboard from "./Keyboard";
|
|
36
|
+
import Startup from "./startup";
|
|
37
|
+
import Server from "./Server";
|
|
35
38
|
export default class ManageOS {
|
|
36
39
|
static Android = Android;
|
|
37
40
|
static Antivirus = Antivirus;
|
|
@@ -67,5 +70,8 @@ export default class ManageOS {
|
|
|
67
70
|
static Microphone = Microphone;
|
|
68
71
|
static PsExec = PsExec;
|
|
69
72
|
static Mouse = Mouse;
|
|
73
|
+
static Keyboard = Keyboard;
|
|
74
|
+
static Startup = Startup;
|
|
75
|
+
static Server = Server;
|
|
70
76
|
}
|
|
71
77
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface JoystickDevice {
|
|
2
|
+
vendorId: number;
|
|
3
|
+
productId: number;
|
|
4
|
+
path: string;
|
|
5
|
+
product: string;
|
|
6
|
+
usagePage?: number;
|
|
7
|
+
usage?: number;
|
|
8
|
+
}
|
|
9
|
+
export type JoystickDataCallback = (data: Buffer) => void;
|
|
10
|
+
declare class Async {
|
|
11
|
+
static scan(): Promise<JoystickDevice[]>;
|
|
12
|
+
static listen(deviceInfo: JoystickDevice, callback: JoystickDataCallback): Promise<void>;
|
|
13
|
+
static sendInput(deviceInfo: JoystickDevice, inputData: number[]): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
declare class Sync {
|
|
16
|
+
static scan(): JoystickDevice[];
|
|
17
|
+
static listen(deviceInfo: JoystickDevice, callback: JoystickDataCallback): void;
|
|
18
|
+
static sendInput(deviceInfo: JoystickDevice, inputData: number[]): void;
|
|
19
|
+
}
|
|
20
|
+
export default class Joystick {
|
|
21
|
+
static readonly Sync: typeof Sync;
|
|
22
|
+
static readonly Async: typeof Async;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=joystick.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joystick.d.ts","sourceRoot":"","sources":["../src/joystick.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1D,cAAM,KAAK;IACT,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAUxC,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC;IAahB,MAAM,CAAC,SAAS,CACd,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC;CAWjB;AAED,cAAM,IAAI;IACR,MAAM,CAAC,IAAI,IAAI,cAAc,EAAE;IAO/B,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,oBAAoB,GAC7B,IAAI;IAQP,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;CAMxE;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,gBAAuB,IAAI,cAAQ;IACnC,gBAAuB,KAAK,eAAS;CACtC"}
|
package/dist/joystick.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import HID from "node-hid";
|
|
2
|
+
class Async {
|
|
3
|
+
static scan() {
|
|
4
|
+
return new Promise((resolve) => {
|
|
5
|
+
const devices = HID.devices();
|
|
6
|
+
const joysticks = devices.filter((d) => d.usagePage === 1 || d.usagePage === 5);
|
|
7
|
+
resolve(joysticks);
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
static listen(deviceInfo, callback) {
|
|
11
|
+
return new Promise((resolve, reject) => {
|
|
12
|
+
try {
|
|
13
|
+
const joystick = new HID.HID(deviceInfo.path);
|
|
14
|
+
joystick.on("data", callback);
|
|
15
|
+
joystick.on("error", (err) => reject(err));
|
|
16
|
+
resolve();
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
reject(err);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
static sendInput(deviceInfo, inputData) {
|
|
24
|
+
return new Promise((resolve, reject) => {
|
|
25
|
+
try {
|
|
26
|
+
const joystick = new HID.HID(deviceInfo.path);
|
|
27
|
+
joystick.write(inputData);
|
|
28
|
+
resolve();
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
reject(err);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
class Sync {
|
|
37
|
+
static scan() {
|
|
38
|
+
const devices = HID.devices();
|
|
39
|
+
return devices.filter((d) => d.usagePage === 1 || d.usagePage === 5);
|
|
40
|
+
}
|
|
41
|
+
static listen(deviceInfo, callback) {
|
|
42
|
+
try {
|
|
43
|
+
const joystick = new HID.HID(deviceInfo.path);
|
|
44
|
+
joystick.on("data", callback);
|
|
45
|
+
joystick.on("error", () => { });
|
|
46
|
+
}
|
|
47
|
+
catch (err) { }
|
|
48
|
+
}
|
|
49
|
+
static sendInput(deviceInfo, inputData) {
|
|
50
|
+
try {
|
|
51
|
+
const joystick = new HID.HID(deviceInfo.path);
|
|
52
|
+
joystick.write(inputData);
|
|
53
|
+
}
|
|
54
|
+
catch (err) { }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export default class Joystick {
|
|
58
|
+
static Sync = Sync;
|
|
59
|
+
static Async = Async;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=joystick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joystick.js","sourceRoot":"","sources":["../src/joystick.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface StartupEntry {
|
|
2
|
+
Name: string;
|
|
3
|
+
Command: string;
|
|
4
|
+
Location: string;
|
|
5
|
+
}
|
|
6
|
+
declare class Async {
|
|
7
|
+
static list(): Promise<StartupEntry[]>;
|
|
8
|
+
static add(name: string, path: string): Promise<void>;
|
|
9
|
+
static remove(name: string): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
declare class Sync {
|
|
12
|
+
static list(): StartupEntry[];
|
|
13
|
+
static add(name: string, path: string): void;
|
|
14
|
+
static remove(name: string): void;
|
|
15
|
+
}
|
|
16
|
+
export default class Startup {
|
|
17
|
+
static readonly Sync: typeof Sync;
|
|
18
|
+
static readonly Async: typeof Async;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=startup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,KAAK;IACT,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAoBtC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAW3C;AAED,cAAM,IAAI;IACR,MAAM,CAAC,IAAI,IAAI,YAAY,EAAE;IAe7B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAOlC;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,gBAAuB,IAAI,cAAQ;IACnC,gBAAuB,KAAK,eAAS;CACtC"}
|
package/dist/startup.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { exec, execSync } from "child_process";
|
|
2
|
+
class Async {
|
|
3
|
+
static list() {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
exec(`powershell -NoProfile -Command "try { Get-WmiObject -Class Win32_StartupCommand | Select-Object Name, Command, Location | ConvertTo-Json -Compress } catch { Write-Output '[]' }"`, (error, stdout) => {
|
|
6
|
+
if (error) {
|
|
7
|
+
reject(error);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
const parsed = JSON.parse(stdout.trim() || "[]");
|
|
12
|
+
resolve(Array.isArray(parsed) ? parsed : [parsed]);
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
reject(e);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
static add(name, path) {
|
|
21
|
+
return new Promise((resolve, reject) => {
|
|
22
|
+
exec(`powershell -NoProfile -Command "try { New-ItemProperty -Path 'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run' -Name '${name}' -Value '${path}' -PropertyType String } catch { exit 1 }"`, (error) => {
|
|
23
|
+
if (error)
|
|
24
|
+
reject(error);
|
|
25
|
+
else
|
|
26
|
+
resolve();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
static remove(name) {
|
|
31
|
+
return new Promise((resolve, reject) => {
|
|
32
|
+
exec(`powershell -NoProfile -Command "try { Remove-ItemProperty -Path 'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run' -Name '${name}' } catch { exit 1 }"`, (error) => {
|
|
33
|
+
if (error)
|
|
34
|
+
reject(error);
|
|
35
|
+
else
|
|
36
|
+
resolve();
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
class Sync {
|
|
42
|
+
static list() {
|
|
43
|
+
try {
|
|
44
|
+
const stdout = execSync(`powershell -NoProfile -Command "try { Get-WmiObject -Class Win32_StartupCommand | Select-Object Name, Command, Location | ConvertTo-Json -Compress } catch { Write-Output '[]' }"`)
|
|
45
|
+
.toString()
|
|
46
|
+
.trim();
|
|
47
|
+
const parsed = JSON.parse(stdout || "[]");
|
|
48
|
+
return Array.isArray(parsed) ? parsed : [parsed];
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
static add(name, path) {
|
|
55
|
+
try {
|
|
56
|
+
execSync(`powershell -NoProfile -Command "try { New-ItemProperty -Path 'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run' -Name '${name}' -Value '${path}' -PropertyType String } catch { exit 1 }"`);
|
|
57
|
+
}
|
|
58
|
+
catch (e) { }
|
|
59
|
+
}
|
|
60
|
+
static remove(name) {
|
|
61
|
+
try {
|
|
62
|
+
execSync(`powershell -NoProfile -Command "try { Remove-ItemProperty -Path 'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run' -Name '${name}' } catch { exit 1 }"`);
|
|
63
|
+
}
|
|
64
|
+
catch (e) { }
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export default class Startup {
|
|
68
|
+
static Sync = Sync;
|
|
69
|
+
static Async = Async;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=startup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQ/C,MAAM,KAAK;IACT,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CACF,mLAAmL,EACnL,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBAChB,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAmB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;oBACjE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,IAAY;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CACF,kIAAkI,IAAI,aAAa,IAAI,4CAA4C,EACnM,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK;oBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;oBACpB,OAAO,EAAE,CAAC;YACjB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CACF,qIAAqI,IAAI,uBAAuB,EAChK,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK;oBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;oBACpB,OAAO,EAAE,CAAC;YACjB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,IAAI;IACR,MAAM,CAAC,IAAI;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CACrB,mLAAmL,CACpL;iBACE,QAAQ,EAAE;iBACV,IAAI,EAAE,CAAC;YAEV,MAAM,MAAM,GAAmB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,IAAY;QACnC,IAAI,CAAC;YACH,QAAQ,CACN,kIAAkI,IAAI,aAAa,IAAI,4CAA4C,CACpM,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAY;QACxB,IAAI,CAAC;YACH,QAAQ,CACN,qIAAqI,IAAI,uBAAuB,CACjK,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;IACnB,MAAM,CAAU,IAAI,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "manageos",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.2",
|
|
4
4
|
"description": "ManageOS",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"dev": "tsx watch src/index.ts",
|
|
10
|
-
"build": "
|
|
11
|
-
"clean": "
|
|
10
|
+
"build": "BUILD_TOOLS\\build.bat",
|
|
11
|
+
"clean": "BUILD_TOOLS\\clean.bat"
|
|
12
12
|
},
|
|
13
13
|
"keywords": [],
|
|
14
14
|
"author": "Tiziano Tomas Luzi Ramos",
|
|
@@ -33,12 +33,15 @@
|
|
|
33
33
|
"@types/screenshot-desktop": "^1.15.0",
|
|
34
34
|
"@types/systeminformation": "^3.23.1",
|
|
35
35
|
"deasync": "^0.1.30",
|
|
36
|
+
"ftp-srv": "^4.6.3",
|
|
36
37
|
"loudness": "^0.4.2",
|
|
38
|
+
"node-hid": "^3.2.0",
|
|
37
39
|
"node-mic": "^1.0.1",
|
|
38
40
|
"node-notifier": "^10.0.1",
|
|
39
41
|
"node-webcam": "^0.8.2",
|
|
40
42
|
"node-windows": "^1.0.0-beta.8",
|
|
41
43
|
"screenshot-desktop": "^1.15.2",
|
|
44
|
+
"ssh2-sftp-server": "^1.1.2",
|
|
42
45
|
"systeminformation": "^5.27.10",
|
|
43
46
|
"typedoc-material-theme": "^1.4.0",
|
|
44
47
|
"win-screen-resolution": "^3.0.2"
|