@enonic/js-utils
Version:
Enonic XP JavaScript Utils
1,073 lines (1,072 loc) • 37.1 kB
JavaScript
;
function _instanceof(left, right) {
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
return !!right[Symbol.hasInstance](left);
} else {
return left instanceof right;
}
}
function _type_of(obj) {
"@swc/helpers - typeof";
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
}
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = function(target, all) {
for(var name in all)__defProp(target, name, {
get: all[name],
enumerable: true
});
};
var __copyProps = function(to, from, except, desc) {
if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
try {
var _loop = function() {
var key = _step.value;
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
get: function() {
return from[key];
},
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
};
for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally{
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally{
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
return to;
};
var __toCommonJS = function(mod) {
return __copyProps(__defProp({}, "__esModule", {
value: true
}), mod);
};
// storage/query/index.ts
var query_exports = {};
__export(query_exports, {
DSL_EXPRESSION_VALUE_TYPE_DATE_TIME: function() {
return DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2;
},
DSL_EXPRESSION_VALUE_TYPE_TIME: function() {
return DSL_EXPRESSION_VALUE_TYPE_TIME2;
},
FILTER_CLAUSES: function() {
return FILTER_CLAUSES;
},
FILTER_CLAUSE_MUST: function() {
return FILTER_CLAUSE_MUST;
},
FILTER_CLAUSE_MUST_NOT: function() {
return FILTER_CLAUSE_MUST_NOT;
},
FILTER_CLAUSE_SHOULD: function() {
return FILTER_CLAUSE_SHOULD;
},
QUERY_FUNCTION_FULLTEXT: function() {
return QUERY_FUNCTION_FULLTEXT;
},
QUERY_FUNCTION_NGRAM: function() {
return QUERY_FUNCTION_NGRAM;
},
QUERY_FUNCTION_PATH_MATCH: function() {
return QUERY_FUNCTION_PATH_MATCH;
},
QUERY_FUNCTION_RANGE: function() {
return QUERY_FUNCTION_RANGE;
},
QUERY_FUNCTION_STEMMED: function() {
return QUERY_FUNCTION_STEMMED;
},
QUERY_OPERATOR_AND: function() {
return QUERY_OPERATOR_AND;
},
QUERY_OPERATOR_OR: function() {
return QUERY_OPERATOR_OR;
},
SORT_CREATED: function() {
return SORT_CREATED;
},
SORT_DISPLAYNAME: function() {
return SORT_DISPLAYNAME;
},
SORT_MANUAL: function() {
return SORT_MANUAL;
},
SORT_MODIFIED: function() {
return SORT_MODIFIED;
},
addQueryFilter: function() {
return addQueryFilter;
},
aggregation: function() {
return aggregation_exports;
},
and: function() {
return and2;
},
dsl: function() {
return dsl_exports;
},
filter: function() {
return filter_exports;
},
fulltext: function() {
return fulltext2;
},
group: function() {
return group;
},
isBooleanDslExpression: function() {
return isBooleanDslExpression_default;
},
isBooleanFilter: function() {
return isBooleanFilter;
},
isExistsDslExpression: function() {
return isExistsDslExpression;
},
isExistsFilter: function() {
return isExistsFilter;
},
isFilter: function() {
return isFilter;
},
isFulltextDslExpression: function() {
return isFulltextDslExpression;
},
isHasValueFilter: function() {
return isHasValueFilter;
},
isIdsFilter: function() {
return isIdsFilter;
},
isInDslExpression: function() {
return isInDslExpression;
},
isLikeDslExpression: function() {
return isLikeDslExpression;
},
isMatchAllDslExpression: function() {
return isMatchAllDslExpression;
},
isNgramDslExpression: function() {
return isNgramDslExpression;
},
isNotExistsFilter: function() {
return isNotExistsFilter;
},
isPathMatchDslExpression: function() {
return isPathMatchDslExpression;
},
isQueryDsl: function() {
return isQueryDsl;
},
isRangeDslExpression: function() {
return isRangeDslExpression;
},
isStemmedDslExpression: function() {
return isStemmedDslExpression;
},
isTermDslExpression: function() {
return isTermDslExpression;
},
ngram: function() {
return ngram2;
},
or: function() {
return or2;
},
stemmed: function() {
return stemmed2;
}
});
module.exports = __toCommonJS(query_exports);
// storage/query/aggregation/index.ts
var aggregation_exports = {};
__export(aggregation_exports, {
stats: function() {
return stats;
},
statsParams: function() {
return statsParams;
},
terms: function() {
return terms;
},
termsParams: function() {
return termsParams;
}
});
// storage/query/aggregation/stats.ts
function statsParams(field) {
var stats2 = {
field: field
};
return stats2;
}
function stats(field) {
var statsAggregation = {
stats: statsParams(field)
};
return statsAggregation;
}
// value/isBasicObject.ts
var isBasicObject = function(value) {
return (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object";
};
// value/isDate.ts
function isDate(value) {
return Object.prototype.toString.call(value).slice(8, -1) === "Date";
}
// value/isFunction.ts
function isFunction(value) {
return Object.prototype.toString.call(value).slice(8, -1) === "Function";
}
// value/isNumber.ts
function isNumber(value) {
return typeof value === "number" && isFinite(value);
}
// value/isStringLiteral.ts
var isStringLiteral = function(value) {
return typeof value === "string";
};
// value/isStringObject.ts
var isStringObject = function(value) {
return _instanceof(value, String);
};
// value/isString.ts
var isString = function(value) {
return isStringLiteral(value) || isStringObject(value);
};
// value/isInt.ts
function isInt(value) {
return typeof value === "number" && isFinite(value) && // TODO Is isFinite() available in Enonic XP?
Math.floor(value) === value;
}
// value/isInteger.ts
var isInteger = "isInteger" in Number && isFunction(Number.isInteger) ? Number.isInteger : isInt;
// value/isObject.ts
var isObject = function(value) {
return Object.prototype.toString.call(value).slice(8, -1) === "Object";
};
// value/isSymbol.ts
var isSymbol = function(value) {
return (typeof value === "undefined" ? "undefined" : _type_of(value)) === "symbol";
};
// value/isPropertyKey.ts
var isPropertyKey = function(value) {
return isString(value) || isNumber(value) || isSymbol(value);
};
// value/isSet.ts
function isSet(value) {
if (typeof value === "boolean") {
return true;
}
return value !== null && typeof value !== "undefined";
}
// value/toStr.ts
function toStr(value, replacer) {
var space = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 4;
return JSON.stringify(value, replacer, space);
}
// storage/query/aggregation/terms.ts
function termsParams(field, order, size, minDocCount) {
var terms2 = {
field: field
};
if (order) {
terms2.order = order;
}
if (size) {
terms2.size = size;
}
if (minDocCount) {
terms2.minDocCount = minDocCount;
}
return terms2;
}
function terms(field) {
for(var _len = arguments.length, optionalArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
optionalArgs[_key - 1] = arguments[_key];
}
var order;
var size;
var minDocCount;
var aggregations;
for(var i = 0; i < optionalArgs.length; i++){
var optinalArg = optionalArgs[i];
if (isString(optinalArg)) {
if (order) {
throw new Error("terms: You can only provide one optional order parameter!");
}
order = optinalArg;
} else if (isNumber(optinalArg)) {
if (isSet(minDocCount)) {
throw new Error("terms: You can only provide one or two optional number parameters!");
}
if (isSet(size)) {
minDocCount = optinalArg;
} else {
size = optinalArg;
}
} else if (isObject(optinalArg)) {
if (aggregations) {
throw new Error("terms: You can only provide one optional aggregations parameter!");
}
aggregations = optinalArg;
} else {
throw new Error("terms: Unknown optional parameter type!");
}
}
var termsAggregation = {
terms: termsParams(field, order, size, minDocCount)
};
if (aggregations) {
termsAggregation.aggregations = aggregations;
}
return termsAggregation;
}
// storage/query/dsl/index.ts
var dsl_exports = {};
__export(dsl_exports, {
DSL_EXPRESSION_VALUE_TYPE_DATE_TIME: function() {
return DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2;
},
DSL_EXPRESSION_VALUE_TYPE_TIME: function() {
return DSL_EXPRESSION_VALUE_TYPE_TIME2;
},
and: function() {
return and;
},
bool: function() {
return bool;
},
fulltext: function() {
return fulltext;
},
inQuery: function() {
return inQuery;
},
isBooleanDslExpression: function() {
return isBooleanDslExpression_default;
},
isExistsDslExpression: function() {
return isExistsDslExpression;
},
isFulltextDslExpression: function() {
return isFulltextDslExpression;
},
isInDslExpression: function() {
return isInDslExpression;
},
isLikeDslExpression: function() {
return isLikeDslExpression;
},
isMatchAllDslExpression: function() {
return isMatchAllDslExpression;
},
isNgramDslExpression: function() {
return isNgramDslExpression;
},
isPathMatchDslExpression: function() {
return isPathMatchDslExpression;
},
isQueryDsl: function() {
return isQueryDsl;
},
isRangeDslExpression: function() {
return isRangeDslExpression;
},
isStemmedDslExpression: function() {
return isStemmedDslExpression;
},
isTermDslExpression: function() {
return isTermDslExpression;
},
like: function() {
return like;
},
must: function() {
return must;
},
mustNot: function() {
return mustNot;
},
ngram: function() {
return ngram;
},
not: function() {
return not;
},
or: function() {
return or;
},
pathMatch: function() {
return pathMatch;
},
range: function() {
return range;
},
should: function() {
return should;
},
sort: function() {
return sort;
},
stemmed: function() {
return stemmed;
},
term: function() {
return term;
}
});
// object/hasOwnProperty.ts
function hasOwnProperty(obj, propKey) {
if (!isBasicObject(obj)) {
throw new Error("First parameter to hasOwnProperty must be a basic Object! ".concat(toStr(obj)));
}
if (!isPropertyKey(propKey)) {
throw new Error("Second parameter to hasOwnProperty must be a PropertyKey (string|number|symbol)! ".concat(toStr(propKey)));
}
return obj.hasOwnProperty(propKey);
}
// array/forceArray.ts
function forceArray(data) {
return Array.isArray(data) ? data : [
data
];
}
// storage/query/dsl/isDslQueryType.ts
var DSL_EXPRESSION_VALUE_TYPE_DATE_TIME = "dateTime";
var DSL_EXPRESSION_VALUE_TYPE_TIME = "time";
function isDslQueryType(value) {
return isString(value) && (value === DSL_EXPRESSION_VALUE_TYPE_DATE_TIME || value === DSL_EXPRESSION_VALUE_TYPE_TIME);
}
// storage/query/dsl/isInDslExpression.ts
function isInDslExpression(value) {
return isObject(value) && hasOwnProperty(value, "field") && hasOwnProperty(value, "values") && isString(value.field) && Array.isArray(value.values) && (hasOwnProperty(value, "type") ? isDslQueryType(value.type) : true) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
// storage/query/dsl/isExistsDslExpression.ts
function isExistsDslExpression(value) {
return isObject(value) && hasOwnProperty(value, "field") && isString(value.field) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
// array/includes.ts
function sameValueZero(x, y) {
return x === y || typeof x === "number" && typeof y === "number" && isNaN(x) && isNaN(y);
}
function includes(array, searchElement) {
var fromIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
if (array == null) {
throw new TypeError('"array" is null or not defined');
}
var o = Object(array);
var len = o.length >>> 0;
if (len === 0) {
return false;
}
var n = fromIndex | 0;
var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
while(k < len){
if (sameValueZero(o[k], searchElement)) {
return true;
}
k++;
}
return false;
}
// storage/query/constants.ts
var FILTER_CLAUSE_MUST = "must";
var FILTER_CLAUSE_MUST_NOT = "mustNot";
var FILTER_CLAUSE_SHOULD = "should";
var FILTER_CLAUSES = [
FILTER_CLAUSE_MUST,
FILTER_CLAUSE_MUST_NOT,
FILTER_CLAUSE_SHOULD
];
var QUERY_FUNCTION_FULLTEXT = "fulltext";
var QUERY_FUNCTION_NGRAM = "ngram";
var QUERY_FUNCTION_RANGE = "range";
var QUERY_FUNCTION_PATH_MATCH = "pathMatch";
var QUERY_FUNCTION_STEMMED = "stemmed";
var QUERY_OPERATOR_AND = "AND";
var QUERY_OPERATOR_OR = "OR";
var QUERY_OPERATORS = [
QUERY_OPERATOR_AND,
QUERY_OPERATOR_OR
];
// storage/query/dsl/isDslOperator.ts
function isDslOperator(value) {
return isString(value) && includes(QUERY_OPERATORS, value);
}
// storage/query/dsl/isFulltextDslExpression.ts
function isFulltextDslExpression(value) {
return isObject(value) && hasOwnProperty(value, "fields") && hasOwnProperty(value, "query") && Array.isArray(value.fields) && value.fields.every(isString) && isString(value.query) && (hasOwnProperty(value, "operator") ? isDslOperator(value.operator) : true) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
// storage/query/dsl/isLikeDslExpression.ts
function isLikeDslExpression(value) {
return isObject(value) && hasOwnProperty(value, "field") && hasOwnProperty(value, "value") && isString(value.field) && isString(value.value) && (hasOwnProperty(value, "type") ? isDslQueryType(value.type) : true) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
// storage/query/dsl/isMatchAllDslExpression.ts
function isMatchAllDslExpression(value) {
return isObject(value) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
// storage/query/dsl/isNgramDslExpression.ts
function isNgramDslExpression(value) {
return isFulltextDslExpression(value);
}
// storage/query/dsl/isPathMatchDslExpression.ts
function isPathMatchDslExpression(value) {
return isObject(value) && hasOwnProperty(value, "field") && hasOwnProperty(value, "path") && isString(value.field) && isString(value.path) && (hasOwnProperty(value, "minimumMatch") ? isNumber(value.minimumMatch) : true) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
// storage/query/dsl/isRangeDslExpression.ts
function isRangeDslExpression(value) {
return isObject(value) && hasOwnProperty(value, "field") && isString(value.field) && [
"lt",
"lte",
"gt",
"gte"
].some(function(key) {
return hasOwnProperty(value, key);
}) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
// storage/query/dsl/isStemmedDslExpression.ts
function isStemmedDslExpression(value) {
return isObject(value) && hasOwnProperty(value, "fields") && hasOwnProperty(value, "language") && hasOwnProperty(value, "query") && Array.isArray(value.fields) && value.fields.every(isString) && isString(value.language) && isString(value.query) && (hasOwnProperty(value, "operator") ? isDslOperator(value.operator) : true) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
// storage/query/dsl/isTermDslExpression.ts
function isTermDslExpression(value) {
return isObject(value) && hasOwnProperty(value, "field") && hasOwnProperty(value, "value") && isString(value.field) && (hasOwnProperty(value, "type") ? isDslQueryType(value.type) : true) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
// storage/query/dsl/isQueryDsl.ts
var COMPOUND_PROPERTIES = [
"must",
"mustNot",
"should",
"filter"
];
function isBooleanDslExpression(value) {
return isObject(value) && COMPOUND_PROPERTIES.every(function(prop) {
return hasOwnProperty(value, prop) ? forceArray(value[prop]).every(function(item) {
return isQueryDsl(item);
}) : true;
}) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true);
}
function isQueryDsl(value) {
return isObject(value) && (hasOwnProperty(value, "boolean") && isBooleanDslExpression(value.boolean) || hasOwnProperty(value, "exists") && isExistsDslExpression(value.exists) || hasOwnProperty(value, "fulltext") && isFulltextDslExpression(value.fulltext) || hasOwnProperty(value, "in") && isInDslExpression(value.in) || hasOwnProperty(value, "like") && isLikeDslExpression(value.like) || hasOwnProperty(value, "matchAll") && isMatchAllDslExpression(value.matchAll) || hasOwnProperty(value, "ngram") && isNgramDslExpression(value.ngram) || hasOwnProperty(value, "pathMatch") && isPathMatchDslExpression(value.pathMatch) || hasOwnProperty(value, "range") && isRangeDslExpression(value.range) || hasOwnProperty(value, "stemmed") && isStemmedDslExpression(value.stemmed) || hasOwnProperty(value, "term") && isTermDslExpression(value.term));
}
// storage/query/dsl/isBooleanDslExpression.ts
var isBooleanDslExpression_default = isBooleanDslExpression;
// array/flatten.ts
function flatten(arr) {
var d = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1;
return d > 0 ? arr.reduce(function(acc, val) {
return acc.concat(Array.isArray(val) ? flatten(val, d - 1) : val);
}, []) : arr.slice();
}
// storage/query/dsl/and.ts
function and() {
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
args[_key] = arguments[_key];
}
var flattened = flatten(args);
return {
must: flattened
};
}
var must = and;
// storage/query/dsl/bool.ts
function bool(compoundExpression) {
return {
boolean: compoundExpression
};
}
// string/includes.ts
function includes2(string, searchString, position) {
if (_instanceof(searchString, RegExp)) {
throw new TypeError("second argument must not be a RegExp");
}
if (position === void 0) {
position = 0;
}
return string.indexOf(searchString, position) !== -1;
}
// storage/query/buildFields.ts
function buildFieldsArray(fields) {
return forceArray(fields).map(function(stringOrObj) {
var boost;
var field;
if (isObject(stringOrObj)) {
boost = stringOrObj.boost || void 0;
field = stringOrObj.field;
} else {
field = stringOrObj;
}
return "".concat(field).concat(boost && boost !== 1 ? "^".concat(boost) : "");
});
}
function buildFields(fields) {
return "'".concat(buildFieldsArray(fields).join(","), "'");
}
// storage/query/dsl/fieldsContainBoost.ts
function fieldsContainBoost(fields) {
if (Array.isArray(fields)) {
return fields.some(function(field) {
return fieldsContainBoost(field);
});
} else if (isObject(fields)) {
var boost = fields.boost;
if (boost && boost !== 1) {
return true;
}
} else if (isString(fields)) {
if (includes2(fields, "^")) {
return true;
}
} else {
throw new Error("fieldsContainBoost: fields is not array, object or string!");
}
return false;
}
// storage/query/dsl/or.ts
function or() {
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
args[_key] = arguments[_key];
}
var flattened = flatten(args);
return {
should: flattened
};
}
var should = or;
// storage/query/dsl/fulltextOrNgram.ts
function fulltextOrNgram(fOrN, fields, query) {
var operator = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : QUERY_OPERATOR_OR, boost = arguments.length > 4 ? arguments[4] : void 0;
if (fieldsContainBoost(fields)) {
if (Array.isArray(fields)) {
return bool(or(fields.map(function(field) {
return fulltextOrNgram(fOrN, field, query, operator, boost);
})));
} else if (isObject(fields)) {
var fieldBoost = fields.boost, field = fields.field;
if (fieldBoost && fieldBoost !== 1) {
if (boost && boost !== 1) {
boost = boost * fieldBoost;
} else {
boost = fieldBoost;
}
}
return fulltextOrNgram(fOrN, field, query, operator, boost);
} else if (isString(fields)) {
if (includes2(fields, ",")) {
return fulltextOrNgram(fOrN, fields.split(","), query, operator, boost);
} else if (includes2(fields, "^")) {
var caretIndex = fields.indexOf("^");
var field1 = fields.substring(0, caretIndex);
var fieldBoost1 = parseFloat(fields.substring(caretIndex + 1));
if (fieldBoost1 && fieldBoost1 !== 1) {
if (boost && boost !== 1) {
boost = boost * fieldBoost1;
} else {
boost = fieldBoost1;
}
}
return fulltextOrNgram(fOrN, field1, query, operator, boost);
}
} else {
throw new Error("".concat(fOrN, ": fields is not array, object or string!"));
}
}
var innerObj = {
fields: buildFieldsArray(fields),
query: query,
operator: operator.toUpperCase()
};
if (boost && boost !== 1) {
innerObj.boost = boost;
}
if (fOrN === "fulltext") {
return {
fulltext: innerObj
};
} else if (fOrN === "ngram") {
return {
ngram: innerObj
};
}
throw new Error("first parameter must be 'fulltext' or 'ngram'");
}
// storage/query/dsl/fulltext.ts
function fulltext(fields, query) {
var operator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : QUERY_OPERATOR_OR, boost = arguments.length > 3 ? arguments[3] : void 0;
return fulltextOrNgram("fulltext", fields, query, operator, boost);
}
// storage/query/dsl/term.ts
var DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2 = "dateTime";
var DSL_EXPRESSION_VALUE_TYPE_TIME2 = "time";
function term(field, value, boost, type) {
var term2 = {
field: field,
value: value
};
if (boost) {
term2.boost = boost;
}
if (type === DSL_EXPRESSION_VALUE_TYPE_TIME2 || type === DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2) {
term2.type = type;
}
return {
term: term2
};
}
// storage/query/dsl/inQuery.ts
function inQuery(field, values, boost, type) {
var obj = {
field: field,
values: values
};
if (boost) {
obj.boost = boost;
}
if (type === DSL_EXPRESSION_VALUE_TYPE_TIME2 || type === DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2) {
obj.type = type;
}
return {
in: obj
};
}
// storage/query/dsl/like.ts
function like(field, value, boost, type) {
var like2 = {
field: field,
value: value
};
if (boost) {
like2.boost = boost;
}
if (type === DSL_EXPRESSION_VALUE_TYPE_TIME2 || type === DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2) {
like2.type = type;
}
return {
like: like2
};
}
// storage/query/dsl/ngram.ts
function ngram(fields, query) {
var operator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : QUERY_OPERATOR_OR, boost = arguments.length > 3 ? arguments[3] : void 0;
return fulltextOrNgram("ngram", fields, query, operator, boost);
}
// storage/query/dsl/not.ts
function not() {
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
args[_key] = arguments[_key];
}
var flattened = flatten(args);
return {
mustNot: flattened
};
}
var mustNot = not;
// storage/query/dsl/pathMatch.ts
function pathMatch(field, path, minimumMatch, boost) {
var pathMatch2 = {
field: field,
path: path
};
if (minimumMatch) {
pathMatch2.minimumMatch = minimumMatch;
}
if (boost) {
pathMatch2.boost = boost;
}
return {
pathMatch: pathMatch2
};
}
// storage/query/dsl/range.ts
function ifDateCastToISOString(v) {
if (isDate(v)) {
return v.toISOString();
}
return v;
}
function range(field) {
var limits = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, boost = arguments.length > 2 ? arguments[2] : void 0, type = arguments.length > 3 ? arguments[3] : void 0;
var range2 = {
field: field
};
if (limits.gt) {
range2.gt = ifDateCastToISOString(limits.gt);
}
if (limits.gte) {
range2.gte = ifDateCastToISOString(limits.gte);
}
if (limits.lt) {
range2.lt = ifDateCastToISOString(limits.lt);
}
if (limits.lte) {
range2.lte = ifDateCastToISOString(limits.lte);
}
if (boost) {
range2.boost = boost;
}
if (type === DSL_EXPRESSION_VALUE_TYPE_TIME2 || type === DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2) {
range2.type = type;
}
return {
range: range2
};
}
// storage/indexing/stemming.ts
var STEMMING_LANGUAGE_CODE_ENGLISH = "en";
// storage/query/dsl/stemmed.ts
function stemmed(fields, query) {
var operator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : QUERY_OPERATOR_OR, language = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : STEMMING_LANGUAGE_CODE_ENGLISH, boost = arguments.length > 4 ? arguments[4] : void 0;
if (fieldsContainBoost(fields)) {
if (Array.isArray(fields)) {
return bool(or(fields.map(function(field) {
return stemmed(field, query, operator, language, boost);
})));
} else if (isObject(fields)) {
var fieldBoost = fields.boost, field = fields.field;
if (fieldBoost && fieldBoost !== 1) {
if (boost && boost !== 1) {
boost = boost * fieldBoost;
} else {
boost = fieldBoost;
}
}
return stemmed(field, query, operator, language, boost);
} else if (isString(fields)) {
if (includes2(fields, ",")) {
return stemmed(fields.split(","), query, operator, language, boost);
} else if (includes2(fields, "^")) {
var caretIndex = fields.indexOf("^");
var field1 = fields.substring(0, caretIndex);
var fieldBoost1 = parseFloat(fields.substring(caretIndex + 1));
if (fieldBoost1 && fieldBoost1 !== 1) {
if (boost && boost !== 1) {
boost = boost * fieldBoost1;
} else {
boost = fieldBoost1;
}
}
return stemmed(field1, query, operator, language, boost);
}
} else {
throw new Error("stemmed: fields is not array, object or string!");
}
}
var innerObj = {
fields: buildFieldsArray(fields),
query: query,
operator: operator.toUpperCase(),
language: language
};
if (boost) {
innerObj.boost = boost;
}
return {
stemmed: innerObj
};
}
// storage/query/sort.ts
var ASC = "ASC";
var DESC = "DESC";
var SORT_CREATED = "createdTime ".concat(DESC);
var SORT_DISPLAYNAME = "displayName ".concat(ASC);
var SORT_MANUAL = "_manualordervalue ".concat(DESC, ", _timestamp ").concat(DESC);
var SORT_MODIFIED = "modifiedTime ".concat(DESC);
function isDirection(s) {
return s === ASC || s === DESC;
}
// storage/query/dsl/sort.ts
function sort() {
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
args[_key] = arguments[_key];
}
var sort2 = [];
var param = {};
for(var i = 0; i < args.length; i++){
var arg = args[i];
if (isDirection(arg)) {
if (!param.field || param.direction) {
throw new Error("sort: direction:".concat(arg, " is optional, but must come after field parameter!"));
}
param.direction = arg;
} else {
if (param.field) {
sort2.push(JSON.parse(JSON.stringify(param)));
param = {
field: arg
};
} else {
param.field = arg;
}
}
if (i === args.length - 1) {
sort2.push(param);
}
}
return sort2.length === 1 ? sort2[0] : sort2;
}
// storage/query/filter/index.ts
var filter_exports = {};
__export(filter_exports, {
isBooleanFilter: function() {
return isBooleanFilter;
},
isExistsFilter: function() {
return isExistsFilter;
},
isFilter: function() {
return isFilter;
},
isHasValueFilter: function() {
return isHasValueFilter;
},
isIdsFilter: function() {
return isIdsFilter;
},
isNotExistsFilter: function() {
return isNotExistsFilter;
}
});
// storage/query/filter/isExistsFilter.ts
function isExistsFilter(value) {
return isObject(value) && hasOwnProperty(value, "exists") && isObject(value.exists) && hasOwnProperty(value.exists, "field") && isString(value.exists.field);
}
// storage/query/filter/isHasValueFilter.ts
function isHasValueFilter(value) {
return isObject(value) && hasOwnProperty(value, "hasValue") && isObject(value.hasValue) && hasOwnProperty(value.hasValue, "field") && isString(value.hasValue.field) && hasOwnProperty(value.hasValue, "values") && Array.isArray(value.hasValue.values);
}
// storage/query/filter/isIdsFilter.ts
function isIdsFilter(value) {
return isObject(value) && hasOwnProperty(value, "ids") && isObject(value.ids) && hasOwnProperty(value.ids, "values") && Array.isArray(value.ids.values) && value.ids.values.every(function(v) {
return isString(v);
});
}
// storage/query/filter/isNotExistsFilter.ts
function isNotExistsFilter(value) {
return isObject(value) && hasOwnProperty(value, "notExists") && isObject(value.notExists) && hasOwnProperty(value.notExists, "field") && isString(value.notExists.field);
}
// storage/query/filter/isBooleanFilter.ts
function isBooleanFilter(value) {
return isObject(value) && hasOwnProperty(value, "boolean") && isObject(value.boolean) && FILTER_CLAUSES.every(function(clause) {
var obj = value.boolean;
if (hasOwnProperty(obj, clause)) {
var oneOrMoreFilter = obj[clause];
if (Array.isArray(oneOrMoreFilter)) {
for(var i = 0; i < oneOrMoreFilter.length; i++){
var item = oneOrMoreFilter[i];
if (!isFilter(item)) {
return false;
}
}
} else if (!isFilter(oneOrMoreFilter)) {
return false;
}
}
return true;
});
}
function isFilter(value) {
return isBooleanFilter(value) || isExistsFilter(value) || isNotExistsFilter(value) || isHasValueFilter(value) || isIdsFilter(value);
}
// storage/query/addQueryFilter.ts
function addQueryFilter(param) {
var _param_clause = param.clause, clause = _param_clause === void 0 ? FILTER_CLAUSE_MUST : _param_clause, filter = param.filter, incomingFilters = param.filters;
var returnedFilters = incomingFilters ? JSON.parse(JSON.stringify(incomingFilters)) : {};
if (Array.isArray(returnedFilters)) {
returnedFilters.push(addQueryFilter({
clause: clause,
filter: filter
}));
return returnedFilters;
}
if (!isExistsFilter(returnedFilters) && !isNotExistsFilter(returnedFilters) && !isHasValueFilter(returnedFilters) && !isIdsFilter(returnedFilters)) {
if (!returnedFilters.boolean) {
returnedFilters.boolean = {};
}
}
if (isBooleanFilter(returnedFilters)) {
if (!returnedFilters.boolean[clause]) {
returnedFilters.boolean[clause] = filter;
} else if (Array.isArray(returnedFilters.boolean[clause])) {
returnedFilters.boolean[clause].push(filter);
} else {
returnedFilters.boolean[clause] = [
// TypeScript unable to narrow type of object properties https://github.com/microsoft/TypeScript/issues/33391
returnedFilters.boolean[clause],
filter
];
}
}
return returnedFilters;
}
// storage/query/and.ts
function and2() {
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
args[_key] = arguments[_key];
}
var flattened = flatten(args);
if (Array.isArray(flattened)) {
if (flattened.length === 1) {
return "".concat(QUERY_OPERATOR_AND, " ").concat(flattened);
}
return flattened.join(" ".concat(QUERY_OPERATOR_AND, " "));
}
return "".concat(QUERY_OPERATOR_AND, " ").concat(flattened);
}
// storage/query/fulltextOrNgram.ts
function fulltextOrNgram2(fOrN, fields, searchString) {
var operator = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : QUERY_OPERATOR_OR;
return "".concat(fOrN, "(").concat(buildFields(fields), ",'").concat(searchString, "'").concat(operator.toUpperCase() === QUERY_OPERATOR_AND ? ",'".concat(QUERY_OPERATOR_AND, "'") : "", ")");
}
// storage/query/fulltext.ts
function fulltext2(fields, searchString) {
var operator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : QUERY_OPERATOR_OR;
return fulltextOrNgram2("fulltext", fields, searchString, operator);
}
// storage/query/group.ts
function group(s) {
return "(".concat(s, ")");
}
// storage/query/ngram.ts
function ngram2(fields, searchString) {
var operator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : QUERY_OPERATOR_OR;
return fulltextOrNgram2("ngram", fields, searchString, operator);
}
// storage/query/or.ts
function or2() {
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
args[_key] = arguments[_key];
}
var flattened = flatten(args);
if (Array.isArray(flattened)) {
if (flattened.length === 1) {
return "".concat(QUERY_OPERATOR_OR, " ").concat(flattened);
}
return flattened.join(" ".concat(QUERY_OPERATOR_OR, " "));
}
return "".concat(QUERY_OPERATOR_OR, " ").concat(flattened);
}
// storage/query/stemmed.ts
function stemmed2(fields, searchString) {
var operator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : QUERY_OPERATOR_OR, language = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : STEMMING_LANGUAGE_CODE_ENGLISH;
return "stemmed(".concat(buildFields(fields), ",'").concat(searchString, "','").concat(operator.toUpperCase() === QUERY_OPERATOR_AND ? QUERY_OPERATOR_AND : QUERY_OPERATOR_OR, "','").concat(language, "')");
}