sculp-js 1.4.0 → 1.5.0

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.
Files changed (52) hide show
  1. package/README.md +12 -1
  2. package/lib/cjs/array.js +1 -1
  3. package/lib/cjs/async.js +1 -1
  4. package/lib/cjs/clipboard.js +1 -1
  5. package/lib/cjs/cookie.js +1 -1
  6. package/lib/cjs/date.js +1 -1
  7. package/lib/cjs/dom.js +32 -1
  8. package/lib/cjs/download.js +35 -5
  9. package/lib/cjs/easing.js +1 -1
  10. package/lib/cjs/file.js +1 -1
  11. package/lib/cjs/func.js +1 -1
  12. package/lib/cjs/index.js +5 -3
  13. package/lib/cjs/number.js +1 -1
  14. package/lib/cjs/object.js +1 -1
  15. package/lib/cjs/path.js +1 -1
  16. package/lib/cjs/qs.js +1 -1
  17. package/lib/cjs/random.js +1 -1
  18. package/lib/cjs/string.js +17 -29
  19. package/lib/cjs/tooltip.js +5 -5
  20. package/lib/cjs/tree.js +1 -1
  21. package/lib/cjs/type.js +16 -1
  22. package/lib/cjs/unique.js +1 -1
  23. package/lib/cjs/url.js +1 -1
  24. package/lib/cjs/watermark.js +1 -1
  25. package/lib/cjs/we-decode.js +44 -45
  26. package/lib/es/array.js +1 -1
  27. package/lib/es/async.js +1 -1
  28. package/lib/es/clipboard.js +1 -1
  29. package/lib/es/cookie.js +1 -1
  30. package/lib/es/date.js +1 -1
  31. package/lib/es/dom.js +33 -3
  32. package/lib/es/download.js +35 -6
  33. package/lib/es/easing.js +1 -1
  34. package/lib/es/file.js +1 -1
  35. package/lib/es/func.js +1 -1
  36. package/lib/es/index.js +6 -6
  37. package/lib/es/number.js +1 -1
  38. package/lib/es/object.js +1 -1
  39. package/lib/es/path.js +1 -1
  40. package/lib/es/qs.js +1 -1
  41. package/lib/es/random.js +1 -1
  42. package/lib/es/string.js +17 -29
  43. package/lib/es/tooltip.js +2 -2
  44. package/lib/es/tree.js +1 -1
  45. package/lib/es/type.js +16 -2
  46. package/lib/es/unique.js +1 -1
  47. package/lib/es/url.js +1 -1
  48. package/lib/es/watermark.js +1 -1
  49. package/lib/es/we-decode.js +45 -45
  50. package/lib/index.d.ts +30 -10
  51. package/lib/umd/index.js +138 -74
  52. package/package.json +1 -1
package/README.md CHANGED
@@ -20,9 +20,18 @@
20
20
  - isNumber
21
21
  - isUndefined
22
22
  - isNull
23
+ - isNullOrUnDef
23
24
  - isPrimitive
25
+ - isFunction
24
26
  - isObject
27
+ - isArray
25
28
  - typeIs
29
+ - isJsonString
30
+
31
+ - encode/decode
32
+
33
+ - weAtob
34
+ - weBtoa
26
35
 
27
36
  - Array
28
37
 
@@ -35,6 +44,7 @@
35
44
  - forEachMap 高性能的深度优先遍历的Map函数, 支持continue、break,可定制id、children
36
45
  - searchTreeById 在树中找到 id 为某个值的节点,并返回上游的所有父级节点
37
46
  - formatTree 高性能的数组转树函数
47
+ - flatTree 树转数组
38
48
  - fuzzySearchTree 模糊搜索函数,返回包含搜索字符的节点及其祖先节点的树
39
49
 
40
50
  - Object
@@ -54,7 +64,7 @@
54
64
 
55
65
  - stringCamelCase
56
66
  - stringKebabCase
57
- - getStrWidthPx (web)
67
+ - parseQueryParams
58
68
 
59
69
  - Unique
60
70
 
@@ -89,6 +99,7 @@
89
99
  - setStyle
90
100
  - getStyle
91
101
  - getComputedCssVal
102
+ - getStrWidthPx
92
103
 
93
104
  - Watermark (web)
94
105
 
package/lib/cjs/array.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/async.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/cookie.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/date.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/dom.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -154,9 +154,40 @@ function getComputedCssVal(el, property, reNumber = true) {
154
154
  const originVal = getComputedStyle(el).getPropertyValue(property) ?? '';
155
155
  return reNumber ? Number(originVal.replace(/([0-9]*)(.*)/g, '$1')) : originVal;
156
156
  }
157
+ /**
158
+ * 字符串的像素宽度
159
+ * @param {string} str 目标字符串
160
+ * @param {number} fontSize 字符串字体大小
161
+ * @param {boolean} isRemoveDom 计算后是否移除中间dom元素
162
+ * @returns {*}
163
+ */
164
+ function getStrWidthPx(str, fontSize = 14, isRemoveDom = false) {
165
+ let strWidth = 0;
166
+ console.assert(type.isString(str), `${str} 不是有效的字符串`);
167
+ if (type.isString(str) && str.length > 0) {
168
+ let getEle = document.querySelector('#getStrWidth1494304949567');
169
+ if (!getEle) {
170
+ const _ele = document.createElement('span');
171
+ _ele.id = 'getStrWidth1494304949567';
172
+ _ele.style.fontSize = fontSize + 'px';
173
+ _ele.style.whiteSpace = 'nowrap';
174
+ _ele.style.visibility = 'hidden';
175
+ _ele.textContent = str;
176
+ document.body.appendChild(_ele);
177
+ getEle = _ele;
178
+ }
179
+ getEle.textContent = str;
180
+ strWidth = getEle.offsetWidth;
181
+ if (isRemoveDom) {
182
+ document.body.appendChild(getEle);
183
+ }
184
+ }
185
+ return strWidth;
186
+ }
157
187
 
158
188
  exports.addClass = addClass;
159
189
  exports.getComputedCssVal = getComputedCssVal;
190
+ exports.getStrWidthPx = getStrWidthPx;
160
191
  exports.getStyle = getStyle;
161
192
  exports.hasClass = hasClass;
162
193
  exports.isDomReady = isDomReady;
@@ -1,11 +1,12 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
7
  'use strict';
8
8
 
9
+ var type = require('./type.js');
9
10
  var url = require('./url.js');
10
11
 
11
12
  /**
@@ -20,25 +21,53 @@ function downloadURL(url$1, params) {
20
21
  * 通过 A 链接的方式下载
21
22
  * @param {string} href
22
23
  * @param {string} filename
24
+ * @param {Function} callback
23
25
  */
24
- function downloadHref(href, filename) {
26
+ function downloadHref(href, filename, callback) {
25
27
  const eleLink = document.createElement('a');
26
28
  eleLink.download = filename;
27
29
  eleLink.style.display = 'none';
28
30
  eleLink.href = href;
29
31
  document.body.appendChild(eleLink);
30
32
  eleLink.click();
31
- setTimeout(() => document.body.removeChild(eleLink));
33
+ setTimeout(() => {
34
+ document.body.removeChild(eleLink);
35
+ if (type.isFunction(callback)) {
36
+ callback();
37
+ }
38
+ });
32
39
  }
33
40
  /**
34
41
  * 将大文件对象通过 A 链接的方式下载
35
42
  * @param {Blob} blob
36
43
  * @param {string} filename
44
+ * @param {Function} callback
37
45
  */
38
- function downloadBlob(blob, filename) {
46
+ function downloadBlob(blob, filename, callback) {
39
47
  const objURL = URL.createObjectURL(blob);
40
48
  downloadHref(objURL, filename);
41
- setTimeout(() => URL.revokeObjectURL(objURL));
49
+ setTimeout(() => {
50
+ URL.revokeObjectURL(objURL);
51
+ if (type.isFunction(callback)) {
52
+ callback();
53
+ }
54
+ });
55
+ }
56
+ /**
57
+ * 根据URL下载文件(解决跨域a.download不生效问题)
58
+ * @param {string} url
59
+ * @param {string} filename
60
+ * @param {Function} callback
61
+ */
62
+ function crossDomainDownload(url, filename, callback) {
63
+ const xhr = new XMLHttpRequest();
64
+ xhr.open('GET', url, true);
65
+ xhr.responseType = 'blob';
66
+ xhr.onload = function () {
67
+ if (xhr.status === 200)
68
+ downloadBlob(xhr.response, filename, callback);
69
+ };
70
+ xhr.send();
42
71
  }
43
72
  /**
44
73
  * 将指定数据格式通过 A 链接的方式下载
@@ -76,6 +105,7 @@ function downloadData(data, fileType, filename, headers) {
76
105
  }
77
106
  }
78
107
 
108
+ exports.crossDomainDownload = crossDomainDownload;
79
109
  exports.downloadBlob = downloadBlob;
80
110
  exports.downloadData = downloadData;
81
111
  exports.downloadHref = downloadHref;
package/lib/cjs/easing.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/file.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/func.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -49,6 +49,7 @@ exports.formatDate = date.formatDate;
49
49
  exports.isValidDate = date.isValidDate;
50
50
  exports.addClass = dom.addClass;
51
51
  exports.getComputedCssVal = dom.getComputedCssVal;
52
+ exports.getStrWidthPx = dom.getStrWidthPx;
52
53
  exports.getStyle = dom.getStyle;
53
54
  exports.hasClass = dom.hasClass;
54
55
  exports.isDomReady = dom.isDomReady;
@@ -56,6 +57,7 @@ exports.onDomReady = dom.onDomReady;
56
57
  exports.removeClass = dom.removeClass;
57
58
  exports.setStyle = dom.setStyle;
58
59
  exports.smoothScroll = dom.smoothScroll;
60
+ exports.crossDomainDownload = download.crossDomainDownload;
59
61
  exports.downloadBlob = download.downloadBlob;
60
62
  exports.downloadData = download.downloadData;
61
63
  exports.downloadHref = download.downloadHref;
@@ -79,7 +81,7 @@ exports.qsStringify = qs.qsStringify;
79
81
  exports.STRING_ARABIC_NUMERALS = string.STRING_ARABIC_NUMERALS;
80
82
  exports.STRING_LOWERCASE_ALPHA = string.STRING_LOWERCASE_ALPHA;
81
83
  exports.STRING_UPPERCASE_ALPHA = string.STRING_UPPERCASE_ALPHA;
82
- exports.getStrWidthPx = string.getStrWidthPx;
84
+ exports.parseQueryParams = string.parseQueryParams;
83
85
  exports.stringAssign = string.stringAssign;
84
86
  exports.stringCamelCase = string.stringCamelCase;
85
87
  exports.stringEscapeHtml = string.stringEscapeHtml;
@@ -92,6 +94,7 @@ exports.isBoolean = type.isBoolean;
92
94
  exports.isDate = type.isDate;
93
95
  exports.isError = type.isError;
94
96
  exports.isFunction = type.isFunction;
97
+ exports.isJsonString = type.isJsonString;
95
98
  exports.isNaN = type.isNaN;
96
99
  exports.isNull = type.isNull;
97
100
  exports.isNullOrUnDef = type.isNullOrUnDef;
@@ -137,6 +140,5 @@ exports.forEachMap = tree.forEachMap;
137
140
  exports.formatTree = tree.formatTree;
138
141
  exports.fuzzySearchTree = tree.fuzzySearchTree;
139
142
  exports.searchTreeById = tree.searchTreeById;
140
- exports.weAppJwtDecode = weDecode.weAppJwtDecode;
141
143
  exports.weAtob = weDecode.weAtob;
142
144
  exports.weBtoa = weDecode.weBtoa;
package/lib/cjs/number.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/object.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/path.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/qs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/random.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/string.js CHANGED
@@ -1,13 +1,11 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
7
  'use strict';
8
8
 
9
- var type = require('./type.js');
10
-
11
9
  /**
12
10
  * 将字符串转换为驼峰格式
13
11
  * @param {string} string
@@ -125,40 +123,30 @@ const stringEscapeHtml = (html) => {
125
123
  */
126
124
  const stringFill = (length, value = ' ') => new Array(length).fill(value).join('');
127
125
  /**
128
- * 字符串的像素宽度
129
- * @param {string} str 目标字符串
130
- * @param {number} fontSize 字符串字体大小
131
- * @param {boolean} isRemoveDom 计算后是否移除中间dom元素
132
- * @returns {*}
126
+ * 解析URL查询参数
127
+ * @param {string} searchStr
128
+ * @return {Record<string, string | string[]>}
133
129
  */
134
- function getStrWidthPx(str, fontSize = 14, isRemoveDom = false) {
135
- let strWidth = 0;
136
- console.assert(type.isString(str), `${str} 不是有效的字符串`);
137
- if (type.isString(str) && str.length > 0) {
138
- let getEle = document.querySelector('#getStrWidth1494304949567');
139
- if (!getEle) {
140
- const _ele = document.createElement('span');
141
- _ele.id = 'getStrWidth1494304949567';
142
- _ele.style.fontSize = fontSize + 'px';
143
- _ele.style.whiteSpace = 'nowrap';
144
- _ele.style.visibility = 'hidden';
145
- _ele.textContent = str;
146
- document.body.appendChild(_ele);
147
- getEle = _ele;
130
+ function parseQueryParams(searchStr = location.search) {
131
+ const queryObj = {};
132
+ Array.from(searchStr.matchAll(/[&?]?([^=&]+)=?([^=&]*)/g)).forEach((item, i) => {
133
+ if (!queryObj[item[1]]) {
134
+ queryObj[item[1]] = item[2];
148
135
  }
149
- getEle.textContent = str;
150
- strWidth = getEle.offsetWidth;
151
- if (isRemoveDom) {
152
- document.body.appendChild(getEle);
136
+ else if (typeof queryObj[item[1]] === 'string') {
137
+ queryObj[item[1]] = [queryObj[item[1]], item[2]];
153
138
  }
154
- }
155
- return strWidth;
139
+ else {
140
+ queryObj[item[1]].push(item[2]);
141
+ }
142
+ });
143
+ return queryObj;
156
144
  }
157
145
 
158
146
  exports.STRING_ARABIC_NUMERALS = STRING_ARABIC_NUMERALS;
159
147
  exports.STRING_LOWERCASE_ALPHA = STRING_LOWERCASE_ALPHA;
160
148
  exports.STRING_UPPERCASE_ALPHA = STRING_UPPERCASE_ALPHA;
161
- exports.getStrWidthPx = getStrWidthPx;
149
+ exports.parseQueryParams = parseQueryParams;
162
150
  exports.stringAssign = stringAssign;
163
151
  exports.stringCamelCase = stringCamelCase;
164
152
  exports.stringEscapeHtml = stringEscapeHtml;
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
7
  'use strict';
8
8
 
9
- var string = require('./string.js');
9
+ var dom = require('./dom.js');
10
10
 
11
11
  /**
12
12
  * @title tooltip
@@ -79,10 +79,10 @@ function mouseenter($customTitle, title, e) {
79
79
  let x = 13;
80
80
  const y = 23;
81
81
  const $contentEle = $customTitle.children[0];
82
- if (string.getStrWidthPx(title, 12) < 180 + 50) {
82
+ if (dom.getStrWidthPx(title, 12) < 180 + 50) {
83
83
  //【弹出div自适应字符串宽度】若显示的字符串占用宽度小于180,则设置弹出div的宽度为“符串占用宽度”+20
84
- $contentEle.style.maxWidth = string.getStrWidthPx(title, 12) + 20 + 50 + 'px';
85
- diffValueX = e.clientX + (string.getStrWidthPx(title, 12) + 50) - document.body.offsetWidth;
84
+ $contentEle.style.maxWidth = dom.getStrWidthPx(title, 12) + 20 + 50 + 'px';
85
+ diffValueX = e.clientX + (dom.getStrWidthPx(title, 12) + 50) - document.body.offsetWidth;
86
86
  }
87
87
  else {
88
88
  $contentEle.style.maxWidth = '250px';
package/lib/cjs/tree.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/type.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -40,6 +40,20 @@ const isNaN = (any) => Number.isNaN(any);
40
40
  const isDate = (any) => typeIs(any) === 'Date';
41
41
  const isError = (any) => typeIs(any) === 'Error';
42
42
  const isRegExp = (any) => typeIs(any) === 'RegExp';
43
+ /**
44
+ * 判断一个字符串是否为有效的 JSON, 若有效则返回有效的JSON对象,否则false
45
+ * @param {string} str
46
+ * @return {Object | boolean}
47
+ */
48
+ function isJsonString(str) {
49
+ try {
50
+ const parsed = JSON.parse(str);
51
+ return typeof parsed === 'object' && parsed !== null ? parsed : false;
52
+ }
53
+ catch (e) {
54
+ return false;
55
+ }
56
+ }
43
57
 
44
58
  exports.default = typeIs;
45
59
  exports.isArray = isArray;
@@ -48,6 +62,7 @@ exports.isBoolean = isBoolean;
48
62
  exports.isDate = isDate;
49
63
  exports.isError = isError;
50
64
  exports.isFunction = isFunction;
65
+ exports.isJsonString = isJsonString;
51
66
  exports.isNaN = isNaN;
52
67
  exports.isNull = isNull;
53
68
  exports.isNullOrUnDef = isNullOrUnDef;
package/lib/cjs/unique.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/cjs/url.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -58,50 +58,49 @@ function weAtob(string) {
58
58
  }
59
59
  return result;
60
60
  }
61
- function b64DecodeUnicode(str) {
62
- return decodeURIComponent(exports.weAtob(str).replace(/(.)/g, function (p) {
63
- let code = p.charCodeAt(0).toString(16).toUpperCase();
64
- if (code.length < 2) {
65
- code = '0' + code;
66
- }
67
- return '%' + code;
68
- }));
69
- }
70
- function base64_url_decode(str) {
71
- let output = str.replace(/-/g, '+').replace(/_/g, '/');
72
- switch (output.length % 4) {
73
- case 0:
74
- break;
75
- case 2:
76
- output += '==';
77
- break;
78
- case 3:
79
- output += '=';
80
- break;
81
- default:
82
- throw new Error('Illegal base64url string!');
83
- }
84
- try {
85
- return b64DecodeUnicode(output);
86
- }
87
- catch (err) {
88
- return exports.weAtob(output);
89
- }
90
- }
91
- function weAppJwtDecode(token, options) {
92
- if (typeof token !== 'string') {
93
- throw new Error('Invalid token specified');
94
- }
95
- options = options || {};
96
- const pos = options.header === true ? 0 : 1;
97
- try {
98
- return JSON.parse(base64_url_decode(token.split('.')[pos]));
99
- }
100
- catch (e) {
101
- throw new Error('Invalid token specified: ' + e.message);
102
- }
103
- }
61
+ // function b64DecodeUnicode(str) {
62
+ // return decodeURIComponent(
63
+ // exports.weAtob(str).replace(/(.)/g, function (p) {
64
+ // let code = p.charCodeAt(0).toString(16).toUpperCase();
65
+ // if (code.length < 2) {
66
+ // code = '0' + code;
67
+ // }
68
+ // return '%' + code;
69
+ // })
70
+ // );
71
+ // }
72
+ // function base64_url_decode(str) {
73
+ // let output = str.replace(/-/g, '+').replace(/_/g, '/');
74
+ // switch (output.length % 4) {
75
+ // case 0:
76
+ // break;
77
+ // case 2:
78
+ // output += '==';
79
+ // break;
80
+ // case 3:
81
+ // output += '=';
82
+ // break;
83
+ // default:
84
+ // throw new Error('Illegal base64url string!');
85
+ // }
86
+ // try {
87
+ // return b64DecodeUnicode(output);
88
+ // } catch (err) {
89
+ // return exports.weAtob(output);
90
+ // }
91
+ // }
92
+ // export function weAppJwtDecode(token, options) {
93
+ // if (typeof token !== 'string') {
94
+ // throw new Error('Invalid token specified');
95
+ // }
96
+ // options = options || {};
97
+ // const pos = options.header === true ? 0 : 1;
98
+ // try {
99
+ // return JSON.parse(base64_url_decode(token.split('.')[pos]));
100
+ // } catch (e) {
101
+ // throw new Error('Invalid token specified: ' + (e as Error).message);
102
+ // }
103
+ // }
104
104
 
105
- exports.weAppJwtDecode = weAppJwtDecode;
106
105
  exports.weAtob = weAtob;
107
106
  exports.weBtoa = weBtoa;
package/lib/es/array.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/es/async.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/es/cookie.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/es/date.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.4.0
2
+ * sculp-js v1.4.1
3
3
  * (c) 2023-2024 chandq
4
4
  * Released under the MIT License.
5
5
  */