@fluixi/utils 1.0.0-alpha.82 → 1.0.0-alpha.84

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 (129) hide show
  1. package/dist/index.cjs +2858 -1
  2. package/dist/index.mjs +2838 -1
  3. package/dist/lib/array/advanced.cjs +2227 -1
  4. package/dist/lib/array/advanced.mjs +2204 -1
  5. package/dist/lib/array/array.cjs +57 -1
  6. package/dist/lib/array/array.mjs +36 -1
  7. package/dist/lib/array/index.cjs +2344 -1
  8. package/dist/lib/array/index.mjs +2322 -1
  9. package/dist/lib/array/utils.cjs +103 -1
  10. package/dist/lib/array/utils.mjs +82 -1
  11. package/dist/lib/color/color.cjs +2190 -1
  12. package/dist/lib/color/color.mjs +2167 -1
  13. package/dist/lib/color/constants.cjs +380 -1
  14. package/dist/lib/color/constants.mjs +359 -1
  15. package/dist/lib/color/conversions.cjs +629 -1
  16. package/dist/lib/color/conversions.mjs +608 -1
  17. package/dist/lib/color/helpers.cjs +2534 -1
  18. package/dist/lib/color/helpers.mjs +2511 -1
  19. package/dist/lib/color/index.cjs +2641 -1
  20. package/dist/lib/color/index.mjs +2619 -1
  21. package/dist/lib/color/types.cjs +18 -1
  22. package/dist/lib/color/utils.cjs +962 -1
  23. package/dist/lib/color/utils.mjs +939 -1
  24. package/dist/lib/compare/comparators.cjs +171 -1
  25. package/dist/lib/compare/comparators.mjs +150 -1
  26. package/dist/lib/compare/index.cjs +172 -1
  27. package/dist/lib/compare/index.mjs +152 -1
  28. package/dist/lib/crypto/hash.cjs +83 -1
  29. package/dist/lib/crypto/hash.mjs +62 -1
  30. package/dist/lib/crypto/index.cjs +85 -1
  31. package/dist/lib/crypto/index.mjs +62 -1
  32. package/dist/lib/dom/events.cjs +40 -1
  33. package/dist/lib/dom/events.mjs +19 -1
  34. package/dist/lib/dom/index.cjs +78 -1
  35. package/dist/lib/dom/index.mjs +56 -1
  36. package/dist/lib/dom/utils.cjs +57 -1
  37. package/dist/lib/dom/utils.mjs +36 -1
  38. package/dist/lib/functions/functions.cjs +366 -1
  39. package/dist/lib/functions/functions.mjs +345 -1
  40. package/dist/lib/functions/index.cjs +369 -1
  41. package/dist/lib/functions/index.mjs +347 -1
  42. package/dist/lib/functions/types.cjs +18 -1
  43. package/dist/lib/helpers.cjs +78 -1
  44. package/dist/lib/helpers.mjs +59 -1
  45. package/dist/lib/index.cjs +2857 -1
  46. package/dist/lib/index.mjs +2836 -1
  47. package/dist/lib/maths/constants.cjs +70 -1
  48. package/dist/lib/maths/constants.mjs +50 -1
  49. package/dist/lib/maths/fn/advanced.cjs +231 -1
  50. package/dist/lib/maths/fn/advanced.mjs +208 -1
  51. package/dist/lib/maths/fn/basic.cjs +212 -1
  52. package/dist/lib/maths/fn/basic.mjs +191 -1
  53. package/dist/lib/maths/fn/complex.cjs +268 -1
  54. package/dist/lib/maths/fn/complex.mjs +247 -1
  55. package/dist/lib/maths/fn/index.cjs +877 -1
  56. package/dist/lib/maths/fn/index.mjs +855 -1
  57. package/dist/lib/maths/fn/trigo.cjs +179 -1
  58. package/dist/lib/maths/fn/trigo.mjs +156 -1
  59. package/dist/lib/maths/fn/vector.cjs +728 -1
  60. package/dist/lib/maths/fn/vector.mjs +707 -1
  61. package/dist/lib/maths/formatter.cjs +61 -1
  62. package/dist/lib/maths/formatter.mjs +40 -1
  63. package/dist/lib/maths/guards.cjs +164 -1
  64. package/dist/lib/maths/guards.mjs +144 -1
  65. package/dist/lib/maths/index.cjs +1152 -1
  66. package/dist/lib/maths/index.mjs +1130 -1
  67. package/dist/lib/maths/parser.cjs +75 -1
  68. package/dist/lib/maths/parser.mjs +54 -1
  69. package/dist/lib/maths/random.cjs +49 -1
  70. package/dist/lib/maths/random.mjs +28 -1
  71. package/dist/lib/maths/types/advanced.cjs +18 -1
  72. package/dist/lib/maths/types/basic.cjs +18 -1
  73. package/dist/lib/maths/types/index.cjs +19 -1
  74. package/dist/lib/maths/types/index.mjs +1 -0
  75. package/dist/lib/maths/types/negative.cjs +18 -1
  76. package/dist/lib/maths/types/operations.cjs +18 -1
  77. package/dist/lib/object/clone.cjs +88 -1
  78. package/dist/lib/object/clone.mjs +65 -1
  79. package/dist/lib/object/diff.cjs +573 -1
  80. package/dist/lib/object/diff.mjs +550 -1
  81. package/dist/lib/object/getter-setter.cjs +2351 -1
  82. package/dist/lib/object/getter-setter.mjs +2330 -1
  83. package/dist/lib/object/index.cjs +3956 -6
  84. package/dist/lib/object/index.mjs +3936 -6
  85. package/dist/lib/object/merge.cjs +1029 -1
  86. package/dist/lib/object/merge.mjs +1006 -1
  87. package/dist/lib/object/object.cjs +280 -1
  88. package/dist/lib/object/object.mjs +257 -1
  89. package/dist/lib/object/omit.cjs +2022 -1
  90. package/dist/lib/object/omit.mjs +1999 -1
  91. package/dist/lib/object/reconcile.cjs +126 -1
  92. package/dist/lib/object/reconcile.mjs +105 -1
  93. package/dist/lib/object/selector.cjs +303 -1
  94. package/dist/lib/object/selector.mjs +282 -1
  95. package/dist/lib/object/sort.cjs +209 -1
  96. package/dist/lib/object/sort.mjs +186 -1
  97. package/dist/lib/object/transform.cjs +2211 -1
  98. package/dist/lib/object/transform.mjs +2190 -1
  99. package/dist/lib/object/types.cjs +18 -1
  100. package/dist/lib/object/utils.cjs +326 -6
  101. package/dist/lib/object/utils.mjs +305 -6
  102. package/dist/lib/primitive/boolean/boolean.cjs +407 -1
  103. package/dist/lib/primitive/boolean/boolean.mjs +386 -1
  104. package/dist/lib/primitive/boolean/index.cjs +382 -1
  105. package/dist/lib/primitive/boolean/index.mjs +359 -1
  106. package/dist/lib/primitive/boolean/types.cjs +18 -1
  107. package/dist/lib/primitive/date/date.cjs +1126 -1
  108. package/dist/lib/primitive/date/date.mjs +1105 -1
  109. package/dist/lib/primitive/date/index.cjs +1128 -1
  110. package/dist/lib/primitive/date/index.mjs +1105 -1
  111. package/dist/lib/primitive/date/types.cjs +18 -1
  112. package/dist/lib/primitive/index.cjs +2338 -5
  113. package/dist/lib/primitive/index.mjs +2316 -5
  114. package/dist/lib/primitive/string/index.cjs +875 -5
  115. package/dist/lib/primitive/string/index.mjs +852 -5
  116. package/dist/lib/primitive/string/parser-2.cjs +543 -8
  117. package/dist/lib/primitive/string/parser-2.mjs +522 -8
  118. package/dist/lib/primitive/string/parser.cjs +236 -3
  119. package/dist/lib/primitive/string/parser.mjs +215 -3
  120. package/dist/lib/primitive/string/string.cjs +926 -5
  121. package/dist/lib/primitive/string/string.mjs +903 -5
  122. package/dist/lib/primitive/string/types.cjs +18 -1
  123. package/dist/lib/primitive/types.cjs +18 -1
  124. package/dist/lib/url/index.cjs +327 -1
  125. package/dist/lib/url/index.mjs +304 -1
  126. package/dist/lib/url/parser.cjs +325 -1
  127. package/dist/lib/url/parser.mjs +304 -1
  128. package/dist/lib/url/types.cjs +18 -1
  129. package/package.json +5 -5
@@ -1,5 +1,926 @@
1
- "use strict";var R=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var xe=Object.getOwnPropertyNames;var Ae=Object.prototype.hasOwnProperty;var $e=(e,t)=>{for(var r in t)R(e,r,{get:t[r],enumerable:!0})},we=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of xe(t))!Ae.call(e,s)&&s!==r&&R(e,s,{get:()=>t[s],enumerable:!(n=ye(t,s))||n.enumerable});return e};var Re=e=>we(R({},"__esModule",{value:!0}),e);var Oe={};$e(Oe,{capitalize:()=>_,countOccurrences:()=>k,default:()=>Pe,endsWith:()=>K,escapeHtml:()=>M,escapeRegExp:()=>A,escapeString:()=>ue,extractDomain:()=>Y,getInitials:()=>se,includes:()=>F,includesIgnoreCase:()=>q,isEmpty:()=>B,isPalindrome:()=>te,isPrimitiveArray:()=>be,isString:()=>oe,isStringArray:()=>pe,isValidEmail:()=>G,isValidUrl:()=>X,mask:()=>ne,normalizeLineEndings:()=>ie,pad:()=>H,parseArrayLiteral:()=>$,parseLiteral:()=>ge,parsePrimitiveValue:()=>me,randomString:()=>v,removeWhitespace:()=>ee,replaceAll:()=>I,replaceAllIgnoreCase:()=>Q,replaceString:()=>ce,replaceStringPattern:()=>fe,reverse:()=>O,slugify:()=>re,startsWith:()=>U,stringToObjectArray:()=>w,stringToObjectArrayOnly:()=>he,stringToPrimitiveArray:()=>de,toCamelCase:()=>W,toKebabCase:()=>E,toPascalCase:()=>z,toSnakeCase:()=>Z,toString:()=>le,toTitleCase:()=>J,trim:()=>j,trimEnd:()=>N,trimStart:()=>L,truncate:()=>D,unescapeHtml:()=>V,wordWrap:()=>ae});module.exports=Re(Oe);function S(e,t={}){let{allowComments:r=!0,allowUnquotedKeys:n=!0,allowSingleQuotes:s=!0,allowTrailingCommas:u=!0,allowUndefined:h=!1}=t,a=e.trim();if(r&&(a=a.replace(/\/\*[\s\S]*?\*\//g,""),a=a.split(`
2
- `).map(f=>{let b=!1,l="",g=!1;for(let m=0;m<f.length;m++){let y=f[m];if(g){g=!1;continue}if(y==="\\"){g=!0;continue}if(!b&&(y==='"'||y==="'"))b=!0,l=y;else if(b&&y===l)b=!1,l="";else if(!b&&y==="/"&&f[m+1]==="/")return f.substring(0,m)}return f}).join(`
3
- `)),n&&(a=a.replace(/([{,]\s*)([a-zA-Z_$][a-zA-Z0-9_$]*)(\s*:)/g,'$1"$2"$3')),s){let c="",i=!1,f=!1,b=!1,l=0;for(;l<a.length;){let g=a[l];if(b){c+=g,b=!1,l++;continue}if(g==="\\"){b=!0,c+=g,l++;continue}g==="'"&&!f?i?(c+='"',i=!1):(c+='"',i=!0):(g==='"'&&!i&&(f?f=!1:f=!0),c+=g),l++}a=c}if(u){let c="",i=!1,f="",b=!1,l=0;for(;l<a.length;){let g=a[l];if(b){c+=g,b=!1,l++;continue}if(g==="\\"){b=!0,c+=g,l++;continue}if((g==='"'||g==="'")&&!i)i=!0,f=g,c+=g;else if(i&&g===f)i=!1,f="",c+=g;else if(!i&&g===","){let m=l+1;for(;m<a.length&&/\s/.test(a[m]);)m++;if(m<a.length&&(a[m]==="]"||a[m]==="}")){l++;continue}else c+=g}else c+=g;l++}a=c}if(h){let c="",i=!1,f="",b=!1,l=0;for(;l<a.length;){if(b){c+=a[l],b=!1,l++;continue}if(a[l]==="\\"){b=!0,c+=a[l],l++;continue}if((a[l]==='"'||a[l]==="'")&&!i)i=!0,f=a[l],c+=a[l];else if(i&&a[l]===f)i=!1,f="",c+=a[l];else if(!i&&a.substr(l,9)==="undefined"){let g=l>0?a[l-1]:"",m=l+8<a.length?a[l+9]:"";if(/[a-zA-Z0-9_$]/.test(g)||/[a-zA-Z0-9_$]/.test(m))c+=a[l];else{c+="null",l+=9;continue}}else c+=a[l];l++}a=c}try{return JSON.parse(a)}catch{return}}var j=e=>e.trim(),L=e=>e.trimStart(),N=e=>e.trimEnd(),W=e=>e.replace(/[^a-zA-Z0-9]+(.)/g,(t,r)=>r.toUpperCase()).replace(/^[A-Z]/,t=>t.toLowerCase()),z=e=>e.replace(/[^a-zA-Z0-9]+(.)/g,(t,r)=>r.toUpperCase()).replace(/^[a-z]/,t=>t.toUpperCase()),E=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase(),Z=e=>e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase(),_=e=>e&&e.charAt(0).toUpperCase()+e.slice(1),J=e=>e.replace(/\b\w+/g,t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()),U=(e,t,r=0)=>e.startsWith(t,r),K=(e,t,r)=>e.endsWith(t,r),F=(e,t)=>e.includes(t),q=(e,t)=>e.toLowerCase().includes(t.toLowerCase()),I=(e,t,r)=>typeof e.replaceAll=="function"?e.replaceAll(t,r):e.replace(new RegExp(A(t),"g"),r),Q=(e,t,r)=>e.replace(new RegExp(A(t),"gi"),r),A=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),M=e=>{let t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};return e.replace(/[&<>"'/]/g,r=>t[r]||r)},V=e=>{let t={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#x2F;":"/"};return e.replace(/&(?:amp|lt|gt|quot|#39|#x2F);/g,r=>t[r]||r)},D=(e,t,r="...")=>e.length<=t?e:e.slice(0,t-r.length)+r,H=(e,t,r=" ",n="start")=>{let s=t-e.length;if(s<=0)return e;let u=r.repeat(s);switch(n){case"start":return u+e;case"end":return e+u;case"both":let h=Math.floor(s/2),a=s-h;return r.repeat(h)+e+r.repeat(a)}},B=e=>e.trim().length===0,G=e=>/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(e.trim()),X=e=>{try{return new URL(e),!0}catch{return!1}},Y=e=>{try{return new URL(e).hostname.replace(/^www\./,"")}catch{return""}},v=(e=10,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")=>{let r="",n=t.length;for(let s=0;s<e;s++)r+=t.charAt(Math.floor(Math.random()*n));return r},k=(e,t,r=!0)=>{if(!t)return 0;let n=r?e:e.toLowerCase(),s=r?t:t.toLowerCase(),u=0,h=0;for(;(h=n.indexOf(s,h))!==-1;)u++,h+=s.length;return u},ee=e=>e.replace(/\s+/g,""),O=e=>e.split("").reverse().join(""),te=(e,t=!1)=>{let n=(t?e:e.toLowerCase()).replace(/[^a-z0-9]/gi,"");return n===O(n)},re=e=>e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,""),ne=(e,t=0,r=0,n="*")=>{if(t+r>=e.length)return e;let s=e.slice(0,t),u=r>0?e.slice(-r):"",h=n.repeat(e.length-t-r);return s+h+u},se=(e,t=2)=>e.split(/\s+/).slice(0,t).map(r=>r.charAt(0).toUpperCase()).join(""),ie=e=>e.replace(/\r\n/g,`
4
- `).replace(/\r/g,`
5
- `),ae=(e,t=80)=>{let r=e.split(" "),n=[],s="";for(let u of r){let h=s.length+u.length+1;s.length+u.length<=t?s+=(s?" ":"")+u:(s&&n.push(s),s=u)}return s&&n.push(s),n},oe=e=>typeof e=="string",le=(e,t)=>{if(e==null)return t!==void 0?t:"";let r=e;if(Array.isArray(r)){if(r.length===0)return t!==void 0?t:""}else if(typeof r=="object"&&Object.keys(r).length===0)return t!==void 0?t:"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return String(e)}catch{return t!==void 0?t:""}},ue=(e,t=!0)=>{if(!t||new Set(["&nbsp;"," ","  ","_space_"]).has(e))return e;let n=/[.*+?^${}()|[\]\\]/g;return e.replace(n,"\\$&")};function P(e,t,r,n){if(t<0||t>e.length)throw new Error("Start index out of bounds");if(r<t||r>e.length)throw new Error("End index out of bounds");let s=e.substring(0,t),u=e.substring(r);return s+n+u}var ce=(e,t,r="start",n="")=>{if(!e||!t||t.length===0||e.length<t.length)return e;if(r==="both"){let u=e;return u.startsWith(t)&&(u=P(u,0,t.length,n)),u.endsWith(t)&&(u=P(u,u.length-t.length,u.length,n)),u}return r==="start"&&e.startsWith(t)||r==="end"&&e.endsWith(t)?r==="start"?n+e.substring(t.length):e.substring(0,e.length-t.length)+n:e},fe=(e,t)=>{let{pattern:r,position:n,newValue:s,useRegex:u=!1,flags:h}={...t};if(!e)return e;s||(s="");let a,c=typeof n>"u"||n==="start";if(u&&r instanceof RegExp){a=r;let i=a.source;n&&(n==="start"?r=`^${i}`:n==="end"?r=`${i}$`:r=`^${i}|${i}$`,r=new RegExp(r,h))}else if(u)n&&(n==="start"?r=`^${r}`:n==="end"?r=`${r}$`:n==="both"&&(r=`^${r}|${r}$`)),a=new RegExp(r,h);else{let i=r;a=new RegExp(c?`^${i}`:n==="end"?`${i}$`:n==="both"?`^${i}|${i}$`:`${i}`,h||"g")}return e.replace(a,s)},$=e=>{if(!e.startsWith("[")||!e.endsWith("]"))return e;let t=e.slice(1,-1).trim();if(t==="")return[];try{let c=`[${t}]`,i=JSON.parse(c);if(Array.isArray(i))return i}catch{}let r=[],n="",s=!1,u="",h=!1,a=0;for(let c=0;c<t.length;c++){let i=t[c];if(h){n+=i,h=!1;continue}if(i==="\\"&&s){h=!0;continue}(i==='"'||i==="'")&&!s?(s=!0,u=i):i===u&&s?(s=!1,u=""):i==="["&&!s?(a++,n+=i):i==="]"&&!s?(a--,n+=i):i===","&&!s&&a===0?(r.push(n.trim()),n=""):n+=i}return n.trim()&&r.push(n.trim()),r.map(c=>{let i=c.trim();return i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'")?i.slice(1,-1):i})},ge=e=>{let t=e.trim();if(t.startsWith("[")&&t.endsWith("]")){let r=$(t);return Array.isArray(r)?r:t}if(t.startsWith("{")&&t.endsWith("}"))try{return JSON.parse(t)}catch{let r=S(t);if(r!==void 0)return r;let n=t.replace(/([{,]\s*)(\w+)(\s*:)/g,'$1"$2"$3').replace(/:\s*'([^']*)'/g,':"$1"');try{return JSON.parse(n)}catch{return t}}try{return JSON.parse(t)}catch{return t}},pe=e=>Array.isArray(e)&&e.every(t=>typeof t=="string"),w=(e,t={})=>{let{delimiters:r=["|"],valueKey:n,labelKey:s,defaultObject:u,trimItems:h=!0,filterEmpty:a=!0,returnObjects:c,parsePrimitives:i=!1,preserveNullUndefined:f=!1}=t,b=c??(n!==void 0||s!==void 0||u!==void 0),l=o=>{let p=u?{...u}:{},d=h?o.trim():o;if(n!==void 0&&(p[n]=i?g(d):d),n!==s||n===void 0&&s===void 0){let x;n===void 0&&s===void 0?x=c?"label":n:x=s,x!==void 0&&(p[x]=d)}return p},g=o=>{let p=o.trim();if(p==="")return f?null:"";if(p.toLowerCase()==="null")return f?null:"null";if(p.toLowerCase()==="undefined")return f?null:"undefined";if(p.toLowerCase()==="true")return!0;if(p.toLowerCase()==="false")return!1;if(/^-?\d+$/.test(p)){let d=parseInt(p,10);return isNaN(d)?h?p:o:d}if(/^-?\d+\.\d+$/.test(p)){let d=parseFloat(p);return isNaN(d)?h?p:o:d}return h?p:o},m=o=>{if(o==null)return f?o:null;if(typeof o=="string"){let d=h?o.trim():o;return o==="null"?null:o==="undefined"?f?void 0:"undefined":o===""?f?null:"":a&&d===""?f?d:null:b?l(d):i?g(d):d}if(typeof o=="number"||typeof o=="boolean")if(b){let d=u?{...u}:{};return n!==void 0&&(d[n]=o),s!==void 0&&s!==n&&(d[s]=String(o)),d}else return o;if(typeof o=="object"&&!Array.isArray(o))return b?u?{...u,...o}:o:n&&o[n]!==void 0?o[n]:o;if(Array.isArray(o)){let d=JSON.stringify(o);return b?l(d):d}let p=String(o);return b?l(p):p};if(Array.isArray(e)){let o=e.map(m);return f?o:o.filter(p=>p!==null)}if(typeof e!="string")return e==null?[]:m(String(e))?[m(String(e))]:[];let y=e.trim();if(y==="")return[];if(y.startsWith("[")&&y.endsWith("]")||y.startsWith("{")&&y.endsWith("}"))try{let o=JSON.parse(y);if(Array.isArray(o)){let d=o.map(m);return f?d:d.filter(x=>x!==null)}let p=m(o);return p?[p]:[]}catch{}let T=$(y);if(Array.isArray(T)){let o=T.map(p=>m(p));return f?o:o.filter(p=>p!==null)}for(let o of r)if(y.includes(o)){let d=(h?y:e).split(o).map(x=>m(x));return f?d:d.filter(x=>x!==null&&(!a||x!==""))}let C=m(y);return C?[C]:[]},de=(e,t={})=>w(e,{...t,returnObjects:!1}),he=(e,t={})=>w(e,{...t,returnObjects:!0}),be=e=>e.every(t=>t==null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"),me=e=>{let t=e.trim();if(t===""||t.toLowerCase()==="null")return null;if(t.toLowerCase()!=="undefined"){if(t.toLowerCase()==="true")return!0;if(t.toLowerCase()==="false")return!1;if(/^-?\d+$/.test(t)){let r=parseInt(t,10);return isNaN(r)?t:r}if(/^-?\d+\.\d+$/.test(t)){let r=parseFloat(t);return isNaN(r)?t:r}if(/^-?\d+(?:\.\d+)?[eE][+-]?\d+$/.test(t)){let r=parseFloat(t);return isNaN(r)?t:r}return t}},Pe={trim:j,trimStart:L,trimEnd:N,toCamelCase:W,toPascalCase:z,toKebabCase:E,toSnakeCase:Z,capitalize:_,toTitleCase:J,startsWith:U,endsWith:K,includes:F,includesIgnoreCase:q,replaceStringByIndex:P,replaceAll:I,replaceAllIgnoreCase:Q,escapeRegExp:A,escapeHtml:M,unescapeHtml:V,truncate:D,pad:H,isEmpty:B,isValidEmail:G,isValidUrl:X,extractDomain:Y,randomString:v,countOccurrences:k,removeWhitespace:ee,reverse:O,isPalindrome:te,slugify:re,mask:ne,getInitials:se,normalizeLineEndings:ie,wordWrap:ae,isString:oe,toString:le,escapeString:ue,replaceString:ce,replaceStringPattern:fe,stringToObjectArray:w,parseArrayLiteral:$,parseLiteral:ge,isStringArray:pe,stringToPrimitiveArray:de,stringToObjectArrayOnly:he,isPrimitiveArray:be,parsePrimitiveValue:me};
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/primitive/string/string.ts
21
+ var string_exports = {};
22
+ __export(string_exports, {
23
+ capitalize: () => capitalize,
24
+ countOccurrences: () => countOccurrences,
25
+ default: () => string_default,
26
+ endsWith: () => endsWith,
27
+ escapeHtml: () => escapeHtml,
28
+ escapeRegExp: () => escapeRegExp,
29
+ escapeString: () => escapeString,
30
+ extractDomain: () => extractDomain,
31
+ getInitials: () => getInitials,
32
+ includes: () => includes,
33
+ includesIgnoreCase: () => includesIgnoreCase,
34
+ isEmpty: () => isEmpty,
35
+ isPalindrome: () => isPalindrome,
36
+ isPrimitiveArray: () => isPrimitiveArray,
37
+ isString: () => isString,
38
+ isStringArray: () => isStringArray,
39
+ isValidEmail: () => isValidEmail,
40
+ isValidUrl: () => isValidUrl,
41
+ mask: () => mask,
42
+ normalizeLineEndings: () => normalizeLineEndings,
43
+ pad: () => pad,
44
+ parseArrayLiteral: () => parseArrayLiteral,
45
+ parseLiteral: () => parseLiteral,
46
+ parsePrimitiveValue: () => parsePrimitiveValue,
47
+ randomString: () => randomString,
48
+ removeWhitespace: () => removeWhitespace,
49
+ replaceAll: () => replaceAll,
50
+ replaceAllIgnoreCase: () => replaceAllIgnoreCase,
51
+ replaceString: () => replaceString,
52
+ replaceStringPattern: () => replaceStringPattern,
53
+ reverse: () => reverse,
54
+ slugify: () => slugify,
55
+ startsWith: () => startsWith,
56
+ stringToObjectArray: () => stringToObjectArray,
57
+ stringToObjectArrayOnly: () => stringToObjectArrayOnly,
58
+ stringToPrimitiveArray: () => stringToPrimitiveArray,
59
+ toCamelCase: () => toCamelCase,
60
+ toKebabCase: () => toKebabCase,
61
+ toPascalCase: () => toPascalCase,
62
+ toSnakeCase: () => toSnakeCase,
63
+ toString: () => toString,
64
+ toTitleCase: () => toTitleCase,
65
+ trim: () => trim,
66
+ trimEnd: () => trimEnd,
67
+ trimStart: () => trimStart,
68
+ truncate: () => truncate,
69
+ unescapeHtml: () => unescapeHtml,
70
+ wordWrap: () => wordWrap
71
+ });
72
+ module.exports = __toCommonJS(string_exports);
73
+
74
+ // src/lib/primitive/string/parser.ts
75
+ function parseJsObjectLiteral(str, options = {}) {
76
+ const {
77
+ allowComments = true,
78
+ allowUnquotedKeys = true,
79
+ allowSingleQuotes = true,
80
+ allowTrailingCommas = true,
81
+ allowUndefined = false
82
+ } = options;
83
+ let fixed = str.trim();
84
+ if (allowComments) {
85
+ fixed = fixed.replace(/\/\*[\s\S]*?\*\//g, "");
86
+ const lines = fixed.split("\n");
87
+ const cleanedLines = lines.map((line) => {
88
+ let inString = false;
89
+ let stringChar = "";
90
+ let escapeNext = false;
91
+ for (let i = 0; i < line.length; i++) {
92
+ const char = line[i];
93
+ if (escapeNext) {
94
+ escapeNext = false;
95
+ continue;
96
+ }
97
+ if (char === "\\") {
98
+ escapeNext = true;
99
+ continue;
100
+ }
101
+ if (!inString && (char === '"' || char === "'")) {
102
+ inString = true;
103
+ stringChar = char;
104
+ } else if (inString && char === stringChar) {
105
+ inString = false;
106
+ stringChar = "";
107
+ } else if (!inString && char === "/" && line[i + 1] === "/") {
108
+ return line.substring(0, i);
109
+ }
110
+ }
111
+ return line;
112
+ });
113
+ fixed = cleanedLines.join("\n");
114
+ }
115
+ if (allowUnquotedKeys) {
116
+ fixed = fixed.replace(/([{,]\s*)([a-zA-Z_$][a-zA-Z0-9_$]*)(\s*:)/g, '$1"$2"$3');
117
+ }
118
+ if (allowSingleQuotes) {
119
+ let result = "";
120
+ let inSingleQuote = false;
121
+ let inDoubleQuote = false;
122
+ let escapeNext = false;
123
+ let i = 0;
124
+ while (i < fixed.length) {
125
+ const char = fixed[i];
126
+ if (escapeNext) {
127
+ result += char;
128
+ escapeNext = false;
129
+ i++;
130
+ continue;
131
+ }
132
+ if (char === "\\") {
133
+ escapeNext = true;
134
+ result += char;
135
+ i++;
136
+ continue;
137
+ }
138
+ if (char === "'" && !inDoubleQuote) {
139
+ if (inSingleQuote) {
140
+ result += '"';
141
+ inSingleQuote = false;
142
+ } else {
143
+ result += '"';
144
+ inSingleQuote = true;
145
+ }
146
+ } else if (char === '"' && !inSingleQuote) {
147
+ if (inDoubleQuote) {
148
+ inDoubleQuote = false;
149
+ } else {
150
+ inDoubleQuote = true;
151
+ }
152
+ result += char;
153
+ } else {
154
+ result += char;
155
+ }
156
+ i++;
157
+ }
158
+ fixed = result;
159
+ }
160
+ if (allowTrailingCommas) {
161
+ let result = "";
162
+ let inString = false;
163
+ let stringChar = "";
164
+ let escapeNext = false;
165
+ let i = 0;
166
+ while (i < fixed.length) {
167
+ const char = fixed[i];
168
+ if (escapeNext) {
169
+ result += char;
170
+ escapeNext = false;
171
+ i++;
172
+ continue;
173
+ }
174
+ if (char === "\\") {
175
+ escapeNext = true;
176
+ result += char;
177
+ i++;
178
+ continue;
179
+ }
180
+ if ((char === '"' || char === "'") && !inString) {
181
+ inString = true;
182
+ stringChar = char;
183
+ result += char;
184
+ } else if (inString && char === stringChar) {
185
+ inString = false;
186
+ stringChar = "";
187
+ result += char;
188
+ } else if (!inString && char === ",") {
189
+ let j = i + 1;
190
+ while (j < fixed.length && /\s/.test(fixed[j])) {
191
+ j++;
192
+ }
193
+ if (j < fixed.length && (fixed[j] === "]" || fixed[j] === "}")) {
194
+ i++;
195
+ continue;
196
+ } else {
197
+ result += char;
198
+ }
199
+ } else {
200
+ result += char;
201
+ }
202
+ i++;
203
+ }
204
+ fixed = result;
205
+ }
206
+ if (allowUndefined) {
207
+ let result = "";
208
+ let inString = false;
209
+ let stringChar = "";
210
+ let escapeNext = false;
211
+ let i = 0;
212
+ while (i < fixed.length) {
213
+ if (escapeNext) {
214
+ result += fixed[i];
215
+ escapeNext = false;
216
+ i++;
217
+ continue;
218
+ }
219
+ if (fixed[i] === "\\") {
220
+ escapeNext = true;
221
+ result += fixed[i];
222
+ i++;
223
+ continue;
224
+ }
225
+ if ((fixed[i] === '"' || fixed[i] === "'") && !inString) {
226
+ inString = true;
227
+ stringChar = fixed[i];
228
+ result += fixed[i];
229
+ } else if (inString && fixed[i] === stringChar) {
230
+ inString = false;
231
+ stringChar = "";
232
+ result += fixed[i];
233
+ } else if (!inString && fixed.substr(i, 9) === "undefined") {
234
+ const before = i > 0 ? fixed[i - 1] : "";
235
+ const after = i + 8 < fixed.length ? fixed[i + 9] : "";
236
+ const isWordChar = /[a-zA-Z0-9_$]/.test(before) || /[a-zA-Z0-9_$]/.test(after);
237
+ if (!isWordChar) {
238
+ result += "null";
239
+ i += 9;
240
+ continue;
241
+ } else {
242
+ result += fixed[i];
243
+ }
244
+ } else {
245
+ result += fixed[i];
246
+ }
247
+ i++;
248
+ }
249
+ fixed = result;
250
+ }
251
+ try {
252
+ return JSON.parse(fixed);
253
+ } catch (e) {
254
+ return void 0;
255
+ }
256
+ }
257
+
258
+ // src/lib/primitive/string/string.ts
259
+ var trim = (str) => {
260
+ return str.trim();
261
+ };
262
+ var trimStart = (str) => {
263
+ return str.trimStart();
264
+ };
265
+ var trimEnd = (str) => {
266
+ return str.trimEnd();
267
+ };
268
+ var toCamelCase = (str) => {
269
+ return str.replace(/[^a-zA-Z0-9]+(.)/g, (_, chr) => chr.toUpperCase()).replace(/^[A-Z]/, (chr) => chr.toLowerCase());
270
+ };
271
+ var toPascalCase = (str) => {
272
+ return str.replace(/[^a-zA-Z0-9]+(.)/g, (_, chr) => chr.toUpperCase()).replace(/^[a-z]/, (chr) => chr.toUpperCase());
273
+ };
274
+ var toKebabCase = (str) => {
275
+ return str.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]+/g, "-").toLowerCase();
276
+ };
277
+ var toSnakeCase = (str) => {
278
+ return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[-\s]+/g, "_").toLowerCase();
279
+ };
280
+ var capitalize = (str) => {
281
+ if (!str) return str;
282
+ return str.charAt(0).toUpperCase() + str.slice(1);
283
+ };
284
+ var toTitleCase = (str) => {
285
+ return str.replace(
286
+ /\b\w+/g,
287
+ (word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()
288
+ );
289
+ };
290
+ var startsWith = (str, search, position = 0) => {
291
+ return str.startsWith(search, position);
292
+ };
293
+ var endsWith = (str, search, length) => {
294
+ return str.endsWith(search, length);
295
+ };
296
+ var includes = (str, search) => {
297
+ return str.includes(search);
298
+ };
299
+ var includesIgnoreCase = (str, search) => {
300
+ return str.toLowerCase().includes(search.toLowerCase());
301
+ };
302
+ var replaceAll = (str, search, replacement) => {
303
+ if (typeof str.replaceAll === "function") {
304
+ return str.replaceAll(search, replacement);
305
+ }
306
+ return str.replace(new RegExp(escapeRegExp(search), "g"), replacement);
307
+ };
308
+ var replaceAllIgnoreCase = (str, search, replacement) => {
309
+ return str.replace(new RegExp(escapeRegExp(search), "gi"), replacement);
310
+ };
311
+ var escapeRegExp = (str) => {
312
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
313
+ };
314
+ var escapeHtml = (str) => {
315
+ const htmlEntities = {
316
+ "&": "&amp;",
317
+ "<": "&lt;",
318
+ ">": "&gt;",
319
+ '"': "&quot;",
320
+ "'": "&#39;",
321
+ "/": "&#x2F;"
322
+ };
323
+ return str.replace(/[&<>"'/]/g, (char) => htmlEntities[char] || char);
324
+ };
325
+ var unescapeHtml = (str) => {
326
+ const htmlEntities = {
327
+ "&amp;": "&",
328
+ "&lt;": "<",
329
+ "&gt;": ">",
330
+ "&quot;": '"',
331
+ "&#39;": "'",
332
+ "&#x2F;": "/"
333
+ };
334
+ return str.replace(
335
+ /&(?:amp|lt|gt|quot|#39|#x2F);/g,
336
+ (entity) => htmlEntities[entity] || entity
337
+ );
338
+ };
339
+ var truncate = (str, length, ellipsis = "...") => {
340
+ if (str.length <= length) return str;
341
+ return str.slice(0, length - ellipsis.length) + ellipsis;
342
+ };
343
+ var pad = (str, length, padChar = " ", side = "start") => {
344
+ const paddingNeeded = length - str.length;
345
+ if (paddingNeeded <= 0) return str;
346
+ const padStr = padChar.repeat(paddingNeeded);
347
+ switch (side) {
348
+ case "start":
349
+ return padStr + str;
350
+ case "end":
351
+ return str + padStr;
352
+ case "both":
353
+ const leftPad = Math.floor(paddingNeeded / 2);
354
+ const rightPad = paddingNeeded - leftPad;
355
+ return padChar.repeat(leftPad) + str + padChar.repeat(rightPad);
356
+ }
357
+ };
358
+ var isEmpty = (str) => {
359
+ return str.trim().length === 0;
360
+ };
361
+ var isValidEmail = (email) => {
362
+ const emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
363
+ return emailRegex.test(email.trim());
364
+ };
365
+ var isValidUrl = (url) => {
366
+ try {
367
+ new URL(url);
368
+ return true;
369
+ } catch {
370
+ return false;
371
+ }
372
+ };
373
+ var extractDomain = (url) => {
374
+ try {
375
+ const urlObj = new URL(url);
376
+ return urlObj.hostname.replace(/^www\./, "");
377
+ } catch {
378
+ return "";
379
+ }
380
+ };
381
+ var randomString = (length = 10, charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") => {
382
+ let result = "";
383
+ const charsetLength = charset.length;
384
+ for (let i = 0; i < length; i++) {
385
+ result += charset.charAt(Math.floor(Math.random() * charsetLength));
386
+ }
387
+ return result;
388
+ };
389
+ var countOccurrences = (str, search, caseSensitive = true) => {
390
+ if (!search) return 0;
391
+ const source = caseSensitive ? str : str.toLowerCase();
392
+ const target = caseSensitive ? search : search.toLowerCase();
393
+ let count = 0;
394
+ let position = 0;
395
+ while ((position = source.indexOf(target, position)) !== -1) {
396
+ count++;
397
+ position += target.length;
398
+ }
399
+ return count;
400
+ };
401
+ var removeWhitespace = (str) => {
402
+ return str.replace(/\s+/g, "");
403
+ };
404
+ var reverse = (str) => {
405
+ return str.split("").reverse().join("");
406
+ };
407
+ var isPalindrome = (str, caseSensitive = false) => {
408
+ const normalized = caseSensitive ? str : str.toLowerCase();
409
+ const cleaned = normalized.replace(/[^a-z0-9]/gi, "");
410
+ return cleaned === reverse(cleaned);
411
+ };
412
+ var slugify = (str) => {
413
+ return str.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, "");
414
+ };
415
+ var mask = (str, visibleStart = 0, visibleEnd = 0, maskChar = "*") => {
416
+ if (visibleStart + visibleEnd >= str.length) {
417
+ return str;
418
+ }
419
+ const start = str.slice(0, visibleStart);
420
+ const end = visibleEnd > 0 ? str.slice(-visibleEnd) : "";
421
+ const middle = maskChar.repeat(str.length - visibleStart - visibleEnd);
422
+ return start + middle + end;
423
+ };
424
+ var getInitials = (name, maxInitials = 2) => {
425
+ return name.split(/\s+/).slice(0, maxInitials).map((word) => word.charAt(0).toUpperCase()).join("");
426
+ };
427
+ var normalizeLineEndings = (str) => {
428
+ return str.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
429
+ };
430
+ var wordWrap = (text, lineLength = 80) => {
431
+ const words = text.split(" ");
432
+ const lines = [];
433
+ let currentLine = "";
434
+ for (const word of words) {
435
+ const len = currentLine.length + word.length + 1;
436
+ if (currentLine.length + word.length <= lineLength) {
437
+ currentLine += (currentLine ? " " : "") + word;
438
+ } else {
439
+ if (currentLine) {
440
+ lines.push(currentLine);
441
+ }
442
+ currentLine = word;
443
+ }
444
+ }
445
+ if (currentLine) {
446
+ lines.push(currentLine);
447
+ }
448
+ return lines;
449
+ };
450
+ var isString = (value) => {
451
+ return typeof value === "string";
452
+ };
453
+ var toString = (value, fallback) => {
454
+ if (value == null) {
455
+ return fallback !== void 0 ? fallback : "";
456
+ }
457
+ const v = value;
458
+ if (Array.isArray(v)) {
459
+ if (v.length === 0) {
460
+ return fallback !== void 0 ? fallback : "";
461
+ }
462
+ } else {
463
+ if (typeof v === "object" && Object.keys(v).length === 0) {
464
+ return fallback !== void 0 ? fallback : "";
465
+ }
466
+ }
467
+ if (typeof value === "string") {
468
+ return value;
469
+ }
470
+ if (typeof value === "number" || typeof value === "boolean") {
471
+ return String(value);
472
+ }
473
+ try {
474
+ return String(value);
475
+ } catch {
476
+ return fallback !== void 0 ? fallback : "";
477
+ }
478
+ };
479
+ var escapeString = (str, escape = true) => {
480
+ if (!escape) {
481
+ return str;
482
+ }
483
+ const exclude = /* @__PURE__ */ new Set(["&nbsp;", " ", "  ", "_space_"]);
484
+ if (exclude.has(str)) {
485
+ return str;
486
+ }
487
+ const regexSpecialChars = /[.*+?^${}()|[\]\\]/g;
488
+ return str.replace(regexSpecialChars, "\\$&");
489
+ };
490
+ function replaceStringByIndex(original, startIndex, endIndex, replacement) {
491
+ if (startIndex < 0 || startIndex > original.length) {
492
+ throw new Error("Start index out of bounds");
493
+ }
494
+ if (endIndex < startIndex || endIndex > original.length) {
495
+ throw new Error("End index out of bounds");
496
+ }
497
+ const before = original.substring(0, startIndex);
498
+ const after = original.substring(endIndex);
499
+ return before + replacement + after;
500
+ }
501
+ var replaceString = (originalString, valueToReplace, position = "start", newValue = "") => {
502
+ if (!originalString || !valueToReplace || valueToReplace.length === 0 || originalString.length < valueToReplace.length) {
503
+ return originalString;
504
+ }
505
+ if (position === "both") {
506
+ let result = originalString;
507
+ if (result.startsWith(valueToReplace)) {
508
+ result = replaceStringByIndex(result, 0, valueToReplace.length, newValue);
509
+ }
510
+ if (result.endsWith(valueToReplace)) {
511
+ result = replaceStringByIndex(
512
+ result,
513
+ result.length - valueToReplace.length,
514
+ result.length,
515
+ newValue
516
+ );
517
+ }
518
+ return result;
519
+ }
520
+ const shouldReplace = position === "start" && originalString.startsWith(valueToReplace) || position === "end" && originalString.endsWith(valueToReplace);
521
+ if (!shouldReplace) {
522
+ return originalString;
523
+ }
524
+ if (position === "start") {
525
+ return newValue + originalString.substring(valueToReplace.length);
526
+ } else {
527
+ return originalString.substring(
528
+ 0,
529
+ originalString.length - valueToReplace.length
530
+ ) + newValue;
531
+ }
532
+ };
533
+ var replaceStringPattern = (originalString, options) => {
534
+ let { pattern, position, newValue, useRegex = false, flags } = { ...options };
535
+ if (!originalString) {
536
+ return originalString;
537
+ }
538
+ if (!newValue) {
539
+ newValue = "";
540
+ }
541
+ let regex;
542
+ const isStart = typeof position === "undefined" || position === "start";
543
+ if (useRegex && pattern instanceof RegExp) {
544
+ regex = pattern;
545
+ const regex_string = regex.source;
546
+ if (position) {
547
+ if (position === "start") {
548
+ pattern = `^${regex_string}`;
549
+ } else if (position === "end") {
550
+ pattern = `${regex_string}$`;
551
+ } else {
552
+ pattern = `^${regex_string}|${regex_string}$`;
553
+ }
554
+ pattern = new RegExp(pattern, flags);
555
+ }
556
+ } else if (useRegex) {
557
+ if (position) {
558
+ if (position === "start") {
559
+ pattern = `^${pattern}`;
560
+ } else if (position === "end") {
561
+ pattern = `${pattern}$`;
562
+ } else if (position === "both") {
563
+ pattern = `^${pattern}|${pattern}$`;
564
+ }
565
+ }
566
+ regex = new RegExp(pattern, flags);
567
+ } else {
568
+ const escapedPattern = pattern;
569
+ regex = new RegExp(
570
+ isStart ? `^${escapedPattern}` : position === "end" ? `${escapedPattern}$` : position === "both" ? `^${escapedPattern}|${escapedPattern}$` : `${escapedPattern}`,
571
+ flags || "g"
572
+ );
573
+ }
574
+ return originalString.replace(regex, newValue);
575
+ };
576
+ var parseArrayLiteral = (str) => {
577
+ if (!str.startsWith("[") || !str.endsWith("]")) {
578
+ return str;
579
+ }
580
+ const innerStr = str.slice(1, -1).trim();
581
+ if (innerStr === "") {
582
+ return [];
583
+ }
584
+ try {
585
+ const jsonStr = `[${innerStr}]`;
586
+ const parsed = JSON.parse(jsonStr);
587
+ if (Array.isArray(parsed)) {
588
+ return parsed;
589
+ }
590
+ } catch {
591
+ }
592
+ const items = [];
593
+ let current = "";
594
+ let inQuotes = false;
595
+ let quoteChar = "";
596
+ let escaped = false;
597
+ let depth = 0;
598
+ for (let i = 0; i < innerStr.length; i++) {
599
+ const char = innerStr[i];
600
+ if (escaped) {
601
+ current += char;
602
+ escaped = false;
603
+ continue;
604
+ }
605
+ if (char === "\\" && inQuotes) {
606
+ escaped = true;
607
+ continue;
608
+ }
609
+ if ((char === '"' || char === "'") && !inQuotes) {
610
+ inQuotes = true;
611
+ quoteChar = char;
612
+ } else if (char === quoteChar && inQuotes) {
613
+ inQuotes = false;
614
+ quoteChar = "";
615
+ } else if (char === "[" && !inQuotes) {
616
+ depth++;
617
+ current += char;
618
+ } else if (char === "]" && !inQuotes) {
619
+ depth--;
620
+ current += char;
621
+ } else if (char === "," && !inQuotes && depth === 0) {
622
+ items.push(current.trim());
623
+ current = "";
624
+ } else {
625
+ current += char;
626
+ }
627
+ }
628
+ if (current.trim()) {
629
+ items.push(current.trim());
630
+ }
631
+ return items.map((item) => {
632
+ const trimmed = item.trim();
633
+ if (trimmed.startsWith('"') && trimmed.endsWith('"') || trimmed.startsWith("'") && trimmed.endsWith("'")) {
634
+ return trimmed.slice(1, -1);
635
+ }
636
+ return trimmed;
637
+ });
638
+ };
639
+ var parseLiteral = (str) => {
640
+ const trimmed = str.trim();
641
+ if (trimmed.startsWith("[") && trimmed.endsWith("]")) {
642
+ const result = parseArrayLiteral(trimmed);
643
+ return Array.isArray(result) ? result : trimmed;
644
+ }
645
+ if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
646
+ try {
647
+ return JSON.parse(trimmed);
648
+ } catch {
649
+ const p = parseJsObjectLiteral(trimmed);
650
+ if (p !== void 0) {
651
+ return p;
652
+ }
653
+ const fixed = trimmed.replace(/([{,]\s*)(\w+)(\s*:)/g, '$1"$2"$3').replace(/:\s*'([^']*)'/g, ':"$1"');
654
+ try {
655
+ return JSON.parse(fixed);
656
+ } catch {
657
+ return trimmed;
658
+ }
659
+ }
660
+ }
661
+ try {
662
+ return JSON.parse(trimmed);
663
+ } catch {
664
+ return trimmed;
665
+ }
666
+ };
667
+ var isStringArray = (value) => {
668
+ return Array.isArray(value) && value.every((item) => typeof item === "string");
669
+ };
670
+ var stringToObjectArray = (input, options = {}) => {
671
+ const {
672
+ delimiters = ["|"],
673
+ valueKey,
674
+ labelKey,
675
+ defaultObject,
676
+ trimItems = true,
677
+ filterEmpty = true,
678
+ returnObjects,
679
+ parsePrimitives = false,
680
+ preserveNullUndefined = false
681
+ } = options;
682
+ const shouldReturnObjects = returnObjects ?? (valueKey !== void 0 || labelKey !== void 0 || defaultObject !== void 0);
683
+ const createObject = (item) => {
684
+ const base = defaultObject ? { ...defaultObject } : {};
685
+ const trimmed = trimItems ? item.trim() : item;
686
+ if (valueKey !== void 0) {
687
+ base[valueKey] = parsePrimitives ? parsePrimitiveValue2(trimmed) : trimmed;
688
+ }
689
+ if (valueKey !== labelKey || valueKey === void 0 && labelKey === void 0) {
690
+ let label;
691
+ if (valueKey === void 0 && labelKey === void 0) {
692
+ label = returnObjects ? "label" : valueKey;
693
+ } else {
694
+ label = labelKey;
695
+ }
696
+ if (label !== void 0) {
697
+ base[label] = trimmed;
698
+ }
699
+ }
700
+ return base;
701
+ };
702
+ const parsePrimitiveValue2 = (str2) => {
703
+ const trimmed = str2.trim();
704
+ if (trimmed === "") {
705
+ return preserveNullUndefined ? null : "";
706
+ }
707
+ if (trimmed.toLowerCase() === "null") {
708
+ return preserveNullUndefined ? null : "null";
709
+ }
710
+ if (trimmed.toLowerCase() === "undefined") {
711
+ return preserveNullUndefined ? null : "undefined";
712
+ }
713
+ if (trimmed.toLowerCase() === "true") return true;
714
+ if (trimmed.toLowerCase() === "false") return false;
715
+ if (/^-?\d+$/.test(trimmed)) {
716
+ const num = parseInt(trimmed, 10);
717
+ return isNaN(num) ? trimItems ? trimmed : str2 : num;
718
+ }
719
+ if (/^-?\d+\.\d+$/.test(trimmed)) {
720
+ const num = parseFloat(trimmed);
721
+ return isNaN(num) ? trimItems ? trimmed : str2 : num;
722
+ }
723
+ if (!trimItems) return str2;
724
+ return trimmed;
725
+ };
726
+ const processItem = (item) => {
727
+ if (item == null) {
728
+ return preserveNullUndefined ? item : null;
729
+ }
730
+ if (typeof item === "string") {
731
+ const processed2 = trimItems ? item.trim() : item;
732
+ if (item === "null")
733
+ return preserveNullUndefined ? null : null;
734
+ if (item === "undefined")
735
+ return preserveNullUndefined ? void 0 : "undefined";
736
+ if (item === "")
737
+ return preserveNullUndefined ? null : "";
738
+ if (filterEmpty && processed2 === "") {
739
+ return preserveNullUndefined ? processed2 : null;
740
+ }
741
+ if (shouldReturnObjects) {
742
+ return createObject(processed2);
743
+ } else {
744
+ return parsePrimitives ? parsePrimitiveValue2(processed2) : processed2;
745
+ }
746
+ }
747
+ if (typeof item === "number" || typeof item === "boolean") {
748
+ if (shouldReturnObjects) {
749
+ const base = defaultObject ? { ...defaultObject } : {};
750
+ if (valueKey !== void 0) base[valueKey] = item;
751
+ if (labelKey !== void 0 && labelKey !== valueKey)
752
+ base[labelKey] = String(item);
753
+ return base;
754
+ } else {
755
+ return item;
756
+ }
757
+ }
758
+ if (typeof item === "object" && !Array.isArray(item)) {
759
+ if (shouldReturnObjects) {
760
+ return defaultObject ? { ...defaultObject, ...item } : item;
761
+ } else {
762
+ if (valueKey && item[valueKey] !== void 0) {
763
+ return item[valueKey];
764
+ }
765
+ return item;
766
+ }
767
+ }
768
+ if (Array.isArray(item)) {
769
+ const str3 = JSON.stringify(item);
770
+ if (shouldReturnObjects) {
771
+ return createObject(str3);
772
+ } else {
773
+ return str3;
774
+ }
775
+ }
776
+ const str2 = String(item);
777
+ if (shouldReturnObjects) {
778
+ return createObject(str2);
779
+ } else {
780
+ return str2;
781
+ }
782
+ };
783
+ if (Array.isArray(input)) {
784
+ const result = input.map(processItem);
785
+ if (preserveNullUndefined) {
786
+ return result;
787
+ }
788
+ return result.filter((item) => item !== null);
789
+ }
790
+ if (typeof input !== "string") {
791
+ if (input == null) return [];
792
+ return processItem(String(input)) ? [processItem(String(input))] : [];
793
+ }
794
+ const str = input.trim();
795
+ if (str === "") {
796
+ return [];
797
+ }
798
+ if (str.startsWith("[") && str.endsWith("]") || str.startsWith("{") && str.endsWith("}")) {
799
+ try {
800
+ const parsed = JSON.parse(str);
801
+ if (Array.isArray(parsed)) {
802
+ const result = parsed.map(processItem);
803
+ if (preserveNullUndefined) {
804
+ return result;
805
+ }
806
+ return result.filter((item) => item !== null);
807
+ }
808
+ const processed2 = processItem(parsed);
809
+ return processed2 ? [processed2] : [];
810
+ } catch {
811
+ }
812
+ }
813
+ const literalResult = parseArrayLiteral(str);
814
+ if (Array.isArray(literalResult)) {
815
+ const result = literalResult.map((item) => {
816
+ const processed2 = processItem(item);
817
+ return processed2;
818
+ });
819
+ if (preserveNullUndefined) {
820
+ return result;
821
+ }
822
+ return result.filter((item) => item !== null);
823
+ }
824
+ for (const delimiter of delimiters) {
825
+ if (str.includes(delimiter)) {
826
+ const parts = (trimItems ? str : input).split(delimiter);
827
+ const result = parts.map((part) => processItem(part));
828
+ if (preserveNullUndefined) {
829
+ return result;
830
+ }
831
+ return result.filter(
832
+ (item) => item !== null && (!filterEmpty || item !== "")
833
+ );
834
+ }
835
+ }
836
+ const processed = processItem(str);
837
+ return processed ? [processed] : [];
838
+ };
839
+ var stringToPrimitiveArray = (input, options = {}) => {
840
+ return stringToObjectArray(input, {
841
+ ...options,
842
+ returnObjects: false
843
+ });
844
+ };
845
+ var stringToObjectArrayOnly = (input, options = {}) => {
846
+ return stringToObjectArray(input, {
847
+ ...options,
848
+ returnObjects: true
849
+ });
850
+ };
851
+ var isPrimitiveArray = (arr) => {
852
+ return arr.every(
853
+ (item) => item == null || typeof item === "string" || typeof item === "number" || typeof item === "boolean"
854
+ );
855
+ };
856
+ var parsePrimitiveValue = (str) => {
857
+ const trimmed = str.trim();
858
+ if (trimmed === "") return null;
859
+ if (trimmed.toLowerCase() === "null") return null;
860
+ if (trimmed.toLowerCase() === "undefined") return void 0;
861
+ if (trimmed.toLowerCase() === "true") return true;
862
+ if (trimmed.toLowerCase() === "false") return false;
863
+ if (/^-?\d+$/.test(trimmed)) {
864
+ const num = parseInt(trimmed, 10);
865
+ return isNaN(num) ? trimmed : num;
866
+ }
867
+ if (/^-?\d+\.\d+$/.test(trimmed)) {
868
+ const num = parseFloat(trimmed);
869
+ return isNaN(num) ? trimmed : num;
870
+ }
871
+ if (/^-?\d+(?:\.\d+)?[eE][+-]?\d+$/.test(trimmed)) {
872
+ const num = parseFloat(trimmed);
873
+ return isNaN(num) ? trimmed : num;
874
+ }
875
+ return trimmed;
876
+ };
877
+ var string_default = {
878
+ trim,
879
+ trimStart,
880
+ trimEnd,
881
+ toCamelCase,
882
+ toPascalCase,
883
+ toKebabCase,
884
+ toSnakeCase,
885
+ capitalize,
886
+ toTitleCase,
887
+ startsWith,
888
+ endsWith,
889
+ includes,
890
+ includesIgnoreCase,
891
+ replaceStringByIndex,
892
+ replaceAll,
893
+ replaceAllIgnoreCase,
894
+ escapeRegExp,
895
+ escapeHtml,
896
+ unescapeHtml,
897
+ truncate,
898
+ pad,
899
+ isEmpty,
900
+ isValidEmail,
901
+ isValidUrl,
902
+ extractDomain,
903
+ randomString,
904
+ countOccurrences,
905
+ removeWhitespace,
906
+ reverse,
907
+ isPalindrome,
908
+ slugify,
909
+ mask,
910
+ getInitials,
911
+ normalizeLineEndings,
912
+ wordWrap,
913
+ isString,
914
+ toString,
915
+ escapeString,
916
+ replaceString,
917
+ replaceStringPattern,
918
+ stringToObjectArray,
919
+ parseArrayLiteral,
920
+ parseLiteral,
921
+ isStringArray,
922
+ stringToPrimitiveArray,
923
+ stringToObjectArrayOnly,
924
+ isPrimitiveArray,
925
+ parsePrimitiveValue
926
+ };