| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | var charToInteger = {};var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';for (var i = 0; i < chars.length; i++) {    charToInteger[chars.charCodeAt(i)] = i;}function decode(mappings) {    var decoded = [];    var line = [];    var segment = [        0,        0,        0,        0,        0,    ];    var j = 0;    for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {        var c = mappings.charCodeAt(i);        if (c === 44) { // ","            segmentify(line, segment, j);            j = 0;        }        else if (c === 59) { // ";"            segmentify(line, segment, j);            j = 0;            decoded.push(line);            line = [];            segment[0] = 0;        }        else {            var integer = charToInteger[c];            if (integer === undefined) {                throw new Error('Invalid character (' + String.fromCharCode(c) + ')');            }            var hasContinuationBit = integer & 32;            integer &= 31;            value += integer << shift;            if (hasContinuationBit) {                shift += 5;            }            else {                var shouldNegate = value & 1;                value >>>= 1;                if (shouldNegate) {                    value = value === 0 ? -0x80000000 : -value;                }                segment[j] += value;                j++;                value = shift = 0; // reset            }        }    }    segmentify(line, segment, j);    decoded.push(line);    return decoded;}function segmentify(line, segment, j) {    // This looks ugly, but we're creating specialized arrays with a specific    // length. This is much faster than creating a new array (which v8 expands to    // a capacity of 17 after pushing the first item), or slicing out a subarray    // (which is slow). Length 4 is assumed to be the most frequent, followed by    // length 5 (since not everything will have an associated name), followed by    // length 1 (it's probably rare for a source substring to not have an    // associated segment data).    if (j === 4)        line.push([segment[0], segment[1], segment[2], segment[3]]);    else if (j === 5)        line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);    else if (j === 1)        line.push([segment[0]]);}function encode(decoded) {    var sourceFileIndex = 0; // second field    var sourceCodeLine = 0; // third field    var sourceCodeColumn = 0; // fourth field    var nameIndex = 0; // fifth field    var mappings = '';    for (var i = 0; i < decoded.length; i++) {        var line = decoded[i];        if (i > 0)            mappings += ';';        if (line.length === 0)            continue;        var generatedCodeColumn = 0; // first field        var lineMappings = [];        for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {            var segment = line_1[_i];            var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);            generatedCodeColumn = segment[0];            if (segment.length > 1) {                segmentMappings +=                    encodeInteger(segment[1] - sourceFileIndex) +                        encodeInteger(segment[2] - sourceCodeLine) +                        encodeInteger(segment[3] - sourceCodeColumn);                sourceFileIndex = segment[1];                sourceCodeLine = segment[2];                sourceCodeColumn = segment[3];            }            if (segment.length === 5) {                segmentMappings += encodeInteger(segment[4] - nameIndex);                nameIndex = segment[4];            }            lineMappings.push(segmentMappings);        }        mappings += lineMappings.join(',');    }    return mappings;}function encodeInteger(num) {    var result = '';    num = num < 0 ? (-num << 1) | 1 : num << 1;    do {        var clamped = num & 31;        num >>>= 5;        if (num > 0) {            clamped |= 32;        }        result += chars[clamped];    } while (num > 0);    return result;}export { decode, encode };//# sourceMappingURL=sourcemap-codec.es.js.map
 |