UNPKG

@enonic/js-utils

Version:
1,073 lines (1,072 loc) 37.1 kB
"use strict"; 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, "')"); }