"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.escapeAttrValue = escapeAttrValue; exports.escapeText = escapeText; exports.sortByLoc = sortByLoc; const ATTR_VALUE_REGEX_TEST = /[\xA0"&]/; const ATTR_VALUE_REGEX_REPLACE = new RegExp(ATTR_VALUE_REGEX_TEST.source, 'g'); const TEXT_REGEX_TEST = /[\xA0&<>]/; const TEXT_REGEX_REPLACE = new RegExp(TEXT_REGEX_TEST.source, 'g'); function attrValueReplacer(char) { switch (char.charCodeAt(0)) { case 160 /* NBSP */ : return ' '; case 34 /* QUOT */ : return '"'; case 38 /* AMP */ : return '&'; default: return char; } } function textReplacer(char) { switch (char.charCodeAt(0)) { case 160 /* NBSP */ : return ' '; case 38 /* AMP */ : return '&'; case 60 /* LT */ : return '<'; case 62 /* GT */ : return '>'; default: return char; } } function escapeAttrValue(attrValue) { if (ATTR_VALUE_REGEX_TEST.test(attrValue)) { return attrValue.replace(ATTR_VALUE_REGEX_REPLACE, attrValueReplacer); } return attrValue; } function escapeText(text) { if (TEXT_REGEX_TEST.test(text)) { return text.replace(TEXT_REGEX_REPLACE, textReplacer); } return text; } function sortByLoc(a, b) { // If either is invisible, don't try to order them if (a.loc.isInvisible || b.loc.isInvisible) { return 0; } if (a.loc.startPosition.line < b.loc.startPosition.line) { return -1; } if (a.loc.startPosition.line === b.loc.startPosition.line && a.loc.startPosition.column < b.loc.startPosition.column) { return -1; } if (a.loc.startPosition.line === b.loc.startPosition.line && a.loc.startPosition.column === b.loc.startPosition.column) { return 0; } return 1; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvZ2VuZXJhdGlvbi91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBVUEsTUFBTSxxQkFBcUIsR0FBM0IsVUFBQTtBQUNBLE1BQU0sd0JBQXdCLEdBQUcsSUFBQSxNQUFBLENBQVcscUJBQXFCLENBQWhDLE1BQUEsRUFBakMsR0FBaUMsQ0FBakM7QUFFQSxNQUFNLGVBQWUsR0FBckIsV0FBQTtBQUNBLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSxNQUFBLENBQVcsZUFBZSxDQUExQixNQUFBLEVBQTNCLEdBQTJCLENBQTNCOztBQUVBLFNBQUEsaUJBQUEsQ0FBQSxJQUFBLEVBQXVDO0FBQ3JDLFVBQVEsSUFBSSxDQUFKLFVBQUEsQ0FBUixDQUFRLENBQVI7QUFDRSxTQUFBO0FBQUE7QUFBQTtBQUNFLGFBQUEsUUFBQTs7QUFDRixTQUFBO0FBQUE7QUFBQTtBQUNFLGFBQUEsUUFBQTs7QUFDRixTQUFBO0FBQUE7QUFBQTtBQUNFLGFBQUEsT0FBQTs7QUFDRjtBQUNFLGFBQUEsSUFBQTtBQVJKO0FBVUQ7O0FBRUQsU0FBQSxZQUFBLENBQUEsSUFBQSxFQUFrQztBQUNoQyxVQUFRLElBQUksQ0FBSixVQUFBLENBQVIsQ0FBUSxDQUFSO0FBQ0UsU0FBQTtBQUFBO0FBQUE7QUFDRSxhQUFBLFFBQUE7O0FBQ0YsU0FBQTtBQUFBO0FBQUE7QUFDRSxhQUFBLE9BQUE7O0FBQ0YsU0FBQTtBQUFBO0FBQUE7QUFDRSxhQUFBLE1BQUE7O0FBQ0YsU0FBQTtBQUFBO0FBQUE7QUFDRSxhQUFBLE1BQUE7O0FBQ0Y7QUFDRSxhQUFBLElBQUE7QUFWSjtBQVlEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFNBQUEsRUFBMkM7QUFDL0MsTUFBSSxxQkFBcUIsQ0FBckIsSUFBQSxDQUFKLFNBQUksQ0FBSixFQUEyQztBQUN6QyxXQUFPLFNBQVMsQ0FBVCxPQUFBLENBQUEsd0JBQUEsRUFBUCxpQkFBTyxDQUFQO0FBQ0Q7O0FBQ0QsU0FBQSxTQUFBO0FBQ0Q7O0FBRUssU0FBQSxVQUFBLENBQUEsSUFBQSxFQUFpQztBQUNyQyxNQUFJLGVBQWUsQ0FBZixJQUFBLENBQUosSUFBSSxDQUFKLEVBQWdDO0FBQzlCLFdBQU8sSUFBSSxDQUFKLE9BQUEsQ0FBQSxrQkFBQSxFQUFQLFlBQU8sQ0FBUDtBQUNEOztBQUNELFNBQUEsSUFBQTtBQUNEOztBQUVLLFNBQUEsU0FBQSxDQUFBLENBQUEsRUFBQSxDQUFBLEVBQWdEO0FBQ3BEO0FBQ0EsTUFBSSxDQUFDLENBQUQsR0FBQSxDQUFBLFdBQUEsSUFBcUIsQ0FBQyxDQUFELEdBQUEsQ0FBekIsV0FBQSxFQUE0QztBQUMxQyxXQUFBLENBQUE7QUFDRDs7QUFFRCxNQUFJLENBQUMsQ0FBRCxHQUFBLENBQUEsYUFBQSxDQUFBLElBQUEsR0FBMkIsQ0FBQyxDQUFELEdBQUEsQ0FBQSxhQUFBLENBQS9CLElBQUEsRUFBeUQ7QUFDdkQsV0FBTyxDQUFQLENBQUE7QUFDRDs7QUFFRCxNQUNFLENBQUMsQ0FBRCxHQUFBLENBQUEsYUFBQSxDQUFBLElBQUEsS0FBNkIsQ0FBQyxDQUFELEdBQUEsQ0FBQSxhQUFBLENBQTdCLElBQUEsSUFDQSxDQUFDLENBQUQsR0FBQSxDQUFBLGFBQUEsQ0FBQSxNQUFBLEdBQTZCLENBQUMsQ0FBRCxHQUFBLENBQUEsYUFBQSxDQUYvQixNQUFBLEVBR0U7QUFDQSxXQUFPLENBQVAsQ0FBQTtBQUNEOztBQUVELE1BQ0UsQ0FBQyxDQUFELEdBQUEsQ0FBQSxhQUFBLENBQUEsSUFBQSxLQUE2QixDQUFDLENBQUQsR0FBQSxDQUFBLGFBQUEsQ0FBN0IsSUFBQSxJQUNBLENBQUMsQ0FBRCxHQUFBLENBQUEsYUFBQSxDQUFBLE1BQUEsS0FBK0IsQ0FBQyxDQUFELEdBQUEsQ0FBQSxhQUFBLENBRmpDLE1BQUEsRUFHRTtBQUNBLFdBQUEsQ0FBQTtBQUNEOztBQUVELFNBQUEsQ0FBQTtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQVNUdjEgZnJvbSAnLi4vdjEvYXBpJztcblxuY29uc3QgZW51bSBDaGFyIHtcbiAgTkJTUCA9IDB4YTAsXG4gIFFVT1QgPSAweDIyLFxuICBMVCA9IDB4M2MsXG4gIEdUID0gMHgzZSxcbiAgQU1QID0gMHgyNixcbn1cblxuY29uc3QgQVRUUl9WQUxVRV9SRUdFWF9URVNUID0gL1tcXHhBMFwiJl0vO1xuY29uc3QgQVRUUl9WQUxVRV9SRUdFWF9SRVBMQUNFID0gbmV3IFJlZ0V4cChBVFRSX1ZBTFVFX1JFR0VYX1RFU1Quc291cmNlLCAnZycpO1xuXG5jb25zdCBURVhUX1JFR0VYX1RFU1QgPSAvW1xceEEwJjw+XS87XG5jb25zdCBURVhUX1JFR0VYX1JFUExBQ0UgPSBuZXcgUmVnRXhwKFRFWFRfUkVHRVhfVEVTVC5zb3VyY2UsICdnJyk7XG5cbmZ1bmN0aW9uIGF0dHJWYWx1ZVJlcGxhY2VyKGNoYXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHN3aXRjaCAoY2hhci5jaGFyQ29kZUF0KDApKSB7XG4gICAgY2FzZSBDaGFyLk5CU1A6XG4gICAgICByZXR1cm4gJyZuYnNwOyc7XG4gICAgY2FzZSBDaGFyLlFVT1Q6XG4gICAgICByZXR1cm4gJyZxdW90Oyc7XG4gICAgY2FzZSBDaGFyLkFNUDpcbiAgICAgIHJldHVybiAnJmFtcDsnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gY2hhcjtcbiAgfVxufVxuXG5mdW5jdGlvbiB0ZXh0UmVwbGFjZXIoY2hhcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgc3dpdGNoIChjaGFyLmNoYXJDb2RlQXQoMCkpIHtcbiAgICBjYXNlIENoYXIuTkJTUDpcbiAgICAgIHJldHVybiAnJm5ic3A7JztcbiAgICBjYXNlIENoYXIuQU1QOlxuICAgICAgcmV0dXJuICcmYW1wOyc7XG4gICAgY2FzZSBDaGFyLkxUOlxuICAgICAgcmV0dXJuICcmbHQ7JztcbiAgICBjYXNlIENoYXIuR1Q6XG4gICAgICByZXR1cm4gJyZndDsnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gY2hhcjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlQXR0clZhbHVlKGF0dHJWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKEFUVFJfVkFMVUVfUkVHRVhfVEVTVC50ZXN0KGF0dHJWYWx1ZSkpIHtcbiAgICByZXR1cm4gYXR0clZhbHVlLnJlcGxhY2UoQVRUUl9WQUxVRV9SRUdFWF9SRVBMQUNFLCBhdHRyVmFsdWVSZXBsYWNlcik7XG4gIH1cbiAgcmV0dXJuIGF0dHJWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKFRFWFRfUkVHRVhfVEVTVC50ZXN0KHRleHQpKSB7XG4gICAgcmV0dXJuIHRleHQucmVwbGFjZShURVhUX1JFR0VYX1JFUExBQ0UsIHRleHRSZXBsYWNlcik7XG4gIH1cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0QnlMb2MoYTogQVNUdjEuTm9kZSwgYjogQVNUdjEuTm9kZSk6IC0xIHwgMCB8IDEge1xuICAvLyBJZiBlaXRoZXIgaXMgaW52aXNpYmxlLCBkb24ndCB0cnkgdG8gb3JkZXIgdGhlbVxuICBpZiAoYS5sb2MuaXNJbnZpc2libGUgfHwgYi5sb2MuaXNJbnZpc2libGUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmIChhLmxvYy5zdGFydFBvc2l0aW9uLmxpbmUgPCBiLmxvYy5zdGFydFBvc2l0aW9uLmxpbmUpIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBpZiAoXG4gICAgYS5sb2Muc3RhcnRQb3NpdGlvbi5saW5lID09PSBiLmxvYy5zdGFydFBvc2l0aW9uLmxpbmUgJiZcbiAgICBhLmxvYy5zdGFydFBvc2l0aW9uLmNvbHVtbiA8IGIubG9jLnN0YXJ0UG9zaXRpb24uY29sdW1uXG4gICkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIGlmIChcbiAgICBhLmxvYy5zdGFydFBvc2l0aW9uLmxpbmUgPT09IGIubG9jLnN0YXJ0UG9zaXRpb24ubGluZSAmJlxuICAgIGEubG9jLnN0YXJ0UG9zaXRpb24uY29sdW1uID09PSBiLmxvYy5zdGFydFBvc2l0aW9uLmNvbHVtblxuICApIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiAxO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==