stringweaver 1.4.5 → 1.4.6

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.
@@ -1,5 +1,5 @@
1
1
  /*© KooiInc 2026-2031*/
2
- var q=be(),G=Q(),me=Q("");function Q(e,t={}){let{useSymbolicExtensions:r}=t;return e=q(e,String,Number)?String(e):void 0,r&&de(),function(s,...l){return I(s,O(l))};function n(s,l){return l&&q(e,String,Number)?String(e):`{${s}}`}function o(s,l){let S=s in l;return S&&q(l[s],String,Number)?String(l[s]):n(s,S)}function u(s){return(...l)=>{let S=l.find(c=>c.key);return o(S?S.key:"_",s)}}function h(s,l){return s.replace(/\{(?<key>[a-z_\d]+)}/gim,u(l))}function p(s){let l=[];return Object.entries(s).forEach(([S,c])=>{c.forEach((i,m)=>(l[m]??={},l[m][S]=i))}),l}function y(s){return s.length===1&&Object.values(s[0]).every(Array.isArray)}function O(s){return y(s)?p(s[0]):s}function I(s,l){let S=l?.length?l.filter(c=>q(c,Object)).map((c,i)=>h(s,{...c,index:i+1})).join(""):s;return q(e,void 0)?S:S.replace(/\{[a-z_\d].+\}/gim,String(e))}}function de(){return String.prototype[Symbol.for("interpolate")]||Object.defineProperties(String.prototype,{[Symbol.for("interpolate")]:{value(...e){return G(this,...e)}},[Symbol.for("interpolate$")]:{value(...e){return me(this,...e)}}}),[Symbol.for("interpolate"),Symbol.for("interpolate$")]}function be(){let e=new Intl.Collator("en",{sensitivity:"base"}),t=o=>typeof o=="function"?o?.name||o?.constructor?.name:"noCTOR";function r(o,u){return u===Number&&(Number.isNaN(o)||!Number.isFinite(o))?!1:e.compare(Object.prototype.toString.call(o),`[object ${t(u)}]`)===0||o?.name===u?.name}function n(o,...u){if(u.length>1){for(let h of u)if(r(o,h))return!0;return!1}return r(o,u?.shift())}return n}var R=Object.defineProperties(J,{escape:{value:$e,enumerable:!0}});function J(e,...t){let{flags:r,cleanedArgs:n}=Se(...t);return we(new RegExp(Ie(he(e,...n)),r))}function he(e,...t){return L(t)?e.raw.reduce((r,n,o)=>r.concat(t[o-1]||"").concat(n),""):e.raw.join("")}function Se(...e){let t=_(ye(e.at(-1)));return{flags:t,cleanedArgs:L(t)?e.slice(0,-1):e}}function ye(e){return P(e,Array)?e.join(""):""}function we(e){let t=new Proxy(Object.defineProperties({},{re:{get(){return e},enumerable:!1},toString:{value:()=>e.toString(),enumerable:!1},valueOf:{value:()=>e,enumerable:!1},flags:{value(r){return e=je(r,e),t},enumerable:!1},clone:{get(){return Ce(t)},enumerable:!1}}),ve(e));return t}function L(e){return e?.length>0}function P(e,t){return e?.constructor===t}function Oe(e,t,r){let n=Reflect.get(r,t);return{fromInstance:Reflect.get(e,t),fromRegExpMethod:P(n,Function)?n.bind(e.re):e.re[t]}}function ve(e){return{get(t,r){let{fromInstance:n,fromRegExpMethod:o}=Oe(t,r,e);switch(!0){case!!n:return n;default:return o}}}}function Ce(e){let t=e.re.source,r=L(e.re.flags)?[...e.re.flags]:[];return J`${t} ${r}`}function _(e,t){return t=(t??"").replace(/^-r\|/,""),e=t.concat(P(e,String)&&L(e)?e:""),[...new Set([...e])].join("").replace(/[^dgimsuvy]/g,"")}function je(e,t){switch(!0){case(!P(e,String)||!L(e)):return t;case e==="-r":return t=new RegExp(t.source);case e.startsWith("-r|"):return t=new RegExp(t.source,_(e));default:return t=new RegExp(t.source,_(t.flags,e))}}function $e(e){switch(!0){case(e?.constructor!==String||!L(e)):return"";case!!RegExp.escape:return RegExp.escape(e);default:return(`\\x${e.at(0)}`+e.slice(1).replace(/\p{S}|\p{P}/gu,t=>`\\${t}`)).replace(/ |\\x /g,"\\x20")}}function Ie(e){return e.replace(/\/\*(?:[^*]|\*+[^*\/])*\*+\/|(?<!:|\\\|')\/\/.*/gm,"").replace(/\s/g,"").trim().replace(/<!([^>]\d+)>/g,(t,r)=>String.fromCharCode(+r)??t)}var{randomString:ee,uuid4:te}=xe();function xe(){let e=S(),t=()=>e?[...crypto.getRandomValues(new Uint32Array(1))].shift()/2**32:Math.random(),r=({min:a=0,max:f=Number.MAX_SAFE_INTEGER}={})=>Math.floor(t()*(f-a+1)+a),n=(a=0,f=10,d)=>(d||[])instanceof Function?[...Array(f)].map((v,C)=>a+C).map(d):[...Array(f)].map((v,C)=>a+C),o=a=>String.fromCharCode(a),u="!?@#$%^&*=+_;-".split(""),h=RegExp(`[${u.map(a=>`\\${a}`).join("")}]`,"g"),p=a=>{let f=a.length;for(;f--;){let d=r({max:f});[a[f],a[d]]=[a[d],a[f]]}return a},y=p(n(65,26,o)),O=p(n(97,26,o)),s={UCLC:p(y.concat(O)),UC:y,LC:O,Nrs:p(n()),Sym:p(u)},l=a=>Object.entries(a).reduce((f,[d,v])=>v?[...f,...s[d]]:f,O);function S(){try{return window&&"crypto"in window}catch{return!1}}function c(){return e&&crypto.randomUUID?crypto.randomUUID():[...new Uint8Array(16)].map(a=>r({max:255})).map((a,f)=>`${(f===8?a&63|128:f===6?a&15|64:a).toString(16).padStart(2,"0")}${~[3,5,7,9].indexOf(f)?"-":""}`).join("")}function i(a,f,d){return/[a-z]/i.test(a)&&(f&&d?/\d/.test(a)&&h.test(a):f?/\d/.test(a):d?h.test(a):!0)}function m(a){let f=[...a],d=f.findIndex(v=>/[a-z]/i.test(v));return[f[0],f[d]]=[f[d],f[0]],f.join("")}function V({len:a=12,includeUppercase:f=!0,includeNumbers:d,includeSymbols:v,startAlphabetic:C}={}){a=a<6?6:a;let j=p(l({UC:f,Nrs:d,Sym:v}));for(;j.length<a;)j=[...j,...p(j)];let x=j.slice(0,a).join("");if(!(d||v))return x;for(let D=0;D<j.length;D+=1)if(x=j.slice(D,D+a).join(""),i(x,d,v))return C&&!/^[a-z]/i.test(x)?m(x):x;return V({len:a,includeUppercase:f,includeNumbers:d,includeSymbols:v,startAlphabetic:C})}return{randomString:V,uuid4:c}}var b=Re(),re=/symbol|anchor|big|blink|bold|fixed|fontsize|fontcolor|italics|link|small|strike|sup|sub/i;function Re(){let e={backtick:["`","`"],parentheses:["(",")"],curlyBrackets:["{","}"],curlyDoubleInward:["\u201D","\u201C"],curlyDouble:["\u201C","\u201D"],curlyDoubleEqual:["\u201C","\u201C"],curlyLHDouble:["\u201E","\u201D"],curlyLHDoubleInward:["\u201E","\u201C"],curlyLHSingle:["\u201A","\u2019"],curlyLHSingleInward:["\u201A","\u2018"],curlySingle:["\u201B","\u2019"],curlySingleEqual:["\u201B","\u201B"],curlySingleInward:["\u2019","\u201B"],double:['"','"'],guillemets:["\xAB","\xBB"],guillemetsInward:["\xBB","\xAB"],guillemetsSingle:["\u2039","\u203A"],guillemetsSingleInward:["\u203A","\u2039"],single:["'","'"],squareBrackets:["[","]"]};return e.re=new RegExp(`[${z([...new Set(Object.values(e).filter(t=>Array.isArray(t)).flat())].join(""))}]`,"g"),e}function z(e){return e.replace(/\p{S}|\p{P}/gu,t=>`\\${t}`)}function g(e){return e?.value||e?.constructor===String&&e||""}function N(e,t,r=!0){return Array.isArray(t)&&t.length>0&&!t.find(n=>Le(e,n,r))}function E(e){return e?.constructor===Number&&!Number.isNaN(e)}function U(e,t){return`${e} (${t})`}function Le(e,t,r){return e===String&&r?t?.constructor!==w&&t?.constructor!==e:t?.constructor!==e}function ne(e,...t){return e?.raw?String.raw({raw:e},...t):g(e).length?e:""}function Ne(e,t){return Object.entries(Object.getOwnPropertyDescriptors(e.value)).sort((r,n)=>r[0].localeCompare(n[0])).reduce((r,[n])=>{if(n==="remove")return[...r,"[instance].quote.remove (only predefined)"];if(n==="custom")return[...r,"[instance].quote.custom(start:string, end:string)"];let o=t("[instance]").quote[n];return[...r,`[instance].quote.${n} ( ${o} )`]},[])}function W(e,t){return t=t??function(r){return r},{value:{get backtick(){return e.enclose(...b.backtick)},get parentheses(){return e.enclose(...b.parentheses)},get curlyBrackets(){return e.enclose(...b.curlyBrackets)},get curlyDouble(){return e.enclose(...b.curlyDouble)},get curlyDoubleInward(){return e.enclose(...b.curlyDoubleInward)},get curlyDoubleEqual(){return e.enclose(...b.curlyDoubleEqual)},get curlyLHDoubleInward(){return e.enclose(...b.curlyLHDoubleInward)},get curlyLHSingle(){return e.enclose(...b.curlyLHSingle)},get curlyLHSingleInward(){return e.enclose(...b.curlyLHSingleInward)},get curlySingle(){return e.enclose(...b.curlySingle)},get curlySingleEqual(){return e.enclose(...b.curlySingleEqual)},get curlySingleInward(){return e.enclose(...b.curlySingleInward)},get custom(){return(r,n)=>e.enclose(r,n??r)},get double(){return e.enclose(...b.double)},get guillemets(){return e.enclose(...b.guillemets)},get guillemetsInward(){return e.enclose(...b.guillemetsInward)},get guillemetsSingle(){return e.enclose(...b.guillemetsSingle)},get guillemetsSingleInward(){return e.enclose(...b.guillemetsSingleInward)},get remove(){return t(`${e.value.replace(b.re,"")}`)},get single(){return e.enclose(...b.single)},get squareBrackets(){return e.enclose(...b.squareBrackets)}},enumerable:!1,configurable:!1}}function M(e,t){return{get full(){return t(e.value.toUpperCase())},get none(){return t(e.value.toLowerCase())},get camel(){return t(T(e.value))},get snake(){return t(H(e.value))},get first(){return t(A(e.value))},get kebab(){return t(F(e.value))},get words(){return t(Z(e.value))},get dashed(){return t(F(e.value))}}}function oe(e,t){let r=Ne(W(e()),e),n=()=>Ee("constructor,history,indexOf,toString,value,valueOf,empty".split(","),t);Symbol.toSB=Symbol("toStringBuilder"),Object.defineProperty(String.prototype,Symbol.toSB,{get(){return e(this)},enumerable:!1,configurable:!1}),Object.defineProperties(e,{create:{get(){return e()},enumerable:!1},constructor:{get(){return e},enumerable:!1},format:{value(o,...u){return w(o).format(...u)}},addCustom:{value({name:o,method:u,enumerable:h=!1,isGetter:p=!1}={}){if(w``[o])return console.error(`addCustom: the property "${o}" exists and can not be redefined`),`addCustom: the property "${o}" exists and can not be redefined`;if(typeof o=="string"&&typeof u=="function"&&u.length>0)return t[o]={method:u,enumerable:h,isGetter:p},`addCustom: the ${p?"getter":"method"} named "${o}" is added`}},info:{get(){return n()}},keys:{get(){return Object.keys(Object.getOwnPropertyDescriptors(w``)).sort((o,u)=>o.localeCompare(u)).map(o=>!/constructor|toString|valueOf/.test(o)&&Object.hasOwn(t,o)?`${o} *custom*`:o)}},quoteInfo:{value:r},uuid4:{get(){return w(te())}},randomString:{value:function({len:o,includeUppercase:u,includeNumbers:h,includeSymbols:p,startAlphabetic:y}={}){return w(ee({len:o,includeUppercase:u,includeNumbers:h,includeSymbols:p,startAlphabetic:y}))}},regExp:{value:R}})}function Ee(e,t){let r=w(qe()),n=Ve();return r.split(/\n/).concat(Object.entries(Object.getOwnPropertyDescriptors(r)).sort(([o],[u])=>o.localeCompare(u)).map(([o,u])=>{let h=!e.find(i=>i===o),p=Object.hasOwn(u,"get"),y=Object.hasOwn(u,"value"),O=Object.hasOwn(String.prototype,o),I=!O&&Object.hasOwn(n,o),s=Object.hasOwn(t,o)?" *custom*":"",l=p&&h?`chainable getter${s}`:"getter",S=y&&h?`chainable method${s}`:"method",c=O&&`${u.get?"getter":"method"} (override)`;switch(!0){case I:return U(o,n[o]);case O:return U(o,c);case y:return U(o,S);case p:return U(o,l)}}))}function Ve(){return{value:"getter/setter",clone:"chainable getter",notEmpty:"chainable getter|undefined",quote:"Object. See [constructor].quoteInfo",capitalize:`getter. Object with chainable getters: [${Object.keys(M()).join(", ")}]`}}function qe(){return atob("Rm9yIHRoZSByZWNvcmQ6CltjbV0gY2hhaW5hYmxlIGdldHRlcnMvbWV0aG9kcyBtb2RpZnkgdGhlIGluc3RhbmNlIHN0cmluZwpbY21dIGluZGV4T2Ygb3ZlcnJpZGVzIHJldHVybnMgW3VuZGVmaW5lZF0gaWYgbm90aGluZyB3YXMgZm91bmQgKHNvIG9uZSBjYW4gdXNlIFtsYXN0SV1pbmRleE9mKFtzb21lIHN0cmluZyB2YWx1ZV0pID8/IDAKW2NtXSBpbmNsdWRlcyBpbmZvcm1hdGlvbiBmb3IgY3VzdG9tIG1ldGhvZHMvZ2V0dGVycyBpZiBhcHBsaWNhYmxl").replace(/\[cm]/g,"\u2714")}function $(e,t,r){return e=g(e),e.length>0?t(e):r||e}function Y(e,...t){return $(e,()=>`${G(e,...t)}`)}function ue(e,t,r){return!t&&!r?e:([t,r]=N(String,[t,r??""])?[t,r]:["",""],`${t}${e}${r||t}`)}function A(e){return $(e,()=>`${e[0].toUpperCase()}${e.slice(1).toLowerCase()}`)}function F(e){let t="";for(let r of[...e])switch(!0){case!/[a-z _]/i.test(r):break;case/[ _]/.test(r):t+="-";break;case r===r.toUpperCase():t+=`-${r.toLowerCase()}`;break;default:t+=r}return t.replace(/-{2,}/g,"-").replace(/^-|-$/g,"")}function H(e){let t="";for(let r of[...e])switch(!0){case!/[a-z _-]/i.test(r):break;case/[ -]/.test(r):t+="_";break;case r===r.toUpperCase():t+=`_${r.toLowerCase()}`;break;default:t+=r}return t.replace(/_{2,}/g,"_").replace(/^_|_$/g,"")}function T(e){return $(e,()=>e.toLowerCase().trim().split(/[-\s]/).filter(t=>t&&t.length>0).map((t,r)=>r>0&&`${A(t)}`||t).join(""))}function Z(e){return $(e,()=>[...e.toLowerCase()].slice(1).reduce((t,r)=>t+(/\p{L}|[-']/u.test(t.at(-1))?r.toLowerCase():r.toUpperCase()),e[0].toUpperCase()))}function ce(e,t,r){return $(e,()=>!r&&!t?e.trim():(r=R.escape(r||t),t=R.escape(t),e.replace(R`^(${t})+ | (${r})+$`.flags("gm"),"")))}function Fe(e){return[...e.matchAll(/\p{Pe}|\p{Z}/gu)].at(-1)?.index??e.length}function le(e,{at:t,html:r=!1,wordBoundary:n=!1}={}){return r=r?.constructor===Boolean&&r||!1,n=n?.constructor===Boolean&&n||!1,$(e,()=>{if(e.length<=t)return e;let o=e.slice(0,t-1),u=r?"&hellip;":"...",h=n?Fe(o):o.length;return(n?o.slice(0,h+1).trim():o)+u})}function K(e,t=!1){return t=t?.constructor===Boolean&&t||!1,$(e,()=>{let r=e.replace(/\n/gm,"#LF#").split(/#LF#/).map(n=>n.trim().replace(/\s{2,}/g,o=>o[0]));return t?r.join("#LF#").replace(/#LF#/g,`
2
+ var V=he(),G=Q(),de=Q("");function Q(e,t={}){let{useSymbolicExtensions:r}=t;return e=V(e,String,Number)?String(e):void 0,r&&be(),function(u,...s){return c(u,i(s))};function n(u,s){return s&&V(e,String,Number)?String(e):`{${u}}`}function o(u,s){let S=u in s;return S&&V(s[u],String,Number)?String(s[u]):n(u,S)}function a(u){return(...s)=>{let S=s.find(O=>O.key);return o(S?S.key:"_",u)}}function p(u,s){return u.replace(/\{(?<key>[a-z_\d]+)}/gim,a(s))}function g(u){let s=[];return Object.entries(u).forEach(([S,O])=>{O.forEach((v,A)=>(s[A]??={},s[A][S]=v))}),s}function h(u){return u.length===1&&Object.values(u[0]).every(Array.isArray)}function i(u){return h(u)?g(u[0]):u}function c(u,s){let S=s?.length?s.filter(O=>V(O,Object)).map((O,v)=>p(u,{...O,index:v+1})).join(""):u;return V(e,void 0)?S:S.replace(/\{[a-z_\d].+\}/gim,String(e))}}function be(){return String.prototype[Symbol.for("interpolate")]||Object.defineProperties(String.prototype,{[Symbol.for("interpolate")]:{value(...e){return G(this,...e)}},[Symbol.for("interpolate$")]:{value(...e){return de(this,...e)}}}),[Symbol.for("interpolate"),Symbol.for("interpolate$")]}function he(){let e=new Intl.Collator("en",{sensitivity:"base"}),t=o=>typeof o=="function"?o?.name||o?.constructor?.name:"noCTOR";function r(o,a){return a===Number&&(Number.isNaN(o)||!Number.isFinite(o))?!1:e.compare(Object.prototype.toString.call(o),`[object ${t(a)}]`)===0||o?.name===a?.name}function n(o,...a){if(a.length>1){for(let p of a)if(r(o,p))return!0;return!1}return r(o,a?.shift())}return n}var x=Object.defineProperties(J,{escape:{value:$e,enumerable:!0}});function J(e,...t){let{flags:r,cleanedArgs:n}=ye(...t);return we(new RegExp(xe(Se(e,...n)),r))}function Se(e,...t){return R(t)?e.raw.reduce((r,n,o)=>r.concat(t[o-1]||"").concat(n),""):e.raw.join("")}function ye(...e){let t=Z(Oe(e.at(-1)));return{flags:t,cleanedArgs:R(t)?e.slice(0,-1):e}}function Oe(e){return P(e,Array)?e.join(""):""}function we(e){let t=new Proxy(Object.defineProperties({},{re:{get(){return e},enumerable:!1},toString:{value:()=>e.toString(),enumerable:!1},valueOf:{value:()=>e,enumerable:!1},flags:{value(r){return e=Ie(r,e),t},enumerable:!1},clone:{get(){return je(t)},enumerable:!1}}),Ce(e));return t}function R(e){return e?.length>0}function P(e,t){return e?.constructor===t}function ve(e,t,r){let n=Reflect.get(r,t);return{fromInstance:Reflect.get(e,t),fromRegExpMethod:P(n,Function)?n.bind(e.re):e.re[t]}}function Ce(e){return{get(t,r){let{fromInstance:n,fromRegExpMethod:o}=ve(t,r,e);switch(!0){case!!n:return n;default:return o}}}}function je(e){let t=e.re.source,r=R(e.re.flags)?[...e.re.flags]:[];return J`${t} ${r}`}function Z(e,t){return t=(t??"").replace(/^-r\|/,""),e=t.concat(P(e,String)&&R(e)?e:""),[...new Set([...e])].join("").replace(/[^dgimsuvy]/g,"")}function Ie(e,t){switch(!0){case(!P(e,String)||!R(e)):return t;case e==="-r":return t=new RegExp(t.source);case e.startsWith("-r|"):return t=new RegExp(t.source,Z(e));default:return t=new RegExp(t.source,Z(t.flags,e))}}function $e(e){switch(!0){case(e?.constructor!==String||!R(e)):return"";case!!RegExp.escape:return RegExp.escape(e);default:return(`\\x${e.at(0)}`+e.slice(1).replace(/\p{S}|\p{P}/gu,t=>`\\${t}`)).replace(/ |\\x /g,"\\x20")}}function xe(e){return e.replace(/\/\*(?:[^*]|\*+[^*\/])*\*+\/|(?<!:|\\\|')\/\/.*/gm,"").replace(/\s/g,"").trim().replace(/<!([^>]\d+)>/g,(t,r)=>String.fromCharCode(+r)??t)}var{randomString:ee,uuid4:te}=Re();function Re(){let e=S(),t=()=>e?[...crypto.getRandomValues(new Uint32Array(1))].shift()/2**32:Math.random(),r=({min:l=0,max:f=Number.MAX_SAFE_INTEGER}={})=>Math.floor(t()*(f-l+1)+l),n=(l=0,f=10,b)=>(b||[])instanceof Function?[...Array(f)].map((w,I)=>l+I).map(b):[...Array(f)].map((w,I)=>l+I),o=l=>String.fromCharCode(l),a="!?@#$%^&*=+_;-".split(""),p=RegExp(`[${a.map(l=>`\\${l}`).join("")}]`,"g"),g=l=>{let f=l.length;for(;f--;){let b=r({max:f});[l[f],l[b]]=[l[b],l[f]]}return l},h=g(n(65,26,o)),i=g(n(97,26,o)),u={UCLC:g(h.concat(i)),UC:h,LC:i,Nrs:g(n()),Sym:g(a)},s=l=>Object.entries(l).reduce((f,[b,w])=>w?[...f,...u[b]]:f,i);function S(){try{return window&&"crypto"in window}catch{return!1}}function O(){return e&&crypto.randomUUID?crypto.randomUUID():[...new Uint8Array(16)].map(l=>r({max:255})).map((l,f)=>`${(f===8?l&63|128:f===6?l&15|64:l).toString(16).padStart(2,"0")}${~[3,5,7,9].indexOf(f)?"-":""}`).join("")}function v(l,f,b){return/[a-z]/i.test(l)&&(f&&b?/\d/.test(l)&&p.test(l):f?/\d/.test(l):b?p.test(l):!0)}function A(l){let f=[...l],b=f.findIndex(w=>/[a-z]/i.test(w));return[f[0],f[b]]=[f[b],f[0]],f.join("")}function X({len:l=12,includeUppercase:f=!0,includeNumbers:b,includeSymbols:w,startAlphabetic:I}={}){l=l<6?6:l;let C=g(s({UC:f,Nrs:b,Sym:w}));for(;C.length<l;)C=[...C,...g(C)];let $=C.slice(0,l).join("");if(!(b||w))return $;for(let B=0;B<C.length;B+=1)if($=C.slice(B,B+l).join(""),v($,b,w))return I&&!/^[a-z]/i.test($)?A($):$;return X({len:l,includeUppercase:f,includeNumbers:b,includeSymbols:w,startAlphabetic:I})}return{randomString:X,uuid4:O}}var d=Ne(),Le=/symbol|anchor|big|blink|bold|fixed|fontsize|fontcolor|italics|link|small|strike|sup|sub/i;function Ne(){let e={backtick:["`","`"],parentheses:["(",")"],curlyBrackets:["{","}"],curlyDoubleInward:["\u201D","\u201C"],curlyDouble:["\u201C","\u201D"],curlyDoubleEqual:["\u201C","\u201C"],curlyLHDouble:["\u201E","\u201D"],curlyLHDoubleInward:["\u201E","\u201C"],curlyLHSingle:["\u201A","\u2019"],curlyLHSingleInward:["\u201A","\u2018"],curlySingle:["\u201B","\u2019"],curlySingleEqual:["\u201B","\u201B"],curlySingleInward:["\u2019","\u201B"],double:['"','"'],guillemets:["\xAB","\xBB"],guillemetsInward:["\xBB","\xAB"],guillemetsSingle:["\u2039","\u203A"],guillemetsSingleInward:["\u203A","\u2039"],single:["'","'"],squareBrackets:["[","]"]};return e.re=new RegExp(`[${_([...new Set(Object.values(e).filter(t=>Array.isArray(t)).flat())].join(""))}]`,"g"),e}function _(e){return e.replace(/\p{S}|\p{P}/gu,t=>`\\${t}`)}function m(e){return e?.value||e?.constructor===String&&e||""}function L(e,t,r=!0){return Array.isArray(t)&&t.length>0&&!t.find(n=>Ve(e,n,r))}function N(e){return e?.constructor===Number&&!Number.isNaN(e)}function U(e,t){return`${e} (${t})`}function Ve(e,t,r){return e===String&&r?t?.constructor!==y&&t?.constructor!==e:t?.constructor!==e}function re(e,...t){return e?.raw?String.raw({raw:e},...t):m(e).length?e:""}function Ee(e){return!Le.test(e)&&Object.hasOwn(String.prototype,e)}function ne({customStringProperties:e,maybeRevalueNative:t}){return{get(r,n){switch(!0){case n===Symbol.for("type"):return"StringWeaver instance (Proxy)";case Object.hasOwn(e,n):return e[n];case Ee(String(n)):return t(n);default:return t(n)}}}}function qe(e,t){return Object.entries(Object.getOwnPropertyDescriptors(e.value)).sort((r,n)=>r[0].localeCompare(n[0])).reduce((r,[n])=>{if(n==="remove")return[...r,"[instance].quote.remove (only predefined)"];if(n==="custom")return[...r,"[instance].quote.custom(start:string, end:string)"];let o=t("[instance]").quote[n];return[...r,`[instance].quote.${n} ( ${o} )`]},[])}function W(e,t){return t=t??function(r){return r},{value:{get backtick(){return e.enclose(...d.backtick)},get parentheses(){return e.enclose(...d.parentheses)},get curlyBrackets(){return e.enclose(...d.curlyBrackets)},get curlyDouble(){return e.enclose(...d.curlyDouble)},get curlyDoubleInward(){return e.enclose(...d.curlyDoubleInward)},get curlyDoubleEqual(){return e.enclose(...d.curlyDoubleEqual)},get curlyLHDoubleInward(){return e.enclose(...d.curlyLHDoubleInward)},get curlyLHSingle(){return e.enclose(...d.curlyLHSingle)},get curlyLHSingleInward(){return e.enclose(...d.curlyLHSingleInward)},get curlySingle(){return e.enclose(...d.curlySingle)},get curlySingleEqual(){return e.enclose(...d.curlySingleEqual)},get curlySingleInward(){return e.enclose(...d.curlySingleInward)},get custom(){return(r,n)=>e.enclose(r,n??r)},get double(){return e.enclose(...d.double)},get guillemets(){return e.enclose(...d.guillemets)},get guillemetsInward(){return e.enclose(...d.guillemetsInward)},get guillemetsSingle(){return e.enclose(...d.guillemetsSingle)},get guillemetsSingleInward(){return e.enclose(...d.guillemetsSingleInward)},get remove(){return t(`${e.value.replace(d.re,"")}`)},get single(){return e.enclose(...d.single)},get squareBrackets(){return e.enclose(...d.squareBrackets)}},enumerable:!1,configurable:!1}}function z(e,t){return{get full(){return t(e.value.toUpperCase())},get none(){return t(e.value.toLowerCase())},get camel(){return t(H(e.value))},get snake(){return t(D(e.value))},get first(){return t(q(e.value))},get kebab(){return t(E(e.value))},get words(){return t(T(e.value))},get dashed(){return t(E(e.value))}}}function oe(e,t){let r=qe(W(e()),e),n=()=>Fe("constructor,history,indexOf,toString,value,valueOf,empty".split(","),t);Symbol.toSB=Symbol("toStringBuilder"),Object.defineProperty(String.prototype,Symbol.toSB,{get(){return e(this)},enumerable:!1,configurable:!1}),Object.defineProperties(e,{create:{get(){return e()},enumerable:!1},constructor:{get(){return e},enumerable:!1},format:{value(o,...a){return y(o).format(...a)}},addCustom:{value({name:o,method:a,enumerable:p=!1,isGetter:g=!1}={}){if(y``[o])return console.error(`addCustom: the property "${o}" exists and can not be redefined`),`addCustom: the property "${o}" exists and can not be redefined`;if(typeof o=="string"&&typeof a=="function"&&a.length>0)return t[o]={method:a,enumerable:p,isGetter:g},`addCustom: the ${g?"getter":"method"} named "${o}" is added`}},info:{get(){return n()}},keys:{get(){return Object.keys(Object.getOwnPropertyDescriptors(y``)).sort((o,a)=>o.localeCompare(a)).map(o=>!/constructor|toString|valueOf/.test(o)&&Object.hasOwn(t,o)?`${o} *custom*`:o)}},quoteInfo:{value:r},uuid4:{get(){return y(te())}},randomString:{value:function({len:o,includeUppercase:a,includeNumbers:p,includeSymbols:g,startAlphabetic:h}={}){return y(ee({len:o,includeUppercase:a,includeNumbers:p,includeSymbols:g,startAlphabetic:h}))}},regExp:{value:x}})}function ue(e){let{customMethods:t,instance:r,reValue:n,customStringProperties:o}=e;return Object.entries(t).length<1?!0:Object.entries(t).forEach(([a,p])=>{let{enumerable:g,method:h,isGetter:i}=p;Object.defineProperty(o,a,i?{get(){return n(h(r).value)},enumerable:g}:{value(...u){return n(h(r,...u).value)},enumerable:g})})}function Fe(e,t){let r=y(Be()),n=Ae();return r.split(/\n/).concat(Object.entries(Object.getOwnPropertyDescriptors(r)).sort(([o],[a])=>o.localeCompare(a)).map(([o,a])=>{let p=!e.find(v=>v===o),g=Object.hasOwn(a,"get"),h=Object.hasOwn(a,"value"),i=Object.hasOwn(String.prototype,o),c=!i&&Object.hasOwn(n,o),u=Object.hasOwn(t,o)?" *custom*":"",s=g&&p?`chainable getter${u}`:"getter",S=h&&p?`chainable method${u}`:"method",O=i&&`${a.get?"getter":"method"} (override)`;switch(!0){case c:return U(o,n[o]);case i:return U(o,O);case h:return U(o,S);case g:return U(o,s)}}))}function Ae(){return{value:"getter/setter",clone:"chainable getter",notEmpty:"chainable getter|undefined",quote:"Object. See [constructor].quoteInfo",capitalize:`getter. Object with chainable getters: [${Object.keys(z()).join(", ")}]`}}function Be(){return atob("Rm9yIHRoZSByZWNvcmQ6CltjbV0gY2hhaW5hYmxlIGdldHRlcnMvbWV0aG9kcyBtb2RpZnkgdGhlIGluc3RhbmNlIHN0cmluZwpbY21dIGluZGV4T2Ygb3ZlcnJpZGVzIHJldHVybnMgW3VuZGVmaW5lZF0gaWYgbm90aGluZyB3YXMgZm91bmQgKHNvIG9uZSBjYW4gdXNlIFtsYXN0SV1pbmRleE9mKFtzb21lIHN0cmluZyB2YWx1ZV0pID8/IDAKW2NtXSBpbmNsdWRlcyBpbmZvcm1hdGlvbiBmb3IgY3VzdG9tIG1ldGhvZHMvZ2V0dGVycyBpZiBhcHBsaWNhYmxl").replace(/\[cm]/g,"\u2714")}function j(e,t,r){return e=m(e),e.length>0?t(e):r||e}function M(e,...t){return j(e,()=>`${G(e,...t)}`)}function ce(e,t,r){return!t&&!r?e:([t,r]=L(String,[t,r??""])?[t,r]:["",""],`${t}${e}${r||t}`)}function q(e){return j(e,()=>`${e[0].toUpperCase()}${e.slice(1).toLowerCase()}`)}function E(e){let t="";for(let r of[...e])switch(!0){case!/[a-z _]/i.test(r):break;case/[ _]/.test(r):t+="-";break;case r===r.toUpperCase():t+=`-${r.toLowerCase()}`;break;default:t+=r}return t.replace(/-{2,}/g,"-").replace(/^-|-$/g,"")}function D(e){let t="";for(let r of[...e])switch(!0){case!/[a-z _-]/i.test(r):break;case/[ -]/.test(r):t+="_";break;case r===r.toUpperCase():t+=`_${r.toLowerCase()}`;break;default:t+=r}return t.replace(/_{2,}/g,"_").replace(/^_|_$/g,"")}function H(e){return j(e,()=>e.toLowerCase().trim().split(/[-\s]/).filter(t=>t&&t.length>0).map((t,r)=>r>0&&`${q(t)}`||t).join(""))}function T(e){return j(e,()=>[...e.toLowerCase()].slice(1).reduce((t,r)=>t+(/\p{L}|[-']/u.test(t.at(-1))?r.toLowerCase():r.toUpperCase()),e[0].toUpperCase()))}function le(e,t,r){return j(e,()=>!r&&!t?e.trim():(r=x.escape(r||t),t=x.escape(t),e.replace(x`^(${t})+ | (${r})+$`.flags("gm"),"")))}function Ge(e){return[...e.matchAll(/\p{Pe}|\p{Z}/gu)].at(-1)?.index??e.length}function ae(e,{at:t,html:r=!1,wordBoundary:n=!1}={}){return r=r?.constructor===Boolean&&r||!1,n=n?.constructor===Boolean&&n||!1,j(e,()=>{if(e.length<=t)return e;let o=e.slice(0,t-1),a=r?"&hellip;":"...",p=n?Ge(o):o.length;return(n?o.slice(0,p+1).trim():o)+a})}function Y(e,t=!1){return t=t?.constructor===Boolean&&t||!1,j(e,()=>{let r=e.replace(/\n/gm,"#LF#").split(/#LF#/).map(n=>n.trim().replace(/\s{2,}/g,o=>o[0]));return t?r.join("#LF#").replace(/#LF#/g,`
3
3
  `).trim():r.filter(n=>n.length>0).join(`
4
- `)})}function ae(e,{replacements:t={},caseSensitive:r=!1}={}){e=g(e);let n=Object.entries(t).flat(),o=N(String,n)&&r?.constructor===Boolean,u=`g${r?"":"i"}`;if(!o)return e;for(;n.length;){let[h,p]=[n.shift(),n.shift()],y=new RegExp(z(h),u);e=e.replace(y,p)}return e}function ie(e,t,r=0){e=g(e),r=E(r)&&r||0;let n=e.indexOf(t,r||0);return n<0?void 0:n}function se(e,t,r=0){e=g(e),r=E(r)&&r||e.length;let n=e.lastIndexOf(t,r);return n<0?void 0:n}function k(e,{value:t,values:r,at:n=0}={}){e=g(e),n=E(n)&&n||0;let o=g(r);return r=g(t).length?t:o.length?o:N(String,r)?r.map(u=>g(u)).join(""):[],r.length<=1?e:e.length===0?`${r}${e}`:`${e.slice(0,n)}${r}${e.slice(n)}`}function fe(e,...t){return t=N(String,t)&&t,t?k(g(e),{values:t,at:0}):g(e)}function ge(e,...t){return t=N(String,t)&&t,t&&t.length>0?`${g(e)}`.concat(t.join("")):g(e)}var pe=Ae;function Ae({initialstring:e}={}){let t=Object.create(null,{}),r=new Proxy(t,h(t)),n=g(e),o=[n],u={configurable:!1,enumerable:!1};return Object.defineProperties(t,{append:{...u,value(...c){return l(ge(n,...c))}},enclose:{...u,value(c,i){return l(ue(n,c,i))}},format:{...u,value(...c){return l(Y(n,...c))}},indexOf:{...u,value(c){return ie(n,c)}},interpolate:{...u,value(...c){return l(Y(n,...c))}},insert:{...u,value({value:c,values:i,at:m}={}){return l(k(n,{value:c,values:i,at:m}))}},lastIndexOf:{...u,value(c){return se(n,c)}},prefix:{...u,value(...c){return l(fe(n,...c))}},replaceWords:{...u,value({caseSensitive:c=!1,replacements:i={}}={}){return l(ae(n,{replacements:i??{},caseSensitive:c}))}},toString:{...u,value(){return n}},trim:{...u,value(c,i){return l(ce(n,c,i))}},truncate:{...u,value({at:c,html:i=!1,wordBoundary:m=!1}={}){return l(le(n,{at:c,html:i,wordBoundary:m}))}},valueOf:{...u,value(){return n}},undoLast:{...u,value(c){return I(c)}},camelCase:{...u,get(){return l(T(g(n)))}},capitalize:{...u,value:M(r,l)},clone:{...u,get(){return X(r,B)}},firstUp:{...u,get(){return l(A(g(n)))}},history:{...u,get(){return o},set(c){o=c}},empty:{...u,get(){return n.length<1}},notEmpty:{...u,get(){return n.length<1?void 0:r}},kebabCase:{...u,get(){return l(F(g(n)))}},quote:W(r,l),snakeCase:{...u,get(){return l(H(g(n)))}},trimAll:{...u,get(){return l(K(n))}},trimAllKeepLF:{...u,get(){return l(K(n,!0))}},undoAll:{...u,get(){return O()}},undo:{...u,get(){return s()}},wordsUCFirst:{...u,get(){return l(Z(g(n)))}},value:{...u,get(){return n},set(c){let i=g(c);i.length&&(n=i,o.push(i))}}}),S(B),r;function h(c){return{get(i,m){switch(!0){case m===Symbol.for("myType"):return"stringWeaver instance (Proxy)";case Object.hasOwn(c,m):return c[m];case p(String(m)):return y(m);default:return y(m)}}}}function p(c){return!re.test(c)&&Object.hasOwn(String.prototype,c)}function y(c){return typeof n[c]=="function"?function(...i){let m=n[c](...i);return m?.constructor===String?l(n[c](...i)):m}:n[c]}function O(){for(;o.length>1;)o.pop();return n=o.at(-1),l(n,!1)}function I(c){if(!E(c))return l(n,!1);let i=o.length;return c>=i||c<1?(o=o.slice(0,1),n=o.at(-1),l(o.at(-1),!1)):(o=o.slice(0,i-c),n=o.at(-1),l(n,!1))}function s(){return o.length===1?l(o[0]):(o.pop(),n=o.at(-1),l(n,!1))}function l(c,i=!0){return n!==c&&i&&o.push(c),n=c,r}function S(c){Object.entries(c).forEach(([i,m])=>{let{enumerable:V,method:a,isGetter:f}=m,d=!1;Object.defineProperty(t,i,f?{get(){return l(a(r).value)},enumerable:V,configurable:d}:{value(...C){return l(a(r,...C).value)},enumerable:V,configurable:d})})}}var B=Object.create(null,{});oe(w,B);function w(e,...t){let r=pe({initialstring:ne(e,...t)});return Object.defineProperty(r,"constructor",{get(){return w},enumerable:!1}),Object.freeze(r)}function X(e){let t=w(e.value);return t.history=[...e.history],t}var tt=w;export{tt as default};
4
+ `)})}function ie(e,{replacements:t={},caseSensitive:r=!1}={}){e=m(e);let n=Object.entries(t).flat(),o=L(String,n)&&r?.constructor===Boolean,a=`g${r?"":"i"}`;if(!o)return e;for(;n.length;){let[p,g]=[n.shift(),n.shift()],h=new RegExp(_(p),a);e=e.replace(h,g)}return e}function se(e,t,r=0){e=m(e),r=N(r)&&r||0;let n=e.indexOf(t,r||0);return n<0?void 0:n}function fe(e,t,r=0){e=m(e),r=N(r)&&r||e.length;let n=e.lastIndexOf(t,r);return n<0?void 0:n}function K(e,{value:t,values:r,at:n=0}={}){e=m(e),n=N(n)&&n||0;let o=m(r);return r=m(t).length?t:o.length?o:L(String,r)?r.map(a=>m(a)).join(""):[],r.length<=1?e:e.length===0?`${r}${e}`:`${e.slice(0,n)}${r}${e.slice(n)}`}function ge(e,...t){return t=L(String,t)&&t,t?K(m(e),{values:t,at:0}):m(e)}function me(e,...t){return t=L(String,t)&&t,t&&t.length>0?`${m(e)}`.concat(t.join("")):m(e)}var pe=Pe;function Pe({initialstring:e}={}){let t=Object.create(null,{}),r=new Proxy(t,ne({customStringProperties:t,maybeRevalueNative:h})),n=m(e),o=[n];return ue({customStringProperties:t,customMethods:F,instance:r,reValue:i}),Object.defineProperties(t,{append:{value(...c){return i(me(n,...c))}},enclose:{value(c,u){return i(ce(n,c,u))}},format:{value(...c){return i(M(n,...c))}},indexOf:{value(c){return se(n,c)}},interpolate:{value(...c){return i(M(n,...c))}},insert:{value({value:c,values:u,at:s}={}){return i(K(n,{value:c,values:u,at:s}))}},lastIndexOf:{value(c){return fe(n,c)}},prefix:{value(...c){return i(ge(n,...c))}},replaceWords:{value({caseSensitive:c=!1,replacements:u={}}={}){return i(ie(n,{replacements:u??{},caseSensitive:c}))}},toString:{value(){return n}},trim:{value(c,u){return i(le(n,c,u))}},truncate:{value({at:c,html:u=!1,wordBoundary:s=!1}={}){return i(ae(n,{at:c,html:u,wordBoundary:s}))}},valueOf:{value(){return n}},undoLast:{value(c){return p(c)}},camelCase:{get(){return i(H(m(n)))}},capitalize:{value:z(r,i)},clone:{get(){return k(r,F)}},firstUp:{get(){return i(q(m(n)))}},history:{get(){return o},set(c){o=c}},empty:{get(){return n.length<1}},notEmpty:{get(){return n.length<1?void 0:r}},kebabCase:{get(){return i(E(m(n)))}},quote:W(r,i),snakeCase:{get(){return i(D(m(n)))}},trimAll:{get(){return i(Y(n))}},trimAllKeepLF:{get(){return i(Y(n,!0))}},undoAll:{get(){return a()}},undo:{get(){return g()}},wordsUCFirst:{get(){return i(T(m(n)))}},value:{get(){return n},set(c){let u=m(c);u.length&&(n=u,o.push(u))}}}),r;function a(){for(;o.length>1;)o.pop();return n=o.at(-1),i(n,!1)}function p(c){if(!N(c))return i(n,!1);let u=o.length;return c>=u||c<1?(o=o.slice(0,1),n=o.at(-1),i(o.at(-1),!1)):(o=o.slice(0,u-c),n=o.at(-1),i(n,!1))}function g(){return o.length===1?i(o[0]):(o.pop(),n=o.at(-1),i(n,!1))}function h(c){return typeof n[c]=="function"?function(...u){let s=n[c](...u);return typeof s=="string"?i(n[c](...u)):s}:n[c]}function i(c,u=!0){return n!==c&&u&&o.push(c),n=c,r}}var F=Object.create(null,{});oe(y,F);function y(e,...t){let r=pe({initialstring:re(e,...t)});return Object.defineProperty(r,"constructor",{get(){return y},enumerable:!1}),Object.freeze(r)}function k(e){let t=y(e.value);return t.history=[...e.history],t}var ot=y;export{ot as default};
5
5
  //# sourceMappingURL=index.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/factories/splatESBundle.js", "../src/Factories/regExpFromMultilineStringFactory.js", "../src/Factories/randomStringFactory.js", "../src/helpers.js", "../src/instanceMethods.js", "../src/instanceCreator.js", "../src/CTORCreator.js", "../index.js"],
4
- "sourcesContent": ["const IS = typeCheckFactory();\r\nconst interpolateDefault = interpolateFactory();\r\nconst interpolateClear = interpolateFactory(\"\");\r\n\r\nexport {\r\n interpolateDefault as default,\r\n interpolateClear,\r\n addSymbolicStringExtensions,\r\n interpolateFactory,\r\n};\r\n\r\n/**\r\n * Factory function to create an interpolate function with a default replacer.\r\n * @param {string|number} defaultReplacer - Default value to use for missing tokens.\r\n * @returns {Function} - The interpolation function.\r\n */\r\nfunction interpolateFactory(defaultReplacer, specs = {}) {\r\n const {useSymbolicExtensions} = specs;\r\n defaultReplacer = IS(defaultReplacer, String, Number) ?\r\n String(defaultReplacer) : undefined;\r\n \r\n if (!!useSymbolicExtensions) {\r\n addSymbolicStringExtensions();\r\n }\r\n \r\n /**\r\n * Main interpolation function.\r\n * @param {string} str - The string with placeholders.\r\n * @param {...object} tokens - Objects containing replacement values.\r\n * @returns {string} - The interpolated string.\r\n */\r\n return function(str, ...tokens) {\r\n return interpolate(str, processTokens(tokens));\r\n }\r\n \r\n /**\r\n * Handle invalid keys by returning the default replacer or the key in braces.\r\n * @param {string} key - The placeholder key.\r\n * @param {boolean} keyExists - Flag indicating if the key exists in the token.\r\n * @returns {string} - The replacement value.\r\n */\r\n function invalidate(key, keyExists) {\r\n if (keyExists && IS(defaultReplacer, String, Number)) {\r\n return String(defaultReplacer);\r\n }\r\n \r\n return `{${key}}`;\r\n }\r\n \r\n /**\r\n * Get the replacement value for a key from the token.\r\n * @param {string} key - The placeholder key.\r\n * @param {object} token - The token object containing replacement values.\r\n * @returns {string} - The replacement value.\r\n */\r\n function replacement(key, token) {\r\n const isValid = key in token;\r\n return isValid && IS(token[key], String, Number) ? String(token[key]) : invalidate(key, isValid);\r\n }\r\n \r\n /**\r\n * Create a lambda function for replacing placeholders in the string.\r\n * @param {object} token - The token object containing replacement values.\r\n * @returns {Function} - The replacer lambda function.\r\n */\r\n function getReplacerLambda(token) {\r\n return (...args) => {\r\n const replacementObject = args.find(a => a.key);\r\n return replacement((replacementObject ? replacementObject.key : `_`), token);\r\n };\r\n }\r\n \r\n /**\r\n * Replace placeholders in the string with values from the token.\r\n * @param {string} str - The string with placeholders.\r\n * @param {object} token - The token object containing replacement values.\r\n * @returns {string} - The interpolated string.\r\n */\r\n function replace(str, token) {\r\n return str.replace(/\\{(?<key>[a-z_\\d]+)}/gim, getReplacerLambda(token));\r\n }\r\n \r\n /**\r\n * Convert token object to array of token Objects\r\n * when it's values are arrays of values.\r\n * @param {object} tokenObject - The token object containing arrays of values.\r\n * @returns {object[]} - Array of token objects.\r\n */\r\n function convertTokensFromArrayValues(tokenObject) {\r\n const converted = [];\r\n \r\n Object.entries(tokenObject).forEach(([key, value]) => {\r\n value.forEach((v, i) => (converted[i] ??= {}, converted[i][key] = v));\r\n });\r\n \r\n return converted;\r\n }\r\n \r\n /**\r\n * Check if single token and its values are arrays.\r\n * @param {object[]} tokens - The tokens to check.\r\n * @returns {boolean} - True if tokens contains one Object\r\n * and all it's values are of type Array.\r\n */\r\n function isMultiLineWithArrays(tokens) {\r\n return tokens.length === 1 && Object.values(tokens[0]).every(Array.isArray);\r\n }\r\n \r\n /**\r\n * Process tokens to handle multi-line formats.\r\n * @param {object[]} tokens - The tokens to process.\r\n * @returns {object[]} - Processed tokens.\r\n */\r\n function processTokens(tokens) {\r\n return isMultiLineWithArrays(tokens) ? convertTokensFromArrayValues(tokens[0]) : tokens;\r\n }\r\n \r\n /**\r\n * Interpolate the string with the given tokens.\r\n * @param {string} str - The string with placeholders.\r\n * @param {object[]} tokens - The tokens containing replacement values.\r\n * @returns {string} - The interpolated string.\r\n */\r\n function interpolate(str, tokens) {\r\n const injected = !tokens?.length ? str : tokens\r\n .filter(token => IS(token, Object))\r\n .map((token, i) => replace(str, {...token, index: i + 1}))\r\n .join(``);\r\n \r\n return IS(defaultReplacer, undefined)\r\n ? injected : injected.replace(/\\{[a-z_\\d].+\\}/gim, String(defaultReplacer));\r\n }\r\n}\r\n\r\n/**\r\n * Extend String.prototype using the above two\r\n * interpolate methods.\r\n * Note: Symbols are unique, so there is no risk the\r\n * methods will conflict with native String methods or\r\n * methods in other ES libraries.\r\n * @returns {symbol[]}\r\n */\r\nfunction addSymbolicStringExtensions() {\r\n if (!String.prototype[Symbol.for(`interpolate`)]) {\r\n Object.defineProperties(String.prototype, {\r\n [Symbol.for(`interpolate`)]: {\r\n value(...args) {\r\n return interpolateDefault(this, ...args);\r\n }\r\n },\r\n [Symbol.for(`interpolate$`)]: {\r\n value(...args) {\r\n return interpolateClear(this, ...args);\r\n }\r\n },\r\n });\r\n }\r\n \r\n return [Symbol.for(\"interpolate\"), Symbol.for(`interpolate$`)];\r\n}\r\n\r\n/**\r\n * Simple 'type' checking factory\r\n * @returns {function(*, ...[*]): (boolean|*)}\r\n */\r\nfunction typeCheckFactory() {\r\n const collate = new Intl.Collator(`en`, {sensitivity: 'base'});\r\n const nameOf = type2Check => typeof type2Check === `function`\r\n ? type2Check?.name || type2Check?.constructor?.name : `noCTOR`;\r\n \r\n /**\r\n * check obj to be of [type2Check]\r\n * @param {*} obj\r\n * @param {*} type2Check\r\n * @returns {boolean}\r\n */\r\n function checkSingleType(obj, type2Check) {\r\n if (type2Check === Number && (Number.isNaN(obj) || !Number.isFinite(obj))) {\r\n return false;\r\n }\r\n \r\n return 0 === collate.compare(\r\n Object.prototype.toString.call(obj),\r\n `[object ${nameOf(type2Check)}]`\r\n ) || obj?.name === type2Check?.name;\r\n }\r\n \r\n /**\r\n *\r\n * @param {*} obj\r\n * @param {*[]} type2Check\r\n * @returns {boolean}\r\n */\r\n function checkType(obj, ...type2Check) {\r\n if (type2Check.length > 1) {\r\n for (const chkType of type2Check) {\r\n if (checkSingleType(obj, chkType)) { return true; }\r\n }\r\n \r\n return false;\r\n }\r\n \r\n return checkSingleType(obj, type2Check?.shift());\r\n }\r\n \r\n return checkType;\r\n}\r\n", "export default Object.defineProperties(instanceCreator, {escape: {value: escape4RE, enumerable: true}});\r\n\r\nfunction instanceCreator(regExStr, ...args) {\r\n const {flags, cleanedArgs} = maybeFlags(...args);\r\n return createInstance(\r\n new RegExp(cleanup(createRegExpStringFromInput(regExStr, ...cleanedArgs)), flags)\r\n );\r\n}\r\n\r\nfunction createRegExpStringFromInput(regExStr, ...cleanedArgs) {\r\n return !hasLength(cleanedArgs) ? regExStr.raw.join(``) :\r\n regExStr.raw.reduce((a, v, i) => a.concat(cleanedArgs[i - 1] || ``).concat(v), ``);\r\n}\r\n\r\nfunction maybeFlags(...args) {\r\n const flags = cleanupFlags(getFlags(args.at(-1)));\r\n return { flags, cleanedArgs: hasLength(flags) ? args.slice(0, -1) : args };\r\n}\r\n\r\nfunction getFlags(maybeFlags) { return isOfType(maybeFlags, Array) ? maybeFlags.join(``) : ``; }\r\n\r\nfunction createInstance(regExp) {\r\n const instance = new Proxy( Object.defineProperties({}, {\r\n re: { get() { return regExp; }, enumerable: false },\r\n toString: {value: () => regExp.toString(), enumerable: false},\r\n valueOf: {value: () => regExp, enumerable: false},\r\n flags: { value(flags) { regExp = modifyFlags(flags, regExp); return instance; }, enumerable: false },\r\n clone: { get() { return clone(instance); }, enumerable: false },\r\n }), getterTrap(regExp) );\r\n \r\n return instance;\r\n}\r\n\r\nfunction hasLength(variable) { return variable?.length > 0; }\r\n\r\nfunction isOfType(any, CTOR) { return any?.constructor === CTOR; }\r\n\r\nfunction maybeProp(target, key, regExp) {\r\n const fromRegExp = Reflect.get(regExp, key);\r\n return {\r\n fromInstance: Reflect.get(target, key),\r\n fromRegExpMethod: isOfType(fromRegExp, Function) ? fromRegExp.bind(target.re) : target.re[key]\r\n }\r\n}\r\n\r\nfunction getterTrap(regExp) {\r\n return {\r\n get(target, key) {\r\n const {fromInstance, fromRegExpMethod} = maybeProp(target, key, regExp);\r\n switch (true) {\r\n case !!fromInstance: return fromInstance;\r\n default: return fromRegExpMethod;\r\n }\r\n },\r\n };\r\n}\r\n\r\nfunction clone(instance) {\r\n const source = instance.re.source;\r\n const flags = hasLength(instance.re.flags) ? [...instance.re.flags] : [];\r\n return instanceCreator`${source} ${flags}`;\r\n}\r\n\r\nfunction cleanupFlags(flags, currentFlags) {\r\n currentFlags = (currentFlags ?? ``).replace(/^-r\\|/, ``);\r\n flags = currentFlags.concat(isOfType(flags, String) && hasLength(flags) ? flags : ``);\r\n return [...new Set([...flags])].join(``).replace(/[^dgimsuvy]/g, ``);\r\n}\r\n\r\nfunction modifyFlags(flags, regExp) {\r\n switch (true) {\r\n case !isOfType(flags, String) || !hasLength(flags): return regExp;\r\n case flags === `-r`: return regExp = new RegExp(regExp.source);\r\n case flags.startsWith(`-r|`): return regExp = new RegExp(regExp.source, cleanupFlags(flags));\r\n default: return regExp = new RegExp(regExp.source, cleanupFlags(regExp.flags, flags));\r\n }\r\n}\r\n\r\nfunction escape4RE(string2Escape) {\r\n switch (true) {\r\n case string2Escape?.constructor !== String || !hasLength(string2Escape): return ``;\r\n case !!RegExp.escape: return RegExp.escape(string2Escape);\r\n default: return (`\\\\x${string2Escape.at(0)}` +\r\n string2Escape.slice(1).replace(/\\p{S}|\\p{P}/gu, a => `\\\\${a}`))\r\n .replace(/ |\\\\x /g, `\\\\x20`); }\r\n}\r\n\r\nfunction cleanup(str) {\r\n return str\r\n .replace(/\\/\\*(?:[^*]|\\*+[^*\\/])*\\*+\\/|(?<!:|\\\\\\|')\\/\\/.*/gm, ``)\r\n .replace(/\\s/g, ``)\r\n .trim().replace(/<!([^>]\\d+)>/g, (a, b) => String.fromCharCode(+b) ?? a);\r\n}\r\n", "const { randomString, uuid4 } = randomStringGeneratorFactory();\r\nexport { randomString as default, randomString, uuid4 };\r\n\r\nfunction randomStringGeneratorFactory() {\r\n const hasCrypto = checkBrowserCrypto();\r\n const getRandomValue = () => hasCrypto\r\n ? [...crypto.getRandomValues(new Uint32Array(1))].shift() / 2**32\r\n : Math.random();\r\n const randomNr = ({min = 0, max = Number.MAX_SAFE_INTEGER} = {}) =>\r\n Math.floor( getRandomValue() * (max - min + 1) + min );\r\n const range = (start = 0, len = 10, reMap) => (reMap || []) instanceof Function\r\n ? [...Array(len)].map((_, i) => start + i).map(reMap)\r\n : [...Array(len)].map((_, i) => start + i);\r\n const map2Chrs = v => String.fromCharCode(v);\r\n const symbols = `!?@#$%^&*=+_;-`.split(``);\r\n const symRE = RegExp(`[${symbols.map(v => `\\\\${v}`).join(``)}]`, `g`);\r\n const shuffle = array => {\r\n let i = array.length;\r\n while (i--) {\r\n const ri = randomNr( { max: i } );\r\n [array[i], array[ri]] = [array[ri], array[i]];\r\n }\r\n\r\n return array;\r\n };\r\n const UC = shuffle(range(65, 26, map2Chrs));\r\n const LC = shuffle(range(97, 26, map2Chrs));\r\n const UCLC = shuffle(UC.concat(LC));\r\n const allChars = { UCLC, UC, LC, Nrs: shuffle(range()), Sym: shuffle(symbols), };\r\n const getChars2Use = use => Object.entries(use)\r\n .reduce( (acc, [key, value]) => value ? [...acc, ...allChars[key]] : acc, LC );\r\n\r\n function checkBrowserCrypto() {\r\n try { return window && `crypto` in window }\r\n catch(_) { return false; }\r\n }\r\n\r\n function uuid4() {\r\n // Note: randomUUID only in secure context (https)\r\n return hasCrypto && crypto.randomUUID\r\n ? crypto.randomUUID()\r\n : [...new Uint8Array(16)]\r\n .map(_ => randomNr({max: 255}))\r\n .map( (v, i) => `${\r\n (i === 8 ? v & 0b00111111 | 0b10000000 : i === 6 ? v & 0b00001111 | 0b01000000 : v)\r\n .toString(16).padStart(2, `0`)}${~[3,5,7,9].indexOf(i) ? `-` : ``}` )\r\n .join(``);\r\n }\r\n\r\n function strTest(strFound, numbers, symbols) {\r\n return /[a-z]/i.test(strFound) && (\r\n numbers && symbols ? /\\d/.test(strFound) && symRE.test(strFound)\r\n : numbers ? /\\d/.test(strFound)\r\n : symbols ? symRE.test(strFound)\r\n : true);\r\n }\r\n\r\n function alphaSwap(strFound) {\r\n const chars = [...strFound];\r\n const idx = chars.findIndex(v => /[a-z]/i.test(v));\r\n [chars[0], chars[idx]] = [chars[idx], chars[0]];\r\n return chars.join(``);\r\n }\r\n\r\n function randomString( {len = 12, includeUppercase = true, includeNumbers, includeSymbols, startAlphabetic} = {} ) {\r\n len = len < 6 ? 6 : len;\r\n let chrs2Use = shuffle( getChars2Use( { UC: includeUppercase, Nrs: includeNumbers, Sym: includeSymbols } ) );\r\n\r\n while (chrs2Use.length < len) { chrs2Use = [...chrs2Use, ...shuffle(chrs2Use)]; }\r\n\r\n let strFound = chrs2Use.slice(0, len).join(``);\r\n\r\n if (!(includeNumbers || includeSymbols)) { return strFound; }\r\n\r\n for (let i = 0; i < chrs2Use.length; i += 1) {\r\n strFound = chrs2Use.slice(i, i + len).join(``);\r\n\r\n if (strTest(strFound, includeNumbers, includeSymbols)) {\r\n return startAlphabetic && !/^[a-z]/i.test(strFound) ? alphaSwap(strFound) : strFound;\r\n }\r\n }\r\n\r\n return randomString({len, includeUppercase, includeNumbers, includeSymbols, startAlphabetic});\r\n }\r\n\r\n return { randomString, uuid4 };\r\n}\r\n", "import interpolate from \"./factories/splatESBundle.js\";\r\nimport createRegExp from \"./Factories/regExpFromMultilineStringFactory.js\";\r\nimport {default as randomString, uuid4} from \"./Factories/randomStringFactory.js\";\r\nimport {CustomStringConstructor} from \"./CTORCreator.js\";\r\nimport {parseCamelcase, parseKebabCase, parseSnakeCase, ucFirst, wordsFirstUp} from \"./instanceMethods.js\";\r\nconst quotingStyles = defineQuotingStyles();\r\nconst deprecatedRE = /symbol|anchor|big|blink|bold|fixed|fontsize|fontcolor|italics|link|small|strike|sup|sub/i\r\n\r\nexport {\r\n capitalizerFactory, createExtendedCTOR, createRegExp, defineQuotingStyles,\r\n deprecatedRE, getStringValue, escape4RE as escapeRE, infoValue, interpolate, isArrayOf,\r\n isNumber, randomString, resolveTemplateString, retrieveQuotInfo, quotGetters4Instance,\r\n quotingStyles, uuid4,\r\n};\r\n\r\nfunction defineQuotingStyles() {\r\n // see https://en.wikipedia.org/wiki/Quotation_mark\r\n const quots = {\r\n backtick: [\"`\", \"`\"],\r\n parentheses: [`(`, `)`],\r\n curlyBrackets: [`{`, `}`],\r\n curlyDoubleInward: [`\u201D`, `\u201C`],\r\n curlyDouble: [`\u201C`, `\u201D`],\r\n curlyDoubleEqual: [`\u201C`, `\u201C`],\r\n curlyLHDouble: [`\u201E`, `\u201D`],\r\n curlyLHDoubleInward: [`\u201E`, `\u201C`],\r\n curlyLHSingle: [`\u201A`, `\u2019`],\r\n curlyLHSingleInward: [`\u201A`, `\u2018`],\r\n curlySingle: [`\u201B`, `\u2019`],\r\n curlySingleEqual: [`\u201B`, `\u201B`],\r\n curlySingleInward: [`\u2019`, `\u201B`],\r\n double: [`\"`, `\"`],\r\n guillemets: [`\u00AB`, `\u00BB`],\r\n guillemetsInward: [`\u00BB`, `\u00AB`],\r\n guillemetsSingle: [`\u2039`, `\u203A`],\r\n guillemetsSingleInward: [`\u203A`, `\u2039`],\r\n single: [`'`, `'`],\r\n squareBrackets: [`[`, `]`],\r\n };\r\n quots.re = new RegExp(`[${\r\n escape4RE([...new Set(\r\n Object.values(quots)\r\n .filter(v => Array.isArray(v))\r\n .flat())].join(``))\r\n }]`, \"g\");\r\n return quots;\r\n}\r\n\r\nfunction escape4RE(str2Escape) {\r\n return str2Escape.replace(/\\p{S}|\\p{P}/gu, a => `\\\\${a}`);\r\n}\r\n\r\nfunction getStringValue(string) {\r\n return string?.value || (string?.constructor === String && string) || ``;\r\n}\r\n\r\nfunction isArrayOf(type, value, includeInstances = true) {\r\n return Array.isArray(value) && value.length > 0 &&\r\n !value.find(v => checkType(type, v, includeInstances));\r\n}\r\n\r\nfunction isNumber(value) {\r\n return value?.constructor === Number && !Number.isNaN(value);\r\n}\r\n\r\nfunction infoValue(key, infoValue) {\r\n return `${key} (${infoValue})`;\r\n}\r\n\r\nfunction checkType(type, item, includeInstances) {\r\n return type === String && includeInstances\r\n ? item?.constructor !== CustomStringConstructor && item?.constructor !== type\r\n : item?.constructor !== type;\r\n}\r\n\r\nfunction resolveTemplateString(str, ...args) {\r\n return str?.raw\r\n ? String.raw({ raw: str }, ...args)\r\n : getStringValue(str).length ? str : \"\";\r\n}\r\n\r\nfunction retrieveQuotInfo(instanceQuotGetters4Info, ctor) {\r\n return Object.entries(Object.getOwnPropertyDescriptors(instanceQuotGetters4Info.value))\r\n .sort( (a,b) => a[0].localeCompare(b[0]) )\r\n .reduce((acc, [k,]) => {\r\n if (k === `remove`) { return [...acc, `[instance].quote.remove (only predefined)`]; }\r\n if (k === `custom`) { return [...acc, `[instance].quote.custom(start:string, end:string)`]; }\r\n\r\n const val = ctor(`[instance]`).quote[k];\r\n return [...acc, `[instance].quote.${k} ( ${val} )`];\r\n }, []);\r\n}\r\n\r\nfunction quotGetters4Instance(instance, wrap) {\r\n wrap = wrap ?? function(me) { return me; };\r\n\r\n return {\r\n value: {\r\n get backtick() { return instance.enclose(...quotingStyles.backtick); },\r\n get parentheses() { return instance.enclose(...quotingStyles.parentheses); },\r\n get curlyBrackets() { return instance.enclose(...quotingStyles.curlyBrackets); },\r\n get curlyDouble() { return instance.enclose(...quotingStyles.curlyDouble); },\r\n get curlyDoubleInward() { return instance.enclose(...quotingStyles.curlyDoubleInward); },\r\n get curlyDoubleEqual() { return instance.enclose(...quotingStyles.curlyDoubleEqual); },\r\n get curlyLHDoubleInward() { return instance.enclose(...quotingStyles.curlyLHDoubleInward); },\r\n get curlyLHSingle() { return instance.enclose(...quotingStyles.curlyLHSingle); },\r\n get curlyLHSingleInward() { return instance.enclose(...quotingStyles.curlyLHSingleInward); },\r\n get curlySingle() { return instance.enclose(...quotingStyles.curlySingle); },\r\n get curlySingleEqual() { return instance.enclose(...quotingStyles.curlySingleEqual); },\r\n get curlySingleInward() { return instance.enclose(...quotingStyles.curlySingleInward); },\r\n get custom() { return (start, end) => instance.enclose(...[start, end ?? start]); },\r\n get double() { return instance.enclose(...quotingStyles.double); },\r\n get guillemets() { return instance.enclose(...quotingStyles.guillemets); },\r\n get guillemetsInward() { return instance.enclose(...quotingStyles.guillemetsInward); },\r\n get guillemetsSingle() { return instance.enclose(...quotingStyles.guillemetsSingle); },\r\n get guillemetsSingleInward() { return instance.enclose(...quotingStyles.guillemetsSingleInward); },\r\n get remove() { return wrap(`${instance.value.replace(quotingStyles.re, ``)}`); },\r\n get single() { return instance.enclose(...quotingStyles.single); },\r\n get squareBrackets() { return instance.enclose(...quotingStyles.squareBrackets); },\r\n },\r\n enumerable: false,\r\n configurable: false,\r\n };\r\n}\r\n\r\nfunction capitalizerFactory(instance, wrap) {\r\n return {\r\n get full() {\r\n return wrap(instance.value.toUpperCase());\r\n },\r\n get none() {\r\n return wrap(instance.value.toLowerCase());\r\n },\r\n get camel() {\r\n return wrap(parseCamelcase(instance.value));\r\n },\r\n get snake() {\r\n return wrap(parseSnakeCase(instance.value));\r\n },\r\n get first() {\r\n return wrap(ucFirst(instance.value));\r\n },\r\n get kebab() {\r\n return wrap(parseKebabCase(instance.value));\r\n },\r\n get words() {\r\n return wrap(wordsFirstUp(instance.value));\r\n },\r\n get dashed() {\r\n return wrap(parseKebabCase(instance.value));\r\n },\r\n }\r\n}\r\n\r\nfunction createExtendedCTOR(ctor, customMethods) {\r\n const quoteInfo = retrieveQuotInfo(quotGetters4Instance(ctor()), ctor);\r\n const swInfo = () => getSWInformation(`constructor,history,indexOf,toString,value,valueOf,empty`.split(`,`), customMethods);\r\n Symbol.toSB = Symbol(`toStringBuilder`);\r\n Object.defineProperty(\r\n String.prototype,\r\n Symbol.toSB, {\r\n get() { return ctor(this); },\r\n enumerable: false,\r\n configurable: false\r\n }\r\n );\r\n\r\n Object.defineProperties(ctor, {\r\n create: {\r\n get() { return ctor(); },\r\n enumerable: false\r\n },\r\n constructor: {\r\n get() { return ctor; },\r\n enumerable: false,\r\n },\r\n format: {\r\n value(str, ...tokens) {\r\n return CustomStringConstructor(str).format(...tokens);\r\n }\r\n },\r\n addCustom: {\r\n value( { name, method, enumerable = false, isGetter = false } = {} ) {\r\n if (CustomStringConstructor``[name]) {\r\n console.error(`addCustom: the property \"${name}\" exists and can not be redefined`);\r\n return `addCustom: the property \"${name}\" exists and can not be redefined`;\r\n }\r\n\r\n if (typeof name === `string` && typeof method === `function` && method.length > 0) {\r\n customMethods[name] = {method, enumerable, isGetter};\r\n return `addCustom: the ${isGetter ? `getter` : `method`} named \"${name}\" is added`;\r\n }\r\n }\r\n },\r\n info: { get() { return swInfo(); } },\r\n keys: {\r\n get() {\r\n return Object.keys(Object.getOwnPropertyDescriptors(CustomStringConstructor``))\r\n .sort( (a,b) => a.localeCompare(b) )\r\n .map(v => !/constructor|toString|valueOf/.test(v) && Object.hasOwn(customMethods, v) ? `${v} *custom*` : v);\r\n }\r\n },\r\n quoteInfo: { value: quoteInfo },\r\n uuid4: { get() { return CustomStringConstructor(uuid4()); } },\r\n randomString: {\r\n value: function({len, includeUppercase, includeNumbers, includeSymbols, startAlphabetic} = {}) {\r\n return CustomStringConstructor(randomString({len, includeUppercase, includeNumbers, includeSymbols, startAlphabetic}));\r\n }\r\n },\r\n regExp: { value: createRegExp }\r\n });\r\n\r\n return;\r\n}\r\n\r\nfunction getSWInformation(notChainable, customMethods) {\r\n const firstLines = CustomStringConstructor(getInfoPrefix());\r\n const plainValues = getPlainValues();\r\n\r\n return firstLines.split(/\\n/)\r\n .concat(\r\n Object.entries(Object.getOwnPropertyDescriptors(firstLines))\r\n .sort(([keyA], [keyB]) => keyA.localeCompare(keyB))\r\n .map(([key, descriptr]) => {\r\n const isChainable = !notChainable.find(k => k === key);\r\n const isGetter = Object.hasOwn(descriptr, `get`);\r\n const isMethod = Object.hasOwn(descriptr, `value`);\r\n const isNative = Object.hasOwn(String.prototype, key);\r\n const isPlainValue = !isNative && Object.hasOwn(plainValues, key);\r\n const custom = Object.hasOwn(customMethods, key) ? ` *custom*` : ``;\r\n const getter = isGetter && isChainable ? `chainable getter${custom}` : `getter`;\r\n const method = isMethod && isChainable ? `chainable method${custom}` : `method`;\r\n const native = isNative && `${descriptr.get ? `getter` : `method`} (override)`;\r\n\r\n switch (true) {\r\n case isPlainValue: return infoValue(key, plainValues[key]);\r\n case isNative: return infoValue(key, native);\r\n case isMethod: return infoValue(key, method);\r\n case isGetter: return infoValue(key, getter);\r\n }\r\n }\r\n )\r\n );\r\n}\r\n\r\nfunction getPlainValues() {\r\n const capitalizerKeys = Object.keys(capitalizerFactory());\r\n return {\r\n value: `getter/setter`,\r\n clone: `chainable getter`,\r\n notEmpty: `chainable getter|undefined`,\r\n quote: `Object. See [constructor].quoteInfo`,\r\n capitalize: `getter. Object with chainable getters: [${capitalizerKeys.join(`, `)}]`,\r\n };\r\n}\r\n\r\nfunction getInfoPrefix() {\r\n return atob(\r\n `Rm9yIHRoZSByZWNvcmQ6CltjbV0gY2hhaW5hYmxlIGdldHRlcnMvbWV0aG9kcyBtb2RpZnkgdGhlIGluc3RhbmNlIHN0cmluZwpbY21d`+\r\n `IGluZGV4T2Ygb3ZlcnJpZGVzIHJldHVybnMgW3VuZGVmaW5lZF0gaWYgbm90aGluZyB3YXMgZm91bmQgKHNvIG9uZSBjYW4gdXNlIFtsYXN0`+\r\n `SV1pbmRleE9mKFtzb21lIHN0cmluZyB2YWx1ZV0pID8/IDAKW2NtXSBpbmNsdWRlcyBpbmZvcm1hdGlvbiBmb3IgY3VzdG9tIG1ldGhv`+\r\n `ZHMvZ2V0dGVycyBpZiBhcHBsaWNhYmxl`).replace(/\\[cm]/g, `\\u2714`);\r\n}\r\n", "import { customMethods, clone, } from \"./CTORCreator.js\";\r\n\r\nimport {\r\n createRegExp as $RE, getStringValue, isArrayOf, interpolate,\r\n isNumber, escapeRE, quotGetters4Instance as quotGetters,\r\n} from \"./helpers.js\";\r\n\r\nexport {\r\n format,\r\n ucFirst,\r\n truncate,\r\n trimAll,\r\n replaceWords,\r\n indexOf,\r\n lastIndexOf,\r\n insert,\r\n append,\r\n isNumber,\r\n prefix,\r\n getStringValue,\r\n parseCamelcase,\r\n wordsFirstUp,\r\n parseKebabCase,\r\n parseSnakeCase,\r\n quotGetters,\r\n surroundWith,\r\n customMethods,\r\n clone,\r\n trim,\r\n};\r\n\r\nfunction checkAndRun(string, fn, or) {\r\n string = getStringValue(string);\r\n return string.length > 0 ? fn(string) : or || string;\r\n}\r\n\r\nfunction format(string, ...tokens) {\r\n return checkAndRun(string, () => `${interpolate(string, ...tokens)}`);\r\n}\r\n\r\nfunction surroundWith(string, start, end) {\r\n if (!start && !end) {\r\n return string;\r\n }\r\n [start, end] = isArrayOf(String, [start, end ?? ``]) ? [start, end] : [``, ``];\r\n return `${start}${string}${end || start}`;\r\n}\r\n\r\nfunction ucFirst(string) {\r\n return checkAndRun(string, () => `${string[0].toUpperCase()}${string.slice(1).toLowerCase()}`);\r\n}\r\n\r\nfunction parseKebabCase(str) {\r\n let result = ``;\r\n\r\n for (const s of [...str]) {\r\n switch(true) {\r\n case !/[a-z _]/i.test(s): break;\r\n case /[ _]/.test(s): result += `-`; break;\r\n case s === s.toUpperCase(): result += `-${s.toLowerCase()}`; break;\r\n default: result += s;\r\n }\r\n }\r\n\r\n return result.replace(/-{2,}/g, `-`).replace(/^-|-$/g, ``);\r\n}\r\n\r\nfunction parseSnakeCase(str) {\r\n let result = ``;\r\n\r\n for (const s of [...str]) {\r\n switch(true) {\r\n case !/[a-z _-]/i.test(s): break;\r\n case /[ -]/.test(s): result += `_`; break;\r\n case s === s.toUpperCase(): result += `_${s.toLowerCase()}`; break;\r\n default: result += s;\r\n }\r\n }\r\n\r\n return result.replace(/_{2,}/g, `_`).replace(/^_|_$/g, ``);\r\n}\r\n\r\nfunction parseCamelcase(string) {\r\n return checkAndRun(string, () =>\r\n string.toLowerCase()\r\n .trim()\r\n .split(/[-\\s]/)\r\n .filter(l => l && l.length > 0)\r\n .map( (str, i) => i > 0 && `${ucFirst(str)}` || str)\r\n .join(``)\r\n );\r\n}\r\n\r\nfunction wordsFirstUp(string) {\r\n return checkAndRun(string, () => [...string.toLowerCase()].slice(1).reduce( (acc, v) =>\r\n acc + ( !/\\p{L}|[-']/u.test(acc.at(-1)) ? v.toUpperCase() : v.toLowerCase() ),\r\n string[0].toUpperCase()\r\n ));\r\n}\r\n\r\nfunction trim(string, start, end) {\r\n return checkAndRun(string, () => {\r\n if (!end && !start) { return string.trim(); }\r\n\r\n end = $RE.escape(end || start);\r\n start = $RE.escape(start);\r\n\r\n return string.replace($RE`^(${start})+ | (${end})+$`.flags(`gm`), ``);\r\n });\r\n}\r\n\r\nfunction getWordBoundary(string) {\r\n const match = [...string.matchAll(/\\p{Pe}|\\p{Z}/gu)].at(-1);\r\n return match?.index ?? string.length;\r\n}\r\n\r\nfunction truncate(string, {at, html = false, wordBoundary = false} = {} ) {\r\n html = html?.constructor === Boolean && html || false;\r\n wordBoundary = wordBoundary?.constructor === Boolean && wordBoundary || false;\r\n return checkAndRun(string, () => {\r\n if (string.length <= at) { return string; }\r\n\r\n const subString = string.slice(0, at - 1);\r\n const endwith = html ? \"&hellip;\" : `...`;\r\n const boundary = wordBoundary\r\n ? getWordBoundary(subString)\r\n : subString.length;\r\n\r\n return (wordBoundary\r\n ? subString.slice(0, boundary+1).trim()\r\n : subString) + endwith;\r\n }\r\n );\r\n}\r\n\r\nfunction trimAll(string, keepLines = false) {\r\n keepLines = keepLines?.constructor === Boolean && keepLines || false;\r\n return checkAndRun(string, () => {\r\n const lines = string.replace(/\\n/gm, `#LF#`)\r\n .split(/#LF#/)\r\n .map(line => line.trim().replace(/\\s{2,}/g, a => a[0]) );\r\n return keepLines\r\n ? lines.join(`#LF#`).replace(/#LF#/g, `\\n`).trim()\r\n : lines.filter(l => l.length > 0).join(`\\n`);\r\n });\r\n}\r\n\r\nfunction replaceWords(string, { replacements = {}, caseSensitive = false} = {}) {\r\n string = getStringValue(string);\r\n let replacements2Array = Object.entries(replacements).flat();\r\n const cando = isArrayOf(String, replacements2Array) && caseSensitive?.constructor === Boolean;\r\n const modifiers = `g${!caseSensitive ? 'i' : ''}`;\r\n\r\n if (!cando) { return string; }\r\n\r\n while (replacements2Array.length) {\r\n const [initial, replacement] = [replacements2Array.shift(), replacements2Array.shift()];\r\n const re = new RegExp(escapeRE(initial), modifiers);\r\n string = string.replace(re, replacement);\r\n }\r\n\r\n return string;\r\n}\r\n\r\n// SEE https://youtu.be/99Zacm7SsWQ?t=2101\r\nfunction indexOf(string, findMe, fromIndex = 0) {\r\n string = getStringValue(string);\r\n fromIndex = isNumber(fromIndex) && fromIndex || 0;\r\n const index = string.indexOf(findMe, fromIndex || 0);\r\n return index < 0 ? undefined : index;\r\n}\r\n\r\nfunction lastIndexOf(string, findMe, beforeIndex = 0) {\r\n string = getStringValue(string);\r\n beforeIndex = isNumber(beforeIndex) && beforeIndex || string.length;\r\n const index = string.lastIndexOf(findMe, beforeIndex);\r\n return index < 0 ? undefined : index;\r\n}\r\n\r\nfunction insert(string, { value, values, at = 0 } = {}) {\r\n string = getStringValue(string);\r\n at = isNumber(at) && at || 0;\r\n const valuesMaybeValue = getStringValue(values);\r\n values = getStringValue(value).length\r\n ? value\r\n : valuesMaybeValue.length\r\n ? valuesMaybeValue\r\n : isArrayOf(String, values)\r\n ? values.map(v => getStringValue(v)).join(``)\r\n : [];\r\n\r\n return values.length <= 1\r\n ? string\r\n : string.length === 0\r\n ? `${values}${string}`\r\n : `${string.slice(0, at)}${values}${string.slice(at)}`;\r\n}\r\n\r\nfunction prefix(string, ...strings) {\r\n strings = isArrayOf(String, strings) && strings;\r\n return strings ? insert(getStringValue(string), {values: strings, at: 0}) : getStringValue(string);\r\n}\r\n\r\nfunction append(string, ...strings2Append) {\r\n strings2Append = isArrayOf(String, strings2Append) && strings2Append;\r\n\r\n if (strings2Append && strings2Append.length > 0) {\r\n return `${getStringValue(string)}`.concat(strings2Append.join(``))\r\n }\r\n\r\n return getStringValue(string);\r\n}\r\n", "import {\r\n format,\r\n ucFirst,\r\n truncate,\r\n trimAll,\r\n replaceWords,\r\n indexOf,\r\n lastIndexOf,\r\n insert,\r\n append,\r\n prefix,\r\n getStringValue,\r\n quotGetters,\r\n surroundWith,\r\n parseCamelcase,\r\n wordsFirstUp,\r\n parseKebabCase,\r\n parseSnakeCase,\r\n customMethods,\r\n isNumber,\r\n clone,\r\n trim,\r\n} from \"./instanceMethods.js\";\r\n\r\nimport { capitalizerFactory, deprecatedRE } from \"./helpers.js\";\r\n\r\nexport default instanceCreator;\r\n\r\nfunction instanceCreator({initialstring} = {}) {\r\n let customStringExtensions = Object.create(null, { });\r\n let instance = new Proxy(customStringExtensions, getTraps(customStringExtensions));\r\n let actualValue = getStringValue(initialstring);\r\n let history = [actualValue];\r\n const defaultDescriptorProps = {configurable: false, enumerable: false};\r\n\r\n Object.defineProperties( customStringExtensions, {\r\n // methods\r\n append: { ...defaultDescriptorProps, value(...strings) { return wrap(append(actualValue, ...strings)); } },\r\n enclose: { ...defaultDescriptorProps, value(start, end) { return wrap(surroundWith(actualValue, start, end)); } },\r\n format: { ...defaultDescriptorProps, value(...tokens) { return wrap(format(actualValue, ...tokens)); } },\r\n indexOf: { ...defaultDescriptorProps, value(str) { return indexOf(actualValue, str); } },\r\n interpolate: { ...defaultDescriptorProps, value(...tokens) { return wrap(format(actualValue, ...tokens)); } },\r\n insert: { ...defaultDescriptorProps, value({ value, values, at } = {}) {\r\n return wrap(insert(actualValue, { value, values, at }));\r\n }\r\n },\r\n lastIndexOf: { ...defaultDescriptorProps, value(str) { return lastIndexOf(actualValue, str); } },\r\n prefix: { ...defaultDescriptorProps, value(...strings) { return wrap(prefix(actualValue, ...strings)); } },\r\n replaceWords: { ...defaultDescriptorProps, value({caseSensitive = false, replacements = {}} = {}) {\r\n return wrap(replaceWords(actualValue, { replacements: replacements ?? {}, caseSensitive }));\r\n } },\r\n toString: { ...defaultDescriptorProps, value() { return actualValue; } },\r\n trim: {...defaultDescriptorProps, value(start, end) { return wrap(trim(actualValue, start, end)); } },\r\n truncate: { ...defaultDescriptorProps, value({at, html = false, wordBoundary = false} = {}) {\r\n return wrap(truncate(actualValue, {at, html, wordBoundary})); } },\r\n valueOf: { ...defaultDescriptorProps, value() { return actualValue; } },\r\n undoLast: { ...defaultDescriptorProps, value(nSteps) { return undoSteps(nSteps); } },\r\n\r\n // getters\r\n camelCase: { ...defaultDescriptorProps, get() { return wrap(parseCamelcase(getStringValue(actualValue))); } },\r\n capitalize: { ...defaultDescriptorProps, value: capitalizerFactory(instance, wrap) },\r\n clone: { ...defaultDescriptorProps, get() { return clone(instance, customMethods); } },\r\n firstUp: { ...defaultDescriptorProps, get() { return wrap(ucFirst(getStringValue(actualValue))); } },\r\n history: { ...defaultDescriptorProps, get() { return history; }, set(value) { history = value; } },\r\n empty: { ...defaultDescriptorProps, get() { return actualValue.length < 1; } },\r\n notEmpty: { ...defaultDescriptorProps, get() { return actualValue.length < 1 ? undefined: instance; } },\r\n kebabCase: { ...defaultDescriptorProps, get() { return wrap(parseKebabCase(getStringValue(actualValue))); } },\r\n quote: quotGetters(instance, wrap),\r\n snakeCase: { ...defaultDescriptorProps, get() { return wrap(parseSnakeCase(getStringValue(actualValue))); } },\r\n trimAll: { ...defaultDescriptorProps, get() { return wrap(trimAll(actualValue)); } },\r\n trimAllKeepLF: { ...defaultDescriptorProps, get() { return wrap(trimAll(actualValue, true)); } },\r\n undoAll: { ...defaultDescriptorProps, get() { return undoAll(); } },\r\n undo: { ...defaultDescriptorProps, get() { return undoLast(); } },\r\n wordsUCFirst: { ...defaultDescriptorProps, get() { return wrap(wordsFirstUp(getStringValue(actualValue))); } },\r\n value: { ...defaultDescriptorProps,\r\n get() { return actualValue; },\r\n set(value) {\r\n const nwValue = getStringValue(value);\r\n if (nwValue.length) {\r\n actualValue = nwValue;\r\n history.push(nwValue);\r\n }\r\n }\r\n },\r\n });\r\n\r\n injectCustomMethods(customMethods);\r\n\r\n return instance;\r\n\r\n function getTraps(customExtensions) {\r\n return {\r\n get( target, key ) {\r\n switch(true) {\r\n case key === Symbol.for(\"myType\"): return `stringWeaver instance (Proxy)`;\r\n case Object.hasOwn(customExtensions, key): return customExtensions[key];\r\n case canWrapNative(String(key)): return wrapNative(key);\r\n default: return wrapNative(key);\r\n }\r\n },\r\n };\r\n }\r\n\r\n function canWrapNative(key) {\r\n return !deprecatedRE.test(key) && Object.hasOwn(String.prototype, key);\r\n }\r\n\r\n function wrapNative(key) {\r\n return typeof actualValue[key] === `function`\r\n ? function(...args) {\r\n const result = actualValue[key](...args);\r\n return result?.constructor === String ? wrap(actualValue[key](...args)) : result;\r\n }\r\n : actualValue[key];\r\n }\r\n\r\n function undoAll() {\r\n while (history.length > 1) { history.pop(); }\r\n actualValue = history.at(-1);\r\n return wrap(actualValue, false);\r\n }\r\n\r\n function undoSteps(steps) {\r\n if (!isNumber(steps)) {\r\n return wrap(actualValue, false);\r\n }\r\n\r\n const historyLen = history.length;\r\n\r\n if (steps >= historyLen || steps < 1) {\r\n history = history.slice(0, 1);\r\n actualValue = history.at(-1);\r\n return wrap(history.at(-1), false);\r\n }\r\n\r\n history = history.slice(0, historyLen - steps);\r\n\r\n actualValue = history.at(-1);\r\n return wrap(actualValue, false);\r\n }\r\n\r\n function undoLast() {\r\n if (history.length === 1) {\r\n return wrap(history[0]);\r\n }\r\n\r\n history.pop();\r\n actualValue = history.at(-1);\r\n return wrap(actualValue, false);\r\n }\r\n\r\n function wrap(result, pushHistory = true) {\r\n const changed = actualValue !== result;\r\n changed && pushHistory && history.push(result);\r\n actualValue = result;\r\n return instance;\r\n }\r\n\r\n function injectCustomMethods(customMethods) {\r\n Object.entries(customMethods).forEach(([methodName, methodContainer]) => {\r\n const {enumerable, method, isGetter} = methodContainer;\r\n const configurable = false\r\n const descriptor = isGetter\r\n ? { get() { return wrap(method(instance).value); }, enumerable, configurable }\r\n : { value(...args) { return wrap(method(instance, ...args).value); }, enumerable, configurable };\r\n\r\n Object.defineProperty(customStringExtensions, methodName, descriptor);\r\n });\r\n }\r\n}\r\n", "import createInstance from \"./instanceCreator.js\";\r\nimport { createExtendedCTOR, resolveTemplateString, } from \"./helpers.js\";\r\nconst customMethods = Object.create(null, {});\r\n\r\nexport { customMethods, CustomStringConstructor, clone, };\r\n\r\ncreateExtendedCTOR(CustomStringConstructor, customMethods);\r\n\r\nfunction CustomStringConstructor(str, ...args) {\r\n const instance = createInstance({initialstring: resolveTemplateString(str, ...args)});\r\n Object.defineProperty( instance,\r\n `constructor`, { get() { return CustomStringConstructor; }, enumerable: false}\r\n );\r\n return Object.freeze(instance);\r\n}\r\n\r\nfunction clone(instance) {\r\n const newInstance = CustomStringConstructor(instance.value);\r\n newInstance.history = [...instance.history];\r\n return newInstance;\r\n}\r\n", "import { CustomStringConstructor as defaultStringCTOR} from \"./src/CTORCreator.js\";\r\n\r\nexport default defaultStringCTOR;\r\n"],
5
- "mappings": "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",
6
- "names": ["IS", "typeCheckFactory", "interpolateDefault", "interpolateFactory", "interpolateClear", "interpolateFactory", "defaultReplacer", "specs", "useSymbolicExtensions", "IS", "addSymbolicStringExtensions", "str", "tokens", "interpolate", "processTokens", "invalidate", "key", "keyExists", "replacement", "token", "isValid", "getReplacerLambda", "args", "replacementObject", "a", "replace", "convertTokensFromArrayValues", "tokenObject", "converted", "value", "v", "i", "isMultiLineWithArrays", "injected", "interpolateDefault", "interpolateClear", "typeCheckFactory", "collate", "nameOf", "type2Check", "checkSingleType", "obj", "checkType", "chkType", "regExpFromMultilineStringFactory_default", "instanceCreator", "escape4RE", "regExStr", "args", "flags", "cleanedArgs", "maybeFlags", "createInstance", "cleanup", "createRegExpStringFromInput", "hasLength", "a", "v", "i", "cleanupFlags", "getFlags", "isOfType", "regExp", "instance", "modifyFlags", "clone", "getterTrap", "variable", "any", "CTOR", "maybeProp", "target", "key", "fromRegExp", "fromInstance", "fromRegExpMethod", "source", "currentFlags", "string2Escape", "str", "b", "randomString", "uuid4", "randomStringGeneratorFactory", "randomStringGeneratorFactory", "hasCrypto", "checkBrowserCrypto", "getRandomValue", "randomNr", "min", "max", "range", "start", "len", "reMap", "_", "i", "map2Chrs", "v", "symbols", "symRE", "shuffle", "array", "ri", "UC", "LC", "allChars", "getChars2Use", "use", "acc", "key", "value", "uuid4", "strTest", "strFound", "numbers", "alphaSwap", "chars", "idx", "randomString", "includeUppercase", "includeNumbers", "includeSymbols", "startAlphabetic", "chrs2Use", "quotingStyles", "defineQuotingStyles", "deprecatedRE", "defineQuotingStyles", "quots", "escape4RE", "v", "str2Escape", "a", "getStringValue", "string", "isArrayOf", "type", "value", "includeInstances", "checkType", "isNumber", "infoValue", "key", "item", "CustomStringConstructor", "resolveTemplateString", "str", "args", "retrieveQuotInfo", "instanceQuotGetters4Info", "ctor", "b", "acc", "k", "val", "quotGetters4Instance", "instance", "wrap", "me", "quotingStyles", "start", "end", "capitalizerFactory", "parseCamelcase", "parseSnakeCase", "ucFirst", "parseKebabCase", "wordsFirstUp", "createExtendedCTOR", "customMethods", "quoteInfo", "swInfo", "getSWInformation", "tokens", "name", "method", "enumerable", "isGetter", "uuid4", "len", "includeUppercase", "includeNumbers", "includeSymbols", "startAlphabetic", "randomString", "regExpFromMultilineStringFactory_default", "notChainable", "firstLines", "getInfoPrefix", "plainValues", "getPlainValues", "keyA", "keyB", "descriptr", "isChainable", "isMethod", "isNative", "isPlainValue", "custom", "getter", "native", "checkAndRun", "string", "fn", "or", "getStringValue", "format", "tokens", "interpolateDefault", "surroundWith", "start", "end", "isArrayOf", "ucFirst", "parseKebabCase", "str", "result", "s", "parseSnakeCase", "parseCamelcase", "l", "i", "wordsFirstUp", "acc", "v", "trim", "regExpFromMultilineStringFactory_default", "getWordBoundary", "truncate", "at", "html", "wordBoundary", "subString", "endwith", "boundary", "trimAll", "keepLines", "lines", "line", "a", "replaceWords", "replacements", "caseSensitive", "replacements2Array", "cando", "modifiers", "initial", "replacement", "re", "escape4RE", "indexOf", "findMe", "fromIndex", "isNumber", "index", "lastIndexOf", "beforeIndex", "insert", "value", "values", "valuesMaybeValue", "prefix", "strings", "append", "strings2Append", "instanceCreator_default", "instanceCreator", "initialstring", "customStringExtensions", "instance", "getTraps", "actualValue", "getStringValue", "history", "defaultDescriptorProps", "strings", "wrap", "append", "start", "end", "surroundWith", "tokens", "format", "str", "indexOf", "value", "values", "at", "insert", "lastIndexOf", "prefix", "caseSensitive", "replacements", "replaceWords", "trim", "html", "wordBoundary", "truncate", "nSteps", "undoSteps", "parseCamelcase", "capitalizerFactory", "clone", "customMethods", "ucFirst", "parseKebabCase", "quotGetters4Instance", "parseSnakeCase", "trimAll", "undoAll", "undoLast", "wordsFirstUp", "nwValue", "injectCustomMethods", "customExtensions", "target", "key", "canWrapNative", "wrapNative", "deprecatedRE", "args", "result", "steps", "isNumber", "historyLen", "pushHistory", "methodName", "methodContainer", "enumerable", "method", "isGetter", "configurable", "customMethods", "createExtendedCTOR", "CustomStringConstructor", "customMethods", "str", "args", "instance", "instanceCreator_default", "resolveTemplateString", "clone", "newInstance", "index_default", "CustomStringConstructor"]
4
+ "sourcesContent": ["const IS = typeCheckFactory();\r\nconst interpolateDefault = interpolateFactory();\r\nconst interpolateClear = interpolateFactory(\"\");\r\n\r\nexport {\r\n interpolateDefault as default,\r\n interpolateClear,\r\n addSymbolicStringExtensions,\r\n interpolateFactory,\r\n};\r\n\r\n/**\r\n * Factory function to create an interpolate function with a default replacer.\r\n * @param {string|number} defaultReplacer - Default value to use for missing tokens.\r\n * @returns {Function} - The interpolation function.\r\n */\r\nfunction interpolateFactory(defaultReplacer, specs = {}) {\r\n const {useSymbolicExtensions} = specs;\r\n defaultReplacer = IS(defaultReplacer, String, Number) ?\r\n String(defaultReplacer) : undefined;\r\n \r\n if (!!useSymbolicExtensions) {\r\n addSymbolicStringExtensions();\r\n }\r\n \r\n /**\r\n * Main interpolation function.\r\n * @param {string} str - The string with placeholders.\r\n * @param {...object} tokens - Objects containing replacement values.\r\n * @returns {string} - The interpolated string.\r\n */\r\n return function(str, ...tokens) {\r\n return interpolate(str, processTokens(tokens));\r\n }\r\n \r\n /**\r\n * Handle invalid keys by returning the default replacer or the key in braces.\r\n * @param {string} key - The placeholder key.\r\n * @param {boolean} keyExists - Flag indicating if the key exists in the token.\r\n * @returns {string} - The replacement value.\r\n */\r\n function invalidate(key, keyExists) {\r\n if (keyExists && IS(defaultReplacer, String, Number)) {\r\n return String(defaultReplacer);\r\n }\r\n \r\n return `{${key}}`;\r\n }\r\n \r\n /**\r\n * Get the replacement value for a key from the token.\r\n * @param {string} key - The placeholder key.\r\n * @param {object} token - The token object containing replacement values.\r\n * @returns {string} - The replacement value.\r\n */\r\n function replacement(key, token) {\r\n const isValid = key in token;\r\n return isValid && IS(token[key], String, Number) ? String(token[key]) : invalidate(key, isValid);\r\n }\r\n \r\n /**\r\n * Create a lambda function for replacing placeholders in the string.\r\n * @param {object} token - The token object containing replacement values.\r\n * @returns {Function} - The replacer lambda function.\r\n */\r\n function getReplacerLambda(token) {\r\n return (...args) => {\r\n const replacementObject = args.find(a => a.key);\r\n return replacement((replacementObject ? replacementObject.key : `_`), token);\r\n };\r\n }\r\n \r\n /**\r\n * Replace placeholders in the string with values from the token.\r\n * @param {string} str - The string with placeholders.\r\n * @param {object} token - The token object containing replacement values.\r\n * @returns {string} - The interpolated string.\r\n */\r\n function replace(str, token) {\r\n return str.replace(/\\{(?<key>[a-z_\\d]+)}/gim, getReplacerLambda(token));\r\n }\r\n \r\n /**\r\n * Convert token object to array of token Objects\r\n * when it's values are arrays of values.\r\n * @param {object} tokenObject - The token object containing arrays of values.\r\n * @returns {object[]} - Array of token objects.\r\n */\r\n function convertTokensFromArrayValues(tokenObject) {\r\n const converted = [];\r\n \r\n Object.entries(tokenObject).forEach(([key, value]) => {\r\n value.forEach((v, i) => (converted[i] ??= {}, converted[i][key] = v));\r\n });\r\n \r\n return converted;\r\n }\r\n \r\n /**\r\n * Check if single token and its values are arrays.\r\n * @param {object[]} tokens - The tokens to check.\r\n * @returns {boolean} - True if tokens contains one Object\r\n * and all it's values are of type Array.\r\n */\r\n function isMultiLineWithArrays(tokens) {\r\n return tokens.length === 1 && Object.values(tokens[0]).every(Array.isArray);\r\n }\r\n \r\n /**\r\n * Process tokens to handle multi-line formats.\r\n * @param {object[]} tokens - The tokens to process.\r\n * @returns {object[]} - Processed tokens.\r\n */\r\n function processTokens(tokens) {\r\n return isMultiLineWithArrays(tokens) ? convertTokensFromArrayValues(tokens[0]) : tokens;\r\n }\r\n \r\n /**\r\n * Interpolate the string with the given tokens.\r\n * @param {string} str - The string with placeholders.\r\n * @param {object[]} tokens - The tokens containing replacement values.\r\n * @returns {string} - The interpolated string.\r\n */\r\n function interpolate(str, tokens) {\r\n const injected = !tokens?.length ? str : tokens\r\n .filter(token => IS(token, Object))\r\n .map((token, i) => replace(str, {...token, index: i + 1}))\r\n .join(``);\r\n \r\n return IS(defaultReplacer, undefined)\r\n ? injected : injected.replace(/\\{[a-z_\\d].+\\}/gim, String(defaultReplacer));\r\n }\r\n}\r\n\r\n/**\r\n * Extend String.prototype using the above two\r\n * interpolate methods.\r\n * Note: Symbols are unique, so there is no risk the\r\n * methods will conflict with native String methods or\r\n * methods in other ES libraries.\r\n * @returns {symbol[]}\r\n */\r\nfunction addSymbolicStringExtensions() {\r\n if (!String.prototype[Symbol.for(`interpolate`)]) {\r\n Object.defineProperties(String.prototype, {\r\n [Symbol.for(`interpolate`)]: {\r\n value(...args) {\r\n return interpolateDefault(this, ...args);\r\n }\r\n },\r\n [Symbol.for(`interpolate$`)]: {\r\n value(...args) {\r\n return interpolateClear(this, ...args);\r\n }\r\n },\r\n });\r\n }\r\n \r\n return [Symbol.for(\"interpolate\"), Symbol.for(`interpolate$`)];\r\n}\r\n\r\n/**\r\n * Simple 'type' checking factory\r\n * @returns {function(*, ...[*]): (boolean|*)}\r\n */\r\nfunction typeCheckFactory() {\r\n const collate = new Intl.Collator(`en`, {sensitivity: 'base'});\r\n const nameOf = type2Check => typeof type2Check === `function`\r\n ? type2Check?.name || type2Check?.constructor?.name : `noCTOR`;\r\n \r\n /**\r\n * check obj to be of [type2Check]\r\n * @param {*} obj\r\n * @param {*} type2Check\r\n * @returns {boolean}\r\n */\r\n function checkSingleType(obj, type2Check) {\r\n if (type2Check === Number && (Number.isNaN(obj) || !Number.isFinite(obj))) {\r\n return false;\r\n }\r\n \r\n return 0 === collate.compare(\r\n Object.prototype.toString.call(obj),\r\n `[object ${nameOf(type2Check)}]`\r\n ) || obj?.name === type2Check?.name;\r\n }\r\n \r\n /**\r\n *\r\n * @param {*} obj\r\n * @param {*[]} type2Check\r\n * @returns {boolean}\r\n */\r\n function checkType(obj, ...type2Check) {\r\n if (type2Check.length > 1) {\r\n for (const chkType of type2Check) {\r\n if (checkSingleType(obj, chkType)) { return true; }\r\n }\r\n \r\n return false;\r\n }\r\n \r\n return checkSingleType(obj, type2Check?.shift());\r\n }\r\n \r\n return checkType;\r\n}\r\n", "export default Object.defineProperties(instanceCreator, {escape: {value: escape4RE, enumerable: true}});\r\n\r\nfunction instanceCreator(regExStr, ...args) {\r\n const {flags, cleanedArgs} = maybeFlags(...args);\r\n return createInstance(\r\n new RegExp(cleanup(createRegExpStringFromInput(regExStr, ...cleanedArgs)), flags)\r\n );\r\n}\r\n\r\nfunction createRegExpStringFromInput(regExStr, ...cleanedArgs) {\r\n return !hasLength(cleanedArgs) ? regExStr.raw.join(``) :\r\n regExStr.raw.reduce((a, v, i) => a.concat(cleanedArgs[i - 1] || ``).concat(v), ``);\r\n}\r\n\r\nfunction maybeFlags(...args) {\r\n const flags = cleanupFlags(getFlags(args.at(-1)));\r\n return { flags, cleanedArgs: hasLength(flags) ? args.slice(0, -1) : args };\r\n}\r\n\r\nfunction getFlags(maybeFlags) { return isOfType(maybeFlags, Array) ? maybeFlags.join(``) : ``; }\r\n\r\nfunction createInstance(regExp) {\r\n const instance = new Proxy( Object.defineProperties({}, {\r\n re: { get() { return regExp; }, enumerable: false },\r\n toString: {value: () => regExp.toString(), enumerable: false},\r\n valueOf: {value: () => regExp, enumerable: false},\r\n flags: { value(flags) { regExp = modifyFlags(flags, regExp); return instance; }, enumerable: false },\r\n clone: { get() { return clone(instance); }, enumerable: false },\r\n }), getterTrap(regExp) );\r\n \r\n return instance;\r\n}\r\n\r\nfunction hasLength(variable) { return variable?.length > 0; }\r\n\r\nfunction isOfType(any, CTOR) { return any?.constructor === CTOR; }\r\n\r\nfunction maybeProp(target, key, regExp) {\r\n const fromRegExp = Reflect.get(regExp, key);\r\n return {\r\n fromInstance: Reflect.get(target, key),\r\n fromRegExpMethod: isOfType(fromRegExp, Function) ? fromRegExp.bind(target.re) : target.re[key]\r\n }\r\n}\r\n\r\nfunction getterTrap(regExp) {\r\n return {\r\n get(target, key) {\r\n const {fromInstance, fromRegExpMethod} = maybeProp(target, key, regExp);\r\n switch (true) {\r\n case !!fromInstance: return fromInstance;\r\n default: return fromRegExpMethod;\r\n }\r\n },\r\n };\r\n}\r\n\r\nfunction clone(instance) {\r\n const source = instance.re.source;\r\n const flags = hasLength(instance.re.flags) ? [...instance.re.flags] : [];\r\n return instanceCreator`${source} ${flags}`;\r\n}\r\n\r\nfunction cleanupFlags(flags, currentFlags) {\r\n currentFlags = (currentFlags ?? ``).replace(/^-r\\|/, ``);\r\n flags = currentFlags.concat(isOfType(flags, String) && hasLength(flags) ? flags : ``);\r\n return [...new Set([...flags])].join(``).replace(/[^dgimsuvy]/g, ``);\r\n}\r\n\r\nfunction modifyFlags(flags, regExp) {\r\n switch (true) {\r\n case !isOfType(flags, String) || !hasLength(flags): return regExp;\r\n case flags === `-r`: return regExp = new RegExp(regExp.source);\r\n case flags.startsWith(`-r|`): return regExp = new RegExp(regExp.source, cleanupFlags(flags));\r\n default: return regExp = new RegExp(regExp.source, cleanupFlags(regExp.flags, flags));\r\n }\r\n}\r\n\r\nfunction escape4RE(string2Escape) {\r\n switch (true) {\r\n case string2Escape?.constructor !== String || !hasLength(string2Escape): return ``;\r\n case !!RegExp.escape: return RegExp.escape(string2Escape);\r\n default: return (`\\\\x${string2Escape.at(0)}` +\r\n string2Escape.slice(1).replace(/\\p{S}|\\p{P}/gu, a => `\\\\${a}`))\r\n .replace(/ |\\\\x /g, `\\\\x20`); }\r\n}\r\n\r\nfunction cleanup(str) {\r\n return str\r\n .replace(/\\/\\*(?:[^*]|\\*+[^*\\/])*\\*+\\/|(?<!:|\\\\\\|')\\/\\/.*/gm, ``)\r\n .replace(/\\s/g, ``)\r\n .trim().replace(/<!([^>]\\d+)>/g, (a, b) => String.fromCharCode(+b) ?? a);\r\n}\r\n", "const { randomString, uuid4 } = randomStringGeneratorFactory();\r\nexport { randomString as default, randomString, uuid4 };\r\n\r\nfunction randomStringGeneratorFactory() {\r\n const hasCrypto = checkBrowserCrypto();\r\n const getRandomValue = () => hasCrypto\r\n ? [...crypto.getRandomValues(new Uint32Array(1))].shift() / 2**32\r\n : Math.random();\r\n const randomNr = ({min = 0, max = Number.MAX_SAFE_INTEGER} = {}) =>\r\n Math.floor( getRandomValue() * (max - min + 1) + min );\r\n const range = (start = 0, len = 10, reMap) => (reMap || []) instanceof Function\r\n ? [...Array(len)].map((_, i) => start + i).map(reMap)\r\n : [...Array(len)].map((_, i) => start + i);\r\n const map2Chrs = v => String.fromCharCode(v);\r\n const symbols = `!?@#$%^&*=+_;-`.split(``);\r\n const symRE = RegExp(`[${symbols.map(v => `\\\\${v}`).join(``)}]`, `g`);\r\n const shuffle = array => {\r\n let i = array.length;\r\n while (i--) {\r\n const ri = randomNr( { max: i } );\r\n [array[i], array[ri]] = [array[ri], array[i]];\r\n }\r\n\r\n return array;\r\n };\r\n const UC = shuffle(range(65, 26, map2Chrs));\r\n const LC = shuffle(range(97, 26, map2Chrs));\r\n const UCLC = shuffle(UC.concat(LC));\r\n const allChars = { UCLC, UC, LC, Nrs: shuffle(range()), Sym: shuffle(symbols), };\r\n const getChars2Use = use => Object.entries(use)\r\n .reduce( (acc, [key, value]) => value ? [...acc, ...allChars[key]] : acc, LC );\r\n\r\n function checkBrowserCrypto() {\r\n try { return window && `crypto` in window }\r\n catch(_) { return false; }\r\n }\r\n\r\n function uuid4() {\r\n // Note: randomUUID only in secure context (https)\r\n return hasCrypto && crypto.randomUUID\r\n ? crypto.randomUUID()\r\n : [...new Uint8Array(16)]\r\n .map(_ => randomNr({max: 255}))\r\n .map( (v, i) => `${\r\n (i === 8 ? v & 0b00111111 | 0b10000000 : i === 6 ? v & 0b00001111 | 0b01000000 : v)\r\n .toString(16).padStart(2, `0`)}${~[3,5,7,9].indexOf(i) ? `-` : ``}` )\r\n .join(``);\r\n }\r\n\r\n function strTest(strFound, numbers, symbols) {\r\n return /[a-z]/i.test(strFound) && (\r\n numbers && symbols ? /\\d/.test(strFound) && symRE.test(strFound)\r\n : numbers ? /\\d/.test(strFound)\r\n : symbols ? symRE.test(strFound)\r\n : true);\r\n }\r\n\r\n function alphaSwap(strFound) {\r\n const chars = [...strFound];\r\n const idx = chars.findIndex(v => /[a-z]/i.test(v));\r\n [chars[0], chars[idx]] = [chars[idx], chars[0]];\r\n return chars.join(``);\r\n }\r\n\r\n function randomString( {len = 12, includeUppercase = true, includeNumbers, includeSymbols, startAlphabetic} = {} ) {\r\n len = len < 6 ? 6 : len;\r\n let chrs2Use = shuffle( getChars2Use( { UC: includeUppercase, Nrs: includeNumbers, Sym: includeSymbols } ) );\r\n\r\n while (chrs2Use.length < len) { chrs2Use = [...chrs2Use, ...shuffle(chrs2Use)]; }\r\n\r\n let strFound = chrs2Use.slice(0, len).join(``);\r\n\r\n if (!(includeNumbers || includeSymbols)) { return strFound; }\r\n\r\n for (let i = 0; i < chrs2Use.length; i += 1) {\r\n strFound = chrs2Use.slice(i, i + len).join(``);\r\n\r\n if (strTest(strFound, includeNumbers, includeSymbols)) {\r\n return startAlphabetic && !/^[a-z]/i.test(strFound) ? alphaSwap(strFound) : strFound;\r\n }\r\n }\r\n\r\n return randomString({len, includeUppercase, includeNumbers, includeSymbols, startAlphabetic});\r\n }\r\n\r\n return { randomString, uuid4 };\r\n}\r\n", "import interpolate from \"./factories/splatESBundle.js\";\r\nimport createRegExp from \"./Factories/regExpFromMultilineStringFactory.js\";\r\nimport {default as randomString, uuid4} from \"./Factories/randomStringFactory.js\";\r\nimport {CustomStringConstructor} from \"./CTORCreator.js\";\r\nimport {parseCamelcase, parseKebabCase, parseSnakeCase, ucFirst, wordsFirstUp} from \"./instanceMethods.js\";\r\nconst quotingStyles = defineQuotingStyles();\r\nconst deprecatedRE = /symbol|anchor|big|blink|bold|fixed|fontsize|fontcolor|italics|link|small|strike|sup|sub/i\r\n\r\nexport {\r\n capitalizerFactory, createExtendedCTOR, createRegExp, defineQuotingStyles,\r\n deprecatedRE, getStringValue, getTraps, escape4RE as escapeRE, infoValue,\r\n interpolate, isArrayOf, isNumber, maybeInjectCustomMethods, randomString,\r\n resolveTemplateString, retrieveQuotInfo, quotGetters4Instance, quotingStyles, uuid4,\r\n};\r\n\r\nfunction defineQuotingStyles() {\r\n // see https://en.wikipedia.org/wiki/Quotation_mark\r\n const quots = {\r\n backtick: [\"`\", \"`\"],\r\n parentheses: [`(`, `)`],\r\n curlyBrackets: [`{`, `}`],\r\n curlyDoubleInward: [`\u201D`, `\u201C`],\r\n curlyDouble: [`\u201C`, `\u201D`],\r\n curlyDoubleEqual: [`\u201C`, `\u201C`],\r\n curlyLHDouble: [`\u201E`, `\u201D`],\r\n curlyLHDoubleInward: [`\u201E`, `\u201C`],\r\n curlyLHSingle: [`\u201A`, `\u2019`],\r\n curlyLHSingleInward: [`\u201A`, `\u2018`],\r\n curlySingle: [`\u201B`, `\u2019`],\r\n curlySingleEqual: [`\u201B`, `\u201B`],\r\n curlySingleInward: [`\u2019`, `\u201B`],\r\n double: [`\"`, `\"`],\r\n guillemets: [`\u00AB`, `\u00BB`],\r\n guillemetsInward: [`\u00BB`, `\u00AB`],\r\n guillemetsSingle: [`\u2039`, `\u203A`],\r\n guillemetsSingleInward: [`\u203A`, `\u2039`],\r\n single: [`'`, `'`],\r\n squareBrackets: [`[`, `]`],\r\n };\r\n quots.re = new RegExp(`[${\r\n escape4RE([...new Set(\r\n Object.values(quots)\r\n .filter(v => Array.isArray(v))\r\n .flat())].join(``))\r\n }]`, \"g\");\r\n return quots;\r\n}\r\n\r\nfunction escape4RE(str2Escape) {\r\n return str2Escape.replace(/\\p{S}|\\p{P}/gu, a => `\\\\${a}`);\r\n}\r\n\r\nfunction getStringValue(string) {\r\n return string?.value || (string?.constructor === String && string) || ``;\r\n}\r\n\r\nfunction isArrayOf(type, value, includeInstances = true) {\r\n return Array.isArray(value) && value.length > 0 &&\r\n !value.find(v => checkType(type, v, includeInstances));\r\n}\r\n\r\nfunction isNumber(value) {\r\n return value?.constructor === Number && !Number.isNaN(value);\r\n}\r\n\r\nfunction infoValue(key, infoValue) {\r\n return `${key} (${infoValue})`;\r\n}\r\n\r\nfunction checkType(type, item, includeInstances) {\r\n return type === String && includeInstances\r\n ? item?.constructor !== CustomStringConstructor && item?.constructor !== type\r\n : item?.constructor !== type;\r\n}\r\n\r\nfunction resolveTemplateString(str, ...args) {\r\n return str?.raw\r\n ? String.raw({ raw: str }, ...args)\r\n : getStringValue(str).length ? str : \"\";\r\n}\r\n\r\nfunction canWrapNative(key) {\r\n return !deprecatedRE.test(key) && Object.hasOwn(String.prototype, key);\r\n}\r\n\r\nfunction getTraps({customStringProperties, maybeRevalueNative}) {\r\n return {\r\n get( target, key ) {\r\n switch(true) {\r\n case key === Symbol.for(\"type\"): return `StringWeaver instance (Proxy)`;\r\n case Object.hasOwn(customStringProperties, key): return customStringProperties[key];\r\n case canWrapNative(String(key)): return maybeRevalueNative(key);\r\n default: return maybeRevalueNative(key);\r\n }\r\n },\r\n };\r\n}\r\n\r\nfunction retrieveQuotInfo(instanceQuotGetters4Info, ctor) {\r\n return Object.entries(Object.getOwnPropertyDescriptors(instanceQuotGetters4Info.value))\r\n .sort( (a,b) => a[0].localeCompare(b[0]) )\r\n .reduce((acc, [k,]) => {\r\n if (k === `remove`) { return [...acc, `[instance].quote.remove (only predefined)`]; }\r\n if (k === `custom`) { return [...acc, `[instance].quote.custom(start:string, end:string)`]; }\r\n\r\n const val = ctor(`[instance]`).quote[k];\r\n return [...acc, `[instance].quote.${k} ( ${val} )`];\r\n }, []);\r\n}\r\n\r\nfunction quotGetters4Instance(instance, wrap) {\r\n wrap = wrap ?? function(me) { return me; };\r\n\r\n return {\r\n value: {\r\n get backtick() { return instance.enclose(...quotingStyles.backtick); },\r\n get parentheses() { return instance.enclose(...quotingStyles.parentheses); },\r\n get curlyBrackets() { return instance.enclose(...quotingStyles.curlyBrackets); },\r\n get curlyDouble() { return instance.enclose(...quotingStyles.curlyDouble); },\r\n get curlyDoubleInward() { return instance.enclose(...quotingStyles.curlyDoubleInward); },\r\n get curlyDoubleEqual() { return instance.enclose(...quotingStyles.curlyDoubleEqual); },\r\n get curlyLHDoubleInward() { return instance.enclose(...quotingStyles.curlyLHDoubleInward); },\r\n get curlyLHSingle() { return instance.enclose(...quotingStyles.curlyLHSingle); },\r\n get curlyLHSingleInward() { return instance.enclose(...quotingStyles.curlyLHSingleInward); },\r\n get curlySingle() { return instance.enclose(...quotingStyles.curlySingle); },\r\n get curlySingleEqual() { return instance.enclose(...quotingStyles.curlySingleEqual); },\r\n get curlySingleInward() { return instance.enclose(...quotingStyles.curlySingleInward); },\r\n get custom() { return (start, end) => instance.enclose(...[start, end ?? start]); },\r\n get double() { return instance.enclose(...quotingStyles.double); },\r\n get guillemets() { return instance.enclose(...quotingStyles.guillemets); },\r\n get guillemetsInward() { return instance.enclose(...quotingStyles.guillemetsInward); },\r\n get guillemetsSingle() { return instance.enclose(...quotingStyles.guillemetsSingle); },\r\n get guillemetsSingleInward() { return instance.enclose(...quotingStyles.guillemetsSingleInward); },\r\n get remove() { return wrap(`${instance.value.replace(quotingStyles.re, ``)}`); },\r\n get single() { return instance.enclose(...quotingStyles.single); },\r\n get squareBrackets() { return instance.enclose(...quotingStyles.squareBrackets); },\r\n },\r\n enumerable: false,\r\n configurable: false,\r\n };\r\n}\r\n\r\nfunction capitalizerFactory(instance, wrap) {\r\n return {\r\n get full() {\r\n return wrap(instance.value.toUpperCase());\r\n },\r\n get none() {\r\n return wrap(instance.value.toLowerCase());\r\n },\r\n get camel() {\r\n return wrap(parseCamelcase(instance.value));\r\n },\r\n get snake() {\r\n return wrap(parseSnakeCase(instance.value));\r\n },\r\n get first() {\r\n return wrap(ucFirst(instance.value));\r\n },\r\n get kebab() {\r\n return wrap(parseKebabCase(instance.value));\r\n },\r\n get words() {\r\n return wrap(wordsFirstUp(instance.value));\r\n },\r\n get dashed() {\r\n return wrap(parseKebabCase(instance.value));\r\n },\r\n }\r\n}\r\n\r\nfunction createExtendedCTOR(ctor, customMethods) {\r\n const quoteInfo = retrieveQuotInfo(quotGetters4Instance(ctor()), ctor);\r\n const swInfo = () =>\r\n getSWInformation(`constructor,history,indexOf,toString,value,valueOf,empty`.split(`,`), customMethods);\r\n Symbol.toSB = Symbol(`toStringBuilder`);\r\n Object.defineProperty(\r\n String.prototype,\r\n Symbol.toSB, {\r\n get() { return ctor(this); },\r\n enumerable: false,\r\n configurable: false\r\n }\r\n );\r\n\r\n Object.defineProperties(ctor, {\r\n create: {\r\n get() { return ctor(); },\r\n enumerable: false\r\n },\r\n constructor: {\r\n get() { return ctor; },\r\n enumerable: false,\r\n },\r\n format: {\r\n value(str, ...tokens) {\r\n return CustomStringConstructor(str).format(...tokens);\r\n }\r\n },\r\n addCustom: {\r\n value( { name, method, enumerable = false, isGetter = false } = {} ) {\r\n if (CustomStringConstructor``[name]) {\r\n console.error(`addCustom: the property \"${name}\" exists and can not be redefined`);\r\n return `addCustom: the property \"${name}\" exists and can not be redefined`;\r\n }\r\n\r\n if (typeof name === `string` && typeof method === `function` && method.length > 0) {\r\n customMethods[name] = {method, enumerable, isGetter};\r\n return `addCustom: the ${isGetter ? `getter` : `method`} named \"${name}\" is added`;\r\n }\r\n }\r\n },\r\n info: { get() { return swInfo(); } },\r\n keys: {\r\n get() {\r\n return Object.keys(Object.getOwnPropertyDescriptors(CustomStringConstructor``))\r\n .sort( (a,b) => a.localeCompare(b) )\r\n .map(v => !/constructor|toString|valueOf/.test(v) && Object.hasOwn(customMethods, v) ? `${v} *custom*` : v);\r\n }\r\n },\r\n quoteInfo: { value: quoteInfo },\r\n uuid4: { get() { return CustomStringConstructor(uuid4()); } },\r\n randomString: {\r\n value: function({len, includeUppercase, includeNumbers, includeSymbols, startAlphabetic} = {}) {\r\n return CustomStringConstructor(randomString({len, includeUppercase, includeNumbers, includeSymbols, startAlphabetic}));\r\n }\r\n },\r\n regExp: { value: createRegExp }\r\n });\r\n}\r\n\r\nfunction maybeInjectCustomMethods(specs) {\r\n const {customMethods, instance, reValue, customStringProperties} = specs;\r\n\r\n return Object.entries(customMethods).length < 1\r\n ? true\r\n : Object.entries(customMethods).forEach(([methodName, methodContainer]) => {\r\n const {enumerable, method, isGetter} = methodContainer;\r\n const descriptor = isGetter\r\n ? { get() { return reValue(method(instance).value); }, enumerable }\r\n : { value(...args) { return reValue(method(instance, ...args).value); }, enumerable };\r\n\r\n Object.defineProperty(customStringProperties, methodName, descriptor);\r\n });\r\n}\r\n\r\nfunction getSWInformation(notChainable, customMethods) {\r\n const firstLines = CustomStringConstructor(getInfoPrefix());\r\n const plainValues = getPlainValues();\r\n\r\n return firstLines.split(/\\n/)\r\n .concat(\r\n Object.entries(Object.getOwnPropertyDescriptors(firstLines))\r\n .sort(([keyA], [keyB]) => keyA.localeCompare(keyB))\r\n .map(([key, descriptr]) => {\r\n const isChainable = !notChainable.find(k => k === key);\r\n const isGetter = Object.hasOwn(descriptr, `get`);\r\n const isMethod = Object.hasOwn(descriptr, `value`);\r\n const isNative = Object.hasOwn(String.prototype, key);\r\n const isPlainValue = !isNative && Object.hasOwn(plainValues, key);\r\n const custom = Object.hasOwn(customMethods, key) ? ` *custom*` : ``;\r\n const getter = isGetter && isChainable ? `chainable getter${custom}` : `getter`;\r\n const method = isMethod && isChainable ? `chainable method${custom}` : `method`;\r\n const native = isNative && `${descriptr.get ? `getter` : `method`} (override)`;\r\n\r\n switch (true) {\r\n case isPlainValue: return infoValue(key, plainValues[key]);\r\n case isNative: return infoValue(key, native);\r\n case isMethod: return infoValue(key, method);\r\n case isGetter: return infoValue(key, getter);\r\n }\r\n }\r\n )\r\n );\r\n}\r\n\r\nfunction getPlainValues() {\r\n const capitalizerKeys = Object.keys(capitalizerFactory());\r\n return {\r\n value: `getter/setter`,\r\n clone: `chainable getter`,\r\n notEmpty: `chainable getter|undefined`,\r\n quote: `Object. See [constructor].quoteInfo`,\r\n capitalize: `getter. Object with chainable getters: [${capitalizerKeys.join(`, `)}]`,\r\n };\r\n}\r\n\r\nfunction getInfoPrefix() {\r\n return atob(\r\n `Rm9yIHRoZSByZWNvcmQ6CltjbV0gY2hhaW5hYmxlIGdldHRlcnMvbWV0aG9kcyBtb2RpZnkgdGhlIGluc3RhbmNlIHN0cmluZwpbY21d`+\r\n `IGluZGV4T2Ygb3ZlcnJpZGVzIHJldHVybnMgW3VuZGVmaW5lZF0gaWYgbm90aGluZyB3YXMgZm91bmQgKHNvIG9uZSBjYW4gdXNlIFtsYXN0`+\r\n `SV1pbmRleE9mKFtzb21lIHN0cmluZyB2YWx1ZV0pID8/IDAKW2NtXSBpbmNsdWRlcyBpbmZvcm1hdGlvbiBmb3IgY3VzdG9tIG1ldGhv`+\r\n `ZHMvZ2V0dGVycyBpZiBhcHBsaWNhYmxl`).replace(/\\[cm]/g, `\\u2714`);\r\n}\r\n", "import { customMethods, clone, } from \"./CTORCreator.js\";\r\n\r\nimport {\r\n createRegExp as $RE, getStringValue, isArrayOf, interpolate,\r\n isNumber, escapeRE, quotGetters4Instance as quotGetters,\r\n} from \"./helpers.js\";\r\n\r\nexport {\r\n format,\r\n ucFirst,\r\n truncate,\r\n trimAll,\r\n replaceWords,\r\n indexOf,\r\n lastIndexOf,\r\n insert,\r\n append,\r\n isNumber,\r\n prefix,\r\n getStringValue,\r\n parseCamelcase,\r\n wordsFirstUp,\r\n parseKebabCase,\r\n parseSnakeCase,\r\n quotGetters,\r\n surroundWith,\r\n customMethods,\r\n clone,\r\n trim,\r\n};\r\n\r\nfunction checkAndRun(string, fn, or) {\r\n string = getStringValue(string);\r\n return string.length > 0 ? fn(string) : or || string;\r\n}\r\n\r\nfunction format(string, ...tokens) {\r\n return checkAndRun(string, () => `${interpolate(string, ...tokens)}`);\r\n}\r\n\r\nfunction surroundWith(string, start, end) {\r\n if (!start && !end) {\r\n return string;\r\n }\r\n [start, end] = isArrayOf(String, [start, end ?? ``]) ? [start, end] : [``, ``];\r\n return `${start}${string}${end || start}`;\r\n}\r\n\r\nfunction ucFirst(string) {\r\n return checkAndRun(string, () => `${string[0].toUpperCase()}${string.slice(1).toLowerCase()}`);\r\n}\r\n\r\nfunction parseKebabCase(str) {\r\n let result = ``;\r\n\r\n for (const s of [...str]) {\r\n switch(true) {\r\n case !/[a-z _]/i.test(s): break;\r\n case /[ _]/.test(s): result += `-`; break;\r\n case s === s.toUpperCase(): result += `-${s.toLowerCase()}`; break;\r\n default: result += s;\r\n }\r\n }\r\n\r\n return result.replace(/-{2,}/g, `-`).replace(/^-|-$/g, ``);\r\n}\r\n\r\nfunction parseSnakeCase(str) {\r\n let result = ``;\r\n\r\n for (const s of [...str]) {\r\n switch(true) {\r\n case !/[a-z _-]/i.test(s): break;\r\n case /[ -]/.test(s): result += `_`; break;\r\n case s === s.toUpperCase(): result += `_${s.toLowerCase()}`; break;\r\n default: result += s;\r\n }\r\n }\r\n\r\n return result.replace(/_{2,}/g, `_`).replace(/^_|_$/g, ``);\r\n}\r\n\r\nfunction parseCamelcase(string) {\r\n return checkAndRun(string, () =>\r\n string.toLowerCase()\r\n .trim()\r\n .split(/[-\\s]/)\r\n .filter(l => l && l.length > 0)\r\n .map( (str, i) => i > 0 && `${ucFirst(str)}` || str)\r\n .join(``)\r\n );\r\n}\r\n\r\nfunction wordsFirstUp(string) {\r\n return checkAndRun(string, () => [...string.toLowerCase()].slice(1).reduce( (acc, v) =>\r\n acc + ( !/\\p{L}|[-']/u.test(acc.at(-1)) ? v.toUpperCase() : v.toLowerCase() ),\r\n string[0].toUpperCase()\r\n ));\r\n}\r\n\r\nfunction trim(string, start, end) {\r\n return checkAndRun(string, () => {\r\n if (!end && !start) { return string.trim(); }\r\n\r\n end = $RE.escape(end || start);\r\n start = $RE.escape(start);\r\n\r\n return string.replace($RE`^(${start})+ | (${end})+$`.flags(`gm`), ``);\r\n });\r\n}\r\n\r\nfunction getWordBoundary(string) {\r\n const match = [...string.matchAll(/\\p{Pe}|\\p{Z}/gu)].at(-1);\r\n return match?.index ?? string.length;\r\n}\r\n\r\nfunction truncate(string, {at, html = false, wordBoundary = false} = {} ) {\r\n html = html?.constructor === Boolean && html || false;\r\n wordBoundary = wordBoundary?.constructor === Boolean && wordBoundary || false;\r\n return checkAndRun(string, () => {\r\n if (string.length <= at) { return string; }\r\n\r\n const subString = string.slice(0, at - 1);\r\n const endwith = html ? \"&hellip;\" : `...`;\r\n const boundary = wordBoundary\r\n ? getWordBoundary(subString)\r\n : subString.length;\r\n\r\n return (wordBoundary\r\n ? subString.slice(0, boundary+1).trim()\r\n : subString) + endwith;\r\n }\r\n );\r\n}\r\n\r\nfunction trimAll(string, keepLines = false) {\r\n keepLines = keepLines?.constructor === Boolean && keepLines || false;\r\n return checkAndRun(string, () => {\r\n const lines = string.replace(/\\n/gm, `#LF#`)\r\n .split(/#LF#/)\r\n .map(line => line.trim().replace(/\\s{2,}/g, a => a[0]) );\r\n return keepLines\r\n ? lines.join(`#LF#`).replace(/#LF#/g, `\\n`).trim()\r\n : lines.filter(l => l.length > 0).join(`\\n`);\r\n });\r\n}\r\n\r\nfunction replaceWords(string, { replacements = {}, caseSensitive = false} = {}) {\r\n string = getStringValue(string);\r\n let replacements2Array = Object.entries(replacements).flat();\r\n const cando = isArrayOf(String, replacements2Array) && caseSensitive?.constructor === Boolean;\r\n const modifiers = `g${!caseSensitive ? 'i' : ''}`;\r\n\r\n if (!cando) { return string; }\r\n\r\n while (replacements2Array.length) {\r\n const [initial, replacement] = [replacements2Array.shift(), replacements2Array.shift()];\r\n const re = new RegExp(escapeRE(initial), modifiers);\r\n string = string.replace(re, replacement);\r\n }\r\n\r\n return string;\r\n}\r\n\r\n// SEE https://youtu.be/99Zacm7SsWQ?t=2101\r\nfunction indexOf(string, findMe, fromIndex = 0) {\r\n string = getStringValue(string);\r\n fromIndex = isNumber(fromIndex) && fromIndex || 0;\r\n const index = string.indexOf(findMe, fromIndex || 0);\r\n return index < 0 ? undefined : index;\r\n}\r\n\r\nfunction lastIndexOf(string, findMe, beforeIndex = 0) {\r\n string = getStringValue(string);\r\n beforeIndex = isNumber(beforeIndex) && beforeIndex || string.length;\r\n const index = string.lastIndexOf(findMe, beforeIndex);\r\n return index < 0 ? undefined : index;\r\n}\r\n\r\nfunction insert(string, { value, values, at = 0 } = {}) {\r\n string = getStringValue(string);\r\n at = isNumber(at) && at || 0;\r\n const valuesMaybeValue = getStringValue(values);\r\n values = getStringValue(value).length\r\n ? value\r\n : valuesMaybeValue.length\r\n ? valuesMaybeValue\r\n : isArrayOf(String, values)\r\n ? values.map(v => getStringValue(v)).join(``)\r\n : [];\r\n\r\n return values.length <= 1\r\n ? string\r\n : string.length === 0\r\n ? `${values}${string}`\r\n : `${string.slice(0, at)}${values}${string.slice(at)}`;\r\n}\r\n\r\nfunction prefix(string, ...strings) {\r\n strings = isArrayOf(String, strings) && strings;\r\n return strings ? insert(getStringValue(string), {values: strings, at: 0}) : getStringValue(string);\r\n}\r\n\r\nfunction append(string, ...strings2Append) {\r\n strings2Append = isArrayOf(String, strings2Append) && strings2Append;\r\n\r\n if (strings2Append && strings2Append.length > 0) {\r\n return `${getStringValue(string)}`.concat(strings2Append.join(``))\r\n }\r\n\r\n return getStringValue(string);\r\n}\r\n", "import {\r\n append, clone, customMethods, getStringValue, format, indexOf, insert, isNumber,\r\n lastIndexOf, parseCamelcase, parseKebabCase, parseSnakeCase, prefix, quotGetters,\r\n replaceWords, surroundWith, trim, trimAll, truncate, ucFirst, wordsFirstUp,\r\n} from \"./instanceMethods.js\";\r\n\r\nimport { capitalizerFactory, getTraps, maybeInjectCustomMethods } from \"./helpers.js\";\r\n\r\nexport default instanceCreator;\r\n\r\nfunction instanceCreator({initialstring} = {}) {\r\n let customStringProperties = Object.create(null, { });\r\n let instance = new Proxy(customStringProperties, getTraps({customStringProperties, maybeRevalueNative}));\r\n let actualValue = getStringValue(initialstring);\r\n let history = [actualValue];\r\n maybeInjectCustomMethods({customStringProperties, customMethods, instance, reValue});\r\n\r\n Object.defineProperties( customStringProperties, {\r\n // methods\r\n append: { value(...strings) { return reValue(append(actualValue, ...strings)); } },\r\n enclose: { value(start, end) { return reValue(surroundWith(actualValue, start, end)); } },\r\n format: { value(...tokens) { return reValue(format(actualValue, ...tokens)); } },\r\n indexOf: { value(str) { return indexOf(actualValue, str); } },\r\n interpolate: { value(...tokens) { return reValue(format(actualValue, ...tokens)); } },\r\n insert: { value({ value, values, at } = {}) {\r\n return reValue(insert(actualValue, { value, values, at }));\r\n }\r\n },\r\n lastIndexOf: { value(str) { return lastIndexOf(actualValue, str); } },\r\n prefix: { value(...strings) { return reValue(prefix(actualValue, ...strings)); } },\r\n replaceWords: { value({caseSensitive = false, replacements = {}} = {}) {\r\n return reValue(replaceWords(actualValue, { replacements: replacements ?? {}, caseSensitive }));\r\n } },\r\n toString: { value() { return actualValue; } },\r\n trim: {value(start, end) { return reValue(trim(actualValue, start, end)); } },\r\n truncate: { value({at, html = false, wordBoundary = false} = {}) {\r\n return reValue(truncate(actualValue, {at, html, wordBoundary})); } },\r\n valueOf: { value() { return actualValue; } },\r\n undoLast: { value(nSteps) { return undoSteps(nSteps); } },\r\n\r\n // getters\r\n camelCase: { get() { return reValue(parseCamelcase(getStringValue(actualValue))); } },\r\n capitalize: { value: capitalizerFactory(instance, reValue) },\r\n clone: { get() { return clone(instance, customMethods); } },\r\n firstUp: { get() { return reValue(ucFirst(getStringValue(actualValue))); } },\r\n history: { get() { return history; }, set(value) { history = value; } },\r\n empty: { get() { return actualValue.length < 1; } },\r\n notEmpty: { get() { return actualValue.length < 1 ? undefined : instance; } },\r\n kebabCase: { get() { return reValue(parseKebabCase(getStringValue(actualValue))); } },\r\n quote: quotGetters(instance, reValue),\r\n snakeCase: { get() { return reValue(parseSnakeCase(getStringValue(actualValue))); } },\r\n trimAll: { get() { return reValue(trimAll(actualValue)); } },\r\n trimAllKeepLF: { get() { return reValue(trimAll(actualValue, true)); } },\r\n undoAll: { get() { return undoAll(); } },\r\n undo: { get() { return undoLast(); } },\r\n wordsUCFirst: { get() { return reValue(wordsFirstUp(getStringValue(actualValue))); } },\r\n value: {\r\n get() { return actualValue; },\r\n set(value) {\r\n const nwValue = getStringValue(value);\r\n if (nwValue.length) {\r\n actualValue = nwValue;\r\n history.push(nwValue);\r\n }\r\n }\r\n },\r\n });\r\n\r\n return instance;\r\n\r\n function undoAll() {\r\n while (history.length > 1) { history.pop(); }\r\n actualValue = history.at(-1);\r\n return reValue(actualValue, false);\r\n }\r\n\r\n function undoSteps(steps) {\r\n if (!isNumber(steps)) {\r\n return reValue(actualValue, false);\r\n }\r\n\r\n const historyLen = history.length;\r\n\r\n if (steps >= historyLen || steps < 1) {\r\n history = history.slice(0, 1);\r\n actualValue = history.at(-1);\r\n return reValue(history.at(-1), false);\r\n }\r\n\r\n history = history.slice(0, historyLen - steps);\r\n\r\n actualValue = history.at(-1);\r\n return reValue(actualValue, false);\r\n }\r\n\r\n function undoLast() {\r\n if (history.length === 1) {\r\n return reValue(history[0]);\r\n }\r\n\r\n history.pop();\r\n actualValue = history.at(-1);\r\n return reValue(actualValue, false);\r\n }\r\n\r\n function maybeRevalueNative(key) {\r\n return typeof actualValue[key] === `function`\r\n ? function(...args) {\r\n const result = actualValue[key](...args);\r\n return typeof result === `string` ? reValue(actualValue[key](...args)) : result;\r\n }\r\n : actualValue[key];\r\n }\r\n\r\n function reValue(result, push2History = true) {\r\n const changed = actualValue !== result;\r\n changed && push2History && history.push(result);\r\n actualValue = result;\r\n return instance;\r\n }\r\n}\r\n", "import createInstance from \"./instanceCreator.js\";\r\nimport { createExtendedCTOR, resolveTemplateString, } from \"./helpers.js\";\r\nconst customMethods = Object.create(null, {});\r\n\r\nexport { customMethods, CustomStringConstructor, clone, };\r\n\r\ncreateExtendedCTOR(CustomStringConstructor, customMethods);\r\n\r\nfunction CustomStringConstructor(str, ...args) {\r\n const instance = createInstance({initialstring: resolveTemplateString(str, ...args)});\r\n Object.defineProperty( instance,\r\n `constructor`, { get() { return CustomStringConstructor; }, enumerable: false}\r\n );\r\n return Object.freeze(instance);\r\n}\r\n\r\nfunction clone(instance) {\r\n const newInstance = CustomStringConstructor(instance.value);\r\n newInstance.history = [...instance.history];\r\n return newInstance;\r\n}\r\n", "import { CustomStringConstructor as defaultStringCTOR} from \"./src/CTORCreator.js\";\r\n\r\nexport default defaultStringCTOR;\r\n"],
5
+ "mappings": "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",
6
+ "names": ["IS", "typeCheckFactory", "interpolateDefault", "interpolateFactory", "interpolateClear", "interpolateFactory", "defaultReplacer", "specs", "useSymbolicExtensions", "IS", "addSymbolicStringExtensions", "str", "tokens", "interpolate", "processTokens", "invalidate", "key", "keyExists", "replacement", "token", "isValid", "getReplacerLambda", "args", "replacementObject", "a", "replace", "convertTokensFromArrayValues", "tokenObject", "converted", "value", "i", "isMultiLineWithArrays", "injected", "interpolateDefault", "interpolateClear", "typeCheckFactory", "collate", "nameOf", "type2Check", "checkSingleType", "obj", "checkType", "chkType", "regExpFromMultilineStringFactory_default", "instanceCreator", "escape4RE", "regExStr", "args", "flags", "cleanedArgs", "maybeFlags", "createInstance", "cleanup", "createRegExpStringFromInput", "hasLength", "a", "v", "i", "cleanupFlags", "getFlags", "isOfType", "regExp", "instance", "modifyFlags", "clone", "getterTrap", "variable", "any", "CTOR", "maybeProp", "target", "key", "fromRegExp", "fromInstance", "fromRegExpMethod", "source", "currentFlags", "string2Escape", "str", "b", "randomString", "uuid4", "randomStringGeneratorFactory", "randomStringGeneratorFactory", "hasCrypto", "checkBrowserCrypto", "getRandomValue", "randomNr", "min", "max", "range", "start", "len", "reMap", "_", "i", "map2Chrs", "v", "symbols", "symRE", "shuffle", "array", "ri", "UC", "LC", "allChars", "getChars2Use", "use", "acc", "key", "value", "uuid4", "strTest", "strFound", "numbers", "alphaSwap", "chars", "idx", "randomString", "includeUppercase", "includeNumbers", "includeSymbols", "startAlphabetic", "chrs2Use", "quotingStyles", "defineQuotingStyles", "deprecatedRE", "defineQuotingStyles", "quots", "escape4RE", "v", "str2Escape", "a", "getStringValue", "string", "isArrayOf", "type", "value", "includeInstances", "checkType", "isNumber", "infoValue", "key", "item", "CustomStringConstructor", "resolveTemplateString", "str", "args", "canWrapNative", "deprecatedRE", "getTraps", "customStringProperties", "maybeRevalueNative", "target", "retrieveQuotInfo", "instanceQuotGetters4Info", "ctor", "b", "acc", "k", "val", "quotGetters4Instance", "instance", "wrap", "me", "quotingStyles", "start", "end", "capitalizerFactory", "parseCamelcase", "parseSnakeCase", "ucFirst", "parseKebabCase", "wordsFirstUp", "createExtendedCTOR", "customMethods", "quoteInfo", "swInfo", "getSWInformation", "tokens", "name", "method", "enumerable", "isGetter", "uuid4", "len", "includeUppercase", "includeNumbers", "includeSymbols", "startAlphabetic", "randomString", "regExpFromMultilineStringFactory_default", "maybeInjectCustomMethods", "specs", "reValue", "methodName", "methodContainer", "notChainable", "firstLines", "getInfoPrefix", "plainValues", "getPlainValues", "keyA", "keyB", "descriptr", "isChainable", "isMethod", "isNative", "isPlainValue", "custom", "getter", "native", "checkAndRun", "string", "fn", "or", "getStringValue", "format", "tokens", "interpolateDefault", "surroundWith", "start", "end", "isArrayOf", "ucFirst", "parseKebabCase", "str", "result", "s", "parseSnakeCase", "parseCamelcase", "l", "i", "wordsFirstUp", "acc", "v", "trim", "regExpFromMultilineStringFactory_default", "getWordBoundary", "truncate", "at", "html", "wordBoundary", "subString", "endwith", "boundary", "trimAll", "keepLines", "lines", "line", "a", "replaceWords", "replacements", "caseSensitive", "replacements2Array", "cando", "modifiers", "initial", "replacement", "re", "escape4RE", "indexOf", "findMe", "fromIndex", "isNumber", "index", "lastIndexOf", "beforeIndex", "insert", "value", "values", "valuesMaybeValue", "prefix", "strings", "append", "strings2Append", "instanceCreator_default", "instanceCreator", "initialstring", "customStringProperties", "instance", "getTraps", "maybeRevalueNative", "actualValue", "getStringValue", "history", "maybeInjectCustomMethods", "customMethods", "reValue", "strings", "append", "start", "end", "surroundWith", "tokens", "format", "str", "indexOf", "value", "values", "at", "insert", "lastIndexOf", "prefix", "caseSensitive", "replacements", "replaceWords", "trim", "html", "wordBoundary", "truncate", "nSteps", "undoSteps", "parseCamelcase", "capitalizerFactory", "clone", "ucFirst", "parseKebabCase", "quotGetters4Instance", "parseSnakeCase", "trimAll", "undoAll", "undoLast", "wordsFirstUp", "nwValue", "steps", "isNumber", "historyLen", "key", "args", "result", "push2History", "customMethods", "createExtendedCTOR", "CustomStringConstructor", "customMethods", "str", "args", "instance", "instanceCreator_default", "resolveTemplateString", "clone", "newInstance", "index_default", "CustomStringConstructor"]
7
7
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stringweaver",
3
3
  "type": "module",
4
- "version": "1.4.5",
4
+ "version": "1.4.6",
5
5
  "private": false,
6
6
  "main": "./index.js",
7
7
  "sideEffects": false,
package/src/helpers.js CHANGED
@@ -8,9 +8,9 @@ const deprecatedRE = /symbol|anchor|big|blink|bold|fixed|fontsize|fontcolor|ital
8
8
 
9
9
  export {
10
10
  capitalizerFactory, createExtendedCTOR, createRegExp, defineQuotingStyles,
11
- deprecatedRE, getStringValue, escape4RE as escapeRE, infoValue, interpolate, isArrayOf,
12
- isNumber, randomString, resolveTemplateString, retrieveQuotInfo, quotGetters4Instance,
13
- quotingStyles, uuid4,
11
+ deprecatedRE, getStringValue, getTraps, escape4RE as escapeRE, infoValue,
12
+ interpolate, isArrayOf, isNumber, maybeInjectCustomMethods, randomString,
13
+ resolveTemplateString, retrieveQuotInfo, quotGetters4Instance, quotingStyles, uuid4,
14
14
  };
15
15
 
16
16
  function defineQuotingStyles() {
@@ -79,6 +79,23 @@ function resolveTemplateString(str, ...args) {
79
79
  : getStringValue(str).length ? str : "";
80
80
  }
81
81
 
82
+ function canWrapNative(key) {
83
+ return !deprecatedRE.test(key) && Object.hasOwn(String.prototype, key);
84
+ }
85
+
86
+ function getTraps({customStringProperties, maybeRevalueNative}) {
87
+ return {
88
+ get( target, key ) {
89
+ switch(true) {
90
+ case key === Symbol.for("type"): return `StringWeaver instance (Proxy)`;
91
+ case Object.hasOwn(customStringProperties, key): return customStringProperties[key];
92
+ case canWrapNative(String(key)): return maybeRevalueNative(key);
93
+ default: return maybeRevalueNative(key);
94
+ }
95
+ },
96
+ };
97
+ }
98
+
82
99
  function retrieveQuotInfo(instanceQuotGetters4Info, ctor) {
83
100
  return Object.entries(Object.getOwnPropertyDescriptors(instanceQuotGetters4Info.value))
84
101
  .sort( (a,b) => a[0].localeCompare(b[0]) )
@@ -154,7 +171,8 @@ function capitalizerFactory(instance, wrap) {
154
171
 
155
172
  function createExtendedCTOR(ctor, customMethods) {
156
173
  const quoteInfo = retrieveQuotInfo(quotGetters4Instance(ctor()), ctor);
157
- const swInfo = () => getSWInformation(`constructor,history,indexOf,toString,value,valueOf,empty`.split(`,`), customMethods);
174
+ const swInfo = () =>
175
+ getSWInformation(`constructor,history,indexOf,toString,value,valueOf,empty`.split(`,`), customMethods);
158
176
  Symbol.toSB = Symbol(`toStringBuilder`);
159
177
  Object.defineProperty(
160
178
  String.prototype,
@@ -209,8 +227,21 @@ function createExtendedCTOR(ctor, customMethods) {
209
227
  },
210
228
  regExp: { value: createRegExp }
211
229
  });
230
+ }
231
+
232
+ function maybeInjectCustomMethods(specs) {
233
+ const {customMethods, instance, reValue, customStringProperties} = specs;
234
+
235
+ return Object.entries(customMethods).length < 1
236
+ ? true
237
+ : Object.entries(customMethods).forEach(([methodName, methodContainer]) => {
238
+ const {enumerable, method, isGetter} = methodContainer;
239
+ const descriptor = isGetter
240
+ ? { get() { return reValue(method(instance).value); }, enumerable }
241
+ : { value(...args) { return reValue(method(instance, ...args).value); }, enumerable };
212
242
 
213
- return;
243
+ Object.defineProperty(customStringProperties, methodName, descriptor);
244
+ });
214
245
  }
215
246
 
216
247
  function getSWInformation(notChainable, customMethods) {
@@ -1,78 +1,60 @@
1
1
  import {
2
- format,
3
- ucFirst,
4
- truncate,
5
- trimAll,
6
- replaceWords,
7
- indexOf,
8
- lastIndexOf,
9
- insert,
10
- append,
11
- prefix,
12
- getStringValue,
13
- quotGetters,
14
- surroundWith,
15
- parseCamelcase,
16
- wordsFirstUp,
17
- parseKebabCase,
18
- parseSnakeCase,
19
- customMethods,
20
- isNumber,
21
- clone,
22
- trim,
2
+ append, clone, customMethods, getStringValue, format, indexOf, insert, isNumber,
3
+ lastIndexOf, parseCamelcase, parseKebabCase, parseSnakeCase, prefix, quotGetters,
4
+ replaceWords, surroundWith, trim, trimAll, truncate, ucFirst, wordsFirstUp,
23
5
  } from "./instanceMethods.js";
24
6
 
25
- import { capitalizerFactory, deprecatedRE } from "./helpers.js";
7
+ import { capitalizerFactory, getTraps, maybeInjectCustomMethods } from "./helpers.js";
26
8
 
27
9
  export default instanceCreator;
28
10
 
29
11
  function instanceCreator({initialstring} = {}) {
30
- let customStringExtensions = Object.create(null, { });
31
- let instance = new Proxy(customStringExtensions, getTraps(customStringExtensions));
12
+ let customStringProperties = Object.create(null, { });
13
+ let instance = new Proxy(customStringProperties, getTraps({customStringProperties, maybeRevalueNative}));
32
14
  let actualValue = getStringValue(initialstring);
33
15
  let history = [actualValue];
34
- const defaultDescriptorProps = {configurable: false, enumerable: false};
16
+ maybeInjectCustomMethods({customStringProperties, customMethods, instance, reValue});
35
17
 
36
- Object.defineProperties( customStringExtensions, {
18
+ Object.defineProperties( customStringProperties, {
37
19
  // methods
38
- append: { ...defaultDescriptorProps, value(...strings) { return wrap(append(actualValue, ...strings)); } },
39
- enclose: { ...defaultDescriptorProps, value(start, end) { return wrap(surroundWith(actualValue, start, end)); } },
40
- format: { ...defaultDescriptorProps, value(...tokens) { return wrap(format(actualValue, ...tokens)); } },
41
- indexOf: { ...defaultDescriptorProps, value(str) { return indexOf(actualValue, str); } },
42
- interpolate: { ...defaultDescriptorProps, value(...tokens) { return wrap(format(actualValue, ...tokens)); } },
43
- insert: { ...defaultDescriptorProps, value({ value, values, at } = {}) {
44
- return wrap(insert(actualValue, { value, values, at }));
20
+ append: { value(...strings) { return reValue(append(actualValue, ...strings)); } },
21
+ enclose: { value(start, end) { return reValue(surroundWith(actualValue, start, end)); } },
22
+ format: { value(...tokens) { return reValue(format(actualValue, ...tokens)); } },
23
+ indexOf: { value(str) { return indexOf(actualValue, str); } },
24
+ interpolate: { value(...tokens) { return reValue(format(actualValue, ...tokens)); } },
25
+ insert: { value({ value, values, at } = {}) {
26
+ return reValue(insert(actualValue, { value, values, at }));
45
27
  }
46
28
  },
47
- lastIndexOf: { ...defaultDescriptorProps, value(str) { return lastIndexOf(actualValue, str); } },
48
- prefix: { ...defaultDescriptorProps, value(...strings) { return wrap(prefix(actualValue, ...strings)); } },
49
- replaceWords: { ...defaultDescriptorProps, value({caseSensitive = false, replacements = {}} = {}) {
50
- return wrap(replaceWords(actualValue, { replacements: replacements ?? {}, caseSensitive }));
29
+ lastIndexOf: { value(str) { return lastIndexOf(actualValue, str); } },
30
+ prefix: { value(...strings) { return reValue(prefix(actualValue, ...strings)); } },
31
+ replaceWords: { value({caseSensitive = false, replacements = {}} = {}) {
32
+ return reValue(replaceWords(actualValue, { replacements: replacements ?? {}, caseSensitive }));
51
33
  } },
52
- toString: { ...defaultDescriptorProps, value() { return actualValue; } },
53
- trim: {...defaultDescriptorProps, value(start, end) { return wrap(trim(actualValue, start, end)); } },
54
- truncate: { ...defaultDescriptorProps, value({at, html = false, wordBoundary = false} = {}) {
55
- return wrap(truncate(actualValue, {at, html, wordBoundary})); } },
56
- valueOf: { ...defaultDescriptorProps, value() { return actualValue; } },
57
- undoLast: { ...defaultDescriptorProps, value(nSteps) { return undoSteps(nSteps); } },
34
+ toString: { value() { return actualValue; } },
35
+ trim: {value(start, end) { return reValue(trim(actualValue, start, end)); } },
36
+ truncate: { value({at, html = false, wordBoundary = false} = {}) {
37
+ return reValue(truncate(actualValue, {at, html, wordBoundary})); } },
38
+ valueOf: { value() { return actualValue; } },
39
+ undoLast: { value(nSteps) { return undoSteps(nSteps); } },
58
40
 
59
41
  // getters
60
- camelCase: { ...defaultDescriptorProps, get() { return wrap(parseCamelcase(getStringValue(actualValue))); } },
61
- capitalize: { ...defaultDescriptorProps, value: capitalizerFactory(instance, wrap) },
62
- clone: { ...defaultDescriptorProps, get() { return clone(instance, customMethods); } },
63
- firstUp: { ...defaultDescriptorProps, get() { return wrap(ucFirst(getStringValue(actualValue))); } },
64
- history: { ...defaultDescriptorProps, get() { return history; }, set(value) { history = value; } },
65
- empty: { ...defaultDescriptorProps, get() { return actualValue.length < 1; } },
66
- notEmpty: { ...defaultDescriptorProps, get() { return actualValue.length < 1 ? undefined: instance; } },
67
- kebabCase: { ...defaultDescriptorProps, get() { return wrap(parseKebabCase(getStringValue(actualValue))); } },
68
- quote: quotGetters(instance, wrap),
69
- snakeCase: { ...defaultDescriptorProps, get() { return wrap(parseSnakeCase(getStringValue(actualValue))); } },
70
- trimAll: { ...defaultDescriptorProps, get() { return wrap(trimAll(actualValue)); } },
71
- trimAllKeepLF: { ...defaultDescriptorProps, get() { return wrap(trimAll(actualValue, true)); } },
72
- undoAll: { ...defaultDescriptorProps, get() { return undoAll(); } },
73
- undo: { ...defaultDescriptorProps, get() { return undoLast(); } },
74
- wordsUCFirst: { ...defaultDescriptorProps, get() { return wrap(wordsFirstUp(getStringValue(actualValue))); } },
75
- value: { ...defaultDescriptorProps,
42
+ camelCase: { get() { return reValue(parseCamelcase(getStringValue(actualValue))); } },
43
+ capitalize: { value: capitalizerFactory(instance, reValue) },
44
+ clone: { get() { return clone(instance, customMethods); } },
45
+ firstUp: { get() { return reValue(ucFirst(getStringValue(actualValue))); } },
46
+ history: { get() { return history; }, set(value) { history = value; } },
47
+ empty: { get() { return actualValue.length < 1; } },
48
+ notEmpty: { get() { return actualValue.length < 1 ? undefined : instance; } },
49
+ kebabCase: { get() { return reValue(parseKebabCase(getStringValue(actualValue))); } },
50
+ quote: quotGetters(instance, reValue),
51
+ snakeCase: { get() { return reValue(parseSnakeCase(getStringValue(actualValue))); } },
52
+ trimAll: { get() { return reValue(trimAll(actualValue)); } },
53
+ trimAllKeepLF: { get() { return reValue(trimAll(actualValue, true)); } },
54
+ undoAll: { get() { return undoAll(); } },
55
+ undo: { get() { return undoLast(); } },
56
+ wordsUCFirst: { get() { return reValue(wordsFirstUp(getStringValue(actualValue))); } },
57
+ value: {
76
58
  get() { return actualValue; },
77
59
  set(value) {
78
60
  const nwValue = getStringValue(value);
@@ -84,45 +66,17 @@ function instanceCreator({initialstring} = {}) {
84
66
  },
85
67
  });
86
68
 
87
- injectCustomMethods(customMethods);
88
-
89
69
  return instance;
90
70
 
91
- function getTraps(customExtensions) {
92
- return {
93
- get( target, key ) {
94
- switch(true) {
95
- case key === Symbol.for("myType"): return `stringWeaver instance (Proxy)`;
96
- case Object.hasOwn(customExtensions, key): return customExtensions[key];
97
- case canWrapNative(String(key)): return wrapNative(key);
98
- default: return wrapNative(key);
99
- }
100
- },
101
- };
102
- }
103
-
104
- function canWrapNative(key) {
105
- return !deprecatedRE.test(key) && Object.hasOwn(String.prototype, key);
106
- }
107
-
108
- function wrapNative(key) {
109
- return typeof actualValue[key] === `function`
110
- ? function(...args) {
111
- const result = actualValue[key](...args);
112
- return result?.constructor === String ? wrap(actualValue[key](...args)) : result;
113
- }
114
- : actualValue[key];
115
- }
116
-
117
71
  function undoAll() {
118
72
  while (history.length > 1) { history.pop(); }
119
73
  actualValue = history.at(-1);
120
- return wrap(actualValue, false);
74
+ return reValue(actualValue, false);
121
75
  }
122
76
 
123
77
  function undoSteps(steps) {
124
78
  if (!isNumber(steps)) {
125
- return wrap(actualValue, false);
79
+ return reValue(actualValue, false);
126
80
  }
127
81
 
128
82
  const historyLen = history.length;
@@ -130,41 +84,38 @@ function instanceCreator({initialstring} = {}) {
130
84
  if (steps >= historyLen || steps < 1) {
131
85
  history = history.slice(0, 1);
132
86
  actualValue = history.at(-1);
133
- return wrap(history.at(-1), false);
87
+ return reValue(history.at(-1), false);
134
88
  }
135
89
 
136
90
  history = history.slice(0, historyLen - steps);
137
91
 
138
92
  actualValue = history.at(-1);
139
- return wrap(actualValue, false);
93
+ return reValue(actualValue, false);
140
94
  }
141
95
 
142
96
  function undoLast() {
143
97
  if (history.length === 1) {
144
- return wrap(history[0]);
98
+ return reValue(history[0]);
145
99
  }
146
100
 
147
101
  history.pop();
148
102
  actualValue = history.at(-1);
149
- return wrap(actualValue, false);
103
+ return reValue(actualValue, false);
104
+ }
105
+
106
+ function maybeRevalueNative(key) {
107
+ return typeof actualValue[key] === `function`
108
+ ? function(...args) {
109
+ const result = actualValue[key](...args);
110
+ return typeof result === `string` ? reValue(actualValue[key](...args)) : result;
111
+ }
112
+ : actualValue[key];
150
113
  }
151
114
 
152
- function wrap(result, pushHistory = true) {
115
+ function reValue(result, push2History = true) {
153
116
  const changed = actualValue !== result;
154
- changed && pushHistory && history.push(result);
117
+ changed && push2History && history.push(result);
155
118
  actualValue = result;
156
119
  return instance;
157
120
  }
158
-
159
- function injectCustomMethods(customMethods) {
160
- Object.entries(customMethods).forEach(([methodName, methodContainer]) => {
161
- const {enumerable, method, isGetter} = methodContainer;
162
- const configurable = false
163
- const descriptor = isGetter
164
- ? { get() { return wrap(method(instance).value); }, enumerable, configurable }
165
- : { value(...args) { return wrap(method(instance, ...args).value); }, enumerable, configurable };
166
-
167
- Object.defineProperty(customStringExtensions, methodName, descriptor);
168
- });
169
- }
170
121
  }