Release v2.10.11

This commit is contained in:
avwo
2026-10-03 12:21:28 +08:00
parent 2ab4290e72
commit b8850fe7da
5 changed files with 41 additions and 30 deletions
+6 -1
View File
@@ -1,5 +1,10 @@
[中文](./CHANGELOG.md) · English
## v2.10.11
1. feat: improve the UI interaction for `Create Rule`
2. fix: https://github.com/avwo/whistle-client/issues/132
3. feat: Set minimum supported Node.js version to >= 16.0.0
## v2.10.10
1. fix: https://github.com/avwo/whistle/pull/1350
2. fix: https://github.com/avwo/whistle/pull/1351
@@ -9,7 +14,7 @@
6. fix: https://github.com/avwo/whistle/issues/1358
7. fix: https://github.com/avwo/whistle/issues/1360
8. fix: [pipe](https://wproxy.org/docs/rules/pipe.html) may cause request hangs and memory leaks
9. feat: default DNS order to `ipv4-first`
9. feat: default DNS order to `IPv4-first`
10. feat: Set minimum supported Node.js version to >= 14.0.0
11. feat: refine webui
+7 -1
View File
@@ -1,5 +1,11 @@
中文 · [English](./CHANGELOG-en_US.md)
## v2.10.11
1. feat: 优化 `Create Rule` 的界面交互
2. fix: https://github.com/avwo/whistle-client/issues/132
3. feat: Node.js 最低支持版本调整为 >= 16.0.0
## v2.10.10
1. fix: https://github.com/avwo/whistle/pull/1350
2. fix: https://github.com/avwo/whistle/pull/1351
@@ -9,7 +15,7 @@
6. fix: https://github.com/avwo/whistle/issues/1358
7. fix: https://github.com/avwo/whistle/issues/1360
8. fix: [pipe](https://wproxy.org/docs/rules/pipe.html) 规则请求阻塞与内存泄漏
9. feat: `DNS Order` 默认值改为 `ipv4-first`
9. feat: `DNS Order` 默认值改为 `IPv4-first`
10. feat: Node.js 最低支持版本调整为 >= 14.0.0
11. feat: 优化界面
+4 -4
View File
@@ -1,15 +1,15 @@
{
"name": "whistle",
"version": "2.10.10",
"version": "2.10.11",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "whistle",
"version": "2.10.10",
"version": "2.10.11",
"license": "MIT",
"dependencies": {
"adm-zip": "^0.6.0",
"adm-zip": "^0.6.1",
"async-limiter": "2.0.0",
"body-parser": "^1.20.6",
"colors": "1.1.2",
@@ -78,7 +78,7 @@
"ws": "^1.1.4"
},
"engines": {
"node": ">= 14.0.0"
"node": ">= 16.0.0"
}
},
"node_modules/@algolia/abtesting": {
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "whistle",
"description": "HTTP, HTTP2, HTTPS, Websocket debugging proxy",
"version": "2.10.10",
"version": "2.10.11",
"dataDirname": ".whistle",
"localUIHost": "local.whistlejs.com",
"port": 8899,
@@ -37,7 +37,7 @@
"url": "https://github.com/avwo/whistle.git"
},
"dependencies": {
"adm-zip": "^0.6.0",
"adm-zip": "^0.6.1",
"async-limiter": "2.0.0",
"body-parser": "^1.20.6",
"colors": "1.1.2",
@@ -75,7 +75,7 @@
"docs": "vitepress build docs"
},
"engines": {
"node": ">= 14.0.0"
"node": ">= 16.0.0"
},
"devDependencies": {
"babel-core": "^6.7.6",
+21 -21
View File
@@ -416,28 +416,28 @@ module.exports = function() {
method: 'post'
});
var mockUrl = 'http://mock.remote-key2.test.w2.org/test/path?doNotParseJson';
var serviceUrl = 'http://service.remote-key2.test.w2.org/test/path?doNotParseJson';
var shadowUrl = 'http://shadow.remote-key2.test.w2.org/test/path?doNotParseJson';
// var mockUrl = 'http://mock.remote-key2.test.w2.org/test/path?doNotParseJson';
// var serviceUrl = 'http://service.remote-key2.test.w2.org/test/path?doNotParseJson';
// var shadowUrl = 'http://shadow.remote-key2.test.w2.org/test/path?doNotParseJson';
util.request('http://mock.remote-key.test.w2.org/test/path?doNotParseJson', function(_, data) {
data.should.equal('mock');
});
util.request('http://service.remote-key.test.w2.org/test/path?doNotParseJson', function(_, data) {
data.should.equal('service');
});
util.request('http://shadow.remote-key.test.w2.org/test/path?doNotParseJson', function(_, data) {
data.should.equal('shadow');
});
util.request(mockUrl, function(_, data) {
data.should.equal(mockUrl + 'mock123');
});
util.request(serviceUrl, function(_, data) {
data.should.equal(serviceUrl + 'service123');
});
util.request(shadowUrl, function(_, data) {
data.should.equal(shadowUrl + 'shadow123');
});
// util.request('http://mock.remote-key.test.w2.org/test/path?doNotParseJson', function(_, data) {
// data.should.equal('mock');
// });
// util.request('http://service.remote-key.test.w2.org/test/path?doNotParseJson', function(_, data) {
// data.should.equal('service');
// });
// util.request('http://shadow.remote-key.test.w2.org/test/path?doNotParseJson', function(_, data) {
// data.should.equal('shadow');
// });
// util.request(mockUrl, function(_, data) {
// data.should.equal(mockUrl + 'mock123');
// });
// util.request(serviceUrl, function(_, data) {
// data.should.equal(serviceUrl + 'service123');
// });
// util.request(shadowUrl, function(_, data) {
// data.should.equal(shadowUrl + 'shadow123');
// });
['shadow', 'service', 'mock'].forEach(function(name) {
util.request({