@arkyn/shared 3.0.1-beta.8 → 3.0.1-beta.81

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 (66) hide show
  1. package/README.md +452 -67
  2. package/dist/bundle.js +2337 -0
  3. package/dist/bundle.umd.cjs +6 -0
  4. package/dist/formats/formatToCapitalizeFirstWordLetter.d.ts +35 -0
  5. package/dist/formats/formatToCapitalizeFirstWordLetter.d.ts.map +1 -0
  6. package/dist/formats/formatToCapitalizeFirstWordLetter.js +42 -0
  7. package/dist/index.d.ts +2 -7
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +2 -8
  10. package/dist/services/isHtml.d.ts +22 -0
  11. package/dist/services/isHtml.d.ts.map +1 -0
  12. package/dist/services/isHtml.js +24 -0
  13. package/package.json +26 -6
  14. package/dist/validations/validateCep.d.ts +0 -24
  15. package/dist/validations/validateCep.d.ts.map +0 -1
  16. package/dist/validations/validateCep.js +0 -33
  17. package/dist/validations/validateCnpj.d.ts +0 -22
  18. package/dist/validations/validateCnpj.d.ts.map +0 -1
  19. package/dist/validations/validateCnpj.js +0 -52
  20. package/dist/validations/validateCpf.d.ts +0 -24
  21. package/dist/validations/validateCpf.d.ts.map +0 -1
  22. package/dist/validations/validateCpf.js +0 -54
  23. package/dist/validations/validateDate.d.ts +0 -34
  24. package/dist/validations/validateDate.d.ts.map +0 -1
  25. package/dist/validations/validateDate.js +0 -73
  26. package/dist/validations/validatePassword.d.ts +0 -21
  27. package/dist/validations/validatePassword.d.ts.map +0 -1
  28. package/dist/validations/validatePassword.js +0 -34
  29. package/dist/validations/validatePhone.d.ts +0 -29
  30. package/dist/validations/validatePhone.d.ts.map +0 -1
  31. package/dist/validations/validatePhone.js +0 -44
  32. package/dist/validations/validateRg.d.ts +0 -22
  33. package/dist/validations/validateRg.d.ts.map +0 -1
  34. package/dist/validations/validateRg.js +0 -31
  35. package/src/formats/formatDate.ts +0 -92
  36. package/src/formats/formatJsonObject.ts +0 -90
  37. package/src/formats/formatJsonString.ts +0 -50
  38. package/src/formats/formatToCep.ts +0 -39
  39. package/src/formats/formatToCnpj.ts +0 -40
  40. package/src/formats/formatToCpf.ts +0 -40
  41. package/src/formats/formatToCpfCnpj.ts +0 -38
  42. package/src/formats/formatToCurrency.ts +0 -63
  43. package/src/formats/formatToDate.ts +0 -70
  44. package/src/formats/formatToEllipsis.ts +0 -25
  45. package/src/formats/formatToHiddenDigits.ts +0 -92
  46. package/src/formats/formatToPhone.ts +0 -170
  47. package/src/generators/generateColorByString.ts +0 -33
  48. package/src/generators/generateId.ts +0 -61
  49. package/src/generators/generateSlug.ts +0 -31
  50. package/src/index.ts +0 -36
  51. package/src/services/calculateCardInstallment.ts +0 -73
  52. package/src/services/ensureQuotes.ts +0 -25
  53. package/src/services/maskSensitiveData.ts +0 -68
  54. package/src/services/removeCurrencySymbols.ts +0 -29
  55. package/src/services/removeNonNumeric.ts +0 -20
  56. package/src/services/stripHtmlTags.ts +0 -20
  57. package/src/services/truncateLargeFields.ts +0 -69
  58. package/src/validations/validateCep.ts +0 -41
  59. package/src/validations/validateCnpj.ts +0 -65
  60. package/src/validations/validateCpf.ts +0 -62
  61. package/src/validations/validateDate.ts +0 -86
  62. package/src/validations/validatePassword.ts +0 -41
  63. package/src/validations/validatePhone.ts +0 -50
  64. package/src/validations/validateRg.ts +0 -37
  65. package/tsconfig.json +0 -20
  66. package/vitest.config.ts +0 -5
@@ -0,0 +1,6 @@
1
+ (function(t,k){typeof exports=="object"&&typeof module<"u"?k(exports):typeof define=="function"&&define.amd?define(["exports"],k):(t=typeof globalThis<"u"?globalThis:t||self,k(t["@arkyn/shared"]={}))})(this,function(t){"use strict";function k(_,n){const e=a=>a.toString().padStart(2,"0"),s={YYYY:_.getFullYear().toString(),YY:_.getFullYear().toString().slice(-2),MM:e(_.getMonth()+1),DD:e(_.getDate()),hh:e(_.getHours()),mm:e(_.getMinutes()),ss:e(_.getSeconds())};return n.replace(/YYYY|YY|MM|DD|hh|mm|ss/g,a=>s[a])}const G=([_,n="00:00:00"],e,s,a=0)=>{const o=_.split(/[-/]/).map(Number),r=n.split(".")[0].split(":").map(Number);let i,c,l;const[C=0,v=0,p=0]=r;switch(e){case"brazilianDate":[i,c,l]=o;break;case"isoDate":[l,c,i]=o;break;case"timestamp":[l,c,i]=o.map(Number);break;default:throw new Error("Invalid input format")}const y=new Date(l,c-1,i,C,v,p);if(isNaN(y.getTime()))throw new Error("Invalid date");return y.setUTCHours(y.getUTCHours()+a),k(y,s)},d=(_,n)=>{const e=" ".repeat(n);let s="";if(typeof _=="object"&&_!==null)if(Array.isArray(_))_.length===0?s+="[]":(s+=`[
2
+ `,_.forEach((a,o)=>{s+=e+" "+d(a,n+1),o<_.length-1&&(s+=","),s+=`
3
+ `}),s+=e+"]");else{const a=Object.keys(_);a.length===0?s+="{}":(s+=`{
4
+ `,a.forEach((o,r)=>{s+=e+' "'+o+'": '+d(_[o],n+1),r<a.length-1&&(s+=","),s+=`
5
+ `}),s+=e+"}")}else if(typeof _=="string")try{const a=JSON.parse(_);s+=d(a,n)}catch{s+='"'+_+'"'}else s+=_;return s},B=_=>{try{const n=JSON.parse(_);return d(n,0)}catch(n){throw new Error(`Invalid JSON string
6
+ ${n}`)}};function U(_){return _.split(" ").map(s=>{const a=s.charAt(0).toUpperCase(),o=s.slice(1).toLowerCase();return a+o}).join(" ")}const m=_=>_.replace(/[^0-9]/g,""),H=_=>{const e=m(_).match(/^(\d{5})(\d{3})$/);if(e)return`${e[1]}-${e[2]}`;throw new Error("Invalid CEP format")},x=_=>{const e=m(_).match(/^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/);if(e)return`${e[1]}.${e[2]}.${e[3]}/${e[4]}-${e[5]}`;throw new Error("Invalid CNPJ length")},F=_=>{const e=m(_).match(/^(\d{3})(\d{3})(\d{3})(\d{2})$/);if(e)return`${e[1]}.${e[2]}.${e[3]}-${e[4]}`;throw new Error("Invalid CPF format")},K=_=>{const n=_.replace(/\D/g,"");if(n.length===11)return F(n);if(n.length===14)return x(n);throw new Error("Invalid CPF or CNPJ length")},S=[{name:"Afghanistan",code:"+93",prefix:null,iso:"AF",flag:"https://cdn.kcak11.com/CountryFlags/countries/af.svg",mask:"__-___-____"},{name:"Aland Islands",code:"+358",prefix:null,iso:"AX",flag:"https://cdn.kcak11.com/CountryFlags/countries/ax.svg",mask:"(___) ___-__-__"},{name:"Albania",code:"+355",prefix:null,iso:"AL",flag:"https://cdn.kcak11.com/CountryFlags/countries/al.svg",mask:"(___) ___-___"},{name:"Algeria",code:"+213",prefix:null,iso:"DZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/dz.svg",mask:"__-___-____"},{name:"American Samoa",code:"+1",prefix:"684",iso:"AS",flag:"https://cdn.kcak11.com/CountryFlags/countries/as.svg",mask:"(684) ___-____"},{name:"Andorra",code:"+376",prefix:null,iso:"AD",flag:"https://cdn.kcak11.com/CountryFlags/countries/ad.svg",mask:"___-___"},{name:"Angola",code:"+244",prefix:null,iso:"AO",flag:"https://cdn.kcak11.com/CountryFlags/countries/ao.svg",mask:"(___) ___-___"},{name:"Anguilla",code:"+1",prefix:"264",iso:"AI",flag:"https://cdn.kcak11.com/CountryFlags/countries/ai.svg",mask:"(264) ___-____"},{name:"Antarctica",code:"+672",prefix:"1",iso:"AQ",flag:"https://cdn.kcak11.com/CountryFlags/countries/aq.svg",mask:"1__-___"},{name:"Antigua and Barbuda",code:"+1",prefix:"268",iso:"AG",flag:"https://cdn.kcak11.com/CountryFlags/countries/ag.svg",mask:"(268) ___-____"},{name:"Argentina",code:"+54",prefix:null,iso:"AR",flag:"https://cdn.kcak11.com/CountryFlags/countries/ar.svg",mask:"(___) ___-____"},{name:"Armenia",code:"+374",prefix:null,iso:"AM",flag:"https://cdn.kcak11.com/CountryFlags/countries/am.svg",mask:"__-___-___"},{name:"Aruba",code:"+297",prefix:null,iso:"AW",flag:"https://cdn.kcak11.com/CountryFlags/countries/aw.svg",mask:"___-____"},{name:"Ascension Island",code:"+247",prefix:null,iso:"AC",flag:"https://cdn.kcak11.com/CountryFlags/countries/sh.svg",mask:"____"},{name:"Australia",code:"+61",prefix:null,iso:"AU",flag:"https://cdn.kcak11.com/CountryFlags/countries/au.svg",mask:"_-____-____"},{name:"Austria",code:"+43",prefix:null,iso:"AT",flag:"https://cdn.kcak11.com/CountryFlags/countries/at.svg",mask:"(___) ___-____"},{name:"Azerbaijan",code:"+994",prefix:null,iso:"AZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/az.svg",mask:"__-___-__-__"},{name:"Bahamas",code:"+1",prefix:"242",iso:"BS",flag:"https://cdn.kcak11.com/CountryFlags/countries/bs.svg",mask:"(242) ___-____"},{name:"Bahrain",code:"+973",prefix:null,iso:"BH",flag:"https://cdn.kcak11.com/CountryFlags/countries/bh.svg",mask:"____-____"},{name:"Bangladesh",code:"+880",prefix:"1",iso:"BD",flag:"https://cdn.kcak11.com/CountryFlags/countries/bd.svg",mask:"1___-______"},{name:"Barbados",code:"+1",prefix:"246",iso:"BB",flag:"https://cdn.kcak11.com/CountryFlags/countries/bb.svg",mask:"(246) ___-____"},{name:"Belarus",code:"+375",prefix:null,iso:"BY",flag:"https://cdn.kcak11.com/CountryFlags/countries/by.svg",mask:"(__) ___-__-__"},{name:"Belgium",code:"+32",prefix:null,iso:"BE",flag:"https://cdn.kcak11.com/CountryFlags/countries/be.svg",mask:"(___) ___-___"},{name:"Belize",code:"+501",prefix:null,iso:"BZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/bz.svg",mask:"___-____"},{name:"Benin",code:"+229",prefix:null,iso:"BJ",flag:"https://cdn.kcak11.com/CountryFlags/countries/bj.svg",mask:"__-__-____"},{name:"Bermuda",code:"+1",prefix:"441",iso:"BM",flag:"https://cdn.kcak11.com/CountryFlags/countries/bm.svg",mask:"(441) ___-____"},{name:"Bhutan",code:"+975",prefix:null,iso:"BT",flag:"https://cdn.kcak11.com/CountryFlags/countries/bt.svg",mask:"_-___-___"},{name:"Bolivia",code:"+591",prefix:null,iso:"BO",flag:"https://cdn.kcak11.com/CountryFlags/countries/bo.svg",mask:"_-___-____"},{name:"Bosnia and Herzegovina",code:"+387",prefix:null,iso:"BA",flag:"https://cdn.kcak11.com/CountryFlags/countries/ba.svg",mask:"__-_____"},{name:"Botswana",code:"+267",prefix:null,iso:"BW",flag:"https://cdn.kcak11.com/CountryFlags/countries/bw.svg",mask:"__-___-___"},{name:"Brasil",code:"+55",prefix:null,iso:"BR",flag:"https://cdn.kcak11.com/CountryFlags/countries/br.svg",mask:"(__) _____-____"},{name:"British Indian Ocean Territory",code:"+246",prefix:null,iso:"IO",flag:"https://cdn.kcak11.com/CountryFlags/countries/io.svg",mask:"___-____"},{name:"Brunei Darussalam",code:"+673",prefix:null,iso:"BN",flag:"https://cdn.kcak11.com/CountryFlags/countries/bn.svg",mask:"___-____"},{name:"Bulgaria",code:"+359",prefix:null,iso:"BG",flag:"https://cdn.kcak11.com/CountryFlags/countries/bg.svg",mask:"(___) ___-___"},{name:"Burkina Faso",code:"+226",prefix:null,iso:"BF",flag:"https://cdn.kcak11.com/CountryFlags/countries/bf.svg",mask:"__-__-____"},{name:"Burundi",code:"+257",prefix:null,iso:"BI",flag:"https://cdn.kcak11.com/CountryFlags/countries/bi.svg",mask:"__-__-____"},{name:"Cambodia",code:"+855",prefix:null,iso:"KH",flag:"https://cdn.kcak11.com/CountryFlags/countries/kh.svg",mask:"__-___-___"},{name:"Cameroon",code:"+237",prefix:null,iso:"CM",flag:"https://cdn.kcak11.com/CountryFlags/countries/cm.svg",mask:"____-____"},{name:"Canada",code:"+1",prefix:null,iso:"CA",flag:"https://cdn.kcak11.com/CountryFlags/countries/ca.svg",mask:"(___) ___-____"},{name:"Cape Verde",code:"+238",prefix:null,iso:"CV",flag:"https://cdn.kcak11.com/CountryFlags/countries/cv.svg",mask:"(___) __-__"},{name:"Cayman Islands",code:"+1",prefix:"345",iso:"KY",flag:"https://cdn.kcak11.com/CountryFlags/countries/ky.svg",mask:"(345) ___-____"},{name:"Central African Republic",code:"+236",prefix:null,iso:"CF",flag:"https://cdn.kcak11.com/CountryFlags/countries/cf.svg",mask:"__-__-____"},{name:"Chad",code:"+235",prefix:null,iso:"TD",flag:"https://cdn.kcak11.com/CountryFlags/countries/td.svg",mask:"__-__-__-__"},{name:"Chile",code:"+56",prefix:null,iso:"CL",flag:"https://cdn.kcak11.com/CountryFlags/countries/cl.svg",mask:"_-____-____"},{name:"China",code:"+86",prefix:null,iso:"CN",flag:"https://cdn.kcak11.com/CountryFlags/countries/cn.svg",mask:"__-_____-_____"},{name:"Christmas Island",code:"+61",prefix:null,iso:"CX",flag:"https://cdn.kcak11.com/CountryFlags/countries/cx.svg",mask:"_-____-____"},{name:"Cocos (Keeling) Islands",code:"+61",prefix:null,iso:"CC",flag:"https://cdn.kcak11.com/CountryFlags/countries/cc.svg",mask:"_-____-____"},{name:"Colombia",code:"+57",prefix:null,iso:"CO",flag:"https://cdn.kcak11.com/CountryFlags/countries/co.svg",mask:"(___) ___-____"},{name:"Comoros",code:"+269",prefix:null,iso:"KM",flag:"https://cdn.kcak11.com/CountryFlags/countries/km.svg",mask:"__-_____"},{name:"Congo",code:"+242",prefix:null,iso:"CG",flag:"https://cdn.kcak11.com/CountryFlags/countries/cg.svg",mask:"__-_____"},{name:"Cook Islands",code:"+682",prefix:null,iso:"CK",flag:"https://cdn.kcak11.com/CountryFlags/countries/ck.svg",mask:"__-___"},{name:"Costa Rica",code:"+506",prefix:null,iso:"CR",flag:"https://cdn.kcak11.com/CountryFlags/countries/cr.svg",mask:"____-____"},{name:"Croatia",code:"+385",prefix:null,iso:"HR",flag:"https://cdn.kcak11.com/CountryFlags/countries/hr.svg",mask:"__-___-___"},{name:"Cuba",code:"+53",prefix:null,iso:"CU",flag:"https://cdn.kcak11.com/CountryFlags/countries/cu.svg",mask:"_-___-____"},{name:"Cyprus",code:"+357",prefix:null,iso:"CY",flag:"https://cdn.kcak11.com/CountryFlags/countries/cy.svg",mask:"__-___-___"},{name:"Czech Republic",code:"+420",prefix:null,iso:"CZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/cz.svg",mask:"(___) ___-___"},{name:"Democratic Republic of the Congo",code:"+243",prefix:null,iso:"CD",flag:"https://cdn.kcak11.com/CountryFlags/countries/cd.svg",mask:"(___) ___-___"},{name:"Denmark",code:"+45",prefix:null,iso:"DK",flag:"https://cdn.kcak11.com/CountryFlags/countries/dk.svg",mask:"__-__-__-__"},{name:"Djibouti",code:"+253",prefix:null,iso:"DJ",flag:"https://cdn.kcak11.com/CountryFlags/countries/dj.svg",mask:"__-__-__-__"},{name:"Dominica",code:"+1",prefix:"767",iso:"DM",flag:"https://cdn.kcak11.com/CountryFlags/countries/dm.svg",mask:"(767) ___-____"},{name:"Dominican Republic",code:"+1",prefix:"849",iso:"DO",flag:"https://cdn.kcak11.com/CountryFlags/countries/do.svg",mask:"(894) ___-____"},{name:"Ecuador",code:"+593",prefix:null,iso:"EC",flag:"https://cdn.kcak11.com/CountryFlags/countries/ec.svg",mask:"__-___-____"},{name:"Egypt",code:"+20",prefix:null,iso:"EG",flag:"https://cdn.kcak11.com/CountryFlags/countries/eg.svg",mask:"(___) ___-____"},{name:"El Salvador",code:"+503",prefix:null,iso:"SV",flag:"https://cdn.kcak11.com/CountryFlags/countries/sv.svg",mask:"__-__-____"},{name:"Equatorial Guinea",code:"+240",prefix:null,iso:"GQ",flag:"https://cdn.kcak11.com/CountryFlags/countries/gq.svg",mask:"__-___-____"},{name:"Eritrea",code:"+291",prefix:null,iso:"ER",flag:"https://cdn.kcak11.com/CountryFlags/countries/er.svg",mask:"_-___-___"},{name:"Estonia",code:"+372",prefix:null,iso:"EE",flag:"https://cdn.kcak11.com/CountryFlags/countries/ee.svg",mask:"____-____"},{name:"Eswatini",code:"+268",prefix:null,iso:"SZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/sz.svg",mask:"__-__-____"},{name:"Ethiopia",code:"+251",prefix:null,iso:"ET",flag:"https://cdn.kcak11.com/CountryFlags/countries/et.svg",mask:"__-___-____"},{name:"Falkland Islands (Malvinas)",code:"+500",prefix:null,iso:"FK",flag:"https://cdn.kcak11.com/CountryFlags/countries/fk.svg",mask:"_____"},{name:"Faroe Islands",code:"+298",prefix:null,iso:"FO",flag:"https://cdn.kcak11.com/CountryFlags/countries/fo.svg",mask:"__ __ __"},{name:"Fiji",code:"+679",prefix:null,iso:"FJ",flag:"https://cdn.kcak11.com/CountryFlags/countries/fj.svg",mask:"__-_____"},{name:"Finland",code:"+358",prefix:null,iso:"FI",flag:"https://cdn.kcak11.com/CountryFlags/countries/fi.svg",mask:"__ ___ ____"},{name:"France",code:"+33",prefix:null,iso:"FR",flag:"https://cdn.kcak11.com/CountryFlags/countries/fr.svg",mask:"_ __ __ __ __"},{name:"French Guiana",code:"+594",prefix:null,iso:"GF",flag:"https://cdn.kcak11.com/CountryFlags/countries/gf.svg",mask:"___ __ __ __"},{name:"French Polynesia",code:"+689",prefix:null,iso:"PF",flag:"https://cdn.kcak11.com/CountryFlags/countries/pf.svg",mask:"__ __ __ __"},{name:"Gabon",code:"+241",prefix:null,iso:"GA",flag:"https://cdn.kcak11.com/CountryFlags/countries/ga.svg",mask:"_ __ __ __"},{name:"Gambia",code:"+220",prefix:null,iso:"GM",flag:"https://cdn.kcak11.com/CountryFlags/countries/gm.svg",mask:"___ ____"},{name:"Georgia",code:"+995",prefix:null,iso:"GE",flag:"https://cdn.kcak11.com/CountryFlags/countries/ge.svg",mask:"(___) ___-___"},{name:"Germany",code:"+49",prefix:"3",iso:"DE",flag:"https://cdn.kcak11.com/CountryFlags/countries/de.svg",mask:"(3____) __-____"},{name:"Ghana",code:"+233",prefix:"03",iso:"GH",flag:"https://cdn.kcak11.com/CountryFlags/countries/gh.svg",mask:"03_ ___ ____"},{name:"Gibraltar",code:"+350",prefix:null,iso:"GI",flag:"https://cdn.kcak11.com/CountryFlags/countries/gi.svg",mask:"___-_____"},{name:"Greece",code:"+30",prefix:null,iso:"GR",flag:"https://cdn.kcak11.com/CountryFlags/countries/gr.svg",mask:"(___) ___-____"},{name:"Greenland",code:"+299",prefix:null,iso:"GL",flag:"https://cdn.kcak11.com/CountryFlags/countries/gl.svg",mask:"__-__-__"},{name:"Grenada",code:"+1",prefix:"473",iso:"GD",flag:"https://cdn.kcak11.com/CountryFlags/countries/gd.svg",mask:"(473) ___-____"},{name:"Guadeloupe",code:"+590",prefix:null,iso:"GP",flag:"https://cdn.kcak11.com/CountryFlags/countries/gp.svg",mask:"___ __ __ __"},{name:"Guam",code:"+1",prefix:"671",iso:"GU",flag:"https://cdn.kcak11.com/CountryFlags/countries/gu.svg",mask:"671 ___ ____"},{name:"Guatemala",code:"+502",prefix:null,iso:"GT",flag:"https://cdn.kcak11.com/CountryFlags/countries/gt.svg",mask:"_-___-____"},{name:"Guernsey",code:"+44",prefix:null,iso:"GG",flag:"https://cdn.kcak11.com/CountryFlags/countries/gg.svg",mask:"(____) ______"},{name:"Guinea",code:"+224",prefix:null,iso:"GN",flag:"https://cdn.kcak11.com/CountryFlags/countries/gn.svg",mask:"__-___-___"},{name:"Guinea-Bissau",code:"+245",prefix:null,iso:"GW",flag:"https://cdn.kcak11.com/CountryFlags/countries/gw.svg",mask:"_-______"},{name:"Guyana",code:"+592",prefix:null,iso:"GY",flag:"https://cdn.kcak11.com/CountryFlags/countries/gy.svg",mask:"___-____"},{name:"Haiti",code:"+509",prefix:null,iso:"HT",flag:"https://cdn.kcak11.com/CountryFlags/countries/ht.svg",mask:"__-__-____"},{name:"Holy See (Vatican City State)",code:"+39",prefix:"06698",iso:"VA",flag:"https://cdn.kcak11.com/CountryFlags/countries/va.svg",mask:"06 698_____"},{name:"Honduras",code:"+504",prefix:null,iso:"HN",flag:"https://cdn.kcak11.com/CountryFlags/countries/hn.svg",mask:"____-____"},{name:"Hong Kong",code:"+852",prefix:null,iso:"HK",flag:"https://cdn.kcak11.com/CountryFlags/countries/hk.svg",mask:"____-____"},{name:"Hungary",code:"+36",prefix:null,iso:"HU",flag:"https://cdn.kcak11.com/CountryFlags/countries/hu.svg",mask:"__ ___ ____"},{name:"Iceland",code:"+354",prefix:null,iso:"IS",flag:"https://cdn.kcak11.com/CountryFlags/countries/is.svg",mask:"___-____"},{name:"India",code:"+91",prefix:null,iso:"IN",flag:"https://cdn.kcak11.com/CountryFlags/countries/in.svg",mask:"(____) ___-___"},{name:"Indonesia",code:"+62",prefix:"8",iso:"ID",flag:"https://cdn.kcak11.com/CountryFlags/countries/id.svg",mask:"(8__) ___-__-___"},{name:"Iran",code:"+98",prefix:null,iso:"IR",flag:"https://cdn.kcak11.com/CountryFlags/countries/ir.svg",mask:"(___) ___-____"},{name:"Iraq",code:"+964",prefix:null,iso:"IQ",flag:"https://cdn.kcak11.com/CountryFlags/countries/iq.svg",mask:"(___) ___-____"},{name:"Ireland",code:"+353",prefix:null,iso:"IE",flag:"https://cdn.kcak11.com/CountryFlags/countries/ie.svg",mask:"(___) ___-___"},{name:"Isle of Man",code:"+44",prefix:null,iso:"IM",flag:"https://cdn.kcak11.com/CountryFlags/countries/im.svg",mask:"(____) ______"},{name:"Israel",code:"+972",prefix:"5",iso:"IL",flag:"https://cdn.kcak11.com/CountryFlags/countries/il.svg",mask:"__-___-____"},{name:"Italy",code:"+39",prefix:null,iso:"IT",flag:"https://cdn.kcak11.com/CountryFlags/countries/it.svg",mask:"(___) ____-___"},{name:"Ivory Coast / Cote d'Ivoire",code:"+225",prefix:null,iso:"CI",flag:"https://cdn.kcak11.com/CountryFlags/countries/ci.svg",mask:"__-___-___"},{name:"Jamaica",code:"+1",prefix:"876",iso:"JM",flag:"https://cdn.kcak11.com/CountryFlags/countries/jm.svg",mask:"(876) ___-____"},{name:"Japan",code:"+81",prefix:null,iso:"JP",flag:"https://cdn.kcak11.com/CountryFlags/countries/jp.svg",mask:"__-____-____"},{name:"Jersey",code:"+44",prefix:null,iso:"JE",flag:"https://cdn.kcak11.com/CountryFlags/countries/je.svg",mask:"(____) ____-______"},{name:"Jordan",code:"+962",prefix:null,iso:"JO",flag:"https://cdn.kcak11.com/CountryFlags/countries/jo.svg",mask:"_-____-____"},{name:"Kazakhstan",code:"+77",prefix:null,iso:"KZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/kz.svg",mask:"(_____) _ __ __"},{name:"Kenya",code:"+254",prefix:null,iso:"KE",flag:"https://cdn.kcak11.com/CountryFlags/countries/ke.svg",mask:"___-______"},{name:"Kiribati",code:"+686",prefix:null,iso:"KI",flag:"https://cdn.kcak11.com/CountryFlags/countries/ki.svg",mask:"__-___"},{name:"Korea, Democratic People's Republic of Korea",code:"+850",prefix:null,iso:"KP",flag:"https://cdn.kcak11.com/CountryFlags/countries/kp.svg",mask:"____-_____________"},{name:"Korea, Republic of South Korea",code:"+82",prefix:null,iso:"KR",flag:"https://cdn.kcak11.com/CountryFlags/countries/kr.svg",mask:"__-___-____"},{name:"Kosovo",code:"+383",prefix:null,iso:"XK",flag:"https://cdn.kcak11.com/CountryFlags/countries/xk.svg",mask:"___-___-___"},{name:"Kuwait",code:"+965",prefix:null,iso:"KW",flag:"https://cdn.kcak11.com/CountryFlags/countries/kw.svg",mask:"____-____"},{name:"Kyrgyzstan",code:"+996",prefix:null,iso:"KG",flag:"https://cdn.kcak11.com/CountryFlags/countries/kg.svg",mask:"(___) ___-___"},{name:"Laos",code:"+856",prefix:"20",iso:"LA",flag:"https://cdn.kcak11.com/CountryFlags/countries/la.svg",mask:"(20__) ___-___"},{name:"Latvia",code:"+371",prefix:null,iso:"LV",flag:"https://cdn.kcak11.com/CountryFlags/countries/lv.svg",mask:"__-___-___"},{name:"Lebanon",code:"+961",prefix:null,iso:"LB",flag:"https://cdn.kcak11.com/CountryFlags/countries/lb.svg",mask:"__-___-___"},{name:"Lesotho",code:"+266",prefix:null,iso:"LS",flag:"https://cdn.kcak11.com/CountryFlags/countries/ls.svg",mask:"_-___-____"},{name:"Liberia",code:"+231",prefix:null,iso:"LR",flag:"https://cdn.kcak11.com/CountryFlags/countries/lr.svg",mask:"__-___-___"},{name:"Libya",code:"+218",prefix:"21",iso:"LY",flag:"https://cdn.kcak11.com/CountryFlags/countries/ly.svg",mask:"21-___-____"},{name:"Liechtenstein",code:"+423",prefix:null,iso:"LI",flag:"https://cdn.kcak11.com/CountryFlags/countries/li.svg",mask:"(___) ___-____"},{name:"Lithuania",code:"+370",prefix:null,iso:"LT",flag:"https://cdn.kcak11.com/CountryFlags/countries/lt.svg",mask:"(___) __-___"},{name:"Luxembourg",code:"+352",prefix:null,iso:"LU",flag:"https://cdn.kcak11.com/CountryFlags/countries/lu.svg",mask:"(___) ___-___"},{name:"Macau",code:"+853",prefix:null,iso:"MO",flag:"https://cdn.kcak11.com/CountryFlags/countries/mo.svg",mask:"____-____"},{name:"Madagascar",code:"+261",prefix:null,iso:"MG",flag:"https://cdn.kcak11.com/CountryFlags/countries/mg.svg",mask:"__-__-_____"},{name:"Malawi",code:"+265",prefix:null,iso:"MW",flag:"https://cdn.kcak11.com/CountryFlags/countries/mw.svg",mask:"_-____-____"},{name:"Malaysia",code:"+60",prefix:null,iso:"MY",flag:"https://cdn.kcak11.com/CountryFlags/countries/my.svg",mask:"__-___-____"},{name:"Maldives",code:"+960",prefix:null,iso:"MV",flag:"https://cdn.kcak11.com/CountryFlags/countries/mv.svg",mask:"___-____"},{name:"Mali",code:"+223",prefix:null,iso:"ML",flag:"https://cdn.kcak11.com/CountryFlags/countries/ml.svg",mask:"__-__-____"},{name:"Malta",code:"+356",prefix:null,iso:"MT",flag:"https://cdn.kcak11.com/CountryFlags/countries/mt.svg",mask:"____-____"},{name:"Marshall Islands",code:"+692",prefix:null,iso:"MH",flag:"https://cdn.kcak11.com/CountryFlags/countries/mh.svg",mask:"___-____"},{name:"Martinique",code:"+596",prefix:null,iso:"MQ",flag:"https://cdn.kcak11.com/CountryFlags/countries/mq.svg",mask:"(___) __-__-__"},{name:"Mauritania",code:"+222",prefix:null,iso:"MR",flag:"https://cdn.kcak11.com/CountryFlags/countries/mr.svg",mask:"__-__-____"},{name:"Mauritius",code:"+230",prefix:null,iso:"MU",flag:"https://cdn.kcak11.com/CountryFlags/countries/mu.svg",mask:"___-____"},{name:"Mayotte",code:"+262",prefix:null,iso:"YT",flag:"https://cdn.kcak11.com/CountryFlags/countries/yt.svg",mask:"_____-____"},{name:"Mexico",code:"+52",prefix:null,iso:"MX",flag:"https://cdn.kcak11.com/CountryFlags/countries/mx.svg",mask:"(___) ___-____"},{name:"Micronesia, Federated States of Micronesia",code:"+691",prefix:null,iso:"FM",flag:"https://cdn.kcak11.com/CountryFlags/countries/fm.svg",mask:"___-____"},{name:"Moldova",code:"+373",prefix:null,iso:"MD",flag:"https://cdn.kcak11.com/CountryFlags/countries/md.svg",mask:"____-____"},{name:"Monaco",code:"+377",prefix:null,iso:"MC",flag:"https://cdn.kcak11.com/CountryFlags/countries/mc.svg",mask:"(___) ___-___"},{name:"Mongolia",code:"+976",prefix:null,iso:"MN",flag:"https://cdn.kcak11.com/CountryFlags/countries/mn.svg",mask:"__-__-____"},{name:"Montenegro",code:"+382",prefix:null,iso:"ME",flag:"https://cdn.kcak11.com/CountryFlags/countries/me.svg",mask:"__-___-___"},{name:"Montserrat",code:"+1",prefix:"664",iso:"MS",flag:"https://cdn.kcak11.com/CountryFlags/countries/ms.svg",mask:"(664) ___-____"},{name:"Morocco",code:"+212",prefix:null,iso:"MA",flag:"https://cdn.kcak11.com/CountryFlags/countries/ma.svg",mask:"__-____-___"},{name:"Mozambique",code:"+258",prefix:null,iso:"MZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/mz.svg",mask:"__-___-___"},{name:"Myanmar",code:"+95",prefix:null,iso:"MM",flag:"https://cdn.kcak11.com/CountryFlags/countries/mm.svg",mask:"__-___-___"},{name:"Namibia",code:"+264",prefix:null,iso:"NA",flag:"https://cdn.kcak11.com/CountryFlags/countries/na.svg",mask:"__-___-____"},{name:"Nauru",code:"+674",prefix:null,iso:"NR",flag:"https://cdn.kcak11.com/CountryFlags/countries/nr.svg",mask:"___-____"},{name:"Nepal",code:"+977",prefix:null,iso:"NP",flag:"https://cdn.kcak11.com/CountryFlags/countries/np.svg",mask:"__-___-___"},{name:"Netherlands",code:"+31",prefix:null,iso:"NL",flag:"https://cdn.kcak11.com/CountryFlags/countries/nl.svg",mask:"__-___-____"},{name:"New Caledonia",code:"+687",prefix:null,iso:"NC",flag:"https://cdn.kcak11.com/CountryFlags/countries/nc.svg",mask:"__-____"},{name:"New Zealand",code:"+64",prefix:null,iso:"NZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/nz.svg",mask:"(___) ___-____"},{name:"Nicaragua",code:"+505",prefix:null,iso:"NI",flag:"https://cdn.kcak11.com/CountryFlags/countries/ni.svg",mask:"____-____"},{name:"Niger",code:"+227",prefix:null,iso:"NE",flag:"https://cdn.kcak11.com/CountryFlags/countries/ne.svg",mask:"__-__-____"},{name:"Nigeria",code:"+234",prefix:null,iso:"NG",flag:"https://cdn.kcak11.com/CountryFlags/countries/ng.svg",mask:"(___) ___-____"},{name:"Niue",code:"+683",prefix:null,iso:"NU",flag:"https://cdn.kcak11.com/CountryFlags/countries/nu.svg",mask:"____"},{name:"Norfolk Island",code:"+672",prefix:"3",iso:"NF",flag:"https://cdn.kcak11.com/CountryFlags/countries/nf.svg",mask:"3__-___"},{name:"North Macedonia",code:"+389",prefix:null,iso:"MK",flag:"https://cdn.kcak11.com/CountryFlags/countries/mk.svg",mask:"__-___-___"},{name:"Northern Mariana Islands",code:"+1",prefix:"670",iso:"MP",flag:"https://cdn.kcak11.com/CountryFlags/countries/mp.svg",mask:"(670) ___-____"},{name:"Norway",code:"+47",prefix:null,iso:"NO",flag:"https://cdn.kcak11.com/CountryFlags/countries/no.svg",mask:"(___) __-___"},{name:"Oman",code:"+968",prefix:null,iso:"OM",flag:"https://cdn.kcak11.com/CountryFlags/countries/om.svg",mask:"__-___-___"},{name:"Pakistan",code:"+92",prefix:null,iso:"PK",flag:"https://cdn.kcak11.com/CountryFlags/countries/pk.svg",mask:"(___) ___-____"},{name:"Palau",code:"+680",prefix:null,iso:"PW",flag:"https://cdn.kcak11.com/CountryFlags/countries/pw.svg",mask:"___-____"},{name:"Palestine",code:"+970",prefix:null,iso:"PS",flag:"https://cdn.kcak11.com/CountryFlags/countries/ps.svg",mask:"__-___-____"},{name:"Panama",code:"+507",prefix:null,iso:"PA",flag:"https://cdn.kcak11.com/CountryFlags/countries/pa.svg",mask:"___-____"},{name:"Papua New Guinea",code:"+675",prefix:null,iso:"PG",flag:"https://cdn.kcak11.com/CountryFlags/countries/pg.svg",mask:"(___) __-___"},{name:"Paraguay",code:"+595",prefix:null,iso:"PY",flag:"https://cdn.kcak11.com/CountryFlags/countries/py.svg",mask:"(___) ___-___"},{name:"Peru",code:"+51",prefix:null,iso:"PE",flag:"https://cdn.kcak11.com/CountryFlags/countries/pe.svg",mask:"(___) ___-___"},{name:"Philippines",code:"+63",prefix:null,iso:"PH",flag:"https://cdn.kcak11.com/CountryFlags/countries/ph.svg",mask:"(___) ___-____"},{name:"Pitcairn",code:"+870",prefix:null,iso:"PN",flag:"https://cdn.kcak11.com/CountryFlags/countries/pn.svg",mask:"___-___-___"},{name:"Poland",code:"+48",prefix:null,iso:"PL",flag:"https://cdn.kcak11.com/CountryFlags/countries/pl.svg",mask:"(___) ___-___"},{name:"Portugal",code:"+351",prefix:null,iso:"PT",flag:"https://cdn.kcak11.com/CountryFlags/countries/pt.svg",mask:"__-___-____"},{name:"Puerto Rico",code:"+1",prefix:null,iso:"PR",flag:"https://cdn.kcak11.com/CountryFlags/countries/pr.svg",mask:"(___) ___ ____"},{name:"Qatar",code:"+974",prefix:null,iso:"QA",flag:"https://cdn.kcak11.com/CountryFlags/countries/qa.svg",mask:"____-____"},{name:"Reunion",code:"+262",prefix:null,iso:"RE",flag:"https://cdn.kcak11.com/CountryFlags/countries/re.svg",mask:"_____-____"},{name:"Romania",code:"+40",prefix:null,iso:"RO",flag:"https://cdn.kcak11.com/CountryFlags/countries/ro.svg",mask:"__-___-____"},{name:"Russia",code:"+7",prefix:null,iso:"RU",flag:"https://cdn.kcak11.com/CountryFlags/countries/ru.svg",mask:"(___) ___-__-__"},{name:"Rwanda",code:"+250",prefix:null,iso:"RW",flag:"https://cdn.kcak11.com/CountryFlags/countries/rw.svg",mask:"(___) ___-___"},{name:"Saint Barthelemy",code:"+590",prefix:null,iso:"BL",flag:"https://cdn.kcak11.com/CountryFlags/countries/bl.svg",mask:"___-__-__-__"},{name:"Saint Helena, Ascension and Tristan Da Cunha",code:"+290",prefix:null,iso:"SH",flag:"https://cdn.kcak11.com/CountryFlags/countries/sh.svg",mask:"____"},{name:"Saint Kitts and Nevis",code:"+1",prefix:null,iso:"KN",flag:"https://cdn.kcak11.com/CountryFlags/countries/kn.svg",mask:"(869) ___-____"},{name:"Saint Lucia",code:"+1",prefix:"758",iso:"LC",flag:"https://cdn.kcak11.com/CountryFlags/countries/lc.svg",mask:"(758) ___-____"},{name:"Saint Martin",code:"+590",prefix:null,iso:"MF",flag:"https://cdn.kcak11.com/CountryFlags/countries/mf.svg",mask:"(___) ___-___"},{name:"Saint Pierre and Miquelon",code:"+508",prefix:null,iso:"PM",flag:"https://cdn.kcak11.com/CountryFlags/countries/pm.svg",mask:"__-____"},{name:"Saint Vincent and the Grenadines",code:"+1",prefix:"784",iso:"VC",flag:"https://cdn.kcak11.com/CountryFlags/countries/vc.svg",mask:"(784) ___-____"},{name:"Samoa",code:"+685",prefix:null,iso:"WS",flag:"https://cdn.kcak11.com/CountryFlags/countries/ws.svg",mask:"__-____"},{name:"San Marino",code:"+378",prefix:null,iso:"SM",flag:"https://cdn.kcak11.com/CountryFlags/countries/sm.svg",mask:"____-______"},{name:"Sao Tome and Principe",code:"+239",prefix:null,iso:"ST",flag:"https://cdn.kcak11.com/CountryFlags/countries/st.svg",mask:"__-_____"},{name:"Saudi Arabia",code:"+966",prefix:null,iso:"SA",flag:"https://cdn.kcak11.com/CountryFlags/countries/sa.svg",mask:"_-____-____"},{name:"Senegal",code:"+221",prefix:null,iso:"SN",flag:"https://cdn.kcak11.com/CountryFlags/countries/sn.svg",mask:"__-___-____"},{name:"Serbia",code:"+381",prefix:null,iso:"RS",flag:"https://cdn.kcak11.com/CountryFlags/countries/rs.svg",mask:"__-___-____"},{name:"Seychelles",code:"+248",prefix:null,iso:"SC",flag:"https://cdn.kcak11.com/CountryFlags/countries/sc.svg",mask:"_-___-___"},{name:"Sierra Leone",code:"+232",prefix:null,iso:"SL",flag:"https://cdn.kcak11.com/CountryFlags/countries/sl.svg",mask:"__-______"},{name:"Singapore",code:"+65",prefix:null,iso:"SG",flag:"https://cdn.kcak11.com/CountryFlags/countries/sg.svg",mask:"____-____"},{name:"Sint Maarten",code:"+1",prefix:"721",iso:"SX",flag:"https://cdn.kcak11.com/CountryFlags/countries/sx.svg",mask:"(721) ___-____"},{name:"Slovakia",code:"+421",prefix:null,iso:"SK",flag:"https://cdn.kcak11.com/CountryFlags/countries/sk.svg",mask:"(___) ___-___"},{name:"Slovenia",code:"+386",prefix:null,iso:"SI",flag:"https://cdn.kcak11.com/CountryFlags/countries/si.svg",mask:"__-___-___"},{name:"Solomon Islands",code:"+677",prefix:null,iso:"SB",flag:"https://cdn.kcak11.com/CountryFlags/countries/sb.svg",mask:"___-____"},{name:"Somalia",code:"+252",prefix:null,iso:"SO",flag:"https://cdn.kcak11.com/CountryFlags/countries/so.svg",mask:"__-___-___"},{name:"South Africa",code:"+27",prefix:null,iso:"ZA",flag:"https://cdn.kcak11.com/CountryFlags/countries/za.svg",mask:"__-___-____"},{name:"South Georgia and the South Sandwich Islands",code:"+500",prefix:null,iso:"GS",flag:"https://cdn.kcak11.com/CountryFlags/countries/gs.svg",mask:"_____"},{name:"South Sudan",code:"+211",prefix:null,iso:"SS",flag:"https://cdn.kcak11.com/CountryFlags/countries/ss.svg",mask:"__-___-____"},{name:"Spain",code:"+34",prefix:null,iso:"ES",flag:"https://cdn.kcak11.com/CountryFlags/countries/es.svg",mask:"(___) ___-___"},{name:"Sri Lanka",code:"+94",prefix:null,iso:"LK",flag:"https://cdn.kcak11.com/CountryFlags/countries/lk.svg",mask:"__-___-____"},{name:"Sudan",code:"+249",prefix:null,iso:"SD",flag:"https://cdn.kcak11.com/CountryFlags/countries/sd.svg",mask:"__-___-____"},{name:"Suriname",code:"+597",prefix:null,iso:"SR",flag:"https://cdn.kcak11.com/CountryFlags/countries/sr.svg",mask:"___-____"},{name:"Svalbard and Jan Mayen",code:"+47",prefix:null,iso:"SJ",flag:"https://cdn.kcak11.com/CountryFlags/countries/sj.svg",mask:"(___) __-___"},{name:"Sweden",code:"+46",prefix:null,iso:"SE",flag:"https://cdn.kcak11.com/CountryFlags/countries/se.svg",mask:"__-___-____"},{name:"Switzerland",code:"+41",prefix:null,iso:"CH",flag:"https://cdn.kcak11.com/CountryFlags/countries/ch.svg",mask:"__-___-____"},{name:"Syrian Arab Republic",code:"+963",prefix:null,iso:"SY",flag:"https://cdn.kcak11.com/CountryFlags/countries/sy.svg",mask:"__-____-___"},{name:"Taiwan",code:"+886",prefix:null,iso:"TW",flag:"https://cdn.kcak11.com/CountryFlags/countries/tw.svg",mask:"_-____-____"},{name:"Tajikistan",code:"+992",prefix:null,iso:"TJ",flag:"https://cdn.kcak11.com/CountryFlags/countries/tj.svg",mask:"__-___-____"},{name:"United Republic of Tanzania",code:"+255",prefix:null,iso:"TZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/tz.svg",mask:"__-___-____"},{name:"Thailand",code:"+66",prefix:null,iso:"TH",flag:"https://cdn.kcak11.com/CountryFlags/countries/th.svg",mask:"__-___-____"},{name:"Timor-Leste",code:"+670",prefix:null,iso:"TL",flag:"https://cdn.kcak11.com/CountryFlags/countries/tl.svg",mask:"___-_____"},{name:"Togo",code:"+228",prefix:null,iso:"TG",flag:"https://cdn.kcak11.com/CountryFlags/countries/tg.svg",mask:"__-___-___"},{name:"Tokelau",code:"+690",prefix:null,iso:"TK",flag:"https://cdn.kcak11.com/CountryFlags/countries/tk.svg",mask:"____"},{name:"Tonga",code:"+676",prefix:null,iso:"TO",flag:"https://cdn.kcak11.com/CountryFlags/countries/to.svg",mask:"_____"},{name:"Trinidad and Tobago",code:"+1",prefix:"868",iso:"TT",flag:"https://cdn.kcak11.com/CountryFlags/countries/tt.svg",mask:"(868) ___-____"},{name:"Tunisia",code:"+216",prefix:null,iso:"TN",flag:"https://cdn.kcak11.com/CountryFlags/countries/tn.svg",mask:"__-___-___"},{name:"Turkey",code:"+90",prefix:null,iso:"TR",flag:"https://cdn.kcak11.com/CountryFlags/countries/tr.svg",mask:"(___) ___-____"},{name:"Turkmenistan",code:"+993",prefix:null,iso:"TM",flag:"https://cdn.kcak11.com/CountryFlags/countries/tm.svg",mask:"_-___-____"},{name:"Turks and Caicos Islands",code:"+1",prefix:"249",iso:"TC",flag:"https://cdn.kcak11.com/CountryFlags/countries/tc.svg",mask:"(249) ___-___"},{name:"Tuvalu",code:"+688",prefix:null,iso:"TV",flag:"https://cdn.kcak11.com/CountryFlags/countries/tv.svg",mask:"______"},{name:"Uganda",code:"+256",prefix:null,iso:"UG",flag:"https://cdn.kcak11.com/CountryFlags/countries/ug.svg",mask:"(___) ___-___"},{name:"Ukraine",code:"+380",prefix:null,iso:"UA",flag:"https://cdn.kcak11.com/CountryFlags/countries/ua.svg",mask:"(__) ___-__-__"},{name:"United Arab Emirates",code:"+971",prefix:null,iso:"AE",flag:"https://cdn.kcak11.com/CountryFlags/countries/ae.svg",mask:"_-___-____"},{name:"United Kingdom",code:"+44",prefix:null,iso:"GB",flag:"https://cdn.kcak11.com/CountryFlags/countries/gb.svg",mask:"__-____-____"},{name:"United States",code:"+1",prefix:"408",iso:"US",flag:"https://cdn.kcak11.com/CountryFlags/countries/us.svg",mask:"(408) ___-____"},{name:"Uruguay",code:"+598",prefix:null,iso:"UY",flag:"https://cdn.kcak11.com/CountryFlags/countries/uy.svg",mask:"_-___-__-__"},{name:"Uzbekistan",code:"+998",prefix:null,iso:"UZ",flag:"https://cdn.kcak11.com/CountryFlags/countries/uz.svg",mask:"__-___-____"},{name:"Vanuatu",code:"+678",prefix:null,iso:"VU",flag:"https://cdn.kcak11.com/CountryFlags/countries/vu.svg",mask:"__-_____"},{name:"Venezuela, Bolivarian Republic of Venezuela",code:"+58",prefix:null,iso:"VE",flag:"https://cdn.kcak11.com/CountryFlags/countries/ve.svg",mask:"(___) ___-____"},{name:"Vietnam",code:"+84",prefix:null,iso:"VN",flag:"https://cdn.kcak11.com/CountryFlags/countries/vn.svg",mask:"(___) ____-___"},{name:"Virgin Islands, British",code:"+1",prefix:"284",iso:"VG",flag:"https://cdn.kcak11.com/CountryFlags/countries/vg.svg",mask:"(284) ___-____"},{name:"Virgin Islands, U.S.",code:"+1",prefix:"340",iso:"VI",flag:"https://cdn.kcak11.com/CountryFlags/countries/vi.svg",mask:"(340) ___-____"},{name:"Wallis and Futuna",code:"+681",prefix:null,iso:"WF",flag:"https://cdn.kcak11.com/CountryFlags/countries/wf.svg",mask:"__-____"},{name:"Yemen",code:"+967",prefix:null,iso:"YE",flag:"https://cdn.kcak11.com/CountryFlags/countries/ye.svg",mask:"___-___-___"},{name:"Zambia",code:"+260",prefix:null,iso:"ZM",flag:"https://cdn.kcak11.com/CountryFlags/countries/zm.svg",mask:"__-___-____"},{name:"Zimbabwe",code:"+263",prefix:null,iso:"ZW",flag:"https://cdn.kcak11.com/CountryFlags/countries/zw.svg",mask:"_-______"}],b={USD:{countryLanguage:"en-US",countryCurrency:"USD"},EUR:{countryLanguage:"de-DE",countryCurrency:"EUR"},JPY:{countryLanguage:"ja-JP",countryCurrency:"JPY"},GBP:{countryLanguage:"en-GB",countryCurrency:"GBP"},AUD:{countryLanguage:"en-AU",countryCurrency:"AUD"},CAD:{countryLanguage:"en-CA",countryCurrency:"CAD"},CHF:{countryLanguage:"de-CH",countryCurrency:"CHF"},CNY:{countryLanguage:"zh-CN",countryCurrency:"CNY"},SEK:{countryLanguage:"sv-SE",countryCurrency:"SEK"},NZD:{countryLanguage:"en-NZ",countryCurrency:"NZD"},BRL:{countryLanguage:"pt-BR",countryCurrency:"BRL"},INR:{countryLanguage:"en-IN",countryCurrency:"INR"},RUB:{countryLanguage:"ru-RU",countryCurrency:"RUB"},ZAR:{countryLanguage:"en-ZA",countryCurrency:"ZAR"},MXN:{countryLanguage:"es-MX",countryCurrency:"MXN"},SGD:{countryLanguage:"en-SG",countryCurrency:"SGD"},HKD:{countryLanguage:"zh-HK",countryCurrency:"HKD"},NOK:{countryLanguage:"nb-NO",countryCurrency:"NOK"},KRW:{countryLanguage:"ko-KR",countryCurrency:"KRW"},TRY:{countryLanguage:"tr-TR",countryCurrency:"TRY"},IDR:{countryLanguage:"id-ID",countryCurrency:"IDR"},THB:{countryLanguage:"th-TH",countryCurrency:"THB"}},I=_=>_.replace(new RegExp("(?:R\\$|\\p{Sc}|[$€¥£])","gu"),"").trim(),O=(_,n,e={showPrefix:!0})=>{if(!b[n])throw new Error("Unsupported currency code");const{countryCurrency:s,countryLanguage:a}=b[n],o=new Intl.NumberFormat(a,{style:"currency",currency:s}).format(_);return e.showPrefix?o.replace(/\s/g," "):I(o).replace(/\s/g," ")},z=([_,n="00:00:00"],e,s=0)=>{const a=_.split(/[-/]/).map(Number),o=n.split(".")[0].split(":").map(Number);let r,i,c;const[l=0,C=0,v=0]=o;switch(e){case"brazilianDate":[r,i,c]=a;break;case"isoDate":[c,i,r]=a;break;case"timestamp":[c,i,r]=a.map(Number);break;default:throw new Error("Invalid input format")}const p=new Date(Date.UTC(c,i-1,r,l-s,C,v));if(isNaN(p.getTime()))throw new Error("Invalid date");return p},J=(_,n)=>{if(_.length>n){let e=_.substring(0,n).trimEnd();return e=e.replace(/[.,!?;:]$/,""),`${e}...`}return _},Y=/^\d$/,$=_=>{let n=0;const e=_.split("").map(s=>Y.test(s)?{character:s,kind:"digit",digit:++n}:{character:s,kind:"other"});return{digits:n,children:e,kind:"root"}},V=(_,n)=>Array.isArray(_)?_:_>=0?[0,_]:[n+1-Math.abs(_),n],W=(_,n)=>n>=_[0]&&n<=_[1],Z=(_,n)=>{const e=$(_),s=V(n.range??3,e.digits);return e.children.map(a=>a.kind==="digit"&&W(s,a.digit)?n.hider??"*":a.character).join("")};function q(_){return _.length>10?"NINE":"EIGTH"}const T={EIGTH:"(99) 9999-9999",NINE:"(99) 99999-9999"},j=m(T.NINE).length;function Q(_,n){let e="",s=0;for(let a=0;a<n.length;a++)if(n[a]==="9")if(s<_.length)e+=_[s],s++;else break;else if(s<_.length)e+=n[a];else break;return e}function N(_,n){if(n.code==="+55"){let a=m(_);const o=q(a);return a.length>j||(a=Q(a,T[o])),a}let s=n.mask;if(n.prefix){const a=/\$+/g;s=s.replace(a,n.prefix)}for(let a=0,o=0;a<s.length&&o<_.length;a++)s[a]==="_"&&(s=s.substring(0,a)+_[o]+s.substring(a+1),o++);return s}function X(_,n){const e=S.find(s=>s.code===_&&s.prefix===n);if(!e)throw new Error("Invalid country code or prefix");if(e.prefix!==n)throw new Error("Invalid country code or prefix");if(!e.prefix)throw new Error("Invalid country code or prefix");return e}function __(_){const n=S.find(e=>e.code===_);if(!n)throw new Error("Invalid country code");if(n.prefix)throw new Error("Invalid country code");return n}const n_=_=>{if(!/^\+\d{1,4}(-\d{1,4})? \d+$/.test(_))throw new Error("Invalid phone number format. Expected format: +<countryCode>-<optionalPrefix> <phoneNumber>");const e=_.split(" ")[0].split("-")[0],s=_.split(" ")[0].split("-")[1],a=_.split(" ")[1];if(!e||!a)throw new Error("Invalid phone number format");if(s){const r=X(e,s);return N(a,r)}const o=__(e);return N(a,o)},a_=_=>{for(var n=0,e=0;e<_.length;e++)n=_.charCodeAt(e)+((n<<5)-n);var s=(n&16711680)>>16,a=(n&65280)>>8,o=n&255,r=s.toString(16).padStart(2,"0"),i=a.toString(16).padStart(2,"0"),c=o.toString(16).padStart(2,"0");return"#"+r+i+c};for(var u=[],h=0;h<256;++h)u.push((h+256).toString(16).slice(1));function w(_,n=0){return(u[_[n+0]]+u[_[n+1]]+u[_[n+2]]+u[_[n+3]]+"-"+u[_[n+4]]+u[_[n+5]]+"-"+u[_[n+6]]+u[_[n+7]]+"-"+u[_[n+8]]+u[_[n+9]]+"-"+u[_[n+10]]+u[_[n+11]]+u[_[n+12]]+u[_[n+13]]+u[_[n+14]]+u[_[n+15]]).toLowerCase()}var f,s_=new Uint8Array(16);function M(){if(!f&&(f=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!f))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return f(s_)}var e_=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);const A={randomUUID:e_};function o_(_,n,e){if(A.randomUUID&&!_)return A.randomUUID();_=_||{};var s=_.random||(_.rng||M)();return s[6]=s[6]&15|64,s[8]=s[8]&63|128,w(s)}var E=null,D=null,g=0;function t_(_,n,e){_=_||{};var s=0,a=new Uint8Array(16),o=_.random||(_.rng||M)(),r=_.msecs!==void 0?_.msecs:Date.now(),i=_.seq!==void 0?_.seq:null,c=D,l=E;return r>g&&_.msecs===void 0&&(g=r,i!==null&&(c=null,l=null)),i!==null&&(i>2147483647&&(i=2147483647),c=i>>>19&4095,l=i&524287),(c===null||l===null)&&(c=o[6]&127,c=c<<8|o[7],l=o[8]&63,l=l<<8|o[9],l=l<<5|o[10]>>>3),r+1e4>g&&i===null?++l>524287&&(l=0,++c>4095&&(c=0,g++)):g=r,D=c,E=l,a[s++]=g/1099511627776&255,a[s++]=g/4294967296&255,a[s++]=g/16777216&255,a[s++]=g/65536&255,a[s++]=g/256&255,a[s++]=g&255,a[s++]=c>>>4&15|112,a[s++]=c&255,a[s++]=l>>>13&63|128,a[s++]=l>>>5&255,a[s++]=l<<3&255|o[10]&7,a[s++]=o[11],a[s++]=o[12],a[s++]=o[13],a[s++]=o[14],a[s++]=o[15],n||w(a)}function L(_){_=_.replace(/-/g,"");const n=new Uint8Array(_.length/2);for(let e=0;e<_.length;e+=2)n[e/2]=parseInt(_.substring(e,e+2),16);return n}function R(){const _=o_();return{text:_,binary:L(_)}}function P(){const _=t_();return{text:_,binary:L(_)}}function c_(_,n){if(_==="text"&&n==="v4")return R().text;if(_==="binary"&&n==="v4")return R().binary;if(_==="text"&&n==="v7")return P().text;if(_==="binary"&&n==="v7")return P().binary;throw new Error("Invalid type or format")}function r_(_){let n=_.normalize("NFD").replace(/[\u0300-\u036f]/g,"");return n=n.replace(/[^\w\s-]/g,"").replace(/\s+/g,"-").toLowerCase(),n=n.replace(/-{2,}/g,"-"),n=n.replace(/^-+|-+$/g,""),n}const i_=_=>{const{cashPrice:n,numberInstallments:e,fees:s=.0349}=_;if(s===0||e===1)return{totalPrice:n,installmentPrice:n/e};if(e<=0)throw new Error("Number of installments must be greater than 0");if(s<0)throw new Error("Fees must be greater than or equal to 0");let a=0,o=0,r=Math.pow(1+s,e)*s,i=Math.pow(1+s,e)-1;return a=n*(r/i),o=e*a,{totalPrice:+o.toFixed(2),installmentPrice:+a.toFixed(2)}},l_=_=>{const n=_.startsWith("'")&&_.endsWith("'"),e=_.startsWith('"')&&_.endsWith('"');return n||e?_:`"${_}"`};function u_(_){return/<\/?[a-z][\s\S]*>/i.test(_)}const g_=(_,n=["password","confirmPassword","creditCard"])=>{function e(a,o){return n.includes(a)?"****":o}function s(a){return Array.isArray(a)?a.map(o=>s(o)):a!==null&&typeof a=="object"?Object.keys(a).reduce((o,r)=>{let i=a[r];if(typeof i=="string")try{const c=JSON.parse(i);typeof c=="object"&&(i=JSON.stringify(s(c)))}catch{}return o[r]=s(e(r,i)),o},{}):a}try{const a=JSON.parse(_),o=s(a);return JSON.stringify(o)}catch{return _}},m_=_=>_.replace(/<\/?[^>]+(>|$)/g,""),k_=(_,n=1e3)=>{function e(a){return typeof a=="string"&&a.length>n?`To large information: field as ${a.length} characters`:a}function s(a){return Array.isArray(a)?a.map(o=>s(o)):a!==null&&typeof a=="object"?Object.fromEntries(Object.entries(a).map(([o,r])=>[o,s(r)])):e(a)}try{const a=JSON.parse(_),o=s(a);return JSON.stringify(o)}catch{throw new Error("Invalid JSON string")}};t.calculateCardInstallment=i_,t.ensureQuotes=l_,t.formatDate=G,t.formatJsonObject=d,t.formatJsonString=B,t.formatToCapitalizeFirstWordLetter=U,t.formatToCep=H,t.formatToCnpj=x,t.formatToCpf=F,t.formatToCpfCnpj=K,t.formatToCurrency=O,t.formatToDate=z,t.formatToEllipsis=J,t.formatToHiddenDigits=Z,t.formatToPhone=n_,t.generateColorByString=a_,t.generateId=c_,t.generateSlug=r_,t.isHtml=u_,t.maskSensitiveData=g_,t.removeCurrencySymbols=I,t.removeNonNumeric=m,t.stripHtmlTags=m_,t.truncateLargeFields=k_,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Formats a sentence by capitalizing the first letter of each word.
3
+ *
4
+ * This function takes a string and capitalizes the first letter of each word
5
+ * while the remaining letters are lowercase.
6
+ * Words are separated by spaces.
7
+ *
8
+ * @param sentence - The sentence to be formatted.
9
+ * @returns The sentence formatted with the first letter of each word capitalized.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // Basic example
14
+ * formatToCapitalizeFirstWordLetter("hello world");
15
+ * // Returns: "Hello World"
16
+ *
17
+ * // With capitalized text.
18
+ * formatToCapitalizeFirstWordLetter("HELLO WORLD");
19
+ * // Returns: "Hello World"
20
+ *
21
+ * // With mixed text.
22
+ * formatToCapitalizeFirstWordLetter("hELLO WoRLd"); * // Returns: "Hello World"
23
+ *
24
+ * // With multiple words
25
+ * formatToCapitalizeFirstWordLetter("javascript is an amazing language");
26
+ * // Returns: "Javascript is an amazing language"
27
+ *
28
+ * // Empty string
29
+ * formatToCapitalizeFirstWordLetter("");
30
+ * // Returns: ""
31
+ * ```
32
+ */
33
+ declare function formatToCapitalizeFirstWordLetter(sentence: string): string;
34
+ export { formatToCapitalizeFirstWordLetter };
35
+ //# sourceMappingURL=formatToCapitalizeFirstWordLetter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatToCapitalizeFirstWordLetter.d.ts","sourceRoot":"","sources":["../../src/formats/formatToCapitalizeFirstWordLetter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,iBAAS,iCAAiC,CAAC,QAAQ,EAAE,MAAM,UAU1D;AAED,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Formats a sentence by capitalizing the first letter of each word.
3
+ *
4
+ * This function takes a string and capitalizes the first letter of each word
5
+ * while the remaining letters are lowercase.
6
+ * Words are separated by spaces.
7
+ *
8
+ * @param sentence - The sentence to be formatted.
9
+ * @returns The sentence formatted with the first letter of each word capitalized.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // Basic example
14
+ * formatToCapitalizeFirstWordLetter("hello world");
15
+ * // Returns: "Hello World"
16
+ *
17
+ * // With capitalized text.
18
+ * formatToCapitalizeFirstWordLetter("HELLO WORLD");
19
+ * // Returns: "Hello World"
20
+ *
21
+ * // With mixed text.
22
+ * formatToCapitalizeFirstWordLetter("hELLO WoRLd"); * // Returns: "Hello World"
23
+ *
24
+ * // With multiple words
25
+ * formatToCapitalizeFirstWordLetter("javascript is an amazing language");
26
+ * // Returns: "Javascript is an amazing language"
27
+ *
28
+ * // Empty string
29
+ * formatToCapitalizeFirstWordLetter("");
30
+ * // Returns: ""
31
+ * ```
32
+ */
33
+ function formatToCapitalizeFirstWordLetter(sentence) {
34
+ const words = sentence.split(" ");
35
+ const capitalizedWords = words.map((word) => {
36
+ const firstLetter = word.charAt(0).toUpperCase();
37
+ const restOfWord = word.slice(1).toLowerCase();
38
+ return firstLetter + restOfWord;
39
+ });
40
+ return capitalizedWords.join(" ");
41
+ }
42
+ export { formatToCapitalizeFirstWordLetter };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { formatDate } from "./formats/formatDate";
2
2
  export { formatJsonObject } from "./formats/formatJsonObject";
3
3
  export { formatJsonString } from "./formats/formatJsonString";
4
+ export { formatToCapitalizeFirstWordLetter } from "./formats/formatToCapitalizeFirstWordLetter";
4
5
  export { formatToCep } from "./formats/formatToCep";
5
6
  export { formatToCnpj } from "./formats/formatToCnpj";
6
7
  export { formatToCpf } from "./formats/formatToCpf";
@@ -15,16 +16,10 @@ export { generateId } from "./generators/generateId";
15
16
  export { generateSlug } from "./generators/generateSlug";
16
17
  export { calculateCardInstallment } from "./services/calculateCardInstallment";
17
18
  export { ensureQuotes } from "./services/ensureQuotes";
19
+ export { isHtml } from "./services/isHtml";
18
20
  export { maskSensitiveData } from "./services/maskSensitiveData";
19
21
  export { removeCurrencySymbols } from "./services/removeCurrencySymbols";
20
22
  export { removeNonNumeric } from "./services/removeNonNumeric";
21
23
  export { stripHtmlTags } from "./services/stripHtmlTags";
22
24
  export { truncateLargeFields } from "./services/truncateLargeFields";
23
- export { validateCep } from "./validations/validateCep";
24
- export { validateCnpj } from "./validations/validateCnpj";
25
- export { validateCpf } from "./validations/validateCpf";
26
- export { validateDate } from "./validations/validateDate";
27
- export { validatePassword } from "./validations/validatePassword";
28
- export { validatePhone } from "./validations/validatePhone";
29
- export { validateRg } from "./validations/validateRg";
30
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  export { formatDate } from "./formats/formatDate";
3
3
  export { formatJsonObject } from "./formats/formatJsonObject";
4
4
  export { formatJsonString } from "./formats/formatJsonString";
5
+ export { formatToCapitalizeFirstWordLetter } from "./formats/formatToCapitalizeFirstWordLetter";
5
6
  export { formatToCep } from "./formats/formatToCep";
6
7
  export { formatToCnpj } from "./formats/formatToCnpj";
7
8
  export { formatToCpf } from "./formats/formatToCpf";
@@ -18,16 +19,9 @@ export { generateSlug } from "./generators/generateSlug";
18
19
  // services
19
20
  export { calculateCardInstallment } from "./services/calculateCardInstallment";
20
21
  export { ensureQuotes } from "./services/ensureQuotes";
22
+ export { isHtml } from "./services/isHtml";
21
23
  export { maskSensitiveData } from "./services/maskSensitiveData";
22
24
  export { removeCurrencySymbols } from "./services/removeCurrencySymbols";
23
25
  export { removeNonNumeric } from "./services/removeNonNumeric";
24
26
  export { stripHtmlTags } from "./services/stripHtmlTags";
25
27
  export { truncateLargeFields } from "./services/truncateLargeFields";
26
- // utils
27
- export { validateCep } from "./validations/validateCep";
28
- export { validateCnpj } from "./validations/validateCnpj";
29
- export { validateCpf } from "./validations/validateCpf";
30
- export { validateDate } from "./validations/validateDate";
31
- export { validatePassword } from "./validations/validatePassword";
32
- export { validatePhone } from "./validations/validatePhone";
33
- export { validateRg } from "./validations/validateRg";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Verifica se uma string contém marcação HTML.
3
+ *
4
+ * Esta função utiliza uma expressão regular para detectar a presença de tags HTML
5
+ * em uma string. A verificação é case-insensitive e detecta tanto tags de abertura
6
+ * quanto de fechamento.
7
+ *
8
+ * @param str - A string a ser verificada
9
+ * @returns `true` se a string contém marcação HTML, `false` caso contrário
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * isHtml('<p>Hello world</p>'); // true
14
+ * isHtml('<div>Content</div>'); // true
15
+ * isHtml('Plain text'); // false
16
+ * isHtml('Text with <b>bold</b>'); // true
17
+ * isHtml(''); // false
18
+ * ```
19
+ */
20
+ declare function isHtml(str: string): boolean;
21
+ export { isHtml };
22
+ //# sourceMappingURL=isHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isHtml.d.ts","sourceRoot":"","sources":["../../src/services/isHtml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,iBAAS,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGpC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Verifica se uma string contém marcação HTML.
3
+ *
4
+ * Esta função utiliza uma expressão regular para detectar a presença de tags HTML
5
+ * em uma string. A verificação é case-insensitive e detecta tanto tags de abertura
6
+ * quanto de fechamento.
7
+ *
8
+ * @param str - A string a ser verificada
9
+ * @returns `true` se a string contém marcação HTML, `false` caso contrário
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * isHtml('<p>Hello world</p>'); // true
14
+ * isHtml('<div>Content</div>'); // true
15
+ * isHtml('Plain text'); // false
16
+ * isHtml('Text with <b>bold</b>'); // true
17
+ * isHtml(''); // false
18
+ * ```
19
+ */
20
+ function isHtml(str) {
21
+ const htmlRegex = /<\/?[a-z][\s\S]*>/i;
22
+ return htmlRegex.test(str);
23
+ }
24
+ export { isHtml };
package/package.json CHANGED
@@ -1,26 +1,46 @@
1
1
  {
2
2
  "name": "@arkyn/shared",
3
- "version": "3.0.1-beta.8",
3
+ "version": "3.0.1-beta.81",
4
4
  "main": "./dist/bundle.js",
5
- "module": "./src/index.ts",
5
+ "module": "./dist/bundle.js",
6
6
  "type": "module",
7
7
  "types": "./dist/index.d.ts",
8
8
  "license": "Apache-2.0",
9
9
  "author": "Arkyn | Lucas Gonçalves",
10
- "description": "Shared utilities and types for projects.",
10
+ "description": "Comprehensive collection of reusable utilities for data formatting, validation, generation, and manipulation, featuring Brazilian document validators and financial tools.",
11
+ "keywords": [
12
+ "utilities",
13
+ "formatting",
14
+ "validation",
15
+ "brazilian-documents",
16
+ "cpf",
17
+ "cnpj",
18
+ "cep",
19
+ "currency",
20
+ "typescript",
21
+ "generators"
22
+ ],
23
+ "homepage": "https://docs.arkyn.dev/en/shared/introduction",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/Lucas-Eduardo-Goncalves/arkyn.git",
27
+ "directory": "packages/shared"
28
+ },
11
29
  "scripts": {
12
30
  "clean": "rm -rf dist",
13
- "build": "bun run clean && bunx tsc --project tsconfig.json",
31
+ "build": "bunx vite build && tsc",
14
32
  "test": "vitest --config vitest.config.ts",
15
33
  "typecheck": "bunx tsc --project tsconfig.json --noEmit"
16
34
  },
17
35
  "dependencies": {
36
+ "util": "^0.12.5",
18
37
  "uuid": "^10.0.0"
19
38
  },
20
39
  "devDependencies": {
21
40
  "@types/uuid": "^10.0.0",
22
41
  "bun-types": "latest",
23
- "vitest": "^3.1.1",
24
- "typescript": "^5.8.3"
42
+ "vitest": "^3.2.4",
43
+ "typescript": "^5.9.2",
44
+ "vite": "^5.4.19"
25
45
  }
26
46
  }
@@ -1,24 +0,0 @@
1
- type ValidateCepFunction = (rawCep: string) => boolean;
2
- /**
3
- * Removes all non-digit characters from the CEP.
4
- * @param cep - Raw CEP string.
5
- * @returns Only numeric characters.
6
- */
7
- /**
8
- * Validates a Brazilian CEP (Código de Endereçamento Postal).
9
- *
10
- * A valid CEP has 8 numeric digits.
11
- *
12
- * @param rawCep - CEP string, may include formatting (e.g., "12345-678").
13
- * @returns `true` if the CEP is valid, otherwise `false`.
14
- *
15
- * @example
16
- * ```ts
17
- * validateCep("12345-678"); // true
18
- * validateCep("12345678"); // true
19
- * validateCep("ABCDE-123"); // false
20
- * ```
21
- */
22
- declare const validateCep: ValidateCepFunction;
23
- export { validateCep };
24
- //# sourceMappingURL=validateCep.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateCep.d.ts","sourceRoot":"","sources":["../../src/validations/validateCep.ts"],"names":[],"mappings":"AAEA,KAAK,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;AAEvD;;;;GAIG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,QAAA,MAAM,WAAW,EAAE,mBAYlB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,33 +0,0 @@
1
- import { removeNonNumeric } from "../services/removeNonNumeric";
2
- /**
3
- * Removes all non-digit characters from the CEP.
4
- * @param cep - Raw CEP string.
5
- * @returns Only numeric characters.
6
- */
7
- /**
8
- * Validates a Brazilian CEP (Código de Endereçamento Postal).
9
- *
10
- * A valid CEP has 8 numeric digits.
11
- *
12
- * @param rawCep - CEP string, may include formatting (e.g., "12345-678").
13
- * @returns `true` if the CEP is valid, otherwise `false`.
14
- *
15
- * @example
16
- * ```ts
17
- * validateCep("12345-678"); // true
18
- * validateCep("12345678"); // true
19
- * validateCep("ABCDE-123"); // false
20
- * ```
21
- */
22
- const validateCep = (rawCep) => {
23
- if (!rawCep)
24
- return false;
25
- const validFormat = /^[0-9-]+$/.test(rawCep);
26
- if (!validFormat)
27
- return false;
28
- const cep = removeNonNumeric(rawCep);
29
- const CEP_LENGTH = 8;
30
- const isOnlyDigits = /^\d{8}$/.test(cep);
31
- return cep.length === CEP_LENGTH && isOnlyDigits;
32
- };
33
- export { validateCep };
@@ -1,22 +0,0 @@
1
- type ValidateCnpjFunction = (rawCnpj: string) => boolean;
2
- /**
3
- * Validates a Brazilian CNPJ (Cadastro Nacional da Pessoa Jurídica) number.
4
- *
5
- * This function performs:
6
- * - Sanitization (removes non-digit characters).
7
- * - Length check (must be 14 digits).
8
- * - Repeating digits check (invalid if all digits are the same).
9
- * - Verifies the two check digits with the proper weights.
10
- *
11
- * @param rawCnpj - CNPJ string, possibly formatted.
12
- * @returns `true` if valid, otherwise `false`.
13
- *
14
- * @example
15
- * ```ts
16
- * validateCnpj("12.345.678/0001-95"); // false
17
- * validateCnpj("11.444.777/0001-61"); // true
18
- * ```
19
- */
20
- declare const validateCnpj: ValidateCnpjFunction;
21
- export { validateCnpj };
22
- //# sourceMappingURL=validateCnpj.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateCnpj.d.ts","sourceRoot":"","sources":["../../src/validations/validateCnpj.ts"],"names":[],"mappings":"AAEA,KAAK,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;AAyBzD;;;;;;;;;;;;;;;;;GAiBG;AAEH,QAAA,MAAM,YAAY,EAAE,oBAgBnB,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,52 +0,0 @@
1
- import { removeNonNumeric } from "../services/removeNonNumeric";
2
- function isInvalidLength(cnpj) {
3
- const CNPJ_LENGTH = 14;
4
- return cnpj.length !== CNPJ_LENGTH;
5
- }
6
- function hasAllDigitsEqual(cnpj) {
7
- const [firstDigit] = cnpj;
8
- return [...cnpj].every((digit) => digit === firstDigit);
9
- }
10
- function calculateDigit(cnpj, multipliers) {
11
- let total = 0;
12
- for (let i = 0; i < multipliers.length; i++) {
13
- total += parseInt(cnpj[i]) * multipliers[i];
14
- }
15
- const rest = total % 11;
16
- return rest < 2 ? 0 : 11 - rest;
17
- }
18
- function extractDigit(cnpj) {
19
- return cnpj.slice(12);
20
- }
21
- /**
22
- * Validates a Brazilian CNPJ (Cadastro Nacional da Pessoa Jurídica) number.
23
- *
24
- * This function performs:
25
- * - Sanitization (removes non-digit characters).
26
- * - Length check (must be 14 digits).
27
- * - Repeating digits check (invalid if all digits are the same).
28
- * - Verifies the two check digits with the proper weights.
29
- *
30
- * @param rawCnpj - CNPJ string, possibly formatted.
31
- * @returns `true` if valid, otherwise `false`.
32
- *
33
- * @example
34
- * ```ts
35
- * validateCnpj("12.345.678/0001-95"); // false
36
- * validateCnpj("11.444.777/0001-61"); // true
37
- * ```
38
- */
39
- const validateCnpj = (rawCnpj) => {
40
- if (!rawCnpj)
41
- return false;
42
- const cnpj = removeNonNumeric(rawCnpj);
43
- if (isInvalidLength(cnpj))
44
- return false;
45
- if (hasAllDigitsEqual(cnpj))
46
- return false;
47
- const base = cnpj.slice(0, 12);
48
- const digit1 = calculateDigit(base, [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
49
- const digit2 = calculateDigit(base + digit1, [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
50
- return extractDigit(cnpj) === `${digit1}${digit2}`;
51
- };
52
- export { validateCnpj };
@@ -1,24 +0,0 @@
1
- type ValidateCpfFunction = (rawCpf: string) => boolean;
2
- /**
3
- * Validates a Brazilian CPF (Cadastro de Pessoas Físicas) number.
4
- *
5
- * The CPF is a unique identifier assigned to Brazilian citizens and residents.
6
- * This function checks if the provided CPF is valid by performing the following steps:
7
- * - Removes any non-digit characters from the input.
8
- * - Verifies if the CPF has the correct length (11 digits).
9
- * - Ensures that all digits are not the same (e.g., "111.111.111-11" is invalid).
10
- * - Calculates the first and second verification digits using the CPF algorithm.
11
- * - Compares the calculated verification digits with the ones provided in the CPF.
12
- *
13
- * @param rawCpf - The raw CPF string, which may include formatting characters (e.g., dots or dashes).
14
- * @returns `true` if the CPF is valid, otherwise `false`.
15
- *
16
- * @example
17
- * ```typescript
18
- * validateCpf("123.456.789-09"); // false
19
- * validateCpf("111.444.777-35"); // true
20
- * ```
21
- */
22
- declare const validateCpf: ValidateCpfFunction;
23
- export { validateCpf };
24
- //# sourceMappingURL=validateCpf.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateCpf.d.ts","sourceRoot":"","sources":["../../src/validations/validateCpf.ts"],"names":[],"mappings":"AAEA,KAAK,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;AAyBvD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,QAAA,MAAM,WAAW,EAAE,mBAWlB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,54 +0,0 @@
1
- import { removeNonNumeric } from "../services/removeNonNumeric";
2
- function isInvalidLength(cpf) {
3
- const CPF_LENGTH = 11;
4
- return cpf.length !== CPF_LENGTH;
5
- }
6
- function hasAllDigitsEqual(cpf) {
7
- const [firstCpfDigit] = cpf;
8
- return [...cpf].every((digit) => digit === firstCpfDigit);
9
- }
10
- function calculateDigit(cpf, factor) {
11
- let total = 0;
12
- for (const digit of cpf) {
13
- if (factor > 1)
14
- total += parseInt(digit) * factor--;
15
- }
16
- const rest = total % 11;
17
- return rest < 2 ? 0 : 11 - rest;
18
- }
19
- function extractDigit(cpf) {
20
- return cpf.slice(9);
21
- }
22
- /**
23
- * Validates a Brazilian CPF (Cadastro de Pessoas Físicas) number.
24
- *
25
- * The CPF is a unique identifier assigned to Brazilian citizens and residents.
26
- * This function checks if the provided CPF is valid by performing the following steps:
27
- * - Removes any non-digit characters from the input.
28
- * - Verifies if the CPF has the correct length (11 digits).
29
- * - Ensures that all digits are not the same (e.g., "111.111.111-11" is invalid).
30
- * - Calculates the first and second verification digits using the CPF algorithm.
31
- * - Compares the calculated verification digits with the ones provided in the CPF.
32
- *
33
- * @param rawCpf - The raw CPF string, which may include formatting characters (e.g., dots or dashes).
34
- * @returns `true` if the CPF is valid, otherwise `false`.
35
- *
36
- * @example
37
- * ```typescript
38
- * validateCpf("123.456.789-09"); // false
39
- * validateCpf("111.444.777-35"); // true
40
- * ```
41
- */
42
- const validateCpf = (rawCpf) => {
43
- if (!rawCpf)
44
- return false;
45
- const cpf = removeNonNumeric(rawCpf);
46
- if (isInvalidLength(cpf))
47
- return false;
48
- if (hasAllDigitsEqual(cpf))
49
- return false;
50
- const digit1 = calculateDigit(cpf, 10);
51
- const digit2 = calculateDigit(cpf, 11);
52
- return extractDigit(cpf) === `${digit1}${digit2}`;
53
- };
54
- export { validateCpf };