stack-analyze 1.1.5 → 1.1.8
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/.vscode/settings.json +4 -0
- package/CHANGELOG.md +23 -0
- package/{about/index.js → about.js} +13 -26
- package/cli.js +322 -0
- package/functions/animeInfo.js +9 -39
- package/functions/bitly.js +5 -7
- package/functions/cryptoList.js +17 -44
- package/functions/gitUser.js +6 -9
- package/functions/hardware.js +32 -24
- package/functions/moviesInfo.js +9 -38
- package/functions/multipleStack.js +9 -29
- package/functions/pageSpeed.js +13 -13
- package/functions/singleStack.js +9 -32
- package/functions/twitch.js +45 -0
- package/hash/aboutOpts.js +9 -16
- package/hash/hardwareTools.js +3 -3
- package/index.cjs +474 -0
- package/index.mjs +474 -0
- package/models/aboutTables.js +2 -19
- package/models/animeTable.js +33 -0
- package/models/cryptoTables.js +32 -0
- package/models/hardwareTables.js +87 -0
- package/models/movieTables.js +33 -0
- package/models/stackTables.js +23 -0
- package/models/twitchTables.js +28 -0
- package/package.json +24 -18
- package/readme.md +2 -2
- package/hash/mainTools.js +0 -145
- package/index.js +0 -170
package/functions/hardware.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
// modules
|
|
2
|
-
|
|
3
|
-
cpu,
|
|
4
|
-
mem,
|
|
5
|
-
osInfo,
|
|
6
|
-
diskLayout,
|
|
7
|
-
graphics,
|
|
8
|
-
bios
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
import {
|
|
3
|
+
cpu,
|
|
4
|
+
mem,
|
|
5
|
+
osInfo,
|
|
6
|
+
diskLayout,
|
|
7
|
+
graphics,
|
|
8
|
+
bios
|
|
9
|
+
} from "systeminformation";
|
|
10
|
+
import colors from "colors";
|
|
11
|
+
import {
|
|
12
|
+
controllersTable,
|
|
13
|
+
diskTables,
|
|
14
|
+
displayTables
|
|
15
|
+
} from "../models/hardwareTables.js";
|
|
12
16
|
|
|
13
17
|
|
|
14
18
|
/**
|
|
@@ -44,7 +48,7 @@ async function cpuInfo() {
|
|
|
44
48
|
model
|
|
45
49
|
});
|
|
46
50
|
} catch (err) {
|
|
47
|
-
console.error(red(err.message));
|
|
51
|
+
console.error(colors.red(err.message));
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
54
|
|
|
@@ -73,7 +77,7 @@ async function ramMemInfo() {
|
|
|
73
77
|
available_mem: `${(available / 1073741824).toFixed(2)} GB`
|
|
74
78
|
});
|
|
75
79
|
} catch (err) {
|
|
76
|
-
console.error(red(err.message));
|
|
80
|
+
console.error(colors.red(err.message));
|
|
77
81
|
}
|
|
78
82
|
}
|
|
79
83
|
|
|
@@ -108,7 +112,7 @@ async function osDetail() {
|
|
|
108
112
|
uefi
|
|
109
113
|
});
|
|
110
114
|
} catch (err) {
|
|
111
|
-
console.error(red(err.message));
|
|
115
|
+
console.error(colors.red(err.message));
|
|
112
116
|
}
|
|
113
117
|
}
|
|
114
118
|
|
|
@@ -135,11 +139,13 @@ async function diskInfo() {
|
|
|
135
139
|
diskSize: `${(size / 1073741824).toFixed(2)} GB`,
|
|
136
140
|
interfaceType
|
|
137
141
|
}));
|
|
138
|
-
|
|
139
|
-
|
|
142
|
+
|
|
143
|
+
diskTables.addRows(disksList);
|
|
144
|
+
|
|
145
|
+
diskTables.printTable();
|
|
140
146
|
|
|
141
147
|
} catch (err) {
|
|
142
|
-
console.error(red(err.message));
|
|
148
|
+
console.error(colors.red(err.message));
|
|
143
149
|
}
|
|
144
150
|
}
|
|
145
151
|
|
|
@@ -160,15 +166,16 @@ async function controllerInfo() {
|
|
|
160
166
|
}) => ({
|
|
161
167
|
model,
|
|
162
168
|
vendor,
|
|
163
|
-
vramSize: vram < 1024
|
|
169
|
+
vramSize: vram < 1024
|
|
164
170
|
? `${vram} MB`
|
|
165
171
|
: `${(vram / 1024).toFixed(2)} GB`
|
|
166
172
|
}));
|
|
167
173
|
|
|
168
174
|
// show results
|
|
169
|
-
|
|
175
|
+
controllersTable.addRows(controllersList);
|
|
176
|
+
controllersTable.printTable();
|
|
170
177
|
} catch (err) {
|
|
171
|
-
console.error(red(err.message));
|
|
178
|
+
console.error(colors.red(err.message));
|
|
172
179
|
}
|
|
173
180
|
}
|
|
174
181
|
|
|
@@ -197,9 +204,10 @@ async function displayInfo() {
|
|
|
197
204
|
}));
|
|
198
205
|
|
|
199
206
|
// show results
|
|
200
|
-
|
|
207
|
+
displayTables.addRows(displayList);
|
|
208
|
+
displayTables.printTable();
|
|
201
209
|
} catch (err) {
|
|
202
|
-
console.error(red(err.message));
|
|
210
|
+
console.error(colors.red(err.message));
|
|
203
211
|
}
|
|
204
212
|
}
|
|
205
213
|
|
|
@@ -221,16 +229,16 @@ async function biosInfo() {
|
|
|
221
229
|
console.table({
|
|
222
230
|
releaseDate,
|
|
223
231
|
vendor,
|
|
224
|
-
bios_revision: revision === "" ? "no info": revision,
|
|
232
|
+
bios_revision: revision === "" ? "no info" : revision,
|
|
225
233
|
version
|
|
226
234
|
});
|
|
227
235
|
} catch (err) {
|
|
228
|
-
console.error(red(err.message));
|
|
236
|
+
console.error(colors.red(err.message));
|
|
229
237
|
}
|
|
230
238
|
}
|
|
231
239
|
|
|
232
240
|
// exports modules
|
|
233
|
-
|
|
241
|
+
export {
|
|
234
242
|
cpuInfo,
|
|
235
243
|
ramMemInfo,
|
|
236
244
|
osDetail,
|
package/functions/moviesInfo.js
CHANGED
|
@@ -1,54 +1,25 @@
|
|
|
1
1
|
// modules
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import axios from "axios";
|
|
3
|
+
import colors from "colors";
|
|
4
|
+
|
|
5
|
+
// table module
|
|
6
|
+
import movieList from "../models/movieTables.js";
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* @description movie info tool
|
|
8
|
-
* @param { string } api_key - key required for api tool
|
|
9
10
|
* @param { string } query - search any movie
|
|
10
11
|
* @returns { Promise<void> } - return movie lisy
|
|
11
12
|
*/
|
|
12
|
-
const movieDB = async (
|
|
13
|
+
const movieDB = async (query, token) => {
|
|
13
14
|
try {
|
|
14
15
|
const { data } = await axios.get("https://api.themoviedb.org/3/search/movie", {
|
|
15
16
|
params: {
|
|
16
|
-
api_key,
|
|
17
|
+
api_key: token,
|
|
17
18
|
query,
|
|
18
19
|
page: 1
|
|
19
20
|
}
|
|
20
21
|
});
|
|
21
22
|
|
|
22
|
-
const movieList = new Table({
|
|
23
|
-
columns: [
|
|
24
|
-
{
|
|
25
|
-
name: "title",
|
|
26
|
-
alignment: "left",
|
|
27
|
-
color: "green"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
name: "original_language",
|
|
31
|
-
alignment: "left",
|
|
32
|
-
color: "green"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: "popularity",
|
|
36
|
-
alignment: "left",
|
|
37
|
-
color: "yellow"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: "vote_average",
|
|
41
|
-
alignment: "left",
|
|
42
|
-
color: "yellow"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
name: "release_date",
|
|
46
|
-
alignment: "left",
|
|
47
|
-
color: "yellow"
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
});
|
|
51
|
-
|
|
52
23
|
const movieData = data.results
|
|
53
24
|
.map(({
|
|
54
25
|
title,
|
|
@@ -76,9 +47,9 @@ const movieDB = async (api_key, query) => {
|
|
|
76
47
|
|
|
77
48
|
movieList.printTable();
|
|
78
49
|
} catch (err) {
|
|
79
|
-
console.error(red(err.message));
|
|
50
|
+
console.error(colors.red(err.message));
|
|
80
51
|
}
|
|
81
52
|
};
|
|
82
53
|
|
|
83
54
|
// export
|
|
84
|
-
|
|
55
|
+
export default movieDB;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// modules
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import figlet from "figlet";
|
|
3
|
+
import Wappalyzer from "wappalyzer";
|
|
4
|
+
import colors from "colors";
|
|
5
|
+
import stackTable from "../models/stackTables.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
*
|
|
@@ -14,26 +14,6 @@ const { Table } = require("console-table-printer");
|
|
|
14
14
|
const multipleStack = async (urls) => {
|
|
15
15
|
const wappalyzer = await new Wappalyzer();
|
|
16
16
|
|
|
17
|
-
const p = new Table({
|
|
18
|
-
columns: [
|
|
19
|
-
{
|
|
20
|
-
name: "techName",
|
|
21
|
-
alignment: "left",
|
|
22
|
-
color: "cyan"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: "techWebsite",
|
|
26
|
-
alignment: "left",
|
|
27
|
-
color: "green"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
name: "techCategories",
|
|
31
|
-
alignment: "left",
|
|
32
|
-
color: "cyan"
|
|
33
|
-
}
|
|
34
|
-
]
|
|
35
|
-
});
|
|
36
|
-
|
|
37
17
|
try {
|
|
38
18
|
await wappalyzer.init();
|
|
39
19
|
|
|
@@ -61,17 +41,17 @@ const multipleStack = async (urls) => {
|
|
|
61
41
|
techCategories: categories.map(({ name }) => name).join(", ")
|
|
62
42
|
}));
|
|
63
43
|
|
|
64
|
-
console.info(green(textSync(url, "Small")));
|
|
44
|
+
console.info(colors.green(figlet.textSync(url, "Small")));
|
|
65
45
|
console.group();
|
|
66
|
-
|
|
67
|
-
|
|
46
|
+
stackTable.addRows(stackResult);
|
|
47
|
+
stackTable.printTable();
|
|
68
48
|
console.groupEnd();
|
|
69
49
|
});
|
|
70
50
|
} catch (err) {
|
|
71
|
-
console.error(red(err.message));
|
|
51
|
+
console.error(colors.red(err.message));
|
|
72
52
|
}
|
|
73
53
|
|
|
74
54
|
await wappalyzer.destroy();
|
|
75
55
|
};
|
|
76
56
|
|
|
77
|
-
|
|
57
|
+
export default multipleStack;
|
package/functions/pageSpeed.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// modules
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import axios from "axios";
|
|
3
|
+
import { SingleBar } from "cli-progress";
|
|
4
|
+
import colors from "colors";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @description async function mobile website pagespeed
|
|
@@ -39,13 +39,13 @@ const pageSpeed = async (url) => {
|
|
|
39
39
|
switch (true) {
|
|
40
40
|
case (mobile === 1 || mobile <= 49):
|
|
41
41
|
case (desktop === 1 || desktop <= 49):
|
|
42
|
-
b1 = new
|
|
42
|
+
b1 = new SingleBar({
|
|
43
43
|
format: "Mobile Result | {bar} || {value}/{total} || bad".red,
|
|
44
44
|
barCompleteChar: "\u2588",
|
|
45
45
|
barIncompleteChar: "\u2591",
|
|
46
46
|
hideCursor: true
|
|
47
47
|
});
|
|
48
|
-
b2 = new
|
|
48
|
+
b2 = new SingleBar({
|
|
49
49
|
format: "Desktop Result | {bar} || {value}/{total} || bad".red,
|
|
50
50
|
barCompleteChar: "\u2588",
|
|
51
51
|
barIncompleteChar: "\u2591",
|
|
@@ -54,13 +54,13 @@ const pageSpeed = async (url) => {
|
|
|
54
54
|
break;
|
|
55
55
|
case (mobile === 50 || mobile <= 89):
|
|
56
56
|
case (desktop === 50 || desktop <= 89):
|
|
57
|
-
b1 = new
|
|
57
|
+
b1 = new SingleBar({
|
|
58
58
|
format: "Mobile Result | {bar} || {value}/{total} || decent".yellow,
|
|
59
59
|
barCompleteChar: "\u2588",
|
|
60
60
|
barIncompleteChar: "\u2591",
|
|
61
61
|
hideCursor: true
|
|
62
62
|
});
|
|
63
|
-
b2 = new
|
|
63
|
+
b2 = new SingleBar({
|
|
64
64
|
format: "Desktop Result | {bar} || {value}/{total} || decent".yellow,
|
|
65
65
|
barCompleteChar: "\u2588",
|
|
66
66
|
barIncompleteChar: "\u2591",
|
|
@@ -69,13 +69,13 @@ const pageSpeed = async (url) => {
|
|
|
69
69
|
break;
|
|
70
70
|
case (mobile >= 90 || mobile === 100):
|
|
71
71
|
case (desktop >= 90 || desktop === 100):
|
|
72
|
-
b1 = new
|
|
72
|
+
b1 = new SingleBar({
|
|
73
73
|
format: "Mobile Result | {bar} || {value}/{total} || excelent".green,
|
|
74
74
|
barCompleteChar: "\u2588",
|
|
75
75
|
barIncompleteChar: "\u2591",
|
|
76
76
|
hideCursor: true
|
|
77
77
|
});
|
|
78
|
-
b2 = new
|
|
78
|
+
b2 = new SingleBar({
|
|
79
79
|
format: "Desktop Result | {bar} || {value}/{total} || excelent".green,
|
|
80
80
|
barCompleteChar: "\u2588",
|
|
81
81
|
barIncompleteChar: "\u2591",
|
|
@@ -83,13 +83,13 @@ const pageSpeed = async (url) => {
|
|
|
83
83
|
});
|
|
84
84
|
break;
|
|
85
85
|
default:
|
|
86
|
-
b1 = new
|
|
86
|
+
b1 = new SingleBar({
|
|
87
87
|
format: "Mobile Result | {bar} || {value}/{total} || undifined",
|
|
88
88
|
barCompleteChar: "\u2588",
|
|
89
89
|
barIncompleteChar: "\u2591",
|
|
90
90
|
hideCursor: true
|
|
91
91
|
});
|
|
92
|
-
b2 = new
|
|
92
|
+
b2 = new SingleBar({
|
|
93
93
|
format: "Desktop Result | {bar} || {value}/{total} || undifined",
|
|
94
94
|
barCompleteChar: "\u2588",
|
|
95
95
|
barIncompleteChar: "\u2591",
|
|
@@ -109,8 +109,8 @@ const pageSpeed = async (url) => {
|
|
|
109
109
|
b1.stop();
|
|
110
110
|
b2.stop();
|
|
111
111
|
} catch (err) {
|
|
112
|
-
console.error(red(err.message));
|
|
112
|
+
console.error(colors.red(err.message));
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
export default pageSpeed;
|
package/functions/singleStack.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// module
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import Wappalyzer from "wappalyzer";
|
|
3
|
+
import figlet from "figlet";
|
|
4
|
+
import colors from "colors";
|
|
5
|
+
import stackTable from "../models/stackTables.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
*
|
|
@@ -11,30 +11,9 @@ const { Table } = require("console-table-printer");
|
|
|
11
11
|
* @returns { Promise<void> } - return async results single web
|
|
12
12
|
*
|
|
13
13
|
*/
|
|
14
|
-
async function singleStack(url) {
|
|
14
|
+
export default async function singleStack(url) {
|
|
15
15
|
const wappalyzer = await new Wappalyzer;
|
|
16
16
|
|
|
17
|
-
const p = new Table({
|
|
18
|
-
columns: [
|
|
19
|
-
{
|
|
20
|
-
name: "techName",
|
|
21
|
-
alignment: "left",
|
|
22
|
-
color: "cyan"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: "techWebsite",
|
|
26
|
-
alignment: "left",
|
|
27
|
-
color: "green"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
name: "techCategories",
|
|
31
|
-
alignment: "left",
|
|
32
|
-
color: "cyan"
|
|
33
|
-
}
|
|
34
|
-
]
|
|
35
|
-
|
|
36
|
-
});
|
|
37
|
-
|
|
38
17
|
try {
|
|
39
18
|
await wappalyzer.init();
|
|
40
19
|
|
|
@@ -50,16 +29,14 @@ async function singleStack(url) {
|
|
|
50
29
|
techCategories: categories.map(({ name }) => name).join(", ")
|
|
51
30
|
}));
|
|
52
31
|
|
|
53
|
-
console.info(green(textSync(url)));
|
|
32
|
+
console.info(colors.green(figlet.textSync(url)));
|
|
54
33
|
|
|
55
|
-
|
|
34
|
+
stackTable.addRows(stackResult);
|
|
56
35
|
|
|
57
|
-
|
|
36
|
+
stackTable.printTable();
|
|
58
37
|
} catch (err) {
|
|
59
|
-
console.error(red(err.message));
|
|
38
|
+
console.error(colors.red(err.message));
|
|
60
39
|
}
|
|
61
40
|
|
|
62
41
|
await wappalyzer.destroy();
|
|
63
42
|
}
|
|
64
|
-
|
|
65
|
-
module.exports = singleStack;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// modules
|
|
2
|
+
import axios from "axios";
|
|
3
|
+
import { format } from "timeago.js";
|
|
4
|
+
import colors from "colors";
|
|
5
|
+
|
|
6
|
+
// table
|
|
7
|
+
import twitchTable from "../models/twitchTables.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @description twitch user info
|
|
12
|
+
* @param {string} twitchUser - twitch user for search
|
|
13
|
+
* @param {string} apiToken - twitch api token
|
|
14
|
+
* @returns { Promise<void> } - return twitch results
|
|
15
|
+
*/
|
|
16
|
+
const twitchInfo = async (twitchUser, twitchClient, apiToken) => {
|
|
17
|
+
|
|
18
|
+
try {
|
|
19
|
+
const { data: twitchData } = await axios.get(`https://api.twitch.tv/helix/users?login=${twitchUser}`, {
|
|
20
|
+
headers: {
|
|
21
|
+
Authorization: `Bearer ${apiToken}`,
|
|
22
|
+
"Client-Id": twitchClient
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const result = twitchData.data.map(({
|
|
27
|
+
display_name,
|
|
28
|
+
broadcaster_type,
|
|
29
|
+
view_count,
|
|
30
|
+
created_at
|
|
31
|
+
}) => ({
|
|
32
|
+
display_name,
|
|
33
|
+
broadcaster_type,
|
|
34
|
+
view_count,
|
|
35
|
+
createdTime: format(created_at)
|
|
36
|
+
}));
|
|
37
|
+
|
|
38
|
+
twitchTable.addRows(result);
|
|
39
|
+
twitchTable.printTable();
|
|
40
|
+
} catch (err) {
|
|
41
|
+
console.error(colors.red(err));
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export default twitchInfo;
|
package/hash/aboutOpts.js
CHANGED
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
// print table
|
|
2
|
-
|
|
2
|
+
import { printTable } from "console-table-printer";
|
|
3
3
|
|
|
4
4
|
// tables models
|
|
5
|
-
|
|
5
|
+
import {
|
|
6
6
|
youtubeDevTable,
|
|
7
|
-
nonoliveTable,
|
|
8
7
|
ideasTable
|
|
9
|
-
}
|
|
8
|
+
} from "../models/aboutTables.js";
|
|
10
9
|
|
|
11
10
|
// about sections
|
|
12
|
-
|
|
11
|
+
import {
|
|
13
12
|
aboutApp,
|
|
14
13
|
developers,
|
|
15
|
-
youtubeDev,
|
|
16
|
-
nonolive,
|
|
17
14
|
twitch,
|
|
18
15
|
projects,
|
|
19
|
-
ideas
|
|
20
|
-
|
|
16
|
+
ideas,
|
|
17
|
+
youtubeDev
|
|
18
|
+
} from "../about.js";
|
|
21
19
|
|
|
22
|
-
/** @type {{ main_info(): void, lineup(): void, youtube_recomendation(): void,
|
|
20
|
+
/** @type {{ main_info(): void, lineup(): void, youtube_recomendation(): void, twitch_recomendation(): void, projects_recomendation(): void, tools_ideas(): void }} */
|
|
23
21
|
const aboutTool = {
|
|
24
22
|
main_info() {
|
|
25
23
|
console.clear();
|
|
@@ -34,11 +32,6 @@ const aboutTool = {
|
|
|
34
32
|
youtubeDevTable.addRows(youtubeDev);
|
|
35
33
|
youtubeDevTable.printTable();
|
|
36
34
|
},
|
|
37
|
-
nonolive_recomendation() {
|
|
38
|
-
console.clear();
|
|
39
|
-
nonoliveTable.addRows(nonolive);
|
|
40
|
-
nonoliveTable.printTable();
|
|
41
|
-
},
|
|
42
35
|
twitch_recomendation() {
|
|
43
36
|
console.clear();
|
|
44
37
|
const streamers = twitch.map((streamer, i) => ({ index: i + 1, streamer }));
|
|
@@ -57,4 +50,4 @@ const aboutTool = {
|
|
|
57
50
|
};
|
|
58
51
|
|
|
59
52
|
// export hash
|
|
60
|
-
|
|
53
|
+
export default aboutTool;
|
package/hash/hardwareTools.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// hardware modules
|
|
2
|
-
|
|
2
|
+
import {
|
|
3
3
|
cpuInfo,
|
|
4
4
|
ramMemInfo,
|
|
5
5
|
osDetail,
|
|
@@ -7,7 +7,7 @@ const {
|
|
|
7
7
|
controllerInfo,
|
|
8
8
|
displayInfo,
|
|
9
9
|
biosInfo
|
|
10
|
-
}
|
|
10
|
+
} from "../functions/hardware.js";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* @type {{ cpu(): void, ram_memory(): void, os(): void, disk(): void, controller(): void, display(): void, bios(): void }}
|
|
@@ -44,4 +44,4 @@ const hardwareTools = {
|
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
// exports
|
|
47
|
-
|
|
47
|
+
export default hardwareTools;
|