| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.decodeOwl = exports.decode = void 0;const index_js_1 = require("../utils/index.js");const subsChrs = " !#$%&'()*+,-./<=>?@[]^_`{|}~";const Word = /^[a-z]*$/i;function unfold(words, sep) {    let initial = 97;    return words.reduce((accum, word) => {        if (word === sep) {            initial++;        }        else if (word.match(Word)) {            accum.push(String.fromCharCode(initial) + word);        }        else {            initial = 97;            accum.push(word);        }        return accum;    }, []);}/** *  @_ignore */function decode(data, subs) {    // Replace all the substitutions with their expanded form    for (let i = subsChrs.length - 1; i >= 0; i--) {        data = data.split(subsChrs[i]).join(subs.substring(2 * i, 2 * i + 2));    }    // Get all tle clumps; each suffix, first-increment and second-increment    const clumps = [];    const leftover = data.replace(/(:|([0-9])|([A-Z][a-z]*))/g, (all, item, semi, word) => {        if (semi) {            for (let i = parseInt(semi); i >= 0; i--) {                clumps.push(";");            }        }        else {            clumps.push(item.toLowerCase());        }        return "";    });    /* c8 ignore start */    if (leftover) {        throw new Error(`leftovers: ${JSON.stringify(leftover)}`);    }    /* c8 ignore stop */    return unfold(unfold(clumps, ";"), ":");}exports.decode = decode;/** *  @_ignore */function decodeOwl(data) {    (0, index_js_1.assertArgument)(data[0] === "0", "unsupported auwl data", "data", data);    return decode(data.substring(1 + 2 * subsChrs.length), data.substring(1, 1 + 2 * subsChrs.length));}exports.decodeOwl = decodeOwl;//# sourceMappingURL=decode-owl.js.map
 |