tools-for-js 1.4.0 → 1.4.2

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/README.md CHANGED
@@ -62,4 +62,8 @@ import { API } from 'tools-for-js'
62
62
  | 随机颜色 | randomColor |
63
63
  | 创建 UUID | createUUID |
64
64
  | 随机 MAC 地址 | randomMac |
65
+ | 随机索引 | randomIndex |
66
+ | 随机数组中的值 | randomEnum |
67
+ | 随机数组中的 n 个值 | randomNumEnum |
68
+ | 随机指定范围的整数 | randomIntRange |
65
69
  | 待更新 | function |
package/lib/index.js CHANGED
@@ -27,6 +27,18 @@ Object.defineProperty(exports, "arrayToTree", {
27
27
  return _array.arrayToTree;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "checkCode", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _string.checkCode;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "checkCrypt", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _string.checkCrypt;
40
+ }
41
+ });
30
42
  Object.defineProperty(exports, "checkKeyEmpty", {
31
43
  enumerable: true,
32
44
  get: function get() {
@@ -81,12 +93,24 @@ Object.defineProperty(exports, "deWeightArray", {
81
93
  return _array.deWeightArray;
82
94
  }
83
95
  });
96
+ Object.defineProperty(exports, "decrypt", {
97
+ enumerable: true,
98
+ get: function get() {
99
+ return _string.decrypt;
100
+ }
101
+ });
84
102
  Object.defineProperty(exports, "deepCopy", {
85
103
  enumerable: true,
86
104
  get: function get() {
87
105
  return _common.deepCopy;
88
106
  }
89
107
  });
108
+ Object.defineProperty(exports, "encrypt", {
109
+ enumerable: true,
110
+ get: function get() {
111
+ return _string.encrypt;
112
+ }
113
+ });
90
114
  Object.defineProperty(exports, "exactAdd", {
91
115
  enumerable: true,
92
116
  get: function get() {
@@ -99,6 +123,12 @@ Object.defineProperty(exports, "formatDate", {
99
123
  return _time.formatDate;
100
124
  }
101
125
  });
126
+ Object.defineProperty(exports, "fromCode", {
127
+ enumerable: true,
128
+ get: function get() {
129
+ return _string.fromCode;
130
+ }
131
+ });
102
132
  Object.defineProperty(exports, "getAfterNDays", {
103
133
  enumerable: true,
104
134
  get: function get() {
@@ -195,6 +225,24 @@ Object.defineProperty(exports, "randomColor", {
195
225
  return _random.randomColor;
196
226
  }
197
227
  });
228
+ Object.defineProperty(exports, "randomEnum", {
229
+ enumerable: true,
230
+ get: function get() {
231
+ return _random.randomEnum;
232
+ }
233
+ });
234
+ Object.defineProperty(exports, "randomIndex", {
235
+ enumerable: true,
236
+ get: function get() {
237
+ return _random.randomIndex;
238
+ }
239
+ });
240
+ Object.defineProperty(exports, "randomIntRange", {
241
+ enumerable: true,
242
+ get: function get() {
243
+ return _random.randomIntRange;
244
+ }
245
+ });
198
246
  Object.defineProperty(exports, "randomMac", {
199
247
  enumerable: true,
200
248
  get: function get() {
@@ -207,6 +255,12 @@ Object.defineProperty(exports, "randomNum", {
207
255
  return _random.randomNum;
208
256
  }
209
257
  });
258
+ Object.defineProperty(exports, "randomNumEnum", {
259
+ enumerable: true,
260
+ get: function get() {
261
+ return _random.randomNumEnum;
262
+ }
263
+ });
210
264
  Object.defineProperty(exports, "replacePath", {
211
265
  enumerable: true,
212
266
  get: function get() {
@@ -255,6 +309,12 @@ Object.defineProperty(exports, "timeStamp", {
255
309
  return _time.timeStamp;
256
310
  }
257
311
  });
312
+ Object.defineProperty(exports, "toCode", {
313
+ enumerable: true,
314
+ get: function get() {
315
+ return _string.toCode;
316
+ }
317
+ });
258
318
  Object.defineProperty(exports, "transformDate", {
259
319
  enumerable: true,
260
320
  get: function get() {
@@ -5,7 +5,55 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.randomCode = exports.createUUID = void 0;
7
7
  exports.randomColor = randomColor;
8
- exports.randomNum = exports.randomMac = void 0;
8
+ exports.randomNumEnum = exports.randomNum = exports.randomMac = exports.randomIntRange = exports.randomIndex = exports.randomEnum = void 0;
9
+ /*******
10
+ * @description: 随机索引
11
+ * @author: 琴时
12
+ * @param {*} length [长度] [默认为10==>0~9]
13
+ * @return {*}
14
+ */
15
+ var randomIndex = exports.randomIndex = function randomIndex() {
16
+ var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
17
+ return Math.floor(Math.random() * length);
18
+ };
19
+
20
+ /*******
21
+ * @description: 创建UUID
22
+ * UUID(Universally Unique IDentifier) 全局唯一标识符。
23
+ * UUID是一种由算法生成的二进制长度为128位的数字标识符。
24
+ * UUID的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,
25
+ * 其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数。
26
+ * 在理想情况下,任何计算机和计算机集群都不会生成两个相同的UUID。
27
+ * @author: 琴时
28
+ * @param {String} symbol [分隔符] [默认为空]
29
+ * @return {String}
30
+ * @example: createUUID('-') // 生成UUID并使用[-]作为分隔符
31
+ */
32
+ var createUUID = exports.createUUID = function createUUID() {
33
+ var symbol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
34
+ var s = [];
35
+ var hexDigits = '0123456789abcdef';
36
+ for (var i = 0; i < 36; i++) {
37
+ s[i] = hexDigits.charAt(randomIndex(16));
38
+ }
39
+ s[14] = '4'; // bits 12-15 of 时间和版本字段设置为0010
40
+ s[19] = hexDigits.charAt(s[19] & 3 | 8); // bits 6-7 of the clock_seq_hi_and_reserved to 01
41
+ s[8] = s[13] = s[18] = s[23] = '-';
42
+ return s.join('').replace(/-/g, symbol);
43
+ };
44
+
45
+ /*******
46
+ * @description: 随机MAC地址
47
+ * @author: 琴时
48
+ * @return {String}
49
+ */
50
+ var randomMac = exports.randomMac = function randomMac() {
51
+ return 'XX:XX:XX:XX:XX:XX'.replace(/X/g, function () {
52
+ var hexDigits = '0123456789ABCDEF';
53
+ return hexDigits.charAt(randomIndex(16));
54
+ });
55
+ };
56
+
9
57
  /*******
10
58
  * @description: 随机数字
11
59
  * @author: 琴时
@@ -17,7 +65,7 @@ var randomNum = exports.randomNum = function randomNum() {
17
65
  var result = '';
18
66
  var decimalDigits = '0123456789';
19
67
  for (var i = 0; i < length; i++) {
20
- var index = Math.floor(Math.random() * 10); //随机生成一位0~9的数
68
+ var index = randomIndex(10); //随机生成一位0~9的数
21
69
  result += decimalDigits.charAt(index);
22
70
  }
23
71
  return result;
@@ -37,7 +85,7 @@ var randomCode = exports.randomCode = function randomCode() {
37
85
  var capital = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
38
86
  var character = num + lower + capital;
39
87
  for (var i = 0; i < length; i++) {
40
- var index = Math.floor(Math.random() * character.length); //随机生成一位0~61的数
88
+ var index = randomIndex(character.length); //随机生成一位0~61的数
41
89
  result += character.charAt(index);
42
90
  }
43
91
  return result;
@@ -54,7 +102,7 @@ function randomColor() {
54
102
  var hexDigits = '0123456789ABCDEF';
55
103
  var color = '#';
56
104
  for (var i = 0; i < 6; i++) {
57
- var index = Math.floor(Math.random() * 16); //随机生成一位0~15的数
105
+ var index = randomIndex(16); //随机生成一位0~15的数
58
106
  color += hexDigits.charAt(index);
59
107
  }
60
108
  //如果生成的颜色和默认颜色重复了,则重新生成
@@ -63,38 +111,45 @@ function randomColor() {
63
111
  }
64
112
 
65
113
  /*******
66
- * @description: 创建UUID
67
- * UUID(Universally Unique IDentifier) 全局唯一标识符。
68
- * UUID是一种由算法生成的二进制长度为128位的数字标识符。
69
- * UUID的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,
70
- * 其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数。
71
- * 在理想情况下,任何计算机和计算机集群都不会生成两个相同的UUID。
114
+ * @description: 随机数组中的值
72
115
  * @author: 琴时
73
- * @param {String} symbol [分隔符] [默认为空]
74
- * @return {String}
75
- * @example: createUUID('-') // 生成UUID并使用[-]作为分隔符
116
+ * @param {Array} list
117
+ * @return {*}
76
118
  */
77
- var createUUID = exports.createUUID = function createUUID() {
78
- var symbol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '-';
79
- var s = [];
80
- var hexDigits = '0123456789abcdef';
81
- for (var i = 0; i < 36; i++) {
82
- s[i] = hexDigits.charAt(Math.floor(Math.random() * 16));
119
+ var randomEnum = exports.randomEnum = function randomEnum() {
120
+ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
121
+ return list[randomIndex(list.length)];
122
+ };
123
+
124
+ /*******
125
+ * @description: 随机数组中的n个值
126
+ * @author: 琴时
127
+ * @param {*} array
128
+ * @param {*} num
129
+ * @return {Array}
130
+ */
131
+ var randomNumEnum = exports.randomNumEnum = function randomNumEnum(array, num) {
132
+ var shuffled = array.slice(0),
133
+ i = array.length,
134
+ min = i - num,
135
+ temp,
136
+ index;
137
+ while (i-- > min) {
138
+ index = Math.floor((i + 1) * Math.random());
139
+ temp = shuffled[index];
140
+ shuffled[index] = shuffled[i];
141
+ shuffled[i] = temp;
83
142
  }
84
- s[14] = '4'; // bits 12-15 of 时间和版本字段设置为0010
85
- s[19] = hexDigits.charAt(s[19] & 3 | 8); // bits 6-7 of the clock_seq_hi_and_reserved to 01
86
- s[8] = s[13] = s[18] = s[23] = '-';
87
- return s.join('').replace(/-/g, symbol);
143
+ return shuffled.slice(min);
88
144
  };
89
145
 
90
146
  /*******
91
- * @description: 随机MAC地址
147
+ * @description: 随机指定范围的整数
92
148
  * @author: 琴时
93
- * @return {String}
149
+ * @param {Number} min [最小值]
150
+ * @param {Number} max [最大值]
151
+ * @return {Number} 随机值
94
152
  */
95
- var randomMac = exports.randomMac = function randomMac() {
96
- return 'XX:XX:XX:XX:XX:XX'.replace(/X/g, function () {
97
- var hexDigits = '0123456789ABCDEF';
98
- return hexDigits.charAt(Math.floor(Math.random() * 16));
99
- });
153
+ var randomIntRange = exports.randomIntRange = function randomIntRange(min, max) {
154
+ return randomIndex(max - min + 1) + min;
100
155
  };
@@ -3,67 +3,104 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getStrLength = exports.encode = exports.decode = exports.checkPwdStrength = void 0;
6
+ exports.getStrLength = exports.fromCode = exports.encrypt = exports.decrypt = exports.checkPwdStrength = exports.checkCrypt = exports.checkCode = void 0;
7
7
  exports.replacePath = replacePath;
8
8
  exports.splitString = splitString;
9
9
  exports.splitToFileName = splitToFileName;
10
+ exports.toCode = void 0;
11
+ var _random = require("./random");
10
12
  var _utf8_encode = function _utf8_encode(string) {
13
+ string = string ? string.toString() : '';
11
14
  string = string.replace(/\r\n/g, '\n');
12
- var utftext = '';
15
+ var utf_text = '';
13
16
  for (var n = 0; n < string.length; n++) {
14
17
  var c = string.charCodeAt(n);
15
18
  if (c < 128) {
16
- utftext += String.fromCharCode(c);
19
+ utf_text += String.fromCharCode(c);
17
20
  } else if (c > 127 && c < 2048) {
18
- utftext += String.fromCharCode(c >> 6 | 192);
19
- utftext += String.fromCharCode(c & 63 | 128);
21
+ utf_text += String.fromCharCode(c >> 6 | 192);
22
+ utf_text += String.fromCharCode(c & 63 | 128);
20
23
  } else {
21
- utftext += String.fromCharCode(c >> 12 | 224);
22
- utftext += String.fromCharCode(c >> 6 & 63 | 128);
23
- utftext += String.fromCharCode(c & 63 | 128);
24
+ utf_text += String.fromCharCode(c >> 12 | 224);
25
+ utf_text += String.fromCharCode(c >> 6 & 63 | 128);
26
+ utf_text += String.fromCharCode(c & 63 | 128);
24
27
  }
25
28
  }
26
- return utftext;
29
+ return utf_text;
27
30
  };
28
- var _utf8_decode = function _utf8_decode(utftext) {
31
+ var _utf8_decode = function _utf8_decode(utf_text) {
32
+ utf_text = utf_text ? utf_text.toString() : '';
29
33
  var string = '';
30
34
  var i = 0;
31
- var c = 0;
32
35
  var c1 = 0;
33
36
  var c2 = 0;
34
- var c3 = 0;
35
- while (i < utftext.length) {
36
- c = utftext.charCodeAt(i);
37
- if (c < 128) {
38
- string += String.fromCharCode(c);
37
+ while (i < utf_text.length) {
38
+ c1 = utf_text.charCodeAt(i);
39
+ if (c1 < 128) {
40
+ string += String.fromCharCode(c1);
39
41
  i++;
40
- } else if (c > 191 && c < 224) {
41
- c2 = utftext.charCodeAt(i + 1);
42
- string += String.fromCharCode((c & 31) << 6 | c2 & 63);
42
+ } else if (c1 > 191 && c1 < 224) {
43
+ c2 = utf_text.charCodeAt(i + 1);
44
+ string += String.fromCharCode((c1 & 31) << 6 | c2 & 63);
43
45
  i += 2;
44
46
  } else {
45
- c2 = utftext.charCodeAt(i + 1);
46
- c3 = utftext.charCodeAt(i + 2);
47
- string += String.fromCharCode((c & 15) << 12 | (c2 & 63) << 6 | c3 & 63);
47
+ c2 = utf_text.charCodeAt(i + 1);
48
+ var c3 = utf_text.charCodeAt(i + 2);
49
+ string += String.fromCharCode((c1 & 15) << 12 | (c2 & 63) << 6 | c3 & 63);
48
50
  i += 3;
49
51
  }
50
52
  }
51
53
  return string;
52
54
  };
55
+
56
+ /*******
57
+ * @description: 字符加密
58
+ * @author: 琴时
59
+ * @param {String|Number} input
60
+ * @return {String}
61
+ */
62
+ var encrypt = exports.encrypt = function encrypt(input, key) {
63
+ if (!input) return '';
64
+ // 取65位字符
65
+ var _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
66
+ var output = '';
67
+ var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
68
+ var i = 0;
69
+ input = _utf8_encode(input);
70
+ input = "".concat((0, _random.randomCode)(6), ":").concat(key, ":").concat(input);
71
+ while (i < input.length) {
72
+ chr1 = input.charCodeAt(i++);
73
+ chr2 = input.charCodeAt(i++);
74
+ chr3 = input.charCodeAt(i++);
75
+ enc1 = chr1 >> 2;
76
+ enc2 = (chr1 & 3) << 4 | chr2 >> 4;
77
+ enc3 = (chr2 & 15) << 2 | chr3 >> 6;
78
+ enc4 = chr3 & 63;
79
+ if (isNaN(chr2)) {
80
+ enc3 = enc4 = 64;
81
+ } else if (isNaN(chr3)) {
82
+ enc4 = 64;
83
+ }
84
+ output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
85
+ }
86
+ return output;
87
+ };
88
+
53
89
  /*******
54
- * @description: 解密
90
+ * @description: 字符解密
55
91
  * @author: 琴时
56
92
  * @param {String} input
57
93
  * @return {String}
58
94
  */
59
- var decode = exports.decode = function decode(input) {
95
+ var decrypt = exports.decrypt = function decrypt(input, key) {
96
+ // 取65位字符
60
97
  var _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
61
98
  var output = '';
62
99
  var chr1, chr2, chr3;
63
100
  var enc1, enc2, enc3, enc4;
64
101
  var i = 0;
65
- input = input.toString();
66
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
102
+ input = input ? input.toString() : '';
103
+ input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
67
104
  while (i < input.length) {
68
105
  enc1 = _keyStr.indexOf(input.charAt(i++));
69
106
  enc2 = _keyStr.indexOf(input.charAt(i++));
@@ -81,36 +118,21 @@ var decode = exports.decode = function decode(input) {
81
118
  }
82
119
  }
83
120
  output = _utf8_decode(output);
84
- return output;
121
+ var symbol = ":".concat(key, ":"); // 盐字段切割符号
122
+ return output.split(symbol)[1] || '';
85
123
  };
124
+
86
125
  /*******
87
- * @description: 加密
126
+ * @description: 校验加密字符
88
127
  * @author: 琴时
89
- * @param {String} input
90
- * @return {String}
128
+ * @param {String|Number} text
129
+ * @param {String} crypt
130
+ * @param {*} key
131
+ * @return {Boolean}
91
132
  */
92
- var encode = exports.encode = function encode(input) {
93
- var _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
94
- var output = '';
95
- var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
96
- var i = 0;
97
- input = _utf8_encode(input.toString());
98
- while (i < input.length) {
99
- chr1 = input.charCodeAt(i++);
100
- chr2 = input.charCodeAt(i++);
101
- chr3 = input.charCodeAt(i++);
102
- enc1 = chr1 >> 2;
103
- enc2 = (chr1 & 3) << 4 | chr2 >> 4;
104
- enc3 = (chr2 & 15) << 2 | chr3 >> 6;
105
- enc4 = chr3 & 63;
106
- if (isNaN(chr2)) {
107
- enc3 = enc4 = 64;
108
- } else if (isNaN(chr3)) {
109
- enc4 = 64;
110
- }
111
- output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
112
- }
113
- return output;
133
+ var checkCrypt = exports.checkCrypt = function checkCrypt(text, crypt, key) {
134
+ text = text ? text.toString() : undefined;
135
+ return text === decrypt(crypt, key);
114
136
  };
115
137
 
116
138
  /*******
@@ -206,4 +228,85 @@ function splitToFileName(path) {
206
228
  var lastIndex = path.lastIndexOf('/');
207
229
  if (lastIndex === -1) return path;
208
230
  return path.substring(lastIndex + 1);
209
- }
231
+ }
232
+
233
+ /*******
234
+ * @description: Unicode加密方式
235
+ * @author: 琴时
236
+ * @param {String|Number} params
237
+ * @return {String}
238
+ */
239
+ var toCode = exports.toCode = function toCode(params) {
240
+ params = params ? params.toString() : ''; //避免参数不是字符串
241
+ /* 定义密钥 */
242
+ var num = '0123456789';
243
+ var lower = 'abcdefghijklmnopqrstuvwxyz';
244
+ var capital = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
245
+ var character = num + lower + capital; //构建秘钥数组
246
+ var len = character.length; //秘钥长度
247
+
248
+ /**
249
+ * 定义临时变量
250
+ * unicodeValue:最终加密值
251
+ */
252
+ var unicodeValue = '';
253
+ /* 遍历待加密字符串 */
254
+ for (var i = 0; i < params.length; i++) {
255
+ var b = params.charCodeAt(i); //逐个提取每个字符,并获取Unicode编码值
256
+ var b1 = b % len; //第一轮求余数
257
+ b = (b - b1) / len; //求最大倍数
258
+ var b2 = b % len; //第二轮求余数
259
+ b = (b - b2) / len; //求最大倍数
260
+ var b3 = b % len; //第三轮求余数
261
+ unicodeValue += character[b3] + character[b2] + character[b1]; //根据余数值映射到密钥中对应下标位置的字符
262
+ }
263
+ return unicodeValue; //返回这些映射的字符(加密后)
264
+ };
265
+
266
+ /*******
267
+ * @description:Unicode解密方式
268
+ * @author: 琴时
269
+ * @param {String} params
270
+ * @return {String}
271
+ */
272
+ var fromCode = exports.fromCode = function fromCode(params) {
273
+ params = params ? params.toString() : ''; //避免参数不是字符串
274
+ /* 定义密钥 */
275
+ var num = '0123456789';
276
+ var lower = 'abcdefghijklmnopqrstuvwxyz';
277
+ var capital = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
278
+ var character = num + lower + capital; //构建秘钥数组
279
+ var len = character.length; //秘钥长度
280
+ var result = '';
281
+ var b = 0;
282
+ //计算加密字符串包含的字符数,创建一个x位的数组
283
+ var x = Math.ceil(params.length / 3);
284
+ var arr = new Array(x);
285
+ for (var i = 0; i < arr.length; i++) {
286
+ //以数组的长度循环次数,遍历加密字符串
287
+ var b1 = character.indexOf(params.charAt(b)); //截取周期内第d个字符串,计算在密钥中的索引值
288
+ b++;
289
+ var b2 = character.indexOf(params.charAt(b)); //截取周期内第d个字符串,计算在密钥中的索引值
290
+ b++;
291
+ var b3 = character.indexOf(params.charAt(b)); //截取周期内第d个字符串,计算在密钥中的索引值
292
+ b++;
293
+ arr[i] = b1 * len * len + b2 * len + b3; //利用索引值,反推被加密字符的Unicode编码值
294
+ }
295
+ // 将数组转换成字符串连接起来
296
+ var str1 = arr.join(',');
297
+ //用fromCharCode()算出字符串
298
+ result = eval('String.fromCharCode(' + str1 + ')');
299
+ return result; //返回被解密的字符串
300
+ };
301
+
302
+ /*******
303
+ * @description: 校验数据是否一致
304
+ * @author: 琴时
305
+ * @param {String} arg1 [未加密]
306
+ * @param {String} arg2 [已加密]
307
+ * @return {boolean} 返回校验结果<布尔值>
308
+ */
309
+ var checkCode = exports.checkCode = function checkCode(arg1, arg2) {
310
+ arg1 = arg1 ? arg1.toString() : '';
311
+ return arg1 === fromCode(arg2);
312
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tools-for-js",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "基于babel构建的javascript工具库",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {