es-alchemy
Advanced tools
Comparing version 3.4.5 to 4.0.0
const assert = require('assert'); | ||
const remap = ` | ||
double remap(def value, def map) { | ||
for (int i = map.length - 2; i >= 0; i -= 2) { | ||
if (map[i] <= value) { | ||
return map[i + 1]; | ||
} | ||
} | ||
return map[1]; | ||
} | ||
`; | ||
const scoreMapper = map => { | ||
assert(Array.isArray(map) && map.length !== 0); | ||
return map.reduce((p, [k, v]) => p.concat(k, v), []); | ||
}; | ||
module.exports = { | ||
random: (seed, scaleField) => ({ | ||
random: (target, seed, map) => ({ | ||
script_score: { | ||
@@ -9,13 +25,13 @@ script: { | ||
inline: ` | ||
int a = [doc['id'].value, params.seed].hashCode(); | ||
${remap} | ||
int a = [doc[params.target].value, params.seed].hashCode(); | ||
a -= (a<<6);a ^= (a>>17);a -= (a<<9);a ^= (a<<4); | ||
a -= (a<<3);a ^= (a<<10);a ^= (a>>15); | ||
double scale = Collections.max(doc[params.scale_field].getValues()) / 100.0; | ||
double value = (Math.abs(a) / (double)Integer.MAX_VALUE) - 0.5; | ||
return scale * value | ||
double result = (Math.abs(a) / (double)Integer.MAX_VALUE) - 0.5; | ||
return remap(result, params.map); | ||
`, | ||
params: { | ||
target, | ||
seed, | ||
scale_field: scaleField // as percentage | ||
map: scoreMapper(map) | ||
} | ||
@@ -25,9 +41,15 @@ } | ||
}), | ||
bool: f => ({ | ||
'==': (target, value, map) => ({ | ||
script_score: { | ||
script: { | ||
lang: 'painless', | ||
inline: 'return doc[params.field].values.contains(true) ? 1 : 0;', | ||
inline: ` | ||
${remap} | ||
int result = doc[params.target].values.contains(params.value) ? 1 : 0; | ||
return remap(result, params.map); | ||
`, | ||
params: { | ||
field: f | ||
target, | ||
value, | ||
map: scoreMapper(map) | ||
} | ||
@@ -37,19 +59,3 @@ } | ||
}), | ||
'==': (l, r, scaleValue = 1) => { | ||
assert(typeof scaleValue === 'number'); | ||
return { | ||
script_score: { | ||
script: { | ||
lang: 'painless', | ||
inline: 'return (doc[params.l].values.contains(params.r) ? 1 : 0) * params.scale_value;', | ||
params: { | ||
l, | ||
r, | ||
scale_value: scaleValue | ||
} | ||
} | ||
} | ||
}; | ||
}, | ||
distance: (l, loc, offsetInM, scaleInM = null) => ({ | ||
distance: (target, location, map) => ({ | ||
script_score: { | ||
@@ -59,5 +65,4 @@ script: { | ||
inline: ` | ||
double scale = ${typeof scaleInM === 'number' ? scaleInM : 'Collections.max(doc[params.scale_field].getValues())'}; | ||
double lambda = Math.log(params.decay) / scale; | ||
double score = Double.MAX_VALUE; | ||
${remap} | ||
double result = 0; | ||
double lat2 = params.lat; | ||
@@ -67,6 +72,6 @@ double lon2 = params.lon; | ||
double TO_RADIANS = Math.PI / 180D; | ||
for (int i = 0; i < doc[params.field].values.length; i++) { | ||
for (int i = 0; i < doc[params.target].values.length; i++) { | ||
// todo: https://github.com/elastic/elasticsearch/issues/25796 | ||
double lat1 = doc[params.field][i].lat; | ||
double lon1 = doc[params.field][i].lon; | ||
double lat1 = doc[params.target][i].lat; | ||
double lon1 = doc[params.target][i].lon; | ||
double x1 = lat1 * TO_RADIANS; | ||
@@ -78,19 +83,38 @@ double x2 = lat2 * TO_RADIANS; | ||
double dist = TO_METERS * 2 * Math.asin(Math.min(1, Math.sqrt(h * 0.5))); | ||
// http://tiny.cc/ylp2oy | ||
double cscore = Math.exp(lambda * Math.max(0, dist - params.offset)); | ||
score = Math.min(score, cscore); | ||
result = Math.max(result, remap(dist, params.map)); | ||
} | ||
return score; `, | ||
return result; | ||
`, | ||
params: { | ||
field: l, | ||
lon: loc[0], | ||
lat: loc[1], | ||
offset: offsetInM, | ||
scale_field: scaleInM, | ||
decay: 0.5 | ||
target, | ||
lon: location[0], | ||
lat: location[1], | ||
map: scoreMapper(map) | ||
} | ||
} | ||
} | ||
}), | ||
age: (target, timestamp, map) => ({ | ||
script_score: { | ||
script: { | ||
lang: 'painless', | ||
inline: ` | ||
${remap} | ||
double result = 0; | ||
long timestamp = Instant.parse(params.timestamp).getEpochSecond(); | ||
for (int i = 0; i < doc[params.target].values.length; i++) { | ||
long age = timestamp - doc[params.target][i].getMillis() / 1000; | ||
result = Math.max(result, remap(age, params.map)); | ||
} | ||
return result; | ||
`, | ||
params: { | ||
target, | ||
timestamp, | ||
map: scoreMapper(map) | ||
} | ||
} | ||
} | ||
}) | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvYWN0aW9uLW1hcC9zY29yZS5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJhbmRvbSIsInNlZWQiLCJzY2FsZUZpZWxkIiwic2NyaXB0X3Njb3JlIiwic2NyaXB0IiwibGFuZyIsImlubGluZSIsInBhcmFtcyIsInNjYWxlX2ZpZWxkIiwiYm9vbCIsImYiLCJmaWVsZCIsImwiLCJyIiwic2NhbGVWYWx1ZSIsInNjYWxlX3ZhbHVlIiwiZGlzdGFuY2UiLCJsb2MiLCJvZmZzZXRJbk0iLCJzY2FsZUluTSIsImxvbiIsImxhdCIsIm9mZnNldCIsImRlY2F5Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDZkMsRUFBQUEsTUFBTSxFQUFFLENBQUNDLElBQUQsRUFBT0MsVUFBUCxNQUF1QjtBQUM3QkMsSUFBQUEsWUFBWSxFQUFFO0FBQ1pDLE1BQUFBLE1BQU0sRUFBRTtBQUNOQyxRQUFBQSxJQUFJLEVBQUUsVUFEQTtBQUVOQyxRQUFBQSxNQUFNLEVBQUc7Ozs7Ozs7Q0FGSDtBQVVOQyxRQUFBQSxNQUFNLEVBQUU7QUFDTk4sVUFBQUEsSUFETTtBQUVOTyxVQUFBQSxXQUFXLEVBQUVOLFVBRlAsQ0FFa0I7O0FBRmxCO0FBVkY7QUFESTtBQURlLEdBQXZCLENBRE87QUFvQmZPLEVBQUFBLElBQUksRUFBRUMsQ0FBQyxLQUFLO0FBQ1ZQLElBQUFBLFlBQVksRUFBRTtBQUNaQyxNQUFBQSxNQUFNLEVBQUU7QUFDTkMsUUFBQUEsSUFBSSxFQUFFLFVBREE7QUFFTkMsUUFBQUEsTUFBTSxFQUFFLHlEQUZGO0FBR05DLFFBQUFBLE1BQU0sRUFBRTtBQUNOSSxVQUFBQSxLQUFLLEVBQUVEO0FBREQ7QUFIRjtBQURJO0FBREosR0FBTCxDQXBCUTtBQStCZixRQUFNLENBQUNFLENBQUQsRUFBSUMsQ0FBSixFQUFPQyxVQUFVLEdBQUcsQ0FBcEIsS0FBMEI7QUFDOUJsQixJQUFBQSxNQUFNLENBQUMsT0FBT2tCLFVBQVAsS0FBc0IsUUFBdkIsQ0FBTjtBQUNBLFdBQU87QUFDTFgsTUFBQUEsWUFBWSxFQUFFO0FBQ1pDLFFBQUFBLE1BQU0sRUFBRTtBQUNOQyxVQUFBQSxJQUFJLEVBQUUsVUFEQTtBQUVOQyxVQUFBQSxNQUFNLEVBQUUsZ0ZBRkY7QUFHTkMsVUFBQUEsTUFBTSxFQUFFO0FBQ05LLFlBQUFBLENBRE07QUFFTkMsWUFBQUEsQ0FGTTtBQUdORSxZQUFBQSxXQUFXLEVBQUVEO0FBSFA7QUFIRjtBQURJO0FBRFQsS0FBUDtBQWFELEdBOUNjO0FBK0NmRSxFQUFBQSxRQUFRLEVBQUUsQ0FBQ0osQ0FBRCxFQUFJSyxHQUFKLEVBQVNDLFNBQVQsRUFBb0JDLFFBQVEsR0FBRyxJQUEvQixNQUF5QztBQUNqRGhCLElBQUFBLFlBQVksRUFBRTtBQUNaQyxNQUFBQSxNQUFNLEVBQUU7QUFDTkMsUUFBQUEsSUFBSSxFQUFFLFVBREE7QUFFTkMsUUFBQUEsTUFBTSxFQUFHO2lCQUNBLE9BQU9hLFFBQVAsS0FBb0IsUUFBcEIsR0FBK0JBLFFBQS9CLEdBQTBDLHNEQUF1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBSHBHO0FBeUJOWixRQUFBQSxNQUFNLEVBQUU7QUFDTkksVUFBQUEsS0FBSyxFQUFFQyxDQUREO0FBRU5RLFVBQUFBLEdBQUcsRUFBRUgsR0FBRyxDQUFDLENBQUQsQ0FGRjtBQUdOSSxVQUFBQSxHQUFHLEVBQUVKLEdBQUcsQ0FBQyxDQUFELENBSEY7QUFJTkssVUFBQUEsTUFBTSxFQUFFSixTQUpGO0FBS05WLFVBQUFBLFdBQVcsRUFBRVcsUUFMUDtBQU1OSSxVQUFBQSxLQUFLLEVBQUU7QUFORDtBQXpCRjtBQURJO0FBRG1DLEdBQXpDO0FBL0NLLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICByYW5kb206IChzZWVkLCBzY2FsZUZpZWxkKSA9PiAoe1xuICAgIHNjcmlwdF9zY29yZToge1xuICAgICAgc2NyaXB0OiB7XG4gICAgICAgIGxhbmc6ICdwYWlubGVzcycsXG4gICAgICAgIGlubGluZTogYFxuaW50IGEgPSBbZG9jWydpZCddLnZhbHVlLCBwYXJhbXMuc2VlZF0uaGFzaENvZGUoKTtcbmEgLT0gKGE8PDYpO2EgXj0gKGE+PjE3KTthIC09IChhPDw5KTthIF49IChhPDw0KTtcbmEgLT0gKGE8PDMpO2EgXj0gKGE8PDEwKTthIF49IChhPj4xNSk7XG5kb3VibGUgc2NhbGUgPSBDb2xsZWN0aW9ucy5tYXgoZG9jW3BhcmFtcy5zY2FsZV9maWVsZF0uZ2V0VmFsdWVzKCkpIC8gMTAwLjA7XG5kb3VibGUgdmFsdWUgPSAoTWF0aC5hYnMoYSkgLyAoZG91YmxlKUludGVnZXIuTUFYX1ZBTFVFKSAtIDAuNTtcbnJldHVybiBzY2FsZSAqIHZhbHVlXG5gLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBzZWVkLFxuICAgICAgICAgIHNjYWxlX2ZpZWxkOiBzY2FsZUZpZWxkIC8vIGFzIHBlcmNlbnRhZ2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSksXG4gIGJvb2w6IGYgPT4gKHtcbiAgICBzY3JpcHRfc2NvcmU6IHtcbiAgICAgIHNjcmlwdDoge1xuICAgICAgICBsYW5nOiAncGFpbmxlc3MnLFxuICAgICAgICBpbmxpbmU6ICdyZXR1cm4gZG9jW3BhcmFtcy5maWVsZF0udmFsdWVzLmNvbnRhaW5zKHRydWUpID8gMSA6IDA7JyxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgZmllbGQ6IGZcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSksXG4gICc9PSc6IChsLCByLCBzY2FsZVZhbHVlID0gMSkgPT4ge1xuICAgIGFzc2VydCh0eXBlb2Ygc2NhbGVWYWx1ZSA9PT0gJ251bWJlcicpO1xuICAgIHJldHVybiB7XG4gICAgICBzY3JpcHRfc2NvcmU6IHtcbiAgICAgICAgc2NyaXB0OiB7XG4gICAgICAgICAgbGFuZzogJ3BhaW5sZXNzJyxcbiAgICAgICAgICBpbmxpbmU6ICdyZXR1cm4gKGRvY1twYXJhbXMubF0udmFsdWVzLmNvbnRhaW5zKHBhcmFtcy5yKSA/IDEgOiAwKSAqIHBhcmFtcy5zY2FsZV92YWx1ZTsnLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIHIsXG4gICAgICAgICAgICBzY2FsZV92YWx1ZTogc2NhbGVWYWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIGRpc3RhbmNlOiAobCwgbG9jLCBvZmZzZXRJbk0sIHNjYWxlSW5NID0gbnVsbCkgPT4gKHtcbiAgICBzY3JpcHRfc2NvcmU6IHtcbiAgICAgIHNjcmlwdDoge1xuICAgICAgICBsYW5nOiAncGFpbmxlc3MnLFxuICAgICAgICBpbmxpbmU6IGBcbmRvdWJsZSBzY2FsZSA9ICR7dHlwZW9mIHNjYWxlSW5NID09PSAnbnVtYmVyJyA/IHNjYWxlSW5NIDogJ0NvbGxlY3Rpb25zLm1heChkb2NbcGFyYW1zLnNjYWxlX2ZpZWxkXS5nZXRWYWx1ZXMoKSknfTtcbmRvdWJsZSBsYW1iZGEgPSBNYXRoLmxvZyhwYXJhbXMuZGVjYXkpIC8gc2NhbGU7XG5kb3VibGUgc2NvcmUgPSBEb3VibGUuTUFYX1ZBTFVFO1xuZG91YmxlIGxhdDIgPSBwYXJhbXMubGF0O1xuZG91YmxlIGxvbjIgPSBwYXJhbXMubG9uO1xuZG91YmxlIFRPX01FVEVSUyA9IDYzNzEwMDguNzcxNEQ7XG5kb3VibGUgVE9fUkFESUFOUyA9IE1hdGguUEkgLyAxODBEO1xuZm9yIChpbnQgaSA9IDA7IGkgPCBkb2NbcGFyYW1zLmZpZWxkXS52YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgLy8gdG9kbzogaHR0cHM6Ly9naXRodWIuY29tL2VsYXN0aWMvZWxhc3RpY3NlYXJjaC9pc3N1ZXMvMjU3OTZcbiAgZG91YmxlIGxhdDEgPSBkb2NbcGFyYW1zLmZpZWxkXVtpXS5sYXQ7XG4gIGRvdWJsZSBsb24xID0gZG9jW3BhcmFtcy5maWVsZF1baV0ubG9uO1xuICBkb3VibGUgeDEgPSBsYXQxICogVE9fUkFESUFOUztcbiAgZG91YmxlIHgyID0gbGF0MiAqIFRPX1JBRElBTlM7XG4gIGRvdWJsZSBoMSA9IDEgLSBNYXRoLmNvcyh4MSAtIHgyKTtcbiAgZG91YmxlIGgyID0gMSAtIE1hdGguY29zKChsb24xIC0gbG9uMikgKiBUT19SQURJQU5TKTtcbiAgZG91YmxlIGggPSBoMSArIE1hdGguY29zKHgxKSAqIE1hdGguY29zKHgyKSAqIGgyO1xuICBkb3VibGUgZGlzdCA9IFRPX01FVEVSUyAqIDIgKiBNYXRoLmFzaW4oTWF0aC5taW4oMSwgTWF0aC5zcXJ0KGggKiAwLjUpKSk7XG4gIC8vIGh0dHA6Ly90aW55LmNjL3lscDJveVxuICBkb3VibGUgY3Njb3JlID0gTWF0aC5leHAobGFtYmRhICogTWF0aC5tYXgoMCwgZGlzdCAtIHBhcmFtcy5vZmZzZXQpKTtcbiAgc2NvcmUgPSBNYXRoLm1pbihzY29yZSwgY3Njb3JlKTtcbn1cbnJldHVybiBzY29yZTsgYCxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgZmllbGQ6IGwsXG4gICAgICAgICAgbG9uOiBsb2NbMF0sXG4gICAgICAgICAgbGF0OiBsb2NbMV0sXG4gICAgICAgICAgb2Zmc2V0OiBvZmZzZXRJbk0sXG4gICAgICAgICAgc2NhbGVfZmllbGQ6IHNjYWxlSW5NLFxuICAgICAgICAgIGRlY2F5OiAwLjVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSlcbn07XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvYWN0aW9uLW1hcC9zY29yZS5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwicmVtYXAiLCJzY29yZU1hcHBlciIsIm1hcCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInJlZHVjZSIsInAiLCJrIiwidiIsImNvbmNhdCIsIm1vZHVsZSIsImV4cG9ydHMiLCJyYW5kb20iLCJ0YXJnZXQiLCJzZWVkIiwic2NyaXB0X3Njb3JlIiwic2NyaXB0IiwibGFuZyIsImlubGluZSIsInBhcmFtcyIsInZhbHVlIiwiZGlzdGFuY2UiLCJsb2NhdGlvbiIsImxvbiIsImxhdCIsImFnZSIsInRpbWVzdGFtcCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFFQSxNQUFNQyxLQUFLLEdBQUk7Ozs7Ozs7OztDQUFmOztBQVVBLE1BQU1DLFdBQVcsR0FBSUMsR0FBRCxJQUFTO0FBQzNCSixFQUFBQSxNQUFNLENBQUNLLEtBQUssQ0FBQ0MsT0FBTixDQUFjRixHQUFkLEtBQXNCQSxHQUFHLENBQUNHLE1BQUosS0FBZSxDQUF0QyxDQUFOO0FBQ0EsU0FBT0gsR0FBRyxDQUFDSSxNQUFKLENBQVcsQ0FBQ0MsQ0FBRCxFQUFJLENBQUNDLENBQUQsRUFBSUMsQ0FBSixDQUFKLEtBQWVGLENBQUMsQ0FBQ0csTUFBRixDQUFTRixDQUFULEVBQVlDLENBQVosQ0FBMUIsRUFBMEMsRUFBMUMsQ0FBUDtBQUNELENBSEQ7O0FBS0FFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNmQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQ0MsTUFBRCxFQUFTQyxJQUFULEVBQWViLEdBQWYsTUFBd0I7QUFDOUJjLElBQUFBLFlBQVksRUFBRTtBQUNaQyxNQUFBQSxNQUFNLEVBQUU7QUFDTkMsUUFBQUEsSUFBSSxFQUFFLFVBREE7QUFFTkMsUUFBQUEsTUFBTSxFQUFHO0VBQ2ZuQixLQUFNOzs7Ozs7Q0FITTtBQVVOb0IsUUFBQUEsTUFBTSxFQUFFO0FBQ05OLFVBQUFBLE1BRE07QUFFTkMsVUFBQUEsSUFGTTtBQUdOYixVQUFBQSxHQUFHLEVBQUVELFdBQVcsQ0FBQ0MsR0FBRDtBQUhWO0FBVkY7QUFESTtBQURnQixHQUF4QixDQURPO0FBcUJmLFFBQU0sQ0FBQ1ksTUFBRCxFQUFTTyxLQUFULEVBQWdCbkIsR0FBaEIsTUFBeUI7QUFDN0JjLElBQUFBLFlBQVksRUFBRTtBQUNaQyxNQUFBQSxNQUFNLEVBQUU7QUFDTkMsUUFBQUEsSUFBSSxFQUFFLFVBREE7QUFFTkMsUUFBQUEsTUFBTSxFQUFHO0VBQ2ZuQixLQUFNOzs7Q0FITTtBQU9Ob0IsUUFBQUEsTUFBTSxFQUFFO0FBQ05OLFVBQUFBLE1BRE07QUFFTk8sVUFBQUEsS0FGTTtBQUdObkIsVUFBQUEsR0FBRyxFQUFFRCxXQUFXLENBQUNDLEdBQUQ7QUFIVjtBQVBGO0FBREk7QUFEZSxHQUF6QixDQXJCUztBQXNDZm9CLEVBQUFBLFFBQVEsRUFBRSxDQUFDUixNQUFELEVBQVNTLFFBQVQsRUFBbUJyQixHQUFuQixNQUE0QjtBQUNwQ2MsSUFBQUEsWUFBWSxFQUFFO0FBQ1pDLE1BQUFBLE1BQU0sRUFBRTtBQUNOQyxRQUFBQSxJQUFJLEVBQUUsVUFEQTtBQUVOQyxRQUFBQSxNQUFNLEVBQUc7RUFDZm5CLEtBQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FITTtBQXVCTm9CLFFBQUFBLE1BQU0sRUFBRTtBQUNOTixVQUFBQSxNQURNO0FBRU5VLFVBQUFBLEdBQUcsRUFBRUQsUUFBUSxDQUFDLENBQUQsQ0FGUDtBQUdORSxVQUFBQSxHQUFHLEVBQUVGLFFBQVEsQ0FBQyxDQUFELENBSFA7QUFJTnJCLFVBQUFBLEdBQUcsRUFBRUQsV0FBVyxDQUFDQyxHQUFEO0FBSlY7QUF2QkY7QUFESTtBQURzQixHQUE1QixDQXRDSztBQXdFZndCLEVBQUFBLEdBQUcsRUFBRSxDQUFDWixNQUFELEVBQVNhLFNBQVQsRUFBb0J6QixHQUFwQixNQUE2QjtBQUNoQ2MsSUFBQUEsWUFBWSxFQUFFO0FBQ1pDLE1BQUFBLE1BQU0sRUFBRTtBQUNOQyxRQUFBQSxJQUFJLEVBQUUsVUFEQTtBQUVOQyxRQUFBQSxNQUFNLEVBQUc7RUFDZm5CLEtBQU07Ozs7Ozs7O0NBSE07QUFZTm9CLFFBQUFBLE1BQU0sRUFBRTtBQUNOTixVQUFBQSxNQURNO0FBRU5hLFVBQUFBLFNBRk07QUFHTnpCLFVBQUFBLEdBQUcsRUFBRUQsV0FBVyxDQUFDQyxHQUFEO0FBSFY7QUFaRjtBQURJO0FBRGtCLEdBQTdCO0FBeEVVLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5cbmNvbnN0IHJlbWFwID0gYFxuZG91YmxlIHJlbWFwKGRlZiB2YWx1ZSwgZGVmIG1hcCkge1xuICBmb3IgKGludCBpID0gbWFwLmxlbmd0aCAtIDI7IGkgPj0gMDsgaSAtPSAyKSB7XG4gICAgaWYgKG1hcFtpXSA8PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIG1hcFtpICsgMV07XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXBbMV07XG59XG5gO1xuY29uc3Qgc2NvcmVNYXBwZXIgPSAobWFwKSA9PiB7XG4gIGFzc2VydChBcnJheS5pc0FycmF5KG1hcCkgJiYgbWFwLmxlbmd0aCAhPT0gMCk7XG4gIHJldHVybiBtYXAucmVkdWNlKChwLCBbaywgdl0pID0+IHAuY29uY2F0KGssIHYpLCBbXSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgcmFuZG9tOiAodGFyZ2V0LCBzZWVkLCBtYXApID0+ICh7XG4gICAgc2NyaXB0X3Njb3JlOiB7XG4gICAgICBzY3JpcHQ6IHtcbiAgICAgICAgbGFuZzogJ3BhaW5sZXNzJyxcbiAgICAgICAgaW5saW5lOiBgXG4ke3JlbWFwfVxuaW50IGEgPSBbZG9jW3BhcmFtcy50YXJnZXRdLnZhbHVlLCBwYXJhbXMuc2VlZF0uaGFzaENvZGUoKTtcbmEgLT0gKGE8PDYpO2EgXj0gKGE+PjE3KTthIC09IChhPDw5KTthIF49IChhPDw0KTtcbmEgLT0gKGE8PDMpO2EgXj0gKGE8PDEwKTthIF49IChhPj4xNSk7XG5kb3VibGUgcmVzdWx0ID0gKE1hdGguYWJzKGEpIC8gKGRvdWJsZSlJbnRlZ2VyLk1BWF9WQUxVRSkgLSAwLjU7XG5yZXR1cm4gcmVtYXAocmVzdWx0LCBwYXJhbXMubWFwKTtcbmAsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICBzZWVkLFxuICAgICAgICAgIG1hcDogc2NvcmVNYXBwZXIobWFwKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KSxcbiAgJz09JzogKHRhcmdldCwgdmFsdWUsIG1hcCkgPT4gKHtcbiAgICBzY3JpcHRfc2NvcmU6IHtcbiAgICAgIHNjcmlwdDoge1xuICAgICAgICBsYW5nOiAncGFpbmxlc3MnLFxuICAgICAgICBpbmxpbmU6IGBcbiR7cmVtYXB9XG5pbnQgcmVzdWx0ID0gZG9jW3BhcmFtcy50YXJnZXRdLnZhbHVlcy5jb250YWlucyhwYXJhbXMudmFsdWUpID8gMSA6IDA7XG5yZXR1cm4gcmVtYXAocmVzdWx0LCBwYXJhbXMubWFwKTtcbmAsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBtYXA6IHNjb3JlTWFwcGVyKG1hcClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSksXG4gIGRpc3RhbmNlOiAodGFyZ2V0LCBsb2NhdGlvbiwgbWFwKSA9PiAoe1xuICAgIHNjcmlwdF9zY29yZToge1xuICAgICAgc2NyaXB0OiB7XG4gICAgICAgIGxhbmc6ICdwYWlubGVzcycsXG4gICAgICAgIGlubGluZTogYFxuJHtyZW1hcH1cbmRvdWJsZSByZXN1bHQgPSAwO1xuZG91YmxlIGxhdDIgPSBwYXJhbXMubGF0O1xuZG91YmxlIGxvbjIgPSBwYXJhbXMubG9uO1xuZG91YmxlIFRPX01FVEVSUyA9IDYzNzEwMDguNzcxNEQ7XG5kb3VibGUgVE9fUkFESUFOUyA9IE1hdGguUEkgLyAxODBEO1xuZm9yIChpbnQgaSA9IDA7IGkgPCBkb2NbcGFyYW1zLnRhcmdldF0udmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gIC8vIHRvZG86IGh0dHBzOi8vZ2l0aHViLmNvbS9lbGFzdGljL2VsYXN0aWNzZWFyY2gvaXNzdWVzLzI1Nzk2XG4gIGRvdWJsZSBsYXQxID0gZG9jW3BhcmFtcy50YXJnZXRdW2ldLmxhdDtcbiAgZG91YmxlIGxvbjEgPSBkb2NbcGFyYW1zLnRhcmdldF1baV0ubG9uO1xuICBkb3VibGUgeDEgPSBsYXQxICogVE9fUkFESUFOUztcbiAgZG91YmxlIHgyID0gbGF0MiAqIFRPX1JBRElBTlM7XG4gIGRvdWJsZSBoMSA9IDEgLSBNYXRoLmNvcyh4MSAtIHgyKTtcbiAgZG91YmxlIGgyID0gMSAtIE1hdGguY29zKChsb24xIC0gbG9uMikgKiBUT19SQURJQU5TKTtcbiAgZG91YmxlIGggPSBoMSArIE1hdGguY29zKHgxKSAqIE1hdGguY29zKHgyKSAqIGgyO1xuICBkb3VibGUgZGlzdCA9IFRPX01FVEVSUyAqIDIgKiBNYXRoLmFzaW4oTWF0aC5taW4oMSwgTWF0aC5zcXJ0KGggKiAwLjUpKSk7XG4gIHJlc3VsdCA9IE1hdGgubWF4KHJlc3VsdCwgcmVtYXAoZGlzdCwgcGFyYW1zLm1hcCkpO1xufVxucmV0dXJuIHJlc3VsdDtcbmAsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICBsb246IGxvY2F0aW9uWzBdLFxuICAgICAgICAgIGxhdDogbG9jYXRpb25bMV0sXG4gICAgICAgICAgbWFwOiBzY29yZU1hcHBlcihtYXApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLFxuICBhZ2U6ICh0YXJnZXQsIHRpbWVzdGFtcCwgbWFwKSA9PiAoe1xuICAgIHNjcmlwdF9zY29yZToge1xuICAgICAgc2NyaXB0OiB7XG4gICAgICAgIGxhbmc6ICdwYWlubGVzcycsXG4gICAgICAgIGlubGluZTogYFxuJHtyZW1hcH1cbmRvdWJsZSByZXN1bHQgPSAwO1xubG9uZyB0aW1lc3RhbXAgPSBJbnN0YW50LnBhcnNlKHBhcmFtcy50aW1lc3RhbXApLmdldEVwb2NoU2Vjb25kKCk7XG5mb3IgKGludCBpID0gMDsgaSA8IGRvY1twYXJhbXMudGFyZ2V0XS52YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgbG9uZyBhZ2UgPSB0aW1lc3RhbXAgLSBkb2NbcGFyYW1zLnRhcmdldF1baV0uZ2V0TWlsbGlzKCkgLyAxMDAwO1xuICByZXN1bHQgPSBNYXRoLm1heChyZXN1bHQsIHJlbWFwKGFnZSwgcGFyYW1zLm1hcCkpO1xufVxucmV0dXJuIHJlc3VsdDtcbmAsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICB0aW1lc3RhbXAsXG4gICAgICAgICAgbWFwOiBzY29yZU1hcHBlcihtYXApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG59O1xuIl19 |
{ | ||
"name": "es-alchemy", | ||
"version": "3.4.5", | ||
"version": "4.0.0", | ||
"description": "Simplification of Elasticsearch interactions", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
161949
985