escaper
Advanced tools
Comparing version 3.0.0 to 3.0.1
/*! | ||
* Escaper v3.0.0 | ||
* Escaper v3.0.1 | ||
* https://github.com/kobezzza/Escaper | ||
@@ -8,3 +8,3 @@ * | ||
* | ||
* Date: Sun, 28 Oct 2018 16:19:40 GMT | ||
* Date: Mon, 21 Jan 2019 13:55:01 GMT | ||
*/ | ||
@@ -18,45 +18,43 @@ | ||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { | ||
return typeof obj; | ||
} : function (obj) { | ||
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | ||
}; | ||
function _typeof(obj) { | ||
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { | ||
_typeof = function (obj) { | ||
return typeof obj; | ||
}; | ||
} else { | ||
_typeof = function (obj) { | ||
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | ||
}; | ||
} | ||
var Escaper = void 0; | ||
return _typeof(obj); | ||
} | ||
var Escaper; | ||
var escaper = Escaper = { | ||
VERSION: [3, 0, 0], | ||
content: [], | ||
cache: Object.create(null), | ||
symbols: /[!$a-z_]/i, | ||
replace: replace, | ||
paste: paste | ||
VERSION: [3, 0, 1], | ||
content: [], | ||
cache: Object.create(null), | ||
symbols: /[!$a-z_]/i, | ||
replace: replace, | ||
paste: paste | ||
}; | ||
var singleComments = ['//', '//*', '//!', '//#', '//@', '//$']; | ||
var multComments = ['/*', '/**', '/*!', '/*#', '/*@', '/*$']; | ||
var strings = ['"', '\'', '`']; | ||
var literals = ['/']; | ||
var all = [].concat(singleComments, multComments, strings, literals); | ||
var singleCommentsMap = createMap(singleComments); | ||
var multCommentsMap = createMap(multComments); | ||
var allMap = createMap(all); | ||
var defMap = { | ||
'true': true, | ||
'null': true, | ||
'undefined': true, | ||
'-1': true | ||
'true': true, | ||
'null': true, | ||
'undefined': true, | ||
'-1': true | ||
}; | ||
var rgxpFlags = ['g', 'm', 'i', 'y', 'u']; | ||
var rgxpFlagsMap = createMap(rgxpFlags); | ||
var endSymbols = createMap(['-', '+', '*', '%', '~', '>', '<', '^', ',', ';', '=', '|', '&', '!', '?', ':', '(', '{', '[']); | ||
var endWords = createMap(['return', 'yield', 'await', 'typeof', 'void', 'instanceof', 'delete', 'in', 'new', 'of']); | ||
var notSpaceRgxp = /[^\s/]/; | ||
@@ -67,3 +65,2 @@ var wordRgxp = /[a-z]/; | ||
var posRgxp = /\${pos}/g; | ||
/** | ||
@@ -73,33 +70,33 @@ * @param {!Array} arr | ||
*/ | ||
function createMap(arr) { | ||
var map = Object.create(null); | ||
var map = Object.create(null); | ||
for (var i = 0; i < arr.length; i++) { | ||
map[arr[i]] = true; | ||
} | ||
for (var i = 0; i < arr.length; i++) { | ||
map[arr[i]] = true; | ||
} | ||
return map; | ||
return map; | ||
} | ||
/** @return {{get: !Function, set: !Function}} */ | ||
/** @return {{get: !Function, set: !Function}} */ | ||
function createCache() { | ||
if (typeof Map === 'function') { | ||
return new Map(); | ||
} | ||
if (typeof Map === 'function') { | ||
return new Map(); | ||
} | ||
var cache = Object.create(null); | ||
return { | ||
get: function get$$1(key) { | ||
return cache[key]; | ||
}, | ||
set: function set$$1(key, value) { | ||
cache[key] = value; | ||
return this; | ||
} | ||
}; | ||
var cache = Object.create(null); | ||
return { | ||
get: function get(key) { | ||
return cache[key]; | ||
}, | ||
set: function set(key, value) { | ||
cache[key] = value; | ||
return this; | ||
} | ||
}; | ||
} | ||
var restrictedKeys = createMap(['label', 'filters', 'singleComments', 'multComment', 'comments', 'strings', 'literals']); | ||
/** | ||
@@ -111,27 +108,27 @@ * @param {(!Object|!Array)} from | ||
*/ | ||
function mix(from, to, value) { | ||
if (!from || (typeof from === 'undefined' ? 'undefined' : _typeof(from)) !== 'object') { | ||
return false; | ||
} | ||
if (!from || _typeof(from) !== 'object') { | ||
return false; | ||
} | ||
var isArr = Array.isArray(from), | ||
customValue = arguments.length > 2, | ||
keys = isArr ? from : Object.keys(from); | ||
var isArr = Array.isArray(from), | ||
customValue = arguments.length > 2, | ||
keys = isArr ? from : Object.keys(from); | ||
for (var i = 0; i < keys.length; i++) { | ||
var key = keys[i]; | ||
for (var i = 0; i < keys.length; i++) { | ||
var key = keys[i]; | ||
if (restrictedKeys[key]) { | ||
continue; | ||
} | ||
if (restrictedKeys[key]) { | ||
continue; | ||
} | ||
if (key in to === false) { | ||
var v = customValue ? value : isArr ? true : from[key]; | ||
to[key] = v != null ? v : true; | ||
} | ||
} | ||
if (key in to === false) { | ||
var v = customValue ? value : isArr ? true : from[key]; | ||
to[key] = v != null ? v : true; | ||
} | ||
} | ||
return true; | ||
return true; | ||
} | ||
/** | ||
@@ -142,12 +139,13 @@ * @param {!Object} params | ||
*/ | ||
function mark(params, pos) { | ||
var label = params['label']; | ||
var label = params['label']; | ||
if (label) { | ||
return label.replace(posRgxp, pos); | ||
} | ||
if (label) { | ||
return label.replace(posRgxp, pos); | ||
} | ||
return '__ESCAPER_QUOT__' + pos + '_'; | ||
return "__ESCAPER_QUOT__".concat(pos, "_"); | ||
} | ||
/** | ||
@@ -199,3 +197,3 @@ * Replaces all found blocks ' ... ', " ... ", ` ... `, / ... /, // ..., /* ... *\/ to | ||
* | ||
* // Cuts all | ||
* // Cuts all found matches | ||
* // 'Hello and ' | ||
@@ -220,260 +218,249 @@ * Escaper.replace('Hello "world" and \'friends\'', -1) | ||
*/ | ||
function replace(str, how, content) { | ||
var p = Object.create(null), | ||
_Escaper = Escaper, | ||
cache = _Escaper.cache, | ||
staticContent = _Escaper.content; | ||
if (Array.isArray(how)) { | ||
if (how.length || Array.isArray(content)) { | ||
mix(how, p); | ||
} else { | ||
content = content || how; | ||
mix(all, p, true); | ||
} | ||
} else if (how && (typeof how === 'undefined' ? 'undefined' : _typeof(how)) === 'object') { | ||
mix(how, p); | ||
function replace(str, how, content) { | ||
var p = Object.create(null), | ||
_Escaper = Escaper, | ||
cache = _Escaper.cache, | ||
staticContent = _Escaper.content; | ||
if (how['filters']) { | ||
p.filters = true; | ||
} | ||
if (Array.isArray(how)) { | ||
if (how.length || Array.isArray(content)) { | ||
mix(how, p); | ||
} else { | ||
content = content || how; | ||
mix(all, p, true); | ||
} | ||
} else if (how && _typeof(how) === 'object') { | ||
mix(how, p); | ||
p.label = how['label']; | ||
if (how['filters']) { | ||
p.filters = true; | ||
} | ||
var singleCommentsOpt = how['singleComments'], | ||
multCommentsOpt = how['multComments'], | ||
commentsOpt = how['comments']; | ||
p.label = how['label']; | ||
var singleCommentsOpt = how['singleComments'], | ||
multCommentsOpt = how['multComments'], | ||
commentsOpt = how['comments']; | ||
var skipComments = false; | ||
var skipComments = false; | ||
if (singleCommentsOpt !== false) { | ||
if (defMap[singleCommentsOpt]) { | ||
mix(singleComments, p, singleCommentsOpt); | ||
skipComments = singleCommentsOpt != null; | ||
} else if (mix(singleCommentsOpt, p)) { | ||
skipComments = true; | ||
} | ||
} | ||
if (singleCommentsOpt !== false) { | ||
if (defMap[singleCommentsOpt]) { | ||
mix(singleComments, p, singleCommentsOpt); | ||
skipComments = singleCommentsOpt != null; | ||
} else if (mix(singleCommentsOpt, p)) { | ||
skipComments = true; | ||
} | ||
} | ||
if (multCommentsOpt !== false) { | ||
if (defMap[multCommentsOpt]) { | ||
mix(singleComments, p, multCommentsOpt); | ||
skipComments = skipComments || multCommentsOpt != null; | ||
} else if (mix(multCommentsOpt, p)) { | ||
skipComments = true; | ||
} | ||
} | ||
if (multCommentsOpt !== false) { | ||
if (defMap[multCommentsOpt]) { | ||
mix(singleComments, p, multCommentsOpt); | ||
skipComments = skipComments || multCommentsOpt != null; | ||
} else if (mix(multCommentsOpt, p)) { | ||
skipComments = true; | ||
} | ||
} | ||
if (!skipComments && commentsOpt !== false) { | ||
if (defMap[commentsOpt]) { | ||
mix(multComments, p, commentsOpt); | ||
mix(singleComments, p, commentsOpt); | ||
} else { | ||
mix(commentsOpt, p); | ||
} | ||
} | ||
if (!skipComments && commentsOpt !== false) { | ||
if (defMap[commentsOpt]) { | ||
mix(multComments, p, commentsOpt); | ||
mix(singleComments, p, commentsOpt); | ||
} else { | ||
mix(commentsOpt, p); | ||
} | ||
} | ||
var stringsOpt = how['strings'], | ||
literalsOpt = how['literals']; | ||
var stringsOpt = how['strings'], | ||
literalsOpt = how['literals']; | ||
if (stringsOpt !== false) { | ||
if (defMap[stringsOpt]) { | ||
mix(strings, p, stringsOpt); | ||
} else { | ||
mix(stringsOpt, p); | ||
} | ||
} | ||
if (stringsOpt !== false) { | ||
if (defMap[stringsOpt]) { | ||
mix(strings, p, stringsOpt); | ||
} else { | ||
mix(stringsOpt, p); | ||
} | ||
} | ||
if (literalsOpt !== false) { | ||
if (defMap[literalsOpt]) { | ||
mix(literals, p, literalsOpt); | ||
} else { | ||
mix(literalsOpt, p); | ||
} | ||
} | ||
} else { | ||
mix(all, p, how === -1 ? -1 : true); | ||
} | ||
if (literalsOpt !== false) { | ||
if (defMap[literalsOpt]) { | ||
mix(literals, p, literalsOpt); | ||
} else { | ||
mix(literalsOpt, p); | ||
} | ||
} | ||
} else { | ||
mix(all, p, how === -1 ? -1 : true); | ||
} | ||
content = content || staticContent; | ||
var cacheStr = str, | ||
canCache = content === staticContent, | ||
cacheKey = canCache && Object.keys(p).join(), | ||
cacheVal = canCache && cacheKey in cache && cache[cacheKey].get(cacheStr); | ||
content = content || staticContent; | ||
if (cacheVal) { | ||
return cacheVal; | ||
} | ||
var cacheStr = str, | ||
canCache = content === staticContent, | ||
cacheKey = canCache && Object.keys(p).join(), | ||
cacheVal = canCache && cacheKey in cache && cache[cacheKey].get(cacheStr); | ||
var symbols = Escaper.symbols; | ||
var | ||
/** @type {(boolean|string)} */ | ||
begin = false, | ||
end = true; | ||
var escape = false, | ||
comment = false; | ||
var selectionStart = 0, | ||
block = false; | ||
var templateVar = 0, | ||
filterStart = false; | ||
var cut, label; | ||
var part = '', | ||
rPart = ''; | ||
if (cacheVal) { | ||
return cacheVal; | ||
} | ||
for (var i = -1; ++i < str.length;) { | ||
var el = str.charAt(i); | ||
var next = str.charAt(i + 1), | ||
word = str.substr(i, 2), | ||
extWord = str.substr(i, 3); | ||
var symbols = Escaper.symbols; | ||
if (!comment) { | ||
if (!begin) { | ||
if (el === '/') { | ||
if (singleCommentsMap[word] || multCommentsMap[word]) { | ||
if (singleCommentsMap[extWord] || multCommentsMap[extWord]) { | ||
comment = extWord; | ||
} else { | ||
comment = word; | ||
} | ||
} | ||
var | ||
/** @type {(boolean|string)} */begin = false, | ||
end = true; | ||
if (comment) { | ||
selectionStart = i; | ||
continue; | ||
} | ||
} | ||
var escape = false, | ||
comment = false; | ||
if (endSymbols[el] || endWords[rPart]) { | ||
end = true; | ||
rPart = ''; | ||
} else if (notSpaceRgxp.test(el)) { | ||
end = false; | ||
} | ||
var selectionStart = 0, | ||
block = false; | ||
if (wordRgxp.test(el)) { | ||
part += el; | ||
} else { | ||
rPart = part; | ||
part = ''; | ||
} | ||
var templateVar = 0, | ||
filterStart = false; | ||
var skip = false; | ||
var cut = void 0, | ||
label = void 0; | ||
if (p.filters) { | ||
if (el === '|' && symbols.test(next)) { | ||
filterStart = true; | ||
end = false; | ||
skip = true; | ||
} else if (filterStart && spaceRgxp.test(el)) { | ||
filterStart = false; | ||
end = true; | ||
skip = true; | ||
} | ||
} | ||
var part = '', | ||
rPart = ''; | ||
if (!skip) { | ||
if (endSymbols[el]) { | ||
end = true; | ||
} else if (notSpaceRgxp.test(el)) { | ||
end = false; | ||
} | ||
} | ||
} // [] inside RegExp | ||
for (var i = -1; ++i < str.length;) { | ||
var el = str.charAt(i); | ||
var next = str.charAt(i + 1), | ||
word = str.substr(i, 2), | ||
extWord = str.substr(i, 3); | ||
if (begin === '/' && !escape) { | ||
if (el === '[') { | ||
block = true; | ||
} else if (el === ']') { | ||
block = false; | ||
} | ||
} | ||
if (!comment) { | ||
if (!begin) { | ||
if (el === '/') { | ||
if (singleCommentsMap[word] || multCommentsMap[word]) { | ||
if (singleCommentsMap[extWord] || multCommentsMap[extWord]) { | ||
comment = extWord; | ||
} else { | ||
comment = word; | ||
} | ||
} | ||
if (!begin && templateVar) { | ||
if (el === '}') { | ||
templateVar--; | ||
} else if (el === '{') { | ||
templateVar++; | ||
} | ||
if (comment) { | ||
selectionStart = i; | ||
continue; | ||
} | ||
} | ||
if (!templateVar) { | ||
el = '`'; | ||
} | ||
} | ||
if (endSymbols[el] || endWords[rPart]) { | ||
end = true; | ||
rPart = ''; | ||
} else if (notSpaceRgxp.test(el)) { | ||
end = false; | ||
} | ||
if (begin === '`' && !escape && word === '${') { | ||
el = '`'; | ||
i++; | ||
templateVar++; | ||
} | ||
if (wordRgxp.test(el)) { | ||
part += el; | ||
} else { | ||
rPart = part; | ||
part = ''; | ||
} | ||
if (allMap[el] && (el !== '/' || end) && !begin) { | ||
begin = el; | ||
selectionStart = i; | ||
} else if (begin && (el === '\\' || escape)) { | ||
escape = !escape; | ||
} else if (allMap[el] && begin === el && !escape && (begin !== '/' || !block)) { | ||
if (el === '/') { | ||
for (var j = -1; ++j < rgxpFlags.length;) { | ||
if (rgxpFlagsMap[str.charAt(i + 1)]) { | ||
i++; | ||
} | ||
} | ||
} | ||
var skip = false; | ||
begin = false; | ||
end = false; | ||
if (p.filters) { | ||
if (el === '|' && symbols.test(next)) { | ||
filterStart = true; | ||
end = false; | ||
skip = true; | ||
} else if (filterStart && spaceRgxp.test(el)) { | ||
filterStart = false; | ||
end = true; | ||
skip = true; | ||
} | ||
} | ||
if (p[el]) { | ||
cut = str.substring(selectionStart, i + 1); | ||
if (!skip) { | ||
if (endSymbols[el]) { | ||
end = true; | ||
} else if (notSpaceRgxp.test(el)) { | ||
end = false; | ||
} | ||
} | ||
} | ||
if (p[el] === -1) { | ||
label = ''; | ||
} else { | ||
label = mark(p, content.length); | ||
content.push(cut); | ||
} | ||
// [] inside RegExp | ||
if (begin === '/' && !escape) { | ||
if (el === '[') { | ||
block = true; | ||
} else if (el === ']') { | ||
block = false; | ||
} | ||
} | ||
str = str.substring(0, selectionStart) + label + str.substring(i + 1); | ||
i += label.length - cut.length; | ||
} | ||
} | ||
} else if ((i === str.length - 1 || nextLineRgxp.test(next)) && singleCommentsMap[comment] || multCommentsMap[el + str.charAt(i - 1)] && i - selectionStart > 2 && multCommentsMap[comment]) { | ||
if (p[comment]) { | ||
cut = str.substring(selectionStart, i + 1); | ||
if (!begin && templateVar) { | ||
if (el === '}') { | ||
templateVar--; | ||
} else if (el === '{') { | ||
templateVar++; | ||
} | ||
if (p[comment] === -1) { | ||
label = ''; | ||
} else { | ||
label = mark(p, content.length); | ||
content.push(cut); | ||
} | ||
if (!templateVar) { | ||
el = '`'; | ||
} | ||
} | ||
str = str.substring(0, selectionStart) + label + str.substring(i + 1); | ||
i += label.length - cut.length; | ||
} | ||
if (begin === '`' && !escape && word === '${') { | ||
el = '`'; | ||
i++; | ||
templateVar++; | ||
} | ||
comment = false; | ||
} | ||
} | ||
if (allMap[el] && (el !== '/' || end) && !begin) { | ||
begin = el; | ||
selectionStart = i; | ||
} else if (begin && (el === '\\' || escape)) { | ||
escape = !escape; | ||
} else if (allMap[el] && begin === el && !escape && (begin !== '/' || !block)) { | ||
if (el === '/') { | ||
for (var j = -1; ++j < rgxpFlags.length;) { | ||
if (rgxpFlagsMap[str.charAt(i + 1)]) { | ||
i++; | ||
} | ||
} | ||
} | ||
if (canCache) { | ||
var c = cache[cacheKey] = cache[cacheKey] || createCache(); | ||
c.set(cacheStr, str); | ||
} | ||
begin = false; | ||
end = false; | ||
if (p[el]) { | ||
cut = str.substring(selectionStart, i + 1); | ||
if (p[el] === -1) { | ||
label = ''; | ||
} else { | ||
label = mark(p, content.length); | ||
content.push(cut); | ||
} | ||
str = str.substring(0, selectionStart) + label + str.substring(i + 1); | ||
i += label.length - cut.length; | ||
} | ||
} | ||
} else if ((i === str.length - 1 || nextLineRgxp.test(next)) && singleCommentsMap[comment] || multCommentsMap[el + str.charAt(i - 1)] && i - selectionStart > 2 && multCommentsMap[comment]) { | ||
if (p[comment]) { | ||
cut = str.substring(selectionStart, i + 1); | ||
if (p[comment] === -1) { | ||
label = ''; | ||
} else { | ||
label = mark(p, content.length); | ||
content.push(cut); | ||
} | ||
str = str.substring(0, selectionStart) + label + str.substring(i + 1); | ||
i += label.length - cut.length; | ||
} | ||
comment = false; | ||
} | ||
} | ||
if (canCache) { | ||
var c = cache[cacheKey] = cache[cacheKey] || createCache(); | ||
c.set(cacheStr, str); | ||
} | ||
return str; | ||
return str; | ||
} | ||
var pasteRgxp = /__ESCAPER_QUOT__(\d+)_/g; | ||
/** | ||
@@ -488,6 +475,7 @@ * Replaces all found escape blocks to a real content in a string | ||
*/ | ||
function paste(str, content, rgxp) { | ||
return str.replace(rgxp || pasteRgxp, function (str, pos) { | ||
return (content || Escaper.content)[pos]; | ||
}); | ||
return str.replace(rgxp || pasteRgxp, function (str, pos) { | ||
return (content || Escaper.content)[pos]; | ||
}); | ||
} | ||
@@ -494,0 +482,0 @@ |
@@ -1,10 +0,10 @@ | ||
/*! Escaper v3.0.0 | https://github.com/kobezzza/Escaper/blob/master/LICENSE */ | ||
/*! Escaper v3.0.1 | https://github.com/kobezzza/Escaper/blob/master/LICENSE */ | ||
(function(){'use strict'; | ||
function C(q){function f(a){for(var b=Object.create(null),e=0;e<a.length;e++)b[a[e]]=!0;return b}function U(){if("function"===typeof Map)return new Map;var a=Object.create(null);return{get:function(b){return a[b]},set:function(b,e){a[b]=e;return this}}}function k(a,b,e){if(!a||"object"!==("undefined"===typeof a?"undefined":K(a)))return!1;for(var d=Array.isArray(a),k=2<arguments.length,f=d?a:Object.keys(a),g=0;g<f.length;g++){var n=f[g];if(!V[n]&&!1===n in b){var l=k?e:d?!0:a[n];b[n]=null!=l?l:!0}}return!0} | ||
function L(a,b){return(a=a.label)?a.replace(W,b):"__ESCAPER_QUOT__"+b+"_"}function M(a,b,e){var d=Object.create(null),f=z,q=f.cache,f=f.content;if(Array.isArray(b))b.length||Array.isArray(e)?k(b,d):(e=e||b,k(D,d,!0));else if(b&&"object"===("undefined"===typeof b?"undefined":K(b))){k(b,d);b.filters&&(d.filters=!0);d.label=b.label;var g=b.singleComments,n=b.multComments,l=b.comments,m=!1;!1!==g&&(w[g]?(k(x,d,g),m=null!=g):k(g,d)&&(m=!0));!1!==n&&(w[n]?(k(x,d,n),m=m||null!=n):k(n,d)&&(m=!0));m||!1=== | ||
l||(w[l]?(k(E,d,l),k(x,d,l)):k(l,d));g=b.strings;b=b.literals;!1!==g&&(w[g]?k(N,d,g):k(g,d));!1!==b&&(w[b]?k(O,d,b):k(b,d))}else k(D,d,-1===b?-1:!0);e=e||f;b=a;g=(f=e===f)&&Object.keys(d).join();if(n=f&&g in q&&q[g].get(b))return n;for(var n=z.symbols,p=!1,t=!0,m=l=!1,u=0,F=!1,y=0,G=!1,r,c,H="",I="",h=-1;++h<a.length;){c=a.charAt(h);r=a.charAt(h+1);var A=a.substr(h,2),v=a.substr(h,3);if(!m){if(!p){if("/"===c){if(J[A]||B[A])m=J[v]||B[v]?v:A;if(m){u=h;continue}}P[c]||X[I]?(t=!0,I=""):Q.test(c)&&(t= | ||
!1);Y.test(c)?H+=c:(I=H,H="");v=!1;d.filters&&("|"===c&&n.test(r)?(G=!0,t=!1,v=!0):G&&Z.test(c)&&(G=!1,v=t=!0));v||(P[c]?t=!0:Q.test(c)&&(t=!1))}"/"!==p||l||("["===c?F=!0:"]"===c&&(F=!1));!p&&y&&("}"===c?y--:"{"===c&&y++,y||(c="`"));"`"!==p||l||"${"!==A||(c="`",h++,y++);if(R[c]&&("/"!==c||t)&&!p)p=c,u=h;else if(p&&("\\"===c||l))l=!l;else if(R[c]&&p===c&&!l&&("/"!==p||!F)){if("/"===c)for(p=-1;++p<S.length;)aa[a.charAt(h+1)]&&h++;t=p=!1;d[c]&&(r=a.substring(u,h+1),-1===d[c]?c="":(c=L(d,e.length),e.push(r)), | ||
a=a.substring(0,u)+c+a.substring(h+1),h+=c.length-r.length)}}else if((h===a.length-1||ba.test(r))&&J[m]||B[c+a.charAt(h-1)]&&2<h-u&&B[m])d[m]&&(r=a.substring(u,h+1),-1===d[m]?c="":(c=L(d,e.length),e.push(r)),a=a.substring(0,u)+c+a.substring(h+1),h+=c.length-r.length),m=!1}f&&(q[g]=q[g]||U()).set(b,a);return a}function T(a,b,e){return a.replace(e||ca,function(a,e){return(b||z.content)[e]})}var K="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&& | ||
"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},z=void 0,da=z={VERSION:[3,0,0],content:[],cache:Object.create(null),symbols:/[!$a-z_]/i,replace:M,paste:T},x="// //* //! //# //@ //$".split(" "),E="/* /** /*! /*# /*@ /*$".split(" "),N=['"',"'","`"],O=["/"],D=[].concat(x,E,N,O),J=f(x),B=f(E),R=f(D),w={"true":!0,"null":!0,undefined:!0,"-1":!0},S=["g","m","i","y","u"],aa=f(S),P=f("-+*%~><^,;=|&!?:({[".split("")),X=f("return yield await typeof void instanceof delete in new of".split(" ")), | ||
Q=/[^\s/]/,Y=/[a-z]/,Z=/\s/,ba=/[\r\n]/,W=/\${pos}/g,V=f("label filters singleComments multComment comments strings literals".split(" ")),ca=/__ESCAPER_QUOT__(\d+)_/g;q["default"]=da;q.replace=M;q.paste=T;Object.defineProperty(q,"__esModule",{value:!0})}"object"===typeof exports&&"undefined"!==typeof module?C(exports):"function"===typeof define&&define.amd?define("Escaper",["exports"],C):C(this.Escaper={}); | ||
function D(q){function z(b){z="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return z(b)}function f(b){for(var a=Object.create(null),e=0;e<b.length;e++)a[b[e]]=!0;return a}function U(){if("function"===typeof Map)return new Map;var b=Object.create(null);return{get:function(a){return b[a]},set:function(a,e){b[a]=e;return this}}}function k(b,a, | ||
e){if(!b||"object"!==z(b))return!1;for(var d=Array.isArray(b),k=2<arguments.length,f=d?b:Object.keys(b),g=0;g<f.length;g++){var n=f[g];if(!V[n]&&!1===n in a){var l=k?e:d?!0:b[n];a[n]=null!=l?l:!0}}return!0}function L(b,a){return(b=b.label)?b.replace(W,a):"__ESCAPER_QUOT__".concat(a,"_")}function M(b,a,e){var d=Object.create(null),f=A,q=f.cache;f=f.content;if(Array.isArray(a))a.length||Array.isArray(e)?k(a,d):(e=e||a,k(E,d,!0));else if(a&&"object"===z(a)){k(a,d);a.filters&&(d.filters=!0);d.label=a.label; | ||
var g=a.singleComments,n=a.multComments,l=a.comments,m=!1;!1!==g&&(w[g]?(k(x,d,g),m=null!=g):k(g,d)&&(m=!0));!1!==n&&(w[n]?(k(x,d,n),m=m||null!=n):k(n,d)&&(m=!0));m||!1===l||(w[l]?(k(F,d,l),k(x,d,l)):k(l,d));g=a.strings;a=a.literals;!1!==g&&(w[g]?k(N,d,g):k(g,d));!1!==a&&(w[a]?k(O,d,a):k(a,d))}else k(E,d,-1===a?-1:!0);e=e||f;a=b;g=(f=e===f)&&Object.keys(d).join();if(n=f&&g in q&&q[g].get(a))return n;n=A.symbols;var p=!1,t=!0;m=l=!1;for(var u=0,G=!1,y=0,H=!1,r,c,I="",J="",h=-1;++h<b.length;){c=b.charAt(h); | ||
r=b.charAt(h+1);var B=b.substr(h,2),v=b.substr(h,3);if(!m){if(!p){if("/"===c){if(K[B]||C[B])m=K[v]||C[v]?v:B;if(m){u=h;continue}}P[c]||X[J]?(t=!0,J=""):Q.test(c)&&(t=!1);Y.test(c)?I+=c:(J=I,I="");v=!1;d.filters&&("|"===c&&n.test(r)?(H=!0,t=!1,v=!0):H&&Z.test(c)&&(H=!1,v=t=!0));v||(P[c]?t=!0:Q.test(c)&&(t=!1))}"/"!==p||l||("["===c?G=!0:"]"===c&&(G=!1));!p&&y&&("}"===c?y--:"{"===c&&y++,y||(c="`"));"`"!==p||l||"${"!==B||(c="`",h++,y++);if(R[c]&&("/"!==c||t)&&!p)p=c,u=h;else if(p&&("\\"===c||l))l=!l; | ||
else if(R[c]&&p===c&&!l&&("/"!==p||!G)){if("/"===c)for(p=-1;++p<S.length;)aa[b.charAt(h+1)]&&h++;t=p=!1;d[c]&&(r=b.substring(u,h+1),-1===d[c]?c="":(c=L(d,e.length),e.push(r)),b=b.substring(0,u)+c+b.substring(h+1),h+=c.length-r.length)}}else if((h===b.length-1||ba.test(r))&&K[m]||C[c+b.charAt(h-1)]&&2<h-u&&C[m])d[m]&&(r=b.substring(u,h+1),-1===d[m]?c="":(c=L(d,e.length),e.push(r)),b=b.substring(0,u)+c+b.substring(h+1),h+=c.length-r.length),m=!1}f&&(q[g]=q[g]||U()).set(a,b);return b}function T(b,a, | ||
e){return b.replace(e||ca,function(b,e){return(a||A.content)[e]})}var A,da=A={VERSION:[3,0,1],content:[],cache:Object.create(null),symbols:/[!$a-z_]/i,replace:M,paste:T},x="// //* //! //# //@ //$".split(" "),F="/* /** /*! /*# /*@ /*$".split(" "),N=['"',"'","`"],O=["/"],E=[].concat(x,F,N,O),K=f(x),C=f(F),R=f(E),w={"true":!0,"null":!0,undefined:!0,"-1":!0},S=["g","m","i","y","u"],aa=f(S),P=f("-+*%~><^,;=|&!?:({[".split("")),X=f("return yield await typeof void instanceof delete in new of".split(" ")), | ||
Q=/[^\s/]/,Y=/[a-z]/,Z=/\s/,ba=/[\r\n]/,W=/\${pos}/g,V=f("label filters singleComments multComment comments strings literals".split(" ")),ca=/__ESCAPER_QUOT__(\d+)_/g;q["default"]=da;q.replace=M;q.paste=T;Object.defineProperty(q,"__esModule",{value:!0})}"object"===typeof exports&&"undefined"!==typeof module?D(exports):"function"===typeof define&&define.amd?define("Escaper",["exports"],D):D(this.Escaper={}); | ||
}).call(this); |
@@ -52,3 +52,3 @@ /*! | ||
declare const Escaper: { | ||
VERSION: any[]; | ||
VERSION: (number | string)[]; | ||
cache: Record<string, EscaperCache | Map<string, string>>; | ||
@@ -55,0 +55,0 @@ content: string[]; |
@@ -8,3 +8,3 @@ { | ||
"typings": "escaper.d.ts", | ||
"version": "3.0.0", | ||
"version": "3.0.1", | ||
"license": "MIT", | ||
@@ -28,11 +28,10 @@ "author": { | ||
"devDependencies": { | ||
"@babel/core": "^7.2.2", | ||
"@babel/preset-env": "^7.2.3", | ||
"@types/gulp": "^4.0.5", | ||
"@types/gulp-load-plugins": "0.0.31", | ||
"babel-core": "^6.26.3", | ||
"babel-plugin-transform-remove-strict-mode": "0.0.2", | ||
"babel-preset-es2015-rollup": "^3.0.0", | ||
"bower": "^1.8.4", | ||
"closurecompiler-externs": "^1.0.4", | ||
"coveralls": "^3.0.2", | ||
"eslint": "^5.7.0", | ||
"eslint": "^5.8.0", | ||
"glob": "^7.1.3", | ||
@@ -47,3 +46,3 @@ "gulp": "^4.0.0", | ||
"gulp-istanbul": "^1.1.3", | ||
"gulp-jasmine": "^3.0.0", | ||
"gulp-jasmine": "^4.0.0", | ||
"gulp-load-plugins": "^1.5.0", | ||
@@ -56,5 +55,5 @@ "gulp-monic": "^2.0.13", | ||
"gulp-wrap": "^0.14.0", | ||
"jasmine": "^2.9.0", | ||
"jasmine": "^3.3.1", | ||
"monic": "^2.5.1", | ||
"rollup-plugin-babel": "^3.0.7", | ||
"rollup-plugin-babel": "^4.3.2", | ||
"yaspeller": "^5.0.1" | ||
@@ -61,0 +60,0 @@ }, |
@@ -254,17 +254,15 @@ /*! | ||
const | ||
src = 'Hello "world" and "friends"', | ||
res = Escaper.replace(src); | ||
src1 = 'Hello "world" and "friends"', | ||
res1 = Escaper.replace(src1); | ||
expect(res).toBe('Hello __ESCAPER_QUOT__0_ and __ESCAPER_QUOT__1_'); | ||
expect(Escaper.paste(res)).toBe(src); | ||
}); | ||
expect(res1).toBe('Hello __ESCAPER_QUOT__0_ and __ESCAPER_QUOT__1_'); | ||
expect(Escaper.paste(res1)).toBe(src1); | ||
it('replace with a static cache with parameters', () => { | ||
const | ||
src = 'Hello "world" + /friends/', | ||
res = Escaper.replace(src, ['"', '/']); | ||
src2 = 'Hello "world" + /friends/', | ||
res2 = Escaper.replace(src2, ['"', '/']); | ||
expect(res).toBe('Hello __ESCAPER_QUOT__2_ + __ESCAPER_QUOT__3_'); | ||
expect(Escaper.paste(res)).toBe(src); | ||
expect(res2).toBe('Hello __ESCAPER_QUOT__2_ + __ESCAPER_QUOT__3_'); | ||
expect(Escaper.paste(res2)).toBe(src2); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
39461
29
14
763
0