pinokiod 3.51.0 → 3.53.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/kernel/gitconfig_template +3 -1
- package/kernel/index.js +65 -43
- package/kernel/peer.js +21 -8
- package/kernel/router/index.js +10 -10
- package/kernel/router/localhost_static_router.js +3 -0
- package/kernel/router/peer_static_router.js +1 -0
- package/kernel/scripts/git/create +1 -2
- package/kernel/scripts/git/push +1 -1
- package/package.json +6 -2
- package/server/index.js +178 -87
- package/server/public/common.js +0 -13
- package/server/public/serve/directory.html +106 -0
- package/server/public/serve/icons/application_xp.png +0 -0
- package/server/public/serve/icons/application_xp_terminal.png +0 -0
- package/server/public/serve/icons/box.png +0 -0
- package/server/public/serve/icons/cd.png +0 -0
- package/server/public/serve/icons/controller.png +0 -0
- package/server/public/serve/icons/drive.png +0 -0
- package/server/public/serve/icons/film.png +0 -0
- package/server/public/serve/icons/folder.png +0 -0
- package/server/public/serve/icons/font.png +0 -0
- package/server/public/serve/icons/image.png +0 -0
- package/server/public/serve/icons/map.png +0 -0
- package/server/public/serve/icons/page.png +0 -0
- package/server/public/serve/icons/page_add.png +0 -0
- package/server/public/serve/icons/page_attach.png +0 -0
- package/server/public/serve/icons/page_code.png +0 -0
- package/server/public/serve/icons/page_copy.png +0 -0
- package/server/public/serve/icons/page_delete.png +0 -0
- package/server/public/serve/icons/page_edit.png +0 -0
- package/server/public/serve/icons/page_error.png +0 -0
- package/server/public/serve/icons/page_excel.png +0 -0
- package/server/public/serve/icons/page_find.png +0 -0
- package/server/public/serve/icons/page_gear.png +0 -0
- package/server/public/serve/icons/page_go.png +0 -0
- package/server/public/serve/icons/page_green.png +0 -0
- package/server/public/serve/icons/page_key.png +0 -0
- package/server/public/serve/icons/page_lightning.png +0 -0
- package/server/public/serve/icons/page_link.png +0 -0
- package/server/public/serve/icons/page_paintbrush.png +0 -0
- package/server/public/serve/icons/page_paste.png +0 -0
- package/server/public/serve/icons/page_red.png +0 -0
- package/server/public/serve/icons/page_refresh.png +0 -0
- package/server/public/serve/icons/page_save.png +0 -0
- package/server/public/serve/icons/page_white.png +0 -0
- package/server/public/serve/icons/page_white_acrobat.png +0 -0
- package/server/public/serve/icons/page_white_actionscript.png +0 -0
- package/server/public/serve/icons/page_white_add.png +0 -0
- package/server/public/serve/icons/page_white_c.png +0 -0
- package/server/public/serve/icons/page_white_camera.png +0 -0
- package/server/public/serve/icons/page_white_cd.png +0 -0
- package/server/public/serve/icons/page_white_code.png +0 -0
- package/server/public/serve/icons/page_white_code_red.png +0 -0
- package/server/public/serve/icons/page_white_coldfusion.png +0 -0
- package/server/public/serve/icons/page_white_compressed.png +0 -0
- package/server/public/serve/icons/page_white_copy.png +0 -0
- package/server/public/serve/icons/page_white_cplusplus.png +0 -0
- package/server/public/serve/icons/page_white_csharp.png +0 -0
- package/server/public/serve/icons/page_white_cup.png +0 -0
- package/server/public/serve/icons/page_white_database.png +0 -0
- package/server/public/serve/icons/page_white_delete.png +0 -0
- package/server/public/serve/icons/page_white_dvd.png +0 -0
- package/server/public/serve/icons/page_white_edit.png +0 -0
- package/server/public/serve/icons/page_white_error.png +0 -0
- package/server/public/serve/icons/page_white_excel.png +0 -0
- package/server/public/serve/icons/page_white_find.png +0 -0
- package/server/public/serve/icons/page_white_flash.png +0 -0
- package/server/public/serve/icons/page_white_freehand.png +0 -0
- package/server/public/serve/icons/page_white_gear.png +0 -0
- package/server/public/serve/icons/page_white_get.png +0 -0
- package/server/public/serve/icons/page_white_go.png +0 -0
- package/server/public/serve/icons/page_white_h.png +0 -0
- package/server/public/serve/icons/page_white_horizontal.png +0 -0
- package/server/public/serve/icons/page_white_key.png +0 -0
- package/server/public/serve/icons/page_white_lightning.png +0 -0
- package/server/public/serve/icons/page_white_link.png +0 -0
- package/server/public/serve/icons/page_white_magnify.png +0 -0
- package/server/public/serve/icons/page_white_medal.png +0 -0
- package/server/public/serve/icons/page_white_office.png +0 -0
- package/server/public/serve/icons/page_white_paint.png +0 -0
- package/server/public/serve/icons/page_white_paintbrush.png +0 -0
- package/server/public/serve/icons/page_white_paste.png +0 -0
- package/server/public/serve/icons/page_white_php.png +0 -0
- package/server/public/serve/icons/page_white_picture.png +0 -0
- package/server/public/serve/icons/page_white_powerpoint.png +0 -0
- package/server/public/serve/icons/page_white_put.png +0 -0
- package/server/public/serve/icons/page_white_ruby.png +0 -0
- package/server/public/serve/icons/page_white_stack.png +0 -0
- package/server/public/serve/icons/page_white_star.png +0 -0
- package/server/public/serve/icons/page_white_swoosh.png +0 -0
- package/server/public/serve/icons/page_white_text.png +0 -0
- package/server/public/serve/icons/page_white_text_width.png +0 -0
- package/server/public/serve/icons/page_white_tux.png +0 -0
- package/server/public/serve/icons/page_white_vector.png +0 -0
- package/server/public/serve/icons/page_white_visualstudio.png +0 -0
- package/server/public/serve/icons/page_white_width.png +0 -0
- package/server/public/serve/icons/page_white_word.png +0 -0
- package/server/public/serve/icons/page_white_world.png +0 -0
- package/server/public/serve/icons/page_white_wrench.png +0 -0
- package/server/public/serve/icons/page_white_zip.png +0 -0
- package/server/public/serve/icons/page_word.png +0 -0
- package/server/public/serve/icons/page_world.png +0 -0
- package/server/public/serve/style.css +308 -0
- package/server/public/style.css +13 -5
- package/server/public/urldropdown.css +95 -3
- package/server/public/urldropdown.js +245 -23
- package/server/serveIndex.js +691 -0
- package/server/views/app.ejs +305 -89
- package/server/views/connect.ejs +3 -0
- package/server/views/container.ejs +2 -1
- package/server/views/index.ejs +3 -0
- package/server/views/init/index.ejs +3 -0
- package/server/views/net.ejs +30 -27
- package/server/views/network.ejs +23 -70
- package/server/views/screenshots.ejs +3 -0
- package/server/views/settings.ejs +3 -0
- package/server/views/tools.ejs +3 -0
package/kernel/index.js
CHANGED
|
@@ -366,6 +366,10 @@ class Kernel {
|
|
|
366
366
|
await this.peer.check(this)
|
|
367
367
|
return this.peer.active
|
|
368
368
|
}
|
|
369
|
+
async peer_active() {
|
|
370
|
+
await this.peer.check(this)
|
|
371
|
+
return this.peer.peer_active
|
|
372
|
+
}
|
|
369
373
|
async network_installed() {
|
|
370
374
|
let installed = await this.bin.check_installed({ name: "caddy" })
|
|
371
375
|
return installed
|
|
@@ -386,61 +390,79 @@ class Kernel {
|
|
|
386
390
|
}
|
|
387
391
|
async refresh(notify_peers) {
|
|
388
392
|
const ts = Date.now()
|
|
389
|
-
let network_active = await this.network_active()
|
|
390
|
-
if (!network_active) {
|
|
391
|
-
return
|
|
392
|
-
}
|
|
393
|
-
let network_running = await this.network_running()
|
|
394
|
-
if (network_running) {
|
|
395
|
-
let ts = Date.now()
|
|
396
|
-
if (this.processes.refreshing) {
|
|
397
|
-
// process list refreshing. try again later
|
|
398
|
-
return
|
|
399
|
-
}
|
|
400
393
|
|
|
394
|
+
await this.peer.check(this)
|
|
395
|
+
|
|
396
|
+
if (this.peer.peer_active) {
|
|
401
397
|
// 1. get the process list
|
|
402
398
|
await this.processes.refresh()
|
|
403
399
|
|
|
404
400
|
// 2. refresh peer info to reflect the proc info
|
|
405
401
|
//await this.peer.refresh()
|
|
406
402
|
await this.peer.refresh_host(this.peer.host)
|
|
403
|
+
|
|
404
|
+
}
|
|
407
405
|
|
|
408
|
-
// 3. load custom routers from ~/pinokio/network
|
|
409
|
-
await this.router.init()
|
|
410
406
|
|
|
411
|
-
|
|
412
|
-
|
|
407
|
+
// let network_active = await this.network_active()
|
|
408
|
+
// if (!network_active) {
|
|
409
|
+
// return
|
|
410
|
+
// }
|
|
413
411
|
|
|
414
|
-
|
|
415
|
-
await this.
|
|
412
|
+
if (this.peer.https_active) {
|
|
413
|
+
let network_running = await this.network_running()
|
|
414
|
+
if (network_running) {
|
|
415
|
+
let ts = Date.now()
|
|
416
|
+
if (this.processes.refreshing) {
|
|
417
|
+
// process list refreshing. try again later
|
|
418
|
+
return
|
|
419
|
+
}
|
|
416
420
|
|
|
417
|
-
|
|
421
|
+
// // 1. get the process list
|
|
422
|
+
// await this.processes.refresh()
|
|
423
|
+
//
|
|
424
|
+
// // 2. refresh peer info to reflect the proc info
|
|
425
|
+
// //await this.peer.refresh()
|
|
426
|
+
// console.log("peer refresh_host")
|
|
427
|
+
// await this.peer.refresh_host(this.peer.host)
|
|
418
428
|
|
|
419
|
-
|
|
429
|
+
// 3. load custom routers from ~/pinokio/network
|
|
430
|
+
await this.router.init()
|
|
420
431
|
|
|
432
|
+
// 4. set current local host router info
|
|
433
|
+
await this.router.local()
|
|
421
434
|
|
|
422
|
-
|
|
435
|
+
// 7. update remote router
|
|
436
|
+
await this.router.remote()
|
|
423
437
|
|
|
424
|
-
|
|
425
|
-
|
|
438
|
+
await this.router.static()
|
|
439
|
+
|
|
440
|
+
await this.router.custom_domain()
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
this.router.fallback()
|
|
444
|
+
|
|
445
|
+
// 8. update caddy config
|
|
446
|
+
await this.router.update()
|
|
426
447
|
|
|
427
|
-
// 6. tell peers to refresh
|
|
428
|
-
let changed
|
|
429
|
-
let new_config = JSON.stringify(await this.peer.current_host())
|
|
430
|
-
if (this.old_config !== new_config) {
|
|
431
|
-
console.log("Proc config has changed. update router.")
|
|
432
|
-
changed = true
|
|
433
|
-
} else {
|
|
434
|
-
// console.log("Proc config is the same")
|
|
435
|
-
changed = false
|
|
436
|
-
}
|
|
437
|
-
this.old_config = new_config
|
|
438
|
-
if (changed) {
|
|
439
|
-
await this.peer.notify_refresh()
|
|
440
448
|
}
|
|
441
|
-
// 9. announce self to the peer network
|
|
442
|
-
this.peer.announce()
|
|
443
449
|
}
|
|
450
|
+
// 6. tell peers to refresh
|
|
451
|
+
let changed
|
|
452
|
+
let new_config = JSON.stringify(await this.peer.current_host())
|
|
453
|
+
if (this.old_config !== new_config) {
|
|
454
|
+
console.log("Proc config has changed. update router.")
|
|
455
|
+
changed = true
|
|
456
|
+
} else {
|
|
457
|
+
// console.log("Proc config is the same")
|
|
458
|
+
changed = false
|
|
459
|
+
}
|
|
460
|
+
this.old_config = new_config
|
|
461
|
+
if (changed) {
|
|
462
|
+
await this.peer.notify_refresh()
|
|
463
|
+
}
|
|
464
|
+
// 9. announce self to the peer network
|
|
465
|
+
this.peer.announce()
|
|
444
466
|
}
|
|
445
467
|
async clearLog(group) {
|
|
446
468
|
let relativePath = path.relative(this.homedir, group)
|
|
@@ -879,11 +901,11 @@ class Kernel {
|
|
|
879
901
|
// let contents = await fs.promises.readdir(this.homedir)
|
|
880
902
|
//await this.bin.init()
|
|
881
903
|
let ts = Date.now()
|
|
882
|
-
this.git.index(this).then(() => {
|
|
883
|
-
//console.log(this.git.mapping)
|
|
884
|
-
})
|
|
885
904
|
this.bin.init().then(() => {
|
|
886
905
|
if (this.homedir) {
|
|
906
|
+
this.git.index(this).then(() => {
|
|
907
|
+
//console.log(this.git.mapping)
|
|
908
|
+
})
|
|
887
909
|
this.shell.init().then(async () => {
|
|
888
910
|
this.bin.check({
|
|
889
911
|
bin: this.bin.preset("ai"),
|
|
@@ -990,8 +1012,8 @@ class Kernel {
|
|
|
990
1012
|
if (this.refresh_interval) {
|
|
991
1013
|
clearInterval(this.refresh_interval)
|
|
992
1014
|
}
|
|
993
|
-
let network_active = await this.network_active()
|
|
994
|
-
if (network_active) {
|
|
1015
|
+
//let network_active = await this.network_active()
|
|
1016
|
+
//if (network_active) {
|
|
995
1017
|
this.refresh_interval = setInterval(() => {
|
|
996
1018
|
if (this.server_running) {
|
|
997
1019
|
this.refresh(true)
|
|
@@ -999,7 +1021,7 @@ class Kernel {
|
|
|
999
1021
|
console.log("server not running yet. retry network refresh in 5 secs")
|
|
1000
1022
|
}
|
|
1001
1023
|
}, 5000)
|
|
1002
|
-
}
|
|
1024
|
+
//}
|
|
1003
1025
|
|
|
1004
1026
|
}
|
|
1005
1027
|
|
package/kernel/peer.js
CHANGED
|
@@ -40,8 +40,8 @@ class PeerDiscovery {
|
|
|
40
40
|
}
|
|
41
41
|
async check(kernel) {
|
|
42
42
|
let env = await Environment.get(kernel.homedir, kernel)
|
|
43
|
-
|
|
44
|
-
let peer_active = false
|
|
43
|
+
let peer_active = true
|
|
44
|
+
//let peer_active = false
|
|
45
45
|
if (env && env.PINOKIO_NETWORK_ACTIVE && (env.PINOKIO_NETWORK_ACTIVE==="1" || env.PINOKIO_NETWORK_ACTIVE.toLowerCase()==="true")) {
|
|
46
46
|
//if (env && env.PINOKIO_NETWORK_ACTIVE && (env.PINOKIO_NETWORK_ACTIVE==="0" || env.PINOKIO_NETWORK_ACTIVE.toLowerCase()==="false")) {
|
|
47
47
|
peer_active = true
|
|
@@ -54,10 +54,14 @@ class PeerDiscovery {
|
|
|
54
54
|
//https_active = false
|
|
55
55
|
}
|
|
56
56
|
// console.log("kernel.refresh", { active, notify_peers })
|
|
57
|
-
|
|
57
|
+
|
|
58
|
+
//this.name = os.userInfo().username
|
|
59
|
+
this.name = "p" + this.host.split(".").pop()
|
|
58
60
|
if (env && env.PINOKIO_NETWORK_NAME && env.PINOKIO_NETWORK_NAME.length > 0) {
|
|
59
61
|
this.name = env.PINOKIO_NETWORK_NAME
|
|
60
62
|
}
|
|
63
|
+
this.peer_active = peer_active
|
|
64
|
+
this.https_active = https_active
|
|
61
65
|
if (peer_active && https_active) {
|
|
62
66
|
this.active = true
|
|
63
67
|
} else {
|
|
@@ -77,7 +81,8 @@ class PeerDiscovery {
|
|
|
77
81
|
// this.active = true
|
|
78
82
|
// }
|
|
79
83
|
|
|
80
|
-
if (this.active) {
|
|
84
|
+
//if (this.active) {
|
|
85
|
+
if (this.peer_active) {
|
|
81
86
|
// Listen for incoming pings
|
|
82
87
|
this.socket = dgram.createSocket('udp4');
|
|
83
88
|
this.socket.on('message', (msg, rinfo) => {
|
|
@@ -319,8 +324,8 @@ class PeerDiscovery {
|
|
|
319
324
|
*/
|
|
320
325
|
let http_icon = null
|
|
321
326
|
let https_icon = null
|
|
322
|
-
let
|
|
323
|
-
let
|
|
327
|
+
let https_href = `https://pinokio.${this.name}.localhost/p/${folder}`
|
|
328
|
+
let http_href = `http://${this.host}:42000/p/${folder}`
|
|
324
329
|
let app_href = null
|
|
325
330
|
if (meta && !meta.init_required) {
|
|
326
331
|
if (meta.title) {
|
|
@@ -330,8 +335,6 @@ class PeerDiscovery {
|
|
|
330
335
|
https_icon = `https://pinokio.${this.name}.localhost/asset/api/${folder}/${meta.iconpath}`
|
|
331
336
|
}
|
|
332
337
|
//https_href = `https://${folder}.${this.name}.localhost`
|
|
333
|
-
https_href = `https://pinokio.${this.name}.localhost/p/${folder}`
|
|
334
|
-
http_href = `http://${this.host}:42000/p/${folder}`
|
|
335
338
|
app_href = `https://${folder}.${this.name}.localhost`
|
|
336
339
|
installed.push({
|
|
337
340
|
folder,
|
|
@@ -342,8 +345,18 @@ class PeerDiscovery {
|
|
|
342
345
|
http_href,
|
|
343
346
|
...meta
|
|
344
347
|
})
|
|
348
|
+
continue
|
|
345
349
|
}
|
|
346
350
|
}
|
|
351
|
+
|
|
352
|
+
installed.push({
|
|
353
|
+
folder,
|
|
354
|
+
https_href,
|
|
355
|
+
http_href,
|
|
356
|
+
...meta
|
|
357
|
+
})
|
|
358
|
+
|
|
359
|
+
|
|
347
360
|
}
|
|
348
361
|
return installed
|
|
349
362
|
}
|
package/kernel/router/index.js
CHANGED
|
@@ -217,16 +217,16 @@ class Router {
|
|
|
217
217
|
}
|
|
218
218
|
|
|
219
219
|
async static() {
|
|
220
|
-
this.localhost_static_router.handle()
|
|
221
|
-
for(let host in this.kernel.peer.info) {
|
|
222
|
-
let info = this.kernel.peer.info[host]
|
|
223
|
-
if (info.rewrite_mapping) {
|
|
224
|
-
for(let name in info.rewrite_mapping) {
|
|
225
|
-
this.peer_static_router.handle(info.rewrite_mapping[name])
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
this.mapping = this._mapping
|
|
220
|
+
// this.localhost_static_router.handle()
|
|
221
|
+
// for(let host in this.kernel.peer.info) {
|
|
222
|
+
// let info = this.kernel.peer.info[host]
|
|
223
|
+
// if (info.rewrite_mapping) {
|
|
224
|
+
// for(let name in info.rewrite_mapping) {
|
|
225
|
+
// this.peer_static_router.handle(info.rewrite_mapping[name])
|
|
226
|
+
// }
|
|
227
|
+
// }
|
|
228
|
+
// }
|
|
229
|
+
// this.mapping = this._mapping
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
// set local config
|
|
@@ -12,6 +12,7 @@ class LocalhostStaticRouter extends Processor {
|
|
|
12
12
|
this.rewriter = new Rewriter(router)
|
|
13
13
|
}
|
|
14
14
|
handle () {
|
|
15
|
+
console.log("LOCALHOST STATIC ROUTER")
|
|
15
16
|
let configs = []
|
|
16
17
|
for(let api_name in this.router.kernel.pinokio_configs) {
|
|
17
18
|
let config = this.router.kernel.pinokio_configs[api_name]
|
|
@@ -41,11 +42,13 @@ class LocalhostStaticRouter extends Processor {
|
|
|
41
42
|
let local_dial = `${this.router.default_host}:${this.router.default_port}`
|
|
42
43
|
let peer_dial = `${this.router.kernel.peer.host}:${this.router.default_port}`
|
|
43
44
|
let rewrite = `/asset/api/${api_name}`
|
|
45
|
+
console.log("LOCALHOST REWRITE HANDLE", { rewrite, localhost_match, local_dial })
|
|
44
46
|
this.rewriter.handle({
|
|
45
47
|
route: rewrite,
|
|
46
48
|
match: [localhost_match],
|
|
47
49
|
dial: local_dial,
|
|
48
50
|
})
|
|
51
|
+
console.log("LOCALHOST REWRITE HANDLE", { rewrite, peer_match, peer_dial })
|
|
49
52
|
this.rewriter.handle({
|
|
50
53
|
route: rewrite,
|
|
51
54
|
match: [peer_match],
|
|
@@ -30,6 +30,7 @@ class PeerStaticRouter extends Processor {
|
|
|
30
30
|
rewrite: /asset/api/test
|
|
31
31
|
match: test.x.localhost
|
|
32
32
|
*/
|
|
33
|
+
console.log("PEER STATIC ROUTER", rewrite_mapping)
|
|
33
34
|
let url = new URL("http://" + rewrite_mapping.external_ip)
|
|
34
35
|
let dial = url.host
|
|
35
36
|
let rewrite = url.pathname
|
package/kernel/scripts/git/push
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pinokiod",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.53.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -13,8 +13,10 @@
|
|
|
13
13
|
"@homebridge/node-pty-prebuilt-multiarch": "0.12.0-beta.5",
|
|
14
14
|
"@xterm/headless": "^5.5.0",
|
|
15
15
|
"7zip-min-win-asar-support": "^1.4.4",
|
|
16
|
+
"accepts": "^1.3.8",
|
|
16
17
|
"async-retry": "^1.3.3",
|
|
17
18
|
"axios": "^1.4.0",
|
|
19
|
+
"batch": "^0.6.1",
|
|
18
20
|
"clear-module": "^4.1.2",
|
|
19
21
|
"compressing": "^1.10.0",
|
|
20
22
|
"cookie-parser": "^1.4.6",
|
|
@@ -27,6 +29,7 @@
|
|
|
27
29
|
"dotenv": "^16.4.5",
|
|
28
30
|
"ejs": "^3.1.9",
|
|
29
31
|
"eol": "^0.9.1",
|
|
32
|
+
"escape-html": "^1.0.3",
|
|
30
33
|
"express": "^4.18.2",
|
|
31
34
|
"express-http-proxy-cp": "^2.0.3",
|
|
32
35
|
"express-session": "^1.17.3",
|
|
@@ -38,6 +41,7 @@
|
|
|
38
41
|
"glob-gitignore": "^1.0.14",
|
|
39
42
|
"go-get-folder-size": "^0.5.5",
|
|
40
43
|
"gray-matter": "^4.0.3",
|
|
44
|
+
"http-errors": "^2.0.0",
|
|
41
45
|
"http-proxy": "^1.18.1",
|
|
42
46
|
"http-proxy-middleware": "^3.0.0",
|
|
43
47
|
"http-terminator": "^3.2.0",
|
|
@@ -59,6 +63,7 @@
|
|
|
59
63
|
"node-notifier": "^10.0.1",
|
|
60
64
|
"normalize-path": "^3.0.0",
|
|
61
65
|
"p-limit": "^3.1.0",
|
|
66
|
+
"parseurl": "^1.3.3",
|
|
62
67
|
"pdrive": "^0.0.27",
|
|
63
68
|
"portfinder-cp": "^1.0.34",
|
|
64
69
|
"proxy-agent": "^6.5.0",
|
|
@@ -67,7 +72,6 @@
|
|
|
67
72
|
"rimraf": "^5.0.0",
|
|
68
73
|
"sanitize-filename": "^1.6.3",
|
|
69
74
|
"semver": "^7.5.4",
|
|
70
|
-
"serve-index": "^1.9.1",
|
|
71
75
|
"shell-path": "^2.0.0",
|
|
72
76
|
"sudo-prompt-programfiles-x86": "^9.2.10",
|
|
73
77
|
"symlink-dir": "^5.2.1",
|