@leeguoo/pwtk-network-debugger 1.2.47 → 1.2.49-beta.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/dist/index.cjs.js +3 -3
- package/dist/index.esm.js +623 -394
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -7397,77 +7397,127 @@ 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
|
+
/* iOS 26 Liquid Glass 核心效果 */
|
|
7419
|
+
backdrop-filter: blur(20px) saturate(180%);
|
|
7420
|
+
-webkit-backdrop-filter: blur(20px) saturate(180%);
|
|
7421
|
+
|
|
7422
|
+
/* iOS 浅色毛玻璃背景 */
|
|
7423
|
+
background: rgba(245, 245, 247, 0.75);
|
|
7424
|
+
background-image: linear-gradient(
|
|
7425
|
+
135deg,
|
|
7426
|
+
rgba(255, 255, 255, 0.4) 0%,
|
|
7427
|
+
rgba(255, 255, 255, 0.2) 100%
|
|
7428
|
+
);
|
|
7429
|
+
|
|
7430
|
+
/* 玻璃边框 */
|
|
7431
|
+
border: 1px solid var(--liquid-glass-border);
|
|
7432
|
+
|
|
7433
|
+
/* 多层阴影创建深度 */
|
|
7434
|
+
box-shadow:
|
|
7435
|
+
0 8px 32px var(--liquid-glass-shadow),
|
|
7436
|
+
inset 0 2px 4px var(--liquid-glass-highlight),
|
|
7437
|
+
inset 0 -2px 4px rgba(0, 0, 0, 0.1);
|
|
7438
|
+
|
|
7439
|
+
border-radius: 20px;
|
|
7455
7440
|
color: #ffffff;
|
|
7456
|
-
font-family: '
|
|
7441
|
+
font-family: 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Monaco', 'Menlo', monospace;
|
|
7457
7442
|
font-size: 12px;
|
|
7458
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
|
7459
|
-
border-radius: 8px;
|
|
7460
7443
|
overflow: hidden;
|
|
7461
7444
|
max-width: 90vw;
|
|
7462
7445
|
max-height: 80vh;
|
|
7463
|
-
|
|
7446
|
+
|
|
7447
|
+
/* 性能优化 */
|
|
7448
|
+
will-change: transform;
|
|
7449
|
+
transform: translateZ(0);
|
|
7450
|
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7451
|
+
}
|
|
7452
|
+
|
|
7453
|
+
/* 主面板的镜面反射效果 */
|
|
7454
|
+
#network-debugger-panel::before {
|
|
7455
|
+
content: '';
|
|
7456
|
+
position: absolute;
|
|
7457
|
+
inset: 0;
|
|
7458
|
+
border-radius: inherit;
|
|
7459
|
+
background: linear-gradient(
|
|
7460
|
+
135deg,
|
|
7461
|
+
rgba(255, 255, 255, 0.3) 0%,
|
|
7462
|
+
rgba(255, 255, 255, 0.05) 50%,
|
|
7463
|
+
transparent 100%
|
|
7464
|
+
);
|
|
7465
|
+
pointer-events: none;
|
|
7466
|
+
z-index: 1;
|
|
7467
|
+
}
|
|
7468
|
+
|
|
7469
|
+
/* 镜面高光效果 */
|
|
7470
|
+
#network-debugger-panel::after {
|
|
7471
|
+
content: '';
|
|
7472
|
+
position: absolute;
|
|
7473
|
+
inset: 0;
|
|
7474
|
+
border-radius: inherit;
|
|
7475
|
+
background: radial-gradient(
|
|
7476
|
+
circle at 30% 30%,
|
|
7477
|
+
rgba(255, 255, 255, 0.2),
|
|
7478
|
+
transparent 70%
|
|
7479
|
+
);
|
|
7480
|
+
pointer-events: none;
|
|
7481
|
+
z-index: 1;
|
|
7464
7482
|
}
|
|
7465
7483
|
|
|
7466
7484
|
#network-debugger-panel.minimized {
|
|
7467
|
-
|
|
7485
|
+
/* iOS 控制中心风格的圆角矩形 */
|
|
7486
|
+
height: 48px !important;
|
|
7487
|
+
width: 220px !important;
|
|
7488
|
+
max-width: 220px !important;
|
|
7489
|
+
border-radius: 24px !important;
|
|
7468
7490
|
overflow: hidden;
|
|
7469
|
-
|
|
7470
|
-
|
|
7491
|
+
|
|
7492
|
+
/* 真正的 iOS Liquid Glass 效果 */
|
|
7493
|
+
background:
|
|
7494
|
+
/* 顶部高光 */
|
|
7495
|
+
linear-gradient(180deg,
|
|
7496
|
+
rgba(255, 255, 255, 0.4) 0%,
|
|
7497
|
+
rgba(255, 255, 255, 0) 35%),
|
|
7498
|
+
/* 主玻璃层 */
|
|
7499
|
+
radial-gradient(ellipse at top,
|
|
7500
|
+
rgba(255, 255, 255, 0.25),
|
|
7501
|
+
rgba(255, 255, 255, 0.08)),
|
|
7502
|
+
/* iOS 浅色基底 */
|
|
7503
|
+
rgba(245, 245, 247, 0.8);
|
|
7504
|
+
|
|
7505
|
+
backdrop-filter: blur(30px) saturate(200%);
|
|
7506
|
+
-webkit-backdrop-filter: blur(30px) saturate(200%);
|
|
7507
|
+
|
|
7508
|
+
/* iOS 风格边缘光效 */
|
|
7509
|
+
box-shadow:
|
|
7510
|
+
/* 外发光 */
|
|
7511
|
+
0 0 0 0.5px rgba(255, 255, 255, 0.6),
|
|
7512
|
+
/* 内阴影创建玻璃厚度 */
|
|
7513
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.6),
|
|
7514
|
+
inset 0 -1px 0 0 rgba(0, 0, 0, 0.15),
|
|
7515
|
+
/* 深度阴影 */
|
|
7516
|
+
0 12px 32px rgba(0, 0, 0, 0.25),
|
|
7517
|
+
0 2px 6px rgba(0, 0, 0, 0.15);
|
|
7518
|
+
|
|
7519
|
+
/* 平滑过渡 */
|
|
7520
|
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7471
7521
|
}
|
|
7472
7522
|
|
|
7473
7523
|
#network-debugger-panel.minimized .debugger-content {
|
|
@@ -7482,32 +7532,37 @@ const styles = `
|
|
|
7482
7532
|
display: none;
|
|
7483
7533
|
}
|
|
7484
7534
|
|
|
7535
|
+
#network-debugger-panel.fullscreen {
|
|
7536
|
+
backdrop-filter: blur(25px) saturate(200%);
|
|
7537
|
+
-webkit-backdrop-filter: blur(25px) saturate(200%);
|
|
7538
|
+
}
|
|
7539
|
+
|
|
7485
7540
|
#network-debugger-panel.bottom-right {
|
|
7486
7541
|
bottom: 20px;
|
|
7487
7542
|
right: 20px;
|
|
7488
|
-
width:
|
|
7489
|
-
height:
|
|
7543
|
+
width: 600px;
|
|
7544
|
+
height: 500px;
|
|
7490
7545
|
}
|
|
7491
7546
|
|
|
7492
7547
|
#network-debugger-panel.bottom-left {
|
|
7493
7548
|
bottom: 20px;
|
|
7494
7549
|
left: 20px;
|
|
7495
|
-
width:
|
|
7496
|
-
height:
|
|
7550
|
+
width: 600px;
|
|
7551
|
+
height: 500px;
|
|
7497
7552
|
}
|
|
7498
7553
|
|
|
7499
7554
|
#network-debugger-panel.top-right {
|
|
7500
7555
|
top: 20px;
|
|
7501
7556
|
right: 20px;
|
|
7502
|
-
width:
|
|
7503
|
-
height:
|
|
7557
|
+
width: 600px;
|
|
7558
|
+
height: 500px;
|
|
7504
7559
|
}
|
|
7505
7560
|
|
|
7506
7561
|
#network-debugger-panel.top-left {
|
|
7507
7562
|
top: 20px;
|
|
7508
7563
|
left: 20px;
|
|
7509
|
-
width:
|
|
7510
|
-
height:
|
|
7564
|
+
width: 600px;
|
|
7565
|
+
height: 500px;
|
|
7511
7566
|
}
|
|
7512
7567
|
|
|
7513
7568
|
#network-debugger-panel.fullscreen {
|
|
@@ -7519,87 +7574,138 @@ const styles = `
|
|
|
7519
7574
|
}
|
|
7520
7575
|
|
|
7521
7576
|
.debugger-header {
|
|
7522
|
-
|
|
7523
|
-
|
|
7577
|
+
/* 头部 Liquid Glass 效果 */
|
|
7578
|
+
backdrop-filter: blur(15px) brightness(1.1);
|
|
7579
|
+
-webkit-backdrop-filter: blur(15px) brightness(1.1);
|
|
7580
|
+
|
|
7581
|
+
/* 多层背景效果 */
|
|
7582
|
+
background:
|
|
7583
|
+
/* 顶部高光 */
|
|
7584
|
+
linear-gradient(180deg,
|
|
7585
|
+
rgba(255, 255, 255, 0.8) 0%,
|
|
7586
|
+
rgba(255, 255, 255, 0.4) 60%),
|
|
7587
|
+
/* 基础玻璃层 */
|
|
7588
|
+
linear-gradient(
|
|
7589
|
+
135deg,
|
|
7590
|
+
rgba(255, 255, 255, 0.6),
|
|
7591
|
+
rgba(255, 255, 255, 0.4)
|
|
7592
|
+
);
|
|
7593
|
+
|
|
7594
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
7595
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.15);
|
|
7596
|
+
|
|
7597
|
+
padding: 12px 16px;
|
|
7524
7598
|
display: flex;
|
|
7525
7599
|
justify-content: space-between;
|
|
7526
7600
|
align-items: center;
|
|
7527
7601
|
cursor: move;
|
|
7528
7602
|
user-select: none;
|
|
7529
|
-
|
|
7603
|
+
position: relative;
|
|
7604
|
+
z-index: 2;
|
|
7605
|
+
|
|
7606
|
+
/* iOS 风格圆角 */
|
|
7607
|
+
border-radius: 20px 20px 0 0;
|
|
7608
|
+
|
|
7609
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7610
|
+
}
|
|
7611
|
+
|
|
7612
|
+
.debugger-header:hover {
|
|
7613
|
+
backdrop-filter: blur(18px) brightness(1.15);
|
|
7614
|
+
-webkit-backdrop-filter: blur(18px) brightness(1.15);
|
|
7615
|
+
background: linear-gradient(
|
|
7616
|
+
135deg,
|
|
7617
|
+
rgba(255, 255, 255, 0.15),
|
|
7618
|
+
rgba(255, 255, 255, 0.08)
|
|
7619
|
+
);
|
|
7530
7620
|
}
|
|
7531
7621
|
|
|
7532
7622
|
.debugger-title {
|
|
7533
|
-
font-weight:
|
|
7534
|
-
color:
|
|
7535
|
-
font-size:
|
|
7623
|
+
font-weight: 600;
|
|
7624
|
+
color: rgba(60, 60, 67, 0.9);
|
|
7625
|
+
font-size: 15px;
|
|
7626
|
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
|
|
7536
7627
|
}
|
|
7537
7628
|
|
|
7538
7629
|
.debugger-controls {
|
|
7539
7630
|
display: flex;
|
|
7540
|
-
gap:
|
|
7631
|
+
gap: 10px;
|
|
7632
|
+
position: relative;
|
|
7633
|
+
z-index: 3;
|
|
7541
7634
|
}
|
|
7542
7635
|
|
|
7543
7636
|
.debugger-btn {
|
|
7544
|
-
|
|
7545
|
-
|
|
7546
|
-
|
|
7547
|
-
|
|
7548
|
-
|
|
7637
|
+
/* 按钮毛玻璃效果但保证可见性 */
|
|
7638
|
+
backdrop-filter: blur(8px);
|
|
7639
|
+
-webkit-backdrop-filter: blur(8px);
|
|
7640
|
+
background: linear-gradient(
|
|
7641
|
+
135deg,
|
|
7642
|
+
rgba(255, 255, 255, 0.7),
|
|
7643
|
+
rgba(255, 255, 255, 0.5)
|
|
7644
|
+
);
|
|
7645
|
+
border: 1px solid rgba(0, 0, 0, 0.08);
|
|
7646
|
+
color: rgba(60, 60, 67, 0.9);
|
|
7647
|
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
|
|
7648
|
+
padding: 6px 12px;
|
|
7649
|
+
border-radius: 12px;
|
|
7549
7650
|
cursor: pointer;
|
|
7550
|
-
font-size:
|
|
7551
|
-
|
|
7651
|
+
font-size: 11px;
|
|
7652
|
+
font-weight: 600;
|
|
7653
|
+
|
|
7654
|
+
/* 按钮阴影 */
|
|
7655
|
+
box-shadow:
|
|
7656
|
+
0 2px 8px rgba(0, 0, 0, 0.1),
|
|
7657
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
7658
|
+
|
|
7659
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7660
|
+
transform: translateZ(0);
|
|
7552
7661
|
}
|
|
7553
7662
|
|
|
7554
7663
|
.debugger-btn:hover {
|
|
7555
|
-
|
|
7664
|
+
backdrop-filter: blur(12px);
|
|
7665
|
+
-webkit-backdrop-filter: blur(12px);
|
|
7666
|
+
background: linear-gradient(
|
|
7667
|
+
135deg,
|
|
7668
|
+
rgba(255, 255, 255, 0.2),
|
|
7669
|
+
rgba(255, 255, 255, 0.12)
|
|
7670
|
+
);
|
|
7671
|
+
transform: scale(1.05) translateZ(5px);
|
|
7672
|
+
box-shadow:
|
|
7673
|
+
0 4px 16px rgba(0, 0, 0, 0.15),
|
|
7674
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.3);
|
|
7675
|
+
}
|
|
7676
|
+
|
|
7677
|
+
.debugger-btn:active {
|
|
7678
|
+
transform: scale(0.98);
|
|
7679
|
+
transition: transform 0.1s;
|
|
7556
7680
|
}
|
|
7557
7681
|
|
|
7558
7682
|
.debugger-btn.active {
|
|
7559
|
-
background: #
|
|
7560
|
-
color: #
|
|
7683
|
+
background: linear-gradient(135deg, #42b883, #35495e);
|
|
7684
|
+
color: #ffffff;
|
|
7685
|
+
box-shadow:
|
|
7686
|
+
0 0 20px rgba(66, 184, 131, 0.4),
|
|
7687
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.3);
|
|
7688
|
+
backdrop-filter: blur(10px);
|
|
7561
7689
|
}
|
|
7562
7690
|
|
|
7563
7691
|
.debugger-icon {
|
|
7564
7692
|
width: 16px;
|
|
7565
7693
|
height: 16px;
|
|
7566
7694
|
vertical-align: middle;
|
|
7695
|
+
filter:
|
|
7696
|
+
brightness(0.8)
|
|
7697
|
+
drop-shadow(0 1px 2px rgba(255, 255, 255, 0.8));
|
|
7698
|
+
color: rgba(60, 60, 67, 0.8);
|
|
7567
7699
|
}
|
|
7568
7700
|
|
|
7569
7701
|
.debugger-content {
|
|
7570
|
-
height: calc(100% -
|
|
7702
|
+
height: calc(100% - 60px);
|
|
7571
7703
|
overflow: hidden;
|
|
7572
7704
|
display: flex;
|
|
7573
7705
|
flex-direction: column;
|
|
7574
7706
|
}
|
|
7575
7707
|
|
|
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
|
-
}
|
|
7708
|
+
/* 移除标签页相关样式 - 只保留网络面板 */
|
|
7603
7709
|
|
|
7604
7710
|
.debugger-panel-content {
|
|
7605
7711
|
flex: 1;
|
|
@@ -7610,27 +7716,138 @@ const styles = `
|
|
|
7610
7716
|
.request-list {
|
|
7611
7717
|
display: flex;
|
|
7612
7718
|
flex-direction: column;
|
|
7613
|
-
gap:
|
|
7719
|
+
gap: 12px;
|
|
7720
|
+
padding: 16px;
|
|
7721
|
+
position: relative;
|
|
7722
|
+
z-index: 2;
|
|
7614
7723
|
}
|
|
7615
7724
|
|
|
7616
7725
|
.request-item {
|
|
7617
|
-
|
|
7618
|
-
border: 1px solid #444;
|
|
7619
|
-
border-radius: 6px;
|
|
7620
|
-
padding: 10px;
|
|
7621
|
-
cursor: pointer;
|
|
7622
|
-
transition: all 0.2s;
|
|
7726
|
+
/* 请求项毛玻璃效果加动态光效 */
|
|
7623
7727
|
position: relative;
|
|
7728
|
+
backdrop-filter: blur(10px) brightness(1.1);
|
|
7729
|
+
-webkit-backdrop-filter: blur(10px) brightness(1.1);
|
|
7730
|
+
|
|
7731
|
+
/* 多层背景 - 模拟 Liquid Glass */
|
|
7732
|
+
background:
|
|
7733
|
+
/* 动态光效层 */
|
|
7734
|
+
linear-gradient(
|
|
7735
|
+
105deg,
|
|
7736
|
+
transparent 35%,
|
|
7737
|
+
rgba(255, 255, 255, 0.25) 45%,
|
|
7738
|
+
rgba(255, 255, 255, 0.35) 50%,
|
|
7739
|
+
rgba(255, 255, 255, 0.25) 55%,
|
|
7740
|
+
transparent 65%
|
|
7741
|
+
),
|
|
7742
|
+
/* 基础玻璃层 */
|
|
7743
|
+
linear-gradient(
|
|
7744
|
+
135deg,
|
|
7745
|
+
rgba(255, 255, 255, 0.8),
|
|
7746
|
+
rgba(255, 255, 255, 0.6)
|
|
7747
|
+
);
|
|
7748
|
+
|
|
7749
|
+
background-size: 300% 100%, 100% 100%;
|
|
7750
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
7751
|
+
border-radius: 16px;
|
|
7752
|
+
padding: 16px;
|
|
7753
|
+
cursor: pointer;
|
|
7754
|
+
|
|
7755
|
+
/* 深度阴影和玻璃效果 */
|
|
7756
|
+
box-shadow:
|
|
7757
|
+
0 4px 16px rgba(31, 38, 135, 0.2),
|
|
7758
|
+
inset 0 1px 2px rgba(255, 255, 255, 0.15),
|
|
7759
|
+
inset 0 -1px 1px rgba(0, 0, 0, 0.05);
|
|
7760
|
+
|
|
7761
|
+
/* 流体动画和光效 */
|
|
7762
|
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7763
|
+
transform: translateZ(0);
|
|
7764
|
+
animation: liquid-shimmer 4s ease-in-out infinite;
|
|
7765
|
+
}
|
|
7766
|
+
|
|
7767
|
+
/* 模拟折射效果的伪元素 */
|
|
7768
|
+
.request-item::before {
|
|
7769
|
+
content: '';
|
|
7770
|
+
position: absolute;
|
|
7771
|
+
inset: -1px;
|
|
7772
|
+
border-radius: inherit;
|
|
7773
|
+
background: radial-gradient(
|
|
7774
|
+
circle at var(--mouse-x, 30%) var(--mouse-y, 30%),
|
|
7775
|
+
rgba(255, 255, 255, 0.4) 0%,
|
|
7776
|
+
rgba(255, 255, 255, 0.1) 30%,
|
|
7777
|
+
transparent 70%
|
|
7778
|
+
);
|
|
7779
|
+
opacity: 0;
|
|
7780
|
+
transition: opacity 0.4s ease;
|
|
7781
|
+
pointer-events: none;
|
|
7782
|
+
mix-blend-mode: overlay;
|
|
7783
|
+
z-index: 1;
|
|
7784
|
+
}
|
|
7785
|
+
|
|
7786
|
+
/* 高光效果伪元素 */
|
|
7787
|
+
.request-item::after {
|
|
7788
|
+
content: '';
|
|
7789
|
+
position: absolute;
|
|
7790
|
+
top: 0;
|
|
7791
|
+
left: 0;
|
|
7792
|
+
right: 0;
|
|
7793
|
+
height: 40%;
|
|
7794
|
+
border-radius: 16px 16px 0 0;
|
|
7795
|
+
background: linear-gradient(
|
|
7796
|
+
180deg,
|
|
7797
|
+
rgba(255, 255, 255, 0.2) 0%,
|
|
7798
|
+
transparent 100%
|
|
7799
|
+
);
|
|
7800
|
+
pointer-events: none;
|
|
7801
|
+
z-index: 1;
|
|
7624
7802
|
}
|
|
7625
7803
|
|
|
7626
7804
|
.request-item:hover {
|
|
7627
|
-
|
|
7628
|
-
|
|
7805
|
+
backdrop-filter: blur(15px) brightness(1.2);
|
|
7806
|
+
-webkit-backdrop-filter: blur(15px) brightness(1.2);
|
|
7807
|
+
|
|
7808
|
+
/* 增强 hover 时的光效 */
|
|
7809
|
+
background:
|
|
7810
|
+
linear-gradient(
|
|
7811
|
+
105deg,
|
|
7812
|
+
transparent 20%,
|
|
7813
|
+
rgba(255, 255, 255, 0.35) 40%,
|
|
7814
|
+
rgba(255, 255, 255, 0.5) 50%,
|
|
7815
|
+
rgba(255, 255, 255, 0.35) 60%,
|
|
7816
|
+
transparent 80%
|
|
7817
|
+
),
|
|
7818
|
+
linear-gradient(
|
|
7819
|
+
135deg,
|
|
7820
|
+
rgba(255, 255, 255, 0.2),
|
|
7821
|
+
rgba(255, 255, 255, 0.12)
|
|
7822
|
+
);
|
|
7823
|
+
|
|
7824
|
+
background-size: 200% 100%, 100% 100%;
|
|
7825
|
+
transform: scale(1.02) translateZ(15px);
|
|
7826
|
+
animation: liquid-refraction 0.6s ease-out;
|
|
7827
|
+
|
|
7828
|
+
box-shadow:
|
|
7829
|
+
0 12px 40px rgba(31, 38, 135, 0.35),
|
|
7830
|
+
inset 0 2px 4px rgba(255, 255, 255, 0.25),
|
|
7831
|
+
inset 0 -2px 2px rgba(0, 0, 0, 0.08);
|
|
7832
|
+
}
|
|
7833
|
+
|
|
7834
|
+
/* 激活折射效果 */
|
|
7835
|
+
.request-item:hover::before {
|
|
7836
|
+
opacity: 1;
|
|
7629
7837
|
}
|
|
7630
7838
|
|
|
7631
7839
|
.request-item.expanded {
|
|
7632
|
-
|
|
7633
|
-
|
|
7840
|
+
backdrop-filter: blur(18px) brightness(1.2);
|
|
7841
|
+
-webkit-backdrop-filter: blur(18px) brightness(1.2);
|
|
7842
|
+
background: linear-gradient(
|
|
7843
|
+
135deg,
|
|
7844
|
+
rgba(66, 184, 131, 0.1),
|
|
7845
|
+
rgba(53, 73, 94, 0.05)
|
|
7846
|
+
);
|
|
7847
|
+
border-color: rgba(66, 184, 131, 0.3);
|
|
7848
|
+
box-shadow:
|
|
7849
|
+
0 12px 40px rgba(66, 184, 131, 0.2),
|
|
7850
|
+
inset 0 2px 4px rgba(255, 255, 255, 0.15);
|
|
7634
7851
|
}
|
|
7635
7852
|
|
|
7636
7853
|
.request-header {
|
|
@@ -7641,20 +7858,48 @@ const styles = `
|
|
|
7641
7858
|
}
|
|
7642
7859
|
|
|
7643
7860
|
.request-method {
|
|
7644
|
-
|
|
7645
|
-
|
|
7646
|
-
|
|
7861
|
+
/* 方法标签毛玻璃效果 */
|
|
7862
|
+
backdrop-filter: blur(6px);
|
|
7863
|
+
-webkit-backdrop-filter: blur(6px);
|
|
7864
|
+
padding: 4px 10px;
|
|
7865
|
+
border-radius: 10px;
|
|
7866
|
+
font-weight: 600;
|
|
7647
7867
|
font-size: 10px;
|
|
7648
7868
|
text-transform: uppercase;
|
|
7649
|
-
min-width:
|
|
7869
|
+
min-width: 45px;
|
|
7650
7870
|
text-align: center;
|
|
7871
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
7872
|
+
box-shadow:
|
|
7873
|
+
0 2px 8px rgba(0, 0, 0, 0.1),
|
|
7874
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
7875
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7651
7876
|
}
|
|
7652
7877
|
|
|
7653
|
-
.method-get {
|
|
7654
|
-
|
|
7655
|
-
|
|
7656
|
-
|
|
7657
|
-
|
|
7878
|
+
.method-get {
|
|
7879
|
+
background: linear-gradient(135deg, #4CAF50, #45a049);
|
|
7880
|
+
color: #ffffff;
|
|
7881
|
+
box-shadow: 0 0 15px rgba(76, 175, 80, 0.4);
|
|
7882
|
+
}
|
|
7883
|
+
.method-post {
|
|
7884
|
+
background: linear-gradient(135deg, #2196F3, #1976D2);
|
|
7885
|
+
color: #ffffff;
|
|
7886
|
+
box-shadow: 0 0 15px rgba(33, 150, 243, 0.4);
|
|
7887
|
+
}
|
|
7888
|
+
.method-put {
|
|
7889
|
+
background: linear-gradient(135deg, #FF9800, #F57C00);
|
|
7890
|
+
color: #ffffff;
|
|
7891
|
+
box-shadow: 0 0 15px rgba(255, 152, 0, 0.4);
|
|
7892
|
+
}
|
|
7893
|
+
.method-delete {
|
|
7894
|
+
background: linear-gradient(135deg, #F44336, #D32F2F);
|
|
7895
|
+
color: #ffffff;
|
|
7896
|
+
box-shadow: 0 0 15px rgba(244, 67, 54, 0.4);
|
|
7897
|
+
}
|
|
7898
|
+
.method-patch {
|
|
7899
|
+
background: linear-gradient(135deg, #9C27B0, #7B1FA2);
|
|
7900
|
+
color: #ffffff;
|
|
7901
|
+
box-shadow: 0 0 15px rgba(156, 39, 176, 0.4);
|
|
7902
|
+
}
|
|
7658
7903
|
|
|
7659
7904
|
.request-url {
|
|
7660
7905
|
flex: 1;
|
|
@@ -7667,18 +7912,47 @@ const styles = `
|
|
|
7667
7912
|
}
|
|
7668
7913
|
|
|
7669
7914
|
.request-status {
|
|
7670
|
-
|
|
7671
|
-
|
|
7915
|
+
/* 状态码标签毛玻璃效果 */
|
|
7916
|
+
backdrop-filter: blur(6px);
|
|
7917
|
+
-webkit-backdrop-filter: blur(6px);
|
|
7918
|
+
padding: 4px 10px;
|
|
7919
|
+
border-radius: 10px;
|
|
7672
7920
|
font-size: 10px;
|
|
7673
|
-
|
|
7921
|
+
font-weight: 600;
|
|
7922
|
+
min-width: 40px;
|
|
7674
7923
|
text-align: center;
|
|
7924
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
7925
|
+
box-shadow:
|
|
7926
|
+
0 2px 8px rgba(0, 0, 0, 0.1),
|
|
7927
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
7928
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
7675
7929
|
}
|
|
7676
7930
|
|
|
7677
|
-
.status-2xx {
|
|
7678
|
-
|
|
7679
|
-
|
|
7680
|
-
|
|
7681
|
-
|
|
7931
|
+
.status-2xx {
|
|
7932
|
+
background: linear-gradient(135deg, #4CAF50, #45a049);
|
|
7933
|
+
color: #ffffff;
|
|
7934
|
+
box-shadow: 0 0 20px rgba(76, 175, 80, 0.5);
|
|
7935
|
+
}
|
|
7936
|
+
.status-3xx {
|
|
7937
|
+
background: linear-gradient(135deg, #FF9800, #F57C00);
|
|
7938
|
+
color: #ffffff;
|
|
7939
|
+
box-shadow: 0 0 20px rgba(255, 152, 0, 0.5);
|
|
7940
|
+
}
|
|
7941
|
+
.status-4xx {
|
|
7942
|
+
background: linear-gradient(135deg, #F44336, #D32F2F);
|
|
7943
|
+
color: #ffffff;
|
|
7944
|
+
box-shadow: 0 0 20px rgba(244, 67, 54, 0.5);
|
|
7945
|
+
}
|
|
7946
|
+
.status-5xx {
|
|
7947
|
+
background: linear-gradient(135deg, #9C27B0, #7B1FA2);
|
|
7948
|
+
color: #ffffff;
|
|
7949
|
+
box-shadow: 0 0 20px rgba(156, 39, 176, 0.5);
|
|
7950
|
+
}
|
|
7951
|
+
.status-error {
|
|
7952
|
+
background: linear-gradient(135deg, #F44336, #D32F2F);
|
|
7953
|
+
color: #ffffff;
|
|
7954
|
+
box-shadow: 0 0 20px rgba(244, 67, 54, 0.5);
|
|
7955
|
+
}
|
|
7682
7956
|
|
|
7683
7957
|
.request-info {
|
|
7684
7958
|
display: flex;
|
|
@@ -7765,11 +8039,28 @@ const styles = `
|
|
|
7765
8039
|
}
|
|
7766
8040
|
|
|
7767
8041
|
.detail-content {
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
|
-
|
|
8042
|
+
/* 详情内容毛玻璃效果 */
|
|
8043
|
+
backdrop-filter: blur(8px) brightness(0.9);
|
|
8044
|
+
-webkit-backdrop-filter: blur(8px) brightness(0.9);
|
|
8045
|
+
background: linear-gradient(
|
|
8046
|
+
135deg,
|
|
8047
|
+
rgba(0, 0, 0, 0.3),
|
|
8048
|
+
rgba(0, 0, 0, 0.15)
|
|
8049
|
+
);
|
|
8050
|
+
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
8051
|
+
padding: 16px;
|
|
8052
|
+
border-radius: 12px;
|
|
8053
|
+
max-height: 400px;
|
|
8054
|
+
min-height: 300px;
|
|
7772
8055
|
overflow: auto;
|
|
8056
|
+
|
|
8057
|
+
/* 内部阴影 */
|
|
8058
|
+
box-shadow:
|
|
8059
|
+
inset 0 2px 4px rgba(0, 0, 0, 0.2),
|
|
8060
|
+
inset 0 -1px 2px rgba(255, 255, 255, 0.05);
|
|
8061
|
+
|
|
8062
|
+
/* 平滑滚动 */
|
|
8063
|
+
scroll-behavior: smooth;
|
|
7773
8064
|
}
|
|
7774
8065
|
|
|
7775
8066
|
.json-content {
|
|
@@ -7823,47 +8114,75 @@ const styles = `
|
|
|
7823
8114
|
}
|
|
7824
8115
|
|
|
7825
8116
|
.share-btn {
|
|
7826
|
-
|
|
7827
|
-
|
|
7828
|
-
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
|
|
8117
|
+
/* 分享按钮毛玻璃效果 */
|
|
8118
|
+
backdrop-filter: blur(6px);
|
|
8119
|
+
-webkit-backdrop-filter: blur(6px);
|
|
8120
|
+
background: linear-gradient(135deg, #2196F3, #1976D2);
|
|
8121
|
+
color: #ffffff;
|
|
8122
|
+
border: 1px solid rgba(33, 150, 243, 0.3);
|
|
8123
|
+
padding: 6px 12px;
|
|
8124
|
+
border-radius: 10px;
|
|
8125
|
+
font-size: 10px;
|
|
8126
|
+
font-weight: 500;
|
|
7832
8127
|
margin-left: 8px;
|
|
7833
8128
|
cursor: pointer;
|
|
7834
|
-
transition: all 0.2s;
|
|
7835
8129
|
white-space: nowrap;
|
|
8130
|
+
|
|
8131
|
+
box-shadow:
|
|
8132
|
+
0 2px 8px rgba(33, 150, 243, 0.3),
|
|
8133
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.2);
|
|
8134
|
+
|
|
8135
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
8136
|
+
transform: translateZ(0);
|
|
7836
8137
|
}
|
|
7837
8138
|
|
|
7838
8139
|
.share-btn:hover {
|
|
7839
|
-
background: #1976D2;
|
|
7840
|
-
transform: scale(1.
|
|
8140
|
+
background: linear-gradient(135deg, #1976D2, #1565C0);
|
|
8141
|
+
transform: scale(1.05) translateZ(5px);
|
|
8142
|
+
box-shadow:
|
|
8143
|
+
0 4px 16px rgba(33, 150, 243, 0.4),
|
|
8144
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.3);
|
|
7841
8145
|
}
|
|
7842
8146
|
|
|
7843
8147
|
.share-btn:active {
|
|
7844
|
-
transform: scale(0.
|
|
8148
|
+
transform: scale(0.98);
|
|
8149
|
+
transition: transform 0.1s;
|
|
7845
8150
|
}
|
|
7846
8151
|
|
|
7847
8152
|
.api-curl-btn {
|
|
7848
|
-
|
|
7849
|
-
|
|
7850
|
-
|
|
7851
|
-
|
|
7852
|
-
|
|
7853
|
-
|
|
8153
|
+
/* API Curl 按钮毛玻璃效果 */
|
|
8154
|
+
backdrop-filter: blur(6px);
|
|
8155
|
+
-webkit-backdrop-filter: blur(6px);
|
|
8156
|
+
background: linear-gradient(135deg, #4CAF50, #45a049);
|
|
8157
|
+
color: #ffffff;
|
|
8158
|
+
border: 1px solid rgba(76, 175, 80, 0.3);
|
|
8159
|
+
padding: 6px 12px;
|
|
8160
|
+
border-radius: 10px;
|
|
8161
|
+
font-size: 10px;
|
|
8162
|
+
font-weight: 500;
|
|
7854
8163
|
margin-left: 8px;
|
|
7855
8164
|
cursor: pointer;
|
|
7856
|
-
transition: all 0.2s;
|
|
7857
8165
|
white-space: nowrap;
|
|
8166
|
+
|
|
8167
|
+
box-shadow:
|
|
8168
|
+
0 2px 8px rgba(76, 175, 80, 0.3),
|
|
8169
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.2);
|
|
8170
|
+
|
|
8171
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
8172
|
+
transform: translateZ(0);
|
|
7858
8173
|
}
|
|
7859
8174
|
|
|
7860
8175
|
.api-curl-btn:hover {
|
|
7861
|
-
background: #45a049;
|
|
7862
|
-
transform: scale(1.
|
|
8176
|
+
background: linear-gradient(135deg, #45a049, #388E3C);
|
|
8177
|
+
transform: scale(1.05) translateZ(5px);
|
|
8178
|
+
box-shadow:
|
|
8179
|
+
0 4px 16px rgba(76, 175, 80, 0.4),
|
|
8180
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.3);
|
|
7863
8181
|
}
|
|
7864
8182
|
|
|
7865
8183
|
.api-curl-btn:active {
|
|
7866
|
-
transform: scale(0.
|
|
8184
|
+
transform: scale(0.98);
|
|
8185
|
+
transition: transform 0.1s;
|
|
7867
8186
|
}
|
|
7868
8187
|
|
|
7869
8188
|
.console-content {
|
|
@@ -7935,7 +8254,73 @@ const styles = `
|
|
|
7935
8254
|
cursor: not-allowed;
|
|
7936
8255
|
}
|
|
7937
8256
|
|
|
7938
|
-
|
|
8257
|
+
/* 动态光效动画 - 模拟 Shader 效果 */
|
|
8258
|
+
@keyframes liquid-shimmer {
|
|
8259
|
+
0% {
|
|
8260
|
+
background-position: -300% center;
|
|
8261
|
+
transform: translateX(-10px);
|
|
8262
|
+
}
|
|
8263
|
+
50% {
|
|
8264
|
+
transform: translateX(0);
|
|
8265
|
+
}
|
|
8266
|
+
100% {
|
|
8267
|
+
background-position: 300% center;
|
|
8268
|
+
transform: translateX(10px);
|
|
8269
|
+
}
|
|
8270
|
+
}
|
|
8271
|
+
|
|
8272
|
+
@keyframes liquid-refraction {
|
|
8273
|
+
0%, 100% {
|
|
8274
|
+
transform: scale(1) perspective(1000px) rotateY(0deg);
|
|
8275
|
+
filter: blur(0px);
|
|
8276
|
+
}
|
|
8277
|
+
25% {
|
|
8278
|
+
transform: scale(1.01) perspective(1000px) rotateY(0.5deg);
|
|
8279
|
+
filter: blur(0.5px);
|
|
8280
|
+
}
|
|
8281
|
+
75% {
|
|
8282
|
+
transform: scale(0.99) perspective(1000px) rotateY(-0.5deg);
|
|
8283
|
+
filter: blur(0.3px);
|
|
8284
|
+
}
|
|
8285
|
+
}
|
|
8286
|
+
|
|
8287
|
+
@keyframes liquid-expand {
|
|
8288
|
+
0% {
|
|
8289
|
+
opacity: 0;
|
|
8290
|
+
transform: scale(0.95) translateY(-10px);
|
|
8291
|
+
backdrop-filter: blur(5px);
|
|
8292
|
+
}
|
|
8293
|
+
50% {
|
|
8294
|
+
opacity: 0.7;
|
|
8295
|
+
transform: scale(1.02) translateY(-2px);
|
|
8296
|
+
backdrop-filter: blur(12px);
|
|
8297
|
+
}
|
|
8298
|
+
100% {
|
|
8299
|
+
opacity: 1;
|
|
8300
|
+
transform: scale(1) translateY(0);
|
|
8301
|
+
backdrop-filter: blur(8px);
|
|
8302
|
+
}
|
|
8303
|
+
}
|
|
8304
|
+
|
|
8305
|
+
@keyframes liquid-glow {
|
|
8306
|
+
0%, 100% {
|
|
8307
|
+
box-shadow: 0 0 20px rgba(66, 184, 131, 0.3);
|
|
8308
|
+
}
|
|
8309
|
+
50% {
|
|
8310
|
+
box-shadow: 0 0 30px rgba(66, 184, 131, 0.5);
|
|
8311
|
+
}
|
|
8312
|
+
}
|
|
8313
|
+
|
|
8314
|
+
.expanding {
|
|
8315
|
+
animation: liquid-expand 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
8316
|
+
}
|
|
8317
|
+
|
|
8318
|
+
.request-item.expanded {
|
|
8319
|
+
animation: liquid-glow 2s ease-in-out infinite;
|
|
8320
|
+
}
|
|
8321
|
+
|
|
8322
|
+
/* 移动端响应式 */
|
|
8323
|
+
@media (max-width: 768px) {
|
|
7939
8324
|
#network-debugger-panel.bottom-right,
|
|
7940
8325
|
#network-debugger-panel.bottom-left,
|
|
7941
8326
|
#network-debugger-panel.top-right,
|
|
@@ -7943,32 +8328,87 @@ const styles = `
|
|
|
7943
8328
|
width: calc(100vw - 20px) !important;
|
|
7944
8329
|
left: 10px !important;
|
|
7945
8330
|
right: auto !important;
|
|
8331
|
+
/* 移动端清晰毛玻璃 */
|
|
8332
|
+
backdrop-filter: blur(15px) saturate(150%);
|
|
8333
|
+
-webkit-backdrop-filter: blur(15px) saturate(150%);
|
|
8334
|
+
}
|
|
8335
|
+
|
|
8336
|
+
.request-item {
|
|
8337
|
+
padding: 12px;
|
|
8338
|
+
border-radius: 12px;
|
|
8339
|
+
}
|
|
8340
|
+
|
|
8341
|
+
.debugger-header {
|
|
8342
|
+
padding: 10px 12px;
|
|
8343
|
+
}
|
|
8344
|
+
|
|
8345
|
+
.debugger-controls {
|
|
8346
|
+
gap: 6px;
|
|
8347
|
+
}
|
|
8348
|
+
|
|
8349
|
+
.debugger-btn {
|
|
8350
|
+
padding: 4px 8px;
|
|
8351
|
+
font-size: 10px;
|
|
7946
8352
|
}
|
|
7947
8353
|
|
|
7948
8354
|
/* 最小化时不应用全宽,保持小尺寸 */
|
|
7949
8355
|
#network-debugger-panel.minimized {
|
|
7950
|
-
width:
|
|
7951
|
-
max-width:
|
|
7952
|
-
height:
|
|
8356
|
+
width: 180px !important;
|
|
8357
|
+
max-width: 180px !important;
|
|
8358
|
+
height: 40px !important;
|
|
8359
|
+
}
|
|
8360
|
+
}
|
|
8361
|
+
|
|
8362
|
+
@media (max-width: 480px) {
|
|
8363
|
+
.request-header {
|
|
8364
|
+
flex-direction: column;
|
|
8365
|
+
gap: 8px;
|
|
8366
|
+
align-items: stretch;
|
|
8367
|
+
}
|
|
8368
|
+
|
|
8369
|
+
.request-method,
|
|
8370
|
+
.request-status {
|
|
8371
|
+
align-self: flex-start;
|
|
8372
|
+
}
|
|
8373
|
+
|
|
8374
|
+
.share-btn,
|
|
8375
|
+
.api-curl-btn {
|
|
8376
|
+
margin-left: 0;
|
|
8377
|
+
margin-top: 4px;
|
|
7953
8378
|
}
|
|
7954
8379
|
}
|
|
7955
8380
|
|
|
8381
|
+
/* iOS 26 风格滚动条 */
|
|
7956
8382
|
#network-debugger-panel ::-webkit-scrollbar {
|
|
7957
|
-
width:
|
|
7958
|
-
height:
|
|
8383
|
+
width: 8px;
|
|
8384
|
+
height: 8px;
|
|
7959
8385
|
}
|
|
7960
8386
|
|
|
7961
8387
|
#network-debugger-panel ::-webkit-scrollbar-track {
|
|
7962
|
-
background:
|
|
8388
|
+
background: rgba(255, 255, 255, 0.05);
|
|
8389
|
+
border-radius: 4px;
|
|
8390
|
+
backdrop-filter: blur(5px);
|
|
7963
8391
|
}
|
|
7964
8392
|
|
|
7965
8393
|
#network-debugger-panel ::-webkit-scrollbar-thumb {
|
|
7966
|
-
background:
|
|
7967
|
-
|
|
8394
|
+
background: linear-gradient(
|
|
8395
|
+
135deg,
|
|
8396
|
+
rgba(255, 255, 255, 0.2),
|
|
8397
|
+
rgba(255, 255, 255, 0.1)
|
|
8398
|
+
);
|
|
8399
|
+
border-radius: 4px;
|
|
8400
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
8401
|
+
backdrop-filter: blur(10px);
|
|
8402
|
+
transition: all 0.3s ease;
|
|
7968
8403
|
}
|
|
7969
8404
|
|
|
7970
8405
|
#network-debugger-panel ::-webkit-scrollbar-thumb:hover {
|
|
7971
|
-
background:
|
|
8406
|
+
background: linear-gradient(
|
|
8407
|
+
135deg,
|
|
8408
|
+
rgba(255, 255, 255, 0.3),
|
|
8409
|
+
rgba(255, 255, 255, 0.15)
|
|
8410
|
+
);
|
|
8411
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
|
7972
8412
|
}
|
|
7973
8413
|
|
|
7974
8414
|
.resize-handle {
|
|
@@ -8241,8 +8681,6 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8241
8681
|
this.dragStart = { x: 0, y: 0 };
|
|
8242
8682
|
this.resizeTimeout = null;
|
|
8243
8683
|
this.resizeDirection = "";
|
|
8244
|
-
this.currentTab = "network";
|
|
8245
|
-
this.consoleHistory = [];
|
|
8246
8684
|
this.requestsCache = [];
|
|
8247
8685
|
this.interceptor = interceptor;
|
|
8248
8686
|
const savedConfig = this.loadConfig();
|
|
@@ -8250,7 +8688,6 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8250
8688
|
position: "bottom-right",
|
|
8251
8689
|
theme: "dark",
|
|
8252
8690
|
minimized: false,
|
|
8253
|
-
showConsole: true,
|
|
8254
8691
|
isClosed: false,
|
|
8255
8692
|
...savedConfig,
|
|
8256
8693
|
// 先应用保存的配置
|
|
@@ -8289,60 +8726,17 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8289
8726
|
</div>
|
|
8290
8727
|
</div>
|
|
8291
8728
|
<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
8729
|
<div class="debugger-panel-content">
|
|
8299
|
-
<div class="network-panel"
|
|
8730
|
+
<div class="network-panel">
|
|
8300
8731
|
<div class="request-list"></div>
|
|
8301
8732
|
</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.47"}</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
8733
|
</div>
|
|
8338
8734
|
</div>
|
|
8339
8735
|
`;
|
|
8340
8736
|
this.addResizeHandles();
|
|
8341
8737
|
this.shadowRoot.appendChild(this.container);
|
|
8342
8738
|
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");
|
|
8739
|
+
this.networkTab = this.shadowRoot.querySelector(".network-panel");
|
|
8346
8740
|
}
|
|
8347
8741
|
addResizeHandles() {
|
|
8348
8742
|
const handles = ["n", "s", "e", "w", "ne", "nw", "se", "sw"];
|
|
@@ -8356,9 +8750,6 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8356
8750
|
bindEvents() {
|
|
8357
8751
|
const header = this.shadowRoot.querySelector(".debugger-header");
|
|
8358
8752
|
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
8753
|
header.addEventListener("mousedown", (e) => {
|
|
8363
8754
|
if (e.target === controls || controls.contains(e.target)) return;
|
|
8364
8755
|
this.startDrag(e);
|
|
@@ -8387,28 +8778,6 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8387
8778
|
break;
|
|
8388
8779
|
}
|
|
8389
8780
|
});
|
|
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
8781
|
const resizeHandles = this.shadowRoot.querySelectorAll(".resize-handle");
|
|
8413
8782
|
resizeHandles.forEach((handle) => {
|
|
8414
8783
|
handle.addEventListener("mousedown", (e) => {
|
|
@@ -8629,21 +8998,11 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8629
8998
|
}
|
|
8630
8999
|
return url;
|
|
8631
9000
|
}
|
|
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
|
-
}
|
|
9001
|
+
// 移除 switchTab 方法 - 不再需要标签页切换
|
|
8642
9002
|
clearRequests() {
|
|
8643
9003
|
this.requestsCache = [];
|
|
8644
9004
|
this.interceptor.clearRequests();
|
|
8645
9005
|
this.renderRequests();
|
|
8646
|
-
this.logToConsole("✅ 已清空网络请求记录");
|
|
8647
9006
|
}
|
|
8648
9007
|
exportData() {
|
|
8649
9008
|
const data = {
|
|
@@ -8660,22 +9019,18 @@ const _DebugPanel = class _DebugPanel {
|
|
|
8660
9019
|
a.download = `network-debug-${Date.now()}.json`;
|
|
8661
9020
|
a.click();
|
|
8662
9021
|
URL.revokeObjectURL(url);
|
|
8663
|
-
this.logToConsole("💾 网络数据已导出 (by Leo)");
|
|
8664
9022
|
}
|
|
8665
9023
|
async shareRequest(request) {
|
|
8666
9024
|
try {
|
|
8667
|
-
this.logToConsole("📤 正在创建分享链接...");
|
|
8668
9025
|
const shareUrl = await createShareLink(request);
|
|
8669
9026
|
if (shareUrl) {
|
|
8670
9027
|
const copied = await copyToClipboard(shareUrl);
|
|
8671
9028
|
if (copied) {
|
|
8672
|
-
this.logToConsole(`✅ 分享链接已复制到剪贴板: ${shareUrl}`);
|
|
8673
9029
|
alert(`分享链接已复制到剪贴板!
|
|
8674
9030
|
${shareUrl}
|
|
8675
9031
|
|
|
8676
9032
|
Created by Leo (@leeguoo)`);
|
|
8677
9033
|
} else {
|
|
8678
|
-
this.logToConsole(`✅ 分享链接: ${shareUrl}`);
|
|
8679
9034
|
prompt("分享链接已创建,请手动复制:\n\nCreated by Leo (@leeguoo)", shareUrl);
|
|
8680
9035
|
}
|
|
8681
9036
|
} else {
|
|
@@ -8683,28 +9038,23 @@ Created by Leo (@leeguoo)`);
|
|
|
8683
9038
|
}
|
|
8684
9039
|
} catch (error) {
|
|
8685
9040
|
logger.error("分享失败:", error);
|
|
8686
|
-
this.logToConsole(`❌ 分享失败: ${error}`);
|
|
8687
9041
|
alert("分享失败,请稍后重试");
|
|
8688
9042
|
}
|
|
8689
9043
|
}
|
|
8690
9044
|
async generateApiCurl(request) {
|
|
8691
9045
|
try {
|
|
8692
|
-
this.logToConsole("🔧 正在生成API cURL命令...");
|
|
8693
9046
|
const curlCommand = formatAsApiCurl(request);
|
|
8694
9047
|
const copied = await copyToClipboard(curlCommand);
|
|
8695
9048
|
if (copied) {
|
|
8696
|
-
this.logToConsole(`✅ API cURL已复制到剪贴板`);
|
|
8697
9049
|
alert(`API cURL命令已复制到剪贴板!
|
|
8698
9050
|
适用于 httpmisonote.com API
|
|
8699
9051
|
|
|
8700
9052
|
Created by Leo (@leeguoo)`);
|
|
8701
9053
|
} else {
|
|
8702
|
-
this.logToConsole(`✅ API cURL: ${curlCommand}`);
|
|
8703
9054
|
prompt("API cURL命令已生成,请手动复制:\n\nCreated by Leo (@leeguoo)", curlCommand);
|
|
8704
9055
|
}
|
|
8705
9056
|
} catch (error) {
|
|
8706
9057
|
logger.error("生成API cURL失败:", error);
|
|
8707
|
-
this.logToConsole(`❌ 生成API cURL失败: ${error}`);
|
|
8708
9058
|
alert("生成API cURL失败,请稍后重试");
|
|
8709
9059
|
}
|
|
8710
9060
|
}
|
|
@@ -8726,131 +9076,9 @@ Created by Leo (@leeguoo)`);
|
|
|
8726
9076
|
this.container.style.bottom = "auto";
|
|
8727
9077
|
}
|
|
8728
9078
|
}
|
|
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
|
-
}
|
|
9079
|
+
// 移除 handleToolAction 方法 - 不再需要工具功能
|
|
9080
|
+
// 移除 handleParseCurl 方法
|
|
9081
|
+
// 移除所有工具和控制台相关方法
|
|
8854
9082
|
startDrag(e) {
|
|
8855
9083
|
this.isDragging = true;
|
|
8856
9084
|
this.dragStart = { x: e.clientX, y: e.clientY };
|
|
@@ -9031,6 +9259,8 @@ Created by Leo (@leeguoo)`);
|
|
|
9031
9259
|
isDragging = true;
|
|
9032
9260
|
btn.style.cursor = "grabbing";
|
|
9033
9261
|
}, 150);
|
|
9262
|
+
document.addEventListener("mousemove", handleMouseMove);
|
|
9263
|
+
document.addEventListener("mouseup", handleMouseUp);
|
|
9034
9264
|
e.preventDefault();
|
|
9035
9265
|
}
|
|
9036
9266
|
});
|
|
@@ -9064,9 +9294,9 @@ Created by Leo (@leeguoo)`);
|
|
|
9064
9294
|
} else {
|
|
9065
9295
|
this.show();
|
|
9066
9296
|
}
|
|
9297
|
+
document.removeEventListener("mousemove", handleMouseMove);
|
|
9298
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
9067
9299
|
};
|
|
9068
|
-
document.addEventListener("mousemove", handleMouseMove);
|
|
9069
|
-
document.addEventListener("mouseup", handleMouseUp);
|
|
9070
9300
|
btn.addEventListener("mouseenter", () => {
|
|
9071
9301
|
btn.style.filter = "brightness(0.95)";
|
|
9072
9302
|
});
|
|
@@ -9109,7 +9339,6 @@ Created by Leo (@leeguoo)`);
|
|
|
9109
9339
|
position: this.config.position,
|
|
9110
9340
|
theme: this.config.theme,
|
|
9111
9341
|
minimized: this.config.minimized,
|
|
9112
|
-
showConsole: this.config.showConsole,
|
|
9113
9342
|
isClosed: this.config.isClosed
|
|
9114
9343
|
};
|
|
9115
9344
|
localStorage.setItem(_DebugPanel.STORAGE_KEY, JSON.stringify(configToSave));
|
|
@@ -9235,7 +9464,7 @@ class NetworkDebugger {
|
|
|
9235
9464
|
this.initialized = true;
|
|
9236
9465
|
logger.consoleDirect(`
|
|
9237
9466
|
╔════════════════════════════════════════╗
|
|
9238
|
-
║ 🔓 PWTK 解密小工具 v${"1.2.
|
|
9467
|
+
║ 🔓 PWTK 解密小工具 v${"1.2.49-beta.0"} ║
|
|
9239
9468
|
║ Created by Leo (@leeguoo) ║
|
|
9240
9469
|
║ 技术支持: 请联系 Leo ║
|
|
9241
9470
|
║ 分享服务: curl.bwg.leeguoo.com ║
|
|
@@ -9296,7 +9525,7 @@ class NetworkDebugger {
|
|
|
9296
9525
|
}
|
|
9297
9526
|
async checkForUpdates() {
|
|
9298
9527
|
try {
|
|
9299
|
-
const currentVersion = "1.2.
|
|
9528
|
+
const currentVersion = "1.2.49-beta.0";
|
|
9300
9529
|
logger.info(`[PWTK Update] Checking for updates... Current version: ${currentVersion}`);
|
|
9301
9530
|
const response = await fetch("https://registry.npmjs.org/@leeguoo/pwtk-network-debugger/latest");
|
|
9302
9531
|
const data = await response.json();
|
|
@@ -9316,7 +9545,7 @@ class NetworkDebugger {
|
|
|
9316
9545
|
logger.error("[PWTK Update] Failed to check for updates:", error);
|
|
9317
9546
|
return {
|
|
9318
9547
|
hasUpdate: false,
|
|
9319
|
-
currentVersion: "1.2.
|
|
9548
|
+
currentVersion: "1.2.49-beta.0"
|
|
9320
9549
|
};
|
|
9321
9550
|
}
|
|
9322
9551
|
}
|