manageos 1.0.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +21 -2
- package/README.md +0 -142
- package/dist/filesystem.d.ts +0 -28
- package/dist/filesystem.d.ts.map +0 -1
- package/dist/filesystem.js +0 -131
- package/dist/filesystem.js.map +0 -1
- package/dist/index.d.ts +0 -13
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -13
- package/dist/index.js.map +0 -1
- package/dist/regedit.d.ts +0 -11
- package/dist/regedit.d.ts.map +0 -1
- package/dist/regedit.js +0 -57
- package/dist/regedit.js.map +0 -1
- package/dist/systeminfo.d.ts +0 -19
- package/dist/systeminfo.d.ts.map +0 -1
- package/dist/systeminfo.js +0 -19
- package/dist/systeminfo.js.map +0 -1
- package/dist/taskmgr.d.ts +0 -29
- package/dist/taskmgr.d.ts.map +0 -1
- package/dist/taskmgr.js +0 -167
- package/dist/taskmgr.js.map +0 -1
- package/dist/usermanager.d.ts +0 -62
- package/dist/usermanager.d.ts.map +0 -1
- package/dist/usermanager.js +0 -320
- package/dist/usermanager.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "manageos",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
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": "tsc"
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"build-doc": "npx typedoc"
|
|
11
12
|
},
|
|
12
13
|
"keywords": [],
|
|
13
14
|
"author": "Tiziano Tomas Luzi Ramos",
|
|
@@ -18,6 +19,24 @@
|
|
|
18
19
|
],
|
|
19
20
|
"devDependencies": {
|
|
20
21
|
"@types/node": "^24.6.1",
|
|
22
|
+
"typedoc": "^0.28.13",
|
|
23
|
+
"typedoc-plugin-extras": "^4.0.1",
|
|
24
|
+
"typedoc-umlclass": "^0.10.2",
|
|
21
25
|
"typescript": "^5.6.3"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@types/deasync": "^0.1.5",
|
|
29
|
+
"@types/node-notifier": "^8.0.5",
|
|
30
|
+
"@types/node-windows": "^0.1.6",
|
|
31
|
+
"@types/screenshot-desktop": "^1.15.0",
|
|
32
|
+
"@types/systeminformation": "^3.23.1",
|
|
33
|
+
"deasync": "^0.1.30",
|
|
34
|
+
"loudness": "^0.4.2",
|
|
35
|
+
"node-notifier": "^10.0.1",
|
|
36
|
+
"node-windows": "^1.0.0-beta.8",
|
|
37
|
+
"screenshot-desktop": "^1.15.2",
|
|
38
|
+
"systeminformation": "^5.27.10",
|
|
39
|
+
"typedoc-material-theme": "^1.4.0",
|
|
40
|
+
"win-screen-resolution": "^3.0.2"
|
|
22
41
|
}
|
|
23
42
|
}
|
package/README.md
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# ManageOS
|
|
2
|
-
|
|
3
|
-
**ManageOS** is a Node.js library that provides a set of tools to manage operating system resources and settings on Windows systems. It offers utilities for registry editing, process management, file system operations, system information retrieval, and user account management.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 📦 Installation
|
|
8
|
-
|
|
9
|
-
Install via npm:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install manageos
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
or with Yarn:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
yarn add manageos
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 🛠 Usage
|
|
24
|
-
|
|
25
|
-
### Import the package
|
|
26
|
-
|
|
27
|
-
```ts
|
|
28
|
-
import ManageOS from "manageos";
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
### File System
|
|
34
|
-
|
|
35
|
-
```ts
|
|
36
|
-
// Synchronous usage
|
|
37
|
-
const files = ManageOS.FileSystem.sync.listDirectory("C:\\Path\\To\\Folder");
|
|
38
|
-
|
|
39
|
-
// Asynchronous usage
|
|
40
|
-
const filesAsync = await ManageOS.FileSystem.async.listDirectory(
|
|
41
|
-
"C:\\Path\\To\\Folder"
|
|
42
|
-
);
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
### Registry Editor
|
|
48
|
-
|
|
49
|
-
```ts
|
|
50
|
-
await ManageOS.Regedit.createKey("HKCU\\Software\\MyApp");
|
|
51
|
-
await ManageOS.Regedit.setValue(
|
|
52
|
-
"HKCU\\Software\\MyApp",
|
|
53
|
-
"TestValue",
|
|
54
|
-
"REG_SZ",
|
|
55
|
-
"Hello World"
|
|
56
|
-
);
|
|
57
|
-
const registryData = await ManageOS.Regedit.listKey("HKCU\\Software\\MyApp");
|
|
58
|
-
await ManageOS.Regedit.deleteKey("HKCU\\Software\\MyApp");
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
### Process Manager
|
|
64
|
-
|
|
65
|
-
```ts
|
|
66
|
-
const processes = ManageOS.Taskmgr.sync.listProcesses();
|
|
67
|
-
const processCount = ManageOS.Taskmgr.sync.getProcessCount();
|
|
68
|
-
|
|
69
|
-
ManageOS.Taskmgr.sync.killByName("notepad.exe", true);
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
### System Information
|
|
75
|
-
|
|
76
|
-
```ts
|
|
77
|
-
const sysInfo = ManageOS.SystemInfo();
|
|
78
|
-
console.log(sysInfo.platform, sysInfo.architecture, sysInfo.cpus);
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
### User Management
|
|
84
|
-
|
|
85
|
-
```ts
|
|
86
|
-
const users = ManageOS.UserManager.listUsers();
|
|
87
|
-
const userInfo = ManageOS.UserManager.getUserInfo("Administrator");
|
|
88
|
-
|
|
89
|
-
ManageOS.UserManager.createUser("newuser", "password123");
|
|
90
|
-
ManageOS.UserManager.deleteUser("newuser");
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## 📚 API Overview
|
|
96
|
-
|
|
97
|
-
- **`ManageOS.FileSystem`** – File and directory operations (sync & async versions).
|
|
98
|
-
- **`ManageOS.Regedit`** – Create, delete, read, and modify Windows Registry keys and values.
|
|
99
|
-
- **`ManageOS.Taskmgr`** – Process listing, monitoring, and termination.
|
|
100
|
-
- **`ManageOS.SystemInfo`** – Retrieve system details such as OS version, CPU info, memory, and uptime.
|
|
101
|
-
- **`ManageOS.UserManager`** – Manage Windows user accounts and groups.
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## ⚙ Requirements
|
|
106
|
-
|
|
107
|
-
- Node.js v18 or higher
|
|
108
|
-
- Windows operating system (registry and process management are Windows-specific)
|
|
109
|
-
- Administrative privileges for some operations
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## 💡 Notes
|
|
114
|
-
|
|
115
|
-
- Many operations require elevated privileges (Administrator mode).
|
|
116
|
-
- Registry changes can affect system stability. Use with caution.
|
|
117
|
-
- This library wraps built-in Windows commands, so all outputs depend on system configuration.
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## 🔧 Development
|
|
122
|
-
|
|
123
|
-
Clone the repository and install dependencies:
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
git clone https://github.com/yourusername/manageos.git
|
|
127
|
-
cd manageos
|
|
128
|
-
npm install
|
|
129
|
-
npm run build
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Run in development mode:
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
npm run dev
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## 📄 License
|
|
141
|
-
|
|
142
|
-
MIT License © Tiziano Tomas Luzi Ramos
|
package/dist/filesystem.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
interface FileInfo {
|
|
2
|
-
name: string;
|
|
3
|
-
path: string;
|
|
4
|
-
size: string;
|
|
5
|
-
isDirectory: boolean;
|
|
6
|
-
}
|
|
7
|
-
declare class Sync {
|
|
8
|
-
static currentPath(): string;
|
|
9
|
-
static listDirectory(dirPath: string): FileInfo[];
|
|
10
|
-
static readFile(filePath: string): string;
|
|
11
|
-
static deleteFile(filePath: string, force?: boolean): boolean | unknown;
|
|
12
|
-
static createDirectory(dirPath: string): boolean | unknown;
|
|
13
|
-
static deleteDirectory(dirPath: string, force?: boolean): boolean | unknown;
|
|
14
|
-
}
|
|
15
|
-
declare class Async {
|
|
16
|
-
static currentPath(): string;
|
|
17
|
-
static listDirectory(dirPath: string): Promise<FileInfo[]>;
|
|
18
|
-
static readFile(filePath: string): Promise<string>;
|
|
19
|
-
static deleteFile(filePath: string, force?: boolean): Promise<boolean | unknown>;
|
|
20
|
-
static createDirectory(dirPath: string): Promise<boolean | unknown>;
|
|
21
|
-
static deleteDirectory(dirPath: string, force?: boolean): Promise<boolean | unknown>;
|
|
22
|
-
}
|
|
23
|
-
export default class FileSystem {
|
|
24
|
-
static readonly async: typeof Async;
|
|
25
|
-
static readonly sync: typeof Sync;
|
|
26
|
-
}
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=filesystem.d.ts.map
|
package/dist/filesystem.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAGA,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,cAAM,IAAI;IACR,MAAM,CAAC,WAAW,IAAI,MAAM;IAG5B,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE;IAkBjD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IASzC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,GAAG,OAAO;IASrE,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO;IAS1D,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,GAAG,OAAO;CAQ1E;AAED,cAAM,KAAK;IACT,MAAM,CAAC,WAAW,IAAI,MAAM;IAG5B,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAmB1D,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASlD,MAAM,CAAC,UAAU,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,UAAQ,GACZ,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAW7B,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAWnE,MAAM,CAAC,eAAe,CACpB,OAAO,EAAE,MAAM,EACf,KAAK,UAAQ,GACZ,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;CAU9B;AAED,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,MAAM,CAAC,QAAQ,CAAC,KAAK,eAAS;IAC9B,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAQ;CAC7B"}
|
package/dist/filesystem.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { exec, execSync } from "child_process";
|
|
2
|
-
import path from "path";
|
|
3
|
-
class Sync {
|
|
4
|
-
static currentPath() {
|
|
5
|
-
return __dirname;
|
|
6
|
-
}
|
|
7
|
-
static listDirectory(dirPath) {
|
|
8
|
-
try {
|
|
9
|
-
const stdout = execSync(`dir "${dirPath}" /B`, { encoding: "utf8" });
|
|
10
|
-
const files = stdout
|
|
11
|
-
.trim()
|
|
12
|
-
.split("\n")
|
|
13
|
-
.map((name) => ({
|
|
14
|
-
name: name.trim(),
|
|
15
|
-
path: path.join(dirPath, name.trim()),
|
|
16
|
-
size: "",
|
|
17
|
-
isDirectory: false,
|
|
18
|
-
}));
|
|
19
|
-
return files;
|
|
20
|
-
}
|
|
21
|
-
catch (error) {
|
|
22
|
-
return [];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
static readFile(filePath) {
|
|
26
|
-
try {
|
|
27
|
-
const content = execSync(`type "${filePath}"`, { encoding: "utf8" });
|
|
28
|
-
return content;
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
return "";
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
static deleteFile(filePath, force = false) {
|
|
35
|
-
try {
|
|
36
|
-
execSync(`del ${force ? "/F" : ""} "${filePath}"`);
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
catch (e) {
|
|
40
|
-
return e;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
static createDirectory(dirPath) {
|
|
44
|
-
try {
|
|
45
|
-
execSync(`mkdir "${dirPath}"`);
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
catch (e) {
|
|
49
|
-
return e;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
static deleteDirectory(dirPath, force = false) {
|
|
53
|
-
try {
|
|
54
|
-
execSync(`rmdir ${force ? "/S /Q" : ""} "${dirPath}"`);
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
return e;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
class Async {
|
|
63
|
-
static currentPath() {
|
|
64
|
-
return __dirname;
|
|
65
|
-
}
|
|
66
|
-
static listDirectory(dirPath) {
|
|
67
|
-
return new Promise((resolve, reject) => {
|
|
68
|
-
exec(`dir "${dirPath}" /B`, (err, stdout) => {
|
|
69
|
-
if (err)
|
|
70
|
-
return reject(err);
|
|
71
|
-
const files = stdout
|
|
72
|
-
.trim()
|
|
73
|
-
.split("\n")
|
|
74
|
-
.map((name) => ({
|
|
75
|
-
name: name.trim(),
|
|
76
|
-
path: path.join(dirPath, name.trim()),
|
|
77
|
-
size: "",
|
|
78
|
-
isDirectory: false,
|
|
79
|
-
}));
|
|
80
|
-
resolve(files);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
static readFile(filePath) {
|
|
85
|
-
return new Promise((resolve, reject) => {
|
|
86
|
-
exec(`type "${filePath}"`, (err, stdout) => {
|
|
87
|
-
if (err)
|
|
88
|
-
return reject(err);
|
|
89
|
-
resolve(stdout);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
static deleteFile(filePath, force = false) {
|
|
94
|
-
return new Promise((resolve) => {
|
|
95
|
-
exec(`del ${force ? "/F" : ""} "${filePath}"`, (err) => {
|
|
96
|
-
if (err)
|
|
97
|
-
resolve(err);
|
|
98
|
-
else {
|
|
99
|
-
resolve(true);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
static createDirectory(dirPath) {
|
|
105
|
-
return new Promise((resolve) => {
|
|
106
|
-
exec(`mkdir "${dirPath}"`, (err) => {
|
|
107
|
-
if (err)
|
|
108
|
-
resolve(err);
|
|
109
|
-
else {
|
|
110
|
-
resolve(true);
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
static deleteDirectory(dirPath, force = false) {
|
|
116
|
-
return new Promise((resolve) => {
|
|
117
|
-
exec(`rmdir ${force ? "/S /Q" : ""} "${dirPath}"`, (err) => {
|
|
118
|
-
if (err)
|
|
119
|
-
resolve(err);
|
|
120
|
-
else {
|
|
121
|
-
resolve(true);
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
export default class FileSystem {
|
|
128
|
-
static async = Async;
|
|
129
|
-
static sync = Sync;
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=filesystem.js.map
|
package/dist/filesystem.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import Regedit from "./regedit";
|
|
2
|
-
import Taskmgr from "./taskmgr";
|
|
3
|
-
import FileSystem from "./filesystem";
|
|
4
|
-
import SystemInfo from "./systeminfo";
|
|
5
|
-
import UserManager from "./usermanager";
|
|
6
|
-
export default class ManageOS {
|
|
7
|
-
static readonly Regedit: typeof Regedit;
|
|
8
|
-
static readonly Taskmgr: typeof Taskmgr;
|
|
9
|
-
static readonly FileSystem: typeof FileSystem;
|
|
10
|
-
static readonly SystemInfo: typeof SystemInfo;
|
|
11
|
-
static readonly UserManager: typeof UserManager;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,MAAM,CAAC,QAAQ,CAAC,OAAO,iBAAW;IAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,iBAAW;IAClC,MAAM,CAAC,QAAQ,CAAC,UAAU,oBAAc;IACxC,MAAM,CAAC,QAAQ,CAAC,UAAU,oBAAc;IACxC,MAAM,CAAC,QAAQ,CAAC,WAAW,qBAAe;CAC3C"}
|
package/dist/index.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import Regedit from "./regedit";
|
|
2
|
-
import Taskmgr from "./taskmgr";
|
|
3
|
-
import FileSystem from "./filesystem";
|
|
4
|
-
import SystemInfo from "./systeminfo";
|
|
5
|
-
import UserManager from "./usermanager";
|
|
6
|
-
export default class ManageOS {
|
|
7
|
-
static Regedit = Regedit;
|
|
8
|
-
static Taskmgr = Taskmgr;
|
|
9
|
-
static FileSystem = FileSystem;
|
|
10
|
-
static SystemInfo = SystemInfo;
|
|
11
|
-
static UserManager = UserManager;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,MAAM,CAAU,OAAO,GAAG,OAAO,CAAC;IAClC,MAAM,CAAU,OAAO,GAAG,OAAO,CAAC;IAClC,MAAM,CAAU,UAAU,GAAG,UAAU,CAAC;IACxC,MAAM,CAAU,UAAU,GAAG,UAAU,CAAC;IACxC,MAAM,CAAU,WAAW,GAAG,WAAW,CAAC"}
|
package/dist/regedit.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
type RegType = "REG_SZ" | "REG_DWORD" | "REG_BINARY" | "REG_EXPAND_SZ" | "REG_MULTI_SZ";
|
|
2
|
-
export default class Regedit {
|
|
3
|
-
static createKey(hiveAndKey: string): Promise<void>;
|
|
4
|
-
static deleteKey(hiveAndKey: string): Promise<void>;
|
|
5
|
-
static setValue(hiveAndKey: string, valueName: string, type: RegType, value: string | number | string[]): Promise<void>;
|
|
6
|
-
static deleteValue(hiveAndKey: string, valueName: string): Promise<void>;
|
|
7
|
-
static listKey(hiveAndKey: string | string[]): Promise<any>;
|
|
8
|
-
static getArch(): string;
|
|
9
|
-
}
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=regedit.d.ts.map
|
package/dist/regedit.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regedit.d.ts","sourceRoot":"","sources":["../src/regedit.ts"],"names":[],"mappings":"AAEA,KAAK,OAAO,GACR,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,eAAe,GACf,cAAc,CAAC;AAEnB,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,MAAM,CAAC,QAAQ,CACb,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC;IAgBhB,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAU3D,MAAM,CAAC,OAAO,IAAI,MAAM;CAGzB"}
|
package/dist/regedit.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import * as regedit from "regedit";
|
|
2
|
-
export default class Regedit {
|
|
3
|
-
static createKey(hiveAndKey) {
|
|
4
|
-
return new Promise((resolve, reject) => {
|
|
5
|
-
regedit.createKey([hiveAndKey], (err) => {
|
|
6
|
-
if (err)
|
|
7
|
-
return reject(err);
|
|
8
|
-
resolve();
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
static deleteKey(hiveAndKey) {
|
|
13
|
-
return new Promise((resolve, reject) => {
|
|
14
|
-
regedit.deleteKey([hiveAndKey], (err) => {
|
|
15
|
-
if (err)
|
|
16
|
-
return reject(err);
|
|
17
|
-
resolve();
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
static setValue(hiveAndKey, valueName, type, value) {
|
|
22
|
-
return new Promise((resolve, reject) => {
|
|
23
|
-
const mapping = {
|
|
24
|
-
[hiveAndKey]: {
|
|
25
|
-
[valueName]: { value, type },
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
regedit.putValue(mapping, (err) => {
|
|
29
|
-
if (err)
|
|
30
|
-
return reject(err);
|
|
31
|
-
resolve();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
static deleteValue(hiveAndKey, valueName) {
|
|
36
|
-
return new Promise((resolve, reject) => {
|
|
37
|
-
regedit.deleteValue({ [hiveAndKey]: [valueName] }, (err) => {
|
|
38
|
-
if (err)
|
|
39
|
-
return reject(err);
|
|
40
|
-
resolve();
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
static listKey(hiveAndKey) {
|
|
45
|
-
return new Promise((resolve, reject) => {
|
|
46
|
-
regedit.list(hiveAndKey, (err, result) => {
|
|
47
|
-
if (err)
|
|
48
|
-
return reject(err);
|
|
49
|
-
resolve(result);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
static getArch() {
|
|
54
|
-
return regedit.arch["64"];
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=regedit.js.map
|
package/dist/regedit.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regedit.js","sourceRoot":"","sources":["../src/regedit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AASnC,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,MAAM,CAAC,SAAS,CAAC,UAAkB;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtC,IAAI,GAAG;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,UAAkB;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtC,IAAI,GAAG;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,UAAkB,EAClB,SAAiB,EACjB,IAAa,EACb,KAAiC;QAEjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG;gBACd,CAAC,UAAU,CAAC,EAAE;oBACZ,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;iBAC7B;aACF,CAAC;YAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAChC,IAAI,GAAG;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBAE5B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,UAAkB,EAAE,SAAiB;QACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzD,IAAI,GAAG;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBAE5B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,UAA6B;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACvC,IAAI,GAAG;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBAE5B,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
package/dist/systeminfo.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import os from "os";
|
|
2
|
-
type SystemInfoType = {
|
|
3
|
-
platform: NodeJS.Platform;
|
|
4
|
-
architecture: string;
|
|
5
|
-
release: string;
|
|
6
|
-
hostname: string;
|
|
7
|
-
uptime: number;
|
|
8
|
-
cpus: os.CpuInfo[];
|
|
9
|
-
totalMemory: number;
|
|
10
|
-
freeMemory: number;
|
|
11
|
-
loadAverage: number[];
|
|
12
|
-
tmpDir: string;
|
|
13
|
-
homeDir: string;
|
|
14
|
-
type: string;
|
|
15
|
-
userInfo: os.UserInfo<string>;
|
|
16
|
-
};
|
|
17
|
-
export default function SystemInfo(): SystemInfoType;
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=systeminfo.d.ts.map
|
package/dist/systeminfo.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"systeminfo.d.ts","sourceRoot":"","sources":["../src/systeminfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,IAAI,cAAc,CAgBnD"}
|
package/dist/systeminfo.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import os from "os";
|
|
2
|
-
export default function SystemInfo() {
|
|
3
|
-
return {
|
|
4
|
-
platform: os.platform(),
|
|
5
|
-
architecture: os.arch(),
|
|
6
|
-
release: os.release(),
|
|
7
|
-
hostname: os.hostname(),
|
|
8
|
-
uptime: os.uptime(),
|
|
9
|
-
cpus: os.cpus(),
|
|
10
|
-
totalMemory: os.totalmem(),
|
|
11
|
-
freeMemory: os.freemem(),
|
|
12
|
-
loadAverage: os.loadavg(),
|
|
13
|
-
tmpDir: os.tmpdir(),
|
|
14
|
-
homeDir: os.homedir(),
|
|
15
|
-
type: os.type(),
|
|
16
|
-
userInfo: os.userInfo(),
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=systeminfo.js.map
|
package/dist/systeminfo.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"systeminfo.js","sourceRoot":"","sources":["../src/systeminfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAkBpB,MAAM,CAAC,OAAO,UAAU,UAAU;IAChC,OAAO;QACL,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;QACvB,YAAY,EAAE,EAAE,CAAC,IAAI,EAAE;QACvB,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;QACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;QACvB,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;QACf,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE;QAC1B,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE;QACxB,WAAW,EAAE,EAAE,CAAC,OAAO,EAAE;QACzB,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;QACf,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;KACxB,CAAC;AACJ,CAAC"}
|
package/dist/taskmgr.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
interface ProcessInfo {
|
|
2
|
-
imageName: string;
|
|
3
|
-
pid: number;
|
|
4
|
-
sessionName: string;
|
|
5
|
-
sessionNumber: number;
|
|
6
|
-
memUsage: string;
|
|
7
|
-
}
|
|
8
|
-
declare class Sync {
|
|
9
|
-
static monitorProcess(name: string, callback: (status: "start" | "stop") => void): NodeJS.Timeout;
|
|
10
|
-
static getProcessCount(): number;
|
|
11
|
-
static findByName(name: string): ProcessInfo[];
|
|
12
|
-
static killByName(name: string, force?: boolean): boolean | unknown;
|
|
13
|
-
static killByPid(pid: number, force?: boolean): boolean | unknown;
|
|
14
|
-
static listProcesses(): ProcessInfo[];
|
|
15
|
-
}
|
|
16
|
-
declare class Async {
|
|
17
|
-
static monitorProcess(name: string, callback: (status: "start" | "stop") => void): Promise<void>;
|
|
18
|
-
static getProcessCountAsync(): Promise<number>;
|
|
19
|
-
static findByName(name: string): Promise<ProcessInfo[]>;
|
|
20
|
-
static killByName(name: string, force?: boolean): Promise<boolean | unknown>;
|
|
21
|
-
static killByPid(pid: number, force?: boolean): Promise<boolean | unknown>;
|
|
22
|
-
static listProcesses(): Promise<ProcessInfo[]>;
|
|
23
|
-
}
|
|
24
|
-
export default class Taskmgr {
|
|
25
|
-
static readonly async: typeof Async;
|
|
26
|
-
static readonly sync: typeof Sync;
|
|
27
|
-
}
|
|
28
|
-
export {};
|
|
29
|
-
//# sourceMappingURL=taskmgr.d.ts.map
|
package/dist/taskmgr.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taskmgr.d.ts","sourceRoot":"","sources":["../src/taskmgr.ts"],"names":[],"mappings":"AAEA,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,IAAI;IACR,MAAM,CAAC,cAAc,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,GAC3C,MAAM,CAAC,OAAO;IAmBjB,MAAM,CAAC,eAAe,IAAI,MAAM;IAIhC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IAM9C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,GAAG,OAAO;IASjE,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,GAAG,OAAO;IAQ/D,MAAM,CAAC,aAAa,IAAI,WAAW,EAAE;CA6CtC;AAED,cAAM,KAAK;WACI,cAAc,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI;WAkBjC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;WAIvC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAO7D,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAQ1E,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAYxE,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;CA+C/C;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,MAAM,CAAC,QAAQ,CAAC,KAAK,eAAS;IAC9B,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAQ;CAC7B"}
|
package/dist/taskmgr.js
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { exec, execSync } from "child_process";
|
|
2
|
-
class Sync {
|
|
3
|
-
static monitorProcess(name, callback) {
|
|
4
|
-
let running = false;
|
|
5
|
-
const intervalId = setInterval(() => {
|
|
6
|
-
const processes = this.findByName(name);
|
|
7
|
-
const found = processes.length > 0;
|
|
8
|
-
if (found && !running) {
|
|
9
|
-
running = true;
|
|
10
|
-
callback("start");
|
|
11
|
-
}
|
|
12
|
-
else if (!found && running) {
|
|
13
|
-
running = false;
|
|
14
|
-
callback("stop");
|
|
15
|
-
}
|
|
16
|
-
}, 2000);
|
|
17
|
-
return intervalId;
|
|
18
|
-
}
|
|
19
|
-
static getProcessCount() {
|
|
20
|
-
return this.listProcesses().length;
|
|
21
|
-
}
|
|
22
|
-
static findByName(name) {
|
|
23
|
-
return this.listProcesses().filter((p) => p.imageName.toLowerCase() === name.toLowerCase());
|
|
24
|
-
}
|
|
25
|
-
static killByName(name, force = false) {
|
|
26
|
-
try {
|
|
27
|
-
execSync(`taskkill /IM ${name} ${force ? "/F" : ""}`);
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
catch (e) {
|
|
31
|
-
return e;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
static killByPid(pid, force = false) {
|
|
35
|
-
try {
|
|
36
|
-
execSync(`taskkill /PID ${pid} ${force ? "/F" : ""}`);
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
catch (e) {
|
|
40
|
-
return e;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
static listProcesses() {
|
|
44
|
-
try {
|
|
45
|
-
const stdout = execSync("tasklist", { encoding: "utf8" });
|
|
46
|
-
const lines = stdout.trim().split("\n");
|
|
47
|
-
const separatorIndex = lines.findIndex((line) => line.includes("==="));
|
|
48
|
-
if (separatorIndex === -1)
|
|
49
|
-
throw new Error("Formato inesperado");
|
|
50
|
-
const separatorLine = lines[separatorIndex];
|
|
51
|
-
const colPositions = [];
|
|
52
|
-
for (let i = 0; i < separatorLine.length; i++) {
|
|
53
|
-
if (separatorLine[i] === "=" &&
|
|
54
|
-
(i === 0 || separatorLine[i - 1] !== "=")) {
|
|
55
|
-
colPositions.push(i);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
colPositions.push(separatorLine.length);
|
|
59
|
-
const dataLines = lines.slice(separatorIndex + 1);
|
|
60
|
-
const processes = dataLines
|
|
61
|
-
.filter((line) => line.trim() !== "")
|
|
62
|
-
.map((line) => {
|
|
63
|
-
const imageName = line.slice(colPositions[0], colPositions[1]).trim();
|
|
64
|
-
const pid = Number(line.slice(colPositions[1], colPositions[2]).trim()) || 0;
|
|
65
|
-
const sessionName = line
|
|
66
|
-
.slice(colPositions[2], colPositions[3])
|
|
67
|
-
.trim();
|
|
68
|
-
const sessionNumber = Number(line.slice(colPositions[3], colPositions[4]).trim()) || 0;
|
|
69
|
-
const memUsage = line.slice(colPositions[4]).trim();
|
|
70
|
-
return { imageName, pid, sessionName, sessionNumber, memUsage };
|
|
71
|
-
});
|
|
72
|
-
return processes;
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
console.error("Error ejecutando tasklist:", error);
|
|
76
|
-
return [];
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
class Async {
|
|
81
|
-
static async monitorProcess(name, callback) {
|
|
82
|
-
let running = false;
|
|
83
|
-
setInterval(async () => {
|
|
84
|
-
const processes = await this.findByName(name);
|
|
85
|
-
const found = processes.length > 0;
|
|
86
|
-
if (found && !running) {
|
|
87
|
-
running = true;
|
|
88
|
-
callback("start");
|
|
89
|
-
}
|
|
90
|
-
else if (!found && running) {
|
|
91
|
-
running = false;
|
|
92
|
-
callback("stop");
|
|
93
|
-
}
|
|
94
|
-
}, 2000);
|
|
95
|
-
}
|
|
96
|
-
static async getProcessCountAsync() {
|
|
97
|
-
return (await this.listProcesses()).length;
|
|
98
|
-
}
|
|
99
|
-
static async findByName(name) {
|
|
100
|
-
const processes = await this.listProcesses();
|
|
101
|
-
return processes.filter((p) => p.imageName.toLowerCase() === name.toLowerCase());
|
|
102
|
-
}
|
|
103
|
-
static killByName(name, force = false) {
|
|
104
|
-
return new Promise((resolve) => {
|
|
105
|
-
exec(`taskkill /IM ${name} ${force ? "/F" : ""}`, (err) => {
|
|
106
|
-
if (err)
|
|
107
|
-
resolve(err);
|
|
108
|
-
else
|
|
109
|
-
resolve(true);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
static killByPid(pid, force = false) {
|
|
114
|
-
return new Promise((resolve) => {
|
|
115
|
-
exec(`taskkill /PID ${pid} ${force ? "/F" : ""}`, (err) => {
|
|
116
|
-
if (err) {
|
|
117
|
-
resolve(err);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
resolve(true);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
static listProcesses() {
|
|
126
|
-
return new Promise((resolve, reject) => {
|
|
127
|
-
exec("tasklist", (err, stdout) => {
|
|
128
|
-
if (err)
|
|
129
|
-
return reject(err);
|
|
130
|
-
const lines = stdout.trim().split("\n");
|
|
131
|
-
const separatorIndex = lines.findIndex((line) => line.includes("==="));
|
|
132
|
-
if (separatorIndex === -1)
|
|
133
|
-
return reject("Formato inesperado");
|
|
134
|
-
const separatorLine = lines[separatorIndex];
|
|
135
|
-
const colPositions = [];
|
|
136
|
-
for (let i = 0; i < separatorLine.length; i++) {
|
|
137
|
-
if (separatorLine[i] === "=" &&
|
|
138
|
-
(i === 0 || separatorLine[i - 1] !== "=")) {
|
|
139
|
-
colPositions.push(i);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
colPositions.push(separatorLine.length);
|
|
143
|
-
const dataLines = lines.slice(separatorIndex + 1);
|
|
144
|
-
const processes = dataLines
|
|
145
|
-
.filter((line) => line.trim() !== "")
|
|
146
|
-
.map((line) => {
|
|
147
|
-
const imageName = line
|
|
148
|
-
.slice(colPositions[0], colPositions[1])
|
|
149
|
-
.trim();
|
|
150
|
-
const pid = Number(line.slice(colPositions[1], colPositions[2]).trim()) || 0;
|
|
151
|
-
const sessionName = line
|
|
152
|
-
.slice(colPositions[2], colPositions[3])
|
|
153
|
-
.trim();
|
|
154
|
-
const sessionNumber = Number(line.slice(colPositions[3], colPositions[4]).trim()) || 0;
|
|
155
|
-
const memUsage = line.slice(colPositions[4]).trim();
|
|
156
|
-
return { imageName, pid, sessionName, sessionNumber, memUsage };
|
|
157
|
-
});
|
|
158
|
-
resolve(processes);
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
export default class Taskmgr {
|
|
164
|
-
static async = Async;
|
|
165
|
-
static sync = Sync;
|
|
166
|
-
}
|
|
167
|
-
//# sourceMappingURL=taskmgr.js.map
|
package/dist/taskmgr.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taskmgr.js","sourceRoot":"","sources":["../src/taskmgr.ts"],"names":[],"mappings":"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"}
|
package/dist/usermanager.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
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 UserManager {
|
|
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=usermanager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usermanager.d.ts","sourceRoot":"","sources":["../src/usermanager.ts"],"names":[],"mappings":"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"}
|
package/dist/usermanager.js
DELETED
|
@@ -1,320 +0,0 @@
|
|
|
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 UserManager {
|
|
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=usermanager.js.map
|
package/dist/usermanager.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usermanager.js","sourceRoot":"","sources":["../src/usermanager.ts"],"names":[],"mappings":"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"}
|