namespace-guard 0.7.0 → 0.8.2

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.
package/dist/index.mjs CHANGED
@@ -115,14 +115,12 @@ function createScrambleStrategy(_pattern) {
115
115
  const candidates = [];
116
116
  const chars = identifier.split("");
117
117
  for (let i = 0; i < chars.length - 1; i++) {
118
- if (chars[i] !== chars[i + 1]) {
119
- const swapped = [...chars];
120
- [swapped[i], swapped[i + 1]] = [swapped[i + 1], swapped[i]];
121
- const candidate = swapped.join("");
122
- if (candidate !== identifier && !seen.has(candidate)) {
123
- seen.add(candidate);
124
- candidates.push(candidate);
125
- }
118
+ const swapped = [...chars];
119
+ [swapped[i], swapped[i + 1]] = [swapped[i + 1], swapped[i]];
120
+ const candidate = swapped.join("");
121
+ if (candidate !== identifier && !seen.has(candidate)) {
122
+ seen.add(candidate);
123
+ candidates.push(candidate);
126
124
  }
127
125
  }
128
126
  return candidates;
@@ -261,39 +259,679 @@ function createProfanityValidator(words, options) {
261
259
  };
262
260
  }
263
261
  var CONFUSABLE_MAP = {
264
- // Cyrillic lowercase → Latin
262
+ // Latin-1 Supplement (2)
263
+ "\xD7": "x",
264
+ "\xFE": "p",
265
+ // Latin Extended-A (1)
266
+ "\u0131": "i",
267
+ // Latin Extended-B (14)
268
+ "\u0184": "b",
269
+ "\u018D": "g",
270
+ "\u0192": "f",
271
+ "\u0196": "l",
272
+ "\u01A6": "r",
273
+ "\u01A7": "2",
274
+ "\u01B7": "3",
275
+ "\u01BC": "5",
276
+ "\u01BD": "s",
277
+ "\u01BF": "p",
278
+ "\u01C0": "l",
279
+ "\u021C": "3",
280
+ "\u0222": "8",
281
+ "\u0223": "8",
282
+ // IPA Extensions (8)
283
+ "\u0251": "a",
284
+ "\u0261": "g",
285
+ "\u0263": "y",
286
+ "\u0269": "i",
287
+ "\u026A": "i",
288
+ "\u026F": "w",
289
+ "\u028B": "u",
290
+ "\u028F": "y",
291
+ // Spacing Modifier Letters (1)
292
+ "\u02DB": "i",
293
+ // Greek and Coptic (35)
294
+ "\u037A": "i",
295
+ "\u037F": "j",
296
+ "\u0391": "a",
297
+ "\u0392": "b",
298
+ "\u0395": "e",
299
+ "\u0396": "z",
300
+ "\u0397": "h",
301
+ "\u0399": "l",
302
+ "\u039A": "k",
303
+ "\u039C": "m",
304
+ "\u039D": "n",
305
+ "\u039F": "o",
306
+ "\u03A1": "p",
307
+ "\u03A4": "t",
308
+ "\u03A5": "y",
309
+ "\u03A7": "x",
310
+ "\u03B1": "a",
311
+ "\u03B3": "y",
312
+ "\u03B9": "i",
313
+ "\u03BD": "v",
314
+ "\u03BF": "o",
315
+ "\u03C1": "p",
316
+ "\u03C3": "o",
317
+ "\u03C5": "u",
318
+ "\u03D2": "y",
319
+ "\u03DC": "f",
320
+ "\u03E8": "2",
321
+ "\u03EC": "6",
322
+ "\u03ED": "o",
323
+ "\u03F1": "p",
324
+ "\u03F2": "c",
325
+ "\u03F3": "j",
326
+ "\u03F8": "p",
327
+ "\u03F9": "c",
328
+ "\u03FA": "m",
329
+ // Cyrillic (40)
330
+ "\u0405": "s",
331
+ "\u0406": "l",
332
+ "\u0408": "j",
333
+ "\u0410": "a",
334
+ "\u0412": "b",
335
+ "\u0415": "e",
336
+ "\u0417": "3",
337
+ "\u041A": "k",
338
+ "\u041C": "m",
339
+ "\u041D": "h",
340
+ "\u041E": "o",
341
+ "\u0420": "p",
342
+ "\u0421": "c",
343
+ "\u0422": "t",
344
+ "\u0423": "y",
345
+ "\u0425": "x",
346
+ "\u042C": "b",
265
347
  "\u0430": "a",
266
- "\u0441": "c",
348
+ "\u0431": "6",
349
+ "\u0433": "r",
267
350
  "\u0435": "e",
268
351
  "\u043E": "o",
269
352
  "\u0440": "p",
270
- "\u0445": "x",
353
+ "\u0441": "c",
271
354
  "\u0443": "y",
272
- "\u0456": "i",
355
+ "\u0445": "x",
356
+ "\u0448": "w",
273
357
  "\u0455": "s",
358
+ "\u0456": "i",
274
359
  "\u0458": "j",
360
+ "\u0461": "w",
361
+ "\u0474": "v",
362
+ "\u0475": "v",
363
+ "\u04AE": "y",
364
+ "\u04AF": "y",
275
365
  "\u04BB": "h",
366
+ "\u04BD": "e",
367
+ "\u04C0": "l",
368
+ "\u04CF": "l",
369
+ "\u04E0": "3",
370
+ // Cyrillic Supplement (5)
371
+ "\u0501": "d",
372
+ "\u050C": "g",
373
+ "\u051B": "q",
374
+ "\u051C": "w",
276
375
  "\u051D": "w",
277
- // Cyrillic uppercase → Latin
278
- "\u0410": "A",
279
- "\u0412": "B",
280
- "\u0421": "C",
281
- "\u0415": "E",
282
- "\u041D": "H",
283
- "\u041A": "K",
284
- "\u041C": "M",
285
- "\u041E": "O",
286
- "\u0420": "P",
287
- "\u0422": "T",
288
- "\u0425": "X",
289
- // Greek lowercase → Latin
290
- "\u03B1": "a",
291
- "\u03BF": "o",
292
- "\u03C1": "p",
293
- "\u03BD": "v",
294
- "\u03C4": "t",
295
- "\u03B9": "i",
296
- "\u03BA": "k"
376
+ // Armenian (14)
377
+ "\u054D": "u",
378
+ "\u054F": "s",
379
+ "\u0555": "o",
380
+ "\u0561": "w",
381
+ "\u0563": "q",
382
+ "\u0566": "q",
383
+ "\u0570": "h",
384
+ "\u0578": "n",
385
+ "\u057C": "n",
386
+ "\u057D": "u",
387
+ "\u0581": "g",
388
+ "\u0582": "i",
389
+ "\u0584": "f",
390
+ "\u0585": "o",
391
+ // Hebrew (5)
392
+ "\u05C0": "l",
393
+ "\u05D5": "l",
394
+ "\u05D8": "v",
395
+ "\u05DF": "l",
396
+ "\u05E1": "o",
397
+ // Arabic (13)
398
+ "\u0627": "l",
399
+ "\u0647": "o",
400
+ "\u0661": "l",
401
+ "\u0665": "o",
402
+ "\u0667": "v",
403
+ "\u06BE": "o",
404
+ "\u06C1": "o",
405
+ "\u06D5": "o",
406
+ "\u06F1": "l",
407
+ "\u06F5": "o",
408
+ "\u06F7": "v",
409
+ "\u07C0": "o",
410
+ "\u07CA": "l",
411
+ // Indic (20)
412
+ "\u0966": "o",
413
+ "\u0969": "3",
414
+ "\u09E6": "o",
415
+ "\u09EA": "8",
416
+ "\u09ED": "9",
417
+ "\u0A66": "o",
418
+ "\u0A67": "9",
419
+ "\u0A6A": "8",
420
+ "\u0AE6": "o",
421
+ "\u0AE9": "3",
422
+ "\u0B03": "8",
423
+ "\u0B20": "o",
424
+ "\u0B66": "o",
425
+ "\u0B68": "9",
426
+ "\u0BE6": "o",
427
+ "\u0C02": "o",
428
+ "\u0C66": "o",
429
+ "\u0C82": "o",
430
+ "\u0CE6": "o",
431
+ "\u0D02": "o",
432
+ // Malayalam / Sinhala (5)
433
+ "\u0D1F": "s",
434
+ "\u0D20": "o",
435
+ "\u0D66": "o",
436
+ "\u0D6D": "9",
437
+ "\u0D82": "o",
438
+ // Thai / Lao (2)
439
+ "\u0E50": "o",
440
+ "\u0ED0": "o",
441
+ // Myanmar (4)
442
+ "\u1004": "c",
443
+ "\u101D": "o",
444
+ "\u1040": "o",
445
+ "\u105A": "c",
446
+ // Georgian (2)
447
+ "\u10E7": "y",
448
+ "\u10FF": "o",
449
+ // Ethiopic (2)
450
+ "\u1200": "u",
451
+ "\u12D0": "o",
452
+ // Cherokee (30)
453
+ "\u13A0": "d",
454
+ "\u13A1": "r",
455
+ "\u13A2": "t",
456
+ "\u13A5": "i",
457
+ "\u13A9": "y",
458
+ "\u13AA": "a",
459
+ "\u13AB": "j",
460
+ "\u13AC": "e",
461
+ "\u13B3": "w",
462
+ "\u13B7": "m",
463
+ "\u13BB": "h",
464
+ "\u13BD": "y",
465
+ "\u13C0": "g",
466
+ "\u13C2": "h",
467
+ "\u13C3": "z",
468
+ "\u13CE": "4",
469
+ "\u13CF": "b",
470
+ "\u13D2": "r",
471
+ "\u13D4": "w",
472
+ "\u13D5": "s",
473
+ "\u13D9": "v",
474
+ "\u13DA": "s",
475
+ "\u13DE": "l",
476
+ "\u13DF": "c",
477
+ "\u13E2": "p",
478
+ "\u13E6": "k",
479
+ "\u13E7": "d",
480
+ "\u13EE": "6",
481
+ "\u13F3": "g",
482
+ "\u13F4": "b",
483
+ // Canadian Aboriginal Syllabics (21)
484
+ "\u142F": "v",
485
+ "\u144C": "u",
486
+ "\u146D": "p",
487
+ "\u146F": "d",
488
+ "\u1472": "b",
489
+ "\u148D": "j",
490
+ "\u14AA": "l",
491
+ "\u14BF": "2",
492
+ "\u1541": "x",
493
+ "\u157C": "h",
494
+ "\u157D": "x",
495
+ "\u1587": "r",
496
+ "\u15AF": "b",
497
+ "\u15B4": "f",
498
+ "\u15C5": "a",
499
+ "\u15DE": "d",
500
+ "\u15EA": "d",
501
+ "\u15F0": "m",
502
+ "\u15F7": "b",
503
+ "\u166D": "x",
504
+ "\u166E": "x",
505
+ // Runic (4)
506
+ "\u16B7": "x",
507
+ "\u16C1": "l",
508
+ "\u16D5": "k",
509
+ "\u16D6": "m",
510
+ // Khmer (1)
511
+ "\u17E0": "o",
512
+ // Phonetic Extensions / Latin Small Capitals (16)
513
+ "\u1D00": "a",
514
+ "\u1D04": "c",
515
+ "\u1D05": "d",
516
+ "\u1D07": "e",
517
+ "\u1D0A": "j",
518
+ "\u1D0B": "k",
519
+ "\u1D0D": "m",
520
+ "\u1D0F": "o",
521
+ "\u1D11": "o",
522
+ "\u1D18": "p",
523
+ "\u1D1B": "t",
524
+ "\u1D1C": "u",
525
+ "\u1D20": "v",
526
+ "\u1D21": "w",
527
+ "\u1D22": "z",
528
+ "\u1D26": "r",
529
+ // Phonetic Extensions Supplement (2)
530
+ "\u1D83": "g",
531
+ "\u1D8C": "y",
532
+ // Latin Extended Additional (2)
533
+ "\u1E9D": "f",
534
+ "\u1EFF": "y",
535
+ // Greek Extended (1)
536
+ "\u1FBE": "i",
537
+ // Letterlike Symbols (2)
538
+ "\u212E": "e",
539
+ "\u213D": "y",
540
+ // Mathematical Operators (7)
541
+ "\u2223": "l",
542
+ "\u2228": "v",
543
+ "\u222A": "u",
544
+ "\u22A4": "t",
545
+ "\u22C1": "v",
546
+ "\u22C3": "u",
547
+ "\u22FF": "e",
548
+ // Miscellaneous Technical (4)
549
+ "\u2373": "i",
550
+ "\u2374": "p",
551
+ "\u237A": "a",
552
+ "\u23FD": "l",
553
+ // Box Drawing (1)
554
+ "\u2573": "x",
555
+ // Miscellaneous Mathematical Symbols (3)
556
+ "\u27D9": "t",
557
+ "\u292B": "x",
558
+ "\u292C": "x",
559
+ // Supplemental Mathematical Operators (1)
560
+ "\u2A2F": "x",
561
+ // Coptic (28)
562
+ "\u2C82": "b",
563
+ "\u2C85": "r",
564
+ "\u2C8E": "h",
565
+ "\u2C92": "l",
566
+ "\u2C93": "i",
567
+ "\u2C94": "k",
568
+ "\u2C98": "m",
569
+ "\u2C9A": "n",
570
+ "\u2C9C": "3",
571
+ "\u2C9E": "o",
572
+ "\u2C9F": "o",
573
+ "\u2CA2": "p",
574
+ "\u2CA3": "p",
575
+ "\u2CA4": "c",
576
+ "\u2CA5": "c",
577
+ "\u2CA6": "t",
578
+ "\u2CA8": "y",
579
+ "\u2CA9": "y",
580
+ "\u2CAC": "x",
581
+ "\u2CBD": "w",
582
+ "\u2CC4": "3",
583
+ "\u2CCA": "9",
584
+ "\u2CCB": "9",
585
+ "\u2CCC": "3",
586
+ "\u2CCE": "p",
587
+ "\u2CCF": "p",
588
+ "\u2CD0": "l",
589
+ "\u2CD2": "6",
590
+ // Coptic Supplement (2)
591
+ "\u2CD3": "6",
592
+ "\u2CDC": "6",
593
+ // Tifinagh (6)
594
+ "\u2D38": "v",
595
+ "\u2D39": "e",
596
+ "\u2D4F": "l",
597
+ "\u2D54": "o",
598
+ "\u2D55": "q",
599
+ "\u2D5D": "x",
600
+ // CJK Symbols (1)
601
+ "\u3007": "o",
602
+ // Lisu (25)
603
+ "\uA4D0": "b",
604
+ "\uA4D1": "p",
605
+ "\uA4D2": "d",
606
+ "\uA4D3": "d",
607
+ "\uA4D4": "t",
608
+ "\uA4D6": "g",
609
+ "\uA4D7": "k",
610
+ "\uA4D9": "j",
611
+ "\uA4DA": "c",
612
+ "\uA4DC": "z",
613
+ "\uA4DD": "f",
614
+ "\uA4DF": "m",
615
+ "\uA4E0": "n",
616
+ "\uA4E1": "l",
617
+ "\uA4E2": "s",
618
+ "\uA4E3": "r",
619
+ "\uA4E6": "v",
620
+ "\uA4E7": "h",
621
+ "\uA4EA": "w",
622
+ "\uA4EB": "x",
623
+ "\uA4EC": "y",
624
+ "\uA4EE": "a",
625
+ "\uA4F0": "e",
626
+ "\uA4F2": "l",
627
+ "\uA4F3": "o",
628
+ "\uA4F4": "u",
629
+ // Cyrillic Extended-B (2)
630
+ "\uA644": "2",
631
+ "\uA647": "i",
632
+ // Bamum (2)
633
+ "\uA6DF": "v",
634
+ "\uA6EF": "2",
635
+ // Latin Extended-D (11)
636
+ "\uA731": "s",
637
+ "\uA75A": "2",
638
+ "\uA76A": "3",
639
+ "\uA76E": "9",
640
+ "\uA798": "f",
641
+ "\uA799": "f",
642
+ "\uA79F": "u",
643
+ "\uA7AB": "3",
644
+ "\uA7B2": "j",
645
+ "\uA7B3": "x",
646
+ "\uA7B4": "b",
647
+ // Latin Extended-E (8)
648
+ "\uAB32": "e",
649
+ "\uAB35": "f",
650
+ "\uAB3D": "o",
651
+ "\uAB47": "r",
652
+ "\uAB48": "r",
653
+ "\uAB4E": "u",
654
+ "\uAB52": "u",
655
+ "\uAB5A": "y",
656
+ // Cherokee Supplement (7)
657
+ "\uAB75": "i",
658
+ "\uAB81": "r",
659
+ "\uAB83": "w",
660
+ "\uAB93": "z",
661
+ "\uABA9": "v",
662
+ "\uABAA": "s",
663
+ "\uABAF": "c",
664
+ // Arabic Presentation Forms (14)
665
+ "\uFBA6": "o",
666
+ "\uFBA7": "o",
667
+ "\uFBA8": "o",
668
+ "\uFBA9": "o",
669
+ "\uFBAA": "o",
670
+ "\uFBAB": "o",
671
+ "\uFBAC": "o",
672
+ "\uFBAD": "o",
673
+ "\uFE8D": "l",
674
+ "\uFE8E": "l",
675
+ "\uFEE9": "o",
676
+ "\uFEEA": "o",
677
+ "\uFEEB": "o",
678
+ "\uFEEC": "o",
679
+ // Halfwidth and Fullwidth Forms (1)
680
+ "\uFFE8": "l",
681
+ // Lycian (9)
682
+ "\u{10282}": "b",
683
+ "\u{10286}": "e",
684
+ "\u{10287}": "f",
685
+ "\u{1028A}": "l",
686
+ "\u{10290}": "x",
687
+ "\u{10292}": "o",
688
+ "\u{10295}": "p",
689
+ "\u{10296}": "s",
690
+ "\u{10297}": "t",
691
+ // Carian (11)
692
+ "\u{102A0}": "a",
693
+ "\u{102A1}": "b",
694
+ "\u{102A2}": "c",
695
+ "\u{102A5}": "f",
696
+ "\u{102AB}": "o",
697
+ "\u{102B0}": "m",
698
+ "\u{102B1}": "t",
699
+ "\u{102B2}": "y",
700
+ "\u{102B4}": "x",
701
+ "\u{102CF}": "h",
702
+ "\u{102F5}": "z",
703
+ // Old Italic (10)
704
+ "\u{10301}": "b",
705
+ "\u{10302}": "c",
706
+ "\u{10309}": "l",
707
+ "\u{10311}": "m",
708
+ "\u{10315}": "t",
709
+ "\u{10317}": "x",
710
+ "\u{1031A}": "8",
711
+ "\u{10320}": "l",
712
+ "\u{10322}": "x",
713
+ // Deseret (7)
714
+ "\u{10404}": "o",
715
+ "\u{10415}": "c",
716
+ "\u{1041B}": "l",
717
+ "\u{10420}": "s",
718
+ "\u{1042C}": "o",
719
+ "\u{1043D}": "c",
720
+ "\u{10448}": "s",
721
+ // Osage (6)
722
+ "\u{104B4}": "r",
723
+ "\u{104C2}": "o",
724
+ "\u{104CE}": "u",
725
+ "\u{104D2}": "7",
726
+ "\u{104EA}": "o",
727
+ "\u{104F6}": "u",
728
+ // Elbasan (8)
729
+ "\u{10513}": "n",
730
+ "\u{10516}": "o",
731
+ "\u{10518}": "k",
732
+ "\u{1051C}": "c",
733
+ "\u{1051D}": "v",
734
+ "\u{10525}": "f",
735
+ "\u{10526}": "l",
736
+ "\u{10527}": "x",
737
+ // Tirhuta (1)
738
+ "\u{114D0}": "o",
739
+ // Ahom (4)
740
+ "\u{11706}": "v",
741
+ "\u{1170A}": "w",
742
+ "\u{1170E}": "w",
743
+ "\u{1170F}": "w",
744
+ // Warang Citi (35)
745
+ "\u{118A0}": "v",
746
+ "\u{118A2}": "f",
747
+ "\u{118A3}": "l",
748
+ "\u{118A4}": "y",
749
+ "\u{118A6}": "e",
750
+ "\u{118A9}": "z",
751
+ "\u{118AC}": "9",
752
+ "\u{118AE}": "e",
753
+ "\u{118AF}": "4",
754
+ "\u{118B2}": "l",
755
+ "\u{118B5}": "o",
756
+ "\u{118B8}": "u",
757
+ "\u{118BB}": "5",
758
+ "\u{118BC}": "t",
759
+ "\u{118C0}": "v",
760
+ "\u{118C1}": "s",
761
+ "\u{118C2}": "f",
762
+ "\u{118C3}": "i",
763
+ "\u{118C4}": "z",
764
+ "\u{118C6}": "7",
765
+ "\u{118C8}": "o",
766
+ "\u{118CA}": "3",
767
+ "\u{118CC}": "9",
768
+ "\u{118D5}": "6",
769
+ "\u{118D6}": "9",
770
+ "\u{118D7}": "o",
771
+ "\u{118D8}": "u",
772
+ "\u{118DC}": "y",
773
+ "\u{118E0}": "o",
774
+ "\u{118E5}": "z",
775
+ "\u{118E6}": "w",
776
+ "\u{118E9}": "c",
777
+ "\u{118EC}": "x",
778
+ "\u{118EF}": "w",
779
+ "\u{118F2}": "c",
780
+ // Masaram Gondi (3)
781
+ "\u{11DDA}": "l",
782
+ "\u{11DE0}": "o",
783
+ "\u{11DE1}": "l",
784
+ // Medefaidrin (2)
785
+ "\u{16EAA}": "l",
786
+ "\u{16EB6}": "b",
787
+ // Miao (12)
788
+ "\u{16F08}": "v",
789
+ "\u{16F0A}": "t",
790
+ "\u{16F16}": "l",
791
+ "\u{16F28}": "l",
792
+ "\u{16F35}": "r",
793
+ "\u{16F3A}": "s",
794
+ "\u{16F3B}": "3",
795
+ "\u{16F40}": "a",
796
+ "\u{16F42}": "u",
797
+ "\u{16F43}": "y",
798
+ // Greek Musical Notation (6)
799
+ "\u{1D206}": "3",
800
+ "\u{1D20D}": "v",
801
+ "\u{1D212}": "7",
802
+ "\u{1D213}": "f",
803
+ "\u{1D216}": "r",
804
+ "\u{1D22A}": "l",
805
+ // Mathematical Alphanumeric Symbols (117)
806
+ "\u{1D6A4}": "i",
807
+ "\u{1D6A8}": "a",
808
+ "\u{1D6A9}": "b",
809
+ "\u{1D6AC}": "e",
810
+ "\u{1D6AD}": "z",
811
+ "\u{1D6AE}": "h",
812
+ "\u{1D6B0}": "l",
813
+ "\u{1D6B1}": "k",
814
+ "\u{1D6B3}": "m",
815
+ "\u{1D6B4}": "n",
816
+ "\u{1D6B6}": "o",
817
+ "\u{1D6B8}": "p",
818
+ "\u{1D6BB}": "t",
819
+ "\u{1D6BC}": "y",
820
+ "\u{1D6BE}": "x",
821
+ "\u{1D6C2}": "a",
822
+ "\u{1D6C4}": "y",
823
+ "\u{1D6CA}": "i",
824
+ "\u{1D6CE}": "v",
825
+ "\u{1D6D0}": "o",
826
+ "\u{1D6D2}": "p",
827
+ "\u{1D6D4}": "o",
828
+ "\u{1D6D6}": "u",
829
+ "\u{1D6E0}": "p",
830
+ "\u{1D6E2}": "a",
831
+ "\u{1D6E3}": "b",
832
+ "\u{1D6E6}": "e",
833
+ "\u{1D6E7}": "z",
834
+ "\u{1D6E8}": "h",
835
+ "\u{1D6EA}": "l",
836
+ "\u{1D6EB}": "k",
837
+ "\u{1D6ED}": "m",
838
+ "\u{1D6EE}": "n",
839
+ "\u{1D6F0}": "o",
840
+ "\u{1D6F2}": "p",
841
+ "\u{1D6F5}": "t",
842
+ "\u{1D6F6}": "y",
843
+ "\u{1D6F8}": "x",
844
+ "\u{1D6FC}": "a",
845
+ "\u{1D6FE}": "y",
846
+ "\u{1D704}": "i",
847
+ "\u{1D708}": "v",
848
+ "\u{1D70A}": "o",
849
+ "\u{1D70C}": "p",
850
+ "\u{1D70E}": "o",
851
+ "\u{1D710}": "u",
852
+ "\u{1D71A}": "p",
853
+ "\u{1D71C}": "a",
854
+ "\u{1D71D}": "b",
855
+ "\u{1D720}": "e",
856
+ "\u{1D721}": "z",
857
+ "\u{1D722}": "h",
858
+ "\u{1D724}": "l",
859
+ "\u{1D725}": "k",
860
+ "\u{1D727}": "m",
861
+ "\u{1D728}": "n",
862
+ "\u{1D72A}": "o",
863
+ "\u{1D72C}": "p",
864
+ "\u{1D72F}": "t",
865
+ "\u{1D730}": "y",
866
+ "\u{1D732}": "x",
867
+ "\u{1D736}": "a",
868
+ "\u{1D738}": "y",
869
+ "\u{1D73E}": "i",
870
+ "\u{1D742}": "v",
871
+ "\u{1D744}": "o",
872
+ "\u{1D746}": "p",
873
+ "\u{1D748}": "o",
874
+ "\u{1D74A}": "u",
875
+ "\u{1D754}": "p",
876
+ "\u{1D756}": "a",
877
+ "\u{1D757}": "b",
878
+ "\u{1D75A}": "e",
879
+ "\u{1D75B}": "z",
880
+ "\u{1D75C}": "h",
881
+ "\u{1D75E}": "l",
882
+ "\u{1D75F}": "k",
883
+ "\u{1D761}": "m",
884
+ "\u{1D762}": "n",
885
+ "\u{1D764}": "o",
886
+ "\u{1D766}": "p",
887
+ "\u{1D769}": "t",
888
+ "\u{1D76A}": "y",
889
+ "\u{1D76C}": "x",
890
+ "\u{1D770}": "a",
891
+ "\u{1D772}": "y",
892
+ "\u{1D778}": "i",
893
+ "\u{1D77C}": "v",
894
+ "\u{1D77E}": "o",
895
+ "\u{1D780}": "p",
896
+ "\u{1D782}": "o",
897
+ "\u{1D784}": "u",
898
+ "\u{1D78E}": "p",
899
+ "\u{1D790}": "a",
900
+ "\u{1D791}": "b",
901
+ "\u{1D794}": "e",
902
+ "\u{1D795}": "z",
903
+ "\u{1D796}": "h",
904
+ "\u{1D798}": "l",
905
+ "\u{1D799}": "k",
906
+ "\u{1D79B}": "m",
907
+ "\u{1D79C}": "n",
908
+ "\u{1D79E}": "o",
909
+ "\u{1D7A0}": "p",
910
+ "\u{1D7A3}": "t",
911
+ "\u{1D7A4}": "y",
912
+ "\u{1D7A6}": "x",
913
+ "\u{1D7AA}": "a",
914
+ "\u{1D7AC}": "y",
915
+ "\u{1D7B2}": "i",
916
+ "\u{1D7B6}": "v",
917
+ "\u{1D7B8}": "o",
918
+ "\u{1D7BA}": "p",
919
+ "\u{1D7BC}": "o",
920
+ "\u{1D7BE}": "u",
921
+ "\u{1D7C8}": "p",
922
+ "\u{1D7CA}": "f",
923
+ // Mende Kikakui (2)
924
+ "\u{1E8C7}": "l",
925
+ "\u{1E8CB}": "8",
926
+ // Arabic Mathematical Alphabetic Symbols (5)
927
+ "\u{1EE00}": "l",
928
+ "\u{1EE24}": "o",
929
+ "\u{1EE64}": "o",
930
+ "\u{1EE80}": "l",
931
+ "\u{1EE84}": "o",
932
+ // Miscellaneous Symbols and Pictographs (2)
933
+ "\u{1F74C}": "c",
934
+ "\u{1F768}": "t"
297
935
  };
298
936
  function createHomoglyphValidator(options) {
299
937
  const message = options?.message ?? "That name contains characters that could be confused with other letters.";
@@ -303,8 +941,10 @@ function createHomoglyphValidator(options) {
303
941
  Object.assign(map, options.additionalMappings);
304
942
  }
305
943
  const confusableChars = Object.keys(map);
306
- const confusableRegex = confusableChars.length > 0 ? new RegExp("[" + confusableChars.join("") + "]") : null;
307
- const cyrillicOrGreekRegex = /[\u0370-\u03FF\u0400-\u04FF\u0500-\u052F]/;
944
+ const confusableRegex = confusableChars.length > 0 ? new RegExp(
945
+ "[" + confusableChars.map((c) => c.replace(/[\\\]^-]/g, "\\$&")).join("") + "]"
946
+ ) : null;
947
+ const nonLatinRegex = /[\u0370-\u03FF\u0400-\u04FF\u0500-\u052F\u0530-\u058F\u0590-\u05FF\u0600-\u074F\u0900-\u0DFF\u0E00-\u0EFF\u1000-\u109F\u10A0-\u10FF\u1200-\u137F\u13A0-\u13FF\u1400-\u167F\u16A0-\u16FF\u1780-\u17FF\u2C80-\u2CFF\u2D30-\u2D7F\uA4D0-\uA4FF\uA6A0-\uA6FF\uAB70-\uABBF]/;
308
948
  const latinRegex = /[a-zA-Z]/;
309
949
  return async (value) => {
310
950
  if (confusableRegex && confusableRegex.test(value)) {
@@ -312,8 +952,8 @@ function createHomoglyphValidator(options) {
312
952
  }
313
953
  if (rejectMixedScript) {
314
954
  const hasLatin = latinRegex.test(value);
315
- const hasCyrillicOrGreek = cyrillicOrGreekRegex.test(value);
316
- if (hasLatin && hasCyrillicOrGreek) {
955
+ const hasNonLatin = nonLatinRegex.test(value);
956
+ if (hasLatin && hasNonLatin) {
317
957
  return { available: false, message };
318
958
  }
319
959
  }
@@ -347,7 +987,7 @@ function createNamespaceGuard(config, adapter) {
347
987
  const purelyNumericMsg = configMessages.purelyNumeric ?? "Identifiers cannot be purely numeric.";
348
988
  const cacheEnabled = !!config.cache;
349
989
  const cacheTtl = config.cache?.ttl ?? 5e3;
350
- const cacheMaxSize = 1e3;
990
+ const cacheMaxSize = config.cache?.maxSize ?? 1e3;
351
991
  const cacheMap = /* @__PURE__ */ new Map();
352
992
  let cacheHits = 0;
353
993
  let cacheMisses = 0;