UNPKG

casing-kit

Version:

A lightweight, zero-dependency utility library for case transformations in JavaScript and TypeScript

2 lines (1 loc) 17.2 kB
function d(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.split(/\s+/).map((A,Z)=>Z===0?A.toLowerCase():A.charAt(0).toUpperCase()+A.slice(1).toLowerCase()).join("");return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.split(/\s+/).map((m,h)=>h===0?m.toLowerCase():m.charAt(0).toUpperCase()+m.slice(1).toLowerCase()).join("");return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/\s+/g," ").replace(/[^a-zA-Z0-9]+/g," ").trim().split(/\s+/).map((o,f)=>f===0?o.toLowerCase():o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join("");return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_\s]+/g," ").trim().split(/\s+/).map((a,t)=>t===0?a.toLowerCase():a.charAt(0).toUpperCase()+a.slice(1).toLowerCase()).join(""):r.replace(/\s+/g,"")).join(""):e.replace(/[^a-zA-Z0-9]+/g," ").trim().split(/\s+|(?=[A-Z][a-z])/).map((s,r)=>r===0?s.toLowerCase():s.charAt(0).toUpperCase()+s.slice(1).toLowerCase()).join("")}function u(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.replace(/\s+/g,"-").toUpperCase();return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.replace(/\s+/g,"-").toUpperCase();return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9]+/g,"-").toUpperCase();return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toUpperCase():r.replace(/\s+/g,"")).join(""):e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[^a-zA-Z0-9]+/g,"-").replace(/^-+|-+$/g,"").toUpperCase()}function L(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.replace(/\s+/g,"_").toUpperCase();return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.replace(/\s+/g,"_").toUpperCase();return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9]+/g,"_").toUpperCase();return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[_\s]+/g,"_").trim().toUpperCase():r).join(""):e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[^\w\s]|_/g," ").replace(/\s+/g,"_").replace(/^_+|_+$/g,"").toUpperCase()}function v(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.replace(/\s+/g,".").toLowerCase();return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.replace(/\s+/g,".").toLowerCase();return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9]+/g,".").toLowerCase();return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1.$2").replace(/[_\s]+/g,".").toLowerCase():r).join(""):e.replace(/([a-z])([A-Z])/g,"$1.$2").replace(/[^a-zA-Z0-9]+/g,".").replace(/^\.+|\.+$/g,"").toLowerCase()}function b(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.replace(/\s+/g,"").toLowerCase();return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.replace(/\s+/g,"").toLowerCase();return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9]+/g,"").toLowerCase();return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1$2").replace(/[_\s]+/g,"").toLowerCase():r.replace(/\s+/g,"")).join(""):e.replace(/[\s\W_]+/g,"").toLowerCase()}function j(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/\s+/g,"-").toLowerCase();return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/\s+/g,"-").toLowerCase();return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[^a-zA-Z0-9]+/g,"-").toLowerCase();return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase():r.replace(/\s+/g,"")).join(""):e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[^a-zA-Z0-9]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase()}function P(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.toLowerCase();return`${r}${n}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9\s]+/g," ").toLowerCase();return`${r}${n}${t}`}return c?e.toLowerCase():e.trim().replace(/\s+/g," ").toLowerCase()}function y(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.replace(/\s+/g,"_").toUpperCase();return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.replace(/\s+/g,"_").toUpperCase();return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9]+/g,"_").toUpperCase();return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[_\s]+/g,"_").trim().toUpperCase():r).join(""):e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[^\w\s]|_/g," ").replace(/\s+/g,"_").replace(/^_+|_+$/g,"").toUpperCase()}function E(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.split(/\s+/).map(A=>A.charAt(0).toUpperCase()+A.slice(1).toLowerCase()).join("");return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.split(/\s+/).map(m=>m.charAt(0).toUpperCase()+m.slice(1).toLowerCase()).join("");return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9]+/g," ").trim().split(/\s+/).map(o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join("");return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_\s]+/g," ").trim().split(/\s+/).map(a=>a.charAt(0).toUpperCase()+a.slice(1).toLowerCase()).join(""):r).join(""):e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[^a-zA-Z0-9]+/g," ").trim().split(/\s+/).map(s=>s.charAt(0).toUpperCase()+s.slice(1).toLowerCase()).join("")}function K(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.replace(/\s+/g,"/").toLowerCase();return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.replace(/\s+/g,"/").toLowerCase();return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9]+/g,"/").toLowerCase();return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1/$2").replace(/[_\s]+/g,"/").toLowerCase():r.replace(/\s+/g,"")).join(""):e.replace(/([a-z])([A-Z])/g,"$1/$2").replace(/[^a-zA-Z0-9]+/g,"/").replace(/^\/+|\/+$/g,"").toLowerCase()}function D(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.toLowerCase().replace(/(?:^|\.\s+)([a-z])/g,o=>o.toUpperCase());return`${r}${n}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9\s.]+/g," ").toLowerCase().replace(/(?:^|\.\s+)([a-z])/g,o=>o.toUpperCase());return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map((r,a)=>{if(!/[a-zA-Z0-9]/.test(r))return r;let t=r.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_\s]+/g," ").toLowerCase();return a===0?t.charAt(0).toUpperCase()+t.slice(1):t}).join(""):e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[^a-zA-Z0-9\s.]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/(?:^|\.\s+)([a-z])/g,s=>s.toUpperCase())}function M(e,C={}){if(!e.trim())return"";let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/\s+/g,"_").toLowerCase();return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/\s+/g,"_").toLowerCase();return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[^a-zA-Z0-9]+/g,"_").toLowerCase();return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[_\s]+/g,"_").toLowerCase():r.replace(/\s+/g,"_")).join(""):e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").toLowerCase()}function B(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let r=e.match(/^(\s*)(.*?)(\s*)$/s);if(!r)return e;let[,a,t,n]=r,o=!1,f=t.replace(/[a-zA-Z]/g,p=>{let i=o?p.toUpperCase():p.toLowerCase();return o=!o,i});return`${a}${f}${n}`}if(l){let r=e.match(/^(\s*)(.*?)(\s*)$/s);if(!r)return e;let[,a,t,n]=r,o=!1,f=t.replace(/[^a-zA-Z0-9\s]+/g," ").replace(/[a-zA-Z]/g,p=>{let i=o?p.toUpperCase():p.toLowerCase();return o=!o,i});return`${a}${f}${n}`}if(c){let r=e.split(/([^a-zA-Z0-9]+)/),a=!1;return r.map(t=>/[a-zA-Z0-9]/.test(t)?t.split("").map(n=>{if(/[a-zA-Z]/.test(n)){let o=a?n.toUpperCase():n.toLowerCase();return a=!a,o}return n}).join(""):t).join("")}let s=!1;return e.trim().replace(/\s+/g," ").split("").map(r=>{if(/[a-zA-Z]/.test(r)){let a=s?r.toUpperCase():r.toLowerCase();return s=!s,a}return r}).join("")}function G(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[a-zA-Z]/g,o=>o===o.toLowerCase()?o.toUpperCase():o.toLowerCase());return`${r}${n}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9\s]+/g," ").replace(/[a-zA-Z]/g,o=>o===o.toLowerCase()?o.toUpperCase():o.toLowerCase());return`${r}${n}${t}`}return c?e.replace(/[a-zA-Z]/g,s=>s===s.toLowerCase()?s.toUpperCase():s.toLowerCase()):e.trim().replace(/([a-zA-Z])/g,s=>s===s.toLowerCase()?s.toUpperCase():s.toLowerCase()).replace(/[\s]+/g," ")}function J(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/([a-zA-Z0-9]+)/g,o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase());return`${r}${n}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9\s]+/g," ").replace(/([a-zA-Z0-9]+)/g,o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase());return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_\s]+/g," ").trim().split(/\s+/).map(a=>a.charAt(0).toUpperCase()+a.slice(1).toLowerCase()).join(" "):r).join(""):e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/([^\w\s]|_)+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,s=>s.toUpperCase())}function Q(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,o=a.replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)([^a-zA-Z0-9]+)(\s*)/g,(f,p,i,g,$,m)=>{let h=i.split(/\s+/).map(A=>A.charAt(0).toUpperCase()+A.slice(1).toLowerCase()).join("-");return`${p}${h}${g}${$}${m}`}).replace(/(\s*)([a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+)*)(\s*)$/g,(f,p,i,g)=>{let $=i.split(/\s+/).map(m=>m.charAt(0).toUpperCase()+m.slice(1).toLowerCase()).join("-");return`${p}${$}${g}`});return`${r}${o}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9]+/g," ").trim().split(/\s+/).map(o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join("-");return`${r}${n}${t}`}return c?e.split(/([^a-zA-Z0-9]+)/).map(r=>/[a-zA-Z0-9]/.test(r)?r.replace(/([A-Z])([a-z])/g," $1$2").replace(/[_\s]+/g," ").trim().split(/\s+/).map(a=>a.charAt(0).toUpperCase()+a.slice(1).toLowerCase()).join("-"):r).join(""):e.replace(/([A-Z])([a-z])/g," $1$2").replace(/([^\w\s]|_)+/g," ").trim().split(/\s+/).map(s=>s.charAt(0).toUpperCase()+s.slice(1).toLowerCase()).join("-")}function Y(e,C={}){if(!e.trim())return e;let{preserveWhitespace:l,preserveSpecialCharacters:c}=C;if(l&&c){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.toUpperCase();return`${r}${n}${t}`}if(l){let s=e.match(/^(\s*)(.*?)(\s*)$/s);if(!s)return e;let[,r,a,t]=s,n=a.replace(/[^a-zA-Z0-9\s]+/g," ").toUpperCase();return`${r}${n}${t}`}return c?e.toUpperCase():e.trim().replace(/\s+/g," ").toUpperCase()}function z(e,C,l={transformKeys:!0,transformValues:!1}){return Array.isArray(e)?e.map(c=>typeof c=="string"&&l.transformValues?C(c):z(c,C,l)):e instanceof Date?e:typeof e=="object"&&e!==null?Object.entries(e).reduce((c,[s,r])=>{let a=l.transformKeys?C(s):s,t=r instanceof Date?r:typeof r=="object"&&r!==null?z(r,C,l):l.transformValues&&typeof r=="string"?C(r):r;return{...c,[a]:t}},{}):e}function ee(e,C,l){if(!e)return"";let{separator:c=/[\s\-_]/,preserveSpecialCharacters:s=!1,preserveWhitespace:r=!1,outputSeparator:a=""}=l||{};if(s)if(r){let t=[],n="",o=!1;for(let p=0;p<e.length;p++){let i=e[p],g=/\s/.test(i);g!==o&&(n&&(t.push({text:n,isWhitespace:o}),n=""),o=g),n+=i}n&&t.push({text:n,isWhitespace:o});let f=0;return t.map(p=>{if(p.isWhitespace)return p.text;let i=c instanceof RegExp?new RegExp(`(${c.source})`,c.flags):new RegExp(`(${c.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")})`,"g");return p.text.split(i).filter($=>$!=="").map($=>{var h;return(c instanceof RegExp?c.test($)&&((h=$.match(c))==null?void 0:h[0])===$:$===c)?$:C($,f++)}).join("")}).join("")}else{let t=c instanceof RegExp?new RegExp(`(${c.source})`,c.flags):new RegExp(`(${c.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")})`,"g"),n=e.split(t).filter(f=>f!==""),o=0;return n.map(f=>{var i;return(c instanceof RegExp?c.test(f)&&((i=f.match(c))==null?void 0:i[0])===f:f===c)?f:C(f,o++)}).join("")}else{let n=e.split(c).filter(o=>o.trim()!=="").map(C);if(r){let o=[],f,p=/\S+/g;for(;(f=p.exec(e))!==null;)o.push({start:f.index,end:f.index+f[0].length,original:f[0]});let i="",g=0;for(let $=0;$<o.length;$++){let{start:m,end:h}=o[$];i+=e.substring(g,m),i+=n[$]||"",g=h}return i+=e.substring(g),i}else return n.join(a)}}export{ee as customTransform,d as toCamelCase,u as toCobolCase,L as toConstantCase,v as toDotCase,b as toFlatCase,j as toKebabCase,P as toLowerCase,y as toMacroCase,E as toPascalCase,K as toPathCase,D as toSentenceCase,M as toSnakeCase,B as toSpongeCase,G as toSwapCase,J as toTitleCase,Q as toTrainCase,Y as toUpperCase,z as transformObjectCasing};