@base-web-kits/base-tools-ts 0.9.8 → 0.9.9

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 (48) hide show
  1. package/dist/array/index.d.ts +9 -0
  2. package/dist/array/index.d.ts.map +1 -0
  3. package/dist/async/index.d.ts +14 -0
  4. package/dist/async/index.d.ts.map +1 -0
  5. package/dist/bean/EventBus.d.ts +37 -0
  6. package/dist/bean/EventBus.d.ts.map +1 -0
  7. package/dist/bean/index.d.ts +2 -0
  8. package/dist/bean/index.d.ts.map +1 -0
  9. package/dist/day/index.d.ts +100 -0
  10. package/dist/day/index.d.ts.map +1 -0
  11. package/dist/index.d.ts +14 -1215
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/lodash/index.d.ts +8 -0
  14. package/dist/lodash/index.d.ts.map +1 -0
  15. package/dist/number/big.d.ts +137 -0
  16. package/dist/number/big.d.ts.map +1 -0
  17. package/dist/number/format.d.ts +88 -0
  18. package/dist/number/format.d.ts.map +1 -0
  19. package/dist/number/index.d.ts +4 -0
  20. package/dist/number/index.d.ts.map +1 -0
  21. package/dist/number/random.d.ts +33 -0
  22. package/dist/number/random.d.ts.map +1 -0
  23. package/dist/object/index.d.ts +11 -0
  24. package/dist/object/index.d.ts.map +1 -0
  25. package/dist/string/format.d.ts +33 -0
  26. package/dist/string/format.d.ts.map +1 -0
  27. package/dist/string/index.d.ts +4 -0
  28. package/dist/string/index.d.ts.map +1 -0
  29. package/dist/string/other.d.ts +15 -0
  30. package/dist/string/other.d.ts.map +1 -0
  31. package/dist/string/random.d.ts +27 -0
  32. package/dist/string/random.d.ts.map +1 -0
  33. package/dist/typing/index.d.ts +134 -0
  34. package/dist/typing/index.d.ts.map +1 -0
  35. package/dist/url/file/index.d.ts +22 -0
  36. package/dist/url/file/index.d.ts.map +1 -0
  37. package/dist/url/index.d.ts +5 -0
  38. package/dist/url/index.d.ts.map +1 -0
  39. package/dist/url/oss/index.d.ts +77 -0
  40. package/dist/url/oss/index.d.ts.map +1 -0
  41. package/dist/url/param/index.d.ts +49 -0
  42. package/dist/url/param/index.d.ts.map +1 -0
  43. package/dist/url/qn/index.d.ts +58 -0
  44. package/dist/url/qn/index.d.ts.map +1 -0
  45. package/dist/validator/index.d.ts +296 -0
  46. package/dist/validator/index.d.ts.map +1 -0
  47. package/package.json +1 -1
  48. package/dist/index.d.cts +0 -1216
@@ -0,0 +1,77 @@
1
+ import type { OSSOption, OSSAudioOption, OSSHlsOption, OSSImgOption, OSSVideoOption } from './index.d';
2
+ export * from './index.d';
3
+ /**
4
+ * oss图片处理
5
+ * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/img-parameters/?spm=a2c4g.11186623.help-menu-31815.d_0_11_2_1.572824a1a1W5Pf&scm=20140722.H_144582._.OR_help-T_cn~zh-V_1
6
+ * @param src 原始图片URL
7
+ * @param option 图片处理选项
8
+ * @returns 处理后的图片URL(格式: `{src}?x-oss-process=image/xx`)
9
+ * @example
10
+ * 缩放: getOSSImg('xx.jpg', { resize: { w: 100, h: 100 } })
11
+ * 水印: getOSSImg('xx.jpg', { watermark: { text: '水印' } });
12
+ * 翻转: getOSSImg('xx.jpg', { flip: 1 });
13
+ * 裁剪: getOSSImg('xx.jpg', { crop: { w: 100, h: 100 } });
14
+ * 质量: getOSSImg('xx.jpg', { quality: { q: 80 } });
15
+ * 格式转换: getOSSImg('xx.jpg', { format: 'jpg' });
16
+ * 获取信息: getOSSImg('xx.jpg', { info: true });
17
+ * 自适应方向: getOSSImg('xx.jpg', { 'auto-orient': 1 });
18
+ * 内切圆: getOSSImg('xx.jpg', { circle: { r: 100 } });
19
+ * 索引切割: getOSSImg('xx.jpg', { indexcrop: { x: 100 } });
20
+ * 圆角: getOSSImg('xx.jpg', { 'rounded-corners': { r: 10 } });
21
+ * 模糊: getOSSImg('xx.jpg', { blur: { r: 10, s: 10 } });
22
+ * 旋转: getOSSImg('xx.jpg', { rotate: 90 });
23
+ * 渐进显示: getOSSImg('xx.jpg', { interlace: 1 });
24
+ * 主色调: getOSSImg('xx.jpg', { 'average-hue': true });
25
+ * 亮度: getOSSImg('xx.jpg', { bright: 10 });
26
+ * 锐化: getOSSImg('xx.jpg', { sharpen: 100 });
27
+ * 对比度: getOSSImg('xx.jpg', { contrast: 100 });
28
+ */
29
+ export declare function getOSSImg(src: string, option: OSSImgOption): string;
30
+ /**
31
+ * oss视频处理
32
+ * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/audio-and-video-processing/
33
+ * @param src 原始视频URL
34
+ * @param option 视频处理选项
35
+ * @returns 处理后的URL(格式: `{src}?x-oss-process=video/xx`)
36
+ * @example
37
+ * 视频转码: getOSSVideo('xx.mp4', { convert: { format: 'mp4' } })
38
+ * 转为动图: getOSSVideo('xx.mp4', { animation: { format: 'gif' } })
39
+ * 雪碧图: getOSSVideo('xx.mp4', { sprite: { format: 'png' } })
40
+ * 多帧截取: getOSSVideo('xx.mp4', { snapshots: { count: 3 } })
41
+ * 视频拼接: getOSSVideo('xx.mp4', { concat: { list: 'a.mp4,b.mp4' } })
42
+ * 信息查询: getOSSVideo('xx.mp4', { info: true })
43
+ * 组合操作: getOSSVideo('xx.mp4', { convert: { format: 'mp4' }, snapshots: { count: 3 } })
44
+ */
45
+ export declare function getOSSVideo(src: string, option: OSSVideoOption): string;
46
+ /**
47
+ * oss音频处理
48
+ * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/audio-and-video-processing/
49
+ * @param src 原始音频URL
50
+ * @param option 音频处理选项
51
+ * @returns 处理后的URL(格式: `{src}?x-oss-process=audio/xx`)
52
+ * @example
53
+ * 音频转码: getOSSAudio('xx.mp3', { 'convert': { format: 'mp3' } })
54
+ * 音频拼接: getOSSAudio('xx.mp3', { 'concat': { list: 'a.mp3,b.mp3' } })
55
+ * 信息查询: getOSSAudio('xx.mp3', { 'info': true })
56
+ */
57
+ export declare function getOSSAudio(src: string, option: OSSAudioOption): string;
58
+ /**
59
+ * oss直播处理(边转边播 HLS)
60
+ * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/audio-and-video-processing/
61
+ * @param src 原始视频URL
62
+ * @param option HLS 选项(或布尔)
63
+ * @returns 处理后的URL(格式: `{src}?x-oss-process=hls/xx`)
64
+ * @example
65
+ * 生成播放列表: getOSSHls('xx.mp4', { 'm3u8': true })
66
+ * 配置参数: getOSSHls('xx.mp4', { 'm3u8': { playlist: 1, segtime: 6 } })
67
+ */
68
+ export declare function getOSSHls(src: string, option: OSSHlsOption): string;
69
+ /**
70
+ * 构造oss处理地址
71
+ * @param src 原始地址
72
+ * @param type oss处理类型,如`image`, `audio`, `video`, `hls`
73
+ * @param option oss处理选项
74
+ * @returns 处理后的URL(格式: `{src}?x-oss-process={type}/{segs.join('/')}`)
75
+ */
76
+ export declare function buildOSSUrl(src: string, type: string, option: OSSOption): string;
77
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ts/url/oss/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EAEf,MAAM,WAAW,CAAC;AAEnB,cAAc,WAAW,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,UAE1D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAE9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAE9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,UAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAkBvE"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * 获取url的查询参数值
3
+ * - 采用纯JS解析,因为小程序不支持URLSearchParams
4
+ * @param key 参数名
5
+ * @param url 完整 URL 或仅查询串(如 "a=1&b=2")
6
+ * @returns 解码后的参数值 (若不存在|"null"|"undefined",则返回 null)
7
+ * @example
8
+ * const q = getUrlParam('q', 'https://a.com/?q=%E6%B5%8B%E8%AF%95'); // "测试"
9
+ * const a = getUrlParam('a', 'a=1'); // "1"
10
+ * const list = getUrlParam('list', 'list=[1,2]'); // "[1,2]"
11
+ * const list = getUrlParam('list', 'list=null'); // null
12
+ * const list = getUrlParam('list', 'list=undefined'); // null
13
+ */
14
+ export declare function getUrlParam(key: string, url: string): string | null;
15
+ /**
16
+ * 获取url的查询参数值,并转为number类型
17
+ * @param key 参数名
18
+ * @param url 完整 URL 或仅查询串(如 "a=1&b=2")
19
+ * @returns 解码后的参数值 (若不存在|"非数字字符串",则返回 null)
20
+ * @example
21
+ * const a = getUrlNumber('a', 'https://a.com/?a=1'); // 1
22
+ * const a = getUrlNumber('a', 'a=1'); // 1
23
+ * const a = getUrlNumber('a', 'a=1.2'); // 1.2
24
+ * const a = getUrlNumber('a', 'a=abc'); // null
25
+ */
26
+ export declare function getUrlNumber(key: string, url: string): number | null;
27
+ /**
28
+ * 获取url的所有查询参数值
29
+ * - 采用纯JS解析,因为小程序不支持URLSearchParams
30
+ * @param url 完整 URL 或仅查询串(如 "a=1&b=2")
31
+ * @returns 解码后的键值对象(无参数返回空对象; "null"|"undefined"的参数会被忽略)
32
+ * @example
33
+ * const params = getUrlParamAll('a=1&b=2'); // { a: "1", b: "2" }
34
+ * const params = getUrlParamAll('https://a.com/?a=1&b=2'); // { a: "1", b: "2" }
35
+ * const params = getUrlParamAll('a=1&b=null'); // { a: "1" }
36
+ * const params = getUrlParamAll('a=1&b=undefined'); // { a: "1" }
37
+ */
38
+ export declare function getUrlParamAll(url: string): Record<string, string>;
39
+ /**
40
+ * 将对象参数拼接到 URL
41
+ * - 采用纯JS拼接,因为小程序不支持URLSearchParams
42
+ * @param url 基础地址
43
+ * @param param 将要追加的参数对象;`null/undefined` 值会被忽略,Object 会使用 `JSON.stringify`
44
+ * @returns 拼接后的完整 URL(保留原有哈希片段)
45
+ * @example
46
+ * const url = appendUrlParam('https://a.com', { q: '测试', list: [1, 2], a: null, b: undefined }); // 'https://a.com/?q=%E6%B5%8B%E8%AF%95&list=[1,2]'
47
+ */
48
+ export declare function appendUrlParam(url: string, param: Record<string, unknown>): string;
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ts/url/param/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAqBnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAMpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,0BAuBzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAkBzE"}
@@ -0,0 +1,58 @@
1
+ import type { QnImgOption } from './index.d';
2
+ export * from './index.d';
3
+ /**
4
+ * qn图片处理
5
+ * 参考官方文档: https://developer.qiniu.com/kodo/8623/dev-the-picture-style
6
+ * @param src 原始图片URL
7
+ * @param option 图片处理选项
8
+ * @returns 处理后的图片URL(格式: `{src}?imageView2/...|imageMogr2/...|watermark/...|imageslim|imageInfo`)
9
+ * @example
10
+ * 缩略: getQnImg('xx.jpg', { imageView2: { mode: 2, w: 100, h: 100 } })
11
+ * 高级缩放: getQnImg('xx.jpg', { thumbnail: '!50p' })
12
+ * 裁剪: getQnImg('xx.jpg', { crop: '100x100' })
13
+ * 旋转: getQnImg('xx.jpg', { rotate: 90 })
14
+ * 自适应方向: getQnImg('xx.jpg', { 'auto-orient': true })
15
+ * 格式转换: getQnImg('xx.jpg', { format: 'webp' })
16
+ * 质量: getQnImg('xx.jpg', { q: 80 })
17
+ * 渐进显示: getQnImg('xx.jpg', { interlace: 1 })
18
+ * 背景色填充: getQnImg('xx.jpg', { background: 'white' })
19
+ * 模糊: getQnImg('xx.jpg', { blur: { r: 10, s: 10 } })
20
+ * GIF颜色控制: getQnImg('xx.jpg', { colors: 64 })
21
+ * 图片瘦身: getQnImg('xx.jpg', { imageslim: true })
22
+ * 图片信息: getQnImg('xx.jpg', { imageInfo: true })
23
+ * 图片水印: getQnImg('xx.jpg', { watermark: { type: 'image', image: 'http://example.com/logo.png' } })
24
+ * 文字水印: getQnImg('xx.jpg', { watermark: { type: 'text', text: '水印', fontsize: 18 } })
25
+ */
26
+ export declare function getQnImg(src: string, option: QnImgOption): string;
27
+ /**
28
+ * qn视频处理
29
+ * 参考官方文档: https://developer.qiniu.com/kodo/12654/video-process
30
+ * @param src 原始视频URL
31
+ * @param option 视频处理选项(支持 avthumb、vframe)
32
+ * @returns 处理后的URL(格式: `{src}?avthumb/...|vframe/...`)
33
+ * @example
34
+ * 视频转码: getQnVideo('xx.mp4', { avthumb: { format: 'mp4', s: '1280x720', vcodec: 'libx264', vb: '1.25m' } })
35
+ * 截帧: getQnVideo('xx.mp4', { vframe: { format: 'jpg', offset: 3, w: 480, h: 360 } })
36
+ */
37
+ export declare function getQnVideo(src: string, option: import('.').QnVideoOption): string;
38
+ /**
39
+ * qn音频处理
40
+ * 参考官方文档: https://developer.qiniu.com/kodo/12654/video-process
41
+ * @param src 原始音频URL
42
+ * @param option 音频处理选项(通过 avthumb 转码)
43
+ * @returns 处理后的URL(格式: `{src}?avthumb/...`)
44
+ * @example
45
+ * 音频转码: getQnAudio('xx.aac', { avthumb: { format: 'mp3', ab: '128k', ar: 44100, acodec: 'libmp3lame' } })
46
+ */
47
+ export declare function getQnAudio(src: string, option: import('.').QnAudioOption): string;
48
+ /**
49
+ * qn实时转码(HLS 边转边播)
50
+ * 参考官方文档: https://developer.qiniu.com/kodo/12654/video-process、实时转码
51
+ * @param src 原始视频URL
52
+ * @param option HLS 选项
53
+ * @returns 处理后的URL(格式: `{src}?avcvt/{level}/format/m3u8/...`)
54
+ * @example
55
+ * 720P HLS: getQnHls('xx.mp4', { level: 3, format: 'm3u8', segtime: 6 })
56
+ */
57
+ export declare function getQnHls(src: string, option: import('.').QnHlsOption): string;
58
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ts/url/qn/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAwD,MAAM,WAAW,CAAC;AAEnG,cAAc,WAAW,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,UAsBxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,aAAa,UAUxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,aAAa,UAQxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,WAAW,UAOpE"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * 纯字母(不含空格与符号)。
3
+ * @param s 字符串
4
+ * @returns 是否为字母
5
+ * @example
6
+ * isLetter('abc') // true
7
+ * isLetter('123') // false
8
+ * isLetter('abc123') // false
9
+ */
10
+ export declare function isLetter(s: string): boolean;
11
+ /**
12
+ * 纯中文(不含空格与符号)。
13
+ * @param s 字符串
14
+ * @returns 是否为纯中文
15
+ * @example
16
+ * isChinese('你好') // true
17
+ */
18
+ export declare function isChinese(s: string): boolean;
19
+ /**
20
+ * 纯数字(非负整数,不含空格与符号)。
21
+ * @param s 字符串
22
+ * @returns 是否为数字
23
+ * @example
24
+ * isDigits('12') // true
25
+ * isDigits('1.2') // false
26
+ * isDigits('-12') // false
27
+ * isDigits('a12') // false
28
+ */
29
+ export declare function isDigits(s: string): boolean;
30
+ /**
31
+ * 数字字符串格式校验
32
+ * @param value 待验证值(字符串或数字)
33
+ * @param options 可选项
34
+ * @param options.negative 是否允许负数,默认 false
35
+ * @param options.decimal 小数位数,默认 2(0 表示必须整数)
36
+ * @param options.thousands 是否允许千分位逗号,默认 false
37
+ * @param options.leadZero 是否允许整数部分出现多余前导0 (默认false, 即禁止'007',但允许'0.50')
38
+ * @example
39
+ * isNumeric('123.45'); // true
40
+ * isNumeric('123.45', { decimal: 0 }); // false
41
+ * isNumeric('-1,234.5', { negative: true, thousands: true }); // true
42
+ * isNumeric('0123', { leadZero: true }); // true(现在允许)
43
+ * isNumeric('0123'); // false(默认禁止)
44
+ * isNumeric('0.50'); // true(始终允许)
45
+ * isNumeric('.5'); // false(整数部分不能省)
46
+ * isNumeric('123.'); // false(小数部分不能省)
47
+ */
48
+ export declare function isNumeric(value: string | number, options?: {
49
+ negative?: boolean;
50
+ decimal?: number;
51
+ thousands?: boolean;
52
+ leadZero?: boolean;
53
+ }): boolean;
54
+ /**
55
+ * 是否为中国大陆手机号(11 位,以 1 开头,第二位 3-9)。
56
+ * @param s 待校验的号码
57
+ * @returns 是否为合法手机号
58
+ * @example
59
+ * isMobilePhone('13800138000') // true
60
+ * isMobilePhone('12800138000') // false
61
+ */
62
+ export declare function isMobilePhone(s: string): boolean;
63
+ /**
64
+ * 是否为中国大陆座机号(区号-号码,可选分机)。
65
+ * 格式:`0AA-BBBBBBBB(-EXT)`,其中区号 2-3 位、号码 7-8 位、分机 1-6 位。
66
+ * @param s 待校验的号码
67
+ * @returns 是否为合法座机号
68
+ * @example
69
+ * isLandline('010-88888888') // true
70
+ * isLandline('0371-12345678-123') // true
71
+ */
72
+ export declare function isLandline(s: string): boolean;
73
+ /**
74
+ * 联系电话:是否为中国大陆“手机号或座机号”。
75
+ * @param s 待校验的号码
76
+ * @returns 是否为合法的手机号或座机号
77
+ * @example
78
+ * isPhone('13800138000') // true
79
+ * isPhone('010-88888888') // true
80
+ */
81
+ export declare function isPhone(s: string): boolean;
82
+ /**
83
+ * 校验邮箱地址(基于 RFC 5322 的常用子集)。
84
+ * @param s 待校验的邮箱字符串
85
+ * @returns 是否为合法邮箱
86
+ * @example
87
+ * isEmail('user@example.com') // true
88
+ * isEmail('invalid@') // false
89
+ */
90
+ export declare function isEmail(s: string): boolean;
91
+ /**
92
+ * 中文姓名(允许中间点 `·`),长度 2-20。
93
+ * @param s 姓名
94
+ * @returns 是否为合法中文姓名
95
+ * @example
96
+ * isChineseName('张三') // true
97
+ * isChineseName('阿·娜') // true
98
+ */
99
+ export declare function isChineseName(s: string): boolean;
100
+ /**
101
+ * 身份证校验(支持中国大陆严格校验;台湾/香港/澳门做格式校验)。
102
+ * 规则:
103
+ * - 中国大陆(严格):18 位校验位 + 出生日期合法性;兼容 15 位旧号(日期校验);
104
+ * - 台湾(格式):`^[A-Z][12]\d{8}$`(首字母 + 性别位 1/2 + 8 位数字);不含校验位算法;
105
+ * - 香港(格式):`^[A-Z]{1,2}\d{6}\(?[0-9A]\)?$`(1-2 字母 + 6 位数字 + 校验位,可带括号);
106
+ * - 澳门(格式):常见为 `^[157]\d{6}\(?\d\)?$`(类别位 1/5/7 + 7 位数字 + 校验位,可带括号)。
107
+ * @param code 身份证号码
108
+ * @returns 是否为合法身份证号
109
+ * @example
110
+ * isIdentityCard('11010519491231002X') // true(大陆)
111
+ * isIdentityCard('A123456789') // true(台湾格式)
112
+ * isIdentityCard('A123456(3)') // true(香港格式)
113
+ * isIdentityCard('1234567(8)') // true(澳门格式)
114
+ */
115
+ export declare function isIdentityCard(code: string): boolean;
116
+ /**
117
+ * 护照号码校验(宽松通用格式,适合单输入框无法确认国家的场景)。
118
+ * 说明:各国护照格式差异较大,此函数提供常见模式的格式校验;不做校验位算法。
119
+ * 包含:
120
+ * - 中国护照常见:`E/G` 开头 + 8 位数字;`D/P/S` 开头 + 7 位数字;
121
+ * - 台湾护照常见:首字母 + 8 位数字;
122
+ * - 通用兜底:6-9 位的字母数字组合;移除输入中的空格与 `-` 后再校验。
123
+ * @param s 护照号码
124
+ * @returns 是否匹配常见护照格式
125
+ * @example
126
+ * isPassport('E12345678') // true
127
+ * isPassport('P1234567') // true
128
+ * isPassport('A12345678') // true(台湾常见)
129
+ * isPassport('AB-1234567') // true(移除分隔符后匹配)
130
+ */
131
+ export declare function isPassport(s: string): boolean;
132
+ /**
133
+ * 港澳通行证(回乡证)号码校验。
134
+ * 说明:常见为 `H/M` 开头 + 8~10 位数字;自动移除输入中的空格与 `-`。
135
+ * @param s 证件号
136
+ * @returns 是否为港澳通行证格式
137
+ * @example
138
+ * isHKMOPermit('H12345678') // true
139
+ * isHKMOPermit('M1234567890') // true
140
+ */
141
+ export declare function isHKMOPermit(s: string): boolean;
142
+ /**
143
+ * 台湾居民来往大陆通行证(台胞证)号码校验。
144
+ * 说明:常见为 8 位纯数字;或首字母 + 8 位数字;部分场景存在 10 位数字。
145
+ * @param s 证件号
146
+ * @returns 是否为台胞证格式
147
+ * @example
148
+ * isTaiwanPermit('12345678') // true
149
+ * isTaiwanPermit('T12345678') // true
150
+ * isTaiwanPermit('1234567890') // true
151
+ */
152
+ export declare function isTaiwanPermit(s: string): boolean;
153
+ /**
154
+ * 军官证号码校验:字母数字组合,长度 7-18。
155
+ * @param s 证件号
156
+ * @returns 是否为军官证宽松格式
157
+ * @example
158
+ * isOfficerIdLoose('JX1234567') // true
159
+ */
160
+ export declare function isOfficerId(s: string): boolean;
161
+ /**
162
+ * 士兵证号码校验:字母数字组合,长度 7-18。
163
+ * @param s 证件号
164
+ * @returns 是否为士兵证格式
165
+ * @example
166
+ * isSoldierId('SB12345678') // true
167
+ */
168
+ export declare function isSoldierId(s: string): boolean;
169
+ /**
170
+ * 中国军证(军官证/士兵证)组合校验。
171
+ * @param s 证件号
172
+ * @returns 是否为军官证或士兵证格式
173
+ * @example
174
+ * isCnMilitaryId('JX1234567') // true
175
+ */
176
+ export declare function isMilitaryId(s: string): boolean;
177
+ /**
178
+ * 银行卡号校验(Luhn 校验)。
179
+ * 说明:移除空格与 `-` 后进行 Luhn 校验;长度通常为 12-19 位。
180
+ * @param s 银行卡号
181
+ * @returns 是否通过 Luhn 校验
182
+ * @example
183
+ * isBankCard('6222 0201 2345 6789') // true
184
+ */
185
+ export declare function isBankCard(s: string): boolean;
186
+ /**
187
+ * 中国车牌号校验(含普通与新能源)。
188
+ * @param s 车牌号码
189
+ * @returns 是否为合法中国车牌
190
+ * @example
191
+ * isLicensePlate('京A12345') // true
192
+ * isLicensePlate('沪A12345D') // 新能源(末位 D/F)
193
+ * isLicensePlate('粤BDF12345') // 新能源(第三位 D/F)
194
+ */
195
+ export declare function isLicensePlate(s: string): boolean;
196
+ /**
197
+ * 校验统一社会信用代码(中国税号常用:18 位,含校验位)。
198
+ * 规则:
199
+ * - 字符集:数字与大写字母(不含 I/O/Z/S/V),即 `[0-9A-HJ-NPQRTUWXY]`;
200
+ * - 前 17 位参与加权求和,最后一位为校验码(取值 0-9 或 大写字母)。
201
+ * @param code 税号/统一社会信用代码
202
+ * @returns 是否为合法税号
203
+ * @example
204
+ * isTaxID('91350100M000100Y43') // true/false 取决于校验位
205
+ */
206
+ export declare function isTaxID(code: string): boolean;
207
+ /**
208
+ * 判断字符串是否为合法 JSON 文本。
209
+ * 说明:传入字符串时尝试 `JSON.parse`;传入对象/数组则视为合法。
210
+ * @param input 待判定的值或字符串
211
+ * @returns 是否为合法 JSON
212
+ * @example
213
+ * isJSON('{"a":1}') // true
214
+ * isJSON('[1,2]') // true
215
+ * isJSON('abc') // false
216
+ */
217
+ export declare function isJSON(input: unknown): boolean;
218
+ /**
219
+ * HEX 颜色值(支持 `#RGB`、`#RRGGBB`、`#RRGGBBAA`)。
220
+ * @param s 颜色字符串
221
+ * @returns 是否为合法 HEX 颜色
222
+ * @example
223
+ * isHexColor('#fff') // true
224
+ * isHexColor('#00ff00') // true
225
+ * isHexColor('#11223344') // true
226
+ */
227
+ export declare function isHexColor(s: string): boolean;
228
+ /**
229
+ * 校验 URL(要求含协议,支持 http/https/ftp)。
230
+ * @param s 待校验的地址
231
+ * @returns 是否为合法 URL
232
+ * @example
233
+ * isURL('https://example.com/path?a=1') // true
234
+ * isURL('example.com') // false(缺少协议)
235
+ */
236
+ export declare function isURL(s: string): boolean;
237
+ /**
238
+ * 判断是否为合法 IPv6 地址(支持压缩表示与 IPv4 映射)。
239
+ * 规则:
240
+ * - 由 8 组 1~4 位十六进制数组成,允许一次 `::` 压缩;
241
+ * - 允许最后一组使用 IPv4 映射(如 `::ffff:192.168.0.1`)。
242
+ * @param s IP 字符串
243
+ * @returns 是否为合法 IPv6
244
+ * @example
245
+ * isIPv6('2001:0db8:85a3:0000:0000:8a2e:0370:7334') // true
246
+ * isIPv6('2001:db8::8a2e:370:7334') // true
247
+ * isIPv6('2001:::370:7334') // false
248
+ */
249
+ export declare function isIPv6(s: string): boolean;
250
+ /**
251
+ * 校验 IP(支持 IPv4 与 IPv6)。
252
+ * @param s IP 字符串
253
+ * @param version 指定版本:传 `4` 仅校验 IPv4,传 `6` 仅校验 IPv6;缺省同时校验两者
254
+ * @returns 是否为合法 IP
255
+ * @example
256
+ * isIP('127.0.0.1') // true
257
+ * isIP('::1') // true
258
+ * isIP('127.0.0.1', 6) // false
259
+ */
260
+ export declare function isIP(s: string, version?: 4 | 6 | '4' | '6'): boolean;
261
+ /**
262
+ * 校验 CIDR IP 段(支持 IPv4/IPv6),形如 `IP/前缀长度`。
263
+ * @param s CIDR 字符串,如 `192.168.0.0/24`、`2001:db8::/32`
264
+ * @returns 是否为合法 CIDR
265
+ * @example
266
+ * isIPRange('10.0.0.0/8') // true
267
+ * isIPRange('2001:db8::/129') // false
268
+ */
269
+ export declare function isIPRange(s: string): boolean;
270
+ /**
271
+ * 端口号校验(0 ~ 65535,整数)。
272
+ * @param s 端口(字符串或数字)
273
+ * @returns 是否为合法端口范围
274
+ * @example
275
+ * isPortNumber(80) // true
276
+ * isPortNumber('65535') // true
277
+ * isPortNumber(70000) // false
278
+ */
279
+ export declare function isPortNumber(s: string | number): boolean;
280
+ /**
281
+ * 纬度校验(-90 ~ 90)。
282
+ * @param s 纬度值(字符串或数字)
283
+ * @returns 是否为合法纬度
284
+ * @example
285
+ * isLatitude('31.2304') // true
286
+ */
287
+ export declare function isLatitude(s: string | number): boolean;
288
+ /**
289
+ * 经度校验(-180 ~ 180)。
290
+ * @param s 经度值(字符串或数字)
291
+ * @returns 是否为合法经度
292
+ * @example
293
+ * isLongitude('121.4737') // true
294
+ */
295
+ export declare function isLongitude(s: string | number): boolean;
296
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts/validator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,WAEjC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,WAGlC;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,WAEjC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACA,OAAO,CAkBT;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,WAGtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,WAGnC;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,WAEhC;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,WAMhC;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,WAGtC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,WA8C1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,WAUnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,WAMrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,WASvC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,WAMpC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,WAMpC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,WAErC;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,WAiBnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,WASvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,WAcnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,WAapC;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,WAGnC;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,WAS9B;AAwBD;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAmCzC;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,WAI1D;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,WAclC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,WAG9C;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,WAG5C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,WAG7C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base-web-kits/base-tools-ts",
3
- "version": "0.9.8",
3
+ "version": "0.9.9",
4
4
  "sideEffects": false,
5
5
  "description": "Independent TS utilities package built from src/ts.",
6
6
  "keywords": [