@enonic/js-utils
Version:
Enonic XP JavaScript Utils
1,654 lines (1,576 loc) • 98.6 kB
JavaScript
var __defProp = Object.defineProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
// array/index.ts
var array_exports = {};
__export(array_exports, {
findIndex: () => findIndex,
flatten: () => flatten,
forceArray: () => forceArray,
includes: () => includes,
isStringArray: () => isStringArray,
sortByProperty: () => sortByProperty
});
// value/isStringLiteral.ts
var isStringLiteral = (value) => typeof value === "string";
// array/isStringArray.ts
function isStringArray(value) {
return Array.isArray(value) && value.every(isStringLiteral);
}
// array/findIndex.ts
function findIndex(array, callbackFn) {
const length = array.length >>> 0;
for (let i = 0; i < length; i++) {
if (callbackFn(array[i], i, array)) {
return i;
}
}
return -1;
}
// array/flatten.ts
function flatten(arr, d = 1) {
return d > 0 ? arr.reduce((acc, val) => acc.concat(
Array.isArray(val) ? flatten(val, d - 1) : val
), []) : arr.slice();
}
// array/forceArray.ts
function forceArray(data) {
return Array.isArray(data) ? data : [data];
}
// array/includes.ts
function sameValueZero(x, y) {
return x === y || typeof x === "number" && typeof y === "number" && isNaN(x) && isNaN(y);
}
function includes(array, searchElement, fromIndex = 0) {
if (array == null) {
throw new TypeError('"array" is null or not defined');
}
const o = Object(array);
const len = o.length >>> 0;
if (len === 0) {
return false;
}
const n = fromIndex | 0;
let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
while (k < len) {
if (sameValueZero(o[k], searchElement)) {
return true;
}
k++;
}
return false;
}
// value/isBasicObject.ts
var isBasicObject = (value) => typeof value === "object";
// value/isNumber.ts
function isNumber(value) {
return typeof value === "number" && isFinite(value);
}
// value/isStringObject.ts
var isStringObject = (value) => value instanceof String;
// value/isString.ts
var isString = (value) => isStringLiteral(value) || isStringObject(value);
// value/isSymbol.ts
var isSymbol = (value) => typeof value === "symbol";
// value/isPropertyKey.ts
var isPropertyKey = (value) => isString(value) || isNumber(value) || isSymbol(value);
// value/toStr.ts
function toStr(value, replacer, space = 4) {
return JSON.stringify(value, replacer, space);
}
// object/hasOwnProperty.ts
function hasOwnProperty(obj, propKey) {
if (!isBasicObject(obj)) {
throw new Error(`First parameter to hasOwnProperty must be a basic Object! ${toStr(obj)}`);
}
if (!isPropertyKey(propKey)) {
throw new Error(`Second parameter to hasOwnProperty must be a PropertyKey (string|number|symbol)! ${toStr(propKey)}`);
}
return obj.hasOwnProperty(propKey);
}
// value/isObject.ts
var isObject = (value) => Object.prototype.toString.call(value).slice(8, -1) === "Object";
// array/sortBy.ts
function compareNumbers(a, b) {
return a - b;
}
function compareStrings(a, b, caseSensitive = true) {
if (!caseSensitive) {
a = a.toLowerCase();
b = b.toLowerCase();
}
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
}
function sortByProperty(array, propertyName) {
const localArray = JSON.parse(JSON.stringify(array));
return localArray.sort((a, b) => {
if (!isObject(a) || !isObject(b)) {
throw new TypeError(`sortByProperty: a or b not an object! a:${toStr(a)} b:${toStr(b)}`);
}
if (!hasOwnProperty(a, propertyName)) {
throw new TypeError(`sortByProperty: a doesn't have a property named:'${propertyName}'! a:${toStr(a)}`);
}
if (!hasOwnProperty(b, propertyName)) {
throw new TypeError(`sortByProperty: b doesn't have a property named:'${propertyName}'! b:${toStr(b)}`);
}
const valueA = a[propertyName];
const valueB = b[propertyName];
if (isNumber(valueA) && isNumber(valueB)) {
return compareNumbers(
valueA,
valueB
);
}
if (isString(valueA) && isString(valueB)) {
return compareStrings(
valueA,
valueB
);
}
throw new TypeError(`sortByProperty: Value of propertyName:${propertyName} is neither number nor string! a:${toStr(a)} b:${toStr(b)}`);
});
}
// object/deleteIn.ts
function deleteIn(obj, ...paths) {
if (!obj || !paths) {
return;
}
const uniformPath = [];
for (let i = 0; i < paths.length; i++) {
const path = paths[i];
if (typeof path === "string") {
path.split(".").forEach((p) => uniformPath.push(p));
} else if (Array.isArray(path)) {
path.forEach((p) => uniformPath.push(p));
} else {
uniformPath.push(path);
}
}
for (let i = 0; i < uniformPath.length - 1; i++) {
obj = obj[uniformPath[i]];
if (typeof obj === "undefined") {
return;
}
}
delete obj[uniformPath.pop()];
}
var deleteIn_default = deleteIn;
// object/mapKeys.ts
function mapKeys(obj, fn) {
if (!isObject(obj)) {
throw new TypeError(`mapKeys: First param must be an object! got:${toStr(obj)}`);
}
const result = {};
const keys3 = Object.keys(obj);
for (let i = 0; i < keys3.length; i++) {
const key = keys3[i];
fn({
key,
result,
value: obj[key]
});
}
return result;
}
// object/lcKeys.ts
function lcKeys(obj) {
return mapKeys(obj, ({
key,
result,
value
}) => {
result[String(key).toLowerCase()] = value;
});
}
// object/entries.ts
function entries(o) {
return Object.keys(o).map((key) => [key, o[key]]);
}
// object/getIn.ts
function getIn(source, path, def) {
if (!Array.isArray(path)) {
if (isNumber(path)) {
path = [path];
} else {
path = path.split(".");
}
}
let leafKey = path[0];
let obj = source;
if (path.length > 1) {
const pathLength = path.length;
leafKey = path[pathLength - 1];
for (let i = 0; i < pathLength - 1; i++) {
const branchKey = path[i];
if (!isBasicObject(obj) || !hasOwnProperty(obj, branchKey) || typeof obj[branchKey] === "undefined") {
return def;
}
obj = obj[branchKey];
}
}
if (!isBasicObject(obj) || !hasOwnProperty(obj, leafKey) || typeof obj[leafKey] === "undefined") {
return def;
}
return obj[leafKey];
}
// object/setIn.ts
function isUnsafeKey(key) {
return key === "__proto__" || key === "constructor" || key === "prototype";
}
function setIn(target, path, value) {
if (!path || !isObject(target)) return target;
if (!Array.isArray(path)) {
path = path.split(".");
}
let leafKey = path[0];
if (isUnsafeKey(leafKey)) {
throw new Error(`setIn: unsafe root key: "${String(leafKey)}"`);
}
let obj = target;
if (path.length > 1) {
const pathLength = path.length;
leafKey = path[pathLength - 1];
if (isUnsafeKey(leafKey)) {
throw new Error(`setIn: unsafe leaf key: "${String(leafKey)}"`);
}
for (let i = 0; i < pathLength - 1; i++) {
const branchKey = path[i];
if (isUnsafeKey(branchKey)) {
throw new Error(`setIn: unsafe branch key: "${String(branchKey)}"`);
}
if (!hasOwnProperty(obj, branchKey)) {
obj[branchKey] = {};
}
obj = obj[branchKey];
}
}
if (typeof value !== "undefined") {
obj[leafKey] = value;
} else {
delete obj[leafKey];
}
return target;
}
// object/sortKeys.ts
var { isArray } = Array;
var { keys } = Object;
function sortKeys(obj) {
if (typeof obj !== "object" || isArray(obj)) {
throw new Error("sortKeys");
}
const newObject = {};
const sortedKeys = keys(obj).sort();
for (let i = 0, l = sortedKeys.length; i < l; i++) {
const k = sortedKeys[i];
newObject[k] = obj[k];
}
return newObject;
}
// object/sortKeysRec.ts
var { isArray: isArray2 } = Array;
var { keys: keys2 } = Object;
function sortKeysRec(obj) {
if (isArray2(obj)) {
const newArray = [];
for (let i = 0, l = obj.length; i < l; i++) {
newArray[i] = sortKeysRec(obj[i]);
}
return newArray;
}
if (typeof obj !== "object" || obj === null) {
return obj;
}
const sortedKeys = keys2(obj).sort();
const newObject = {};
for (let i = 0, l = sortedKeys.length; i < l; i++) {
const k = sortedKeys[i];
newObject[k] = sortKeysRec(obj[k]);
}
return newObject;
}
// object/values.ts
function values(o) {
return Object.keys(o).map((key) => o[key]);
}
// http/constants.ts
var HTTP_REQUEST_MODE_EDIT = "edit";
var HTTP_REQUEST_MODE_INLINE = "inline";
var HTTP_REQUEST_MODE_LIVE = "live";
var HTTP_REQUEST_MODE_PREVIEW = "preview";
var HTTP_REQUEST_MODES = [
HTTP_REQUEST_MODE_EDIT,
HTTP_REQUEST_MODE_INLINE,
HTTP_REQUEST_MODE_LIVE,
HTTP_REQUEST_MODE_PREVIEW
];
// storage/index.ts
var storage_exports = {};
__export(storage_exports, {
AGGREGATION_COUNT: () => AGGREGATION_COUNT,
AGGREGATION_DATE_HISTOGRAM: () => AGGREGATION_DATE_HISTOGRAM,
AGGREGATION_DATE_RANGE: () => AGGREGATION_DATE_RANGE,
AGGREGATION_GEO_DISTANCE: () => AGGREGATION_GEO_DISTANCE,
AGGREGATION_MAX: () => AGGREGATION_MAX,
AGGREGATION_MIN: () => AGGREGATION_MIN,
AGGREGATION_RANGE: () => AGGREGATION_RANGE,
AGGREGATION_STATS: () => AGGREGATION_STATS,
AGGREGATION_TERMS: () => AGGREGATION_TERMS,
DSL_EXPRESSION_VALUE_TYPE_DATE_TIME: () => DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2,
DSL_EXPRESSION_VALUE_TYPE_TIME: () => DSL_EXPRESSION_VALUE_TYPE_TIME2,
FILTER_CLAUSES: () => FILTER_CLAUSES,
FILTER_CLAUSE_MUST: () => FILTER_CLAUSE_MUST,
FILTER_CLAUSE_MUST_NOT: () => FILTER_CLAUSE_MUST_NOT,
FILTER_CLAUSE_SHOULD: () => FILTER_CLAUSE_SHOULD,
HIGHLIGHT_FIELD_ALLTEXT: () => HIGHLIGHT_FIELD_ALLTEXT,
HIGHLIGHT_OPTION_ENCODERS: () => HIGHLIGHT_OPTION_ENCODERS,
HIGHLIGHT_OPTION_ENCODER_DEFAULT: () => HIGHLIGHT_OPTION_ENCODER_DEFAULT,
HIGHLIGHT_OPTION_ENCODER_HTML: () => HIGHLIGHT_OPTION_ENCODER_HTML,
INDEX_CONFIG_DECIDE_BY_TYPE: () => INDEX_CONFIG_DECIDE_BY_TYPE,
INDEX_CONFIG_DECIDE_BY_TYPE_DEFAULT: () => INDEX_CONFIG_DECIDE_BY_TYPE_DEFAULT,
INDEX_CONFIG_ENABLED: () => INDEX_CONFIG_ENABLED,
INDEX_CONFIG_ENABLED_DEFAULT: () => INDEX_CONFIG_ENABLED_DEFAULT,
INDEX_CONFIG_FULLTEXT: () => INDEX_CONFIG_FULLTEXT,
INDEX_CONFIG_FULLTEXT_DEFAULT: () => INDEX_CONFIG_FULLTEXT_DEFAULT,
INDEX_CONFIG_INCLUDE_IN_ALL_TEXT: () => INDEX_CONFIG_INCLUDE_IN_ALL_TEXT,
INDEX_CONFIG_INCLUDE_IN_ALL_TEXT_DEFAULT: () => INDEX_CONFIG_INCLUDE_IN_ALL_TEXT_DEFAULT,
INDEX_CONFIG_INDEX_VALUE_PROCESSORS: () => INDEX_CONFIG_INDEX_VALUE_PROCESSORS,
INDEX_CONFIG_LANGUAGES: () => INDEX_CONFIG_LANGUAGES,
INDEX_CONFIG_N_GRAM: () => INDEX_CONFIG_N_GRAM,
INDEX_CONFIG_N_GRAM_DEFAULT: () => INDEX_CONFIG_N_GRAM_DEFAULT,
INDEX_CONFIG_PATH: () => INDEX_CONFIG_PATH,
INDEX_CONFIG_PATH_DEFAULT: () => INDEX_CONFIG_PATH_DEFAULT,
INDEX_CONFIG_TEMPLATES: () => INDEX_CONFIG_TEMPLATES,
INDEX_CONFIG_TEMPLATE_BY_TYPE: () => INDEX_CONFIG_TEMPLATE_BY_TYPE,
INDEX_CONFIG_TEMPLATE_FULLTEXT: () => INDEX_CONFIG_TEMPLATE_FULLTEXT,
INDEX_CONFIG_TEMPLATE_MINIMAL: () => INDEX_CONFIG_TEMPLATE_MINIMAL,
INDEX_CONFIG_TEMPLATE_NONE: () => INDEX_CONFIG_TEMPLATE_NONE,
INDEX_CONFIG_TEMPLATE_PATH: () => INDEX_CONFIG_TEMPLATE_PATH,
QUERY_FUNCTION_FULLTEXT: () => QUERY_FUNCTION_FULLTEXT,
QUERY_FUNCTION_NGRAM: () => QUERY_FUNCTION_NGRAM,
QUERY_FUNCTION_PATH_MATCH: () => QUERY_FUNCTION_PATH_MATCH,
QUERY_FUNCTION_RANGE: () => QUERY_FUNCTION_RANGE,
QUERY_FUNCTION_STEMMED: () => QUERY_FUNCTION_STEMMED,
QUERY_OPERATOR_AND: () => QUERY_OPERATOR_AND,
QUERY_OPERATOR_OR: () => QUERY_OPERATOR_OR,
SORT_CREATED: () => SORT_CREATED,
SORT_DISPLAYNAME: () => SORT_DISPLAYNAME,
SORT_MANUAL: () => SORT_MANUAL,
SORT_MODIFIED: () => SORT_MODIFIED,
STEMMING_LANGUAGES: () => STEMMING_LANGUAGES,
STEMMING_LANGUAGE_CODES: () => STEMMING_LANGUAGE_CODES,
STEMMING_LANGUAGE_CODE_ARABIC: () => STEMMING_LANGUAGE_CODE_ARABIC,
STEMMING_LANGUAGE_CODE_ARMENIAN: () => STEMMING_LANGUAGE_CODE_ARMENIAN,
STEMMING_LANGUAGE_CODE_BASQUE: () => STEMMING_LANGUAGE_CODE_BASQUE,
STEMMING_LANGUAGE_CODE_BENGALI: () => STEMMING_LANGUAGE_CODE_BENGALI,
STEMMING_LANGUAGE_CODE_BRAZILIAN: () => STEMMING_LANGUAGE_CODE_BRAZILIAN,
STEMMING_LANGUAGE_CODE_BULGARIAN: () => STEMMING_LANGUAGE_CODE_BULGARIAN,
STEMMING_LANGUAGE_CODE_CATALAN: () => STEMMING_LANGUAGE_CODE_CATALAN,
STEMMING_LANGUAGE_CODE_CHINESE: () => STEMMING_LANGUAGE_CODE_CHINESE,
STEMMING_LANGUAGE_CODE_CZECH: () => STEMMING_LANGUAGE_CODE_CZECH,
STEMMING_LANGUAGE_CODE_DANISH: () => STEMMING_LANGUAGE_CODE_DANISH,
STEMMING_LANGUAGE_CODE_DUTCH: () => STEMMING_LANGUAGE_CODE_DUTCH,
STEMMING_LANGUAGE_CODE_ENGLISH: () => STEMMING_LANGUAGE_CODE_ENGLISH,
STEMMING_LANGUAGE_CODE_FINNISH: () => STEMMING_LANGUAGE_CODE_FINNISH,
STEMMING_LANGUAGE_CODE_FRENCH: () => STEMMING_LANGUAGE_CODE_FRENCH,
STEMMING_LANGUAGE_CODE_GALICIAN: () => STEMMING_LANGUAGE_CODE_GALICIAN,
STEMMING_LANGUAGE_CODE_GERMAN: () => STEMMING_LANGUAGE_CODE_GERMAN,
STEMMING_LANGUAGE_CODE_GREEK: () => STEMMING_LANGUAGE_CODE_GREEK,
STEMMING_LANGUAGE_CODE_HINDI: () => STEMMING_LANGUAGE_CODE_HINDI,
STEMMING_LANGUAGE_CODE_HUNGARIAN: () => STEMMING_LANGUAGE_CODE_HUNGARIAN,
STEMMING_LANGUAGE_CODE_INDONESIAN: () => STEMMING_LANGUAGE_CODE_INDONESIAN,
STEMMING_LANGUAGE_CODE_IRISH: () => STEMMING_LANGUAGE_CODE_IRISH,
STEMMING_LANGUAGE_CODE_ITALIAN: () => STEMMING_LANGUAGE_CODE_ITALIAN,
STEMMING_LANGUAGE_CODE_JAPANESE: () => STEMMING_LANGUAGE_CODE_JAPANESE,
STEMMING_LANGUAGE_CODE_KOREAN: () => STEMMING_LANGUAGE_CODE_KOREAN,
STEMMING_LANGUAGE_CODE_LATVIAN: () => STEMMING_LANGUAGE_CODE_LATVIAN,
STEMMING_LANGUAGE_CODE_LITHUANIAN: () => STEMMING_LANGUAGE_CODE_LITHUANIAN,
STEMMING_LANGUAGE_CODE_NORWEGIAN: () => STEMMING_LANGUAGE_CODE_NORWEGIAN,
STEMMING_LANGUAGE_CODE_PERSIAN: () => STEMMING_LANGUAGE_CODE_PERSIAN,
STEMMING_LANGUAGE_CODE_PORTUGUESE: () => STEMMING_LANGUAGE_CODE_PORTUGUESE,
STEMMING_LANGUAGE_CODE_ROMANIAN: () => STEMMING_LANGUAGE_CODE_ROMANIAN,
STEMMING_LANGUAGE_CODE_RUSSIAN: () => STEMMING_LANGUAGE_CODE_RUSSIAN,
STEMMING_LANGUAGE_CODE_SORANI: () => STEMMING_LANGUAGE_CODE_SORANI,
STEMMING_LANGUAGE_CODE_SPANISH: () => STEMMING_LANGUAGE_CODE_SPANISH,
STEMMING_LANGUAGE_CODE_SWEDISH: () => STEMMING_LANGUAGE_CODE_SWEDISH,
STEMMING_LANGUAGE_CODE_THAI: () => STEMMING_LANGUAGE_CODE_THAI,
STEMMING_LANGUAGE_CODE_TURKISH: () => STEMMING_LANGUAGE_CODE_TURKISH,
VALUE_TYPE_ANY: () => VALUE_TYPE_ANY,
VALUE_TYPE_BOOLEAN: () => VALUE_TYPE_BOOLEAN,
VALUE_TYPE_DOUBLE: () => VALUE_TYPE_DOUBLE,
VALUE_TYPE_GEO_POINT: () => VALUE_TYPE_GEO_POINT,
VALUE_TYPE_INSTANT: () => VALUE_TYPE_INSTANT,
VALUE_TYPE_LOCAL_DATE: () => VALUE_TYPE_LOCAL_DATE,
VALUE_TYPE_LOCAL_DATE_TIME: () => VALUE_TYPE_LOCAL_DATE_TIME,
VALUE_TYPE_LOCAL_TIME: () => VALUE_TYPE_LOCAL_TIME,
VALUE_TYPE_LONG: () => VALUE_TYPE_LONG,
VALUE_TYPE_REFERENCE: () => VALUE_TYPE_REFERENCE,
VALUE_TYPE_SET: () => VALUE_TYPE_SET,
VALUE_TYPE_STRING: () => VALUE_TYPE_STRING,
addQueryFilter: () => addQueryFilter,
and: () => and2,
detectCommonValueType: () => detectCommonValueType,
detectValueType: () => detectValueType,
dirname: () => dirname,
dsl: () => dsl_exports,
enonify: () => enonify,
filter: () => filter_exports,
fulltext: () => fulltext2,
group: () => group,
indexTemplateToConfig: () => indexTemplateToConfig,
isBooleanDslExpression: () => isBooleanDslExpression_default,
isBooleanFilter: () => isBooleanFilter,
isExistsDslExpression: () => isExistsDslExpression,
isExistsFilter: () => isExistsFilter,
isFilter: () => isFilter,
isFulltextDslExpression: () => isFulltextDslExpression,
isHasValueFilter: () => isHasValueFilter,
isIdsFilter: () => isIdsFilter,
isInDslExpression: () => isInDslExpression,
isLikeDslExpression: () => isLikeDslExpression,
isMatchAllDslExpression: () => isMatchAllDslExpression,
isNgramDslExpression: () => isNgramDslExpression,
isNotExistsFilter: () => isNotExistsFilter,
isPathMatchDslExpression: () => isPathMatchDslExpression,
isQueryDsl: () => isQueryDsl,
isRangeDslExpression: () => isRangeDslExpression,
isStemmedDslExpression: () => isStemmedDslExpression,
isTermDslExpression: () => isTermDslExpression,
join: () => join,
ngram: () => ngram2,
or: () => or2,
query: () => query_exports,
stemmed: () => stemmed2,
trimExt: () => trimExt,
uniqueId: () => uniqueId,
updateIndexConfigs: () => updateIndexConfigs,
validateRepoId: () => validateRepoId
});
// storage/aggregation.ts
var AGGREGATION_COUNT = "count";
var AGGREGATION_DATE_HISTOGRAM = "dateHistogram";
var AGGREGATION_DATE_RANGE = "dateRange";
var AGGREGATION_GEO_DISTANCE = "geoDistance";
var AGGREGATION_MAX = "max";
var AGGREGATION_MIN = "min";
var AGGREGATION_RANGE = "range";
var AGGREGATION_STATS = "stats";
var AGGREGATION_TERMS = "terms";
// storage/indexing/constants.ts
var INDEX_CONFIG_ENABLED = "enabled";
var INDEX_CONFIG_DECIDE_BY_TYPE = "decideByType";
var INDEX_CONFIG_FULLTEXT = "fulltext";
var INDEX_CONFIG_INCLUDE_IN_ALL_TEXT = "includeInAllText";
var INDEX_CONFIG_INDEX_VALUE_PROCESSORS = "indexValueProcessors";
var INDEX_CONFIG_LANGUAGES = "languages";
var INDEX_CONFIG_N_GRAM = "nGram";
var INDEX_CONFIG_PATH = "path";
var INDEX_CONFIG_ENABLED_DEFAULT = true;
var INDEX_CONFIG_DECIDE_BY_TYPE_DEFAULT = true;
var INDEX_CONFIG_FULLTEXT_DEFAULT = false;
var INDEX_CONFIG_INCLUDE_IN_ALL_TEXT_DEFAULT = false;
var INDEX_CONFIG_N_GRAM_DEFAULT = false;
var INDEX_CONFIG_PATH_DEFAULT = false;
var INDEX_CONFIG_TEMPLATE_NONE = "none";
var INDEX_CONFIG_TEMPLATE_BY_TYPE = "byType";
var INDEX_CONFIG_TEMPLATE_FULLTEXT = "fulltext";
var INDEX_CONFIG_TEMPLATE_PATH = "path";
var INDEX_CONFIG_TEMPLATE_MINIMAL = "minimal";
var INDEX_CONFIG_TEMPLATES = [
INDEX_CONFIG_TEMPLATE_NONE,
INDEX_CONFIG_TEMPLATE_BY_TYPE,
INDEX_CONFIG_TEMPLATE_FULLTEXT,
INDEX_CONFIG_TEMPLATE_PATH,
INDEX_CONFIG_TEMPLATE_MINIMAL
];
// 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/isInfinity.ts
function isInfinity(value) {
return typeof value === "number" && !isFinite(value);
}
// storage/indexing/enonify.ts
function enonify(unknown) {
function shouldBeDeleted(unknown2) {
return unknown2 === null || typeof unknown2 === "undefined" || isFunction(unknown2) || isInfinity(unknown2) || isNumberButNaN(unknown2);
}
function enonifyArray(array) {
const flattenedAndEnonified = flatten(array).map((v) => enonify(v)).filter((v) => !shouldBeDeleted(v));
if (flattenedAndEnonified.length === 0) {
return void 0;
}
if (flattenedAndEnonified.length === 1) {
return flattenedAndEnonified[0];
}
return flattenedAndEnonified;
}
function isNumberButNaN(unknown2) {
return typeof unknown2 === "number" && isNaN(unknown2);
}
if (isObject(unknown)) {
Object.keys(unknown).forEach((k) => {
let value = unknown[k];
if (Array.isArray(value)) {
value = enonifyArray(value);
}
if (Array.isArray(value)) {
unknown[k] = value;
} else {
if (shouldBeDeleted(value)) {
delete unknown[k];
} else {
unknown[k] = enonify(value);
}
}
});
return unknown;
}
if (Array.isArray(unknown)) {
return enonifyArray(unknown);
}
if (isDate(unknown)) {
return unknown.toISOString();
}
if (isNumberButNaN(unknown)) {
return void 0;
}
if (isInfinity(unknown)) {
return void 0;
}
return unknown;
}
// value/isBigInt.ts
function isBigInt(value) {
return typeof value === "bigint";
}
// value/isBoolean.ts
function isBoolean(value) {
return Object.prototype.toString.call(value).slice(8, -1) === "Boolean";
}
// value/isDateString.ts
function isDateString(value) {
return typeof value === "string" && !isNaN(Date.parse(value));
}
// value/isFalse.ts
function isFalse(value) {
return value === false;
}
// value/isGeoPointArray.ts
function isGeoPointArray(v) {
if (!Array.isArray(v) || v.length !== 2) {
return false;
}
const [lat, lon] = v;
if (!isNumber(lat) && !isNumber(lon)) {
return false;
}
if (lat < -90 || lat > 90) {
return false;
}
if (lon < -180 || lon > 180) {
return false;
}
return true;
}
// value/isGeoPointString.ts
function isGeoPointString(v) {
if (!isString(v)) {
return false;
}
const array = v.split(",");
if (array.length !== 2) {
return false;
}
const [lat, lon] = array;
if (!isString(lat) || !isString(lon)) {
return false;
}
return isGeoPointArray([
parseFloat(lat),
parseFloat(lon)
]);
}
// value/isGeoPoint.ts
function isGeoPoint(v) {
return isString(v) ? isGeoPointString(v) : isGeoPointArray(v);
}
// value/isInstantString.ts
var REGEXP_INSTANT = /^\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}(\.\d{0,9})?Z$/;
function isInstantString(v) {
if (!isString(v)) {
return false;
}
const matches = v.match(REGEXP_INSTANT);
if (matches) {
try {
const d = new Date(Date.parse(matches[0]));
if (v.substring(0, 19) === d.toISOString().substring(0, 19)) {
return true;
}
return false;
} catch (e) {
}
}
return false;
}
// 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/isLocalDateString.ts
var REGEXP_DATE = /^\d{4}-\d{2}-\d{2}$/;
function isLocalDateString(v) {
if (!isString(v)) {
return false;
}
const matches = v.match(REGEXP_DATE);
if (matches) {
try {
const d = new Date(Date.parse(matches[0]));
if (v.substring(0, 10) === d.toISOString().substring(0, 10)) {
return true;
}
return false;
} catch (e) {
}
}
return false;
}
// value/isLocalDateTimeString.ts
var REGEXP_DATE2 = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{0,9})?)?$/;
function isLocalDateTimeString(v) {
if (!isString(v)) {
return false;
}
const matches = v.match(REGEXP_DATE2);
if (matches) {
const localDateTimeStringToParse = `${matches[0].substring(0, 19)}Z`;
try {
const d = new Date(Date.parse(localDateTimeStringToParse));
let inputTrimmed = v.substring(0, 19);
if (inputTrimmed.length === 16) {
inputTrimmed += ":00";
}
const parsedTrimmed = d.toJSON().substring(0, 19);
if (inputTrimmed === parsedTrimmed) {
return true;
}
return false;
} catch (e) {
}
}
return false;
}
// value/isNonNegativeIntegerString.ts
function isNonNegativeIntegerString(s) {
if (!isString(s) || !s.length || s.length > 1 && s.charCodeAt(0) === 48) {
return false;
}
for (let i = s.length - 1; i >= 0; i--) {
const d = s.charCodeAt(i);
if (d < 48 || d > 57) {
return false;
}
}
return true;
}
// value/isNotSet.ts
var isNotSet = (value) => value === null || typeof value === "undefined";
// value/isNull.ts
function isNull(value) {
return value === null;
}
// value/isPositiveInteger.ts
function isPositiveInteger(v) {
if (!isInt(v) || v < 0) {
return false;
}
return true;
}
// value/isSet.ts
function isSet(value) {
if (typeof value === "boolean") {
return true;
}
return value !== null && typeof value !== "undefined";
}
// value/isTimeString.ts
var REGEXP_TIME = /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9](\.\d{0,9})?)?$/;
function isTimeString(v) {
if (!isString(v)) {
return false;
}
return REGEXP_TIME.test(v);
}
// value/isTime.ts
function isTime(v) {
return isDate(v) || isTimeString(v);
}
// value/isTrue.ts
function isTrue(value) {
return value === true;
}
// value/isUndefined.ts
function isUndefined(value) {
return typeof value === "undefined";
}
// value/isUuidV4String.ts
var REGEXP = /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
function isUuidV4String(value) {
return isString(value) ? REGEXP.test(value) : false;
}
// value/index.ts
function isNotFalse(value) {
return value !== false;
}
function isNotTrue(value) {
return value !== true;
}
// storage/indexing/indexTemplateToConfig.ts
function indexTemplateToConfig({
template,
indexValueProcessors,
// = [],
languages
// = []
}) {
if (isObject(template)) {
const configObject = JSON.parse(JSON.stringify(template));
if (indexValueProcessors) {
configObject.indexValueProcessors = indexValueProcessors;
}
if (languages) {
configObject.languages = languages;
}
return configObject;
}
if (template === INDEX_CONFIG_TEMPLATE_NONE) {
const rv = {
[INDEX_CONFIG_DECIDE_BY_TYPE]: false,
[INDEX_CONFIG_ENABLED]: false,
[INDEX_CONFIG_FULLTEXT]: false,
[INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: false
};
if (indexValueProcessors) {
rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors;
}
if (languages) {
rv[INDEX_CONFIG_LANGUAGES] = languages;
}
rv[INDEX_CONFIG_N_GRAM] = false;
rv[INDEX_CONFIG_PATH] = false;
return rv;
}
if (template === INDEX_CONFIG_TEMPLATE_BY_TYPE) {
const rv = {
[INDEX_CONFIG_DECIDE_BY_TYPE]: true,
[INDEX_CONFIG_ENABLED]: true,
[INDEX_CONFIG_FULLTEXT]: false,
[INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: false
};
if (indexValueProcessors) {
rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors;
}
if (languages) {
rv[INDEX_CONFIG_LANGUAGES] = languages;
}
rv[INDEX_CONFIG_N_GRAM] = false;
rv[INDEX_CONFIG_PATH] = false;
return rv;
}
if (template === INDEX_CONFIG_TEMPLATE_FULLTEXT) {
const rv = {
[INDEX_CONFIG_DECIDE_BY_TYPE]: false,
[INDEX_CONFIG_ENABLED]: true,
[INDEX_CONFIG_FULLTEXT]: true,
[INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: true
};
if (indexValueProcessors) {
rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors;
}
if (languages) {
rv[INDEX_CONFIG_LANGUAGES] = languages;
}
rv[INDEX_CONFIG_N_GRAM] = true;
rv[INDEX_CONFIG_PATH] = false;
return rv;
}
if (template === INDEX_CONFIG_TEMPLATE_PATH) {
const rv = {
[INDEX_CONFIG_DECIDE_BY_TYPE]: false,
[INDEX_CONFIG_ENABLED]: true,
[INDEX_CONFIG_FULLTEXT]: false,
[INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: false
};
if (indexValueProcessors) {
rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors;
}
if (languages) {
rv[INDEX_CONFIG_LANGUAGES] = languages;
}
rv[INDEX_CONFIG_N_GRAM] = false;
rv[INDEX_CONFIG_PATH] = true;
return rv;
}
if (template === INDEX_CONFIG_TEMPLATE_MINIMAL) {
const rv = {
[INDEX_CONFIG_DECIDE_BY_TYPE]: false,
[INDEX_CONFIG_ENABLED]: true,
[INDEX_CONFIG_FULLTEXT]: false,
[INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: false
};
if (indexValueProcessors) {
rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors;
}
if (languages) {
rv[INDEX_CONFIG_LANGUAGES] = languages;
}
rv[INDEX_CONFIG_N_GRAM] = false;
rv[INDEX_CONFIG_PATH] = false;
return rv;
}
throw new Error(`Unknown indexing template:${template}!`);
}
// storage/indexing/path/join.ts
function join(paths, separator = "/") {
let parts = [];
for (let i = 0; i < paths.length; i += 1) {
parts = parts.concat(paths[i].split(separator));
}
const newParts = [];
for (let i = 0; i < parts.length; i += 1) {
const part = parts[i];
if (!part || part === ".") continue;
if (part === "..") newParts.pop();
else newParts.push(part);
}
if (parts[0] === "") newParts.unshift("");
return newParts.join(separator) || (newParts.length ? separator : ".");
}
// storage/indexing/path/dirname.ts
function dirname(path, separator = "/") {
return join([path, ".."], separator);
}
// storage/indexing/path/trimExt.ts
function trimExt(s) {
return s.replace(/\.[^/.]+$/, "");
}
// storage/indexing/stemming.ts
var STEMMING_LANGUAGE_CODE_ARABIC = "ar";
var STEMMING_LANGUAGE_CODE_BULGARIAN = "bg";
var STEMMING_LANGUAGE_CODE_BENGALI = "bn";
var STEMMING_LANGUAGE_CODE_CATALAN = "ca";
var STEMMING_LANGUAGE_CODE_CZECH = "cs";
var STEMMING_LANGUAGE_CODE_DANISH = "da";
var STEMMING_LANGUAGE_CODE_GERMAN = "de";
var STEMMING_LANGUAGE_CODE_GREEK = "el";
var STEMMING_LANGUAGE_CODE_ENGLISH = "en";
var STEMMING_LANGUAGE_CODE_BASQUE = "eu";
var STEMMING_LANGUAGE_CODE_PERSIAN = "fa";
var STEMMING_LANGUAGE_CODE_FINNISH = "fi";
var STEMMING_LANGUAGE_CODE_FRENCH = "fr";
var STEMMING_LANGUAGE_CODE_IRISH = "ga";
var STEMMING_LANGUAGE_CODE_GALICIAN = "gl";
var STEMMING_LANGUAGE_CODE_HINDI = "in";
var STEMMING_LANGUAGE_CODE_HUNGARIAN = "hu";
var STEMMING_LANGUAGE_CODE_ARMENIAN = "hy";
var STEMMING_LANGUAGE_CODE_INDONESIAN = "id";
var STEMMING_LANGUAGE_CODE_ITALIAN = "it";
var STEMMING_LANGUAGE_CODE_JAPANESE = "ja";
var STEMMING_LANGUAGE_CODE_KOREAN = "ko";
var STEMMING_LANGUAGE_CODE_SORANI = "ku";
var STEMMING_LANGUAGE_CODE_LITHUANIAN = "lt";
var STEMMING_LANGUAGE_CODE_LATVIAN = "lv";
var STEMMING_LANGUAGE_CODE_DUTCH = "nl";
var STEMMING_LANGUAGE_CODE_NORWEGIAN = "no";
var STEMMING_LANGUAGE_CODE_PORTUGUESE = "pt";
var STEMMING_LANGUAGE_CODE_BRAZILIAN = "pt-br";
var STEMMING_LANGUAGE_CODE_ROMANIAN = "ro";
var STEMMING_LANGUAGE_CODE_RUSSIAN = "ru";
var STEMMING_LANGUAGE_CODE_SPANISH = "es";
var STEMMING_LANGUAGE_CODE_SWEDISH = "sv";
var STEMMING_LANGUAGE_CODE_TURKISH = "tr";
var STEMMING_LANGUAGE_CODE_THAI = "th";
var STEMMING_LANGUAGE_CODE_CHINESE = "zh";
var STEMMING_LANGUAGE_CODES = [
STEMMING_LANGUAGE_CODE_ARABIC,
STEMMING_LANGUAGE_CODE_BULGARIAN,
STEMMING_LANGUAGE_CODE_BENGALI,
STEMMING_LANGUAGE_CODE_CATALAN,
STEMMING_LANGUAGE_CODE_CZECH,
STEMMING_LANGUAGE_CODE_DANISH,
STEMMING_LANGUAGE_CODE_GERMAN,
STEMMING_LANGUAGE_CODE_GREEK,
STEMMING_LANGUAGE_CODE_ENGLISH,
STEMMING_LANGUAGE_CODE_BASQUE,
STEMMING_LANGUAGE_CODE_PERSIAN,
STEMMING_LANGUAGE_CODE_FINNISH,
STEMMING_LANGUAGE_CODE_FRENCH,
STEMMING_LANGUAGE_CODE_IRISH,
STEMMING_LANGUAGE_CODE_GALICIAN,
STEMMING_LANGUAGE_CODE_HINDI,
STEMMING_LANGUAGE_CODE_HUNGARIAN,
STEMMING_LANGUAGE_CODE_ARMENIAN,
STEMMING_LANGUAGE_CODE_INDONESIAN,
STEMMING_LANGUAGE_CODE_ITALIAN,
STEMMING_LANGUAGE_CODE_JAPANESE,
STEMMING_LANGUAGE_CODE_KOREAN,
STEMMING_LANGUAGE_CODE_SORANI,
STEMMING_LANGUAGE_CODE_LITHUANIAN,
STEMMING_LANGUAGE_CODE_LATVIAN,
STEMMING_LANGUAGE_CODE_DUTCH,
STEMMING_LANGUAGE_CODE_NORWEGIAN,
STEMMING_LANGUAGE_CODE_PORTUGUESE,
STEMMING_LANGUAGE_CODE_BRAZILIAN,
STEMMING_LANGUAGE_CODE_ROMANIAN,
STEMMING_LANGUAGE_CODE_RUSSIAN,
STEMMING_LANGUAGE_CODE_SPANISH,
STEMMING_LANGUAGE_CODE_SWEDISH,
STEMMING_LANGUAGE_CODE_TURKISH,
STEMMING_LANGUAGE_CODE_THAI,
STEMMING_LANGUAGE_CODE_CHINESE
];
var STEMMING_LANGUAGES = [
{
code: STEMMING_LANGUAGE_CODE_ARABIC,
language: "Arabic"
},
{
code: STEMMING_LANGUAGE_CODE_BULGARIAN,
language: "Bulgarian"
},
{
code: STEMMING_LANGUAGE_CODE_BENGALI,
language: "Bengali"
},
{
code: STEMMING_LANGUAGE_CODE_CATALAN,
language: "Catalan"
},
{
code: STEMMING_LANGUAGE_CODE_CZECH,
language: "Czech"
},
{
code: STEMMING_LANGUAGE_CODE_DANISH,
language: "Danish"
},
{
code: STEMMING_LANGUAGE_CODE_GERMAN,
language: "German"
},
{
code: STEMMING_LANGUAGE_CODE_GREEK,
language: "Greek"
},
{
code: STEMMING_LANGUAGE_CODE_ENGLISH,
language: "English"
},
{
code: STEMMING_LANGUAGE_CODE_BASQUE,
language: "Basque"
},
{
code: STEMMING_LANGUAGE_CODE_PERSIAN,
language: "Persian"
},
{
code: STEMMING_LANGUAGE_CODE_FINNISH,
language: "Finnish"
},
{
code: STEMMING_LANGUAGE_CODE_FRENCH,
language: "French"
},
{
code: STEMMING_LANGUAGE_CODE_IRISH,
language: "Irish"
},
{
code: STEMMING_LANGUAGE_CODE_GALICIAN,
language: "Galician"
},
{
code: STEMMING_LANGUAGE_CODE_HINDI,
language: "Hindi"
},
{
code: STEMMING_LANGUAGE_CODE_HUNGARIAN,
language: "Hungarian"
},
{
code: STEMMING_LANGUAGE_CODE_ARMENIAN,
language: "Armenian"
},
{
code: STEMMING_LANGUAGE_CODE_INDONESIAN,
language: "Indonesian"
},
{
code: STEMMING_LANGUAGE_CODE_ITALIAN,
language: "Italian"
},
{
code: STEMMING_LANGUAGE_CODE_JAPANESE,
language: "Japanese"
},
{
code: STEMMING_LANGUAGE_CODE_KOREAN,
language: "Korean"
},
{
code: STEMMING_LANGUAGE_CODE_SORANI,
language: "Sorani"
},
{
code: STEMMING_LANGUAGE_CODE_LITHUANIAN,
language: "Lithuanian"
},
{
code: STEMMING_LANGUAGE_CODE_LATVIAN,
language: "Latvian"
},
{
code: STEMMING_LANGUAGE_CODE_DUTCH,
language: "Dutch"
},
{
code: STEMMING_LANGUAGE_CODE_NORWEGIAN,
language: "Norwegian"
},
{
code: STEMMING_LANGUAGE_CODE_PORTUGUESE,
language: "Portuguese"
},
{
code: STEMMING_LANGUAGE_CODE_BRAZILIAN,
language: "Brazilian"
},
{
code: STEMMING_LANGUAGE_CODE_ROMANIAN,
language: "Romanian"
},
{
code: STEMMING_LANGUAGE_CODE_RUSSIAN,
language: "Russian"
},
{
code: STEMMING_LANGUAGE_CODE_SPANISH,
language: "Spanish"
},
{
code: STEMMING_LANGUAGE_CODE_SWEDISH,
language: "Swedish"
},
{
code: STEMMING_LANGUAGE_CODE_TURKISH,
language: "Turkish"
},
{
code: STEMMING_LANGUAGE_CODE_THAI,
language: "Thai"
},
{
code: STEMMING_LANGUAGE_CODE_CHINESE,
language: "Chinese"
}
];
// constants.ts
var COLON_SIGN = ":";
var DOT_SIGN = ".";
var ELLIPSIS = "\u2026";
var EVENT_TYPE_PREFIX_CUSTOM = "custom";
var EVENT_TYPE_APPLICATION = "application";
var EVENT_TYPE_APPLICATION_CLUSTER = "application.cluster";
var EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_START = "start";
var EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_STATE = "state";
var EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_STOP = "stop";
var EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_UNINSTALL = "uninstall";
var EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_UNINSTALLED = "uninstalled";
var EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPES = [
EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_START,
EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_STATE,
EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_STOP,
EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_UNINSTALL,
EVENT_TYPE_APPLICATION_CLUSTER_EVENT_TYPE_UNINSTALLED
];
var EVENT_TYPE_APPLICATION_EVENT_TYPE_INSTALLED = "INSTALLED";
var EVENT_TYPE_APPLICATION_EVENT_TYPE_STARTED = "STARTED";
var EVENT_TYPE_APPLICATION_EVENT_TYPE_STOPPED = "STOPPED";
var EVENT_TYPE_APPLICATION_EVENT_TYPE_UNINSTALLED = "UNINSTALLED";
var EVENT_TYPE_APPLICATION_EVENT_TYPES = [
EVENT_TYPE_APPLICATION_EVENT_TYPE_INSTALLED,
EVENT_TYPE_APPLICATION_EVENT_TYPE_STARTED,
EVENT_TYPE_APPLICATION_EVENT_TYPE_STOPPED,
EVENT_TYPE_APPLICATION_EVENT_TYPE_UNINSTALLED
];
var EVENT_TYPE_NODE_CREATED = "node.created";
var EVENT_TYPE_NODE_DELETED = "node.deleted";
var EVENT_TYPE_NODE_UPDATED = "node.updated";
var EVENT_TYPES_NODE = [
EVENT_TYPE_NODE_CREATED,
EVENT_TYPE_NODE_DELETED,
EVENT_TYPE_NODE_UPDATED
];
var EVENT_TYPE_TASK_FINISHED = "task.finished";
var EVENT_TYPE_TASK_REMOVED = "task.removed";
var EVENT_TYPE_TASK_UPDATED = "task.updated";
var EVENT_TYPES_TASK = [
EVENT_TYPE_TASK_FINISHED,
EVENT_TYPE_TASK_REMOVED,
EVENT_TYPE_TASK_UPDATED
];
var EVENT_TYPES = [
EVENT_TYPE_APPLICATION,
EVENT_TYPE_APPLICATION_CLUSTER,
EVENT_TYPE_NODE_CREATED,
EVENT_TYPE_NODE_DELETED,
EVENT_TYPE_NODE_UPDATED,
EVENT_TYPE_TASK_FINISHED,
EVENT_TYPE_TASK_REMOVED,
EVENT_TYPE_TASK_UPDATED
];
var RESPONSE_TYPE_JSON = "text/json;charset=utf-8";
var RESPONSE_TYPE_HTML = "text/html;charset=utf-8";
var PRINCIPAL_ROLE_SYSTEM_ADMIN = "role:system.admin";
var PRINCIPAL_ROLE_SYSTEM_ADMIN_LOGIN = "role:system.admin.login";
var PRINCIPAL_ROLE_SYSTEM_AUTHENTICATED = "role:system.authenticated";
var PRINCIPAL_ROLE_SYSTEM_AUDITLOG = "role:system.auditlog";
var PRINCIPAL_ROLE_SYSTEM_EVERYONE = "role:system.everyone";
var PRINCIPAL_ROLE_SYSTEM_USER_ADMIN = "role:system.user.admin";
var PRINCIPAL_ROLE_SYSTEM_USER_APP = "role:system.user.app";
var PRINCIPAL_USER_SYSTEM_SU = "user:system:su";
// storage/indexing/uniqueId.ts
function uniqueId({
repoId,
branchId,
nodeId,
versionKey
}) {
if (!repoId) {
throw new TypeError("uniqueId: Missing required named parameter repoId!");
}
if (!nodeId) {
throw new TypeError("uniqueId: Missing required named parameter nodeId!");
}
const parts = [repoId];
if (branchId) {
parts.push(branchId);
}
parts.push(nodeId);
if (versionKey) {
parts.push(versionKey);
}
return parts.join(DOT_SIGN);
}
// storage/indexing/updateIndexConfigs.ts
function updateIndexConfigs({
configs,
updates = []
}) {
const dereffedConfigs = JSON.parse(JSON.stringify(configs));
for (let i = 0; i < updates.length; i++) {
const anUpdate = updates[i];
const j = findIndex(
dereffedConfigs,
//({path}: IndexConfigsItem) => path === anUpdate.path
(item) => item.path === anUpdate.path
);
if (j !== -1) {
dereffedConfigs.splice(j, 1, anUpdate);
} else {
dereffedConfigs.push(anUpdate);
}
}
dereffedConfigs.sort(
(a, b) => a.path > b.path ? 1 : -1
);
return dereffedConfigs;
}
// storage/indexing/valueType/constants.ts
var VALUE_TYPE_ANY = "any";
var VALUE_TYPE_BOOLEAN = "boolean";
var VALUE_TYPE_DOUBLE = "double";
var VALUE_TYPE_GEO_POINT = "geoPoint";
var VALUE_TYPE_INSTANT = "instant";
var VALUE_TYPE_LOCAL_DATE = "localDate";
var VALUE_TYPE_LOCAL_DATE_TIME = "localDateTime";
var VALUE_TYPE_LOCAL_TIME = "localTime";
var VALUE_TYPE_LONG = "long";
var VALUE_TYPE_REFERENCE = "reference";
var VALUE_TYPE_SET = "set";
var VALUE_TYPE_STRING = "string";
// storage/indexing/valueType/detectValueType.ts
function detectCommonValueType(array) {
let anyStringCount = 0;
let geoPointArrayCount = 0;
let objectCount = 0;
let commonValueType;
for (let i = 0; i < array.length; i++) {
const value = array[i];
if (isGeoPointArray(value)) {
if (!commonValueType) {
commonValueType = VALUE_TYPE_GEO_POINT;
} else if (objectCount) {
return VALUE_TYPE_ANY;
} else if (commonValueType === VALUE_TYPE_DOUBLE || commonValueType === VALUE_TYPE_GEO_POINT) {
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
}
geoPointArrayCount++;
} else if (Array.isArray(value)) {
throw new Error("TODO: Enonic XP doesn't support Matrixes!");
} else if (isBoolean(value)) {
if (!commonValueType || commonValueType === VALUE_TYPE_BOOLEAN) {
commonValueType = VALUE_TYPE_BOOLEAN;
} else if (objectCount) {
return VALUE_TYPE_ANY;
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
}
} else if (isDate(value)) {
if (!commonValueType || commonValueType === VALUE_TYPE_INSTANT) {
commonValueType = VALUE_TYPE_INSTANT;
} else if (objectCount) {
return VALUE_TYPE_ANY;
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
}
} else if (isNumber(value)) {
if (!commonValueType) {
commonValueType = VALUE_TYPE_DOUBLE;
} else if (objectCount) {
return VALUE_TYPE_ANY;
} else if (commonValueType === VALUE_TYPE_DOUBLE) {
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
} else if (geoPointArrayCount) {
commonValueType = VALUE_TYPE_DOUBLE;
}
} else if (isObject(value)) {
if (!commonValueType || commonValueType === VALUE_TYPE_SET) {
commonValueType = VALUE_TYPE_SET;
} else {
return VALUE_TYPE_ANY;
}
objectCount++;
} else if (isString(value)) {
if (isGeoPointString(value)) {
if (!commonValueType || commonValueType === VALUE_TYPE_GEO_POINT) {
commonValueType = VALUE_TYPE_GEO_POINT;
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
}
} else if (isInstantString(value)) {
if (!commonValueType || commonValueType === VALUE_TYPE_INSTANT) {
commonValueType = VALUE_TYPE_INSTANT;
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
}
} else if (isLocalDateString(value)) {
if (!commonValueType || commonValueType === VALUE_TYPE_LOCAL_DATE) {
commonValueType = VALUE_TYPE_LOCAL_DATE;
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
}
} else if (isLocalDateTimeString(value)) {
if (!commonValueType || commonValueType === VALUE_TYPE_LOCAL_DATE_TIME) {
commonValueType = VALUE_TYPE_LOCAL_DATE_TIME;
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
}
} else if (isTimeString(value)) {
if (!commonValueType || commonValueType === VALUE_TYPE_LOCAL_TIME) {
commonValueType = VALUE_TYPE_LOCAL_TIME;
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
}
} else if (isUuidV4String(value)) {
if (!commonValueType || commonValueType === VALUE_TYPE_REFERENCE) {
commonValueType = VALUE_TYPE_REFERENCE;
} else if (anyStringCount) {
commonValueType = VALUE_TYPE_STRING;
}
} else {
commonValueType = VALUE_TYPE_STRING;
}
anyStringCount++;
} else {
return VALUE_TYPE_ANY;
}
}
return commonValueType;
}
function detectValueType(value) {
if (isGeoPointArray(value)) {
return VALUE_TYPE_GEO_POINT;
}
if (Array.isArray(value)) {
if (!value.length) {
return VALUE_TYPE_ANY;
}
return detectCommonValueType(value);
}
if (isBoolean(value)) {
return VALUE_TYPE_BOOLEAN;
}
if (isDate(value)) {
return VALUE_TYPE_INSTANT;
}
if (isNumber(value)) {
return VALUE_TYPE_DOUBLE;
}
if (isObject(value)) {
return VALUE_TYPE_SET;
}
if (isString(value)) {
if (isGeoPointString(value)) {
return VALUE_TYPE_GEO_POINT;
}
if (isInstantString(value)) {
return VALUE_TYPE_INSTANT;
}
if (isLocalDateString(value)) {
return VALUE_TYPE_LOCAL_DATE;
}
if (isLocalDateTimeString(value)) {
return VALUE_TYPE_LOCAL_DATE_TIME;
}
if (isTimeString(value)) {
return VALUE_TYPE_LOCAL_TIME;
}
if (isUuidV4String(value)) {
return VALUE_TYPE_REFERENCE;
}
return VALUE_TYPE_STRING;
}
return VALUE_TYPE_ANY;
}
// storage/highlighting/index.ts
var HIGHLIGHT_FIELD_ALLTEXT = "_alltext";
var HIGHLIGHT_OPTION_ENCODER_DEFAULT = "default";
var HIGHLIGHT_OPTION_ENCODER_HTML = "html";
var HIGHLIGHT_OPTION_ENCODERS = [
HIGHLIGHT_OPTION_ENCODER_DEFAULT,
HIGHLIGHT_OPTION_ENCODER_HTML
];
// storage/query/index.ts
var query_exports = {};
__export(query_exports, {
DSL_EXPRESSION_VALUE_TYPE_DATE_TIME: () => DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2,
DSL_EXPRESSION_VALUE_TYPE_TIME: () => DSL_EXPRESSION_VALUE_TYPE_TIME2,
FILTER_CLAUSES: () => FILTER_CLAUSES,
FILTER_CLAUSE_MUST: () => FILTER_CLAUSE_MUST,
FILTER_CLAUSE_MUST_NOT: () => FILTER_CLAUSE_MUST_NOT,
FILTER_CLAUSE_SHOULD: () => FILTER_CLAUSE_SHOULD,
QUERY_FUNCTION_FULLTEXT: () => QUERY_FUNCTION_FULLTEXT,
QUERY_FUNCTION_NGRAM: () => QUERY_FUNCTION_NGRAM,
QUERY_FUNCTION_PATH_MATCH: () => QUERY_FUNCTION_PATH_MATCH,
QUERY_FUNCTION_RANGE: () => QUERY_FUNCTION_RANGE,
QUERY_FUNCTION_STEMMED: () => QUERY_FUNCTION_STEMMED,
QUERY_OPERATOR_AND: () => QUERY_OPERATOR_AND,
QUERY_OPERATOR_OR: () => QUERY_OPERATOR_OR,
SORT_CREATED: () => SORT_CREATED,
SORT_DISPLAYNAME: () => SORT_DISPLAYNAME,
SORT_MANUAL: () => SORT_MANUAL,
SORT_MODIFIED: () => SORT_MODIFIED,
addQueryFilter: () => addQueryFilter,
aggregation: () => aggregation_exports,
and: () => and2,
dsl: () => dsl_exports,
filter: () => filter_exports,
fulltext: () => fulltext2,
group: () => group,
isBooleanDslExpression: () => isBooleanDslExpression_default,
isBooleanFilter: () => isBooleanFilter,
isExistsDslExpression: () => isExistsDslExpression,
isExistsFilter: () => isExistsFilter,
isFilter: () => isFilter,
isFulltextDslExpression: () => isFulltextDslExpression,
isHasValueFilter: () => isHasValueFilter,
isIdsFilter: () => isIdsFilter,
isInDslExpression: () => isInDslExpression,
isLikeDslExpression: () => isLikeDslExpression,
isMatchAllDslExpression: () => isMatchAllDslExpression,
isNgramDslExpression: () => isNgramDslExpression,
isNotExistsFilter: () => isNotExistsFilter,
isPathMatchDslExpression: () => isPathMatchDslExpression,
isQueryDsl: () => isQueryDsl,
isRangeDslExpression: () => isRangeDslExpression,
isStemmedDslExpression: () => isStemmedDslExpression,
isTermDslExpression: () => isTermDslExpression,
ngram: () => ngram2,
or: () => or2,
stemmed: () => stemmed2
});
// storage/query/aggregation/index.ts
var aggregation_exports = {};
__export(aggregation_exports, {
stats: () => stats,
statsParams: () => statsParams,
terms: () => terms,
termsParams: () => termsParams
});
// storage/query/aggregation/stats.ts
function statsParams(field) {
const stats2 = {
field
};
return stats2;
}
function stats(field) {
const statsAggregation = {
stats: statsParams(
field
)
};
return statsAggregation;
}
// storage/query/aggregation/terms.ts
function termsParams(field, order, size, minDocCount) {
const terms2 = {
field
};
if (order) {
terms2.order = order;
}
if (size) {
terms2.size = size;
}
if (minDocCount) {
terms2.minDocCount = minDocCount;
}
return terms2;
}
function terms(field, ...optionalArgs) {
let order;
let size;
let minDocCount;
let aggregations;
for (let i = 0; i < optionalArgs.length; i++) {
const 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!`);
}
}
const 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: () => DSL_EXPRESSION_VALUE_TYPE_DATE_TIME2,
DSL_EXPRESSION_VALUE_TYPE_TIME: () => DSL_EXPRESSION_VALUE_TYPE_TIME2,
and: () => and,
bool: () => bool,
fulltext: () => fulltext,
inQuery: () => inQuery,
isBooleanDslExpression: () => isBooleanDslExpression_default,
isExistsDslExpression: () => isExistsDslExpression,
isFulltextDslExpression: () => isFulltextDslExpression,
isInDslExpression: () => isInDslExpression,
isLikeDslExpression: () => isLikeDslExpression,
isMatchAllDslExpression: () => isMatchAllDslExpression,
isNgramDslExpression: () => isNgramDslExpression,
isPathMatchDslExpression: () => isPathMatchDslExpression,
isQueryDsl: () => isQueryDsl,
isRangeDslExpression: () => isRangeDslExpression,
isStemmedDslExpression: () => isStemmedDslExpression,
isTermDslExpression: () => isTermDslExpression,
like: () => like,
must: () => must,
mustNot: () => mustNot,
ngram: () => ngram,
not: () => not,
or: () => or,
pathMatch: () => pathMatch,
range: () => range,
should: () => should,
sort: () => sort,
stemmed: () => stemmed,
term: () => term
});
// 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);
}
// 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);
}