| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | "use strict";exports.__esModule = true;exports.distance = exports.closest = void 0;var peq = new Uint32Array(0x10000);var myers_32 = function (a, b) {    var n = a.length;    var m = b.length;    var lst = 1 << (n - 1);    var pv = -1;    var mv = 0;    var sc = n;    var i = n;    while (i--) {        peq[a.charCodeAt(i)] |= 1 << i;    }    for (i = 0; i < m; i++) {        var eq = peq[b.charCodeAt(i)];        var xv = eq | mv;        eq |= ((eq & pv) + pv) ^ pv;        mv |= ~(eq | pv);        pv &= eq;        if (mv & lst) {            sc++;        }        if (pv & lst) {            sc--;        }        mv = (mv << 1) | 1;        pv = (pv << 1) | ~(xv | mv);        mv &= xv;    }    i = n;    while (i--) {        peq[a.charCodeAt(i)] = 0;    }    return sc;};var myers_x = function (b, a) {    var n = a.length;    var m = b.length;    var mhc = [];    var phc = [];    var hsize = Math.ceil(n / 32);    var vsize = Math.ceil(m / 32);    for (var i = 0; i < hsize; i++) {        phc[i] = -1;        mhc[i] = 0;    }    var j = 0;    for (; j < vsize - 1; j++) {        var mv_1 = 0;        var pv_1 = -1;        var start_1 = j * 32;        var vlen_1 = Math.min(32, m) + start_1;        for (var k = start_1; k < vlen_1; k++) {            peq[b.charCodeAt(k)] |= 1 << k;        }        for (var i = 0; i < n; i++) {            var eq = peq[a.charCodeAt(i)];            var pb = (phc[(i / 32) | 0] >>> i) & 1;            var mb = (mhc[(i / 32) | 0] >>> i) & 1;            var xv = eq | mv_1;            var xh = ((((eq | mb) & pv_1) + pv_1) ^ pv_1) | eq | mb;            var ph = mv_1 | ~(xh | pv_1);            var mh = pv_1 & xh;            if ((ph >>> 31) ^ pb) {                phc[(i / 32) | 0] ^= 1 << i;            }            if ((mh >>> 31) ^ mb) {                mhc[(i / 32) | 0] ^= 1 << i;            }            ph = (ph << 1) | pb;            mh = (mh << 1) | mb;            pv_1 = mh | ~(xv | ph);            mv_1 = ph & xv;        }        for (var k = start_1; k < vlen_1; k++) {            peq[b.charCodeAt(k)] = 0;        }    }    var mv = 0;    var pv = -1;    var start = j * 32;    var vlen = Math.min(32, m - start) + start;    for (var k = start; k < vlen; k++) {        peq[b.charCodeAt(k)] |= 1 << k;    }    var score = m;    for (var i = 0; i < n; i++) {        var eq = peq[a.charCodeAt(i)];        var pb = (phc[(i / 32) | 0] >>> i) & 1;        var mb = (mhc[(i / 32) | 0] >>> i) & 1;        var xv = eq | mv;        var xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;        var ph = mv | ~(xh | pv);        var mh = pv & xh;        score += (ph >>> (m - 1)) & 1;        score -= (mh >>> (m - 1)) & 1;        if ((ph >>> 31) ^ pb) {            phc[(i / 32) | 0] ^= 1 << i;        }        if ((mh >>> 31) ^ mb) {            mhc[(i / 32) | 0] ^= 1 << i;        }        ph = (ph << 1) | pb;        mh = (mh << 1) | mb;        pv = mh | ~(xv | ph);        mv = ph & xv;    }    for (var k = start; k < vlen; k++) {        peq[b.charCodeAt(k)] = 0;    }    return score;};var distance = function (a, b) {    if (a.length < b.length) {        var tmp = b;        b = a;        a = tmp;    }    if (b.length === 0) {        return a.length;    }    if (a.length <= 32) {        return myers_32(a, b);    }    return myers_x(a, b);};exports.distance = distance;var closest = function (str, arr) {    var min_distance = Infinity;    var min_index = 0;    for (var i = 0; i < arr.length; i++) {        var dist = distance(str, arr[i]);        if (dist < min_distance) {            min_distance = dist;            min_index = i;        }    }    return arr[min_index];};exports.closest = closest;
 |