stack-analyze 1.3.8 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,334 +2,306 @@
2
2
 
3
3
  stack-analyze all version and notable changes, fixed, remove and new additions in code.
4
4
 
5
- ## generation 4 (ver. 1.3.0 - )
6
-
7
- ### version 1.3.7
8
-
9
- #### Added
10
- - quotes new tool
11
-
12
- #### Changed
13
- - some files using new types jsdocs via import
14
- - cpuinfo using separetd of cache
15
-
16
- ### version 1.3.6 (5th aniversary)
17
-
18
- #### Added
19
- - new wallpaers pack:
20
- - tsuky no emily.
21
- - ancient mistery.
22
-
23
- #### Changed
24
- - simplify in how play for poker rule tool.
25
-
26
- #### fixed
27
- - fixed download wallpapers.
28
- - cli.js fixed jsdoc.
29
-
30
-
31
- ### version 1.3.5
32
- #### Added
33
- - new tool poker game rule selector "poker rule".
34
-
35
- #### changed
36
- - change inquirer to @inquirer/prompts.
37
- - about.js file now using esm with json modules.
38
- - all tools now using new inquirer methods.
39
-
40
- #### fixed
41
- - add question for anime search tool.
42
-
43
- #### remove
44
- - remove validations folder.
45
-
46
- ### version 1.3.4
47
- #### changed
48
- - new ui cli for potter search tool & save file.
49
-
50
- ### version 1.3.3
51
- #### Added
52
- - add potter search (harry potter npx characters)
53
- #### changed
54
- - update linter
55
-
56
- ### version 1.3.2
57
- #### Added
58
- - title for stack menu tools
59
-
60
- ### version 1.3.1
61
- #### Added
62
- - seyyahi2 wallpapers (this pack is from album app)
63
- #### changed
64
- - add new view field is total track and id
65
-
66
- ### version 1.3.0
67
- #### Added
68
- - deezer search tool
5
+ ## generation 5 (ver. 1.4.0 -)
6
+ - version 1.4.0
7
+ - Added:
8
+ - new tool magic ball
9
+
10
+ ## generation 4 (ver. 1.3.0 - 1.3.9)
11
+
12
+ - version 1.3.9
13
+ - Added:
14
+ - added new tool (tcg pocket card info)
15
+ - @tcgdex/sdk *new module*
16
+ - version 1.3.8
17
+ - Changed:
18
+ - replace all arrays option instead using keys object for fast adaptible.
19
+ - change anime quotes to taylor swift quotes (neo-jquery easter egg)
20
+ - version 1.3.7
21
+ - Added:
22
+ - quotes new tool
23
+ - Changed:
24
+ - some files using new types jsdocs via import
25
+ - cpuinfo using separetd of cache
26
+ - version 1.3.6 (5th aniversary)
27
+ - Added:
28
+ - new wallpaers pack:
29
+ - tsuky no emily.
30
+ - ancient mistery.
31
+ - Changed:
32
+ - simplify in how play for poker rule tool.
33
+ - fixed:
34
+ - fixed download wallpapers.
35
+ - cli.js fixed jsdoc.
36
+ - version 1.3.5
37
+ - Added:
38
+ - new tool poker game rule selector "poker rule".
39
+ - changed:
40
+ - change inquirer to @inquirer/prompts.
41
+ - about.js file now using esm with json modules.
42
+ - all tools now using new inquirer methods.
43
+ - fixed:
44
+ - add question for anime search tool.
45
+ - remove:
46
+ - remove validations folder.
47
+ - version 1.3.4
48
+ - changed:
49
+ - new ui cli for potter search tool & save file.
50
+ - version 1.3.3
51
+ - Added:
52
+ - add potter search (harry potter npx characters)
53
+ - changed:
54
+ - update linter
55
+ - version 1.3.2
56
+ - Added:
57
+ - title for stack menu tools
58
+ - version 1.3.1
59
+ - Added:
60
+ - seyyahi2 wallpapers (this pack is from album app)
61
+ - changed:
62
+ - add new view field is total track and id
63
+ - version 1.3.0
64
+ - Added:
65
+ - deezer search tool
69
66
 
70
67
  ## generation 3 (ver. 1.2.0 - 1.2.9)
71
68
 
72
- ### version 1.2.9
73
- #### Added
74
- - css validate
75
- #### changed
76
- - changed wappalyzer module
77
-
78
- ### version 1.2.8
79
- #### Added
80
- - dimensions wallpaper download
81
- #### changed
82
- - renove download wallpaper function
83
- - about script using cjs
84
-
85
- ### version 1.2.7
86
- #### Added
87
- - wallpaper tool download (sol, moon)
88
- #### changed
89
- - default case in range color 91 to 100
90
-
91
- ### version 1.2.6
92
- #### Changed
93
- - redesign poke info tool
94
- - remove module info in readme
95
-
96
- ### version 1.2.5
97
- #### Added
98
- - pokemon info tool.
99
- #### Changed
100
- - update script test.
101
- - remove the cjs and mjs files.
102
- - renove changelog based in generations similar to neo-jquery.
103
- #### fixed
104
- - add examples in twitch info users.
105
- - fixed the bug create hardware info file.
106
-
107
- ### version 1.2.4
108
- #### Changed
109
- - remove jest module by node:test,
110
- - web scraping & github info using native fetch api & not axios,
111
- #### fixed
112
- - fixed errors in:
113
- - single stack.
114
- - multiple.
115
- - hardware information.
116
- - single & multiple stack using sub await mode
117
-
118
- ### version 1.2.3
119
- #### Added
120
- - bundlephobia info tool
121
- #### Changed
122
- - change write json to csv in hardware information
123
-
124
- ### version 1.2.2
125
- #### Added
126
- - add save file function for the tools
127
- #### Changed
128
- - change the hash table to unique function in hardware information
129
- #### Fixed
130
- - fixed to unique user to multiple users with split params
131
-
132
- ### version 1.2.1
133
- #### Fixed
134
- - rewrite form arrow functions to named function with export default.
135
- - rewrite some test functions.
136
- - add regexp form bitly info tool
137
- #### Changed
138
- - renove menu now using categories.
139
- - add api params.
140
- - comeback multibar from pagespeed tool
141
-
142
- ### version 1.2.0
143
- #### Added
144
- - new tool password generator
145
- #### Fixed
146
- - update anime search tool
147
- - the files modules now using callbacks and remove no using vars
148
- #### Changed
149
- - the web scraping tool decided to use the question returns to the main menu instead of going to the main menu
69
+ - version 1.2.9
70
+ - Added:
71
+ - css validate
72
+ - changed:
73
+ - changed wappalyzer module
74
+ - version 1.2.8
75
+ - Added:
76
+ - dimensions wallpaper download
77
+ - changed:
78
+ - renove download wallpaper function
79
+ - about script using cjs
80
+ - version 1.2.7
81
+ - Added:
82
+ - wallpaper tool download (sol, moon)
83
+ - changed:
84
+ - default case in range color 91 to 100
85
+ - version 1.2.6
86
+ - Changed:
87
+ - redesign poke info tool
88
+ - remove module info in readme
89
+ - version 1.2.5
90
+ - Added:
91
+ - pokemon info tool.
92
+ - Changed:
93
+ - update script test.
94
+ - remove the cjs and mjs files.
95
+ - renove changelog based in generations similar to neo-jquery.
96
+ - fixed:
97
+ - add examples in twitch info users.
98
+ - fixed the bug create hardware info file.
99
+ - version 1.2.4
100
+ - Changed:
101
+ - remove jest module by node:test,
102
+ - web scraping & github info using native fetch api & not axios,
103
+ - fixed:
104
+ - fixed errors in:
105
+ - single stack.
106
+ - multiple.
107
+ - hardware information.
108
+ - single & multiple stack using sub await mode
109
+ - version 1.2.3
110
+ - Added:
111
+ - bundlephobia info tool
112
+ - Changed:
113
+ - change write json to csv in hardware information
114
+ - version 1.2.2
115
+ - Added:
116
+ - add save file function for the tools
117
+ - Changed:
118
+ - change the hash table to unique function in hardware information
119
+ - Fixed:
120
+ - fixed to unique user to multiple users with split params
121
+ - version 1.2.1
122
+ - Fixed:
123
+ - rewrite form arrow functions to named function with export default.
124
+ - rewrite some test functions.
125
+ - add regexp form bitly info tool
126
+ - Changed:
127
+ - renove menu now using categories.
128
+ - add api params.
129
+ - comeback multibar from pagespeed tool
130
+ - version 1.2.0
131
+ - Added:
132
+ - new tool password generator
133
+ - Fixed:
134
+ - update anime search tool
135
+ - the files modules now using callbacks and remove no using vars
136
+ - Changed:
137
+ - the web scraping tool decided to use the question returns to the main menu instead of going to the main menu
150
138
 
151
139
  ## generation 2 (ver. 1.1.0 - 1.1.9)
152
140
 
153
- ### version 1.1.9
154
- #### Added
155
- - new module cheerio
156
- - new tool webscraping
157
- - new test
158
- #### Fixed
159
- - rewirte axios import
160
- #### Changed
161
- - hardware information change from functions to hash table
162
- - about now is hash table
163
- - now using the function printTable avoid overwritting.
164
- - remove jsdocs the modules files
165
- #### remove
166
- - remove models console-table-printer
167
- - remove hash tables
168
-
169
- ### version 1.1.8
170
- #### Fixed
171
- - restructure all tools as a hash table with promises except the tool hardware information and about section
172
- - update all modules
173
- #### Changed
174
- - remove the module coingecko-api
175
- - remove process.env variables to writting manual token for security
176
-
177
- ## version 1.1.7
178
- #### Added
179
- - twitch info tool
180
- - remove one js module for module to cjs and esm
181
- #### Fixed
182
- - change write token to process.env varaibles own (not avalible values in github and gitlab)
183
- - migrate cjs to esm
184
- - rewrite module
185
- #### Changed
186
- - except some hardware tools and github using models from console-table-printer
187
- - now using esm now about is js file not folder about with index.js
188
- - rewrite all tests functions
189
-
190
- ### version 1.1.6
191
- #### Added
192
- - module stack-analyze mode
193
- #### Fixed
194
- - rewrite code
195
- #### Changed
196
- - menu renove
197
- - renove jsdocs in some function or variables
198
- - remove nonolive recommends soon in versions desktop 7 and pwa 1.5.0
199
-
200
- ### version 1.1.5
201
- #### Added
202
- - add new tool: movie info
203
- - add new test
204
- - renove menu
205
- #### Fixed
206
- - rewrite in some functions and about
207
- - remove some dependencies not using project
208
- #### Changed
209
- - change multibar to 2 single bars
210
- - change switch in all tools for hash functions tables
211
- - renove nonolive recommends
212
-
213
- ### version 1.1.4
214
- #### Added
215
- - add new tool: bitly info
216
- - add new test
217
- #### Fixed
218
- - rewrite some functions
219
- - update npm modules via manual
220
-
221
- ### version 1.1.3
222
- #### Added
223
- - add new module: coingecko-api
224
- - add new tool: crypto market
225
- - add new recomends
226
- - add new test
227
- #### Fixed
228
- - rewrite some functions
229
- - update npm modules via manual
230
- #### Changed
231
- - add new const variables for map array functions
232
-
233
- ### version 1.1.2
234
- #### Added
235
- - add new nonolive streamers Recomend
236
- #### Fixed
237
- - rewrite multiple techstack
238
- - rewrite test files
239
- #### Changed
240
- - changed the for loop to foreach loop
241
-
242
- ### version 1.1.1
243
- #### Added
244
- - using console.table only in objects variables
245
- - using the console-table-printer in arrays in some functions and the about section
246
- - add the new module: console-table-printer
247
- - add the new nonolive streamers and youtube dev recommedation
248
- #### Fixed
249
- - rewrite some funcions
250
- - fragment about section
251
- #### Changed
252
- - using console.table only in objects variables
253
- - using the console-table-printer in arrays in some functions and the about section
254
-
255
- ### version 1.1.0
256
- #### Added
257
- - add the new modules:
258
- - systeminformation the main module
259
- - jsdoc + the template minami the dev modules
260
- - add the hardware information
261
- - add new recomendations for about section
262
- #### Fixed
263
- - rewrite the code the functions singlestack and multiple
264
- - add the name app to question function
265
- #### Changed
266
- - changed the node style color to using colors
141
+ - version 1.1.9
142
+ - Added:
143
+ - new module cheerio
144
+ - new tool webscraping
145
+ - new test
146
+ - Fixed:
147
+ - rewirte axios import
148
+ - Changed:
149
+ - hardware information change from functions to hash table
150
+ - about now is hash table
151
+ - now using the function printTable avoid overwritting.
152
+ - remove jsdocs the modules files
153
+ - remove:
154
+ - remove models console-table-printer
155
+ - remove hash tables
156
+ - version 1.1.8
157
+ - Fixed:
158
+ - restructure all tools as a hash table with promises except the tool hardware information and about section
159
+ - update all modules
160
+ - Changed:
161
+ - remove the module coingecko-api
162
+ - remove process.env variables to writting manual token for security
163
+ - version 1.1.7
164
+ - Added:
165
+ - twitch info tool
166
+ - remove one js module for module to cjs and esm
167
+ - Fixed:
168
+ - change write token to process.env varaibles own (not avalible values in github and gitlab)
169
+ - migrate cjs to esm
170
+ - rewrite module
171
+ - Changed:
172
+ - except some hardware tools and github using models from console-table-printer
173
+ - now using esm now about is js file not folder about with index.js
174
+ - rewrite all tests functions
175
+ - version 1.1.6
176
+ - Added:
177
+ - module stack-analyze mode
178
+ - Fixed:
179
+ - rewrite code
180
+ - Changed:
181
+ - menu renove
182
+ - renove jsdocs in some function or variables
183
+ - remove nonolive recommends soon in versions desktop 7 and pwa 1.5.0
184
+ - version 1.1.5
185
+ - Added:
186
+ - add new tool: movie info
187
+ - add new test
188
+ - renove menu
189
+ - Fixed:
190
+ - rewrite in some functions and about
191
+ - remove some dependencies not using project
192
+ - Changed:
193
+ - change multibar to 2 single bars
194
+ - change switch in all tools for hash functions tables
195
+ - renove nonolive recommends
196
+ - version 1.1.4
197
+ - Added:
198
+ - add new tool: bitly info
199
+ - add new test
200
+ - Fixed:
201
+ - rewrite some functions
202
+ - update npm modules via manual
203
+ - version 1.1.3
204
+ - Added:
205
+ - add new module: coingecko-api
206
+ - add new tool: crypto market
207
+ - add new recomends
208
+ - add new test
209
+ - Fixed:
210
+ - rewrite some functions
211
+ - update npm modules via manual
212
+ - Changed:
213
+ - add new const variables for map array functions
214
+ - version 1.1.2
215
+ - Added:
216
+ - add new nonolive streamers Recomend
217
+ - Fixed:
218
+ - rewrite multiple techstack
219
+ - rewrite test files
220
+ - Changed:
221
+ - changed the for loop to foreach loop
222
+ - version 1.1.1
223
+ - Added:
224
+ - using console.table only in objects variables
225
+ - using the console-table-printer in arrays in some functions and the about section
226
+ - add the new module: console-table-printer
227
+ - add the new nonolive streamers and youtube dev recommedation
228
+ - Fixed:
229
+ - rewrite some funcions
230
+ - fragment about section
231
+ - Changed:
232
+ - using console.table only in objects variables
233
+ - using the console-table-printer in arrays in some functions and the about section
234
+ - version 1.1.0
235
+ - Added:
236
+ - add the new modules:
237
+ - systeminformation the main module
238
+ - jsdoc + the template minami the dev modules
239
+ - add the hardware information
240
+ - add new recomendations for about section
241
+ - Fixed:
242
+ - rewrite the code the functions singlestack and multiple
243
+ - add the name app to question function
244
+ - Changed:
245
+ - changed the node style color to using colors
267
246
 
268
247
  ## generation 1 (ver. 1.0.1 - 1.0.9)
269
248
 
270
- ### version 1.0.9
271
- #### Added
272
- - add the new modules:
273
- - timeago.js for the github user
274
- - add the options github info and anime search the main options
275
- - add new recomendations for the about section
276
- #### Fixed
277
- - return the peformance now for pagespeed
278
- #### Changed
279
- - add new testing
280
-
281
- ### version 1.0.8
282
- #### Added
283
- - add the new modules:
284
- - colors
285
- - cli-progress
286
- #### Fixed
287
- change json print to table print version
288
- #### Changed
289
- - change console.dir about to console.table
290
- - change from text to bar for pagespeed results
291
- - add the badge tech stack project
292
- #### patch version 1.0.85
293
- notes:
294
- - fixed the cli run
295
- - remove performance.now for the defined time in pagespeed
296
- - add recomendations sections
297
-
298
- ### version 1.0.7
299
- #### Added
300
- - add the new modules:
301
- - figlet the main module
302
- - jest dev module and testing functions
303
- - add the options page speed and about the main options
304
- - add return in a option select except about and exit
305
- #### Fixed
306
- - the website in blank or website without http:// or https:// return the main options
307
- - eslint custom rules without style guide
308
- #### Changed
309
- - changed the inquirer list to inquirer rawlist
310
- - rewirte jsdoc in all project except test files
311
- - the tech stack using other console methods console.log only in exit cli
312
-
313
- ## version 1.0.6
314
- #### Added
315
- - add the new options: multiple (analyze many sites) and exit (exit cli).
316
- - the code was testing with eslint to avoid errors to execute
317
- - rewrite the module docs.
318
- #### Changed
319
- - the list options with inquirer
320
- - welcome message modified
321
-
322
- ### version 1.0.5
323
- #### Changed
324
- - modify the code and module structure
325
- #### remove
326
- - remove the commander module
327
-
328
- #### version 1.0.4
329
- - fisrt official version in npm with the modules:
330
- - wappalyzer
331
- - inquirer
332
- - commander
333
-
334
- #### version 1.0.1 to 1.0.3
335
- test version modules without wappalyzer module (only testing)
249
+ - version 1.0.9
250
+ - Added:
251
+ - add the new modules:
252
+ - timeago.js for the github user
253
+ - add the options github info and anime search the main options
254
+ - add new recomendations for the about section
255
+ : Fixed:
256
+ - return the peformance now for pagespeed
257
+ - Changed:
258
+ - add new testing
259
+ - version 1.0.8
260
+ - Added:
261
+ - add the new modules:
262
+ - colors
263
+ - cli-progress
264
+ - Fixed:
265
+ - change json print to table print version
266
+ - Changed:
267
+ - change console.dir about to console.table
268
+ - change from text to bar for pagespeed results
269
+ - add the badge tech stack project
270
+ - patch version 1.0.85:
271
+ - fixed the cli run
272
+ - remove performance.now for the defined time in pagespeed
273
+ - add recomendations sections
274
+ - version 1.0.7
275
+ - Added:
276
+ - add the new modules:
277
+ - figlet the main module
278
+ - jest dev module and testing functions
279
+ - add the options page speed and about the main options
280
+ - add return in a option select except about and exit
281
+ - Fixed:
282
+ - the website in blank or website without http:// or https:// return the main options
283
+ - eslint custom rules without style guide
284
+ - Changed:
285
+ - changed the inquirer list to inquirer rawlist
286
+ - rewirte jsdoc in all project except test files
287
+ - the tech stack using other console methods console.log only in exit cli
288
+ - version 1.0.6
289
+ - Added:
290
+ - add the new options: multiple (analyze many sites) and exit (exit cli).
291
+ - the code was testing with eslint to avoid errors to execute
292
+ - rewrite the module docs.
293
+ - Changed:
294
+ - the list options with inquirer
295
+ - welcome message modified
296
+ - version 1.0.5
297
+ - Changed:
298
+ - modify the code and module structure
299
+ - remove:
300
+ - remove the commander module
301
+ - version 1.0.4
302
+ - fisrt official version in npm with the modules:
303
+ - wappalyzer
304
+ - inquirer
305
+ - commander
306
+ - version 1.0.1 to 1.0.3:
307
+ - test version modules without wappalyzer module (only testing)
package/about.js CHANGED
@@ -1,16 +1,11 @@
1
1
  // print table
2
2
  import { printTable } from "console-table-printer";
3
- import { returnMainOpts } from "./utils.js";
3
+ import { returnMainOpts, listFormat } from "./utils.js";
4
4
 
5
5
  // package.json
6
6
  const { default: { license, version } } = await import("./package.json", { with: { type: "json" } });
7
7
 
8
8
  /**
9
- * @typedef {Object} Info
10
- * @property {string} Info.mainDeveloper
11
- * @property {string} Info.version
12
- * @property {string} Info.license
13
- *
14
9
  * @typedef {Object} DeveloperList
15
10
  * @property {string} DeveloperList.name
16
11
  * @property {string} DeveloperList.roles
@@ -27,27 +22,18 @@ const { default: { license, version } } = await import("./package.json", { with:
27
22
  * @property {string} Project.name
28
23
  * @property {string} Project.desc
29
24
  *
30
- * select types
31
- * @typedef {({
32
- * [x: string]: (
33
- * refreshCallback: () => Promise<void>,
34
- * alternativeCallback?: () => Promise<void>
35
- * ) => Promise<void> | void
36
- * })} Select
37
25
  */
38
26
 
39
27
 
40
28
  /** @type {number} */
41
29
  const timeout = 1e3;
42
30
 
43
- /** @type {Select}*/
44
31
  const aboutTool = {
45
32
  mainInfo(refreshCallback) {
46
- /** @type {Info} */
33
+ /** @type {Object<string, string>} */
47
34
  const aboutApp = {
48
35
  mainDeveloper: "omega5300",
49
- license,
50
- version
36
+ license, version
51
37
  };
52
38
 
53
39
  console.clear();
@@ -55,9 +41,7 @@ const aboutTool = {
55
41
 
56
42
  setTimeout(refreshCallback, timeout);
57
43
  },
58
- async lineup(refreshCallback) {
59
- const { listFormat } = await import("./utils.js");
60
-
44
+ lineup(refreshCallback) {
61
45
  /** @type {DeveloperList[]} */
62
46
  const developers = [
63
47
  {
@@ -89,16 +73,8 @@ const aboutTool = {
89
73
  /** @type {Twitch[]} */
90
74
  const twitchUsers = [
91
75
  {
92
- user: "DannyAgii",
93
- },
94
- {
95
- user: "Lunanny",
96
- details: "art director with ADHD."
76
+ user: "DannyQuiin",
97
77
  },
98
- {
99
- user: "Japon_HR",
100
- details: "cosplayer, gamer, dance & halo machinima creator"
101
- }
102
78
  ];
103
79
 
104
80
  console.clear();
@@ -116,10 +92,6 @@ const aboutTool = {
116
92
  name: "black metal catalog",
117
93
  desc: "promos albums and community"
118
94
  },
119
- {
120
- name: "slithering black records",
121
- desc: "record label & community"
122
- }
123
95
  ];
124
96
 
125
97
  console.clear();
@@ -1,20 +1,12 @@
1
1
  // modules
2
2
  import { createWriteStream } from "node:fs";
3
- import {
4
- cpu,
5
- mem,
6
- osInfo,
7
- diskLayout,
8
- graphics,
9
- bios
10
- } from "systeminformation";
3
+ import { cpu, mem, osInfo, diskLayout, graphics, bios } from "systeminformation";
11
4
  import colors from "colors";
12
5
 
13
6
  const csvHeader = (obj) => `${Object.keys(obj).join(";")}\n`;
14
7
  const csvData = (obj, spaces) => `${Object.values(obj).join(";")}${spaces}`;
15
8
 
16
9
  /**
17
- *
18
10
  * @param {number} size
19
11
  * @param {number} [base = 1073741824]
20
12
  * @returns {string}
@@ -22,7 +14,6 @@ const csvData = (obj, spaces) => `${Object.values(obj).join(";")}${spaces}`;
22
14
  const gigabyteConvert = (size, base = 1073741824) => (size / base).toFixed(2);
23
15
 
24
16
  /**
25
- *
26
17
  * @async
27
18
  * @returns {Promise<void>}
28
19
  */
@@ -0,0 +1,27 @@
1
+ import axios from "axios";
2
+ import colors from "colors";
3
+
4
+ /**
5
+ * @async
6
+ * @param { 'en' | 'es' } locale
7
+ * @param { string } question
8
+ * @returns {Promise<void>}
9
+ */
10
+ export default async function magicBall(locale, question) {
11
+ const localeKeyword = {
12
+ en: "magic ball say:",
13
+ es: "la bola magic te dice:"
14
+ };
15
+
16
+ try {
17
+ const {data} = await axios.get("https://eightballapi.com/api/biased", {
18
+ params: { question, locale }
19
+ });
20
+
21
+ console.info(
22
+ localeKeyword[locale], data.reading
23
+ );
24
+ } catch (err) {
25
+ console.info(colors.red(err.message));
26
+ }
27
+ }
@@ -0,0 +1,69 @@
1
+ import TCGdex from "@tcgdex/sdk";
2
+ import boxen from "boxen";
3
+ import colors from "colors";
4
+ import { stackSave } from "../utils.js";
5
+
6
+ /**
7
+ * @param {string} info
8
+ * @returns {string}
9
+ */
10
+ const boxInfo = (info) => boxen(info, {
11
+ title: "🎴 CARD INFORMATION",
12
+ titleAlignment: "center",
13
+ padding: 1
14
+ });
15
+
16
+ /**
17
+ * @async
18
+ * @param {string} set
19
+ * @param {number} id
20
+ * @returns {Promise<void>}
21
+ */
22
+ export default async function getTcgpCard(set, id) {
23
+ const tcgdex = new TCGdex("en");
24
+
25
+ try {
26
+ const card = await tcgdex.fetchCard(id, set);
27
+
28
+ const cardInfo = `
29
+ Name: ${card.name}
30
+ ID: ${card.id}
31
+ Type: ${card.category}
32
+
33
+ ${card.hp && `HP: ${card.hp}` || ""}
34
+ ${card.types?.length && `Types: ${card.types.join(", ")}` || ""}
35
+ Rarity: ${card.rarity}
36
+ ${card.stage && `Stage: ${card.stage}` || ""}
37
+ ${card.evolveFrom && `Evolves from: ${card.evolveFrom}\n` || ""}
38
+
39
+ ${card.abilities?.length && `⚡ Abilities:
40
+ ${card.abilities.map((ability, i) => `
41
+ ${i + 1}. ${ability.name || "Unnamed Ability"}
42
+ ${ability.effect && " Effect: "+ability.effect}
43
+ `.trim()).join("")}
44
+ \n`.trim()
45
+ || ""}
46
+
47
+ ${card.attacks?.length && `⚔️ Moveset/Attacks:
48
+ ${card.attacks.map((attack, i) => `
49
+ ${i + 1}. ${attack.name}
50
+ Energy Cost: ${attack.cost?.length ? attack.cost.join(", ") : "free" }
51
+ Damage: ${attack.damage ? attack.damage : "special"}
52
+ Effect: ${attack.effect ? attack.effect: "no effect"}
53
+ \n`).join("")}
54
+ ` || ""}
55
+
56
+ ${card.effect && `✨ Card Effect: ${card.effect} ` || ""}
57
+
58
+ ${card.weaknesses?.length && `🔻 Weaknesses:
59
+ ${card.weaknesses.map(({type, value}) => `${type}: ${value}`).join("")}\n` || ""}
60
+
61
+ ${card.retreat !== undefined && `🏃 Retreat Cost: ${card.retreat}\n` || ""} \n`
62
+ .replace(/(^[ \t]*\n)/gm, "");
63
+
64
+ console.info(boxInfo(cardInfo));
65
+ stackSave(`${card.name}.txt`, cardInfo);
66
+ } catch (err) {
67
+ console.error(colors.red(err.message));
68
+ }
69
+ }
package/hash/infoTools.js CHANGED
@@ -1,12 +1,13 @@
1
1
  // inquirer
2
- import { input, password } from "@inquirer/prompts";
2
+ import { input, password, number, select } from "@inquirer/prompts";
3
3
 
4
4
  // functions
5
5
  import bitlyInfo from "../functions/bitly.js";
6
6
  import cryptoMarket from "../functions/cryptoList.js";
7
7
  import githubInfo from "../functions/gitUser.js";
8
8
  import bundlephobia from "../functions/bundlephobia.js";
9
- import { returnMainOpts } from "../utils.js";
9
+ import { returnMainOpts, TCGP_EXPANSIONS } from "../utils.js";
10
+ import getTcgpCard from "../functions/tcgp.js";
10
11
 
11
12
  // bitly regexp
12
13
  const bitlyRegexp = /bit\.ly\//g;
@@ -15,8 +16,7 @@ const bitlyRegexp = /bit\.ly\//g;
15
16
  * select types
16
17
  * @typedef {({
17
18
  * [x: string]: (
18
- * refreshCallback: () => Promise<void>,
19
- * alternativeCallback?: () => Promise<void>
19
+ * refreshCallback: () => Promise<void>,
20
20
  * ) => Promise<void> | void
21
21
  * })} Select
22
22
  * /
@@ -67,6 +67,24 @@ const infoTools = {
67
67
  bundlephobia(pkgName);
68
68
  setTimeout(refreshCallback, 5e3);
69
69
  },
70
+ async tcgpCard(refreshCallback) {
71
+ console.clear();
72
+
73
+ const setName = await select({
74
+ message: "Select a expansion set TCGP:",
75
+ choices: Object.keys(TCGP_EXPANSIONS),
76
+ loop: true,
77
+ });
78
+
79
+ const cardID = await number({
80
+ message: `Enter a card id between 1 to ${TCGP_EXPANSIONS[setName]}:`,
81
+ min: 1, max: TCGP_EXPANSIONS[setName]
82
+ });
83
+
84
+ getTcgpCard(setName, cardID);
85
+
86
+ setTimeout(refreshCallback, 5e3);
87
+ }
70
88
  };
71
89
 
72
90
  const menuInfoOpts = [...Object.keys(infoTools), returnMainOpts];
@@ -6,6 +6,8 @@ import { pokerGameOpts, returnMainOpts } from "../utils.js";
6
6
  import genPassword from "../functions/password.js";
7
7
  import hardware from "../functions/hardware.js";
8
8
  import pokerGame from "../functions/poker.js";
9
+ import magicBall from "../functions/magicBall.js";
10
+ import { input } from "@inquirer/prompts";
9
11
 
10
12
  /**
11
13
  * select types
@@ -37,6 +39,19 @@ const utilityTools = {
37
39
 
38
40
  pokerGame(pokeOpt);
39
41
  setTimeout(refreshCallback, 5e3);
42
+ },
43
+ async magic_ball(refreshCallback) {
44
+ const localeOpt = await stackMenu({
45
+ message: "select a magic ball locale:",
46
+ choices: ["en", "es"]
47
+ });
48
+
49
+ const magicBallQuestion = await input({
50
+ message: "enter a question to the selected language:"
51
+ });
52
+
53
+ magicBall(localeOpt, magicBallQuestion);
54
+ setTimeout(refreshCallback, 5e3);
40
55
  }
41
56
  };
42
57
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stack-analyze",
3
- "version": "1.3.8",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "description": "cli tech stack analyze and pagespeed with node.js using the wappalyzer module. with google pagespeed api, hardware and crypto market",
6
6
  "main": "cli.js",
@@ -8,26 +8,27 @@
8
8
  "stack-analyze": "cli.js"
9
9
  },
10
10
  "dependencies": {
11
- "@inquirer/prompts": "^7.6.0",
12
- "axios": "^1.10.0",
11
+ "@inquirer/prompts": "^7.9.0",
12
+ "@tcgdex/sdk": "^2.7.1",
13
+ "axios": "^1.13.1",
13
14
  "boxen": "^8.0.1",
14
- "cheerio": "^1.1.0",
15
+ "cheerio": "^1.1.2",
15
16
  "cli-progress": "^3.12.0",
16
17
  "colors": "^1.4.0",
17
- "console-table-printer": "^2.14.6",
18
- "figlet": "^1.8.1",
19
- "inquirer": "^12.7.0",
20
- "ora": "^8.2.0",
21
- "systeminformation": "^5.27.7",
18
+ "console-table-printer": "^2.15.0",
19
+ "figlet": "^1.9.3",
20
+ "inquirer": "^12.10.0",
21
+ "ora": "^9.0.0",
22
+ "systeminformation": "^5.27.11",
22
23
  "timeago.js": "^4.0.2",
23
24
  "w3c-css-validator": "^1.4.0",
24
25
  "wapalyzer": "^6.10.65"
25
26
  },
26
27
  "devDependencies": {
27
- "@eslint/js": "^9.30.1",
28
- "eslint": "^9.30.1",
29
- "globals": "^16.3.0",
30
- "jsdoc": "^4.0.4"
28
+ "@eslint/js": "^9.39.1",
29
+ "eslint": "^9.39.1",
30
+ "globals": "^16.5.0",
31
+ "jsdoc": "^4.0.5"
31
32
  },
32
33
  "scripts": {
33
34
  "start": "node cli.js",
@@ -64,4 +65,4 @@
64
65
  "doc": "docs",
65
66
  "test": "test"
66
67
  }
67
- }
68
+ }
package/utils.js CHANGED
@@ -23,6 +23,25 @@ const pokerGameOpts = [
23
23
  "basics-of-poker", "texas-holdem-poker"
24
24
  ];
25
25
 
26
+ /**
27
+ * @readonly
28
+ * @type {Object<string,number>}
29
+ */
30
+ const TCGP_EXPANSIONS = {
31
+ "p-a": 100,
32
+ a1: 286,
33
+ a1a: 86,
34
+ a2: 207,
35
+ a2a: 96,
36
+ a2b: 111,
37
+ a3: 239,
38
+ a3a: 103,
39
+ a3b: 107,
40
+ a4: 241,
41
+ a4a: 105,
42
+ b1: 331,
43
+ };
44
+
26
45
  /**
27
46
  * @param {string} filename
28
47
  * @param {any} data
@@ -33,13 +52,14 @@ const stackSave = async (filename, data) => {
33
52
  console.error("stackSave no using falsy values");
34
53
  return;
35
54
  }
36
-
37
- if(typeof data === "boolean") {
55
+
56
+ if (typeof data === "boolean") {
38
57
  console.info("stackSave no using boolean types");
39
58
  return;
40
59
  }
41
60
 
42
- try { await writeFile(filename, data);
61
+ try {
62
+ await writeFile(filename, data);
43
63
  } catch (err) {
44
64
  console.info(colors.red(err.message));
45
65
  }
@@ -52,14 +72,14 @@ const exitMsg = "thanks for use stack-analyze".green;
52
72
  * @returns {void}
53
73
  */
54
74
  const forceExit = (err) => {
55
- if(err.name === "ExitPromptError") {
75
+ if (err.name === "ExitPromptError") {
56
76
  console.info("👋 until next time!".green);
57
77
  process.exit(1);
58
78
  }
59
79
  };
60
80
 
61
81
  export {
62
- listFormat, currency, scrapingOpts, forceExit,
63
- stackSave, pokerGameOpts, exitMsg, returnMainOpts
82
+ listFormat, currency, scrapingOpts, forceExit,
83
+ stackSave, pokerGameOpts, exitMsg, returnMainOpts, TCGP_EXPANSIONS
64
84
  };
65
85