cmpstr 3.0.4 → 3.1.0

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.
Files changed (89) hide show
  1. package/README.md +2 -1
  2. package/dist/CmpStr.esm.js +345 -90
  3. package/dist/CmpStr.esm.js.map +1 -1
  4. package/dist/CmpStr.esm.min.js +3 -3
  5. package/dist/CmpStr.esm.min.js.map +1 -1
  6. package/dist/CmpStr.umd.js +342 -89
  7. package/dist/CmpStr.umd.js.map +1 -1
  8. package/dist/CmpStr.umd.min.js +3 -3
  9. package/dist/CmpStr.umd.min.js.map +1 -1
  10. package/dist/cjs/CmpStr.cjs +41 -1
  11. package/dist/cjs/CmpStr.cjs.map +1 -1
  12. package/dist/cjs/CmpStrAsync.cjs +38 -1
  13. package/dist/cjs/CmpStrAsync.cjs.map +1 -1
  14. package/dist/cjs/index.cjs +1 -1
  15. package/dist/cjs/metric/Cosine.cjs +1 -1
  16. package/dist/cjs/metric/DamerauLevenshtein.cjs +1 -1
  17. package/dist/cjs/metric/DiceSorensen.cjs +1 -1
  18. package/dist/cjs/metric/Hamming.cjs +1 -1
  19. package/dist/cjs/metric/Jaccard.cjs +1 -1
  20. package/dist/cjs/metric/JaroWinkler.cjs +1 -1
  21. package/dist/cjs/metric/LCS.cjs +1 -1
  22. package/dist/cjs/metric/Levenshtein.cjs +1 -1
  23. package/dist/cjs/metric/Metric.cjs +1 -1
  24. package/dist/cjs/metric/NeedlemanWunsch.cjs +1 -1
  25. package/dist/cjs/metric/SmithWaterman.cjs +1 -1
  26. package/dist/cjs/metric/qGram.cjs +1 -1
  27. package/dist/cjs/phonetic/Caverphone.cjs +1 -1
  28. package/dist/cjs/phonetic/Cologne.cjs +1 -1
  29. package/dist/cjs/phonetic/Metaphone.cjs +1 -1
  30. package/dist/cjs/phonetic/Phonetic.cjs +1 -1
  31. package/dist/cjs/phonetic/Soundex.cjs +1 -1
  32. package/dist/cjs/root.cjs +13 -1
  33. package/dist/cjs/root.cjs.map +1 -1
  34. package/dist/cjs/utils/DeepMerge.cjs +1 -1
  35. package/dist/cjs/utils/DiffChecker.cjs +1 -1
  36. package/dist/cjs/utils/Filter.cjs +1 -1
  37. package/dist/cjs/utils/HashTable.cjs +1 -1
  38. package/dist/cjs/utils/Normalizer.cjs +1 -1
  39. package/dist/cjs/utils/Pool.cjs +10 -1
  40. package/dist/cjs/utils/Pool.cjs.map +1 -1
  41. package/dist/cjs/utils/Profiler.cjs +1 -1
  42. package/dist/cjs/utils/Registry.cjs +1 -1
  43. package/dist/cjs/utils/StructuredData.cjs +145 -0
  44. package/dist/cjs/utils/StructuredData.cjs.map +1 -0
  45. package/dist/cjs/utils/TextAnalyzer.cjs +1 -1
  46. package/dist/esm/CmpStr.mjs +41 -1
  47. package/dist/esm/CmpStr.mjs.map +1 -1
  48. package/dist/esm/CmpStrAsync.mjs +38 -1
  49. package/dist/esm/CmpStrAsync.mjs.map +1 -1
  50. package/dist/esm/index.mjs +1 -1
  51. package/dist/esm/metric/Cosine.mjs +1 -1
  52. package/dist/esm/metric/DamerauLevenshtein.mjs +1 -1
  53. package/dist/esm/metric/DiceSorensen.mjs +1 -1
  54. package/dist/esm/metric/Hamming.mjs +1 -1
  55. package/dist/esm/metric/Jaccard.mjs +1 -1
  56. package/dist/esm/metric/JaroWinkler.mjs +1 -1
  57. package/dist/esm/metric/LCS.mjs +1 -1
  58. package/dist/esm/metric/Levenshtein.mjs +1 -1
  59. package/dist/esm/metric/Metric.mjs +1 -1
  60. package/dist/esm/metric/NeedlemanWunsch.mjs +1 -1
  61. package/dist/esm/metric/SmithWaterman.mjs +1 -1
  62. package/dist/esm/metric/qGram.mjs +1 -1
  63. package/dist/esm/phonetic/Caverphone.mjs +1 -1
  64. package/dist/esm/phonetic/Cologne.mjs +1 -1
  65. package/dist/esm/phonetic/Metaphone.mjs +1 -1
  66. package/dist/esm/phonetic/Phonetic.mjs +1 -1
  67. package/dist/esm/phonetic/Soundex.mjs +1 -1
  68. package/dist/esm/root.mjs +7 -1
  69. package/dist/esm/root.mjs.map +1 -1
  70. package/dist/esm/utils/DeepMerge.mjs +1 -1
  71. package/dist/esm/utils/DiffChecker.mjs +1 -1
  72. package/dist/esm/utils/Filter.mjs +1 -1
  73. package/dist/esm/utils/HashTable.mjs +1 -1
  74. package/dist/esm/utils/Normalizer.mjs +1 -1
  75. package/dist/esm/utils/Pool.mjs +10 -1
  76. package/dist/esm/utils/Pool.mjs.map +1 -1
  77. package/dist/esm/utils/Profiler.mjs +1 -1
  78. package/dist/esm/utils/Registry.mjs +1 -1
  79. package/dist/esm/utils/StructuredData.mjs +143 -0
  80. package/dist/esm/utils/StructuredData.mjs.map +1 -0
  81. package/dist/esm/utils/TextAnalyzer.mjs +1 -1
  82. package/dist/types/CmpStr.d.ts +90 -8
  83. package/dist/types/CmpStrAsync.d.ts +82 -8
  84. package/dist/types/index.d.ts +3 -2
  85. package/dist/types/root.d.ts +3 -2
  86. package/dist/types/utils/Pool.d.ts +2 -2
  87. package/dist/types/utils/StructuredData.d.ts +162 -0
  88. package/dist/types/utils/Types.d.ts +35 -1
  89. package/package.json +52 -17
@@ -1,8 +1,8 @@
1
1
  /**
2
- * CmpStr v3.0.4 build-74e65a5-250915
2
+ * CmpStr v3.1.0 build-76aadb9-260117
3
3
  * This is a lightweight, fast and well performing library for calculating string similarity.
4
- * (c) 2023-2025 Paul Köhler @komed3 / MIT License
4
+ * (c) 2023-2026 Paul Köhler @komed3 / MIT License
5
5
  * Visit https://github.com/komed3/cmpstr and https://npmjs.org/package/cmpstr
6
6
  */
7
- const e=e=>e.replace(/\[(\d+)]/g,".$1").split(".").map(e=>/^\d+$/.test(e)?+e:e);function t(r,s,n){if(""===s)return n;const[i,...a]=e(s);if(void 0!==r&&("object"!=typeof r||null===r))throw Error(`Cannot set property <${i}> of <${JSON.stringify(r)}>`);return Object.assign(r??("number"==typeof i?[]:Object.create(null)),{[i]:t(r?.[i],a.join("."),n)})}function r(e=Object.create(null),t=Object.create(null),s=!1){return Object.keys(t).forEach(n=>{const i=t[n];(s||void 0!==i)&&"__proto__"!==n&&"constructor"!==n&&(e[n]="object"!=typeof i||Array.isArray(i)?i:r("object"!=typeof e[n]||Array.isArray(e[n])?Object.create(null):e[n],i))}),e}class s{static ENV;static instance;store=new Set;totalTime=0;totalMem=0;active;static detectEnv(){"undefined"!=typeof process?s.ENV="nodejs":"undefined"!=typeof performance?s.ENV="browser":s.ENV="unknown"}static getInstance(e){return s.ENV||s.detectEnv(),s.instance||(s.instance=new s(e)),s.instance}constructor(e){this.active=e??!1}now(){switch(s.ENV){case"nodejs":return Number(process.hrtime.bigint())/1e6;case"browser":return performance.now();default:return Date.now()}}mem(){switch(s.ENV){case"nodejs":return process.memoryUsage().heapUsed;case"browser":return performance.memory?.usedJSHeapSize??0;default:return 0}}enable(){this.active=!0}disable(){this.active=!1}clear(){this.store.clear(),this.totalTime=0,this.totalMem=0}run(e,t={}){if(!this.active)return e();const r=this.now(),s=this.mem(),n=e(),i=this.now()-r,a=this.mem()-s;return this.store.add({time:i,mem:a,res:n,meta:t}),this.totalTime+=i,this.totalMem+=a,n}async runAsync(e,t={}){if(!this.active)return await e();const r=this.now(),s=this.mem(),n=await e(),i=this.now()-r,a=this.mem()-s;return this.store.add({time:i,mem:a,res:n,meta:t}),this.totalTime+=i,this.totalMem+=a,n}getAll(){return[...this.store]}getLast(){return this.getAll().pop()}getTotal(){return{time:this.totalTime,mem:this.totalMem}}services={enable:this.enable.bind(this),disable:this.disable.bind(this),clear:this.clear.bind(this),report:this.getAll.bind(this),last:this.getLast.bind(this),total:this.getTotal.bind(this)}}class n{text;words=[];sentences=[];charFrequency=new Map;wordHistogram=new Map;syllableCache=new Map;constructor(e){this.text=e.trim(),this.tokenize(),this.computeFrequencies()}tokenize(){this.words=[],this.sentences=[];const e=this.text,t=/\p{L}+/gu;let r;for(;null!==(r=t.exec(e));)this.words.push(r[0].toLowerCase());this.sentences=e.split(/(?<=[.!?])\s+/).filter(Boolean)}computeFrequencies(){for(const e of this.text)this.charFrequency.set(e,(this.charFrequency.get(e)??0)+1);for(const e of this.words)this.wordHistogram.set(e,(this.wordHistogram.get(e)??0)+1)}estimateSyllables(e){if(this.syllableCache.has(e))return this.syllableCache.get(e);const t=e.toLowerCase().replace(/[^a-zäöüß]/g,"").match(/[aeiouyäöü]+/g),r=t?t.length:1;return this.syllableCache.set(e,r),r}getLength(){return this.text.length}getWordCount(){return this.words.length}getSentenceCount(){return this.sentences.length}getAvgWordLength(){let e=0;for(const t of this.words)e+=t.length;return this.words.length?e/this.words.length:0}getAvgSentenceLength(){return this.sentences.length?this.words.length/this.sentences.length:0}getWordHistogram(){return Object.fromEntries(this.wordHistogram)}getMostCommonWords(e=5){return[...this.wordHistogram.entries()].sort((e,t)=>t[1]-e[1]).slice(0,e).map(e=>e[0])}getHapaxLegomena(){return[...this.wordHistogram.entries()].filter(([,e])=>1===e).map(e=>e[0])}hasNumbers(){return/\d/.test(this.text)}getUpperCaseRatio(){let e=0,t=0;for(let r=0,s=this.text.length;r<s;r++){const s=this.text[r];/[A-Za-zÄÖÜäöüß]/.test(s)&&(t++,/[A-ZÄÖÜ]/.test(s)&&e++)}return t?e/t:0}getCharFrequency(){return Object.fromEntries(this.charFrequency)}getUnicodeStats(){const e={};for(const[t,r]of this.charFrequency){const s=t.charCodeAt(0).toString(16).padStart(4,"0").toUpperCase();e[s]=(e[s]??0)+r}return e}getLongWordRatio(e=7){let t=0;for(const r of this.words)r.length>=e&&t++;return this.words.length?t/this.words.length:0}getShortWordRatio(e=3){let t=0;for(const r of this.words)r.length<=e&&t++;return this.words.length?t/this.words.length:0}getSyllablesCount(){let e=0;for(const t of this.words)e+=this.estimateSyllables(t);return e}getMonosyllabicWordCount(){let e=0;for(const t of this.words)1===this.estimateSyllables(t)&&e++;return e}getMinSyllablesWordCount(e){let t=0;for(const r of this.words)this.estimateSyllables(r)>=e&&t++;return t}getMaxSyllablesWordCount(e){let t=0;for(const r of this.words)this.estimateSyllables(r)<=e&&t++;return t}getHonoresR(){return 100*Math.log(this.words.length)/(1-this.getHapaxLegomena().length/(this.wordHistogram.size??1))}getReadingTime(e=200){return Math.max(1,this.words.length/(e??1))}getReadabilityScore(e="flesch"){const t=this.words.length||1,r=t/(this.sentences.length||1),s=(this.getSyllablesCount()||1)/t;switch(e){case"flesch":return 206.835-1.015*r-84.6*s;case"fleschde":return 180-r-58.5*s;case"kincaid":return.39*r+11.8*s-15.59}}getLIXScore(){const e=this.words.length||1;return e/(this.sentences.length||1)+this.getLongWordRatio()*e/e*100}getWSTFScore(){const e=this.words.length||1,t=this.getMinSyllablesWordCount(3)/e*100,r=this.getAvgSentenceLength(),s=100*this.getLongWordRatio();return[.1935*t+.1672*r+.1297*s-this.getMonosyllabicWordCount()/e*100*.0327-.875,.2007*t+.1682*r+.1373*s-2.779,.2963*t+.1905*r-1.1144,.2744*t+.2656*r-1.693]}}class i{a;b;options;entries=[];grouped=[];diffRun=!1;constructor(e,t,r={}){this.a=e,this.b=t,this.options={mode:"word",caseInsensitive:!1,contextLines:1,groupedLines:!0,expandLines:!1,showChangeMagnitude:!0,maxMagnitudeSymbols:5,lineBreak:"\n",...r},this.computeDiff()}text2lines(){const e=this.a.trim().split(/\r?\n/),t=this.b.trim().split(/\r?\n/);return{linesA:e,linesB:t,maxLen:Math.max(e.length,t.length)}}tokenize(e){const{mode:t}=this.options;switch(t){case"line":return[e];case"word":return e.split(/\s+/)}}concat(e){const{mode:t}=this.options;return e.join("word"===t?" ":"")}computeDiff(){if(!this.diffRun){const{linesA:e,linesB:t,maxLen:r}=this.text2lines();for(let s=0;s<r;s++){const r=e[s]||"",n=t[s]||"";this.lineDiff(r,n,s)}this.findGroups(),this.diffRun=!0}}lineDiff(e,t,r){const{mode:s,caseInsensitive:n}=this.options,i=Math.max(e.length,t.length);let a=e,o=t;n&&(a=e.toLowerCase(),o=t.toLowerCase());let c=[],l=0,h=0;if("line"===s)a!==o&&(c.push({posA:0,posB:0,del:e,ins:t,size:t.length-e.length}),l=e.length,h=t.length);else{c=this.preciseDiff(e,a,t,o);for(const e of c)l+=e.del.length,h+=e.ins.length}c.length&&this.entries.push({line:r,diffs:c,delSize:l,insSize:h,baseLen:i,totalSize:h-l,magnitude:this.magnitude(l,h,i)})}preciseDiff(e,t,r,s){const n=e=>e.reduce((t,r,s)=>(t.push(s?t[s-1]+e[s-1].length+1:0),t),[]),i=this.tokenize(e),a=this.tokenize(r),o=this.tokenize(t),c=this.tokenize(s),l=o.length,h=c.length,p=n(i),u=n(a),d=[];let g=0,m=0;for(;g<l&&m<h;)if(o[g]===c[m]){let e=1;for(;g+e<l&&m+e<h&&o[g+e]===c[m+e];)e++;d.push({ai:g,bi:m,len:e}),g+=e,m+=e}else{let e=!1;for(let t=1;t<=3&&!e;t++)g+t<l&&o[g+t]===c[m]?(d.push({ai:g+t,bi:m,len:1}),g+=t+1,m+=1,e=!0):m+t<h&&o[g]===c[m+t]&&(d.push({ai:g,bi:m+t,len:1}),g+=1,m+=t+1,e=!0);e||(g++,m++)}const f=[];let y=0,w=0;for(const e of d){if(y<e.ai||w<e.bi){const t=i.slice(y,e.ai),r=a.slice(w,e.bi);f.push({posA:p[y]??0,posB:u[w]??0,del:this.concat(t),ins:this.concat(r),size:r.join("").length-t.join("").length})}y=e.ai+e.len,w=e.bi+e.len}if(y<l||w<h){const e=i.slice(y),t=a.slice(w);f.push({posA:p[y]??0,posB:u[w]??0,del:this.concat(e),ins:this.concat(t),size:t.join("").length-e.join("").length})}return f.filter(e=>e.del.length>0||e.ins.length>0)}findGroups(){const{contextLines:e}=this.options,t=(e,t,r)=>{const[s,n,i,a]=["delSize","insSize","totalSize","baseLen"].map(t=>e.reduce((e,r)=>e+r[t],0));this.grouped.push({start:t,end:r,delSize:s,insSize:n,totalSize:i,line:e[0].line,entries:e,magnitude:this.magnitude(s,n,a)})};let r=[],s=0,n=0;for(const i of this.entries){const a=Math.max(0,i.line-e),o=i.line+e;!r.length||a<=n+1?(r.length||(s=a),n=Math.max(n,o),r.push(i)):(t(r,s,n),r=[i],s=a,n=o)}r.length&&t(r,s,n)}magnitude(e,t,r){const{maxMagnitudeSymbols:s}=this.options,n=e+t;if(0===n||0===r)return"";const i=Math.min(s,Math.max(Math.round(n/r*s),1)),a=Math.round(t/n*i),o=i-a;return"+".repeat(a)+"-".repeat(o)}output(e){const{mode:t,contextLines:r,groupedLines:s,expandLines:n,showChangeMagnitude:i,lineBreak:a}=this.options,{linesA:o,linesB:c,maxLen:l}=this.text2lines(),h=Math.max(4,l.toString().length),p=(t,r)=>e?`[${r}m${t}`:t,u=t=>e?`${t}`:`-[${t}]`,d=t=>e?`${t}`:`+[${t}]`,g=(e,t,r,s)=>{s&&m(s);for(let s=e;s<=t;s++)f(s,r??s);w.push("")},m=e=>{var t;w.push(`${" ".repeat(h)} ${t=`@@ -${e.line+1},${e.delSize} +${e.line+1},${e.insSize} @@`,p(t,"36")} ${i?(e=>p(e,"33"))(e.magnitude):""}`)},f=(e,t)=>{if(o[e]||c[e]){const s=this.entries.find(t=>t.line===e),n=(e+1).toString().padStart(h," ");s&&t===e?(w.push(`${n} ${r=`- ${y(o[e],s.diffs,"del")}`,p(r,"31")}`),w.push(`${" ".repeat(h)} ${(e=>p(e,"32"))(`+ ${y(c[e],s.diffs,"ins")}`)}`)):w.push(`${n} ${(e=>p(e,"90"))(o[e])}`)}var r},y=(e,r,s)=>{if(!r.length||"line"===t)return e;let n="",i=0;for(const t of r){const r="del"===s?t.posA:t.posB,a="del"===s?t.del:t.ins;a&&(r>i&&(n+=e.slice(i,r)),n+="del"===s?u(a):d(a),i=r+a.length)}return n+e.slice(i)};let w=[""];switch(!0){case n:g(0,l);break;case s:for(const e of this.grouped)g(e.start,e.end,void 0,e);break;default:for(const e of this.entries)g(e.line-r,e.line+r,e.line,e)}return w.join(a)}getStructuredDiff(){return this.entries}getGroupedDiff(){return this.grouped}getASCIIDiff(){return this.output(!1)}getCLIDiff(){return this.output(!0)}}class a{static FNV_PRIME=16777619;static HASH_OFFSET=2166136261;static fnv1a(e){const t=e.length;let r=this.HASH_OFFSET;const s=Math.floor(t/4);for(let t=0;t<s;t++){const s=4*t;r^=e.charCodeAt(s)|e.charCodeAt(s+1)<<8|e.charCodeAt(s+2)<<16|e.charCodeAt(s+3)<<24,r*=this.FNV_PRIME}const n=t%4;if(n>0){const t=4*s;for(let s=0;s<n;s++)r^=e.charCodeAt(t+s),r*=this.FNV_PRIME}return r^=r>>>16,r*=2246822507,r^=r>>>13,r*=3266489909,r^=r>>>16,r>>>0}}class o{static MAX_LEN=2048;static TABLE_SIZE=1e4;table=new Map;key(e,t,r=!1){for(const e of t)if(e.length>o.MAX_LEN)return!1;const s=t.map(e=>a.fnv1a(e));return r&&s.sort(),[e,...s].join("-")}has(e){return this.table.has(e)}get(e){return this.table.get(e)}set(e,t,r=!0){return!(!(this.table.size<o.TABLE_SIZE)||!r&&this.table.has(e)||(this.table.set(e,t),0))}delete(e){this.table.delete(e)}clear(){this.table.clear()}size(){return this.table.size}}class c{static pipeline=new Map;static cache=new o;static getPipeline(e){if(c.pipeline.has(e))return c.pipeline.get(e);const t=[];e.includes("d")&&t.push(e=>e.normalize("NFD")),e.includes("u")&&t.push(e=>e.normalize("NFC")),e.includes("x")&&t.push(e=>e.normalize("NFKC")),e.includes("w")&&t.push(e=>e.replace(/\s+/g," ")),e.includes("t")&&t.push(e=>e.trim()),e.includes("r")&&t.push(e=>e.replace(/(.)\1+/g,"$1")),e.includes("s")&&t.push(e=>e.replace(/[^\p{L}\p{N}\s]/gu,"")),e.includes("k")&&t.push(e=>e.replace(/[^\p{L}]/gu,"")),e.includes("n")&&t.push(e=>e.replace(/\p{N}/gu,"")),e.includes("i")&&t.push(e=>e.toLowerCase());const r=e=>{let r=e;for(const e of t)r=e(r);return r};return c.pipeline.set(e,r),r}static normalize(e,t){if(Array.isArray(e))return e.map(e=>c.normalize(e,t));if(!t||"string"!=typeof t||!e)return e;const r=c.cache.key(t,[e]);if(r&&c.cache.has(r))return c.cache.get(r);const s=c.getPipeline(t)(e);return r&&c.cache.set(r,s),s}static async normalizeAsync(e,t){return await(Array.isArray(e)?Promise.all(e.map(e=>c.normalize(e,t))):Promise.resolve(c.normalize(e,t)))}static clear(){c.pipeline.clear(),c.cache.clear()}}class l{static filters=new Map;static find(e,t){return l.filters.get(e)?.find(e=>e.id===t)}static add(e,t,r,s={}){const{priority:n=10,active:i=!0,overrideable:a=!0}=s,o=l.filters.get(e)??[],c=o.findIndex(e=>e.id===t);if(c>=0){if(!o[c].overrideable)return!1;o.splice(c,1)}return o.push({id:t,fn:r,priority:n,active:i,overrideable:a}),o.sort((e,t)=>e.priority-t.priority),l.filters.set(e,o),!0}static remove(e,t){const r=l.filters.get(e);if(!r)return!1;const s=r.findIndex(e=>e.id===t);return s>=0&&(r.splice(s,1),!0)}static pause(e,t){const r=l.find(e,t);return!!r&&(r.active=!1,!0)}static resume(e,t){const r=l.find(e,t);return!!r&&(r.active=!0,!0)}static list(e,t=!1){const r=l.filters.get(e)??[],s=[];for(const e of r)t&&!e.active||s.push(e.id);return s}static apply(e,t){const r=l.filters.get(e);if(!r||r.every(e=>!e.active))return t;const s=e=>{for(const t of r)t.active&&(e=t.fn(e));return e};return Array.isArray(t)?t.map(s):s(t)}static async applyAsync(e,t){const r=l.filters.get(e);if(!r||r.every(e=>!e.active))return t;const s=async e=>{for(const t of r)t.active&&(e=await Promise.resolve(t.fn(e)));return e};return Array.isArray(t)?Promise.all(t.map(s)):s(t)}static clear(e){e?l.filters.delete(e):l.filters.clear()}}const h=Object.create(null),p=Object.create(null);function u(e,t){if(e in h||e in p)throw new Error(`Registry <${e}> already exists / overwriting is forbidden`);const r=Object.create(null),s={add(s,n,i=!1){if(!(n.prototype instanceof t))throw new TypeError(`Class must extend <${e}>`);if(!i&&s in r)throw new Error(`Entry <${s}> already exists / use <update=true> to overwrite`);r[s]=n},remove(e){delete r[e]},has:e=>e in r,list:()=>Object.keys(r),get(t){if(!(t in r))throw new Error(`Class <${t}> not registered for <${e}>`);return r[t]}};return h[e]=s,p[e]=(t,...r)=>function(e,t,...r){t=function(e,t){if(!(e in h))throw new ReferenceError(`Registry <${e}> does not exist`);return"string"==typeof t?h[e]?.get(t):t}(e,t);try{return new t(...r)}catch(e){throw new Error(`Cannot instantiate class <${t}>`,{cause:e})}}(e,t,...r),s}const d=s.getInstance();class g{static cache=new o;metric;a;b;origA=[];origB=[];options;symmetric;results;static clear(){this.cache.clear()}static swap(e,t,r,s){return r>s?[t,e,s,r]:[e,t,r,s]}static clamp(e){return Math.max(0,Math.min(1,e))}constructor(e,t,r,s={},n=!1){if(this.metric=e,this.a=Array.isArray(t)?t:[t],this.b=Array.isArray(r)?r:[r],0===this.a.length||0===this.b.length)throw new Error("Inputs <a> and <b> must not be empty");this.options=s,this.symmetric=n}preCompute(e,t,r,s){return e===t?{res:1}:0==r||0==s||r<2&&s<2?{res:0}:void 0}compute(e,t,r,s,n){throw new Error("Method compute() must be overridden in a subclass")}runSingle(e,t){let r=String(this.a[e]),s=r,n=String(this.b[t]),i=n,a=s.length,o=i.length,c=this.preCompute(s,i,a,o);return c||(c=d.run(()=>{const e=g.cache.key(this.metric,[s,i],this.symmetric);return g.cache.get(e||"")??(()=>{this.symmetric&&([s,i,a,o]=g.swap(s,i,a,o));const t=this.compute(s,i,a,o,Math.max(a,o));return e&&g.cache.set(e,t),t})()})),{metric:this.metric,a:this.origA[e]??r,b:this.origB[t]??n,...c}}async runSingleAsync(e,t){return Promise.resolve(this.runSingle(e,t))}runBatch(){const e=[];for(let t=0;t<this.a.length;t++)for(let r=0;r<this.b.length;r++)e.push(this.runSingle(t,r));this.results=e}async runBatchAsync(){const e=[];for(let t=0;t<this.a.length;t++)for(let r=0;r<this.b.length;r++)e.push(await this.runSingleAsync(t,r));this.results=e}runPairwise(){const e=[];for(let t=0;t<this.a.length;t++)e.push(this.runSingle(t,t));this.results=e}async runPairwiseAsync(){const e=[];for(let t=0;t<this.a.length;t++)e.push(await this.runSingleAsync(t,t));this.results=e}setOriginal(e,t){return e&&(this.origA=Array.isArray(e)?e:[e]),t&&(this.origB=Array.isArray(t)?t:[t]),this}isBatch(){return this.a.length>1||this.b.length>1}isSingle(){return!this.isBatch()}isPairwise(e=!1){return!(!this.isBatch()||this.a.length!==this.b.length)||!e&&(()=>{throw new Error("Mode <pairwise> requires arrays of equal length")})()}isSymmetrical(){return this.symmetric}whichMode(e){return e??this.options?.mode??"default"}clear(){this.results=void 0}run(e,t=!0){switch(t&&this.clear(),this.whichMode(e)){case"default":if(this.isSingle()){this.results=this.runSingle(0,0);break}case"batch":this.runBatch();break;case"single":this.results=this.runSingle(0,0);break;case"pairwise":this.isPairwise()&&this.runPairwise();break;default:throw new Error(`Unsupported mode <${e}>`)}}async runAsync(e,t=!0){switch(t&&this.clear(),this.whichMode(e)){case"default":if(this.isSingle()){this.results=await this.runSingleAsync(0,0);break}case"batch":await this.runBatchAsync();break;case"single":this.results=await this.runSingleAsync(0,0);break;case"pairwise":this.isPairwise()&&await this.runPairwiseAsync();break;default:throw new Error(`Unsupported async mode <${e}>`)}}getMetricName(){return this.metric}getResults(){if(void 0===this.results)throw new Error("run() must be called before getResult()");return this.results}}const m=u("metric",g);class f{maxSize;buffers=[];pointer=0;constructor(e){this.maxSize=e}acquire(e,t){const r=this.buffers.length;for(let s=0;s<r;s++){const n=(this.pointer+s)%r,i=this.buffers[n];if(i.size>=e)return this.pointer=(n+1)%r,t||i.size===e?i:null}return null}release(e){this.buffers.length<this.maxSize?this.buffers.push(e):(this.buffers[this.pointer]=e,this.pointer=(this.pointer+1)%this.maxSize)}clear(){this.buffers=[],this.pointer=0}}class y{static CONFIG={uint16:{type:"uint16",maxSize:32,maxItemSize:2048,allowOversize:!0},"number[]":{type:"number[]",maxSize:16,maxItemSize:1024,allowOversize:!1},set:{type:"set",maxSize:8,maxItemSize:0,allowOversize:!1},map:{type:"map",maxSize:8,maxItemSize:0,allowOversize:!1}};static POOLS={uint16:new f(32),"number[]":new f(16),set:new f(8),map:new f(8)};static allocate(e,t){switch(e){case"uint16":return new Uint16Array(t);case"number[]":return new Array(t).fill(0);case"set":return new Set;case"map":return new Map}}static acquire(e,t){const r=this.CONFIG[e];if(t>r.maxItemSize)return this.allocate(e,t);const s=this.POOLS[e].acquire(t,r.allowOversize);return s?"uint16"===e?s.buffer.subarray(0,t):s.buffer:this.allocate(e,t)}static acquireMany(e,t){return t.map(t=>this.acquire(e,t))}static release(e,t,r){r<=this.CONFIG[e].maxItemSize&&this.POOLS[e].release({buffer:t,size:r})}}m.add("cosine",class extends g{constructor(e,t,r={}){super("cosine",e,t,r,!0)}_termFreq(e,t){const r=e.split(t),s=y.acquire("map",r.length);for(const e of r)s.set(e,(s.get(e)||0)+1);return s}compute(e,t){const{delimiter:r=" "}=this.options,s=this._termFreq(e,r),n=this._termFreq(t,r);let i=0,a=0,o=0;for(const[e,t]of s)i+=t*(n.get(e)||0),a+=t*t;for(const e of n.values())o+=e*e;return a=Math.sqrt(a),o=Math.sqrt(o),y.release("map",s,s.size),y.release("map",n,n.size),{res:a&&o?g.clamp(i/(a*o)):0,raw:{dotProduct:i,magnitudeA:a,magnitudeB:o}}}}),m.add("damerau",class extends g{constructor(e,t,r={}){super("damerau",e,t,r,!0)}compute(e,t,r,s,n){const i=r+1,[a,o,c]=y.acquireMany("uint16",[i,i,i]);for(let e=0;e<=r;e++)o[e]=e;for(let n=1;n<=s;n++){c[0]=n;const s=t.charCodeAt(n-1);for(let i=1;i<=r;i++){const r=e.charCodeAt(i-1),l=r===s?0:1;let h=Math.min(c[i-1]+1,o[i]+1,o[i-1]+l);i>1&&n>1&&r===t.charCodeAt(n-2)&&s===e.charCodeAt(i-2)&&(h=Math.min(h,a[i-2]+l)),c[i]=h}a.set(o),o.set(c)}const l=o[r];return y.release("uint16",a,i),y.release("uint16",o,i),y.release("uint16",c,i),{res:0===n?1:g.clamp(1-l/n),raw:{dist:l,maxLen:n}}}}),m.add("dice",class extends g{constructor(e,t,r={}){super("dice",e,t,r,!0)}_bigrams(e){const t=e.length-1,r=y.acquire("set",t);for(let s=0;s<t;s++)r.add(e.substring(s,s+2));return r}compute(e,t){const r=this._bigrams(e),s=this._bigrams(t);let n=0;for(const e of r)s.has(e)&&n++;const i=r.size,a=s.size,o=i+a;return y.release("set",r,i),y.release("set",s,a),{res:0===o?1:g.clamp(2*n/o),raw:{intersection:n,size:o}}}}),m.add("hamming",class extends g{constructor(e,t,r={}){super("hamming",e,t,r,!0)}compute(e,t,r,s,n){if(r!==s){if(void 0===this.options.pad)throw new Error(`Strings must be of equal length for Hamming Distance, a=${r} and b=${s} given, use option.pad for automatic adjustment`);r<n&&(e=e.padEnd(n,this.options.pad)),s<n&&(t=t.padEnd(n,this.options.pad)),r=s=n}let i=0;for(let r=0;r<e.length;r++)e[r]!==t[r]&&i++;return{res:0===r?1:g.clamp(1-i/r),raw:{dist:i}}}}),m.add("jaccard",class extends g{constructor(e,t,r={}){super("jaccard",e,t,r,!0)}compute(e,t,r,s){const[n,i]=y.acquireMany("set",[r,s]);for(const t of e)n.add(t);for(const e of t)i.add(e);let a=0;for(const e of n)i.has(e)&&a++;const o=n.size+i.size-a;return y.release("set",n,r),y.release("set",i,s),{res:0===o?1:g.clamp(a/o),raw:{intersection:a,union:o}}}}),m.add("jaroWinkler",class extends g{constructor(e,t,r={}){super("jaro-winkler",e,t,r,!0)}compute(e,t,r,s){const n=Math.max(0,Math.floor(s/2)-1),i=y.acquire("uint16",r),a=y.acquire("uint16",s);for(let e=0;e<r;e++)i[e]=0;for(let e=0;e<s;e++)a[e]=0;let o=0;for(let c=0;c<r;c++){const r=Math.max(0,c-n),l=Math.min(c+n+1,s);for(let s=r;s<l;s++)if(!a[s]&&e[c]===t[s]){i[c]=1,a[s]=1,o++;break}}let c=0,l=0,h=0,p=0;if(o>0){let n=0;for(let s=0;s<r;s++)if(i[s]){for(;!a[n];)n++;e[s]!==t[n]&&c++,n++}c/=2,l=(o/r+o/s+(o-c)/o)/3;for(let n=0;n<Math.min(4,r,s)&&e[n]===t[n];n++)h++;p=l+.1*h*(1-l)}return y.release("uint16",i,r),y.release("uint16",a,s),{res:g.clamp(p),raw:{matchWindow:n,matches:o,transpos:c,jaro:l,prefix:h}}}}),m.add("lcs",class extends g{constructor(e,t,r={}){super("lcs",e,t,r,!0)}compute(e,t,r,s,n){const i=r+1,[a,o]=y.acquireMany("uint16",[i,i]);for(let e=0;e<=r;e++)a[e]=0;for(let n=1;n<=s;n++){o[0]=0;const s=t.charCodeAt(n-1);for(let t=1;t<=r;t++)e.charCodeAt(t-1)===s?o[t]=a[t-1]+1:o[t]=Math.max(a[t],o[t-1]);a.set(o)}const c=a[r];return y.release("uint16",a,i),y.release("uint16",o,i),{res:0===n?1:g.clamp(c/n),raw:{lcs:c,maxLen:n}}}}),m.add("levenshtein",class extends g{constructor(e,t,r={}){super("levenshtein",e,t,r,!0)}compute(e,t,r,s,n){const i=r+1,[a,o]=y.acquireMany("uint16",[i,i]);for(let e=0;e<=r;e++)a[e]=e;for(let n=1;n<=s;n++){o[0]=n;const s=t.charCodeAt(n-1);for(let t=1;t<=r;t++){const r=e.charCodeAt(t-1)===s?0:1;o[t]=Math.min(o[t-1]+1,a[t]+1,a[t-1]+r)}a.set(o)}const c=a[r];return y.release("uint16",a,i),y.release("uint16",o,i),{res:0===n?1:g.clamp(1-c/n),raw:{dist:c,maxLen:n}}}}),m.add("needlemanWunsch",class extends g{constructor(e,t,r={}){super("needlemanWunsch",e,t,r,!0)}compute(e,t,r,s,n){const{match:i=1,mismatch:a=-1,gap:o=-1}=this.options,c=r+1,[l,h]=y.acquireMany("uint16",[c,c]);l[0]=0;for(let e=1;e<=r;e++)l[e]=l[e-1]+o;for(let n=1;n<=s;n++){h[0]=l[0]+o;const s=t.charCodeAt(n-1);for(let t=1;t<=r;t++){const r=e.charCodeAt(t-1)===s?i:a;h[t]=Math.max(l[t-1]+r,l[t]+o,h[t-1]+o)}l.set(h)}const p=l[r];y.release("uint16",l,c),y.release("uint16",h,c);const u=n*i;return{res:0===u?0:g.clamp(p/u),raw:{score:p,denum:u}}}}),m.add("qGram",class extends g{constructor(e,t,r={}){super("qgram",e,t,r,!0)}_qGrams(e,t){const r=Math.max(0,e.length-t+1),s=y.acquire("set",r);for(let n=0;n<r;n++)s.add(e.slice(n,n+t));return s}compute(e,t){const{q:r=2}=this.options,s=this._qGrams(e,r),n=this._qGrams(t,r);let i=0;for(const e of s)n.has(e)&&i++;const a=s.size,o=n.size,c=Math.max(a,o);return y.release("set",s,a),y.release("set",n,o),{res:0===c?1:g.clamp(i/c),raw:{intersection:i,size:c}}}}),m.add("smithWaterman",class extends g{constructor(e,t,r={}){super("smithWaterman",e,t,r,!0)}compute(e,t,r,s){const{match:n=2,mismatch:i=-1,gap:a=-2}=this.options,o=r+1,[c,l]=y.acquireMany("uint16",[o,o]);for(let e=0;e<=r;e++)c[e]=0;let h=0;for(let o=1;o<=s;o++){l[0]=0;const s=t.charCodeAt(o-1);for(let t=1;t<=r;t++){const r=e.charCodeAt(t-1)===s?n:i;l[t]=Math.max(0,c[t-1]+r,c[t]+a,l[t-1]+a),l[t]>h&&(h=l[t])}c.set(l)}y.release("uint16",c,o),y.release("uint16",l,o);const p=Math.min(r*n,s*n);return{res:0===p?0:g.clamp(h/p),raw:{score:h,denum:p}}}});const w=s.getInstance();class b{static cache=new o;static default;algo;options;map;static clear(){this.cache.clear()}constructor(e,t={}){const s=this.constructor.default??{},n=t.map??s.map;if(!n)throw new Error("No mapping specified for phonetic algorithm");const i=A.get(e,n);if(void 0===i)throw new Error(`Requested mapping <${n}> is not declared`);this.options=r(r(s,i.options??{}),t),this.algo=e,this.map=i}applyPattern(e){const{patterns:t=[]}=this.map;if(!t||!t.length)return e;for(const{pattern:r,replace:s,all:n=!1}of t)e=e[n?"replaceAll":"replace"](r,s);return e}applyRules(e,t,r,s){const{ruleset:n=[]}=this.map;if(!n||!n.length)return;const i=r[t-1]||"",a=r[t-2]||"",o=r[t+1]||"",c=r[t+2]||"";for(const l of n)if((!l.char||l.char===e)&&("start"!==l.position||0===t)&&!("middle"===l.position&&t>0&&t<s)&&("end"!==l.position||t===s)&&(!l.prev||l.prev.includes(i))&&(!l.prevNot||!l.prevNot.includes(i))&&(!l.prev2||l.prev2.includes(a))&&(!l.prev2Not||!l.prev2Not.includes(a))&&(!l.next||l.next.includes(o))&&(!l.nextNot||!l.nextNot.includes(o))&&(!l.next2||l.next2.includes(c))&&(!l.next2Not||!l.next2Not.includes(c))&&(!l.leading||l.leading.includes(r.slice(0,l.leading.length).join("")))&&(!l.trailing||l.trailing.includes(r.slice(-l.trailing.length).join("")))&&(!l.match||l.match.every((e,s)=>r[t+s]===e)))return l.code}encode(e){const{map:t={},ignore:r=[]}=this.map;e=this.applyPattern(e);const s=this.word2Chars(e),n=s.length;let i="",a=null;for(let e=0;e<n;e++){const o=s[e];if(r.includes(o))continue;const c=this.mapChar(o,e,s,n,a,t);if(void 0!==c&&(i+=c,a=c,this.exitEarly(i,e)))break}return this.adjustCode(i,s)}mapChar(e,t,r,s,n,i){const{dedupe:a=!0,fallback:o}=this.options,c=this.applyRules(e,t,r,s)??i[e]??o;return a&&c===n?void 0:c}equalLen(e){const{length:t=-1,pad:r="0"}=this.options;return-1===t?e:(e+r.repeat(t)).slice(0,t)}word2Chars(e){return e.toLowerCase().split("")}exitEarly(e,t){const{length:r=-1}=this.options;return r>0&&e.length>=r}adjustCode(e,t){return e}loop(e){const t=[];for(const r of e){const e=b.cache.key(this.algo,[r]),s=b.cache.get(e||"")??(()=>{const t=this.encode(r);return e&&b.cache.set(e,t),t})();s&&s.length&&t.push(this.equalLen(s))}return t}async loopAsync(e){const t=[];for(const r of e){const e=await Promise.resolve(this.encode(r));e&&e.length&&t.push(this.equalLen(e))}return t}getAlgoName(){return this.algo}getIndex(e){const{delimiter:t=" "}=this.options;return w.run(()=>this.loop(e.split(t).filter(Boolean)).filter(Boolean))}async getIndexAsync(e){const{delimiter:t=" "}=this.options;return(await w.runAsync(async()=>await this.loopAsync(e.split(t).filter(Boolean)))).filter(Boolean)}}const x=u("phonetic",b),A=(()=>{const e=Object.create(null),t=t=>e[t]||=Object.create(null);return{add(e,r,s,n=!1){const i=t(e);if(!n&&r in i)throw new Error(`Entry <${r}> already exists / use <update=true> to overwrite`);i[r]=s},remove(e,r){delete t(e)[r]},has:(e,r)=>r in t(e),get:(e,r)=>t(e)[r],list:e=>Object.keys(t(e))}})();x.add("caverphone",class extends b{static default={map:"en2",delimiter:" ",length:-1,pad:"",dedupe:!1};constructor(e={}){super("caverphone",e)}encode(e){return e=e.replace(/[^A-Z]/gi,"").toLowerCase(),super.encode(e)}mapChar(e){return e}adjustCode(e){return e.toUpperCase()}}),A.add("caverphone","en1",{options:{length:6,pad:"1"},map:{},patterns:[{pattern:/^(c|r|t|en)ough/,replace:"$1ou2f"},{pattern:/^gn/,replace:"2n"},{pattern:/mb$/,replace:"m2"},{pattern:/cq/g,replace:"2q"},{pattern:/c(e|i|y)/g,replace:"s$1"},{pattern:/tch/g,replace:"2ch"},{pattern:/[cqx]/g,replace:"k"},{pattern:/v/g,replace:"f"},{pattern:/dg/g,replace:"2g"},{pattern:/ti(a|o)/g,replace:"si$1"},{pattern:/d/g,replace:"t"},{pattern:/ph/g,replace:"fh"},{pattern:/b/g,replace:"p"},{pattern:/sh/g,replace:"s2"},{pattern:/z/g,replace:"s"},{pattern:/^[aeiou]/,replace:"A"},{pattern:/[aeiou]/g,replace:"3"},{pattern:/3gh3/g,replace:"3kh3"},{pattern:/gh/g,replace:"22"},{pattern:/g/g,replace:"k"},{pattern:/s+/g,replace:"S"},{pattern:/t+/g,replace:"T"},{pattern:/p+/g,replace:"P"},{pattern:/k+/g,replace:"K"},{pattern:/f+/g,replace:"F"},{pattern:/m+/g,replace:"M"},{pattern:/n+/g,replace:"N"},{pattern:/j/g,replace:"y"},{pattern:/l3/g,replace:"L3"},{pattern:/r3/g,replace:"R3"},{pattern:/w3/g,replace:"W3"},{pattern:/y3/g,replace:"Y3"},{pattern:/ly/g,replace:"Ly"},{pattern:/ry/g,replace:"Ry"},{pattern:/wy/g,replace:"Wy"},{pattern:/wh3/g,replace:"Wh3"},{pattern:/why/g,replace:"Why"},{pattern:/^h/,replace:"A"},{pattern:/[hlrwy23]/g,replace:""}]}),A.add("caverphone","en2",{options:{length:10,pad:"1"},map:{},patterns:[{pattern:/e$/,replace:""},{pattern:/^(c|r|t|en|tr)ough/,replace:"$1ou2f"},{pattern:/^gn/,replace:"2n"},{pattern:/mb$/,replace:"m2"},{pattern:/cq/g,replace:"2q"},{pattern:/c(e|i|y)/g,replace:"s$1"},{pattern:/tch/g,replace:"2ch"},{pattern:/[cqx]/g,replace:"k"},{pattern:/v/g,replace:"f"},{pattern:/dg/g,replace:"2g"},{pattern:/ti(a|o)/g,replace:"si$1"},{pattern:/d/g,replace:"t"},{pattern:/ph/g,replace:"fh"},{pattern:/b/g,replace:"p"},{pattern:/sh/g,replace:"s2"},{pattern:/z/g,replace:"s"},{pattern:/^[aeiou]/,replace:"A"},{pattern:/[aeiou]/g,replace:"3"},{pattern:/j/g,replace:"y"},{pattern:/^y3/,replace:"Y3"},{pattern:/^y/,replace:"A"},{pattern:/y/g,replace:"3"},{pattern:/3gh3/g,replace:"3kh3"},{pattern:/gh/g,replace:"22"},{pattern:/g/g,replace:"k"},{pattern:/s+/g,replace:"S"},{pattern:/t+/g,replace:"T"},{pattern:/p+/g,replace:"P"},{pattern:/k+/g,replace:"K"},{pattern:/f+/g,replace:"F"},{pattern:/m+/g,replace:"M"},{pattern:/n+/g,replace:"N"},{pattern:/l3/g,replace:"L3"},{pattern:/r3/g,replace:"R3"},{pattern:/w3/g,replace:"W3"},{pattern:/wh3/g,replace:"Wh3"},{pattern:/[lrw]$/,replace:"3"},{pattern:/^h/,replace:"A"},{pattern:/3$/,replace:"A"},{pattern:/[hlrw23]/g,replace:""}]}),x.add("cologne",class extends b{static default={map:"default",delimiter:" ",length:-1,dedupe:!0};constructor(e={}){super("cologne",e)}adjustCode(e){return e.slice(0,1)+e.slice(1).replaceAll("0","")}}),A.add("cologne","default",{map:{a:"0","ä":"0",e:"0",i:"0",j:"0",o:"0","ö":"0",u:"0","ü":"0",y:"0",b:"1",p:"1",d:"2",t:"2",f:"3",v:"3",w:"3",g:"4",k:"4",q:"4",l:"5",m:"6",n:"6",r:"7",c:"8",s:"8","ß":"8",z:"8",x:"48"},ignore:["h"],ruleset:[{char:"p",next:["h"],code:"3"},{char:"c",position:"start",next:["a","h","k","l","o","q","r","u","x"],code:"4"},{char:"c",next:["a","h","k","o","q","u","x"],prevNot:["s","z"],code:"4"},{char:"d",next:["c","s","z"],code:"8"},{char:"t",next:["c","s","z"],code:"8"},{char:"x",prev:["c","k","q"],code:"8"}]}),x.add("metaphone",class extends b{static default={map:"en90",delimiter:" ",length:-1,pad:"",dedupe:!1};constructor(e={}){super("metaphone",e)}encode(e){return e=e.replace(/([A-BD-Z])\1+/gi,(e,t)=>"C"===t?e:t),super.encode(e)}adjustCode(e){return e.slice(0,1)+e.slice(1).replace(/[AEIOU]/g,"")}}),A.add("metaphone","en90",{map:{a:"A",b:"B",c:"K",d:"T",e:"E",f:"F",g:"K",h:"H",i:"I",j:"J",k:"K",l:"L",m:"M",n:"N",o:"O",p:"P",q:"K",r:"R",s:"S",t:"T",u:"U",v:"F",w:"W",x:"KS",y:"Y",z:"S"},ruleset:[{char:"a",position:"start",next:["e"],code:""},{char:"g",position:"start",next:["n"],code:""},{char:"k",position:"start",next:["n"],code:""},{char:"p",position:"start",next:["n"],code:""},{char:"w",position:"start",next:["r"],code:""},{char:"b",position:"end",prev:["m"],code:""},{char:"c",next:["h"],prevNot:["s"],code:"X"},{char:"c",next:["i"],next2:["a"],code:"X"},{char:"c",next:["e","i","y"],code:"S"},{char:"d",next:["g"],next2:["e","i","y"],code:"J"},{char:"g",next:["h"],next2Not:["","a","e","i","o","u"],code:""},{char:"g",trailing:"n",code:""},{char:"g",trailing:"ned",code:""},{char:"g",next:["e","i","y"],prevNot:["g"],code:"J"},{char:"h",prev:["a","e","i","o","u"],nextNot:["a","e","i","o","u"],code:""},{char:"h",prev:["c","g","p","s","t"],code:""},{char:"k",prev:["c"],code:""},{char:"p",next:["h"],code:"F"},{char:"s",next:["h"],code:"X"},{char:"s",next:["i"],next2:["a","o"],code:"X"},{char:"t",next:["i"],next2:["a","o"],code:"X"},{char:"t",next:["h"],code:"0"},{char:"t",next:["c"],next2:["h"],code:""},{char:"w",nextNot:["a","e","i","o","u"],code:""},{char:"h",leading:"w",code:""},{char:"x",position:"start",code:"S"},{char:"y",nextNot:["a","e","i","o","u"],code:""}]}),x.add("soundex",class extends b{static default={map:"en",delimiter:" ",length:4,pad:"0",dedupe:!0};constructor(e={}){super("soundex",e)}adjustCode(e,t){return t[0].toUpperCase()+e.slice(1).replaceAll("0","")}}),A.add("soundex","en",{map:{a:"0",e:"0",h:"0",i:"0",o:"0",u:"0",w:"0",y:"0",b:"1",f:"1",p:"1",v:"1",c:"2",g:"2",j:"2",k:"2",q:"2",s:"2",x:"2",z:"2",d:"3",t:"3",l:"4",m:"5",n:"5",r:"6"}}),A.add("soundex","de",{map:{a:"0","ä":"0",e:"0",h:"0",i:"0",j:"0",o:"0","ö":"0",u:"0","ü":"0",y:"0",b:"1",f:"1",p:"1",v:"1",w:"1",c:"2",g:"2",k:"2",q:"2",s:"2","ß":"2",x:"2",z:"2",d:"3",t:"3",l:"4",m:"5",n:"5",r:"6"},ruleset:[{char:"c",next:["h"],code:"7"}]});const v=s.getInstance();class S{static filter={add:l.add,remove:l.remove,pause:l.pause,resume:l.resume,list:l.list,clear:l.clear};static metric={add:m.add,remove:m.remove,has:m.has,list:m.list};static phonetic={add:x.add,remove:x.remove,has:x.has,list:x.list,map:{add:A.add,remove:A.remove,has:A.has,list:A.list}};static profiler=v.services;static clearCache={normalizer:c.clear,metric:g.clear,phonetic:b.clear};static analyze(e){return new n(e)}static diff(e,t,r){return new i(e,t,r)}static create(e){return new S(e)}options=Object.create(null);constructor(e){e&&("string"==typeof e?this.setSerializedOptions(e):this.setOptions(e))}assert(e,t){switch(e){case"metric":if(!S.metric.has(t))throw new Error("CmpStr <metric> must be set, call .setMetric(), use CmpStr.metric.list() for available metrics");break;case"phonetic":if(!S.phonetic.has(t))throw new Error("CmpStr <phonetic> must be set, call .setPhonetic(), use CmpStr.phonetic.list() for available phonetic algorithms");break;default:throw new Error(`Cmpstr condition <${e}> unknown`)}}assertMany(...e){for(const[t,r]of e)this.assert(t,r)}resolveOptions(e){return r({...this.options??Object.create(null)},e)}normalize(e,t){return c.normalize(e,t??this.options.flags??"")}filter(e,t){return l.apply(t,e)}prepare(e,t){const{flags:r,processors:s}=t??this.options;return r?.length&&(e=this.normalize(e,r)),e=this.filter(e,"input"),s?.phonetic&&(e=this.index(e,s.phonetic)),e}postProcess(e,t){return t?.removeZero&&Array.isArray(e)&&(e=e.filter(e=>e.res>0)),e}index(e,{algo:t,opt:r}){this.assert("phonetic",t);const s=p.phonetic(t,r),n=r?.delimiter??" ";return Array.isArray(e)?e.map(e=>s.getIndex(e).join(n)):s.getIndex(e).join(n)}compute(e,t,r,s,n,i){const a=this.resolveOptions(r);this.assert("metric",a.metric);const o=i?e:this.prepare(e,a),c=i?t:this.prepare(t,a);if(a.safeEmpty&&(Array.isArray(o)&&0===o.length||Array.isArray(c)&&0===c.length||""===o||""===c))return[];const l=p.metric(a.metric,o,c,a.opt);"prep"!==a.output&&l.setOriginal(e,t),l.run(s);const h=this.postProcess(l.getResults(),a);return this.output(h,n??a.raw)}output(e,t){return t??this.options.raw?e:Array.isArray(e)?e.map(e=>({source:e.a,target:e.b,match:e.res})):{source:e.a,target:e.b,match:e.res}}clone(){return Object.assign(Object.create(Object.getPrototypeOf(this)),this)}reset(){for(const e in this.options)delete this.options[e];return this}setOptions(e){return this.options=e,this}mergeOptions(e){return r(this.options,e),this}setSerializedOptions(e){return this.options=JSON.parse(e),this}setOption(e,r){return t(this.options,e,r),this}rmvOption(t){return function(t,r,s=!1){const n=(e,t,r=0)=>{const i=t[r];if(!e||"object"!=typeof e)return!1;if(r===t.length-1)return delete e[i];if(!n(e[i],t,r+1))return!1;if(!s){const t=e[i];"object"==typeof t&&(Array.isArray(t)&&t.every(e=>null==e)||!Array.isArray(t)&&0===Object.keys(t).length)&&delete e[i]}return!0};n(t,e(r))}(this.options,t),this}setRaw(e){return this.setOption("raw",e)}setMetric(e){return this.setOption("metric",e)}setFlags(e){return this.setOption("flags",e)}rmvFlags(){return this.rmvOption("flags")}setProcessors(e){return this.setOption("processors",e)}rmvProcessors(){return this.rmvOption("processors")}getOptions(){return this.options}getSerializedOptions(){return JSON.stringify(this.options)}getOption(t){return function(t,r){return e(r).reduce((e,t)=>e?.[t]??void 0,t)}(this.options,t)}test(e,t,r){return this.compute(e,t,r,"single")}compare(e,t,r){return this.compute(e,t,r,"single",!0).res}batchTest(e,t,r){return this.compute(e,t,r,"batch")}batchSorted(e,t,r="desc",s){return this.output(this.compute(e,t,s,"batch",!0).sort((e,t)=>"asc"===r?e.res-t.res:t.res-e.res),s?.raw??this.options.raw)}pairs(e,t,r){return this.compute(e,t,r,"pairwise")}match(e,t,r,s){return this.output(this.compute(e,t,s,"batch",!0).filter(e=>e.res>=r).sort((e,t)=>t.res-e.res),s?.raw??this.options.raw)}closest(e,t,r=1,s){return this.batchSorted(e,t,"desc",s).slice(0,r)}furthest(e,t,r=1,s){return this.batchSorted(e,t,"asc",s).slice(0,r)}search(e,t,r,s){const n=this.resolveOptions({flags:r,processors:s}),i=this.prepare(e,n),a=this.prepare(t,n);return t.filter((e,t)=>a[t].includes(i))}matrix(e,t){return(e=this.prepare(e,this.resolveOptions(t))).map(t=>this.compute(t,e,void 0,"batch",!0,!0).map(e=>e.res??0))}phoneticIndex(e,t,r){const{algo:s,opt:n}=this.options.processors?.phonetic??{};return this.index(e,{algo:t??s,opt:r??n})}}class z extends S{static create(e){return new z(e)}constructor(e){super(e)}async normalizeAsync(e,t){return c.normalizeAsync(e,t??this.options.flags??"")}async filterAsync(e,t){return l.applyAsync(t,e)}async prepareAsync(e,t){const{flags:r,processors:s}=t??this.options;return r?.length&&(e=await this.normalizeAsync(e,r)),e=await this.filterAsync(e,"input"),s?.phonetic&&(e=await this.indexAsync(e,s.phonetic)),e}async indexAsync(e,{algo:t,opt:r}){this.assert("phonetic",t);const s=p.phonetic(t,r),n=r?.delimiter??" ";return Array.isArray(e)?Promise.all(e.map(e=>s.getIndexAsync(e).then(e=>e.join(n)))):s.getIndexAsync(e).then(e=>e.join(n))}async computeAsync(e,t,r,s,n,i){const a=this.resolveOptions(r);this.assert("metric",a.metric);const o=i?e:await this.prepareAsync(e,a),c=i?t:await this.prepareAsync(t,a);if(a.safeEmpty&&(Array.isArray(o)&&0===o.length||Array.isArray(c)&&0===c.length||""===o||""===c))return[];const l=p.metric(a.metric,o,c,a.opt);"prep"!==a.output&&l.setOriginal(e,t),await l.runAsync(s);const h=this.postProcess(l.getResults(),a);return this.output(h,n??a.raw)}async testAsync(e,t,r){return this.computeAsync(e,t,r,"single")}async compareAsync(e,t,r){return(await this.computeAsync(e,t,r,"single",!0)).res}async batchTestAsync(e,t,r){return this.computeAsync(e,t,r,"batch")}async batchSortedAsync(e,t,r="desc",s){const n=await this.computeAsync(e,t,s,"batch",!0);return this.output(n.sort((e,t)=>"asc"===r?e.res-t.res:t.res-e.res),s?.raw??this.options.raw)}async pairsAsync(e,t,r){return this.computeAsync(e,t,r,"pairwise")}async matchAsync(e,t,r,s){const n=await this.computeAsync(e,t,s,"batch",!0);return this.output(n.filter(e=>e.res>=r).sort((e,t)=>t.res-e.res),s?.raw??this.options.raw)}async closestAsync(e,t,r=1,s){return(await this.batchSortedAsync(e,t,"desc",s)).slice(0,r)}async furthestAsync(e,t,r=1,s){return(await this.batchSortedAsync(e,t,"asc",s)).slice(0,r)}async searchAsync(e,t,r,s){const n=this.resolveOptions({flags:r,processors:s}),i=await this.prepareAsync(e,n),a=await this.prepareAsync(t,n);return t.filter((e,t)=>a[t].includes(i))}async matrixAsync(e,t){return e=await this.prepareAsync(e,this.resolveOptions(t)),Promise.all(e.map(async t=>await this.computeAsync(t,e,void 0,"batch",!0,!0).then(e=>e.map(e=>e.res??0))))}async phoneticIndexAsync(e,t,r){const{algo:s,opt:n}=this.options.processors?.phonetic??{};return this.indexAsync(e,{algo:t??s,opt:r??n})}}export{S as CmpStr,z as CmpStrAsync,i as DiffChecker,c as Normalizer,n as TextAnalyzer};
7
+ const t=t=>t.replace(/\[(\d+)]/g,".$1").split(".").map(t=>/^\d+$/.test(t)?+t:t);function e(e,r,s){return t(r).reduce((t,e)=>t?.[e]??s,e)}function r(e,s,n){if(""===s)return n;const[i,...a]=t(s);if(void 0!==e&&("object"!=typeof e||null===e))throw Error(`Cannot set property <${i}> of <${JSON.stringify(e)}>`);return Object.assign(e??("number"==typeof i?[]:Object.create(null)),{[i]:r(e?.[i],a.join("."),n)})}function s(t=Object.create(null),e=Object.create(null),r=!1){return Object.keys(e).forEach(n=>{const i=e[n];(r||void 0!==i)&&"__proto__"!==n&&"constructor"!==n&&(t[n]="object"!=typeof i||Array.isArray(i)?i:s("object"!=typeof t[n]||Array.isArray(t[n])?Object.create(null):t[n],i))}),t}function n(e,r,s=!1){const n=(t,e,r=0)=>{const i=e[r];if(!t||"object"!=typeof t)return!1;if(r===e.length-1)return delete t[i];if(!n(t[i],e,r+1))return!1;if(!s){const e=t[i];"object"==typeof e&&(Array.isArray(e)&&e.every(t=>null==t)||!Array.isArray(e)&&0===Object.keys(e).length)&&delete t[i]}return!0};return n(e,t(r)),e}var i=Object.freeze({__proto__:null,get:e,has:function(e,r){return void 0!==t(r).reduce((t,e)=>t&&e in t?t[e]:void 0,e)},merge:s,rmv:n,set:r});class a{static ENV;static instance;store=new Set;totalTime=0;totalMem=0;active;static detectEnv(){"undefined"!=typeof process?a.ENV="nodejs":"undefined"!=typeof performance?a.ENV="browser":a.ENV="unknown"}static getInstance(t){return a.ENV||a.detectEnv(),a.instance||(a.instance=new a(t)),a.instance}constructor(t){this.active=t??!1}now(){switch(a.ENV){case"nodejs":return Number(process.hrtime.bigint())/1e6;case"browser":return performance.now();default:return Date.now()}}mem(){switch(a.ENV){case"nodejs":return process.memoryUsage().heapUsed;case"browser":return performance.memory?.usedJSHeapSize??0;default:return 0}}enable(){this.active=!0}disable(){this.active=!1}clear(){this.store.clear(),this.totalTime=0,this.totalMem=0}run(t,e={}){if(!this.active)return t();const r=this.now(),s=this.mem(),n=t(),i=this.now()-r,a=this.mem()-s;return this.store.add({time:i,mem:a,res:n,meta:e}),this.totalTime+=i,this.totalMem+=a,n}async runAsync(t,e={}){if(!this.active)return await t();const r=this.now(),s=this.mem(),n=await t(),i=this.now()-r,a=this.mem()-s;return this.store.add({time:i,mem:a,res:n,meta:e}),this.totalTime+=i,this.totalMem+=a,n}getAll(){return[...this.store]}getLast(){return this.getAll().pop()}getTotal(){return{time:this.totalTime,mem:this.totalMem}}services={enable:this.enable.bind(this),disable:this.disable.bind(this),clear:this.clear.bind(this),report:this.getAll.bind(this),last:this.getLast.bind(this),total:this.getTotal.bind(this)}}class o{text;words=[];sentences=[];charFrequency=new Map;wordHistogram=new Map;syllableCache=new Map;constructor(t){this.text=t.trim(),this.tokenize(),this.computeFrequencies()}tokenize(){this.words=[],this.sentences=[];const t=this.text,e=/\p{L}+/gu;let r;for(;null!==(r=e.exec(t));)this.words.push(r[0].toLowerCase());this.sentences=t.split(/(?<=[.!?])\s+/).filter(Boolean)}computeFrequencies(){for(const t of this.text)this.charFrequency.set(t,(this.charFrequency.get(t)??0)+1);for(const t of this.words)this.wordHistogram.set(t,(this.wordHistogram.get(t)??0)+1)}estimateSyllables(t){if(this.syllableCache.has(t))return this.syllableCache.get(t);const e=t.toLowerCase().replace(/[^a-zäöüß]/g,"").match(/[aeiouyäöü]+/g),r=e?e.length:1;return this.syllableCache.set(t,r),r}getLength(){return this.text.length}getWordCount(){return this.words.length}getSentenceCount(){return this.sentences.length}getAvgWordLength(){let t=0;for(const e of this.words)t+=e.length;return this.words.length?t/this.words.length:0}getAvgSentenceLength(){return this.sentences.length?this.words.length/this.sentences.length:0}getWordHistogram(){return Object.fromEntries(this.wordHistogram)}getMostCommonWords(t=5){return[...this.wordHistogram.entries()].sort((t,e)=>e[1]-t[1]).slice(0,t).map(t=>t[0])}getHapaxLegomena(){return[...this.wordHistogram.entries()].filter(([,t])=>1===t).map(t=>t[0])}hasNumbers(){return/\d/.test(this.text)}getUpperCaseRatio(){let t=0,e=0;for(let r=0,s=this.text.length;r<s;r++){const s=this.text[r];/[A-Za-zÄÖÜäöüß]/.test(s)&&(e++,/[A-ZÄÖÜ]/.test(s)&&t++)}return e?t/e:0}getCharFrequency(){return Object.fromEntries(this.charFrequency)}getUnicodeStats(){const t={};for(const[e,r]of this.charFrequency){const s=e.charCodeAt(0).toString(16).padStart(4,"0").toUpperCase();t[s]=(t[s]??0)+r}return t}getLongWordRatio(t=7){let e=0;for(const r of this.words)r.length>=t&&e++;return this.words.length?e/this.words.length:0}getShortWordRatio(t=3){let e=0;for(const r of this.words)r.length<=t&&e++;return this.words.length?e/this.words.length:0}getSyllablesCount(){let t=0;for(const e of this.words)t+=this.estimateSyllables(e);return t}getMonosyllabicWordCount(){let t=0;for(const e of this.words)1===this.estimateSyllables(e)&&t++;return t}getMinSyllablesWordCount(t){let e=0;for(const r of this.words)this.estimateSyllables(r)>=t&&e++;return e}getMaxSyllablesWordCount(t){let e=0;for(const r of this.words)this.estimateSyllables(r)<=t&&e++;return e}getHonoresR(){return 100*Math.log(this.words.length)/(1-this.getHapaxLegomena().length/(this.wordHistogram.size??1))}getReadingTime(t=200){return Math.max(1,this.words.length/(t??1))}getReadabilityScore(t="flesch"){const e=this.words.length||1,r=e/(this.sentences.length||1),s=(this.getSyllablesCount()||1)/e;switch(t){case"flesch":return 206.835-1.015*r-84.6*s;case"fleschde":return 180-r-58.5*s;case"kincaid":return.39*r+11.8*s-15.59}}getLIXScore(){const t=this.words.length||1;return t/(this.sentences.length||1)+this.getLongWordRatio()*t/t*100}getWSTFScore(){const t=this.words.length||1,e=this.getMinSyllablesWordCount(3)/t*100,r=this.getAvgSentenceLength(),s=100*this.getLongWordRatio();return[.1935*e+.1672*r+.1297*s-this.getMonosyllabicWordCount()/t*100*.0327-.875,.2007*e+.1682*r+.1373*s-2.779,.2963*e+.1905*r-1.1144,.2744*e+.2656*r-1.693]}}class c{a;b;options;entries=[];grouped=[];diffRun=!1;constructor(t,e,r={}){this.a=t,this.b=e,this.options={mode:"word",caseInsensitive:!1,contextLines:1,groupedLines:!0,expandLines:!1,showChangeMagnitude:!0,maxMagnitudeSymbols:5,lineBreak:"\n",...r},this.computeDiff()}text2lines(){const t=this.a.trim().split(/\r?\n/),e=this.b.trim().split(/\r?\n/);return{linesA:t,linesB:e,maxLen:Math.max(t.length,e.length)}}tokenize(t){const{mode:e}=this.options;switch(e){case"line":return[t];case"word":return t.split(/\s+/)}}concat(t){const{mode:e}=this.options;return t.join("word"===e?" ":"")}computeDiff(){if(!this.diffRun){const{linesA:t,linesB:e,maxLen:r}=this.text2lines();for(let s=0;s<r;s++){const r=t[s]||"",n=e[s]||"";this.lineDiff(r,n,s)}this.findGroups(),this.diffRun=!0}}lineDiff(t,e,r){const{mode:s,caseInsensitive:n}=this.options,i=Math.max(t.length,e.length);let a=t,o=e;n&&(a=t.toLowerCase(),o=e.toLowerCase());let c=[],l=0,h=0;if("line"===s)a!==o&&(c.push({posA:0,posB:0,del:t,ins:e,size:e.length-t.length}),l=t.length,h=e.length);else{c=this.preciseDiff(t,a,e,o);for(const t of c)l+=t.del.length,h+=t.ins.length}c.length&&this.entries.push({line:r,diffs:c,delSize:l,insSize:h,baseLen:i,totalSize:h-l,magnitude:this.magnitude(l,h,i)})}preciseDiff(t,e,r,s){const n=t=>t.reduce((e,r,s)=>(e.push(s?e[s-1]+t[s-1].length+1:0),e),[]),i=this.tokenize(t),a=this.tokenize(r),o=this.tokenize(e),c=this.tokenize(s),l=o.length,h=c.length,u=n(i),p=n(a),d=[];let g=0,m=0;for(;g<l&&m<h;)if(o[g]===c[m]){let t=1;for(;g+t<l&&m+t<h&&o[g+t]===c[m+t];)t++;d.push({ai:g,bi:m,len:t}),g+=t,m+=t}else{let t=!1;for(let e=1;e<=3&&!t;e++)g+e<l&&o[g+e]===c[m]?(d.push({ai:g+e,bi:m,len:1}),g+=e+1,m+=1,t=!0):m+e<h&&o[g]===c[m+e]&&(d.push({ai:g,bi:m+e,len:1}),g+=1,m+=e+1,t=!0);t||(g++,m++)}const f=[];let y=0,w=0;for(const t of d){if(y<t.ai||w<t.bi){const e=i.slice(y,t.ai),r=a.slice(w,t.bi);f.push({posA:u[y]??0,posB:p[w]??0,del:this.concat(e),ins:this.concat(r),size:r.join("").length-e.join("").length})}y=t.ai+t.len,w=t.bi+t.len}if(y<l||w<h){const t=i.slice(y),e=a.slice(w);f.push({posA:u[y]??0,posB:p[w]??0,del:this.concat(t),ins:this.concat(e),size:e.join("").length-t.join("").length})}return f.filter(t=>t.del.length>0||t.ins.length>0)}findGroups(){const{contextLines:t}=this.options,e=(t,e,r)=>{const[s,n,i,a]=["delSize","insSize","totalSize","baseLen"].map(e=>t.reduce((t,r)=>t+r[e],0));this.grouped.push({start:e,end:r,delSize:s,insSize:n,totalSize:i,line:t[0].line,entries:t,magnitude:this.magnitude(s,n,a)})};let r=[],s=0,n=0;for(const i of this.entries){const a=Math.max(0,i.line-t),o=i.line+t;!r.length||a<=n+1?(r.length||(s=a),n=Math.max(n,o),r.push(i)):(e(r,s,n),r=[i],s=a,n=o)}r.length&&e(r,s,n)}magnitude(t,e,r){const{maxMagnitudeSymbols:s}=this.options,n=t+e;if(0===n||0===r)return"";const i=Math.min(s,Math.max(Math.round(n/r*s),1)),a=Math.round(e/n*i),o=i-a;return"+".repeat(a)+"-".repeat(o)}output(t){const{mode:e,contextLines:r,groupedLines:s,expandLines:n,showChangeMagnitude:i,lineBreak:a}=this.options,{linesA:o,linesB:c,maxLen:l}=this.text2lines(),h=Math.max(4,l.toString().length),u=(e,r)=>t?`[${r}m${e}`:e,p=e=>t?`${e}`:`-[${e}]`,d=e=>t?`${e}`:`+[${e}]`,g=(t,e,r,s)=>{s&&m(s);for(let s=t;s<=e;s++)f(s,r??s);w.push("")},m=t=>{var e;w.push(`${" ".repeat(h)} ${e=`@@ -${t.line+1},${t.delSize} +${t.line+1},${t.insSize} @@`,u(e,"36")} ${i?(t=>u(t,"33"))(t.magnitude):""}`)},f=(t,e)=>{if(o[t]||c[t]){const s=this.entries.find(e=>e.line===t),n=(t+1).toString().padStart(h," ");s&&e===t?(w.push(`${n} ${r=`- ${y(o[t],s.diffs,"del")}`,u(r,"31")}`),w.push(`${" ".repeat(h)} ${(t=>u(t,"32"))(`+ ${y(c[t],s.diffs,"ins")}`)}`)):w.push(`${n} ${(t=>u(t,"90"))(o[t])}`)}var r},y=(t,r,s)=>{if(!r.length||"line"===e)return t;let n="",i=0;for(const e of r){const r="del"===s?e.posA:e.posB,a="del"===s?e.del:e.ins;a&&(r>i&&(n+=t.slice(i,r)),n+="del"===s?p(a):d(a),i=r+a.length)}return n+t.slice(i)};let w=[""];switch(!0){case n:g(0,l);break;case s:for(const t of this.grouped)g(t.start,t.end,void 0,t);break;default:for(const t of this.entries)g(t.line-r,t.line+r,t.line,t)}return w.join(a)}getStructuredDiff(){return this.entries}getGroupedDiff(){return this.grouped}getASCIIDiff(){return this.output(!1)}getCLIDiff(){return this.output(!0)}}class l{static FNV_PRIME=16777619;static HASH_OFFSET=2166136261;static fnv1a(t){const e=t.length;let r=this.HASH_OFFSET;const s=Math.floor(e/4);for(let e=0;e<s;e++){const s=4*e;r^=t.charCodeAt(s)|t.charCodeAt(s+1)<<8|t.charCodeAt(s+2)<<16|t.charCodeAt(s+3)<<24,r*=this.FNV_PRIME}const n=e%4;if(n>0){const e=4*s;for(let s=0;s<n;s++)r^=t.charCodeAt(e+s),r*=this.FNV_PRIME}return r^=r>>>16,r*=2246822507,r^=r>>>13,r*=3266489909,r^=r>>>16,r>>>0}}class h{static MAX_LEN=2048;static TABLE_SIZE=1e4;table=new Map;key(t,e,r=!1){for(const t of e)if(t.length>h.MAX_LEN)return!1;const s=e.map(t=>l.fnv1a(t));return r&&s.sort(),[t,...s].join("-")}has(t){return this.table.has(t)}get(t){return this.table.get(t)}set(t,e,r=!0){return!(!(this.table.size<h.TABLE_SIZE)||!r&&this.table.has(t)||(this.table.set(t,e),0))}delete(t){this.table.delete(t)}clear(){this.table.clear()}size(){return this.table.size}}class u{static pipeline=new Map;static cache=new h;static getPipeline(t){if(u.pipeline.has(t))return u.pipeline.get(t);const e=[];t.includes("d")&&e.push(t=>t.normalize("NFD")),t.includes("u")&&e.push(t=>t.normalize("NFC")),t.includes("x")&&e.push(t=>t.normalize("NFKC")),t.includes("w")&&e.push(t=>t.replace(/\s+/g," ")),t.includes("t")&&e.push(t=>t.trim()),t.includes("r")&&e.push(t=>t.replace(/(.)\1+/g,"$1")),t.includes("s")&&e.push(t=>t.replace(/[^\p{L}\p{N}\s]/gu,"")),t.includes("k")&&e.push(t=>t.replace(/[^\p{L}]/gu,"")),t.includes("n")&&e.push(t=>t.replace(/\p{N}/gu,"")),t.includes("i")&&e.push(t=>t.toLowerCase());const r=t=>{let r=t;for(const t of e)r=t(r);return r};return u.pipeline.set(t,r),r}static normalize(t,e){if(Array.isArray(t))return t.map(t=>u.normalize(t,e));if(!e||"string"!=typeof e||!t)return t;const r=u.cache.key(e,[t]);if(r&&u.cache.has(r))return u.cache.get(r);const s=u.getPipeline(e)(t);return r&&u.cache.set(r,s),s}static async normalizeAsync(t,e){return await(Array.isArray(t)?Promise.all(t.map(t=>u.normalize(t,e))):Promise.resolve(u.normalize(t,e)))}static clear(){u.pipeline.clear(),u.cache.clear()}}class p{static filters=new Map;static find(t,e){return p.filters.get(t)?.find(t=>t.id===e)}static add(t,e,r,s={}){const{priority:n=10,active:i=!0,overrideable:a=!0}=s,o=p.filters.get(t)??[],c=o.findIndex(t=>t.id===e);if(c>=0){if(!o[c].overrideable)return!1;o.splice(c,1)}return o.push({id:e,fn:r,priority:n,active:i,overrideable:a}),o.sort((t,e)=>t.priority-e.priority),p.filters.set(t,o),!0}static remove(t,e){const r=p.filters.get(t);if(!r)return!1;const s=r.findIndex(t=>t.id===e);return s>=0&&(r.splice(s,1),!0)}static pause(t,e){const r=p.find(t,e);return!!r&&(r.active=!1,!0)}static resume(t,e){const r=p.find(t,e);return!!r&&(r.active=!0,!0)}static list(t,e=!1){const r=p.filters.get(t)??[],s=[];for(const t of r)e&&!t.active||s.push(t.id);return s}static apply(t,e){const r=p.filters.get(t);if(!r||r.every(t=>!t.active))return e;const s=t=>{for(const e of r)e.active&&(t=e.fn(t));return t};return Array.isArray(e)?e.map(s):s(e)}static async applyAsync(t,e){const r=p.filters.get(t);if(!r||r.every(t=>!t.active))return e;const s=async t=>{for(const e of r)e.active&&(t=await Promise.resolve(e.fn(t)));return t};return Array.isArray(e)?Promise.all(e.map(s)):s(e)}static clear(t){t?p.filters.delete(t):p.filters.clear()}}class d{maxSize;buffers=[];pointer=0;constructor(t){this.maxSize=t}acquire(t,e){const r=this.buffers.length;for(let s=0;s<r;s++){const n=(this.pointer+s)%r,i=this.buffers[n];if(i.size>=t)return this.pointer=(n+1)%r,e||i.size===t?i:null}return null}release(t){this.buffers.length<this.maxSize?this.buffers.push(t):(this.buffers[this.pointer]=t,this.pointer=(this.pointer+1)%this.maxSize)}clear(){this.buffers=[],this.pointer=0}}class g{static CONFIG={uint16:{type:"uint16",maxSize:32,maxItemSize:2048,allowOversize:!0},"number[]":{type:"number[]",maxSize:16,maxItemSize:1024,allowOversize:!1},"string[]":{type:"string[]",maxSize:4,maxItemSize:1024,allowOversize:!1},set:{type:"set",maxSize:8,maxItemSize:0,allowOversize:!1},map:{type:"map",maxSize:8,maxItemSize:0,allowOversize:!1}};static POOLS={uint16:new d(32),"number[]":new d(16),"string[]":new d(4),set:new d(8),map:new d(8)};static allocate(t,e){switch(t){case"uint16":return new Uint16Array(e);case"number[]":return new Array(e).fill(0);case"string[]":return new Array(e);case"set":return new Set;case"map":return new Map}}static acquire(t,e){const r=this.CONFIG[t];if(e>r.maxItemSize)return this.allocate(t,e);const s=this.POOLS[t].acquire(e,r.allowOversize);return s?"uint16"===t?s.buffer.subarray(0,e):s.buffer:this.allocate(t,e)}static acquireMany(t,e){return e.map(e=>this.acquire(t,e))}static release(t,e,r){r<=this.CONFIG[t].maxItemSize&&this.POOLS[t].release({buffer:e,size:r})}}class m{static create(t,e){return new m(t,e)}data;key;constructor(t,e){this.data=t,this.key=e}extractFrom(t,e){const r=g.acquire("string[]",t.length);for(let s=0;s<t.length;s++){const n=t[s][e];r[s]="string"==typeof n?n:String(n??"")}return r}extract(){return this.extractFrom(this.data,this.key)}isMetricResult(t){return"object"==typeof t&&null!==t&&"a"in t&&"b"in t&&"res"in t}isCmpStrResult(t){return"object"==typeof t&&null!==t&&"source"in t&&"target"in t&&"match"in t}normalizeResults(t){if(!Array.isArray(t)||0===t.length)return[];const e=t[0];return this.isMetricResult(e)?t:this.isCmpStrResult(e)?t.map(t=>({metric:"unknown",a:t.source,b:t.target,res:t.match,raw:t.raw})):[]}rebuild(t,e,r,s,n){const i=new Array(t.length);let a=0;for(let o=0;o<t.length;o++){const c=t[o];if(s&&0===c.res)continue;let l=c.b&&r.length?r.indexOf(c.b):o;(l<0||l>=e.length)&&(l=o);const h=e[l];i[a++]=n?h:{obj:h,key:this.key,result:{source:c.a,target:r[l]||c.b,match:c.res},...c.raw?{raw:c.raw}:null}}return i.length=a,i}sort(t,e){if(!e||t.length<=1)return t;const r="asc"===e;return t.sort((t,e)=>r?t.res-e.res:e.res-t.res)}performLookup(t,e,r){return this.rebuild(this.sort(this.normalizeResults(t()),r?.sort),this.data,e,r?.removeZero,r?.objectsOnly)}async performLookupAsync(t,e,r){return this.rebuild(this.sort(this.normalizeResults(await t()),r?.sort),this.data,e,r?.removeZero,r?.objectsOnly)}lookup(t,e,r){const s=this.extract();try{return this.performLookup(()=>t(e,s,r),s,r)}finally{g.release("string[]",s,s.length)}}lookupPairs(t,e,r,s){const n=this.extract(),i=this.extractFrom(e,r);try{return this.performLookup(()=>t(n,i,s),n,s)}finally{g.release("string[]",n,n.length),g.release("string[]",i,i.length)}}async lookupAsync(t,e,r){const s=this.extract();try{return await this.performLookupAsync(()=>t(e,s,r),s,r)}finally{g.release("string[]",s,s.length)}}async lookupPairsAsync(t,e,r,s){const n=this.extract(),i=this.extractFrom(e,r);try{return await this.performLookupAsync(()=>t(n,i,s),n,s)}finally{g.release("string[]",n,n.length),g.release("string[]",i,i.length)}}}const f=Object.create(null),y=Object.create(null);function w(t,e){if(t in f||t in y)throw new Error(`Registry <${t}> already exists / overwriting is forbidden`);const r=Object.create(null),s={add(s,n,i=!1){if(!(n.prototype instanceof e))throw new TypeError(`Class must extend <${t}>`);if(!i&&s in r)throw new Error(`Entry <${s}> already exists / use <update=true> to overwrite`);r[s]=n},remove(t){delete r[t]},has:t=>t in r,list:()=>Object.keys(r),get(e){if(!(e in r))throw new Error(`Class <${e}> not registered for <${t}>`);return r[e]}};return f[t]=s,y[t]=(e,...r)=>function(t,e,...r){e=function(t,e){if(!(t in f))throw new ReferenceError(`Registry <${t}> does not exist`);return"string"==typeof e?f[t]?.get(e):e}(t,e);try{return new e(...r)}catch(t){throw new Error(`Cannot instantiate class <${e}>`,{cause:t})}}(t,e,...r),s}const b=a.getInstance();class A{static cache=new h;metric;a;b;origA=[];origB=[];options;symmetric;results;static clear(){this.cache.clear()}static swap(t,e,r,s){return r>s?[e,t,s,r]:[t,e,r,s]}static clamp(t){return Math.max(0,Math.min(1,t))}constructor(t,e,r,s={},n=!1){if(this.metric=t,this.a=Array.isArray(e)?e:[e],this.b=Array.isArray(r)?r:[r],0===this.a.length||0===this.b.length)throw new Error("Inputs <a> and <b> must not be empty");this.options=s,this.symmetric=n}preCompute(t,e,r,s){return t===e?{res:1}:0==r||0==s||r<2&&s<2?{res:0}:void 0}compute(t,e,r,s,n){throw new Error("Method compute() must be overridden in a subclass")}runSingle(t,e){let r=String(this.a[t]),s=r,n=String(this.b[e]),i=n,a=s.length,o=i.length,c=this.preCompute(s,i,a,o);return c||(c=b.run(()=>{const t=A.cache.key(this.metric,[s,i],this.symmetric);return A.cache.get(t||"")??(()=>{this.symmetric&&([s,i,a,o]=A.swap(s,i,a,o));const e=this.compute(s,i,a,o,Math.max(a,o));return t&&A.cache.set(t,e),e})()})),{metric:this.metric,a:this.origA[t]??r,b:this.origB[e]??n,...c}}async runSingleAsync(t,e){return Promise.resolve(this.runSingle(t,e))}runBatch(){const t=[];for(let e=0;e<this.a.length;e++)for(let r=0;r<this.b.length;r++)t.push(this.runSingle(e,r));this.results=t}async runBatchAsync(){const t=[];for(let e=0;e<this.a.length;e++)for(let r=0;r<this.b.length;r++)t.push(await this.runSingleAsync(e,r));this.results=t}runPairwise(){const t=[];for(let e=0;e<this.a.length;e++)t.push(this.runSingle(e,e));this.results=t}async runPairwiseAsync(){const t=[];for(let e=0;e<this.a.length;e++)t.push(await this.runSingleAsync(e,e));this.results=t}setOriginal(t,e){return t&&(this.origA=Array.isArray(t)?t:[t]),e&&(this.origB=Array.isArray(e)?e:[e]),this}isBatch(){return this.a.length>1||this.b.length>1}isSingle(){return!this.isBatch()}isPairwise(t=!1){return!(!this.isBatch()||this.a.length!==this.b.length)||!t&&(()=>{throw new Error("Mode <pairwise> requires arrays of equal length")})()}isSymmetrical(){return this.symmetric}whichMode(t){return t??this.options?.mode??"default"}clear(){this.results=void 0}run(t,e=!0){switch(e&&this.clear(),this.whichMode(t)){case"default":if(this.isSingle()){this.results=this.runSingle(0,0);break}case"batch":this.runBatch();break;case"single":this.results=this.runSingle(0,0);break;case"pairwise":this.isPairwise()&&this.runPairwise();break;default:throw new Error(`Unsupported mode <${t}>`)}}async runAsync(t,e=!0){switch(e&&this.clear(),this.whichMode(t)){case"default":if(this.isSingle()){this.results=await this.runSingleAsync(0,0);break}case"batch":await this.runBatchAsync();break;case"single":this.results=await this.runSingleAsync(0,0);break;case"pairwise":this.isPairwise()&&await this.runPairwiseAsync();break;default:throw new Error(`Unsupported async mode <${t}>`)}}getMetricName(){return this.metric}getResults(){if(void 0===this.results)throw new Error("run() must be called before getResult()");return this.results}}const x=w("metric",A);x.add("cosine",class extends A{constructor(t,e,r={}){super("cosine",t,e,r,!0)}_termFreq(t,e){const r=t.split(e),s=g.acquire("map",r.length);for(const t of r)s.set(t,(s.get(t)||0)+1);return s}compute(t,e){const{delimiter:r=" "}=this.options,s=this._termFreq(t,r),n=this._termFreq(e,r);let i=0,a=0,o=0;for(const[t,e]of s)i+=e*(n.get(t)||0),a+=e*e;for(const t of n.values())o+=t*t;return a=Math.sqrt(a),o=Math.sqrt(o),g.release("map",s,s.size),g.release("map",n,n.size),{res:a&&o?A.clamp(i/(a*o)):0,raw:{dotProduct:i,magnitudeA:a,magnitudeB:o}}}}),x.add("damerau",class extends A{constructor(t,e,r={}){super("damerau",t,e,r,!0)}compute(t,e,r,s,n){const i=r+1,[a,o,c]=g.acquireMany("uint16",[i,i,i]);for(let t=0;t<=r;t++)o[t]=t;for(let n=1;n<=s;n++){c[0]=n;const s=e.charCodeAt(n-1);for(let i=1;i<=r;i++){const r=t.charCodeAt(i-1),l=r===s?0:1;let h=Math.min(c[i-1]+1,o[i]+1,o[i-1]+l);i>1&&n>1&&r===e.charCodeAt(n-2)&&s===t.charCodeAt(i-2)&&(h=Math.min(h,a[i-2]+l)),c[i]=h}a.set(o),o.set(c)}const l=o[r];return g.release("uint16",a,i),g.release("uint16",o,i),g.release("uint16",c,i),{res:0===n?1:A.clamp(1-l/n),raw:{dist:l,maxLen:n}}}}),x.add("dice",class extends A{constructor(t,e,r={}){super("dice",t,e,r,!0)}_bigrams(t){const e=t.length-1,r=g.acquire("set",e);for(let s=0;s<e;s++)r.add(t.substring(s,s+2));return r}compute(t,e){const r=this._bigrams(t),s=this._bigrams(e);let n=0;for(const t of r)s.has(t)&&n++;const i=r.size,a=s.size,o=i+a;return g.release("set",r,i),g.release("set",s,a),{res:0===o?1:A.clamp(2*n/o),raw:{intersection:n,size:o}}}}),x.add("hamming",class extends A{constructor(t,e,r={}){super("hamming",t,e,r,!0)}compute(t,e,r,s,n){if(r!==s){if(void 0===this.options.pad)throw new Error(`Strings must be of equal length for Hamming Distance, a=${r} and b=${s} given, use option.pad for automatic adjustment`);r<n&&(t=t.padEnd(n,this.options.pad)),s<n&&(e=e.padEnd(n,this.options.pad)),r=s=n}let i=0;for(let r=0;r<t.length;r++)t[r]!==e[r]&&i++;return{res:0===r?1:A.clamp(1-i/r),raw:{dist:i}}}}),x.add("jaccard",class extends A{constructor(t,e,r={}){super("jaccard",t,e,r,!0)}compute(t,e,r,s){const[n,i]=g.acquireMany("set",[r,s]);for(const e of t)n.add(e);for(const t of e)i.add(t);let a=0;for(const t of n)i.has(t)&&a++;const o=n.size+i.size-a;return g.release("set",n,r),g.release("set",i,s),{res:0===o?1:A.clamp(a/o),raw:{intersection:a,union:o}}}}),x.add("jaroWinkler",class extends A{constructor(t,e,r={}){super("jaro-winkler",t,e,r,!0)}compute(t,e,r,s){const n=Math.max(0,Math.floor(s/2)-1),i=g.acquire("uint16",r),a=g.acquire("uint16",s);for(let t=0;t<r;t++)i[t]=0;for(let t=0;t<s;t++)a[t]=0;let o=0;for(let c=0;c<r;c++){const r=Math.max(0,c-n),l=Math.min(c+n+1,s);for(let s=r;s<l;s++)if(!a[s]&&t[c]===e[s]){i[c]=1,a[s]=1,o++;break}}let c=0,l=0,h=0,u=0;if(o>0){let n=0;for(let s=0;s<r;s++)if(i[s]){for(;!a[n];)n++;t[s]!==e[n]&&c++,n++}c/=2,l=(o/r+o/s+(o-c)/o)/3;for(let n=0;n<Math.min(4,r,s)&&t[n]===e[n];n++)h++;u=l+.1*h*(1-l)}return g.release("uint16",i,r),g.release("uint16",a,s),{res:A.clamp(u),raw:{matchWindow:n,matches:o,transpos:c,jaro:l,prefix:h}}}}),x.add("lcs",class extends A{constructor(t,e,r={}){super("lcs",t,e,r,!0)}compute(t,e,r,s,n){const i=r+1,[a,o]=g.acquireMany("uint16",[i,i]);for(let t=0;t<=r;t++)a[t]=0;for(let n=1;n<=s;n++){o[0]=0;const s=e.charCodeAt(n-1);for(let e=1;e<=r;e++)t.charCodeAt(e-1)===s?o[e]=a[e-1]+1:o[e]=Math.max(a[e],o[e-1]);a.set(o)}const c=a[r];return g.release("uint16",a,i),g.release("uint16",o,i),{res:0===n?1:A.clamp(c/n),raw:{lcs:c,maxLen:n}}}}),x.add("levenshtein",class extends A{constructor(t,e,r={}){super("levenshtein",t,e,r,!0)}compute(t,e,r,s,n){const i=r+1,[a,o]=g.acquireMany("uint16",[i,i]);for(let t=0;t<=r;t++)a[t]=t;for(let n=1;n<=s;n++){o[0]=n;const s=e.charCodeAt(n-1);for(let e=1;e<=r;e++){const r=t.charCodeAt(e-1)===s?0:1;o[e]=Math.min(o[e-1]+1,a[e]+1,a[e-1]+r)}a.set(o)}const c=a[r];return g.release("uint16",a,i),g.release("uint16",o,i),{res:0===n?1:A.clamp(1-c/n),raw:{dist:c,maxLen:n}}}}),x.add("needlemanWunsch",class extends A{constructor(t,e,r={}){super("needlemanWunsch",t,e,r,!0)}compute(t,e,r,s,n){const{match:i=1,mismatch:a=-1,gap:o=-1}=this.options,c=r+1,[l,h]=g.acquireMany("uint16",[c,c]);l[0]=0;for(let t=1;t<=r;t++)l[t]=l[t-1]+o;for(let n=1;n<=s;n++){h[0]=l[0]+o;const s=e.charCodeAt(n-1);for(let e=1;e<=r;e++){const r=t.charCodeAt(e-1)===s?i:a;h[e]=Math.max(l[e-1]+r,l[e]+o,h[e-1]+o)}l.set(h)}const u=l[r];g.release("uint16",l,c),g.release("uint16",h,c);const p=n*i;return{res:0===p?0:A.clamp(u/p),raw:{score:u,denum:p}}}}),x.add("qGram",class extends A{constructor(t,e,r={}){super("qgram",t,e,r,!0)}_qGrams(t,e){const r=Math.max(0,t.length-e+1),s=g.acquire("set",r);for(let n=0;n<r;n++)s.add(t.slice(n,n+e));return s}compute(t,e){const{q:r=2}=this.options,s=this._qGrams(t,r),n=this._qGrams(e,r);let i=0;for(const t of s)n.has(t)&&i++;const a=s.size,o=n.size,c=Math.max(a,o);return g.release("set",s,a),g.release("set",n,o),{res:0===c?1:A.clamp(i/c),raw:{intersection:i,size:c}}}}),x.add("smithWaterman",class extends A{constructor(t,e,r={}){super("smithWaterman",t,e,r,!0)}compute(t,e,r,s){const{match:n=2,mismatch:i=-1,gap:a=-2}=this.options,o=r+1,[c,l]=g.acquireMany("uint16",[o,o]);for(let t=0;t<=r;t++)c[t]=0;let h=0;for(let o=1;o<=s;o++){l[0]=0;const s=e.charCodeAt(o-1);for(let e=1;e<=r;e++){const r=t.charCodeAt(e-1)===s?n:i;l[e]=Math.max(0,c[e-1]+r,c[e]+a,l[e-1]+a),l[e]>h&&(h=l[e])}c.set(l)}g.release("uint16",c,o),g.release("uint16",l,o);const u=Math.min(r*n,s*n);return{res:0===u?0:A.clamp(h/u),raw:{score:h,denum:u}}}});const v=a.getInstance();class S{static cache=new h;static default;algo;options;map;static clear(){this.cache.clear()}constructor(t,e={}){const r=this.constructor.default??{},n=e.map??r.map;if(!n)throw new Error("No mapping specified for phonetic algorithm");const i=k.get(t,n);if(void 0===i)throw new Error(`Requested mapping <${n}> is not declared`);this.options=s(s(r,i.options??{}),e),this.algo=t,this.map=i}applyPattern(t){const{patterns:e=[]}=this.map;if(!e||!e.length)return t;for(const{pattern:r,replace:s,all:n=!1}of e)t=t[n?"replaceAll":"replace"](r,s);return t}applyRules(t,e,r,s){const{ruleset:n=[]}=this.map;if(!n||!n.length)return;const i=r[e-1]||"",a=r[e-2]||"",o=r[e+1]||"",c=r[e+2]||"";for(const l of n)if((!l.char||l.char===t)&&("start"!==l.position||0===e)&&!("middle"===l.position&&e>0&&e<s)&&("end"!==l.position||e===s)&&(!l.prev||l.prev.includes(i))&&(!l.prevNot||!l.prevNot.includes(i))&&(!l.prev2||l.prev2.includes(a))&&(!l.prev2Not||!l.prev2Not.includes(a))&&(!l.next||l.next.includes(o))&&(!l.nextNot||!l.nextNot.includes(o))&&(!l.next2||l.next2.includes(c))&&(!l.next2Not||!l.next2Not.includes(c))&&(!l.leading||l.leading.includes(r.slice(0,l.leading.length).join("")))&&(!l.trailing||l.trailing.includes(r.slice(-l.trailing.length).join("")))&&(!l.match||l.match.every((t,s)=>r[e+s]===t)))return l.code}encode(t){const{map:e={},ignore:r=[]}=this.map;t=this.applyPattern(t);const s=this.word2Chars(t),n=s.length;let i="",a=null;for(let t=0;t<n;t++){const o=s[t];if(r.includes(o))continue;const c=this.mapChar(o,t,s,n,a,e);if(void 0!==c&&(i+=c,a=c,this.exitEarly(i,t)))break}return this.adjustCode(i,s)}mapChar(t,e,r,s,n,i){const{dedupe:a=!0,fallback:o}=this.options,c=this.applyRules(t,e,r,s)??i[t]??o;return a&&c===n?void 0:c}equalLen(t){const{length:e=-1,pad:r="0"}=this.options;return-1===e?t:(t+r.repeat(e)).slice(0,e)}word2Chars(t){return t.toLowerCase().split("")}exitEarly(t,e){const{length:r=-1}=this.options;return r>0&&t.length>=r}adjustCode(t,e){return t}loop(t){const e=[];for(const r of t){const t=S.cache.key(this.algo,[r]),s=S.cache.get(t||"")??(()=>{const e=this.encode(r);return t&&S.cache.set(t,e),e})();s&&s.length&&e.push(this.equalLen(s))}return e}async loopAsync(t){const e=[];for(const r of t){const t=await Promise.resolve(this.encode(r));t&&t.length&&e.push(this.equalLen(t))}return e}getAlgoName(){return this.algo}getIndex(t){const{delimiter:e=" "}=this.options;return v.run(()=>this.loop(t.split(e).filter(Boolean)).filter(Boolean))}async getIndexAsync(t){const{delimiter:e=" "}=this.options;return(await v.runAsync(async()=>await this.loopAsync(t.split(e).filter(Boolean)))).filter(Boolean)}}const z=w("phonetic",S),k=(()=>{const t=Object.create(null),e=e=>t[e]||=Object.create(null);return{add(t,r,s,n=!1){const i=e(t);if(!n&&r in i)throw new Error(`Entry <${r}> already exists / use <update=true> to overwrite`);i[r]=s},remove(t,r){delete e(t)[r]},has:(t,r)=>r in e(t),get:(t,r)=>e(t)[r],list:t=>Object.keys(e(t))}})();z.add("caverphone",class extends S{static default={map:"en2",delimiter:" ",length:-1,pad:"",dedupe:!1};constructor(t={}){super("caverphone",t)}encode(t){return t=t.replace(/[^A-Z]/gi,"").toLowerCase(),super.encode(t)}mapChar(t){return t}adjustCode(t){return t.toUpperCase()}}),k.add("caverphone","en1",{options:{length:6,pad:"1"},map:{},patterns:[{pattern:/^(c|r|t|en)ough/,replace:"$1ou2f"},{pattern:/^gn/,replace:"2n"},{pattern:/mb$/,replace:"m2"},{pattern:/cq/g,replace:"2q"},{pattern:/c(e|i|y)/g,replace:"s$1"},{pattern:/tch/g,replace:"2ch"},{pattern:/[cqx]/g,replace:"k"},{pattern:/v/g,replace:"f"},{pattern:/dg/g,replace:"2g"},{pattern:/ti(a|o)/g,replace:"si$1"},{pattern:/d/g,replace:"t"},{pattern:/ph/g,replace:"fh"},{pattern:/b/g,replace:"p"},{pattern:/sh/g,replace:"s2"},{pattern:/z/g,replace:"s"},{pattern:/^[aeiou]/,replace:"A"},{pattern:/[aeiou]/g,replace:"3"},{pattern:/3gh3/g,replace:"3kh3"},{pattern:/gh/g,replace:"22"},{pattern:/g/g,replace:"k"},{pattern:/s+/g,replace:"S"},{pattern:/t+/g,replace:"T"},{pattern:/p+/g,replace:"P"},{pattern:/k+/g,replace:"K"},{pattern:/f+/g,replace:"F"},{pattern:/m+/g,replace:"M"},{pattern:/n+/g,replace:"N"},{pattern:/j/g,replace:"y"},{pattern:/l3/g,replace:"L3"},{pattern:/r3/g,replace:"R3"},{pattern:/w3/g,replace:"W3"},{pattern:/y3/g,replace:"Y3"},{pattern:/ly/g,replace:"Ly"},{pattern:/ry/g,replace:"Ry"},{pattern:/wy/g,replace:"Wy"},{pattern:/wh3/g,replace:"Wh3"},{pattern:/why/g,replace:"Why"},{pattern:/^h/,replace:"A"},{pattern:/[hlrwy23]/g,replace:""}]}),k.add("caverphone","en2",{options:{length:10,pad:"1"},map:{},patterns:[{pattern:/e$/,replace:""},{pattern:/^(c|r|t|en|tr)ough/,replace:"$1ou2f"},{pattern:/^gn/,replace:"2n"},{pattern:/mb$/,replace:"m2"},{pattern:/cq/g,replace:"2q"},{pattern:/c(e|i|y)/g,replace:"s$1"},{pattern:/tch/g,replace:"2ch"},{pattern:/[cqx]/g,replace:"k"},{pattern:/v/g,replace:"f"},{pattern:/dg/g,replace:"2g"},{pattern:/ti(a|o)/g,replace:"si$1"},{pattern:/d/g,replace:"t"},{pattern:/ph/g,replace:"fh"},{pattern:/b/g,replace:"p"},{pattern:/sh/g,replace:"s2"},{pattern:/z/g,replace:"s"},{pattern:/^[aeiou]/,replace:"A"},{pattern:/[aeiou]/g,replace:"3"},{pattern:/j/g,replace:"y"},{pattern:/^y3/,replace:"Y3"},{pattern:/^y/,replace:"A"},{pattern:/y/g,replace:"3"},{pattern:/3gh3/g,replace:"3kh3"},{pattern:/gh/g,replace:"22"},{pattern:/g/g,replace:"k"},{pattern:/s+/g,replace:"S"},{pattern:/t+/g,replace:"T"},{pattern:/p+/g,replace:"P"},{pattern:/k+/g,replace:"K"},{pattern:/f+/g,replace:"F"},{pattern:/m+/g,replace:"M"},{pattern:/n+/g,replace:"N"},{pattern:/l3/g,replace:"L3"},{pattern:/r3/g,replace:"R3"},{pattern:/w3/g,replace:"W3"},{pattern:/wh3/g,replace:"Wh3"},{pattern:/[lrw]$/,replace:"3"},{pattern:/^h/,replace:"A"},{pattern:/3$/,replace:"A"},{pattern:/[hlrw23]/g,replace:""}]}),z.add("cologne",class extends S{static default={map:"default",delimiter:" ",length:-1,dedupe:!0};constructor(t={}){super("cologne",t)}adjustCode(t){return t.slice(0,1)+t.slice(1).replaceAll("0","")}}),k.add("cologne","default",{map:{a:"0","ä":"0",e:"0",i:"0",j:"0",o:"0","ö":"0",u:"0","ü":"0",y:"0",b:"1",p:"1",d:"2",t:"2",f:"3",v:"3",w:"3",g:"4",k:"4",q:"4",l:"5",m:"6",n:"6",r:"7",c:"8",s:"8","ß":"8",z:"8",x:"48"},ignore:["h"],ruleset:[{char:"p",next:["h"],code:"3"},{char:"c",position:"start",next:["a","h","k","l","o","q","r","u","x"],code:"4"},{char:"c",next:["a","h","k","o","q","u","x"],prevNot:["s","z"],code:"4"},{char:"d",next:["c","s","z"],code:"8"},{char:"t",next:["c","s","z"],code:"8"},{char:"x",prev:["c","k","q"],code:"8"}]}),z.add("metaphone",class extends S{static default={map:"en90",delimiter:" ",length:-1,pad:"",dedupe:!1};constructor(t={}){super("metaphone",t)}encode(t){return t=t.replace(/([A-BD-Z])\1+/gi,(t,e)=>"C"===e?t:e),super.encode(t)}adjustCode(t){return t.slice(0,1)+t.slice(1).replace(/[AEIOU]/g,"")}}),k.add("metaphone","en90",{map:{a:"A",b:"B",c:"K",d:"T",e:"E",f:"F",g:"K",h:"H",i:"I",j:"J",k:"K",l:"L",m:"M",n:"N",o:"O",p:"P",q:"K",r:"R",s:"S",t:"T",u:"U",v:"F",w:"W",x:"KS",y:"Y",z:"S"},ruleset:[{char:"a",position:"start",next:["e"],code:""},{char:"g",position:"start",next:["n"],code:""},{char:"k",position:"start",next:["n"],code:""},{char:"p",position:"start",next:["n"],code:""},{char:"w",position:"start",next:["r"],code:""},{char:"b",position:"end",prev:["m"],code:""},{char:"c",next:["h"],prevNot:["s"],code:"X"},{char:"c",next:["i"],next2:["a"],code:"X"},{char:"c",next:["e","i","y"],code:"S"},{char:"d",next:["g"],next2:["e","i","y"],code:"J"},{char:"g",next:["h"],next2Not:["","a","e","i","o","u"],code:""},{char:"g",trailing:"n",code:""},{char:"g",trailing:"ned",code:""},{char:"g",next:["e","i","y"],prevNot:["g"],code:"J"},{char:"h",prev:["a","e","i","o","u"],nextNot:["a","e","i","o","u"],code:""},{char:"h",prev:["c","g","p","s","t"],code:""},{char:"k",prev:["c"],code:""},{char:"p",next:["h"],code:"F"},{char:"s",next:["h"],code:"X"},{char:"s",next:["i"],next2:["a","o"],code:"X"},{char:"t",next:["i"],next2:["a","o"],code:"X"},{char:"t",next:["h"],code:"0"},{char:"t",next:["c"],next2:["h"],code:""},{char:"w",nextNot:["a","e","i","o","u"],code:""},{char:"h",leading:"w",code:""},{char:"x",position:"start",code:"S"},{char:"y",nextNot:["a","e","i","o","u"],code:""}]}),z.add("soundex",class extends S{static default={map:"en",delimiter:" ",length:4,pad:"0",dedupe:!0};constructor(t={}){super("soundex",t)}adjustCode(t,e){return e[0].toUpperCase()+t.slice(1).replaceAll("0","")}}),k.add("soundex","en",{map:{a:"0",e:"0",h:"0",i:"0",o:"0",u:"0",w:"0",y:"0",b:"1",f:"1",p:"1",v:"1",c:"2",g:"2",j:"2",k:"2",q:"2",s:"2",x:"2",z:"2",d:"3",t:"3",l:"4",m:"5",n:"5",r:"6"}}),k.add("soundex","de",{map:{a:"0","ä":"0",e:"0",h:"0",i:"0",j:"0",o:"0","ö":"0",u:"0","ü":"0",y:"0",b:"1",f:"1",p:"1",v:"1",w:"1",c:"2",g:"2",k:"2",q:"2",s:"2","ß":"2",x:"2",z:"2",d:"3",t:"3",l:"4",m:"5",n:"5",r:"6"},ruleset:[{char:"c",next:["h"],code:"7"}]});const C=a.getInstance();class M{static filter={add:p.add,remove:p.remove,pause:p.pause,resume:p.resume,list:p.list,clear:p.clear};static metric={add:x.add,remove:x.remove,has:x.has,list:x.list};static phonetic={add:z.add,remove:z.remove,has:z.has,list:z.list,map:{add:k.add,remove:k.remove,has:k.has,list:k.list}};static profiler=C.services;static clearCache={normalizer:u.clear,metric:A.clear,phonetic:S.clear};static analyze(t){return new o(t)}static diff(t,e,r){return new c(t,e,r)}static create(t){return new M(t)}options=Object.create(null);constructor(t){t&&("string"==typeof t?this.setSerializedOptions(t):this.setOptions(t))}assert(t,e){switch(t){case"metric":if(!M.metric.has(e))throw new Error("CmpStr <metric> must be set, call .setMetric(), use CmpStr.metric.list() for available metrics");break;case"phonetic":if(!M.phonetic.has(e))throw new Error("CmpStr <phonetic> must be set, call .setPhonetic(), use CmpStr.phonetic.list() for available phonetic algorithms");break;default:throw new Error(`Cmpstr condition <${t}> unknown`)}}assertMany(...t){for(const[e,r]of t)this.assert(e,r)}resolveOptions(t){return s({...this.options??Object.create(null)},t)}normalize(t,e){return u.normalize(t,e??this.options.flags??"")}filter(t,e){return p.apply(e,t)}prepare(t,e){const{flags:r,processors:s}=e??this.options;return r?.length&&(t=this.normalize(t,r)),t=this.filter(t,"input"),s?.phonetic&&(t=this.index(t,s.phonetic)),t}postProcess(t,e){return e?.removeZero&&Array.isArray(t)&&(t=t.filter(t=>t.res>0)),t}index(t,{algo:e,opt:r}){this.assert("phonetic",e);const s=y.phonetic(e,r),n=r?.delimiter??" ";return Array.isArray(t)?t.map(t=>s.getIndex(t).join(n)):s.getIndex(t).join(n)}structured(t,e){return m.create(t,e)}compute(t,e,r,s,n,i){const a=this.resolveOptions(r);this.assert("metric",a.metric);const o=i?t:this.prepare(t,a),c=i?e:this.prepare(e,a);if(a.safeEmpty&&(Array.isArray(o)&&0===o.length||Array.isArray(c)&&0===c.length||""===o||""===c))return[];const l=y.metric(a.metric,o,c,a.opt);"prep"!==a.output&&l.setOriginal(t,e),l.run(s);const h=this.postProcess(l.getResults(),a);return this.output(h,n??a.raw)}output(t,e){return e??this.options.raw?t:Array.isArray(t)?t.map(t=>({source:t.a,target:t.b,match:t.res})):{source:t.a,target:t.b,match:t.res}}clone(){return Object.assign(Object.create(Object.getPrototypeOf(this)),this)}reset(){for(const t in this.options)delete this.options[t];return this}setOptions(t){return this.options=t,this}mergeOptions(t){return s(this.options,t),this}setSerializedOptions(t){return this.options=JSON.parse(t),this}setOption(t,e){return r(this.options,t,e),this}rmvOption(t){return n(this.options,t),this}setRaw(t){return this.setOption("raw",t)}setMetric(t){return this.setOption("metric",t)}setFlags(t){return this.setOption("flags",t)}rmvFlags(){return this.rmvOption("flags")}setProcessors(t){return this.setOption("processors",t)}rmvProcessors(){return this.rmvOption("processors")}getOptions(){return this.options}getSerializedOptions(){return JSON.stringify(this.options)}getOption(t){return e(this.options,t)}test(t,e,r){return this.compute(t,e,r,"single")}compare(t,e,r){return this.compute(t,e,r,"single",!0).res}batchTest(t,e,r){return this.compute(t,e,r,"batch")}batchSorted(t,e,r="desc",s){return this.output(this.compute(t,e,s,"batch",!0).sort((t,e)=>"asc"===r?t.res-e.res:e.res-t.res),s?.raw??this.options.raw)}pairs(t,e,r){return this.compute(t,e,r,"pairwise")}match(t,e,r,s){return this.output(this.compute(t,e,s,"batch",!0).filter(t=>t.res>=r).sort((t,e)=>e.res-t.res),s?.raw??this.options.raw)}closest(t,e,r=1,s){return this.batchSorted(t,e,"desc",s).slice(0,r)}furthest(t,e,r=1,s){return this.batchSorted(t,e,"asc",s).slice(0,r)}search(t,e,r,s){const n=this.resolveOptions({flags:r,processors:s}),i=this.prepare(t,n),a=this.prepare(e,n);return e.filter((t,e)=>a[e].includes(i))}matrix(t,e){return(t=this.prepare(t,this.resolveOptions(e))).map(e=>this.compute(e,t,void 0,"batch",!0,!0).map(t=>t.res??0))}phoneticIndex(t,e,r){const{algo:s,opt:n}=this.options.processors?.phonetic??{};return this.index(t,{algo:e??s,opt:r??n})}structuredLookup(t,e,r,s){return this.structured(e,r).lookup((t,e,r)=>this.batchTest(t,e,r),t,s)}structuredMatch(t,e,r,s,n){return this.structured(e,r).lookup((t,e,r)=>this.match(t,e,s,r),t,{...n,sort:"desc"})}structuredClosest(t,e,r,s=1,n){return this.structured(e,r).lookup((t,e,r)=>this.closest(t,e,s,r),t,{...n,sort:"desc"})}structuredFurthest(t,e,r,s=1,n){return this.structured(e,r).lookup((t,e,r)=>this.furthest(t,e,s,r),t,{...n,sort:"asc"})}structuredPairs(t,e,r,s,n){return this.structured(t,e).lookupPairs((t,e,r)=>this.pairs(t,e,r),r,s,n)}}class O extends M{static create(t){return new O(t)}constructor(t){super(t)}async normalizeAsync(t,e){return u.normalizeAsync(t,e??this.options.flags??"")}async filterAsync(t,e){return p.applyAsync(e,t)}async prepareAsync(t,e){const{flags:r,processors:s}=e??this.options;return r?.length&&(t=await this.normalizeAsync(t,r)),t=await this.filterAsync(t,"input"),s?.phonetic&&(t=await this.indexAsync(t,s.phonetic)),t}async indexAsync(t,{algo:e,opt:r}){this.assert("phonetic",e);const s=y.phonetic(e,r),n=r?.delimiter??" ";return Array.isArray(t)?Promise.all(t.map(t=>s.getIndexAsync(t).then(t=>t.join(n)))):s.getIndexAsync(t).then(t=>t.join(n))}async computeAsync(t,e,r,s,n,i){const a=this.resolveOptions(r);this.assert("metric",a.metric);const o=i?t:await this.prepareAsync(t,a),c=i?e:await this.prepareAsync(e,a);if(a.safeEmpty&&(Array.isArray(o)&&0===o.length||Array.isArray(c)&&0===c.length||""===o||""===c))return[];const l=y.metric(a.metric,o,c,a.opt);"prep"!==a.output&&l.setOriginal(t,e),await l.runAsync(s);const h=this.postProcess(l.getResults(),a);return this.output(h,n??a.raw)}async testAsync(t,e,r){return this.computeAsync(t,e,r,"single")}async compareAsync(t,e,r){return(await this.computeAsync(t,e,r,"single",!0)).res}async batchTestAsync(t,e,r){return this.computeAsync(t,e,r,"batch")}async batchSortedAsync(t,e,r="desc",s){const n=await this.computeAsync(t,e,s,"batch",!0);return this.output(n.sort((t,e)=>"asc"===r?t.res-e.res:e.res-t.res),s?.raw??this.options.raw)}async pairsAsync(t,e,r){return this.computeAsync(t,e,r,"pairwise")}async matchAsync(t,e,r,s){const n=await this.computeAsync(t,e,s,"batch",!0);return this.output(n.filter(t=>t.res>=r).sort((t,e)=>e.res-t.res),s?.raw??this.options.raw)}async closestAsync(t,e,r=1,s){return(await this.batchSortedAsync(t,e,"desc",s)).slice(0,r)}async furthestAsync(t,e,r=1,s){return(await this.batchSortedAsync(t,e,"asc",s)).slice(0,r)}async searchAsync(t,e,r,s){const n=this.resolveOptions({flags:r,processors:s}),i=await this.prepareAsync(t,n),a=await this.prepareAsync(e,n);return e.filter((t,e)=>a[e].includes(i))}async matrixAsync(t,e){return t=await this.prepareAsync(t,this.resolveOptions(e)),Promise.all(t.map(async e=>await this.computeAsync(e,t,void 0,"batch",!0,!0).then(t=>t.map(t=>t.res??0))))}async phoneticIndexAsync(t,e,r){const{algo:s,opt:n}=this.options.processors?.phonetic??{};return this.indexAsync(t,{algo:e??s,opt:r??n})}async structuredLookupAsync(t,e,r,s){return await this.structured(e,r).lookupAsync((t,e,r)=>this.batchTestAsync(t,e,r),t,s)}async structuredMatchAsync(t,e,r,s,n){return await this.structured(e,r).lookupAsync((t,e,r)=>this.matchAsync(t,e,s,r),t,{...n,sort:"desc"})}async structuredClosestAsync(t,e,r,s=1,n){return await this.structured(e,r).lookupAsync((t,e,r)=>this.closestAsync(t,e,s,r),t,{...n,sort:"desc"})}async structuredFurthestAsync(t,e,r,s=1,n){return await this.structured(e,r).lookupAsync((t,e,r)=>this.furthestAsync(t,e,s,r),t,{...n,sort:"asc"})}async structuredPairsAsync(t,e,r,s,n){return await this.structured(t,e).lookupPairsAsync((t,e,r)=>this.pairsAsync(t,e,r),r,s,n)}}export{M as CmpStr,O as CmpStrAsync,i as DeepMerge,c as DiffChecker,p as Filter,h as HashTable,A as Metric,x as MetricRegistry,u as Normalizer,S as Phonetic,k as PhoneticMappingRegistry,z as PhoneticRegistry,g as Pool,a as Profiler,m as StructuredData,o as TextAnalyzer};
8
8
  //# sourceMappingURL=CmpStr.esm.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CmpStr.esm.min.js","sources":["../src/utils/DeepMerge.ts","../src/utils/Profiler.ts","../src/utils/TextAnalyzer.ts","../src/utils/DiffChecker.ts","../src/utils/HashTable.ts","../src/utils/Normalizer.ts","../src/utils/Filter.ts","../src/utils/Registry.ts","../src/metric/Metric.ts","../src/utils/Pool.ts","../src/metric/Cosine.ts","../src/metric/DamerauLevenshtein.ts","../src/metric/DiceSorensen.ts","../src/metric/Hamming.ts","../src/metric/Jaccard.ts","../src/metric/JaroWinkler.ts","../src/metric/LCS.ts","../src/metric/Levenshtein.ts","../src/metric/NeedlemanWunsch.ts","../src/metric/qGram.ts","../src/metric/SmithWaterman.ts","../src/phonetic/Phonetic.ts","../src/phonetic/Caverphone.ts","../src/phonetic/Cologne.ts","../src/phonetic/Metaphone.ts","../src/phonetic/Soundex.ts","../src/CmpStr.ts","../src/CmpStrAsync.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["parse","p","replace","split","map","s","test","set","t","path","value","k","r","undefined","Error","JSON","stringify","Object","assign","create","join","merge","o","mergeUndefined","keys","forEach","val","Array","isArray","Profiler","static","store","Set","totalTime","totalMem","active","detectEnv","process","ENV","performance","getInstance","enable","instance","constructor","this","now","Number","hrtime","bigint","Date","mem","memoryUsage","heapUsed","memory","usedJSHeapSize","disable","clear","run","fn","meta","startTime","startMem","res","deltaTime","deltaMem","add","time","runAsync","getAll","getLast","pop","getTotal","services","bind","report","last","total","TextAnalyzer","text","words","sentences","charFrequency","Map","wordHistogram","syllableCache","input","trim","tokenize","computeFrequencies","wordRegex","match","exec","push","toLowerCase","filter","Boolean","char","get","word","estimateSyllables","has","matches","count","length","getLength","getWordCount","getSentenceCount","getAvgWordLength","totalLen","w","getAvgSentenceLength","getWordHistogram","fromEntries","getMostCommonWords","limit","entries","sort","a","b","slice","e","getHapaxLegomena","c","hasNumbers","getUpperCaseRatio","upper","letters","i","len","getCharFrequency","getUnicodeStats","result","block","charCodeAt","toString","padStart","toUpperCase","getLongWordRatio","long","getShortWordRatio","short","getSyllablesCount","getMonosyllabicWordCount","getMinSyllablesWordCount","min","getMaxSyllablesWordCount","max","getHonoresR","Math","log","size","getReadingTime","wpm","getReadabilityScore","metric","asl","asw","getLIXScore","getWSTFScore","h","l","DiffChecker","options","grouped","diffRun","opt","mode","caseInsensitive","contextLines","groupedLines","expandLines","showChangeMagnitude","maxMagnitudeSymbols","lineBreak","computeDiff","text2lines","linesA","linesB","maxLen","concat","lineDiff","findGroups","line","baseLen","A","B","diffs","delSize","insSize","posA","posB","del","ins","preciseDiff","d","totalSize","magnitude","posIndex","reduce","_","origA","origB","tokenA","tokenB","lenA","lenB","posArrA","posArrB","ai","bi","found","offset","j","m","delArr","insArr","addGroup","group","start","end","sum","entry","magLen","round","plus","minus","repeat","output","cli","linePad","highlight","ansi","forced","headerEntry","header","out","ye","find","lineNo","mark","gn","gy","type","idx","pos","getStructuredDiff","getGroupedDiff","getASCIIDiff","getCLIDiff","Hasher","fnv1a","str","hash","HASH_OFFSET","chunks","floor","FNV_PRIME","remaining","HashTable","table","key","label","strs","sorted","MAX_LEN","hashes","update","TABLE_SIZE","delete","Normalizer","getPipeline","flags","pipeline","steps","includes","normalize","compiled","step","cache","normalizeAsync","Promise","all","resolve","Filter","hook","id","filters","f","priority","overrideable","index","findIndex","splice","remove","pause","resume","list","apply","every","applyOne","applyAsync","async","registry","factory","Registry","reg","ctor","classes","service","name","cls","prototype","TypeError","args","ReferenceError","resolveCls","err","cause","profiler","Metric","symmetric","results","swap","n","clamp","preCompute","compute","runSingle","String","runSingleAsync","runBatch","runBatchAsync","runPairwise","runPairwiseAsync","setOriginal","isBatch","isSingle","isPairwise","safe","isSymmetrical","whichMode","getMetricName","getResults","MetricRegistry","RingPool","maxSize","buffers","pointer","acquire","minSize","allowOversize","item","release","Pool","uint16","maxItemSize","allocate","Uint16Array","fill","CONFIG","POOLS","buffer","subarray","acquireMany","sizes","super","_termFreq","delimiter","terms","freq","term","termsA","termsB","dotProduct","magnitudeA","magnitudeB","freqA","freqB","values","sqrt","raw","prev","curr","cb","ca","cost","dist","_bigrams","bigrams","substring","setA","setB","intersection","bigram","sizeA","sizeB","pad","padEnd","union","matchWindow","matchA","matchB","transpos","jaro","prefix","lcs","mismatch","gap","score","denum","_qGrams","q","grams","gram","maxScore","Phonetic","algo","defaults","default","mapId","PhoneticMappingRegistry","applyPattern","patterns","pattern","applyRules","chars","charLen","ruleset","prev2","next","next2","rule","position","prevNot","prev2Not","nextNot","next2Not","leading","trailing","code","encode","ignore","word2Chars","lastCode","mapped","mapChar","exitEarly","adjustCode","dedupe","fallback","equalLen","loop","loopAsync","getAlgoName","getIndex","getIndexAsync","PhoneticRegistry","mappings","maps","replaceAll","u","y","v","g","z","x","CmpStr","normalizer","phonetic","analyze","diff","setSerializedOptions","setOptions","assert","cond","assertMany","resolveOptions","DeepMerge.merge","prepare","processors","postProcess","removeZero","skip","resolved","safeEmpty","source","target","clone","getPrototypeOf","reset","mergeOptions","setOption","DeepMerge.set","rmvOption","preserveEmpty","DeepMerge.rmv","setRaw","setMetric","setFlags","rmvFlags","setProcessors","rmvProcessors","getOptions","getSerializedOptions","getOption","DeepMerge.get","compare","batchTest","batchSorted","dir","pairs","threshold","closest","furthest","search","needle","haystack","hstk","matrix","phoneticIndex","CmpStrAsync","filterAsync","prepareAsync","indexAsync","then","computeAsync","testAsync","compareAsync","batchTestAsync","batchSortedAsync","pairsAsync","matchAsync","closestAsync","furthestAsync","searchAsync","matrixAsync","phoneticIndexAsync"],"mappings":"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"}
1
+ {"version":3,"file":"CmpStr.esm.min.js","sources":["../src/utils/DeepMerge.ts","../src/utils/Profiler.ts","../src/utils/TextAnalyzer.ts","../src/utils/DiffChecker.ts","../src/utils/HashTable.ts","../src/utils/Normalizer.ts","../src/utils/Filter.ts","../src/utils/Pool.ts","../src/utils/StructuredData.ts","../src/utils/Registry.ts","../src/metric/Metric.ts","../src/metric/Cosine.ts","../src/metric/DamerauLevenshtein.ts","../src/metric/DiceSorensen.ts","../src/metric/Hamming.ts","../src/metric/Jaccard.ts","../src/metric/JaroWinkler.ts","../src/metric/LCS.ts","../src/metric/Levenshtein.ts","../src/metric/NeedlemanWunsch.ts","../src/metric/qGram.ts","../src/metric/SmithWaterman.ts","../src/phonetic/Phonetic.ts","../src/phonetic/Caverphone.ts","../src/phonetic/Cologne.ts","../src/phonetic/Metaphone.ts","../src/phonetic/Soundex.ts","../src/CmpStr.ts","../src/CmpStrAsync.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["parse","p","replace","split","map","s","test","get","t","path","fallback","reduce","o","k","set","value","r","undefined","Error","JSON","stringify","Object","assign","create","join","merge","mergeUndefined","keys","forEach","val","Array","isArray","rmv","preserveEmpty","i","key","length","every","v","Profiler","static","store","Set","totalTime","totalMem","active","detectEnv","process","ENV","performance","getInstance","enable","instance","constructor","this","now","Number","hrtime","bigint","Date","mem","memoryUsage","heapUsed","memory","usedJSHeapSize","disable","clear","run","fn","meta","startTime","startMem","res","deltaTime","deltaMem","add","time","runAsync","getAll","getLast","pop","getTotal","services","bind","report","last","total","TextAnalyzer","text","words","sentences","charFrequency","Map","wordHistogram","syllableCache","input","trim","tokenize","computeFrequencies","wordRegex","match","exec","push","toLowerCase","filter","Boolean","char","word","estimateSyllables","has","matches","count","getLength","getWordCount","getSentenceCount","getAvgWordLength","totalLen","w","getAvgSentenceLength","getWordHistogram","fromEntries","getMostCommonWords","limit","entries","sort","a","b","slice","e","getHapaxLegomena","c","hasNumbers","getUpperCaseRatio","upper","letters","len","getCharFrequency","getUnicodeStats","result","block","charCodeAt","toString","padStart","toUpperCase","getLongWordRatio","long","getShortWordRatio","short","getSyllablesCount","getMonosyllabicWordCount","getMinSyllablesWordCount","min","getMaxSyllablesWordCount","max","getHonoresR","Math","log","size","getReadingTime","wpm","getReadabilityScore","metric","asl","asw","getLIXScore","getWSTFScore","h","l","DiffChecker","options","grouped","diffRun","opt","mode","caseInsensitive","contextLines","groupedLines","expandLines","showChangeMagnitude","maxMagnitudeSymbols","lineBreak","computeDiff","text2lines","linesA","linesB","maxLen","concat","lineDiff","findGroups","line","baseLen","A","B","diffs","delSize","insSize","posA","posB","del","ins","preciseDiff","d","totalSize","magnitude","posIndex","_","origA","origB","tokenA","tokenB","lenA","lenB","posArrA","posArrB","ai","bi","found","offset","j","m","delArr","insArr","addGroup","group","start","end","sum","entry","magLen","round","plus","minus","repeat","output","cli","linePad","highlight","ansi","forced","headerEntry","header","out","ye","find","lineNo","mark","gn","gy","type","idx","pos","getStructuredDiff","getGroupedDiff","getASCIIDiff","getCLIDiff","Hasher","fnv1a","str","hash","HASH_OFFSET","chunks","floor","FNV_PRIME","remaining","HashTable","table","label","strs","sorted","MAX_LEN","hashes","update","TABLE_SIZE","delete","Normalizer","getPipeline","flags","pipeline","steps","includes","normalize","compiled","step","cache","normalizeAsync","Promise","all","resolve","Filter","hook","id","filters","f","priority","overrideable","index","findIndex","splice","remove","pause","resume","list","apply","applyOne","applyAsync","async","RingPool","maxSize","buffers","pointer","acquire","minSize","allowOversize","item","release","Pool","uint16","maxItemSize","allocate","Uint16Array","fill","CONFIG","POOLS","buffer","subarray","acquireMany","sizes","StructuredData","data","extractFrom","arr","String","extract","isMetricResult","isCmpStrResult","normalizeResults","results","first","source","target","raw","rebuild","sourceData","extractedStrings","removeZero","objectsOnly","dataIndex","indexOf","sourceObj","obj","asc","performLookup","performLookupAsync","lookup","query","lookupPairs","other","otherKey","lookupAsync","lookupPairsAsync","registry","factory","Registry","reg","ctor","classes","service","name","cls","prototype","TypeError","args","ReferenceError","resolveCls","err","cause","profiler","Metric","symmetric","swap","n","clamp","preCompute","compute","runSingle","runSingleAsync","runBatch","runBatchAsync","runPairwise","runPairwiseAsync","setOriginal","isBatch","isSingle","isPairwise","safe","isSymmetrical","whichMode","getMetricName","getResults","MetricRegistry","super","_termFreq","delimiter","terms","freq","term","termsA","termsB","dotProduct","magnitudeA","magnitudeB","freqA","freqB","values","sqrt","prev","curr","cb","ca","cost","dist","_bigrams","bigrams","substring","setA","setB","intersection","bigram","sizeA","sizeB","pad","padEnd","union","matchWindow","matchA","matchB","transpos","jaro","prefix","lcs","mismatch","gap","score","denum","_qGrams","q","grams","gram","maxScore","Phonetic","algo","defaults","default","mapId","PhoneticMappingRegistry","applyPattern","patterns","pattern","applyRules","chars","charLen","ruleset","prev2","next","next2","rule","position","prevNot","prev2Not","nextNot","next2Not","leading","trailing","code","encode","ignore","word2Chars","lastCode","mapped","mapChar","exitEarly","adjustCode","dedupe","equalLen","loop","loopAsync","getAlgoName","getIndex","getIndexAsync","PhoneticRegistry","mappings","maps","replaceAll","u","y","g","z","x","CmpStr","normalizer","phonetic","analyze","diff","setSerializedOptions","setOptions","assert","cond","assertMany","resolveOptions","DeepMerge.merge","prepare","processors","postProcess","structured","skip","resolved","safeEmpty","clone","getPrototypeOf","reset","mergeOptions","setOption","DeepMerge.set","rmvOption","DeepMerge.rmv","setRaw","setMetric","setFlags","rmvFlags","setProcessors","rmvProcessors","getOptions","getSerializedOptions","getOption","DeepMerge.get","compare","batchTest","batchSorted","dir","pairs","threshold","closest","furthest","search","needle","haystack","hstk","matrix","phoneticIndex","structuredLookup","items","structuredMatch","structuredClosest","structuredFurthest","structuredPairs","otherItems","CmpStrAsync","filterAsync","prepareAsync","indexAsync","then","computeAsync","testAsync","compareAsync","batchTestAsync","batchSortedAsync","pairsAsync","matchAsync","closestAsync","furthestAsync","searchAsync","matrixAsync","phoneticIndexAsync","structuredLookupAsync","structuredMatchAsync","structuredClosestAsync","structuredFurthestAsync","structuredPairsAsync"],"mappings":"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"}