1 | ### v0.3.11
|
2 |
|
3 | fix配置某些带端口号正则的时候可能导致系统奔溃的情况
|
4 |
|
5 | ### v0.3.12
|
6 |
|
7 | fix如果请求包含content-length导致weinre无法注入的bug
|
8 |
|
9 | ### v0.4.0
|
10 |
|
11 | 1. 菜单 `Rules`、`Values`、`Weinre`,hover出现列表(原来需要点击才能出现列表)
|
12 | 2. 新增快捷键 `ctrl + /` 来注释(取消注释)选中的行
|
13 | 3. 新增 `css`、`html`、`js` 3个协议,分别用来注入css、js、html到html页面,或css代码到css文件,js代码到js文件的底部。这个与resPrepend、resBody、resAppend的区别是:系统会自动判断响应的类型来选择注入
|
14 |
|
15 | ### v0.4.1、v0.4.2
|
16 |
|
17 | 修改快捷键 `ctrl + /` 的小bug:没有选中,及从后往前选择会导致聚焦有点问题。
|
18 |
|
19 | ### v0.5.0
|
20 |
|
21 | 1. JSON对象的一种inline写法,可以直接写在协议的uri里面,形如: `protocol://name1=values&name2=value2&name3&name4=&name5=value5&nameN=valueN`
|
22 | 2. 加入了如果有大版本的更新,会自动提醒(一般有新功能加入或修复致命bug才会有大版本的更新)
|
23 |
|
24 | bugFix:
|
25 |
|
26 | 修改了一些子匹配的问题,及urlParams,params可能无效的问题
|
27 |
|
28 | ### v0.5.1
|
29 |
|
30 | 修复:本地调试时,https的根证书可能被开发目录的根证书自动覆盖问题
|
31 |
|
32 | ### v0.5.2
|
33 |
|
34 | 新增:支持 www.qq.com resHeaders://(content-type=text/plain)格式
|
35 |
|
36 | ### v0.5.3
|
37 |
|
38 | 微调parseInlineJSON的实现
|
39 |
|
40 | ### v0.5.4
|
41 | ### v0.5.5
|
42 |
|
43 | 新增支持配置模式:pattern operator-uri1 operator-uri2 ... operator-uriN (原来只支持operator-uri pattern1 pattern2 ... patternN)
|
44 |
|
45 | 这种情况下 `pattern` 和 `operator-uri1` 不能同时为形如这种形式的uri:`[http[s]|ws[s]://]www.example.com/*`,否则会忽略后面的 `operator-uri2 ... operator-uriN`
|
46 |
|
47 | ### v0.5.6
|
48 |
|
49 | 修复低版本的node在[拦截https](https://github.com/avwo/whistle/wiki/%E5%90%AF%E7%94%A8HTTPS)时,有可能产生的重复关闭server会抛出异常的情况
|
50 |
|
51 | ### <del>v0.5.7</del>
|
52 |
|
53 | 新增快捷键:`ctrl[command]+鼠标点击:快速打开rules设置的key(点击形如:`xxx://{key}` 的规则)在values中的位置(如果values中不存在对应的key,则会自动创建),更多内容请参考:[界面操作](https://github.com/avwo/whistle/wiki/%E7%95%8C%E9%9D%A2%E6%93%8D%E4%BD%9C)
|
54 |
|
55 | ### v0.5.8
|
56 |
|
57 | bugfix:修改v0.5.7版直接访问[http://local.whistlejs.com/index.html](http://local.whistlejs.com/index.html)脚本出错的问题
|
58 |
|
59 | ### v0.6.0
|
60 |
|
61 | bugfix:修改了路径匹配可能多加一个 `/` 的问题
|
62 |
|
63 | 形如:
|
64 |
|
65 | http://www.test.com/index.html http://www.test.com:8888/index.html
|
66 |
|
67 | # http://www.test.com/index.html?query --> http://www.test.com:8888/index.html/?query
|
68 |
|
69 |
|
70 | ### v0.6.1
|
71 |
|
72 | 1. 新增了 `disable` 协议,用来禁用cache、cookie、referer、ua、timeout、csp,具体参考:[功能列表](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#%E7%9B%AE%E5%BD%95)
|
73 | 2. 纠正了解析[配置操作符](https://github.com/avwo/whistle/wiki/%E9%85%8D%E7%BD%AE%E6%A8%A1%E5%BC%8F#%E4%B8%89%E4%B8%AA%E6%93%8D%E4%BD%9C%E7%AC%A6%E7%9A%84%E4%BD%9C%E7%94%A8)使用拼接后url的问题
|
74 | 3. 原来通过filter启用HTTPS,推荐改用这种方式:[启用HTTPS](https://github.com/avwo/whistle/wiki/%E5%90%AF%E7%94%A8HTTPS)
|
75 |
|
76 |
|
77 | ### v0.6.2
|
78 |
|
79 | 1. 加入小版本更新时给出小提示
|
80 | 2. 添加 `disable` 的新功能:301、dnsCache、keepAlive、intercept
|
81 | 3. 新增 `reqReplace` 和 `resReplace` 两个功能:类似js字符串的 `replace` 方法,分别用来替换请求和响应的文本内容
|
82 |
|
83 |
|
84 | ### v0.6.3
|
85 |
|
86 | 1. 新增`reqWriter`、`resWrite`分别用来把请求内容和响应内容写入到本地文件
|
87 | 2. 新增`reqWriterRaw`、`resWriteRaw`分别用来把请求完整信息和响应的完整信息写入到本地文件(包括路径、协议、方法、响应状态码、头部、内容等)
|
88 | 3. bugfix: 使用`reqReplace`改变了请求内容长度没有同步处理headers的content-length的问题
|
89 | 4. 支持通过 `params` 替换上传表单的字段
|
90 | 5. 对形如 `[a-z]:\*`、`[a-z]:/xxx`、`/xxx` 自动识别为 `file://...`
|
91 |
|
92 | 即:
|
93 |
|
94 | www.text.com/ /User/xxx # 或 www.text.com/ D:\workspace
|
95 | # 等价于
|
96 | www.text.com/ file:///User/xxx # 或 www.text.com/ file://D:\workspace
|
97 |
|
98 | ### 0.6.4
|
99 |
|
100 | 1. 修复使用log的时候,多次注入脚本导致console的时候会重复打印多次
|
101 | 2. 增加repReplace、resReplace的缓存字符串大小
|
102 |
|
103 | ### 0.6.5
|
104 |
|
105 | 1. bugfix:
|
106 |
|
107 | 修复前:
|
108 |
|
109 | /(.*):8899(\/.*)/ $1$2
|
110 |
|
111 | 结果:
|
112 |
|
113 | http://xxx:8899 http://http://xxx
|
114 |
|
115 | 修复后:
|
116 |
|
117 | /(.*):8899(\/.*)/ $1$2 --> http://xxx:8899 http://xxx
|
118 |
|
119 | ### v0.6.6
|
120 |
|
121 | 新增 `exports` 功能,用于把请求导出到指定文件(如果该文件不存在,则会自动创建),每一行都是如下json对象(第一行可能为空):
|
122 |
|
123 | {
|
124 | startTime: '请求的开始时间',
|
125 | dnsTime: 'dns结束时间',
|
126 | requestTime: '请求结束时间',
|
127 | responseTime: '开始响应的时间',
|
128 | endTime: '响应结束的时间',
|
129 | url: '请求的url',
|
130 | realUrl: '实际请求的url(一般设置了替换规则,才会有realUrl,否则不会显示该字段)',
|
131 | method: '请求使用的方法',
|
132 | httpVersion: 'http版本号',
|
133 | clientIp: '用户ip',
|
134 | hostIp: '服务器ip',
|
135 | reqError: '是否请求阶段出错',
|
136 | reqSize: '请求内容的长度',
|
137 | reqHeaders: '请求头',
|
138 | reqTrailers: '请求的trailers',
|
139 | statusCode: '响应状态码',
|
140 | resError: '是否在响应阶段出错',
|
141 | resSize: '响应内容的长度',
|
142 | resHeaders: '响应头',
|
143 | resTrailers: '响应的trailers',
|
144 | rules: '匹配到的规则'
|
145 | }
|
146 |
|
147 | ### v0.7.0
|
148 | 1. 支持通过插件开启在网页的右下角显示访问的真实ip,需要安装最新版的Chrome插件:[https://github.com/avwo/whistle-for-chrome](https://github.com/avwo/whistle-for-chrome)
|
149 | 2. 支持`exportsUrl`,可以把匹配到的请求url导出到指定的文件
|
150 | 3. 新增功能`resCors://use-credentials`(等价于`resCors://enable`),让语义更清晰
|
151 | 4. 新增更简洁的命令行命令 `w2`,新版的whistle同时支持`whistle xxx`和`w2 xxx`,如 `w2 start`、`w2 restart`、`w2 stop`、`w2 --help`等
|
152 |
|
153 | ### v0.7.1
|
154 |
|
155 | 新增 [dispatch](https://github.com/avwo/whistle/wiki/功能列表#dispatch) 协议,主要用途:某些情况需要我们根据用户的ip、或ua、或cookie等来动态决定匹配规则,这时可以利用 `dispatch` 来执行自定义脚本来修改url里面的请求参数从而修改请求的url,最后达到修改请求url匹配的规则的目的。
|
156 |
|
157 | ### v0.7.2
|
158 |
|
159 | bugfix: Cannot read property 'dist-tags' of null
|
160 |
|
161 |
|
162 | ### v0.8.0
|
163 |
|
164 | 1. 新增插件机制,可以很方便的自定义插件,并提供了平时开发中有用的插件作为例子,具体请参考请查看:[自定义whistle插件](https://github.com/avwo/whistle/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8F%92%E4%BB%B6)
|
165 | 2. 加入请求失败自动重试机制,减少请求出错的情况
|
166 |
|
167 | ### v0.8.1
|
168 |
|
169 | 1. whistle ui -> about -> 插件列表:插件列表显示按ascii码排序
|
170 | 2. 缓存[dispatch](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#dispatch)的script,提升速度
|
171 | 3. 新增[attachment](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#attachment)用于设置下载文件的响应头 `content-disposition: attachment; filename="attachment"`
|
172 |
|
173 | ### v0.8.2
|
174 |
|
175 | 1. 修复自定义插件不能获取[values]()的值,即 `pattern plugin://{key}` 无法正确获取ruleValue的问题
|
176 | 2. 限制自定义插件的名称不能与内置的协议名称冲突,如果冲突则该自定义插件将无效
|
177 |
|
178 | ### v0.9.0
|
179 | 1. **重要bugfix:**Fix https post数据时可能出现pending的问题
|
180 | 2. 新增[etag](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#etag)协议,用于修改请求头的etag
|
181 | 3. 支持通过`ua://`、`referer://`、`reqType://`、`resType://`等,把对应的字段置空
|
182 |
|
183 | ### v0.9.1
|
184 | 1. 新增[reqCharset](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#reqcharset)和[resCharset](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#rescharset)两个协议,分别用于快速修改请求、响应的编码
|
185 | 2. bugfix:修复可能出现请求出错的情况,https://github.com/nodejs/node/pull/4482
|
186 |
|
187 | ### v0.9.2
|
188 |
|
189 | bugfix:修复keepAlive可能导致请求无法响应的问题
|
190 |
|
191 | ### v0.9.3
|
192 |
|
193 | refactor: 限制starting的版本为0.1.1,后面发布的starting版本和现有的不兼容
|
194 |
|
195 | ### v0.9.4
|
196 | 1. feature: 加入 `disable://ajax`,用于删除请求头 `x-requested-with`
|
197 | 2. feature: 新增[accept](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#accept)用于修改请求头的accept字段
|
198 | 3. feature: 加入插件开发过程中输出详细日志,[#3](https://github.com/avwo/whistle/issues/3)
|
199 | 4. feature: 新增菜单栏 -> Rules -> Setting -> Disable all rules的选项,用于禁用所有规则
|
200 | 5. refactor: 修改 `reqType`,`resType`的默认行为,如果`reqType`,`resType`没有带charset的时候,保留原有的charset
|
201 | 6. refactor: 新增详细的启动提示信息
|
202 |
|
203 | ### v0.9.5
|
204 |
|
205 | refactor: 详细的启动提示信息兼容node v0.10.x
|
206 |
|
207 | ### v0.10.0
|
208 |
|
209 | 1. feat: 新增规则包,可以在插件加入全局及内部的规则包,详见:[自定义插件](https://github.com/avwo/whistle/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8F%92%E4%BB%B6)
|
210 | 2. feat: 新增`rawfile`、 `xrawfile`的功能,详见:[rule](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#%E7%9B%AE%E5%BD%95)
|
211 | 3. fix: 修复headers里面的set-cookie可能导致页面js出错的问题
|
212 | 4. refactor: 更新页面用到的react到最新版本,提升前端性能
|
213 | 5. fix: 如果插件的package.json格式有问题会导致无法自动加载插件
|
214 | 6. fix: 修复reqAppend、resAppend无效的问题
|
215 |
|
216 | ### v0.10.1
|
217 | 1. feat:新增Server Log,用于记录服务端的日志:Network -> Log -> Server
|
218 | 2. refactor: 调整log的加载逻辑,确保在打开Network -> Log前记录的log都能看到
|
219 | 3. fix: 修复[log](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#log)协议出现请求被gc的情况
|
220 | 4. fix: [log](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#log)可能导致页面出现的样式问题
|
221 |
|
222 | ### v0.10.2
|
223 | 1. refactor: 去除自动同步v0.3.0之前版本数据的逻辑(v0.3.0及以后版本的whistle数据存储目录做了一次修改)
|
224 | 2. style: 替换全新的logo,感谢部门的视觉设计同事**[@wjdgh1031(鬼刀)](https://github.com/wjdgh1031)**帮忙设计了新logo
|
225 |
|
226 | ### v0.10.3
|
227 | 1. feat: 检测并提示代理服务器被切换
|
228 | 2. feat: 界面上同时展示的请求数,由360调整为560
|
229 | 3. perf: 极大提升UI界面的性能
|
230 | 4. fix: 可能出现的如下异常
|
231 |
|
232 | Date: 2016-06-22 00:47:13.466
|
233 | RangeError: out of range index
|
234 | at RangeError (native)
|
235 | at StringDecoder.fillLast (string_decoder.js:94:9)
|
236 | at StringDecoder.write (string_decoder.js:73:14)
|
237 | at PassThrough.<anonymous> (/Users/xxx/whistle/lib/util/index.js:931:33)
|
238 | at emitOne (events.js:96:13)
|
239 | at PassThrough.emit (events.js:188:7)
|
240 | at readableAddChunk (_stream_readable.js:172:18)
|
241 | at PassThrough.Readable.push (_stream_readable.js:130:10)
|
242 | at PassThrough.Transform.push (_stream_transform.js:128:32)
|
243 | at afterTransform (_stream_transform.js:77:12)
|
244 | at TransformState.afterTransform (_stream_transform.js:54:12)
|
245 |
|
246 | ### v0.11.0
|
247 | 1. fix: 修复在调整窗口大小是没有重绘的问题
|
248 | 2. feat: 把官网网址(官网还在开发中...)改为:[http://wproxy.org](http://wproxy.org/)
|
249 | 3. feat: 新增[replaceStatus](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#replacestatus)用于修改服务器响应的状态码,与[statusCode](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#statuscode)的区别是,后者不会请求到后台服务器,而是直接根据设置的状态码响应
|
250 | 4. feat: 新增[location](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#location)用于修改或添加响应头的location字段,一般与[replaceStatus](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#replacestatus)的`replaceStatus://301`、`replaceStatus://302`配合使用
|
251 |
|
252 |
|
253 | ### v0.11.1
|
254 | 1. fix: 修复在https请求中使用[log](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#log)可能出现`Mixed Content`警告的问题
|
255 | 2. feat: [log](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#log)支持同时输出多个参数`console.log(location.href, a1, a2, ...)`的写法
|
256 | 3. fix: 清空请求数据的快捷键为`Ctrl+X`(mac也可以用`Command+X`),但原来在Clear按钮上的title提示错了
|
257 | 4. feat: 加入快捷键 `Ctrl+D` 或 `Command+D`(Mac),用于删除请求列表中选中的条目、选中的rule、选中的value
|
258 | 5. feat: 加入快捷键 `Ctrl +向上箭头` 和 `Ctrl +向下箭头` (Mac用`Command+向上箭头` 和 `Command +向下箭头`) 用于调整Rules(Values)列表的顺序
|
259 | 6. feat: 支持点击请求列表的表头重新对列表进行重新排序
|
260 | 7. feat: 把下一个匹配到的Rule通过NEXT_RULE_HEADER(x-whistle-next-rule)的头字段传到rulesServer,这样可以判断是否执行下一个规则
|
261 |
|
262 | ### v0.11.2
|
263 |
|
264 | fix: `statusCode < 100 || statusCode > 999` 会抛出异常导致程序crash
|
265 |
|
266 | if (statusCode < 100 || statusCode > 999)
|
267 | throw new RangeError(`Invalid status code: ${statusCode}`);
|
268 |
|
269 | PS:看了下提交记录,是2016年4月20号提交的代码:[eee69b81faf2df406ac3c571bee31ebd501cfd9d](https://github.com/mscdex/io.js/commit/eee69b81faf2df406ac3c571bee31ebd501cfd9d)
|
270 |
|
271 |
|
272 | ### v0.11.3
|
273 | 1. feat: 新增[hostname](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#hostname)用于修改`req.headers.host`
|
274 | 2. feat: 支持通过`WHISTLE_PLUGINS_PATH`配置插件路径,whistle会优先从`join(WHISTLE_PLUGINS_PATH, 'node_modules')`加载插件
|
275 | 3. fix: 修复在overview中优先显示插件私有规则的问题(PS:在Rules中配置的规则优先级最高)
|
276 | 4. fix: post请求超时时间太短的问题,并把表单上传的请求的默认timeout时间加倍,减少上传失败的概率
|
277 |
|
278 | ### v0.11.4
|
279 | 1. fix: 修复在[Values](https://github.com/avwo/whistle/wiki/%E7%95%8C%E9%9D%A2%E6%93%8D%E4%BD%9C)中按`Ctrl+S`会弹出修改名称输入框的问题
|
280 | 2. refactor: 允许同时安装多个不同的whistle根证书,安装根证书请参考:[启用HTTPS](https://github.com/avwo/whistle/wiki/%E5%90%AF%E7%94%A8HTTPS)
|
281 |
|
282 | ### v0.12.0
|
283 | 1. feat: 支持配置配置ip:port,如:`pattern host://ip:port`(port可选),这与`pattern ip:port`的区别是:后者会把请求头的`host`字段修改为`ip:port`(ip为IPv4或IPv6)
|
284 | 2. feat: 支持同一个用户启动多个whistle服务`w2 start -S newStorageDir -p newPort`,具体参见[安装启动](https://avwo.github.io/whistle/install.html)
|
285 | 3. docs: 修改页面中帮助文档的链接
|
286 | 4. fix: 重写文档的过程中把所有功能都人肉跑了一遍,修复了一下问题,后续版本把自动化持续集成的功能加上
|
287 |
|
288 | ### v0.12.1
|
289 | fix: 修复请求头有非法字符导致程序奔溃的问题
|
290 |
|
291 |
|
292 | ### v0.12.2
|
293 | 1. test: 加入自动化持续集成travis,并修复了一下bug
|
294 | 2. fix: 响应有错误信息直接显示在抓包列表上
|
295 |
|
296 | ### v0.12.3
|
297 | 1. feat: 加入[urlReplace](https://avwo.github.io/whistle/rules/urlReplace.html)支持类似字符串的replace方法,替换请求url的路径内容
|
298 | 2. style: 在Overview里面精确显示匹配`pattern matcher`,并在title里面显示配置规则的原始配置
|
299 |
|
300 | ### v1.0.0
|
301 | 1. fix: Linux设置开机启动无法找到homedir的问题
|
302 | 2. feat: 新增开机启动脚本,如何设置开机启动,请参考[开机启动](https://avwo.github.io/whistle/autoStart.html)
|
303 | 3. feat: plugin中新增statusServer,用于获取请求的状态: 请求开始、请求结束或请求出错,具体参见[插件开发](https://avwo.github.io/whistle/plugins.html)
|
304 | 4. fix: 修复插件的plugin.rulesServer可能导致whistle crash的问题
|
305 | 5. feat: 新增[plugin](https://avwo.github.io/whistle/rules/plugin.html),用于实时通知指定插件请求状态的变化及动态修改rules,如果匹配了插件的协议,则会忽略plugin的配置
|
306 |
|
307 | ### v1.0.1
|
308 | 1. fix: https代理可能出现异常的问题
|
309 | 2. feat: 新增[plugin.tunnelRulesServer](https://avwo.github.io/whistle/plugins.html)用于在插件上设置代理tcp请求的规则
|
310 | 3. feat: 通过https代理过来的请求,没被拦截的请求都认为tunnel协议,如: tunnel://www.baidu.com:443,具体参加:[注意事项](https://avwo.github.io/whistle/attention.html)
|
311 | 4. feat: 代理请求新增`x-whistle-policy`用于设置whistle策略,目前只`tunnel`让whistle不要拦截https代理。
|
312 | 5. test: 新增对https代理的一些测试用例
|
313 |
|
314 | ### v1.0.2
|
315 | 1. fix:windows的默认换行符导致命令行在Mac会Linux上不可用,请更新到最新版本即可:[更新whistle](https://avwo.github.io/whistle/update.html)
|
316 |
|
317 | ### v1.0.3
|
318 | 1. refactor: 把ruleValue传给tunnelRulesServer
|
319 | 2. refactor: 把cgi和正常请求的客户端ip透传给插件
|
320 | 3. feat: 支持local.whistlejs.com与xxx.local.whistlejs.com带端口访问
|
321 | 4. feat: 支持plugin://name(ruleValue)或plugin://name://ruleValue的方式传值个插件的除server和uiServer以外的server
|
322 | 5. feat: 新增命令行参数 `-l, --localUIHost`支持修改访问配置页面的域名,默认为`local.whistlejs.com`
|
323 |
|
324 | ### v1.0.4
|
325 | 1. feat: plugin新增tunnelServer,支持把tunnel请求转发到tunnelServer
|
326 | 2. feat: 新增协议[plugin.xxx、whistle.xxx](https://avwo.github.io/whistle/rules/plugin.html),whistle.xxx://value <=> plugin.xxx://value <=> plugin://xxx://value
|
327 | 3. refactor: 优化了`socks`和`proxy`的代理设置,新增socket复用及请求头的修改
|
328 |
|
329 | ### v1.1.0
|
330 | 1. fix: 修复了匹配顺序的bug,如下配置访问http://test.com:8080会匹配到下面的规则:
|
331 |
|
332 | test.com operator-uri
|
333 | /./ operator-uri
|
334 | 2. fix: 插件相关的一些绝对路径的问题,用到插件最好[升级到最新版本](https://avwo.github.io/whistle/update.html)
|
335 | 3. feat:新增[pac](https://avwo.github.io/whistle/rules/pac.html)用于设置pac脚本
|
336 | 4. feat: 新增[delete](https://avwo.github.io/whistle/rules/delete.html)可用于delete请求或响应的头字段,而通过[reqHeaders](https://avwo.github.io/whistle/rules/reqHeaders.html)或[resHeaders](https://avwo.github.io/whistle/rules/resHeaders.html)只能设置为空字符串
|
337 | 5. style: 把删除选中或非选中的数据及清空整个列表的按钮放到Network按钮的菜单列表里面
|
338 | 6. style: 在Network下拉菜单里面新增`查看选中数据`,可以获取当前选中数据的json格式化数据。
|
339 |
|
340 | ### v1.1.1
|
341 | 1. chore: 调整协议列表的顺序
|
342 | 2. docs: 修改帮助文档链接,提升访问速度: [https://avwo.github.io/whistle/](https://avwo.github.io/whistle/)
|
343 |
|
344 | # v1.1.2
|
345 | 1. feat: 新增精确匹配(原来也可以通过正则实现,只是对这种情形用这方式比较方便),`$url operator-uri`详见[匹配方式](https://avwo.github.io/whistle/pattern.html)
|
346 | 2. feat: 支持各个rules server(pluginRulesServer, rulesServer, tunnelRules, resRulesServer)传values过来,详见[插件开发](https://avwo.github.io/whistle/plugins.html)
|
347 | 3. style: 添加双击`Network`按钮情况请求列表的快捷方式
|
348 | 4. style: 添加输入系统或插件没有对应的协议时加中划线及字体颜色变红
|
349 | 5. chore:处理了所有eslint错误
|
350 |
|
351 | ### v1.2.0
|
352 | 1. fix: #16
|
353 | 2. feat: 支持通过`Ctrl + Shift + /`切换Rules编辑框的注释状态,选中的行中如果注释将解除注释,如果没有注释,则会注释掉这行
|
354 | 3. feat: 新增[rulesFile](https://avwo.github.io/whistle/rules/rulesFile.html),可以批量设置规则或者通过脚本动态设置规则
|
355 | 4. refactor: 支持通过(`whistle.xxx://`、`whistle.yyy://`)同时匹配多个插件
|
356 | 5. refactor: 调整[pac](https://avwo.github.io/whistle/rules/pac.html)逻辑,让替换后的请求也有作用
|
357 | 6. refactor: 把socks、proxy协议作为一个独立的协议,使得给匹配的规则设置代理
|
358 |
|
359 | ### v1.2.1
|
360 | 1. fix: Buffer.from兼容性问题,在node v5上不支持字符串参数
|
361 | 2. refactor: 去掉head这个老协议,可以使用跟方便的reqXxx,resXxx协议
|
362 |
|
363 | ### <del>v1.2.2
|
364 |
|
365 | ### v1.2.3
|
366 | 1. feat: 支持自定义根证书及特定域名的证书、通配证书
|
367 | 2. feat: 插件新增statsServer,可以用于统计请求及获取所有请求的参见就头信息,详见[插件开发](https://avwo.github.io/whistle/plugins.html)
|
368 |
|
369 | ### v1.2.4
|
370 | 1. fix: tunnel代理中通过插件设置tunnelProxy无效的问题
|
371 | 2. fix: websocket映射没有同步修改请求path的问题
|
372 | 3. fix: 兼容大量不规范的头部处理方式,将输出的响应头的字段名称的首字母及`-`后面的字母都转成大写
|
373 |
|
374 | ### v1.2.5
|
375 | 1. feat: 新增协议[ignore](https://avwo.github.io/whistle/rules/ignore.html)
|
376 | 2. feat: 新增协议[enable](https://avwo.github.io/whistle/rules/enable.html)
|
377 |
|
378 | ### v1.2.6
|
379 | 1. refactor: 方便手动输入url,把安装根证书的url修改为http://rootca.pro/
|
380 |
|
381 | ### v1.3.0
|
382 | 1. feat: 支持在规则中设置局部变量,`pattern file:///User/xxx/${filename}`或直接拼接[Values]()的值 `pattern file://(${key1},${key2},${keyN})`,具体功能参考:[Values]()
|
383 | 2. feat: 支持通过Network下拉菜单或者快捷键(`Ctrl[Command] + i`、`Ctrl[Command] + S`)、拖拽文件导入导出Fiddler2、Fiddler4的saz文件
|
384 | 3. feat: 支持tunnel请求设置`statusCode://xxx`
|
385 | 4. refactor: 新增`status://xxx`等价于`statusCode://xxx`
|
386 | 5. refactor: 支持ip:port映射到ip:port,即:`127.0.0.1:6001 127.0.0.1:7001`,访问`http://127.0.0.1:6001`会转发到`http://127.0.0.1:7001`
|
387 | 6. refactor: 加入agent的连接池中空闲连接的超时机制,防止请求某些情况下无法触发`free`事件,导致连接无法释放
|
388 |
|
389 | ### v1.3.1
|
390 | 1. fix: 导出非utf8编码的内容为saz文件时出现的的乱码问题
|
391 |
|
392 | ### v1.3.2
|
393 | 1. fix: 导出saz文件时,如果res为空报错的问题
|
394 |
|
395 | ### v1.3.3
|
396 | 1. fix: 去掉socksv5的空闲超时设置,感谢 [@echopi](https://github.com/echopi) 反馈
|
397 |
|
398 | ### v1.3.4
|
399 | 1. fix: 导入导出saz文件的一些小问题
|
400 |
|
401 | ### v1.3.5
|
402 | 1. feat: 支持iOS的ATS安全标准,把RSA加密算法的密钥长度修改为2048(安装运行的Node版本不能小于 `v6.0.0` ),参见:[关于iOS的ATS](https://avwo.github.io/whistle/ats.html)
|
403 | 2. fix: 把请求头`proxy-connection`转成`connection`
|
404 |
|
405 | ### v1.3.6
|
406 | 1. fix: 无法修改 `connection` 请求头的问题
|
407 | 2. fix:兼容Fiddler某些情况导出的请求url无法显示域名的问题
|
408 |
|
409 | ### v1.3.7
|
410 | 1. fix: 某些服务器未按标准实现,导致无法识别纯小写的请求头,v1.3.7版本开始统一转成 `Xxx-Yxx` 的形式
|
411 | 2. style: 把Rules里面的 `Edit` 菜单名称改成语义更明确的 `Rename`
|
412 |
|
413 | ### v1.3.8
|
414 | 1. feat: 支持设置没有schema的url,如 `//ke.qq.com/test file:///User/xxx/abc` 与原来的 `ke.qq.com/test file:///User/xxx/abc` 等价
|
415 |
|
416 | ### v1.3.9
|
417 | 1. fix: 如果获取本地获取不到外网ip会导致`http://externalIP:whistlePort/`访问时无限循环的问题
|
418 | 2. style: 给Network菜单加title `双击删除所有sessions`
|
419 |
|
420 | ### v1.3.10
|
421 | 1. refactor: 防止获取不到外网ip可能导致代理无限循环的问题
|
422 | 2. feat: 支持自定义插件目录列表 `pluginPaths`,主要用于第三方模块使用,参见:[koa-whistle](https://github.com/avwo/koa-whistle)
|
423 |
|
424 | ### v1.3.11
|
425 | 1. fix: 导出Fiddler是saz文件时,响应的cookie合并在一起的问题
|
426 | 2. refactor: 更新`tunnel-agent`
|
427 |
|
428 | ### v1.3.12
|
429 | 1. feat: 支持根据请求头的 `content-encoding` 解压请求内容
|
430 | 2. refactor: 支持在[rulesFile](https://avwo.github.io/whistle/rules/rulesFile.html)的脚本中执行 `console.log`,并可以在 `Network->Log->Server`里面显示
|
431 | 3. fix: Node v7.7.0+引入的 `"listener" argument must be a function` 问题
|
432 |
|
433 | ### v1.3.13
|
434 | 1. fix:
|
435 | - 通过[rulesFile](https://avwo.github.io/whistle/rules/rulesFile.html)设置host或proxy无效的问题
|
436 | - Rules编辑器高亮显示的问题
|
437 | 2. refactor:
|
438 | - 提升https请求的响应速度
|
439 | - 优化了证书生成,防止后续Chrome版本无法识别,如果发现手机或Chrome浏览器无法识别证书,参见:[关于iOS的ATS](https://avwo.github.io/whistle/ats.html),启动时带上参数 `w2 start -A`,重新生成根证书,再安装新的根证书即可
|
440 |
|
441 | ### v1.3.14
|
442 | 1. refactor:
|
443 | - 请求和响应保留原有头部字段的大小写
|
444 | - 修改Network中匹配到规则是的url字体颜色
|
445 | 2. fix: rawfile头部存在 `content-encoding` 导致解析失败的问题
|
446 |
|
447 | ### v1.3.15
|
448 | 1. fix:
|
449 | - 新安装的插件内置规则文件 `_rule.txt` 无法自动生效的问题
|
450 | - 注释快捷键(Ctrl + ? 或 Command + ?)与常用编辑对齐
|
451 | 2. refactor:
|
452 | - 支持切换properties到source模式,方便直接copy到Values里面使用
|
453 | - 支持如下json格式设置同名属性,whistle自动解析成数组
|
454 |
|
455 | Set-Cookie: a=b
|
456 | Set-Cookie: c=d
|
457 | test: 123
|
458 |
|
459 | ### v1.3.16
|
460 | 1. fix: 设置 `proxy://` 第三方代理服务器返回的数据格式有问题会导致抛异常的问题
|
461 |
|
462 | ### v1.3.17
|
463 | ### v1.3.18
|
464 | 1. feat:
|
465 | - 支持拖拽请求到Composer
|
466 | - 支持json-tree
|
467 | 2. refactor:
|
468 | - 修改Network/Log下面的Conosle和Server背景颜色,让两者区分开来
|
469 | - 调整ATS参数的命令行提示
|
470 |
|
471 | ### v1.3.19
|
472 | 1. refactor: 导入saz文件时,支持自动解码
|
473 | 2. refactor: 非文本或文本太大无法显示时给出提示
|
474 |
|
475 | ### v1.3.20
|
476 | 1. fix: Fiddler的saz文件格式不兼容的问题
|
477 | 2. refactor: cgi改用相对路径,方便集成到其它应用中
|
478 |
|
479 | ### v1.4.0
|
480 | 1. fix:
|
481 | - 更新内部的一些随机端口机制,防止监听某些特殊端口导致无法响应的问题
|
482 | - 导出saz文件出现pending的问题
|
483 | 2. feat:
|
484 | - 把ui界面的所有链接都改成相对路径,方便使用ip或域名直接访问及集成到第三方应用
|
485 | - 同时配置 [host](https://avwo.github.io/whistle/rules/host.html)和 [proxy(socks)](https://avwo.github.io/whistle/rules/proxy.html),host的优先级高于proxy(socks)
|
486 | 3. refactor: 响应cookie的显示
|
487 |
|
488 | ### v1.4.1
|
489 | 1. fix: 在Network -> Overview中content-length显示为0的问题
|
490 |
|
491 | ### v1.4.2
|
492 | 1. refactor: 不区分第三人称和单复数,ruleFile和rulesFile等价、export和exports等价、 exportUrl和exportsUrl等价
|
493 | 2. feat:
|
494 | - 添加 `https2http-proxy://`,whistle把该https转成http后发送到指定代理
|
495 | - 添加 `internal-proxy://`,功能和 `https2http-proxy://` 一样,只是如果代理对象是whistle的话,会把http又转成https,主要用于whistle的扩展使用,一般用户无需了解
|
496 | - 添加 `http2https-proxy://`,whistle把该http转成https后发送到指定代理
|
497 |
|
498 | ### v1.4.3
|
499 | 1. refactor:
|
500 | - `Network -> Response -> TextView` 的Editor按钮打开的url改成相对路径
|
501 | - Network表格中的 `host IP` 改成 `serverIP`,语意更明确
|
502 |
|
503 | ### v1.4.4
|
504 | 1. fix: Header name must be a valid HTTP Token
|
505 |
|
506 | ### v1.4.5
|
507 | 1. fix: [log](https://avwo.github.io/whistle/webui/log.html)的缓存问题
|
508 |
|
509 | ### v1.4.6
|
510 |
|
511 | 1. fix: 屏蔽Node8自身bug导致崩溃的问题: [Assertion `(trigger_id) >= (0)' failed.](https://github.com/nodejs/node/issues/13325)
|
512 |
|
513 |
|
514 |
|
515 | ### v1.4.7
|
516 |
|
517 | 1. refactor: 确保转发到插件的请求可以把一些用户配置的Rule带过去
|
518 | 2. fix: 修复Mac上 `Chrome>=59` 出现的 `ERR_SSL_SERVER_CERT_BAD_FORMAT`的问题,需要启动时加 `w2 restart -A` 重新生成根证书,并安装,具体参见:[Https](https://avwo.github.io/whistle/webui/https.html)、[关于iOS的ATS](https://avwo.github.io/whistle/ats.html)
|
519 |
|
520 | ### v1.4.8
|
521 |
|
522 | 1. refactor:
|
523 | - 优化转发到插件的请求头,支持把proxy和pac配置规则带过去
|
524 | - `host://:port` === `host://remoteServerIP:port`
|
525 | 2. fix: 在Rules或Values按 `Ctrl + X` 清空Network的问题
|
526 |
|
527 | ### v1.4.9
|
528 | 1. fix: 解决Composer中url包含非ASCII字符时出现乱码的问题(如果请求头有非ASCII字符该字段将被忽略)
|
529 | 2. refactor: 改善whistle的pac脚本解析,全面支持dnsResovler
|
530 |
|
531 | ### v1.4.10
|
532 | 1. feat: 支持通配符的匹配方式(配置两边位置可以调换)
|
533 |
|
534 | # 匹配二级域名以 .com 结尾的所有url,如: test.com, abc.com,但不包含 *.xxx.com
|
535 | *.com file:///User/xxx/test
|
536 | //*.com file:///User/xxx/test
|
537 |
|
538 | # 匹配 test.com 的子域名,不包括 test.com
|
539 | # 也不包括诸如 *.xxx.test.com 的四级域名,只能包含: a.test.com,www.test.com 等test.com的三级域名
|
540 | *.test.com file:///User/xxx/test
|
541 | //*.test.com file:///User/xxx/test
|
542 |
|
543 | # 如果要配置所有子域名生效,可以使用 **
|
544 | **.com file:///User/xxx/test
|
545 | **.test.com file:///User/xxx/test
|
546 |
|
547 | # 限定协议,只对http生效
|
548 | http://*.com file:///User/xxx/test
|
549 | http://**.com file:///User/xxx/test
|
550 | http://*.test.com file:///User/xxx/test
|
551 | http://**.test.com file:///User/xxx/test
|
552 |
|
553 | # 路径
|
554 | *.com/abc/efg file:///User/xxx/test
|
555 | **.com/abc/efg file:///User/xxx/test
|
556 | *.test.com/abc/efg file:///User/xxx/test
|
557 | **.test.com/abc/efg file:///User/xxx/test
|
558 |
|
559 | http://*.com/abc/efg file:///User/xxx/test
|
560 | http://**.com/abc/efg file:///User/xxx/test
|
561 | http://*.test.com/abc/efg file:///User/xxx/test
|
562 | http://**.test.com/abc/efg file:///User/xxx/test
|
563 |
|
564 | 2. fix([#47](https://github.com/avwo/whistle/issues/47)): 证书被吊销过可能出现无法打开的问题
|
565 |
|
566 | ### v1.4.11
|
567 | 1. feat: 支持第三方应用在启动whistle时传人如下参数
|
568 | - `disableAllRules`: 不设置表示使用默认设置或用户通过界面设置,如果设置为 `true` 表示禁用所有规则,包括插件,如果设置为 `false` 表示启用所有规则,如果设置了true或false会覆盖通过页面的设置
|
569 | - `disableAllPlugins`: 不设置表示使用默认设置或用户通过界面设置,如果设置为 `true` 表示禁用所有插件,如果设置为 `false` 表示启用所有插件,如果设置了true或false会覆盖通过页面的设置
|
570 | - `allowMultipleChoice`: 不设置表示使用默认设置或用户通过界面设置,如果设置为 `true` 表示允许在Rules种同时启用多个规则,即允许多选,如果设置为 `false` 表示只能启用除Default以外的一个规则,如果设置了true或false会覆盖通过页面的设置
|
571 | - `rules`: 通过参数设置规则列表
|
572 | - 如果为string或数组,则表示只设置 `Default` 的规则
|
573 | - 如果为对象可以设置多个规则,及决定使用哪些规则(要同时启用多个规则,需要 `allowMultipleChoice` 设置为true)
|
574 |
|
575 | {
|
576 | Default: {
|
577 | rules: ['fffffffffffff', '000000000000'],
|
578 | enable: false,
|
579 | replace: false
|
580 | },
|
581 | test1: 'abc\n123',
|
582 | test2: {
|
583 | rules: 'www.test.com 127.0.0.1'.
|
584 | enable: true
|
585 | }
|
586 | }
|
587 |
|
588 | - `values`: 为对象,{ test: 'abc', testJson: {abc: 123} }
|
589 |
|
590 | ### v1.4.12
|
591 | 1. fix: 通过 `pattern cache://seconds` 设置缓存时间单位出错的问题
|
592 |
|
593 | ### v1.4.13
|
594 | 1. fix: 加入用户名和密码时,[log](https://avwo.github.io/whistle/webui/log.html)无法使用的问题
|
595 | 2. feat: 添加新的路径匹配方式:
|
596 |
|
597 | # 对所有域名对应的路径 protocol://a.b.c/xxx[/yyy]都生效
|
598 | ~/
|
599 | ~/xxx
|
600 | tunnel://~/ # tunnel只支持根路径匹配
|
601 | http://~/
|
602 | https://~/xxx
|
603 | ws://~/xxx
|
604 | wss://~/xxx
|
605 |
|
606 | # 也可以指定路径,不包含该路径的子路径
|
607 | $~/
|
608 | $~/xxx
|
609 | $tunnel://~/ # tunnel只支持根路径匹配
|
610 | $http://~/
|
611 | $https://~/xxx
|
612 | $ws://~/xxx
|
613 | $wss://~/xxx
|
614 |
|
615 | ### v1.4.14
|
616 | 1. refactor: Values支持rules的快捷键操作
|
617 | 2. refactor: 错误页面的 text/plain 改成 text/html
|
618 | 3. feat: 在规则配置中如果单独一行 `{xxx}` 表示从Values对应的key(xxx)内联文本
|
619 |
|
620 | ### v1.4.15
|
621 | 1. perf: 优化 `os.networkInterfaces` 的性能
|
622 | 2. fix: 支持注入的文本根据响应头进行编码
|
623 |
|
624 | ### v1.4.16
|
625 | 1. refactor: 使用 delete:// 删除头部字段是忽略大小写
|
626 | 2. style: 在Network下方过滤输入框输入内容高亮显示
|
627 |
|
628 | ### v1.4.17
|
629 | 1. fix: getPluginByPluginRule返回undefined的问题
|
630 |
|
631 | ### v1.4.18
|
632 | 1. fix: 新增setTimeout导致无法后台运行的问题
|
633 |
|
634 | ### v1.4.19
|
635 | 1. fix: 转发到插件请求头 `x-forwarded-for` 的问题
|
636 | 2. refactor: Values中名称形如 `xxx.rules` 的key作为正常的rules文件处理
|
637 | 3. style: Hover到顶部 `Help` 按钮显示帮助文档列表
|
638 |
|
639 | # v1.4.20
|
640 | 1. feat:
|
641 | - 支持插件通过${ruleKey}内联规则
|
642 | - 命令行添加参数 `-D, -baseDir` 用于指定whistle的存储目录,默认为 `~/.WhistleAppData`
|
643 | 2. refactor: 优化导入导出saz文件的性能
|
644 |
|
645 |
|
646 | ### -
|
647 | 完整功能请参见[whistle帮助文档](https://avwo.github.io/whistle/)。
|
648 |
|
649 |
|
650 |
|
651 |
|