@polyv/utils 2.2.0-beta.1 → 2.4.0-beta.1

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 (41) hide show
  1. package/README.md +4 -4
  2. package/{dist/es → cjs}/image.d.ts +8 -1
  3. package/cjs/image.js +1 -0
  4. package/{dist/es → cjs}/string.d.ts +6 -0
  5. package/cjs/string.js +1 -0
  6. package/{dist/cjs → es}/image.d.ts +8 -1
  7. package/{dist/es → es}/image.js +1 -1
  8. package/{dist/cjs → es}/string.d.ts +6 -0
  9. package/es/string.js +1 -0
  10. package/package.json +4 -43
  11. package/dist/cjs/image.js +0 -1
  12. package/dist/cjs/string.js +0 -1
  13. package/dist/es/string.js +0 -1
  14. /package/{dist/cjs → cjs}/boolean.d.ts +0 -0
  15. /package/{dist/cjs → cjs}/boolean.js +0 -0
  16. /package/{dist/cjs → cjs}/countdown.d.ts +0 -0
  17. /package/{dist/cjs → cjs}/countdown.js +0 -0
  18. /package/{dist/cjs → cjs}/date.d.ts +0 -0
  19. /package/{dist/cjs → cjs}/date.js +0 -0
  20. /package/{dist/cjs → cjs}/event.d.ts +0 -0
  21. /package/{dist/cjs → cjs}/event.js +0 -0
  22. /package/{dist/cjs → cjs}/json.d.ts +0 -0
  23. /package/{dist/cjs → cjs}/json.js +0 -0
  24. /package/{dist/cjs → cjs}/net.d.ts +0 -0
  25. /package/{dist/cjs → cjs}/net.js +0 -0
  26. /package/{dist/cjs → cjs}/validate.d.ts +0 -0
  27. /package/{dist/cjs → cjs}/validate.js +0 -0
  28. /package/{dist/es → es}/boolean.d.ts +0 -0
  29. /package/{dist/es → es}/boolean.js +0 -0
  30. /package/{dist/es → es}/countdown.d.ts +0 -0
  31. /package/{dist/es → es}/countdown.js +0 -0
  32. /package/{dist/es → es}/date.d.ts +0 -0
  33. /package/{dist/es → es}/date.js +0 -0
  34. /package/{dist/es → es}/event.d.ts +0 -0
  35. /package/{dist/es → es}/event.js +0 -0
  36. /package/{dist/es → es}/json.d.ts +0 -0
  37. /package/{dist/es → es}/json.js +0 -0
  38. /package/{dist/es → es}/net.d.ts +0 -0
  39. /package/{dist/es → es}/net.js +0 -0
  40. /package/{dist/es → es}/validate.d.ts +0 -0
  41. /package/{dist/es → es}/validate.js +0 -0
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  npm install @polyv/utils@next
9
9
  ```
10
10
 
11
- NPM 包同时提供了 ES 模块以及 CommonJS 模块,分别位于 `dist/es` 和 `dist/cjs` 两个文件夹。它们使用上的区别和优缺点在于:
11
+ NPM 包同时提供了 ES 模块以及 CommonJS 模块,分别位于 `es` 和 `cjs` 两个文件夹。它们使用上的区别和优缺点在于:
12
12
 
13
13
  | 模块类型 | Tree shaking | Babel 编译 |
14
14
  | --- | --- | --- |
@@ -30,7 +30,7 @@ module.exports = {
30
30
  resolve: {
31
31
  alias: {
32
32
  // 配置别名缩短引用路径
33
- '@utils': path.resolve(__dirname, './node_modules/@polyv/utils/dist/es')
33
+ '@utils': path.resolve(__dirname, './node_modules/@polyv/utils/es')
34
34
  }
35
35
  }
36
36
  },
@@ -67,7 +67,7 @@ module.exports = {
67
67
  extend(config, ctx) {
68
68
  // 配置别名缩短引用路径
69
69
  config.resolve.alias['@utils'] = path.resolve(
70
- __dirname, './node_modules/@polyv/utils/dist/es'
70
+ __dirname, './node_modules/@polyv/utils/es'
71
71
  );
72
72
  }
73
73
  };
@@ -105,4 +105,4 @@ import { Countdown } from '@utils/countdown';
105
105
  - string 模块的 `cutStr`、`strLen` 两个方法的选项,不再支持 `mode` 属性。
106
106
  - string 模块新增 `uuidV4` 方法。
107
107
  - validate 模块的 `isPhoneNO` 方法改名为 `isChsPhoneNO`。
108
- - CommonJS 模块的路径是 dist/cjs(原来是 dist),ES 模块的路径是 dist/es(原来是 src)。
108
+ - CommonJS 模块的路径是 `cjs`(原来是 dist),ES 模块的路径是 `es`(原来是 src)。
@@ -34,7 +34,7 @@ export interface IOSSCompressOptions {
34
34
  allowAVIF?: boolean;
35
35
  }
36
36
  /**
37
- * 如果指定图片 URL 的域名是 OSS 域名,则追加 OSS 图片压缩参数。
37
+ * 如果指定图片 URL 的域名是 OSS 域名,且没有任何 OSS 处理参数,则根据压缩选项追加 OSS 图片压缩处理参数。
38
38
  * @param url 指定图片 URL。
39
39
  * @param options 压缩选项。
40
40
  * @returns 处理后的图片 URL。
@@ -47,3 +47,10 @@ export interface IOSSCompressOptions {
47
47
  * ```
48
48
  */
49
49
  export declare function ossCompress(url: string, options: IOSSCompressOptions): string;
50
+ /**
51
+ * 对指定 HTML 代码中 img 标签的图片地址做 OSS 压缩处理。
52
+ * @param html 指定 HTML 代码。
53
+ * @param options 压缩选项。
54
+ * @returns 处理后的 HTML 代码。
55
+ */
56
+ export declare function compressHTMLImgs(html: string, options: IOSSCompressOptions): string;
package/cjs/image.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";function supportWebP(){var A=document.createElement("canvas");if(A.getContext&&A.getContext("2d")){var e="image/webp";return 0===A.toDataURL(e).indexOf("data:"+e)}return!1}function supportAVIF(){return new Promise((function(A){var e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=",e.onerror=function(){A(!1)},e.onload=function(){A(!0)},setTimeout((function(){A(!1)}),1e3)}))}function ossCompress(A,e){var s=document.createElement("a");s.href=A;var t=s.search;if("liveimages.videocc.net"!==s.hostname.toLowerCase()||/(?:\?|&)x-oss-process(?:=|&|$)/.test(t))return A;var o="";return null==e.width&&null==e.height||(o+="/resize,mfit",e.width&&(o+=",w_"+e.width),e.height&&(o+=",h_"+e.height),o+=",limit_1"),e.allowAVIF?o+="/format,avif":e.allowWebP&&(o+="/format,webp"),o&&(o="x-oss-process=image"+o,A+=(-1===A.indexOf("?")?"?":"&")+o),A}function compressHTMLImgs(A,e){return A?A.replace(/(<img.*?\ssrc=)(["']?)(.+?)\2(.*?>)/gi,(function(A,s,t,o,r){return s+'"'+ossCompress(o,e)+'" data-src="'+o+'"'+r})):""}Object.defineProperty(exports,"__esModule",{value:!0}),exports.compressHTMLImgs=exports.ossCompress=exports.supportAVIF=exports.supportWebP=void 0,exports.supportWebP=supportWebP,exports.supportAVIF=supportAVIF,exports.ossCompress=ossCompress,exports.compressHTMLImgs=compressHTMLImgs;
@@ -59,6 +59,12 @@ export declare function cutStr(str: string, length: number, options?: ICutStrOpt
59
59
  * @return 替换后的字符串。
60
60
  */
61
61
  export declare function escapeHTML(str: string): string;
62
+ /**
63
+ * 把指定字符串中的 HTML 实体替换成 HTML 预留字符。
64
+ * @param str 指定字符串。
65
+ * @return 替换后的字符串。
66
+ */
67
+ export declare function unescapeHTML(str: string): string;
62
68
  /**
63
69
  * 移除指定字符串中的 HTML 标签。
64
70
  * @param str 指定字符串。
package/cjs/string.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";function strLen(e,n){var r,t;"number"==typeof n?n={enLen:1,nonEnLen:n}:((n=n||{}).enLen=null!==(r=n.enLen)&&void 0!==r?r:1,n.nonEnLen=null!==(t=n.nonEnLen)&&void 0!==t?t:2);for(var o=0,s=e.length-1;s>=0;s--)o+=e.charCodeAt(s)>255?n.nonEnLen||0:n.enLen||0;return o}function cutStr(e,n,r){(r=r||{}).enLen=Number(r.enLen)||1,r.nonEnLen=Number(r.nonEnLen)||2,r.ellipsis=r.ellipsis||"...";var t=strLen(e=String(e),r);if(t<=n)return e;n-=strLen(r.ellipsis,r);for(var o="",s=-1;n>0&&++s<t;)(n-=e.charCodeAt(s)>255?r.nonEnLen:r.enLen)>=0&&(o+=e.charAt(s));return o+=r.ellipsis}Object.defineProperty(exports,"__esModule",{value:!0}),exports.compareVersions=exports.uuidV4=exports.randomStr=exports.nl2br=exports.removeTags=exports.unescapeHTML=exports.escapeHTML=exports.cutStr=exports.strLen=void 0,exports.strLen=strLen,exports.cutStr=cutStr;var htmlChars=['"',"'","&","<",">"],htmlEntities=["&quot;","&#39;","&amp;","&lt;","&gt;"],charsToEntities=Object.create(null),entitiesToChars=Object.create(null);htmlChars.forEach((function(e,n){charsToEntities[e]=htmlEntities[n],entitiesToChars[htmlEntities[n]]=e}));var reHTMLChars=new RegExp("["+htmlChars.join("")+"]","g"),reHTMLEntities=new RegExp("("+htmlEntities.join("|")+")","g");function escapeHTML(e){return null==e?e:String(e).replace(reHTMLChars,(function(e){return charsToEntities[e]}))}function unescapeHTML(e){return null==e?e:String(e).replace(reHTMLEntities,(function(e){return entitiesToChars[e]}))}function removeTags(e){return null==e?"":String(e).replace(/<.+?>/g,"")}function nl2br(e){return null==e?e:String(e).replace(/\r?\n/g,"<br />")}function randomStr(e,n){if(!(e|=0)||e<0)throw new Error('"length" must be a number greater than 0');var r="";do{r+=Math.random().toString(36).substr(2)}while(r.length<e);return r=r.substr(0,e),null!=n&&(r=n+r),r}function uuidV4(){var e=Date.now();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(n){var r=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===n?r:3&r|8).toString(16)}))}function compareVersions(e,n){if(!e||!n)throw new Error("Please specify both verA and verB");for(var r=/(\.0+)+$/,t=String(e).replace(r,"").split("."),o=String(n).replace(r,"").split("."),s=Math.min(t.length,o.length),i=0;i<s;i++){var a=parseInt(t[i])-parseInt(o[i]);if(a)return a}return t.length-o.length}exports.escapeHTML=escapeHTML,exports.unescapeHTML=unescapeHTML,exports.removeTags=removeTags,exports.nl2br=nl2br,exports.randomStr=randomStr,exports.uuidV4=uuidV4,exports.compareVersions=compareVersions;
@@ -34,7 +34,7 @@ export interface IOSSCompressOptions {
34
34
  allowAVIF?: boolean;
35
35
  }
36
36
  /**
37
- * 如果指定图片 URL 的域名是 OSS 域名,则追加 OSS 图片压缩参数。
37
+ * 如果指定图片 URL 的域名是 OSS 域名,且没有任何 OSS 处理参数,则根据压缩选项追加 OSS 图片压缩处理参数。
38
38
  * @param url 指定图片 URL。
39
39
  * @param options 压缩选项。
40
40
  * @returns 处理后的图片 URL。
@@ -47,3 +47,10 @@ export interface IOSSCompressOptions {
47
47
  * ```
48
48
  */
49
49
  export declare function ossCompress(url: string, options: IOSSCompressOptions): string;
50
+ /**
51
+ * 对指定 HTML 代码中 img 标签的图片地址做 OSS 压缩处理。
52
+ * @param html 指定 HTML 代码。
53
+ * @param options 压缩选项。
54
+ * @returns 处理后的 HTML 代码。
55
+ */
56
+ export declare function compressHTMLImgs(html: string, options: IOSSCompressOptions): string;
@@ -1 +1 @@
1
- export function supportWebP(){const A=document.createElement("canvas");if(A.getContext&&A.getContext("2d")){const e="image/webp";return 0===A.toDataURL(e).indexOf("data:"+e)}return!1}export function supportAVIF(){return new Promise((A=>{const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=",e.onerror=()=>{A(!1)},e.onload=()=>{A(!0)},setTimeout((()=>{A(!1)}),1e3)}))}export function ossCompress(A,e){const t=document.createElement("a");t.href=A;const o=t.search;if("liveimages.videocc.net"!==t.hostname.toLowerCase()||/(?:\?|&)x-oss-process(?:=|&|$)/.test(o))return A;let a="";return null==e.width&&null==e.height||(a+="/resize,mfit",e.width&&(a+=",w_"+e.width),e.height&&(a+=",h_"+e.height),a+=",limit_1"),e.allowAVIF?a+="/format,avif":e.allowWebP&&(a+="/format,webp"),a&&(a="x-oss-process=image"+a,A+=(-1===A.indexOf("?")?"?":"&")+a),A}
1
+ export function supportWebP(){const A=document.createElement("canvas");if(A.getContext&&A.getContext("2d")){const e="image/webp";return 0===A.toDataURL(e).indexOf("data:"+e)}return!1}export function supportAVIF(){return new Promise((A=>{const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=",e.onerror=()=>{A(!1)},e.onload=()=>{A(!0)},setTimeout((()=>{A(!1)}),1e3)}))}export function ossCompress(A,e){const t=document.createElement("a");t.href=A;const o=t.search;if("liveimages.videocc.net"!==t.hostname.toLowerCase()||/(?:\?|&)x-oss-process(?:=|&|$)/.test(o))return A;let s="";return null==e.width&&null==e.height||(s+="/resize,mfit",e.width&&(s+=",w_"+e.width),e.height&&(s+=",h_"+e.height),s+=",limit_1"),e.allowAVIF?s+="/format,avif":e.allowWebP&&(s+="/format,webp"),s&&(s="x-oss-process=image"+s,A+=(-1===A.indexOf("?")?"?":"&")+s),A}export function compressHTMLImgs(A,e){return A?A.replace(/(<img.*?\ssrc=)(["']?)(.+?)\2(.*?>)/gi,((A,t,o,s,r)=>t+'"'+ossCompress(s,e)+'" data-src="'+s+'"'+r)):""}
@@ -59,6 +59,12 @@ export declare function cutStr(str: string, length: number, options?: ICutStrOpt
59
59
  * @return 替换后的字符串。
60
60
  */
61
61
  export declare function escapeHTML(str: string): string;
62
+ /**
63
+ * 把指定字符串中的 HTML 实体替换成 HTML 预留字符。
64
+ * @param str 指定字符串。
65
+ * @return 替换后的字符串。
66
+ */
67
+ export declare function unescapeHTML(str: string): string;
62
68
  /**
63
69
  * 移除指定字符串中的 HTML 标签。
64
70
  * @param str 指定字符串。
package/es/string.js ADDED
@@ -0,0 +1 @@
1
+ export function strLen(n,e){var t,r;"number"==typeof e?e={enLen:1,nonEnLen:e}:((e=e||{}).enLen=null!==(t=e.enLen)&&void 0!==t?t:1,e.nonEnLen=null!==(r=e.nonEnLen)&&void 0!==r?r:2);let o=0;for(let t=n.length-1;t>=0;t--)o+=n.charCodeAt(t)>255?e.nonEnLen||0:e.enLen||0;return o}export function cutStr(n,e,t){(t=t||{}).enLen=Number(t.enLen)||1,t.nonEnLen=Number(t.nonEnLen)||2,t.ellipsis=t.ellipsis||"...";const r=strLen(n=String(n),t);if(r<=e)return n;e-=strLen(t.ellipsis,t);let o="",i=-1;for(;e>0&&++i<r;)(e-=n.charCodeAt(i)>255?t.nonEnLen:t.enLen)>=0&&(o+=n.charAt(i));return o+=t.ellipsis,o}const htmlChars=['"',"'","&","<",">"],htmlEntities=["&quot;","&#39;","&amp;","&lt;","&gt;"],charsToEntities=Object.create(null),entitiesToChars=Object.create(null);htmlChars.forEach(((n,e)=>{charsToEntities[n]=htmlEntities[e],entitiesToChars[htmlEntities[e]]=n}));const reHTMLChars=new RegExp("["+htmlChars.join("")+"]","g"),reHTMLEntities=new RegExp("("+htmlEntities.join("|")+")","g");export function escapeHTML(n){return null==n?n:String(n).replace(reHTMLChars,(n=>charsToEntities[n]))}export function unescapeHTML(n){return null==n?n:String(n).replace(reHTMLEntities,(n=>entitiesToChars[n]))}export function removeTags(n){return null==n?"":String(n).replace(/<.+?>/g,"")}export function nl2br(n){return null==n?n:String(n).replace(/\r?\n/g,"<br />")}export function randomStr(n,e){if(!(n|=0)||n<0)throw new Error('"length" must be a number greater than 0');let t="";do{t+=Math.random().toString(36).substr(2)}while(t.length<n);return t=t.substr(0,n),null!=e&&(t=e+t),t}export function uuidV4(){let n=Date.now();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(n+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=(n+16*Math.random())%16|0;return n=Math.floor(n/16),("x"===e?t:3&t|8).toString(16)}))}export function compareVersions(n,e){if(!n||!e)throw new Error("Please specify both verA and verB");const t=/(\.0+)+$/,r=String(n).replace(t,"").split("."),o=String(e).replace(t,"").split("."),i=Math.min(r.length,o.length);for(let n=0;n<i;n++){const e=parseInt(r[n])-parseInt(o[n]);if(e)return e}return r.length-o.length}
package/package.json CHANGED
@@ -1,22 +1,12 @@
1
1
  {
2
2
  "name": "@polyv/utils",
3
- "version": "2.2.0-beta.1",
3
+ "version": "2.4.0-beta.1",
4
4
  "description": "Utility functions of Polyv frontend development.",
5
5
  "keywords": [
6
6
  "polyv",
7
7
  "utility",
8
8
  "保利威"
9
9
  ],
10
- "scripts": {
11
- "dev": "cross-env NODE_ENV=development webpack-dev-server --config build/webpack.dev.config.js",
12
- "gen-doc": "rimraf ./docs/2.x && typedoc --options ./typedoc.js --tsconfig ./src/tsconfig.json",
13
- "lint": "eslint ./src/*.ts",
14
- "compress": "node ./build/compress-js",
15
- "build": "npm run lint && rimraf ./dist/** && tsc -p ./src/tsconfig.json && tsc -p ./src/tsconfig.es5.json && npm run compress"
16
- },
17
- "files": [
18
- "dist/**/*"
19
- ],
20
10
  "author": "Polyv frontend team",
21
11
  "license": "MIT",
22
12
  "repository": {
@@ -30,35 +20,6 @@
30
20
  "engines": {
31
21
  "node": ">=10.0.0"
32
22
  },
33
- "devDependencies": {
34
- "@babel/core": "^7.16.0",
35
- "@babel/plugin-proposal-class-properties": "^7.16.0",
36
- "@babel/plugin-proposal-json-strings": "^7.16.0",
37
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
38
- "@babel/plugin-syntax-import-meta": "^7.10.4",
39
- "@babel/preset-env": "^7.16.4",
40
- "@typescript-eslint/eslint-plugin": "^5.5.0",
41
- "@typescript-eslint/parser": "^5.5.0",
42
- "babel-eslint": "^10.1.0",
43
- "babel-loader": "^8.2.3",
44
- "copy-webpack-plugin": "^6.4.1",
45
- "core-js": "^3.19.2",
46
- "cross-env": "^7.0.3",
47
- "eslint": "^8.3.0",
48
- "eslint-plugin-sonarjs": "^0.11.0",
49
- "eslint-webpack-plugin": "^3.1.1",
50
- "glob": "^7.2.0",
51
- "html-webpack-plugin": "^4.5.2",
52
- "regenerator-runtime": "^0.13.9",
53
- "rimraf": "^3.0.2",
54
- "terser": "^5.10.0",
55
- "ts-loader": "^8.3.0",
56
- "typedoc": "^0.22.10",
57
- "typescript": "^4.5.2",
58
- "webpack": "^4.46.0",
59
- "webpack-cli": "^3.3.12",
60
- "webpack-dev-server": "^3.11.3",
61
- "webpack-merge": "^5.8.0"
62
- },
63
- "dependencies": {}
64
- }
23
+ "dependencies": {},
24
+ "miniprogram": "./"
25
+ }
package/dist/cjs/image.js DELETED
@@ -1 +0,0 @@
1
- "use strict";function supportWebP(){var A=document.createElement("canvas");if(A.getContext&&A.getContext("2d")){var e="image/webp";return 0===A.toDataURL(e).indexOf("data:"+e)}return!1}function supportAVIF(){return new Promise((function(A){var e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=",e.onerror=function(){A(!1)},e.onload=function(){A(!0)},setTimeout((function(){A(!1)}),1e3)}))}function ossCompress(A,e){var t=document.createElement("a");t.href=A;var o=t.search;if("liveimages.videocc.net"!==t.hostname.toLowerCase()||/(?:\?|&)x-oss-process(?:=|&|$)/.test(o))return A;var s="";return null==e.width&&null==e.height||(s+="/resize,mfit",e.width&&(s+=",w_"+e.width),e.height&&(s+=",h_"+e.height),s+=",limit_1"),e.allowAVIF?s+="/format,avif":e.allowWebP&&(s+="/format,webp"),s&&(s="x-oss-process=image"+s,A+=(-1===A.indexOf("?")?"?":"&")+s),A}Object.defineProperty(exports,"__esModule",{value:!0}),exports.ossCompress=exports.supportAVIF=exports.supportWebP=void 0,exports.supportWebP=supportWebP,exports.supportAVIF=supportAVIF,exports.ossCompress=ossCompress;
@@ -1 +0,0 @@
1
- "use strict";function strLen(e,r){var n,t;"number"==typeof r?r={enLen:1,nonEnLen:r}:((r=r||{}).enLen=null!==(n=r.enLen)&&void 0!==n?n:1,r.nonEnLen=null!==(t=r.nonEnLen)&&void 0!==t?t:2);for(var o=0,s=e.length-1;s>=0;s--)o+=e.charCodeAt(s)>255?r.nonEnLen||0:r.enLen||0;return o}function cutStr(e,r,n){(n=n||{}).enLen=Number(n.enLen)||1,n.nonEnLen=Number(n.nonEnLen)||2,n.ellipsis=n.ellipsis||"...";var t=strLen(e=String(e),n);if(t<=r)return e;r-=strLen(n.ellipsis,n);for(var o="",s=-1;r>0&&++s<t;)(r-=e.charCodeAt(s)>255?n.nonEnLen:n.enLen)>=0&&(o+=e.charAt(s));return o+=n.ellipsis}function escapeHTML(e){if(null==e)return e;var r={'"':"&quot;","'":"&#39;","&":"&amp;","<":"&lt;",">":"&gt;"};return String(e).replace(/["'&<>]/g,(function(e){return r[e]}))}function removeTags(e){return null==e?"":String(e).replace(/<.+?>/g,"")}function nl2br(e){return null==e?e:String(e).replace(/\r?\n/g,"<br />")}function randomStr(e,r){if(!(e|=0)||e<0)throw new Error('"length" must be a number greater than 0');var n="";do{n+=Math.random().toString(36).substr(2)}while(n.length<e);return n=n.substr(0,e),null!=r&&(n=r+n),n}function uuidV4(){var e=Date.now();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(r){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===r?n:3&n|8).toString(16)}))}function compareVersions(e,r){if(!e||!r)throw new Error("Please specify both verA and verB");for(var n=/(\.0+)+$/,t=String(e).replace(n,"").split("."),o=String(r).replace(n,"").split("."),s=Math.min(t.length,o.length),a=0;a<s;a++){var u=parseInt(t[a])-parseInt(o[a]);if(u)return u}return t.length-o.length}Object.defineProperty(exports,"__esModule",{value:!0}),exports.compareVersions=exports.uuidV4=exports.randomStr=exports.nl2br=exports.removeTags=exports.escapeHTML=exports.cutStr=exports.strLen=void 0,exports.strLen=strLen,exports.cutStr=cutStr,exports.escapeHTML=escapeHTML,exports.removeTags=removeTags,exports.nl2br=nl2br,exports.randomStr=randomStr,exports.uuidV4=uuidV4,exports.compareVersions=compareVersions;
package/dist/es/string.js DELETED
@@ -1 +0,0 @@
1
- export function strLen(n,e){var r,t;"number"==typeof e?e={enLen:1,nonEnLen:e}:((e=e||{}).enLen=null!==(r=e.enLen)&&void 0!==r?r:1,e.nonEnLen=null!==(t=e.nonEnLen)&&void 0!==t?t:2);let o=0;for(let r=n.length-1;r>=0;r--)o+=n.charCodeAt(r)>255?e.nonEnLen||0:e.enLen||0;return o}export function cutStr(n,e,r){(r=r||{}).enLen=Number(r.enLen)||1,r.nonEnLen=Number(r.nonEnLen)||2,r.ellipsis=r.ellipsis||"...";const t=strLen(n=String(n),r);if(t<=e)return n;e-=strLen(r.ellipsis,r);let o="",l=-1;for(;e>0&&++l<t;)(e-=n.charCodeAt(l)>255?r.nonEnLen:r.enLen)>=0&&(o+=n.charAt(l));return o+=r.ellipsis,o}export function escapeHTML(n){if(null==n)return n;const e={'"':"&quot;","'":"&#39;","&":"&amp;","<":"&lt;",">":"&gt;"};return String(n).replace(/["'&<>]/g,(n=>e[n]))}export function removeTags(n){return null==n?"":String(n).replace(/<.+?>/g,"")}export function nl2br(n){return null==n?n:String(n).replace(/\r?\n/g,"<br />")}export function randomStr(n,e){if(!(n|=0)||n<0)throw new Error('"length" must be a number greater than 0');let r="";do{r+=Math.random().toString(36).substr(2)}while(r.length<n);return r=r.substr(0,n),null!=e&&(r=e+r),r}export function uuidV4(){let n=Date.now();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(n+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const r=(n+16*Math.random())%16|0;return n=Math.floor(n/16),("x"===e?r:3&r|8).toString(16)}))}export function compareVersions(n,e){if(!n||!e)throw new Error("Please specify both verA and verB");const r=/(\.0+)+$/,t=String(n).replace(r,"").split("."),o=String(e).replace(r,"").split("."),l=Math.min(t.length,o.length);for(let n=0;n<l;n++){const e=parseInt(t[n])-parseInt(o[n]);if(e)return e}return t.length-o.length}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes