stringweaver 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Bundle/index.min.js +5 -4
- package/Bundle/index.min.js.map +7 -0
- package/package.json +2 -2
- package/src/extensions.js +43 -41
package/Bundle/index.min.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*© KooiInc 2025-2030*/
|
|
2
|
-
var
|
|
3
|
-
RegExp error message: "${r.message}"`}}
|
|
4
|
-
`).map(o=>o.replace(/\s|\/\/.*$/g,"").trim().replace(/(@s!)/g," ")).join(""),r)}
|
|
2
|
+
var fe=Object.defineProperty,ge=Object.defineProperties;var pe=Object.getOwnPropertyDescriptors;var F=Object.getOwnPropertySymbols;var me=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var T=Math.pow,_=(e,t,r)=>t in e?fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))me.call(t,r)&&_(e,r,t[r]);if(F)for(var r of F(t))de.call(t,r)&&_(e,r,t[r]);return e},p=(e,t)=>ge(e,pe(t));var B=he();function he(e=""){return e=(e==null?void 0:e.constructor)===String?e:"",function(i,...d){return E(i,x(d))};function t(i,d){return d&&e.length>0?String(e):`{${i}}`}function r(i){return(i==null?void 0:i.constructor)===String||(i==null?void 0:i.constructor)===Number&&!Number.isNaN(i)}function n(i,d){let C=i in d;return C&&r(d[i])?String(d[i]):t(i,C)}function o(i){return(...d)=>{let C=d.find(f=>f.key);return n(C?C.key:"_",i)}}function l(i,d){return i.replace(new RegExp("\\{(?<key>[a-z_\\d]+)}","gim"),o(d))}function c(i){let d=[];return Object.entries(i).forEach(([C,f])=>{f.forEach((V,u)=>{var m;return(m=d[u])!=null||(d[u]={}),d[u][C]=V})}),d}function b(i){return i.length===1&&Object.values(i[0]).every(Array.isArray)}function x(i){return b(i)?c(i[0]):i}function E(i,d){return d!=null&&d.length?d.filter(C=>C).map(C=>(C==null?void 0:C.constructor)===Object?l(i,C):"").join(""):i}}var{randomString:z,uuid4:P}=be();function be(){let e=f(),t=()=>e?[...crypto.getRandomValues(new Uint32Array(1))].shift()/T(2,32):Math.random(),r=({min:a=0,max:s=Number.MAX_SAFE_INTEGER}={})=>Math.floor(t()*(s-a+1)+a),n=(a=0,s=10,S)=>(S||[])instanceof Function?[...Array(s)].map(($,L)=>a+L).map(S):[...Array(s)].map(($,L)=>a+L),o=a=>String.fromCharCode(a),l="!?@#$%^&*=+_;-".split(""),c=RegExp(`[${l.map(a=>`\\${a}`).join("")}]`,"g"),b=a=>{let s=a.length;for(;s--;){let S=r({max:s});[a[s],a[S]]=[a[S],a[s]]}return a},x=b(n(65,26,o)),E=b(n(97,26,o)),d={UCLC:b(x.concat(E)),UC:x,LC:E,Nrs:b(n()),Sym:b(l)},C=a=>Object.entries(a).reduce((s,[S,$])=>$?[...s,...d[S]]:s,E);function f(){try{return window&&"crypto"in window}catch(a){return!1}}function V(){return e&&crypto.randomUUID?crypto.randomUUID():[...new Uint8Array(16)].map(a=>r({max:255})).map((a,s)=>`${(s===8?a&63|128:s===6?a&15|64:a).toString(16).padStart(2,"0")}${~[3,5,7,9].indexOf(s)?"-":""}`).join("")}function u(a,s,S){return/[a-z]/i.test(a)&&(s&&S?/\d/.test(a)&&c.test(a):s?/\d/.test(a):S?c.test(a):!0)}function m(a){let s=[...a],S=s.findIndex($=>/[a-z]/i.test($));return[s[0],s[S]]=[s[S],s[0]],s.join("")}function y({len:a=12,includeUppercase:s=!0,includeNumbers:S,includeSymbols:$,startAlphabetic:L}={}){a=a<6?6:a;let j=b(C({UC:s,Nrs:S,Sym:$}));for(;j.length<a;)j=[...j,...b(j)];let A=j.slice(0,a).join("");if(!(S||$))return A;for(let W=0;W<j.length;W+=1)if(A=j.slice(W,W+a).join(""),u(A,S,$))return L&&!/^[a-z]/i.test(A)?m(A):A;return y({len:a,includeUppercase:s,includeNumbers:S,includeSymbols:$,startAlphabetic:L})}return{randomString:y,uuid4:V}}var M=Se;function Se(e,...t){t=e.raw?t:[t];try{return ye(e,...t)}catch(r){let n=Y();return`Error creating Regular Expression from string "${e.raw||e}" with flags ${n}
|
|
3
|
+
RegExp error message: "${r.message}"`}}function Y(...e){return e.length>0?Array.isArray(e.slice(-1))?e.pop().join(""):e.join(""):""}function ye(e,...t){let r=Y(...t);t=[];let n=e.raw||[e];return new RegExp((t.length&&n.reduce((o,l,c)=>o.concat(t[c-1]||"").concat(l),"")||(n==null?void 0:n.join(""))).split(`
|
|
4
|
+
`).map(o=>o.replace(/\s|\/\/.*$/g,"").trim().replace(/(@s!)/g," ")).join(""),r)}function X(e,...t){return e!=null&&e.raw?String.raw({raw:e},...t):h(e).length?e:""}function h(e){return(e==null?void 0:e.value)||(e==null?void 0:e.constructor)===String&&e||""}function we(e,t,r){return e===String&&r?(t==null?void 0:t.constructor)!==q&&(t==null?void 0:t.constructor)!==e:(t==null?void 0:t.constructor)!==e}function G(e,t,r=!0){return Array.isArray(t)&&t.length>0&&!t.find(n=>we(e,n,r))}function N(e){return(e==null?void 0:e.constructor)===Number&&!Number.isNaN(e)}function Ce(e){let t=I($e());return t.value.split(/\n/).concat(Object.entries(Object.getOwnPropertyDescriptors(t)).map(([r,n])=>{if(r==="quote")return"quote (Object. See [constructor].quoteInfo)";let o=!e.find(l=>l===r);return`${r} (${r==="value"?"getter/setter":r==="clone"?"chainable getter":r==="notEmpty"?"chainable getter|undefined":r in String.prototype?`${n.get?"getter":"method"} (override)`:n.value&&n.value.constructor===Function?o?`chainable method${r in U?" *custom*":""}`:"method":n.value?"property":n.get?o?`chainable getter${r in U?" *custom*":""}`:"getter":"-"})`}).sort((r,n)=>r.localeCompare(n)))}function J(e,t){let r="constructor,history,indexOf,toString,value,valueOf,empty".split(",");return Object.defineProperties(e,{constructor:{get(){return e},enumerable:!1},format:{value(n,...o){return I(n).format(...o)}},addCustom:{value({name:n,method:o,enumerable:l=!1,isGetter:c=!1}={}){if(I``[n])return console.error(`addCustom: the property "${n}" exists and can not be redefined`);(n==null?void 0:n.constructor)===String&&(o==null?void 0:o.constructor)===Function&&o.length>0&&(t[n]={method:o,enumerable:l,isGetter:c})}},info:{get(){return Ce(r)}},keys:{get(){return Object.keys(Object.getOwnPropertyDescriptors(I``)).sort((n,o)=>n.localeCompare(o)).map(n=>!/constructor|toString|valueOf/.test(n)&&n in t?`${n} *custom*`:n)}},quoteInfo:{get(){let n=g({},Z());return delete n.re,Object.entries(n).sort((o,l)=>o[0].localeCompare(l[0])).reduce((o,[l,c])=>{let b=c.constructor===Function?"(start:string[, end:string])":` (${c.join(" [instance value] ")})`;return[...o,`[instance].quote.${l}${b}`]},[])}},uuid4:{get(){return I(P())}},randomString:{value:function({len:n,includeUppercase:o,includeNumbers:l,includeSymbols:c,startAlphabetic:b}={}){return I(z({len:n,includeUppercase:o,includeNumbers:l,includeSymbols:c,startAlphabetic:b}))}},regExp:{value:M}}),e}function Q(e,t){return new RegExp(e.replace(new RegExp("\\p{S}|\\p{P}","gu"),r=>`\\${r}`),t)}function $e(){return atob`Rm9yIHRoZSByZWNvcmQ6CltjbV0gY2hhaW5hYmxlIGdldHRlcnMvbWV0aG9kcyBtb2RpZnkgdGhlIGluc3RhbmNlIHN0cmluZwpbY21dIGluZGV4T2Ygb3ZlcnJpZGVzIHJldHVybiBbdW5kZWZpbmVkXSBpZiBub3RoaW5nIHdhcyBmb3VuZCAoc28gb25lIGNhbiB1c2UgW2xhc3RJXWluZGV4T2YoW3NvbWUgc3RyaW5nIHZhbHVlXSkgPz8gMApbY21dIGluY2x1ZGVzIGluZm9ybWF0aW9uIGZvciBjdXN0b20gbWV0aG9kcy9nZXR0ZXJzIGlmIGFwcGxpY2FibGU=`.replace(/\[cm\]/g,"\u2714")}function Z(){let t={backtick:["`","`"],bracket:["{","}"],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"],custom:(n,o)=>(n=h(n),o=h(o),[h(n),o.length?o:n]),double:['"','"'],guillemets:["\xAB","\xBB"],guillemetsInward:["\xBB","\xAB"],guillemetsSingle:["\u2039","\u203A"],guillemetsSingleInward:["\u203A","\u2039"],single:["'","'"],squareBrackets:["[","]"]},r=Object.values(t).filter(n=>Array.isArray(n)).map(n=>n.map(o=>`\\${o}`).join("")).join("");return t.re=RegExp(`^[${r}]|[${r}]$`,"g"),t}var w=Z();function O(e,t,r){return e=h(e),e.length>0?t(e):r||e}function R(e,...t){return O(e,()=>`${B(e,...t)}`)}function D(e){return O(e,()=>`${e[0].toUpperCase()}${e.slice(1)}`)}function K(e,t,r){return!t&&!r?e:([t,r]=G(String,[t,r!=null?r:""])?[t,r]:["",""],`${t}${e}${r||t}`)}function k(e){return O(e,()=>e.replace(/\s/g,"").replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`).replace(/-{2,}/g,"-").replace(/[^a-z-]/g,"").replace(/^-|-$/,""))}function ee(e){return O(e,()=>e.replace(/\s/g,"").replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`).replace(/_{2,}/g,"_").replace(/[^a-z_]/g,"").replace(/^_|_$/,""))}function te(e){return O(e,()=>[...e.toLowerCase()].slice(1).reduce((t,r)=>t+(new RegExp("\\p{L}|[-']","u").test(t.at(-1))?r.toLowerCase():r.toUpperCase()),e[0].toUpperCase()))}function re(e){return O(e,()=>e.toLowerCase().trim().split(/[- ]/).filter(t=>t&&t.length>0).map((t,r)=>r>0&&`${D(t)}`||t).join(""))}function ne(e,{at:t,html:r=!1,wordBoundary:n=!1}={}){return O(e,()=>{var b,x;if(e.length<=t)return e;let o=e.slice(0,t-1),l=r?"…":"...",c=n&&(x=(b=[...o.matchAll(new RegExp("\\p{Pe}|\\p{Z}","gu"))].at(-1))==null?void 0:b.index)!=null?x:o.length;return(n?o.slice(0,c+1).trim():o)+l})}function v(e,t){return O(e,()=>{let r=e.split(/\n/).map(n=>n.trim().replace(/\s{2,}/g," "));return t?r.join(`
|
|
5
5
|
`):r.filter(n=>n.length>0).join(`
|
|
6
|
-
`)})}
|
|
6
|
+
`)})}function oe(e,{replacements:t={},caseSensitive:r=!1}={}){e=h(e);let n=Object.entries(t).flat(),o=G(String,n)&&(r==null?void 0:r.constructor)===Boolean,l=`g${r?"":"i"}`;if(o&&(n=n.map(c=>h(c)).filter(c=>n.length>0),n.length))for(;n.length;){let[c,b]=[n.shift(),n.shift()],x=Q(c,l);e=e.replace(x,b)}return e}function ue(e,t,r){e=h(e),r=N(r)?r:0;let n=e.indexOf(t,r||0);return n<0?void 0:n}function ce(e,t,r){e=h(e),r=N(r)?r:e.length;let n=e.lastIndexOf(t,r);return n<0?void 0:n}function H(e,{value:t,values:r,at:n=0}={}){e=h(e),n=N(n)?n:0;let o=h(r);return r=h(t).length?t:o.length?o:G(String,r)?r.map(l=>h(l)).join(""):[],r.length<=1?e:e.length===0?`${r}${e}`:`${e.slice(0,n)}${r}${e.slice(n)}`}function le(e,...t){return t=G(String,t)&&t,t?H(h(e),{values:t,at:0}):h(e)}function ae(e,...t){return t=G(String,t)&&t,t&&t.length>0?`${h(e)}`.concat(t.join("")):h(e)}function ie(e,t){return{value:{get backtick(){return e.enclose(...w.backtick)},get bracket(){return e.enclose(...w.bracket)},get curlyDouble(){return e.enclose(...w.curlyDouble)},get curlyDoubleInward(){return e.enclose(...w.curlyDoubleInward)},get curlyDoubleEqual(){return e.enclose(...w.curlyDoubleEqual)},get curlyLHDoubleInward(){return e.enclose(...w.curlyLHDoubleInward)},get curlyLHSingle(){return e.enclose(...w.curlyLHSingle)},get curlyLHSingleInward(){return e.enclose(...w.curlyLHSingleInward)},get curlySingle(){return e.enclose(...w.curlySingle)},get curlySingleEqual(){return e.enclose(...w.curlySingleEqual)},get curlySingleInward(){return e.enclose(...w.curlySingleInward)},custom(r,n){return e.enclose(r,n!=null?n:r)},get double(){return e.enclose(...w.double)},get guillemets(){return e.enclose(...w.guillemets)},get guillemetsInward(){return e.enclose(...w.guillemetsInward)},get guillemetsSingle(){return e.enclose(...w.guillemetsSingle)},get guillemetsSingleInward(){return e.enclose(...w.guillemetsSingleInward)},get remove(){return t(`${e.value.replace(w.re,"")}`)},get single(){return e.enclose(...w.single)},get squareBrackets(){return e.enclose(...w.squareBrackets)}},enumerable:!1}}var se=xe;function xe({initialstring:e,customMethods:t}={}){let r={},n=new Proxy(r,b(r)),o=(e==null?void 0:e.constructor)===String?e:"",l=[o],c={configurable:!1,enumerable:!1};return Object.defineProperties(r,{append:p(g({},c),{value(...u){return f(ae(o,...u))}}),enclose:p(g({},c),{value(u,m){return f(K(o,u,m))}}),format:p(g({},c),{value(...u){return f(R(o,...u))}}),indexOf:p(g({},c),{value(u){return ue(o,u)}}),interpolate:p(g({},c),{value(...u){return f(R(o,...u))}}),insert:p(g({},c),{value({value:u,values:m,at:y}={}){return f(H(o,{value:u,values:m,at:y}))}}),lastIndexOf:p(g({},c),{value(u){return ce(o,u)}}),prefix:p(g({},c),{value(...u){return f(le(o,...u))}}),replaceWords:p(g({},c),{value({caseSensitive:u=!1,replacements:m={}}={}){return f(oe(o,{replacements:m,caseSensitive:u}))}}),toString:p(g({},c),{value(){return o}}),truncate:p(g({},c),{value({at:u,html:m=!1,wordBoundary:y=!1}={}){return f(ne(o,{at:u,html:m,wordBoundary:y}))}}),valueOf:p(g({},c),{value(){return o}}),undoLast:p(g({},c),{value(u){return d(u)}}),camelCase:p(g({},c),{get(){return f(re(h(o)))}}),clone:p(g({},c),{get(){return x()}}),constructor:p(g({},c),{get(){return I.constructor}}),firstUp:p(g({},c),{get(){return f(D(h(o)))}}),history:p(g({},c),{get(){return l},set(u){l=u}}),empty:p(g({},c),{get(){return o.length<1}}),notEmpty:p(g({},c),{get(){return o.length<1?void 0:n}}),kebabCase:p(g({},c),{get(){return f(k(h(o)))}}),quote:ie(n,f),snakeCase:p(g({},c),{get(){return f(ee(h(o)))}}),trimAll:p(g({},c),{get(){return f(v(o))}}),trimAllKeepLF:p(g({},c),{get(){return f(v(o,!0))}}),undoAll:p(g({},c),{get(){return i()}}),undo:p(g({},c),{get(){return C()}}),wordsUCFirst:p(g({},c),{get(){return f(te(h(o)))}}),value:p(g({},c),{get(){return o},set(u){let m=h(u);m.length&&(o=m,l.push(m))}})}),V(t),Object.freeze(n);function b(u){return{get(m,y){return y in u?u[y]:y in String.prototype?E(y):void 0}}}function x(){let u=I(o);return u.history=[...l],u}function E(u){return o[u]instanceof Function?function(...m){let y=o[u](...m);return(y==null?void 0:y.constructor)===String?f(o[u](...m)):y}:o[u]}function i(){for(;l.length>1;)l.pop();return o=l.at(-1),f(o,!1)}function d(u){if(!N(u))return f(o,!1);let m=l.length;return u>=m||u<1?(l=l.slice(0,1),o=l.at(-1),f(l.at(-1),!1)):(l=l.slice(0,m-u),o=l.at(-1),f(o,!1))}function C(){return l.length===1?f(l[0]):(l.pop(),o=l.at(-1),f(o,!1))}function f(u,m=!0){return o!==u&&m&&l.push(u),o=u,n}function V(u){Object.entries(u).forEach(([m,y])=>{let{enumerable:a,method:s,isGetter:S}=y,$=!1;Object.defineProperty(r,m,S?{get(){return f(s(n).value)},enumerable:a,configurable:$}:{value(...j){return f(s(n,...j).value)},enumerable:a,configurable:$})})}}var U={},I=J(q,U);function q(e,...t){return se({initialstring:X(e,...t),customMethods:U})}export{q as CustomStringConstructor,U as customMethods,I as default};
|
|
7
|
+
//# sourceMappingURL=index.min.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/Factories/interpolateFactory.js", "../src/Factories/randomStringFactory.js", "../src/Factories/regExpFromMultilineStringFactory.js", "../src/genericMethods.js", "../src/instanceMethods.js", "../src/extensions.js", "../index.js"],
|
|
4
|
+
"sourcesContent": ["const defaultInterpolator = interpolateFactory();\r\nexport {defaultInterpolator as default, interpolateFactory};\r\n\r\n/**\r\n * Factory function to create an interpolate function with a default replacer.\r\n * @param {string} defaultReplacer - Default value to use for missing tokens.\r\n * @returns {Function} - The interpolation function.\r\n */\r\nfunction interpolateFactory(defaultReplacer = \"\") {\r\n defaultReplacer = defaultReplacer?.constructor === String ? defaultReplacer : \"\";\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 && defaultReplacer.length > 0) {\r\n return String(defaultReplacer);\r\n }\r\n \r\n return `{${key}}`;\r\n }\r\n \r\n /**\r\n * determine if [value] is a String or Number\r\n * @param {any} value\r\n * @returns {boolean}\r\n */\r\n function isStringOrNumber(value ) {\r\n return value?.constructor === String || value?.constructor === Number && !Number.isNaN(value);\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 && isStringOrNumber(token[key]) ? 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<string, string>} 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 return !tokens?.length ? str : tokens\r\n .filter(token => token)\r\n .map(token => token?.constructor === Object ? replace(str, token) : ``)\r\n .join(``);\r\n }\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 {resolveTemplateString} from \"../genericMethods.js\";\r\n\r\nexport default createRegExp\r\n\r\nfunction createRegExp(str, ...args) {\r\n args = !str.raw ? [args] : args;\r\n try {\r\n return regExp(str, ...args);\r\n } catch (err) {\r\n const flags = resolveFlags();\r\n const raw = str.raw || str; \r\n return `Error creating Regular Expression from string \"${raw}\" with flags ${flags}` +\r\n `\\nRegExp error message: \"${err.message}\"`;\r\n }\r\n}\r\n\r\nfunction resolveFlags(...args) {\r\n return args.length > 0\r\n ? Array.isArray(args.slice(-1))\r\n ? args.pop().join(``) : args.join(``) : ``;\r\n}\r\n\r\nfunction regExp(regexStr, ...args) {\r\n const flags = resolveFlags(...args);\r\n args = [];\r\n const raw = regexStr.raw || [regexStr];\r\n \r\n return new RegExp(\r\n (args.length &&\r\n raw.reduce( (a, v, i ) => a.concat(args[i-1] || ``).concat(v), ``) ||\r\n raw?.join(``))\r\n .split(`\\n`)\r\n .map( line => line.replace(/\\s|\\/\\/.*$/g, ``).trim().replace(/(@s!)/g, ` `) )\r\n .join(``), flags);\r\n}\r\n", "import xString, {CustomStringConstructor, customMethods} from \"../index.js\";\r\nimport {default as randomString, uuid4} from \"./Factories/randomStringFactory.js\";\r\nimport createRegExp from \"./Factories/regExpFromMultilineStringFactory.js\";\r\n\r\nexport {\r\n createExtendedCTOR, \r\n resolveTemplateString, \r\n xString, \r\n isNumber, \r\n isArrayOf,\r\n defineQuotingStyles,\r\n getStringValue,\r\n escapeRE,\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 getStringValue(string) {\r\n return string?.value || (string?.constructor === String && string) || ``;\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 isArrayOf(type, value, includeInstances = true) {\r\n return Array.isArray(value) && value.length > 0 && !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 getSWInformation(notChainable) {\r\n const firstLines = xString(decode());\r\n return firstLines.value.split(/\\n/).concat(\r\n Object.entries(Object.getOwnPropertyDescriptors(firstLines))\r\n .map(([key, descriptr]) => {\r\n if (key === `quote`) { return `quote (Object. See [constructor].quoteInfo)`; }\r\n const isChainable = !notChainable.find(k => k === key);\r\n \r\n return `${key} (${\r\n key === `value` \r\n ? `getter/setter`\r\n : key === `clone`\r\n ? `chainable getter`\r\n : key === `notEmpty` \r\n ? `chainable getter|undefined`\r\n : key in String.prototype \r\n ? `${descriptr.get ? `getter` : `method`} (override)` \r\n : descriptr.value && descriptr.value.constructor === Function\r\n ? (isChainable \r\n ? `chainable method${key in customMethods ? ` *custom*` : ``}` : `method`)\r\n : descriptr.value\r\n ? `property`\r\n : descriptr.get ? (isChainable \r\n ? `chainable getter${key in customMethods ? ` *custom*` : ``}` \r\n : `getter`) : `-`})`; })\r\n .sort( (a,b) => a.localeCompare(b) ) \r\n );\r\n}\r\n\r\nfunction createExtendedCTOR(ctor, customMethods) {\r\n const notChainable = `constructor,history,indexOf,toString,value,valueOf,empty`.split(`,`);\r\n Object.defineProperties(ctor, {\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 xString(str).format(...tokens);\r\n }\r\n },\r\n addCustom: {\r\n value( { name, method, enumerable = false, isGetter = false } = {} ) {\r\n if (xString``[name]) {\r\n return console.error(`addCustom: the property \"${name}\" exists and can not be redefined`);\r\n }\r\n if (name?.constructor === String && method?.constructor === Function && method.length > 0) {\r\n customMethods[name] = {method, enumerable, isGetter};\r\n }\r\n }\r\n },\r\n info: {\r\n get() { return getSWInformation(notChainable); }\r\n },\r\n keys: {\r\n get() { \r\n return Object.keys(Object.getOwnPropertyDescriptors(xString``)).sort( (a,b) => a.localeCompare(b) )\r\n .map(v => !/constructor|toString|valueOf/.test(v) && v in customMethods ? `${v} *custom*` : v); \r\n }\r\n },\r\n quoteInfo: {\r\n get() {\r\n const qStyles = {...defineQuotingStyles()};\r\n delete qStyles.re;\r\n return Object.entries(qStyles)\r\n .sort( (a,b) => a[0].localeCompare(b[0]) )\r\n .reduce((acc, [k, v]) => {\r\n const val = v.constructor === Function ? `(start:string[, end:string])` : ` (${v.join(` [instance value] `)})`;\r\n return [...acc, `[instance].quote.${k}${val}`];\r\n }, []);\r\n }\r\n },\r\n uuid4: {\r\n get() { return xString(uuid4()); }\r\n },\r\n randomString: {\r\n value: function({len, includeUppercase, includeNumbers, includeSymbols, startAlphabetic} = {}) {\r\n return xString(randomString({len, includeUppercase, includeNumbers, includeSymbols, startAlphabetic})); \r\n }\r\n },\r\n regExp: { value: createRegExp }\r\n });\r\n \r\n return ctor;\r\n}\r\n\r\nfunction escapeRE(reString, modifiers) {\r\n return new RegExp(reString.replace(/\\p{S}|\\p{P}/gu, a => `\\\\${a}`), modifiers);\r\n}\r\n\r\nfunction decode() {\r\n return atob`Rm9yIHRoZSByZWNvcmQ6CltjbV0gY2hhaW5hYmxlIGdldHRlcnMvbWV0aG9kcyBtb2RpZnkgdGhlIGluc3RhbmNlIHN0cmluZwpbY21dIGluZGV4T2Ygb3ZlcnJpZGVzIHJldHVybiBbdW5kZWZpbmVkXSBpZiBub3RoaW5nIHdhcyBmb3VuZCAoc28gb25lIGNhbiB1c2UgW2xhc3RJXWluZGV4T2YoW3NvbWUgc3RyaW5nIHZhbHVlXSkgPz8gMApbY21dIGluY2x1ZGVzIGluZm9ybWF0aW9uIGZvciBjdXN0b20gbWV0aG9kcy9nZXR0ZXJzIGlmIGFwcGxpY2FibGU=`.replace(/\\[cm\\]/g, `\\u2714`);\r\n}\r\n\r\nfunction defineQuotingStyles() {\r\n // see https://en.wikipedia.org/wiki/Quotation_mark\r\n const custom = (start, end) => {\r\n start = getStringValue(start);\r\n end = getStringValue(end);\r\n return [getStringValue(start), end.length ? end : start]; \r\n } \r\n const quots = {\r\n backtick: [\"`\", \"`\"],\r\n bracket: [`{`, `}`],\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 custom,\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 const regExpValues = Object.values(quots).filter(v => Array.isArray(v)).map(v => v.map(v => `\\\\${v}`).join(``)).join('');\r\n quots.re = RegExp(`^[${regExpValues}]|[${regExpValues}]$`, \"g\");\r\n return quots;\r\n}\r\n", "import interpolate from \"./Factories/interpolateFactory.js\";\r\n\r\nimport {isArrayOf, isNumber, defineQuotingStyles, getStringValue, escapeRE} from \"./genericMethods.js\";\r\nconst quotingStyles = defineQuotingStyles();\r\n\r\nexport {\r\n format, ucFirst, truncate, trimAll, replaceWords,\r\n indexOf, lastIndexOf, insert, append,\r\n isNumber, prefix, getStringValue, toCamelcase,\r\n wordsFirstUp, toDashedNotation, quotGetters,\r\n surroundWith, defineQuotingStyles, toSnakeCase,\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 ucFirst(string) {\r\n return checkAndRun(string, () => `${string[0].toUpperCase()}${string.slice(1)}`); \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 toDashedNotation(string) {\r\n return checkAndRun(string, () => \r\n string\r\n .replace(/\\s/g, '')\r\n .replace(/[A-Z]/g, a => `-${a.toLowerCase()}`)\r\n .replace(/-{2,}/g, `-`)\r\n .replace(/[^a-z-]/g, ``)\r\n .replace(/^-|-$/, ``)\r\n );\r\n}\r\n\r\nfunction toSnakeCase(string) {\r\n return checkAndRun(string, () =>\r\n string\r\n .replace(/\\s/g, '')\r\n .replace(/[A-Z]/g, a => `_${a.toLowerCase()}`)\r\n .replace(/_{2,}/g, `_`)\r\n .replace(/[^a-z_]/g, ``)\r\n .replace(/^_|_$/, ``)\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 toCamelcase(string) {\r\n return checkAndRun(string, () => \r\n string.toLowerCase()\r\n .trim()\r\n .split(/[- ]/)\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 truncate(string, {at, html = false, 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 ? \"…\" : `...`;\r\n const boundary = wordBoundary \r\n ? [...subString.matchAll(/\\p{Pe}|\\p{Z}/gu)].at(-1)?.index ?? subString.length \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) {\r\n return checkAndRun(string, () => {\r\n const lines = string\r\n .split(/\\n/)\r\n .map(line => line.trim().replace(/\\s{2,}/g, ` `));\r\n return keepLines ? lines.join('\\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) {\r\n replacements2Array = replacements2Array.map(v => getStringValue(v)).filter(v => replacements2Array.length > 0);\r\n \r\n if (replacements2Array.length) {\r\n while (replacements2Array.length) {\r\n const [initial, replacement] = [replacements2Array.shift(), replacements2Array.shift()];\r\n const re = escapeRE(initial, modifiers);\r\n string = string.replace(re, replacement);\r\n }\r\n }\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) {\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) {\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\r\nfunction quotGetters(instance, wrap) {\r\n return { \r\n value: {\r\n get backtick() { return instance.enclose(...quotingStyles.backtick); },\r\n get bracket() { return instance.enclose(...quotingStyles.bracket); },\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 custom(start, end) { return 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 };\r\n}\r\n", "import {\r\n format, ucFirst, truncate, trimAll, replaceWords,\r\n indexOf, lastIndexOf, insert, append, prefix,\r\n getStringValue, quotGetters, surroundWith,\r\n toCamelcase, wordsFirstUp, toDashedNotation, toSnakeCase,\r\n} from \"./instanceMethods.js\";\r\n\r\nimport {xString as $S, isNumber} from \"./genericMethods.js\";\r\nexport default instanceCreator;\r\n\r\nfunction instanceCreator({initialstring, customMethods} = {}) {\r\n let customStringExtensions = { };\r\n let instance = new Proxy(customStringExtensions, getTraps(customStringExtensions));\r\n let actualValue = initialstring?.constructor === String ? initialstring : ``;\r\n let history = [actualValue];\r\n const descriptorProps = {configurable: false, enumerable: false};\r\n \r\n Object.defineProperties( customStringExtensions, {\r\n append: { ...descriptorProps, value(...strings) { return wrap(append(actualValue, ...strings)); } },\r\n enclose: { ...descriptorProps, value(start, end) { return wrap(surroundWith(actualValue, start, end)); } },\r\n format: { ...descriptorProps, value(...tokens) { return wrap(format(actualValue, ...tokens)); } },\r\n indexOf: { ...descriptorProps, value(str) { return indexOf(actualValue, str); } },\r\n interpolate: { ...descriptorProps, value(...tokens) { return wrap(format(actualValue, ...tokens)); } },\r\n insert: { ...descriptorProps, value({ value, values, at } = {}) { \r\n return wrap(insert(actualValue, { value, values, at })); \r\n } \r\n },\r\n lastIndexOf: { ...descriptorProps, value(str) { return lastIndexOf(actualValue, str); } },\r\n prefix: { ...descriptorProps, value(...strings) { return wrap(prefix(actualValue, ...strings)); } },\r\n replaceWords: { ...descriptorProps, value({caseSensitive = false, replacements = {}} = {}) {\r\n return wrap(replaceWords(actualValue, {replacements, caseSensitive}));\r\n } },\r\n toString: { ...descriptorProps, value() { return actualValue; } },\r\n truncate: { ...descriptorProps, value({at, html = false, wordBoundary = false} = {}) {\r\n return wrap(truncate(actualValue, {at, html, wordBoundary})); } },\r\n valueOf: { ...descriptorProps, value() { return actualValue; } },\r\n undoLast: { ...descriptorProps, value(nSteps) { return undoSteps(nSteps); } },\r\n\r\n camelCase: { ...descriptorProps, get() { return wrap(toCamelcase(getStringValue(actualValue))); } }, \r\n clone: { ...descriptorProps, get() { return clone(); } },\r\n constructor: { ...descriptorProps, get() { return $S.constructor; } },\r\n firstUp: { ...descriptorProps, get() { return wrap(ucFirst(getStringValue(actualValue))); } },\r\n history: { ...descriptorProps, get() { return history; }, set(value) { history = value; } },\r\n empty: { ...descriptorProps, get() { return actualValue.length < 1; } },\r\n notEmpty: { ...descriptorProps, get() { return actualValue.length < 1 ? undefined: instance; } },\r\n kebabCase: { ...descriptorProps, get() { return wrap(toDashedNotation(getStringValue(actualValue))); } },\r\n quote: quotGetters(instance, wrap),\r\n snakeCase: { ...descriptorProps, get() { return wrap(toSnakeCase(getStringValue(actualValue))); } },\r\n trimAll: { ...descriptorProps, get() { return wrap(trimAll(actualValue)); } },\r\n trimAllKeepLF: { ...descriptorProps, get() { return wrap(trimAll(actualValue, true)); } },\r\n undoAll: { ...descriptorProps, get() { return undoAll(); } },\r\n undo: { ...descriptorProps, get() { return undoLast(); } },\r\n wordsUCFirst: { ...descriptorProps, get() { return wrap(wordsFirstUp(getStringValue(actualValue))); } },\r\n value: { ...descriptorProps, \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 Object.freeze(instance);\r\n \r\n function getTraps(extensions) {\r\n return {\r\n get( target, key ) {\r\n return key in extensions\r\n ? extensions[key]\r\n : key in String.prototype\r\n ? wrapNative(key)\r\n : undefined;\r\n },\r\n };\r\n }\r\n \r\n function clone() {\r\n const newInstance = $S(actualValue);\r\n newInstance.history = [...history];\r\n return newInstance;\r\n }\r\n \r\n function wrapNative(key) {\r\n return actualValue[key] instanceof 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 } : 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 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 \"./src/extensions.js\";\r\nimport { resolveTemplateString as resolveString, createExtendedCTOR } from \"./src/genericMethods.js\";\r\n\r\nconst customMethods = {};\r\nconst defaultStringCTOR = createExtendedCTOR(CustomStringConstructor, customMethods);\r\n\r\nexport {defaultStringCTOR as default, CustomStringConstructor, customMethods};\r\n\r\nfunction CustomStringConstructor(str, ...args) {\r\n return createInstance({initialstring: resolveString(str, ...args), customMethods});\r\n}\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["defaultInterpolator", "interpolateFactory", "interpolateFactory", "defaultReplacer", "str", "tokens", "interpolate", "processTokens", "invalidate", "key", "keyExists", "isStringOrNumber", "value", "replacement", "token", "isValid", "getReplacerLambda", "args", "replacementObject", "a", "replace", "convertTokensFromArrayValues", "tokenObject", "converted", "v", "i", "_a", "isMultiLineWithArrays", "randomString", "uuid4", "randomStringGeneratorFactory", "randomStringGeneratorFactory", "hasCrypto", "checkBrowserCrypto", "getRandomValue", "__pow", "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", "regExpFromMultilineStringFactory_default", "createRegExp", "str", "args", "regExp", "err", "flags", "resolveFlags", "regexStr", "raw", "a", "v", "i", "line", "resolveTemplateString", "str", "args", "getStringValue", "string", "checkType", "type", "item", "includeInstances", "CustomStringConstructor", "isArrayOf", "value", "v", "isNumber", "getSWInformation", "notChainable", "firstLines", "defaultStringCTOR", "decode", "key", "descriptr", "isChainable", "k", "customMethods", "a", "b", "createExtendedCTOR", "ctor", "tokens", "name", "method", "enumerable", "isGetter", "qStyles", "__spreadValues", "defineQuotingStyles", "acc", "val", "uuid4", "len", "includeUppercase", "includeNumbers", "includeSymbols", "startAlphabetic", "randomString", "regExpFromMultilineStringFactory_default", "escapeRE", "reString", "modifiers", "quots", "start", "end", "regExpValues", "quotingStyles", "defineQuotingStyles", "checkAndRun", "string", "fn", "or", "getStringValue", "format", "tokens", "defaultInterpolator", "ucFirst", "surroundWith", "start", "end", "isArrayOf", "toDashedNotation", "a", "toSnakeCase", "wordsFirstUp", "acc", "v", "toCamelcase", "l", "str", "i", "truncate", "at", "html", "wordBoundary", "_a", "_b", "subString", "endwith", "boundary", "trimAll", "keepLines", "lines", "line", "replaceWords", "replacements", "caseSensitive", "replacements2Array", "cando", "modifiers", "initial", "replacement", "re", "escapeRE", "indexOf", "findMe", "fromIndex", "isNumber", "index", "lastIndexOf", "beforeIndex", "insert", "value", "values", "valuesMaybeValue", "prefix", "strings", "append", "strings2Append", "quotGetters", "instance", "wrap", "quotingStyles", "extensions_default", "instanceCreator", "initialstring", "customMethods", "customStringExtensions", "instance", "getTraps", "actualValue", "history", "descriptorProps", "__spreadProps", "__spreadValues", "strings", "wrap", "append", "start", "end", "surroundWith", "tokens", "format", "str", "indexOf", "value", "values", "at", "insert", "lastIndexOf", "prefix", "caseSensitive", "replacements", "replaceWords", "html", "wordBoundary", "truncate", "nSteps", "undoSteps", "toCamelcase", "getStringValue", "clone", "defaultStringCTOR", "ucFirst", "toDashedNotation", "quotGetters", "toSnakeCase", "trimAll", "undoAll", "undoLast", "wordsFirstUp", "nwValue", "injectCustomMethods", "extensions", "target", "key", "wrapNative", "newInstance", "args", "result", "steps", "isNumber", "historyLen", "pushHistory", "methodName", "methodContainer", "enumerable", "method", "isGetter", "configurable", "customMethods", "defaultStringCTOR", "createExtendedCTOR", "CustomStringConstructor", "CustomStringConstructor", "str", "args", "extensions_default", "resolveTemplateString", "customMethods"]
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stringweaver",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.8",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "./index.js",
|
|
7
7
|
"sideEffects": false,
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"repository": {
|
|
21
21
|
"type": "git",
|
|
22
|
-
"url": "https://github.com/KooiInc/js-stringweaver"
|
|
22
|
+
"url": "git+https://github.com/KooiInc/js-stringweaver.git"
|
|
23
23
|
},
|
|
24
24
|
"bugs": {
|
|
25
25
|
"url": "https://github.com/KooiInc/js-stringweaver/issues"
|
package/src/extensions.js
CHANGED
|
@@ -13,53 +13,54 @@ function instanceCreator({initialstring, customMethods} = {}) {
|
|
|
13
13
|
let instance = new Proxy(customStringExtensions, getTraps(customStringExtensions));
|
|
14
14
|
let actualValue = initialstring?.constructor === String ? initialstring : ``;
|
|
15
15
|
let history = [actualValue];
|
|
16
|
-
const
|
|
16
|
+
const descriptorProps = {configurable: false, enumerable: false};
|
|
17
17
|
|
|
18
|
-
Object.defineProperties(customStringExtensions, {
|
|
19
|
-
append: { value(...strings) { return wrap(append(actualValue, ...strings)); }
|
|
20
|
-
enclose: { value(start, end) { return wrap(surroundWith(actualValue, start, end)); }
|
|
21
|
-
format: { value(...tokens) { return wrap(format(actualValue, ...tokens)); }
|
|
22
|
-
indexOf: { value(str) { return indexOf(actualValue, str); }
|
|
23
|
-
interpolate: { value(...tokens) { return wrap(format(actualValue, ...tokens)); }
|
|
24
|
-
insert: { value({ value, values, at } = {}) {
|
|
18
|
+
Object.defineProperties( customStringExtensions, {
|
|
19
|
+
append: { ...descriptorProps, value(...strings) { return wrap(append(actualValue, ...strings)); } },
|
|
20
|
+
enclose: { ...descriptorProps, value(start, end) { return wrap(surroundWith(actualValue, start, end)); } },
|
|
21
|
+
format: { ...descriptorProps, value(...tokens) { return wrap(format(actualValue, ...tokens)); } },
|
|
22
|
+
indexOf: { ...descriptorProps, value(str) { return indexOf(actualValue, str); } },
|
|
23
|
+
interpolate: { ...descriptorProps, value(...tokens) { return wrap(format(actualValue, ...tokens)); } },
|
|
24
|
+
insert: { ...descriptorProps, value({ value, values, at } = {}) {
|
|
25
25
|
return wrap(insert(actualValue, { value, values, at }));
|
|
26
|
-
}
|
|
26
|
+
}
|
|
27
27
|
},
|
|
28
|
-
lastIndexOf: { value(str) { return lastIndexOf(actualValue, str); }
|
|
29
|
-
prefix: { value(...strings) { return wrap(prefix(actualValue, ...strings)); }
|
|
30
|
-
replaceWords: { value({caseSensitive = false, replacements = {}} = {}) {
|
|
28
|
+
lastIndexOf: { ...descriptorProps, value(str) { return lastIndexOf(actualValue, str); } },
|
|
29
|
+
prefix: { ...descriptorProps, value(...strings) { return wrap(prefix(actualValue, ...strings)); } },
|
|
30
|
+
replaceWords: { ...descriptorProps, value({caseSensitive = false, replacements = {}} = {}) {
|
|
31
31
|
return wrap(replaceWords(actualValue, {replacements, caseSensitive}));
|
|
32
|
-
}
|
|
33
|
-
toString: { value() { return actualValue; }
|
|
34
|
-
truncate: { value({at, html = false, wordBoundary = false} = {}) {
|
|
35
|
-
return wrap(truncate(actualValue, {at, html, wordBoundary})); }
|
|
36
|
-
valueOf: { value() { return actualValue; }
|
|
37
|
-
undoLast: { value(nSteps) { return undoSteps(nSteps); }
|
|
32
|
+
} },
|
|
33
|
+
toString: { ...descriptorProps, value() { return actualValue; } },
|
|
34
|
+
truncate: { ...descriptorProps, value({at, html = false, wordBoundary = false} = {}) {
|
|
35
|
+
return wrap(truncate(actualValue, {at, html, wordBoundary})); } },
|
|
36
|
+
valueOf: { ...descriptorProps, value() { return actualValue; } },
|
|
37
|
+
undoLast: { ...descriptorProps, value(nSteps) { return undoSteps(nSteps); } },
|
|
38
38
|
|
|
39
|
-
camelCase: { get() { return wrap(toCamelcase(getStringValue(actualValue))); }
|
|
40
|
-
clone: { get() { return clone(); }
|
|
41
|
-
constructor: { get() { return $S.constructor; }
|
|
42
|
-
firstUp: { get() { return wrap(ucFirst(getStringValue(actualValue))); }
|
|
43
|
-
history: {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
empty: { get() { return actualValue.length < 1; } },
|
|
48
|
-
notEmpty: { get() { return actualValue.length < 1 ? undefined: instance; } },
|
|
49
|
-
kebabCase: { get() { return wrap(toDashedNotation(getStringValue(actualValue))); }, enumerable, configurable },
|
|
39
|
+
camelCase: { ...descriptorProps, get() { return wrap(toCamelcase(getStringValue(actualValue))); } },
|
|
40
|
+
clone: { ...descriptorProps, get() { return clone(); } },
|
|
41
|
+
constructor: { ...descriptorProps, get() { return $S.constructor; } },
|
|
42
|
+
firstUp: { ...descriptorProps, get() { return wrap(ucFirst(getStringValue(actualValue))); } },
|
|
43
|
+
history: { ...descriptorProps, get() { return history; }, set(value) { history = value; } },
|
|
44
|
+
empty: { ...descriptorProps, get() { return actualValue.length < 1; } },
|
|
45
|
+
notEmpty: { ...descriptorProps, get() { return actualValue.length < 1 ? undefined: instance; } },
|
|
46
|
+
kebabCase: { ...descriptorProps, get() { return wrap(toDashedNotation(getStringValue(actualValue))); } },
|
|
50
47
|
quote: quotGetters(instance, wrap),
|
|
51
|
-
snakeCase: { get() { return wrap(toSnakeCase(getStringValue(actualValue))); } },
|
|
52
|
-
trimAll: { get() { return wrap(trimAll(actualValue)); }
|
|
53
|
-
trimAllKeepLF: { get() { return wrap(trimAll(actualValue, true)); }
|
|
54
|
-
undoAll: { get() { return undoAll(); }
|
|
55
|
-
undo: { get() { return undoLast(); }
|
|
56
|
-
wordsUCFirst: { get() { return wrap(wordsFirstUp(getStringValue(actualValue))); }
|
|
57
|
-
value: {
|
|
48
|
+
snakeCase: { ...descriptorProps, get() { return wrap(toSnakeCase(getStringValue(actualValue))); } },
|
|
49
|
+
trimAll: { ...descriptorProps, get() { return wrap(trimAll(actualValue)); } },
|
|
50
|
+
trimAllKeepLF: { ...descriptorProps, get() { return wrap(trimAll(actualValue, true)); } },
|
|
51
|
+
undoAll: { ...descriptorProps, get() { return undoAll(); } },
|
|
52
|
+
undo: { ...descriptorProps, get() { return undoLast(); } },
|
|
53
|
+
wordsUCFirst: { ...descriptorProps, get() { return wrap(wordsFirstUp(getStringValue(actualValue))); } },
|
|
54
|
+
value: { ...descriptorProps,
|
|
58
55
|
get() { return actualValue; },
|
|
59
|
-
set(value) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
set(value) {
|
|
57
|
+
const nwValue = getStringValue(value);
|
|
58
|
+
if (nwValue.length) {
|
|
59
|
+
actualValue = nwValue;
|
|
60
|
+
history.push(nwValue);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
63
64
|
});
|
|
64
65
|
|
|
65
66
|
injectCustomMethods(customMethods);
|
|
@@ -136,9 +137,10 @@ function instanceCreator({initialstring, customMethods} = {}) {
|
|
|
136
137
|
function injectCustomMethods(customMethods) {
|
|
137
138
|
Object.entries(customMethods).forEach(([methodName, methodContainer]) => {
|
|
138
139
|
const {enumerable, method, isGetter} = methodContainer;
|
|
140
|
+
const configurable = false
|
|
139
141
|
const descriptor = isGetter
|
|
140
142
|
? { get() { return wrap(method(instance).value); }, enumerable, configurable }
|
|
141
|
-
: { value(...args) { return wrap(method(instance, ...args).value); }, enumerable, };
|
|
143
|
+
: { value(...args) { return wrap(method(instance, ...args).value); }, enumerable, configurable };
|
|
142
144
|
|
|
143
145
|
Object.defineProperty(customStringExtensions, methodName, descriptor);
|
|
144
146
|
});
|