whistle 2.9.34 → 2.9.36-beta

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.
@@ -0,0 +1,84 @@
1
+
2
+ var exports = {};
3
+ var module = { exports: exports };
4
+
5
+ ;(function() {
6
+ var self = null;
7
+ try {
8
+ (function() {
9
+ /*sourcecode*/
10
+ })();
11
+ } catch (e) {
12
+ setTimeout(function() {
13
+ throw e;
14
+ }, 20);
15
+ }
16
+ })();
17
+
18
+ ;(function() {
19
+ !function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){try{return i(e)}catch(t){}}var o,i=n(1).toByteArray,a=n(2).Base64.decode,s=n(3);if(self.TextDecoder)try{o=new self.TextDecoder("GB18030")}catch(l){}self.getText=function(e){var t=e&&r(e);if(!t)return"";if(!s(t))try{if(o)return o.decode(t)}catch(n){}try{return a(e)}catch(n){}return""}},function(e,t){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");-1===n&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function r(e){var t=n(e),r=t[0],o=t[1];return 3*(r+o)/4-o}function o(e,t,n){return 3*(t+n)/4-n}function i(e){var t,r,i=n(e),a=i[0],s=i[1],l=new d(o(e,a,s)),c=0,p=s>0?a-4:a;for(r=0;p>r;r+=4)t=u[e.charCodeAt(r)]<<18|u[e.charCodeAt(r+1)]<<12|u[e.charCodeAt(r+2)]<<6|u[e.charCodeAt(r+3)],l[c++]=t>>16&255,l[c++]=t>>8&255,l[c++]=255&t;return 2===s&&(t=u[e.charCodeAt(r)]<<2|u[e.charCodeAt(r+1)]>>4,l[c++]=255&t),1===s&&(t=u[e.charCodeAt(r)]<<10|u[e.charCodeAt(r+1)]<<4|u[e.charCodeAt(r+2)]>>2,l[c++]=t>>8&255,l[c++]=255&t),l}function a(e){return c[e>>18&63]+c[e>>12&63]+c[e>>6&63]+c[63&e]}function s(e,t,n){for(var r,o=[],i=t;n>i;i+=3)r=(e[i]<<16&16711680)+(e[i+1]<<8&65280)+(255&e[i+2]),o.push(a(r));return o.join("")}function l(e){for(var t,n=e.length,r=n%3,o=[],i=16383,a=0,l=n-r;l>a;a+=i)o.push(s(e,a,a+i>l?l:a+i));return 1===r?(t=e[n-1],o.push(c[t>>2]+c[t<<4&63]+"==")):2===r&&(t=(e[n-2]<<8)+e[n-1],o.push(c[t>>10]+c[t>>4&63]+c[t<<2&63]+"=")),o.join("")}t.byteLength=r,t.toByteArray=i,t.fromByteArray=l;for(var c=[],u=[],d="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,g=p.length;g>f;++f)c[f]=p[f],u[p.charCodeAt(f)]=f;u["-".charCodeAt(0)]=62,u["_".charCodeAt(0)]=63},function(e,t,n){var r,o;(function(n){!function(t,n){e.exports=n(t)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof n?n:this,function(n){"use strict";n=n||{};var i,a=n.Base64,s="2.6.4",l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=function(e){for(var t={},n=0,r=e.length;r>n;n++)t[e.charAt(n)]=n;return t}(l),u=String.fromCharCode,d=function(e){if(e.length<2){var t=e.charCodeAt(0);return 128>t?e:2048>t?u(192|t>>>6)+u(128|63&t):u(224|t>>>12&15)+u(128|t>>>6&63)+u(128|63&t)}var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return u(240|t>>>18&7)+u(128|t>>>12&63)+u(128|t>>>6&63)+u(128|63&t)},p=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,f=function(e){return e.replace(p,d)},g=function(e){var t=[0,2,1][e.length%3],n=e.charCodeAt(0)<<16|(e.length>1?e.charCodeAt(1):0)<<8|(e.length>2?e.charCodeAt(2):0),r=[l.charAt(n>>>18),l.charAt(n>>>12&63),t>=2?"=":l.charAt(n>>>6&63),t>=1?"=":l.charAt(63&n)];return r.join("")},h=n.btoa&&"function"==typeof n.btoa?function(e){return n.btoa(e)}:function(e){if(e.match(/[^\x00-\xFF]/))throw new RangeError("The string contains invalid characters.");return e.replace(/[\s\S]{1,3}/g,g)},m=function(e){return h(f(String(e)))},A=function(e){return e.replace(/[+\/]/g,function(e){return"+"==e?"-":"_"}).replace(/=/g,"")},M=function(e,t){return t?A(m(e)):m(e)},w=function(e){return M(e,!0)};n.Uint8Array&&(i=function(e,t){for(var n="",r=0,o=e.length;o>r;r+=3){var i=e[r],a=e[r+1],s=e[r+2],c=i<<16|a<<8|s;n+=l.charAt(c>>>18)+l.charAt(c>>>12&63)+("undefined"!=typeof a?l.charAt(c>>>6&63):"=")+("undefined"!=typeof s?l.charAt(63&c):"=")}return t?A(n):n});var b,y=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,v=function(e){switch(e.length){case 4:var t=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),n=t-65536;return u((n>>>10)+55296)+u((1023&n)+56320);case 3:return u((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return u((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},T=function(e){return e.replace(y,v)},x=function(e){var t=e.length,n=t%4,r=(t>0?c[e.charAt(0)]<<18:0)|(t>1?c[e.charAt(1)]<<12:0)|(t>2?c[e.charAt(2)]<<6:0)|(t>3?c[e.charAt(3)]:0),o=[u(r>>>16),u(r>>>8&255),u(255&r)];return o.length-=[0,0,2,1][n],o.join("")},N=n.atob&&"function"==typeof n.atob?function(e){return n.atob(e)}:function(e){return e.replace(/\S{1,4}/g,x)},C=function(e){return N(String(e).replace(/[^A-Za-z0-9\+\/]/g,""))},I=function(e){return T(N(e))},E=function(e){return String(e).replace(/[-_]/g,function(e){return"-"==e?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,"")},D=function(e){return I(E(e))};n.Uint8Array&&(b=function(e){return Uint8Array.from(C(E(e)),function(e){return e.charCodeAt(0)})});var L=function(){var e=n.Base64;return n.Base64=a,e};if(n.Base64={VERSION:s,atob:C,btoa:h,fromBase64:D,toBase64:M,utob:f,encode:M,encodeURI:w,btou:T,decode:D,noConflict:L,fromUint8Array:i,toUint8Array:b},"function"==typeof Object.defineProperty){var S=function(e){return{value:e,enumerable:!1,writable:!0,configurable:!0}};n.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",S(function(){return D(this)})),Object.defineProperty(String.prototype,"toBase64",S(function(e){return M(this,e)})),Object.defineProperty(String.prototype,"toBase64URI",S(function(){return M(this,!0)}))}}return n.Meteor&&(Base64=n.Base64),"undefined"!=typeof e&&e.exports?e.exports.Base64=n.Base64:(r=[],o=function(){return n.Base64}.apply(t,r),!(void 0!==o&&(e.exports=o))),{Base64:n.Base64}})}).call(t,function(){return this}())},function(e,t){"use strict";function n(e,t){t=t||0;for(var n=Math.min(e.length,r);n>t;t++){var o=e[t];if(!(9==o||10==o||13==o||o>=32&&127>=o)){++t;var i=e[t];if(o>=194&&223>=o){if(i>=128&&191>=i)continue;return!i}++t;var a=e[t];if(224==o){if(i>=160&&191>=i&&a>=128&&191>=a)continue;return!a}if(o>=225&&236>=o||238==o||239==o){if(i>=128&&191>=i&&a>=128&&191>=a)continue;return!a}if(237==o){if(i>=128&&159>=i&&a>=128&&191>=a)continue;return!a}++t;var s=e[t];if(240==o){if(i>=144&&191>=i&&a>=128&&191>=a&&s>=128&&191>=s)continue;return!s}if(o>=241&&243>=o){if(i>=128&&191>=i&&a>=128&&191>=a&&s>=128&&191>=s)continue;return!s}if(244==o){if(i>=128&&143>=i&&a>=128&&191>=a&&s>=128&&191>=s)continue;return!s}return!1}}return!0}var r=32768;e.exports=function(e){return n(e)?!0:0===e[0]&&n(e,5)}}]);
20
+
21
+ var getText = function(obj) {
22
+ return self.getText(obj.base64);
23
+ };
24
+ var parseJson = function(str) {
25
+ if (!str || !/^(?:\{[\s\S]*\}|\[[\s\S]*\])$/) {
26
+ return;
27
+ }
28
+ try {
29
+ return JSON.parse(str);
30
+ } catch (e) {}
31
+ };
32
+
33
+ var defineProps = function (obj) {
34
+ if (Object.defineProperties) {
35
+ var body, json;
36
+ var getBody = function () {
37
+ if (body === undefined) {
38
+ body = getText(obj);
39
+ }
40
+ return body;
41
+ }
42
+ Object.defineProperties(obj, {
43
+ body: { get: getBody },
44
+ json: {
45
+ get: function () {
46
+ if (json === undefined) {
47
+ json = parseJson(getBody()) || null;
48
+ }
49
+ return json;
50
+ }
51
+ }
52
+ });
53
+ } else {
54
+ obj.body = getText(obj) || '';
55
+ obj.json = parseJson(obj) || null;
56
+ }
57
+ return obj;
58
+ };
59
+ var handle = module.exports;
60
+ if (typeof handle !== 'function') {
61
+ handle = null;
62
+ }
63
+
64
+ self.onmessage = function(e) {
65
+ var data = handle && e.data;
66
+ var id = data && data.id;
67
+ if (!id) {
68
+ return;
69
+ }
70
+ data.res = defineProps(data.res || {});
71
+ data.req = defineProps(data.req || {});
72
+ data.req.headers = data.req.headers || {};
73
+ data.res.headers = data.res.headers || {};
74
+ handle(data, function(result) {
75
+ result && self.postMessage({
76
+ id: id,
77
+ data: result
78
+ });
79
+ });
80
+ };
81
+ })();
82
+
83
+ self.postMessage(true);
84
+
package/biz/index.js CHANGED
@@ -28,6 +28,7 @@ module.exports = function(req, res, next) {
28
28
  var port = host[1] || (req.isHttps ? 443 : 80);
29
29
  var bypass;
30
30
  host = host[0];
31
+ req._w2hostname = host;
31
32
  var transformPort, isProxyReq, isWeinre, isOthers;
32
33
  var webUI = WEBUI_PATH;
33
34
  var realHostRe = REAL_WEBUI_HOST;
@@ -25,6 +25,8 @@ module.exports = function(req, res) {
25
25
  version: config.version,
26
26
  custom1: properties.get('Custom1'),
27
27
  custom2: properties.get('Custom2'),
28
+ custom1Key: properties.get('Custom1Key'),
29
+ custom2Key: properties.get('Custom2Key'),
28
30
  supportH2: config.enableH2,
29
31
  hasInvalidCerts: ca.hasInvalidCerts,
30
32
  clientIp: clientIp,
@@ -1,19 +1,17 @@
1
+ var util = require('../../../lib/util');
1
2
  var properties = require('../../../lib/rules/util').properties;
2
3
 
3
- function updateName(name, value) {
4
- if (!value || typeof value !== 'string') {
5
- value = name;
6
- } else {
7
- value = value.trim().toString(0, 16);
8
- }
9
- properties.set(name, value);
4
+
5
+ function updateName(name, value, key) {
6
+ properties.set(name, util.isString(value) ? value.trim().toString(0, 16) : name);
7
+ properties.set(name + 'Key', util.isString(key) ? key.trim().substring(0, 72) : '');
10
8
  }
11
9
 
12
10
  module.exports = function(req, res) {
13
11
  var name = req.body.name;
14
12
  var value = req.body.value;
15
13
  if (name === 'Custom1' || name === 'Custom2') {
16
- updateName(name, value);
14
+ updateName(name, value, req.body.key);
17
15
  }
18
16
  res.json({ ec: 0 });
19
17
  };
@@ -22,7 +22,16 @@ textarea {resize: none; display: block; padding: 6px; font-size: 12px; width: 10
22
22
  </div>
23
23
  <script>
24
24
  var editor = document.getElementById('editor');
25
- if (window.getValue) {
25
+ var getInitCallback = function() {
26
+ try {
27
+ var cb = window.parent._initWhistleTextEditor_;
28
+ if (typeof cb === 'function') {
29
+ return cb;
30
+ }
31
+ } catch (e) {}
32
+ };
33
+ var init = getInitCallback();
34
+ if (!init && window.getValue) {
26
35
  var value = getValue();
27
36
  if (value) {
28
37
  editor.value = window.name = value;
@@ -34,6 +43,7 @@ textarea {resize: none; display: block; padding: 6px; font-size: 12px; width: 10
34
43
  window.setValue = function(value) {
35
44
  editor.value = value;
36
45
  };
46
+ init && init(window);
37
47
  }
38
48
  </script>
39
49
  </body>
@@ -8,6 +8,6 @@
8
8
  </head>
9
9
  <body style="overscroll-behavior-x: none;">
10
10
  <div id="container" class="main"></div>
11
- <script src="js/index.js?v=2.9.34"></script>
11
+ <script src="js/index.js?v=2.9.36"></script>
12
12
  </body>
13
13
  </html>