@leeguoo/pwtk-network-debugger 1.2.4 → 1.2.6
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 +38 -31
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -6713,7 +6713,7 @@ class NetworkInterceptor {
|
|
|
6713
6713
|
return Math.random().toString(36).substr(2, 9);
|
|
6714
6714
|
}
|
|
6715
6715
|
isInternalUrl(url) {
|
|
6716
|
-
return url.includes("/
|
|
6716
|
+
return url.includes("/api/dokv/storage") || url.includes("/api/share");
|
|
6717
6717
|
}
|
|
6718
6718
|
notifyListeners(request) {
|
|
6719
6719
|
this.listeners.forEach((listener) => {
|
|
@@ -6745,9 +6745,15 @@ class NetworkInterceptor {
|
|
|
6745
6745
|
});
|
|
6746
6746
|
const result = await response.json();
|
|
6747
6747
|
if (result.success && result.data) {
|
|
6748
|
-
const num = result.data;
|
|
6749
|
-
|
|
6750
|
-
|
|
6748
|
+
const num = String(result.data);
|
|
6749
|
+
if (num.length >= 9) {
|
|
6750
|
+
key = num.charAt(2) + num.charAt(5) + num.charAt(8);
|
|
6751
|
+
console.log("NetworkDebugger: 自动获取密钥成功 key:", key, "from num:", num);
|
|
6752
|
+
} else {
|
|
6753
|
+
console.warn("NetworkDebugger: getSK返回数据长度不足:", num);
|
|
6754
|
+
}
|
|
6755
|
+
} else {
|
|
6756
|
+
console.warn("NetworkDebugger: getSK返回失败:", result);
|
|
6751
6757
|
}
|
|
6752
6758
|
} catch (e) {
|
|
6753
6759
|
console.warn("NetworkDebugger: 自动获取密钥失败:", e);
|
|
@@ -6765,11 +6771,16 @@ class NetworkInterceptor {
|
|
|
6765
6771
|
}
|
|
6766
6772
|
const fullKey = key + slk;
|
|
6767
6773
|
if (fullKey) {
|
|
6768
|
-
const
|
|
6769
|
-
|
|
6770
|
-
|
|
6774
|
+
const dataStr = typeof data === "string" ? data : JSON.stringify(data);
|
|
6775
|
+
const decrypted = decrypt(dataStr, fullKey);
|
|
6776
|
+
if (decrypted && decrypted !== dataStr && decrypted !== data) {
|
|
6777
|
+
console.log("NetworkDebugger: 解密成功", { key, slk, fullKey, original: dataStr.substring(0, 50) + "...", decrypted: JSON.stringify(decrypted).substring(0, 50) + "..." });
|
|
6771
6778
|
return decrypted;
|
|
6779
|
+
} else {
|
|
6780
|
+
console.log("NetworkDebugger: 解密未生效", { key, slk, fullKey });
|
|
6772
6781
|
}
|
|
6782
|
+
} else {
|
|
6783
|
+
console.log("NetworkDebugger: 没有密钥,跳过解密");
|
|
6773
6784
|
}
|
|
6774
6785
|
} catch (error) {
|
|
6775
6786
|
console.warn("NetworkDebugger: Decryption failed:", error);
|
|
@@ -6817,7 +6828,6 @@ class NetworkInterceptor {
|
|
|
6817
6828
|
if (decrypted !== null) {
|
|
6818
6829
|
requestData.decryptedRequest = decrypted;
|
|
6819
6830
|
self2.requests.set(requestId, requestData);
|
|
6820
|
-
self2.notifyListeners(requestData);
|
|
6821
6831
|
}
|
|
6822
6832
|
}).catch((e) => console.warn("解密请求失败:", e));
|
|
6823
6833
|
}
|
|
@@ -6857,9 +6867,10 @@ class NetworkInterceptor {
|
|
|
6857
6867
|
self2.notifyListeners(requestData);
|
|
6858
6868
|
}
|
|
6859
6869
|
}).catch((e) => console.warn("解密响应失败:", e));
|
|
6870
|
+
} else {
|
|
6871
|
+
self2.requests.set(requestId, requestData);
|
|
6872
|
+
self2.notifyListeners(requestData);
|
|
6860
6873
|
}
|
|
6861
|
-
self2.requests.set(requestId, requestData);
|
|
6862
|
-
self2.notifyListeners(requestData);
|
|
6863
6874
|
}
|
|
6864
6875
|
}
|
|
6865
6876
|
});
|
|
@@ -6919,7 +6930,6 @@ class NetworkInterceptor {
|
|
|
6919
6930
|
if (decrypted !== null) {
|
|
6920
6931
|
requestData.decryptedRequest = decrypted;
|
|
6921
6932
|
self2.requests.set(requestId, requestData);
|
|
6922
|
-
self2.notifyListeners(requestData);
|
|
6923
6933
|
}
|
|
6924
6934
|
}).catch((e) => console.warn("解密请求失败:", e));
|
|
6925
6935
|
}
|
|
@@ -6957,12 +6967,15 @@ class NetworkInterceptor {
|
|
|
6957
6967
|
self2.notifyListeners(updatedRequestData);
|
|
6958
6968
|
}
|
|
6959
6969
|
}).catch((e) => console.warn("解密响应失败:", e));
|
|
6970
|
+
} else {
|
|
6971
|
+
self2.requests.set(requestId, updatedRequestData);
|
|
6972
|
+
self2.notifyListeners(updatedRequestData);
|
|
6960
6973
|
}
|
|
6961
6974
|
} catch (error) {
|
|
6962
6975
|
updatedRequestData.error = `Failed to read response: ${error}`;
|
|
6976
|
+
self2.requests.set(requestId, updatedRequestData);
|
|
6977
|
+
self2.notifyListeners(updatedRequestData);
|
|
6963
6978
|
}
|
|
6964
|
-
self2.requests.set(requestId, updatedRequestData);
|
|
6965
|
-
self2.notifyListeners(updatedRequestData);
|
|
6966
6979
|
}
|
|
6967
6980
|
return response;
|
|
6968
6981
|
} catch (error) {
|
|
@@ -7861,7 +7874,7 @@ class DebugPanel {
|
|
|
7861
7874
|
<div class="about-panel" data-panel="about" style="display: none;">
|
|
7862
7875
|
<div style="padding: 20px; color: #fff; text-align: center;">
|
|
7863
7876
|
<h2 style="margin: 0 0 20px 0;">🔓 PWTK 解密小工具</h2>
|
|
7864
|
-
<p style="margin: 10px 0;">Version: 1.2.
|
|
7877
|
+
<p style="margin: 10px 0;">Version: 1.2.5</p>
|
|
7865
7878
|
<p style="margin: 10px 0;">👨💻 Created by <strong>Leo (@leeguoo)</strong></p>
|
|
7866
7879
|
<p style="margin: 10px 0;">📧 技术支持:请联系 Leo</p>
|
|
7867
7880
|
<p style="margin: 10px 0;">🌐 分享服务:curl.bwg.leeguoo.com</p>
|
|
@@ -7981,16 +7994,15 @@ class DebugPanel {
|
|
|
7981
7994
|
item.dataset.requestId = request.id;
|
|
7982
7995
|
const statusClass = this.getStatusClass(request.status);
|
|
7983
7996
|
const methodClass = `method-${request.method.toLowerCase()}`;
|
|
7984
|
-
|
|
7997
|
+
request.decryptedRequest || request.decryptedResponse;
|
|
7985
7998
|
const hasError = request.error;
|
|
7986
7999
|
item.innerHTML = `
|
|
7987
8000
|
<div class="request-header">
|
|
7988
8001
|
<span class="request-method ${methodClass}">${request.method}</span>
|
|
7989
8002
|
<span class="request-url" title="${request.url}">${this.truncateUrl(request.url)}</span>
|
|
7990
|
-
<span class="request-status ${statusClass}">${request.status
|
|
7991
|
-
${hasDecryptedData ? '<span class="decrypted-badge">🔓</span>' : ""}
|
|
8003
|
+
<span class="request-status ${statusClass}">${request.status ? request.status : request.duration !== void 0 ? "ERR" : "Pending"}</span>
|
|
7992
8004
|
${hasError ? '<span class="error-badge">⚠️</span>' : ""}
|
|
7993
|
-
<button class="share-btn" title="分享此请求 (by Leo)" onclick="event.stopPropagation()"
|
|
8005
|
+
<button class="share-btn" title="分享此请求 (by Leo)" onclick="event.stopPropagation()">🔗</button>
|
|
7994
8006
|
</div>
|
|
7995
8007
|
<div class="request-info">
|
|
7996
8008
|
<span>${new Date(request.timestamp).toLocaleTimeString()}</span>
|
|
@@ -8018,7 +8030,7 @@ class DebugPanel {
|
|
|
8018
8030
|
if (request.decryptedRequest) {
|
|
8019
8031
|
html += `
|
|
8020
8032
|
<div class="detail-section">
|
|
8021
|
-
<div class="detail-title highlight"
|
|
8033
|
+
<div class="detail-title highlight">解密请求数据</div>
|
|
8022
8034
|
<div class="detail-content">
|
|
8023
8035
|
<div class="json-content">${this.formatData(request.decryptedRequest)}</div>
|
|
8024
8036
|
</div>
|
|
@@ -8028,7 +8040,7 @@ class DebugPanel {
|
|
|
8028
8040
|
if (request.decryptedResponse) {
|
|
8029
8041
|
html += `
|
|
8030
8042
|
<div class="detail-section">
|
|
8031
|
-
<div class="detail-title highlight"
|
|
8043
|
+
<div class="detail-title highlight">解密响应数据</div>
|
|
8032
8044
|
<div class="detail-content">
|
|
8033
8045
|
<div class="json-content">${this.formatData(request.decryptedResponse)}</div>
|
|
8034
8046
|
</div>
|
|
@@ -8067,20 +8079,20 @@ class DebugPanel {
|
|
|
8067
8079
|
</div>
|
|
8068
8080
|
`;
|
|
8069
8081
|
}
|
|
8070
|
-
if (request.requestBody
|
|
8082
|
+
if (request.requestBody) {
|
|
8071
8083
|
html += `
|
|
8072
8084
|
<div class="detail-section">
|
|
8073
|
-
<div class="detail-title"
|
|
8085
|
+
<div class="detail-title">${request.decryptedRequest ? "原始请求数据" : "请求数据"}</div>
|
|
8074
8086
|
<div class="detail-content">
|
|
8075
8087
|
<div class="json-content">${this.formatData(request.requestBody)}</div>
|
|
8076
8088
|
</div>
|
|
8077
8089
|
</div>
|
|
8078
8090
|
`;
|
|
8079
8091
|
}
|
|
8080
|
-
if (request.responseBody
|
|
8092
|
+
if (request.responseBody) {
|
|
8081
8093
|
html += `
|
|
8082
8094
|
<div class="detail-section">
|
|
8083
|
-
<div class="detail-title"
|
|
8095
|
+
<div class="detail-title">${request.decryptedResponse ? "原始响应数据" : "响应数据"}</div>
|
|
8084
8096
|
<div class="detail-content">
|
|
8085
8097
|
<div class="json-content">${this.formatData(request.responseBody)}</div>
|
|
8086
8098
|
</div>
|
|
@@ -8119,12 +8131,7 @@ class DebugPanel {
|
|
|
8119
8131
|
return "status-error";
|
|
8120
8132
|
}
|
|
8121
8133
|
truncateUrl(url) {
|
|
8122
|
-
|
|
8123
|
-
const parts = url.split("/");
|
|
8124
|
-
const domain = parts.slice(0, 3).join("/");
|
|
8125
|
-
const path = parts.slice(3).join("/");
|
|
8126
|
-
if (path.length <= 20) return url;
|
|
8127
|
-
return `${domain}/...${path.slice(-20)}`;
|
|
8134
|
+
return url;
|
|
8128
8135
|
}
|
|
8129
8136
|
switchTab(tabName) {
|
|
8130
8137
|
this.container.querySelectorAll(".debugger-tab").forEach((tab) => {
|
|
@@ -8463,7 +8470,7 @@ class NetworkDebugger {
|
|
|
8463
8470
|
this.initialized = true;
|
|
8464
8471
|
console.log(`
|
|
8465
8472
|
╔════════════════════════════════════════╗
|
|
8466
|
-
║ 🔓 PWTK 解密小工具 v1.2.
|
|
8473
|
+
║ 🔓 PWTK 解密小工具 v1.2.5 ║
|
|
8467
8474
|
║ Created by Leo (@leeguoo) ║
|
|
8468
8475
|
║ 技术支持: 请联系 Leo ║
|
|
8469
8476
|
║ 分享服务: curl.bwg.leeguoo.com ║
|