string-remove-widows
Advanced tools
Comparing version 4.0.20 to 4.0.21
/** | ||
* @name string-remove-widows | ||
* @fileoverview Helps to prevent widow words in a text | ||
* @version 4.0.20 | ||
* @version 4.0.21 | ||
* @author Roy Revelt, Codsen Ltd | ||
@@ -10,3 +10,3 @@ * @license MIT | ||
import{matchRightIncl as Q}from"string-match-left-right";import{left as T,right as D}from"string-left-right";import{Ranges as X}from"ranges-push";import{rApply as q}from"ranges-apply";import{rawNbsp as w,rawNDash as ee,rawMDash as te}from"codsen-utils";var R="4.0.20";var f=" ",E="\\00A0",S="\\u00A0",j="–",M="\\2013",J="\\u2013",U="—",k="\\2014",I="\\u2014",C=[{heads:"{{",tails:"}}"},{heads:["{% if","{%- if"],tails:["{% endif","{%- endif"]},{heads:["{% for","{%- for"],tails:["{% endfor","{%- endfor"]},{heads:["{%","{%-"],tails:["%}","-%}"]},{heads:"{#",tails:"#}"}],B=[{heads:"{{",tails:"}}"}],P=[{heads:["<%","<%=","<%-"],tails:["%>","=%>","-%>"]}],_=["abbr","address","area","article","aside","audio","base","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","doctype","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","param","picture","pre","progress","rb","rp","rt","rtc","ruby","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","ul","var","video","wbr","xml"];var ce=R,oe={removeWidowPreventionMeasures:!1,convertEntities:!0,targetLanguage:"html",UKPostcodes:!1,hyphens:!0,minWordCount:4,minCharCount:5,ignore:[],reportProgressFunc:null,reportProgressFuncFrom:0,reportProgressFuncTo:100,tagRanges:[]};function me(t,h){let G=Date.now();if(typeof t!="string")throw t===void 0?new Error("string-remove-widows: [THROW_ID_01] the first input argument is completely missing! It should be given as string."):new Error(`string-remove-widows: [THROW_ID_02] the first input argument must be string! It was given as "${typeof t}", equal to: | ||
import{matchRightIncl as Q}from"string-match-left-right";import{left as T,right as D}from"string-left-right";import{Ranges as X}from"ranges-push";import{rApply as q}from"ranges-apply";import{rawNbsp as w,rawNDash as ee,rawMDash as te}from"codsen-utils";var R="4.0.21";var f=" ",E="\\00A0",S="\\u00A0",j="–",M="\\2013",J="\\u2013",U="—",k="\\2014",I="\\u2014",C=[{heads:"{{",tails:"}}"},{heads:["{% if","{%- if"],tails:["{% endif","{%- endif"]},{heads:["{% for","{%- for"],tails:["{% endfor","{%- endfor"]},{heads:["{%","{%-"],tails:["%}","-%}"]},{heads:"{#",tails:"#}"}],B=[{heads:"{{",tails:"}}"}],P=[{heads:["<%","<%=","<%-"],tails:["%>","=%>","-%>"]}],_=["abbr","address","area","article","aside","audio","base","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","doctype","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","param","picture","pre","progress","rb","rp","rt","rtc","ruby","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","ul","var","video","wbr","xml"];var ce=R,oe={removeWidowPreventionMeasures:!1,convertEntities:!0,targetLanguage:"html",UKPostcodes:!1,hyphens:!0,minWordCount:4,minCharCount:5,ignore:[],reportProgressFunc:null,reportProgressFuncFrom:0,reportProgressFuncTo:100,tagRanges:[]};function me(t,h){let G=Date.now();if(typeof t!="string")throw t===void 0?new Error("string-remove-widows: [THROW_ID_01] the first input argument is completely missing! It should be given as string."):new Error(`string-remove-widows: [THROW_ID_02] the first input argument must be string! It was given as "${typeof t}", equal to: | ||
${JSON.stringify(t,null,4)}`);if(h&&typeof h!="object")throw new Error(`string-remove-widows: [THROW_ID_03] the second input argument, options object, should be a plain object but it was given as type ${typeof h}, equal to ${JSON.stringify(h,null,4)}`);let b=Array.isArray,L=t.length,a=new X({mergeType:2}),K=["."],Z=/[A-Z]{1,2}[0-9][0-9A-Z]?$/,Y=/^[0-9][A-Z]{2}/,V=.06,$,A=0,g=0,W=0,y,N,u,c,r,d,s,p,o={...oe,...h},m={removeWidows:!1,convertEntities:!1};if(!o.ignore||!b(o.ignore)&&typeof o.ignore!="string")o.ignore=[];else if(typeof o.ignore=="string"&&(o.ignore=[o.ignore]),o.ignore.includes("all"))o.ignore=o.ignore.concat(C.concat(P));else if(o.ignore.some(e=>typeof e=="string")){let e=[];o.ignore=o.ignore.filter(i=>typeof i=="string"&&i.length?(["nunjucks","jinja","liquid"].includes(i.trim().toLowerCase())?e=e.concat(C):["hugo"].includes(i.trim().toLowerCase())?e=e.concat(B):["hexo"].includes(i.trim().toLowerCase())&&(e=e.concat(P)),!1):typeof i=="object"),e.length&&(o.ignore=o.ignore.concat(e))}let x;o.reportProgressFunc&&(x=Math.floor(o.reportProgressFuncTo-(o.reportProgressFuncTo-o.reportProgressFuncFrom)*V-o.reportProgressFuncFrom));function v(e,i){let n=w;o.removeWidowPreventionMeasures?n=" ":o.convertEntities&&(n=f,typeof o.targetLanguage=="string"&&(o.targetLanguage.trim().toLowerCase()==="css"?n=E:o.targetLanguage.trim().toLowerCase()==="js"&&(n=S))),t.slice(e,i)!==n&&a.push(e,i,n)}function O(){g=0,W=0,y=void 0,N=void 0,u=void 0,c=void 0,r=void 0,d=void 0}O();for(let e=0;e<=L;e++){if(!s&&b(o.ignore)&&o.ignore.length&&o.ignore.some((n,l)=>{if(b(n.heads)&&n.heads.some(H=>t.startsWith(H,e))||typeof n.heads=="string"&&t.startsWith(n.heads,e))return g+=1,s=o.ignore[l].tails,!0}),!s&&p&&p===e&&(g+=1,p=void 0),typeof o.reportProgressFunc=="function"&&($=o.reportProgressFuncFrom+Math.floor(e/L*(x||1)),$!==A&&(A=$,o.reportProgressFunc($))),!s&&e&&t[e]?.trim()&&(!t[e-1]||t[e-1]&&!t[e-1].trim())&&(c=e),!s&&t[e]?.trim()&&(W+=1),!s&&o.hyphens&&(`-${te}${ee}`.includes(t[e])||t.startsWith(j,e)||t.startsWith(M,e)||t.startsWith(J,e)||t.startsWith(U,e)||t.startsWith(k,e)||t.startsWith(I,e))&&t[e+1]&&(!t[e+1].trim()||t[e]==="&")&&t[e-1]&&!t[e-1].trim()&&t[T(t,e)]&&(v(T(t,e)+1,e),m.removeWidows=!0),!s&&(t.startsWith(" ",e)||t.startsWith(" ",e))&&(r=e,d=e+6,t[e+6]?.trim()&&(p=e+6),o.convertEntities?(o.targetLanguage==="css"||o.targetLanguage==="js")&&(a.push(e,e+6,o.targetLanguage==="css"?E:S),m.convertEntities=!0):(a.push(e,e+6,w),m.convertEntities=!0)),!s&&t[e+4]&&t[e]==="\\"&&t[e+1]==="0"&&t[e+2]==="0"&&t[e+3].toUpperCase()==="A"&&t[e+4]==="0"&&(r=e,d=e+5,t[e+5]?.trim()&&(p=e+5),o.convertEntities?(o.targetLanguage==="html"||o.targetLanguage==="js")&&(a.push(e,e+5,o.targetLanguage==="html"?f:S),m.convertEntities=!0):(a.push(e,e+5,w),m.convertEntities=!0)),!s&&t[e]==="\\"&&t[e+1]&&t[e+1].toLowerCase()==="u"&&t[e+2]==="0"&&t[e+3]==="0"&&t[e+4]&&t[e+4].toUpperCase()==="A"&&t[e+5]==="0"&&(r=e,d=e+6,t[e+6]?.trim()&&(p=e+6),o.convertEntities?(o.targetLanguage==="html"||o.targetLanguage==="css")&&a.push(e,e+6,o.targetLanguage==="html"?f:E):a.push(e,e+6,w)),!s&&t[e]===w&&(r=e,d=e+1,o.convertEntities&&a.push(e,e+1,o.targetLanguage==="css"?E:o.targetLanguage==="js"?S:f)),!s&&t[e]?.trim()&&!t[e-1]?.trim()&&(g+=1),!s&&(!t[e]||`\r | ||
@@ -13,0 +13,0 @@ `.includes(t[e])||(t[e]===` |
/** | ||
* @name string-remove-widows | ||
* @fileoverview Helps to prevent widow words in a text | ||
* @version 4.0.20 | ||
* @version 4.0.21 | ||
* @author Roy Revelt, Codsen Ltd | ||
@@ -10,23 +10,23 @@ * @license MIT | ||
"use strict";var stringRemoveWidows=(()=>{var Pe=Object.create;var j=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames,me=Object.getOwnPropertySymbols,Ue=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable;var q=(e,r,a)=>r in e?j(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,A=(e,r)=>{for(var a in r||(r={}))de.call(r,a)&&q(e,a,r[a]);if(me)for(var a of me(r))qe.call(r,a)&&q(e,a,r[a]);return e};var ke=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Qe=(e,r)=>{for(var a in r)j(e,a,{get:r[a],enumerable:!0})},he=(e,r,a,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let u of Je(r))!de.call(e,u)&&u!==a&&j(e,u,{get:()=>r[u],enumerable:!(s=Be(r,u))||s.enumerable});return e};var pe=(e,r,a)=>(a=e!=null?Pe(Ue(e)):{},he(r||!e||!e.__esModule?j(a,"default",{value:e,enumerable:!0}):a,e)),Ge=e=>he(j({},"__esModule",{value:!0}),e);var k=(e,r,a)=>(q(e,typeof r!="symbol"?r+"":r,a),a);var Q=ke((ct,be)=>{"use strict";be.exports=Ke;function M(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function Ke(e){if(e=e||{},e.circles)return Ze(e);return e.proto?s:a;function r(u,t){for(var l=Object.keys(u),i=new Array(l.length),g=0;g<l.length;g++){var n=l[g],c=u[n];typeof c!="object"||c===null?i[n]=c:c instanceof Date?i[n]=new Date(c):ArrayBuffer.isView(c)?i[n]=M(c):i[n]=t(c)}return i}function a(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return r(u,a);if(u instanceof Map)return new Map(r(Array.from(u),a));if(u instanceof Set)return new Set(r(Array.from(u),a));var t={};for(var l in u)if(Object.hasOwnProperty.call(u,l)!==!1){var i=u[l];typeof i!="object"||i===null?t[l]=i:i instanceof Date?t[l]=new Date(i):i instanceof Map?t[l]=new Map(r(Array.from(i),a)):i instanceof Set?t[l]=new Set(r(Array.from(i),a)):ArrayBuffer.isView(i)?t[l]=M(i):t[l]=a(i)}return t}function s(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return r(u,s);if(u instanceof Map)return new Map(r(Array.from(u),s));if(u instanceof Set)return new Set(r(Array.from(u),s));var t={};for(var l in u){var i=u[l];typeof i!="object"||i===null?t[l]=i:i instanceof Date?t[l]=new Date(i):i instanceof Map?t[l]=new Map(r(Array.from(i),s)):i instanceof Set?t[l]=new Set(r(Array.from(i),s)):ArrayBuffer.isView(i)?t[l]=M(i):t[l]=s(i)}return t}}function Ze(e){var r=[],a=[];return e.proto?t:u;function s(l,i){for(var g=Object.keys(l),n=new Array(g.length),c=0;c<g.length;c++){var p=g[c],h=l[p];if(typeof h!="object"||h===null)n[p]=h;else if(h instanceof Date)n[p]=new Date(h);else if(ArrayBuffer.isView(h))n[p]=M(h);else{var m=r.indexOf(h);m!==-1?n[p]=a[m]:n[p]=i(h)}}return n}function u(l){if(typeof l!="object"||l===null)return l;if(l instanceof Date)return new Date(l);if(Array.isArray(l))return s(l,u);if(l instanceof Map)return new Map(s(Array.from(l),u));if(l instanceof Set)return new Set(s(Array.from(l),u));var i={};r.push(l),a.push(i);for(var g in l)if(Object.hasOwnProperty.call(l,g)!==!1){var n=l[g];if(typeof n!="object"||n===null)i[g]=n;else if(n instanceof Date)i[g]=new Date(n);else if(n instanceof Map)i[g]=new Map(s(Array.from(n),u));else if(n instanceof Set)i[g]=new Set(s(Array.from(n),u));else if(ArrayBuffer.isView(n))i[g]=M(n);else{var c=r.indexOf(n);c!==-1?i[g]=a[c]:i[g]=u(n)}}return r.pop(),a.pop(),i}function t(l){if(typeof l!="object"||l===null)return l;if(l instanceof Date)return new Date(l);if(Array.isArray(l))return s(l,t);if(l instanceof Map)return new Map(s(Array.from(l),t));if(l instanceof Set)return new Set(s(Array.from(l),t));var i={};r.push(l),a.push(i);for(var g in l){var n=l[g];if(typeof n!="object"||n===null)i[g]=n;else if(n instanceof Date)i[g]=new Date(n);else if(n instanceof Map)i[g]=new Map(s(Array.from(n),t));else if(n instanceof Set)i[g]=new Set(s(Array.from(n),t));else if(ArrayBuffer.isView(n))i[g]=M(n);else{var c=r.indexOf(n);c!==-1?i[g]=a[c]:i[g]=t(n)}}return r.pop(),a.pop(),i}}});var ut={};Qe(ut,{defaults:()=>He,removeWidows:()=>lt,version:()=>at});function $e(e){return typeof e!="string"?e:e.length?[e]:[]}var ye=pe(Q(),1);var mt=(0,ye.default)();var we="\u2013",Ee="\u2014",x="\xA0";function F(e){if(e==null||typeof e!="object")return!1;let r=Object.getPrototypeOf(e);return r!==null&&r!==Object.prototype&&Object.getPrototypeOf(r)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}function N(e){return typeof e=="string"}function O(e){return Number.isSafeInteger(e)&&e>=0}function R(e){return e!=null}function Ae(e,r){return F(e)&&N(r)&&r in e}var Te={cb:void 0,i:!1,trimBeforeMatching:!1,trimCharsBeforeMatching:[],maxMismatches:0,firstMustMatch:!1,lastMustMatch:!1,hungry:!1},ze=e=>e+1;function Ye(e,r,a,s,u=!1,t=ze){let l=typeof a=="function"?a():a;if(+r<0&&u&&l==="EOL")return l;let i=A(A({},Te),s);if(r>=e.length&&!u)return!1;let g=u?1:a.length,n=0,c=!1,p=!1,h=!1,m=i.maxMismatches,d=r,v=!1,y=!1,T=!1;function w(){return n===1&&m<i.maxMismatches-1}for(;e[d];){let $=t(d);if(i.trimBeforeMatching&&e[d].trim()===""){if(!e[$]&&u&&a==="EOL")return!0;d=t(d);continue}if(i&&!i.i&&i.trimCharsBeforeMatching&&i.trimCharsBeforeMatching.includes(e[d])||i!=null&&i.i&&i.trimCharsBeforeMatching&&i.trimCharsBeforeMatching.map(S=>S.toLowerCase()).includes(e[d].toLowerCase())){if(u&&a==="EOL"&&!e[$])return!0;d=t(d);continue}let E=$>d?a[a.length-g]:a[g-1];if(!i.i&&e[d]===E||i.i&&e[d].toLowerCase()===E.toLowerCase()){if(v||(v=!0),h||(h=!0),g===a.length){if(y=!0,m!==i.maxMismatches)return!1}else g===1&&(T=!0);if(g-=1,n++,w())return!1;if(!g)return n!==a.length||m===i.maxMismatches||!c?d:!1}else if(!c&&!n&&(c=!0),i.maxMismatches&&m&&d){m-=1;for(let S=0;S<=m;S++){let f=$>d?a[a.length-g+1+S]:a[g-2-S],W=e[t(d)];if(f&&(!i.i&&e[d]===f||i.i&&e[d].toLowerCase()===f.toLowerCase())&&(!i.firstMustMatch||g!==a.length)){if(n++,w())return!1;g-=2,v=!0;break}else if(W&&f&&(!i.i&&W===f||i.i&&W.toLowerCase()===f.toLowerCase())&&(!i.firstMustMatch||g!==a.length)){if(!n&&!i.hungry)return!1;g-=1,v=!0;break}else if(f===void 0&&m>=0&&v&&(!i.firstMustMatch||y)&&(!i.lastMustMatch||T))return d}v||(p=d)}else return d===0&&g===1&&!i.lastMustMatch&&h?0:!1;if(p!==!1&&p!==d&&(p=!1),g<1)return d;d=t(d)}if(g>0)return u&&l==="EOL"?!0:i&&i.maxMismatches>=g&&h?p||0:!1}function Xe(e,r,a,s,u){var c,p;if(F(u)&&Ae(u,"trimBeforeMatching")&&u&&typeof u.trimBeforeMatching!="boolean")throw new Error(`string-match-left-right/${e}(): [THROW_ID_09] opts.trimBeforeMatching should be boolean!${Array.isArray(u.trimBeforeMatching)?" Did you mean to use opts.trimCharsBeforeMatching?":""}`);let t=A(A({},Te),u);if(typeof t.trimCharsBeforeMatching=="string"&&(t.trimCharsBeforeMatching=$e(t.trimCharsBeforeMatching)),t.trimCharsBeforeMatching=t.trimCharsBeforeMatching.map(h=>N(h)?h:String(h)),!N(r)||!r.length)return!1;if(!Number.isInteger(a)||a<0)throw new Error(`string-match-left-right/${e}(): [THROW_ID_03] the second argument should be a natural number. Currently it's of a type: ${typeof a}, equal to: | ||
${JSON.stringify(a,null,4)}`);let l,i;if(N(s))l=[s];else if(Array.isArray(s))l=s;else if(!s)l=s;else if(typeof s=="function")l=[],l.push(s);else throw new Error(`string-match-left-right/${e}(): [THROW_ID_05] the third argument, whatToMatch, is neither string nor array of strings! It's ${typeof s}, equal to: | ||
${JSON.stringify(s,null,4)}`);if(u&&!F(u))throw new Error(`string-match-left-right/${e}(): [THROW_ID_06] the fourth argument, options object, should be a plain object. Currently it's of a type "${typeof u}", and equal to: | ||
${JSON.stringify(u,null,4)}`);let g=0,n="";if(t!=null&&t.trimCharsBeforeMatching&&t.trimCharsBeforeMatching.some((h,m)=>h.length>1?(g=m,n=h,!0):!1))throw new Error(`string-match-left-right/${e}(): [THROW_ID_07] the fourth argument, options object contains trimCharsBeforeMatching. It was meant to list the single characters but one of the entries at index ${g} is longer than 1 character, ${n.length} (equals to ${n}). Please split it into separate characters and put into array as separate elements.`);if(!l||!Array.isArray(l)||Array.isArray(l)&&!l.length||Array.isArray(l)&&l.length===1&&N(l[0])&&!l[0].trim()){if(typeof t.cb=="function"){let m,d=a;if((e==="matchLeftIncl"||e==="matchRight")&&(d+=1),e[5]==="L")for(let w=d;w--;){let $=r[w];if((!t.trimBeforeMatching||t.trimBeforeMatching&&($!=null&&$.trim()))&&(!((c=t.trimCharsBeforeMatching)!=null&&c.length)||$!==void 0&&!t.trimCharsBeforeMatching.includes($))){m=w;break}}else if(e.startsWith("matchRight"))for(let w=d;w<r.length;w++){let $=r[w];if((!t.trimBeforeMatching||t.trimBeforeMatching&&$.trim())&&(!((p=t.trimCharsBeforeMatching)!=null&&p.length)||!t.trimCharsBeforeMatching.includes($))){m=w;break}}if(m===void 0)return!1;let v=r[m],y=m+1,T="";return y&&y>0&&(T=r.slice(0,y)),e[5]==="L"||m&&m>0&&(T=r.slice(m)),t.cb(v,T,m)}let h="";throw u||(h=" More so, the whole options object, the fourth input argument, is missing!"),new Error(`string-match-left-right/${e}(): [THROW_ID_08] the third argument, "whatToMatch", was given as an empty string. This means, you intend to match purely by a callback. The callback was not set though, the opts key "cb" is not set!${h}`)}for(let h=0,m=l.length;h<m;h++){i=typeof l[h]=="function";let d=l[h],v,y,T="",w=a;e==="matchRight"?w+=1:e==="matchLeft"&&(w-=1);let $=Ye(r,w,d,t,i,E=>e[5]==="L"?E-1:E+1);if($&&i&&typeof d=="function"&&d()==="EOL")return d()&&(!t.cb||t.cb(v,T,y))?d():!1;if(Number.isInteger($)&&(y=e.startsWith("matchLeft")?$-1:$+1,e[5]==="L"?T=r.slice(0,$):T=r.slice(y)),y<0&&(y=void 0),r[y]&&(v=r[y]),Number.isInteger($)&&(!t.cb||t.cb(v,T,y)))return d}return!1}function ve(e,r,a,s){return Xe("matchRightIncl",e,r,a,s)}var Se=pe(Q(),1);var wt=(0,Se.default)();var I="\xA0";function et({str:e,idx:r=0,stopAtNewlines:a=!1,stopAtRawNbsp:s=!1}){if(typeof e!="string"||!e.length||((!r||typeof r!="number")&&(r=0),!e[r+1]))return null;if(e[r+1]&&(e[r+1].trim()||a&&` | ||
\r`.includes(e[r+1])||s&&e[r+1]===I))return r+1;if(e[r+2]&&(e[r+2].trim()||a&&` | ||
\r`.includes(e[r+2])||s&&e[r+2]===I))return r+2;for(let u=r+1,t=e.length;u<t;u++)if(e[u].trim()||a&&` | ||
\r`.includes(e[u])||s&&e[u]===I)return u;return null}function L(e,r=0){return et({str:e,idx:r,stopAtNewlines:!1,stopAtRawNbsp:!1})}function tt({str:e,idx:r,stopAtNewlines:a,stopAtRawNbsp:s}){if(typeof e!="string"||!e.length||((!r||typeof r!="number")&&(r=0),r<1))return null;if(e[~-r]&&(e[~-r].trim()||a&&` | ||
\r`.includes(e[~-r])||s&&e[~-r]===I))return~-r;if(e[r-2]&&(e[r-2].trim()||a&&` | ||
\r`.includes(e[r-2])||s&&e[r-2]===I))return r-2;for(let u=r;u--;)if(e[u]&&(e[u].trim()||a&&` | ||
\r`.includes(e[u])||s&&e[u]===I))return u;return null}function _(e,r=0){return tt({str:e,idx:r,stopAtNewlines:!1,stopAtRawNbsp:!1})}function J(e,r=1){let a="\xA0";function s(t){return Array.from(t).reverse().join("")}function u(t,l,i){let g=i?` | ||
`:"\r",n=i?"\r":` | ||
`;if(!t)return t;let c=0,p=0,h="";for(let m=0,d=t.length;m<d;m++)(t[m]===g||t[m]===n&&t[m-1]!==g)&&p++,`\r | ||
`.includes(t[m])||t[m]===a?(c=0,t[m]===a?h+=t[m]:t[m]===g?p<=l&&(h+=t[m],t[m+1]===n&&(h+=t[m+1],m++)):t[m]===n&&(t==null?void 0:t[m-1])!==g&&p<=l&&(h+=t[m])):(c++,!t[m+1]&&!p&&(h+=" "));return h}if(typeof e=="string"&&e.length){let t=1;typeof+r=="number"&&Number.isInteger(+r)&&+r>=0&&(t=+r);let l="",i="";if(!e.trim())l=e;else if(!e[0].trim()){for(let g=0,n=e.length;g<n;g++)if(e[g].trim()){l=e.slice(0,g);break}}if(e.trim()&&(e.slice(-1).trim()===""||e.slice(-1)===a)){for(let g=e.length;g--;)if(e[g].trim()){i=e.slice(g+1);break}}return`${u(l,t,!1)}${e.trim()}${s(u(s(i),t,!0))}`}return e}var rt={strictlyTwoElementsInRangeArrays:!1,progressFn:null};function V(e,r){if(!Array.isArray(e)||!e.length)return e;let a=A(A({},rt),r),s,u;if(a.strictlyTwoElementsInRangeArrays&&!e.every((i,g)=>!Array.isArray(i)||i.length!==2?(s=g,u=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 ${u} elements!`);if(!e.every((i,g)=>!Array.isArray(i)||!Number.isInteger(i[0])||i[0]<0||!Number.isInteger(i[1])||i[1]<0?(s=g,!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,l=0;return Array.from(e).sort((i,g)=>(a.progressFn&&(l+=1,a.progressFn(Math.floor(l*100/t))),i[0]===g[0]?i[1]<g[1]?-1:i[1]>g[1]?1:0:i[0]<g[0]?-1:1))}var De={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function nt(e,r){function a(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}if(!Array.isArray(e)||!e.length)return null;let s;if(r)if(a(r)){if(s=A(A({},De),r),s.progressFn&&a(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(`emlint: [THROW_ID_03] the second input argument must be a plain object. It was given as: | ||
${JSON.stringify(r,null,4)} (type ${typeof r})`);else s=A({},De);let u=e.filter(n=>Array.isArray(n)).map(n=>[...n]).filter(n=>n[2]!==void 0||n[0]!==n[1]),t,l,i;s.progressFn?t=V(u,{progressFn:n=>{i=Math.floor(n/5),i!==l&&(l=i,s.progressFn(i))}}):t=V(u);let g=t.length-1;for(let n=g;n>0;n--)s.progressFn&&(i=Math.floor((1-n/g)*78)+21,i!==l&&i>l&&(l=i,s.progressFn(i))),(t[n][0]<=t[n-1][0]||!s.joinRangesThatTouchEdges&&t[n][0]<t[n-1][1]||s.joinRangesThatTouchEdges&&t[n][0]<=t[n-1][1])&&(t[n-1][0]=Math.min(t[n][0],t[n-1][0]),t[n-1][1]=Math.max(t[n][1],t[n-1][1]),t[n][2]!==void 0&&(t[n-1][0]>=t[n][0]||t[n-1][1]<=t[n][1])&&t[n-1][2]!==null&&(t[n][2]===null&&t[n-1][2]!==null?t[n-1][2]=null:t[n-1][2]!=null?+s.mergeType==2&&t[n-1][0]===t[n][0]?t[n-1][2]=t[n][2]:t[n-1][2]+=t[n][2]:t[n-1][2]=t[n][2]),t.splice(n,1),n=t.length);return t.length?t:null}var st={limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1},Ne=class{constructor(e){k(this,"ranges");k(this,"opts");let r=A(A({},st),e);if(r.mergeType&&r.mergeType!==1&&r.mergeType!==2)if(N(r.mergeType)&&r.mergeType.trim()==="1")r.mergeType=1;else if(N(r.mergeType)&&r.mergeType.trim()==="2")r.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 r.mergeType}", equal to ${JSON.stringify(r.mergeType,null,4)}`);this.opts=r,this.ranges=[]}add(e,r,a){var t;if(e==null&&r==null)return;if(R(e)&&!R(r)){if(Array.isArray(e)){if(e.length){if(e.some(l=>Array.isArray(l))){e.forEach(l=>{Array.isArray(l)&&this.add(...l)});return}e.length&&O(+e[0])&&O(+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(r,null,0)})`)}else if(!R(e)&&R(r))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_13] the second input argument, "to" is set (${JSON.stringify(r,null,0)}) but first-one, "from" is not (${JSON.stringify(e,null,0)})`);let s=+e,u=+r;if(O(a)&&(a=String(a)),O(s)&&O(u)){if(R(a)&&!N(a)&&!O(a))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_08] The third argument, the value to add, was given not as string but ${typeof a}, equal to: | ||
${JSON.stringify(a,null,4)}`);if(R(this.ranges)&&Array.isArray(this.last())&&s===this.last()[1]){if(this.last()[1]=u,this.last()[2],this.last()[2]!==null&&R(a)){let l=this.last()[2]&&this.last()[2].length&&(!((t=this.opts)!=null&&t.mergeType)||this.opts.mergeType===1)?`${this.last()[2]}${a}`:a;this.opts.limitToBeAddedWhitespace&&(l=J(l,this.opts.limitLinebreaksCount)),N(l)&&!l.length||(this.last()[2]=l)}}else{this.ranges||(this.ranges=[]);let l=a!==void 0&&!(N(a)&&!a.length)?[s,u,a&&this.opts.limitToBeAddedWhitespace?J(a,this.opts.limitLinebreaksCount):a]:[s,u];this.ranges.push(l)}}else throw O(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 u}" equal to: ${JSON.stringify(u,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,r,a){this.add(e,r,a)}current(){return Array.isArray(this.ranges)&&this.ranges.length?(this.ranges=nt(this.ranges,{mergeType:this.opts.mergeType}),this.ranges&&this.opts.limitToBeAddedWhitespace?this.ranges.map(e=>R(e[2])?[e[0],e[1],J(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])&&O(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 We={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function Ce(e,r){function a(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}if(!Array.isArray(e)||!e.length)return null;let s;if(r)if(a(r)){if(s=A(A({},We),r),s.progressFn&&a(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(r,null,4)} (type ${typeof r})`);else s=A({},We);let u=e.filter(n=>Array.isArray(n)).map(n=>[...n]).filter(n=>n[2]!==void 0||n[0]!==n[1]),t,l,i;s.progressFn?t=V(u,{progressFn:n=>{i=Math.floor(n/5),i!==l&&(l=i,s.progressFn(i))}}):t=V(u);let g=t.length-1;for(let n=g;n>0;n--)s.progressFn&&(i=Math.floor((1-n/g)*78)+21,i!==l&&i>l&&(l=i,s.progressFn(i))),(t[n][0]<=t[n-1][0]||!s.joinRangesThatTouchEdges&&t[n][0]<t[n-1][1]||s.joinRangesThatTouchEdges&&t[n][0]<=t[n-1][1])&&(t[n-1][0]=Math.min(t[n][0],t[n-1][0]),t[n-1][1]=Math.max(t[n][1],t[n-1][1]),t[n][2]!==void 0&&(t[n-1][0]>=t[n][0]||t[n-1][1]<=t[n][1])&&t[n-1][2]!==null&&(t[n][2]===null&&t[n-1][2]!==null?t[n-1][2]=null:t[n-1][2]!=null?+s.mergeType==2&&t[n-1][0]===t[n][0]?t[n-1][2]=t[n][2]:t[n-1][2]+=t[n][2]:t[n-1][2]=t[n][2]),t.splice(n,1),n=t.length);return t.length?t:null}var it=!0,G="Invariant failed";function Oe(e,r){if(!e){if(it)throw new Error(G);var a=typeof r=="function"?r():r,s=a?"".concat(G,": ").concat(a):G;throw new Error(s)}}function K(e,r,a){let s=0,u=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(r&&!Array.isArray(r))throw new TypeError(`ranges-apply: [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ${typeof r}, equal to: ${JSON.stringify(r,null,4)}`);if(a&&typeof a!="function")throw new TypeError(`ranges-apply: [THROW_ID_04] the third input argument must be a function (or falsey)! Currently it's: ${typeof a}, equal to: ${JSON.stringify(a,null,4)}`);if(!(r!=null&&r.filter(c=>c).length))return e;let t;Array.isArray(r)&&Number.isInteger(r[0])&&Number.isInteger(r[1])?t=[Array.from(r)]:t=Array.from(r);let l=t.length,i=0;t.filter(c=>c).forEach((c,p)=>{if(a&&(s=Math.floor(i/l*10),s!==u&&(u=s,a(s))),!Array.isArray(c))throw new TypeError(`ranges-apply: [THROW_ID_05] ranges array, second input arg., has ${p}th element not an array: ${JSON.stringify(c,null,4)}, which is ${typeof c}`);if(!Number.isInteger(c[0])){if(!Number.isInteger(+c[0])||+c[0]<0)throw new TypeError(`ranges-apply: [THROW_ID_06] ranges array, second input arg. has ${p}th element, array ${JSON.stringify(c,null,0)}. Its first element is not an integer, string index, but ${typeof c[0]}, equal to: ${JSON.stringify(c[0],null,4)}.`);t[p][0]=+t[p][0]}if(!Number.isInteger(c[1])){if(!Number.isInteger(+c[1])||+c[1]<0)throw new TypeError(`ranges-apply: [THROW_ID_07] ranges array, second input arg. has ${p}th element, array ${JSON.stringify(c,null,0)}. Its second element is not an integer, string index, but ${typeof c[1]}, equal to: ${JSON.stringify(c[1],null,4)}.`);t[p][1]=+t[p][1]}i+=1});let g=Ce(t,{progressFn:c=>{a&&(s=10+Math.floor(c/10),s!==u&&(u=s,a(s)))}});Oe(g);let n=g.length;if(n>0){let c=e.slice(g[n-1][1]);e=g.reduce((p,h,m,d)=>{a&&(s=20+Math.floor(m/n*80),s!==u&&(u=s,a(s)));let v=m===0?0:d[m-1][1],y=d[m][0];return`${p}${e.slice(v,y)}${d[m][2]||""}`},""),e+=c}return e}var Re="4.0.20";var H=" ",P="\\00A0",B="\\u00A0",Me="–",xe="\\2013",Ie="\\u2013",Le="—",Ve="\\2014",je="\\u2014",Z=[{heads:"{{",tails:"}}"},{heads:["{% if","{%- if"],tails:["{% endif","{%- endif"]},{heads:["{% for","{%- for"],tails:["{% endfor","{%- endfor"]},{heads:["{%","{%-"],tails:["%}","-%}"]},{heads:"{#",tails:"#}"}],Fe=[{heads:"{{",tails:"}}"}],z=[{heads:["<%","<%=","<%-"],tails:["%>","=%>","-%>"]}],_e=["abbr","address","area","article","aside","audio","base","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","doctype","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","param","picture","pre","progress","rb","rp","rt","rtc","ruby","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","ul","var","video","wbr","xml"];var at=Re,He={removeWidowPreventionMeasures:!1,convertEntities:!0,targetLanguage:"html",UKPostcodes:!1,hyphens:!0,minWordCount:4,minCharCount:5,ignore:[],reportProgressFunc:null,reportProgressFuncFrom:0,reportProgressFuncTo:100,tagRanges:[]};function lt(e,r){var ee,te,re,ne,se,ie,oe,ae,le,ue;let a=Date.now();if(typeof e!="string")throw e===void 0?new Error("string-remove-widows: [THROW_ID_01] the first input argument is completely missing! It should be given as string."):new Error(`string-remove-widows: [THROW_ID_02] the first input argument must be string! It was given as "${typeof e}", equal to: | ||
${JSON.stringify(e,null,4)}`);if(r&&typeof r!="object")throw new Error(`string-remove-widows: [THROW_ID_03] the second input argument, options object, should be a plain object but it was given as type ${typeof r}, equal to ${JSON.stringify(r,null,4)}`);let s=Array.isArray,u=e.length,t=new Ne({mergeType:2}),l=["."],i=/[A-Z]{1,2}[0-9][0-9A-Z]?$/,g=/^[0-9][A-Z]{2}/,n=.06,c,p=0,h=0,m=0,d,v,y,T,w,$,E,S,f=A(A({},He),r),W={removeWidows:!1,convertEntities:!1};if(!f.ignore||!s(f.ignore)&&typeof f.ignore!="string")f.ignore=[];else if(typeof f.ignore=="string"&&(f.ignore=[f.ignore]),f.ignore.includes("all"))f.ignore=f.ignore.concat(Z.concat(z));else if(f.ignore.some(o=>typeof o=="string")){let o=[];f.ignore=f.ignore.filter(D=>typeof D=="string"&&D.length?(["nunjucks","jinja","liquid"].includes(D.trim().toLowerCase())?o=o.concat(Z):["hugo"].includes(D.trim().toLowerCase())?o=o.concat(Fe):["hexo"].includes(D.trim().toLowerCase())&&(o=o.concat(z)),!1):typeof D=="object"),o.length&&(f.ignore=f.ignore.concat(o))}let Y;f.reportProgressFunc&&(Y=Math.floor(f.reportProgressFuncTo-(f.reportProgressFuncTo-f.reportProgressFuncFrom)*n-f.reportProgressFuncFrom));function U(o,D){let b=x;f.removeWidowPreventionMeasures?b=" ":f.convertEntities&&(b=H,typeof f.targetLanguage=="string"&&(f.targetLanguage.trim().toLowerCase()==="css"?b=P:f.targetLanguage.trim().toLowerCase()==="js"&&(b=B))),e.slice(o,D)!==b&&t.push(o,D,b)}function X(){h=0,m=0,d=void 0,v=void 0,y=void 0,T=void 0,w=void 0,$=void 0}X();for(let o=0;o<=u;o++){if(!E&&s(f.ignore)&&f.ignore.length&&f.ignore.some((b,C)=>{if(s(b.heads)&&b.heads.some(ge=>e.startsWith(ge,o))||typeof b.heads=="string"&&e.startsWith(b.heads,o))return h+=1,E=f.ignore[C].tails,!0}),!E&&S&&S===o&&(h+=1,S=void 0),typeof f.reportProgressFunc=="function"&&(c=f.reportProgressFuncFrom+Math.floor(o/u*(Y||1)),c!==p&&(p=c,f.reportProgressFunc(c))),!E&&o&&((ee=e[o])!=null&&ee.trim())&&(!e[o-1]||e[o-1]&&!e[o-1].trim())&&(T=o),!E&&((te=e[o])!=null&&te.trim())&&(m+=1),!E&&f.hyphens&&(`-${Ee}${we}`.includes(e[o])||e.startsWith(Me,o)||e.startsWith(xe,o)||e.startsWith(Ie,o)||e.startsWith(Le,o)||e.startsWith(Ve,o)||e.startsWith(je,o))&&e[o+1]&&(!e[o+1].trim()||e[o]==="&")&&e[o-1]&&!e[o-1].trim()&&e[_(e,o)]&&(U(_(e,o)+1,o),W.removeWidows=!0),!E&&(e.startsWith(" ",o)||e.startsWith(" ",o))&&(w=o,$=o+6,(re=e[o+6])!=null&&re.trim()&&(S=o+6),f.convertEntities?(f.targetLanguage==="css"||f.targetLanguage==="js")&&(t.push(o,o+6,f.targetLanguage==="css"?P:B),W.convertEntities=!0):(t.push(o,o+6,x),W.convertEntities=!0)),!E&&e[o+4]&&e[o]==="\\"&&e[o+1]==="0"&&e[o+2]==="0"&&e[o+3].toUpperCase()==="A"&&e[o+4]==="0"&&(w=o,$=o+5,(ne=e[o+5])!=null&&ne.trim()&&(S=o+5),f.convertEntities?(f.targetLanguage==="html"||f.targetLanguage==="js")&&(t.push(o,o+5,f.targetLanguage==="html"?H:B),W.convertEntities=!0):(t.push(o,o+5,x),W.convertEntities=!0)),!E&&e[o]==="\\"&&e[o+1]&&e[o+1].toLowerCase()==="u"&&e[o+2]==="0"&&e[o+3]==="0"&&e[o+4]&&e[o+4].toUpperCase()==="A"&&e[o+5]==="0"&&(w=o,$=o+6,(se=e[o+6])!=null&&se.trim()&&(S=o+6),f.convertEntities?(f.targetLanguage==="html"||f.targetLanguage==="css")&&t.push(o,o+6,f.targetLanguage==="html"?H:P):t.push(o,o+6,x)),!E&&e[o]===x&&(w=o,$=o+1,f.convertEntities&&t.push(o,o+1,f.targetLanguage==="css"?P:f.targetLanguage==="js"?B:H)),!E&&((ie=e[o])!=null&&ie.trim())&&!((oe=e[o-1])!=null&&oe.trim())&&(h+=1),!E&&(!e[o]||`\r | ||
"use strict";var stringRemoveWidows=(()=>{var Pe=Object.create;var F=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames,me=Object.getOwnPropertySymbols,Ue=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable;var k=(e,r,a)=>r in e?F(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,T=(e,r)=>{for(var a in r||(r={}))de.call(r,a)&&k(e,a,r[a]);if(me)for(var a of me(r))qe.call(r,a)&&k(e,a,r[a]);return e};var ke=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Qe=(e,r)=>{for(var a in r)F(e,a,{get:r[a],enumerable:!0})},he=(e,r,a,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let u of Je(r))!de.call(e,u)&&u!==a&&F(e,u,{get:()=>r[u],enumerable:!(i=Be(r,u))||i.enumerable});return e};var pe=(e,r,a)=>(a=e!=null?Pe(Ue(e)):{},he(r||!e||!e.__esModule?F(a,"default",{value:e,enumerable:!0}):a,e)),Ge=e=>he(F({},"__esModule",{value:!0}),e);var Q=(e,r,a)=>(k(e,typeof r!="symbol"?r+"":r,a),a);var G=ke((ct,be)=>{"use strict";be.exports=Ke;function x(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function Ke(e){if(e=e||{},e.circles)return Ze(e);return e.proto?i:a;function r(u,t){for(var l=Object.keys(u),s=new Array(l.length),g=0;g<l.length;g++){var n=l[g],c=u[n];typeof c!="object"||c===null?s[n]=c:c instanceof Date?s[n]=new Date(c):ArrayBuffer.isView(c)?s[n]=x(c):s[n]=t(c)}return s}function a(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return r(u,a);if(u instanceof Map)return new Map(r(Array.from(u),a));if(u instanceof Set)return new Set(r(Array.from(u),a));var t={};for(var l in u)if(Object.hasOwnProperty.call(u,l)!==!1){var s=u[l];typeof s!="object"||s===null?t[l]=s:s instanceof Date?t[l]=new Date(s):s instanceof Map?t[l]=new Map(r(Array.from(s),a)):s instanceof Set?t[l]=new Set(r(Array.from(s),a)):ArrayBuffer.isView(s)?t[l]=x(s):t[l]=a(s)}return t}function i(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return r(u,i);if(u instanceof Map)return new Map(r(Array.from(u),i));if(u instanceof Set)return new Set(r(Array.from(u),i));var t={};for(var l in u){var s=u[l];typeof s!="object"||s===null?t[l]=s:s instanceof Date?t[l]=new Date(s):s instanceof Map?t[l]=new Map(r(Array.from(s),i)):s instanceof Set?t[l]=new Set(r(Array.from(s),i)):ArrayBuffer.isView(s)?t[l]=x(s):t[l]=i(s)}return t}}function Ze(e){var r=[],a=[];return e.proto?t:u;function i(l,s){for(var g=Object.keys(l),n=new Array(g.length),c=0;c<g.length;c++){var p=g[c],$=l[p];if(typeof $!="object"||$===null)n[p]=$;else if($ instanceof Date)n[p]=new Date($);else if(ArrayBuffer.isView($))n[p]=x($);else{var m=r.indexOf($);m!==-1?n[p]=a[m]:n[p]=s($)}}return n}function u(l){if(typeof l!="object"||l===null)return l;if(l instanceof Date)return new Date(l);if(Array.isArray(l))return i(l,u);if(l instanceof Map)return new Map(i(Array.from(l),u));if(l instanceof Set)return new Set(i(Array.from(l),u));var s={};r.push(l),a.push(s);for(var g in l)if(Object.hasOwnProperty.call(l,g)!==!1){var n=l[g];if(typeof n!="object"||n===null)s[g]=n;else if(n instanceof Date)s[g]=new Date(n);else if(n instanceof Map)s[g]=new Map(i(Array.from(n),u));else if(n instanceof Set)s[g]=new Set(i(Array.from(n),u));else if(ArrayBuffer.isView(n))s[g]=x(n);else{var c=r.indexOf(n);c!==-1?s[g]=a[c]:s[g]=u(n)}}return r.pop(),a.pop(),s}function t(l){if(typeof l!="object"||l===null)return l;if(l instanceof Date)return new Date(l);if(Array.isArray(l))return i(l,t);if(l instanceof Map)return new Map(i(Array.from(l),t));if(l instanceof Set)return new Set(i(Array.from(l),t));var s={};r.push(l),a.push(s);for(var g in l){var n=l[g];if(typeof n!="object"||n===null)s[g]=n;else if(n instanceof Date)s[g]=new Date(n);else if(n instanceof Map)s[g]=new Map(i(Array.from(n),t));else if(n instanceof Set)s[g]=new Set(i(Array.from(n),t));else if(ArrayBuffer.isView(n))s[g]=x(n);else{var c=r.indexOf(n);c!==-1?s[g]=a[c]:s[g]=t(n)}}return r.pop(),a.pop(),s}}});var ut={};Qe(ut,{defaults:()=>He,removeWidows:()=>lt,version:()=>at});function $e(e){return typeof e!="string"?e:e.length?[e]:[]}var ye=pe(G(),1);var mt=(0,ye.default)();var we="\u2013",Ee="\u2014",I="\xA0";function _(e){if(e==null||typeof e!="object")return!1;let r=Object.getPrototypeOf(e);return r!==null&&r!==Object.prototype&&Object.getPrototypeOf(r)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}function N(e){return typeof e=="string"}function C(e){return Number.isSafeInteger(e)&&e>=0}function R(e){return e!=null}function Ae(e,r){return _(e)&&N(r)&&r in e}var Te={cb:void 0,i:!1,trimBeforeMatching:!1,trimCharsBeforeMatching:[],maxMismatches:0,firstMustMatch:!1,lastMustMatch:!1,hungry:!1},ze=e=>e+1;function Ye(e,r,a,i,u=!1,t=ze){var y;let l=typeof a=="function"?a():a;if(+r<0&&u&&l==="EOL")return l;let s=T(T({},Te),i);if(r>=e.length&&!u)return!1;let g=u?1:a.length,n=0,c=!1,p=!1,$=!1,m=s.maxMismatches,d=r,w=!1,v=!1,E=!1;function A(){return n===1&&m<s.maxMismatches-1}for(;e[d];){let h=t(d);if(s.trimBeforeMatching&&e[d].trim()===""){if(!e[h]&&u&&a==="EOL")return!0;d=t(d);continue}if(s&&!s.i&&((y=s==null?void 0:s.trimCharsBeforeMatching)!=null&&y.includes(e[d]))||s!=null&&s.i&&s.trimCharsBeforeMatching&&s.trimCharsBeforeMatching.map(f=>f.toLowerCase()).includes(e[d].toLowerCase())){if(u&&a==="EOL"&&!e[h])return!0;d=t(d);continue}let W=h>d?a[a.length-g]:a[g-1];if(!s.i&&e[d]===W||s.i&&e[d].toLowerCase()===W.toLowerCase()){if(w||(w=!0),$||($=!0),g===a.length){if(v=!0,m!==s.maxMismatches)return!1}else g===1&&(E=!0);if(g-=1,n++,A())return!1;if(!g)return n!==a.length||m===s.maxMismatches||!c?d:!1}else if(!c&&!n&&(c=!0),s.maxMismatches&&m&&d){m-=1;for(let f=0;f<=m;f++){let S=h>d?a[a.length-g+1+f]:a[g-2-f],M=e[t(d)];if(S&&(!s.i&&e[d]===S||s.i&&e[d].toLowerCase()===S.toLowerCase())&&(!s.firstMustMatch||g!==a.length)){if(n++,A())return!1;g-=2,w=!0;break}else if(M&&S&&(!s.i&&M===S||s.i&&M.toLowerCase()===S.toLowerCase())&&(!s.firstMustMatch||g!==a.length)){if(!n&&!s.hungry)return!1;g-=1,w=!0;break}else if(S===void 0&&m>=0&&w&&(!s.firstMustMatch||v)&&(!s.lastMustMatch||E))return d}w||(p=d)}else return d===0&&g===1&&!s.lastMustMatch&&$?0:!1;if(p!==!1&&p!==d&&(p=!1),g<1)return d;d=t(d)}if(g>0)return u&&l==="EOL"?!0:s&&s.maxMismatches>=g&&$?p||0:!1}function Xe(e,r,a,i,u){var c,p,$;if(_(u)&&Ae(u,"trimBeforeMatching")&&u&&typeof u.trimBeforeMatching!="boolean")throw new Error(`string-match-left-right/${e}(): [THROW_ID_09] opts.trimBeforeMatching should be boolean!${Array.isArray(u.trimBeforeMatching)?" Did you mean to use opts.trimCharsBeforeMatching?":""}`);let t=T(T({},Te),u);if(typeof t.trimCharsBeforeMatching=="string"&&(t.trimCharsBeforeMatching=$e(t.trimCharsBeforeMatching)),t.trimCharsBeforeMatching=t.trimCharsBeforeMatching.map(m=>N(m)?m:String(m)),!N(r)||!r.length)return!1;if(!Number.isInteger(a)||a<0)throw new Error(`string-match-left-right/${e}(): [THROW_ID_03] the second argument should be a natural number. Currently it's of a type: ${typeof a}, equal to: | ||
${JSON.stringify(a,null,4)}`);let l,s;if(N(i))l=[i];else if(Array.isArray(i))l=i;else if(!i)l=i;else if(typeof i=="function")l=[],l.push(i);else throw new Error(`string-match-left-right/${e}(): [THROW_ID_05] the third argument, whatToMatch, is neither string nor array of strings! It's ${typeof i}, equal to: | ||
${JSON.stringify(i,null,4)}`);if(u&&!_(u))throw new Error(`string-match-left-right/${e}(): [THROW_ID_06] the fourth argument, options object, should be a plain object. Currently it's of a type "${typeof u}", and equal to: | ||
${JSON.stringify(u,null,4)}`);let g=0,n="";if((c=t==null?void 0:t.trimCharsBeforeMatching)!=null&&c.some((m,d)=>m.length>1?(g=d,n=m,!0):!1))throw new Error(`string-match-left-right/${e}(): [THROW_ID_07] the fourth argument, options object contains trimCharsBeforeMatching. It was meant to list the single characters but one of the entries at index ${g} is longer than 1 character, ${n.length} (equals to ${n}). Please split it into separate characters and put into array as separate elements.`);if(!l||!Array.isArray(l)||Array.isArray(l)&&!l.length||Array.isArray(l)&&l.length===1&&N(l[0])&&!l[0].trim()){if(typeof t.cb=="function"){let d,w=a;if((e==="matchLeftIncl"||e==="matchRight")&&(w+=1),e[5]==="L")for(let y=w;y--;){let h=r[y];if((!t.trimBeforeMatching||t.trimBeforeMatching&&(h!=null&&h.trim()))&&(!((p=t.trimCharsBeforeMatching)!=null&&p.length)||h!==void 0&&!t.trimCharsBeforeMatching.includes(h))){d=y;break}}else if(e.startsWith("matchRight"))for(let y=w;y<r.length;y++){let h=r[y];if((!t.trimBeforeMatching||t.trimBeforeMatching&&h.trim())&&(!(($=t.trimCharsBeforeMatching)!=null&&$.length)||!t.trimCharsBeforeMatching.includes(h))){d=y;break}}if(d===void 0)return!1;let v=r[d],E=d+1,A="";return E&&E>0&&(A=r.slice(0,E)),e[5]==="L"||d&&d>0&&(A=r.slice(d)),t.cb(v,A,d)}let m="";throw u||(m=" More so, the whole options object, the fourth input argument, is missing!"),new Error(`string-match-left-right/${e}(): [THROW_ID_08] the third argument, "whatToMatch", was given as an empty string. This means, you intend to match purely by a callback. The callback was not set though, the opts key "cb" is not set!${m}`)}for(let m=0,d=l.length;m<d;m++){s=typeof l[m]=="function";let w=l[m],v,E,A="",y=a;e==="matchRight"?y+=1:e==="matchLeft"&&(y-=1);let h=Ye(r,y,w,t,s,W=>e[5]==="L"?W-1:W+1);if(h&&s&&typeof w=="function"&&w()==="EOL")return w()&&(!t.cb||t.cb(v,A,E))?w():!1;if(Number.isInteger(h)&&(E=e.startsWith("matchLeft")?h-1:h+1,e[5]==="L"?A=r.slice(0,h):A=r.slice(E)),E<0&&(E=void 0),r[E]&&(v=r[E]),Number.isInteger(h)&&(!t.cb||t.cb(v,A,E)))return w}return!1}function ve(e,r,a,i){return Xe("matchRightIncl",e,r,a,i)}var Se=pe(G(),1);var wt=(0,Se.default)();var L="\xA0";function et({str:e,idx:r=0,stopAtNewlines:a=!1,stopAtRawNbsp:i=!1}){if(typeof e!="string"||!e.length||((!r||typeof r!="number")&&(r=0),!e[r+1]))return null;if(e[r+1]&&(e[r+1].trim()||a&&` | ||
\r`.includes(e[r+1])||i&&e[r+1]===L))return r+1;if(e[r+2]&&(e[r+2].trim()||a&&` | ||
\r`.includes(e[r+2])||i&&e[r+2]===L))return r+2;for(let u=r+1,t=e.length;u<t;u++)if(e[u].trim()||a&&` | ||
\r`.includes(e[u])||i&&e[u]===L)return u;return null}function V(e,r=0){return et({str:e,idx:r,stopAtNewlines:!1,stopAtRawNbsp:!1})}function tt({str:e,idx:r,stopAtNewlines:a,stopAtRawNbsp:i}){if(typeof e!="string"||!e.length||((!r||typeof r!="number")&&(r=0),r<1))return null;if(e[~-r]&&(e[~-r].trim()||a&&` | ||
\r`.includes(e[~-r])||i&&e[~-r]===L))return~-r;if(e[r-2]&&(e[r-2].trim()||a&&` | ||
\r`.includes(e[r-2])||i&&e[r-2]===L))return r-2;for(let u=r;u--;)if(e[u]&&(e[u].trim()||a&&` | ||
\r`.includes(e[u])||i&&e[u]===L))return u;return null}function H(e,r=0){return tt({str:e,idx:r,stopAtNewlines:!1,stopAtRawNbsp:!1})}function U(e,r=1){let a="\xA0";function i(t){return Array.from(t).reverse().join("")}function u(t,l,s){let g=s?` | ||
`:"\r",n=s?"\r":` | ||
`;if(!t)return t;let c=0,p=0,$="";for(let m=0,d=t.length;m<d;m++)(t[m]===g||t[m]===n&&t[m-1]!==g)&&p++,`\r | ||
`.includes(t[m])||t[m]===a?(c=0,t[m]===a?$+=t[m]:t[m]===g?p<=l&&($+=t[m],t[m+1]===n&&($+=t[m+1],m++)):t[m]===n&&(t==null?void 0:t[m-1])!==g&&p<=l&&($+=t[m])):(c++,!t[m+1]&&!p&&($+=" "));return $}if(typeof e=="string"&&e.length){let t=1;typeof+r=="number"&&Number.isInteger(+r)&&+r>=0&&(t=+r);let l="",s="";if(!e.trim())l=e;else if(!e[0].trim()){for(let g=0,n=e.length;g<n;g++)if(e[g].trim()){l=e.slice(0,g);break}}if(e.trim()&&(e.slice(-1).trim()===""||e.slice(-1)===a)){for(let g=e.length;g--;)if(e[g].trim()){s=e.slice(g+1);break}}return`${u(l,t,!1)}${e.trim()}${i(u(i(s),t,!0))}`}return e}var rt={strictlyTwoElementsInRangeArrays:!1,progressFn:null};function j(e,r){if(!Array.isArray(e)||!e.length)return e;let a=T(T({},rt),r),i,u;if(a.strictlyTwoElementsInRangeArrays&&!e.every((s,g)=>!Array.isArray(s)||s.length!==2?(i=g,u=s.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, ${i}th range (${JSON.stringify(e[i],null,4)}) has not two but ${u} elements!`);if(!e.every((s,g)=>!Array.isArray(s)||!Number.isInteger(s[0])||s[0]<0||!Number.isInteger(s[1])||s[1]<0?(i=g,!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, ${i}th range (${JSON.stringify(e[i],null,4)}) does not consist of only natural numbers!`);let t=e.length**2,l=0;return Array.from(e).sort((s,g)=>(a.progressFn&&(l+=1,a.progressFn(Math.floor(l*100/t))),s[0]===g[0]?s[1]<g[1]?-1:s[1]>g[1]?1:0:s[0]<g[0]?-1:1))}var De={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function nt(e,r){function a(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}if(!Array.isArray(e)||!e.length)return null;let i;if(r)if(a(r)){if(i=T(T({},De),r),i.progressFn&&a(i.progressFn)&&!Object.keys(i.progressFn).length)i.progressFn=null;else if(i.progressFn&&typeof i.progressFn!="function")throw new Error(`ranges-merge: [THROW_ID_01] resolvedOpts.progressFn must be a function! It was given of a type: "${typeof i.progressFn}", equal to ${JSON.stringify(i.progressFn,null,4)}`);if(![1,2,"1","2"].includes(i.mergeType))throw new Error(`ranges-merge: [THROW_ID_02] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: "${typeof i.mergeType}", equal to ${JSON.stringify(i.mergeType,null,4)}`);if(typeof i.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 i.joinRangesThatTouchEdges}", equal to ${JSON.stringify(i.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(r,null,4)} (type ${typeof r})`);else i=T({},De);let u=e.filter(n=>Array.isArray(n)).map(n=>[...n]).filter(n=>n[2]!==void 0||n[0]!==n[1]),t,l,s;i.progressFn?t=j(u,{progressFn:n=>{s=Math.floor(n/5),s!==l&&(l=s,i.progressFn(s))}}):t=j(u);let g=t.length-1;for(let n=g;n>0;n--)i.progressFn&&(s=Math.floor((1-n/g)*78)+21,s!==l&&s>l&&(l=s,i.progressFn(s))),(t[n][0]<=t[n-1][0]||!i.joinRangesThatTouchEdges&&t[n][0]<t[n-1][1]||i.joinRangesThatTouchEdges&&t[n][0]<=t[n-1][1])&&(t[n-1][0]=Math.min(t[n][0],t[n-1][0]),t[n-1][1]=Math.max(t[n][1],t[n-1][1]),t[n][2]!==void 0&&(t[n-1][0]>=t[n][0]||t[n-1][1]<=t[n][1])&&t[n-1][2]!==null&&(t[n][2]===null&&t[n-1][2]!==null?t[n-1][2]=null:t[n-1][2]!=null?+i.mergeType==2&&t[n-1][0]===t[n][0]?t[n-1][2]=t[n][2]:t[n-1][2]+=t[n][2]:t[n-1][2]=t[n][2]),t.splice(n,1),n=t.length);return t.length?t:null}var st={limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1},Ne=class{constructor(e){Q(this,"ranges");Q(this,"opts");let r=T(T({},st),e);if(r.mergeType&&r.mergeType!==1&&r.mergeType!==2)if(N(r.mergeType)&&r.mergeType.trim()==="1")r.mergeType=1;else if(N(r.mergeType)&&r.mergeType.trim()==="2")r.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 r.mergeType}", equal to ${JSON.stringify(r.mergeType,null,4)}`);this.opts=r,this.ranges=[]}add(e,r,a){var t;if(e==null&&r==null)return;if(R(e)&&!R(r)){if(Array.isArray(e)){if(e.length){if(e.some(l=>Array.isArray(l))){e.forEach(l=>{Array.isArray(l)&&this.add(...l)});return}e.length&&C(+e[0])&&C(+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(r,null,0)})`)}else if(!R(e)&&R(r))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_13] the second input argument, "to" is set (${JSON.stringify(r,null,0)}) but first-one, "from" is not (${JSON.stringify(e,null,0)})`);let i=+e,u=+r;if(C(a)&&(a=String(a)),C(i)&&C(u)){if(R(a)&&!N(a)&&!C(a))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_08] The third argument, the value to add, was given not as string but ${typeof a}, equal to: | ||
${JSON.stringify(a,null,4)}`);if(R(this.ranges)&&Array.isArray(this.last())&&i===this.last()[1]){if(this.last()[1]=u,this.last()[2],this.last()[2]!==null&&R(a)){let l=this.last()[2]&&this.last()[2].length&&(!((t=this.opts)!=null&&t.mergeType)||this.opts.mergeType===1)?`${this.last()[2]}${a}`:a;this.opts.limitToBeAddedWhitespace&&(l=U(l,this.opts.limitLinebreaksCount)),N(l)&&!l.length||(this.last()[2]=l)}}else{this.ranges||(this.ranges=[]);let l=a!==void 0&&!(N(a)&&!a.length)?[i,u,a&&this.opts.limitToBeAddedWhitespace?U(a,this.opts.limitLinebreaksCount):a]:[i,u];this.ranges.push(l)}}else throw C(i)&&i>=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 u}" equal to: ${JSON.stringify(u,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 i}" equal to: ${JSON.stringify(i,null,4)}`)}push(e,r,a){this.add(e,r,a)}current(){return Array.isArray(this.ranges)&&this.ranges.length?(this.ranges=nt(this.ranges,{mergeType:this.opts.mergeType}),this.ranges&&this.opts.limitToBeAddedWhitespace?this.ranges.map(e=>R(e[2])?[e[0],e[1],U(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])&&C(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 We={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function Oe(e,r){function a(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}if(!Array.isArray(e)||!e.length)return null;let i;if(r)if(a(r)){if(i=T(T({},We),r),i.progressFn&&a(i.progressFn)&&!Object.keys(i.progressFn).length)i.progressFn=null;else if(i.progressFn&&typeof i.progressFn!="function")throw new Error(`ranges-merge: [THROW_ID_01] opts.progressFn must be a function! It was given of a type: "${typeof i.progressFn}", equal to ${JSON.stringify(i.progressFn,null,4)}`);if(![1,2,"1","2"].includes(i.mergeType))throw new Error(`ranges-merge: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: "${typeof i.mergeType}", equal to ${JSON.stringify(i.mergeType,null,4)}`);if(typeof i.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 i.joinRangesThatTouchEdges}", equal to ${JSON.stringify(i.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(r,null,4)} (type ${typeof r})`);else i=T({},We);let u=e.filter(n=>Array.isArray(n)).map(n=>[...n]).filter(n=>n[2]!==void 0||n[0]!==n[1]),t,l,s;i.progressFn?t=j(u,{progressFn:n=>{s=Math.floor(n/5),s!==l&&(l=s,i.progressFn(s))}}):t=j(u);let g=t.length-1;for(let n=g;n>0;n--)i.progressFn&&(s=Math.floor((1-n/g)*78)+21,s!==l&&s>l&&(l=s,i.progressFn(s))),(t[n][0]<=t[n-1][0]||!i.joinRangesThatTouchEdges&&t[n][0]<t[n-1][1]||i.joinRangesThatTouchEdges&&t[n][0]<=t[n-1][1])&&(t[n-1][0]=Math.min(t[n][0],t[n-1][0]),t[n-1][1]=Math.max(t[n][1],t[n-1][1]),t[n][2]!==void 0&&(t[n-1][0]>=t[n][0]||t[n-1][1]<=t[n][1])&&t[n-1][2]!==null&&(t[n][2]===null&&t[n-1][2]!==null?t[n-1][2]=null:t[n-1][2]!=null?+i.mergeType==2&&t[n-1][0]===t[n][0]?t[n-1][2]=t[n][2]:t[n-1][2]+=t[n][2]:t[n-1][2]=t[n][2]),t.splice(n,1),n=t.length);return t.length?t:null}var it=!0,K="Invariant failed";function Ce(e,r){if(!e){if(it)throw new Error(K);var a=typeof r=="function"?r():r,i=a?"".concat(K,": ").concat(a):K;throw new Error(i)}}function Z(e,r,a){let i=0,u=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(r&&!Array.isArray(r))throw new TypeError(`ranges-apply: [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ${typeof r}, equal to: ${JSON.stringify(r,null,4)}`);if(a&&typeof a!="function")throw new TypeError(`ranges-apply: [THROW_ID_04] the third input argument must be a function (or falsey)! Currently it's: ${typeof a}, equal to: ${JSON.stringify(a,null,4)}`);if(!(r!=null&&r.filter(c=>c).length))return e;let t;Array.isArray(r)&&Number.isInteger(r[0])&&Number.isInteger(r[1])?t=[Array.from(r)]:t=Array.from(r);let l=t.length,s=0;t.filter(c=>c).forEach((c,p)=>{if(a&&(i=Math.floor(s/l*10),i!==u&&(u=i,a(i))),!Array.isArray(c))throw new TypeError(`ranges-apply: [THROW_ID_05] ranges array, second input arg., has ${p}th element not an array: ${JSON.stringify(c,null,4)}, which is ${typeof c}`);if(!Number.isInteger(c[0])){if(!Number.isInteger(+c[0])||+c[0]<0)throw new TypeError(`ranges-apply: [THROW_ID_06] ranges array, second input arg. has ${p}th element, array ${JSON.stringify(c,null,0)}. Its first element is not an integer, string index, but ${typeof c[0]}, equal to: ${JSON.stringify(c[0],null,4)}.`);t[p][0]=+t[p][0]}if(!Number.isInteger(c[1])){if(!Number.isInteger(+c[1])||+c[1]<0)throw new TypeError(`ranges-apply: [THROW_ID_07] ranges array, second input arg. has ${p}th element, array ${JSON.stringify(c,null,0)}. Its second element is not an integer, string index, but ${typeof c[1]}, equal to: ${JSON.stringify(c[1],null,4)}.`);t[p][1]=+t[p][1]}s+=1});let g=Oe(t,{progressFn:c=>{a&&(i=10+Math.floor(c/10),i!==u&&(u=i,a(i)))}});Ce(g);let n=g.length;if(n>0){let c=e.slice(g[n-1][1]);e=g.reduce((p,$,m,d)=>{a&&(i=20+Math.floor(m/n*80),i!==u&&(u=i,a(i)));let w=m===0?0:d[m-1][1],v=d[m][0];return`${p}${e.slice(w,v)}${d[m][2]||""}`},""),e+=c}return e}var Re="4.0.21";var P=" ",B="\\00A0",J="\\u00A0",Me="–",xe="\\2013",Ie="\\u2013",Le="—",Ve="\\2014",je="\\u2014",z=[{heads:"{{",tails:"}}"},{heads:["{% if","{%- if"],tails:["{% endif","{%- endif"]},{heads:["{% for","{%- for"],tails:["{% endfor","{%- endfor"]},{heads:["{%","{%-"],tails:["%}","-%}"]},{heads:"{#",tails:"#}"}],Fe=[{heads:"{{",tails:"}}"}],Y=[{heads:["<%","<%=","<%-"],tails:["%>","=%>","-%>"]}],_e=["abbr","address","area","article","aside","audio","base","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","doctype","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","param","picture","pre","progress","rb","rp","rt","rtc","ruby","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","ul","var","video","wbr","xml"];var at=Re,He={removeWidowPreventionMeasures:!1,convertEntities:!0,targetLanguage:"html",UKPostcodes:!1,hyphens:!0,minWordCount:4,minCharCount:5,ignore:[],reportProgressFunc:null,reportProgressFuncFrom:0,reportProgressFuncTo:100,tagRanges:[]};function lt(e,r){var ee,te,re,ne,se,ie,oe,ae,le,ue;let a=Date.now();if(typeof e!="string")throw e===void 0?new Error("string-remove-widows: [THROW_ID_01] the first input argument is completely missing! It should be given as string."):new Error(`string-remove-widows: [THROW_ID_02] the first input argument must be string! It was given as "${typeof e}", equal to: | ||
${JSON.stringify(e,null,4)}`);if(r&&typeof r!="object")throw new Error(`string-remove-widows: [THROW_ID_03] the second input argument, options object, should be a plain object but it was given as type ${typeof r}, equal to ${JSON.stringify(r,null,4)}`);let i=Array.isArray,u=e.length,t=new Ne({mergeType:2}),l=["."],s=/[A-Z]{1,2}[0-9][0-9A-Z]?$/,g=/^[0-9][A-Z]{2}/,n=.06,c,p=0,$=0,m=0,d,w,v,E,A,y,h,W,f=T(T({},He),r),S={removeWidows:!1,convertEntities:!1};if(!f.ignore||!i(f.ignore)&&typeof f.ignore!="string")f.ignore=[];else if(typeof f.ignore=="string"&&(f.ignore=[f.ignore]),f.ignore.includes("all"))f.ignore=f.ignore.concat(z.concat(Y));else if(f.ignore.some(o=>typeof o=="string")){let o=[];f.ignore=f.ignore.filter(D=>typeof D=="string"&&D.length?(["nunjucks","jinja","liquid"].includes(D.trim().toLowerCase())?o=o.concat(z):["hugo"].includes(D.trim().toLowerCase())?o=o.concat(Fe):["hexo"].includes(D.trim().toLowerCase())&&(o=o.concat(Y)),!1):typeof D=="object"),o.length&&(f.ignore=f.ignore.concat(o))}let M;f.reportProgressFunc&&(M=Math.floor(f.reportProgressFuncTo-(f.reportProgressFuncTo-f.reportProgressFuncFrom)*n-f.reportProgressFuncFrom));function q(o,D){let b=I;f.removeWidowPreventionMeasures?b=" ":f.convertEntities&&(b=P,typeof f.targetLanguage=="string"&&(f.targetLanguage.trim().toLowerCase()==="css"?b=B:f.targetLanguage.trim().toLowerCase()==="js"&&(b=J))),e.slice(o,D)!==b&&t.push(o,D,b)}function X(){$=0,m=0,d=void 0,w=void 0,v=void 0,E=void 0,A=void 0,y=void 0}X();for(let o=0;o<=u;o++){if(!h&&i(f.ignore)&&f.ignore.length&&f.ignore.some((b,O)=>{if(i(b.heads)&&b.heads.some(ge=>e.startsWith(ge,o))||typeof b.heads=="string"&&e.startsWith(b.heads,o))return $+=1,h=f.ignore[O].tails,!0}),!h&&W&&W===o&&($+=1,W=void 0),typeof f.reportProgressFunc=="function"&&(c=f.reportProgressFuncFrom+Math.floor(o/u*(M||1)),c!==p&&(p=c,f.reportProgressFunc(c))),!h&&o&&((ee=e[o])!=null&&ee.trim())&&(!e[o-1]||e[o-1]&&!e[o-1].trim())&&(E=o),!h&&((te=e[o])!=null&&te.trim())&&(m+=1),!h&&f.hyphens&&(`-${Ee}${we}`.includes(e[o])||e.startsWith(Me,o)||e.startsWith(xe,o)||e.startsWith(Ie,o)||e.startsWith(Le,o)||e.startsWith(Ve,o)||e.startsWith(je,o))&&e[o+1]&&(!e[o+1].trim()||e[o]==="&")&&e[o-1]&&!e[o-1].trim()&&e[H(e,o)]&&(q(H(e,o)+1,o),S.removeWidows=!0),!h&&(e.startsWith(" ",o)||e.startsWith(" ",o))&&(A=o,y=o+6,(re=e[o+6])!=null&&re.trim()&&(W=o+6),f.convertEntities?(f.targetLanguage==="css"||f.targetLanguage==="js")&&(t.push(o,o+6,f.targetLanguage==="css"?B:J),S.convertEntities=!0):(t.push(o,o+6,I),S.convertEntities=!0)),!h&&e[o+4]&&e[o]==="\\"&&e[o+1]==="0"&&e[o+2]==="0"&&e[o+3].toUpperCase()==="A"&&e[o+4]==="0"&&(A=o,y=o+5,(ne=e[o+5])!=null&&ne.trim()&&(W=o+5),f.convertEntities?(f.targetLanguage==="html"||f.targetLanguage==="js")&&(t.push(o,o+5,f.targetLanguage==="html"?P:J),S.convertEntities=!0):(t.push(o,o+5,I),S.convertEntities=!0)),!h&&e[o]==="\\"&&e[o+1]&&e[o+1].toLowerCase()==="u"&&e[o+2]==="0"&&e[o+3]==="0"&&e[o+4]&&e[o+4].toUpperCase()==="A"&&e[o+5]==="0"&&(A=o,y=o+6,(se=e[o+6])!=null&&se.trim()&&(W=o+6),f.convertEntities?(f.targetLanguage==="html"||f.targetLanguage==="css")&&t.push(o,o+6,f.targetLanguage==="html"?P:B):t.push(o,o+6,I)),!h&&e[o]===I&&(A=o,y=o+1,f.convertEntities&&t.push(o,o+1,f.targetLanguage==="css"?B:f.targetLanguage==="js"?J:P)),!h&&((ie=e[o])!=null&&ie.trim())&&!((oe=e[o-1])!=null&&oe.trim())&&($+=1),!h&&(!e[o]||`\r | ||
`.includes(e[o])||(e[o]===` | ||
`||e[o]==="\r"||e[o]==="\r"&&e[o+1]===` | ||
`)&&_(e,o)&&l.includes(e[_(e,o)]))){if((!f.minWordCount||h>=f.minWordCount)&&(!f.minCharCount||m>=f.minCharCount)){let b,C;y!==void 0&&T!==void 0&&w!==void 0&&$!==void 0?y>w?(b=y,C=T):(b=w,C=$):y!==void 0&&T!==void 0?(b=y,C=T):w!==void 0&&$!==void 0&&(b=w,C=$),!(b&&C)&&d&&v&&(b=d,C=v),b&&C&&(U(b,C),W.removeWidows=!0)}X()}f.UKPostcodes&&e[o]&&!e[o].trim()&&((ae=e[o-1])!=null&&ae.trim())&&i.test(e.slice(0,o))&&e[L(e,o)]&&g.test(e.slice(L(e,o)))&&(U(o,L(e,o)),W.removeWidows=!0),!E&&e[o]&&!e[o].trim()&&((le=e[o-1])!=null&&le.trim())&&(y===void 0||(ue=e[y-1])!=null&&ue.trim())&&!"/>".includes(e[L(e,o)])&&!e.slice(0,o).trim().endsWith("br")&&!e.slice(0,o).trim().endsWith("hr")&&!(e.slice(0,o).endsWith("<")&&_e.some(b=>e.startsWith(b,L(e,o))))&&(d=y,v=T,y=o,T=void 0,(w!==void 0||$!==void 0)&&(w=void 0,$=void 0));let D;E&&(typeof E=="string"&&(!E.length||e.startsWith(E,o))?E=void 0:s(E)&&(!E.length||E.some(b=>{if(e.startsWith(b,o))return D=b,!0}))&&(E=void 0,o+=D.length,s(f.ignore)&&f.ignore.length&&e[o+1]&&f.ignore.some(b=>ve(e,o,b.tails,{trimBeforeMatching:!0,cb:(C,ge,fe)=>{var ce;return fe&&(o=fe-1,(ce=e[o+1])!=null&&ce.trim()&&(h+=1)),!0}})))),e[o]&&`\r | ||
`.includes(e[o])&&(h=0,m=0),s(f.tagRanges)&&f.tagRanges.length&&f.tagRanges.some(b=>{if(o>=b[0]&&o<=b[1]&&b[1]-1>o)return o=b[1]-1,!0})}return K(e,t.current()).split("").forEach((o,D)=>{}),{res:K(e,t.current(),f.reportProgressFunc?o=>{c=Math.floor((f.reportProgressFuncTo-f.reportProgressFuncFrom)*(1-n)+o/100*(f.reportProgressFuncTo-f.reportProgressFuncFrom)*n),c!==p&&(p=c,f.reportProgressFunc(c))}:void 0),ranges:t.current(),log:{timeTakenInMilliseconds:Date.now()-a},whatWasDone:W}}return Ge(ut);})(); | ||
`)&&H(e,o)&&l.includes(e[H(e,o)]))){if((!f.minWordCount||$>=f.minWordCount)&&(!f.minCharCount||m>=f.minCharCount)){let b,O;v!==void 0&&E!==void 0&&A!==void 0&&y!==void 0?v>A?(b=v,O=E):(b=A,O=y):v!==void 0&&E!==void 0?(b=v,O=E):A!==void 0&&y!==void 0&&(b=A,O=y),!(b&&O)&&d&&w&&(b=d,O=w),b&&O&&(q(b,O),S.removeWidows=!0)}X()}f.UKPostcodes&&e[o]&&!e[o].trim()&&((ae=e[o-1])!=null&&ae.trim())&&s.test(e.slice(0,o))&&e[V(e,o)]&&g.test(e.slice(V(e,o)))&&(q(o,V(e,o)),S.removeWidows=!0),!h&&e[o]&&!e[o].trim()&&((le=e[o-1])!=null&&le.trim())&&(v===void 0||(ue=e[v-1])!=null&&ue.trim())&&!"/>".includes(e[V(e,o)])&&!e.slice(0,o).trim().endsWith("br")&&!e.slice(0,o).trim().endsWith("hr")&&!(e.slice(0,o).endsWith("<")&&_e.some(b=>e.startsWith(b,V(e,o))))&&(d=v,w=E,v=o,E=void 0,(A!==void 0||y!==void 0)&&(A=void 0,y=void 0));let D;h&&(typeof h=="string"&&(!h.length||e.startsWith(h,o))?h=void 0:i(h)&&(!h.length||h.some(b=>{if(e.startsWith(b,o))return D=b,!0}))&&(h=void 0,o+=D.length,i(f.ignore)&&f.ignore.length&&e[o+1]&&f.ignore.some(b=>ve(e,o,b.tails,{trimBeforeMatching:!0,cb:(O,ge,fe)=>{var ce;return fe&&(o=fe-1,(ce=e[o+1])!=null&&ce.trim()&&($+=1)),!0}})))),e[o]&&`\r | ||
`.includes(e[o])&&($=0,m=0),i(f.tagRanges)&&f.tagRanges.length&&f.tagRanges.some(b=>{if(o>=b[0]&&o<=b[1]&&b[1]-1>o)return o=b[1]-1,!0})}return Z(e,t.current()).split("").forEach((o,D)=>{}),{res:Z(e,t.current(),f.reportProgressFunc?o=>{c=Math.floor((f.reportProgressFuncTo-f.reportProgressFuncFrom)*(1-n)+o/100*(f.reportProgressFuncTo-f.reportProgressFuncFrom)*n),c!==p&&(p=c,f.reportProgressFunc(c))}:void 0),ranges:t.current(),log:{timeTakenInMilliseconds:Date.now()-a},whatWasDone:S}}return Ge(ut);})(); | ||
/** | ||
@@ -51,3 +51,3 @@ * @name arrayiffy-if-string | ||
* @fileoverview Match substrings on the left or right of a given index, ignoring whitespace | ||
* @version 9.0.18 | ||
* @version 9.0.19 | ||
* @author Roy Revelt, Codsen Ltd | ||
@@ -100,3 +100,3 @@ * @license MIT | ||
* @fileoverview Take an array of string index ranges, delete/replace the string according to them | ||
* @version 7.0.15 | ||
* @version 7.0.16 | ||
* @author Roy Revelt, Codsen Ltd | ||
@@ -103,0 +103,0 @@ * @license MIT |
{ | ||
"name": "string-remove-widows", | ||
"version": "4.0.20", | ||
"version": "4.0.21", | ||
"description": "Helps to prevent widow words in a text", | ||
@@ -79,10 +79,10 @@ "keywords": [ | ||
"codsen-utils": "^1.6.4", | ||
"ranges-apply": "^7.0.15", | ||
"ranges-apply": "^7.0.16", | ||
"ranges-push": "^7.0.15", | ||
"string-left-right": "^6.0.17", | ||
"string-match-left-right": "^9.0.18" | ||
"string-match-left-right": "^9.0.19" | ||
}, | ||
"devDependencies": { | ||
"string-strip-html": "^13.4.6" | ||
"string-strip-html": "^13.4.7" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
49718
Updatedranges-apply@^7.0.16