| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 | (function (global, factory) {    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :    typeof define === 'function' && define.amd ? define(['exports'], factory) :    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.sourcemapCodec = {}));})(this, (function (exports) { 'use strict';    const comma = ','.charCodeAt(0);    const semicolon = ';'.charCodeAt(0);    const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';    const intToChar = new Uint8Array(64); // 64 possible chars.    const charToInteger = new Uint8Array(128); // z is 122 in ASCII    for (let i = 0; i < chars.length; i++) {        const c = chars.charCodeAt(i);        charToInteger[c] = i;        intToChar[i] = c;    }    // Provide a fallback for older environments.    const td = typeof TextDecoder !== 'undefined'        ? new TextDecoder()        : typeof Buffer !== 'undefined'            ? {                decode(buf) {                    const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);                    return out.toString();                },            }            : {                decode(buf) {                    let out = '';                    for (let i = 0; i < buf.length; i++) {                        out += String.fromCharCode(buf[i]);                    }                    return out;                },            };    function decode(mappings) {        const state = new Int32Array(5);        const decoded = [];        let line = [];        let sorted = true;        let lastCol = 0;        for (let i = 0; i < mappings.length;) {            const c = mappings.charCodeAt(i);            if (c === comma) {                i++;            }            else if (c === semicolon) {                state[0] = lastCol = 0;                if (!sorted)                    sort(line);                sorted = true;                decoded.push(line);                line = [];                i++;            }            else {                i = decodeInteger(mappings, i, state, 0); // generatedCodeColumn                const col = state[0];                if (col < lastCol)                    sorted = false;                lastCol = col;                if (!hasMoreSegments(mappings, i)) {                    line.push([col]);                    continue;                }                i = decodeInteger(mappings, i, state, 1); // sourceFileIndex                i = decodeInteger(mappings, i, state, 2); // sourceCodeLine                i = decodeInteger(mappings, i, state, 3); // sourceCodeColumn                if (!hasMoreSegments(mappings, i)) {                    line.push([col, state[1], state[2], state[3]]);                    continue;                }                i = decodeInteger(mappings, i, state, 4); // nameIndex                line.push([col, state[1], state[2], state[3], state[4]]);            }        }        if (!sorted)            sort(line);        decoded.push(line);        return decoded;    }    function decodeInteger(mappings, pos, state, j) {        let value = 0;        let shift = 0;        let integer = 0;        do {            const c = mappings.charCodeAt(pos++);            integer = charToInteger[c];            value |= (integer & 31) << shift;            shift += 5;        } while (integer & 32);        const shouldNegate = value & 1;        value >>>= 1;        if (shouldNegate) {            value = -0x80000000 | -value;        }        state[j] += value;        return pos;    }    function hasMoreSegments(mappings, i) {        if (i >= mappings.length)            return false;        const c = mappings.charCodeAt(i);        if (c === comma || c === semicolon)            return false;        return true;    }    function sort(line) {        line.sort(sortComparator);    }    function sortComparator(a, b) {        return a[0] - b[0];    }    function encode(decoded) {        const state = new Int32Array(5);        let buf = new Uint8Array(1024);        let pos = 0;        for (let i = 0; i < decoded.length; i++) {            const line = decoded[i];            if (i > 0) {                buf = reserve(buf, pos, 1);                buf[pos++] = semicolon;            }            if (line.length === 0)                continue;            state[0] = 0;            for (let j = 0; j < line.length; j++) {                const segment = line[j];                // We can push up to 5 ints, each int can take at most 7 chars, and we                // may push a comma.                buf = reserve(buf, pos, 36);                if (j > 0)                    buf[pos++] = comma;                pos = encodeInteger(buf, pos, state, segment, 0); // generatedCodeColumn                if (segment.length === 1)                    continue;                pos = encodeInteger(buf, pos, state, segment, 1); // sourceFileIndex                pos = encodeInteger(buf, pos, state, segment, 2); // sourceCodeLine                pos = encodeInteger(buf, pos, state, segment, 3); // sourceCodeColumn                if (segment.length === 4)                    continue;                pos = encodeInteger(buf, pos, state, segment, 4); // nameIndex            }        }        return td.decode(buf.subarray(0, pos));    }    function reserve(buf, pos, count) {        if (buf.length > pos + count)            return buf;        const swap = new Uint8Array(buf.length * 2);        swap.set(buf);        return swap;    }    function encodeInteger(buf, pos, state, segment, j) {        const next = segment[j];        let num = next - state[j];        state[j] = next;        num = num < 0 ? (-num << 1) | 1 : num << 1;        do {            let clamped = num & 0b011111;            num >>>= 5;            if (num > 0)                clamped |= 0b100000;            buf[pos++] = intToChar[clamped];        } while (num > 0);        return pos;    }    exports.decode = decode;    exports.encode = encode;    Object.defineProperty(exports, '__esModule', { value: true });}));//# sourceMappingURL=sourcemap-codec.umd.js.map
 |