zcw-shared 1.49.4 → 2.1.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 (83) hide show
  1. package/README.md +9 -0
  2. package/dist/functions/deploy/publishToPgyer.d.ts +16 -0
  3. package/dist/functions/deploy/publishToPgyer.js +96 -0
  4. package/dist/functions/deploy/publishToPgyer.js.map +1 -0
  5. package/dist/functions/fake/generateFakeBankCard.d.ts +87 -0
  6. package/dist/functions/fake/generateFakeBankCard.js +152 -0
  7. package/dist/functions/fake/generateFakeBankCard.js.map +1 -0
  8. package/dist/functions/fake/generateFakeBusinessLicense.d.ts +21 -0
  9. package/dist/functions/fake/generateFakeBusinessLicense.js +160 -0
  10. package/dist/functions/fake/generateFakeBusinessLicense.js.map +1 -0
  11. package/dist/functions/fake/generateFakeDrivingLicense.d.ts +31 -0
  12. package/dist/functions/fake/generateFakeDrivingLicense.js +119 -0
  13. package/dist/functions/fake/generateFakeDrivingLicense.js.map +1 -0
  14. package/dist/functions/fake/generateFakeIdCard.d.ts +30 -0
  15. package/dist/functions/fake/generateFakeIdCard.js +123 -0
  16. package/dist/functions/fake/generateFakeIdCard.js.map +1 -0
  17. package/dist/functions/fake/generateFakeLicensePlate.d.ts +13 -0
  18. package/dist/functions/fake/generateFakeLicensePlate.js +87 -0
  19. package/dist/functions/fake/generateFakeLicensePlate.js.map +1 -0
  20. package/dist/functions/file/getIconfontNameByExtension.d.ts +7 -0
  21. package/dist/functions/file/getIconfontNameByExtension.js +140 -0
  22. package/dist/functions/file/getIconfontNameByExtension.js.map +1 -0
  23. package/dist/functions/image/renderBankCard.d.ts +1 -1
  24. package/dist/functions/image/renderBusinessLicense.d.ts +1 -1
  25. package/dist/functions/image/renderDrivingLicense.d.ts +1 -1
  26. package/dist/functions/image/renderIdCard.d.ts +1 -1
  27. package/dist/functions/image/renderLicensePlate.d.ts +1 -1
  28. package/dist/functions/qiankun/createQiankunVueApp.d.ts +17 -0
  29. package/dist/functions/qiankun/createQiankunVueApp.js +40 -0
  30. package/dist/functions/qiankun/createQiankunVueApp.js.map +1 -0
  31. package/dist/functions/uniapp/api/audio.d.ts +28 -0
  32. package/dist/functions/uniapp/api/audio.js +49 -0
  33. package/dist/functions/uniapp/api/audio.js.map +1 -0
  34. package/dist/functions/uniapp/api/auth.d.ts +44 -0
  35. package/dist/functions/uniapp/api/auth.js +59 -0
  36. package/dist/functions/uniapp/api/auth.js.map +1 -0
  37. package/dist/functions/uniapp/api/dom.d.ts +2 -0
  38. package/dist/functions/uniapp/api/dom.js +7 -0
  39. package/dist/functions/uniapp/api/dom.js.map +1 -0
  40. package/dist/functions/uniapp/api/index.d.ts +10 -0
  41. package/dist/functions/uniapp/api/index.js +11 -0
  42. package/dist/functions/uniapp/api/index.js.map +1 -0
  43. package/dist/functions/uniapp/api/media.d.ts +13 -0
  44. package/dist/functions/uniapp/api/media.js +16 -0
  45. package/dist/functions/uniapp/api/media.js.map +1 -0
  46. package/dist/functions/uniapp/api/navigation.d.ts +12 -0
  47. package/dist/functions/uniapp/api/navigation.js +72 -0
  48. package/dist/functions/uniapp/api/navigation.js.map +1 -0
  49. package/dist/functions/uniapp/api/network.d.ts +40 -0
  50. package/dist/functions/uniapp/api/network.js +60 -0
  51. package/dist/functions/uniapp/api/network.js.map +1 -0
  52. package/dist/functions/uniapp/api/storage.d.ts +7 -0
  53. package/dist/functions/uniapp/api/storage.js +84 -0
  54. package/dist/functions/uniapp/api/storage.js.map +1 -0
  55. package/dist/functions/uniapp/api/system.d.ts +54 -0
  56. package/dist/functions/uniapp/api/system.js +31 -0
  57. package/dist/functions/uniapp/api/system.js.map +1 -0
  58. package/dist/functions/uniapp/api/ui.d.ts +48 -0
  59. package/dist/functions/uniapp/api/ui.js +81 -0
  60. package/dist/functions/uniapp/api/ui.js.map +1 -0
  61. package/dist/functions/uniapp/app-plus/buildIOSApp.js +12 -0
  62. package/dist/functions/uniapp/app-plus/buildIOSApp.js.map +1 -1
  63. package/dist/functions/uniapp/platform.d.ts +16 -0
  64. package/dist/functions/uniapp/platform.js +112 -0
  65. package/dist/functions/uniapp/platform.js.map +1 -0
  66. package/dist/schemas/auth.schema.d.ts +368 -0
  67. package/dist/schemas/auth.schema.js +40 -0
  68. package/dist/schemas/auth.schema.js.map +1 -0
  69. package/dist/schemas/video.schema.d.ts +391 -0
  70. package/dist/schemas/video.schema.js +55 -0
  71. package/dist/schemas/video.schema.js.map +1 -0
  72. package/package.json +33 -7
  73. package/references/dom.d.ts +11 -0
  74. package/types/auth.d.ts +57 -0
  75. package/types/checkin-config.d.ts +28 -0
  76. package/types/cloud-disk-config.d.ts +36 -0
  77. package/types/music.d.ts +33 -0
  78. package/types/order.d.ts +61 -0
  79. package/types/points-config.d.ts +44 -0
  80. package/types/product.d.ts +41 -0
  81. package/types/uniapp-ios-build.d.ts +2 -0
  82. package/types/user.d.ts +36 -0
  83. package/types/video.d.ts +71 -0
package/README.md CHANGED
@@ -35,11 +35,16 @@ src/
35
35
  │ ├── dom/ # DOM 操作
36
36
  │ ├── utils/ # 通用工具
37
37
  │ └── ...
38
+ ├── schemas/ # Zod Schema 定义(用于运行时验证)
39
+ │ ├── auth.schema.ts # 认证相关 Schema
40
+ │ └── video.schema.ts # 视频相关 Schema
38
41
  └── hooks/ # React/Vue Hooks
39
42
 
40
43
  types/ # 应用层类型定义
44
+ ├── auth.d.ts # 认证相关类型
41
45
  ├── color.d.ts # 颜色相关类型
42
46
  ├── storage.d.ts # 存储相关类型
47
+ ├── video.d.ts # 视频相关类型
43
48
  └── ...
44
49
 
45
50
  references/ # 环境API类型声明
@@ -462,6 +467,10 @@ import type { FileSystem } from 'zcw-shared/references/node'
462
467
  // 导入常量
463
468
  import { COLOR_VALIDATION_PATTERNS } from 'zcw-shared/constants/colorPatterns'
464
469
 
470
+ // 导入 Schema(用于运行时验证)
471
+ import { LoginResponseSchema, VideoSchema } from 'zcw-shared/schemas/auth.schema'
472
+ import { VideoListResponseSchema } from 'zcw-shared/schemas/video.schema'
473
+
465
474
  // 导入Hooks
466
475
  import { useStorage } from 'zcw-shared/hooks/useStorage'
467
476
  ```
@@ -0,0 +1,16 @@
1
+ import type { PublishToPgyerOptions, PublishToPgyerResult } from '../../../types/pgyer.d';
2
+ import type { FileSystem } from '../../../references/node.d';
3
+ import type { Console } from '../../../references/console.d';
4
+ import type { fetch, FormData, Headers } from '../../../references/fetch.d';
5
+ import type { Blob } from '../../../references/blob.d';
6
+ export interface PublishToPgyerDeps {
7
+ existsSync: FileSystem['existsSync'];
8
+ readFileSync: FileSystem['readFileSync'];
9
+ fetch: typeof fetch;
10
+ FormData: typeof FormData;
11
+ Headers: typeof Headers;
12
+ Blob: typeof Blob;
13
+ log: Console['log'];
14
+ error: Console['error'];
15
+ }
16
+ export declare function publishToPgyer(options: PublishToPgyerOptions, deps: PublishToPgyerDeps): Promise<PublishToPgyerResult>;
@@ -0,0 +1,96 @@
1
+ export async function publishToPgyer(options, deps) {
2
+ const { filePath, apiKey, uKey, password, updateDescription, channelShortcut, installType, appName } = options;
3
+ try {
4
+ if (!deps.existsSync(filePath)) {
5
+ return {
6
+ success: false,
7
+ error: `文件不存在: ${filePath}`
8
+ };
9
+ }
10
+ if (!apiKey && !uKey) {
11
+ return {
12
+ success: false,
13
+ error: '必须提供 apiKey 或 uKey'
14
+ };
15
+ }
16
+ deps.log(`正在读取文件: ${filePath}`);
17
+ const fileBuffer = deps.readFileSync(filePath);
18
+ const fileName = filePath.split(/[/\\]/).pop() || 'app';
19
+ const formData = new deps.FormData();
20
+ const blobSource = typeof fileBuffer === 'string'
21
+ ? fileBuffer
22
+ : fileBuffer;
23
+ const blob = new deps.Blob([blobSource]);
24
+ formData.append('file', blob, fileName);
25
+ if (apiKey) {
26
+ formData.append('_api_key', apiKey);
27
+ }
28
+ if (uKey) {
29
+ formData.append('uKey', uKey);
30
+ }
31
+ if (password) {
32
+ formData.append('password', password);
33
+ }
34
+ if (updateDescription) {
35
+ formData.append('updateDescription', updateDescription);
36
+ }
37
+ if (channelShortcut) {
38
+ formData.append('channelShortcut', channelShortcut);
39
+ }
40
+ if (installType) {
41
+ formData.append('installType', String(installType));
42
+ }
43
+ if (appName) {
44
+ formData.append('appName', appName);
45
+ }
46
+ deps.log('正在上传到蒲公英...');
47
+ const response = await deps.fetch('https://www.pgyer.com/apiv2/app/upload', {
48
+ method: 'POST',
49
+ body: formData
50
+ });
51
+ const responseData = await response.json();
52
+ if (!response.ok || responseData.code !== 0) {
53
+ const errorMessage = responseData.message || responseData.error || '上传失败';
54
+ deps.error(`蒲公英上传失败: ${errorMessage}`);
55
+ return {
56
+ success: false,
57
+ error: errorMessage,
58
+ rawResponse: responseData
59
+ };
60
+ }
61
+ const appData = responseData.data || {};
62
+ deps.log('上传成功!');
63
+ if (appData.appDownloadURL) {
64
+ deps.log(`下载地址: ${appData.appDownloadURL}`);
65
+ }
66
+ if (appData.appQRCodeURL) {
67
+ deps.log(`二维码: ${appData.appQRCodeURL}`);
68
+ }
69
+ return {
70
+ success: true,
71
+ data: {
72
+ appKey: appData.appKey,
73
+ appType: appData.appType,
74
+ appName: appData.appName,
75
+ appVersion: appData.appVersion,
76
+ appVersionNo: appData.appVersionNo,
77
+ appFileSize: appData.appFileSize,
78
+ appIcon: appData.appIcon,
79
+ appQRCodeURL: appData.appQRCodeURL,
80
+ appDownloadURL: appData.appDownloadURL,
81
+ appShortcutUrl: appData.appShortcutUrl,
82
+ appUpdateDescription: appData.appUpdateDescription
83
+ },
84
+ rawResponse: responseData
85
+ };
86
+ }
87
+ catch (error) {
88
+ const errorMessage = error instanceof Error ? error.message : String(error);
89
+ deps.error('发布到蒲公英失败:', error);
90
+ return {
91
+ success: false,
92
+ error: `发布失败: ${errorMessage}`
93
+ };
94
+ }
95
+ }
96
+ //# sourceMappingURL=publishToPgyer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishToPgyer.js","sourceRoot":"","sources":["../../../src/functions/deploy/publishToPgyer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ declare const BRAND_PREFIXES: {
2
+ readonly UnionPay: readonly ["62"];
3
+ readonly VISA: readonly ["4"];
4
+ readonly Mastercard: readonly ["51", "52", "53", "54", "55"];
5
+ readonly JCB: readonly ["3528", "3530", "3589"];
6
+ readonly AMEX: readonly ["34", "37"];
7
+ };
8
+ declare const CARD_TYPES: readonly ["金卡", "白金卡", "钻石卡", "经典卡"];
9
+ declare const CHIP_STYLES: readonly ["classic", "minimal"];
10
+ declare const THEMES: {
11
+ readonly sapphire: {
12
+ readonly name: "蓝宝石";
13
+ readonly baseColor: "#0b1f44";
14
+ readonly accentColor: "#7dd3fc";
15
+ readonly gradient: [string, string];
16
+ readonly patternColor: "rgba(255, 255, 255, 0.08)";
17
+ readonly textColor: "#f4f8ff";
18
+ readonly secondaryTextColor: "rgba(244, 248, 255, 0.8)";
19
+ };
20
+ readonly jade: {
21
+ readonly name: "翡翠绿";
22
+ readonly baseColor: "#064e3b";
23
+ readonly accentColor: "#a7f3d0";
24
+ readonly gradient: [string, string];
25
+ readonly patternColor: "rgba(255, 255, 255, 0.1)";
26
+ readonly textColor: "#ecfdf5";
27
+ readonly secondaryTextColor: "rgba(236, 253, 245, 0.85)";
28
+ };
29
+ readonly ember: {
30
+ readonly name: "赤焰金";
31
+ readonly baseColor: "#7c2d12";
32
+ readonly accentColor: "#fde68a";
33
+ readonly gradient: [string, string];
34
+ readonly patternColor: "rgba(255, 255, 255, 0.12)";
35
+ readonly textColor: "#fff7ed";
36
+ readonly secondaryTextColor: "rgba(255, 247, 237, 0.8)";
37
+ };
38
+ readonly carbon: {
39
+ readonly name: "碳纤黑";
40
+ readonly baseColor: "#0f172a";
41
+ readonly accentColor: "#facc15";
42
+ readonly gradient: [string, string];
43
+ readonly patternColor: "rgba(250, 204, 21, 0.08)";
44
+ readonly textColor: "#f8fafc";
45
+ readonly secondaryTextColor: "rgba(248, 250, 252, 0.75)";
46
+ };
47
+ };
48
+ export type BankCardBrand = keyof typeof BRAND_PREFIXES;
49
+ export type BankCardProductTier = (typeof CARD_TYPES)[number];
50
+ export type BankCardThemeKey = keyof typeof THEMES;
51
+ export type BankCardChipStyle = (typeof CHIP_STYLES)[number];
52
+ export interface BankCardTheme {
53
+ name: string;
54
+ baseColor: string;
55
+ accentColor: string;
56
+ gradient: [string, string];
57
+ patternColor: string;
58
+ textColor: string;
59
+ secondaryTextColor: string;
60
+ }
61
+ export interface GenerateFakeBankCardOptions {
62
+ bankName?: string;
63
+ holderName?: string;
64
+ brand?: BankCardBrand;
65
+ cardType?: BankCardProductTier;
66
+ cardNumber?: string;
67
+ theme?: BankCardThemeKey;
68
+ validYears?: number;
69
+ }
70
+ export interface GeneratedBankCardProfile {
71
+ bankName: string;
72
+ bankShortName: string;
73
+ cardBrand: BankCardBrand;
74
+ cardType: BankCardProductTier;
75
+ holderName: string;
76
+ cardNumber: string;
77
+ formattedNumber: string;
78
+ issuerCode: string;
79
+ validFrom: string;
80
+ validThru: string;
81
+ tagline: string;
82
+ background: BankCardTheme;
83
+ chipStyle: BankCardChipStyle;
84
+ contactless: boolean;
85
+ }
86
+ export declare function generateFakeBankCard(options?: GenerateFakeBankCardOptions): GeneratedBankCardProfile;
87
+ export {};
@@ -0,0 +1,152 @@
1
+ const BANKS = [
2
+ { name: '中国建设银行', shortName: 'CCB', tagline: '建设现代生活' },
3
+ { name: '中国工商银行', shortName: 'ICBC', tagline: '让金融更贴近你' },
4
+ { name: '招商银行', shortName: 'CMB', tagline: '因您而变' },
5
+ { name: '中国农业银行', shortName: 'ABC', tagline: '服务三农,立足城乡' },
6
+ { name: '中国银行', shortName: 'BOC', tagline: '跨越百年,与您同行' },
7
+ { name: '交通银行', shortName: 'BOCOM', tagline: '财富流动的力量' },
8
+ { name: '兴业银行', shortName: 'CIB', tagline: '真诚 服务 永恒' }
9
+ ];
10
+ const BRAND_PREFIXES = {
11
+ UnionPay: ['62'],
12
+ VISA: ['4'],
13
+ Mastercard: ['51', '52', '53', '54', '55'],
14
+ JCB: ['3528', '3530', '3589'],
15
+ AMEX: ['34', '37']
16
+ };
17
+ const CARD_TYPES = ['金卡', '白金卡', '钻石卡', '经典卡'];
18
+ const CHIP_STYLES = ['classic', 'minimal'];
19
+ const THEMES = {
20
+ sapphire: {
21
+ name: '蓝宝石',
22
+ baseColor: '#0b1f44',
23
+ accentColor: '#7dd3fc',
24
+ gradient: ['#0b3d91', '#051937'],
25
+ patternColor: 'rgba(255, 255, 255, 0.08)',
26
+ textColor: '#f4f8ff',
27
+ secondaryTextColor: 'rgba(244, 248, 255, 0.8)'
28
+ },
29
+ jade: {
30
+ name: '翡翠绿',
31
+ baseColor: '#064e3b',
32
+ accentColor: '#a7f3d0',
33
+ gradient: ['#0f9d58', '#0c5c3c'],
34
+ patternColor: 'rgba(255, 255, 255, 0.1)',
35
+ textColor: '#ecfdf5',
36
+ secondaryTextColor: 'rgba(236, 253, 245, 0.85)'
37
+ },
38
+ ember: {
39
+ name: '赤焰金',
40
+ baseColor: '#7c2d12',
41
+ accentColor: '#fde68a',
42
+ gradient: ['#f97316', '#b45309'],
43
+ patternColor: 'rgba(255, 255, 255, 0.12)',
44
+ textColor: '#fff7ed',
45
+ secondaryTextColor: 'rgba(255, 247, 237, 0.8)'
46
+ },
47
+ carbon: {
48
+ name: '碳纤黑',
49
+ baseColor: '#0f172a',
50
+ accentColor: '#facc15',
51
+ gradient: ['#1f2937', '#0f172a'],
52
+ patternColor: 'rgba(250, 204, 21, 0.08)',
53
+ textColor: '#f8fafc',
54
+ secondaryTextColor: 'rgba(248, 250, 252, 0.75)'
55
+ }
56
+ };
57
+ const HOLDER_SURNAMES = ['李', '王', '张', '刘', '陈', '杨', '赵', '黄', '周', '吴'];
58
+ const HOLDER_GIVEN = ['伟', '芳', '娜', '敏', '静', '丽', '强', '磊', '军', '涛', '鹏', '杰', '秀英', '霞', '平'];
59
+ function randomInt(min, max) {
60
+ return Math.floor(Math.random() * (max - min + 1)) + min;
61
+ }
62
+ function pickOne(items) {
63
+ return items[randomInt(0, items.length - 1)];
64
+ }
65
+ function formatCardNumber(cardNumber) {
66
+ const sanitized = cardNumber.replace(/\D/g, '');
67
+ return sanitized.replace(/(.{4})/g, '$1 ').trim();
68
+ }
69
+ function calcLuhnCheckDigit(payload) {
70
+ let sum = 0;
71
+ const reversed = payload.split('').reverse();
72
+ for (let i = 0; i < reversed.length; i++) {
73
+ let digit = parseInt(reversed[i], 10);
74
+ if (i % 2 === 0) {
75
+ digit *= 2;
76
+ if (digit > 9)
77
+ digit -= 9;
78
+ }
79
+ sum += digit;
80
+ }
81
+ return (10 - (sum % 10)) % 10;
82
+ }
83
+ function generateCardNumberForBrand(brand, desiredLength) {
84
+ const prefixes = BRAND_PREFIXES[brand];
85
+ const prefix = prefixes[randomInt(0, prefixes.length - 1)];
86
+ const remaining = desiredLength - prefix.length - 1;
87
+ let payload = prefix;
88
+ for (let i = 0; i < remaining; i++) {
89
+ payload += randomInt(0, 9).toString();
90
+ }
91
+ const checkDigit = calcLuhnCheckDigit(payload);
92
+ return `${payload}${checkDigit}`;
93
+ }
94
+ function clampCardLength(value) {
95
+ if (value < 14)
96
+ return 14;
97
+ if (value > 19)
98
+ return 19;
99
+ return value;
100
+ }
101
+ function generateRandomHolder() {
102
+ const surname = pickOne(HOLDER_SURNAMES);
103
+ const given = pickOne(HOLDER_GIVEN);
104
+ return `${surname}${given}`;
105
+ }
106
+ function formatValidDate(date) {
107
+ return `${String(date.getFullYear()).slice(-2)}/${String(date.getMonth() + 1).padStart(2, '0')}`;
108
+ }
109
+ export function generateFakeBankCard(options = {}) {
110
+ const bank = options.bankName
111
+ ? BANKS.find(item => item.name === options.bankName) ?? { name: options.bankName, shortName: options.bankName.slice(0, 4).toUpperCase(), tagline: '体验未来金融' }
112
+ : pickOne(BANKS);
113
+ const cardBrand = options.brand ?? pickOne(Object.keys(BRAND_PREFIXES));
114
+ const cardType = options.cardType ?? pickOne(CARD_TYPES);
115
+ const chipStyle = pickOne(CHIP_STYLES);
116
+ const contactless = Math.random() > 0.4;
117
+ const desiredLength = clampCardLength(cardBrand === 'AMEX' ? 15 : 16);
118
+ const rawNumber = options.cardNumber
119
+ ? options.cardNumber.replace(/\D/g, '')
120
+ : generateCardNumberForBrand(cardBrand, desiredLength);
121
+ const cardNumber = rawNumber.padEnd(desiredLength, '0').slice(0, desiredLength);
122
+ const formattedNumber = formatCardNumber(cardNumber);
123
+ const holderName = options.holderName ?? generateRandomHolder();
124
+ const issuerCode = cardNumber.slice(0, 6).padEnd(6, '0');
125
+ const now = new Date();
126
+ const startYear = now.getFullYear() - randomInt(0, 3);
127
+ const startMonth = randomInt(0, 11);
128
+ const validFrom = new Date(startYear, startMonth, 1);
129
+ const validYears = options.validYears ?? (cardType === '经典卡' ? 10 : 5);
130
+ const validThruDate = new Date(validFrom);
131
+ validThruDate.setFullYear(validFrom.getFullYear() + validYears);
132
+ validThruDate.setMonth(validFrom.getMonth());
133
+ const themeKey = options.theme ?? (pickOne(Object.keys(THEMES)));
134
+ const theme = THEMES[themeKey];
135
+ return {
136
+ bankName: bank.name,
137
+ bankShortName: bank.shortName,
138
+ cardBrand,
139
+ cardType,
140
+ holderName,
141
+ cardNumber,
142
+ formattedNumber,
143
+ issuerCode,
144
+ validFrom: formatValidDate(validFrom),
145
+ validThru: formatValidDate(validThruDate),
146
+ tagline: bank.tagline,
147
+ background: theme,
148
+ chipStyle,
149
+ contactless
150
+ };
151
+ }
152
+ //# sourceMappingURL=generateFakeBankCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateFakeBankCard.js","sourceRoot":"","sources":["../../../src/functions/fake/generateFakeBankCard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface GenerateFakeBusinessLicenseOptions {
2
+ companyName?: string;
3
+ province?: string;
4
+ establishDate?: string;
5
+ legalRepresentative?: string;
6
+ }
7
+ export interface GeneratedBusinessLicenseProfile {
8
+ creditCode: string;
9
+ companyName: string;
10
+ companyType: string;
11
+ address: string;
12
+ legalRepresentative: string;
13
+ registeredCapital: string;
14
+ establishDate: string;
15
+ businessTerm: string;
16
+ businessScope: string;
17
+ registrationAuthority: string;
18
+ registrationDate: string;
19
+ province: string;
20
+ }
21
+ export declare function generateFakeBusinessLicense(options?: GenerateFakeBusinessLicenseOptions): GeneratedBusinessLicenseProfile;
@@ -0,0 +1,160 @@
1
+ const COMPANY_TYPES = [
2
+ '有限责任公司',
3
+ '股份有限公司',
4
+ '个人独资企业',
5
+ '合伙企业',
6
+ '个体工商户',
7
+ '外商投资企业',
8
+ '其他'
9
+ ];
10
+ const INDUSTRY_KEYWORDS = [
11
+ '科技', '信息', '网络', '软件', '电子', '通信', '贸易', '商贸', '实业',
12
+ '投资', '管理', '咨询', '服务', '文化', '传媒', '广告', '设计', '教育',
13
+ '医疗', '健康', '环保', '能源', '物流', '运输', '建筑', '装饰', '餐饮',
14
+ '旅游', '金融', '房地产', '制造', '加工', '销售', '零售', '批发'
15
+ ];
16
+ const COMPANY_SUFFIXES = [
17
+ '有限公司', '股份有限公司', '有限责任公司', '集团有限公司',
18
+ '科技股份有限公司', '信息技术有限公司', '贸易有限公司'
19
+ ];
20
+ const SURNAMES = ['张', '王', '李', '刘', '陈', '杨', '黄', '赵', '吴', '周', '徐', '孙', '马', '朱', '胡', '郭', '何', '高', '林', '罗', '郑', '梁', '谢', '宋', '唐', '许', '韩', '冯', '邓', '曹', '彭', '曾', '肖', '田', '董', '袁', '潘', '于', '蒋', '蔡', '余', '杜', '叶', '程', '苏', '魏', '吕', '丁', '任', '沈', '姚', '卢', '姜', '崔', '钟', '谭', '陆', '汪', '范', '金', '石', '廖', '贾', '夏', '韦', '付', '方', '白', '邹', '孟', '熊', '秦', '邱', '江', '尹', '薛', '闫', '段', '雷', '侯', '龙', '史', '陶', '黎', '贺', '顾', '毛', '郝', '龚', '邵', '万', '钱', '严', '覃', '武', '戴', '莫', '孔', '向', '汤'];
21
+ const GIVEN_NAMES = ['伟', '芳', '娜', '秀英', '敏', '静', '丽', '强', '磊', '军', '洋', '勇', '艳', '杰', '娟', '涛', '明', '超', '秀兰', '霞', '平', '刚', '桂英'];
22
+ const PROVINCE_CODES = {
23
+ '北京市': '11',
24
+ '天津市': '12',
25
+ '河北省': '13',
26
+ '山西省': '14',
27
+ '内蒙古自治区': '15',
28
+ '辽宁省': '21',
29
+ '吉林省': '22',
30
+ '黑龙江省': '23',
31
+ '上海市': '31',
32
+ '江苏省': '32',
33
+ '浙江省': '33',
34
+ '安徽省': '34',
35
+ '福建省': '35',
36
+ '江西省': '36',
37
+ '山东省': '37',
38
+ '河南省': '41',
39
+ '湖北省': '42',
40
+ '湖南省': '43',
41
+ '广东省': '44',
42
+ '广西壮族自治区': '45',
43
+ '海南省': '46',
44
+ '重庆市': '50',
45
+ '四川省': '51',
46
+ '贵州省': '52',
47
+ '云南省': '53',
48
+ '西藏自治区': '54',
49
+ '陕西省': '61',
50
+ '甘肃省': '62',
51
+ '青海省': '63',
52
+ '宁夏回族自治区': '64',
53
+ '新疆维吾尔自治区': '65'
54
+ };
55
+ function randomInt(min, max) {
56
+ return Math.floor(Math.random() * (max - min + 1)) + min;
57
+ }
58
+ function randomChoice(array) {
59
+ return array[randomInt(0, array.length - 1)];
60
+ }
61
+ function randomString(length, chars = '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ') {
62
+ let result = '';
63
+ for (let i = 0; i < length; i++) {
64
+ result += randomChoice(chars.split(''));
65
+ }
66
+ return result;
67
+ }
68
+ function randomDate(startYear, endYear) {
69
+ const year = randomInt(startYear, endYear);
70
+ const month = randomInt(1, 12);
71
+ const day = randomInt(1, 28);
72
+ return `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`;
73
+ }
74
+ function formatDateChinese(dateStr) {
75
+ const [year, month, day] = dateStr.split('-');
76
+ return `${year}年${month}月${day}日`;
77
+ }
78
+ function calculateCreditCodeCheckDigit(code17) {
79
+ const weights = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];
80
+ const checkCodes = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'T', 'U', 'W', 'X', 'Y'];
81
+ let sum = 0;
82
+ for (let i = 0; i < 17; i++) {
83
+ const char = code17[i];
84
+ let value;
85
+ if (char >= '0' && char <= '9') {
86
+ value = parseInt(char);
87
+ }
88
+ else {
89
+ value = char.charCodeAt(0) - 55;
90
+ }
91
+ sum += value * weights[i];
92
+ }
93
+ const remainder = sum % 31;
94
+ return checkCodes[remainder];
95
+ }
96
+ export function generateFakeBusinessLicense(options = {}) {
97
+ const provinces = Object.keys(PROVINCE_CODES);
98
+ const province = options.province || randomChoice(provinces);
99
+ const provinceCode = PROVINCE_CODES[province] || '11';
100
+ const managementCode = '9';
101
+ const orgTypeCode = '1';
102
+ const areaCode = provinceCode + randomString(4, '0123456789');
103
+ const subjectCode = randomString(9, '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ');
104
+ const code17 = managementCode + orgTypeCode + areaCode + subjectCode;
105
+ const checkDigit = calculateCreditCodeCheckDigit(code17);
106
+ const creditCode = code17 + checkDigit;
107
+ let companyName;
108
+ if (options.companyName) {
109
+ companyName = options.companyName;
110
+ }
111
+ else {
112
+ const industry = randomChoice(INDUSTRY_KEYWORDS);
113
+ const suffix = randomChoice(COMPANY_SUFFIXES);
114
+ const cityName = province.replace(/省|市|自治区|特别行政区/g, '');
115
+ const randomNum = randomInt(1, 999);
116
+ companyName = `${cityName}${industry}${randomNum > 1 ? randomNum : ''}${suffix}`;
117
+ }
118
+ const companyType = randomChoice(COMPANY_TYPES);
119
+ const cityName = province.replace(/省|市|自治区|特别行政区/g, '');
120
+ const address = `${province}${cityName}${randomChoice(['市', '县'])}${randomChoice(['区', '县'])}${randomChoice(['XX路', 'XX街', 'XX大道', 'XX科技园'])}${randomInt(1, 999)}号${randomInt(1, 20)}层${randomInt(100, 999)}室`;
121
+ const legalRepresentative = options.legalRepresentative || `${randomChoice(SURNAMES)}${randomChoice(GIVEN_NAMES)}`;
122
+ const capitalAmount = randomInt(10, 10000);
123
+ const registeredCapital = `${capitalAmount}万元`;
124
+ const currentYear = new Date().getFullYear();
125
+ const establishDate = options.establishDate || randomDate(2000, currentYear - 2);
126
+ const registrationDate = randomDate(parseInt(establishDate.split('-')[0]), Math.min(parseInt(establishDate.split('-')[0]) + 1, currentYear));
127
+ const establishYear = parseInt(establishDate.split('-')[0]);
128
+ const businessTerm = establishYear < 2020 ? `${formatDateChinese(establishDate)}至${establishYear + 20}年${establishDate.split('-')[1]}月${establishDate.split('-')[2]}日` : '长期';
129
+ const scopeKeywords = [
130
+ '技术开发', '技术咨询', '技术服务', '技术转让', '销售', '代理', '进出口',
131
+ '生产', '加工', '制造', '设计', '安装', '维修', '租赁', '广告', '咨询',
132
+ '企业管理', '投资管理', '资产管理', '市场调查', '会议服务', '展览展示',
133
+ '文化艺术交流', '计算机系统服务', '软件开发', '网络技术服务', '电子商务'
134
+ ];
135
+ const scopeCount = randomInt(3, 8);
136
+ const selectedScopes = [];
137
+ for (let i = 0; i < scopeCount; i++) {
138
+ const keyword = randomChoice(scopeKeywords);
139
+ if (!selectedScopes.includes(keyword)) {
140
+ selectedScopes.push(keyword);
141
+ }
142
+ }
143
+ const businessScope = selectedScopes.join(';') + '。';
144
+ const registrationAuthority = `${province.replace(/省|市|自治区|特别行政区/g, '')}${randomChoice(['市', '区'])}市场监督管理局`;
145
+ return {
146
+ creditCode,
147
+ companyName,
148
+ companyType,
149
+ address,
150
+ legalRepresentative,
151
+ registeredCapital,
152
+ establishDate: formatDateChinese(establishDate),
153
+ businessTerm,
154
+ businessScope,
155
+ registrationAuthority,
156
+ registrationDate: formatDateChinese(registrationDate),
157
+ province
158
+ };
159
+ }
160
+ //# sourceMappingURL=generateFakeBusinessLicense.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateFakeBusinessLicense.js","sourceRoot":"","sources":["../../../src/functions/fake/generateFakeBusinessLicense.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface GenerateFakeDrivingLicenseOptions {
2
+ plateNumber?: string;
3
+ owner?: string;
4
+ province?: string;
5
+ registerDate?: string;
6
+ }
7
+ export interface GeneratedDrivingLicenseProfile {
8
+ plateNumber: string;
9
+ vehicleType: string;
10
+ owner: string;
11
+ address: string;
12
+ useNature: string;
13
+ engineNumber: string;
14
+ vin: string;
15
+ registerDate: string;
16
+ issueDate: string;
17
+ fileNumber: string;
18
+ approvedPassengers: number;
19
+ totalMass: number;
20
+ curbWeight: number;
21
+ approvedLoad: number;
22
+ dimensions: string;
23
+ approvedTowingMass: number;
24
+ cabPassengers: number;
25
+ cargoDimensions: string;
26
+ rearSpringLeaves: number;
27
+ manufactureDate: string;
28
+ issueAuthority: string;
29
+ province: string;
30
+ }
31
+ export declare function generateFakeDrivingLicense(options?: GenerateFakeDrivingLicenseOptions): GeneratedDrivingLicenseProfile;