js-row-num
Version:
Update all row numbers in all console.logs in JS code
68 lines (66 loc) • 20.1 kB
JavaScript
/**
* @name js-row-num
* @fileoverview Update all row numbers in all console.logs in JS code
* @version 7.0.19
* @author Roy Revelt, Codsen Ltd
* @license MIT
* {@link https://codsen.com/os/js-row-num/}
*/
;var jsRowNum=(()=>{var U=Object.create;var D=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames,x=Object.getOwnPropertySymbols,z=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;var N=(e,n,l)=>n in e?D(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,y=(e,n)=>{for(var l in n||(n={}))F.call(n,l)&&N(e,l,n[l]);if(x)for(var l of x(n))Z.call(n,l)&&N(e,l,n[l]);return e};var X=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),Y=(e,n)=>{for(var l in n)D(e,l,{get:n[l],enumerable:!0})},V=(e,n,l,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let g of Q(n))!F.call(e,g)&&g!==l&&D(e,g,{get:()=>n[g],enumerable:!(s=G(n,g))||s.enumerable});return e};var ee=(e,n,l)=>(l=e!=null?U(z(e)):{},V(n||!e||!e.__esModule?D(l,"default",{value:e,enumerable:!0}):l,e)),re=e=>V(D({},"__esModule",{value:!0}),e);var I=(e,n,l)=>N(e,typeof n!="symbol"?n+"":n,l);var C=X(($e,_)=>{"use strict";_.exports=te;function O(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function te(e){if(e=e||{},e.circles)return ne(e);let n=new Map;if(n.set(Date,a=>new Date(a)),n.set(Map,(a,i)=>new Map(s(Array.from(a),i))),n.set(Set,(a,i)=>new Set(s(Array.from(a),i))),e.constructorHandlers)for(let a of e.constructorHandlers)n.set(a[0],a[1]);let l=null;return e.proto?t:g;function s(a,i){let u=Object.keys(a),r=new Array(u.length);for(let o=0;o<u.length;o++){let c=u[o],p=a[c];typeof p!="object"||p===null?r[c]=p:p.constructor!==Object&&(l=n.get(p.constructor))?r[c]=l(p,i):ArrayBuffer.isView(p)?r[c]=O(p):r[c]=i(p)}return r}function g(a){if(typeof a!="object"||a===null)return a;if(Array.isArray(a))return s(a,g);if(a.constructor!==Object&&(l=n.get(a.constructor)))return l(a,g);let i={};for(let u in a){if(Object.hasOwnProperty.call(a,u)===!1)continue;let r=a[u];typeof r!="object"||r===null?i[u]=r:r.constructor!==Object&&(l=n.get(r.constructor))?i[u]=l(r,g):ArrayBuffer.isView(r)?i[u]=O(r):i[u]=g(r)}return i}function t(a){if(typeof a!="object"||a===null)return a;if(Array.isArray(a))return s(a,t);if(a.constructor!==Object&&(l=n.get(a.constructor)))return l(a,t);let i={};for(let u in a){let r=a[u];typeof r!="object"||r===null?i[u]=r:r.constructor!==Object&&(l=n.get(r.constructor))?i[u]=l(r,t):ArrayBuffer.isView(r)?i[u]=O(r):i[u]=t(r)}return i}}function ne(e){let n=[],l=[],s=new Map;if(s.set(Date,u=>new Date(u)),s.set(Map,(u,r)=>new Map(t(Array.from(u),r))),s.set(Set,(u,r)=>new Set(t(Array.from(u),r))),e.constructorHandlers)for(let u of e.constructorHandlers)s.set(u[0],u[1]);let g=null;return e.proto?i:a;function t(u,r){let o=Object.keys(u),c=new Array(o.length);for(let p=0;p<o.length;p++){let f=o[p],m=u[f];if(typeof m!="object"||m===null)c[f]=m;else if(m.constructor!==Object&&(g=s.get(m.constructor)))c[f]=g(m,r);else if(ArrayBuffer.isView(m))c[f]=O(m);else{let b=n.indexOf(m);b!==-1?c[f]=l[b]:c[f]=r(m)}}return c}function a(u){if(typeof u!="object"||u===null)return u;if(Array.isArray(u))return t(u,a);if(u.constructor!==Object&&(g=s.get(u.constructor)))return g(u,a);let r={};n.push(u),l.push(r);for(let o in u){if(Object.hasOwnProperty.call(u,o)===!1)continue;let c=u[o];if(typeof c!="object"||c===null)r[o]=c;else if(c.constructor!==Object&&(g=s.get(c.constructor)))r[o]=g(c,a);else if(ArrayBuffer.isView(c))r[o]=O(c);else{let p=n.indexOf(c);p!==-1?r[o]=l[p]:r[o]=a(c)}}return n.pop(),l.pop(),r}function i(u){if(typeof u!="object"||u===null)return u;if(Array.isArray(u))return t(u,i);if(u.constructor!==Object&&(g=s.get(u.constructor)))return g(u,i);let r={};n.push(u),l.push(r);for(let o in u){let c=u[o];if(typeof c!="object"||c===null)r[o]=c;else if(c.constructor!==Object&&(g=s.get(c.constructor)))r[o]=g(c,i);else if(ArrayBuffer.isView(c))r[o]=O(c);else{let p=n.indexOf(c);p!==-1?r[o]=l[p]:r[o]=i(c)}}return n.pop(),l.pop(),r}}});var fe={};Y(fe,{defaults:()=>K,fixRowNums:()=>ge,version:()=>ce});function R(e,n=1){let l="\xA0";function s(t){return Array.from(t).reverse().join("")}function g(t,a,i){let u=i?`
`:"\r",r=i?"\r":`
`;if(!t)return t;let o=0,c=0,p="";for(let f=0,m=t.length;f<m;f++)(t[f]===u||t[f]===r&&t[f-1]!==u)&&c++,`\r
`.includes(t[f])||t[f]===l?(o=0,t[f]===l?p+=t[f]:t[f]===u?c<=a&&(p+=t[f],t[f+1]===r&&(p+=t[f+1],f++)):t[f]===r&&(t==null?void 0:t[f-1])!==u&&c<=a&&(p+=t[f])):(o++,!t[f+1]&&!c&&(p+=" "));return p}if(typeof e=="string"&&e.length){let t=1;typeof+n=="number"&&Number.isInteger(+n)&&+n>=0&&(t=+n);let a="",i="";if(!e.trim())a=e;else if(!e[0].trim()){for(let u=0,r=e.length;u<r;u++)if(e[u].trim()){a=e.slice(0,u);break}}if(e.trim()&&(e.slice(-1).trim()===""||e.slice(-1)===l)){for(let u=e.length;u--;)if(e[u].trim()){i=e.slice(u+1);break}}return`${g(a,t,!1)}${e.trim()}${s(g(s(i),t,!0))}`}return e}var k=ee(C(),1);var ye=(0,k.default)();function se(e){if(e==null||typeof e!="object")return!1;let n=Object.getPrototypeOf(e);return n!==null&&n!==Object.prototype&&Object.getPrototypeOf(n)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}function E(e){return typeof e=="string"}function T(e){return Number.isSafeInteger(e)&&e>=0}function A(e){return e!=null}function W(e,n){return se(e)&&E(n)&&n in e}var oe={strictlyTwoElementsInRangeArrays:!1,progressFn:null};function S(e,n){if(!Array.isArray(e)||!e.length)return e;let l=y(y({},oe),n),s,g;if(l.strictlyTwoElementsInRangeArrays&&!e.every((i,u)=>!Array.isArray(i)||i.length!==2?(s=u,g=i.length,!1):!0))throw new TypeError(`ranges-sort: [THROW_ID_03] The first argument should be an array and must consist of arrays which are natural number indexes representing TWO string index ranges. However, ${s}th range (${JSON.stringify(e[s],null,4)}) has not two but ${g} elements!`);if(!e.every((i,u)=>!Array.isArray(i)||!Number.isInteger(i[0])||i[0]<0||!Number.isInteger(i[1])||i[1]<0?(s=u,!1):!0))throw new TypeError(`ranges-sort: [THROW_ID_04] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, ${s}th range (${JSON.stringify(e[s],null,4)}) does not consist of only natural numbers!`);let t=e.length**2,a=0;return Array.from(e).sort((i,u)=>(l.progressFn&&(a+=1,l.progressFn(Math.floor(a*100/t))),i[0]===u[0]?i[1]<u[1]?-1:i[1]>u[1]?1:0:i[0]<u[0]?-1:1))}var J={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function ie(e,n){var r;function l(o){return!!o&&typeof o=="object"&&!Array.isArray(o)}if(!Array.isArray(e)||!e.length)return null;let s;if(n)if(l(n)){if(s=y(y({},J),n),s.progressFn&&l(s.progressFn)&&!Object.keys(s.progressFn).length)s.progressFn=null;else if(s.progressFn&&typeof s.progressFn!="function")throw new Error(`ranges-merge: [THROW_ID_01] resolvedOpts.progressFn must be a function! It was given of a type: "${typeof s.progressFn}", equal to ${JSON.stringify(s.progressFn,null,4)}`);if(![1,2,"1","2"].includes(s.mergeType))throw new Error(`ranges-merge: [THROW_ID_02] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: "${typeof s.mergeType}", equal to ${JSON.stringify(s.mergeType,null,4)}`);if(typeof s.joinRangesThatTouchEdges!="boolean")throw new Error(`ranges-merge: [THROW_ID_04] resolvedOpts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "${typeof s.joinRangesThatTouchEdges}", equal to ${JSON.stringify(s.joinRangesThatTouchEdges,null,4)}`)}else throw new Error(`ranges-merge: [THROW_ID_03] the second input argument must be a plain object. It was given as:
${JSON.stringify(n,null,4)} (type ${typeof n})`);else s=y({},J);let g=e.filter(o=>Array.isArray(o)).map(o=>[...o]).filter(o=>o[2]!==void 0||o[0]!==o[1]),t,a,i;s.progressFn?t=S(g,{progressFn:o=>{i=Math.floor(o/5),i!==a&&(a=i,s.progressFn!=null&&s.progressFn(i))}}):t=S(g);let u=t.length-1;for(let o=u;o>0;o--)s.progressFn&&(i=Math.floor((1-o/u)*78)+21,i!==a&&i>a&&(a=i,s.progressFn(i))),(t[o][0]<=t[o-1][0]||!s.joinRangesThatTouchEdges&&t[o][0]<t[o-1][1]||s.joinRangesThatTouchEdges&&t[o][0]<=t[o-1][1])&&(t[o-1][0]=Math.min(t[o][0],t[o-1][0]),t[o-1][1]=Math.max(t[o][1],t[o-1][1]),t[o][2]!==void 0&&(t[o-1][0]>=t[o][0]||t[o-1][1]<=t[o][1])&&t[o-1][2]!==null&&(t[o][2]===null&&t[o-1][2]!==null?t[o-1][2]=null:t[o-1][2]!=null?+((r=s||{})==null?void 0:r.mergeType)==2&&t[o-1][0]===t[o][0]?t[o-1][2]=t[o][2]:t[o-1][2]+=t[o][2]:t[o-1][2]=t[o][2]),t.splice(o,1),o=t.length);return t.length?t:null}var le={limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1},H=class{constructor(e){I(this,"ranges");I(this,"opts");let n=y(y({},le),e);if(n.mergeType&&n.mergeType!==1&&n.mergeType!==2)if(E(n.mergeType)&&n.mergeType.trim()==="1")n.mergeType=1;else if(E(n.mergeType)&&n.mergeType.trim()==="2")n.mergeType=2;else throw new Error(`ranges-push: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: "${typeof n.mergeType}", equal to ${JSON.stringify(n.mergeType,null,4)}`);this.opts=n,this.ranges=[]}add(e,n,l){var t;if(e==null&&n==null)return;if(A(e)&&!A(n)){if(Array.isArray(e)){if(e.length){if(e.some(a=>Array.isArray(a))){e.forEach(a=>{Array.isArray(a)&&this.add(...a)});return}e.length&&T(+e[0])&&T(+e[1])&&this.add(...e)}return}throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_12] the first input argument, "from" is set (${JSON.stringify(e,null,0)}) but second-one, "to" is not (${JSON.stringify(n,null,0)})`)}else if(!A(e)&&A(n))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_13] the second input argument, "to" is set (${JSON.stringify(n,null,0)}) but first-one, "from" is not (${JSON.stringify(e,null,0)})`);let s=+e,g=+n;if(T(l)&&(l=String(l)),T(s)&&T(g)){if(A(l)&&!E(l)&&!T(l))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_08] The third argument, the value to add, was given not as string but ${typeof l}, equal to:
${JSON.stringify(l,null,4)}`);if(A(this.ranges)&&Array.isArray(this.last())&&s===this.last()[1]){if(this.last()[1]=g,this.last()[2],this.last()[2]!==null&&A(l)){let a=this.last()[2]&&this.last()[2].length&&(!((t=this.opts)!=null&&t.mergeType)||this.opts.mergeType===1)?`${this.last()[2]}${l}`:l;this.opts.limitToBeAddedWhitespace&&(a=R(a,this.opts.limitLinebreaksCount)),E(a)&&!a.length||(this.last()[2]=a)}}else{this.ranges||(this.ranges=[]);let a=l!==void 0&&!(E(l)&&!l.length)?[s,g,l&&this.opts.limitToBeAddedWhitespace?R(l,this.opts.limitLinebreaksCount):l]:[s,g];this.ranges.push(a)}}else throw T(s)&&s>=0?new TypeError(`ranges-push/Ranges/add(): [THROW_ID_10] "to" value, the second input argument, must be a natural number or zero! Currently it's of a type "${typeof g}" equal to: ${JSON.stringify(g,null,4)}`):new TypeError(`ranges-push/Ranges/add(): [THROW_ID_09] "from" value, the first input argument, must be a natural number or zero! Currently it's of a type "${typeof s}" equal to: ${JSON.stringify(s,null,4)}`)}push(e,n,l){this.add(e,n,l)}current(){return Array.isArray(this.ranges)&&this.ranges.length?(this.ranges=ie(this.ranges,{mergeType:this.opts.mergeType}),this.ranges&&this.opts.limitToBeAddedWhitespace?this.ranges.map(e=>A(e[2])?[e[0],e[1],R(e[2],this.opts.limitLinebreaksCount)]:e):this.ranges):null}wipe(){this.ranges=[]}replace(e){if(Array.isArray(e)&&e.length)if(Array.isArray(e[0])&&T(e[0][0]))this.ranges=Array.from(e);else throw new Error(`ranges-push/Ranges/replace(): [THROW_ID_11] Single range was given but we expected array of arrays! The first element, ${JSON.stringify(e[0],null,4)} should be an array and its first element should be an integer, a string index.`);else this.ranges=[]}last(){return Array.isArray(this.ranges)&&this.ranges.length?this.ranges[this.ranges.length-1]:null}};var M={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function L(e,n){function l(r){return!!r&&typeof r=="object"&&!Array.isArray(r)}if(!Array.isArray(e)||!e.length)return null;let s;if(n)if(l(n)){if(s=y(y({},M),n),s.progressFn&&l(s.progressFn)&&!Object.keys(s.progressFn).length)s.progressFn=null;else if(s.progressFn&&typeof s.progressFn!="function")throw new Error(`ranges-merge: [THROW_ID_01] opts.progressFn must be a function! It was given of a type: "${typeof s.progressFn}", equal to ${JSON.stringify(s.progressFn,null,4)}`);if(![1,2,"1","2"].includes(s.mergeType))throw new Error(`ranges-merge: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: "${typeof s.mergeType}", equal to ${JSON.stringify(s.mergeType,null,4)}`);if(typeof s.joinRangesThatTouchEdges!="boolean")throw new Error(`ranges-merge: [THROW_ID_04] opts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "${typeof s.joinRangesThatTouchEdges}", equal to ${JSON.stringify(s.joinRangesThatTouchEdges,null,4)}`)}else throw new Error(`emlint: [THROW_ID_03] the second input argument must be a plain object. It was given as:
${JSON.stringify(n,null,4)} (type ${typeof n})`);else s=y({},M);let g=e.filter(r=>Array.isArray(r)).map(r=>[...r]).filter(r=>r[2]!==void 0||r[0]!==r[1]),t,a,i;s.progressFn?t=S(g,{progressFn:r=>{i=Math.floor(r/5),i!==a&&(a=i,s.progressFn(i))}}):t=S(g);let u=t.length-1;for(let r=u;r>0;r--)s.progressFn&&(i=Math.floor((1-r/u)*78)+21,i!==a&&i>a&&(a=i,s.progressFn(i))),(t[r][0]<=t[r-1][0]||!s.joinRangesThatTouchEdges&&t[r][0]<t[r-1][1]||s.joinRangesThatTouchEdges&&t[r][0]<=t[r-1][1])&&(t[r-1][0]=Math.min(t[r][0],t[r-1][0]),t[r-1][1]=Math.max(t[r][1],t[r-1][1]),t[r][2]!==void 0&&(t[r-1][0]>=t[r][0]||t[r-1][1]<=t[r][1])&&t[r-1][2]!==null&&(t[r][2]===null&&t[r-1][2]!==null?t[r-1][2]=null:t[r-1][2]!=null?+s.mergeType==2&&t[r-1][0]===t[r][0]?t[r-1][2]=t[r][2]:t[r-1][2]+=t[r][2]:t[r-1][2]=t[r][2]),t.splice(r,1),r=t.length);return t.length?t:null}var ue=!0,j="Invariant failed";function q(e,n){if(!e){if(ue)throw new Error(j);var l=typeof n=="function"?n():n,s=l?"".concat(j,": ").concat(l):j;throw new Error(s)}}function B(e,n,l){let s=0,g=0;if(arguments.length===0)throw new Error("ranges-apply: [THROW_ID_01] inputs missing!");if(typeof e!="string")throw new TypeError(`ranges-apply: [THROW_ID_02] first input argument must be a string! Currently it's: ${typeof e}, equal to: ${JSON.stringify(e,null,4)}`);if(n&&!Array.isArray(n))throw new TypeError(`ranges-apply: [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ${typeof n}, equal to: ${JSON.stringify(n,null,4)}`);if(l&&typeof l!="function")throw new TypeError(`ranges-apply: [THROW_ID_04] the third input argument must be a function (or falsey)! Currently it's: ${typeof l}, equal to: ${JSON.stringify(l,null,4)}`);if(!(n!=null&&n.filter(o=>o).length))return e;let t;Array.isArray(n)&&Number.isInteger(n[0])&&Number.isInteger(n[1])?t=[Array.from(n)]:t=Array.from(n);let a=t.length,i=0;t.filter(o=>o).forEach((o,c)=>{if(l&&(s=Math.floor(i/a*10),s!==g&&(g=s,l(s))),!Array.isArray(o))throw new TypeError(`ranges-apply: [THROW_ID_05] ranges array, second input arg., has ${c}th element not an array: ${JSON.stringify(o,null,4)}, which is ${typeof o}`);if(!Number.isInteger(o[0])){if(!Number.isInteger(+o[0])||+o[0]<0)throw new TypeError(`ranges-apply: [THROW_ID_06] ranges array, second input arg. has ${c}th element, array ${JSON.stringify(o,null,0)}. Its first element is not an integer, string index, but ${typeof o[0]}, equal to: ${JSON.stringify(o[0],null,4)}.`);t[c][0]=+t[c][0]}if(!Number.isInteger(o[1])){if(!Number.isInteger(+o[1])||+o[1]<0)throw new TypeError(`ranges-apply: [THROW_ID_07] ranges array, second input arg. has ${c}th element, array ${JSON.stringify(o,null,0)}. Its second element is not an integer, string index, but ${typeof o[1]}, equal to: ${JSON.stringify(o[1],null,4)}.`);t[c][1]=+t[c][1]}i+=1});let u=L(t,{progressFn:o=>{l&&(s=10+Math.floor(o/10),s!==g&&(g=s,l(s)))}});q(u);let r=u.length;if(r>0){let o=e.slice(u[r-1][1]);e=u.reduce((c,p,f,m)=>{l&&(s=20+Math.floor(f/r*80),s!==g&&(g=s,l(s)));let b=f===0?0:m[f-1][1],d=m[f][0];return`${c}${e.slice(b,d)}${m[f][2]||""}`},""),e+=o}return e}var P="7.0.19";var ce=P;var K={padStart:3,overrideRowNum:null,triggerKeywords:["console.log"],extractedLogContentsWereGiven:!1};function ge(e,n){let l=Date.now(),s="\\";if(typeof e!="string")throw new TypeError(`js-row-num: [THROW_ID_01] Input must be string! Currently it's: ${(typeof e).toLowerCase()}, equal to:
${JSON.stringify(e,null,4)}`);if(!e.trim())return{log:{timeTakenInMilliseconds:Date.now()-l},result:e,ranges:null};function g($){return/[0-9]/.test($)}function t($){return/[A-Za-z]/.test($)}function a($){return!!$&&typeof $=="object"&&!Array.isArray($)}let i=y(y({},K),n);if(W(i,"returnRangesOnly"))throw new TypeError(`js-row-num: [THROW_ID_02] The Optional Options Object's key "returnRangesOnly" has been removed from the API since v.6 release.`);(!i.padStart||typeof i.padStart!="number"||typeof i.padStart=="number"&&i.padStart<0)&&(i.padStart=0);let u=new H,r,o=e.length,c=null,p=null,f=null,m=1,b=!1,d=null;for(i.padStart&&o>45e3&&(i.padStart=4),r=0;r<o;r++){if(i.overrideRowNum===null&&(e[r]===`
`||e[r]==="\r"&&e[r+1]!==`
`)&&(m+=1),!i.extractedLogContentsWereGiven&&c!==null&&c.start<r&&c.type===e[r]&&(c=null,p=null,f=null,d=null,b=!1),c===null&&(i.extractedLogContentsWereGiven||p&&p<r&&f&&f<r)&&e[r].trim())if(e[r]==='"'||e[r]==="'"||e[r]==="`")c={start:r,type:e[r]},b=!1;else if(i.extractedLogContentsWereGiven&&d===null)if(g(e[r]))d=r;else break;else e[r].trim()&&e[r]!=="/"&&!i.extractedLogContentsWereGiven&&(p=null,f=null,d=null);if(c&&Number.isInteger(c.start)&&c.start<r&&!b&&d===null&&g(e[r])&&(d=r),Number.isInteger(d)&&(!g(e[r])||!e[r+1])&&(r>d||!e[r+1])&&(i.padStart||i.overrideRowNum!=null,u.push(d,g(e[r])?r+1:r,i.padStart?String(i.overrideRowNum!=null?i.overrideRowNum:m).padStart(i.padStart,"0"):`${i.overrideRowNum!=null?i.overrideRowNum:m}`),d=null,b=!0),c&&Number.isInteger(c.start)&&c.start<r&&!b&&t(e[r])&&!(e[r]==="n"&&e[r-1]===s)){if(e[r-1]===s&&e[r]==="u"&&e[r+1]==="0"&&e[r+2]==="0"&&e[r+3]==="1"&&(e[r+4]==="b"||e[r+5]==="B")&&e[r+5]==="["){let $;g(e[r+6])?$=r+6:e[r+6]==="$"&&e[r+7]==="{"&&g(e[r+8])&&($=r+8);let h;if($){for(let v=$;v<o;v++)if(!g(e[v])){h=v;break}}let w;if(h!==void 0&&e[h]==="m"?w=h:h!==void 0&&e[h]==="}"&&e[h+1]==="m"&&(w=h+1),!w){b=!0;continue}if(e[w+1]==="$"&&e[w+2]==="{"&&e[w+3]==="`"){r=w+3;continue}}b=!0}if(!f&&e[r].trim()&&p&&p<=r&&(e[r]==="("?f=r:(p=null,d=null)),a(i)&&i.triggerKeywords&&Array.isArray(i.triggerKeywords)){let $;for(let h=0,w=i.triggerKeywords.length;h<w;h++)if(e.startsWith(i.triggerKeywords[h],r)){$=i.triggerKeywords[h];break}if($){p=r+$.length,r=r+$.length-1;continue}}}return c=null,p=null,f=null,m=1,b=void 0,d=null,m=1,{log:{timeTakenInMilliseconds:Date.now()-l},result:B(e,u.current()),ranges:u.current()}}return re(fe);})();
/**
* @name string-collapse-leading-whitespace
* @fileoverview Collapse the leading and trailing whitespace of a string
* @version 7.0.9
* @author Roy Revelt, Codsen Ltd
* @license MIT
* {@link https://codsen.com/os/string-collapse-leading-whitespace/}
*/
/**
* @name codsen-utils
* @fileoverview Various utility functions
* @version 1.6.7
* @author Roy Revelt, Codsen Ltd
* @license MIT
* {@link https://codsen.com/os/codsen-utils/}
*/
/**
* @name ranges-sort
* @fileoverview Sort string index ranges
* @version 6.0.13
* @author Roy Revelt, Codsen Ltd
* @license MIT
* {@link https://codsen.com/os/ranges-sort/}
*/
/**
* @name ranges-push
* @fileoverview Gather string index ranges
* @version 7.0.18
* @author Roy Revelt, Codsen Ltd
* @license MIT
* {@link https://codsen.com/os/ranges-push/}
*/
/**
* @name ranges-merge
* @fileoverview Merge and sort string index ranges
* @version 9.0.18
* @author Roy Revelt, Codsen Ltd
* @license MIT
* {@link https://codsen.com/os/ranges-merge/}
*/
/**
* @name ranges-apply
* @fileoverview Take an array of string index ranges, delete/replace the string according to them
* @version 7.0.19
* @author Roy Revelt, Codsen Ltd
* @license MIT
* {@link https://codsen.com/os/ranges-apply/}
*/