@leeguoo/pwtk-network-debugger 1.2.48 → 1.2.49-beta.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/dist/index.cjs.js +3 -3
- package/dist/index.esm.js +626 -392
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -7397,77 +7397,134 @@ class WasmLoader {
|
|
|
7397
7397
|
return this.loaded && typeof window.encrypt === "function";
|
|
7398
7398
|
}
|
|
7399
7399
|
}
|
|
7400
|
-
function parseCurl(curlCommand) {
|
|
7401
|
-
const lines = curlCommand.split("\\\n").map((line) => line.trim());
|
|
7402
|
-
const fullCommand = lines.join(" ");
|
|
7403
|
-
const urlMatch = fullCommand.match(/c?curl\s+['"]?([^'"\s]+)['"]?/);
|
|
7404
|
-
let url = urlMatch ? urlMatch[1] : "";
|
|
7405
|
-
const headers = {};
|
|
7406
|
-
const headerMatches = fullCommand.matchAll(/-H\s+['"]([^:]+):\s*([^'"]*)['"]/g);
|
|
7407
|
-
for (const match of headerMatches) {
|
|
7408
|
-
headers[match[1]] = match[2];
|
|
7409
|
-
}
|
|
7410
|
-
let data = void 0;
|
|
7411
|
-
const dataMatch = fullCommand.match(/(?:--data-raw|--data|-d)\s+['"]({.+?})['"]/s);
|
|
7412
|
-
if (dataMatch) {
|
|
7413
|
-
const rawData = dataMatch[1];
|
|
7414
|
-
try {
|
|
7415
|
-
data = JSON.parse(rawData);
|
|
7416
|
-
} catch {
|
|
7417
|
-
data = rawData;
|
|
7418
|
-
}
|
|
7419
|
-
}
|
|
7420
|
-
if (!dataMatch && url.includes("?")) {
|
|
7421
|
-
try {
|
|
7422
|
-
const urlObj = new URL(url, "http://example.com");
|
|
7423
|
-
const params = {};
|
|
7424
|
-
urlObj.searchParams.forEach((value, key) => {
|
|
7425
|
-
params[key] = value;
|
|
7426
|
-
});
|
|
7427
|
-
if (Object.keys(params).length > 0) {
|
|
7428
|
-
if (Object.keys(params).length === 1 && params.data) {
|
|
7429
|
-
data = params.data;
|
|
7430
|
-
} else {
|
|
7431
|
-
data = params;
|
|
7432
|
-
}
|
|
7433
|
-
}
|
|
7434
|
-
} catch (e) {
|
|
7435
|
-
}
|
|
7436
|
-
}
|
|
7437
|
-
const methodMatch = fullCommand.match(/-X\s+(['"]?)([A-Z]+)\1/);
|
|
7438
|
-
let method = methodMatch ? methodMatch[2] : dataMatch ? "POST" : "GET";
|
|
7439
|
-
return {
|
|
7440
|
-
url,
|
|
7441
|
-
method,
|
|
7442
|
-
headers,
|
|
7443
|
-
data
|
|
7444
|
-
};
|
|
7445
|
-
}
|
|
7446
7400
|
function formatJson(obj) {
|
|
7447
7401
|
return JSON.stringify(obj, null, 2);
|
|
7448
7402
|
}
|
|
7449
7403
|
const styles = `
|
|
7450
|
-
/* NetworkDebugger 样式 */
|
|
7404
|
+
/* iOS 26 Liquid Glass NetworkDebugger 样式 */
|
|
7405
|
+
:root {
|
|
7406
|
+
--liquid-glass-primary: rgba(255, 255, 255, 0.15);
|
|
7407
|
+
--liquid-glass-secondary: rgba(255, 255, 255, 0.08);
|
|
7408
|
+
--liquid-glass-border: rgba(255, 255, 255, 0.18);
|
|
7409
|
+
--liquid-glass-shadow: rgba(31, 38, 135, 0.37);
|
|
7410
|
+
--liquid-glass-highlight: rgba(255, 255, 255, 0.25);
|
|
7411
|
+
--liquid-glass-dark: rgba(13, 17, 23, 0.75);
|
|
7412
|
+
}
|
|
7413
|
+
|
|
7451
7414
|
#network-debugger-panel {
|
|
7452
7415
|
position: fixed;
|
|
7453
7416
|
z-index: 999999;
|
|
7454
|
-
|
|
7417
|
+
|
|
7418
|
+
/* 强制 GPU 加速和 3D 变换 */
|
|
7419
|
+
transform: translate3d(0, 0, 0);
|
|
7420
|
+
will-change: transform, backdrop-filter;
|
|
7421
|
+
|
|
7422
|
+
/* iOS 26 Liquid Glass 核心效果 - 增强版 */
|
|
7423
|
+
backdrop-filter: blur(25px) saturate(200%) brightness(1.05) !important;
|
|
7424
|
+
-webkit-backdrop-filter: blur(25px) saturate(200%) brightness(1.05) !important;
|
|
7425
|
+
|
|
7426
|
+
/* iOS 浅色毛玻璃背景 */
|
|
7427
|
+
background: rgba(245, 245, 247, 0.8);
|
|
7428
|
+
background-image: linear-gradient(
|
|
7429
|
+
135deg,
|
|
7430
|
+
rgba(255, 255, 255, 0.5) 0%,
|
|
7431
|
+
rgba(255, 255, 255, 0.25) 100%
|
|
7432
|
+
);
|
|
7433
|
+
|
|
7434
|
+
/* 玻璃边框 */
|
|
7435
|
+
border: 1px solid rgba(255, 255, 255, 0.25);
|
|
7436
|
+
|
|
7437
|
+
/* 多层阴影创建深度 */
|
|
7438
|
+
box-shadow:
|
|
7439
|
+
0 10px 40px rgba(31, 38, 135, 0.4),
|
|
7440
|
+
inset 0 2px 4px rgba(255, 255, 255, 0.3),
|
|
7441
|
+
inset 0 -2px 4px rgba(0, 0, 0, 0.12);
|
|
7442
|
+
|
|
7443
|
+
border-radius: 20px;
|
|
7455
7444
|
color: #ffffff;
|
|
7456
|
-
font-family: '
|
|
7445
|
+
font-family: 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Monaco', 'Menlo', monospace;
|
|
7457
7446
|
font-size: 12px;
|
|
7458
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
|
7459
|
-
border-radius: 8px;
|
|
7460
7447
|
overflow: hidden;
|
|
7461
7448
|
max-width: 90vw;
|
|
7462
7449
|
max-height: 80vh;
|
|
7463
|
-
|
|
7450
|
+
|
|
7451
|
+
/* 性能优化 */
|
|
7452
|
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7453
|
+
}
|
|
7454
|
+
|
|
7455
|
+
/* 主面板的镜面反射效果 */
|
|
7456
|
+
#network-debugger-panel::before {
|
|
7457
|
+
content: '';
|
|
7458
|
+
position: absolute;
|
|
7459
|
+
inset: 0;
|
|
7460
|
+
border-radius: inherit;
|
|
7461
|
+
background: linear-gradient(
|
|
7462
|
+
135deg,
|
|
7463
|
+
rgba(255, 255, 255, 0.3) 0%,
|
|
7464
|
+
rgba(255, 255, 255, 0.05) 50%,
|
|
7465
|
+
transparent 100%
|
|
7466
|
+
);
|
|
7467
|
+
pointer-events: none;
|
|
7468
|
+
z-index: 1;
|
|
7469
|
+
}
|
|
7470
|
+
|
|
7471
|
+
/* 镜面高光效果 */
|
|
7472
|
+
#network-debugger-panel::after {
|
|
7473
|
+
content: '';
|
|
7474
|
+
position: absolute;
|
|
7475
|
+
inset: 0;
|
|
7476
|
+
border-radius: inherit;
|
|
7477
|
+
background: radial-gradient(
|
|
7478
|
+
circle at 30% 30%,
|
|
7479
|
+
rgba(255, 255, 255, 0.2),
|
|
7480
|
+
transparent 70%
|
|
7481
|
+
);
|
|
7482
|
+
pointer-events: none;
|
|
7483
|
+
z-index: 1;
|
|
7464
7484
|
}
|
|
7465
7485
|
|
|
7466
7486
|
#network-debugger-panel.minimized {
|
|
7467
|
-
|
|
7487
|
+
/* iOS 控制中心风格的圆角矩形 */
|
|
7488
|
+
height: 48px !important;
|
|
7489
|
+
width: 220px !important;
|
|
7490
|
+
max-width: 220px !important;
|
|
7491
|
+
border-radius: 24px !important;
|
|
7468
7492
|
overflow: hidden;
|
|
7469
|
-
|
|
7470
|
-
|
|
7493
|
+
|
|
7494
|
+
/* 强制 GPU 加速和 3D 变换 */
|
|
7495
|
+
transform: translate3d(0, 0, 0) !important;
|
|
7496
|
+
will-change: transform, backdrop-filter !important;
|
|
7497
|
+
|
|
7498
|
+
/* 真正的 iOS Liquid Glass 效果 - 加强版 */
|
|
7499
|
+
background:
|
|
7500
|
+
/* 顶部高光 */
|
|
7501
|
+
linear-gradient(180deg,
|
|
7502
|
+
rgba(255, 255, 255, 0.5) 0%,
|
|
7503
|
+
rgba(255, 255, 255, 0.1) 35%),
|
|
7504
|
+
/* 主玻璃层 */
|
|
7505
|
+
radial-gradient(ellipse at top,
|
|
7506
|
+
rgba(255, 255, 255, 0.35),
|
|
7507
|
+
rgba(255, 255, 255, 0.12)),
|
|
7508
|
+
/* iOS 浅色基底 */
|
|
7509
|
+
rgba(245, 245, 247, 0.85) !important;
|
|
7510
|
+
|
|
7511
|
+
/* 增强毛玻璃效果 */
|
|
7512
|
+
backdrop-filter: blur(40px) saturate(220%) brightness(1.1) !important;
|
|
7513
|
+
-webkit-backdrop-filter: blur(40px) saturate(220%) brightness(1.1) !important;
|
|
7514
|
+
|
|
7515
|
+
/* iOS 风格边缘光效 - 增强版 */
|
|
7516
|
+
box-shadow:
|
|
7517
|
+
/* 外发光 */
|
|
7518
|
+
0 0 0 0.5px rgba(255, 255, 255, 0.7) !important,
|
|
7519
|
+
/* 内阴影创建玻璃厚度 */
|
|
7520
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.7) !important,
|
|
7521
|
+
inset 0 -1px 0 0 rgba(0, 0, 0, 0.2) !important,
|
|
7522
|
+
/* 深度阴影 */
|
|
7523
|
+
0 15px 40px rgba(0, 0, 0, 0.3) !important,
|
|
7524
|
+
0 4px 10px rgba(0, 0, 0, 0.2) !important;
|
|
7525
|
+
|
|
7526
|
+
/* 平滑过渡 */
|
|
7527
|
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
|
|
7471
7528
|
}
|
|
7472
7529
|
|
|
7473
7530
|
#network-debugger-panel.minimized .debugger-content {
|
|
@@ -7482,32 +7539,37 @@ const styles = `
|
|
|
7482
7539
|
display: none;
|
|
7483
7540
|
}
|
|
7484
7541
|
|
|
7542
|
+
#network-debugger-panel.fullscreen {
|
|
7543
|
+
backdrop-filter: blur(25px) saturate(200%);
|
|
7544
|
+
-webkit-backdrop-filter: blur(25px) saturate(200%);
|
|
7545
|
+
}
|
|
7546
|
+
|
|
7485
7547
|
#network-debugger-panel.bottom-right {
|
|
7486
7548
|
bottom: 20px;
|
|
7487
7549
|
right: 20px;
|
|
7488
|
-
width:
|
|
7489
|
-
height:
|
|
7550
|
+
width: 600px;
|
|
7551
|
+
height: 500px;
|
|
7490
7552
|
}
|
|
7491
7553
|
|
|
7492
7554
|
#network-debugger-panel.bottom-left {
|
|
7493
7555
|
bottom: 20px;
|
|
7494
7556
|
left: 20px;
|
|
7495
|
-
width:
|
|
7496
|
-
height:
|
|
7557
|
+
width: 600px;
|
|
7558
|
+
height: 500px;
|
|
7497
7559
|
}
|
|
7498
7560
|
|
|
7499
7561
|
#network-debugger-panel.top-right {
|
|
7500
7562
|
top: 20px;
|
|
7501
7563
|
right: 20px;
|
|
7502
|
-
width:
|
|
7503
|
-
height:
|
|
7564
|
+
width: 600px;
|
|
7565
|
+
height: 500px;
|
|
7504
7566
|
}
|
|
7505
7567
|
|
|
7506
7568
|
#network-debugger-panel.top-left {
|
|
7507
7569
|
top: 20px;
|
|
7508
7570
|
left: 20px;
|
|
7509
|
-
width:
|
|
7510
|
-
height:
|
|
7571
|
+
width: 600px;
|
|
7572
|
+
height: 500px;
|
|
7511
7573
|
}
|
|
7512
7574
|
|
|
7513
7575
|
#network-debugger-panel.fullscreen {
|
|
@@ -7519,87 +7581,138 @@ const styles = `
|
|
|
7519
7581
|
}
|
|
7520
7582
|
|
|
7521
7583
|
.debugger-header {
|
|
7522
|
-
|
|
7523
|
-
|
|
7584
|
+
/* 头部 Liquid Glass 效果 */
|
|
7585
|
+
backdrop-filter: blur(15px) brightness(1.1);
|
|
7586
|
+
-webkit-backdrop-filter: blur(15px) brightness(1.1);
|
|
7587
|
+
|
|
7588
|
+
/* 多层背景效果 */
|
|
7589
|
+
background:
|
|
7590
|
+
/* 顶部高光 */
|
|
7591
|
+
linear-gradient(180deg,
|
|
7592
|
+
rgba(255, 255, 255, 0.8) 0%,
|
|
7593
|
+
rgba(255, 255, 255, 0.4) 60%),
|
|
7594
|
+
/* 基础玻璃层 */
|
|
7595
|
+
linear-gradient(
|
|
7596
|
+
135deg,
|
|
7597
|
+
rgba(255, 255, 255, 0.6),
|
|
7598
|
+
rgba(255, 255, 255, 0.4)
|
|
7599
|
+
);
|
|
7600
|
+
|
|
7601
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
7602
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.15);
|
|
7603
|
+
|
|
7604
|
+
padding: 12px 16px;
|
|
7524
7605
|
display: flex;
|
|
7525
7606
|
justify-content: space-between;
|
|
7526
7607
|
align-items: center;
|
|
7527
7608
|
cursor: move;
|
|
7528
7609
|
user-select: none;
|
|
7529
|
-
|
|
7610
|
+
position: relative;
|
|
7611
|
+
z-index: 2;
|
|
7612
|
+
|
|
7613
|
+
/* iOS 风格圆角 */
|
|
7614
|
+
border-radius: 20px 20px 0 0;
|
|
7615
|
+
|
|
7616
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7617
|
+
}
|
|
7618
|
+
|
|
7619
|
+
.debugger-header:hover {
|
|
7620
|
+
backdrop-filter: blur(18px) brightness(1.15);
|
|
7621
|
+
-webkit-backdrop-filter: blur(18px) brightness(1.15);
|
|
7622
|
+
background: linear-gradient(
|
|
7623
|
+
135deg,
|
|
7624
|
+
rgba(255, 255, 255, 0.15),
|
|
7625
|
+
rgba(255, 255, 255, 0.08)
|
|
7626
|
+
);
|
|
7530
7627
|
}
|
|
7531
7628
|
|
|
7532
7629
|
.debugger-title {
|
|
7533
|
-
font-weight:
|
|
7534
|
-
color:
|
|
7535
|
-
font-size:
|
|
7630
|
+
font-weight: 600;
|
|
7631
|
+
color: rgba(60, 60, 67, 0.9);
|
|
7632
|
+
font-size: 15px;
|
|
7633
|
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
|
|
7536
7634
|
}
|
|
7537
7635
|
|
|
7538
7636
|
.debugger-controls {
|
|
7539
7637
|
display: flex;
|
|
7540
|
-
gap:
|
|
7638
|
+
gap: 10px;
|
|
7639
|
+
position: relative;
|
|
7640
|
+
z-index: 3;
|
|
7541
7641
|
}
|
|
7542
7642
|
|
|
7543
7643
|
.debugger-btn {
|
|
7544
|
-
|
|
7545
|
-
|
|
7546
|
-
|
|
7547
|
-
|
|
7548
|
-
|
|
7644
|
+
/* 按钮毛玻璃效果但保证可见性 */
|
|
7645
|
+
backdrop-filter: blur(8px);
|
|
7646
|
+
-webkit-backdrop-filter: blur(8px);
|
|
7647
|
+
background: linear-gradient(
|
|
7648
|
+
135deg,
|
|
7649
|
+
rgba(255, 255, 255, 0.7),
|
|
7650
|
+
rgba(255, 255, 255, 0.5)
|
|
7651
|
+
);
|
|
7652
|
+
border: 1px solid rgba(0, 0, 0, 0.08);
|
|
7653
|
+
color: rgba(60, 60, 67, 0.9);
|
|
7654
|
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
|
|
7655
|
+
padding: 6px 12px;
|
|
7656
|
+
border-radius: 12px;
|
|
7549
7657
|
cursor: pointer;
|
|
7550
|
-
font-size:
|
|
7551
|
-
|
|
7658
|
+
font-size: 11px;
|
|
7659
|
+
font-weight: 600;
|
|
7660
|
+
|
|
7661
|
+
/* 按钮阴影 */
|
|
7662
|
+
box-shadow:
|
|
7663
|
+
0 2px 8px rgba(0, 0, 0, 0.1),
|
|
7664
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
7665
|
+
|
|
7666
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7667
|
+
transform: translateZ(0);
|
|
7552
7668
|
}
|
|
7553
7669
|
|
|
7554
7670
|
.debugger-btn:hover {
|
|
7555
|
-
|
|
7671
|
+
backdrop-filter: blur(12px);
|
|
7672
|
+
-webkit-backdrop-filter: blur(12px);
|
|
7673
|
+
background: linear-gradient(
|
|
7674
|
+
135deg,
|
|
7675
|
+
rgba(255, 255, 255, 0.2),
|
|
7676
|
+
rgba(255, 255, 255, 0.12)
|
|
7677
|
+
);
|
|
7678
|
+
transform: scale(1.05) translateZ(5px);
|
|
7679
|
+
box-shadow:
|
|
7680
|
+
0 4px 16px rgba(0, 0, 0, 0.15),
|
|
7681
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.3);
|
|
7682
|
+
}
|
|
7683
|
+
|
|
7684
|
+
.debugger-btn:active {
|
|
7685
|
+
transform: scale(0.98);
|
|
7686
|
+
transition: transform 0.1s;
|
|
7556
7687
|
}
|
|
7557
7688
|
|
|
7558
7689
|
.debugger-btn.active {
|
|
7559
|
-
background: #
|
|
7560
|
-
color: #
|
|
7690
|
+
background: linear-gradient(135deg, #42b883, #35495e);
|
|
7691
|
+
color: #ffffff;
|
|
7692
|
+
box-shadow:
|
|
7693
|
+
0 0 20px rgba(66, 184, 131, 0.4),
|
|
7694
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.3);
|
|
7695
|
+
backdrop-filter: blur(10px);
|
|
7561
7696
|
}
|
|
7562
7697
|
|
|
7563
7698
|
.debugger-icon {
|
|
7564
7699
|
width: 16px;
|
|
7565
7700
|
height: 16px;
|
|
7566
7701
|
vertical-align: middle;
|
|
7702
|
+
filter:
|
|
7703
|
+
brightness(0.8)
|
|
7704
|
+
drop-shadow(0 1px 2px rgba(255, 255, 255, 0.8));
|
|
7705
|
+
color: rgba(60, 60, 67, 0.8);
|
|
7567
7706
|
}
|
|
7568
7707
|
|
|
7569
7708
|
.debugger-content {
|
|
7570
|
-
height: calc(100% -
|
|
7709
|
+
height: calc(100% - 60px);
|
|
7571
7710
|
overflow: hidden;
|
|
7572
7711
|
display: flex;
|
|
7573
7712
|
flex-direction: column;
|
|
7574
7713
|
}
|
|
7575
7714
|
|
|
7576
|
-
|
|
7577
|
-
display: flex;
|
|
7578
|
-
background: #2a2a2a;
|
|
7579
|
-
border-bottom: 1px solid #444;
|
|
7580
|
-
}
|
|
7581
|
-
|
|
7582
|
-
.debugger-tab {
|
|
7583
|
-
padding: 8px 16px;
|
|
7584
|
-
cursor: pointer;
|
|
7585
|
-
border: none;
|
|
7586
|
-
background: none;
|
|
7587
|
-
color: #ccc;
|
|
7588
|
-
font-size: 12px;
|
|
7589
|
-
transition: all 0.2s;
|
|
7590
|
-
border-bottom: 2px solid transparent;
|
|
7591
|
-
}
|
|
7592
|
-
|
|
7593
|
-
.debugger-tab:hover {
|
|
7594
|
-
color: #fff;
|
|
7595
|
-
background: #3a3a3a;
|
|
7596
|
-
}
|
|
7597
|
-
|
|
7598
|
-
.debugger-tab.active {
|
|
7599
|
-
color: #4CAF50;
|
|
7600
|
-
border-bottom-color: #4CAF50;
|
|
7601
|
-
background: #333;
|
|
7602
|
-
}
|
|
7715
|
+
/* 移除标签页相关样式 - 只保留网络面板 */
|
|
7603
7716
|
|
|
7604
7717
|
.debugger-panel-content {
|
|
7605
7718
|
flex: 1;
|
|
@@ -7610,27 +7723,138 @@ const styles = `
|
|
|
7610
7723
|
.request-list {
|
|
7611
7724
|
display: flex;
|
|
7612
7725
|
flex-direction: column;
|
|
7613
|
-
gap:
|
|
7726
|
+
gap: 12px;
|
|
7727
|
+
padding: 16px;
|
|
7728
|
+
position: relative;
|
|
7729
|
+
z-index: 2;
|
|
7614
7730
|
}
|
|
7615
7731
|
|
|
7616
7732
|
.request-item {
|
|
7617
|
-
|
|
7618
|
-
border: 1px solid #444;
|
|
7619
|
-
border-radius: 6px;
|
|
7620
|
-
padding: 10px;
|
|
7621
|
-
cursor: pointer;
|
|
7622
|
-
transition: all 0.2s;
|
|
7733
|
+
/* 请求项毛玻璃效果加动态光效 */
|
|
7623
7734
|
position: relative;
|
|
7735
|
+
backdrop-filter: blur(10px) brightness(1.1);
|
|
7736
|
+
-webkit-backdrop-filter: blur(10px) brightness(1.1);
|
|
7737
|
+
|
|
7738
|
+
/* 多层背景 - 模拟 Liquid Glass */
|
|
7739
|
+
background:
|
|
7740
|
+
/* 动态光效层 */
|
|
7741
|
+
linear-gradient(
|
|
7742
|
+
105deg,
|
|
7743
|
+
transparent 35%,
|
|
7744
|
+
rgba(255, 255, 255, 0.25) 45%,
|
|
7745
|
+
rgba(255, 255, 255, 0.35) 50%,
|
|
7746
|
+
rgba(255, 255, 255, 0.25) 55%,
|
|
7747
|
+
transparent 65%
|
|
7748
|
+
),
|
|
7749
|
+
/* 基础玻璃层 */
|
|
7750
|
+
linear-gradient(
|
|
7751
|
+
135deg,
|
|
7752
|
+
rgba(255, 255, 255, 0.8),
|
|
7753
|
+
rgba(255, 255, 255, 0.6)
|
|
7754
|
+
);
|
|
7755
|
+
|
|
7756
|
+
background-size: 300% 100%, 100% 100%;
|
|
7757
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
7758
|
+
border-radius: 16px;
|
|
7759
|
+
padding: 16px;
|
|
7760
|
+
cursor: pointer;
|
|
7761
|
+
|
|
7762
|
+
/* 深度阴影和玻璃效果 */
|
|
7763
|
+
box-shadow:
|
|
7764
|
+
0 4px 16px rgba(31, 38, 135, 0.2),
|
|
7765
|
+
inset 0 1px 2px rgba(255, 255, 255, 0.15),
|
|
7766
|
+
inset 0 -1px 1px rgba(0, 0, 0, 0.05);
|
|
7767
|
+
|
|
7768
|
+
/* 流体动画和光效 */
|
|
7769
|
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7770
|
+
transform: translateZ(0);
|
|
7771
|
+
animation: liquid-shimmer 4s ease-in-out infinite;
|
|
7772
|
+
}
|
|
7773
|
+
|
|
7774
|
+
/* 模拟折射效果的伪元素 */
|
|
7775
|
+
.request-item::before {
|
|
7776
|
+
content: '';
|
|
7777
|
+
position: absolute;
|
|
7778
|
+
inset: -1px;
|
|
7779
|
+
border-radius: inherit;
|
|
7780
|
+
background: radial-gradient(
|
|
7781
|
+
circle at var(--mouse-x, 30%) var(--mouse-y, 30%),
|
|
7782
|
+
rgba(255, 255, 255, 0.4) 0%,
|
|
7783
|
+
rgba(255, 255, 255, 0.1) 30%,
|
|
7784
|
+
transparent 70%
|
|
7785
|
+
);
|
|
7786
|
+
opacity: 0;
|
|
7787
|
+
transition: opacity 0.4s ease;
|
|
7788
|
+
pointer-events: none;
|
|
7789
|
+
mix-blend-mode: overlay;
|
|
7790
|
+
z-index: 1;
|
|
7791
|
+
}
|
|
7792
|
+
|
|
7793
|
+
/* 高光效果伪元素 */
|
|
7794
|
+
.request-item::after {
|
|
7795
|
+
content: '';
|
|
7796
|
+
position: absolute;
|
|
7797
|
+
top: 0;
|
|
7798
|
+
left: 0;
|
|
7799
|
+
right: 0;
|
|
7800
|
+
height: 40%;
|
|
7801
|
+
border-radius: 16px 16px 0 0;
|
|
7802
|
+
background: linear-gradient(
|
|
7803
|
+
180deg,
|
|
7804
|
+
rgba(255, 255, 255, 0.2) 0%,
|
|
7805
|
+
transparent 100%
|
|
7806
|
+
);
|
|
7807
|
+
pointer-events: none;
|
|
7808
|
+
z-index: 1;
|
|
7624
7809
|
}
|
|
7625
7810
|
|
|
7626
7811
|
.request-item:hover {
|
|
7627
|
-
|
|
7628
|
-
|
|
7812
|
+
backdrop-filter: blur(15px) brightness(1.2);
|
|
7813
|
+
-webkit-backdrop-filter: blur(15px) brightness(1.2);
|
|
7814
|
+
|
|
7815
|
+
/* 增强 hover 时的光效 */
|
|
7816
|
+
background:
|
|
7817
|
+
linear-gradient(
|
|
7818
|
+
105deg,
|
|
7819
|
+
transparent 20%,
|
|
7820
|
+
rgba(255, 255, 255, 0.35) 40%,
|
|
7821
|
+
rgba(255, 255, 255, 0.5) 50%,
|
|
7822
|
+
rgba(255, 255, 255, 0.35) 60%,
|
|
7823
|
+
transparent 80%
|
|
7824
|
+
),
|
|
7825
|
+
linear-gradient(
|
|
7826
|
+
135deg,
|
|
7827
|
+
rgba(255, 255, 255, 0.2),
|
|
7828
|
+
rgba(255, 255, 255, 0.12)
|
|
7829
|
+
);
|
|
7830
|
+
|
|
7831
|
+
background-size: 200% 100%, 100% 100%;
|
|
7832
|
+
transform: scale(1.02) translateZ(15px);
|
|
7833
|
+
animation: liquid-refraction 0.6s ease-out;
|
|
7834
|
+
|
|
7835
|
+
box-shadow:
|
|
7836
|
+
0 12px 40px rgba(31, 38, 135, 0.35),
|
|
7837
|
+
inset 0 2px 4px rgba(255, 255, 255, 0.25),
|
|
7838
|
+
inset 0 -2px 2px rgba(0, 0, 0, 0.08);
|
|
7839
|
+
}
|
|
7840
|
+
|
|
7841
|
+
/* 激活折射效果 */
|
|
7842
|
+
.request-item:hover::before {
|
|
7843
|
+
opacity: 1;
|
|
7629
7844
|
}
|
|
7630
7845
|
|
|
7631
7846
|
.request-item.expanded {
|
|
7632
|
-
|
|
7633
|
-
|
|
7847
|
+
backdrop-filter: blur(18px) brightness(1.2);
|
|
7848
|
+
-webkit-backdrop-filter: blur(18px) brightness(1.2);
|
|
7849
|
+
background: linear-gradient(
|
|
7850
|
+
135deg,
|
|
7851
|
+
rgba(66, 184, 131, 0.1),
|
|
7852
|
+
rgba(53, 73, 94, 0.05)
|
|
7853
|
+
);
|
|
7854
|
+
border-color: rgba(66, 184, 131, 0.3);
|
|
7855
|
+
box-shadow:
|
|
7856
|
+
0 12px 40px rgba(66, 184, 131, 0.2),
|
|
7857
|
+
inset 0 2px 4px rgba(255, 255, 255, 0.15);
|
|
7634
7858
|
}
|
|
7635
7859
|
|
|
7636
7860
|
.request-header {
|
|
@@ -7641,20 +7865,48 @@ const styles = `
|
|
|
7641
7865
|
}
|
|
7642
7866
|
|
|
7643
7867
|
.request-method {
|
|
7644
|
-
|
|
7645
|
-
|
|
7646
|
-
|
|
7868
|
+
/* 方法标签毛玻璃效果 */
|
|
7869
|
+
backdrop-filter: blur(6px);
|
|
7870
|
+
-webkit-backdrop-filter: blur(6px);
|
|
7871
|
+
padding: 4px 10px;
|
|
7872
|
+
border-radius: 10px;
|
|
7873
|
+
font-weight: 600;
|
|
7647
7874
|
font-size: 10px;
|
|
7648
7875
|
text-transform: uppercase;
|
|
7649
|
-
min-width:
|
|
7876
|
+
min-width: 45px;
|
|
7650
7877
|
text-align: center;
|
|
7878
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
7879
|
+
box-shadow:
|
|
7880
|
+
0 2px 8px rgba(0, 0, 0, 0.1),
|
|
7881
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
7882
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7651
7883
|
}
|
|
7652
7884
|
|
|
7653
|
-
.method-get {
|
|
7654
|
-
|
|
7655
|
-
|
|
7656
|
-
|
|
7657
|
-
|
|
7885
|
+
.method-get {
|
|
7886
|
+
background: linear-gradient(135deg, #4CAF50, #45a049);
|
|
7887
|
+
color: #ffffff;
|
|
7888
|
+
box-shadow: 0 0 15px rgba(76, 175, 80, 0.4);
|
|
7889
|
+
}
|
|
7890
|
+
.method-post {
|
|
7891
|
+
background: linear-gradient(135deg, #2196F3, #1976D2);
|
|
7892
|
+
color: #ffffff;
|
|
7893
|
+
box-shadow: 0 0 15px rgba(33, 150, 243, 0.4);
|
|
7894
|
+
}
|
|
7895
|
+
.method-put {
|
|
7896
|
+
background: linear-gradient(135deg, #FF9800, #F57C00);
|
|
7897
|
+
color: #ffffff;
|
|
7898
|
+
box-shadow: 0 0 15px rgba(255, 152, 0, 0.4);
|
|
7899
|
+
}
|
|
7900
|
+
.method-delete {
|
|
7901
|
+
background: linear-gradient(135deg, #F44336, #D32F2F);
|
|
7902
|
+
color: #ffffff;
|
|
7903
|
+
box-shadow: 0 0 15px rgba(244, 67, 54, 0.4);
|
|
7904
|
+
}
|
|
7905
|
+
.method-patch {
|
|
7906
|
+
background: linear-gradient(135deg, #9C27B0, #7B1FA2);
|
|
7907
|
+
color: #ffffff;
|
|
7908
|
+
box-shadow: 0 0 15px rgba(156, 39, 176, 0.4);
|
|
7909
|
+
}
|
|
7658
7910
|
|
|
7659
7911
|
.request-url {
|
|
7660
7912
|
flex: 1;
|
|
@@ -7667,18 +7919,47 @@ const styles = `
|
|
|
7667
7919
|
}
|
|
7668
7920
|
|
|
7669
7921
|
.request-status {
|
|
7670
|
-
|
|
7671
|
-
|
|
7922
|
+
/* 状态码标签毛玻璃效果 */
|
|
7923
|
+
backdrop-filter: blur(6px);
|
|
7924
|
+
-webkit-backdrop-filter: blur(6px);
|
|
7925
|
+
padding: 4px 10px;
|
|
7926
|
+
border-radius: 10px;
|
|
7672
7927
|
font-size: 10px;
|
|
7673
|
-
|
|
7928
|
+
font-weight: 600;
|
|
7929
|
+
min-width: 40px;
|
|
7674
7930
|
text-align: center;
|
|
7931
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
7932
|
+
box-shadow:
|
|
7933
|
+
0 2px 8px rgba(0, 0, 0, 0.1),
|
|
7934
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
7935
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7675
7936
|
}
|
|
7676
7937
|
|
|
7677
|
-
.status-2xx {
|
|
7678
|
-
|
|
7679
|
-
|
|
7680
|
-
|
|
7681
|
-
|
|
7938
|
+
.status-2xx {
|
|
7939
|
+
background: linear-gradient(135deg, #4CAF50, #45a049);
|
|
7940
|
+
color: #ffffff;
|
|
7941
|
+
box-shadow: 0 0 20px rgba(76, 175, 80, 0.5);
|
|
7942
|
+
}
|
|
7943
|
+
.status-3xx {
|
|
7944
|
+
background: linear-gradient(135deg, #FF9800, #F57C00);
|
|
7945
|
+
color: #ffffff;
|
|
7946
|
+
box-shadow: 0 0 20px rgba(255, 152, 0, 0.5);
|
|
7947
|
+
}
|
|
7948
|
+
.status-4xx {
|
|
7949
|
+
background: linear-gradient(135deg, #F44336, #D32F2F);
|
|
7950
|
+
color: #ffffff;
|
|
7951
|
+
box-shadow: 0 0 20px rgba(244, 67, 54, 0.5);
|
|
7952
|
+
}
|
|
7953
|
+
.status-5xx {
|
|
7954
|
+
background: linear-gradient(135deg, #9C27B0, #7B1FA2);
|
|
7955
|
+
color: #ffffff;
|
|
7956
|
+
box-shadow: 0 0 20px rgba(156, 39, 176, 0.5);
|
|
7957
|
+
}
|
|
7958
|
+
.status-error {
|
|
7959
|
+
background: linear-gradient(135deg, #F44336, #D32F2F);
|
|
7960
|
+
color: #ffffff;
|
|
7961
|
+
box-shadow: 0 0 20px rgba(244, 67, 54, 0.5);
|
|
7962
|
+
}
|
|
7682
7963
|
|
|
7683
7964
|
.request-info {
|
|
7684
7965
|
display: flex;
|
|
@@ -7765,11 +8046,28 @@ const styles = `
|
|
|
7765
8046
|
}
|
|
7766
8047
|
|
|
7767
8048
|
.detail-content {
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
|
-
|
|
8049
|
+
/* 详情内容毛玻璃效果 */
|
|
8050
|
+
backdrop-filter: blur(8px) brightness(0.9);
|
|
8051
|
+
-webkit-backdrop-filter: blur(8px) brightness(0.9);
|
|
8052
|
+
background: linear-gradient(
|
|
8053
|
+
135deg,
|
|
8054
|
+
rgba(0, 0, 0, 0.3),
|
|
8055
|
+
rgba(0, 0, 0, 0.15)
|
|
8056
|
+
);
|
|
8057
|
+
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
8058
|
+
padding: 16px;
|
|
8059
|
+
border-radius: 12px;
|
|
8060
|
+
max-height: 400px;
|
|
8061
|
+
min-height: 300px;
|
|
7772
8062
|
overflow: auto;
|
|
8063
|
+
|
|
8064
|
+
/* 内部阴影 */
|
|
8065
|
+
box-shadow:
|
|
8066
|
+
inset 0 2px 4px rgba(0, 0, 0, 0.2),
|
|
8067
|
+
inset 0 -1px 2px rgba(255, 255, 255, 0.05);
|
|
8068
|
+
|
|
8069
|
+
/* 平滑滚动 */
|
|
8070
|
+
scroll-behavior: smooth;
|
|
7773
8071
|
}
|
|
7774
8072
|
|
|
7775
8073
|
.json-content {
|
|
@@ -7823,47 +8121,75 @@ const styles = `
|
|
|
7823
8121
|
}
|
|
7824
8122
|
|
|
7825
8123
|
.share-btn {
|
|
7826
|
-
|
|
7827
|
-
|
|
7828
|
-
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
|
|
8124
|
+
/* 分享按钮毛玻璃效果 */
|
|
8125
|
+
backdrop-filter: blur(6px);
|
|
8126
|
+
-webkit-backdrop-filter: blur(6px);
|
|
8127
|
+
background: linear-gradient(135deg, #2196F3, #1976D2);
|
|
8128
|
+
color: #ffffff;
|
|
8129
|
+
border: 1px solid rgba(33, 150, 243, 0.3);
|
|
8130
|
+
padding: 6px 12px;
|
|
8131
|
+
border-radius: 10px;
|
|
8132
|
+
font-size: 10px;
|
|
8133
|
+
font-weight: 500;
|
|
7832
8134
|
margin-left: 8px;
|
|
7833
8135
|
cursor: pointer;
|
|
7834
|
-
transition: all 0.2s;
|
|
7835
8136
|
white-space: nowrap;
|
|
8137
|
+
|
|
8138
|
+
box-shadow:
|
|
8139
|
+
0 2px 8px rgba(33, 150, 243, 0.3),
|
|
8140
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.2);
|
|
8141
|
+
|
|
8142
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
8143
|
+
transform: translateZ(0);
|
|
7836
8144
|
}
|
|
7837
8145
|
|
|
7838
8146
|
.share-btn:hover {
|
|
7839
|
-
background: #1976D2;
|
|
7840
|
-
transform: scale(1.
|
|
8147
|
+
background: linear-gradient(135deg, #1976D2, #1565C0);
|
|
8148
|
+
transform: scale(1.05) translateZ(5px);
|
|
8149
|
+
box-shadow:
|
|
8150
|
+
0 4px 16px rgba(33, 150, 243, 0.4),
|
|
8151
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.3);
|
|
7841
8152
|
}
|
|
7842
8153
|
|
|
7843
8154
|
.share-btn:active {
|
|
7844
|
-
transform: scale(0.
|
|
8155
|
+
transform: scale(0.98);
|
|
8156
|
+
transition: transform 0.1s;
|
|
7845
8157
|
}
|
|
7846
8158
|
|
|
7847
8159
|
.api-curl-btn {
|
|
7848
|
-
|
|
7849
|
-
|
|
7850
|
-
|
|
7851
|
-
|
|
7852
|
-
|
|
7853
|
-
|
|
8160
|
+
/* API Curl 按钮毛玻璃效果 */
|
|
8161
|
+
backdrop-filter: blur(6px);
|
|
8162
|
+
-webkit-backdrop-filter: blur(6px);
|
|
8163
|
+
background: linear-gradient(135deg, #4CAF50, #45a049);
|
|
8164
|
+
color: #ffffff;
|
|
8165
|
+
border: 1px solid rgba(76, 175, 80, 0.3);
|
|
8166
|
+
padding: 6px 12px;
|
|
8167
|
+
border-radius: 10px;
|
|
8168
|
+
font-size: 10px;
|
|
8169
|
+
font-weight: 500;
|
|
7854
8170
|
margin-left: 8px;
|
|
7855
8171
|
cursor: pointer;
|
|
7856
|
-
transition: all 0.2s;
|
|
7857
8172
|
white-space: nowrap;
|
|
8173
|
+
|
|
8174
|
+
box-shadow:
|
|
8175
|
+
0 2px 8px rgba(76, 175, 80, 0.3),
|
|
8176
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.2);
|
|
8177
|
+
|
|
8178
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
8179
|
+
transform: translateZ(0);
|
|
7858
8180
|
}
|
|
7859
8181
|
|
|
7860
8182
|
.api-curl-btn:hover {
|
|
7861
|
-
background: #45a049;
|
|
7862
|
-
transform: scale(1.
|
|
8183
|
+
background: linear-gradient(135deg, #45a049, #388E3C);
|
|
8184
|
+
transform: scale(1.05) translateZ(5px);
|
|
8185
|
+
box-shadow:
|
|
8186
|
+
0 4px 16px rgba(76, 175, 80, 0.4),
|
|
8187
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.3);
|
|
7863
8188
|
}
|
|
7864
8189
|
|
|
7865
8190
|
.api-curl-btn:active {
|
|
7866
|
-
transform: scale(0.
|
|
8191
|
+
transform: scale(0.98);
|
|
8192
|
+
transition: transform 0.1s;
|
|
7867
8193
|
}
|
|
7868
8194
|
|
|
7869
8195
|
.console-content {
|
|
@@ -7935,7 +8261,73 @@ const styles = `
|
|
|
7935
8261
|
cursor: not-allowed;
|
|
7936
8262
|
}
|
|
7937
8263
|
|
|
7938
|
-
|
|
8264
|
+
/* 动态光效动画 - 模拟 Shader 效果 */
|
|
8265
|
+
@keyframes liquid-shimmer {
|
|
8266
|
+
0% {
|
|
8267
|
+
background-position: -300% center;
|
|
8268
|
+
transform: translateX(-10px);
|
|
8269
|
+
}
|
|
8270
|
+
50% {
|
|
8271
|
+
transform: translateX(0);
|
|
8272
|
+
}
|
|
8273
|
+
100% {
|
|
8274
|
+
background-position: 300% center;
|
|
8275
|
+
transform: translateX(10px);
|
|
8276
|
+
}
|
|
8277
|
+
}
|
|
8278
|
+
|
|
8279
|
+
@keyframes liquid-refraction {
|
|
8280
|
+
0%, 100% {
|
|
8281
|
+
transform: scale(1) perspective(1000px) rotateY(0deg);
|
|
8282
|
+
filter: blur(0px);
|
|
8283
|
+
}
|
|
8284
|
+
25% {
|
|
8285
|
+
transform: scale(1.01) perspective(1000px) rotateY(0.5deg);
|
|
8286
|
+
filter: blur(0.5px);
|
|
8287
|
+
}
|
|
8288
|
+
75% {
|
|
8289
|
+
transform: scale(0.99) perspective(1000px) rotateY(-0.5deg);
|
|
8290
|
+
filter: blur(0.3px);
|
|
8291
|
+
}
|
|
8292
|
+
}
|
|
8293
|
+
|
|
8294
|
+
@keyframes liquid-expand {
|
|
8295
|
+
0% {
|
|
8296
|
+
opacity: 0;
|
|
8297
|
+
transform: scale(0.95) translateY(-10px);
|
|
8298
|
+
backdrop-filter: blur(5px);
|
|
8299
|
+
}
|
|
8300
|
+
50% {
|
|
8301
|
+
opacity: 0.7;
|
|
8302
|
+
transform: scale(1.02) translateY(-2px);
|
|
8303
|
+
backdrop-filter: blur(12px);
|
|
8304
|
+
}
|
|
8305
|
+
100% {
|
|
8306
|
+
opacity: 1;
|
|
8307
|
+
transform: scale(1) translateY(0);
|
|
8308
|
+
backdrop-filter: blur(8px);
|
|
8309
|
+
}
|
|
8310
|
+
}
|
|
8311
|
+
|
|
8312
|
+
@keyframes liquid-glow {
|
|
8313
|
+
0%, 100% {
|
|
8314
|
+
box-shadow: 0 0 20px rgba(66, 184, 131, 0.3);
|
|
8315
|
+
}
|
|
8316
|
+
50% {
|
|
8317
|
+
box-shadow: 0 0 30px rgba(66, 184, 131, 0.5);
|
|
8318
|
+
}
|
|
8319
|
+
}
|
|
8320
|
+
|
|
8321
|
+
.expanding {
|
|
8322
|
+
animation: liquid-expand 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
8323
|
+
}
|
|
8324
|
+
|
|
8325
|
+
.request-item.expanded {
|
|
8326
|
+
animation: liquid-glow 2s ease-in-out infinite;
|
|
8327
|
+
}
|
|
8328
|
+
|
|
8329
|
+
/* 移动端响应式 */
|
|
8330
|
+
@media (max-width: 768px) {
|
|
7939
8331
|
#network-debugger-panel.bottom-right,
|
|
7940
8332
|
#network-debugger-panel.bottom-left,
|
|
7941
8333
|
#network-debugger-panel.top-right,
|
|
@@ -7943,32 +8335,87 @@ const styles = `
|
|
|
7943
8335
|
width: calc(100vw - 20px) !important;
|
|
7944
8336
|
left: 10px !important;
|
|
7945
8337
|
right: auto !important;
|
|
8338
|
+
/* 移动端清晰毛玻璃 */
|
|
8339
|
+
backdrop-filter: blur(15px) saturate(150%);
|
|
8340
|
+
-webkit-backdrop-filter: blur(15px) saturate(150%);
|
|
8341
|
+
}
|
|
8342
|
+
|
|
8343
|
+
.request-item {
|
|
8344
|
+
padding: 12px;
|
|
8345
|
+
border-radius: 12px;
|
|
8346
|
+
}
|
|
8347
|
+
|
|
8348
|
+
.debugger-header {
|
|
8349
|
+
padding: 10px 12px;
|
|
8350
|
+
}
|
|
8351
|
+
|
|
8352
|
+
.debugger-controls {
|
|
8353
|
+
gap: 6px;
|
|
8354
|
+
}
|
|
8355
|
+
|
|
8356
|
+
.debugger-btn {
|
|
8357
|
+
padding: 4px 8px;
|
|
8358
|
+
font-size: 10px;
|
|
7946
8359
|
}
|
|
7947
8360
|
|
|
7948
8361
|
/* 最小化时不应用全宽,保持小尺寸 */
|
|
7949
8362
|
#network-debugger-panel.minimized {
|
|
7950
|
-
width:
|
|
7951
|
-
max-width:
|
|
7952
|
-
height:
|
|
8363
|
+
width: 180px !important;
|
|
8364
|
+
max-width: 180px !important;
|
|
8365
|
+
height: 40px !important;
|
|
7953
8366
|
}
|
|
7954
8367
|
}
|
|
7955
8368
|
|
|
8369
|
+
@media (max-width: 480px) {
|
|
8370
|
+
.request-header {
|
|
8371
|
+
flex-direction: column;
|
|
8372
|
+
gap: 8px;
|
|
8373
|
+
align-items: stretch;
|
|
8374
|
+
}
|
|
8375
|
+
|
|
8376
|
+
.request-method,
|
|
8377
|
+
.request-status {
|
|
8378
|
+
align-self: flex-start;
|
|
8379
|
+
}
|
|
8380
|
+
|
|
8381
|
+
.share-btn,
|
|
8382
|
+
.api-curl-btn {
|
|
8383
|
+
margin-left: 0;
|
|
8384
|
+
margin-top: 4px;
|
|
8385
|
+
}
|
|
8386
|
+
}
|
|
8387
|
+
|
|
8388
|
+
/* iOS 26 风格滚动条 */
|
|
7956
8389
|
#network-debugger-panel ::-webkit-scrollbar {
|
|
7957
|
-
width:
|
|
7958
|
-
height:
|
|
8390
|
+
width: 8px;
|
|
8391
|
+
height: 8px;
|
|
7959
8392
|
}
|
|
7960
8393
|
|
|
7961
8394
|
#network-debugger-panel ::-webkit-scrollbar-track {
|
|
7962
|
-
background:
|
|
8395
|
+
background: rgba(255, 255, 255, 0.05);
|
|
8396
|
+
border-radius: 4px;
|
|
8397
|
+
backdrop-filter: blur(5px);
|
|
7963
8398
|
}
|
|
7964
8399
|
|
|
7965
8400
|
#network-debugger-panel ::-webkit-scrollbar-thumb {
|
|
7966
|
-
background:
|
|
7967
|
-
|
|
8401
|
+
background: linear-gradient(
|
|
8402
|
+
135deg,
|
|
8403
|
+
rgba(255, 255, 255, 0.2),
|
|
8404
|
+
rgba(255, 255, 255, 0.1)
|
|
8405
|
+
);
|
|
8406
|
+
border-radius: 4px;
|
|
8407
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
8408
|
+
backdrop-filter: blur(10px);
|
|
8409
|
+
transition: all 0.3s ease;
|
|
7968
8410
|
}
|
|
7969
8411
|
|
|
7970
8412
|
#network-debugger-panel ::-webkit-scrollbar-thumb:hover {
|
|
7971
|
-
background:
|
|
8413
|
+
background: linear-gradient(
|
|
8414
|
+
135deg,
|
|
8415
|
+
rgba(255, 255, 255, 0.3),
|
|
8416
|
+
rgba(255, 255, 255, 0.15)
|
|
8417
|
+
);
|
|
8418
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
|
7972
8419
|
}
|
|
7973
8420
|
|
|
7974
8421
|
.resize-handle {
|
|
@@ -8241,8 +8688,6 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8241
8688
|
this.dragStart = { x: 0, y: 0 };
|
|
8242
8689
|
this.resizeTimeout = null;
|
|
8243
8690
|
this.resizeDirection = "";
|
|
8244
|
-
this.currentTab = "network";
|
|
8245
|
-
this.consoleHistory = [];
|
|
8246
8691
|
this.requestsCache = [];
|
|
8247
8692
|
this.interceptor = interceptor;
|
|
8248
8693
|
const savedConfig = this.loadConfig();
|
|
@@ -8250,7 +8695,6 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8250
8695
|
position: "bottom-right",
|
|
8251
8696
|
theme: "dark",
|
|
8252
8697
|
minimized: false,
|
|
8253
|
-
showConsole: true,
|
|
8254
8698
|
isClosed: false,
|
|
8255
8699
|
...savedConfig,
|
|
8256
8700
|
// 先应用保存的配置
|
|
@@ -8289,60 +8733,17 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8289
8733
|
</div>
|
|
8290
8734
|
</div>
|
|
8291
8735
|
<div class="debugger-content">
|
|
8292
|
-
<div class="debugger-tabs">
|
|
8293
|
-
<button class="debugger-tab active" data-tab="network">网络</button>
|
|
8294
|
-
${this.config.showConsole ? '<button class="debugger-tab" data-tab="console">控制台</button>' : ""}
|
|
8295
|
-
<button class="debugger-tab" data-tab="tools">工具</button>
|
|
8296
|
-
<button class="debugger-tab" data-tab="about">关于</button>
|
|
8297
|
-
</div>
|
|
8298
8736
|
<div class="debugger-panel-content">
|
|
8299
|
-
<div class="network-panel"
|
|
8737
|
+
<div class="network-panel">
|
|
8300
8738
|
<div class="request-list"></div>
|
|
8301
8739
|
</div>
|
|
8302
|
-
${this.config.showConsole ? `
|
|
8303
|
-
<div class="console-panel" data-panel="console" style="display: none;">
|
|
8304
|
-
<div class="console-content"></div>
|
|
8305
|
-
<div class="console-input">
|
|
8306
|
-
<span class="console-prompt">></span>
|
|
8307
|
-
<input class="console-cmd" placeholder="输入 JavaScript 代码..." />
|
|
8308
|
-
</div>
|
|
8309
|
-
</div>
|
|
8310
|
-
` : ""}
|
|
8311
|
-
<div class="tools-panel" data-panel="tools" style="display: none;">
|
|
8312
|
-
<div class="tools-section">
|
|
8313
|
-
<div class="tool-buttons">
|
|
8314
|
-
<button class="tool-btn" data-tool="parse-curl">解析 cURL</button>
|
|
8315
|
-
<button class="tool-btn" data-tool="export-har">导出 HAR</button>
|
|
8316
|
-
<button class="tool-btn" data-tool="cors-test">CORS 测试</button>
|
|
8317
|
-
<button class="tool-btn" data-tool="decrypt-test">解密测试</button>
|
|
8318
|
-
</div>
|
|
8319
|
-
</div>
|
|
8320
|
-
<div class="tools-content">
|
|
8321
|
-
<textarea placeholder="在这里粘贴 cURL 命令或输入要测试的数据..." style="width: 100%; height: 200px; background: #222; color: #fff; border: 1px solid #444; padding: 8px; font-family: monospace;"></textarea>
|
|
8322
|
-
</div>
|
|
8323
|
-
</div>
|
|
8324
|
-
<div class="about-panel" data-panel="about" style="display: none;">
|
|
8325
|
-
<div style="padding: 20px; color: #fff; text-align: center;">
|
|
8326
|
-
<h2 style="margin: 0 0 20px 0;">🔓 PWTK 解密小工具</h2>
|
|
8327
|
-
<p style="margin: 10px 0;">Version: ${"1.2.48"}</p>
|
|
8328
|
-
<p style="margin: 10px 0;">👨💻 Created by <strong>Leo (@leeguoo)</strong></p>
|
|
8329
|
-
<p style="margin: 10px 0;">📧 技术支持:请联系 Leo</p>
|
|
8330
|
-
<p style="margin: 10px 0;">🌐 分享服务:curl.bwg.leeguoo.com</p>
|
|
8331
|
-
<div style="margin-top: 20px; padding: 15px; background: #333; border-radius: 8px;">
|
|
8332
|
-
<p style="margin: 5px 0; font-size: 12px;">本工具专为 PWTK 项目开发</p>
|
|
8333
|
-
<p style="margin: 5px 0; font-size: 12px;">提供网络请求拦截、解密、分享等功能</p>
|
|
8334
|
-
</div>
|
|
8335
|
-
</div>
|
|
8336
|
-
</div>
|
|
8337
8740
|
</div>
|
|
8338
8741
|
</div>
|
|
8339
8742
|
`;
|
|
8340
8743
|
this.addResizeHandles();
|
|
8341
8744
|
this.shadowRoot.appendChild(this.container);
|
|
8342
8745
|
document.body.appendChild(this.hostElement);
|
|
8343
|
-
this.networkTab = this.shadowRoot.querySelector(
|
|
8344
|
-
this.consoleTab = this.shadowRoot.querySelector('[data-panel="console"]');
|
|
8345
|
-
this.consoleContent = this.shadowRoot.querySelector(".console-content");
|
|
8746
|
+
this.networkTab = this.shadowRoot.querySelector(".network-panel");
|
|
8346
8747
|
}
|
|
8347
8748
|
addResizeHandles() {
|
|
8348
8749
|
const handles = ["n", "s", "e", "w", "ne", "nw", "se", "sw"];
|
|
@@ -8356,9 +8757,6 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8356
8757
|
bindEvents() {
|
|
8357
8758
|
const header = this.shadowRoot.querySelector(".debugger-header");
|
|
8358
8759
|
const controls = this.shadowRoot.querySelector(".debugger-controls");
|
|
8359
|
-
const tabs = this.shadowRoot.querySelectorAll(".debugger-tab");
|
|
8360
|
-
const toolButtons = this.shadowRoot.querySelectorAll("[data-tool]");
|
|
8361
|
-
const consoleInput = this.shadowRoot.querySelector(".console-cmd");
|
|
8362
8760
|
header.addEventListener("mousedown", (e) => {
|
|
8363
8761
|
if (e.target === controls || controls.contains(e.target)) return;
|
|
8364
8762
|
this.startDrag(e);
|
|
@@ -8387,28 +8785,6 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8387
8785
|
break;
|
|
8388
8786
|
}
|
|
8389
8787
|
});
|
|
8390
|
-
tabs.forEach((tab) => {
|
|
8391
|
-
tab.addEventListener("click", (e) => {
|
|
8392
|
-
const target = e.target;
|
|
8393
|
-
const tabName = target.dataset.tab;
|
|
8394
|
-
this.switchTab(tabName);
|
|
8395
|
-
});
|
|
8396
|
-
});
|
|
8397
|
-
toolButtons.forEach((button) => {
|
|
8398
|
-
button.addEventListener("click", (e) => {
|
|
8399
|
-
const target = e.target;
|
|
8400
|
-
const tool = target.dataset.tool;
|
|
8401
|
-
this.handleToolAction(tool);
|
|
8402
|
-
});
|
|
8403
|
-
});
|
|
8404
|
-
if (consoleInput) {
|
|
8405
|
-
consoleInput.addEventListener("keypress", (e) => {
|
|
8406
|
-
if (e.key === "Enter") {
|
|
8407
|
-
this.executeConsoleCommand(consoleInput.value);
|
|
8408
|
-
consoleInput.value = "";
|
|
8409
|
-
}
|
|
8410
|
-
});
|
|
8411
|
-
}
|
|
8412
8788
|
const resizeHandles = this.shadowRoot.querySelectorAll(".resize-handle");
|
|
8413
8789
|
resizeHandles.forEach((handle) => {
|
|
8414
8790
|
handle.addEventListener("mousedown", (e) => {
|
|
@@ -8629,21 +9005,11 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8629
9005
|
}
|
|
8630
9006
|
return url;
|
|
8631
9007
|
}
|
|
8632
|
-
switchTab
|
|
8633
|
-
this.shadowRoot.querySelectorAll(".debugger-tab").forEach((tab) => {
|
|
8634
|
-
tab.classList.toggle("active", tab.dataset.tab === tabName);
|
|
8635
|
-
});
|
|
8636
|
-
this.shadowRoot.querySelectorAll("[data-panel]").forEach((panel) => {
|
|
8637
|
-
const panelEl = panel;
|
|
8638
|
-
panelEl.style.display = panel.getAttribute("data-panel") === tabName ? "block" : "none";
|
|
8639
|
-
});
|
|
8640
|
-
this.currentTab = tabName;
|
|
8641
|
-
}
|
|
9008
|
+
// 移除 switchTab 方法 - 不再需要标签页切换
|
|
8642
9009
|
clearRequests() {
|
|
8643
9010
|
this.requestsCache = [];
|
|
8644
9011
|
this.interceptor.clearRequests();
|
|
8645
9012
|
this.renderRequests();
|
|
8646
|
-
this.logToConsole("✅ 已清空网络请求记录");
|
|
8647
9013
|
}
|
|
8648
9014
|
exportData() {
|
|
8649
9015
|
const data = {
|
|
@@ -8660,22 +9026,18 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8660
9026
|
a.download = `network-debug-${Date.now()}.json`;
|
|
8661
9027
|
a.click();
|
|
8662
9028
|
URL.revokeObjectURL(url);
|
|
8663
|
-
this.logToConsole("💾 网络数据已导出 (by Leo)");
|
|
8664
9029
|
}
|
|
8665
9030
|
async shareRequest(request) {
|
|
8666
9031
|
try {
|
|
8667
|
-
this.logToConsole("📤 正在创建分享链接...");
|
|
8668
9032
|
const shareUrl = await createShareLink(request);
|
|
8669
9033
|
if (shareUrl) {
|
|
8670
9034
|
const copied = await copyToClipboard(shareUrl);
|
|
8671
9035
|
if (copied) {
|
|
8672
|
-
this.logToConsole(`✅ 分享链接已复制到剪贴板: ${shareUrl}`);
|
|
8673
9036
|
alert(`分享链接已复制到剪贴板!
|
|
8674
9037
|
${shareUrl}
|
|
8675
9038
|
|
|
8676
9039
|
Created by Leo (@leeguoo)`);
|
|
8677
9040
|
} else {
|
|
8678
|
-
this.logToConsole(`✅ 分享链接: ${shareUrl}`);
|
|
8679
9041
|
prompt("分享链接已创建,请手动复制:\n\nCreated by Leo (@leeguoo)", shareUrl);
|
|
8680
9042
|
}
|
|
8681
9043
|
} else {
|
|
@@ -8683,28 +9045,23 @@ Created by Leo (@leeguoo)`);
|
|
|
8683
9045
|
}
|
|
8684
9046
|
} catch (error) {
|
|
8685
9047
|
logger.error("分享失败:", error);
|
|
8686
|
-
this.logToConsole(`❌ 分享失败: ${error}`);
|
|
8687
9048
|
alert("分享失败,请稍后重试");
|
|
8688
9049
|
}
|
|
8689
9050
|
}
|
|
8690
9051
|
async generateApiCurl(request) {
|
|
8691
9052
|
try {
|
|
8692
|
-
this.logToConsole("🔧 正在生成API cURL命令...");
|
|
8693
9053
|
const curlCommand = formatAsApiCurl(request);
|
|
8694
9054
|
const copied = await copyToClipboard(curlCommand);
|
|
8695
9055
|
if (copied) {
|
|
8696
|
-
this.logToConsole(`✅ API cURL已复制到剪贴板`);
|
|
8697
9056
|
alert(`API cURL命令已复制到剪贴板!
|
|
8698
9057
|
适用于 httpmisonote.com API
|
|
8699
9058
|
|
|
8700
9059
|
Created by Leo (@leeguoo)`);
|
|
8701
9060
|
} else {
|
|
8702
|
-
this.logToConsole(`✅ API cURL: ${curlCommand}`);
|
|
8703
9061
|
prompt("API cURL命令已生成,请手动复制:\n\nCreated by Leo (@leeguoo)", curlCommand);
|
|
8704
9062
|
}
|
|
8705
9063
|
} catch (error) {
|
|
8706
9064
|
logger.error("生成API cURL失败:", error);
|
|
8707
|
-
this.logToConsole(`❌ 生成API cURL失败: ${error}`);
|
|
8708
9065
|
alert("生成API cURL失败,请稍后重试");
|
|
8709
9066
|
}
|
|
8710
9067
|
}
|
|
@@ -8726,131 +9083,9 @@ Created by Leo (@leeguoo)`);
|
|
|
8726
9083
|
this.container.style.bottom = "auto";
|
|
8727
9084
|
}
|
|
8728
9085
|
}
|
|
8729
|
-
handleToolAction
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
switch (tool) {
|
|
8733
|
-
case "parse-curl":
|
|
8734
|
-
this.handleParseCurl(input);
|
|
8735
|
-
break;
|
|
8736
|
-
case "export-har":
|
|
8737
|
-
this.exportHAR();
|
|
8738
|
-
break;
|
|
8739
|
-
case "cors-test":
|
|
8740
|
-
this.handleCorsTest(input);
|
|
8741
|
-
break;
|
|
8742
|
-
case "decrypt-test":
|
|
8743
|
-
this.handleDecryptTest(input);
|
|
8744
|
-
break;
|
|
8745
|
-
}
|
|
8746
|
-
}
|
|
8747
|
-
handleParseCurl(curlCommand) {
|
|
8748
|
-
if (!curlCommand) {
|
|
8749
|
-
this.logToConsole("❌ 请输入 cURL 命令");
|
|
8750
|
-
return;
|
|
8751
|
-
}
|
|
8752
|
-
try {
|
|
8753
|
-
const parsed = parseCurl(curlCommand);
|
|
8754
|
-
this.logToConsole("✅ cURL 解析成功:");
|
|
8755
|
-
this.logToConsole(parsed);
|
|
8756
|
-
} catch (error) {
|
|
8757
|
-
this.logToConsole(`❌ cURL 解析失败: ${error instanceof Error ? error.message : String(error)}`, "error");
|
|
8758
|
-
}
|
|
8759
|
-
}
|
|
8760
|
-
exportHAR() {
|
|
8761
|
-
const har = {
|
|
8762
|
-
log: {
|
|
8763
|
-
version: "1.2",
|
|
8764
|
-
creator: {
|
|
8765
|
-
name: "NetworkDebugger",
|
|
8766
|
-
version: "1.0.0",
|
|
8767
|
-
comment: "Created by Leo (@leeguoo)"
|
|
8768
|
-
},
|
|
8769
|
-
entries: this.requestsCache.map((request) => ({
|
|
8770
|
-
startedDateTime: new Date(request.timestamp).toISOString(),
|
|
8771
|
-
time: request.duration || 0,
|
|
8772
|
-
request: {
|
|
8773
|
-
method: request.method,
|
|
8774
|
-
url: request.url,
|
|
8775
|
-
headers: Object.entries(request.headers).map(([name, value]) => ({ name, value })),
|
|
8776
|
-
postData: request.requestBody ? {
|
|
8777
|
-
mimeType: "application/json",
|
|
8778
|
-
text: typeof request.requestBody === "string" ? request.requestBody : JSON.stringify(request.requestBody)
|
|
8779
|
-
} : void 0
|
|
8780
|
-
},
|
|
8781
|
-
response: {
|
|
8782
|
-
status: request.status || 0,
|
|
8783
|
-
statusText: request.statusText || "",
|
|
8784
|
-
headers: request.responseHeaders ? Object.entries(request.responseHeaders).map(([name, value]) => ({ name, value })) : [],
|
|
8785
|
-
content: {
|
|
8786
|
-
size: 0,
|
|
8787
|
-
mimeType: "application/json",
|
|
8788
|
-
text: request.responseBody ? typeof request.responseBody === "string" ? request.responseBody : JSON.stringify(request.responseBody) : ""
|
|
8789
|
-
}
|
|
8790
|
-
}
|
|
8791
|
-
}))
|
|
8792
|
-
}
|
|
8793
|
-
};
|
|
8794
|
-
const blob = new Blob([JSON.stringify(har, null, 2)], { type: "application/json" });
|
|
8795
|
-
const url = URL.createObjectURL(blob);
|
|
8796
|
-
const a = document.createElement("a");
|
|
8797
|
-
a.href = url;
|
|
8798
|
-
a.download = `network-har-${Date.now()}.har`;
|
|
8799
|
-
a.click();
|
|
8800
|
-
URL.revokeObjectURL(url);
|
|
8801
|
-
this.logToConsole("💾 HAR 文件已导出");
|
|
8802
|
-
}
|
|
8803
|
-
handleCorsTest(url) {
|
|
8804
|
-
if (!url) {
|
|
8805
|
-
this.logToConsole("❌ 请输入要测试的 URL");
|
|
8806
|
-
return;
|
|
8807
|
-
}
|
|
8808
|
-
this.logToConsole(`🔍 开始 CORS 测试: ${url}`);
|
|
8809
|
-
fetch(url, { mode: "cors" }).then((response) => {
|
|
8810
|
-
this.logToConsole(`✅ CORS 测试成功: ${response.status} ${response.statusText}`);
|
|
8811
|
-
}).catch((error) => {
|
|
8812
|
-
this.logToConsole(`❌ CORS 测试失败: ${error.message}`);
|
|
8813
|
-
});
|
|
8814
|
-
}
|
|
8815
|
-
handleDecryptTest(data) {
|
|
8816
|
-
if (!data) {
|
|
8817
|
-
this.logToConsole("❌ 请输入要解密的数据");
|
|
8818
|
-
return;
|
|
8819
|
-
}
|
|
8820
|
-
this.logToConsole("🔓 解密测试功能开发中...");
|
|
8821
|
-
}
|
|
8822
|
-
executeConsoleCommand(command) {
|
|
8823
|
-
if (!command.trim()) return;
|
|
8824
|
-
this.consoleHistory.push(command);
|
|
8825
|
-
this.logToConsole(`> ${command}`);
|
|
8826
|
-
try {
|
|
8827
|
-
const func = new Function("return " + command);
|
|
8828
|
-
const result = func();
|
|
8829
|
-
this.logToConsole(result);
|
|
8830
|
-
} catch (error) {
|
|
8831
|
-
try {
|
|
8832
|
-
const func = new Function(command);
|
|
8833
|
-
const result = func();
|
|
8834
|
-
this.logToConsole(result !== void 0 ? result : "undefined");
|
|
8835
|
-
} catch (secondError) {
|
|
8836
|
-
this.logToConsole(`❌ ${error}`, "error");
|
|
8837
|
-
}
|
|
8838
|
-
}
|
|
8839
|
-
}
|
|
8840
|
-
logToConsole(message, type = "log") {
|
|
8841
|
-
if (!this.consoleContent) return;
|
|
8842
|
-
const timestamp = (/* @__PURE__ */ new Date()).toLocaleTimeString();
|
|
8843
|
-
const formattedMessage = typeof message === "object" ? JSON.stringify(message, null, 2) : message;
|
|
8844
|
-
const logElement = document.createElement("div");
|
|
8845
|
-
logElement.innerHTML = `[${timestamp}] ${formattedMessage}`;
|
|
8846
|
-
if (type === "error") {
|
|
8847
|
-
logElement.style.color = "#f44336";
|
|
8848
|
-
} else if (type === "warn") {
|
|
8849
|
-
logElement.style.color = "#ff9800";
|
|
8850
|
-
}
|
|
8851
|
-
this.consoleContent.appendChild(logElement);
|
|
8852
|
-
this.consoleContent.scrollTop = this.consoleContent.scrollHeight;
|
|
8853
|
-
}
|
|
9086
|
+
// 移除 handleToolAction 方法 - 不再需要工具功能
|
|
9087
|
+
// 移除 handleParseCurl 方法
|
|
9088
|
+
// 移除所有工具和控制台相关方法
|
|
8854
9089
|
startDrag(e) {
|
|
8855
9090
|
this.isDragging = true;
|
|
8856
9091
|
this.dragStart = { x: e.clientX, y: e.clientY };
|
|
@@ -9111,7 +9346,6 @@ Created by Leo (@leeguoo)`);
|
|
|
9111
9346
|
position: this.config.position,
|
|
9112
9347
|
theme: this.config.theme,
|
|
9113
9348
|
minimized: this.config.minimized,
|
|
9114
|
-
showConsole: this.config.showConsole,
|
|
9115
9349
|
isClosed: this.config.isClosed
|
|
9116
9350
|
};
|
|
9117
9351
|
localStorage.setItem(_DebugPanel.STORAGE_KEY, JSON.stringify(configToSave));
|
|
@@ -9237,7 +9471,7 @@ class NetworkDebugger {
|
|
|
9237
9471
|
this.initialized = true;
|
|
9238
9472
|
logger.consoleDirect(`
|
|
9239
9473
|
╔════════════════════════════════════════╗
|
|
9240
|
-
║ 🔓 PWTK 解密小工具 v${"1.2.
|
|
9474
|
+
║ 🔓 PWTK 解密小工具 v${"1.2.49-beta.1"} ║
|
|
9241
9475
|
║ Created by Leo (@leeguoo) ║
|
|
9242
9476
|
║ 技术支持: 请联系 Leo ║
|
|
9243
9477
|
║ 分享服务: curl.bwg.leeguoo.com ║
|
|
@@ -9298,7 +9532,7 @@ class NetworkDebugger {
|
|
|
9298
9532
|
}
|
|
9299
9533
|
async checkForUpdates() {
|
|
9300
9534
|
try {
|
|
9301
|
-
const currentVersion = "1.2.
|
|
9535
|
+
const currentVersion = "1.2.49-beta.1";
|
|
9302
9536
|
logger.info(`[PWTK Update] Checking for updates... Current version: ${currentVersion}`);
|
|
9303
9537
|
const response = await fetch("https://registry.npmjs.org/@leeguoo/pwtk-network-debugger/latest");
|
|
9304
9538
|
const data = await response.json();
|
|
@@ -9318,7 +9552,7 @@ class NetworkDebugger {
|
|
|
9318
9552
|
logger.error("[PWTK Update] Failed to check for updates:", error);
|
|
9319
9553
|
return {
|
|
9320
9554
|
hasUpdate: false,
|
|
9321
|
-
currentVersion: "1.2.
|
|
9555
|
+
currentVersion: "1.2.49-beta.1"
|
|
9322
9556
|
};
|
|
9323
9557
|
}
|
|
9324
9558
|
}
|