@schmock/faker 2.2.3 → 2.3.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 (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -0
  3. package/dist/constants.d.ts +82 -1
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/field-mappings.d.ts.map +1 -1
  6. package/dist/field-name-matcher.d.ts +19 -0
  7. package/dist/field-name-matcher.d.ts.map +1 -1
  8. package/dist/index.d.ts +3 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +4 -1
  11. package/dist/jsf-config.d.ts +27 -2
  12. package/dist/jsf-config.d.ts.map +1 -1
  13. package/dist/output-limits.d.ts +3 -0
  14. package/dist/output-limits.d.ts.map +1 -0
  15. package/dist/overrides.d.ts +2 -1
  16. package/dist/overrides.d.ts.map +1 -1
  17. package/dist/schema-children.d.ts +14 -0
  18. package/dist/schema-children.d.ts.map +1 -0
  19. package/dist/schema-enhancement.d.ts +1 -0
  20. package/dist/schema-enhancement.d.ts.map +1 -1
  21. package/dist/validation.d.ts +24 -5
  22. package/dist/validation.d.ts.map +1 -1
  23. package/package.json +19 -9
  24. package/dist/constants.js +0 -8
  25. package/dist/field-mappings.js +0 -1107
  26. package/dist/field-name-matcher.js +0 -149
  27. package/dist/jsf-config.js +0 -35
  28. package/dist/overrides.js +0 -131
  29. package/dist/schema-enhancement.js +0 -89
  30. package/dist/test-utils.d.ts +0 -57
  31. package/dist/test-utils.d.ts.map +0 -1
  32. package/dist/test-utils.js +0 -271
  33. package/dist/validation.js +0 -300
  34. package/src/advanced-features.test.ts +0 -912
  35. package/src/audit-faker-args.test.ts +0 -97
  36. package/src/constants.d.ts.map +0 -1
  37. package/src/constants.ts +0 -9
  38. package/src/data-quality.test.ts +0 -415
  39. package/src/error-handling.test.ts +0 -504
  40. package/src/field-mappings.test.ts +0 -351
  41. package/src/field-mappings.ts +0 -1141
  42. package/src/field-name-matcher.test.ts +0 -292
  43. package/src/field-name-matcher.ts +0 -188
  44. package/src/index.d.ts.map +0 -1
  45. package/src/index.test.ts +0 -1218
  46. package/src/index.ts +0 -168
  47. package/src/integration.test.ts +0 -634
  48. package/src/jsf-config.d.ts.map +0 -1
  49. package/src/jsf-config.ts +0 -48
  50. package/src/overrides.d.ts.map +0 -1
  51. package/src/overrides.property.test.ts +0 -172
  52. package/src/overrides.test.ts +0 -38
  53. package/src/overrides.ts +0 -176
  54. package/src/performance.test.ts +0 -494
  55. package/src/plugin-integration.test.ts +0 -575
  56. package/src/post-process.test.ts +0 -151
  57. package/src/real-world.test.ts +0 -636
  58. package/src/schema-enhancement.d.ts.map +0 -1
  59. package/src/schema-enhancement.test.ts +0 -216
  60. package/src/schema-enhancement.ts +0 -128
  61. package/src/steps/deterministic-seeds.steps.ts +0 -35
  62. package/src/steps/faker-plugin.steps.ts +0 -109
  63. package/src/test-utils.ts +0 -365
  64. package/src/validation.d.ts.map +0 -1
  65. package/src/validation.ts +0 -417
@@ -1,1141 +0,0 @@
1
- export interface FieldMapping {
2
- keywords: string[];
3
- fakerMethod: string;
4
- schemaType?: string;
5
- minScore: number;
6
- format?: string;
7
- trueProbability?: number;
8
- fakerArgs?: Record<string, unknown>;
9
- }
10
-
11
- // ── Identity & Auth ─────────────────────────────────────────────────
12
- const identity: FieldMapping[] = [
13
- {
14
- keywords: ["email"],
15
- fakerMethod: "internet.email",
16
- schemaType: "string",
17
- minScore: 0.6,
18
- format: "email",
19
- },
20
- {
21
- keywords: ["username", "user_name", "login", "handle"],
22
- fakerMethod: "internet.username",
23
- schemaType: "string",
24
- minScore: 0.6,
25
- },
26
- {
27
- keywords: ["password", "passwd", "secret"],
28
- fakerMethod: "internet.password",
29
- schemaType: "string",
30
- minScore: 0.6,
31
- },
32
- {
33
- keywords: ["token", "api_key", "apikey", "access_token", "refresh_token"],
34
- fakerMethod: "string.alphanumeric",
35
- schemaType: "string",
36
- minScore: 0.8,
37
- },
38
- ];
39
-
40
- // ── Person ──────────────────────────────────────────────────────────
41
- const person: FieldMapping[] = [
42
- {
43
- keywords: ["first_name", "firstname", "given_name", "forename"],
44
- fakerMethod: "person.firstName",
45
- schemaType: "string",
46
- minScore: 0.6,
47
- },
48
- {
49
- keywords: ["last_name", "lastname", "surname", "family_name"],
50
- fakerMethod: "person.lastName",
51
- schemaType: "string",
52
- minScore: 0.6,
53
- },
54
- {
55
- keywords: [
56
- "full_name",
57
- "fullname",
58
- "display_name",
59
- "displayname",
60
- "full_name",
61
- ],
62
- fakerMethod: "person.fullName",
63
- schemaType: "string",
64
- minScore: 0.6,
65
- },
66
- {
67
- keywords: ["name"],
68
- fakerMethod: "person.fullName",
69
- schemaType: "string",
70
- minScore: 0.6,
71
- },
72
- {
73
- keywords: ["middle_name", "middlename"],
74
- fakerMethod: "person.middleName",
75
- schemaType: "string",
76
- minScore: 0.8,
77
- },
78
- {
79
- keywords: ["prefix", "honorific", "salutation"],
80
- fakerMethod: "person.prefix",
81
- schemaType: "string",
82
- minScore: 0.8,
83
- },
84
- {
85
- keywords: ["suffix"],
86
- fakerMethod: "person.suffix",
87
- schemaType: "string",
88
- minScore: 0.9,
89
- },
90
- {
91
- keywords: ["gender", "sex"],
92
- fakerMethod: "person.sex",
93
- schemaType: "string",
94
- minScore: 0.8,
95
- },
96
- {
97
- keywords: ["bio", "biography"],
98
- fakerMethod: "lorem.paragraph",
99
- schemaType: "string",
100
- minScore: 0.8,
101
- },
102
- {
103
- keywords: [
104
- "job_title",
105
- "jobtitle",
106
- "position",
107
- "occupation",
108
- "job",
109
- "role",
110
- ],
111
- fakerMethod: "person.jobTitle",
112
- schemaType: "string",
113
- minScore: 0.6,
114
- },
115
- {
116
- keywords: ["job_area", "department", "division", "team"],
117
- fakerMethod: "person.jobArea",
118
- schemaType: "string",
119
- minScore: 0.8,
120
- },
121
- {
122
- keywords: ["zodiac", "zodiac_sign"],
123
- fakerMethod: "person.zodiacSign",
124
- schemaType: "string",
125
- minScore: 0.9,
126
- },
127
- ];
128
-
129
- // ── Contact ─────────────────────────────────────────────────────────
130
- const contact: FieldMapping[] = [
131
- {
132
- keywords: [
133
- "phone",
134
- "mobile",
135
- "cell",
136
- "tel",
137
- "telephone",
138
- "cellphone",
139
- "fax",
140
- ],
141
- fakerMethod: "phone.number",
142
- schemaType: "string",
143
- minScore: 0.6,
144
- },
145
- {
146
- keywords: ["imei"],
147
- fakerMethod: "phone.imei",
148
- schemaType: "string",
149
- minScore: 0.9,
150
- },
151
- ];
152
-
153
- // ── Address/Location ────────────────────────────────────────────────
154
- const address: FieldMapping[] = [
155
- {
156
- keywords: ["street", "street_address"],
157
- fakerMethod: "location.streetAddress",
158
- schemaType: "string",
159
- minScore: 0.6,
160
- },
161
- {
162
- keywords: ["address", "mailing_address", "postal_address"],
163
- fakerMethod: "location.streetAddress",
164
- schemaType: "string",
165
- minScore: 0.6,
166
- },
167
- {
168
- keywords: ["city", "town"],
169
- fakerMethod: "location.city",
170
- schemaType: "string",
171
- minScore: 0.6,
172
- },
173
- {
174
- keywords: ["state", "province", "region"],
175
- fakerMethod: "location.state",
176
- schemaType: "string",
177
- minScore: 0.8,
178
- },
179
- {
180
- keywords: ["country"],
181
- fakerMethod: "location.country",
182
- schemaType: "string",
183
- minScore: 0.8,
184
- },
185
- {
186
- keywords: ["country_code", "countrycode"],
187
- fakerMethod: "location.countryCode",
188
- schemaType: "string",
189
- minScore: 0.8,
190
- },
191
- {
192
- keywords: ["county"],
193
- fakerMethod: "location.county",
194
- schemaType: "string",
195
- minScore: 0.9,
196
- },
197
- {
198
- keywords: ["continent"],
199
- fakerMethod: "location.continent",
200
- schemaType: "string",
201
- minScore: 0.9,
202
- },
203
- {
204
- keywords: ["zip", "zipcode", "zip_code", "postal", "postal_code"],
205
- fakerMethod: "location.zipCode",
206
- schemaType: "string",
207
- minScore: 0.6,
208
- },
209
- {
210
- keywords: ["latitude", "lat"],
211
- fakerMethod: "location.latitude",
212
- schemaType: "number",
213
- minScore: 0.6,
214
- },
215
- {
216
- keywords: ["longitude", "lng", "lon", "long"],
217
- fakerMethod: "location.longitude",
218
- schemaType: "number",
219
- minScore: 0.6,
220
- },
221
- {
222
- keywords: ["timezone", "time_zone", "tz"],
223
- fakerMethod: "location.timeZone",
224
- schemaType: "string",
225
- minScore: 0.8,
226
- },
227
- {
228
- keywords: ["building_number"],
229
- fakerMethod: "location.buildingNumber",
230
- schemaType: "string",
231
- minScore: 0.9,
232
- },
233
- ];
234
-
235
- // ── Internet/Network ────────────────────────────────────────────────
236
- const internet: FieldMapping[] = [
237
- {
238
- keywords: ["url", "website", "link", "href", "homepage", "webpage"],
239
- fakerMethod: "internet.url",
240
- schemaType: "string",
241
- minScore: 0.6,
242
- },
243
- {
244
- keywords: [
245
- "avatar",
246
- "photo_url",
247
- "profile_image",
248
- "image_url",
249
- "picture",
250
- "thumbnail",
251
- "icon",
252
- ],
253
- fakerMethod: "image.avatar",
254
- schemaType: "string",
255
- minScore: 0.6,
256
- },
257
- {
258
- keywords: ["domain", "hostname", "domain_name"],
259
- fakerMethod: "internet.domainName",
260
- schemaType: "string",
261
- minScore: 0.8,
262
- },
263
- {
264
- keywords: ["ip", "ip_address", "ipaddress", "ipv4"],
265
- fakerMethod: "internet.ipv4",
266
- schemaType: "string",
267
- minScore: 0.8,
268
- },
269
- {
270
- keywords: ["ipv6"],
271
- fakerMethod: "internet.ipv6",
272
- schemaType: "string",
273
- minScore: 0.9,
274
- },
275
- {
276
- keywords: ["mac", "mac_address"],
277
- fakerMethod: "internet.mac",
278
- schemaType: "string",
279
- minScore: 0.9,
280
- },
281
- {
282
- keywords: ["user_agent", "useragent"],
283
- fakerMethod: "internet.userAgent",
284
- schemaType: "string",
285
- minScore: 0.9,
286
- },
287
- {
288
- keywords: ["port"],
289
- fakerMethod: "internet.port",
290
- schemaType: "number",
291
- minScore: 0.9,
292
- },
293
- {
294
- keywords: ["protocol"],
295
- fakerMethod: "internet.protocol",
296
- schemaType: "string",
297
- minScore: 0.9,
298
- },
299
- ];
300
-
301
- // ── IDs & Identifiers ──────────────────────────────────────────────
302
- const ids: FieldMapping[] = [
303
- {
304
- keywords: ["uuid", "guid"],
305
- fakerMethod: "string.uuid",
306
- schemaType: "string",
307
- minScore: 0.6,
308
- },
309
- {
310
- keywords: ["sku"],
311
- fakerMethod: "string.alphanumeric",
312
- schemaType: "string",
313
- minScore: 0.9,
314
- },
315
- {
316
- keywords: ["slug"],
317
- fakerMethod: "lorem.slug",
318
- schemaType: "string",
319
- minScore: 0.8,
320
- },
321
- {
322
- keywords: ["isbn"],
323
- fakerMethod: "commerce.isbn",
324
- schemaType: "string",
325
- minScore: 0.9,
326
- },
327
- {
328
- keywords: ["vin"],
329
- fakerMethod: "vehicle.vin",
330
- schemaType: "string",
331
- minScore: 0.9,
332
- },
333
- {
334
- keywords: ["iban"],
335
- fakerMethod: "finance.iban",
336
- schemaType: "string",
337
- minScore: 0.9,
338
- },
339
- {
340
- keywords: ["bic", "swift"],
341
- fakerMethod: "finance.bic",
342
- schemaType: "string",
343
- minScore: 0.9,
344
- },
345
- {
346
- keywords: ["ssn", "social_security"],
347
- fakerMethod: "string.numeric",
348
- schemaType: "string",
349
- minScore: 0.9,
350
- },
351
- ];
352
-
353
- // ── Text/Content ────────────────────────────────────────────────────
354
- const text: FieldMapping[] = [
355
- {
356
- keywords: [
357
- "description",
358
- "desc",
359
- "summary",
360
- "overview",
361
- "about",
362
- "excerpt",
363
- ],
364
- fakerMethod: "lorem.paragraph",
365
- schemaType: "string",
366
- minScore: 0.6,
367
- },
368
- {
369
- keywords: ["content", "body", "text", "message"],
370
- fakerMethod: "lorem.paragraphs",
371
- schemaType: "string",
372
- minScore: 0.6,
373
- },
374
- {
375
- keywords: ["title", "heading", "subject", "headline"],
376
- fakerMethod: "lorem.sentence",
377
- schemaType: "string",
378
- minScore: 0.6,
379
- },
380
- {
381
- keywords: ["tag", "label", "category", "keyword"],
382
- fakerMethod: "lorem.word",
383
- schemaType: "string",
384
- minScore: 0.8,
385
- },
386
- {
387
- keywords: ["comment", "note", "remark", "feedback", "review"],
388
- fakerMethod: "lorem.sentence",
389
- schemaType: "string",
390
- minScore: 0.8,
391
- },
392
- {
393
- keywords: ["sentence"],
394
- fakerMethod: "lorem.sentence",
395
- schemaType: "string",
396
- minScore: 0.9,
397
- },
398
- {
399
- keywords: ["paragraph"],
400
- fakerMethod: "lorem.paragraph",
401
- schemaType: "string",
402
- minScore: 0.9,
403
- },
404
- {
405
- keywords: ["word"],
406
- fakerMethod: "lorem.word",
407
- schemaType: "string",
408
- minScore: 0.9,
409
- },
410
- ];
411
-
412
- // ── Business/Commerce ───────────────────────────────────────────────
413
- const business: FieldMapping[] = [
414
- {
415
- keywords: ["company", "organization", "org", "employer", "brand"],
416
- fakerMethod: "company.name",
417
- schemaType: "string",
418
- minScore: 0.6,
419
- },
420
- {
421
- keywords: ["product", "product_name", "item_name"],
422
- fakerMethod: "commerce.productName",
423
- schemaType: "string",
424
- minScore: 0.8,
425
- },
426
- {
427
- keywords: [
428
- "price",
429
- "amount",
430
- "cost",
431
- "fee",
432
- "salary",
433
- "wage",
434
- "total",
435
- "subtotal",
436
- "balance",
437
- "revenue",
438
- "income",
439
- ],
440
- fakerMethod: "commerce.price",
441
- minScore: 0.6,
442
- },
443
- {
444
- keywords: ["currency", "currency_code"],
445
- fakerMethod: "finance.currencyCode",
446
- schemaType: "string",
447
- minScore: 0.8,
448
- },
449
- {
450
- keywords: ["currency_name"],
451
- fakerMethod: "finance.currencyName",
452
- schemaType: "string",
453
- minScore: 0.8,
454
- },
455
- {
456
- keywords: ["currency_symbol"],
457
- fakerMethod: "finance.currencySymbol",
458
- schemaType: "string",
459
- minScore: 0.8,
460
- },
461
- {
462
- keywords: ["account_number", "account_no"],
463
- fakerMethod: "finance.accountNumber",
464
- schemaType: "string",
465
- minScore: 0.8,
466
- },
467
- {
468
- keywords: ["credit_card", "card_number"],
469
- fakerMethod: "finance.creditCardNumber",
470
- schemaType: "string",
471
- minScore: 0.8,
472
- },
473
- {
474
- keywords: ["cvv"],
475
- fakerMethod: "finance.creditCardCVV",
476
- schemaType: "string",
477
- minScore: 0.9,
478
- },
479
- {
480
- keywords: ["transaction_type"],
481
- fakerMethod: "finance.transactionType",
482
- schemaType: "string",
483
- minScore: 0.9,
484
- },
485
- ];
486
-
487
- // ── Date/Time ───────────────────────────────────────────────────────
488
- const dateTime: FieldMapping[] = [
489
- {
490
- keywords: [
491
- "created_at",
492
- "createdat",
493
- "creation_date",
494
- "date_created",
495
- "createddate",
496
- ],
497
- fakerMethod: "date.recent",
498
- schemaType: "string",
499
- minScore: 0.6,
500
- format: "date-time",
501
- },
502
- {
503
- keywords: [
504
- "updated_at",
505
- "updatedat",
506
- "modified_at",
507
- "modifiedat",
508
- "date_updated",
509
- "last_modified",
510
- "date_modified",
511
- ],
512
- fakerMethod: "date.recent",
513
- schemaType: "string",
514
- minScore: 0.6,
515
- format: "date-time",
516
- },
517
- {
518
- keywords: ["deleted_at", "deletedat"],
519
- fakerMethod: "date.recent",
520
- schemaType: "string",
521
- minScore: 0.6,
522
- format: "date-time",
523
- },
524
- {
525
- keywords: ["published_at", "publishedat", "publish_date"],
526
- fakerMethod: "date.recent",
527
- schemaType: "string",
528
- minScore: 0.6,
529
- format: "date-time",
530
- },
531
- {
532
- keywords: ["expires_at", "expiresat", "expiration", "expiry"],
533
- fakerMethod: "date.future",
534
- schemaType: "string",
535
- minScore: 0.6,
536
- format: "date-time",
537
- },
538
- {
539
- keywords: ["birthday", "date_of_birth", "dob", "birthdate", "born"],
540
- fakerMethod: "date.birthdate",
541
- schemaType: "string",
542
- minScore: 0.8,
543
- },
544
- {
545
- keywords: ["start_date", "begin_date"],
546
- fakerMethod: "date.past",
547
- schemaType: "string",
548
- minScore: 0.8,
549
- },
550
- {
551
- keywords: ["end_date", "due_date", "deadline"],
552
- fakerMethod: "date.future",
553
- schemaType: "string",
554
- minScore: 0.8,
555
- },
556
- {
557
- keywords: ["timestamp", "ts"],
558
- fakerMethod: "date.recent",
559
- schemaType: "string",
560
- minScore: 0.8,
561
- },
562
- ];
563
-
564
- // ── Color ───────────────────────────────────────────────────────────
565
- const color: FieldMapping[] = [
566
- {
567
- keywords: ["color", "colour"],
568
- fakerMethod: "color.human",
569
- schemaType: "string",
570
- minScore: 0.8,
571
- },
572
- {
573
- keywords: ["hex_color", "hexcolor"],
574
- fakerMethod: "color.rgb",
575
- schemaType: "string",
576
- minScore: 0.9,
577
- },
578
- ];
579
-
580
- // ── Numeric Semantics ───────────────────────────────────────────────
581
- const numeric: FieldMapping[] = [
582
- {
583
- keywords: ["age"],
584
- fakerMethod: "number.int",
585
- schemaType: "number",
586
- minScore: 0.8,
587
- fakerArgs: { min: 18, max: 80 },
588
- },
589
- {
590
- keywords: ["rating", "score", "stars"],
591
- fakerMethod: "number.int",
592
- schemaType: "number",
593
- minScore: 0.8,
594
- fakerArgs: { min: 1, max: 5 },
595
- },
596
- {
597
- keywords: ["count", "quantity", "qty"],
598
- fakerMethod: "number.int",
599
- schemaType: "number",
600
- minScore: 0.8,
601
- fakerArgs: { min: 1, max: 100 },
602
- },
603
- {
604
- keywords: ["percentage", "percent"],
605
- fakerMethod: "number.int",
606
- schemaType: "number",
607
- minScore: 0.8,
608
- fakerArgs: { min: 0, max: 100 },
609
- },
610
- {
611
- keywords: ["weight"],
612
- fakerMethod: "number.float",
613
- schemaType: "number",
614
- minScore: 0.8,
615
- fakerArgs: { min: 0.1, max: 200 },
616
- },
617
- {
618
- keywords: ["height"],
619
- fakerMethod: "number.int",
620
- schemaType: "number",
621
- minScore: 0.8,
622
- fakerArgs: { min: 100, max: 220 },
623
- },
624
- {
625
- keywords: ["width", "length", "depth"],
626
- fakerMethod: "number.int",
627
- schemaType: "number",
628
- minScore: 0.8,
629
- fakerArgs: { min: 1, max: 1000 },
630
- },
631
- {
632
- keywords: ["priority", "order", "rank", "level"],
633
- fakerMethod: "number.int",
634
- schemaType: "number",
635
- minScore: 0.8,
636
- fakerArgs: { min: 1, max: 10 },
637
- },
638
- {
639
- keywords: ["version"],
640
- fakerMethod: "system.semver",
641
- schemaType: "string",
642
- minScore: 0.8,
643
- },
644
- ];
645
-
646
- // ── Boolean Semantics (weighted) ────────────────────────────────────
647
- const booleans: FieldMapping[] = [
648
- {
649
- keywords: ["is_active", "isactive", "active", "enabled", "is_enabled"],
650
- fakerMethod: "datatype.boolean",
651
- schemaType: "boolean",
652
- minScore: 0.6,
653
- trueProbability: 0.9,
654
- },
655
- {
656
- keywords: ["is_deleted", "isdeleted", "deleted"],
657
- fakerMethod: "datatype.boolean",
658
- schemaType: "boolean",
659
- minScore: 0.6,
660
- trueProbability: 0.05,
661
- },
662
- {
663
- keywords: ["is_archived", "isarchived", "archived"],
664
- fakerMethod: "datatype.boolean",
665
- schemaType: "boolean",
666
- minScore: 0.6,
667
- trueProbability: 0.1,
668
- },
669
- {
670
- keywords: [
671
- "is_verified",
672
- "isverified",
673
- "verified",
674
- "confirmed",
675
- "is_confirmed",
676
- ],
677
- fakerMethod: "datatype.boolean",
678
- schemaType: "boolean",
679
- minScore: 0.6,
680
- trueProbability: 0.8,
681
- },
682
- {
683
- keywords: ["is_admin", "isadmin", "admin"],
684
- fakerMethod: "datatype.boolean",
685
- schemaType: "boolean",
686
- minScore: 0.6,
687
- trueProbability: 0.1,
688
- },
689
- {
690
- keywords: ["is_public", "ispublic", "public", "visible", "is_visible"],
691
- fakerMethod: "datatype.boolean",
692
- schemaType: "boolean",
693
- minScore: 0.6,
694
- trueProbability: 0.7,
695
- },
696
- {
697
- keywords: ["is_read", "isread", "read", "seen", "is_seen"],
698
- fakerMethod: "datatype.boolean",
699
- schemaType: "boolean",
700
- minScore: 0.6,
701
- trueProbability: 0.6,
702
- },
703
- {
704
- keywords: ["is_default", "isdefault"],
705
- fakerMethod: "datatype.boolean",
706
- schemaType: "boolean",
707
- minScore: 0.8,
708
- trueProbability: 0.1,
709
- },
710
- {
711
- keywords: ["is_required", "isrequired", "required", "mandatory"],
712
- fakerMethod: "datatype.boolean",
713
- schemaType: "boolean",
714
- minScore: 0.6,
715
- trueProbability: 0.5,
716
- },
717
- {
718
- keywords: ["is_featured", "isfeatured", "featured", "promoted"],
719
- fakerMethod: "datatype.boolean",
720
- schemaType: "boolean",
721
- minScore: 0.8,
722
- trueProbability: 0.15,
723
- },
724
- {
725
- keywords: ["available", "in_stock"],
726
- fakerMethod: "datatype.boolean",
727
- schemaType: "boolean",
728
- minScore: 0.8,
729
- trueProbability: 0.85,
730
- },
731
- ];
732
-
733
- // ── File/System ─────────────────────────────────────────────────────
734
- const fileSystem: FieldMapping[] = [
735
- {
736
- keywords: ["filename", "file_name"],
737
- fakerMethod: "system.fileName",
738
- schemaType: "string",
739
- minScore: 0.8,
740
- },
741
- {
742
- keywords: [
743
- "file_type",
744
- "filetype",
745
- "mime_type",
746
- "mimetype",
747
- "content_type",
748
- ],
749
- fakerMethod: "system.mimeType",
750
- schemaType: "string",
751
- minScore: 0.8,
752
- },
753
- {
754
- keywords: ["file_ext", "extension"],
755
- fakerMethod: "system.fileExt",
756
- schemaType: "string",
757
- minScore: 0.9,
758
- },
759
- {
760
- keywords: ["file_path", "filepath", "path"],
761
- fakerMethod: "system.filePath",
762
- schemaType: "string",
763
- minScore: 0.9,
764
- },
765
- {
766
- keywords: ["cron", "cron_expression"],
767
- fakerMethod: "system.cron",
768
- schemaType: "string",
769
- minScore: 0.9,
770
- },
771
- {
772
- keywords: ["semver"],
773
- fakerMethod: "system.semver",
774
- schemaType: "string",
775
- minScore: 0.9,
776
- },
777
- ];
778
-
779
- // ── Airline (niche) ─────────────────────────────────────────────────
780
- const airline: FieldMapping[] = [
781
- {
782
- keywords: ["aircraft_type", "airplane", "aircraft"],
783
- fakerMethod: "airline.aircraftType",
784
- schemaType: "string",
785
- minScore: 0.9,
786
- },
787
- {
788
- keywords: ["flight_number", "flight"],
789
- fakerMethod: "airline.flightNumber",
790
- schemaType: "string",
791
- minScore: 0.9,
792
- },
793
- {
794
- keywords: ["record_locator", "booking_ref", "pnr"],
795
- fakerMethod: "airline.recordLocator",
796
- schemaType: "string",
797
- minScore: 0.9,
798
- },
799
- {
800
- keywords: ["seat", "seat_number"],
801
- fakerMethod: "airline.seat",
802
- schemaType: "string",
803
- minScore: 0.9,
804
- },
805
- ];
806
-
807
- // ── Animal (niche) ──────────────────────────────────────────────────
808
- const animal: FieldMapping[] = [
809
- {
810
- keywords: ["animal", "animal_type", "species"],
811
- fakerMethod: "animal.type",
812
- schemaType: "string",
813
- minScore: 0.9,
814
- },
815
- {
816
- keywords: ["pet_name"],
817
- fakerMethod: "animal.petName",
818
- schemaType: "string",
819
- minScore: 0.9,
820
- },
821
- {
822
- keywords: ["breed"],
823
- fakerMethod: "animal.dog",
824
- schemaType: "string",
825
- minScore: 0.9,
826
- },
827
- {
828
- keywords: ["bird"],
829
- fakerMethod: "animal.bird",
830
- schemaType: "string",
831
- minScore: 0.9,
832
- },
833
- {
834
- keywords: ["fish"],
835
- fakerMethod: "animal.fish",
836
- schemaType: "string",
837
- minScore: 0.9,
838
- },
839
- {
840
- keywords: ["horse"],
841
- fakerMethod: "animal.horse",
842
- schemaType: "string",
843
- minScore: 0.9,
844
- },
845
- {
846
- keywords: ["insect"],
847
- fakerMethod: "animal.insect",
848
- schemaType: "string",
849
- minScore: 0.9,
850
- },
851
- ];
852
-
853
- // ── Book (niche) ────────────────────────────────────────────────────
854
- const book: FieldMapping[] = [
855
- {
856
- keywords: ["book_title"],
857
- fakerMethod: "book.title",
858
- schemaType: "string",
859
- minScore: 0.9,
860
- },
861
- {
862
- keywords: ["author", "book_author", "writer"],
863
- fakerMethod: "book.author",
864
- schemaType: "string",
865
- minScore: 0.9,
866
- },
867
- {
868
- keywords: ["genre", "book_genre"],
869
- fakerMethod: "book.genre",
870
- schemaType: "string",
871
- minScore: 0.9,
872
- },
873
- {
874
- keywords: ["publisher", "publishing_house"],
875
- fakerMethod: "book.publisher",
876
- schemaType: "string",
877
- minScore: 0.9,
878
- },
879
- {
880
- keywords: ["book_series", "series_name"],
881
- fakerMethod: "book.series",
882
- schemaType: "string",
883
- minScore: 0.9,
884
- },
885
- ];
886
-
887
- // ── Food (niche) ────────────────────────────────────────────────────
888
- const food: FieldMapping[] = [
889
- {
890
- keywords: ["dish", "meal", "recipe_name"],
891
- fakerMethod: "food.dish",
892
- schemaType: "string",
893
- minScore: 0.9,
894
- },
895
- {
896
- keywords: ["ingredient"],
897
- fakerMethod: "food.ingredient",
898
- schemaType: "string",
899
- minScore: 0.9,
900
- },
901
- {
902
- keywords: ["spice"],
903
- fakerMethod: "food.spice",
904
- schemaType: "string",
905
- minScore: 0.9,
906
- },
907
- {
908
- keywords: ["fruit"],
909
- fakerMethod: "food.fruit",
910
- schemaType: "string",
911
- minScore: 0.9,
912
- },
913
- {
914
- keywords: ["vegetable"],
915
- fakerMethod: "food.vegetable",
916
- schemaType: "string",
917
- minScore: 0.9,
918
- },
919
- {
920
- keywords: ["meat"],
921
- fakerMethod: "food.meat",
922
- schemaType: "string",
923
- minScore: 0.9,
924
- },
925
- {
926
- keywords: ["food_description"],
927
- fakerMethod: "food.description",
928
- schemaType: "string",
929
- minScore: 0.9,
930
- },
931
- {
932
- keywords: ["ethnic_category", "cuisine"],
933
- fakerMethod: "food.ethnicCategory",
934
- schemaType: "string",
935
- minScore: 0.9,
936
- },
937
- ];
938
-
939
- // ── Music (niche) ───────────────────────────────────────────────────
940
- const music: FieldMapping[] = [
941
- {
942
- keywords: ["song", "song_name", "track", "track_name"],
943
- fakerMethod: "music.songName",
944
- schemaType: "string",
945
- minScore: 0.9,
946
- },
947
- {
948
- keywords: ["album", "album_name"],
949
- fakerMethod: "music.album",
950
- schemaType: "string",
951
- minScore: 0.9,
952
- },
953
- {
954
- keywords: ["artist", "musician", "band"],
955
- fakerMethod: "music.artist",
956
- schemaType: "string",
957
- minScore: 0.9,
958
- },
959
- {
960
- keywords: ["music_genre"],
961
- fakerMethod: "music.genre",
962
- schemaType: "string",
963
- minScore: 0.9,
964
- },
965
- ];
966
-
967
- // ── Science (niche) ─────────────────────────────────────────────────
968
- const science: FieldMapping[] = [];
969
-
970
- // ── Vehicle (niche) ─────────────────────────────────────────────────
971
- const vehicle: FieldMapping[] = [
972
- {
973
- keywords: ["vehicle", "vehicle_name"],
974
- fakerMethod: "vehicle.vehicle",
975
- schemaType: "string",
976
- minScore: 0.9,
977
- },
978
- {
979
- keywords: ["vehicle_type"],
980
- fakerMethod: "vehicle.type",
981
- schemaType: "string",
982
- minScore: 0.9,
983
- },
984
- {
985
- keywords: ["vehicle_manufacturer", "car_make"],
986
- fakerMethod: "vehicle.manufacturer",
987
- schemaType: "string",
988
- minScore: 0.9,
989
- },
990
- {
991
- keywords: ["vehicle_model", "car_model"],
992
- fakerMethod: "vehicle.model",
993
- schemaType: "string",
994
- minScore: 0.9,
995
- },
996
- {
997
- keywords: ["fuel", "fuel_type"],
998
- fakerMethod: "vehicle.fuel",
999
- schemaType: "string",
1000
- minScore: 0.9,
1001
- },
1002
- {
1003
- keywords: ["bicycle"],
1004
- fakerMethod: "vehicle.bicycle",
1005
- schemaType: "string",
1006
- minScore: 0.9,
1007
- },
1008
- {
1009
- keywords: ["vehicle_color", "car_color"],
1010
- fakerMethod: "vehicle.color",
1011
- schemaType: "string",
1012
- minScore: 0.9,
1013
- },
1014
- ];
1015
-
1016
- // ── Git/Dev (niche) ─────────────────────────────────────────────────
1017
- const git: FieldMapping[] = [
1018
- {
1019
- keywords: ["branch", "branch_name", "git_branch"],
1020
- fakerMethod: "git.branch",
1021
- schemaType: "string",
1022
- minScore: 0.9,
1023
- },
1024
- {
1025
- keywords: ["commit_sha", "commit_hash", "sha"],
1026
- fakerMethod: "git.commitSha",
1027
- schemaType: "string",
1028
- minScore: 0.9,
1029
- },
1030
- {
1031
- keywords: ["commit_message"],
1032
- fakerMethod: "git.commitMessage",
1033
- schemaType: "string",
1034
- minScore: 0.9,
1035
- },
1036
- ];
1037
-
1038
- // ── Database (niche) ────────────────────────────────────────────────
1039
- const database: FieldMapping[] = [
1040
- {
1041
- keywords: ["db_column", "column_name"],
1042
- fakerMethod: "database.column",
1043
- schemaType: "string",
1044
- minScore: 0.9,
1045
- },
1046
- {
1047
- keywords: ["db_type", "column_type"],
1048
- fakerMethod: "database.type",
1049
- schemaType: "string",
1050
- minScore: 0.9,
1051
- },
1052
- {
1053
- keywords: ["db_engine", "database_engine"],
1054
- fakerMethod: "database.engine",
1055
- schemaType: "string",
1056
- minScore: 0.9,
1057
- },
1058
- {
1059
- keywords: ["collation"],
1060
- fakerMethod: "database.collation",
1061
- schemaType: "string",
1062
- minScore: 0.9,
1063
- },
1064
- {
1065
- keywords: ["mongodb_id", "object_id"],
1066
- fakerMethod: "database.mongodbObjectId",
1067
- schemaType: "string",
1068
- minScore: 0.9,
1069
- },
1070
- ];
1071
-
1072
- // ── Hacker/Tech (niche) ────────────────────────────────────────────
1073
- const hacker: FieldMapping[] = [
1074
- {
1075
- keywords: ["abbreviation", "tech_abbreviation"],
1076
- fakerMethod: "hacker.abbreviation",
1077
- schemaType: "string",
1078
- minScore: 0.9,
1079
- },
1080
- {
1081
- keywords: ["hacker_phrase", "tech_phrase"],
1082
- fakerMethod: "hacker.phrase",
1083
- schemaType: "string",
1084
- minScore: 0.9,
1085
- },
1086
- ];
1087
-
1088
- // ── Word/Lorem (domain) ────────────────────────────────────────────
1089
- const word: FieldMapping[] = [
1090
- {
1091
- keywords: ["adjective"],
1092
- fakerMethod: "word.adjective",
1093
- schemaType: "string",
1094
- minScore: 0.8,
1095
- },
1096
- {
1097
- keywords: ["adverb"],
1098
- fakerMethod: "word.adverb",
1099
- schemaType: "string",
1100
- minScore: 0.8,
1101
- },
1102
- {
1103
- keywords: ["noun"],
1104
- fakerMethod: "word.noun",
1105
- schemaType: "string",
1106
- minScore: 0.8,
1107
- },
1108
- {
1109
- keywords: ["verb"],
1110
- fakerMethod: "word.verb",
1111
- schemaType: "string",
1112
- minScore: 0.8,
1113
- },
1114
- ];
1115
-
1116
- export const ALL_FIELD_MAPPINGS: FieldMapping[] = [
1117
- ...identity,
1118
- ...person,
1119
- ...contact,
1120
- ...address,
1121
- ...internet,
1122
- ...ids,
1123
- ...text,
1124
- ...business,
1125
- ...dateTime,
1126
- ...color,
1127
- ...numeric,
1128
- ...booleans,
1129
- ...fileSystem,
1130
- ...airline,
1131
- ...animal,
1132
- ...book,
1133
- ...food,
1134
- ...music,
1135
- ...science,
1136
- ...vehicle,
1137
- ...git,
1138
- ...database,
1139
- ...hacker,
1140
- ...word,
1141
- ];