UNPKG

32.8 kBMarkdownView Raw
1### v0.3.11
2
3fix配置某些带端口号正则的时候可能导致系统奔溃的情况
4
5### v0.3.12
6
7fix如果请求包含content-length导致weinre无法注入的bug
8
9### v0.4.0
10
111. 菜单 `Rules``Values``Weinre`,hover出现列表(原来需要点击才能出现列表)
122. 新增快捷键 `ctrl + /` 来注释(取消注释)选中的行
133. 新增 `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
211. JSON对象的一种inline写法,可以直接写在协议的uri里面,形如: `protocol://name1=values&name2=value2&name3&name4=&name5=value5&nameN=valueN`
222. 加入了如果有大版本的更新,会自动提醒(一般有新功能加入或修复致命bug才会有大版本的更新)
23
24bugFix:
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
57bugfix:修改v0.5.7版直接访问[http://local.whistlejs.com/index.html](http://local.whistlejs.com/index.html)脚本出错的问题
58
59### v0.6.0
60
61bugfix:修改了路径匹配可能多加一个 `/` 的问题
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
721. 新增了 `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)
732. 纠正了解析[配置操作符](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的问题
743. 原来通过filter启用HTTPS,推荐改用这种方式:[启用HTTPS](https://github.com/avwo/whistle/wiki/%E5%90%AF%E7%94%A8HTTPS)
75
76
77### v0.6.2
78
791. 加入小版本更新时给出小提示
802. 添加 `disable` 的新功能:301、dnsCache、keepAlive、intercept
813. 新增 `reqReplace``resReplace` 两个功能:类似js字符串的 `replace` 方法,分别用来替换请求和响应的文本内容
82
83
84### v0.6.3
85
861. 新增`reqWriter``resWrite`分别用来把请求内容和响应内容写入到本地文件
872. 新增`reqWriterRaw``resWriteRaw`分别用来把请求完整信息和响应的完整信息写入到本地文件(包括路径、协议、方法、响应状态码、头部、内容等)
883. bugfix: 使用`reqReplace`改变了请求内容长度没有同步处理headers的content-length的问题
894. 支持通过 `params` 替换上传表单的字段
905. 对形如 `[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
1051. 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
1481. 支持通过插件开启在网页的右下角显示访问的真实ip,需要安装最新版的Chrome插件:[https://github.com/avwo/whistle-for-chrome](https://github.com/avwo/whistle-for-chrome)
1492. 支持`exportsUrl`,可以把匹配到的请求url导出到指定的文件
1503. 新增功能`resCors://use-credentials`(等价于`resCors://enable`),让语义更清晰
1514. 新增更简洁的命令行命令 `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
1641. 新增插件机制,可以很方便的自定义插件,并提供了平时开发中有用的插件作为例子,具体请参考请查看:[自定义whistle插件](https://github.com/avwo/whistle/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8F%92%E4%BB%B6)
1652. 加入请求失败自动重试机制,减少请求出错的情况
166
167### v0.8.1
168
1691. whistle ui -> about -> 插件列表:插件列表显示按ascii码排序
1702. 缓存[dispatch](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#dispatch)的script,提升速度
1713. 新增[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
1751. 修复自定义插件不能获取[values]()的值,即 `pattern plugin://{key}` 无法正确获取ruleValue的问题
1762. 限制自定义插件的名称不能与内置的协议名称冲突,如果冲突则该自定义插件将无效
177
178### v0.9.0
1791. **重要bugfix:**Fix https post数据时可能出现pending的问题
1802. 新增[etag](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#etag)协议,用于修改请求头的etag
1813. 支持通过`ua://``referer://``reqType://``resType://`等,把对应的字段置空
182
183### v0.9.1
1841. 新增[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)两个协议,分别用于快速修改请求、响应的编码
1852. bugfix:修复可能出现请求出错的情况,https://github.com/nodejs/node/pull/4482
186
187### v0.9.2
188
189bugfix:修复keepAlive可能导致请求无法响应的问题
190
191### v0.9.3
192
193refactor: 限制starting的版本为0.1.1,后面发布的starting版本和现有的不兼容
194
195### v0.9.4
1961. feature: 加入 `disable://ajax`,用于删除请求头 `x-requested-with`
1972. feature: 新增[accept](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#accept)用于修改请求头的accept字段
1983. feature: 加入插件开发过程中输出详细日志,[#3](https://github.com/avwo/whistle/issues/3)
1994. feature: 新增菜单栏 -> Rules -> Setting -> Disable all rules的选项,用于禁用所有规则
2005. refactor: 修改 `reqType``resType`的默认行为,如果`reqType``resType`没有带charset的时候,保留原有的charset
2016. refactor: 新增详细的启动提示信息
202
203### v0.9.5
204
205refactor: 详细的启动提示信息兼容node v0.10.x
206
207### v0.10.0
208
2091. feat: 新增规则包,可以在插件加入全局及内部的规则包,详见:[自定义插件](https://github.com/avwo/whistle/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8F%92%E4%BB%B6)
2102. 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)
2113. fix: 修复headers里面的set-cookie可能导致页面js出错的问题
2124. refactor: 更新页面用到的react到最新版本,提升前端性能
2135. fix: 如果插件的package.json格式有问题会导致无法自动加载插件
2146. fix: 修复reqAppend、resAppend无效的问题
215
216### v0.10.1
2171. feat:新增Server Log,用于记录服务端的日志:Network -> Log -> Server
2182. refactor: 调整log的加载逻辑,确保在打开Network -> Log前记录的log都能看到
2193. fix: 修复[log](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#log)协议出现请求被gc的情况
2204. 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
2231. refactor: 去除自动同步v0.3.0之前版本数据的逻辑(v0.3.0及以后版本的whistle数据存储目录做了一次修改)
2242. style: 替换全新的logo,感谢部门的视觉设计同事**[@wjdgh1031(鬼刀)](https://github.com/wjdgh1031)**帮忙设计了新logo
225
226### v0.10.3
2271. feat: 检测并提示代理服务器被切换
2282. feat: 界面上同时展示的请求数,由360调整为560
2293. perf: 极大提升UI界面的性能
2304. 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
2471. fix: 修复在调整窗口大小是没有重绘的问题
2482. feat: 把官网网址(官网还在开发中...)改为:[http://wproxy.org](http://wproxy.org/)
2493. 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)的区别是,后者不会请求到后台服务器,而是直接根据设置的状态码响应
2504. 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
2541. fix: 修复在https请求中使用[log](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#log)可能出现`Mixed Content`警告的问题
2552. 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, ...)`的写法
2563. fix: 清空请求数据的快捷键为`Ctrl+X`(mac也可以用`Command+X`),但原来在Clear按钮上的title提示错了
2574. feat: 加入快捷键 `Ctrl+D``Command+D`(Mac),用于删除请求列表中选中的条目、选中的rule、选中的value
2585. feat: 加入快捷键 `Ctrl +向上箭头``Ctrl +向下箭头` (Mac用`Command+向上箭头``Command +向下箭头`) 用于调整Rules(Values)列表的顺序
2596. feat: 支持点击请求列表的表头重新对列表进行重新排序
2607. feat: 把下一个匹配到的Rule通过NEXT_RULE_HEADER(x-whistle-next-rule)的头字段传到rulesServer,这样可以判断是否执行下一个规则
261
262### v0.11.2
263
264fix: `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
2731. feat: 新增[hostname](https://github.com/avwo/whistle/wiki/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8#hostname)用于修改`req.headers.host`
2742. feat: 支持通过`WHISTLE_PLUGINS_PATH`配置插件路径,whistle会优先从`join(WHISTLE_PLUGINS_PATH, 'node_modules')`加载插件
2753. fix: 修复在overview中优先显示插件私有规则的问题(PS:在Rules中配置的规则优先级最高)
2764. fix: post请求超时时间太短的问题,并把表单上传的请求的默认timeout时间加倍,减少上传失败的概率
277
278### v0.11.4
2791. fix: 修复在[Values](https://github.com/avwo/whistle/wiki/%E7%95%8C%E9%9D%A2%E6%93%8D%E4%BD%9C)中按`Ctrl+S`会弹出修改名称输入框的问题
2802. refactor: 允许同时安装多个不同的whistle根证书,安装根证书请参考:[启用HTTPS](https://github.com/avwo/whistle/wiki/%E5%90%AF%E7%94%A8HTTPS)
281
282### v0.12.0
2831. feat: 支持配置配置ip:port,如:`pattern host://ip:port`(port可选),这与`pattern ip:port`的区别是:后者会把请求头的`host`字段修改为`ip:port`(ip为IPv4或IPv6)
2842. feat: 支持同一个用户启动多个whistle服务`w2 start -S newStorageDir -p newPort`,具体参见[安装启动](https://avwo.github.io/whistle/install.html)
2853. docs: 修改页面中帮助文档的链接
2864. fix: 重写文档的过程中把所有功能都人肉跑了一遍,修复了一下问题,后续版本把自动化持续集成的功能加上
287
288### v0.12.1
289fix: 修复请求头有非法字符导致程序奔溃的问题
290
291
292### v0.12.2
2931. test: 加入自动化持续集成travis,并修复了一下bug
2942. fix: 响应有错误信息直接显示在抓包列表上
295
296### v0.12.3
2971. feat: 加入[urlReplace](https://avwo.github.io/whistle/rules/urlReplace.html)支持类似字符串的replace方法,替换请求url的路径内容
2982. style: 在Overview里面精确显示匹配`pattern matcher`,并在title里面显示配置规则的原始配置
299
300### v1.0.0
3011. fix: Linux设置开机启动无法找到homedir的问题
3022. feat: 新增开机启动脚本,如何设置开机启动,请参考[开机启动](https://avwo.github.io/whistle/autoStart.html)
3033. feat: plugin中新增statusServer,用于获取请求的状态: 请求开始、请求结束或请求出错,具体参见[插件开发](https://avwo.github.io/whistle/plugins.html)
3044. fix: 修复插件的plugin.rulesServer可能导致whistle crash的问题
3055. feat: 新增[plugin](https://avwo.github.io/whistle/rules/plugin.html),用于实时通知指定插件请求状态的变化及动态修改rules,如果匹配了插件的协议,则会忽略plugin的配置
306
307### v1.0.1
3081. fix: https代理可能出现异常的问题
3092. feat: 新增[plugin.tunnelRulesServer](https://avwo.github.io/whistle/plugins.html)用于在插件上设置代理tcp请求的规则
3103. feat: 通过https代理过来的请求,没被拦截的请求都认为tunnel协议,如: tunnel://www.baidu.com:443,具体参加:[注意事项](https://avwo.github.io/whistle/attention.html)
3114. feat: 代理请求新增`x-whistle-policy`用于设置whistle策略,目前只`tunnel`让whistle不要拦截https代理。
3125. test: 新增对https代理的一些测试用例
313
314### v1.0.2
3151. fix:windows的默认换行符导致命令行在Mac会Linux上不可用,请更新到最新版本即可:[更新whistle](https://avwo.github.io/whistle/update.html)
316
317### v1.0.3
3181. refactor: 把ruleValue传给tunnelRulesServer
3192. refactor: 把cgi和正常请求的客户端ip透传给插件
3203. feat: 支持local.whistlejs.com与xxx.local.whistlejs.com带端口访问
3214. feat: 支持plugin://name(ruleValue)或plugin://name://ruleValue的方式传值个插件的除server和uiServer以外的server
3225. feat: 新增命令行参数 `-l, --localUIHost`支持修改访问配置页面的域名,默认为`local.whistlejs.com`
323
324### v1.0.4
3251. feat: plugin新增tunnelServer,支持把tunnel请求转发到tunnelServer
3262. feat: 新增协议[plugin.xxx、whistle.xxx](https://avwo.github.io/whistle/rules/plugin.html),whistle.xxx://value <=> plugin.xxx://value <=> plugin://xxx://value
3273. refactor: 优化了`socks``proxy`的代理设置,新增socket复用及请求头的修改
328
329### v1.1.0
3301. fix: 修复了匹配顺序的bug,如下配置访问http://test.com:8080会匹配到下面的规则:
331
332 test.com operator-uri
333 /./ operator-uri
3342. fix: 插件相关的一些绝对路径的问题,用到插件最好[升级到最新版本](https://avwo.github.io/whistle/update.html)
3353. feat:新增[pac](https://avwo.github.io/whistle/rules/pac.html)用于设置pac脚本
3364. 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)只能设置为空字符串
3375. style: 把删除选中或非选中的数据及清空整个列表的按钮放到Network按钮的菜单列表里面
3386. style: 在Network下拉菜单里面新增`查看选中数据`,可以获取当前选中数据的json格式化数据。
339
340### v1.1.1
3411. chore: 调整协议列表的顺序
3422. docs: 修改帮助文档链接,提升访问速度: [https://avwo.github.io/whistle/](https://avwo.github.io/whistle/)
343
344# v1.1.2
3451. feat: 新增精确匹配(原来也可以通过正则实现,只是对这种情形用这方式比较方便),`$url operator-uri`详见[匹配方式](https://avwo.github.io/whistle/pattern.html)
3462. feat: 支持各个rules server(pluginRulesServer, rulesServer, tunnelRules, resRulesServer)传values过来,详见[插件开发](https://avwo.github.io/whistle/plugins.html)
3473. style: 添加双击`Network`按钮情况请求列表的快捷方式
3484. style: 添加输入系统或插件没有对应的协议时加中划线及字体颜色变红
3495. chore:处理了所有eslint错误
350
351### v1.2.0
3521. fix: #16
3532. feat: 支持通过`Ctrl + Shift + /`切换Rules编辑框的注释状态,选中的行中如果注释将解除注释,如果没有注释,则会注释掉这行
3543. feat: 新增[rulesFile](https://avwo.github.io/whistle/rules/rulesFile.html),可以批量设置规则或者通过脚本动态设置规则
3554. refactor: 支持通过(`whistle.xxx://``whistle.yyy://`)同时匹配多个插件
3565. refactor: 调整[pac](https://avwo.github.io/whistle/rules/pac.html)逻辑,让替换后的请求也有作用
3576. refactor: 把socks、proxy协议作为一个独立的协议,使得给匹配的规则设置代理
358
359### v1.2.1
3601. fix: Buffer.from兼容性问题,在node v5上不支持字符串参数
3612. refactor: 去掉head这个老协议,可以使用跟方便的reqXxx,resXxx协议
362
363### <del>v1.2.2
364
365### v1.2.3
3661. feat: 支持自定义根证书及特定域名的证书、通配证书
3672. feat: 插件新增statsServer,可以用于统计请求及获取所有请求的参见就头信息,详见[插件开发](https://avwo.github.io/whistle/plugins.html)
368
369### v1.2.4
3701. fix: tunnel代理中通过插件设置tunnelProxy无效的问题
3712. fix: websocket映射没有同步修改请求path的问题
3723. fix: 兼容大量不规范的头部处理方式,将输出的响应头的字段名称的首字母及`-`后面的字母都转成大写
373
374### v1.2.5
3751. feat: 新增协议[ignore](https://avwo.github.io/whistle/rules/ignore.html)
3762. feat: 新增协议[enable](https://avwo.github.io/whistle/rules/enable.html)
377
378### v1.2.6
3791. refactor: 方便手动输入url,把安装根证书的url修改为http://rootca.pro/
380
381### v1.3.0
3821. feat: 支持在规则中设置局部变量,`pattern file:///User/xxx/${filename}`或直接拼接[Values]()的值 `pattern file://(${key1},${key2},${keyN})`,具体功能参考:[Values]()
3832. feat: 支持通过Network下拉菜单或者快捷键(`Ctrl[Command] + i``Ctrl[Command] + S`)、拖拽文件导入导出Fiddler2、Fiddler4的saz文件
3843. feat: 支持tunnel请求设置`statusCode://xxx`
3854. refactor: 新增`status://xxx`等价于`statusCode://xxx`
3865. 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`
3876. refactor: 加入agent的连接池中空闲连接的超时机制,防止请求某些情况下无法触发`free`事件,导致连接无法释放
388
389### v1.3.1
3901. fix: 导出非utf8编码的内容为saz文件时出现的的乱码问题
391
392### v1.3.2
3931. fix: 导出saz文件时,如果res为空报错的问题
394
395### v1.3.3
3961. fix: 去掉socksv5的空闲超时设置,感谢 [@echopi](https://github.com/echopi) 反馈
397
398### v1.3.4
3991. fix: 导入导出saz文件的一些小问题
400
401### v1.3.5
4021. feat: 支持iOS的ATS安全标准,把RSA加密算法的密钥长度修改为2048(安装运行的Node版本不能小于 `v6.0.0` ),参见:[关于iOS的ATS](https://avwo.github.io/whistle/ats.html)
4032. fix: 把请求头`proxy-connection`转成`connection`
404
405### v1.3.6
4061. fix: 无法修改 `connection` 请求头的问题
4072. fix:兼容Fiddler某些情况导出的请求url无法显示域名的问题
408
409### v1.3.7
4101. fix: 某些服务器未按标准实现,导致无法识别纯小写的请求头,v1.3.7版本开始统一转成 `Xxx-Yxx` 的形式
4112. style: 把Rules里面的 `Edit` 菜单名称改成语义更明确的 `Rename`
412
413### v1.3.8
4141. feat: 支持设置没有schema的url,如 `//ke.qq.com/test file:///User/xxx/abc` 与原来的 `ke.qq.com/test file:///User/xxx/abc` 等价
415
416### v1.3.9
4171. fix: 如果获取本地获取不到外网ip会导致`http://externalIP:whistlePort/`访问时无限循环的问题
4182. style: 给Network菜单加title `双击删除所有sessions`
419
420### v1.3.10
4211. refactor: 防止获取不到外网ip可能导致代理无限循环的问题
4222. feat: 支持自定义插件目录列表 `pluginPaths`,主要用于第三方模块使用,参见:[koa-whistle](https://github.com/avwo/koa-whistle)
423
424### v1.3.11
4251. fix: 导出Fiddler是saz文件时,响应的cookie合并在一起的问题
4262. refactor: 更新`tunnel-agent`
427
428### v1.3.12
4291. feat: 支持根据请求头的 `content-encoding` 解压请求内容
4302. refactor: 支持在[rulesFile](https://avwo.github.io/whistle/rules/rulesFile.html)的脚本中执行 `console.log`,并可以在 `Network->Log->Server`里面显示
4313. fix: Node v7.7.0+引入的 `"listener" argument must be a function` 问题
432
433### v1.3.13
4341. fix:
435 - 通过[rulesFile](https://avwo.github.io/whistle/rules/rulesFile.html)设置host或proxy无效的问题
436 - Rules编辑器高亮显示的问题
4372. refactor:
438 - 提升https请求的响应速度
439 - 优化了证书生成,防止后续Chrome版本无法识别,如果发现手机或Chrome浏览器无法识别证书,参见:[关于iOS的ATS](https://avwo.github.io/whistle/ats.html),启动时带上参数 `w2 start -A`,重新生成根证书,再安装新的根证书即可
440
441### v1.3.14
4421. refactor:
443 - 请求和响应保留原有头部字段的大小写
444 - 修改Network中匹配到规则是的url字体颜色
4452. fix: rawfile头部存在 `content-encoding` 导致解析失败的问题
446
447### v1.3.15
4481. fix:
449 - 新安装的插件内置规则文件 `_rule.txt` 无法自动生效的问题
450 - 注释快捷键(Ctrl + ? 或 Command + ?)与常用编辑对齐
4512. 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
4601. fix: 设置 `proxy://` 第三方代理服务器返回的数据格式有问题会导致抛异常的问题
461
462### v1.3.17
463### v1.3.18
4641. feat:
465 - 支持拖拽请求到Composer
466 - 支持json-tree
4672. refactor:
468 - 修改Network/Log下面的Conosle和Server背景颜色,让两者区分开来
469 - 调整ATS参数的命令行提示
470
471### v1.3.19
4721. refactor: 导入saz文件时,支持自动解码
4732. refactor: 非文本或文本太大无法显示时给出提示
474
475### v1.3.20
4761. fix: Fiddler的saz文件格式不兼容的问题
4772. refactor: cgi改用相对路径,方便集成到其它应用中
478
479### v1.4.0
4801. fix:
481 - 更新内部的一些随机端口机制,防止监听某些特殊端口导致无法响应的问题
482 - 导出saz文件出现pending的问题
4832. 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)
4863. refactor: 响应cookie的显示
487
488### v1.4.1
4891. fix: 在Network -> Overview中content-length显示为0的问题
490
491### v1.4.2
4921. refactor: 不区分第三人称和单复数,ruleFile和rulesFile等价、export和exports等价、 exportUrl和exportsUrl等价
4932. 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
4991. refactor:
500 - `Network -> Response -> TextView` 的Editor按钮打开的url改成相对路径
501 - Network表格中的 `host IP` 改成 `serverIP`,语意更明确
502
503### v1.4.4
5041. fix: Header name must be a valid HTTP Token
505
506### v1.4.5
5071. fix: [log](https://avwo.github.io/whistle/webui/log.html)的缓存问题
508
509### v1.4.6
510
5111. fix: 屏蔽Node8自身bug导致崩溃的问题: [Assertion `(trigger_id) >= (0)' failed.](https://github.com/nodejs/node/issues/13325)
512
513
514
515### v1.4.7
516
5171. refactor: 确保转发到插件的请求可以把一些用户配置的Rule带过去
5182. 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
5221. refactor:
523 - 优化转发到插件的请求头,支持把proxy和pac配置规则带过去
524 - `host://:port` === `host://remoteServerIP:port`
5252. fix: 在Rules或Values按 `Ctrl + X` 清空Network的问题
526
527### v1.4.9
5281. fix: 解决Composer中url包含非ASCII字符时出现乱码的问题(如果请求头有非ASCII字符该字段将被忽略)
5292. refactor: 改善whistle的pac脚本解析,全面支持dnsResovler
530
531### v1.4.10
5321. 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
5642. fix([#47](https://github.com/avwo/whistle/issues/47)): 证书被吊销过可能出现无法打开的问题
565
566### v1.4.11
5671. 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
5911. fix: 通过 `pattern cache://seconds` 设置缓存时间单位出错的问题
592
593### v1.4.13
5941. fix: 加入用户名和密码时,[log](https://avwo.github.io/whistle/webui/log.html)无法使用的问题
5952. 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
6161. refactor: Values支持rules的快捷键操作
6172. refactor: 错误页面的 text/plain 改成 text/html
6183. feat: 在规则配置中如果单独一行 `{xxx}` 表示从Values对应的key(xxx)内联文本
619
620### v1.4.15
6211. perf: 优化 `os.networkInterfaces` 的性能
6222. fix: 支持注入的文本根据响应头进行编码
623
624### v1.4.16
6251. refactor: 使用 delete:// 删除头部字段是忽略大小写
6262. style: 在Network下方过滤输入框输入内容高亮显示
627
628### v1.4.17
6291. fix: getPluginByPluginRule返回undefined的问题
630
631### v1.4.18
6321. fix: 新增setTimeout导致无法后台运行的问题
633
634### v1.4.19
6351. fix: 转发到插件请求头 `x-forwarded-for` 的问题
6362. refactor: Values中名称形如 `xxx.rules` 的key作为正常的rules文件处理
6373. style: Hover到顶部 `Help` 按钮显示帮助文档列表
638
639# v1.4.20
6401. feat:
641 - 支持插件通过${ruleKey}内联规则
642 - 命令行添加参数 `-D, -baseDir` 用于指定whistle的存储目录,默认为 `~/.WhistleAppData`
6432. refactor: 优化导入导出saz文件的性能
644
645
646### -
647完整功能请参见[whistle帮助文档](https://avwo.github.io/whistle/)。
648
649
650
651