apifox-mock-generator 1.0.0 → 1.2.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 (127) hide show
  1. package/CHANGELOG.md +129 -1
  2. package/README.md +195 -63
  3. package/dist/package.json +1 -1
  4. package/dist/src/core/apifox-client.d.ts.map +1 -1
  5. package/dist/src/core/apifox-client.js +16 -23
  6. package/dist/src/core/apifox-client.js.map +1 -1
  7. package/dist/src/core/endpoint-filter.d.ts.map +1 -1
  8. package/dist/src/core/endpoint-filter.js +35 -5
  9. package/dist/src/core/endpoint-filter.js.map +1 -1
  10. package/dist/src/core/openapi-converter.d.ts.map +1 -1
  11. package/dist/src/core/openapi-converter.js +3 -2
  12. package/dist/src/core/openapi-converter.js.map +1 -1
  13. package/dist/src/generators/mock-generator.d.ts +2 -2
  14. package/dist/src/generators/mock-generator.d.ts.map +1 -1
  15. package/dist/src/generators/mock-generator.js +37 -9
  16. package/dist/src/generators/mock-generator.js.map +1 -1
  17. package/dist/src/generators/templates/file-architecture.d.ts +10 -0
  18. package/dist/src/generators/templates/file-architecture.d.ts.map +1 -0
  19. package/dist/src/generators/templates/file-architecture.js +18 -0
  20. package/dist/src/generators/templates/file-architecture.js.map +1 -0
  21. package/dist/src/generators/templates/mock-template.d.ts +2 -2
  22. package/dist/src/generators/templates/mock-template.d.ts.map +1 -1
  23. package/dist/src/generators/templates/mock-template.js +196 -103
  24. package/dist/src/generators/templates/mock-template.js.map +1 -1
  25. package/dist/src/generators/templates/smart-mock-rules.d.ts +47 -0
  26. package/dist/src/generators/templates/smart-mock-rules.d.ts.map +1 -0
  27. package/dist/src/generators/templates/smart-mock-rules.js +643 -0
  28. package/dist/src/generators/templates/smart-mock-rules.js.map +1 -0
  29. package/dist/src/generators/templates/type-template.d.ts +2 -14
  30. package/dist/src/generators/templates/type-template.d.ts.map +1 -1
  31. package/dist/src/generators/templates/type-template.js +279 -147
  32. package/dist/src/generators/templates/type-template.js.map +1 -1
  33. package/dist/src/generators/type-generator.d.ts.map +1 -1
  34. package/dist/src/generators/type-generator.js +2 -2
  35. package/dist/src/generators/type-generator.js.map +1 -1
  36. package/dist/src/types/index.d.ts +6 -4
  37. package/dist/src/types/index.d.ts.map +1 -1
  38. package/dist/src/types/mock/list.d.ts +12 -0
  39. package/dist/src/types/mock/list.d.ts.map +1 -0
  40. package/dist/src/types/mock/list.js +4 -0
  41. package/dist/src/types/mock/list.js.map +1 -0
  42. package/dist/src/types/mock/test.d.ts +12 -0
  43. package/dist/src/types/mock/test.d.ts.map +1 -0
  44. package/dist/src/types/mock/test.js +4 -0
  45. package/dist/src/types/mock/test.js.map +1 -0
  46. package/dist/src/types/mock/v1/auth/captcha.d.ts +18 -0
  47. package/dist/src/types/mock/v1/auth/captcha.d.ts.map +1 -0
  48. package/dist/src/types/mock/v1/auth/captcha.js +4 -0
  49. package/dist/src/types/mock/v1/auth/captcha.js.map +1 -0
  50. package/dist/src/types/mock/v1/auth/login/tenant.d.ts +26 -0
  51. package/dist/src/types/mock/v1/auth/login/tenant.d.ts.map +1 -0
  52. package/dist/src/types/mock/v1/auth/login/tenant.js +4 -0
  53. package/dist/src/types/mock/v1/auth/login/tenant.js.map +1 -0
  54. package/dist/src/types/mock/v1/auth/login/username.d.ts +40 -0
  55. package/dist/src/types/mock/v1/auth/login/username.d.ts.map +1 -0
  56. package/dist/src/types/mock/v1/auth/login/username.js +4 -0
  57. package/dist/src/types/mock/v1/auth/login/username.js.map +1 -0
  58. package/dist/src/types/mock/v1/auth/logout.d.ts +12 -0
  59. package/dist/src/types/mock/v1/auth/logout.d.ts.map +1 -0
  60. package/dist/src/types/mock/v1/auth/logout.js +4 -0
  61. package/dist/src/types/mock/v1/auth/logout.js.map +1 -0
  62. package/dist/src/types/mock/v1/role/list.d.ts +36 -0
  63. package/dist/src/types/mock/v1/role/list.d.ts.map +1 -0
  64. package/dist/src/types/mock/v1/role/list.js +4 -0
  65. package/dist/src/types/mock/v1/role/list.js.map +1 -0
  66. package/dist/src/types/mock/v1/role/permissions.d.ts +24 -0
  67. package/dist/src/types/mock/v1/role/permissions.d.ts.map +1 -0
  68. package/dist/src/types/mock/v1/role/permissions.js +4 -0
  69. package/dist/src/types/mock/v1/role/permissions.js.map +1 -0
  70. package/dist/src/types/mock/v1/role.d.ts +91 -0
  71. package/dist/src/types/mock/v1/role.d.ts.map +1 -0
  72. package/dist/src/types/mock/v1/role.js +4 -0
  73. package/dist/src/types/mock/v1/role.js.map +1 -0
  74. package/dist/src/types/mock/v1/tenant/permissions.d.ts +33 -0
  75. package/dist/src/types/mock/v1/tenant/permissions.d.ts.map +1 -0
  76. package/dist/src/types/mock/v1/tenant/permissions.js +4 -0
  77. package/dist/src/types/mock/v1/tenant/permissions.js.map +1 -0
  78. package/dist/src/types/mock/v1/tenant/user/disabled.d.ts +24 -0
  79. package/dist/src/types/mock/v1/tenant/user/disabled.d.ts.map +1 -0
  80. package/dist/src/types/mock/v1/tenant/user/disabled.js +4 -0
  81. package/dist/src/types/mock/v1/tenant/user/disabled.js.map +1 -0
  82. package/dist/src/types/mock/v1/tenant/user/list.d.ts +46 -0
  83. package/dist/src/types/mock/v1/tenant/user/list.d.ts.map +1 -0
  84. package/dist/src/types/mock/v1/tenant/user/list.js +4 -0
  85. package/dist/src/types/mock/v1/tenant/user/list.js.map +1 -0
  86. package/dist/src/types/mock/v1/tenant/user/role.d.ts +24 -0
  87. package/dist/src/types/mock/v1/tenant/user/role.d.ts.map +1 -0
  88. package/dist/src/types/mock/v1/tenant/user/role.js +4 -0
  89. package/dist/src/types/mock/v1/tenant/user/role.js.map +1 -0
  90. package/dist/src/types/mock/v1/tenant/user/unlink.d.ts +12 -0
  91. package/dist/src/types/mock/v1/tenant/user/unlink.d.ts.map +1 -0
  92. package/dist/src/types/mock/v1/tenant/user/unlink.js +4 -0
  93. package/dist/src/types/mock/v1/tenant/user/unlink.js.map +1 -0
  94. package/dist/src/types/mock/v1/tenant/user.d.ts +36 -0
  95. package/dist/src/types/mock/v1/tenant/user.d.ts.map +1 -0
  96. package/dist/src/types/mock/v1/tenant/user.js +4 -0
  97. package/dist/src/types/mock/v1/tenant/user.js.map +1 -0
  98. package/dist/src/types/mock/v1/user/avatar.d.ts +22 -0
  99. package/dist/src/types/mock/v1/user/avatar.d.ts.map +1 -0
  100. package/dist/src/types/mock/v1/user/avatar.js +4 -0
  101. package/dist/src/types/mock/v1/user/avatar.js.map +1 -0
  102. package/dist/src/types/mock/v1/user/info.d.ts +36 -0
  103. package/dist/src/types/mock/v1/user/info.d.ts.map +1 -0
  104. package/dist/src/types/mock/v1/user/info.js +4 -0
  105. package/dist/src/types/mock/v1/user/info.js.map +1 -0
  106. package/dist/src/types/mock/v1/user/password.d.ts +24 -0
  107. package/dist/src/types/mock/v1/user/password.d.ts.map +1 -0
  108. package/dist/src/types/mock/v1/user/password.js +4 -0
  109. package/dist/src/types/mock/v1/user/password.js.map +1 -0
  110. package/dist/src/types/mock/v1/user/permissions.d.ts +33 -0
  111. package/dist/src/types/mock/v1/user/permissions.d.ts.map +1 -0
  112. package/dist/src/types/mock/v1/user/permissions.js +4 -0
  113. package/dist/src/types/mock/v1/user/permissions.js.map +1 -0
  114. package/dist/src/types/mock/v1/user/self.d.ts +22 -0
  115. package/dist/src/types/mock/v1/user/self.d.ts.map +1 -0
  116. package/dist/src/types/mock/v1/user/self.js +4 -0
  117. package/dist/src/types/mock/v1/user/self.js.map +1 -0
  118. package/dist/src/types/mock/v1/user.d.ts +34 -0
  119. package/dist/src/types/mock/v1/user.d.ts.map +1 -0
  120. package/dist/src/types/mock/v1/user.js +4 -0
  121. package/dist/src/types/mock/v1/user.js.map +1 -0
  122. package/dist/src/utils/code-formatter.js +1 -1
  123. package/dist/src/utils/code-formatter.js.map +1 -1
  124. package/dist/src/utils/type-mapping.d.ts.map +1 -1
  125. package/dist/src/utils/type-mapping.js +7 -1
  126. package/dist/src/utils/type-mapping.js.map +1 -1
  127. package/package.json +60 -60
@@ -0,0 +1,643 @@
1
+ /**
2
+ * Apifox 智能 Mock 规则引擎
3
+ * 根据字段名称、类型、格式等信息,智能推断合适的 Mock 数据
4
+ */
5
+ /**
6
+ * 字符串类型字段的智能识别规则
7
+ */
8
+ const STRING_FIELD_RULES = [
9
+ // 身份标识类
10
+ {
11
+ patterns: ['id', '_id', 'uuid', 'guid'],
12
+ mockTemplate: '@guid',
13
+ priority: 100,
14
+ description: '唯一标识符'
15
+ },
16
+ // 认证和安全类
17
+ {
18
+ patterns: ['token', 'access_token', 'refresh_token', 'jwt', 'auth_token'],
19
+ mockTemplate: '@string("lower", 32)',
20
+ priority: 90,
21
+ description: '令牌'
22
+ },
23
+ {
24
+ patterns: ['password', 'pwd', 'pass'],
25
+ mockTemplate: '@string("mixed", 12)',
26
+ priority: 90,
27
+ description: '密码'
28
+ },
29
+ {
30
+ patterns: ['secret', 'api_key', 'apikey'],
31
+ mockTemplate: '@string("lower", 40)',
32
+ priority: 90,
33
+ description: '密钥'
34
+ },
35
+ // 用户信息类
36
+ {
37
+ patterns: ['email', 'mail', 'e_mail'],
38
+ mockTemplate: '@email',
39
+ priority: 85,
40
+ description: '邮箱地址'
41
+ },
42
+ {
43
+ patterns: ['phone', 'mobile', 'telephone', 'tel', 'cellphone'],
44
+ mockTemplate: '/^1[3-9]\\d{9}$/',
45
+ priority: 85,
46
+ description: '手机号'
47
+ },
48
+ {
49
+ patterns: ['username', 'user_name', 'account', 'loginname'],
50
+ mockTemplate: '@name',
51
+ priority: 80,
52
+ description: '用户名'
53
+ },
54
+ {
55
+ patterns: ['name', 'realname', 'real_name', 'fullname', 'full_name'],
56
+ mockTemplate: '@cname',
57
+ priority: 75,
58
+ description: '姓名'
59
+ },
60
+ {
61
+ patterns: ['nickname', 'nick_name', 'displayname', 'display_name'],
62
+ mockTemplate: '@cname',
63
+ priority: 75,
64
+ description: '昵称'
65
+ },
66
+ // 地址和地理信息
67
+ {
68
+ patterns: ['address', 'addr', 'location'],
69
+ mockTemplate: '@county(true)',
70
+ priority: 80,
71
+ description: '详细地址'
72
+ },
73
+ {
74
+ patterns: ['province', 'prov'],
75
+ mockTemplate: '@province',
76
+ priority: 80,
77
+ description: '省份'
78
+ },
79
+ {
80
+ patterns: ['city'],
81
+ mockTemplate: '@city',
82
+ priority: 80,
83
+ description: '城市'
84
+ },
85
+ {
86
+ patterns: ['county', 'district', 'area'],
87
+ mockTemplate: '@county',
88
+ priority: 80,
89
+ description: '区县'
90
+ },
91
+ {
92
+ patterns: ['zip', 'zipcode', 'zip_code', 'postcode', 'postal_code'],
93
+ mockTemplate: '@zip',
94
+ priority: 80,
95
+ description: '邮编'
96
+ },
97
+ // 网络和链接
98
+ {
99
+ patterns: ['url', 'link', 'href', 'website', 'web_url'],
100
+ mockTemplate: '@url',
101
+ priority: 85,
102
+ description: '链接地址'
103
+ },
104
+ {
105
+ patterns: ['domain'],
106
+ mockTemplate: '@domain',
107
+ priority: 85,
108
+ description: '域名'
109
+ },
110
+ {
111
+ patterns: ['ip', 'ipaddress', 'ip_address'],
112
+ mockTemplate: '@ip',
113
+ priority: 85,
114
+ description: 'IP地址'
115
+ },
116
+ // 图片和媒体
117
+ {
118
+ patterns: ['avatar', 'headimg', 'head_img', 'profile_image', 'profile_pic'],
119
+ mockTemplate: '@image("200x200", "@cname")',
120
+ priority: 85,
121
+ description: '头像'
122
+ },
123
+ {
124
+ patterns: ['image', 'img', 'picture', 'pic', 'photo', 'thumbnail', 'cover'],
125
+ mockTemplate: '@image("400x300")',
126
+ priority: 80,
127
+ description: '图片'
128
+ },
129
+ {
130
+ patterns: ['video', 'video_url'],
131
+ mockTemplate: '@url("http", "video.example.com")',
132
+ priority: 80,
133
+ description: '视频'
134
+ },
135
+ // 时间日期类
136
+ {
137
+ patterns: ['created_at', 'createdat', 'create_time', 'createtime', 'gmt_create'],
138
+ mockTemplate: '@datetime',
139
+ priority: 85,
140
+ description: '创建时间'
141
+ },
142
+ {
143
+ patterns: ['updated_at', 'updatedat', 'update_time', 'updatetime', 'gmt_modified', 'modify_time'],
144
+ mockTemplate: '@datetime',
145
+ priority: 85,
146
+ description: '更新时间'
147
+ },
148
+ {
149
+ patterns: ['datetime', 'date_time', 'timestamp'],
150
+ mockTemplate: '@datetime',
151
+ priority: 80,
152
+ description: '日期时间'
153
+ },
154
+ {
155
+ patterns: ['date', 'day'],
156
+ mockTemplate: '@date',
157
+ priority: 80,
158
+ description: '日期'
159
+ },
160
+ {
161
+ patterns: ['time'],
162
+ mockTemplate: '@time',
163
+ priority: 80,
164
+ description: '时间'
165
+ },
166
+ {
167
+ patterns: ['year'],
168
+ mockTemplate: '@integer(2000, 2030)',
169
+ priority: 80,
170
+ description: '年份'
171
+ },
172
+ {
173
+ patterns: ['month'],
174
+ mockTemplate: '@integer(1, 12)',
175
+ priority: 80,
176
+ description: '月份'
177
+ },
178
+ // 内容和文本
179
+ {
180
+ patterns: ['title', 'subject', 'headline'],
181
+ mockTemplate: '@ctitle(5, 15)',
182
+ priority: 75,
183
+ description: '标题'
184
+ },
185
+ {
186
+ patterns: ['content', 'body', 'text'],
187
+ mockTemplate: '@cparagraph(3, 7)',
188
+ priority: 75,
189
+ description: '内容'
190
+ },
191
+ {
192
+ patterns: ['desc', 'description', 'summary', 'intro', 'introduction'],
193
+ mockTemplate: '@cparagraph(1, 3)',
194
+ priority: 75,
195
+ description: '描述'
196
+ },
197
+ {
198
+ patterns: ['msg', 'message', 'notice', 'tip'],
199
+ mockTemplate: '@csentence(5, 15)',
200
+ priority: 75,
201
+ description: '消息'
202
+ },
203
+ {
204
+ patterns: ['remark', 'comment', 'note'],
205
+ mockTemplate: '@csentence(10, 30)',
206
+ priority: 75,
207
+ description: '备注'
208
+ },
209
+ // 业务相关
210
+ {
211
+ patterns: ['company', 'company_name', 'organization', 'org_name'],
212
+ mockTemplate: '@ctitle(4, 10) + "有限公司"',
213
+ priority: 80,
214
+ description: '公司名称'
215
+ },
216
+ {
217
+ patterns: ['bank', 'bank_name'],
218
+ mockTemplate: '@pick(["中国银行", "工商银行", "建设银行", "农业银行", "招商银行"])',
219
+ priority: 80,
220
+ description: '银行名称'
221
+ },
222
+ {
223
+ patterns: ['bank_account', 'card_no', 'card_number', 'account_no'],
224
+ mockTemplate: '/^\\d{16,19}$/',
225
+ priority: 80,
226
+ description: '银行卡号'
227
+ },
228
+ {
229
+ patterns: ['idcard', 'id_card', 'id_number', 'identity'],
230
+ mockTemplate: '@id',
231
+ priority: 85,
232
+ description: '身份证号'
233
+ },
234
+ // 状态和代码
235
+ {
236
+ patterns: ['code', 'status_code', 'error_code', 'err_code'],
237
+ mockTemplate: '@pick(["0", "200", "SUCCESS"])',
238
+ priority: 70,
239
+ description: '状态码'
240
+ },
241
+ {
242
+ patterns: ['status', 'state'],
243
+ mockTemplate: '@pick(["active", "inactive", "pending"])',
244
+ priority: 70,
245
+ description: '状态'
246
+ },
247
+ {
248
+ patterns: ['type', 'category', 'kind'],
249
+ mockTemplate: '@integer(1, 5)',
250
+ priority: 60,
251
+ description: '类型'
252
+ },
253
+ // 颜色
254
+ {
255
+ patterns: ['color', 'colour'],
256
+ mockTemplate: '@color',
257
+ priority: 80,
258
+ description: '颜色'
259
+ },
260
+ // 标签
261
+ {
262
+ patterns: ['tag', 'tags', 'label', 'labels'],
263
+ mockTemplate: '@cword(2, 6)',
264
+ priority: 70,
265
+ description: '标签'
266
+ }
267
+ ];
268
+ /**
269
+ * 数字类型字段的智能识别规则
270
+ */
271
+ const NUMBER_FIELD_RULES = [
272
+ // 状态码
273
+ {
274
+ patterns: ['code', 'status_code', 'error_code', 'err_code', 'ret_code', 'return_code'],
275
+ mockTemplate: '0',
276
+ priority: 90,
277
+ description: '状态码(通常0表示成功)'
278
+ },
279
+ {
280
+ patterns: ['status', 'state'],
281
+ mockTemplate: '@integer(0, 2)',
282
+ priority: 85,
283
+ description: '状态值'
284
+ },
285
+ // 标识符
286
+ {
287
+ patterns: ['id', '_id', 'uid', 'user_id', 'userid'],
288
+ mockTemplate: '@integer(10000, 99999)',
289
+ priority: 90,
290
+ description: '数字ID'
291
+ },
292
+ // 计数相关
293
+ {
294
+ patterns: ['count', 'total', 'sum', 'number', 'num'],
295
+ mockTemplate: '@integer(0, 1000)',
296
+ priority: 80,
297
+ description: '计数'
298
+ },
299
+ {
300
+ patterns: ['views', 'view_count', 'read_count', 'reads', 'pv'],
301
+ mockTemplate: '@integer(100, 10000)',
302
+ priority: 85,
303
+ description: '浏览量'
304
+ },
305
+ {
306
+ patterns: ['likes', 'like_count', 'favor_count', 'praise_count'],
307
+ mockTemplate: '@integer(0, 1000)',
308
+ priority: 85,
309
+ description: '点赞数'
310
+ },
311
+ {
312
+ patterns: ['comments', 'comment_count', 'reply_count'],
313
+ mockTemplate: '@integer(0, 500)',
314
+ priority: 85,
315
+ description: '评论数'
316
+ },
317
+ {
318
+ patterns: ['followers', 'follower_count', 'fans', 'fans_count'],
319
+ mockTemplate: '@integer(0, 50000)',
320
+ priority: 85,
321
+ description: '粉丝数'
322
+ },
323
+ // 分页相关
324
+ {
325
+ patterns: ['page', 'page_num', 'pagenum', 'current_page', 'current'],
326
+ mockTemplate: '@integer(1, 10)',
327
+ priority: 90,
328
+ description: '页码'
329
+ },
330
+ {
331
+ patterns: ['size', 'page_size', 'pagesize', 'limit', 'per_page'],
332
+ mockTemplate: '@integer(10, 50)',
333
+ priority: 90,
334
+ description: '每页数量'
335
+ },
336
+ {
337
+ patterns: ['total_pages', 'pages'],
338
+ mockTemplate: '@integer(1, 100)',
339
+ priority: 85,
340
+ description: '总页数'
341
+ },
342
+ // 金额和价格
343
+ {
344
+ patterns: ['price', 'amount', 'money', 'cost', 'fee'],
345
+ mockTemplate: '@float(0, 10000, 2, 2)',
346
+ priority: 90,
347
+ description: '金额'
348
+ },
349
+ {
350
+ patterns: ['balance', 'account_balance'],
351
+ mockTemplate: '@float(0, 100000, 2, 2)',
352
+ priority: 90,
353
+ description: '余额'
354
+ },
355
+ {
356
+ patterns: ['salary', 'income', 'wage'],
357
+ mockTemplate: '@integer(3000, 30000)',
358
+ priority: 85,
359
+ description: '薪资'
360
+ },
361
+ {
362
+ patterns: ['discount', 'rate'],
363
+ mockTemplate: '@float(0, 1, 2, 2)',
364
+ priority: 85,
365
+ description: '折扣率'
366
+ },
367
+ // 年龄和时间
368
+ {
369
+ patterns: ['age'],
370
+ mockTemplate: '@integer(18, 60)',
371
+ priority: 90,
372
+ description: '年龄'
373
+ },
374
+ {
375
+ patterns: ['year'],
376
+ mockTemplate: '@integer(2000, 2030)',
377
+ priority: 85,
378
+ description: '年份'
379
+ },
380
+ {
381
+ patterns: ['month'],
382
+ mockTemplate: '@integer(1, 12)',
383
+ priority: 85,
384
+ description: '月份'
385
+ },
386
+ {
387
+ patterns: ['day'],
388
+ mockTemplate: '@integer(1, 31)',
389
+ priority: 85,
390
+ description: '日期'
391
+ },
392
+ {
393
+ patterns: ['hour'],
394
+ mockTemplate: '@integer(0, 23)',
395
+ priority: 85,
396
+ description: '小时'
397
+ },
398
+ {
399
+ patterns: ['minute'],
400
+ mockTemplate: '@integer(0, 59)',
401
+ priority: 85,
402
+ description: '分钟'
403
+ },
404
+ {
405
+ patterns: ['second'],
406
+ mockTemplate: '@integer(0, 59)',
407
+ priority: 85,
408
+ description: '秒'
409
+ },
410
+ // 尺寸和度量
411
+ {
412
+ patterns: ['width', 'height', 'length'],
413
+ mockTemplate: '@integer(100, 2000)',
414
+ priority: 80,
415
+ description: '尺寸'
416
+ },
417
+ {
418
+ patterns: ['weight'],
419
+ mockTemplate: '@float(50, 100, 2, 2)',
420
+ priority: 80,
421
+ description: '重量'
422
+ },
423
+ {
424
+ patterns: ['quantity', 'qty', 'stock'],
425
+ mockTemplate: '@integer(0, 1000)',
426
+ priority: 80,
427
+ description: '数量'
428
+ },
429
+ // 百分比和比率
430
+ {
431
+ patterns: ['percent', 'percentage', 'ratio'],
432
+ mockTemplate: '@integer(0, 100)',
433
+ priority: 85,
434
+ description: '百分比'
435
+ },
436
+ {
437
+ patterns: ['score', 'rating', 'grade'],
438
+ mockTemplate: '@float(0, 5, 1, 1)',
439
+ priority: 85,
440
+ description: '评分'
441
+ },
442
+ // 排序和索引
443
+ {
444
+ patterns: ['index', 'order', 'sort', 'position', 'rank', 'seq', 'sequence'],
445
+ mockTemplate: '@integer(1, 100)',
446
+ priority: 80,
447
+ description: '序号'
448
+ },
449
+ {
450
+ patterns: ['level', 'tier', 'grade_level'],
451
+ mockTemplate: '@integer(1, 10)',
452
+ priority: 80,
453
+ description: '等级'
454
+ },
455
+ // 版本
456
+ {
457
+ patterns: ['version', 'ver'],
458
+ mockTemplate: '@integer(1, 10)',
459
+ priority: 80,
460
+ description: '版本号'
461
+ }
462
+ ];
463
+ /**
464
+ * 智能匹配字段名,返回对应的 Mock 模板
465
+ */
466
+ export function matchFieldPattern(fieldName, fieldType, rules) {
467
+ if (!fieldName)
468
+ return null;
469
+ const lowerFieldName = fieldName.toLowerCase();
470
+ // 按优先级排序规则
471
+ const sortedRules = [...rules].sort((a, b) => b.priority - a.priority);
472
+ // 查找匹配的规则
473
+ for (const rule of sortedRules) {
474
+ for (const pattern of rule.patterns) {
475
+ // 完全匹配
476
+ if (lowerFieldName === pattern.toLowerCase()) {
477
+ return rule.mockTemplate;
478
+ }
479
+ // 包含匹配(字段名包含模式,或以模式开头/结尾)
480
+ if (lowerFieldName.includes(pattern.toLowerCase()) ||
481
+ lowerFieldName.startsWith(pattern.toLowerCase() + '_') ||
482
+ lowerFieldName.endsWith('_' + pattern.toLowerCase())) {
483
+ return rule.mockTemplate;
484
+ }
485
+ }
486
+ }
487
+ return null;
488
+ }
489
+ /**
490
+ * 为字符串字段生成智能 Mock 值
491
+ */
492
+ export function generateSmartStringMock(schema, fieldName) {
493
+ // 1. 优先使用枚举值
494
+ if (schema.enum && schema.enum.length > 0) {
495
+ const enumValues = schema.enum.map((v) => `"${v}"`).join(', ');
496
+ return `@pick([${enumValues}])`;
497
+ }
498
+ // 2. 根据 format 生成
499
+ if (schema.format) {
500
+ switch (schema.format) {
501
+ case 'date-time':
502
+ return '@datetime';
503
+ case 'date':
504
+ return '@date';
505
+ case 'time':
506
+ return '@time';
507
+ case 'email':
508
+ return '@email';
509
+ case 'uri':
510
+ case 'url':
511
+ return '@url';
512
+ case 'uuid':
513
+ return '@guid';
514
+ case 'ipv4':
515
+ return '@ip';
516
+ default:
517
+ break;
518
+ }
519
+ }
520
+ // 3. 根据字段名智能匹配
521
+ if (fieldName) {
522
+ const matchedTemplate = matchFieldPattern(fieldName, 'string', STRING_FIELD_RULES);
523
+ if (matchedTemplate) {
524
+ return matchedTemplate;
525
+ }
526
+ }
527
+ // 4. 使用示例值
528
+ if (schema.example) {
529
+ return `"${schema.example}"`;
530
+ }
531
+ // 5. 根据字符串长度限制
532
+ if (schema.minLength !== undefined || schema.maxLength !== undefined) {
533
+ const minLen = schema.minLength || 5;
534
+ const maxLen = schema.maxLength || Math.max(minLen + 5, 10);
535
+ return `@string(${minLen}, ${maxLen})`;
536
+ }
537
+ // 6. 默认规则:中文词组
538
+ return '@cword(3, 8)';
539
+ }
540
+ /**
541
+ * 为数字字段生成智能 Mock 值
542
+ */
543
+ export function generateSmartNumberMock(schema, fieldName) {
544
+ const isInteger = schema.type === 'integer';
545
+ // 1. 优先使用枚举值
546
+ if (schema.enum && schema.enum.length > 0) {
547
+ const enumValues = schema.enum.join(', ');
548
+ return `@pick([${enumValues}])`;
549
+ }
550
+ // 2. 根据字段名智能匹配
551
+ if (fieldName) {
552
+ const matchedTemplate = matchFieldPattern(fieldName, isInteger ? 'integer' : 'number', NUMBER_FIELD_RULES);
553
+ if (matchedTemplate) {
554
+ return matchedTemplate;
555
+ }
556
+ }
557
+ // 3. 根据范围生成
558
+ const min = schema.minimum ?? (isInteger ? 0 : 0);
559
+ const max = schema.maximum ?? (isInteger ? 100 : 100);
560
+ if (schema.minimum !== undefined || schema.maximum !== undefined) {
561
+ if (isInteger) {
562
+ return `@integer(${min}, ${max})`;
563
+ }
564
+ else {
565
+ return `@float(${min}, ${max}, 2, 2)`;
566
+ }
567
+ }
568
+ // 4. 使用示例值
569
+ if (schema.example !== undefined) {
570
+ return schema.example.toString();
571
+ }
572
+ // 5. 默认规则
573
+ if (isInteger) {
574
+ return '@integer(1, 100)';
575
+ }
576
+ else {
577
+ return '@float(0, 100, 2, 2)';
578
+ }
579
+ }
580
+ /**
581
+ * 为布尔字段生成智能 Mock 值
582
+ */
583
+ export function generateSmartBooleanMock(schema, fieldName) {
584
+ // 如果字段名包含特定关键词,返回倾向性的值
585
+ if (fieldName) {
586
+ const lowerName = fieldName.toLowerCase();
587
+ // 这些字段倾向于返回 true
588
+ if (lowerName.includes('is') || lowerName.includes('has') || lowerName.includes('enable')) {
589
+ return '@boolean';
590
+ }
591
+ // deleted, disabled 倾向于返回 false
592
+ if (lowerName.includes('delete') || lowerName.includes('disable')) {
593
+ return 'false';
594
+ }
595
+ }
596
+ return '@boolean';
597
+ }
598
+ /**
599
+ * 生成数组的智能 Mock
600
+ */
601
+ export function generateSmartArrayMock(itemMock, schema) {
602
+ // 根据数组长度限制
603
+ const minItems = schema?.minItems ?? 1;
604
+ const maxItems = schema?.maxItems ?? 5;
605
+ // 使用 Mock.js 的数组生成语法
606
+ if (minItems === maxItems) {
607
+ return `'data|${minItems}': [${itemMock}]`;
608
+ }
609
+ else {
610
+ return `'data|${minItems}-${maxItems}': [${itemMock}]`;
611
+ }
612
+ }
613
+ /**
614
+ * 检测字段是否为时间戳类型
615
+ */
616
+ export function isTimestampField(fieldName, schema) {
617
+ if (!fieldName)
618
+ return false;
619
+ const lowerName = fieldName.toLowerCase();
620
+ const isNumberType = schema.type === 'number' || schema.type === 'integer';
621
+ // 时间戳相关的字段名
622
+ const timestampPatterns = [
623
+ 'timestamp',
624
+ 'time_stamp',
625
+ 'unix_time',
626
+ 'epoch',
627
+ 'created_at',
628
+ 'updated_at',
629
+ 'deleted_at',
630
+ 'create_time',
631
+ 'update_time',
632
+ 'delete_time'
633
+ ];
634
+ return isNumberType && timestampPatterns.some(pattern => lowerName.includes(pattern));
635
+ }
636
+ /**
637
+ * 生成时间戳的 Mock 值
638
+ */
639
+ export function generateTimestampMock() {
640
+ // 生成当前时间前后一年内的随机时间戳(秒级)
641
+ return '@integer(1640000000, 1800000000)';
642
+ }
643
+ //# sourceMappingURL=smart-mock-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-mock-rules.js","sourceRoot":"","sources":["../../../../src/generators/templates/smart-mock-rules.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,6 @@
1
1
  import type { ApiEndpoint } from '../../types/index.js';
2
2
  /**
3
- * 为单个接口生成类型文件
3
+ * 为单个接口生成命名空间内容
4
4
  */
5
- export declare function generateEndpointTypeFile(endpoint: ApiEndpoint, schemas: any): string;
6
- /**
7
- * 生成接口体内容(属性名带引号)
8
- */
9
- export declare function generateInterfaceBodyWithQuotes(schema: any, definitions: any, indent: string): string;
10
- /**
11
- * 生成嵌套类型和接口(用于复杂请求参数)
12
- */
13
- export declare function generateNestedTypesAndInterfaces(endpoint: ApiEndpoint, schemas: any, namespaceName: string): string;
14
- /**
15
- * 生成请求体属性(带引号)
16
- */
17
- export declare function generateRequestBodyPropertiesWithQuotes(schema: any, definitions: any, namespaceName: string, indent: string): string;
5
+ export declare function generateNamespaceContent(endpoint: ApiEndpoint, schemas: any): string;
18
6
  //# sourceMappingURL=type-template.d.ts.map