diff --git a/dist/apisearch.js b/dist/apisearch.js index fdf0103..bdb25db 100644 --- a/dist/apisearch.js +++ b/dist/apisearch.js @@ -5348,10 +5348,8 @@ var SortBy_1 = __webpack_require__(/*! ./SortBy */ "./src/Query/SortBy.ts"); /** * Query constants */ -exports.QUERY_DEFAULT_FROM = 0; exports.QUERY_DEFAULT_PAGE = 1; exports.QUERY_DEFAULT_SIZE = 10; -exports.QUERY_INFINITE_SIZE = 1000; exports.NO_MIN_SCORE = 0.0; /** * Query class @@ -5374,6 +5372,8 @@ var Query = /** @class */ (function () { this.highlightsEnabled = false; this.filterFields = []; this.minScore = exports.NO_MIN_SCORE; + this.metadata = {}; + this.subqueries = {}; this.sortByInstance = SortBy_1.SortBy.create(); this.filters._query = Filter_1.Filter.create("", [queryText], 0, Filter_3.FILTER_TYPE_QUERY); } @@ -5453,6 +5453,18 @@ var Query = /** @class */ (function () { query.filters._id = Filter_1.Filter.create("_id", ids, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD); return query; }; + /** + * Create by UUIDs + * + * @param queries + * + * @return {Query} + */ + Query.createMultiquery = function (queries) { + var query = Query.createMatchAll(); + query.subqueries = queries; + return query; + }; /** * set fields * @@ -6173,6 +6185,46 @@ var Query = /** @class */ (function () { Query.prototype.getUser = function () { return this.user; }; + /** + * set metadata value + * + * @param name + * @param value + * + * @return Query + */ + Query.prototype.setMetadataValue = function (name, value) { + this.metadata[name] = value; + return this; + }; + /** + * Get metadata + * + * @return any + */ + Query.prototype.getMetadata = function () { + return this.metadata; + }; + /** + * Add subquery + * + * @param name + * @param subquery + * + * @return Query + */ + Query.prototype.addSubquery = function (name, subquery) { + this.subqueries[name] = subquery; + return this; + }; + /** + * Get subqueries + * + * @return Object + */ + Query.prototype.getSubqueries = function () { + return this.subqueries; + }; /** * To array * @@ -6298,6 +6350,15 @@ var Query = /** @class */ (function () { array.user = userAsArray; } } + array.metadata = this.metadata; + if (this.subqueries instanceof Object && + Object.keys(this.subqueries).length) { + array.subqueries = {}; + for (var i in this.subqueries) { + var subquery = this.subqueries[i]; + array.subqueries[i] = subquery.toArray(); + } + } /** * items promoted */ @@ -6392,9 +6453,21 @@ var Query = /** @class */ (function () { .itemsPromoted .push(ItemUUID_1.ItemUUID.createFromArray(itemsPromotedAsArray[i])); } + /** + * Subqueries + */ + var subqueriesAsArray = typeof array.subqueries === typeof {} + ? array.subqueries + : {}; + for (var i in subqueriesAsArray) { + query.subqueries[i] = Query.createFromArray(subqueriesAsArray[i]); + } /** * Filter fields */ + query.metadata = typeof array.metadata === typeof {} + ? array.metadata + : {}; query.filterFields = array.filter_fields instanceof Array ? array.filter_fields : []; @@ -7866,6 +7939,7 @@ var Result = /** @class */ (function () { function Result(query, totalItems, totalHits) { this.items = []; this.suggests = []; + this.subresults = {}; this.query = query; this.totalItems = totalItems; this.totalHits = totalHits; @@ -7889,6 +7963,19 @@ var Result = /** @class */ (function () { result.items = items; return result; }; + /** + * Create multi results + * + * @param query + * @param subresults + * + * @returns {Result} + */ + Result.createMultiresults = function (query, subresults) { + var result = new Result(query, 0, 0); + result.subresults = subresults; + return result; + }; /** * Add item * @@ -8039,13 +8126,21 @@ var Result = /** @class */ (function () { Result.prototype.getTotalHits = function () { return this.totalHits; }; + /** + * Get subresults + * + * @return Object + */ + Result.prototype.getSubresults = function () { + return this.subresults; + }; /** * to array * * @return {{query: any, total_items: number, total_hits: number, items:any[], aggregations: any, suggests: string[]}} */ Result.prototype.toArray = function () { - return { + var array = { query: this.query.toArray(), total_items: this.totalItems, total_hits: this.totalHits, @@ -8055,6 +8150,15 @@ var Result = /** @class */ (function () { : this.aggregations.toArray(), suggests: this.suggests }; + if (this.subresults instanceof Object && + Object.keys(this.subresults).length) { + array.subresults = {}; + for (var i in this.subresults) { + var subresult = this.subresults[i]; + array.subresults[i] = subresult.toArray(); + } + } + return array; }; /** * Create from array @@ -8064,7 +8168,7 @@ var Result = /** @class */ (function () { * @return {Result} */ Result.createFromArray = function (array) { - return Result.create(Query_1.Query.createFromArray(array.query), array.total_items + var result = Result.create(Query_1.Query.createFromArray(array.query), array.total_items ? array.total_items : 0, array.total_hits ? array.total_hits @@ -8075,6 +8179,16 @@ var Result = /** @class */ (function () { : null, array.items instanceof Array ? array.items.map(function (itemAsArray) { return Item_1.Item.createFromArray(itemAsArray); }) : []); + /** + * Subqueries + */ + var subresultsAsArray = typeof array.subresults === typeof {} + ? array.subresults + : {}; + for (var i in subresultsAsArray) { + result.subresults[i] = Query_1.Query.createFromArray(subresultsAsArray[i]); + } + return result; }; return Result; }()); diff --git a/dist/apisearch.js.map b/dist/apisearch.js.map index 007e0c9..f929fc8 100644 --- a/dist/apisearch.js.map +++ b/dist/apisearch.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://apisearch/webpack/universalModuleDefinition","webpack://apisearch/webpack/bootstrap","webpack://apisearch/./node_modules/axios/index.js","webpack://apisearch/./node_modules/axios/lib/adapters/xhr.js","webpack://apisearch/./node_modules/axios/lib/axios.js","webpack://apisearch/./node_modules/axios/lib/cancel/Cancel.js","webpack://apisearch/./node_modules/axios/lib/cancel/CancelToken.js","webpack://apisearch/./node_modules/axios/lib/cancel/isCancel.js","webpack://apisearch/./node_modules/axios/lib/core/Axios.js","webpack://apisearch/./node_modules/axios/lib/core/InterceptorManager.js","webpack://apisearch/./node_modules/axios/lib/core/createError.js","webpack://apisearch/./node_modules/axios/lib/core/dispatchRequest.js","webpack://apisearch/./node_modules/axios/lib/core/enhanceError.js","webpack://apisearch/./node_modules/axios/lib/core/settle.js","webpack://apisearch/./node_modules/axios/lib/core/transformData.js","webpack://apisearch/./node_modules/axios/lib/defaults.js","webpack://apisearch/./node_modules/axios/lib/helpers/bind.js","webpack://apisearch/./node_modules/axios/lib/helpers/btoa.js","webpack://apisearch/./node_modules/axios/lib/helpers/buildURL.js","webpack://apisearch/./node_modules/axios/lib/helpers/combineURLs.js","webpack://apisearch/./node_modules/axios/lib/helpers/cookies.js","webpack://apisearch/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://apisearch/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://apisearch/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://apisearch/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://apisearch/./node_modules/axios/lib/helpers/spread.js","webpack://apisearch/./node_modules/axios/lib/utils.js","webpack://apisearch/./node_modules/is-buffer/index.js","webpack://apisearch/./node_modules/process/browser.js","webpack://apisearch/./node_modules/tslib/tslib.es6.js","webpack://apisearch/./src/Apisearch.ts","webpack://apisearch/./src/Cache/InMemoryCache.ts","webpack://apisearch/./src/Cache/NoCache.ts","webpack://apisearch/./src/Config/Config.ts","webpack://apisearch/./src/Config/Synonym.ts","webpack://apisearch/./src/Error/ConnectionError.ts","webpack://apisearch/./src/Error/ErrorWithMessage.ts","webpack://apisearch/./src/Error/EventError.ts","webpack://apisearch/./src/Error/ForbiddenError.ts","webpack://apisearch/./src/Error/InvalidFormatError.ts","webpack://apisearch/./src/Error/InvalidTokenError.ts","webpack://apisearch/./src/Error/ResourceExistsError.ts","webpack://apisearch/./src/Error/ResourceNotAvailableError.ts","webpack://apisearch/./src/Error/UnsupportedContentTypeError.ts","webpack://apisearch/./src/Geo/LocationRange.ts","webpack://apisearch/./src/Http/AxiosClient.ts","webpack://apisearch/./src/Http/Client.ts","webpack://apisearch/./src/Http/HttpClient.ts","webpack://apisearch/./src/Http/Response.ts","webpack://apisearch/./src/Http/Retry.ts","webpack://apisearch/./src/Http/RetryMap.ts","webpack://apisearch/./src/Model/AppUUID.ts","webpack://apisearch/./src/Model/Changes.ts","webpack://apisearch/./src/Model/Coordinate.ts","webpack://apisearch/./src/Model/Index.ts","webpack://apisearch/./src/Model/IndexUUID.ts","webpack://apisearch/./src/Model/Item.ts","webpack://apisearch/./src/Model/ItemUUID.ts","webpack://apisearch/./src/Model/Metadata.ts","webpack://apisearch/./src/Model/User.ts","webpack://apisearch/./src/Query/Aggregation.ts","webpack://apisearch/./src/Query/Filter.ts","webpack://apisearch/./src/Query/Query.ts","webpack://apisearch/./src/Query/Range.ts","webpack://apisearch/./src/Query/ScoreStrategies.ts","webpack://apisearch/./src/Query/ScoreStrategy.ts","webpack://apisearch/./src/Query/SortBy.ts","webpack://apisearch/./src/Repository/HttpRepository.ts","webpack://apisearch/./src/Repository/Repository.ts","webpack://apisearch/./src/Result/Counter.ts","webpack://apisearch/./src/Result/Result.ts","webpack://apisearch/./src/Result/ResultAggregation.ts","webpack://apisearch/./src/Result/ResultAggregations.ts","webpack://apisearch/./src/Transformer/Transformer.ts","webpack://apisearch/./src/index.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;AClFA,iBAAiB,mBAAO,CAAC,sDAAa,E;;;;;;;;;;;;ACAzB;;AAEb,YAAY,mBAAO,CAAC,qDAAY;AAChC,aAAa,mBAAO,CAAC,iEAAkB;AACvC,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,mBAAmB,mBAAO,CAAC,mFAA2B;AACtD,sBAAsB,mBAAO,CAAC,yFAA8B;AAC5D,kBAAkB,mBAAO,CAAC,yEAAqB;AAC/C,yFAAyF,mBAAO,CAAC,mEAAmB;;AAEpH;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,aAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,yEAAsB;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACnLa;;AAEb,YAAY,mBAAO,CAAC,kDAAS;AAC7B,WAAW,mBAAO,CAAC,gEAAgB;AACnC,YAAY,mBAAO,CAAC,4DAAc;AAClC,eAAe,mBAAO,CAAC,wDAAY;;AAEnC;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,kEAAiB;AACxC,oBAAoB,mBAAO,CAAC,4EAAsB;AAClD,iBAAiB,mBAAO,CAAC,sEAAmB;;AAE5C;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,oEAAkB;;AAEzC;;AAEA;AACA;;;;;;;;;;;;;ACnDa;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;;AClBa;;AAEb,aAAa,mBAAO,CAAC,2DAAU;;AAE/B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACxDa;;AAEb;AACA;AACA;;;;;;;;;;;;;ACJa;;AAEb,eAAe,mBAAO,CAAC,2DAAe;AACtC,YAAY,mBAAO,CAAC,qDAAY;AAChC,yBAAyB,mBAAO,CAAC,iFAAsB;AACvD,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kCAAkC,cAAc;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;;;;;;AC9Ea;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;;ACnDa;;AAEb,mBAAmB,mBAAO,CAAC,qEAAgB;;AAE3C;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;AAChC,oBAAoB,mBAAO,CAAC,uEAAiB;AAC7C,eAAe,mBAAO,CAAC,uEAAoB;AAC3C,eAAe,mBAAO,CAAC,yDAAa;AACpC,oBAAoB,mBAAO,CAAC,qFAA4B;AACxD,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;;;;;;ACrFa;;AAEb;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBa;;AAEb,kBAAkB,mBAAO,CAAC,mEAAe;;AAEzC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACnBA,+CAAa;;AAEb,YAAY,mBAAO,CAAC,kDAAS;AAC7B,0BAA0B,mBAAO,CAAC,8FAA+B;;AAEjE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,gEAAgB;AACtC,GAAG;AACH;AACA,cAAc,mBAAO,CAAC,iEAAiB;AACvC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY;AACnB;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;;AC/Fa;;AAEb;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACVa;;AAEb;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACnCa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACjEa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC;AACxC,OAAO;;AAEP;AACA,0DAA0D,wBAAwB;AAClF;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B,aAAa,EAAE;AAC5C;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACnEa;;AAEb,YAAY,mBAAO,CAAC,mDAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACXa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ba;;AAEb,WAAW,mBAAO,CAAC,gEAAgB;AACnC,eAAe,mBAAO,CAAC,oDAAW;;AAElC;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,2BAA2B;AAC3B;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9SA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;;ACvLtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;;AAEO;AACP;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEO;AACP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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,8BAA8B,mCAAmC;AACjE,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC3Ia;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACxDa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC7Ca;AACb;AACA,gBAAgB,mBAAO,CAAC,0CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD,iDAAiD,gCAAgC;AACjF,gCAAgC,iCAAiC;AACjE,kCAAkC,qCAAqC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0BAA0B,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,mDAAmD,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC7Ga;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AChEa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AChBa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtBa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Ca;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,0FAA0F,GAAG,EAAE,KAAK;AACpG;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtJa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC3Ca;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Ca;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Da;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Ba;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,mBAAmB,mBAAO,CAAC,sDAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC1Ma;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,cAAc,mBAAO,CAAC,4CAAO;AAC7B,eAAe,mBAAO,CAAC,sCAAU;AACjC,iBAAiB,mBAAO,CAAC,0CAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,oCAAoC,iBAAiB;AACrD,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG;AACtG;AACA;AACA;AACA;AACA;AACA,gEAAgE,6BAA6B,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACjHa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AChCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACVa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AClCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACnEa;AACb;AACA,cAAc,mBAAO,CAAC,oCAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6CAA6C,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACnDa;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACnEa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC1Ha;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC/Da;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE,kBAAkB,mBAAO,CAAC,6CAAa;AACvC,gBAAgB,mBAAO,CAAC,yCAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C,kCAAkC,cAAc;AAChD,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AClGa;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACnEa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE,mBAAmB,mBAAO,CAAC,+CAAc;AACzC,iBAAiB,mBAAO,CAAC,2CAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kCAAkC,eAAe;AACjD,yCAAyC,sBAAsB;AAC/D,4CAA4C,yBAAyB;AACrE,+CAA+C,4BAA4B;AAC3E,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kCAAkC,eAAe;AACjD,yCAAyC,sBAAsB;AAC/D,4CAA4C,yBAAyB;AACrE,+CAA+C,4BAA4B;AAC3E,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yLAAyL,wEAAwE,mFAAmF;AACpV,uHAAuH,wEAAwE,mFAAmF;AAClR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACpYa;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC/Ea;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Da;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACpEa;AACb;AACA,eAAe,mBAAO,CAAC,uCAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kCAAkC,eAAe;AACjD,8BAA8B,+CAA+C;AAC7E,+BAA+B,sCAAsC;AACrE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC3Ka;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACzJa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,mBAAmB,mBAAO,CAAC,sDAAqB;AAChD,iBAAiB,mBAAO,CAAC,kDAAmB;AAC5C,aAAa,mBAAO,CAAC,0CAAe;AACpC,aAAa,mBAAO,CAAC,0CAAe;AACpC,oBAAoB,mBAAO,CAAC,iDAAe;AAC3C,eAAe,mBAAO,CAAC,uCAAU;AACjC,eAAe,mBAAO,CAAC,uCAAU;AACjC,oBAAoB,mBAAO,CAAC,iDAAe;AAC3C,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE,eAAe,mBAAO,CAAC,uCAAU;AACjC,wBAAwB,mBAAO,CAAC,yDAAmB;AACnD,eAAe,mBAAO,CAAC,uCAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,8BAA8B,mCAAmC;AACjE,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,8BAA8B,mCAAmC;AACjE,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mCAAmC,kBAAkB;AACrD,yCAAyC,gEAAgE;AACzG;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA,mDAAmD,6BAA6B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF,mCAAmC,kBAAkB;AACrD,yCAAyC,gEAAgE;AACzG;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF,mCAAmC,wCAAwC;AAC3E;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF,mCAAmC,wCAAwC;AAC3E,mCAAmC,kBAAkB;AACrD,yCAAyC,gEAAgE;AACzG;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF,mCAAmC,kBAAkB;AACrD,yCAAyC,gEAAgE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gEAAgE;AACzG,+BAA+B,4CAA4C;AAC3E;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mCAAmC,wCAAwC;AAC3E,yCAAyC,gEAAgE;AACzG,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gEAAgE;AACzG,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,0CAA0C,wBAAwB,gFAAgF,4BAA4B,EAAE;AAChL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtjCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACvEa;AACb;AACA,sBAAsB,mBAAO,CAAC,qDAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AClGa;AACb;AACA,aAAa,mBAAO,CAAC,0CAAe;AACpC,eAAe,mBAAO,CAAC,uCAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gCAAgC,iCAAiC;AACjE,iCAAiC,mCAAmC;AACpE,kCAAkC,kCAAkC;AACpE,gCAAgC,iCAAiC;AACjE,gCAAgC,eAAe;AAC/C,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gCAAgC,iCAAiC;AACjE,gCAAgC,eAAe;AAC/C,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gCAAgC,iCAAiC;AACjE,gCAAgC,eAAe;AAC/C,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AChPa;AACb;AACA,aAAa,mBAAO,CAAC,0CAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,sDAAqB;AAChD,eAAe,mBAAO,CAAC,uCAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC1Sa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,wBAAwB,mBAAO,CAAC,gEAA0B;AAC1D,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE,0BAA0B,mBAAO,CAAC,oEAA4B;AAC9D,4BAA4B,mBAAO,CAAC,wEAA8B;AAClE,kCAAkC,mBAAO,CAAC,oFAAoC;AAC9E,aAAa,mBAAO,CAAC,0CAAe;AACpC,iBAAiB,mBAAO,CAAC,kDAAmB;AAC5C,eAAe,mBAAO,CAAC,gDAAkB;AACzC,mBAAmB,mBAAO,CAAC,oDAAc;AACzC,cAAc,mBAAO,CAAC,4CAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,IAAI;AACvG;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,IAAI;AAC3G;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,IAAI;AACrG;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,IAAI;AACjF;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG;AACjG;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtXa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACxHa;AACb;AACA,iBAAiB,mBAAO,CAAC,kDAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtIa;AACb;AACA,aAAa,mBAAO,CAAC,0CAAe;AACpC,cAAc,mBAAO,CAAC,4CAAgB;AACtC,2BAA2B,mBAAO,CAAC,gEAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,2CAA2C,EAAE;AAC/F;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iDAAiD,EAAE;AACzG;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACvOa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,eAAe,mBAAO,CAAC,8CAAiB;AACxC,gBAAgB,mBAAO,CAAC,0CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACxOa;AACb;AACA,0BAA0B,mBAAO,CAAC,8DAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACxGa;AACb;AACA,aAAa,mBAAO,CAAC,0CAAe;AACpC,iBAAiB,mBAAO,CAAC,kDAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AClIa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,kBAAkB,mBAAO,CAAC,uCAAa;AACvC;AACA,qBAAqB,mBAAO,CAAC,2DAAuB;AACpD,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,iDAAkB;AAC/C,qBAAqB,mBAAO,CAAC,+DAAyB;AACtD,qBAAqB,mBAAO,CAAC,iEAA0B;AACvD,qBAAqB,mBAAO,CAAC,qDAAoB;AACjD,qBAAqB,mBAAO,CAAC,6DAAwB;AACrD,qBAAqB,mBAAO,CAAC,qEAA4B;AACzD,qBAAqB,mBAAO,CAAC,mEAA2B;AACxD,qBAAqB,mBAAO,CAAC,uEAA6B;AAC1D,qBAAqB,mBAAO,CAAC,mFAAmC;AAChE,qBAAqB,mBAAO,CAAC,uFAAqC;AAClE,qBAAqB,mBAAO,CAAC,uDAAqB;AAClD,qBAAqB,mBAAO,CAAC,qDAAoB;AACjD,qBAAqB,mBAAO,CAAC,2CAAe;AAC5C,qBAAqB,mBAAO,CAAC,mDAAmB;AAChD,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,yCAAc;AAC3C,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,qDAAoB;AACjD,qBAAqB,mBAAO,CAAC,yCAAc;AAC3C,qBAAqB,mBAAO,CAAC,iDAAkB;AAC/C,qBAAqB,mBAAO,CAAC,iDAAkB;AAC/C,qBAAqB,mBAAO,CAAC,yCAAc;AAC3C,qBAAqB,mBAAO,CAAC,uDAAqB;AAClD,qBAAqB,mBAAO,CAAC,6CAAgB;AAC7C,qBAAqB,mBAAO,CAAC,2CAAe;AAC5C,qBAAqB,mBAAO,CAAC,2CAAe;AAC5C,qBAAqB,mBAAO,CAAC,+DAAyB;AACtD,qBAAqB,mBAAO,CAAC,2DAAuB;AACpD,qBAAqB,mBAAO,CAAC,6CAAgB;AAC7C,qBAAqB,mBAAO,CAAC,uEAA6B;AAC1D,qBAAqB,mBAAO,CAAC,+DAAyB;AACtD,qBAAqB,mBAAO,CAAC,qEAA4B;AACzD,qBAAqB,mBAAO,CAAC,uEAA6B;AAC1D,qBAAqB,mBAAO,CAAC,iDAAkB;AAC/C,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,mEAA2B","file":"apisearch.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apisearch\"] = factory();\n\telse\n\t\troot[\"apisearch\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar NoCache_1 = require(\"./Cache/NoCache\");\nvar AxiosClient_1 = require(\"./Http/AxiosClient\");\nvar RetryMap_1 = require(\"./Http/RetryMap\");\nvar Query_1 = require(\"./Query/Query\");\nvar Query_2 = require(\"./Query/Query\");\nvar Query_3 = require(\"./Query/Query\");\nvar SortBy_1 = require(\"./Query/SortBy\");\nvar HttpRepository_1 = require(\"./Repository/HttpRepository\");\nvar Result_1 = require(\"./Result/Result\");\nvar ResultAggregations_1 = require(\"./Result/ResultAggregations\");\nvar Transformer_1 = require(\"./Transformer/Transformer\");\n/**\n * Apisearch class\n */\nvar Apisearch = /** @class */ (function () {\n function Apisearch() {\n }\n /**\n * Constructor\n *\n * @param config\n *\n * @return {HttpRepository}\n */\n Apisearch.createRepository = function (config) {\n Apisearch.ensureRepositoryConfigIsValid(config);\n config.options = tslib_1.__assign({ api_version: \"v1\", cache: new NoCache_1.NoCache(), timeout: 5000, override_queries: true }, config.options);\n /**\n * Client\n */\n var httpClient = typeof config.options.http_client !== \"undefined\"\n ? config.options.http_client\n : new AxiosClient_1.AxiosClient(config.options.endpoint, config.options.api_version, config.options.timeout, new RetryMap_1.RetryMap(), config.options.override_queries, config.options.cache);\n return new HttpRepository_1.HttpRepository(httpClient, config.app_id, config.index_id, config.token, new Transformer_1.Transformer());\n };\n /**\n * Ensure the Repository configuration is valid\n *\n * @param config\n */\n Apisearch.ensureRepositoryConfigIsValid = function (config) {\n Apisearch.ensureIsDefined(config.app_id, \"app_id\");\n Apisearch.ensureIsDefined(config.index_id, \"index_id\");\n Apisearch.ensureIsDefined(config.token, \"token\");\n Apisearch.ensureIsDefined(config.options.endpoint, \"options.endpoint\");\n };\n /**\n * Ensure the value is not undefined\n *\n * @param param\n * @param name\n */\n Apisearch.ensureIsDefined = function (param, name) {\n if (typeof param === \"undefined\") {\n throw new TypeError(name + \" parameter must be defined.\");\n }\n };\n /**\n * Created located\n *\n * @param coordinate\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Apisearch.createQueryLocated = function (coordinate, queryText, page, size) {\n if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; }\n return Query_3.Query.createLocated(coordinate, queryText, page, size);\n };\n /**\n * Create\n *\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Apisearch.createQuery = function (queryText, page, size) {\n if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; }\n return Query_3.Query.create(queryText, page, size);\n };\n /**\n * Create match all\n *\n * @return {Query}\n */\n Apisearch.createQueryMatchAll = function () {\n return Query_3.Query.createMatchAll();\n };\n /**\n * Create by UUID\n *\n * @param uuid\n *\n * @return {Query}\n */\n Apisearch.createQueryByUUID = function (uuid) {\n return Query_3.Query.createByUUID(uuid);\n };\n /**\n * Create by UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Apisearch.createQueryByUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n return Query_3.Query.createByUUIDs.apply(Query_3.Query, uuids);\n };\n /**\n * Create empty result\n *\n * @return {Result}\n */\n Apisearch.createEmptyResult = function () {\n return Result_1.Result.create(Apisearch.createQueryMatchAll(), 0, 0, new ResultAggregations_1.ResultAggregations(0), [], []);\n };\n /**\n * Create empty sortby\n *\n * @return {SortBy}\n */\n Apisearch.createEmptySortBy = function () {\n return SortBy_1.SortBy.create();\n };\n return Apisearch;\n}());\nexports[\"default\"] = Apisearch;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\n/**\n * Cache class\n */\nvar InMemoryCache = /** @class */ (function () {\n /**\n * Constructor\n */\n function InMemoryCache() {\n this.cache = {};\n this.size = 0;\n this.cache = {};\n this.size = 0;\n }\n /**\n * Set cache element\n *\n * @param key\n * @param value\n *\n * @returns {void}\n */\n InMemoryCache.prototype.set = function (key, value) {\n var _a;\n this.cache = tslib_1.__assign({}, this.cache, (_a = {}, _a[key] = value, _a));\n this.size = this.size + 1;\n };\n /**\n * Get element from cache\n *\n * @param key\n *\n * @returns {any}\n */\n InMemoryCache.prototype.get = function (key) {\n return this.cache[key];\n };\n /**\n * Deletes element from cache\n *\n * @param key\n */\n InMemoryCache.prototype.del = function (key) {\n delete this.cache[key];\n };\n /**\n * Clear cache\n */\n InMemoryCache.prototype.clear = function () {\n this.cache = {};\n this.size = 0;\n };\n return InMemoryCache;\n}());\nexports.InMemoryCache = InMemoryCache;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Cache class\n */\nvar NoCache = /** @class */ (function () {\n function NoCache() {\n }\n /**\n * Set cache element\n *\n * @param key\n * @param value\n *\n * @returns {void}\n */\n NoCache.prototype.set = function (key, value) {\n // Empty\n };\n /**\n * Get element from cache\n *\n * @param key\n *\n * @returns {any}\n */\n NoCache.prototype.get = function (key) {\n return undefined;\n };\n /**\n * Deletes element from cache\n *\n * @param key\n */\n NoCache.prototype.del = function (key) {\n // Empty\n };\n /**\n * Clear cache\n */\n NoCache.prototype.clear = function () {\n // Empty\n };\n return NoCache;\n}());\nexports.NoCache = NoCache;\n","\"use strict\";\nexports.__esModule = true;\nvar Synonym_1 = require(\"./Synonym\");\nexports.DEFAULT_SHARDS = 1;\nexports.DEFAULT_REPLICAS = 0;\n/**\n * Result class\n */\nvar Config = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param language\n * @param storeSearchableMetadata\n * @param shards\n * @param replicas\n */\n function Config(language, storeSearchableMetadata, shards, replicas) {\n if (language === void 0) { language = null; }\n if (storeSearchableMetadata === void 0) { storeSearchableMetadata = true; }\n if (shards === void 0) { shards = exports.DEFAULT_SHARDS; }\n if (replicas === void 0) { replicas = exports.DEFAULT_REPLICAS; }\n this.synonyms = [];\n this.language = language;\n this.storeSearchableMetadata = storeSearchableMetadata;\n this.shards = shards;\n this.replicas = replicas;\n }\n /**\n * Get language\n *\n * @return {string}\n */\n Config.prototype.getLanguage = function () {\n return this.language;\n };\n /**\n * Should searchable metadata be stored\n *\n * @return {boolean}\n */\n Config.prototype.shouldSearchableMetadataBeStored = function () {\n return this.storeSearchableMetadata;\n };\n /**\n * Add synonym\n *\n * @param synonym\n */\n Config.prototype.addSynonym = function (synonym) {\n this.synonyms.push(synonym);\n };\n /**\n * Get synonyms\n *\n * @return {Synonym[]}\n */\n Config.prototype.getSynonyms = function () {\n return this.synonyms;\n };\n /**\n * Get shards\n *\n * @return {number}\n */\n Config.prototype.getShards = function () {\n return this.shards;\n };\n /**\n * Get replicas\n *\n * @return {number}\n */\n Config.prototype.getReplicas = function () {\n return this.replicas;\n };\n /**\n * to array\n */\n Config.prototype.toArray = function () {\n return {\n language: this.language,\n store_searchable_metadata: this.storeSearchableMetadata,\n synonyms: this.synonyms.map(function (synonym) { return synonym.toArray(); }),\n shards: this.shards,\n replicas: this.replicas\n };\n };\n /**\n * Create from array\n */\n Config.createFromArray = function (array) {\n var config = new Config(array.language ? array.language : null, typeof array.store_searchable_metadata == \"boolean\"\n ? array.store_searchable_metadata\n : true);\n if (array.synonyms instanceof Array &&\n array.synonyms.length > 0) {\n config.synonyms = array.synonyms.map(function (synonym) { return Synonym_1.Synonym.createFromArray(synonym); });\n }\n config.shards = typeof array.shards == \"number\"\n ? array.shards\n : exports.DEFAULT_SHARDS;\n config.replicas = typeof array.replicas == \"number\"\n ? array.replicas\n : exports.DEFAULT_REPLICAS;\n return config;\n };\n return Config;\n}());\nexports.Config = Config;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Result class\n */\nvar Synonym = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param words\n */\n function Synonym(words) {\n this.words = words;\n }\n /**\n * get words\n *\n * @return {string[]}\n */\n Synonym.prototype.getWords = function () {\n return this.words;\n };\n /**\n * Create by words\n *\n * @param words\n *\n * @return {Synonym}\n */\n Synonym.createbyWords = function (words) {\n return new Synonym(words);\n };\n /**\n * To array\n *\n * @return {{words: string[]}}\n */\n Synonym.prototype.toArray = function () {\n return {\n words: this.words\n };\n };\n /**\n * create from array\n *\n * @param array\n *\n * @returns {Synonym}\n */\n Synonym.createFromArray = function (array) {\n return new Synonym(array.words instanceof Object\n ? array.words\n : []);\n };\n /**\n * Expand\n *\n * @returns {string}\n */\n Synonym.prototype.expand = function () {\n return this.words.join(\",\");\n };\n return Synonym;\n}());\nexports.Synonym = Synonym;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Connection error\n */\nvar ConnectionError = /** @class */ (function (_super) {\n tslib_1.__extends(ConnectionError, _super);\n function ConnectionError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ConnectionError.getTransportableHTTPError = function () {\n return 500;\n };\n return ConnectionError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ConnectionError = ConnectionError;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * ConnectError\n */\nvar ErrorWithMessage = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param message\n */\n function ErrorWithMessage(message) {\n this.message = message;\n }\n return ErrorWithMessage;\n}());\nexports.ErrorWithMessage = ErrorWithMessage;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * EventError\n */\nvar EventError = /** @class */ (function (_super) {\n tslib_1.__extends(EventError, _super);\n function EventError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n EventError.throwEndpointNotAvailable = function () {\n return new EventError(\"Endpoint not available\");\n };\n return EventError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.EventError = EventError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Forbidden Error\n */\nvar ForbiddenError = /** @class */ (function (_super) {\n tslib_1.__extends(ForbiddenError, _super);\n function ForbiddenError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ForbiddenError.getTransportableHTTPError = function () {\n return 403;\n };\n /**\n * App id is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createAppIdIsRequiredException = function () {\n return new ForbiddenError(\"AppId query parameter MUST be defined with a valid value\");\n };\n /**\n * Index id is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createIndexIsRequiredException = function () {\n return new ForbiddenError(\"Index query parameter MUST be defined with a valid value\");\n };\n /**\n * Token is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createTokenIsRequiredException = function () {\n return new ForbiddenError(\"Token query parameter MUST be defined with a valid value\");\n };\n return ForbiddenError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ForbiddenError = ForbiddenError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Class InvalidFormatError\n */\nvar InvalidFormatError = /** @class */ (function (_super) {\n tslib_1.__extends(InvalidFormatError, _super);\n function InvalidFormatError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n InvalidFormatError.getTransportableHTTPError = function () {\n return 400;\n };\n /**\n * Item representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.itemRepresentationNotValid = function () {\n return new InvalidFormatError(\"Item representation not valid. Expecting Item array serialized but found malformed data\");\n };\n /**\n * Item UUID representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.itemUUIDRepresentationNotValid = function () {\n return new InvalidFormatError(\"Item UUID representation not valid. Expecting UUID array serialized but found malformed data\");\n };\n /**\n * Create Composed UUID bad format.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.composedItemUUIDNotValid = function () {\n return new InvalidFormatError(\"A composed UUID should always follow this format: {id}~{type}.\");\n };\n /**\n * Create Query sorted by distance without coordinate.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.querySortedByDistanceWithoutCoordinate = function () {\n return new InvalidFormatError(\"In order to be able to sort by coordinates, you need to create a Query by using Query::createLocated() instead of Query::create()\");\n };\n /**\n * Query representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.queryFormatNotValid = function () {\n return new InvalidFormatError(\"Query Format not valid. Expecting a Query serialized but found malformed data\");\n };\n /**\n * Coordinate representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.coordinateFormatNotValid = function () {\n return new InvalidFormatError(\"A Coordinate should always contain a lat (Latitude) and a lon (Longitude)\");\n };\n /**\n * Config representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.configFormatNotValid = function () {\n return new InvalidFormatError(\"Config Format not valid. Expecting a Config serialized but found malformed data\");\n };\n /**\n * Token representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.tokenFormatNotValid = function () {\n return new InvalidFormatError(\"Token Format not valid. Expecting a Token serialized but found malformed data\");\n };\n /**\n * Index format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.indexFormatNotValid = function () {\n return new InvalidFormatError('Index Format not valid. Expecting an Index serialized but found malformed data');\n };\n /**\n * IndexUUI format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.indexUUIDFormatNotValid = function () {\n return new InvalidFormatError('IndexUUID Format not valid. Expecting an IndexUUID serialized but found malformed data');\n };\n /**\n * App format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.appUUIDFormatNotValid = function () {\n return new InvalidFormatError('AppUUID Format not valid. Expecting an AppUUID serialized but found malformed data');\n };\n /**\n * Campaign representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.campaignFormatNotValid = function () {\n return new InvalidFormatError(\"Campaign Format not valid. Expecting a Campaign serialized but found malformed data\");\n };\n /**\n * Changes representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.changesFormatNotValid = function () {\n return new InvalidFormatError(\"Changes Format not valid. Expecting a Changes serialized but found malformed data\");\n };\n /**\n * Boost clause representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.boostClauseFormatNotValid = function () {\n return new InvalidFormatError(\"Boost clause Format not valid. Expecting a Boost clause serialized but found malformed data\");\n };\n /**\n * token uuid representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.tokenUUIDFormatNotValid = function () {\n return new InvalidFormatError(\"Token UUID Format not valid. Expecting a TokenUUID serialized but found malformed data\");\n };\n /**\n * User representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.userFormatNotValid = function () {\n return new InvalidFormatError(\"User Format not valid. Expecting a User serialized but found malformed data\");\n };\n return InvalidFormatError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.InvalidFormatError = InvalidFormatError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Invalid token error\n */\nvar InvalidTokenError = /** @class */ (function (_super) {\n tslib_1.__extends(InvalidTokenError, _super);\n function InvalidTokenError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n InvalidTokenError.getTransportableHTTPError = function () {\n return 401;\n };\n /**\n * Invalid token permissions\n *\n * @param tokenReference\n *\n * @return {InvalidTokenError}\n */\n InvalidTokenError.createInvalidTokenPermissions = function (tokenReference) {\n return new InvalidTokenError(\"Token \" + tokenReference + \"not valid\");\n };\n /**\n * Invalid token permissions\n *\n * @param tokenReference\n * @param maxHitsPerQuery\n *\n * @return {InvalidTokenError}\n */\n InvalidTokenError.createInvalidTokenMaxHitsPerQuery = function (tokenReference, maxHitsPerQuery) {\n return new InvalidTokenError(\"Token \" + tokenReference + \"not valid. Max \" + maxHitsPerQuery + \" hits allowed\");\n };\n return InvalidTokenError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.InvalidTokenError = InvalidTokenError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Resource exists error\n */\nvar ResourceExistsError = /** @class */ (function (_super) {\n tslib_1.__extends(ResourceExistsError, _super);\n function ResourceExistsError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ResourceExistsError.getTransportableHTTPError = function () {\n return 409;\n };\n /**\n * Index not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.indexAvailable = function () {\n return new ResourceExistsError(\"Index exists and cannot be created again\");\n };\n /**\n * Events not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.eventsIndexAvailable = function () {\n return new ResourceExistsError(\"Events index exists and cannot be created again\");\n };\n /**\n * Logs not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.logsIndexAvailable = function () {\n return new ResourceExistsError(\"Logs index exists and cannot be created again\");\n };\n return ResourceExistsError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ResourceExistsError = ResourceExistsError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Resource not available error\n */\nvar ResourceNotAvailableError = /** @class */ (function (_super) {\n tslib_1.__extends(ResourceNotAvailableError, _super);\n function ResourceNotAvailableError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ResourceNotAvailableError.getTransportableHTTPError = function () {\n return 404;\n };\n /**\n * Index not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.indexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Index not available - \" + resourceId);\n };\n /**\n * Events not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.eventsIndexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Events not available - \" + resourceId);\n };\n /**\n * Logs not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.logsIndexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Logs not available - \" + resourceId);\n };\n /**\n * Engine not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.engineNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Engine not available - \" + resourceId);\n };\n return ResourceNotAvailableError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ResourceNotAvailableError = ResourceNotAvailableError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Unsupported content type error\n */\nvar UnsupportedContentTypeError = /** @class */ (function (_super) {\n tslib_1.__extends(UnsupportedContentTypeError, _super);\n function UnsupportedContentTypeError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n UnsupportedContentTypeError.getTransportableHTTPError = function () {\n return 415;\n };\n /**\n * Unsupported content type\n *\n * @return {InvalidFormatError}\n */\n UnsupportedContentTypeError.createUnsupportedContentTypeException = function () {\n return new UnsupportedContentTypeError(\"This content type is not accepted. Please use application/json\");\n };\n return UnsupportedContentTypeError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.UnsupportedContentTypeError = UnsupportedContentTypeError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Coordinate_1 = require(\"../Model/Coordinate\");\n/**\n * Abstract Location Range class\n */\nvar LocationRange = /** @class */ (function () {\n function LocationRange() {\n }\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n LocationRange.fromFilterObject = function (object) {\n throw TypeError(\"Method not valid\");\n };\n /**\n * to array\n */\n LocationRange.prototype.toArray = function () {\n return {\n type: this.getName(),\n data: this.toFilterObject()\n };\n };\n /**\n * Create from array\n *\n * @param array\n */\n LocationRange.createFromArray = function (array) {\n if (array.type == \"CoordinateAndDistance\") {\n return CoordinateAndDistance.fromFilterObject(array.data);\n }\n if (array.type == \"Polygon\") {\n return Polygon.fromFilterObject(array.data);\n }\n if (array.type == \"Square\") {\n return Square.fromFilterObject(array.data);\n }\n };\n return LocationRange;\n}());\nexports.LocationRange = LocationRange;\n/**\n * CoordinateAndDistance\n */\nvar CoordinateAndDistance = /** @class */ (function (_super) {\n tslib_1.__extends(CoordinateAndDistance, _super);\n /**\n * Constructor\n *\n * @param coordinate\n * @param distance\n */\n function CoordinateAndDistance(coordinate, distance) {\n var _this = _super.call(this) || this;\n _this.coordinate = coordinate;\n _this.distance = distance;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{}}}\n */\n CoordinateAndDistance.prototype.toFilterObject = function () {\n return {\n coordinate: this.coordinate.toArray(),\n distance: this.distance\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n CoordinateAndDistance.prototype.getName = function () {\n return \"CoordinateAndDistance\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n CoordinateAndDistance.fromFilterObject = function (object) {\n return new CoordinateAndDistance(Coordinate_1.Coordinate.createFromArray(object.coordinate), object.distance);\n };\n return CoordinateAndDistance;\n}(LocationRange));\nexports.CoordinateAndDistance = CoordinateAndDistance;\n/**\n * Polygon\n */\nvar Polygon = /** @class */ (function (_super) {\n tslib_1.__extends(Polygon, _super);\n /**\n * Constructor\n *\n * @param coordinates\n */\n function Polygon(coordinates) {\n var _this = _super.call(this) || this;\n if (coordinates.length < 3) {\n throw new Error(\"A polygon needs more than two coordinates.\");\n }\n _this.coordinates = coordinates;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{coordinates: {lat:number, lon:number}[]}}\n */\n Polygon.prototype.toFilterObject = function () {\n var coordinates = [];\n for (var i in this.coordinates) {\n coordinates.push(this.coordinates[i].toArray());\n }\n return {\n coordinates: coordinates\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n Polygon.prototype.getName = function () {\n return \"Polygon\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {Polygon}\n */\n Polygon.fromFilterObject = function (object) {\n var coordinates = [];\n for (var i in object.coordinates) {\n coordinates.push(Coordinate_1.Coordinate.createFromArray(object.coordinates[i]));\n }\n return new Polygon(coordinates);\n };\n return Polygon;\n}(LocationRange));\nexports.Polygon = Polygon;\n/**\n * Square\n */\nvar Square = /** @class */ (function (_super) {\n tslib_1.__extends(Square, _super);\n /**\n * Constructor\n *\n * @param topLeftCoordinate\n * @param bottomRightCoordinate\n */\n function Square(topLeftCoordinate, bottomRightCoordinate) {\n var _this = _super.call(this) || this;\n _this.topLeftCoordinate = topLeftCoordinate;\n _this.bottomRightCoordinate = bottomRightCoordinate;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{}}}\n */\n Square.prototype.toFilterObject = function () {\n return {\n top_left: this.topLeftCoordinate.toArray(),\n bottom_right: this.bottomRightCoordinate.toArray()\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n Square.prototype.getName = function () {\n return \"Square\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n Square.fromFilterObject = function (object) {\n return new Square(Coordinate_1.Coordinate.createFromArray(object.top_left), Coordinate_1.Coordinate.createFromArray(object.bottom_right));\n };\n return Square;\n}(LocationRange));\nexports.Square = Square;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar axios_1 = require(\"axios\");\nvar Client_1 = require(\"./Client\");\nvar Response_1 = require(\"./Response\");\n/**\n * AxiosClient\n */\nvar AxiosClient = /** @class */ (function (_super) {\n tslib_1.__extends(AxiosClient, _super);\n /**\n * Constructor\n *\n * @param host\n * @param version\n * @param timeout\n * @param retryMap\n * @param overrideQueries\n * @param cache\n */\n function AxiosClient(host, version, timeout, retryMap, overrideQueries, cache) {\n var _this = _super.call(this, version, retryMap) || this;\n _this.host = host;\n _this.timeout = timeout;\n _this.cache = cache;\n _this.overrideQueries = overrideQueries;\n _this.cancelToken = {};\n return _this;\n }\n /**\n * Get\n *\n * @param url\n * @param method\n * @param credentials\n * @param parameters\n * @param data\n *\n * @return {Promise}\n */\n AxiosClient.prototype.get = function (url, method, credentials, parameters, data) {\n if (parameters === void 0) { parameters = {}; }\n if (data === void 0) { data = {}; }\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var that;\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n that = this;\n url = url.replace(/^\\/*|\\/*$/g, \"\");\n url = \"/\" + (this.version + \"/\" + url).replace(/^\\/*|\\/*$/g, \"\");\n method = method.toLowerCase();\n if (\"get\" === method &&\n this.overrideQueries) {\n this.abort(url);\n }\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var headers = \"get\" == method\n ? {}\n : {\n \"Content-Encoding\": \"gzip\",\n \"Content-Type\": \"application/json\"\n };\n var axiosRequestConfig = {\n url: url + \"?\" + Client_1.Client.objectToUrlParameters(tslib_1.__assign({}, credentials, parameters)),\n data: data,\n headers: headers,\n method: method,\n baseURL: that.host.replace(/\\/*$/g, \"\"),\n timeout: that.timeout,\n transformRequest: [function (data) { return JSON.stringify(data); }]\n };\n if (typeof _this.cancelToken[url] != 'undefined') {\n axiosRequestConfig.cancelToken = _this.cancelToken[url].token;\n }\n axios_1[\"default\"]\n .request(axiosRequestConfig)\n .then(function (axiosResponse) {\n var response = new Response_1.Response(axiosResponse.status, axiosResponse.data);\n return resolve(response);\n })[\"catch\"](function (error) {\n if (error.response === undefined) {\n return;\n }\n var response = new Response_1.Response(error.response.status, error.response.data);\n return reject(response);\n });\n })];\n });\n });\n };\n /**\n * Abort current request\n * And regenerate the cancellation token\n *\n * @param url\n */\n AxiosClient.prototype.abort = function (url) {\n if (typeof this.cancelToken[url] != 'undefined') {\n this.cancelToken[url].cancel();\n }\n this.generateCancelToken(url);\n };\n /**\n * Generate a new cancellation token for a query\n *\n * @param url\n */\n AxiosClient.prototype.generateCancelToken = function (url) {\n this.cancelToken[url] = axios_1[\"default\"].CancelToken.source();\n };\n return AxiosClient;\n}(Client_1.Client));\nexports.AxiosClient = AxiosClient;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Client\n */\nvar Client = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param version\n * @param retryMap\n */\n function Client(version, retryMap) {\n this.retryMap = retryMap;\n this.version = version.replace(/^\\/*|\\/*$/g, \"\");\n }\n /**\n * Build an url parameters array by an object\n *\n * @param params\n *\n * @returns {string}\n */\n Client.objectToUrlParameters = function (params) {\n var builtParams = [];\n for (var i in params) {\n builtParams.push(i + \"=\" + params[i]);\n }\n return builtParams.join(\"&\");\n };\n return Client;\n}());\nexports.Client = Client;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Http class\n */\nvar HttpClient = /** @class */ (function () {\n function HttpClient() {\n }\n return HttpClient;\n}());\nexports.HttpClient = HttpClient;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Response\n */\nvar Response = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param code\n * @param body\n */\n function Response(code, body) {\n this.code = code;\n this.body = body;\n }\n /**\n * Get code\n *\n * @return {number}\n */\n Response.prototype.getCode = function () {\n return this.code;\n };\n /**\n * Get body\n *\n * @return {any}\n */\n Response.prototype.getBody = function () {\n return this.body;\n };\n return Response;\n}());\nexports.Response = Response;\n","\"use strict\";\nexports.__esModule = true;\nexports.DEFAULT_MICROSECONDS_BETWEEN_RETRIES = 1000;\n/**\n * Http class\n */\nvar Retry = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param url\n * @param method\n * @param retries\n * @param microsecondsBetweenRetries\n */\n function Retry(url, method, retries, microsecondsBetweenRetries) {\n this.url = url;\n this.method = method;\n this.retries = retries;\n this.microsecondsBetweenRetries = microsecondsBetweenRetries;\n }\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Retry}\n */\n Retry.createFromArray = function (array) {\n return new Retry(array.url ? array.url : \"*\", array.method ? array.method : \"*\", array.retries ? array.retries : 0, array.microseconds_between_retries\n ? array.microseconds_between_retries\n : exports.DEFAULT_MICROSECONDS_BETWEEN_RETRIES);\n };\n /**\n * Get url\n *\n * @return {string}\n */\n Retry.prototype.getUrl = function () {\n return this.url;\n };\n /**\n * Get method\n *\n * @return {string}\n */\n Retry.prototype.getMethod = function () {\n return this.method;\n };\n /**\n * Ge retries\n *\n * @return {number}\n */\n Retry.prototype.getRetries = function () {\n return this.retries;\n };\n /**\n * Get microseconds between retries\n *\n * @return {number}\n */\n Retry.prototype.getMicrosecondsBetweenRetries = function () {\n return this.microsecondsBetweenRetries;\n };\n return Retry;\n}());\nexports.Retry = Retry;\n","\"use strict\";\nexports.__esModule = true;\nvar Retry_1 = require(\"./Retry\");\n/**\n * Http class\n */\nvar RetryMap = /** @class */ (function () {\n function RetryMap() {\n this.retries = {};\n }\n /**\n * Add retry\n *\n * @param retry\n */\n RetryMap.prototype.addRetry = function (retry) {\n this.retries[retry.getUrl() + \"~~\" + retry.getMethod()] = retry;\n };\n /**\n * Create from array\n */\n RetryMap.createFromArray = function (array) {\n var retryMap = new RetryMap();\n retryMap.retries = array.map(function (retry) { return Retry_1.Retry.createFromArray(retry); });\n return retryMap;\n };\n /**\n * Get retry\n *\n * @param url\n * @param method\n *\n * @returns {Retry}\n */\n RetryMap.prototype.getRetry = function (url, method) {\n if (this.retries[url + \"~~\" + method] instanceof Retry_1.Retry) {\n return this.retries[url + \"~~\" + method];\n }\n if (this.retries[\"*~~\" + method] instanceof Retry_1.Retry) {\n return this.retries[\"*~~\" + method];\n }\n if (this.retries[url + \"~~*\"] instanceof Retry_1.Retry) {\n return this.retries[url + \"~~*\"];\n }\n if (this.retries[\"*~~*\"] instanceof Retry_1.Retry) {\n return this.retries[\"*~~*\"];\n }\n return null;\n };\n return RetryMap;\n}());\nexports.RetryMap = RetryMap;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * AppUUID class\n */\nvar AppUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n */\n function AppUUID(id) {\n if (id.indexOf('_') >= 0) {\n throw InvalidFormatError_1.InvalidFormatError.appUUIDFormatNotValid();\n }\n this.id = id;\n }\n /**\n * Create by id\n *\n * @param id\n *\n * @returns {ItemUUID}\n */\n AppUUID.createById = function (id) {\n return new AppUUID(id);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n AppUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n AppUUID.prototype.toArray = function () {\n return {\n id: this.id\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n AppUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new AppUUID(array.id);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n AppUUID.prototype.composedUUID = function () {\n return this.id;\n };\n return AppUUID;\n}());\nexports.AppUUID = AppUUID;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * filter constants\n */\nexports.TYPE_VALUE = 1;\nexports.TYPE_LITERAL = 4;\nexports.TYPE_ARRAY_ELEMENT_UPDATE = 8;\nexports.TYPE_ARRAY_ELEMENT_ADD = 16;\nexports.TYPE_ARRAY_ELEMENT_DELETE = 32;\nexports.TYPE_ARRAY_EXPECTS_ELEMENT = 24;\nexports.TYPE_ARRAY = 56;\n/**\n * Changes Type cast\n * @param Changes\n */\nvar Changes = /** @class */ (function () {\n function Changes() {\n /**\n * Changes\n *\n * @type {Array}\n */\n this.changes = [];\n }\n /**\n * Add new change\n *\n * @param field\n * @param value\n * @param type\n */\n Changes.prototype.addChange = function (field, value, type) {\n if (type === void 0) { type = exports.TYPE_VALUE; }\n this.changes.push({\n field: field,\n type: type,\n value: value\n });\n };\n /**\n * Update element from list\n *\n * @param field\n * @param condition\n * @param value\n * @param type\n */\n Changes.prototype.updateElementFromList = function (field, condition, value, type) {\n this.changes.push({\n field: field,\n type: type | exports.TYPE_ARRAY_ELEMENT_UPDATE,\n condition: condition,\n value: value\n });\n };\n /**\n * Add element in list\n *\n * @param field\n * @param value\n * @param type\n */\n Changes.prototype.addElementInList = function (field, value, type) {\n this.changes.push({\n field: field,\n type: type | exports.TYPE_ARRAY_ELEMENT_ADD,\n value: value\n });\n };\n /**\n * Delete element from list\n *\n * @param field\n * @param condition\n */\n Changes.prototype.deleteElementFromList = function (field, condition) {\n this.changes.push({\n field: field,\n type: exports.TYPE_ARRAY_ELEMENT_DELETE,\n condition: condition\n });\n };\n /**\n * Get changes\n *\n * @returns {[]}\n */\n Changes.prototype.getChanges = function () {\n return this.changes;\n };\n /**\n * Create\n *\n * @returns {Changes}\n */\n Changes.create = function () {\n return new Changes();\n };\n /**\n * To array\n *\n * @returns {[]}\n */\n Changes.prototype.toArray = function () {\n return JSON.parse(JSON.stringify(this.changes));\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Changes}\n */\n Changes.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var changes = Changes.create();\n changes.changes = array;\n return changes;\n };\n return Changes;\n}());\nexports.Changes = Changes;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * Coordinate Type cast\n * @param coordinate\n */\nvar Coordinate = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {number} lat\n * @param {number} lon\n */\n function Coordinate(lat, lon) {\n this.lat = lat;\n this.lon = lon;\n }\n /**\n * Get latitude\n *\n * @return float\n */\n Coordinate.prototype.getLatitude = function () {\n return this.lat;\n };\n /**\n * Get longitude\n *\n * @return float\n */\n Coordinate.prototype.getLongitude = function () {\n return this.lon;\n };\n /**\n * To array\n *\n * @return {{lat: number, lon: number}}\n */\n Coordinate.prototype.toArray = function () {\n return {\n lat: this.lat,\n lon: this.lon\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return Coordinate\n *\n * @throws InvalidFormatError\n */\n Coordinate.createFromArray = function (array) {\n if (typeof array.lat == \"undefined\" ||\n typeof array.lon == \"undefined\") {\n throw InvalidFormatError_1.InvalidFormatError.coordinateFormatNotValid();\n }\n return new Coordinate(array.lat, array.lon);\n };\n return Coordinate;\n}());\nexports.Coordinate = Coordinate;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar IndexUUID_1 = require(\"./IndexUUID\");\nvar AppUUID_1 = require(\"./AppUUID\");\n/**\n * Index class\n */\nvar Index = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param uuid\n * @param appUUID\n * @param isOK\n * @param docCount\n * @param size\n */\n function Index(uuid, appUUID, isOK, docCount, size) {\n if (isOK === void 0) { isOK = false; }\n if (docCount === void 0) { docCount = 0; }\n if (size === void 0) { size = '0kb'; }\n this.uuid = uuid;\n this.appUUID = appUUID;\n this.isOK = isOK;\n this.docCount = docCount;\n this.size = size;\n }\n /**\n * Get uuid\n *\n * @return {IndexUUID}\n */\n Index.prototype.getUUID = function () {\n return this.uuid;\n };\n /**\n * Get app id\n *\n * @return {AppUUID}\n */\n Index.prototype.getAppUUID = function () {\n return this.appUUID;\n };\n /**\n * Index is OK\n *\n * @return {boolean}\n */\n Index.prototype.isOk = function () {\n return this.isOK;\n };\n /**\n * Get doc count\n *\n * @return {number}\n */\n Index.prototype.getDocCount = function () {\n return this.docCount;\n };\n /**\n * get size\n *\n * @return {string}\n */\n Index.prototype.getSize = function () {\n return this.size;\n };\n /**\n * To array\n *\n * @returns {{id: string, attributes: {}}}\n */\n Index.prototype.toArray = function () {\n return {\n uuid: this.uuid.toArray(),\n app_id: this.appUUID.toArray(),\n is_ok: this.isOK,\n doc_count: this.docCount,\n size: this.size\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return User\n */\n Index.createFromArray = function (array) {\n if (typeof array.uuid == \"undefined\" ||\n typeof array.app_id == \"undefined\") {\n throw InvalidFormatError_1.InvalidFormatError.indexFormatNotValid();\n }\n return new Index(IndexUUID_1.IndexUUID.createFromArray(array.uuid), AppUUID_1.AppUUID.createFromArray(array.app_id), (typeof array.is_ok == \"undefined\" ? false : array.is_ok), (typeof array.doc_count == \"undefined\" ? 0 : array.doc_count), (typeof array.size == \"undefined\" ? '0kb' : array.size));\n };\n return Index;\n}());\nexports.Index = Index;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * IndexUUID class\n */\nvar IndexUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n */\n function IndexUUID(id) {\n if (id.indexOf('_') >= 0) {\n throw InvalidFormatError_1.InvalidFormatError.indexUUIDFormatNotValid();\n }\n this.id = id;\n }\n /**\n * Create by id\n *\n * @param id\n *\n * @returns {ItemUUID}\n */\n IndexUUID.createById = function (id) {\n return new IndexUUID(id);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n IndexUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n IndexUUID.prototype.toArray = function () {\n return {\n id: this.id\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n IndexUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new IndexUUID(array.id);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n IndexUUID.prototype.composedUUID = function () {\n return this.id;\n };\n return IndexUUID;\n}());\nexports.IndexUUID = IndexUUID;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar Coordinate_1 = require(\"./Coordinate\");\nvar ItemUUID_1 = require(\"./ItemUUID\");\n/**\n * Item class\n */\nvar Item = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param uuid\n * @param coordinate\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n */\n function Item(uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n this.metadata = {};\n this.indexedMetadata = {};\n this.searchableMetadata = {};\n this.exactMatchingMetadata = [];\n this.suggest = [];\n this.highlights = {};\n this.promoted = false;\n this.uuid = uuid;\n this.coordinate = coordinate;\n this.metadata = metadata;\n this.indexedMetadata = indexedMetadata;\n this.searchableMetadata = searchableMetadata;\n this.exactMatchingMetadata = exactMatchingMetadata;\n this.suggest = suggest;\n }\n /**\n * Create new Item\n *\n * @param uuid\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n * @returns {Item}\n */\n Item.create = function (uuid, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n if (metadata === void 0) { metadata = {}; }\n if (indexedMetadata === void 0) { indexedMetadata = {}; }\n if (searchableMetadata === void 0) { searchableMetadata = {}; }\n if (exactMatchingMetadata === void 0) { exactMatchingMetadata = []; }\n if (suggest === void 0) { suggest = []; }\n return new Item(uuid, null, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest);\n };\n /**\n * Create new located Item\n *\n * @param uuid\n * @param coordinate\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n * @returns {Item}\n */\n Item.createLocated = function (uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n if (metadata === void 0) { metadata = {}; }\n if (indexedMetadata === void 0) { indexedMetadata = {}; }\n if (searchableMetadata === void 0) { searchableMetadata = {}; }\n if (exactMatchingMetadata === void 0) { exactMatchingMetadata = []; }\n if (suggest === void 0) { suggest = []; }\n return new Item(uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest);\n };\n /**\n * Get uuid\n *\n * @returns ItemUUID\n */\n Item.prototype.getUUID = function () {\n return this.uuid;\n };\n /**\n * Get id\n *\n * @returns string\n */\n Item.prototype.getId = function () {\n return this.uuid.getId();\n };\n /**\n * Get type\n *\n * @returns string\n */\n Item.prototype.getType = function () {\n return this.uuid.getType();\n };\n /**\n * Get coordinate\n *\n * @returns Coordinate|null\n */\n Item.prototype.getCoordinate = function () {\n return this.coordinate;\n };\n /**\n * Get distance\n *\n * @returns int\n */\n Item.prototype.getDistance = function () {\n return this.distance;\n };\n /**\n * Get metadata\n *\n * @returns Array\n */\n Item.prototype.getMetadata = function () {\n return this.metadata;\n };\n /**\n * Set metadata\n *\n * @param metadata\n */\n Item.prototype.setMetadata = function (metadata) {\n this.metadata = metadata;\n };\n /**\n * Add metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addMetadata = function (key, value) {\n this.metadata[key] = value;\n };\n /**\n * Get indexed metadata\n *\n * @returns Array\n */\n Item.prototype.getIndexedMetadata = function () {\n return this.indexedMetadata;\n };\n /**\n * Set indexed metadata\n *\n * @param indexedMetadata\n */\n Item.prototype.setIndexedMetadata = function (indexedMetadata) {\n this.indexedMetadata = indexedMetadata;\n };\n /**\n * Add indexed metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addIndexedMetadata = function (key, value) {\n this.indexedMetadata[key] = value;\n };\n /**\n * Get searchable metadata\n *\n * @returns Array\n */\n Item.prototype.getSearchableMetadata = function () {\n return this.searchableMetadata;\n };\n /**\n * Set searchable metadata\n *\n * @param searchableMetadata\n */\n Item.prototype.setSearchableMetadata = function (searchableMetadata) {\n this.searchableMetadata = searchableMetadata;\n };\n /**\n * Add searchable metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addSearchableMetadata = function (key, value) {\n this.searchableMetadata[key] = value;\n };\n /**\n * Get exactMatching metadata\n *\n * @returns Array\n */\n Item.prototype.getExactMatchingMetadata = function () {\n return this.exactMatchingMetadata;\n };\n /**\n * Set exactMatching metadata\n *\n * @param exactMatchingMetadata\n */\n Item.prototype.setExactMatchingMetadata = function (exactMatchingMetadata) {\n this.exactMatchingMetadata = exactMatchingMetadata;\n };\n /**\n * Add exactMatching metadata\n *\n * @param value\n */\n Item.prototype.addExactMatchingMetadata = function (value) {\n this.exactMatchingMetadata.push(value);\n };\n /**\n * Get all metadata\n *\n * @returns {{}}\n */\n Item.prototype.getAllMetadata = function () {\n return tslib_1.__assign({}, this.metadata, this.indexedMetadata);\n };\n /**\n * Get\n *\n * @param key\n *\n * @returns mixed|null\n */\n Item.prototype.get = function (key) {\n var allMetadata = this.getAllMetadata();\n return (typeof allMetadata[key] != \"undefined\")\n ? allMetadata[key]\n : null;\n };\n /**\n * Get suggest\n *\n * @returns Array\n */\n Item.prototype.getSuggest = function () {\n return this.suggest;\n };\n /**\n * Get highlights\n *\n * @returns Array\n */\n Item.prototype.getHighlights = function () {\n return this.highlights;\n };\n /**\n * Get highlight\n *\n * @param key\n *\n * @return string|null\n */\n Item.prototype.getHighlight = function (key) {\n return (typeof this.highlights[key] != \"undefined\")\n ? this.highlights[key]\n : null;\n };\n /**\n * Is promoted\n *\n * @returns boolean\n */\n Item.prototype.isPromoted = function () {\n return this.promoted;\n };\n /**\n * Set score\n *\n * @param score\n *\n * @return {Item}\n */\n Item.prototype.setScore = function (score) {\n this.score = score;\n return this;\n };\n /**\n * Get score\n *\n * @return {number}\n */\n Item.prototype.getScore = function () {\n return this.score;\n };\n /**\n * To array\n */\n Item.prototype.toArray = function () {\n var itemAsArray = {\n uuid: this.uuid.toArray()\n };\n if (this.coordinate instanceof Coordinate_1.Coordinate) {\n itemAsArray.coordinate = this.coordinate.toArray();\n }\n if (Object.keys(this.metadata).length > 0) {\n itemAsArray.metadata = this.metadata;\n }\n if (Object.keys(this.indexedMetadata).length > 0) {\n itemAsArray.indexed_metadata = this.indexedMetadata;\n }\n if (Object.keys(this.searchableMetadata).length > 0) {\n itemAsArray.searchable_metadata = this.searchableMetadata;\n }\n if (this.exactMatchingMetadata.length > 0) {\n itemAsArray.exact_matching_metadata = this.exactMatchingMetadata;\n }\n if (this.suggest.length > 0) {\n itemAsArray.suggest = this.suggest;\n }\n if (Object.keys(this.highlights).length > 0) {\n itemAsArray.highlights = this.highlights;\n }\n if (this.isPromoted()) {\n itemAsArray.is_promoted = true;\n }\n if (typeof this.distance != \"undefined\") {\n itemAsArray.distance = this.distance;\n }\n if (typeof this.score != \"undefined\") {\n itemAsArray.score = this.score;\n }\n return itemAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n */\n Item.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.uuid != \"object\") {\n throw InvalidFormatError_1.InvalidFormatError.itemUUIDRepresentationNotValid();\n }\n if (typeof array.coordinate != \"undefined\" &&\n typeof array.coordinate != \"object\") {\n throw InvalidFormatError_1.InvalidFormatError.coordinateFormatNotValid();\n }\n var item = (typeof array.coordinate == \"object\" &&\n array.coordinate != null)\n ? Item.createLocated(ItemUUID_1.ItemUUID.createFromArray(array.uuid), Coordinate_1.Coordinate.createFromArray(array.coordinate), ((typeof array.metadata == \"undefined\") ? {} : array.metadata), ((typeof array.indexed_metadata == \"undefined\") ? {} : array.indexed_metadata), ((typeof array.searchable_metadata == \"undefined\") ? {} : array.searchable_metadata), ((typeof array.exact_matching_metadata == \"undefined\") ? [] : array.exact_matching_metadata), ((typeof array.suggest == \"undefined\") ? [] : array.suggest))\n : Item.create(ItemUUID_1.ItemUUID.createFromArray(array.uuid), ((typeof array.metadata == \"undefined\") ? {} : array.metadata), ((typeof array.indexed_metadata == \"undefined\") ? {} : array.indexed_metadata), ((typeof array.searchable_metadata == \"undefined\") ? {} : array.searchable_metadata), ((typeof array.exact_matching_metadata == \"undefined\") ? [] : array.exact_matching_metadata), ((typeof array.suggest == \"undefined\") ? [] : array.suggest));\n if (typeof array.distance != \"undefined\" &&\n array.distance != null) {\n item.distance = array.distance;\n }\n if (typeof array.highlights == \"object\" &&\n array.distance != null) {\n item.highlights = array.highlights;\n }\n if (typeof array.is_promoted != \"undefined\" &&\n array.is_promoted != null) {\n item.promoted = array.is_promoted;\n }\n if (typeof array.score != \"undefined\" &&\n array.score != null) {\n item.score = array.score;\n }\n return item;\n };\n /**\n * Compose uuid\n *\n * @returns string\n */\n Item.prototype.composeUUID = function () {\n return this.uuid.composedUUID();\n };\n /**\n * Get path by field.\n *\n * @param field\n *\n * @returns {string}\n */\n Item.getPathByField = function (field) {\n return ([\"id\", \"type\"].indexOf(field) > -1)\n ? \"uuid.\" + field\n : \"indexed_metadata.\" + field;\n };\n return Item;\n}());\nexports.Item = Item;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * ItemUUID class\n */\nvar ItemUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n * @param type\n */\n function ItemUUID(id, type) {\n this.id = id;\n this.type = type;\n }\n /**\n * Create composed UUID\n *\n * @param composedUUID\n *\n * @returns {ItemUUID}\n */\n ItemUUID.createByComposedUUID = function (composedUUID) {\n var parts = composedUUID.split(\"~\");\n if (2 != parts.length) {\n throw InvalidFormatError_1.InvalidFormatError.composedItemUUIDNotValid();\n }\n return new ItemUUID(parts[0], parts[1]);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n ItemUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * Get type\n *\n * @returns {string}\n */\n ItemUUID.prototype.getType = function () {\n return this.type;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n ItemUUID.prototype.toArray = function () {\n return {\n id: this.id,\n type: this.type\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n ItemUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new ItemUUID(array.id, array.type);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n ItemUUID.prototype.composedUUID = function () {\n return this.id + \"~\" + this.type;\n };\n return ItemUUID;\n}());\nexports.ItemUUID = ItemUUID;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * User class\n */\nvar Metadata = /** @class */ (function () {\n function Metadata() {\n }\n /**\n * To metadata\n *\n * @param array:{}\n *\n * @returns {string}\n */\n Metadata.toMetadata = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var parts = [];\n for (var key in array) {\n parts.push(key + \"##\" + array[key]);\n }\n return parts.join(\"~~\");\n };\n /**\n * From metadata\n *\n * @param metadata\n *\n * @return {{}}\n */\n Metadata.fromMetadata = function (metadata) {\n var values = {};\n var splittedParts = metadata.split(\"~~\");\n var iterator = 0;\n var size = 0;\n var lastElement = null;\n for (var key in splittedParts) {\n var part = splittedParts[key];\n var parts = part.split(\"##\");\n if (parts.length > 1) {\n lastElement = parts[1];\n values[parts[0]] = lastElement;\n }\n else {\n lastElement = part;\n values[iterator++] = lastElement;\n }\n size++;\n }\n if (size == 1) {\n values = {\n id: lastElement,\n name: lastElement\n };\n }\n if (typeof values.id == \"undefined\") {\n return null;\n }\n return values;\n };\n return Metadata;\n}());\nexports.Metadata = Metadata;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * User class\n */\nvar User = /** @class */ (function () {\n /**\n * Construct\n *\n * @param id string\n * @param attributes Array\n */\n function User(id, attributes) {\n if (attributes === void 0) { attributes = {}; }\n this.id = id;\n this.attributes = attributes;\n }\n /**\n * Return the user id\n *\n * @return {string}\n */\n User.prototype.getId = function () {\n return this.id;\n };\n /**\n * Return array\n *\n * @returns {{}}\n */\n User.prototype.getAttributes = function () {\n return this.attributes;\n };\n /**\n * To array\n *\n * @returns {{id: string, attributes: {}}}\n */\n User.prototype.toArray = function () {\n var array = {\n id: this.id\n };\n if (Object.keys(this.attributes).length > 0) {\n array.attributes = this.attributes;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return User\n */\n User.createFromArray = function (array) {\n if (array == null ||\n typeof array.id == \"undefined\" ||\n array.id == null) {\n throw InvalidFormatError_1.InvalidFormatError.userFormatNotValid();\n }\n var attributes = typeof array.attributes === typeof {}\n ? array.attributes\n : {};\n return new User(array.id, attributes);\n };\n return User;\n}());\nexports.User = User;\n","\"use strict\";\nexports.__esModule = true;\nvar Filter_1 = require(\"./Filter\");\n/**\n * Aggregation constants\n */\nexports.AGGREGATION_SORT_BY_COUNT_ASC = [\"_count\", \"asc\"];\nexports.AGGREGATION_SORT_BY_COUNT_DESC = [\"_count\", \"desc\"];\nexports.AGGREGATION_SORT_BY_NAME_ASC = [\"_term\", \"asc\"];\nexports.AGGREGATION_SORT_BY_NAME_DESC = [\"_term\", \"desc\"];\nexports.AGGREGATION_NO_LIMIT = 0;\n/**\n * Aggregation class\n */\nvar Aggregation = /** @class */ (function () {\n /**\n * Construct\n *\n * @param name\n * @param field\n * @param applicationType\n * @param filterType\n * @param subgroup\n * @param sort\n * @param limit\n */\n function Aggregation(name, field, applicationType, filterType, subgroup, sort, limit) {\n this.subgroup = [];\n this.name = name;\n this.field = field;\n this.applicationType = applicationType;\n this.filterType = filterType;\n this.subgroup = subgroup;\n this.sort = sort;\n this.limit = limit;\n }\n /**\n * Get name\n *\n * @returns {string}\n */\n Aggregation.prototype.getName = function () {\n return this.name;\n };\n /**\n * Get field\n *\n * @returns {string}\n */\n Aggregation.prototype.getField = function () {\n return this.field;\n };\n /**\n * getApplicationType\n *\n * @returns {number}\n */\n Aggregation.prototype.getApplicationType = function () {\n return this.applicationType;\n };\n /**\n * Get filter type\n *\n * @return {string}\n */\n Aggregation.prototype.getFilterType = function () {\n return this.filterType;\n };\n /**\n * Get subgroup\n *\n * @return {[]}\n */\n Aggregation.prototype.getSubgroup = function () {\n return this.subgroup;\n };\n /**\n * Get sort\n *\n * @return {[]}\n */\n Aggregation.prototype.getSort = function () {\n return this.sort;\n };\n /**\n * Get limit\n *\n * @return {number}\n */\n Aggregation.prototype.getLimit = function () {\n return this.limit;\n };\n /**\n * Create\n *\n * @param name\n * @param field\n * @param applicationType\n * @param filterType\n * @param subgroup\n * @param sort\n * @param limit\n *\n * @returns {Aggregation}\n */\n Aggregation.create = function (name, field, applicationType, filterType, subgroup, sort, limit) {\n if (subgroup === void 0) { subgroup = []; }\n if (sort === void 0) { sort = exports.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = exports.AGGREGATION_NO_LIMIT; }\n return new Aggregation(name, field, applicationType, filterType, subgroup, sort, limit);\n };\n /**\n * To array\n *\n * @returns {Array}\n */\n Aggregation.prototype.toArray = function () {\n var aggregationAsArray = {\n name: this.name\n };\n if (this.field != \"uuid.type\") {\n aggregationAsArray.field = this.field;\n }\n if (this.applicationType != Filter_1.FILTER_AT_LEAST_ONE) {\n aggregationAsArray.application_type = this.applicationType;\n }\n if (this.filterType != Filter_1.FILTER_TYPE_FIELD) {\n aggregationAsArray.filter_type = this.filterType;\n }\n if (this.subgroup.length > 0) {\n aggregationAsArray.subgroup = this.subgroup;\n }\n if (JSON.stringify(this.sort) !== JSON.stringify(exports.AGGREGATION_SORT_BY_COUNT_DESC)) {\n aggregationAsArray.sort = this.sort;\n }\n if (this.limit != exports.AGGREGATION_NO_LIMIT) {\n aggregationAsArray.limit = this.limit;\n }\n return aggregationAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Aggregation}\n */\n Aggregation.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.field == \"undefined\") {\n array.field = \"uuid.type\";\n }\n if (typeof array.application_type == \"undefined\") {\n array.application_type = Filter_1.FILTER_AT_LEAST_ONE;\n }\n if (typeof array.filter_type == \"undefined\") {\n array.filter_type = Filter_1.FILTER_TYPE_FIELD;\n }\n if (typeof array.subgroup == \"undefined\") {\n array.subgroup = [];\n }\n if (typeof array.sort == \"undefined\") {\n array.sort = exports.AGGREGATION_SORT_BY_COUNT_DESC;\n }\n if (typeof array.limit == \"undefined\") {\n array.limit = exports.AGGREGATION_NO_LIMIT;\n }\n return Aggregation.create(array.name, array.field, array.application_type, array.filter_type, array.subgroup, array.sort, array.limit);\n };\n return Aggregation;\n}());\nexports.Aggregation = Aggregation;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * filter constants\n */\nexports.FILTER_MUST_ALL = 4;\nexports.FILTER_MUST_ALL_WITH_LEVELS = 5;\nexports.FILTER_AT_LEAST_ONE = 8;\nexports.FILTER_EXCLUDE = 16;\nexports.FILTER_PROMOTE = 32;\nexports.FILTER_TYPE_FIELD = \"field\";\nexports.FILTER_TYPE_RANGE = \"range\";\nexports.FILTER_TYPE_DATE_RANGE = \"date_range\";\nexports.FILTER_TYPE_GEO = \"geo\";\nexports.FILTER_TYPE_QUERY = \"query\";\n/**\n * Filter class\n */\nvar Filter = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param field\n * @param values\n * @param applicationType\n * @param filterType\n * @param filterTerms\n */\n function Filter(field, values, applicationType, filterType, filterTerms) {\n this.field = field;\n this.values = values;\n this.applicationType = applicationType;\n this.filterType = filterType;\n this.filterTerms = filterTerms;\n }\n /**\n * Get field\n *\n * @returns {string}\n */\n Filter.prototype.getField = function () {\n return this.field;\n };\n /**\n * Get values\n *\n * @returns {any}\n */\n Filter.prototype.getValues = function () {\n return this.values;\n };\n /**\n * Has value\n *\n * @param value\n *\n * @returns {boolean}\n */\n Filter.prototype.hasValue = function (value) {\n return typeof this.values[value] == \"undefined\";\n };\n /**\n * getApplicationType\n *\n * @returns {number}\n */\n Filter.prototype.getApplicationType = function () {\n return this.applicationType;\n };\n /**\n * Get filter type\n *\n * @return {string}\n */\n Filter.prototype.getFilterType = function () {\n return this.filterType;\n };\n /**\n * Get filter type\n *\n * @return {{}}\n */\n Filter.prototype.getFilterTerms = function () {\n return this.filterTerms;\n };\n /**\n * Create\n *\n * @param field\n * @param values\n * @param applicationType\n * @param filterType\n * @param filterTerms\n *\n * @return {Filter}\n */\n Filter.create = function (field, values, applicationType, filterType, filterTerms) {\n if (filterTerms === void 0) { filterTerms = []; }\n return new Filter(field, values, applicationType, filterType, filterTerms);\n };\n /**\n * To array\n *\n * @returns {Array}\n */\n Filter.prototype.toArray = function () {\n var filterAsArray = {};\n if (this.field != \"uuid.type\") {\n filterAsArray.field = this.field;\n }\n if (this.values.length > 0 ||\n Object.keys(this.values).length > 0) {\n filterAsArray.values = this.values;\n }\n if (this.applicationType != exports.FILTER_AT_LEAST_ONE) {\n filterAsArray.application_type = this.applicationType;\n }\n if (this.filterType != exports.FILTER_TYPE_FIELD) {\n filterAsArray.filter_type = this.filterType;\n }\n if (this.filterTerms.length > 0) {\n filterAsArray.filter_terms = this.filterTerms;\n }\n return filterAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Filter}\n */\n Filter.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.field == \"undefined\") {\n array.field = \"uuid.type\";\n }\n if (typeof array.values == \"undefined\") {\n array.values = [];\n }\n if (typeof array.application_type == \"undefined\") {\n array.application_type = exports.FILTER_AT_LEAST_ONE;\n }\n if (typeof array.filter_type == \"undefined\") {\n array.filter_type = exports.FILTER_TYPE_FIELD;\n }\n if (typeof array.filter_terms == \"undefined\") {\n array.filter_terms = [];\n }\n return Filter.create(array.field, array.values, array.application_type, array.filter_type, array.filter_terms);\n };\n return Filter;\n}());\nexports.Filter = Filter;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Coordinate_1 = require(\"../Model/Coordinate\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\nvar Item_1 = require(\"../Model/Item\");\nvar User_1 = require(\"../Model/User\");\nvar Aggregation_1 = require(\"./Aggregation\");\nvar Filter_1 = require(\"./Filter\");\nvar Filter_2 = require(\"./Filter\");\nvar Aggregation_2 = require(\"./Aggregation\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar Filter_3 = require(\"./Filter\");\nvar ScoreStrategies_1 = require(\"./ScoreStrategies\");\nvar SortBy_1 = require(\"./SortBy\");\n/**\n * Query constants\n */\nexports.QUERY_DEFAULT_FROM = 0;\nexports.QUERY_DEFAULT_PAGE = 1;\nexports.QUERY_DEFAULT_SIZE = 10;\nexports.QUERY_INFINITE_SIZE = 1000;\nexports.NO_MIN_SCORE = 0.0;\n/**\n * Query class\n */\nvar Query = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param queryText\n */\n function Query(queryText) {\n this.fields = [];\n this.universeFilters = {};\n this.filters = {};\n this.itemsPromoted = [];\n this.aggregations = {};\n this.resultsEnabled = true;\n this.aggregationsEnabled = true;\n this.suggestionsEnabled = false;\n this.highlightsEnabled = false;\n this.filterFields = [];\n this.minScore = exports.NO_MIN_SCORE;\n this.sortByInstance = SortBy_1.SortBy.create();\n this.filters._query = Filter_1.Filter.create(\"\", [queryText], 0, Filter_3.FILTER_TYPE_QUERY);\n }\n /**\n * Created located\n *\n * @param coordinate\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Query.createLocated = function (coordinate, queryText, page, size) {\n if (page === void 0) { page = exports.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = exports.QUERY_DEFAULT_SIZE; }\n var query = Query.create(queryText, page, size);\n query.coordinate = coordinate;\n return query;\n };\n /**\n * Create\n *\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Query.create = function (queryText, page, size) {\n if (page === void 0) { page = exports.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = exports.QUERY_DEFAULT_SIZE; }\n page = Math.max(1, page);\n var query = new Query(queryText);\n query.from = (page - 1) * size;\n query.size = size;\n query.page = page;\n return query;\n };\n /**\n * Create match all\n *\n * @return {Query}\n */\n Query.createMatchAll = function () {\n return Query.create(\"\", exports.QUERY_DEFAULT_PAGE, exports.QUERY_DEFAULT_SIZE);\n };\n /**\n * Create by UUID\n *\n * @param uuid\n *\n * @return {Query}\n */\n Query.createByUUID = function (uuid) {\n return Query.createByUUIDs(uuid);\n };\n /**\n * Create by UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.createByUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n var ids = [];\n for (var i in uuids) {\n ids.push(uuids[i].composedUUID());\n }\n var query = Query.create(\"\", exports.QUERY_DEFAULT_PAGE, ids.length)\n .disableAggregations()\n .disableSuggestions();\n query.filters._id = Filter_1.Filter.create(\"_id\", ids, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD);\n return query;\n };\n /**\n * set fields\n *\n * @param fields\n *\n * @return {Query}\n */\n Query.prototype.setFields = function (fields) {\n this.fields = fields;\n return this;\n };\n /**\n * get fields\n *\n * @return {string[]}\n */\n Query.prototype.getFields = function () {\n return this.fields;\n };\n /**\n * Filter universe by types\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByTypes = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"type\");\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"type\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters.type;\n }\n return this;\n };\n /**\n * Filter by types\n *\n * @param values\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByTypes = function (values, aggregate, aggregationSort) {\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a, _b;\n var fieldPath = Item_1.Item.getPathByField(\"type\");\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"type\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters.type;\n }\n if (aggregate) {\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_b = {}, _b[\"type\"] = Aggregation_1.Aggregation.create(\"type\", fieldPath, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort), _b));\n }\n return this;\n };\n /**\n * Filter universe by ids\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByIds = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"id\");\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"id\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters.id;\n }\n return this;\n };\n /**\n * Filter by ids\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterByIds = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"id\");\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"id\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters.id;\n }\n return this;\n };\n /**\n * Filter universe by\n *\n * @param field\n * @param values\n * @param applicationType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseBy = function (field, values, applicationType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters[field];\n }\n return this;\n };\n /**\n * Filter by\n *\n * @param filterName\n * @param field\n * @param values\n * @param applicationType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterBy = function (filterName, field, values, applicationType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters[filterName];\n }\n if (aggregate) {\n this.aggregateBy(filterName, field, applicationType, aggregationSort);\n }\n return this;\n };\n /**\n * Filter universe by range\n *\n * @param field\n * @param values\n * @param applicationType\n * @param rangeType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByRange = function (field, values, applicationType, rangeType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));\n }\n else {\n delete this.universeFilters[field];\n }\n return this;\n };\n /**\n * Filter universe by date range\n *\n * @param field\n * @param values\n * @param applicationType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByDateRange = function (field, values, applicationType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n return this.filterUniverseByRange(field, values, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE);\n };\n /**\n * Filter by range\n *\n * @param filterName\n * @param field\n * @param options\n * @param values\n * @param applicationType\n * @param rangeType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByRange = function (filterName, field, options, values, applicationType, rangeType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length !== 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));\n }\n else {\n delete this.filters[filterName];\n }\n if (aggregate) {\n this.aggregateByRange(filterName, fieldPath, options, applicationType, rangeType, aggregationSort);\n }\n return this;\n };\n /**\n * Filter by date range\n *\n * @param filterName\n * @param field\n * @param options\n * @param values\n * @param applicationType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByDateRange = function (filterName, field, options, values, applicationType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n return this.filterByRange(filterName, field, options, values, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE, aggregate, aggregationSort);\n };\n /**\n * Filter universe by location\n *\n * @param locationRange\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByLocation = function (locationRange) {\n var _a;\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"coordinate\"] = Filter_1.Filter.create(\"coordinate\", locationRange.toArray(), Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_GEO), _a));\n return this;\n };\n /**\n * Set filter fields\n *\n * @param filterFields\n *\n * @return {Query}\n */\n Query.prototype.setFilterFields = function (filterFields) {\n this.filterFields = filterFields;\n return this;\n };\n /**\n * Get filter fields\n *\n * @return {string[]}\n */\n Query.prototype.getFilterFields = function () {\n return this.filterFields;\n };\n /**\n * Sort by\n *\n * @param sortBy\n *\n * @return {Query}\n */\n Query.prototype.sortBy = function (sortBy) {\n if (sortBy.isSortedByGeoDistance()) {\n if (!(this.coordinate instanceof Coordinate_1.Coordinate)) {\n throw InvalidFormatError_1.InvalidFormatError.querySortedByDistanceWithoutCoordinate();\n }\n sortBy.setCoordinate(this.coordinate);\n }\n this.sortByInstance = sortBy;\n return this;\n };\n /**\n * Aggregate by\n *\n * @param filterName\n * @param field\n * @param applicationType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateBy = function (filterName, field, applicationType, aggregationSort, limit) {\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n var _a;\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort, limit), _a));\n return this;\n };\n /**\n * Aggregate by range\n *\n * @param filterName\n * @param field\n * @param options\n * @param applicationType\n * @param rangeType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateByRange = function (filterName, field, options, applicationType, rangeType, aggregationSort, limit) {\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n var _a;\n if (options.length === 0) {\n return this;\n }\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, rangeType, options, aggregationSort, limit), _a));\n return this;\n };\n /**\n * Aggregate by date range\n *\n * @param filterName\n * @param field\n * @param options\n * @param applicationType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateByDateRange = function (filterName, field, options, applicationType, aggregationSort, limit) {\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n return this.aggregateByRange(filterName, field, options, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE, aggregationSort, limit);\n };\n /**\n * Get aggregations\n *\n * @return {{}}\n */\n Query.prototype.getAggregations = function () {\n return this.aggregations;\n };\n /**\n * Get aggregation by name\n *\n * @param aggregationName\n *\n * @return {Aggregation|null}\n */\n Query.prototype.getAggregation = function (aggregationName) {\n return this.aggregations[aggregationName] instanceof Aggregation_1.Aggregation\n ? this.aggregations[aggregationName]\n : null;\n };\n /**\n * Get query text\n *\n * @return {string}\n */\n Query.prototype.getQueryText = function () {\n var filter = this.filters._query;\n return filter instanceof Filter_1.Filter\n ? filter.getValues()[0]\n : \"\";\n };\n /**\n * Get universe filters\n *\n * @return {{}}\n */\n Query.prototype.getUniverseFilters = function () {\n return this.universeFilters;\n };\n /**\n * Get universe filter by name\n *\n * @param filterName\n *\n * @return {Filter|null}\n */\n Query.prototype.getUniverseFilter = function (filterName) {\n return this.universeFilters[filterName] instanceof Filter_1.Filter\n ? this.universeFilters[filterName]\n : null;\n };\n /**\n * Get filters\n *\n * @return {{}}\n */\n Query.prototype.getFilters = function () {\n return this.filters;\n };\n /**\n * Get filter by name\n *\n * @param filterName\n *\n * @return {Filter|null}\n */\n Query.prototype.getFilter = function (filterName) {\n return this.filters[filterName] instanceof Filter_1.Filter\n ? this.filters[filterName]\n : null;\n };\n /**\n * Get filter by field\n *\n * @param fieldName\n *\n * @return {Filter|null}\n */\n Query.prototype.getFilterByField = function (fieldName) {\n var fieldPath = Item_1.Item.getPathByField(fieldName);\n for (var i in this.filters) {\n if (this.filters[i].getField() == fieldPath) {\n return this.filters[i];\n }\n }\n return null;\n };\n /**\n * Get sort by\n *\n * @return {SortBy}\n */\n Query.prototype.getSortBy = function () {\n return this.sortByInstance;\n };\n /**\n * Get from\n *\n * @return {number}\n */\n Query.prototype.getFrom = function () {\n return this.from;\n };\n /**\n * Get size\n *\n * @return {number}\n */\n Query.prototype.getSize = function () {\n return this.size;\n };\n /**\n * Get page\n *\n * @return {number}\n */\n Query.prototype.getPage = function () {\n return this.page;\n };\n /**\n * Enable results\n *\n * @return {Query}\n */\n Query.prototype.enableResults = function () {\n this.resultsEnabled = true;\n return this;\n };\n /**\n * Disable results\n *\n * @return {Query}\n */\n Query.prototype.disableResults = function () {\n this.resultsEnabled = false;\n return this;\n };\n /**\n * Are results enabled\n *\n * @return {boolean}\n */\n Query.prototype.areResultsEnabled = function () {\n return this.resultsEnabled;\n };\n /**\n * Enable aggregations\n *\n * @return {Query}\n */\n Query.prototype.enableAggregations = function () {\n this.aggregationsEnabled = true;\n return this;\n };\n /**\n * Disable aggregations\n *\n * @return {Query}\n */\n Query.prototype.disableAggregations = function () {\n this.aggregationsEnabled = false;\n return this;\n };\n /**\n * Are aggregations enabled\n *\n * @return {boolean}\n */\n Query.prototype.areAggregationsEnabled = function () {\n return this.aggregationsEnabled;\n };\n /**\n * Enable suggestions\n *\n * @return {Query}\n */\n Query.prototype.enableSuggestions = function () {\n this.suggestionsEnabled = true;\n return this;\n };\n /**\n * Disable suggestions\n *\n * @return {Query}\n */\n Query.prototype.disableSuggestions = function () {\n this.suggestionsEnabled = false;\n return this;\n };\n /**\n * Are suggestions enabled\n *\n * @return {boolean}\n */\n Query.prototype.areSuggestionsEnabled = function () {\n return this.suggestionsEnabled;\n };\n /**\n * Enable highlights\n *\n * @return {Query}\n */\n Query.prototype.enableHighlights = function () {\n this.highlightsEnabled = true;\n return this;\n };\n /**\n * Disable highlights\n *\n * @return {Query}\n */\n Query.prototype.disableHighlights = function () {\n this.highlightsEnabled = false;\n return this;\n };\n /**\n * Are highlights enabled\n *\n * @return {boolean}\n */\n Query.prototype.areHighlightsEnabled = function () {\n return this.highlightsEnabled;\n };\n /**\n * Promote uuid\n *\n * @param itemUUID\n *\n * @return {Query}\n */\n Query.prototype.promoteUUID = function (itemUUID) {\n this\n .itemsPromoted\n .push(itemUUID);\n return this;\n };\n /**\n * Promote UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.prototype.promoteUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n this.itemsPromoted = uuids;\n return this;\n };\n /**\n * Get promoted UUIDs\n *\n * @return {ItemUUID[]}\n */\n Query.prototype.getItemsPromoted = function () {\n return this.itemsPromoted;\n };\n /**\n * Exclude id\n *\n * @param itemUUID\n *\n * @return {Query}\n */\n Query.prototype.excludeUUID = function (itemUUID) {\n this.excludeUUIDs(itemUUID);\n return this;\n };\n /**\n * Exclude UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.prototype.excludeUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n var _a;\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"excluded_ids\"] = Filter_1.Filter.create(\"_id\", uuids.map(function (uuid) { return uuid.composedUUID(); }), Filter_2.FILTER_EXCLUDE, Filter_2.FILTER_TYPE_FIELD), _a));\n return this;\n };\n /**\n * Get score strategies\n *\n * @return {ScoreStrategies}\n */\n Query.prototype.getScoreStrategies = function () {\n return this.scoreStrategies;\n };\n /**\n * Set score strategies\n *\n * @param scoreStrategies\n */\n Query.prototype.setScoreStrategies = function (scoreStrategies) {\n this.scoreStrategies = scoreStrategies;\n return this;\n };\n /**\n * Get fuzziness\n *\n * @return any\n */\n Query.prototype.getFuzziness = function () {\n return this.fuzziness;\n };\n /**\n * Set fuzziness\n *\n * @param fuzziness\n *\n * @return {Query}\n */\n Query.prototype.setFuzziness = function (fuzziness) {\n this.fuzziness = fuzziness;\n return this;\n };\n /**\n * Set auto fuzziness\n *\n * @return {Query}\n */\n Query.prototype.setAutoFuzziness = function () {\n this.fuzziness = 'AUTO';\n return this;\n };\n /**\n * Get min score\n *\n * @return any\n */\n Query.prototype.getMinScore = function () {\n return this.minScore;\n };\n /**\n * Set min score\n *\n * @param minScore\n *\n * @return {Query}\n */\n Query.prototype.setMinScore = function (minScore) {\n this.minScore = minScore;\n return this;\n };\n /**\n * By user\n *\n * @param user\n *\n * @return {Query}\n */\n Query.prototype.byUser = function (user) {\n this.user = user;\n return this;\n };\n /**\n * By anyone\n *\n * @return {null}\n */\n Query.prototype.anonymously = function () {\n this.user = null;\n return null;\n };\n /**\n * Get user\n *\n * @return {User}\n */\n Query.prototype.getUser = function () {\n return this.user;\n };\n /**\n * To array\n *\n * @return {any}\n */\n Query.prototype.toArray = function () {\n var array = {};\n if (this.getQueryText() !== \"\") {\n array.q = this.getQueryText();\n }\n if (this.coordinate instanceof Coordinate_1.Coordinate) {\n array.coordinate = this.coordinate.toArray();\n }\n /**\n * Fields\n */\n if (this.fields instanceof Array &&\n this.fields.length > 0) {\n array.fields = this.fields;\n }\n /**\n * Universe Filters\n */\n if (Object.keys(this.universeFilters).length) {\n array.universe_filters = {};\n for (var i in this.universeFilters) {\n var universeFilter = this.universeFilters[i];\n array.universe_filters[i] = universeFilter.toArray();\n }\n }\n /**\n * Filters\n */\n if (this.filters instanceof Object &&\n Object.keys(this.filters).length) {\n array.filters = {};\n for (var i in this.filters) {\n var filter = this.filters[i];\n if (filter.getFilterType() !== Filter_3.FILTER_TYPE_QUERY) {\n array.filters[i] = filter.toArray();\n }\n }\n }\n /**\n * Aggregations\n */\n if (this.aggregations instanceof Object &&\n Object.keys(this.aggregations).length) {\n array.aggregations = {};\n for (var i in this.aggregations) {\n var aggregation = this.aggregations[i];\n array.aggregations[i] = aggregation.toArray();\n }\n }\n /**\n * Sort\n */\n var sort = this.sortByInstance.toArray();\n if (Object.keys(sort).length) {\n array.sort = sort;\n }\n /**\n * Page\n */\n var page = this.page;\n if (page !== exports.QUERY_DEFAULT_PAGE) {\n array.page = page;\n }\n /**\n * Size\n */\n var size = this.size;\n if (size !== exports.QUERY_DEFAULT_SIZE) {\n array.size = size;\n }\n /**\n * Booleans\n */\n if (this.resultsEnabled === false) {\n array.results_enabled = false;\n }\n if (this.suggestionsEnabled === true) {\n array.suggestions_enabled = true;\n }\n if (this.highlightsEnabled === true) {\n array.highlights_enabled = true;\n }\n if (this.aggregationsEnabled === false) {\n array.aggregations_enabled = false;\n }\n /**\n * Filter fields\n */\n if (this.filterFields instanceof Array &&\n this.filterFields.length > 0) {\n array.filter_fields = this.filterFields;\n }\n /**\n * Score strategies\n */\n if (this.scoreStrategies instanceof ScoreStrategies_1.ScoreStrategies) {\n var scoreStrategiesAsArray = this.scoreStrategies.toArray();\n if (Object.keys(scoreStrategiesAsArray).length > 0) {\n array.score_strategies = scoreStrategiesAsArray;\n }\n }\n if (this.fuzziness !== null) {\n array.fuzziness = this.fuzziness;\n }\n /**\n * Min score\n */\n var minScore = this.minScore;\n if (minScore !== exports.NO_MIN_SCORE) {\n array.min_score = minScore;\n }\n /**\n * User\n */\n if (this.user instanceof User_1.User) {\n var userAsArray = this.user.toArray();\n if (Object.keys(userAsArray).length > 0) {\n array.user = userAsArray;\n }\n }\n /**\n * items promoted\n */\n if (this.itemsPromoted.length > 0) {\n array.items_promoted = [];\n for (var i in this.itemsPromoted) {\n array\n .items_promoted\n .push(this.itemsPromoted[i].toArray());\n }\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Query}\n */\n Query.createFromArray = function (array) {\n var query = array.coordinate instanceof Object\n ? Query.createLocated(Coordinate_1.Coordinate.createFromArray(array.coordinate), array.q ? array.q : \"\", array.page ? array.page : exports.QUERY_DEFAULT_PAGE, array.size ? array.size : exports.QUERY_DEFAULT_SIZE)\n : Query.create(array.q ? array.q : \"\", array.page ? array.page : exports.QUERY_DEFAULT_PAGE, array.size ? array.size : exports.QUERY_DEFAULT_SIZE);\n /**\n * Fields\n */\n query.fields = array.fields instanceof Array\n ? array.fields\n : [];\n /**\n * Aggregations\n */\n var aggregationsAsArray = typeof array.aggregations === typeof {}\n ? array.aggregations\n : {};\n for (var i in aggregationsAsArray) {\n query.aggregations[i] = Aggregation_1.Aggregation.createFromArray(aggregationsAsArray[i]);\n }\n /**\n * Sort\n */\n var sortAsArray = typeof array.sort === typeof {}\n ? array.sort\n : {};\n if (Object.keys(sortAsArray).length > 0) {\n query.sortByInstance = SortBy_1.SortBy.createFromArray(sortAsArray);\n }\n /**\n * Filters\n */\n var filtersAsArray = typeof array.filters === typeof {}\n ? array.filters\n : {};\n for (var i in filtersAsArray) {\n query.filters[i] = Filter_1.Filter.createFromArray(filtersAsArray[i]);\n }\n /**\n * Universe Filters\n */\n var universeFiltersAsArray = typeof array.universe_filters === typeof {}\n ? array.universe_filters\n : {};\n for (var i in universeFiltersAsArray) {\n query.universeFilters[i] = Filter_1.Filter.createFromArray(universeFiltersAsArray[i]);\n }\n /**\n * Booleans\n */\n query.resultsEnabled = typeof array.results_enabled === \"boolean\"\n ? array.results_enabled\n : true;\n query.suggestionsEnabled = typeof array.suggestions_enabled === \"boolean\"\n ? array.suggestions_enabled\n : false;\n query.aggregationsEnabled = typeof array.aggregations_enabled === \"boolean\"\n ? array.aggregations_enabled\n : true;\n query.highlightsEnabled = typeof array.highlights_enabled === \"boolean\"\n ? array.highlights_enabled\n : false;\n query.fuzziness = array.fuzziness;\n query.minScore = array.min_score ? array.min_score : exports.NO_MIN_SCORE;\n /**\n * Items promoted\n */\n var itemsPromotedAsArray = typeof array.items_promoted === typeof {}\n ? array.items_promoted\n : {};\n for (var i in itemsPromotedAsArray) {\n query\n .itemsPromoted\n .push(ItemUUID_1.ItemUUID.createFromArray(itemsPromotedAsArray[i]));\n }\n /**\n * Filter fields\n */\n query.filterFields = array.filter_fields instanceof Array\n ? array.filter_fields\n : [];\n query.scoreStrategies = array.score_strategies instanceof Object\n ? ScoreStrategies_1.ScoreStrategies.createFromArray(array.score_strategies)\n : null;\n query.user = array.user instanceof Object\n ? User_1.User.createFromArray(array.user)\n : null;\n return query;\n };\n return Query;\n}());\nexports.Query = Query;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Aggregation constants\n */\nexports.RANGE_ZERO = 0;\nexports.RANGE_INFINITE = -1;\nexports.RANGE_SEPARATOR = \"..\";\n/**\n * Filter class\n */\nvar Range = /** @class */ (function () {\n function Range() {\n }\n /**\n * Strong to array\n *\n * @param string\n *\n * @returns {[number, number]}\n */\n Range.stringToArray = function (string) {\n var parts = string.split(exports.RANGE_SEPARATOR);\n var from = parts[0];\n var to = parts[1];\n var finalFrom = exports.RANGE_ZERO;\n var finalTo = exports.RANGE_INFINITE;\n if (from != \"\") {\n finalFrom = parseInt(from);\n }\n if (to != \"\") {\n finalTo = parseInt(to);\n }\n return [finalFrom, finalTo];\n };\n /**\n * Array to string\n *\n * @param values\n *\n * @return {string}\n */\n Range.arrayToString = function (values) {\n var finalValues = [\"\", \"\"];\n if (values[0] != exports.RANGE_ZERO) {\n finalValues[0] = String(values[0]);\n }\n if (values[1] != exports.RANGE_INFINITE) {\n finalValues[1] = String(values[1]);\n }\n return finalValues.join(exports.RANGE_SEPARATOR);\n };\n /**\n * Create ranges\n *\n * @param from\n * @param to\n * @param incremental\n */\n Range.createRanges = function (from, to, incremental) {\n var ranges = [];\n var nextTo;\n while (from < to) {\n nextTo = from + incremental;\n ranges.push(from + exports.RANGE_SEPARATOR + nextTo);\n from = nextTo;\n }\n return ranges;\n };\n return Range;\n}());\nexports.Range = Range;\n","\"use strict\";\nexports.__esModule = true;\nvar ScoreStrategy_1 = require(\"./ScoreStrategy\");\n/**\n * ScoreStrategies constants\n */\nexports.MULTIPLY = 'multiply';\nexports.SUM = 'sum';\nexports.AVG = 'avg';\nexports.MAX = 'max';\nexports.MIN = 'min';\n/**\n * ScoreStrategies\n */\nvar ScoreStrategies = /** @class */ (function () {\n function ScoreStrategies() {\n this.scoreStrategies = [];\n }\n /**\n * Create empty\n *\n * @param scoreMode\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.createEmpty = function (scoreMode) {\n if (scoreMode === void 0) { scoreMode = exports.SUM; }\n var scoreStrategies = new ScoreStrategies;\n scoreStrategies.scoreMode = scoreMode;\n return scoreStrategies;\n };\n /**\n * Add score strategy\n *\n * @param scoreStrategy\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.prototype.addScoreStrategy = function (scoreStrategy) {\n this.scoreStrategies.push(scoreStrategy);\n return this;\n };\n /**\n * Get score strategies\n *\n * @return {ScoreStrategy[]}\n */\n ScoreStrategies.prototype.getScoreStrategies = function () {\n return this.scoreStrategies;\n };\n /**\n * Get score mode\n *\n * @return {string}\n */\n ScoreStrategies.prototype.getScoreMode = function () {\n return this.scoreMode;\n };\n /**\n * To array\n *\n * @return {{\n * score_mode: string,\n * score_strategies: any\n * }}\n */\n ScoreStrategies.prototype.toArray = function () {\n var scoreStrategiesAsArray = [];\n for (var i in this.scoreStrategies) {\n scoreStrategiesAsArray.push(this.scoreStrategies[i].toArray());\n }\n return {\n score_mode: this.scoreMode,\n score_strategies: scoreStrategiesAsArray\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var scoreStrategies = (typeof array.score_mode != \"undefined\")\n ? ScoreStrategies.createEmpty(array.score_mode)\n : ScoreStrategies.createEmpty();\n scoreStrategies.scoreStrategies = [];\n for (var i in array.score_strategies) {\n scoreStrategies\n .scoreStrategies\n .push(ScoreStrategy_1.ScoreStrategy.createFromArray(array.score_strategies[i]));\n }\n return scoreStrategies;\n };\n return ScoreStrategies;\n}());\nexports.ScoreStrategies = ScoreStrategies;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar Filter_1 = require(\"./Filter\");\n/**\n * ScoreStrategy constants\n */\nexports.DEFAULT_TYPE = 'default';\nexports.DEFAULT_WEIGHT = 1.0;\nexports.BOOSTING_FIELD_VALUE = 'field_value';\nexports.CUSTOM_FUNCTION = 'custom_function';\nexports.DECAY = 'decay';\nexports.DECAY_LINEAR = 'linear';\nexports.DECAY_EXP = 'exp';\nexports.DECAY_GAUSS = 'gauss';\nexports.MODIFIER_NONE = 'none';\nexports.MODIFIER_SQRT = 'sqrt';\nexports.MODIFIER_LOG = 'log';\nexports.MODIFIER_LN = 'ln';\nexports.MODIFIER_SQUARE = 'square';\nexports.SCORE_MODE_NONE = 'none';\nexports.SCORE_MODE_SUM = 'sum';\nexports.SCORE_MODE_AVG = 'avg';\nexports.SCORE_MODE_MAX = 'max';\nexports.SCORE_MODE_MIN = 'min';\nexports.DEFAULT_MISSING = 1.0;\nexports.DEFAULT_FACTOR = 1.0;\n/**\n * ScoreStrategy\n */\nvar ScoreStrategy = /** @class */ (function () {\n function ScoreStrategy() {\n this.type = exports.DEFAULT_TYPE;\n this.filter = null;\n this.weight = exports.DEFAULT_WEIGHT;\n this.scoreMode = exports.SCORE_MODE_AVG;\n this.configuration = {};\n }\n /**\n * Get type\n *\n * @returns {string}\n */\n ScoreStrategy.prototype.getType = function () {\n return this.type;\n };\n /**\n * Get configuration value\n *\n * @returns {string}\n */\n ScoreStrategy.prototype.getConfigurationValue = function (element) {\n if (typeof this.configuration[element] == \"undefined\") {\n return null;\n }\n return this.configuration[element];\n };\n /**\n * Get weight.\n *\n * @return {number}\n */\n ScoreStrategy.prototype.getWeight = function () {\n return this.weight;\n };\n /**\n * Get score mode.\n *\n * @return {string}\n */\n ScoreStrategy.prototype.getScoreMode = function () {\n return this.scoreMode;\n };\n /**\n * Get filter.\n *\n * @return {Filter}\n */\n ScoreStrategy.prototype.getFilter = function () {\n return this.filter;\n };\n /**\n * Create default\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createDefault = function () {\n return new ScoreStrategy();\n };\n /**\n * Create field boosting\n *\n * @param field\n * @param factor\n * @param missing\n * @param modifier\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createFieldBoosting = function (field, factor, missing, modifier, weight, filter, scoreMode) {\n if (factor === void 0) { factor = exports.DEFAULT_FACTOR; }\n if (missing === void 0) { missing = exports.DEFAULT_MISSING; }\n if (modifier === void 0) { modifier = exports.MODIFIER_NONE; }\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.BOOSTING_FIELD_VALUE;\n scoreStrategy.configuration['field'] = field;\n scoreStrategy.configuration['factor'] = factor;\n scoreStrategy.configuration['missing'] = missing;\n scoreStrategy.configuration['modifier'] = modifier;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Create custom function\n *\n * @param func\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createCustomFunction = function (func, weight, filter, scoreMode) {\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.CUSTOM_FUNCTION;\n scoreStrategy.configuration['function'] = func;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Create decay function\n *\n * @param type\n * @param field\n * @param origin\n * @param scale\n * @param offset\n * @param decay\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createDecayFunction = function (type, field, origin, scale, offset, decay, weight, filter, scoreMode) {\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.DECAY;\n scoreStrategy.configuration['type'] = type;\n scoreStrategy.configuration['field'] = field;\n scoreStrategy.configuration['origin'] = origin;\n scoreStrategy.configuration['scale'] = scale;\n scoreStrategy.configuration['offset'] = offset;\n scoreStrategy.configuration['decay'] = decay;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Fix filter path.\n *\n * @param filter\n *\n * @return {Filter}\n */\n ScoreStrategy.fixFilterFieldPath = function (filter) {\n if (filter == null) {\n return filter;\n }\n var filterAsArray = filter.toArray();\n filterAsArray['field'] = Item_1.Item.getPathByField(filterAsArray['field']);\n return Filter_1.Filter.createFromArray(filterAsArray);\n };\n /**\n * To array\n *\n * @return {{\n * type: string,\n * configuration: any,\n * weight: number,\n * score_mode: string,\n * filter: any\n * }}\n */\n ScoreStrategy.prototype.toArray = function () {\n return {\n type: this.type,\n configuration: this.configuration,\n weight: this.weight,\n score_mode: this.scoreMode,\n filter: this.filter instanceof Filter_1.Filter\n ? this.filter.toArray()\n : null\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var scoreStrategy = ScoreStrategy.createDefault();\n if (typeof array.type != \"undefined\") {\n scoreStrategy.type = array.type;\n }\n if (typeof array.configuration != \"undefined\") {\n scoreStrategy.configuration = array.configuration;\n }\n if (typeof array.weight != \"undefined\") {\n scoreStrategy.weight = array.weight;\n }\n if (typeof array.score_mode != \"undefined\") {\n scoreStrategy.scoreMode = array.score_mode;\n }\n if (typeof array.filter === 'object' && array.filter !== null) {\n scoreStrategy.filter = Filter_1.Filter.createFromArray(array.filter);\n }\n return scoreStrategy;\n };\n return ScoreStrategy;\n}());\nexports.ScoreStrategy = ScoreStrategy;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\n/**\n export * Sort by constants\n */\nexports.SORT_BY_TYPE_FIELD = 'field';\nexports.SORT_BY_TYPE_NESTED = 'nested';\nexports.SORT_BY_TYPE_SCORE = 'score';\nexports.SORT_BY_TYPE_DISTANCE = 'distance';\nexports.SORT_BY_TYPE_FUNCTION = 'function';\nexports.SORT_BY_TYPE_RANDOM = 'random';\nexports.SORT_BY_ASC = \"asc\";\nexports.SORT_BY_DESC = \"desc\";\nexports.SORT_BY_MODE_AVG = \"avg\";\nexports.SORT_BY_MODE_SUM = \"sum\";\nexports.SORT_BY_MODE_MIN = \"min\";\nexports.SORT_BY_MODE_MAX = \"max\";\nexports.SORT_BY_MODE_MEDIAN = \"median\";\nexports.SORT_BY_SCORE = {\n type: exports.SORT_BY_TYPE_SCORE\n};\nexports.SORT_BY_RANDOM = {\n type: exports.SORT_BY_TYPE_RANDOM\n};\nexports.SORT_BY_AL_TUN_TUN = exports.SORT_BY_RANDOM;\nexports.SORT_BY_ID_ASC = {\n field: \"uuid.id\",\n order: exports.SORT_BY_ASC\n};\nexports.SORT_BY_ID_DESC = {\n field: \"uuid.id\",\n order: exports.SORT_BY_DESC\n};\nexports.SORT_BY_TYPE_ASC = {\n field: \"uuid.type\",\n order: exports.SORT_BY_ASC\n};\nexports.SORT_BY_TYPE_DESC = {\n field: \"uuid.type\",\n order: exports.SORT_BY_DESC\n};\nexports.SORT_BY_LOCATION_KM_ASC = {\n type: exports.SORT_BY_TYPE_DISTANCE,\n unit: \"km\"\n};\nexports.SORT_BY_LOCATION_MI_ASC = {\n type: exports.SORT_BY_TYPE_DISTANCE,\n unit: \"mi\"\n};\nvar Coordinate_1 = require(\"../Model/Coordinate\");\nvar Filter_1 = require(\"./Filter\");\n/**\n * ScoreStrategy\n */\nvar SortBy = /** @class */ (function () {\n function SortBy() {\n this.sortsBy = [];\n }\n /**\n * Create\n *\n * @return {SortBy}\n */\n SortBy.create = function () {\n return new SortBy;\n };\n /**\n * Sort By fields values\n *\n * @param shortSortByElements\n *\n * @return {SortBy}\n */\n SortBy.byFieldsValues = function (shortSortByElements) {\n var sortBy = SortBy.create();\n for (var key in shortSortByElements) {\n sortBy.byFieldValue(key, shortSortByElements[key]);\n }\n return sortBy;\n };\n /**\n * All\n *\n * @return {Array}\n */\n SortBy.prototype.all = function () {\n return this.sortsBy.length > 0\n ? this.sortsBy\n : [exports.SORT_BY_SCORE];\n };\n /**\n * Sort by value\n *\n * @param value\n *\n * @return {SortBy}\n */\n SortBy.prototype.byValue = function (value) {\n if (exports.SORT_BY_SCORE != value &&\n exports.SORT_BY_RANDOM != value) {\n if (typeof value.type == \"undefined\") {\n value.type = exports.SORT_BY_TYPE_FIELD;\n }\n }\n if (exports.SORT_BY_SCORE != value) {\n this.sortsBy.push(value);\n }\n return this;\n };\n /**\n * Sort by field value\n *\n * @param field\n * @param order\n *\n * @return {SortBy}\n */\n SortBy.prototype.byFieldValue = function (field, order) {\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_FIELD,\n field: Item_1.Item.getPathByField(field),\n order: order\n });\n return this;\n };\n /**\n * Sort by nested field\n *\n * @param field\n * @param order\n * @param mode\n *\n * @return {SortBy}\n */\n SortBy.prototype.byNestedField = function (field, order, mode) {\n if (mode === void 0) { mode = exports.SORT_BY_MODE_AVG; }\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_NESTED,\n mode: mode,\n field: 'indexed_metadata.' + field,\n order: order\n });\n return this;\n };\n /**\n * Sort by nested field and filter\n *\n * @param field\n * @param order\n * @param filter\n * @param mode\n *\n * @return {SortBy}\n */\n SortBy.prototype.byNestedFieldAndFilter = function (field, order, filter, mode) {\n if (mode === void 0) { mode = exports.SORT_BY_MODE_AVG; }\n var fieldPath = Item_1.Item.getPathByField(filter.getField());\n var filterAsArray = filter.toArray();\n filterAsArray.field = fieldPath;\n filter = Filter_1.Filter.createFromArray(filterAsArray);\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_NESTED,\n mode: mode,\n filter: filter,\n field: 'indexed_metadata.' + field,\n order: order\n });\n return this;\n };\n /**\n * Sort by function\n *\n * @param func\n * @param order\n *\n * @return {SortBy}\n */\n SortBy.prototype.byFunction = function (func, order) {\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_FUNCTION,\n \"function\": func,\n order: order\n });\n return this;\n };\n /**\n * Is sorted by geo distance\n *\n * @return {boolean}\n */\n SortBy.prototype.isSortedByGeoDistance = function () {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_DISTANCE) {\n return true;\n }\n }\n return false;\n };\n /**\n * Set coordinate\n *\n * @param coordinate\n *\n * @return {SortBy}\n */\n SortBy.prototype.setCoordinate = function (coordinate) {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_DISTANCE) {\n this.sortsBy[i].coordinate = coordinate;\n }\n }\n return this;\n };\n /**\n * Has random sort\n *\n * @return {boolean}\n */\n SortBy.prototype.hasRandomSort = function () {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_RANDOM) {\n return true;\n }\n }\n return false;\n };\n /**\n * To array\n *\n * @return {[]}\n */\n SortBy.prototype.toArray = function () {\n var copySortBy = this.copy();\n var sortsByAsArray = copySortBy.sortsBy;\n for (var i in sortsByAsArray) {\n if (typeof sortsByAsArray[i].filter === typeof {} &&\n sortsByAsArray[i].filter != null) {\n sortsByAsArray[i].filter = sortsByAsArray[i].filter.toArray();\n }\n if (sortsByAsArray[i].coordinate !== null &&\n sortsByAsArray[i].coordinate instanceof Coordinate_1.Coordinate) {\n sortsByAsArray[i].coordinate = sortsByAsArray[i].coordinate.toArray();\n }\n }\n return sortsByAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {SortBy}\n */\n SortBy.createFromArray = function (array) {\n var innerArray = JSON.parse(JSON.stringify(array));\n var sortBy = SortBy.create();\n for (var i in innerArray) {\n var element = innerArray[i];\n if (typeof element.type == \"undefined\") {\n element.type = exports.SORT_BY_TYPE_FIELD;\n }\n if (typeof element.filter === typeof {} &&\n element.filter != null) {\n element.filter = Filter_1.Filter.createFromArray(element.filter);\n }\n if (element.coordinate != null &&\n typeof element.coordinate === typeof {}) {\n element.coordinate = Coordinate_1.Coordinate.createFromArray(element.coordinate);\n }\n sortBy.sortsBy.push(element);\n }\n return sortBy;\n };\n /**\n * Make a copy of this\n *\n * @returns {SortBy}\n */\n SortBy.prototype.copy = function () {\n var newSortBy = SortBy.create();\n for (var i in this.sortsBy) {\n var sortBy = this.sortsBy[i];\n var sortByAsArray = JSON.parse(JSON.stringify(sortBy));\n if (typeof sortBy.filter === typeof {} &&\n sortBy.filter != null) {\n sortByAsArray.filter = Filter_1.Filter.createFromArray(sortBy.filter.toArray());\n }\n if (sortBy.coordinate != null &&\n typeof sortBy.coordinate == typeof {}) {\n sortByAsArray.coordinate = Coordinate_1.Coordinate.createFromArray(sortBy.coordinate.toArray());\n }\n newSortBy.sortsBy.push(sortByAsArray);\n }\n return newSortBy;\n };\n return SortBy;\n}());\nexports.SortBy = SortBy;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ConnectionError_1 = require(\"../Error/ConnectionError\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar InvalidTokenError_1 = require(\"../Error/InvalidTokenError\");\nvar ResourceExistsError_1 = require(\"../Error/ResourceExistsError\");\nvar ResourceNotAvailableError_1 = require(\"../Error/ResourceNotAvailableError\");\nvar Item_1 = require(\"../Model/Item\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\nvar Result_1 = require(\"../Result/Result\");\nvar Repository_1 = require(\"./Repository\");\nvar Index_1 = require(\"../Model/Index\");\n/**\n * Aggregation class\n */\nvar HttpRepository = /** @class */ (function (_super) {\n tslib_1.__extends(HttpRepository, _super);\n /**\n * Constructor\n *\n * @param httpClient\n * @param appId\n * @param indexId\n * @param token\n * @param transformer\n */\n function HttpRepository(httpClient, appId, indexId, token, transformer) {\n var _this = _super.call(this, appId, indexId, token) || this;\n _this.httpClient = httpClient;\n _this.transformer = transformer;\n return _this;\n }\n /**\n * Get transformer\n *\n * @return {Transformer}\n */\n HttpRepository.prototype.getTransformer = function () {\n return this.transformer;\n };\n /**\n * Generate item document by a simple object.\n *\n * @param object\n */\n HttpRepository.prototype.addObject = function (object) {\n var item = this\n .transformer\n .toItem(object);\n if (item instanceof Item_1.Item) {\n this.addItem(item);\n }\n };\n /**\n * Delete item document by uuid.\n *\n * @param object\n */\n HttpRepository.prototype.deleteObject = function (object) {\n var itemUUID = this\n .transformer\n .toItemUUID(object);\n if (itemUUID instanceof ItemUUID_1.ItemUUID) {\n this.deleteItem(itemUUID);\n }\n };\n /**\n * Flush update items\n *\n * @param itemsToUpdate\n *\n * @return {Promise}\n */\n HttpRepository.prototype.flushUpdateItems = function (itemsToUpdate) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n if (itemsToUpdate.length === 0) {\n return [2 /*return*/];\n }\n return [2 /*return*/, this\n .httpClient\n .get(\"/items\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {\n items: itemsToUpdate.map(function (item) {\n return item.toArray();\n })\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n })];\n });\n });\n };\n /**\n * Flush delete items\n *\n * @param itemsToDelete\n *\n * @return {Promise}\n */\n HttpRepository.prototype.flushDeleteItems = function (itemsToDelete) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n if (itemsToDelete.length === 0) {\n return [2 /*return*/];\n }\n return [2 /*return*/, this\n .httpClient\n .get(\"/items\", \"delete\", this.getCredentialsWithIndex(this.indexId), {}, {\n items: itemsToDelete.map(function (itemUUID) {\n return itemUUID.toArray();\n })\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n })];\n });\n });\n };\n /**\n * Query\n *\n * @param query\n *\n * @return {Promise}\n */\n HttpRepository.prototype.query = function (query) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var that;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n that = this;\n return [4 /*yield*/, this\n .httpClient\n .get(\"/\", \"get\", this.getCredentialsWithIndex(this.indexId), {\n query: JSON.stringify(query.toArray())\n }, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n var result = Result_1.Result.createFromArray(response.getBody());\n return Result_1.Result.create(result.getQuery(), result.getTotalItems(), result.getTotalHits(), result.getAggregations(), result.getSuggests(), that\n .transformer\n .fromItems(result.getItems()));\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Update items\n *\n * @param query\n * @param changes\n *\n * @return {Promise}\n */\n HttpRepository.prototype.updateItems = function (query, changes) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/items\", \"put\", this.getCredentialsWithIndex(this.indexId), {}, {\n query: query.toArray(),\n changes: changes.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Create index\n *\n * @param indexUUID\n * @param config\n *\n * @return {Promise}\n */\n HttpRepository.prototype.createIndex = function (indexUUID, config) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"put\", this.getCredentials(), {}, {\n index: indexUUID.toArray(),\n config: config.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Delete index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.deleteIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"delete\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Reset index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.resetIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index/reset\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Check index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.checkIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"head\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return response.getCode() === 200;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Check index\n *\n * @return {Promise}\n */\n HttpRepository.prototype.getIndices = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/indices\", \"get\", this.getCredentials(), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n var result = [];\n for (var _i = 0, _a = response.getBody(); _i < _a.length; _i++) {\n var indexAsArray = _a[_i];\n result.push(Index_1.Index.createFromArray(indexAsArray));\n }\n return result;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Configure index\n *\n * @param indexUUID\n * @param config\n *\n * @return {Promise}\n */\n HttpRepository.prototype.configureIndex = function (indexUUID, config) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {\n config: config.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Get query values\n *\n * @returns any\n */\n HttpRepository.prototype.getCredentials = function () {\n return {\n app_id: this.appId,\n token: this.token\n };\n };\n /**\n * Get query values\n *\n * @param indexComposedUUID\n *\n * @returns any\n */\n HttpRepository.prototype.getCredentialsWithIndex = function (indexComposedUUID) {\n return {\n app_id: this.appId,\n index: indexComposedUUID,\n token: this.token\n };\n };\n /**\n * throw error if needed\n *\n * @param response\n */\n HttpRepository.throwTransportableExceptionIfNeeded = function (response) {\n if (typeof response.getCode() == \"undefined\") {\n return;\n }\n switch (response.getCode()) {\n case ResourceNotAvailableError_1.ResourceNotAvailableError.getTransportableHTTPError():\n throw new ResourceNotAvailableError_1.ResourceNotAvailableError(response.getBody().message);\n case InvalidTokenError_1.InvalidTokenError.getTransportableHTTPError():\n throw new InvalidTokenError_1.InvalidTokenError(response.getBody().message);\n case InvalidFormatError_1.InvalidFormatError.getTransportableHTTPError():\n throw new InvalidFormatError_1.InvalidFormatError(response.getBody().message);\n case ResourceExistsError_1.ResourceExistsError.getTransportableHTTPError():\n throw new ResourceExistsError_1.ResourceExistsError(response.getBody().message);\n case ConnectionError_1.ConnectionError.getTransportableHTTPError():\n throw new ConnectionError_1.ConnectionError(response.getBody().message);\n }\n };\n return HttpRepository;\n}(Repository_1.Repository));\nexports.HttpRepository = HttpRepository;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\n/**\n * Aggregation class\n */\nvar Repository = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param appId\n * @param indexId\n * @param token\n */\n function Repository(appId, indexId, token) {\n this.itemsToUpdate = [];\n this.itemsToDelete = [];\n this.appId = appId;\n this.indexId = indexId;\n this.token = token;\n }\n /**\n * Reset cached elements\n */\n Repository.prototype.resetCachedElements = function () {\n this.itemsToUpdate = [];\n this.itemsToDelete = [];\n };\n /**\n * Add element\n *\n * @param item\n */\n Repository.prototype.addItem = function (item) {\n this.itemsToUpdate.push(item);\n };\n /**\n * Add elements\n *\n * @param items\n */\n Repository.prototype.addItems = function (items) {\n for (var i in items) {\n this.addItem(items[i]);\n }\n };\n /**\n * Delete item\n *\n * @param itemUUID\n */\n Repository.prototype.deleteItem = function (itemUUID) {\n this.itemsToDelete.push(itemUUID);\n };\n /**\n * Delete items\n *\n * @param itemsUUID\n */\n Repository.prototype.deleteItems = function (itemsUUID) {\n for (var i in itemsUUID) {\n this.deleteItem(itemsUUID[i]);\n }\n };\n /**\n * flush\n *\n * @param bulkNumber\n * @param skipIfLess\n *\n * @return {Promise}\n */\n Repository.prototype.flush = function (bulkNumber, skipIfLess) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n if (!bulkNumber) {\n bulkNumber = 500;\n }\n if (!skipIfLess) {\n skipIfLess = false;\n }\n if (skipIfLess &&\n this.itemsToUpdate.length < bulkNumber) {\n return [2 /*return*/];\n }\n return [2 /*return*/, Promise.all(Repository\n .chunkArray(this.itemsToUpdate, bulkNumber)\n .map(function (arrayOfItems) {\n return _this.flushUpdateItems(arrayOfItems);\n })\n .concat(Repository\n .chunkArray(this.itemsToDelete, bulkNumber)\n .map(function (arrayOfItemsUUID) {\n return _this.flushDeleteItems(arrayOfItemsUUID);\n }))).then(function (_) {\n _this.resetCachedElements();\n })[\"catch\"](function (_) {\n _this.resetCachedElements();\n })];\n });\n });\n };\n /**\n * Make chunks of n elements\n *\n * @param array\n * @param chunk\n *\n * @return any[]\n */\n Repository.chunkArray = function (array, chunk) {\n var arrayChunked = [];\n for (var i = 0, j = array.length; i < j; i += chunk) {\n arrayChunked.push(array.slice(i, i + chunk));\n }\n return arrayChunked;\n };\n return Repository;\n}());\nexports.Repository = Repository;\n","\"use strict\";\nexports.__esModule = true;\nvar Metadata_1 = require(\"../Model/Metadata\");\n/**\n * Aggregation class\n */\nvar Counter = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param values\n * @param used\n * @param n\n */\n function Counter(values, used, n) {\n this.values = values;\n this.used = used;\n this.n = n;\n }\n /**\n * Get id\n *\n * @return {string|null}\n */\n Counter.prototype.getId = function () {\n return typeof this.values.id == \"string\"\n ? this.values.id\n : null;\n };\n /**\n * Get name\n *\n * @return {string|null}\n */\n Counter.prototype.getName = function () {\n return typeof this.values.name == \"string\"\n ? this.values.name\n : null;\n };\n /**\n * Get slug\n *\n * @return {string|null}\n */\n Counter.prototype.getSlug = function () {\n return typeof this.values.slug == \"string\"\n ? this.values.slug\n : null;\n };\n /**\n * Get level\n *\n * @return {number}\n */\n Counter.prototype.getLevel = function () {\n return typeof this.values.level == \"number\"\n ? this.values.level\n : 0;\n };\n /**\n * Get values\n *\n * @returns {{}}\n */\n Counter.prototype.getValues = function () {\n return this.values;\n };\n /**\n * Is used\n *\n * @returns {boolean}\n */\n Counter.prototype.isUsed = function () {\n return this.used;\n };\n /**\n * Get N\n *\n * @returns {number}\n */\n Counter.prototype.getN = function () {\n return this.n;\n };\n /**\n * Create by active elements\n *\n * @param name\n * @param n\n * @param activeElements\n */\n Counter.createByActiveElements = function (name, n, activeElements) {\n var values = Metadata_1.Metadata.fromMetadata(name);\n if (values == null) {\n return null;\n }\n var i = activeElements.length;\n var inActiveElements = false;\n while (i--) {\n if (activeElements[i] == values.id) {\n inActiveElements = true;\n }\n }\n return new Counter(values, inActiveElements, n);\n };\n /**\n * To array\n *\n * @return {{}}\n */\n Counter.prototype.toArray = function () {\n var values = {\n values: this.values,\n n: this.n\n };\n if (this.used === true) {\n values.used = true;\n }\n return values;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Counter}\n */\n Counter.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new Counter(array.values, (typeof array.used == \"boolean\")\n ? array.used\n : false, array.n);\n };\n return Counter;\n}());\nexports.Counter = Counter;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar Query_1 = require(\"../Query/Query\");\nvar ResultAggregations_1 = require(\"./ResultAggregations\");\n/**\n * Result class\n */\nvar Result = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param query\n * @param totalItems\n * @param totalHits\n */\n function Result(query, totalItems, totalHits) {\n this.items = [];\n this.suggests = [];\n this.query = query;\n this.totalItems = totalItems;\n this.totalHits = totalHits;\n }\n /**\n * Create\n *\n * @param query\n * @param totalItems\n * @param totalHits\n * @param aggregations\n * @param suggests\n * @param items\n *\n * @returns {Result}\n */\n Result.create = function (query, totalItems, totalHits, aggregations, suggests, items) {\n var result = new Result(query, totalItems, totalHits);\n result.aggregations = aggregations;\n result.suggests = suggests;\n result.items = items;\n return result;\n };\n /**\n * Add item\n *\n * @param item\n */\n Result.prototype.addItem = function (item) {\n this.items.push(item);\n };\n /**\n * Get items\n *\n * @return {Item[]}\n */\n Result.prototype.getItems = function () {\n return this.items;\n };\n /**\n * Get items grouped by types\n *\n * @return {any[]}\n */\n Result.prototype.getItemsGroupedByTypes = function () {\n if (this.itemsGroupedByTypeCache instanceof Object &&\n Object.keys(this.itemsGroupedByTypeCache).length > 0) {\n return this.itemsGroupedByTypeCache;\n }\n var itemsGroupedByTypes = {};\n for (var i in this.items) {\n var item = this.items[i];\n if (!(itemsGroupedByTypes[item.getType()] instanceof Array)) {\n itemsGroupedByTypes[item.getType()] = [];\n }\n itemsGroupedByTypes[item.getType()].push(item);\n }\n this.itemsGroupedByTypeCache = itemsGroupedByTypes;\n return itemsGroupedByTypes;\n };\n /**\n * Get items by type\n *\n * @param type\n *\n * @return {Array}\n */\n Result.prototype.getItemsByType = function (type) {\n var itemsGroupedByTypes = this.getItemsGroupedByTypes();\n return itemsGroupedByTypes[type] == null\n ? []\n : itemsGroupedByTypes[type];\n };\n /**\n * Get items by types\n *\n * @param types\n */\n Result.prototype.getItemsByTypes = function (types) {\n return this.items.filter(function (item) { return types.indexOf(item.getType()) >= 0; });\n };\n /**\n * Get first item\n *\n * @return {Item}\n */\n Result.prototype.getFirstItem = function () {\n return this.items.length > 0\n ? this.items[0]\n : null;\n };\n /**\n * Set aggregations\n *\n * @param aggregations\n */\n Result.prototype.setAggregations = function (aggregations) {\n this.aggregations = aggregations;\n };\n /**\n * Get aggregations\n *\n * @return {ResultAggregations}\n */\n Result.prototype.getAggregations = function () {\n return this.aggregations instanceof ResultAggregations_1.ResultAggregations\n ? this.aggregations\n : null;\n };\n /**\n * Get aggregation\n *\n * @param name\n *\n * @return {null}\n */\n Result.prototype.getAggregation = function (name) {\n return this.aggregations == null\n ? null\n : this.aggregations.getAggregation(name);\n };\n /**\n * Has no empty aggregation\n *\n * @param name\n *\n * @return {boolean}\n */\n Result.prototype.hasNotEmptyAggregation = function (name) {\n return this.aggregations == null\n ? false\n : this.aggregations.hasNotEmptyAggregation(name);\n };\n /**\n * Add suggest\n *\n * @param suggest\n */\n Result.prototype.addSuggest = function (suggest) {\n this.suggests.push(suggest);\n };\n /**\n * Get suggests\n *\n * @return {string[]}\n */\n Result.prototype.getSuggests = function () {\n return this.suggests;\n };\n /**\n * Get query\n *\n * @return {Query}\n */\n Result.prototype.getQuery = function () {\n return this.query;\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n Result.prototype.getTotalItems = function () {\n return this.totalItems;\n };\n /**\n * Get total hits\n *\n * @return {number}\n */\n Result.prototype.getTotalHits = function () {\n return this.totalHits;\n };\n /**\n * to array\n *\n * @return {{query: any, total_items: number, total_hits: number, items:any[], aggregations: any, suggests: string[]}}\n */\n Result.prototype.toArray = function () {\n return {\n query: this.query.toArray(),\n total_items: this.totalItems,\n total_hits: this.totalHits,\n items: this.items.map(function (item) { return item.toArray(); }),\n aggregations: this.aggregations == null\n ? null\n : this.aggregations.toArray(),\n suggests: this.suggests\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Result}\n */\n Result.createFromArray = function (array) {\n return Result.create(Query_1.Query.createFromArray(array.query), array.total_items\n ? array.total_items\n : 0, array.total_hits\n ? array.total_hits\n : 0, array.aggregations instanceof Object\n ? ResultAggregations_1.ResultAggregations.createFromArray(array.aggregations)\n : null, array.suggests\n ? array.suggests\n : null, array.items instanceof Array\n ? array.items.map(function (itemAsArray) { return Item_1.Item.createFromArray(itemAsArray); })\n : []);\n };\n return Result;\n}());\nexports.Result = Result;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Filter_1 = require(\"../Query/Filter\");\nvar Counter_1 = require(\"./Counter\");\n/**\n * ResultAggregation class\n */\nvar ResultAggregation = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param name\n * @param applicationType\n * @param totalElements\n * @param activeElements\n */\n function ResultAggregation(name, applicationType, totalElements, activeElements) {\n this.counters = {};\n this.highestActiveElement = 0;\n this.name = name;\n this.applicationType = applicationType;\n this.totalElements = totalElements;\n this.activeElements = {};\n for (var i in activeElements) {\n var activeElement = activeElements[i];\n this.activeElements[activeElement] = activeElement;\n }\n }\n /**\n * Add counter\n *\n * @param name\n * @param counter\n */\n ResultAggregation.prototype.addCounter = function (name, counter) {\n if (counter == 0) {\n return;\n }\n var counterInstance = Counter_1.Counter.createByActiveElements(name, counter, Object.keys(this.activeElements));\n if (!(counterInstance instanceof Counter_1.Counter)) {\n return;\n }\n if ((this.applicationType & Filter_1.FILTER_MUST_ALL_WITH_LEVELS) &&\n (this.applicationType & ~Filter_1.FILTER_MUST_ALL) &&\n counterInstance.isUsed()) {\n this.activeElements[counterInstance.getId()] = counterInstance;\n this.highestActiveElement = Math.max(counterInstance.getLevel(), this.highestActiveElement);\n return;\n }\n this.counters[counterInstance.getId()] = counterInstance;\n };\n /**\n * Get name\n *\n * @return {string}\n */\n ResultAggregation.prototype.getName = function () {\n return this.name;\n };\n /**\n * Get counter\n *\n * @return {any}\n */\n ResultAggregation.prototype.getCounters = function () {\n return this.counters;\n };\n /**\n * Return if the aggregation belongs to a filter.\n *\n * @return {boolean}\n */\n ResultAggregation.prototype.isFilter = function () {\n return (this.applicationType & Filter_1.FILTER_MUST_ALL) > 0;\n };\n /**\n * Aggregation has levels.\n *\n * @return {boolean}\n */\n ResultAggregation.prototype.hasLevels = function () {\n return (this.applicationType & Filter_1.FILTER_MUST_ALL_WITH_LEVELS) > 0;\n };\n /**\n * Get counter by name\n *\n * @param name\n *\n * @return {null}\n */\n ResultAggregation.prototype.getCounter = function (name) {\n return this.counters[name] instanceof Counter_1.Counter\n ? this.counters[name]\n : null;\n };\n /**\n * Get all elements\n *\n * @return {{}}\n */\n ResultAggregation.prototype.getAllElements = function () {\n return tslib_1.__assign({}, this.activeElements, this.counters);\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n ResultAggregation.prototype.getTotalElements = function () {\n return this.totalElements;\n };\n /**\n * Get active elements\n *\n * @return {any}\n */\n ResultAggregation.prototype.getActiveElements = function () {\n if (Object.keys(this.activeElements).length === 0) {\n return {};\n }\n if (this.applicationType === Filter_1.FILTER_MUST_ALL_WITH_LEVELS) {\n var value = null;\n for (var i in this.activeElements) {\n var activeElement = this.activeElements[i];\n if (!(activeElement instanceof Counter_1.Counter)) {\n continue;\n }\n if (value == null) {\n value = activeElement;\n }\n value = value.getLevel() > activeElement.getLevel()\n ? value\n : activeElement;\n }\n return value instanceof Counter_1.Counter\n ? { 0: value }\n : null;\n }\n return this.activeElements;\n };\n /**\n * Clean results by level and remove all levels higher than the lowest.\n */\n ResultAggregation.prototype.cleanCountersByLevel = function () {\n for (var i in this.counters) {\n var counter = this.counters[i];\n if (counter.getLevel() !== this.highestActiveElement + 1) {\n delete this.counters[i];\n }\n }\n };\n /**\n * Is empty\n *\n * @returns {boolean}\n */\n ResultAggregation.prototype.isEmpty = function () {\n return Object.keys(this.activeElements).length == 0 &&\n Object.keys(this.counters).length == 0;\n };\n /**\n * To array\n *\n * @return {any}\n */\n ResultAggregation.prototype.toArray = function () {\n var array = {\n name: this.name,\n counters: [],\n active_elements: []\n };\n for (var i in this.counters) {\n array.counters.push(this.counters[i].toArray());\n }\n if (this.applicationType !== Filter_1.FILTER_AT_LEAST_ONE) {\n array.application_type = this.applicationType;\n }\n if (this.totalElements > 0) {\n array.total_elements = this.totalElements;\n }\n for (var i in this.activeElements) {\n var activeElement = this.activeElements[i];\n array.active_elements.push(activeElement instanceof Counter_1.Counter\n ? activeElement.toArray()\n : activeElement);\n }\n if (this.highestActiveElement > 0) {\n array.highest_active_level = this.highestActiveElement;\n }\n if (array.counters.length === 0) {\n delete array.counters;\n }\n if (array.active_elements.length === 0) {\n delete array.active_elements;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n */\n ResultAggregation.createFromArray = function (array) {\n var activeElements = [];\n var activeElementsAsArray = array.active_elements;\n activeElementsAsArray = typeof activeElementsAsArray === typeof []\n ? activeElementsAsArray\n : [];\n for (var i in activeElementsAsArray) {\n var activeElementAsArray = activeElementsAsArray[i];\n activeElements.push(typeof activeElementAsArray === typeof {}\n ? Counter_1.Counter.createFromArray(activeElementAsArray)\n : activeElementAsArray);\n }\n var aggregation = new ResultAggregation(array.name, parseInt(array.application_type ? array.application_type : Filter_1.FILTER_AT_LEAST_ONE), parseInt(array.total_elements ? array.total_elements : 0), []);\n aggregation.activeElements = activeElements;\n var countersAsArray = typeof array.counters === typeof []\n ? array.counters\n : [];\n for (var i in countersAsArray) {\n var counterAsArray = countersAsArray[i];\n var counter = Counter_1.Counter.createFromArray(counterAsArray);\n aggregation.counters[counter.getId()] = counter;\n }\n aggregation.highestActiveElement = typeof array.highest_active_level === \"number\"\n ? array.highest_active_level\n : 0;\n return aggregation;\n };\n return ResultAggregation;\n}());\nexports.ResultAggregation = ResultAggregation;\n","\"use strict\";\nexports.__esModule = true;\nvar ResultAggregation_1 = require(\"./ResultAggregation\");\n/**\n * ResultAggregation class\n */\nvar ResultAggregations = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param totalElements\n */\n function ResultAggregations(totalElements) {\n this.aggregations = {};\n this.totalElements = totalElements;\n }\n /**\n * Add aggregation\n *\n * @param name\n * @param aggregation\n */\n ResultAggregations.prototype.addAggregation = function (name, aggregation) {\n this.aggregations[name] = aggregation;\n };\n /**\n * Get aggregations\n *\n * @returns {{}}\n */\n ResultAggregations.prototype.getAggregations = function () {\n return this.aggregations;\n };\n /**\n * Get aggregation\n *\n * @param name\n *\n * @returns {Aggregation|null}\n */\n ResultAggregations.prototype.getAggregation = function (name) {\n return this.aggregations[name] instanceof ResultAggregation_1.ResultAggregation\n ? this.aggregations[name]\n : null;\n };\n /**\n * Has not empty aggregation\n *\n * @param name\n *\n * @returns {boolean}\n */\n ResultAggregations.prototype.hasNotEmptyAggregation = function (name) {\n var aggregation = this.getAggregation(name);\n return (aggregation instanceof ResultAggregation_1.ResultAggregation) &&\n (!aggregation.isEmpty());\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n ResultAggregations.prototype.getTotalElements = function () {\n return this.totalElements;\n };\n /**\n * To array\n *\n * @return {{total_elements?: number, aggregations?: {}}}\n */\n ResultAggregations.prototype.toArray = function () {\n var aggregationCollection = {};\n for (var i in this.aggregations) {\n aggregationCollection[i] = this.aggregations[i].toArray();\n }\n var array = {};\n if (this.totalElements > 0) {\n array.total_elements = this.totalElements;\n }\n if (Object.keys(aggregationCollection).length > 0) {\n array.aggregations = aggregationCollection;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ResultAggregations}\n */\n ResultAggregations.createFromArray = function (array) {\n var aggregations = new ResultAggregations(typeof array.total_elements === \"number\"\n ? array.total_elements\n : 0);\n if (typeof array.aggregations === typeof {}) {\n for (var i in array.aggregations) {\n aggregations.addAggregation(i, ResultAggregation_1.ResultAggregation.createFromArray(array.aggregations[i]));\n }\n }\n return aggregations;\n };\n return ResultAggregations;\n}());\nexports.ResultAggregations = ResultAggregations;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\n/**\n * Transformer\n */\nvar Transformer = /** @class */ (function () {\n function Transformer() {\n this.readTransformers = [];\n this.writeTransformers = [];\n }\n /**\n * Add read transformer\n *\n * @param readTransformer\n */\n Transformer.prototype.addReadTransformer = function (readTransformer) {\n this\n .readTransformers\n .push(readTransformer);\n };\n /**\n * Add write transformer\n *\n * @param writeTransformer\n */\n Transformer.prototype.addWriteTransformer = function (writeTransformer) {\n this\n .writeTransformers\n .push(writeTransformer);\n };\n /**\n * Items to objects\n *\n * @param items\n *\n * @returns {any[]}\n */\n Transformer.prototype.fromItems = function (items) {\n var objects = [];\n for (var i in items) {\n objects.push(this.fromItem(items[i]));\n }\n return objects;\n };\n /**\n * Item to object\n *\n * @param item\n *\n * @returns {any}\n */\n Transformer.prototype.fromItem = function (item) {\n for (var i in this.readTransformers) {\n var transformer = this.readTransformers[i];\n if (transformer.isValidItem(item)) {\n return transformer.fromItem(item);\n }\n }\n return item;\n };\n /**\n * Objects to items\n *\n * @param objects\n *\n * @returns {Item[]}\n */\n Transformer.prototype.toItems = function (objects) {\n var items = [];\n for (var i in objects) {\n var item = this.toItem(objects[i]);\n if (item instanceof Item_1.Item) {\n items.push(item);\n }\n }\n return items;\n };\n /**\n * Object to item\n *\n * @param object\n *\n * @returns {any}\n */\n Transformer.prototype.toItem = function (object) {\n for (var i in this.writeTransformers) {\n var transformer = this.writeTransformers[i];\n if (transformer.isValidObject(object)) {\n return transformer.toItem(object);\n }\n }\n return object;\n };\n /**\n * Objects to items\n *\n * @param objects\n *\n * @returns {ItemUUID[]}\n */\n Transformer.prototype.toItemUUIDs = function (objects) {\n var itemUUIDs = [];\n for (var i in objects) {\n var itemUUID = this.toItemUUID(objects[i]);\n if (itemUUID instanceof ItemUUID_1.ItemUUID) {\n itemUUIDs.push(itemUUID);\n }\n }\n return itemUUIDs;\n };\n /**\n * Object to item\n *\n * @param object\n *\n * @returns {any}\n */\n Transformer.prototype.toItemUUID = function (object) {\n for (var i in this.writeTransformers) {\n var transformer = this.writeTransformers[i];\n if (transformer.isValidObject(object)) {\n return transformer.toItemUUID(object);\n }\n }\n return object;\n };\n return Transformer;\n}());\nexports.Transformer = Transformer;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Apisearch_1 = require(\"./Apisearch\");\nexports[\"default\"] = Apisearch_1[\"default\"];\ntslib_1.__exportStar(require(\"./Cache/InMemoryCache\"), exports);\ntslib_1.__exportStar(require(\"./Config/Config\"), exports);\ntslib_1.__exportStar(require(\"./Config/Synonym\"), exports);\ntslib_1.__exportStar(require(\"./Error/ConnectionError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ErrorWithMessage\"), exports);\ntslib_1.__exportStar(require(\"./Error/EventError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ForbiddenError\"), exports);\ntslib_1.__exportStar(require(\"./Error/InvalidFormatError\"), exports);\ntslib_1.__exportStar(require(\"./Error/InvalidTokenError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ResourceExistsError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ResourceNotAvailableError\"), exports);\ntslib_1.__exportStar(require(\"./Error/UnsupportedContentTypeError\"), exports);\ntslib_1.__exportStar(require(\"./Geo/LocationRange\"), exports);\ntslib_1.__exportStar(require(\"./Http/AxiosClient\"), exports);\ntslib_1.__exportStar(require(\"./Http/Client\"), exports);\ntslib_1.__exportStar(require(\"./Http/HttpClient\"), exports);\ntslib_1.__exportStar(require(\"./Http/Response\"), exports);\ntslib_1.__exportStar(require(\"./Http/Retry\"), exports);\ntslib_1.__exportStar(require(\"./Http/RetryMap\"), exports);\ntslib_1.__exportStar(require(\"./Model/Changes\"), exports);\ntslib_1.__exportStar(require(\"./Model/Coordinate\"), exports);\ntslib_1.__exportStar(require(\"./Model/Item\"), exports);\ntslib_1.__exportStar(require(\"./Model/ItemUUID\"), exports);\ntslib_1.__exportStar(require(\"./Model/Metadata\"), exports);\ntslib_1.__exportStar(require(\"./Model/User\"), exports);\ntslib_1.__exportStar(require(\"./Query/Aggregation\"), exports);\ntslib_1.__exportStar(require(\"./Query/Filter\"), exports);\ntslib_1.__exportStar(require(\"./Query/Query\"), exports);\ntslib_1.__exportStar(require(\"./Query/Range\"), exports);\ntslib_1.__exportStar(require(\"./Query/ScoreStrategies\"), exports);\ntslib_1.__exportStar(require(\"./Query/ScoreStrategy\"), exports);\ntslib_1.__exportStar(require(\"./Query/SortBy\"), exports);\ntslib_1.__exportStar(require(\"./Repository/HttpRepository\"), exports);\ntslib_1.__exportStar(require(\"./Repository/Repository\"), exports);\ntslib_1.__exportStar(require(\"./Result/ResultAggregation\"), exports);\ntslib_1.__exportStar(require(\"./Result/ResultAggregations\"), exports);\ntslib_1.__exportStar(require(\"./Result/Counter\"), exports);\ntslib_1.__exportStar(require(\"./Result/Result\"), exports);\ntslib_1.__exportStar(require(\"./Transformer/Transformer\"), exports);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://apisearch/webpack/universalModuleDefinition","webpack://apisearch/webpack/bootstrap","webpack://apisearch/./node_modules/axios/index.js","webpack://apisearch/./node_modules/axios/lib/adapters/xhr.js","webpack://apisearch/./node_modules/axios/lib/axios.js","webpack://apisearch/./node_modules/axios/lib/cancel/Cancel.js","webpack://apisearch/./node_modules/axios/lib/cancel/CancelToken.js","webpack://apisearch/./node_modules/axios/lib/cancel/isCancel.js","webpack://apisearch/./node_modules/axios/lib/core/Axios.js","webpack://apisearch/./node_modules/axios/lib/core/InterceptorManager.js","webpack://apisearch/./node_modules/axios/lib/core/createError.js","webpack://apisearch/./node_modules/axios/lib/core/dispatchRequest.js","webpack://apisearch/./node_modules/axios/lib/core/enhanceError.js","webpack://apisearch/./node_modules/axios/lib/core/settle.js","webpack://apisearch/./node_modules/axios/lib/core/transformData.js","webpack://apisearch/./node_modules/axios/lib/defaults.js","webpack://apisearch/./node_modules/axios/lib/helpers/bind.js","webpack://apisearch/./node_modules/axios/lib/helpers/btoa.js","webpack://apisearch/./node_modules/axios/lib/helpers/buildURL.js","webpack://apisearch/./node_modules/axios/lib/helpers/combineURLs.js","webpack://apisearch/./node_modules/axios/lib/helpers/cookies.js","webpack://apisearch/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://apisearch/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://apisearch/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://apisearch/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://apisearch/./node_modules/axios/lib/helpers/spread.js","webpack://apisearch/./node_modules/axios/lib/utils.js","webpack://apisearch/./node_modules/is-buffer/index.js","webpack://apisearch/./node_modules/process/browser.js","webpack://apisearch/./node_modules/tslib/tslib.es6.js","webpack://apisearch/./src/Apisearch.ts","webpack://apisearch/./src/Cache/InMemoryCache.ts","webpack://apisearch/./src/Cache/NoCache.ts","webpack://apisearch/./src/Config/Config.ts","webpack://apisearch/./src/Config/Synonym.ts","webpack://apisearch/./src/Error/ConnectionError.ts","webpack://apisearch/./src/Error/ErrorWithMessage.ts","webpack://apisearch/./src/Error/EventError.ts","webpack://apisearch/./src/Error/ForbiddenError.ts","webpack://apisearch/./src/Error/InvalidFormatError.ts","webpack://apisearch/./src/Error/InvalidTokenError.ts","webpack://apisearch/./src/Error/ResourceExistsError.ts","webpack://apisearch/./src/Error/ResourceNotAvailableError.ts","webpack://apisearch/./src/Error/UnsupportedContentTypeError.ts","webpack://apisearch/./src/Geo/LocationRange.ts","webpack://apisearch/./src/Http/AxiosClient.ts","webpack://apisearch/./src/Http/Client.ts","webpack://apisearch/./src/Http/HttpClient.ts","webpack://apisearch/./src/Http/Response.ts","webpack://apisearch/./src/Http/Retry.ts","webpack://apisearch/./src/Http/RetryMap.ts","webpack://apisearch/./src/Model/AppUUID.ts","webpack://apisearch/./src/Model/Changes.ts","webpack://apisearch/./src/Model/Coordinate.ts","webpack://apisearch/./src/Model/Index.ts","webpack://apisearch/./src/Model/IndexUUID.ts","webpack://apisearch/./src/Model/Item.ts","webpack://apisearch/./src/Model/ItemUUID.ts","webpack://apisearch/./src/Model/Metadata.ts","webpack://apisearch/./src/Model/User.ts","webpack://apisearch/./src/Query/Aggregation.ts","webpack://apisearch/./src/Query/Filter.ts","webpack://apisearch/./src/Query/Query.ts","webpack://apisearch/./src/Query/Range.ts","webpack://apisearch/./src/Query/ScoreStrategies.ts","webpack://apisearch/./src/Query/ScoreStrategy.ts","webpack://apisearch/./src/Query/SortBy.ts","webpack://apisearch/./src/Repository/HttpRepository.ts","webpack://apisearch/./src/Repository/Repository.ts","webpack://apisearch/./src/Result/Counter.ts","webpack://apisearch/./src/Result/Result.ts","webpack://apisearch/./src/Result/ResultAggregation.ts","webpack://apisearch/./src/Result/ResultAggregations.ts","webpack://apisearch/./src/Transformer/Transformer.ts","webpack://apisearch/./src/index.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;AClFA,iBAAiB,mBAAO,CAAC,sDAAa,E;;;;;;;;;;;;ACAzB;;AAEb,YAAY,mBAAO,CAAC,qDAAY;AAChC,aAAa,mBAAO,CAAC,iEAAkB;AACvC,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,mBAAmB,mBAAO,CAAC,mFAA2B;AACtD,sBAAsB,mBAAO,CAAC,yFAA8B;AAC5D,kBAAkB,mBAAO,CAAC,yEAAqB;AAC/C,yFAAyF,mBAAO,CAAC,mEAAmB;;AAEpH;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,aAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,yEAAsB;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACnLa;;AAEb,YAAY,mBAAO,CAAC,kDAAS;AAC7B,WAAW,mBAAO,CAAC,gEAAgB;AACnC,YAAY,mBAAO,CAAC,4DAAc;AAClC,eAAe,mBAAO,CAAC,wDAAY;;AAEnC;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,kEAAiB;AACxC,oBAAoB,mBAAO,CAAC,4EAAsB;AAClD,iBAAiB,mBAAO,CAAC,sEAAmB;;AAE5C;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,oEAAkB;;AAEzC;;AAEA;AACA;;;;;;;;;;;;;ACnDa;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;;AClBa;;AAEb,aAAa,mBAAO,CAAC,2DAAU;;AAE/B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACxDa;;AAEb;AACA;AACA;;;;;;;;;;;;;ACJa;;AAEb,eAAe,mBAAO,CAAC,2DAAe;AACtC,YAAY,mBAAO,CAAC,qDAAY;AAChC,yBAAyB,mBAAO,CAAC,iFAAsB;AACvD,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kCAAkC,cAAc;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;;;;;;AC9Ea;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;;ACnDa;;AAEb,mBAAmB,mBAAO,CAAC,qEAAgB;;AAE3C;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;AAChC,oBAAoB,mBAAO,CAAC,uEAAiB;AAC7C,eAAe,mBAAO,CAAC,uEAAoB;AAC3C,eAAe,mBAAO,CAAC,yDAAa;AACpC,oBAAoB,mBAAO,CAAC,qFAA4B;AACxD,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;;;;;;ACrFa;;AAEb;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBa;;AAEb,kBAAkB,mBAAO,CAAC,mEAAe;;AAEzC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACnBA,+CAAa;;AAEb,YAAY,mBAAO,CAAC,kDAAS;AAC7B,0BAA0B,mBAAO,CAAC,8FAA+B;;AAEjE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,gEAAgB;AACtC,GAAG;AACH;AACA,cAAc,mBAAO,CAAC,iEAAiB;AACvC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY;AACnB;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;;AC/Fa;;AAEb;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACVa;;AAEb;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACnCa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACjEa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC;AACxC,OAAO;;AAEP;AACA,0DAA0D,wBAAwB;AAClF;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B,aAAa,EAAE;AAC5C;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACnEa;;AAEb,YAAY,mBAAO,CAAC,mDAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACXa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ba;;AAEb,WAAW,mBAAO,CAAC,gEAAgB;AACnC,eAAe,mBAAO,CAAC,oDAAW;;AAElC;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,2BAA2B;AAC3B;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9SA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;;ACvLtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;;AAEO;AACP;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEO;AACP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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,8BAA8B,mCAAmC;AACjE,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC3Ia;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACxDa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC7Ca;AACb;AACA,gBAAgB,mBAAO,CAAC,0CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD,iDAAiD,gCAAgC;AACjF,gCAAgC,iCAAiC;AACjE,kCAAkC,qCAAqC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0BAA0B,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,mDAAmD,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC7Ga;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AChEa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AChBa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtBa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Ca;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,0FAA0F,GAAG,EAAE,KAAK;AACpG;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtJa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC3Ca;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Ca;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Da;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,yBAAyB,mBAAO,CAAC,2DAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Ba;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,mBAAmB,mBAAO,CAAC,sDAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC1Ma;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,cAAc,mBAAO,CAAC,4CAAO;AAC7B,eAAe,mBAAO,CAAC,sCAAU;AACjC,iBAAiB,mBAAO,CAAC,0CAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,oCAAoC,iBAAiB;AACrD,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG;AACtG;AACA;AACA;AACA;AACA;AACA,gEAAgE,6BAA6B,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACjHa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AChCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACVa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AClCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACnEa;AACb;AACA,cAAc,mBAAO,CAAC,oCAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6CAA6C,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACnDa;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACnEa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC1Ha;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC/Da;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE,kBAAkB,mBAAO,CAAC,6CAAa;AACvC,gBAAgB,mBAAO,CAAC,yCAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C,kCAAkC,cAAc;AAChD,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AClGa;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACnEa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE,mBAAmB,mBAAO,CAAC,+CAAc;AACzC,iBAAiB,mBAAO,CAAC,2CAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kCAAkC,eAAe;AACjD,yCAAyC,sBAAsB;AAC/D,4CAA4C,yBAAyB;AACrE,+CAA+C,4BAA4B;AAC3E,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kCAAkC,eAAe;AACjD,yCAAyC,sBAAsB;AAC/D,4CAA4C,yBAAyB;AACrE,+CAA+C,4BAA4B;AAC3E,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yLAAyL,wEAAwE,mFAAmF;AACpV,uHAAuH,wEAAwE,mFAAmF;AAClR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACpYa;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC/Ea;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC9Da;AACb;AACA,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACpEa;AACb;AACA,eAAe,mBAAO,CAAC,uCAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kCAAkC,eAAe;AACjD,8BAA8B,+CAA+C;AAC7E,+BAA+B,sCAAsC;AACrE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC3Ka;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACzJa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,mBAAmB,mBAAO,CAAC,sDAAqB;AAChD,iBAAiB,mBAAO,CAAC,kDAAmB;AAC5C,aAAa,mBAAO,CAAC,0CAAe;AACpC,aAAa,mBAAO,CAAC,0CAAe;AACpC,oBAAoB,mBAAO,CAAC,iDAAe;AAC3C,eAAe,mBAAO,CAAC,uCAAU;AACjC,eAAe,mBAAO,CAAC,uCAAU;AACjC,oBAAoB,mBAAO,CAAC,iDAAe;AAC3C,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE,eAAe,mBAAO,CAAC,uCAAU;AACjC,wBAAwB,mBAAO,CAAC,yDAAmB;AACnD,eAAe,mBAAO,CAAC,uCAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,8BAA8B,mCAAmC;AACjE,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,8BAA8B,mCAAmC;AACjE,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mCAAmC,kBAAkB;AACrD,yCAAyC,gEAAgE;AACzG;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA,mDAAmD,6BAA6B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF,mCAAmC,kBAAkB;AACrD,yCAAyC,gEAAgE;AACzG;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF,mCAAmC,wCAAwC;AAC3E;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF,mCAAmC,wCAAwC;AAC3E,mCAAmC,kBAAkB;AACrD,yCAAyC,gEAAgE;AACzG;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF,mCAAmC,kBAAkB;AACrD,yCAAyC,gEAAgE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gEAAgE;AACzG,+BAA+B,4CAA4C;AAC3E;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mCAAmC,wCAAwC;AAC3E,yCAAyC,gEAAgE;AACzG,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yCAAyC,gEAAgE;AACzG,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,0CAA0C,wBAAwB,gFAAgF,4BAA4B,EAAE;AAChL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC/nCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACvEa;AACb;AACA,sBAAsB,mBAAO,CAAC,qDAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AClGa;AACb;AACA,aAAa,mBAAO,CAAC,0CAAe;AACpC,eAAe,mBAAO,CAAC,uCAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gCAAgC,iCAAiC;AACjE,iCAAiC,mCAAmC;AACpE,kCAAkC,kCAAkC;AACpE,gCAAgC,iCAAiC;AACjE,gCAAgC,eAAe;AAC/C,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gCAAgC,iCAAiC;AACjE,gCAAgC,eAAe;AAC/C,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gCAAgC,iCAAiC;AACjE,gCAAgC,eAAe;AAC/C,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AChPa;AACb;AACA,aAAa,mBAAO,CAAC,0CAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,sDAAqB;AAChD,eAAe,mBAAO,CAAC,uCAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC1Sa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,wBAAwB,mBAAO,CAAC,gEAA0B;AAC1D,2BAA2B,mBAAO,CAAC,sEAA6B;AAChE,0BAA0B,mBAAO,CAAC,oEAA4B;AAC9D,4BAA4B,mBAAO,CAAC,wEAA8B;AAClE,kCAAkC,mBAAO,CAAC,oFAAoC;AAC9E,aAAa,mBAAO,CAAC,0CAAe;AACpC,iBAAiB,mBAAO,CAAC,kDAAmB;AAC5C,eAAe,mBAAO,CAAC,gDAAkB;AACzC,mBAAmB,mBAAO,CAAC,oDAAc;AACzC,cAAc,mBAAO,CAAC,4CAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,IAAI;AACvG;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,IAAI;AAC3G;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,IAAI;AACrG;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,IAAI;AACjF;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG;AACjG;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtXa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACxHa;AACb;AACA,iBAAiB,mBAAO,CAAC,kDAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtIa;AACb;AACA,aAAa,mBAAO,CAAC,0CAAe;AACpC,cAAc,mBAAO,CAAC,4CAAgB;AACtC,2BAA2B,mBAAO,CAAC,gEAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,2CAA2C,EAAE;AAC/F;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iDAAiD,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AChRa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,eAAe,mBAAO,CAAC,8CAAiB;AACxC,gBAAgB,mBAAO,CAAC,0CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACxOa;AACb;AACA,0BAA0B,mBAAO,CAAC,8DAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACxGa;AACb;AACA,aAAa,mBAAO,CAAC,0CAAe;AACpC,iBAAiB,mBAAO,CAAC,kDAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AClIa;AACb;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B,kBAAkB,mBAAO,CAAC,uCAAa;AACvC;AACA,qBAAqB,mBAAO,CAAC,2DAAuB;AACpD,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,iDAAkB;AAC/C,qBAAqB,mBAAO,CAAC,+DAAyB;AACtD,qBAAqB,mBAAO,CAAC,iEAA0B;AACvD,qBAAqB,mBAAO,CAAC,qDAAoB;AACjD,qBAAqB,mBAAO,CAAC,6DAAwB;AACrD,qBAAqB,mBAAO,CAAC,qEAA4B;AACzD,qBAAqB,mBAAO,CAAC,mEAA2B;AACxD,qBAAqB,mBAAO,CAAC,uEAA6B;AAC1D,qBAAqB,mBAAO,CAAC,mFAAmC;AAChE,qBAAqB,mBAAO,CAAC,uFAAqC;AAClE,qBAAqB,mBAAO,CAAC,uDAAqB;AAClD,qBAAqB,mBAAO,CAAC,qDAAoB;AACjD,qBAAqB,mBAAO,CAAC,2CAAe;AAC5C,qBAAqB,mBAAO,CAAC,mDAAmB;AAChD,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,yCAAc;AAC3C,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,qDAAoB;AACjD,qBAAqB,mBAAO,CAAC,yCAAc;AAC3C,qBAAqB,mBAAO,CAAC,iDAAkB;AAC/C,qBAAqB,mBAAO,CAAC,iDAAkB;AAC/C,qBAAqB,mBAAO,CAAC,yCAAc;AAC3C,qBAAqB,mBAAO,CAAC,uDAAqB;AAClD,qBAAqB,mBAAO,CAAC,6CAAgB;AAC7C,qBAAqB,mBAAO,CAAC,2CAAe;AAC5C,qBAAqB,mBAAO,CAAC,2CAAe;AAC5C,qBAAqB,mBAAO,CAAC,+DAAyB;AACtD,qBAAqB,mBAAO,CAAC,2DAAuB;AACpD,qBAAqB,mBAAO,CAAC,6CAAgB;AAC7C,qBAAqB,mBAAO,CAAC,uEAA6B;AAC1D,qBAAqB,mBAAO,CAAC,+DAAyB;AACtD,qBAAqB,mBAAO,CAAC,qEAA4B;AACzD,qBAAqB,mBAAO,CAAC,uEAA6B;AAC1D,qBAAqB,mBAAO,CAAC,iDAAkB;AAC/C,qBAAqB,mBAAO,CAAC,+CAAiB;AAC9C,qBAAqB,mBAAO,CAAC,mEAA2B","file":"apisearch.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apisearch\"] = factory();\n\telse\n\t\troot[\"apisearch\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar NoCache_1 = require(\"./Cache/NoCache\");\nvar AxiosClient_1 = require(\"./Http/AxiosClient\");\nvar RetryMap_1 = require(\"./Http/RetryMap\");\nvar Query_1 = require(\"./Query/Query\");\nvar Query_2 = require(\"./Query/Query\");\nvar Query_3 = require(\"./Query/Query\");\nvar SortBy_1 = require(\"./Query/SortBy\");\nvar HttpRepository_1 = require(\"./Repository/HttpRepository\");\nvar Result_1 = require(\"./Result/Result\");\nvar ResultAggregations_1 = require(\"./Result/ResultAggregations\");\nvar Transformer_1 = require(\"./Transformer/Transformer\");\n/**\n * Apisearch class\n */\nvar Apisearch = /** @class */ (function () {\n function Apisearch() {\n }\n /**\n * Constructor\n *\n * @param config\n *\n * @return {HttpRepository}\n */\n Apisearch.createRepository = function (config) {\n Apisearch.ensureRepositoryConfigIsValid(config);\n config.options = tslib_1.__assign({ api_version: \"v1\", cache: new NoCache_1.NoCache(), timeout: 5000, override_queries: true }, config.options);\n /**\n * Client\n */\n var httpClient = typeof config.options.http_client !== \"undefined\"\n ? config.options.http_client\n : new AxiosClient_1.AxiosClient(config.options.endpoint, config.options.api_version, config.options.timeout, new RetryMap_1.RetryMap(), config.options.override_queries, config.options.cache);\n return new HttpRepository_1.HttpRepository(httpClient, config.app_id, config.index_id, config.token, new Transformer_1.Transformer());\n };\n /**\n * Ensure the Repository configuration is valid\n *\n * @param config\n */\n Apisearch.ensureRepositoryConfigIsValid = function (config) {\n Apisearch.ensureIsDefined(config.app_id, \"app_id\");\n Apisearch.ensureIsDefined(config.index_id, \"index_id\");\n Apisearch.ensureIsDefined(config.token, \"token\");\n Apisearch.ensureIsDefined(config.options.endpoint, \"options.endpoint\");\n };\n /**\n * Ensure the value is not undefined\n *\n * @param param\n * @param name\n */\n Apisearch.ensureIsDefined = function (param, name) {\n if (typeof param === \"undefined\") {\n throw new TypeError(name + \" parameter must be defined.\");\n }\n };\n /**\n * Created located\n *\n * @param coordinate\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Apisearch.createQueryLocated = function (coordinate, queryText, page, size) {\n if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; }\n return Query_3.Query.createLocated(coordinate, queryText, page, size);\n };\n /**\n * Create\n *\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Apisearch.createQuery = function (queryText, page, size) {\n if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; }\n return Query_3.Query.create(queryText, page, size);\n };\n /**\n * Create match all\n *\n * @return {Query}\n */\n Apisearch.createQueryMatchAll = function () {\n return Query_3.Query.createMatchAll();\n };\n /**\n * Create by UUID\n *\n * @param uuid\n *\n * @return {Query}\n */\n Apisearch.createQueryByUUID = function (uuid) {\n return Query_3.Query.createByUUID(uuid);\n };\n /**\n * Create by UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Apisearch.createQueryByUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n return Query_3.Query.createByUUIDs.apply(Query_3.Query, uuids);\n };\n /**\n * Create empty result\n *\n * @return {Result}\n */\n Apisearch.createEmptyResult = function () {\n return Result_1.Result.create(Apisearch.createQueryMatchAll(), 0, 0, new ResultAggregations_1.ResultAggregations(0), [], []);\n };\n /**\n * Create empty sortby\n *\n * @return {SortBy}\n */\n Apisearch.createEmptySortBy = function () {\n return SortBy_1.SortBy.create();\n };\n return Apisearch;\n}());\nexports[\"default\"] = Apisearch;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\n/**\n * Cache class\n */\nvar InMemoryCache = /** @class */ (function () {\n /**\n * Constructor\n */\n function InMemoryCache() {\n this.cache = {};\n this.size = 0;\n this.cache = {};\n this.size = 0;\n }\n /**\n * Set cache element\n *\n * @param key\n * @param value\n *\n * @returns {void}\n */\n InMemoryCache.prototype.set = function (key, value) {\n var _a;\n this.cache = tslib_1.__assign({}, this.cache, (_a = {}, _a[key] = value, _a));\n this.size = this.size + 1;\n };\n /**\n * Get element from cache\n *\n * @param key\n *\n * @returns {any}\n */\n InMemoryCache.prototype.get = function (key) {\n return this.cache[key];\n };\n /**\n * Deletes element from cache\n *\n * @param key\n */\n InMemoryCache.prototype.del = function (key) {\n delete this.cache[key];\n };\n /**\n * Clear cache\n */\n InMemoryCache.prototype.clear = function () {\n this.cache = {};\n this.size = 0;\n };\n return InMemoryCache;\n}());\nexports.InMemoryCache = InMemoryCache;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Cache class\n */\nvar NoCache = /** @class */ (function () {\n function NoCache() {\n }\n /**\n * Set cache element\n *\n * @param key\n * @param value\n *\n * @returns {void}\n */\n NoCache.prototype.set = function (key, value) {\n // Empty\n };\n /**\n * Get element from cache\n *\n * @param key\n *\n * @returns {any}\n */\n NoCache.prototype.get = function (key) {\n return undefined;\n };\n /**\n * Deletes element from cache\n *\n * @param key\n */\n NoCache.prototype.del = function (key) {\n // Empty\n };\n /**\n * Clear cache\n */\n NoCache.prototype.clear = function () {\n // Empty\n };\n return NoCache;\n}());\nexports.NoCache = NoCache;\n","\"use strict\";\nexports.__esModule = true;\nvar Synonym_1 = require(\"./Synonym\");\nexports.DEFAULT_SHARDS = 1;\nexports.DEFAULT_REPLICAS = 0;\n/**\n * Result class\n */\nvar Config = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param language\n * @param storeSearchableMetadata\n * @param shards\n * @param replicas\n */\n function Config(language, storeSearchableMetadata, shards, replicas) {\n if (language === void 0) { language = null; }\n if (storeSearchableMetadata === void 0) { storeSearchableMetadata = true; }\n if (shards === void 0) { shards = exports.DEFAULT_SHARDS; }\n if (replicas === void 0) { replicas = exports.DEFAULT_REPLICAS; }\n this.synonyms = [];\n this.language = language;\n this.storeSearchableMetadata = storeSearchableMetadata;\n this.shards = shards;\n this.replicas = replicas;\n }\n /**\n * Get language\n *\n * @return {string}\n */\n Config.prototype.getLanguage = function () {\n return this.language;\n };\n /**\n * Should searchable metadata be stored\n *\n * @return {boolean}\n */\n Config.prototype.shouldSearchableMetadataBeStored = function () {\n return this.storeSearchableMetadata;\n };\n /**\n * Add synonym\n *\n * @param synonym\n */\n Config.prototype.addSynonym = function (synonym) {\n this.synonyms.push(synonym);\n };\n /**\n * Get synonyms\n *\n * @return {Synonym[]}\n */\n Config.prototype.getSynonyms = function () {\n return this.synonyms;\n };\n /**\n * Get shards\n *\n * @return {number}\n */\n Config.prototype.getShards = function () {\n return this.shards;\n };\n /**\n * Get replicas\n *\n * @return {number}\n */\n Config.prototype.getReplicas = function () {\n return this.replicas;\n };\n /**\n * to array\n */\n Config.prototype.toArray = function () {\n return {\n language: this.language,\n store_searchable_metadata: this.storeSearchableMetadata,\n synonyms: this.synonyms.map(function (synonym) { return synonym.toArray(); }),\n shards: this.shards,\n replicas: this.replicas\n };\n };\n /**\n * Create from array\n */\n Config.createFromArray = function (array) {\n var config = new Config(array.language ? array.language : null, typeof array.store_searchable_metadata == \"boolean\"\n ? array.store_searchable_metadata\n : true);\n if (array.synonyms instanceof Array &&\n array.synonyms.length > 0) {\n config.synonyms = array.synonyms.map(function (synonym) { return Synonym_1.Synonym.createFromArray(synonym); });\n }\n config.shards = typeof array.shards == \"number\"\n ? array.shards\n : exports.DEFAULT_SHARDS;\n config.replicas = typeof array.replicas == \"number\"\n ? array.replicas\n : exports.DEFAULT_REPLICAS;\n return config;\n };\n return Config;\n}());\nexports.Config = Config;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Result class\n */\nvar Synonym = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param words\n */\n function Synonym(words) {\n this.words = words;\n }\n /**\n * get words\n *\n * @return {string[]}\n */\n Synonym.prototype.getWords = function () {\n return this.words;\n };\n /**\n * Create by words\n *\n * @param words\n *\n * @return {Synonym}\n */\n Synonym.createbyWords = function (words) {\n return new Synonym(words);\n };\n /**\n * To array\n *\n * @return {{words: string[]}}\n */\n Synonym.prototype.toArray = function () {\n return {\n words: this.words\n };\n };\n /**\n * create from array\n *\n * @param array\n *\n * @returns {Synonym}\n */\n Synonym.createFromArray = function (array) {\n return new Synonym(array.words instanceof Object\n ? array.words\n : []);\n };\n /**\n * Expand\n *\n * @returns {string}\n */\n Synonym.prototype.expand = function () {\n return this.words.join(\",\");\n };\n return Synonym;\n}());\nexports.Synonym = Synonym;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Connection error\n */\nvar ConnectionError = /** @class */ (function (_super) {\n tslib_1.__extends(ConnectionError, _super);\n function ConnectionError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ConnectionError.getTransportableHTTPError = function () {\n return 500;\n };\n return ConnectionError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ConnectionError = ConnectionError;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * ConnectError\n */\nvar ErrorWithMessage = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param message\n */\n function ErrorWithMessage(message) {\n this.message = message;\n }\n return ErrorWithMessage;\n}());\nexports.ErrorWithMessage = ErrorWithMessage;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * EventError\n */\nvar EventError = /** @class */ (function (_super) {\n tslib_1.__extends(EventError, _super);\n function EventError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n EventError.throwEndpointNotAvailable = function () {\n return new EventError(\"Endpoint not available\");\n };\n return EventError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.EventError = EventError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Forbidden Error\n */\nvar ForbiddenError = /** @class */ (function (_super) {\n tslib_1.__extends(ForbiddenError, _super);\n function ForbiddenError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ForbiddenError.getTransportableHTTPError = function () {\n return 403;\n };\n /**\n * App id is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createAppIdIsRequiredException = function () {\n return new ForbiddenError(\"AppId query parameter MUST be defined with a valid value\");\n };\n /**\n * Index id is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createIndexIsRequiredException = function () {\n return new ForbiddenError(\"Index query parameter MUST be defined with a valid value\");\n };\n /**\n * Token is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createTokenIsRequiredException = function () {\n return new ForbiddenError(\"Token query parameter MUST be defined with a valid value\");\n };\n return ForbiddenError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ForbiddenError = ForbiddenError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Class InvalidFormatError\n */\nvar InvalidFormatError = /** @class */ (function (_super) {\n tslib_1.__extends(InvalidFormatError, _super);\n function InvalidFormatError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n InvalidFormatError.getTransportableHTTPError = function () {\n return 400;\n };\n /**\n * Item representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.itemRepresentationNotValid = function () {\n return new InvalidFormatError(\"Item representation not valid. Expecting Item array serialized but found malformed data\");\n };\n /**\n * Item UUID representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.itemUUIDRepresentationNotValid = function () {\n return new InvalidFormatError(\"Item UUID representation not valid. Expecting UUID array serialized but found malformed data\");\n };\n /**\n * Create Composed UUID bad format.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.composedItemUUIDNotValid = function () {\n return new InvalidFormatError(\"A composed UUID should always follow this format: {id}~{type}.\");\n };\n /**\n * Create Query sorted by distance without coordinate.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.querySortedByDistanceWithoutCoordinate = function () {\n return new InvalidFormatError(\"In order to be able to sort by coordinates, you need to create a Query by using Query::createLocated() instead of Query::create()\");\n };\n /**\n * Query representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.queryFormatNotValid = function () {\n return new InvalidFormatError(\"Query Format not valid. Expecting a Query serialized but found malformed data\");\n };\n /**\n * Coordinate representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.coordinateFormatNotValid = function () {\n return new InvalidFormatError(\"A Coordinate should always contain a lat (Latitude) and a lon (Longitude)\");\n };\n /**\n * Config representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.configFormatNotValid = function () {\n return new InvalidFormatError(\"Config Format not valid. Expecting a Config serialized but found malformed data\");\n };\n /**\n * Token representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.tokenFormatNotValid = function () {\n return new InvalidFormatError(\"Token Format not valid. Expecting a Token serialized but found malformed data\");\n };\n /**\n * Index format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.indexFormatNotValid = function () {\n return new InvalidFormatError('Index Format not valid. Expecting an Index serialized but found malformed data');\n };\n /**\n * IndexUUI format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.indexUUIDFormatNotValid = function () {\n return new InvalidFormatError('IndexUUID Format not valid. Expecting an IndexUUID serialized but found malformed data');\n };\n /**\n * App format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.appUUIDFormatNotValid = function () {\n return new InvalidFormatError('AppUUID Format not valid. Expecting an AppUUID serialized but found malformed data');\n };\n /**\n * Campaign representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.campaignFormatNotValid = function () {\n return new InvalidFormatError(\"Campaign Format not valid. Expecting a Campaign serialized but found malformed data\");\n };\n /**\n * Changes representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.changesFormatNotValid = function () {\n return new InvalidFormatError(\"Changes Format not valid. Expecting a Changes serialized but found malformed data\");\n };\n /**\n * Boost clause representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.boostClauseFormatNotValid = function () {\n return new InvalidFormatError(\"Boost clause Format not valid. Expecting a Boost clause serialized but found malformed data\");\n };\n /**\n * token uuid representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.tokenUUIDFormatNotValid = function () {\n return new InvalidFormatError(\"Token UUID Format not valid. Expecting a TokenUUID serialized but found malformed data\");\n };\n /**\n * User representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.userFormatNotValid = function () {\n return new InvalidFormatError(\"User Format not valid. Expecting a User serialized but found malformed data\");\n };\n return InvalidFormatError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.InvalidFormatError = InvalidFormatError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Invalid token error\n */\nvar InvalidTokenError = /** @class */ (function (_super) {\n tslib_1.__extends(InvalidTokenError, _super);\n function InvalidTokenError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n InvalidTokenError.getTransportableHTTPError = function () {\n return 401;\n };\n /**\n * Invalid token permissions\n *\n * @param tokenReference\n *\n * @return {InvalidTokenError}\n */\n InvalidTokenError.createInvalidTokenPermissions = function (tokenReference) {\n return new InvalidTokenError(\"Token \" + tokenReference + \"not valid\");\n };\n /**\n * Invalid token permissions\n *\n * @param tokenReference\n * @param maxHitsPerQuery\n *\n * @return {InvalidTokenError}\n */\n InvalidTokenError.createInvalidTokenMaxHitsPerQuery = function (tokenReference, maxHitsPerQuery) {\n return new InvalidTokenError(\"Token \" + tokenReference + \"not valid. Max \" + maxHitsPerQuery + \" hits allowed\");\n };\n return InvalidTokenError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.InvalidTokenError = InvalidTokenError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Resource exists error\n */\nvar ResourceExistsError = /** @class */ (function (_super) {\n tslib_1.__extends(ResourceExistsError, _super);\n function ResourceExistsError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ResourceExistsError.getTransportableHTTPError = function () {\n return 409;\n };\n /**\n * Index not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.indexAvailable = function () {\n return new ResourceExistsError(\"Index exists and cannot be created again\");\n };\n /**\n * Events not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.eventsIndexAvailable = function () {\n return new ResourceExistsError(\"Events index exists and cannot be created again\");\n };\n /**\n * Logs not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.logsIndexAvailable = function () {\n return new ResourceExistsError(\"Logs index exists and cannot be created again\");\n };\n return ResourceExistsError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ResourceExistsError = ResourceExistsError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Resource not available error\n */\nvar ResourceNotAvailableError = /** @class */ (function (_super) {\n tslib_1.__extends(ResourceNotAvailableError, _super);\n function ResourceNotAvailableError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ResourceNotAvailableError.getTransportableHTTPError = function () {\n return 404;\n };\n /**\n * Index not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.indexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Index not available - \" + resourceId);\n };\n /**\n * Events not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.eventsIndexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Events not available - \" + resourceId);\n };\n /**\n * Logs not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.logsIndexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Logs not available - \" + resourceId);\n };\n /**\n * Engine not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.engineNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Engine not available - \" + resourceId);\n };\n return ResourceNotAvailableError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ResourceNotAvailableError = ResourceNotAvailableError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Unsupported content type error\n */\nvar UnsupportedContentTypeError = /** @class */ (function (_super) {\n tslib_1.__extends(UnsupportedContentTypeError, _super);\n function UnsupportedContentTypeError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n UnsupportedContentTypeError.getTransportableHTTPError = function () {\n return 415;\n };\n /**\n * Unsupported content type\n *\n * @return {InvalidFormatError}\n */\n UnsupportedContentTypeError.createUnsupportedContentTypeException = function () {\n return new UnsupportedContentTypeError(\"This content type is not accepted. Please use application/json\");\n };\n return UnsupportedContentTypeError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.UnsupportedContentTypeError = UnsupportedContentTypeError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Coordinate_1 = require(\"../Model/Coordinate\");\n/**\n * Abstract Location Range class\n */\nvar LocationRange = /** @class */ (function () {\n function LocationRange() {\n }\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n LocationRange.fromFilterObject = function (object) {\n throw TypeError(\"Method not valid\");\n };\n /**\n * to array\n */\n LocationRange.prototype.toArray = function () {\n return {\n type: this.getName(),\n data: this.toFilterObject()\n };\n };\n /**\n * Create from array\n *\n * @param array\n */\n LocationRange.createFromArray = function (array) {\n if (array.type == \"CoordinateAndDistance\") {\n return CoordinateAndDistance.fromFilterObject(array.data);\n }\n if (array.type == \"Polygon\") {\n return Polygon.fromFilterObject(array.data);\n }\n if (array.type == \"Square\") {\n return Square.fromFilterObject(array.data);\n }\n };\n return LocationRange;\n}());\nexports.LocationRange = LocationRange;\n/**\n * CoordinateAndDistance\n */\nvar CoordinateAndDistance = /** @class */ (function (_super) {\n tslib_1.__extends(CoordinateAndDistance, _super);\n /**\n * Constructor\n *\n * @param coordinate\n * @param distance\n */\n function CoordinateAndDistance(coordinate, distance) {\n var _this = _super.call(this) || this;\n _this.coordinate = coordinate;\n _this.distance = distance;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{}}}\n */\n CoordinateAndDistance.prototype.toFilterObject = function () {\n return {\n coordinate: this.coordinate.toArray(),\n distance: this.distance\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n CoordinateAndDistance.prototype.getName = function () {\n return \"CoordinateAndDistance\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n CoordinateAndDistance.fromFilterObject = function (object) {\n return new CoordinateAndDistance(Coordinate_1.Coordinate.createFromArray(object.coordinate), object.distance);\n };\n return CoordinateAndDistance;\n}(LocationRange));\nexports.CoordinateAndDistance = CoordinateAndDistance;\n/**\n * Polygon\n */\nvar Polygon = /** @class */ (function (_super) {\n tslib_1.__extends(Polygon, _super);\n /**\n * Constructor\n *\n * @param coordinates\n */\n function Polygon(coordinates) {\n var _this = _super.call(this) || this;\n if (coordinates.length < 3) {\n throw new Error(\"A polygon needs more than two coordinates.\");\n }\n _this.coordinates = coordinates;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{coordinates: {lat:number, lon:number}[]}}\n */\n Polygon.prototype.toFilterObject = function () {\n var coordinates = [];\n for (var i in this.coordinates) {\n coordinates.push(this.coordinates[i].toArray());\n }\n return {\n coordinates: coordinates\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n Polygon.prototype.getName = function () {\n return \"Polygon\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {Polygon}\n */\n Polygon.fromFilterObject = function (object) {\n var coordinates = [];\n for (var i in object.coordinates) {\n coordinates.push(Coordinate_1.Coordinate.createFromArray(object.coordinates[i]));\n }\n return new Polygon(coordinates);\n };\n return Polygon;\n}(LocationRange));\nexports.Polygon = Polygon;\n/**\n * Square\n */\nvar Square = /** @class */ (function (_super) {\n tslib_1.__extends(Square, _super);\n /**\n * Constructor\n *\n * @param topLeftCoordinate\n * @param bottomRightCoordinate\n */\n function Square(topLeftCoordinate, bottomRightCoordinate) {\n var _this = _super.call(this) || this;\n _this.topLeftCoordinate = topLeftCoordinate;\n _this.bottomRightCoordinate = bottomRightCoordinate;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{}}}\n */\n Square.prototype.toFilterObject = function () {\n return {\n top_left: this.topLeftCoordinate.toArray(),\n bottom_right: this.bottomRightCoordinate.toArray()\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n Square.prototype.getName = function () {\n return \"Square\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n Square.fromFilterObject = function (object) {\n return new Square(Coordinate_1.Coordinate.createFromArray(object.top_left), Coordinate_1.Coordinate.createFromArray(object.bottom_right));\n };\n return Square;\n}(LocationRange));\nexports.Square = Square;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar axios_1 = require(\"axios\");\nvar Client_1 = require(\"./Client\");\nvar Response_1 = require(\"./Response\");\n/**\n * AxiosClient\n */\nvar AxiosClient = /** @class */ (function (_super) {\n tslib_1.__extends(AxiosClient, _super);\n /**\n * Constructor\n *\n * @param host\n * @param version\n * @param timeout\n * @param retryMap\n * @param overrideQueries\n * @param cache\n */\n function AxiosClient(host, version, timeout, retryMap, overrideQueries, cache) {\n var _this = _super.call(this, version, retryMap) || this;\n _this.host = host;\n _this.timeout = timeout;\n _this.cache = cache;\n _this.overrideQueries = overrideQueries;\n _this.cancelToken = {};\n return _this;\n }\n /**\n * Get\n *\n * @param url\n * @param method\n * @param credentials\n * @param parameters\n * @param data\n *\n * @return {Promise}\n */\n AxiosClient.prototype.get = function (url, method, credentials, parameters, data) {\n if (parameters === void 0) { parameters = {}; }\n if (data === void 0) { data = {}; }\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var that;\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n that = this;\n url = url.replace(/^\\/*|\\/*$/g, \"\");\n url = \"/\" + (this.version + \"/\" + url).replace(/^\\/*|\\/*$/g, \"\");\n method = method.toLowerCase();\n if (\"get\" === method &&\n this.overrideQueries) {\n this.abort(url);\n }\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var headers = \"get\" == method\n ? {}\n : {\n \"Content-Encoding\": \"gzip\",\n \"Content-Type\": \"application/json\"\n };\n var axiosRequestConfig = {\n url: url + \"?\" + Client_1.Client.objectToUrlParameters(tslib_1.__assign({}, credentials, parameters)),\n data: data,\n headers: headers,\n method: method,\n baseURL: that.host.replace(/\\/*$/g, \"\"),\n timeout: that.timeout,\n transformRequest: [function (data) { return JSON.stringify(data); }]\n };\n if (typeof _this.cancelToken[url] != 'undefined') {\n axiosRequestConfig.cancelToken = _this.cancelToken[url].token;\n }\n axios_1[\"default\"]\n .request(axiosRequestConfig)\n .then(function (axiosResponse) {\n var response = new Response_1.Response(axiosResponse.status, axiosResponse.data);\n return resolve(response);\n })[\"catch\"](function (error) {\n if (error.response === undefined) {\n return;\n }\n var response = new Response_1.Response(error.response.status, error.response.data);\n return reject(response);\n });\n })];\n });\n });\n };\n /**\n * Abort current request\n * And regenerate the cancellation token\n *\n * @param url\n */\n AxiosClient.prototype.abort = function (url) {\n if (typeof this.cancelToken[url] != 'undefined') {\n this.cancelToken[url].cancel();\n }\n this.generateCancelToken(url);\n };\n /**\n * Generate a new cancellation token for a query\n *\n * @param url\n */\n AxiosClient.prototype.generateCancelToken = function (url) {\n this.cancelToken[url] = axios_1[\"default\"].CancelToken.source();\n };\n return AxiosClient;\n}(Client_1.Client));\nexports.AxiosClient = AxiosClient;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Client\n */\nvar Client = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param version\n * @param retryMap\n */\n function Client(version, retryMap) {\n this.retryMap = retryMap;\n this.version = version.replace(/^\\/*|\\/*$/g, \"\");\n }\n /**\n * Build an url parameters array by an object\n *\n * @param params\n *\n * @returns {string}\n */\n Client.objectToUrlParameters = function (params) {\n var builtParams = [];\n for (var i in params) {\n builtParams.push(i + \"=\" + params[i]);\n }\n return builtParams.join(\"&\");\n };\n return Client;\n}());\nexports.Client = Client;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Http class\n */\nvar HttpClient = /** @class */ (function () {\n function HttpClient() {\n }\n return HttpClient;\n}());\nexports.HttpClient = HttpClient;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Response\n */\nvar Response = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param code\n * @param body\n */\n function Response(code, body) {\n this.code = code;\n this.body = body;\n }\n /**\n * Get code\n *\n * @return {number}\n */\n Response.prototype.getCode = function () {\n return this.code;\n };\n /**\n * Get body\n *\n * @return {any}\n */\n Response.prototype.getBody = function () {\n return this.body;\n };\n return Response;\n}());\nexports.Response = Response;\n","\"use strict\";\nexports.__esModule = true;\nexports.DEFAULT_MICROSECONDS_BETWEEN_RETRIES = 1000;\n/**\n * Http class\n */\nvar Retry = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param url\n * @param method\n * @param retries\n * @param microsecondsBetweenRetries\n */\n function Retry(url, method, retries, microsecondsBetweenRetries) {\n this.url = url;\n this.method = method;\n this.retries = retries;\n this.microsecondsBetweenRetries = microsecondsBetweenRetries;\n }\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Retry}\n */\n Retry.createFromArray = function (array) {\n return new Retry(array.url ? array.url : \"*\", array.method ? array.method : \"*\", array.retries ? array.retries : 0, array.microseconds_between_retries\n ? array.microseconds_between_retries\n : exports.DEFAULT_MICROSECONDS_BETWEEN_RETRIES);\n };\n /**\n * Get url\n *\n * @return {string}\n */\n Retry.prototype.getUrl = function () {\n return this.url;\n };\n /**\n * Get method\n *\n * @return {string}\n */\n Retry.prototype.getMethod = function () {\n return this.method;\n };\n /**\n * Ge retries\n *\n * @return {number}\n */\n Retry.prototype.getRetries = function () {\n return this.retries;\n };\n /**\n * Get microseconds between retries\n *\n * @return {number}\n */\n Retry.prototype.getMicrosecondsBetweenRetries = function () {\n return this.microsecondsBetweenRetries;\n };\n return Retry;\n}());\nexports.Retry = Retry;\n","\"use strict\";\nexports.__esModule = true;\nvar Retry_1 = require(\"./Retry\");\n/**\n * Http class\n */\nvar RetryMap = /** @class */ (function () {\n function RetryMap() {\n this.retries = {};\n }\n /**\n * Add retry\n *\n * @param retry\n */\n RetryMap.prototype.addRetry = function (retry) {\n this.retries[retry.getUrl() + \"~~\" + retry.getMethod()] = retry;\n };\n /**\n * Create from array\n */\n RetryMap.createFromArray = function (array) {\n var retryMap = new RetryMap();\n retryMap.retries = array.map(function (retry) { return Retry_1.Retry.createFromArray(retry); });\n return retryMap;\n };\n /**\n * Get retry\n *\n * @param url\n * @param method\n *\n * @returns {Retry}\n */\n RetryMap.prototype.getRetry = function (url, method) {\n if (this.retries[url + \"~~\" + method] instanceof Retry_1.Retry) {\n return this.retries[url + \"~~\" + method];\n }\n if (this.retries[\"*~~\" + method] instanceof Retry_1.Retry) {\n return this.retries[\"*~~\" + method];\n }\n if (this.retries[url + \"~~*\"] instanceof Retry_1.Retry) {\n return this.retries[url + \"~~*\"];\n }\n if (this.retries[\"*~~*\"] instanceof Retry_1.Retry) {\n return this.retries[\"*~~*\"];\n }\n return null;\n };\n return RetryMap;\n}());\nexports.RetryMap = RetryMap;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * AppUUID class\n */\nvar AppUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n */\n function AppUUID(id) {\n if (id.indexOf('_') >= 0) {\n throw InvalidFormatError_1.InvalidFormatError.appUUIDFormatNotValid();\n }\n this.id = id;\n }\n /**\n * Create by id\n *\n * @param id\n *\n * @returns {ItemUUID}\n */\n AppUUID.createById = function (id) {\n return new AppUUID(id);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n AppUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n AppUUID.prototype.toArray = function () {\n return {\n id: this.id\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n AppUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new AppUUID(array.id);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n AppUUID.prototype.composedUUID = function () {\n return this.id;\n };\n return AppUUID;\n}());\nexports.AppUUID = AppUUID;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * filter constants\n */\nexports.TYPE_VALUE = 1;\nexports.TYPE_LITERAL = 4;\nexports.TYPE_ARRAY_ELEMENT_UPDATE = 8;\nexports.TYPE_ARRAY_ELEMENT_ADD = 16;\nexports.TYPE_ARRAY_ELEMENT_DELETE = 32;\nexports.TYPE_ARRAY_EXPECTS_ELEMENT = 24;\nexports.TYPE_ARRAY = 56;\n/**\n * Changes Type cast\n * @param Changes\n */\nvar Changes = /** @class */ (function () {\n function Changes() {\n /**\n * Changes\n *\n * @type {Array}\n */\n this.changes = [];\n }\n /**\n * Add new change\n *\n * @param field\n * @param value\n * @param type\n */\n Changes.prototype.addChange = function (field, value, type) {\n if (type === void 0) { type = exports.TYPE_VALUE; }\n this.changes.push({\n field: field,\n type: type,\n value: value\n });\n };\n /**\n * Update element from list\n *\n * @param field\n * @param condition\n * @param value\n * @param type\n */\n Changes.prototype.updateElementFromList = function (field, condition, value, type) {\n this.changes.push({\n field: field,\n type: type | exports.TYPE_ARRAY_ELEMENT_UPDATE,\n condition: condition,\n value: value\n });\n };\n /**\n * Add element in list\n *\n * @param field\n * @param value\n * @param type\n */\n Changes.prototype.addElementInList = function (field, value, type) {\n this.changes.push({\n field: field,\n type: type | exports.TYPE_ARRAY_ELEMENT_ADD,\n value: value\n });\n };\n /**\n * Delete element from list\n *\n * @param field\n * @param condition\n */\n Changes.prototype.deleteElementFromList = function (field, condition) {\n this.changes.push({\n field: field,\n type: exports.TYPE_ARRAY_ELEMENT_DELETE,\n condition: condition\n });\n };\n /**\n * Get changes\n *\n * @returns {[]}\n */\n Changes.prototype.getChanges = function () {\n return this.changes;\n };\n /**\n * Create\n *\n * @returns {Changes}\n */\n Changes.create = function () {\n return new Changes();\n };\n /**\n * To array\n *\n * @returns {[]}\n */\n Changes.prototype.toArray = function () {\n return JSON.parse(JSON.stringify(this.changes));\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Changes}\n */\n Changes.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var changes = Changes.create();\n changes.changes = array;\n return changes;\n };\n return Changes;\n}());\nexports.Changes = Changes;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * Coordinate Type cast\n * @param coordinate\n */\nvar Coordinate = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {number} lat\n * @param {number} lon\n */\n function Coordinate(lat, lon) {\n this.lat = lat;\n this.lon = lon;\n }\n /**\n * Get latitude\n *\n * @return float\n */\n Coordinate.prototype.getLatitude = function () {\n return this.lat;\n };\n /**\n * Get longitude\n *\n * @return float\n */\n Coordinate.prototype.getLongitude = function () {\n return this.lon;\n };\n /**\n * To array\n *\n * @return {{lat: number, lon: number}}\n */\n Coordinate.prototype.toArray = function () {\n return {\n lat: this.lat,\n lon: this.lon\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return Coordinate\n *\n * @throws InvalidFormatError\n */\n Coordinate.createFromArray = function (array) {\n if (typeof array.lat == \"undefined\" ||\n typeof array.lon == \"undefined\") {\n throw InvalidFormatError_1.InvalidFormatError.coordinateFormatNotValid();\n }\n return new Coordinate(array.lat, array.lon);\n };\n return Coordinate;\n}());\nexports.Coordinate = Coordinate;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar IndexUUID_1 = require(\"./IndexUUID\");\nvar AppUUID_1 = require(\"./AppUUID\");\n/**\n * Index class\n */\nvar Index = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param uuid\n * @param appUUID\n * @param isOK\n * @param docCount\n * @param size\n */\n function Index(uuid, appUUID, isOK, docCount, size) {\n if (isOK === void 0) { isOK = false; }\n if (docCount === void 0) { docCount = 0; }\n if (size === void 0) { size = '0kb'; }\n this.uuid = uuid;\n this.appUUID = appUUID;\n this.isOK = isOK;\n this.docCount = docCount;\n this.size = size;\n }\n /**\n * Get uuid\n *\n * @return {IndexUUID}\n */\n Index.prototype.getUUID = function () {\n return this.uuid;\n };\n /**\n * Get app id\n *\n * @return {AppUUID}\n */\n Index.prototype.getAppUUID = function () {\n return this.appUUID;\n };\n /**\n * Index is OK\n *\n * @return {boolean}\n */\n Index.prototype.isOk = function () {\n return this.isOK;\n };\n /**\n * Get doc count\n *\n * @return {number}\n */\n Index.prototype.getDocCount = function () {\n return this.docCount;\n };\n /**\n * get size\n *\n * @return {string}\n */\n Index.prototype.getSize = function () {\n return this.size;\n };\n /**\n * To array\n *\n * @returns {{id: string, attributes: {}}}\n */\n Index.prototype.toArray = function () {\n return {\n uuid: this.uuid.toArray(),\n app_id: this.appUUID.toArray(),\n is_ok: this.isOK,\n doc_count: this.docCount,\n size: this.size\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return User\n */\n Index.createFromArray = function (array) {\n if (typeof array.uuid == \"undefined\" ||\n typeof array.app_id == \"undefined\") {\n throw InvalidFormatError_1.InvalidFormatError.indexFormatNotValid();\n }\n return new Index(IndexUUID_1.IndexUUID.createFromArray(array.uuid), AppUUID_1.AppUUID.createFromArray(array.app_id), (typeof array.is_ok == \"undefined\" ? false : array.is_ok), (typeof array.doc_count == \"undefined\" ? 0 : array.doc_count), (typeof array.size == \"undefined\" ? '0kb' : array.size));\n };\n return Index;\n}());\nexports.Index = Index;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * IndexUUID class\n */\nvar IndexUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n */\n function IndexUUID(id) {\n if (id.indexOf('_') >= 0) {\n throw InvalidFormatError_1.InvalidFormatError.indexUUIDFormatNotValid();\n }\n this.id = id;\n }\n /**\n * Create by id\n *\n * @param id\n *\n * @returns {ItemUUID}\n */\n IndexUUID.createById = function (id) {\n return new IndexUUID(id);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n IndexUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n IndexUUID.prototype.toArray = function () {\n return {\n id: this.id\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n IndexUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new IndexUUID(array.id);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n IndexUUID.prototype.composedUUID = function () {\n return this.id;\n };\n return IndexUUID;\n}());\nexports.IndexUUID = IndexUUID;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar Coordinate_1 = require(\"./Coordinate\");\nvar ItemUUID_1 = require(\"./ItemUUID\");\n/**\n * Item class\n */\nvar Item = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param uuid\n * @param coordinate\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n */\n function Item(uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n this.metadata = {};\n this.indexedMetadata = {};\n this.searchableMetadata = {};\n this.exactMatchingMetadata = [];\n this.suggest = [];\n this.highlights = {};\n this.promoted = false;\n this.uuid = uuid;\n this.coordinate = coordinate;\n this.metadata = metadata;\n this.indexedMetadata = indexedMetadata;\n this.searchableMetadata = searchableMetadata;\n this.exactMatchingMetadata = exactMatchingMetadata;\n this.suggest = suggest;\n }\n /**\n * Create new Item\n *\n * @param uuid\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n * @returns {Item}\n */\n Item.create = function (uuid, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n if (metadata === void 0) { metadata = {}; }\n if (indexedMetadata === void 0) { indexedMetadata = {}; }\n if (searchableMetadata === void 0) { searchableMetadata = {}; }\n if (exactMatchingMetadata === void 0) { exactMatchingMetadata = []; }\n if (suggest === void 0) { suggest = []; }\n return new Item(uuid, null, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest);\n };\n /**\n * Create new located Item\n *\n * @param uuid\n * @param coordinate\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n * @returns {Item}\n */\n Item.createLocated = function (uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n if (metadata === void 0) { metadata = {}; }\n if (indexedMetadata === void 0) { indexedMetadata = {}; }\n if (searchableMetadata === void 0) { searchableMetadata = {}; }\n if (exactMatchingMetadata === void 0) { exactMatchingMetadata = []; }\n if (suggest === void 0) { suggest = []; }\n return new Item(uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest);\n };\n /**\n * Get uuid\n *\n * @returns ItemUUID\n */\n Item.prototype.getUUID = function () {\n return this.uuid;\n };\n /**\n * Get id\n *\n * @returns string\n */\n Item.prototype.getId = function () {\n return this.uuid.getId();\n };\n /**\n * Get type\n *\n * @returns string\n */\n Item.prototype.getType = function () {\n return this.uuid.getType();\n };\n /**\n * Get coordinate\n *\n * @returns Coordinate|null\n */\n Item.prototype.getCoordinate = function () {\n return this.coordinate;\n };\n /**\n * Get distance\n *\n * @returns int\n */\n Item.prototype.getDistance = function () {\n return this.distance;\n };\n /**\n * Get metadata\n *\n * @returns Array\n */\n Item.prototype.getMetadata = function () {\n return this.metadata;\n };\n /**\n * Set metadata\n *\n * @param metadata\n */\n Item.prototype.setMetadata = function (metadata) {\n this.metadata = metadata;\n };\n /**\n * Add metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addMetadata = function (key, value) {\n this.metadata[key] = value;\n };\n /**\n * Get indexed metadata\n *\n * @returns Array\n */\n Item.prototype.getIndexedMetadata = function () {\n return this.indexedMetadata;\n };\n /**\n * Set indexed metadata\n *\n * @param indexedMetadata\n */\n Item.prototype.setIndexedMetadata = function (indexedMetadata) {\n this.indexedMetadata = indexedMetadata;\n };\n /**\n * Add indexed metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addIndexedMetadata = function (key, value) {\n this.indexedMetadata[key] = value;\n };\n /**\n * Get searchable metadata\n *\n * @returns Array\n */\n Item.prototype.getSearchableMetadata = function () {\n return this.searchableMetadata;\n };\n /**\n * Set searchable metadata\n *\n * @param searchableMetadata\n */\n Item.prototype.setSearchableMetadata = function (searchableMetadata) {\n this.searchableMetadata = searchableMetadata;\n };\n /**\n * Add searchable metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addSearchableMetadata = function (key, value) {\n this.searchableMetadata[key] = value;\n };\n /**\n * Get exactMatching metadata\n *\n * @returns Array\n */\n Item.prototype.getExactMatchingMetadata = function () {\n return this.exactMatchingMetadata;\n };\n /**\n * Set exactMatching metadata\n *\n * @param exactMatchingMetadata\n */\n Item.prototype.setExactMatchingMetadata = function (exactMatchingMetadata) {\n this.exactMatchingMetadata = exactMatchingMetadata;\n };\n /**\n * Add exactMatching metadata\n *\n * @param value\n */\n Item.prototype.addExactMatchingMetadata = function (value) {\n this.exactMatchingMetadata.push(value);\n };\n /**\n * Get all metadata\n *\n * @returns {{}}\n */\n Item.prototype.getAllMetadata = function () {\n return tslib_1.__assign({}, this.metadata, this.indexedMetadata);\n };\n /**\n * Get\n *\n * @param key\n *\n * @returns mixed|null\n */\n Item.prototype.get = function (key) {\n var allMetadata = this.getAllMetadata();\n return (typeof allMetadata[key] != \"undefined\")\n ? allMetadata[key]\n : null;\n };\n /**\n * Get suggest\n *\n * @returns Array\n */\n Item.prototype.getSuggest = function () {\n return this.suggest;\n };\n /**\n * Get highlights\n *\n * @returns Array\n */\n Item.prototype.getHighlights = function () {\n return this.highlights;\n };\n /**\n * Get highlight\n *\n * @param key\n *\n * @return string|null\n */\n Item.prototype.getHighlight = function (key) {\n return (typeof this.highlights[key] != \"undefined\")\n ? this.highlights[key]\n : null;\n };\n /**\n * Is promoted\n *\n * @returns boolean\n */\n Item.prototype.isPromoted = function () {\n return this.promoted;\n };\n /**\n * Set score\n *\n * @param score\n *\n * @return {Item}\n */\n Item.prototype.setScore = function (score) {\n this.score = score;\n return this;\n };\n /**\n * Get score\n *\n * @return {number}\n */\n Item.prototype.getScore = function () {\n return this.score;\n };\n /**\n * To array\n */\n Item.prototype.toArray = function () {\n var itemAsArray = {\n uuid: this.uuid.toArray()\n };\n if (this.coordinate instanceof Coordinate_1.Coordinate) {\n itemAsArray.coordinate = this.coordinate.toArray();\n }\n if (Object.keys(this.metadata).length > 0) {\n itemAsArray.metadata = this.metadata;\n }\n if (Object.keys(this.indexedMetadata).length > 0) {\n itemAsArray.indexed_metadata = this.indexedMetadata;\n }\n if (Object.keys(this.searchableMetadata).length > 0) {\n itemAsArray.searchable_metadata = this.searchableMetadata;\n }\n if (this.exactMatchingMetadata.length > 0) {\n itemAsArray.exact_matching_metadata = this.exactMatchingMetadata;\n }\n if (this.suggest.length > 0) {\n itemAsArray.suggest = this.suggest;\n }\n if (Object.keys(this.highlights).length > 0) {\n itemAsArray.highlights = this.highlights;\n }\n if (this.isPromoted()) {\n itemAsArray.is_promoted = true;\n }\n if (typeof this.distance != \"undefined\") {\n itemAsArray.distance = this.distance;\n }\n if (typeof this.score != \"undefined\") {\n itemAsArray.score = this.score;\n }\n return itemAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n */\n Item.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.uuid != \"object\") {\n throw InvalidFormatError_1.InvalidFormatError.itemUUIDRepresentationNotValid();\n }\n if (typeof array.coordinate != \"undefined\" &&\n typeof array.coordinate != \"object\") {\n throw InvalidFormatError_1.InvalidFormatError.coordinateFormatNotValid();\n }\n var item = (typeof array.coordinate == \"object\" &&\n array.coordinate != null)\n ? Item.createLocated(ItemUUID_1.ItemUUID.createFromArray(array.uuid), Coordinate_1.Coordinate.createFromArray(array.coordinate), ((typeof array.metadata == \"undefined\") ? {} : array.metadata), ((typeof array.indexed_metadata == \"undefined\") ? {} : array.indexed_metadata), ((typeof array.searchable_metadata == \"undefined\") ? {} : array.searchable_metadata), ((typeof array.exact_matching_metadata == \"undefined\") ? [] : array.exact_matching_metadata), ((typeof array.suggest == \"undefined\") ? [] : array.suggest))\n : Item.create(ItemUUID_1.ItemUUID.createFromArray(array.uuid), ((typeof array.metadata == \"undefined\") ? {} : array.metadata), ((typeof array.indexed_metadata == \"undefined\") ? {} : array.indexed_metadata), ((typeof array.searchable_metadata == \"undefined\") ? {} : array.searchable_metadata), ((typeof array.exact_matching_metadata == \"undefined\") ? [] : array.exact_matching_metadata), ((typeof array.suggest == \"undefined\") ? [] : array.suggest));\n if (typeof array.distance != \"undefined\" &&\n array.distance != null) {\n item.distance = array.distance;\n }\n if (typeof array.highlights == \"object\" &&\n array.distance != null) {\n item.highlights = array.highlights;\n }\n if (typeof array.is_promoted != \"undefined\" &&\n array.is_promoted != null) {\n item.promoted = array.is_promoted;\n }\n if (typeof array.score != \"undefined\" &&\n array.score != null) {\n item.score = array.score;\n }\n return item;\n };\n /**\n * Compose uuid\n *\n * @returns string\n */\n Item.prototype.composeUUID = function () {\n return this.uuid.composedUUID();\n };\n /**\n * Get path by field.\n *\n * @param field\n *\n * @returns {string}\n */\n Item.getPathByField = function (field) {\n return ([\"id\", \"type\"].indexOf(field) > -1)\n ? \"uuid.\" + field\n : \"indexed_metadata.\" + field;\n };\n return Item;\n}());\nexports.Item = Item;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * ItemUUID class\n */\nvar ItemUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n * @param type\n */\n function ItemUUID(id, type) {\n this.id = id;\n this.type = type;\n }\n /**\n * Create composed UUID\n *\n * @param composedUUID\n *\n * @returns {ItemUUID}\n */\n ItemUUID.createByComposedUUID = function (composedUUID) {\n var parts = composedUUID.split(\"~\");\n if (2 != parts.length) {\n throw InvalidFormatError_1.InvalidFormatError.composedItemUUIDNotValid();\n }\n return new ItemUUID(parts[0], parts[1]);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n ItemUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * Get type\n *\n * @returns {string}\n */\n ItemUUID.prototype.getType = function () {\n return this.type;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n ItemUUID.prototype.toArray = function () {\n return {\n id: this.id,\n type: this.type\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n ItemUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new ItemUUID(array.id, array.type);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n ItemUUID.prototype.composedUUID = function () {\n return this.id + \"~\" + this.type;\n };\n return ItemUUID;\n}());\nexports.ItemUUID = ItemUUID;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * User class\n */\nvar Metadata = /** @class */ (function () {\n function Metadata() {\n }\n /**\n * To metadata\n *\n * @param array:{}\n *\n * @returns {string}\n */\n Metadata.toMetadata = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var parts = [];\n for (var key in array) {\n parts.push(key + \"##\" + array[key]);\n }\n return parts.join(\"~~\");\n };\n /**\n * From metadata\n *\n * @param metadata\n *\n * @return {{}}\n */\n Metadata.fromMetadata = function (metadata) {\n var values = {};\n var splittedParts = metadata.split(\"~~\");\n var iterator = 0;\n var size = 0;\n var lastElement = null;\n for (var key in splittedParts) {\n var part = splittedParts[key];\n var parts = part.split(\"##\");\n if (parts.length > 1) {\n lastElement = parts[1];\n values[parts[0]] = lastElement;\n }\n else {\n lastElement = part;\n values[iterator++] = lastElement;\n }\n size++;\n }\n if (size == 1) {\n values = {\n id: lastElement,\n name: lastElement\n };\n }\n if (typeof values.id == \"undefined\") {\n return null;\n }\n return values;\n };\n return Metadata;\n}());\nexports.Metadata = Metadata;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * User class\n */\nvar User = /** @class */ (function () {\n /**\n * Construct\n *\n * @param id string\n * @param attributes Array\n */\n function User(id, attributes) {\n if (attributes === void 0) { attributes = {}; }\n this.id = id;\n this.attributes = attributes;\n }\n /**\n * Return the user id\n *\n * @return {string}\n */\n User.prototype.getId = function () {\n return this.id;\n };\n /**\n * Return array\n *\n * @returns {{}}\n */\n User.prototype.getAttributes = function () {\n return this.attributes;\n };\n /**\n * To array\n *\n * @returns {{id: string, attributes: {}}}\n */\n User.prototype.toArray = function () {\n var array = {\n id: this.id\n };\n if (Object.keys(this.attributes).length > 0) {\n array.attributes = this.attributes;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return User\n */\n User.createFromArray = function (array) {\n if (array == null ||\n typeof array.id == \"undefined\" ||\n array.id == null) {\n throw InvalidFormatError_1.InvalidFormatError.userFormatNotValid();\n }\n var attributes = typeof array.attributes === typeof {}\n ? array.attributes\n : {};\n return new User(array.id, attributes);\n };\n return User;\n}());\nexports.User = User;\n","\"use strict\";\nexports.__esModule = true;\nvar Filter_1 = require(\"./Filter\");\n/**\n * Aggregation constants\n */\nexports.AGGREGATION_SORT_BY_COUNT_ASC = [\"_count\", \"asc\"];\nexports.AGGREGATION_SORT_BY_COUNT_DESC = [\"_count\", \"desc\"];\nexports.AGGREGATION_SORT_BY_NAME_ASC = [\"_term\", \"asc\"];\nexports.AGGREGATION_SORT_BY_NAME_DESC = [\"_term\", \"desc\"];\nexports.AGGREGATION_NO_LIMIT = 0;\n/**\n * Aggregation class\n */\nvar Aggregation = /** @class */ (function () {\n /**\n * Construct\n *\n * @param name\n * @param field\n * @param applicationType\n * @param filterType\n * @param subgroup\n * @param sort\n * @param limit\n */\n function Aggregation(name, field, applicationType, filterType, subgroup, sort, limit) {\n this.subgroup = [];\n this.name = name;\n this.field = field;\n this.applicationType = applicationType;\n this.filterType = filterType;\n this.subgroup = subgroup;\n this.sort = sort;\n this.limit = limit;\n }\n /**\n * Get name\n *\n * @returns {string}\n */\n Aggregation.prototype.getName = function () {\n return this.name;\n };\n /**\n * Get field\n *\n * @returns {string}\n */\n Aggregation.prototype.getField = function () {\n return this.field;\n };\n /**\n * getApplicationType\n *\n * @returns {number}\n */\n Aggregation.prototype.getApplicationType = function () {\n return this.applicationType;\n };\n /**\n * Get filter type\n *\n * @return {string}\n */\n Aggregation.prototype.getFilterType = function () {\n return this.filterType;\n };\n /**\n * Get subgroup\n *\n * @return {[]}\n */\n Aggregation.prototype.getSubgroup = function () {\n return this.subgroup;\n };\n /**\n * Get sort\n *\n * @return {[]}\n */\n Aggregation.prototype.getSort = function () {\n return this.sort;\n };\n /**\n * Get limit\n *\n * @return {number}\n */\n Aggregation.prototype.getLimit = function () {\n return this.limit;\n };\n /**\n * Create\n *\n * @param name\n * @param field\n * @param applicationType\n * @param filterType\n * @param subgroup\n * @param sort\n * @param limit\n *\n * @returns {Aggregation}\n */\n Aggregation.create = function (name, field, applicationType, filterType, subgroup, sort, limit) {\n if (subgroup === void 0) { subgroup = []; }\n if (sort === void 0) { sort = exports.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = exports.AGGREGATION_NO_LIMIT; }\n return new Aggregation(name, field, applicationType, filterType, subgroup, sort, limit);\n };\n /**\n * To array\n *\n * @returns {Array}\n */\n Aggregation.prototype.toArray = function () {\n var aggregationAsArray = {\n name: this.name\n };\n if (this.field != \"uuid.type\") {\n aggregationAsArray.field = this.field;\n }\n if (this.applicationType != Filter_1.FILTER_AT_LEAST_ONE) {\n aggregationAsArray.application_type = this.applicationType;\n }\n if (this.filterType != Filter_1.FILTER_TYPE_FIELD) {\n aggregationAsArray.filter_type = this.filterType;\n }\n if (this.subgroup.length > 0) {\n aggregationAsArray.subgroup = this.subgroup;\n }\n if (JSON.stringify(this.sort) !== JSON.stringify(exports.AGGREGATION_SORT_BY_COUNT_DESC)) {\n aggregationAsArray.sort = this.sort;\n }\n if (this.limit != exports.AGGREGATION_NO_LIMIT) {\n aggregationAsArray.limit = this.limit;\n }\n return aggregationAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Aggregation}\n */\n Aggregation.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.field == \"undefined\") {\n array.field = \"uuid.type\";\n }\n if (typeof array.application_type == \"undefined\") {\n array.application_type = Filter_1.FILTER_AT_LEAST_ONE;\n }\n if (typeof array.filter_type == \"undefined\") {\n array.filter_type = Filter_1.FILTER_TYPE_FIELD;\n }\n if (typeof array.subgroup == \"undefined\") {\n array.subgroup = [];\n }\n if (typeof array.sort == \"undefined\") {\n array.sort = exports.AGGREGATION_SORT_BY_COUNT_DESC;\n }\n if (typeof array.limit == \"undefined\") {\n array.limit = exports.AGGREGATION_NO_LIMIT;\n }\n return Aggregation.create(array.name, array.field, array.application_type, array.filter_type, array.subgroup, array.sort, array.limit);\n };\n return Aggregation;\n}());\nexports.Aggregation = Aggregation;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * filter constants\n */\nexports.FILTER_MUST_ALL = 4;\nexports.FILTER_MUST_ALL_WITH_LEVELS = 5;\nexports.FILTER_AT_LEAST_ONE = 8;\nexports.FILTER_EXCLUDE = 16;\nexports.FILTER_PROMOTE = 32;\nexports.FILTER_TYPE_FIELD = \"field\";\nexports.FILTER_TYPE_RANGE = \"range\";\nexports.FILTER_TYPE_DATE_RANGE = \"date_range\";\nexports.FILTER_TYPE_GEO = \"geo\";\nexports.FILTER_TYPE_QUERY = \"query\";\n/**\n * Filter class\n */\nvar Filter = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param field\n * @param values\n * @param applicationType\n * @param filterType\n * @param filterTerms\n */\n function Filter(field, values, applicationType, filterType, filterTerms) {\n this.field = field;\n this.values = values;\n this.applicationType = applicationType;\n this.filterType = filterType;\n this.filterTerms = filterTerms;\n }\n /**\n * Get field\n *\n * @returns {string}\n */\n Filter.prototype.getField = function () {\n return this.field;\n };\n /**\n * Get values\n *\n * @returns {any}\n */\n Filter.prototype.getValues = function () {\n return this.values;\n };\n /**\n * Has value\n *\n * @param value\n *\n * @returns {boolean}\n */\n Filter.prototype.hasValue = function (value) {\n return typeof this.values[value] == \"undefined\";\n };\n /**\n * getApplicationType\n *\n * @returns {number}\n */\n Filter.prototype.getApplicationType = function () {\n return this.applicationType;\n };\n /**\n * Get filter type\n *\n * @return {string}\n */\n Filter.prototype.getFilterType = function () {\n return this.filterType;\n };\n /**\n * Get filter type\n *\n * @return {{}}\n */\n Filter.prototype.getFilterTerms = function () {\n return this.filterTerms;\n };\n /**\n * Create\n *\n * @param field\n * @param values\n * @param applicationType\n * @param filterType\n * @param filterTerms\n *\n * @return {Filter}\n */\n Filter.create = function (field, values, applicationType, filterType, filterTerms) {\n if (filterTerms === void 0) { filterTerms = []; }\n return new Filter(field, values, applicationType, filterType, filterTerms);\n };\n /**\n * To array\n *\n * @returns {Array}\n */\n Filter.prototype.toArray = function () {\n var filterAsArray = {};\n if (this.field != \"uuid.type\") {\n filterAsArray.field = this.field;\n }\n if (this.values.length > 0 ||\n Object.keys(this.values).length > 0) {\n filterAsArray.values = this.values;\n }\n if (this.applicationType != exports.FILTER_AT_LEAST_ONE) {\n filterAsArray.application_type = this.applicationType;\n }\n if (this.filterType != exports.FILTER_TYPE_FIELD) {\n filterAsArray.filter_type = this.filterType;\n }\n if (this.filterTerms.length > 0) {\n filterAsArray.filter_terms = this.filterTerms;\n }\n return filterAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Filter}\n */\n Filter.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.field == \"undefined\") {\n array.field = \"uuid.type\";\n }\n if (typeof array.values == \"undefined\") {\n array.values = [];\n }\n if (typeof array.application_type == \"undefined\") {\n array.application_type = exports.FILTER_AT_LEAST_ONE;\n }\n if (typeof array.filter_type == \"undefined\") {\n array.filter_type = exports.FILTER_TYPE_FIELD;\n }\n if (typeof array.filter_terms == \"undefined\") {\n array.filter_terms = [];\n }\n return Filter.create(array.field, array.values, array.application_type, array.filter_type, array.filter_terms);\n };\n return Filter;\n}());\nexports.Filter = Filter;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Coordinate_1 = require(\"../Model/Coordinate\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\nvar Item_1 = require(\"../Model/Item\");\nvar User_1 = require(\"../Model/User\");\nvar Aggregation_1 = require(\"./Aggregation\");\nvar Filter_1 = require(\"./Filter\");\nvar Filter_2 = require(\"./Filter\");\nvar Aggregation_2 = require(\"./Aggregation\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar Filter_3 = require(\"./Filter\");\nvar ScoreStrategies_1 = require(\"./ScoreStrategies\");\nvar SortBy_1 = require(\"./SortBy\");\n/**\n * Query constants\n */\nexports.QUERY_DEFAULT_PAGE = 1;\nexports.QUERY_DEFAULT_SIZE = 10;\nexports.NO_MIN_SCORE = 0.0;\n/**\n * Query class\n */\nvar Query = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param queryText\n */\n function Query(queryText) {\n this.fields = [];\n this.universeFilters = {};\n this.filters = {};\n this.itemsPromoted = [];\n this.aggregations = {};\n this.resultsEnabled = true;\n this.aggregationsEnabled = true;\n this.suggestionsEnabled = false;\n this.highlightsEnabled = false;\n this.filterFields = [];\n this.minScore = exports.NO_MIN_SCORE;\n this.metadata = {};\n this.subqueries = {};\n this.sortByInstance = SortBy_1.SortBy.create();\n this.filters._query = Filter_1.Filter.create(\"\", [queryText], 0, Filter_3.FILTER_TYPE_QUERY);\n }\n /**\n * Created located\n *\n * @param coordinate\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Query.createLocated = function (coordinate, queryText, page, size) {\n if (page === void 0) { page = exports.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = exports.QUERY_DEFAULT_SIZE; }\n var query = Query.create(queryText, page, size);\n query.coordinate = coordinate;\n return query;\n };\n /**\n * Create\n *\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Query.create = function (queryText, page, size) {\n if (page === void 0) { page = exports.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = exports.QUERY_DEFAULT_SIZE; }\n page = Math.max(1, page);\n var query = new Query(queryText);\n query.from = (page - 1) * size;\n query.size = size;\n query.page = page;\n return query;\n };\n /**\n * Create match all\n *\n * @return {Query}\n */\n Query.createMatchAll = function () {\n return Query.create(\"\", exports.QUERY_DEFAULT_PAGE, exports.QUERY_DEFAULT_SIZE);\n };\n /**\n * Create by UUID\n *\n * @param uuid\n *\n * @return {Query}\n */\n Query.createByUUID = function (uuid) {\n return Query.createByUUIDs(uuid);\n };\n /**\n * Create by UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.createByUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n var ids = [];\n for (var i in uuids) {\n ids.push(uuids[i].composedUUID());\n }\n var query = Query.create(\"\", exports.QUERY_DEFAULT_PAGE, ids.length)\n .disableAggregations()\n .disableSuggestions();\n query.filters._id = Filter_1.Filter.create(\"_id\", ids, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD);\n return query;\n };\n /**\n * Create by UUIDs\n *\n * @param queries\n *\n * @return {Query}\n */\n Query.createMultiquery = function (queries) {\n var query = Query.createMatchAll();\n query.subqueries = queries;\n return query;\n };\n /**\n * set fields\n *\n * @param fields\n *\n * @return {Query}\n */\n Query.prototype.setFields = function (fields) {\n this.fields = fields;\n return this;\n };\n /**\n * get fields\n *\n * @return {string[]}\n */\n Query.prototype.getFields = function () {\n return this.fields;\n };\n /**\n * Filter universe by types\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByTypes = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"type\");\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"type\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters.type;\n }\n return this;\n };\n /**\n * Filter by types\n *\n * @param values\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByTypes = function (values, aggregate, aggregationSort) {\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a, _b;\n var fieldPath = Item_1.Item.getPathByField(\"type\");\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"type\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters.type;\n }\n if (aggregate) {\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_b = {}, _b[\"type\"] = Aggregation_1.Aggregation.create(\"type\", fieldPath, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort), _b));\n }\n return this;\n };\n /**\n * Filter universe by ids\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByIds = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"id\");\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"id\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters.id;\n }\n return this;\n };\n /**\n * Filter by ids\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterByIds = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"id\");\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"id\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters.id;\n }\n return this;\n };\n /**\n * Filter universe by\n *\n * @param field\n * @param values\n * @param applicationType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseBy = function (field, values, applicationType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters[field];\n }\n return this;\n };\n /**\n * Filter by\n *\n * @param filterName\n * @param field\n * @param values\n * @param applicationType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterBy = function (filterName, field, values, applicationType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters[filterName];\n }\n if (aggregate) {\n this.aggregateBy(filterName, field, applicationType, aggregationSort);\n }\n return this;\n };\n /**\n * Filter universe by range\n *\n * @param field\n * @param values\n * @param applicationType\n * @param rangeType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByRange = function (field, values, applicationType, rangeType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));\n }\n else {\n delete this.universeFilters[field];\n }\n return this;\n };\n /**\n * Filter universe by date range\n *\n * @param field\n * @param values\n * @param applicationType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByDateRange = function (field, values, applicationType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n return this.filterUniverseByRange(field, values, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE);\n };\n /**\n * Filter by range\n *\n * @param filterName\n * @param field\n * @param options\n * @param values\n * @param applicationType\n * @param rangeType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByRange = function (filterName, field, options, values, applicationType, rangeType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length !== 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));\n }\n else {\n delete this.filters[filterName];\n }\n if (aggregate) {\n this.aggregateByRange(filterName, fieldPath, options, applicationType, rangeType, aggregationSort);\n }\n return this;\n };\n /**\n * Filter by date range\n *\n * @param filterName\n * @param field\n * @param options\n * @param values\n * @param applicationType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByDateRange = function (filterName, field, options, values, applicationType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n return this.filterByRange(filterName, field, options, values, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE, aggregate, aggregationSort);\n };\n /**\n * Filter universe by location\n *\n * @param locationRange\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByLocation = function (locationRange) {\n var _a;\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"coordinate\"] = Filter_1.Filter.create(\"coordinate\", locationRange.toArray(), Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_GEO), _a));\n return this;\n };\n /**\n * Set filter fields\n *\n * @param filterFields\n *\n * @return {Query}\n */\n Query.prototype.setFilterFields = function (filterFields) {\n this.filterFields = filterFields;\n return this;\n };\n /**\n * Get filter fields\n *\n * @return {string[]}\n */\n Query.prototype.getFilterFields = function () {\n return this.filterFields;\n };\n /**\n * Sort by\n *\n * @param sortBy\n *\n * @return {Query}\n */\n Query.prototype.sortBy = function (sortBy) {\n if (sortBy.isSortedByGeoDistance()) {\n if (!(this.coordinate instanceof Coordinate_1.Coordinate)) {\n throw InvalidFormatError_1.InvalidFormatError.querySortedByDistanceWithoutCoordinate();\n }\n sortBy.setCoordinate(this.coordinate);\n }\n this.sortByInstance = sortBy;\n return this;\n };\n /**\n * Aggregate by\n *\n * @param filterName\n * @param field\n * @param applicationType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateBy = function (filterName, field, applicationType, aggregationSort, limit) {\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n var _a;\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort, limit), _a));\n return this;\n };\n /**\n * Aggregate by range\n *\n * @param filterName\n * @param field\n * @param options\n * @param applicationType\n * @param rangeType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateByRange = function (filterName, field, options, applicationType, rangeType, aggregationSort, limit) {\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n var _a;\n if (options.length === 0) {\n return this;\n }\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, rangeType, options, aggregationSort, limit), _a));\n return this;\n };\n /**\n * Aggregate by date range\n *\n * @param filterName\n * @param field\n * @param options\n * @param applicationType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateByDateRange = function (filterName, field, options, applicationType, aggregationSort, limit) {\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n return this.aggregateByRange(filterName, field, options, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE, aggregationSort, limit);\n };\n /**\n * Get aggregations\n *\n * @return {{}}\n */\n Query.prototype.getAggregations = function () {\n return this.aggregations;\n };\n /**\n * Get aggregation by name\n *\n * @param aggregationName\n *\n * @return {Aggregation|null}\n */\n Query.prototype.getAggregation = function (aggregationName) {\n return this.aggregations[aggregationName] instanceof Aggregation_1.Aggregation\n ? this.aggregations[aggregationName]\n : null;\n };\n /**\n * Get query text\n *\n * @return {string}\n */\n Query.prototype.getQueryText = function () {\n var filter = this.filters._query;\n return filter instanceof Filter_1.Filter\n ? filter.getValues()[0]\n : \"\";\n };\n /**\n * Get universe filters\n *\n * @return {{}}\n */\n Query.prototype.getUniverseFilters = function () {\n return this.universeFilters;\n };\n /**\n * Get universe filter by name\n *\n * @param filterName\n *\n * @return {Filter|null}\n */\n Query.prototype.getUniverseFilter = function (filterName) {\n return this.universeFilters[filterName] instanceof Filter_1.Filter\n ? this.universeFilters[filterName]\n : null;\n };\n /**\n * Get filters\n *\n * @return {{}}\n */\n Query.prototype.getFilters = function () {\n return this.filters;\n };\n /**\n * Get filter by name\n *\n * @param filterName\n *\n * @return {Filter|null}\n */\n Query.prototype.getFilter = function (filterName) {\n return this.filters[filterName] instanceof Filter_1.Filter\n ? this.filters[filterName]\n : null;\n };\n /**\n * Get filter by field\n *\n * @param fieldName\n *\n * @return {Filter|null}\n */\n Query.prototype.getFilterByField = function (fieldName) {\n var fieldPath = Item_1.Item.getPathByField(fieldName);\n for (var i in this.filters) {\n if (this.filters[i].getField() == fieldPath) {\n return this.filters[i];\n }\n }\n return null;\n };\n /**\n * Get sort by\n *\n * @return {SortBy}\n */\n Query.prototype.getSortBy = function () {\n return this.sortByInstance;\n };\n /**\n * Get from\n *\n * @return {number}\n */\n Query.prototype.getFrom = function () {\n return this.from;\n };\n /**\n * Get size\n *\n * @return {number}\n */\n Query.prototype.getSize = function () {\n return this.size;\n };\n /**\n * Get page\n *\n * @return {number}\n */\n Query.prototype.getPage = function () {\n return this.page;\n };\n /**\n * Enable results\n *\n * @return {Query}\n */\n Query.prototype.enableResults = function () {\n this.resultsEnabled = true;\n return this;\n };\n /**\n * Disable results\n *\n * @return {Query}\n */\n Query.prototype.disableResults = function () {\n this.resultsEnabled = false;\n return this;\n };\n /**\n * Are results enabled\n *\n * @return {boolean}\n */\n Query.prototype.areResultsEnabled = function () {\n return this.resultsEnabled;\n };\n /**\n * Enable aggregations\n *\n * @return {Query}\n */\n Query.prototype.enableAggregations = function () {\n this.aggregationsEnabled = true;\n return this;\n };\n /**\n * Disable aggregations\n *\n * @return {Query}\n */\n Query.prototype.disableAggregations = function () {\n this.aggregationsEnabled = false;\n return this;\n };\n /**\n * Are aggregations enabled\n *\n * @return {boolean}\n */\n Query.prototype.areAggregationsEnabled = function () {\n return this.aggregationsEnabled;\n };\n /**\n * Enable suggestions\n *\n * @return {Query}\n */\n Query.prototype.enableSuggestions = function () {\n this.suggestionsEnabled = true;\n return this;\n };\n /**\n * Disable suggestions\n *\n * @return {Query}\n */\n Query.prototype.disableSuggestions = function () {\n this.suggestionsEnabled = false;\n return this;\n };\n /**\n * Are suggestions enabled\n *\n * @return {boolean}\n */\n Query.prototype.areSuggestionsEnabled = function () {\n return this.suggestionsEnabled;\n };\n /**\n * Enable highlights\n *\n * @return {Query}\n */\n Query.prototype.enableHighlights = function () {\n this.highlightsEnabled = true;\n return this;\n };\n /**\n * Disable highlights\n *\n * @return {Query}\n */\n Query.prototype.disableHighlights = function () {\n this.highlightsEnabled = false;\n return this;\n };\n /**\n * Are highlights enabled\n *\n * @return {boolean}\n */\n Query.prototype.areHighlightsEnabled = function () {\n return this.highlightsEnabled;\n };\n /**\n * Promote uuid\n *\n * @param itemUUID\n *\n * @return {Query}\n */\n Query.prototype.promoteUUID = function (itemUUID) {\n this\n .itemsPromoted\n .push(itemUUID);\n return this;\n };\n /**\n * Promote UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.prototype.promoteUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n this.itemsPromoted = uuids;\n return this;\n };\n /**\n * Get promoted UUIDs\n *\n * @return {ItemUUID[]}\n */\n Query.prototype.getItemsPromoted = function () {\n return this.itemsPromoted;\n };\n /**\n * Exclude id\n *\n * @param itemUUID\n *\n * @return {Query}\n */\n Query.prototype.excludeUUID = function (itemUUID) {\n this.excludeUUIDs(itemUUID);\n return this;\n };\n /**\n * Exclude UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.prototype.excludeUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n var _a;\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"excluded_ids\"] = Filter_1.Filter.create(\"_id\", uuids.map(function (uuid) { return uuid.composedUUID(); }), Filter_2.FILTER_EXCLUDE, Filter_2.FILTER_TYPE_FIELD), _a));\n return this;\n };\n /**\n * Get score strategies\n *\n * @return {ScoreStrategies}\n */\n Query.prototype.getScoreStrategies = function () {\n return this.scoreStrategies;\n };\n /**\n * Set score strategies\n *\n * @param scoreStrategies\n */\n Query.prototype.setScoreStrategies = function (scoreStrategies) {\n this.scoreStrategies = scoreStrategies;\n return this;\n };\n /**\n * Get fuzziness\n *\n * @return any\n */\n Query.prototype.getFuzziness = function () {\n return this.fuzziness;\n };\n /**\n * Set fuzziness\n *\n * @param fuzziness\n *\n * @return {Query}\n */\n Query.prototype.setFuzziness = function (fuzziness) {\n this.fuzziness = fuzziness;\n return this;\n };\n /**\n * Set auto fuzziness\n *\n * @return {Query}\n */\n Query.prototype.setAutoFuzziness = function () {\n this.fuzziness = 'AUTO';\n return this;\n };\n /**\n * Get min score\n *\n * @return any\n */\n Query.prototype.getMinScore = function () {\n return this.minScore;\n };\n /**\n * Set min score\n *\n * @param minScore\n *\n * @return {Query}\n */\n Query.prototype.setMinScore = function (minScore) {\n this.minScore = minScore;\n return this;\n };\n /**\n * By user\n *\n * @param user\n *\n * @return {Query}\n */\n Query.prototype.byUser = function (user) {\n this.user = user;\n return this;\n };\n /**\n * By anyone\n *\n * @return {null}\n */\n Query.prototype.anonymously = function () {\n this.user = null;\n return null;\n };\n /**\n * Get user\n *\n * @return {User}\n */\n Query.prototype.getUser = function () {\n return this.user;\n };\n /**\n * set metadata value\n *\n * @param name\n * @param value\n *\n * @return Query\n */\n Query.prototype.setMetadataValue = function (name, value) {\n this.metadata[name] = value;\n return this;\n };\n /**\n * Get metadata\n *\n * @return any\n */\n Query.prototype.getMetadata = function () {\n return this.metadata;\n };\n /**\n * Add subquery\n *\n * @param name\n * @param subquery\n *\n * @return Query\n */\n Query.prototype.addSubquery = function (name, subquery) {\n this.subqueries[name] = subquery;\n return this;\n };\n /**\n * Get subqueries\n *\n * @return Object\n */\n Query.prototype.getSubqueries = function () {\n return this.subqueries;\n };\n /**\n * To array\n *\n * @return {any}\n */\n Query.prototype.toArray = function () {\n var array = {};\n if (this.getQueryText() !== \"\") {\n array.q = this.getQueryText();\n }\n if (this.coordinate instanceof Coordinate_1.Coordinate) {\n array.coordinate = this.coordinate.toArray();\n }\n /**\n * Fields\n */\n if (this.fields instanceof Array &&\n this.fields.length > 0) {\n array.fields = this.fields;\n }\n /**\n * Universe Filters\n */\n if (Object.keys(this.universeFilters).length) {\n array.universe_filters = {};\n for (var i in this.universeFilters) {\n var universeFilter = this.universeFilters[i];\n array.universe_filters[i] = universeFilter.toArray();\n }\n }\n /**\n * Filters\n */\n if (this.filters instanceof Object &&\n Object.keys(this.filters).length) {\n array.filters = {};\n for (var i in this.filters) {\n var filter = this.filters[i];\n if (filter.getFilterType() !== Filter_3.FILTER_TYPE_QUERY) {\n array.filters[i] = filter.toArray();\n }\n }\n }\n /**\n * Aggregations\n */\n if (this.aggregations instanceof Object &&\n Object.keys(this.aggregations).length) {\n array.aggregations = {};\n for (var i in this.aggregations) {\n var aggregation = this.aggregations[i];\n array.aggregations[i] = aggregation.toArray();\n }\n }\n /**\n * Sort\n */\n var sort = this.sortByInstance.toArray();\n if (Object.keys(sort).length) {\n array.sort = sort;\n }\n /**\n * Page\n */\n var page = this.page;\n if (page !== exports.QUERY_DEFAULT_PAGE) {\n array.page = page;\n }\n /**\n * Size\n */\n var size = this.size;\n if (size !== exports.QUERY_DEFAULT_SIZE) {\n array.size = size;\n }\n /**\n * Booleans\n */\n if (this.resultsEnabled === false) {\n array.results_enabled = false;\n }\n if (this.suggestionsEnabled === true) {\n array.suggestions_enabled = true;\n }\n if (this.highlightsEnabled === true) {\n array.highlights_enabled = true;\n }\n if (this.aggregationsEnabled === false) {\n array.aggregations_enabled = false;\n }\n /**\n * Filter fields\n */\n if (this.filterFields instanceof Array &&\n this.filterFields.length > 0) {\n array.filter_fields = this.filterFields;\n }\n /**\n * Score strategies\n */\n if (this.scoreStrategies instanceof ScoreStrategies_1.ScoreStrategies) {\n var scoreStrategiesAsArray = this.scoreStrategies.toArray();\n if (Object.keys(scoreStrategiesAsArray).length > 0) {\n array.score_strategies = scoreStrategiesAsArray;\n }\n }\n if (this.fuzziness !== null) {\n array.fuzziness = this.fuzziness;\n }\n /**\n * Min score\n */\n var minScore = this.minScore;\n if (minScore !== exports.NO_MIN_SCORE) {\n array.min_score = minScore;\n }\n /**\n * User\n */\n if (this.user instanceof User_1.User) {\n var userAsArray = this.user.toArray();\n if (Object.keys(userAsArray).length > 0) {\n array.user = userAsArray;\n }\n }\n array.metadata = this.metadata;\n if (this.subqueries instanceof Object &&\n Object.keys(this.subqueries).length) {\n array.subqueries = {};\n for (var i in this.subqueries) {\n var subquery = this.subqueries[i];\n array.subqueries[i] = subquery.toArray();\n }\n }\n /**\n * items promoted\n */\n if (this.itemsPromoted.length > 0) {\n array.items_promoted = [];\n for (var i in this.itemsPromoted) {\n array\n .items_promoted\n .push(this.itemsPromoted[i].toArray());\n }\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Query}\n */\n Query.createFromArray = function (array) {\n var query = array.coordinate instanceof Object\n ? Query.createLocated(Coordinate_1.Coordinate.createFromArray(array.coordinate), array.q ? array.q : \"\", array.page ? array.page : exports.QUERY_DEFAULT_PAGE, array.size ? array.size : exports.QUERY_DEFAULT_SIZE)\n : Query.create(array.q ? array.q : \"\", array.page ? array.page : exports.QUERY_DEFAULT_PAGE, array.size ? array.size : exports.QUERY_DEFAULT_SIZE);\n /**\n * Fields\n */\n query.fields = array.fields instanceof Array\n ? array.fields\n : [];\n /**\n * Aggregations\n */\n var aggregationsAsArray = typeof array.aggregations === typeof {}\n ? array.aggregations\n : {};\n for (var i in aggregationsAsArray) {\n query.aggregations[i] = Aggregation_1.Aggregation.createFromArray(aggregationsAsArray[i]);\n }\n /**\n * Sort\n */\n var sortAsArray = typeof array.sort === typeof {}\n ? array.sort\n : {};\n if (Object.keys(sortAsArray).length > 0) {\n query.sortByInstance = SortBy_1.SortBy.createFromArray(sortAsArray);\n }\n /**\n * Filters\n */\n var filtersAsArray = typeof array.filters === typeof {}\n ? array.filters\n : {};\n for (var i in filtersAsArray) {\n query.filters[i] = Filter_1.Filter.createFromArray(filtersAsArray[i]);\n }\n /**\n * Universe Filters\n */\n var universeFiltersAsArray = typeof array.universe_filters === typeof {}\n ? array.universe_filters\n : {};\n for (var i in universeFiltersAsArray) {\n query.universeFilters[i] = Filter_1.Filter.createFromArray(universeFiltersAsArray[i]);\n }\n /**\n * Booleans\n */\n query.resultsEnabled = typeof array.results_enabled === \"boolean\"\n ? array.results_enabled\n : true;\n query.suggestionsEnabled = typeof array.suggestions_enabled === \"boolean\"\n ? array.suggestions_enabled\n : false;\n query.aggregationsEnabled = typeof array.aggregations_enabled === \"boolean\"\n ? array.aggregations_enabled\n : true;\n query.highlightsEnabled = typeof array.highlights_enabled === \"boolean\"\n ? array.highlights_enabled\n : false;\n query.fuzziness = array.fuzziness;\n query.minScore = array.min_score ? array.min_score : exports.NO_MIN_SCORE;\n /**\n * Items promoted\n */\n var itemsPromotedAsArray = typeof array.items_promoted === typeof {}\n ? array.items_promoted\n : {};\n for (var i in itemsPromotedAsArray) {\n query\n .itemsPromoted\n .push(ItemUUID_1.ItemUUID.createFromArray(itemsPromotedAsArray[i]));\n }\n /**\n * Subqueries\n */\n var subqueriesAsArray = typeof array.subqueries === typeof {}\n ? array.subqueries\n : {};\n for (var i in subqueriesAsArray) {\n query.subqueries[i] = Query.createFromArray(subqueriesAsArray[i]);\n }\n /**\n * Filter fields\n */\n query.metadata = typeof array.metadata === typeof {}\n ? array.metadata\n : {};\n query.filterFields = array.filter_fields instanceof Array\n ? array.filter_fields\n : [];\n query.scoreStrategies = array.score_strategies instanceof Object\n ? ScoreStrategies_1.ScoreStrategies.createFromArray(array.score_strategies)\n : null;\n query.user = array.user instanceof Object\n ? User_1.User.createFromArray(array.user)\n : null;\n return query;\n };\n return Query;\n}());\nexports.Query = Query;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Aggregation constants\n */\nexports.RANGE_ZERO = 0;\nexports.RANGE_INFINITE = -1;\nexports.RANGE_SEPARATOR = \"..\";\n/**\n * Filter class\n */\nvar Range = /** @class */ (function () {\n function Range() {\n }\n /**\n * Strong to array\n *\n * @param string\n *\n * @returns {[number, number]}\n */\n Range.stringToArray = function (string) {\n var parts = string.split(exports.RANGE_SEPARATOR);\n var from = parts[0];\n var to = parts[1];\n var finalFrom = exports.RANGE_ZERO;\n var finalTo = exports.RANGE_INFINITE;\n if (from != \"\") {\n finalFrom = parseInt(from);\n }\n if (to != \"\") {\n finalTo = parseInt(to);\n }\n return [finalFrom, finalTo];\n };\n /**\n * Array to string\n *\n * @param values\n *\n * @return {string}\n */\n Range.arrayToString = function (values) {\n var finalValues = [\"\", \"\"];\n if (values[0] != exports.RANGE_ZERO) {\n finalValues[0] = String(values[0]);\n }\n if (values[1] != exports.RANGE_INFINITE) {\n finalValues[1] = String(values[1]);\n }\n return finalValues.join(exports.RANGE_SEPARATOR);\n };\n /**\n * Create ranges\n *\n * @param from\n * @param to\n * @param incremental\n */\n Range.createRanges = function (from, to, incremental) {\n var ranges = [];\n var nextTo;\n while (from < to) {\n nextTo = from + incremental;\n ranges.push(from + exports.RANGE_SEPARATOR + nextTo);\n from = nextTo;\n }\n return ranges;\n };\n return Range;\n}());\nexports.Range = Range;\n","\"use strict\";\nexports.__esModule = true;\nvar ScoreStrategy_1 = require(\"./ScoreStrategy\");\n/**\n * ScoreStrategies constants\n */\nexports.MULTIPLY = 'multiply';\nexports.SUM = 'sum';\nexports.AVG = 'avg';\nexports.MAX = 'max';\nexports.MIN = 'min';\n/**\n * ScoreStrategies\n */\nvar ScoreStrategies = /** @class */ (function () {\n function ScoreStrategies() {\n this.scoreStrategies = [];\n }\n /**\n * Create empty\n *\n * @param scoreMode\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.createEmpty = function (scoreMode) {\n if (scoreMode === void 0) { scoreMode = exports.SUM; }\n var scoreStrategies = new ScoreStrategies;\n scoreStrategies.scoreMode = scoreMode;\n return scoreStrategies;\n };\n /**\n * Add score strategy\n *\n * @param scoreStrategy\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.prototype.addScoreStrategy = function (scoreStrategy) {\n this.scoreStrategies.push(scoreStrategy);\n return this;\n };\n /**\n * Get score strategies\n *\n * @return {ScoreStrategy[]}\n */\n ScoreStrategies.prototype.getScoreStrategies = function () {\n return this.scoreStrategies;\n };\n /**\n * Get score mode\n *\n * @return {string}\n */\n ScoreStrategies.prototype.getScoreMode = function () {\n return this.scoreMode;\n };\n /**\n * To array\n *\n * @return {{\n * score_mode: string,\n * score_strategies: any\n * }}\n */\n ScoreStrategies.prototype.toArray = function () {\n var scoreStrategiesAsArray = [];\n for (var i in this.scoreStrategies) {\n scoreStrategiesAsArray.push(this.scoreStrategies[i].toArray());\n }\n return {\n score_mode: this.scoreMode,\n score_strategies: scoreStrategiesAsArray\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var scoreStrategies = (typeof array.score_mode != \"undefined\")\n ? ScoreStrategies.createEmpty(array.score_mode)\n : ScoreStrategies.createEmpty();\n scoreStrategies.scoreStrategies = [];\n for (var i in array.score_strategies) {\n scoreStrategies\n .scoreStrategies\n .push(ScoreStrategy_1.ScoreStrategy.createFromArray(array.score_strategies[i]));\n }\n return scoreStrategies;\n };\n return ScoreStrategies;\n}());\nexports.ScoreStrategies = ScoreStrategies;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar Filter_1 = require(\"./Filter\");\n/**\n * ScoreStrategy constants\n */\nexports.DEFAULT_TYPE = 'default';\nexports.DEFAULT_WEIGHT = 1.0;\nexports.BOOSTING_FIELD_VALUE = 'field_value';\nexports.CUSTOM_FUNCTION = 'custom_function';\nexports.DECAY = 'decay';\nexports.DECAY_LINEAR = 'linear';\nexports.DECAY_EXP = 'exp';\nexports.DECAY_GAUSS = 'gauss';\nexports.MODIFIER_NONE = 'none';\nexports.MODIFIER_SQRT = 'sqrt';\nexports.MODIFIER_LOG = 'log';\nexports.MODIFIER_LN = 'ln';\nexports.MODIFIER_SQUARE = 'square';\nexports.SCORE_MODE_NONE = 'none';\nexports.SCORE_MODE_SUM = 'sum';\nexports.SCORE_MODE_AVG = 'avg';\nexports.SCORE_MODE_MAX = 'max';\nexports.SCORE_MODE_MIN = 'min';\nexports.DEFAULT_MISSING = 1.0;\nexports.DEFAULT_FACTOR = 1.0;\n/**\n * ScoreStrategy\n */\nvar ScoreStrategy = /** @class */ (function () {\n function ScoreStrategy() {\n this.type = exports.DEFAULT_TYPE;\n this.filter = null;\n this.weight = exports.DEFAULT_WEIGHT;\n this.scoreMode = exports.SCORE_MODE_AVG;\n this.configuration = {};\n }\n /**\n * Get type\n *\n * @returns {string}\n */\n ScoreStrategy.prototype.getType = function () {\n return this.type;\n };\n /**\n * Get configuration value\n *\n * @returns {string}\n */\n ScoreStrategy.prototype.getConfigurationValue = function (element) {\n if (typeof this.configuration[element] == \"undefined\") {\n return null;\n }\n return this.configuration[element];\n };\n /**\n * Get weight.\n *\n * @return {number}\n */\n ScoreStrategy.prototype.getWeight = function () {\n return this.weight;\n };\n /**\n * Get score mode.\n *\n * @return {string}\n */\n ScoreStrategy.prototype.getScoreMode = function () {\n return this.scoreMode;\n };\n /**\n * Get filter.\n *\n * @return {Filter}\n */\n ScoreStrategy.prototype.getFilter = function () {\n return this.filter;\n };\n /**\n * Create default\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createDefault = function () {\n return new ScoreStrategy();\n };\n /**\n * Create field boosting\n *\n * @param field\n * @param factor\n * @param missing\n * @param modifier\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createFieldBoosting = function (field, factor, missing, modifier, weight, filter, scoreMode) {\n if (factor === void 0) { factor = exports.DEFAULT_FACTOR; }\n if (missing === void 0) { missing = exports.DEFAULT_MISSING; }\n if (modifier === void 0) { modifier = exports.MODIFIER_NONE; }\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.BOOSTING_FIELD_VALUE;\n scoreStrategy.configuration['field'] = field;\n scoreStrategy.configuration['factor'] = factor;\n scoreStrategy.configuration['missing'] = missing;\n scoreStrategy.configuration['modifier'] = modifier;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Create custom function\n *\n * @param func\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createCustomFunction = function (func, weight, filter, scoreMode) {\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.CUSTOM_FUNCTION;\n scoreStrategy.configuration['function'] = func;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Create decay function\n *\n * @param type\n * @param field\n * @param origin\n * @param scale\n * @param offset\n * @param decay\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createDecayFunction = function (type, field, origin, scale, offset, decay, weight, filter, scoreMode) {\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.DECAY;\n scoreStrategy.configuration['type'] = type;\n scoreStrategy.configuration['field'] = field;\n scoreStrategy.configuration['origin'] = origin;\n scoreStrategy.configuration['scale'] = scale;\n scoreStrategy.configuration['offset'] = offset;\n scoreStrategy.configuration['decay'] = decay;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Fix filter path.\n *\n * @param filter\n *\n * @return {Filter}\n */\n ScoreStrategy.fixFilterFieldPath = function (filter) {\n if (filter == null) {\n return filter;\n }\n var filterAsArray = filter.toArray();\n filterAsArray['field'] = Item_1.Item.getPathByField(filterAsArray['field']);\n return Filter_1.Filter.createFromArray(filterAsArray);\n };\n /**\n * To array\n *\n * @return {{\n * type: string,\n * configuration: any,\n * weight: number,\n * score_mode: string,\n * filter: any\n * }}\n */\n ScoreStrategy.prototype.toArray = function () {\n return {\n type: this.type,\n configuration: this.configuration,\n weight: this.weight,\n score_mode: this.scoreMode,\n filter: this.filter instanceof Filter_1.Filter\n ? this.filter.toArray()\n : null\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var scoreStrategy = ScoreStrategy.createDefault();\n if (typeof array.type != \"undefined\") {\n scoreStrategy.type = array.type;\n }\n if (typeof array.configuration != \"undefined\") {\n scoreStrategy.configuration = array.configuration;\n }\n if (typeof array.weight != \"undefined\") {\n scoreStrategy.weight = array.weight;\n }\n if (typeof array.score_mode != \"undefined\") {\n scoreStrategy.scoreMode = array.score_mode;\n }\n if (typeof array.filter === 'object' && array.filter !== null) {\n scoreStrategy.filter = Filter_1.Filter.createFromArray(array.filter);\n }\n return scoreStrategy;\n };\n return ScoreStrategy;\n}());\nexports.ScoreStrategy = ScoreStrategy;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\n/**\n export * Sort by constants\n */\nexports.SORT_BY_TYPE_FIELD = 'field';\nexports.SORT_BY_TYPE_NESTED = 'nested';\nexports.SORT_BY_TYPE_SCORE = 'score';\nexports.SORT_BY_TYPE_DISTANCE = 'distance';\nexports.SORT_BY_TYPE_FUNCTION = 'function';\nexports.SORT_BY_TYPE_RANDOM = 'random';\nexports.SORT_BY_ASC = \"asc\";\nexports.SORT_BY_DESC = \"desc\";\nexports.SORT_BY_MODE_AVG = \"avg\";\nexports.SORT_BY_MODE_SUM = \"sum\";\nexports.SORT_BY_MODE_MIN = \"min\";\nexports.SORT_BY_MODE_MAX = \"max\";\nexports.SORT_BY_MODE_MEDIAN = \"median\";\nexports.SORT_BY_SCORE = {\n type: exports.SORT_BY_TYPE_SCORE\n};\nexports.SORT_BY_RANDOM = {\n type: exports.SORT_BY_TYPE_RANDOM\n};\nexports.SORT_BY_AL_TUN_TUN = exports.SORT_BY_RANDOM;\nexports.SORT_BY_ID_ASC = {\n field: \"uuid.id\",\n order: exports.SORT_BY_ASC\n};\nexports.SORT_BY_ID_DESC = {\n field: \"uuid.id\",\n order: exports.SORT_BY_DESC\n};\nexports.SORT_BY_TYPE_ASC = {\n field: \"uuid.type\",\n order: exports.SORT_BY_ASC\n};\nexports.SORT_BY_TYPE_DESC = {\n field: \"uuid.type\",\n order: exports.SORT_BY_DESC\n};\nexports.SORT_BY_LOCATION_KM_ASC = {\n type: exports.SORT_BY_TYPE_DISTANCE,\n unit: \"km\"\n};\nexports.SORT_BY_LOCATION_MI_ASC = {\n type: exports.SORT_BY_TYPE_DISTANCE,\n unit: \"mi\"\n};\nvar Coordinate_1 = require(\"../Model/Coordinate\");\nvar Filter_1 = require(\"./Filter\");\n/**\n * ScoreStrategy\n */\nvar SortBy = /** @class */ (function () {\n function SortBy() {\n this.sortsBy = [];\n }\n /**\n * Create\n *\n * @return {SortBy}\n */\n SortBy.create = function () {\n return new SortBy;\n };\n /**\n * Sort By fields values\n *\n * @param shortSortByElements\n *\n * @return {SortBy}\n */\n SortBy.byFieldsValues = function (shortSortByElements) {\n var sortBy = SortBy.create();\n for (var key in shortSortByElements) {\n sortBy.byFieldValue(key, shortSortByElements[key]);\n }\n return sortBy;\n };\n /**\n * All\n *\n * @return {Array}\n */\n SortBy.prototype.all = function () {\n return this.sortsBy.length > 0\n ? this.sortsBy\n : [exports.SORT_BY_SCORE];\n };\n /**\n * Sort by value\n *\n * @param value\n *\n * @return {SortBy}\n */\n SortBy.prototype.byValue = function (value) {\n if (exports.SORT_BY_SCORE != value &&\n exports.SORT_BY_RANDOM != value) {\n if (typeof value.type == \"undefined\") {\n value.type = exports.SORT_BY_TYPE_FIELD;\n }\n }\n if (exports.SORT_BY_SCORE != value) {\n this.sortsBy.push(value);\n }\n return this;\n };\n /**\n * Sort by field value\n *\n * @param field\n * @param order\n *\n * @return {SortBy}\n */\n SortBy.prototype.byFieldValue = function (field, order) {\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_FIELD,\n field: Item_1.Item.getPathByField(field),\n order: order\n });\n return this;\n };\n /**\n * Sort by nested field\n *\n * @param field\n * @param order\n * @param mode\n *\n * @return {SortBy}\n */\n SortBy.prototype.byNestedField = function (field, order, mode) {\n if (mode === void 0) { mode = exports.SORT_BY_MODE_AVG; }\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_NESTED,\n mode: mode,\n field: 'indexed_metadata.' + field,\n order: order\n });\n return this;\n };\n /**\n * Sort by nested field and filter\n *\n * @param field\n * @param order\n * @param filter\n * @param mode\n *\n * @return {SortBy}\n */\n SortBy.prototype.byNestedFieldAndFilter = function (field, order, filter, mode) {\n if (mode === void 0) { mode = exports.SORT_BY_MODE_AVG; }\n var fieldPath = Item_1.Item.getPathByField(filter.getField());\n var filterAsArray = filter.toArray();\n filterAsArray.field = fieldPath;\n filter = Filter_1.Filter.createFromArray(filterAsArray);\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_NESTED,\n mode: mode,\n filter: filter,\n field: 'indexed_metadata.' + field,\n order: order\n });\n return this;\n };\n /**\n * Sort by function\n *\n * @param func\n * @param order\n *\n * @return {SortBy}\n */\n SortBy.prototype.byFunction = function (func, order) {\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_FUNCTION,\n \"function\": func,\n order: order\n });\n return this;\n };\n /**\n * Is sorted by geo distance\n *\n * @return {boolean}\n */\n SortBy.prototype.isSortedByGeoDistance = function () {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_DISTANCE) {\n return true;\n }\n }\n return false;\n };\n /**\n * Set coordinate\n *\n * @param coordinate\n *\n * @return {SortBy}\n */\n SortBy.prototype.setCoordinate = function (coordinate) {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_DISTANCE) {\n this.sortsBy[i].coordinate = coordinate;\n }\n }\n return this;\n };\n /**\n * Has random sort\n *\n * @return {boolean}\n */\n SortBy.prototype.hasRandomSort = function () {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_RANDOM) {\n return true;\n }\n }\n return false;\n };\n /**\n * To array\n *\n * @return {[]}\n */\n SortBy.prototype.toArray = function () {\n var copySortBy = this.copy();\n var sortsByAsArray = copySortBy.sortsBy;\n for (var i in sortsByAsArray) {\n if (typeof sortsByAsArray[i].filter === typeof {} &&\n sortsByAsArray[i].filter != null) {\n sortsByAsArray[i].filter = sortsByAsArray[i].filter.toArray();\n }\n if (sortsByAsArray[i].coordinate !== null &&\n sortsByAsArray[i].coordinate instanceof Coordinate_1.Coordinate) {\n sortsByAsArray[i].coordinate = sortsByAsArray[i].coordinate.toArray();\n }\n }\n return sortsByAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {SortBy}\n */\n SortBy.createFromArray = function (array) {\n var innerArray = JSON.parse(JSON.stringify(array));\n var sortBy = SortBy.create();\n for (var i in innerArray) {\n var element = innerArray[i];\n if (typeof element.type == \"undefined\") {\n element.type = exports.SORT_BY_TYPE_FIELD;\n }\n if (typeof element.filter === typeof {} &&\n element.filter != null) {\n element.filter = Filter_1.Filter.createFromArray(element.filter);\n }\n if (element.coordinate != null &&\n typeof element.coordinate === typeof {}) {\n element.coordinate = Coordinate_1.Coordinate.createFromArray(element.coordinate);\n }\n sortBy.sortsBy.push(element);\n }\n return sortBy;\n };\n /**\n * Make a copy of this\n *\n * @returns {SortBy}\n */\n SortBy.prototype.copy = function () {\n var newSortBy = SortBy.create();\n for (var i in this.sortsBy) {\n var sortBy = this.sortsBy[i];\n var sortByAsArray = JSON.parse(JSON.stringify(sortBy));\n if (typeof sortBy.filter === typeof {} &&\n sortBy.filter != null) {\n sortByAsArray.filter = Filter_1.Filter.createFromArray(sortBy.filter.toArray());\n }\n if (sortBy.coordinate != null &&\n typeof sortBy.coordinate == typeof {}) {\n sortByAsArray.coordinate = Coordinate_1.Coordinate.createFromArray(sortBy.coordinate.toArray());\n }\n newSortBy.sortsBy.push(sortByAsArray);\n }\n return newSortBy;\n };\n return SortBy;\n}());\nexports.SortBy = SortBy;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ConnectionError_1 = require(\"../Error/ConnectionError\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar InvalidTokenError_1 = require(\"../Error/InvalidTokenError\");\nvar ResourceExistsError_1 = require(\"../Error/ResourceExistsError\");\nvar ResourceNotAvailableError_1 = require(\"../Error/ResourceNotAvailableError\");\nvar Item_1 = require(\"../Model/Item\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\nvar Result_1 = require(\"../Result/Result\");\nvar Repository_1 = require(\"./Repository\");\nvar Index_1 = require(\"../Model/Index\");\n/**\n * Aggregation class\n */\nvar HttpRepository = /** @class */ (function (_super) {\n tslib_1.__extends(HttpRepository, _super);\n /**\n * Constructor\n *\n * @param httpClient\n * @param appId\n * @param indexId\n * @param token\n * @param transformer\n */\n function HttpRepository(httpClient, appId, indexId, token, transformer) {\n var _this = _super.call(this, appId, indexId, token) || this;\n _this.httpClient = httpClient;\n _this.transformer = transformer;\n return _this;\n }\n /**\n * Get transformer\n *\n * @return {Transformer}\n */\n HttpRepository.prototype.getTransformer = function () {\n return this.transformer;\n };\n /**\n * Generate item document by a simple object.\n *\n * @param object\n */\n HttpRepository.prototype.addObject = function (object) {\n var item = this\n .transformer\n .toItem(object);\n if (item instanceof Item_1.Item) {\n this.addItem(item);\n }\n };\n /**\n * Delete item document by uuid.\n *\n * @param object\n */\n HttpRepository.prototype.deleteObject = function (object) {\n var itemUUID = this\n .transformer\n .toItemUUID(object);\n if (itemUUID instanceof ItemUUID_1.ItemUUID) {\n this.deleteItem(itemUUID);\n }\n };\n /**\n * Flush update items\n *\n * @param itemsToUpdate\n *\n * @return {Promise}\n */\n HttpRepository.prototype.flushUpdateItems = function (itemsToUpdate) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n if (itemsToUpdate.length === 0) {\n return [2 /*return*/];\n }\n return [2 /*return*/, this\n .httpClient\n .get(\"/items\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {\n items: itemsToUpdate.map(function (item) {\n return item.toArray();\n })\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n })];\n });\n });\n };\n /**\n * Flush delete items\n *\n * @param itemsToDelete\n *\n * @return {Promise}\n */\n HttpRepository.prototype.flushDeleteItems = function (itemsToDelete) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n if (itemsToDelete.length === 0) {\n return [2 /*return*/];\n }\n return [2 /*return*/, this\n .httpClient\n .get(\"/items\", \"delete\", this.getCredentialsWithIndex(this.indexId), {}, {\n items: itemsToDelete.map(function (itemUUID) {\n return itemUUID.toArray();\n })\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n })];\n });\n });\n };\n /**\n * Query\n *\n * @param query\n *\n * @return {Promise}\n */\n HttpRepository.prototype.query = function (query) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var that;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n that = this;\n return [4 /*yield*/, this\n .httpClient\n .get(\"/\", \"get\", this.getCredentialsWithIndex(this.indexId), {\n query: JSON.stringify(query.toArray())\n }, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n var result = Result_1.Result.createFromArray(response.getBody());\n return Result_1.Result.create(result.getQuery(), result.getTotalItems(), result.getTotalHits(), result.getAggregations(), result.getSuggests(), that\n .transformer\n .fromItems(result.getItems()));\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Update items\n *\n * @param query\n * @param changes\n *\n * @return {Promise}\n */\n HttpRepository.prototype.updateItems = function (query, changes) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/items\", \"put\", this.getCredentialsWithIndex(this.indexId), {}, {\n query: query.toArray(),\n changes: changes.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Create index\n *\n * @param indexUUID\n * @param config\n *\n * @return {Promise}\n */\n HttpRepository.prototype.createIndex = function (indexUUID, config) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"put\", this.getCredentials(), {}, {\n index: indexUUID.toArray(),\n config: config.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Delete index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.deleteIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"delete\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Reset index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.resetIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index/reset\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Check index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.checkIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"head\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return response.getCode() === 200;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Check index\n *\n * @return {Promise}\n */\n HttpRepository.prototype.getIndices = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/indices\", \"get\", this.getCredentials(), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n var result = [];\n for (var _i = 0, _a = response.getBody(); _i < _a.length; _i++) {\n var indexAsArray = _a[_i];\n result.push(Index_1.Index.createFromArray(indexAsArray));\n }\n return result;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Configure index\n *\n * @param indexUUID\n * @param config\n *\n * @return {Promise}\n */\n HttpRepository.prototype.configureIndex = function (indexUUID, config) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {\n config: config.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Get query values\n *\n * @returns any\n */\n HttpRepository.prototype.getCredentials = function () {\n return {\n app_id: this.appId,\n token: this.token\n };\n };\n /**\n * Get query values\n *\n * @param indexComposedUUID\n *\n * @returns any\n */\n HttpRepository.prototype.getCredentialsWithIndex = function (indexComposedUUID) {\n return {\n app_id: this.appId,\n index: indexComposedUUID,\n token: this.token\n };\n };\n /**\n * throw error if needed\n *\n * @param response\n */\n HttpRepository.throwTransportableExceptionIfNeeded = function (response) {\n if (typeof response.getCode() == \"undefined\") {\n return;\n }\n switch (response.getCode()) {\n case ResourceNotAvailableError_1.ResourceNotAvailableError.getTransportableHTTPError():\n throw new ResourceNotAvailableError_1.ResourceNotAvailableError(response.getBody().message);\n case InvalidTokenError_1.InvalidTokenError.getTransportableHTTPError():\n throw new InvalidTokenError_1.InvalidTokenError(response.getBody().message);\n case InvalidFormatError_1.InvalidFormatError.getTransportableHTTPError():\n throw new InvalidFormatError_1.InvalidFormatError(response.getBody().message);\n case ResourceExistsError_1.ResourceExistsError.getTransportableHTTPError():\n throw new ResourceExistsError_1.ResourceExistsError(response.getBody().message);\n case ConnectionError_1.ConnectionError.getTransportableHTTPError():\n throw new ConnectionError_1.ConnectionError(response.getBody().message);\n }\n };\n return HttpRepository;\n}(Repository_1.Repository));\nexports.HttpRepository = HttpRepository;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\n/**\n * Aggregation class\n */\nvar Repository = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param appId\n * @param indexId\n * @param token\n */\n function Repository(appId, indexId, token) {\n this.itemsToUpdate = [];\n this.itemsToDelete = [];\n this.appId = appId;\n this.indexId = indexId;\n this.token = token;\n }\n /**\n * Reset cached elements\n */\n Repository.prototype.resetCachedElements = function () {\n this.itemsToUpdate = [];\n this.itemsToDelete = [];\n };\n /**\n * Add element\n *\n * @param item\n */\n Repository.prototype.addItem = function (item) {\n this.itemsToUpdate.push(item);\n };\n /**\n * Add elements\n *\n * @param items\n */\n Repository.prototype.addItems = function (items) {\n for (var i in items) {\n this.addItem(items[i]);\n }\n };\n /**\n * Delete item\n *\n * @param itemUUID\n */\n Repository.prototype.deleteItem = function (itemUUID) {\n this.itemsToDelete.push(itemUUID);\n };\n /**\n * Delete items\n *\n * @param itemsUUID\n */\n Repository.prototype.deleteItems = function (itemsUUID) {\n for (var i in itemsUUID) {\n this.deleteItem(itemsUUID[i]);\n }\n };\n /**\n * flush\n *\n * @param bulkNumber\n * @param skipIfLess\n *\n * @return {Promise}\n */\n Repository.prototype.flush = function (bulkNumber, skipIfLess) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n if (!bulkNumber) {\n bulkNumber = 500;\n }\n if (!skipIfLess) {\n skipIfLess = false;\n }\n if (skipIfLess &&\n this.itemsToUpdate.length < bulkNumber) {\n return [2 /*return*/];\n }\n return [2 /*return*/, Promise.all(Repository\n .chunkArray(this.itemsToUpdate, bulkNumber)\n .map(function (arrayOfItems) {\n return _this.flushUpdateItems(arrayOfItems);\n })\n .concat(Repository\n .chunkArray(this.itemsToDelete, bulkNumber)\n .map(function (arrayOfItemsUUID) {\n return _this.flushDeleteItems(arrayOfItemsUUID);\n }))).then(function (_) {\n _this.resetCachedElements();\n })[\"catch\"](function (_) {\n _this.resetCachedElements();\n })];\n });\n });\n };\n /**\n * Make chunks of n elements\n *\n * @param array\n * @param chunk\n *\n * @return any[]\n */\n Repository.chunkArray = function (array, chunk) {\n var arrayChunked = [];\n for (var i = 0, j = array.length; i < j; i += chunk) {\n arrayChunked.push(array.slice(i, i + chunk));\n }\n return arrayChunked;\n };\n return Repository;\n}());\nexports.Repository = Repository;\n","\"use strict\";\nexports.__esModule = true;\nvar Metadata_1 = require(\"../Model/Metadata\");\n/**\n * Aggregation class\n */\nvar Counter = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param values\n * @param used\n * @param n\n */\n function Counter(values, used, n) {\n this.values = values;\n this.used = used;\n this.n = n;\n }\n /**\n * Get id\n *\n * @return {string|null}\n */\n Counter.prototype.getId = function () {\n return typeof this.values.id == \"string\"\n ? this.values.id\n : null;\n };\n /**\n * Get name\n *\n * @return {string|null}\n */\n Counter.prototype.getName = function () {\n return typeof this.values.name == \"string\"\n ? this.values.name\n : null;\n };\n /**\n * Get slug\n *\n * @return {string|null}\n */\n Counter.prototype.getSlug = function () {\n return typeof this.values.slug == \"string\"\n ? this.values.slug\n : null;\n };\n /**\n * Get level\n *\n * @return {number}\n */\n Counter.prototype.getLevel = function () {\n return typeof this.values.level == \"number\"\n ? this.values.level\n : 0;\n };\n /**\n * Get values\n *\n * @returns {{}}\n */\n Counter.prototype.getValues = function () {\n return this.values;\n };\n /**\n * Is used\n *\n * @returns {boolean}\n */\n Counter.prototype.isUsed = function () {\n return this.used;\n };\n /**\n * Get N\n *\n * @returns {number}\n */\n Counter.prototype.getN = function () {\n return this.n;\n };\n /**\n * Create by active elements\n *\n * @param name\n * @param n\n * @param activeElements\n */\n Counter.createByActiveElements = function (name, n, activeElements) {\n var values = Metadata_1.Metadata.fromMetadata(name);\n if (values == null) {\n return null;\n }\n var i = activeElements.length;\n var inActiveElements = false;\n while (i--) {\n if (activeElements[i] == values.id) {\n inActiveElements = true;\n }\n }\n return new Counter(values, inActiveElements, n);\n };\n /**\n * To array\n *\n * @return {{}}\n */\n Counter.prototype.toArray = function () {\n var values = {\n values: this.values,\n n: this.n\n };\n if (this.used === true) {\n values.used = true;\n }\n return values;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Counter}\n */\n Counter.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new Counter(array.values, (typeof array.used == \"boolean\")\n ? array.used\n : false, array.n);\n };\n return Counter;\n}());\nexports.Counter = Counter;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar Query_1 = require(\"../Query/Query\");\nvar ResultAggregations_1 = require(\"./ResultAggregations\");\n/**\n * Result class\n */\nvar Result = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param query\n * @param totalItems\n * @param totalHits\n */\n function Result(query, totalItems, totalHits) {\n this.items = [];\n this.suggests = [];\n this.subresults = {};\n this.query = query;\n this.totalItems = totalItems;\n this.totalHits = totalHits;\n }\n /**\n * Create\n *\n * @param query\n * @param totalItems\n * @param totalHits\n * @param aggregations\n * @param suggests\n * @param items\n *\n * @returns {Result}\n */\n Result.create = function (query, totalItems, totalHits, aggregations, suggests, items) {\n var result = new Result(query, totalItems, totalHits);\n result.aggregations = aggregations;\n result.suggests = suggests;\n result.items = items;\n return result;\n };\n /**\n * Create multi results\n *\n * @param query\n * @param subresults\n *\n * @returns {Result}\n */\n Result.createMultiresults = function (query, subresults) {\n var result = new Result(query, 0, 0);\n result.subresults = subresults;\n return result;\n };\n /**\n * Add item\n *\n * @param item\n */\n Result.prototype.addItem = function (item) {\n this.items.push(item);\n };\n /**\n * Get items\n *\n * @return {Item[]}\n */\n Result.prototype.getItems = function () {\n return this.items;\n };\n /**\n * Get items grouped by types\n *\n * @return {any[]}\n */\n Result.prototype.getItemsGroupedByTypes = function () {\n if (this.itemsGroupedByTypeCache instanceof Object &&\n Object.keys(this.itemsGroupedByTypeCache).length > 0) {\n return this.itemsGroupedByTypeCache;\n }\n var itemsGroupedByTypes = {};\n for (var i in this.items) {\n var item = this.items[i];\n if (!(itemsGroupedByTypes[item.getType()] instanceof Array)) {\n itemsGroupedByTypes[item.getType()] = [];\n }\n itemsGroupedByTypes[item.getType()].push(item);\n }\n this.itemsGroupedByTypeCache = itemsGroupedByTypes;\n return itemsGroupedByTypes;\n };\n /**\n * Get items by type\n *\n * @param type\n *\n * @return {Array}\n */\n Result.prototype.getItemsByType = function (type) {\n var itemsGroupedByTypes = this.getItemsGroupedByTypes();\n return itemsGroupedByTypes[type] == null\n ? []\n : itemsGroupedByTypes[type];\n };\n /**\n * Get items by types\n *\n * @param types\n */\n Result.prototype.getItemsByTypes = function (types) {\n return this.items.filter(function (item) { return types.indexOf(item.getType()) >= 0; });\n };\n /**\n * Get first item\n *\n * @return {Item}\n */\n Result.prototype.getFirstItem = function () {\n return this.items.length > 0\n ? this.items[0]\n : null;\n };\n /**\n * Set aggregations\n *\n * @param aggregations\n */\n Result.prototype.setAggregations = function (aggregations) {\n this.aggregations = aggregations;\n };\n /**\n * Get aggregations\n *\n * @return {ResultAggregations}\n */\n Result.prototype.getAggregations = function () {\n return this.aggregations instanceof ResultAggregations_1.ResultAggregations\n ? this.aggregations\n : null;\n };\n /**\n * Get aggregation\n *\n * @param name\n *\n * @return {null}\n */\n Result.prototype.getAggregation = function (name) {\n return this.aggregations == null\n ? null\n : this.aggregations.getAggregation(name);\n };\n /**\n * Has no empty aggregation\n *\n * @param name\n *\n * @return {boolean}\n */\n Result.prototype.hasNotEmptyAggregation = function (name) {\n return this.aggregations == null\n ? false\n : this.aggregations.hasNotEmptyAggregation(name);\n };\n /**\n * Add suggest\n *\n * @param suggest\n */\n Result.prototype.addSuggest = function (suggest) {\n this.suggests.push(suggest);\n };\n /**\n * Get suggests\n *\n * @return {string[]}\n */\n Result.prototype.getSuggests = function () {\n return this.suggests;\n };\n /**\n * Get query\n *\n * @return {Query}\n */\n Result.prototype.getQuery = function () {\n return this.query;\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n Result.prototype.getTotalItems = function () {\n return this.totalItems;\n };\n /**\n * Get total hits\n *\n * @return {number}\n */\n Result.prototype.getTotalHits = function () {\n return this.totalHits;\n };\n /**\n * Get subresults\n *\n * @return Object\n */\n Result.prototype.getSubresults = function () {\n return this.subresults;\n };\n /**\n * to array\n *\n * @return {{query: any, total_items: number, total_hits: number, items:any[], aggregations: any, suggests: string[]}}\n */\n Result.prototype.toArray = function () {\n var array = {\n query: this.query.toArray(),\n total_items: this.totalItems,\n total_hits: this.totalHits,\n items: this.items.map(function (item) { return item.toArray(); }),\n aggregations: this.aggregations == null\n ? null\n : this.aggregations.toArray(),\n suggests: this.suggests\n };\n if (this.subresults instanceof Object &&\n Object.keys(this.subresults).length) {\n array.subresults = {};\n for (var i in this.subresults) {\n var subresult = this.subresults[i];\n array.subresults[i] = subresult.toArray();\n }\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Result}\n */\n Result.createFromArray = function (array) {\n var result = Result.create(Query_1.Query.createFromArray(array.query), array.total_items\n ? array.total_items\n : 0, array.total_hits\n ? array.total_hits\n : 0, array.aggregations instanceof Object\n ? ResultAggregations_1.ResultAggregations.createFromArray(array.aggregations)\n : null, array.suggests\n ? array.suggests\n : null, array.items instanceof Array\n ? array.items.map(function (itemAsArray) { return Item_1.Item.createFromArray(itemAsArray); })\n : []);\n /**\n * Subqueries\n */\n var subresultsAsArray = typeof array.subresults === typeof {}\n ? array.subresults\n : {};\n for (var i in subresultsAsArray) {\n result.subresults[i] = Query_1.Query.createFromArray(subresultsAsArray[i]);\n }\n return result;\n };\n return Result;\n}());\nexports.Result = Result;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Filter_1 = require(\"../Query/Filter\");\nvar Counter_1 = require(\"./Counter\");\n/**\n * ResultAggregation class\n */\nvar ResultAggregation = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param name\n * @param applicationType\n * @param totalElements\n * @param activeElements\n */\n function ResultAggregation(name, applicationType, totalElements, activeElements) {\n this.counters = {};\n this.highestActiveElement = 0;\n this.name = name;\n this.applicationType = applicationType;\n this.totalElements = totalElements;\n this.activeElements = {};\n for (var i in activeElements) {\n var activeElement = activeElements[i];\n this.activeElements[activeElement] = activeElement;\n }\n }\n /**\n * Add counter\n *\n * @param name\n * @param counter\n */\n ResultAggregation.prototype.addCounter = function (name, counter) {\n if (counter == 0) {\n return;\n }\n var counterInstance = Counter_1.Counter.createByActiveElements(name, counter, Object.keys(this.activeElements));\n if (!(counterInstance instanceof Counter_1.Counter)) {\n return;\n }\n if ((this.applicationType & Filter_1.FILTER_MUST_ALL_WITH_LEVELS) &&\n (this.applicationType & ~Filter_1.FILTER_MUST_ALL) &&\n counterInstance.isUsed()) {\n this.activeElements[counterInstance.getId()] = counterInstance;\n this.highestActiveElement = Math.max(counterInstance.getLevel(), this.highestActiveElement);\n return;\n }\n this.counters[counterInstance.getId()] = counterInstance;\n };\n /**\n * Get name\n *\n * @return {string}\n */\n ResultAggregation.prototype.getName = function () {\n return this.name;\n };\n /**\n * Get counter\n *\n * @return {any}\n */\n ResultAggregation.prototype.getCounters = function () {\n return this.counters;\n };\n /**\n * Return if the aggregation belongs to a filter.\n *\n * @return {boolean}\n */\n ResultAggregation.prototype.isFilter = function () {\n return (this.applicationType & Filter_1.FILTER_MUST_ALL) > 0;\n };\n /**\n * Aggregation has levels.\n *\n * @return {boolean}\n */\n ResultAggregation.prototype.hasLevels = function () {\n return (this.applicationType & Filter_1.FILTER_MUST_ALL_WITH_LEVELS) > 0;\n };\n /**\n * Get counter by name\n *\n * @param name\n *\n * @return {null}\n */\n ResultAggregation.prototype.getCounter = function (name) {\n return this.counters[name] instanceof Counter_1.Counter\n ? this.counters[name]\n : null;\n };\n /**\n * Get all elements\n *\n * @return {{}}\n */\n ResultAggregation.prototype.getAllElements = function () {\n return tslib_1.__assign({}, this.activeElements, this.counters);\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n ResultAggregation.prototype.getTotalElements = function () {\n return this.totalElements;\n };\n /**\n * Get active elements\n *\n * @return {any}\n */\n ResultAggregation.prototype.getActiveElements = function () {\n if (Object.keys(this.activeElements).length === 0) {\n return {};\n }\n if (this.applicationType === Filter_1.FILTER_MUST_ALL_WITH_LEVELS) {\n var value = null;\n for (var i in this.activeElements) {\n var activeElement = this.activeElements[i];\n if (!(activeElement instanceof Counter_1.Counter)) {\n continue;\n }\n if (value == null) {\n value = activeElement;\n }\n value = value.getLevel() > activeElement.getLevel()\n ? value\n : activeElement;\n }\n return value instanceof Counter_1.Counter\n ? { 0: value }\n : null;\n }\n return this.activeElements;\n };\n /**\n * Clean results by level and remove all levels higher than the lowest.\n */\n ResultAggregation.prototype.cleanCountersByLevel = function () {\n for (var i in this.counters) {\n var counter = this.counters[i];\n if (counter.getLevel() !== this.highestActiveElement + 1) {\n delete this.counters[i];\n }\n }\n };\n /**\n * Is empty\n *\n * @returns {boolean}\n */\n ResultAggregation.prototype.isEmpty = function () {\n return Object.keys(this.activeElements).length == 0 &&\n Object.keys(this.counters).length == 0;\n };\n /**\n * To array\n *\n * @return {any}\n */\n ResultAggregation.prototype.toArray = function () {\n var array = {\n name: this.name,\n counters: [],\n active_elements: []\n };\n for (var i in this.counters) {\n array.counters.push(this.counters[i].toArray());\n }\n if (this.applicationType !== Filter_1.FILTER_AT_LEAST_ONE) {\n array.application_type = this.applicationType;\n }\n if (this.totalElements > 0) {\n array.total_elements = this.totalElements;\n }\n for (var i in this.activeElements) {\n var activeElement = this.activeElements[i];\n array.active_elements.push(activeElement instanceof Counter_1.Counter\n ? activeElement.toArray()\n : activeElement);\n }\n if (this.highestActiveElement > 0) {\n array.highest_active_level = this.highestActiveElement;\n }\n if (array.counters.length === 0) {\n delete array.counters;\n }\n if (array.active_elements.length === 0) {\n delete array.active_elements;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n */\n ResultAggregation.createFromArray = function (array) {\n var activeElements = [];\n var activeElementsAsArray = array.active_elements;\n activeElementsAsArray = typeof activeElementsAsArray === typeof []\n ? activeElementsAsArray\n : [];\n for (var i in activeElementsAsArray) {\n var activeElementAsArray = activeElementsAsArray[i];\n activeElements.push(typeof activeElementAsArray === typeof {}\n ? Counter_1.Counter.createFromArray(activeElementAsArray)\n : activeElementAsArray);\n }\n var aggregation = new ResultAggregation(array.name, parseInt(array.application_type ? array.application_type : Filter_1.FILTER_AT_LEAST_ONE), parseInt(array.total_elements ? array.total_elements : 0), []);\n aggregation.activeElements = activeElements;\n var countersAsArray = typeof array.counters === typeof []\n ? array.counters\n : [];\n for (var i in countersAsArray) {\n var counterAsArray = countersAsArray[i];\n var counter = Counter_1.Counter.createFromArray(counterAsArray);\n aggregation.counters[counter.getId()] = counter;\n }\n aggregation.highestActiveElement = typeof array.highest_active_level === \"number\"\n ? array.highest_active_level\n : 0;\n return aggregation;\n };\n return ResultAggregation;\n}());\nexports.ResultAggregation = ResultAggregation;\n","\"use strict\";\nexports.__esModule = true;\nvar ResultAggregation_1 = require(\"./ResultAggregation\");\n/**\n * ResultAggregation class\n */\nvar ResultAggregations = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param totalElements\n */\n function ResultAggregations(totalElements) {\n this.aggregations = {};\n this.totalElements = totalElements;\n }\n /**\n * Add aggregation\n *\n * @param name\n * @param aggregation\n */\n ResultAggregations.prototype.addAggregation = function (name, aggregation) {\n this.aggregations[name] = aggregation;\n };\n /**\n * Get aggregations\n *\n * @returns {{}}\n */\n ResultAggregations.prototype.getAggregations = function () {\n return this.aggregations;\n };\n /**\n * Get aggregation\n *\n * @param name\n *\n * @returns {Aggregation|null}\n */\n ResultAggregations.prototype.getAggregation = function (name) {\n return this.aggregations[name] instanceof ResultAggregation_1.ResultAggregation\n ? this.aggregations[name]\n : null;\n };\n /**\n * Has not empty aggregation\n *\n * @param name\n *\n * @returns {boolean}\n */\n ResultAggregations.prototype.hasNotEmptyAggregation = function (name) {\n var aggregation = this.getAggregation(name);\n return (aggregation instanceof ResultAggregation_1.ResultAggregation) &&\n (!aggregation.isEmpty());\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n ResultAggregations.prototype.getTotalElements = function () {\n return this.totalElements;\n };\n /**\n * To array\n *\n * @return {{total_elements?: number, aggregations?: {}}}\n */\n ResultAggregations.prototype.toArray = function () {\n var aggregationCollection = {};\n for (var i in this.aggregations) {\n aggregationCollection[i] = this.aggregations[i].toArray();\n }\n var array = {};\n if (this.totalElements > 0) {\n array.total_elements = this.totalElements;\n }\n if (Object.keys(aggregationCollection).length > 0) {\n array.aggregations = aggregationCollection;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ResultAggregations}\n */\n ResultAggregations.createFromArray = function (array) {\n var aggregations = new ResultAggregations(typeof array.total_elements === \"number\"\n ? array.total_elements\n : 0);\n if (typeof array.aggregations === typeof {}) {\n for (var i in array.aggregations) {\n aggregations.addAggregation(i, ResultAggregation_1.ResultAggregation.createFromArray(array.aggregations[i]));\n }\n }\n return aggregations;\n };\n return ResultAggregations;\n}());\nexports.ResultAggregations = ResultAggregations;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\n/**\n * Transformer\n */\nvar Transformer = /** @class */ (function () {\n function Transformer() {\n this.readTransformers = [];\n this.writeTransformers = [];\n }\n /**\n * Add read transformer\n *\n * @param readTransformer\n */\n Transformer.prototype.addReadTransformer = function (readTransformer) {\n this\n .readTransformers\n .push(readTransformer);\n };\n /**\n * Add write transformer\n *\n * @param writeTransformer\n */\n Transformer.prototype.addWriteTransformer = function (writeTransformer) {\n this\n .writeTransformers\n .push(writeTransformer);\n };\n /**\n * Items to objects\n *\n * @param items\n *\n * @returns {any[]}\n */\n Transformer.prototype.fromItems = function (items) {\n var objects = [];\n for (var i in items) {\n objects.push(this.fromItem(items[i]));\n }\n return objects;\n };\n /**\n * Item to object\n *\n * @param item\n *\n * @returns {any}\n */\n Transformer.prototype.fromItem = function (item) {\n for (var i in this.readTransformers) {\n var transformer = this.readTransformers[i];\n if (transformer.isValidItem(item)) {\n return transformer.fromItem(item);\n }\n }\n return item;\n };\n /**\n * Objects to items\n *\n * @param objects\n *\n * @returns {Item[]}\n */\n Transformer.prototype.toItems = function (objects) {\n var items = [];\n for (var i in objects) {\n var item = this.toItem(objects[i]);\n if (item instanceof Item_1.Item) {\n items.push(item);\n }\n }\n return items;\n };\n /**\n * Object to item\n *\n * @param object\n *\n * @returns {any}\n */\n Transformer.prototype.toItem = function (object) {\n for (var i in this.writeTransformers) {\n var transformer = this.writeTransformers[i];\n if (transformer.isValidObject(object)) {\n return transformer.toItem(object);\n }\n }\n return object;\n };\n /**\n * Objects to items\n *\n * @param objects\n *\n * @returns {ItemUUID[]}\n */\n Transformer.prototype.toItemUUIDs = function (objects) {\n var itemUUIDs = [];\n for (var i in objects) {\n var itemUUID = this.toItemUUID(objects[i]);\n if (itemUUID instanceof ItemUUID_1.ItemUUID) {\n itemUUIDs.push(itemUUID);\n }\n }\n return itemUUIDs;\n };\n /**\n * Object to item\n *\n * @param object\n *\n * @returns {any}\n */\n Transformer.prototype.toItemUUID = function (object) {\n for (var i in this.writeTransformers) {\n var transformer = this.writeTransformers[i];\n if (transformer.isValidObject(object)) {\n return transformer.toItemUUID(object);\n }\n }\n return object;\n };\n return Transformer;\n}());\nexports.Transformer = Transformer;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Apisearch_1 = require(\"./Apisearch\");\nexports[\"default\"] = Apisearch_1[\"default\"];\ntslib_1.__exportStar(require(\"./Cache/InMemoryCache\"), exports);\ntslib_1.__exportStar(require(\"./Config/Config\"), exports);\ntslib_1.__exportStar(require(\"./Config/Synonym\"), exports);\ntslib_1.__exportStar(require(\"./Error/ConnectionError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ErrorWithMessage\"), exports);\ntslib_1.__exportStar(require(\"./Error/EventError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ForbiddenError\"), exports);\ntslib_1.__exportStar(require(\"./Error/InvalidFormatError\"), exports);\ntslib_1.__exportStar(require(\"./Error/InvalidTokenError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ResourceExistsError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ResourceNotAvailableError\"), exports);\ntslib_1.__exportStar(require(\"./Error/UnsupportedContentTypeError\"), exports);\ntslib_1.__exportStar(require(\"./Geo/LocationRange\"), exports);\ntslib_1.__exportStar(require(\"./Http/AxiosClient\"), exports);\ntslib_1.__exportStar(require(\"./Http/Client\"), exports);\ntslib_1.__exportStar(require(\"./Http/HttpClient\"), exports);\ntslib_1.__exportStar(require(\"./Http/Response\"), exports);\ntslib_1.__exportStar(require(\"./Http/Retry\"), exports);\ntslib_1.__exportStar(require(\"./Http/RetryMap\"), exports);\ntslib_1.__exportStar(require(\"./Model/Changes\"), exports);\ntslib_1.__exportStar(require(\"./Model/Coordinate\"), exports);\ntslib_1.__exportStar(require(\"./Model/Item\"), exports);\ntslib_1.__exportStar(require(\"./Model/ItemUUID\"), exports);\ntslib_1.__exportStar(require(\"./Model/Metadata\"), exports);\ntslib_1.__exportStar(require(\"./Model/User\"), exports);\ntslib_1.__exportStar(require(\"./Query/Aggregation\"), exports);\ntslib_1.__exportStar(require(\"./Query/Filter\"), exports);\ntslib_1.__exportStar(require(\"./Query/Query\"), exports);\ntslib_1.__exportStar(require(\"./Query/Range\"), exports);\ntslib_1.__exportStar(require(\"./Query/ScoreStrategies\"), exports);\ntslib_1.__exportStar(require(\"./Query/ScoreStrategy\"), exports);\ntslib_1.__exportStar(require(\"./Query/SortBy\"), exports);\ntslib_1.__exportStar(require(\"./Repository/HttpRepository\"), exports);\ntslib_1.__exportStar(require(\"./Repository/Repository\"), exports);\ntslib_1.__exportStar(require(\"./Result/ResultAggregation\"), exports);\ntslib_1.__exportStar(require(\"./Result/ResultAggregations\"), exports);\ntslib_1.__exportStar(require(\"./Result/Counter\"), exports);\ntslib_1.__exportStar(require(\"./Result/Result\"), exports);\ntslib_1.__exportStar(require(\"./Transformer/Transformer\"), exports);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/apisearch.min.js b/dist/apisearch.min.js index 0ae2213..729dadf 100644 --- a/dist/apisearch.min.js +++ b/dist/apisearch.min.js @@ -1,4 +1,4 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.apisearch=e():t.apisearch=e()}(window,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=38)}([function(t,e,r){"use strict";r.r(e),r.d(e,"__extends",function(){return o}),r.d(e,"__assign",function(){return i}),r.d(e,"__rest",function(){return s}),r.d(e,"__decorate",function(){return a}),r.d(e,"__param",function(){return u}),r.d(e,"__metadata",function(){return c}),r.d(e,"__awaiter",function(){return f}),r.d(e,"__generator",function(){return l}),r.d(e,"__exportStar",function(){return p}),r.d(e,"__values",function(){return d}),r.d(e,"__read",function(){return h}),r.d(e,"__spread",function(){return g}),r.d(e,"__await",function(){return y}),r.d(e,"__asyncGenerator",function(){return _}),r.d(e,"__asyncDelegator",function(){return m}),r.d(e,"__asyncValues",function(){return E}),r.d(e,"__makeTemplateObject",function(){return v}),r.d(e,"__importStar",function(){return T}),r.d(e,"__importDefault",function(){return A}); +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.apisearch=e():t.apisearch=e()}(window,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=38)}([function(t,e,r){"use strict";r.r(e),r.d(e,"__extends",function(){return i}),r.d(e,"__assign",function(){return o}),r.d(e,"__rest",function(){return s}),r.d(e,"__decorate",function(){return a}),r.d(e,"__param",function(){return u}),r.d(e,"__metadata",function(){return c}),r.d(e,"__awaiter",function(){return f}),r.d(e,"__generator",function(){return l}),r.d(e,"__exportStar",function(){return p}),r.d(e,"__values",function(){return d}),r.d(e,"__read",function(){return h}),r.d(e,"__spread",function(){return g}),r.d(e,"__await",function(){return y}),r.d(e,"__asyncGenerator",function(){return _}),r.d(e,"__asyncDelegator",function(){return m}),r.d(e,"__asyncValues",function(){return v}),r.d(e,"__makeTemplateObject",function(){return E}),r.d(e,"__importStar",function(){return T}),r.d(e,"__importDefault",function(){return A}); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use @@ -13,12 +13,12 @@ MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ -var n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)};function o(t,e){function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}var i=function(){return(i=Object.assign||function(t){for(var e,r=1,n=arguments.length;r=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,r,s):o(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s}function u(t,e){return function(r,n){e(r,n,t)}}function c(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function f(t,e,r,n){return new(r||(r=Promise))(function(o,i){function s(t){try{u(n.next(t))}catch(t){i(t)}}function a(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){t.done?o(t.value):new r(function(e){e(t.value)}).then(s,a)}u((n=n.apply(t,e||[])).next())})}function l(t,e){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}}function h(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,i=r.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return s}function g(){for(var t=[],e=0;e1||a(t,e)})})}function a(t,e){try{!function(t){t.value instanceof y?Promise.resolve(t.value.v).then(u,c):f(i[0][2],t)}(o[t](e))}catch(t){f(i[0][3],t)}}function u(t){a("next",t)}function c(t){a("throw",t)}function f(t,e){t(e),i.shift(),i.length&&a(i[0][0],i[0][1])}}function m(t){var e,r;return e={},n("next"),n("throw",function(t){throw t}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(n,o){e[n]=t[n]?function(e){return(r=!r)?{value:y(t[n](e)),done:"return"===n}:o?o(e):e}:o}}function E(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,r=t[Symbol.asyncIterator];return r?r.call(t):(t=d(t),e={},n("next"),n("throw"),n("return"),e[Symbol.asyncIterator]=function(){return this},e);function n(r){e[r]=t[r]&&function(e){return new Promise(function(n,o){(function(t,e,r,n){Promise.resolve(n).then(function(e){t({value:e,done:r})},e)})(n,o,(e=t[r](e)).done,e.value)})}}}function v(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function T(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function A(t){return t&&t.__esModule?t:{default:t}}},function(t,e,r){"use strict";var n=r(15),o=r(43),i=Object.prototype.toString;function s(t){return"[object Array]"===i.call(t)}function a(t){return null!==t&&"object"==typeof t}function u(t){return"[object Function]"===i.call(t)}function c(t,e){if(null!==t&&void 0!==t)if("object"!=typeof t&&(t=[t]),s(t))for(var r=0,n=t.length;r0||Object.keys(this.values).length>0)&&(t.values=this.values),this.applicationType!=e.FILTER_AT_LEAST_ONE&&(t.application_type=this.applicationType),this.filterType!=e.FILTER_TYPE_FIELD&&(t.filter_type=this.filterType),this.filterTerms.length>0&&(t.filter_terms=this.filterTerms),t},t.createFromArray=function(r){return void 0===(r=JSON.parse(JSON.stringify(r))).field&&(r.field="uuid.type"),void 0===r.values&&(r.values=[]),void 0===r.application_type&&(r.application_type=e.FILTER_AT_LEAST_ONE),void 0===r.filter_type&&(r.filter_type=e.FILTER_TYPE_FIELD),void 0===r.filter_terms&&(r.filter_terms=[]),t.create(r.field,r.values,r.application_type,r.filter_type,r.filter_terms)},t}();e.Filter=n},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=r(2),i=r(7),s=r(8),a=function(){function t(t,e,r,n,o,i,s){this.metadata={},this.indexedMetadata={},this.searchableMetadata={},this.exactMatchingMetadata=[],this.suggest=[],this.highlights={},this.promoted=!1,this.uuid=t,this.coordinate=e,this.metadata=r,this.indexedMetadata=n,this.searchableMetadata=o,this.exactMatchingMetadata=i,this.suggest=s}return t.create=function(e,r,n,o,i,s){return void 0===r&&(r={}),void 0===n&&(n={}),void 0===o&&(o={}),void 0===i&&(i=[]),void 0===s&&(s=[]),new t(e,null,r,n,o,i,s)},t.createLocated=function(e,r,n,o,i,s,a){return void 0===n&&(n={}),void 0===o&&(o={}),void 0===i&&(i={}),void 0===s&&(s=[]),void 0===a&&(a=[]),new t(e,r,n,o,i,s,a)},t.prototype.getUUID=function(){return this.uuid},t.prototype.getId=function(){return this.uuid.getId()},t.prototype.getType=function(){return this.uuid.getType()},t.prototype.getCoordinate=function(){return this.coordinate},t.prototype.getDistance=function(){return this.distance},t.prototype.getMetadata=function(){return this.metadata},t.prototype.setMetadata=function(t){this.metadata=t},t.prototype.addMetadata=function(t,e){this.metadata[t]=e},t.prototype.getIndexedMetadata=function(){return this.indexedMetadata},t.prototype.setIndexedMetadata=function(t){this.indexedMetadata=t},t.prototype.addIndexedMetadata=function(t,e){this.indexedMetadata[t]=e},t.prototype.getSearchableMetadata=function(){return this.searchableMetadata},t.prototype.setSearchableMetadata=function(t){this.searchableMetadata=t},t.prototype.addSearchableMetadata=function(t,e){this.searchableMetadata[t]=e},t.prototype.getExactMatchingMetadata=function(){return this.exactMatchingMetadata},t.prototype.setExactMatchingMetadata=function(t){this.exactMatchingMetadata=t},t.prototype.addExactMatchingMetadata=function(t){this.exactMatchingMetadata.push(t)},t.prototype.getAllMetadata=function(){return n.__assign({},this.metadata,this.indexedMetadata)},t.prototype.get=function(t){var e=this.getAllMetadata();return void 0!==e[t]?e[t]:null},t.prototype.getSuggest=function(){return this.suggest},t.prototype.getHighlights=function(){return this.highlights},t.prototype.getHighlight=function(t){return void 0!==this.highlights[t]?this.highlights[t]:null},t.prototype.isPromoted=function(){return this.promoted},t.prototype.setScore=function(t){return this.score=t,this},t.prototype.getScore=function(){return this.score},t.prototype.toArray=function(){var t={uuid:this.uuid.toArray()};return this.coordinate instanceof i.Coordinate&&(t.coordinate=this.coordinate.toArray()),Object.keys(this.metadata).length>0&&(t.metadata=this.metadata),Object.keys(this.indexedMetadata).length>0&&(t.indexed_metadata=this.indexedMetadata),Object.keys(this.searchableMetadata).length>0&&(t.searchable_metadata=this.searchableMetadata),this.exactMatchingMetadata.length>0&&(t.exact_matching_metadata=this.exactMatchingMetadata),this.suggest.length>0&&(t.suggest=this.suggest),Object.keys(this.highlights).length>0&&(t.highlights=this.highlights),this.isPromoted()&&(t.is_promoted=!0),void 0!==this.distance&&(t.distance=this.distance),void 0!==this.score&&(t.score=this.score),t},t.createFromArray=function(e){if("object"!=typeof(e=JSON.parse(JSON.stringify(e))).uuid)throw o.InvalidFormatError.itemUUIDRepresentationNotValid();if(void 0!==e.coordinate&&"object"!=typeof e.coordinate)throw o.InvalidFormatError.coordinateFormatNotValid();var r="object"==typeof e.coordinate&&null!=e.coordinate?t.createLocated(s.ItemUUID.createFromArray(e.uuid),i.Coordinate.createFromArray(e.coordinate),void 0===e.metadata?{}:e.metadata,void 0===e.indexed_metadata?{}:e.indexed_metadata,void 0===e.searchable_metadata?{}:e.searchable_metadata,void 0===e.exact_matching_metadata?[]:e.exact_matching_metadata,void 0===e.suggest?[]:e.suggest):t.create(s.ItemUUID.createFromArray(e.uuid),void 0===e.metadata?{}:e.metadata,void 0===e.indexed_metadata?{}:e.indexed_metadata,void 0===e.searchable_metadata?{}:e.searchable_metadata,void 0===e.exact_matching_metadata?[]:e.exact_matching_metadata,void 0===e.suggest?[]:e.suggest);return void 0!==e.distance&&null!=e.distance&&(r.distance=e.distance),"object"==typeof e.highlights&&null!=e.distance&&(r.highlights=e.highlights),void 0!==e.is_promoted&&null!=e.is_promoted&&(r.promoted=e.is_promoted),void 0!==e.score&&null!=e.score&&(r.score=e.score),r},t.prototype.composeUUID=function(){return this.uuid.composedUUID()},t.getPathByField=function(t){return["id","type"].indexOf(t)>-1?"uuid."+t:"indexed_metadata."+t},t}();e.Item=a},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=r(7),i=r(8),s=r(5),a=r(24),u=r(10),c=r(4),f=r(4),l=r(10),p=r(2),d=r(4),h=r(25),g=r(11);e.QUERY_DEFAULT_FROM=0,e.QUERY_DEFAULT_PAGE=1,e.QUERY_DEFAULT_SIZE=10,e.QUERY_INFINITE_SIZE=1e3,e.NO_MIN_SCORE=0;var y=function(){function t(t){this.fields=[],this.universeFilters={},this.filters={},this.itemsPromoted=[],this.aggregations={},this.resultsEnabled=!0,this.aggregationsEnabled=!0,this.suggestionsEnabled=!1,this.highlightsEnabled=!1,this.filterFields=[],this.minScore=e.NO_MIN_SCORE,this.sortByInstance=g.SortBy.create(),this.filters._query=c.Filter.create("",[t],0,d.FILTER_TYPE_QUERY)}return t.createLocated=function(r,n,o,i){void 0===o&&(o=e.QUERY_DEFAULT_PAGE),void 0===i&&(i=e.QUERY_DEFAULT_SIZE);var s=t.create(n,o,i);return s.coordinate=r,s},t.create=function(r,n,o){void 0===n&&(n=e.QUERY_DEFAULT_PAGE),void 0===o&&(o=e.QUERY_DEFAULT_SIZE),n=Math.max(1,n);var i=new t(r);return i.from=(n-1)*o,i.size=o,i.page=n,i},t.createMatchAll=function(){return t.create("",e.QUERY_DEFAULT_PAGE,e.QUERY_DEFAULT_SIZE)},t.createByUUID=function(e){return t.createByUUIDs(e)},t.createByUUIDs=function(){for(var r=[],n=0;n0?this.universeFilters=n.__assign({},this.universeFilters,((e={}).type=c.Filter.create(r,t,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD),e)):delete this.universeFilters.type,this},t.prototype.filterByTypes=function(t,e,r){var o,i;void 0===e&&(e=!0),void 0===r&&(r=l.AGGREGATION_SORT_BY_COUNT_DESC);var a=s.Item.getPathByField("type");return t.length>0?this.filters=n.__assign({},this.filters,((o={}).type=c.Filter.create(a,t,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD),o)):delete this.filters.type,e&&(this.aggregations=n.__assign({},this.aggregations,((i={}).type=u.Aggregation.create("type",a,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD,[],r),i))),this},t.prototype.filterUniverseByIds=function(t){var e,r=s.Item.getPathByField("id");return t.length>0?this.universeFilters=n.__assign({},this.universeFilters,((e={}).id=c.Filter.create(r,t,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD),e)):delete this.universeFilters.id,this},t.prototype.filterByIds=function(t){var e,r=s.Item.getPathByField("id");return t.length>0?this.filters=n.__assign({},this.filters,((e={}).id=c.Filter.create(r,t,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD),e)):delete this.filters.id,this},t.prototype.filterUniverseBy=function(t,e,r){var o;void 0===r&&(r=f.FILTER_AT_LEAST_ONE);var i=s.Item.getPathByField(t);return e.length>0?this.universeFilters=n.__assign({},this.universeFilters,((o={})[t]=c.Filter.create(i,e,r,f.FILTER_TYPE_FIELD),o)):delete this.universeFilters[t],this},t.prototype.filterBy=function(t,e,r,o,i,a){var u;void 0===o&&(o=f.FILTER_AT_LEAST_ONE),void 0===i&&(i=!0),void 0===a&&(a=l.AGGREGATION_SORT_BY_COUNT_DESC);var p=s.Item.getPathByField(e);return r.length>0?this.filters=n.__assign({},this.filters,((u={})[t]=c.Filter.create(p,r,o,f.FILTER_TYPE_FIELD),u)):delete this.filters[t],i&&this.aggregateBy(t,e,o,a),this},t.prototype.filterUniverseByRange=function(t,e,r,o){var i;void 0===r&&(r=f.FILTER_AT_LEAST_ONE),void 0===o&&(o=f.FILTER_TYPE_RANGE);var a=s.Item.getPathByField(t);return e.length>0?this.universeFilters=n.__assign({},this.universeFilters,((i={})[t]=c.Filter.create(a,e,r,o),i)):delete this.universeFilters[t],this},t.prototype.filterUniverseByDateRange=function(t,e,r){return void 0===r&&(r=f.FILTER_AT_LEAST_ONE),this.filterUniverseByRange(t,e,r,f.FILTER_TYPE_DATE_RANGE)},t.prototype.filterByRange=function(t,e,r,o,i,a,u,p){var d;void 0===i&&(i=f.FILTER_AT_LEAST_ONE),void 0===a&&(a=f.FILTER_TYPE_RANGE),void 0===u&&(u=!0),void 0===p&&(p=l.AGGREGATION_SORT_BY_COUNT_DESC);var h=s.Item.getPathByField(e);return 0!==o.length?this.filters=n.__assign({},this.filters,((d={})[t]=c.Filter.create(h,o,i,a),d)):delete this.filters[t],u&&this.aggregateByRange(t,h,r,i,a,p),this},t.prototype.filterByDateRange=function(t,e,r,n,o,i,s){return void 0===o&&(o=f.FILTER_AT_LEAST_ONE),void 0===i&&(i=!0),void 0===s&&(s=l.AGGREGATION_SORT_BY_COUNT_DESC),this.filterByRange(t,e,r,n,o,f.FILTER_TYPE_DATE_RANGE,i,s)},t.prototype.filterUniverseByLocation=function(t){var e;return this.universeFilters=n.__assign({},this.universeFilters,((e={}).coordinate=c.Filter.create("coordinate",t.toArray(),f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_GEO),e)),this},t.prototype.setFilterFields=function(t){return this.filterFields=t,this},t.prototype.getFilterFields=function(){return this.filterFields},t.prototype.sortBy=function(t){if(t.isSortedByGeoDistance()){if(!(this.coordinate instanceof o.Coordinate))throw p.InvalidFormatError.querySortedByDistanceWithoutCoordinate();t.setCoordinate(this.coordinate)}return this.sortByInstance=t,this},t.prototype.aggregateBy=function(t,e,r,o,i){var a;return void 0===o&&(o=l.AGGREGATION_SORT_BY_COUNT_DESC),void 0===i&&(i=l.AGGREGATION_NO_LIMIT),this.aggregations=n.__assign({},this.aggregations,((a={})[t]=u.Aggregation.create(t,s.Item.getPathByField(e),r,f.FILTER_TYPE_FIELD,[],o,i),a)),this},t.prototype.aggregateByRange=function(t,e,r,o,i,a,c){var p;return void 0===i&&(i=f.FILTER_TYPE_RANGE),void 0===a&&(a=l.AGGREGATION_SORT_BY_COUNT_DESC),void 0===c&&(c=l.AGGREGATION_NO_LIMIT),0===r.length?this:(this.aggregations=n.__assign({},this.aggregations,((p={})[t]=u.Aggregation.create(t,s.Item.getPathByField(e),o,i,r,a,c),p)),this)},t.prototype.aggregateByDateRange=function(t,e,r,n,o,i){return void 0===o&&(o=l.AGGREGATION_SORT_BY_COUNT_DESC),void 0===i&&(i=l.AGGREGATION_NO_LIMIT),this.aggregateByRange(t,e,r,n,f.FILTER_TYPE_DATE_RANGE,o,i)},t.prototype.getAggregations=function(){return this.aggregations},t.prototype.getAggregation=function(t){return this.aggregations[t]instanceof u.Aggregation?this.aggregations[t]:null},t.prototype.getQueryText=function(){var t=this.filters._query;return t instanceof c.Filter?t.getValues()[0]:""},t.prototype.getUniverseFilters=function(){return this.universeFilters},t.prototype.getUniverseFilter=function(t){return this.universeFilters[t]instanceof c.Filter?this.universeFilters[t]:null},t.prototype.getFilters=function(){return this.filters},t.prototype.getFilter=function(t){return this.filters[t]instanceof c.Filter?this.filters[t]:null},t.prototype.getFilterByField=function(t){var e=s.Item.getPathByField(t);for(var r in this.filters)if(this.filters[r].getField()==e)return this.filters[r];return null},t.prototype.getSortBy=function(){return this.sortByInstance},t.prototype.getFrom=function(){return this.from},t.prototype.getSize=function(){return this.size},t.prototype.getPage=function(){return this.page},t.prototype.enableResults=function(){return this.resultsEnabled=!0,this},t.prototype.disableResults=function(){return this.resultsEnabled=!1,this},t.prototype.areResultsEnabled=function(){return this.resultsEnabled},t.prototype.enableAggregations=function(){return this.aggregationsEnabled=!0,this},t.prototype.disableAggregations=function(){return this.aggregationsEnabled=!1,this},t.prototype.areAggregationsEnabled=function(){return this.aggregationsEnabled},t.prototype.enableSuggestions=function(){return this.suggestionsEnabled=!0,this},t.prototype.disableSuggestions=function(){return this.suggestionsEnabled=!1,this},t.prototype.areSuggestionsEnabled=function(){return this.suggestionsEnabled},t.prototype.enableHighlights=function(){return this.highlightsEnabled=!0,this},t.prototype.disableHighlights=function(){return this.highlightsEnabled=!1,this},t.prototype.areHighlightsEnabled=function(){return this.highlightsEnabled},t.prototype.promoteUUID=function(t){return this.itemsPromoted.push(t),this},t.prototype.promoteUUIDs=function(){for(var t=[],e=0;e0&&(t.fields=this.fields),Object.keys(this.universeFilters).length)for(var r in t.universe_filters={},this.universeFilters){var n=this.universeFilters[r];t.universe_filters[r]=n.toArray()}if(this.filters instanceof Object&&Object.keys(this.filters).length)for(var r in t.filters={},this.filters){var i=this.filters[r];i.getFilterType()!==d.FILTER_TYPE_QUERY&&(t.filters[r]=i.toArray())}if(this.aggregations instanceof Object&&Object.keys(this.aggregations).length)for(var r in t.aggregations={},this.aggregations){var s=this.aggregations[r];t.aggregations[r]=s.toArray()}var u=this.sortByInstance.toArray();Object.keys(u).length&&(t.sort=u);var c=this.page;c!==e.QUERY_DEFAULT_PAGE&&(t.page=c);var f=this.size;if(f!==e.QUERY_DEFAULT_SIZE&&(t.size=f),!1===this.resultsEnabled&&(t.results_enabled=!1),!0===this.suggestionsEnabled&&(t.suggestions_enabled=!0),!0===this.highlightsEnabled&&(t.highlights_enabled=!0),!1===this.aggregationsEnabled&&(t.aggregations_enabled=!1),this.filterFields instanceof Array&&this.filterFields.length>0&&(t.filter_fields=this.filterFields),this.scoreStrategies instanceof h.ScoreStrategies){var l=this.scoreStrategies.toArray();Object.keys(l).length>0&&(t.score_strategies=l)}null!==this.fuzziness&&(t.fuzziness=this.fuzziness);var p=this.minScore;if(p!==e.NO_MIN_SCORE&&(t.min_score=p),this.user instanceof a.User){var g=this.user.toArray();Object.keys(g).length>0&&(t.user=g)}if(this.itemsPromoted.length>0)for(var r in t.items_promoted=[],this.itemsPromoted)t.items_promoted.push(this.itemsPromoted[r].toArray());return t},t.createFromArray=function(r){var n=r.coordinate instanceof Object?t.createLocated(o.Coordinate.createFromArray(r.coordinate),r.q?r.q:"",r.page?r.page:e.QUERY_DEFAULT_PAGE,r.size?r.size:e.QUERY_DEFAULT_SIZE):t.create(r.q?r.q:"",r.page?r.page:e.QUERY_DEFAULT_PAGE,r.size?r.size:e.QUERY_DEFAULT_SIZE);n.fields=r.fields instanceof Array?r.fields:[];var s=typeof r.aggregations==typeof{}?r.aggregations:{};for(var f in s)n.aggregations[f]=u.Aggregation.createFromArray(s[f]);var l=typeof r.sort==typeof{}?r.sort:{};Object.keys(l).length>0&&(n.sortByInstance=g.SortBy.createFromArray(l));var p=typeof r.filters==typeof{}?r.filters:{};for(var f in p)n.filters[f]=c.Filter.createFromArray(p[f]);var d=typeof r.universe_filters==typeof{}?r.universe_filters:{};for(var f in d)n.universeFilters[f]=c.Filter.createFromArray(d[f]);n.resultsEnabled="boolean"!=typeof r.results_enabled||r.results_enabled,n.suggestionsEnabled="boolean"==typeof r.suggestions_enabled&&r.suggestions_enabled,n.aggregationsEnabled="boolean"!=typeof r.aggregations_enabled||r.aggregations_enabled,n.highlightsEnabled="boolean"==typeof r.highlights_enabled&&r.highlights_enabled,n.fuzziness=r.fuzziness,n.minScore=r.min_score?r.min_score:e.NO_MIN_SCORE;var y=typeof r.items_promoted==typeof{}?r.items_promoted:{};for(var f in y)n.itemsPromoted.push(i.ItemUUID.createFromArray(y[f]));return n.filterFields=r.filter_fields instanceof Array?r.filter_fields:[],n.scoreStrategies=r.score_strategies instanceof Object?h.ScoreStrategies.createFromArray(r.score_strategies):null,n.user=r.user instanceof Object?a.User.createFromArray(r.user):null,n},t}();e.Query=y},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),o=function(){function t(t,e){this.lat=t,this.lon=e}return t.prototype.getLatitude=function(){return this.lat},t.prototype.getLongitude=function(){return this.lon},t.prototype.toArray=function(){return{lat:this.lat,lon:this.lon}},t.createFromArray=function(e){if(void 0===e.lat||void 0===e.lon)throw n.InvalidFormatError.coordinateFormatNotValid();return new t(e.lat,e.lon)},t}();e.Coordinate=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),o=function(){function t(t,e){this.id=t,this.type=e}return t.createByComposedUUID=function(e){var r=e.split("~");if(2!=r.length)throw n.InvalidFormatError.composedItemUUIDNotValid();return new t(r[0],r[1])},t.prototype.getId=function(){return this.id},t.prototype.getType=function(){return this.type},t.prototype.toArray=function(){return{id:this.id,type:this.type}},t.createFromArray=function(e){return new t((e=JSON.parse(JSON.stringify(e))).id,e.type)},t.prototype.composedUUID=function(){return this.id+"~"+this.type},t}();e.ItemUUID=o},function(t,e,r){"use strict";(function(e){var n=r(1),o=r(46),i={"Content-Type":"application/x-www-form-urlencoded"};function s(t,e){!n.isUndefined(t)&&n.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var a={adapter:function(){var t;return"undefined"!=typeof XMLHttpRequest?t=r(16):void 0!==e&&(t=r(16)),t}(),transformRequest:[function(t,e){return o(e,"Content-Type"),n.isFormData(t)||n.isArrayBuffer(t)||n.isBuffer(t)||n.isStream(t)||n.isFile(t)||n.isBlob(t)?t:n.isArrayBufferView(t)?t.buffer:n.isURLSearchParams(t)?(s(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):n.isObject(t)?(s(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};n.forEach(["delete","get","head"],function(t){a.headers[t]={}}),n.forEach(["post","put","patch"],function(t){a.headers[t]=n.merge(i)}),t.exports=a}).call(this,r(45))},function(t,e,r){"use strict";e.__esModule=!0;var n=r(4);e.AGGREGATION_SORT_BY_COUNT_ASC=["_count","asc"],e.AGGREGATION_SORT_BY_COUNT_DESC=["_count","desc"],e.AGGREGATION_SORT_BY_NAME_ASC=["_term","asc"],e.AGGREGATION_SORT_BY_NAME_DESC=["_term","desc"],e.AGGREGATION_NO_LIMIT=0;var o=function(){function t(t,e,r,n,o,i,s){this.subgroup=[],this.name=t,this.field=e,this.applicationType=r,this.filterType=n,this.subgroup=o,this.sort=i,this.limit=s}return t.prototype.getName=function(){return this.name},t.prototype.getField=function(){return this.field},t.prototype.getApplicationType=function(){return this.applicationType},t.prototype.getFilterType=function(){return this.filterType},t.prototype.getSubgroup=function(){return this.subgroup},t.prototype.getSort=function(){return this.sort},t.prototype.getLimit=function(){return this.limit},t.create=function(r,n,o,i,s,a,u){return void 0===s&&(s=[]),void 0===a&&(a=e.AGGREGATION_SORT_BY_COUNT_DESC),void 0===u&&(u=e.AGGREGATION_NO_LIMIT),new t(r,n,o,i,s,a,u)},t.prototype.toArray=function(){var t={name:this.name};return"uuid.type"!=this.field&&(t.field=this.field),this.applicationType!=n.FILTER_AT_LEAST_ONE&&(t.application_type=this.applicationType),this.filterType!=n.FILTER_TYPE_FIELD&&(t.filter_type=this.filterType),this.subgroup.length>0&&(t.subgroup=this.subgroup),JSON.stringify(this.sort)!==JSON.stringify(e.AGGREGATION_SORT_BY_COUNT_DESC)&&(t.sort=this.sort),this.limit!=e.AGGREGATION_NO_LIMIT&&(t.limit=this.limit),t},t.createFromArray=function(r){return void 0===(r=JSON.parse(JSON.stringify(r))).field&&(r.field="uuid.type"),void 0===r.application_type&&(r.application_type=n.FILTER_AT_LEAST_ONE),void 0===r.filter_type&&(r.filter_type=n.FILTER_TYPE_FIELD),void 0===r.subgroup&&(r.subgroup=[]),void 0===r.sort&&(r.sort=e.AGGREGATION_SORT_BY_COUNT_DESC),void 0===r.limit&&(r.limit=e.AGGREGATION_NO_LIMIT),t.create(r.name,r.field,r.application_type,r.filter_type,r.subgroup,r.sort,r.limit)},t}();e.Aggregation=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(5);e.SORT_BY_TYPE_FIELD="field",e.SORT_BY_TYPE_NESTED="nested",e.SORT_BY_TYPE_SCORE="score",e.SORT_BY_TYPE_DISTANCE="distance",e.SORT_BY_TYPE_FUNCTION="function",e.SORT_BY_TYPE_RANDOM="random",e.SORT_BY_ASC="asc",e.SORT_BY_DESC="desc",e.SORT_BY_MODE_AVG="avg",e.SORT_BY_MODE_SUM="sum",e.SORT_BY_MODE_MIN="min",e.SORT_BY_MODE_MAX="max",e.SORT_BY_MODE_MEDIAN="median",e.SORT_BY_SCORE={type:e.SORT_BY_TYPE_SCORE},e.SORT_BY_RANDOM={type:e.SORT_BY_TYPE_RANDOM},e.SORT_BY_AL_TUN_TUN=e.SORT_BY_RANDOM,e.SORT_BY_ID_ASC={field:"uuid.id",order:e.SORT_BY_ASC},e.SORT_BY_ID_DESC={field:"uuid.id",order:e.SORT_BY_DESC},e.SORT_BY_TYPE_ASC={field:"uuid.type",order:e.SORT_BY_ASC},e.SORT_BY_TYPE_DESC={field:"uuid.type",order:e.SORT_BY_DESC},e.SORT_BY_LOCATION_KM_ASC={type:e.SORT_BY_TYPE_DISTANCE,unit:"km"},e.SORT_BY_LOCATION_MI_ASC={type:e.SORT_BY_TYPE_DISTANCE,unit:"mi"};var o=r(7),i=r(4),s=function(){function t(){this.sortsBy=[]}return t.create=function(){return new t},t.byFieldsValues=function(e){var r=t.create();for(var n in e)r.byFieldValue(n,e[n]);return r},t.prototype.all=function(){return this.sortsBy.length>0?this.sortsBy:[e.SORT_BY_SCORE]},t.prototype.byValue=function(t){return e.SORT_BY_SCORE!=t&&e.SORT_BY_RANDOM!=t&&void 0===t.type&&(t.type=e.SORT_BY_TYPE_FIELD),e.SORT_BY_SCORE!=t&&this.sortsBy.push(t),this},t.prototype.byFieldValue=function(t,r){return this.sortsBy.push({type:e.SORT_BY_TYPE_FIELD,field:n.Item.getPathByField(t),order:r}),this},t.prototype.byNestedField=function(t,r,n){return void 0===n&&(n=e.SORT_BY_MODE_AVG),this.sortsBy.push({type:e.SORT_BY_TYPE_NESTED,mode:n,field:"indexed_metadata."+t,order:r}),this},t.prototype.byNestedFieldAndFilter=function(t,r,o,s){void 0===s&&(s=e.SORT_BY_MODE_AVG);var a=n.Item.getPathByField(o.getField()),u=o.toArray();return u.field=a,o=i.Filter.createFromArray(u),this.sortsBy.push({type:e.SORT_BY_TYPE_NESTED,mode:s,filter:o,field:"indexed_metadata."+t,order:r}),this},t.prototype.byFunction=function(t,r){return this.sortsBy.push({type:e.SORT_BY_TYPE_FUNCTION,function:t,order:r}),this},t.prototype.isSortedByGeoDistance=function(){for(var t in this.sortsBy)if(this.sortsBy[t].type===e.SORT_BY_TYPE_DISTANCE)return!0;return!1},t.prototype.setCoordinate=function(t){for(var r in this.sortsBy)this.sortsBy[r].type===e.SORT_BY_TYPE_DISTANCE&&(this.sortsBy[r].coordinate=t);return this},t.prototype.hasRandomSort=function(){for(var t in this.sortsBy)if(this.sortsBy[t].type===e.SORT_BY_TYPE_RANDOM)return!0;return!1},t.prototype.toArray=function(){var t=this.copy().sortsBy;for(var e in t)typeof t[e].filter==typeof{}&&null!=t[e].filter&&(t[e].filter=t[e].filter.toArray()),null!==t[e].coordinate&&t[e].coordinate instanceof o.Coordinate&&(t[e].coordinate=t[e].coordinate.toArray());return t},t.createFromArray=function(r){var n=JSON.parse(JSON.stringify(r)),s=t.create();for(var a in n){var u=n[a];void 0===u.type&&(u.type=e.SORT_BY_TYPE_FIELD),typeof u.filter==typeof{}&&null!=u.filter&&(u.filter=i.Filter.createFromArray(u.filter)),null!=u.coordinate&&typeof u.coordinate==typeof{}&&(u.coordinate=o.Coordinate.createFromArray(u.coordinate)),s.sortsBy.push(u)}return s},t.prototype.copy=function(){var e=t.create();for(var r in this.sortsBy){var n=this.sortsBy[r],s=JSON.parse(JSON.stringify(n));typeof n.filter==typeof{}&&null!=n.filter&&(s.filter=i.Filter.createFromArray(n.filter.toArray())),null!=n.coordinate&&typeof n.coordinate==typeof{}&&(s.coordinate=o.Coordinate.createFromArray(n.coordinate.toArray())),e.sortsBy.push(s)}return e},t}();e.SortBy=s},function(t,e,r){"use strict";e.__esModule=!0;var n=r(5),o=r(6),i=r(13),s=function(){function t(t,e,r){this.items=[],this.suggests=[],this.query=t,this.totalItems=e,this.totalHits=r}return t.create=function(e,r,n,o,i,s){var a=new t(e,r,n);return a.aggregations=o,a.suggests=i,a.items=s,a},t.prototype.addItem=function(t){this.items.push(t)},t.prototype.getItems=function(){return this.items},t.prototype.getItemsGroupedByTypes=function(){if(this.itemsGroupedByTypeCache instanceof Object&&Object.keys(this.itemsGroupedByTypeCache).length>0)return this.itemsGroupedByTypeCache;var t={};for(var e in this.items){var r=this.items[e];t[r.getType()]instanceof Array||(t[r.getType()]=[]),t[r.getType()].push(r)}return this.itemsGroupedByTypeCache=t,t},t.prototype.getItemsByType=function(t){var e=this.getItemsGroupedByTypes();return null==e[t]?[]:e[t]},t.prototype.getItemsByTypes=function(t){return this.items.filter(function(e){return t.indexOf(e.getType())>=0})},t.prototype.getFirstItem=function(){return this.items.length>0?this.items[0]:null},t.prototype.setAggregations=function(t){this.aggregations=t},t.prototype.getAggregations=function(){return this.aggregations instanceof i.ResultAggregations?this.aggregations:null},t.prototype.getAggregation=function(t){return null==this.aggregations?null:this.aggregations.getAggregation(t)},t.prototype.hasNotEmptyAggregation=function(t){return null!=this.aggregations&&this.aggregations.hasNotEmptyAggregation(t)},t.prototype.addSuggest=function(t){this.suggests.push(t)},t.prototype.getSuggests=function(){return this.suggests},t.prototype.getQuery=function(){return this.query},t.prototype.getTotalItems=function(){return this.totalItems},t.prototype.getTotalHits=function(){return this.totalHits},t.prototype.toArray=function(){return{query:this.query.toArray(),total_items:this.totalItems,total_hits:this.totalHits,items:this.items.map(function(t){return t.toArray()}),aggregations:null==this.aggregations?null:this.aggregations.toArray(),suggests:this.suggests}},t.createFromArray=function(e){return t.create(o.Query.createFromArray(e.query),e.total_items?e.total_items:0,e.total_hits?e.total_hits:0,e.aggregations instanceof Object?i.ResultAggregations.createFromArray(e.aggregations):null,e.suggests?e.suggests:null,e.items instanceof Array?e.items.map(function(t){return n.Item.createFromArray(t)}):[])},t}();e.Result=s},function(t,e,r){"use strict";e.__esModule=!0;var n=r(32),o=function(){function t(t){this.aggregations={},this.totalElements=t}return t.prototype.addAggregation=function(t,e){this.aggregations[t]=e},t.prototype.getAggregations=function(){return this.aggregations},t.prototype.getAggregation=function(t){return this.aggregations[t]instanceof n.ResultAggregation?this.aggregations[t]:null},t.prototype.hasNotEmptyAggregation=function(t){var e=this.getAggregation(t);return e instanceof n.ResultAggregation&&!e.isEmpty()},t.prototype.getTotalElements=function(){return this.totalElements},t.prototype.toArray=function(){var t={};for(var e in this.aggregations)t[e]=this.aggregations[e].toArray();var r={};return this.totalElements>0&&(r.total_elements=this.totalElements),Object.keys(t).length>0&&(r.aggregations=t),r},t.createFromArray=function(e){var r=new t("number"==typeof e.total_elements?e.total_elements:0);if(typeof e.aggregations==typeof{})for(var o in e.aggregations)r.addAggregation(o,n.ResultAggregation.createFromArray(e.aggregations[o]));return r},t}();e.ResultAggregations=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=r(41),i=r(20),s=r(21),a=function(t){function e(e,r,n,o,i,s){var a=t.call(this,r,o)||this;return a.host=e,a.timeout=n,a.cache=s,a.overrideQueries=i,a.cancelToken={},a}return n.__extends(e,t),e.prototype.get=function(t,e,r,a,u){return void 0===a&&(a={}),void 0===u&&(u={}),n.__awaiter(this,void 0,void 0,function(){var c,f=this;return n.__generator(this,function(l){return c=this,t=t.replace(/^\/*|\/*$/g,""),t="/"+(this.version+"/"+t).replace(/^\/*|\/*$/g,""),"get"===(e=e.toLowerCase())&&this.overrideQueries&&this.abort(t),[2,new Promise(function(l,p){var d="get"==e?{}:{"Content-Encoding":"gzip","Content-Type":"application/json"},h={url:t+"?"+i.Client.objectToUrlParameters(n.__assign({},r,a)),data:u,headers:d,method:e,baseURL:c.host.replace(/\/*$/g,""),timeout:c.timeout,transformRequest:[function(t){return JSON.stringify(t)}]};void 0!==f.cancelToken[t]&&(h.cancelToken=f.cancelToken[t].token),o.default.request(h).then(function(t){var e=new s.Response(t.status,t.data);return l(e)}).catch(function(t){if(void 0!==t.response){var e=new s.Response(t.response.status,t.response.data);return p(e)}})})]})})},e.prototype.abort=function(t){void 0!==this.cancelToken[t]&&this.cancelToken[t].cancel(),this.generateCancelToken(t)},e.prototype.generateCancelToken=function(t){this.cancelToken[t]=o.default.CancelToken.source()},e}(i.Client);e.AxiosClient=a},function(t,e,r){"use strict";t.exports=function(t,e){return function(){for(var r=new Array(arguments.length),n=0;n0&&(t.attributes=this.attributes),t},t.createFromArray=function(e){if(null==e||void 0===e.id||null==e.id)throw n.InvalidFormatError.userFormatNotValid();var r=typeof e.attributes==typeof{}?e.attributes:{};return new t(e.id,r)},t}();e.User=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(26);e.MULTIPLY="multiply",e.SUM="sum",e.AVG="avg",e.MAX="max",e.MIN="min";var o=function(){function t(){this.scoreStrategies=[]}return t.createEmpty=function(r){void 0===r&&(r=e.SUM);var n=new t;return n.scoreMode=r,n},t.prototype.addScoreStrategy=function(t){return this.scoreStrategies.push(t),this},t.prototype.getScoreStrategies=function(){return this.scoreStrategies},t.prototype.getScoreMode=function(){return this.scoreMode},t.prototype.toArray=function(){var t=[];for(var e in this.scoreStrategies)t.push(this.scoreStrategies[e].toArray());return{score_mode:this.scoreMode,score_strategies:t}},t.createFromArray=function(e){var r=void 0!==(e=JSON.parse(JSON.stringify(e))).score_mode?t.createEmpty(e.score_mode):t.createEmpty();for(var o in r.scoreStrategies=[],e.score_strategies)r.scoreStrategies.push(n.ScoreStrategy.createFromArray(e.score_strategies[o]));return r},t}();e.ScoreStrategies=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(5),o=r(4);e.DEFAULT_TYPE="default",e.DEFAULT_WEIGHT=1,e.BOOSTING_FIELD_VALUE="field_value",e.CUSTOM_FUNCTION="custom_function",e.DECAY="decay",e.DECAY_LINEAR="linear",e.DECAY_EXP="exp",e.DECAY_GAUSS="gauss",e.MODIFIER_NONE="none",e.MODIFIER_SQRT="sqrt",e.MODIFIER_LOG="log",e.MODIFIER_LN="ln",e.MODIFIER_SQUARE="square",e.SCORE_MODE_NONE="none",e.SCORE_MODE_SUM="sum",e.SCORE_MODE_AVG="avg",e.SCORE_MODE_MAX="max",e.SCORE_MODE_MIN="min",e.DEFAULT_MISSING=1,e.DEFAULT_FACTOR=1;var i=function(){function t(){this.type=e.DEFAULT_TYPE,this.filter=null,this.weight=e.DEFAULT_WEIGHT,this.scoreMode=e.SCORE_MODE_AVG,this.configuration={}}return t.prototype.getType=function(){return this.type},t.prototype.getConfigurationValue=function(t){return void 0===this.configuration[t]?null:this.configuration[t]},t.prototype.getWeight=function(){return this.weight},t.prototype.getScoreMode=function(){return this.scoreMode},t.prototype.getFilter=function(){return this.filter},t.createDefault=function(){return new t},t.createFieldBoosting=function(r,n,o,i,s,a,u){void 0===n&&(n=e.DEFAULT_FACTOR),void 0===o&&(o=e.DEFAULT_MISSING),void 0===i&&(i=e.MODIFIER_NONE),void 0===s&&(s=e.DEFAULT_WEIGHT),void 0===a&&(a=null),void 0===u&&(u=e.SCORE_MODE_AVG);var c=t.createDefault();return c.type=e.BOOSTING_FIELD_VALUE,c.configuration.field=r,c.configuration.factor=n,c.configuration.missing=o,c.configuration.modifier=i,c.weight=s,c.filter=t.fixFilterFieldPath(a),c.scoreMode=u,c},t.createCustomFunction=function(r,n,o,i){void 0===n&&(n=e.DEFAULT_WEIGHT),void 0===o&&(o=null),void 0===i&&(i=e.SCORE_MODE_AVG);var s=t.createDefault();return s.type=e.CUSTOM_FUNCTION,s.configuration.function=r,s.weight=n,s.filter=t.fixFilterFieldPath(o),s.scoreMode=i,s},t.createDecayFunction=function(r,n,o,i,s,a,u,c,f){void 0===u&&(u=e.DEFAULT_WEIGHT),void 0===c&&(c=null),void 0===f&&(f=e.SCORE_MODE_AVG);var l=t.createDefault();return l.type=e.DECAY,l.configuration.type=r,l.configuration.field=n,l.configuration.origin=o,l.configuration.scale=i,l.configuration.offset=s,l.configuration.decay=a,l.weight=u,l.filter=t.fixFilterFieldPath(c),l.scoreMode=f,l},t.fixFilterFieldPath=function(t){if(null==t)return t;var e=t.toArray();return e.field=n.Item.getPathByField(e.field),o.Filter.createFromArray(e)},t.prototype.toArray=function(){return{type:this.type,configuration:this.configuration,weight:this.weight,score_mode:this.scoreMode,filter:this.filter instanceof o.Filter?this.filter.toArray():null}},t.createFromArray=function(e){e=JSON.parse(JSON.stringify(e));var r=t.createDefault();return void 0!==e.type&&(r.type=e.type),void 0!==e.configuration&&(r.configuration=e.configuration),void 0!==e.weight&&(r.weight=e.weight),void 0!==e.score_mode&&(r.scoreMode=e.score_mode),"object"==typeof e.filter&&null!==e.filter&&(r.filter=o.Filter.createFromArray(e.filter)),r},t}();e.ScoreStrategy=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=r(28),i=r(2),s=r(29),a=r(30),u=r(31),c=r(5),f=r(8),l=r(12),p=r(35),d=r(61),h=function(t){function e(e,r,n,o,i){var s=t.call(this,r,n,o)||this;return s.httpClient=e,s.transformer=i,s}return n.__extends(e,t),e.prototype.getTransformer=function(){return this.transformer},e.prototype.addObject=function(t){var e=this.transformer.toItem(t);e instanceof c.Item&&this.addItem(e)},e.prototype.deleteObject=function(t){var e=this.transformer.toItemUUID(t);e instanceof f.ItemUUID&&this.deleteItem(e)},e.prototype.flushUpdateItems=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(r){return 0===t.length?[2]:[2,this.httpClient.get("/items","post",this.getCredentialsWithIndex(this.indexId),{},{items:t.map(function(t){return t.toArray()})}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})]})})},e.prototype.flushDeleteItems=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(r){return 0===t.length?[2]:[2,this.httpClient.get("/items","delete",this.getCredentialsWithIndex(this.indexId),{},{items:t.map(function(t){return t.toArray()})}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})]})})},e.prototype.query=function(t){return n.__awaiter(this,void 0,void 0,function(){var r;return n.__generator(this,function(n){switch(n.label){case 0:return r=this,[4,this.httpClient.get("/","get",this.getCredentialsWithIndex(this.indexId),{query:JSON.stringify(t.toArray())},{}).then(function(t){e.throwTransportableExceptionIfNeeded(t);var n=l.Result.createFromArray(t.getBody());return l.Result.create(n.getQuery(),n.getTotalItems(),n.getTotalHits(),n.getAggregations(),n.getSuggests(),r.transformer.fromItems(n.getItems()))})];case 1:return[2,n.sent()]}})})},e.prototype.updateItems=function(t,r){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(n){switch(n.label){case 0:return[4,this.httpClient.get("/items","put",this.getCredentialsWithIndex(this.indexId),{},{query:t.toArray(),changes:r.toArray()}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})];case 1:return[2,n.sent()]}})})},e.prototype.createIndex=function(t,r){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(n){switch(n.label){case 0:return[4,this.httpClient.get("/index","put",this.getCredentials(),{},{index:t.toArray(),config:r.toArray()}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})];case 1:return[2,n.sent()]}})})},e.prototype.deleteIndex=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(t){switch(t.label){case 0:return[4,this.httpClient.get("/index","delete",this.getCredentialsWithIndex(this.indexId),{},{}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})];case 1:return[2,t.sent()]}})})},e.prototype.resetIndex=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(t){switch(t.label){case 0:return[4,this.httpClient.get("/index/reset","post",this.getCredentialsWithIndex(this.indexId),{},{}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})];case 1:return[2,t.sent()]}})})},e.prototype.checkIndex=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(t){switch(t.label){case 0:return[4,this.httpClient.get("/index","head",this.getCredentialsWithIndex(this.indexId),{},{}).then(function(t){return e.throwTransportableExceptionIfNeeded(t),200===t.getCode()})];case 1:return[2,t.sent()]}})})},e.prototype.getIndices=function(){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(t){switch(t.label){case 0:return[4,this.httpClient.get("/indices","get",this.getCredentials(),{},{}).then(function(t){e.throwTransportableExceptionIfNeeded(t);for(var r=[],n=0,o=t.getBody();n0},t.prototype.hasLevels=function(){return(this.applicationType&o.FILTER_MUST_ALL_WITH_LEVELS)>0},t.prototype.getCounter=function(t){return this.counters[t]instanceof i.Counter?this.counters[t]:null},t.prototype.getAllElements=function(){return n.__assign({},this.activeElements,this.counters)},t.prototype.getTotalElements=function(){return this.totalElements},t.prototype.getActiveElements=function(){if(0===Object.keys(this.activeElements).length)return{};if(this.applicationType===o.FILTER_MUST_ALL_WITH_LEVELS){var t=null;for(var e in this.activeElements){var r=this.activeElements[e];r instanceof i.Counter&&(null==t&&(t=r),t=t.getLevel()>r.getLevel()?t:r)}return t instanceof i.Counter?{0:t}:null}return this.activeElements},t.prototype.cleanCountersByLevel=function(){for(var t in this.counters){this.counters[t].getLevel()!==this.highestActiveElement+1&&delete this.counters[t]}},t.prototype.isEmpty=function(){return 0==Object.keys(this.activeElements).length&&0==Object.keys(this.counters).length},t.prototype.toArray=function(){var t={name:this.name,counters:[],active_elements:[]};for(var e in this.counters)t.counters.push(this.counters[e].toArray());for(var e in this.applicationType!==o.FILTER_AT_LEAST_ONE&&(t.application_type=this.applicationType),this.totalElements>0&&(t.total_elements=this.totalElements),this.activeElements){var r=this.activeElements[e];t.active_elements.push(r instanceof i.Counter?r.toArray():r)}return this.highestActiveElement>0&&(t.highest_active_level=this.highestActiveElement),0===t.counters.length&&delete t.counters,0===t.active_elements.length&&delete t.active_elements,t},t.createFromArray=function(e){var r=[],n=e.active_elements;for(var s in n=typeof n==typeof[]?n:[]){var a=n[s];r.push(typeof a==typeof{}?i.Counter.createFromArray(a):a)}var u=new t(e.name,parseInt(e.application_type?e.application_type:o.FILTER_AT_LEAST_ONE),parseInt(e.total_elements?e.total_elements:0),[]);u.activeElements=r;var c=typeof e.counters==typeof[]?e.counters:[];for(var s in c){var f=c[s],l=i.Counter.createFromArray(f);u.counters[l.getId()]=l}return u.highestActiveElement="number"==typeof e.highest_active_level?e.highest_active_level:0,u},t}();e.ResultAggregation=s},function(t,e,r){"use strict";e.__esModule=!0;var n=r(34),o=function(){function t(t,e,r){this.values=t,this.used=e,this.n=r}return t.prototype.getId=function(){return"string"==typeof this.values.id?this.values.id:null},t.prototype.getName=function(){return"string"==typeof this.values.name?this.values.name:null},t.prototype.getSlug=function(){return"string"==typeof this.values.slug?this.values.slug:null},t.prototype.getLevel=function(){return"number"==typeof this.values.level?this.values.level:0},t.prototype.getValues=function(){return this.values},t.prototype.isUsed=function(){return this.used},t.prototype.getN=function(){return this.n},t.createByActiveElements=function(e,r,o){var i=n.Metadata.fromMetadata(e);if(null==i)return null;for(var s=o.length,a=!1;s--;)o[s]==i.id&&(a=!0);return new t(i,a,r)},t.prototype.toArray=function(){var t={values:this.values,n:this.n};return!0===this.used&&(t.used=!0),t},t.createFromArray=function(e){return new t((e=JSON.parse(JSON.stringify(e))).values,"boolean"==typeof e.used&&e.used,e.n)},t}();e.Counter=o},function(t,e,r){"use strict";e.__esModule=!0;var n=function(){function t(){}return t.toMetadata=function(t){t=JSON.parse(JSON.stringify(t));var e=[];for(var r in t)e.push(r+"##"+t[r]);return e.join("~~")},t.fromMetadata=function(t){var e={},r=t.split("~~"),n=0,o=0,i=null;for(var s in r){var a=r[s],u=a.split("##");u.length>1?(i=u[1],e[u[0]]=i):(i=a,e[n++]=i),o++}return 1==o&&(e={id:i,name:i}),void 0===e.id?null:e},t}();e.Metadata=n},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=function(){function t(t,e,r){this.itemsToUpdate=[],this.itemsToDelete=[],this.appId=t,this.indexId=e,this.token=r}return t.prototype.resetCachedElements=function(){this.itemsToUpdate=[],this.itemsToDelete=[]},t.prototype.addItem=function(t){this.itemsToUpdate.push(t)},t.prototype.addItems=function(t){for(var e in t)this.addItem(t[e])},t.prototype.deleteItem=function(t){this.itemsToDelete.push(t)},t.prototype.deleteItems=function(t){for(var e in t)this.deleteItem(t[e])},t.prototype.flush=function(e,r){return n.__awaiter(this,void 0,void 0,function(){var o=this;return n.__generator(this,function(n){return e||(e=500),r||(r=!1),r&&this.itemsToUpdate.length=0;a--)(i=t[a])&&(s=(o<3?i(s):o>3?i(e,r,s):i(e,r))||s);return o>3&&s&&Object.defineProperty(e,r,s),s}function u(t,e){return function(r,n){e(r,n,t)}}function c(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function f(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){t.done?i(t.value):new r(function(e){e(t.value)}).then(s,a)}u((n=n.apply(t,e||[])).next())})}function l(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}}function h(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,i,o=r.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s}function g(){for(var t=[],e=0;e1||a(t,e)})})}function a(t,e){try{!function(t){t.value instanceof y?Promise.resolve(t.value.v).then(u,c):f(o[0][2],t)}(i[t](e))}catch(t){f(o[0][3],t)}}function u(t){a("next",t)}function c(t){a("throw",t)}function f(t,e){t(e),o.shift(),o.length&&a(o[0][0],o[0][1])}}function m(t){var e,r;return e={},n("next"),n("throw",function(t){throw t}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(n,i){e[n]=t[n]?function(e){return(r=!r)?{value:y(t[n](e)),done:"return"===n}:i?i(e):e}:i}}function v(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,r=t[Symbol.asyncIterator];return r?r.call(t):(t=d(t),e={},n("next"),n("throw"),n("return"),e[Symbol.asyncIterator]=function(){return this},e);function n(r){e[r]=t[r]&&function(e){return new Promise(function(n,i){(function(t,e,r,n){Promise.resolve(n).then(function(e){t({value:e,done:r})},e)})(n,i,(e=t[r](e)).done,e.value)})}}}function E(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function T(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function A(t){return t&&t.__esModule?t:{default:t}}},function(t,e,r){"use strict";var n=r(15),i=r(43),o=Object.prototype.toString;function s(t){return"[object Array]"===o.call(t)}function a(t){return null!==t&&"object"==typeof t}function u(t){return"[object Function]"===o.call(t)}function c(t,e){if(null!==t&&void 0!==t)if("object"!=typeof t&&(t=[t]),s(t))for(var r=0,n=t.length;r0||Object.keys(this.values).length>0)&&(t.values=this.values),this.applicationType!=e.FILTER_AT_LEAST_ONE&&(t.application_type=this.applicationType),this.filterType!=e.FILTER_TYPE_FIELD&&(t.filter_type=this.filterType),this.filterTerms.length>0&&(t.filter_terms=this.filterTerms),t},t.createFromArray=function(r){return void 0===(r=JSON.parse(JSON.stringify(r))).field&&(r.field="uuid.type"),void 0===r.values&&(r.values=[]),void 0===r.application_type&&(r.application_type=e.FILTER_AT_LEAST_ONE),void 0===r.filter_type&&(r.filter_type=e.FILTER_TYPE_FIELD),void 0===r.filter_terms&&(r.filter_terms=[]),t.create(r.field,r.values,r.application_type,r.filter_type,r.filter_terms)},t}();e.Filter=n},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=r(2),o=r(7),s=r(8),a=function(){function t(t,e,r,n,i,o,s){this.metadata={},this.indexedMetadata={},this.searchableMetadata={},this.exactMatchingMetadata=[],this.suggest=[],this.highlights={},this.promoted=!1,this.uuid=t,this.coordinate=e,this.metadata=r,this.indexedMetadata=n,this.searchableMetadata=i,this.exactMatchingMetadata=o,this.suggest=s}return t.create=function(e,r,n,i,o,s){return void 0===r&&(r={}),void 0===n&&(n={}),void 0===i&&(i={}),void 0===o&&(o=[]),void 0===s&&(s=[]),new t(e,null,r,n,i,o,s)},t.createLocated=function(e,r,n,i,o,s,a){return void 0===n&&(n={}),void 0===i&&(i={}),void 0===o&&(o={}),void 0===s&&(s=[]),void 0===a&&(a=[]),new t(e,r,n,i,o,s,a)},t.prototype.getUUID=function(){return this.uuid},t.prototype.getId=function(){return this.uuid.getId()},t.prototype.getType=function(){return this.uuid.getType()},t.prototype.getCoordinate=function(){return this.coordinate},t.prototype.getDistance=function(){return this.distance},t.prototype.getMetadata=function(){return this.metadata},t.prototype.setMetadata=function(t){this.metadata=t},t.prototype.addMetadata=function(t,e){this.metadata[t]=e},t.prototype.getIndexedMetadata=function(){return this.indexedMetadata},t.prototype.setIndexedMetadata=function(t){this.indexedMetadata=t},t.prototype.addIndexedMetadata=function(t,e){this.indexedMetadata[t]=e},t.prototype.getSearchableMetadata=function(){return this.searchableMetadata},t.prototype.setSearchableMetadata=function(t){this.searchableMetadata=t},t.prototype.addSearchableMetadata=function(t,e){this.searchableMetadata[t]=e},t.prototype.getExactMatchingMetadata=function(){return this.exactMatchingMetadata},t.prototype.setExactMatchingMetadata=function(t){this.exactMatchingMetadata=t},t.prototype.addExactMatchingMetadata=function(t){this.exactMatchingMetadata.push(t)},t.prototype.getAllMetadata=function(){return n.__assign({},this.metadata,this.indexedMetadata)},t.prototype.get=function(t){var e=this.getAllMetadata();return void 0!==e[t]?e[t]:null},t.prototype.getSuggest=function(){return this.suggest},t.prototype.getHighlights=function(){return this.highlights},t.prototype.getHighlight=function(t){return void 0!==this.highlights[t]?this.highlights[t]:null},t.prototype.isPromoted=function(){return this.promoted},t.prototype.setScore=function(t){return this.score=t,this},t.prototype.getScore=function(){return this.score},t.prototype.toArray=function(){var t={uuid:this.uuid.toArray()};return this.coordinate instanceof o.Coordinate&&(t.coordinate=this.coordinate.toArray()),Object.keys(this.metadata).length>0&&(t.metadata=this.metadata),Object.keys(this.indexedMetadata).length>0&&(t.indexed_metadata=this.indexedMetadata),Object.keys(this.searchableMetadata).length>0&&(t.searchable_metadata=this.searchableMetadata),this.exactMatchingMetadata.length>0&&(t.exact_matching_metadata=this.exactMatchingMetadata),this.suggest.length>0&&(t.suggest=this.suggest),Object.keys(this.highlights).length>0&&(t.highlights=this.highlights),this.isPromoted()&&(t.is_promoted=!0),void 0!==this.distance&&(t.distance=this.distance),void 0!==this.score&&(t.score=this.score),t},t.createFromArray=function(e){if("object"!=typeof(e=JSON.parse(JSON.stringify(e))).uuid)throw i.InvalidFormatError.itemUUIDRepresentationNotValid();if(void 0!==e.coordinate&&"object"!=typeof e.coordinate)throw i.InvalidFormatError.coordinateFormatNotValid();var r="object"==typeof e.coordinate&&null!=e.coordinate?t.createLocated(s.ItemUUID.createFromArray(e.uuid),o.Coordinate.createFromArray(e.coordinate),void 0===e.metadata?{}:e.metadata,void 0===e.indexed_metadata?{}:e.indexed_metadata,void 0===e.searchable_metadata?{}:e.searchable_metadata,void 0===e.exact_matching_metadata?[]:e.exact_matching_metadata,void 0===e.suggest?[]:e.suggest):t.create(s.ItemUUID.createFromArray(e.uuid),void 0===e.metadata?{}:e.metadata,void 0===e.indexed_metadata?{}:e.indexed_metadata,void 0===e.searchable_metadata?{}:e.searchable_metadata,void 0===e.exact_matching_metadata?[]:e.exact_matching_metadata,void 0===e.suggest?[]:e.suggest);return void 0!==e.distance&&null!=e.distance&&(r.distance=e.distance),"object"==typeof e.highlights&&null!=e.distance&&(r.highlights=e.highlights),void 0!==e.is_promoted&&null!=e.is_promoted&&(r.promoted=e.is_promoted),void 0!==e.score&&null!=e.score&&(r.score=e.score),r},t.prototype.composeUUID=function(){return this.uuid.composedUUID()},t.getPathByField=function(t){return["id","type"].indexOf(t)>-1?"uuid."+t:"indexed_metadata."+t},t}();e.Item=a},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=r(7),o=r(8),s=r(5),a=r(24),u=r(10),c=r(4),f=r(4),l=r(10),p=r(2),d=r(4),h=r(25),g=r(11);e.QUERY_DEFAULT_PAGE=1,e.QUERY_DEFAULT_SIZE=10,e.NO_MIN_SCORE=0;var y=function(){function t(t){this.fields=[],this.universeFilters={},this.filters={},this.itemsPromoted=[],this.aggregations={},this.resultsEnabled=!0,this.aggregationsEnabled=!0,this.suggestionsEnabled=!1,this.highlightsEnabled=!1,this.filterFields=[],this.minScore=e.NO_MIN_SCORE,this.metadata={},this.subqueries={},this.sortByInstance=g.SortBy.create(),this.filters._query=c.Filter.create("",[t],0,d.FILTER_TYPE_QUERY)}return t.createLocated=function(r,n,i,o){void 0===i&&(i=e.QUERY_DEFAULT_PAGE),void 0===o&&(o=e.QUERY_DEFAULT_SIZE);var s=t.create(n,i,o);return s.coordinate=r,s},t.create=function(r,n,i){void 0===n&&(n=e.QUERY_DEFAULT_PAGE),void 0===i&&(i=e.QUERY_DEFAULT_SIZE),n=Math.max(1,n);var o=new t(r);return o.from=(n-1)*i,o.size=i,o.page=n,o},t.createMatchAll=function(){return t.create("",e.QUERY_DEFAULT_PAGE,e.QUERY_DEFAULT_SIZE)},t.createByUUID=function(e){return t.createByUUIDs(e)},t.createByUUIDs=function(){for(var r=[],n=0;n0?this.universeFilters=n.__assign({},this.universeFilters,((e={}).type=c.Filter.create(r,t,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD),e)):delete this.universeFilters.type,this},t.prototype.filterByTypes=function(t,e,r){var i,o;void 0===e&&(e=!0),void 0===r&&(r=l.AGGREGATION_SORT_BY_COUNT_DESC);var a=s.Item.getPathByField("type");return t.length>0?this.filters=n.__assign({},this.filters,((i={}).type=c.Filter.create(a,t,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD),i)):delete this.filters.type,e&&(this.aggregations=n.__assign({},this.aggregations,((o={}).type=u.Aggregation.create("type",a,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD,[],r),o))),this},t.prototype.filterUniverseByIds=function(t){var e,r=s.Item.getPathByField("id");return t.length>0?this.universeFilters=n.__assign({},this.universeFilters,((e={}).id=c.Filter.create(r,t,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD),e)):delete this.universeFilters.id,this},t.prototype.filterByIds=function(t){var e,r=s.Item.getPathByField("id");return t.length>0?this.filters=n.__assign({},this.filters,((e={}).id=c.Filter.create(r,t,f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_FIELD),e)):delete this.filters.id,this},t.prototype.filterUniverseBy=function(t,e,r){var i;void 0===r&&(r=f.FILTER_AT_LEAST_ONE);var o=s.Item.getPathByField(t);return e.length>0?this.universeFilters=n.__assign({},this.universeFilters,((i={})[t]=c.Filter.create(o,e,r,f.FILTER_TYPE_FIELD),i)):delete this.universeFilters[t],this},t.prototype.filterBy=function(t,e,r,i,o,a){var u;void 0===i&&(i=f.FILTER_AT_LEAST_ONE),void 0===o&&(o=!0),void 0===a&&(a=l.AGGREGATION_SORT_BY_COUNT_DESC);var p=s.Item.getPathByField(e);return r.length>0?this.filters=n.__assign({},this.filters,((u={})[t]=c.Filter.create(p,r,i,f.FILTER_TYPE_FIELD),u)):delete this.filters[t],o&&this.aggregateBy(t,e,i,a),this},t.prototype.filterUniverseByRange=function(t,e,r,i){var o;void 0===r&&(r=f.FILTER_AT_LEAST_ONE),void 0===i&&(i=f.FILTER_TYPE_RANGE);var a=s.Item.getPathByField(t);return e.length>0?this.universeFilters=n.__assign({},this.universeFilters,((o={})[t]=c.Filter.create(a,e,r,i),o)):delete this.universeFilters[t],this},t.prototype.filterUniverseByDateRange=function(t,e,r){return void 0===r&&(r=f.FILTER_AT_LEAST_ONE),this.filterUniverseByRange(t,e,r,f.FILTER_TYPE_DATE_RANGE)},t.prototype.filterByRange=function(t,e,r,i,o,a,u,p){var d;void 0===o&&(o=f.FILTER_AT_LEAST_ONE),void 0===a&&(a=f.FILTER_TYPE_RANGE),void 0===u&&(u=!0),void 0===p&&(p=l.AGGREGATION_SORT_BY_COUNT_DESC);var h=s.Item.getPathByField(e);return 0!==i.length?this.filters=n.__assign({},this.filters,((d={})[t]=c.Filter.create(h,i,o,a),d)):delete this.filters[t],u&&this.aggregateByRange(t,h,r,o,a,p),this},t.prototype.filterByDateRange=function(t,e,r,n,i,o,s){return void 0===i&&(i=f.FILTER_AT_LEAST_ONE),void 0===o&&(o=!0),void 0===s&&(s=l.AGGREGATION_SORT_BY_COUNT_DESC),this.filterByRange(t,e,r,n,i,f.FILTER_TYPE_DATE_RANGE,o,s)},t.prototype.filterUniverseByLocation=function(t){var e;return this.universeFilters=n.__assign({},this.universeFilters,((e={}).coordinate=c.Filter.create("coordinate",t.toArray(),f.FILTER_AT_LEAST_ONE,f.FILTER_TYPE_GEO),e)),this},t.prototype.setFilterFields=function(t){return this.filterFields=t,this},t.prototype.getFilterFields=function(){return this.filterFields},t.prototype.sortBy=function(t){if(t.isSortedByGeoDistance()){if(!(this.coordinate instanceof i.Coordinate))throw p.InvalidFormatError.querySortedByDistanceWithoutCoordinate();t.setCoordinate(this.coordinate)}return this.sortByInstance=t,this},t.prototype.aggregateBy=function(t,e,r,i,o){var a;return void 0===i&&(i=l.AGGREGATION_SORT_BY_COUNT_DESC),void 0===o&&(o=l.AGGREGATION_NO_LIMIT),this.aggregations=n.__assign({},this.aggregations,((a={})[t]=u.Aggregation.create(t,s.Item.getPathByField(e),r,f.FILTER_TYPE_FIELD,[],i,o),a)),this},t.prototype.aggregateByRange=function(t,e,r,i,o,a,c){var p;return void 0===o&&(o=f.FILTER_TYPE_RANGE),void 0===a&&(a=l.AGGREGATION_SORT_BY_COUNT_DESC),void 0===c&&(c=l.AGGREGATION_NO_LIMIT),0===r.length?this:(this.aggregations=n.__assign({},this.aggregations,((p={})[t]=u.Aggregation.create(t,s.Item.getPathByField(e),i,o,r,a,c),p)),this)},t.prototype.aggregateByDateRange=function(t,e,r,n,i,o){return void 0===i&&(i=l.AGGREGATION_SORT_BY_COUNT_DESC),void 0===o&&(o=l.AGGREGATION_NO_LIMIT),this.aggregateByRange(t,e,r,n,f.FILTER_TYPE_DATE_RANGE,i,o)},t.prototype.getAggregations=function(){return this.aggregations},t.prototype.getAggregation=function(t){return this.aggregations[t]instanceof u.Aggregation?this.aggregations[t]:null},t.prototype.getQueryText=function(){var t=this.filters._query;return t instanceof c.Filter?t.getValues()[0]:""},t.prototype.getUniverseFilters=function(){return this.universeFilters},t.prototype.getUniverseFilter=function(t){return this.universeFilters[t]instanceof c.Filter?this.universeFilters[t]:null},t.prototype.getFilters=function(){return this.filters},t.prototype.getFilter=function(t){return this.filters[t]instanceof c.Filter?this.filters[t]:null},t.prototype.getFilterByField=function(t){var e=s.Item.getPathByField(t);for(var r in this.filters)if(this.filters[r].getField()==e)return this.filters[r];return null},t.prototype.getSortBy=function(){return this.sortByInstance},t.prototype.getFrom=function(){return this.from},t.prototype.getSize=function(){return this.size},t.prototype.getPage=function(){return this.page},t.prototype.enableResults=function(){return this.resultsEnabled=!0,this},t.prototype.disableResults=function(){return this.resultsEnabled=!1,this},t.prototype.areResultsEnabled=function(){return this.resultsEnabled},t.prototype.enableAggregations=function(){return this.aggregationsEnabled=!0,this},t.prototype.disableAggregations=function(){return this.aggregationsEnabled=!1,this},t.prototype.areAggregationsEnabled=function(){return this.aggregationsEnabled},t.prototype.enableSuggestions=function(){return this.suggestionsEnabled=!0,this},t.prototype.disableSuggestions=function(){return this.suggestionsEnabled=!1,this},t.prototype.areSuggestionsEnabled=function(){return this.suggestionsEnabled},t.prototype.enableHighlights=function(){return this.highlightsEnabled=!0,this},t.prototype.disableHighlights=function(){return this.highlightsEnabled=!1,this},t.prototype.areHighlightsEnabled=function(){return this.highlightsEnabled},t.prototype.promoteUUID=function(t){return this.itemsPromoted.push(t),this},t.prototype.promoteUUIDs=function(){for(var t=[],e=0;e0&&(t.fields=this.fields),Object.keys(this.universeFilters).length)for(var r in t.universe_filters={},this.universeFilters){var n=this.universeFilters[r];t.universe_filters[r]=n.toArray()}if(this.filters instanceof Object&&Object.keys(this.filters).length)for(var r in t.filters={},this.filters){var o=this.filters[r];o.getFilterType()!==d.FILTER_TYPE_QUERY&&(t.filters[r]=o.toArray())}if(this.aggregations instanceof Object&&Object.keys(this.aggregations).length)for(var r in t.aggregations={},this.aggregations){var s=this.aggregations[r];t.aggregations[r]=s.toArray()}var u=this.sortByInstance.toArray();Object.keys(u).length&&(t.sort=u);var c=this.page;c!==e.QUERY_DEFAULT_PAGE&&(t.page=c);var f=this.size;if(f!==e.QUERY_DEFAULT_SIZE&&(t.size=f),!1===this.resultsEnabled&&(t.results_enabled=!1),!0===this.suggestionsEnabled&&(t.suggestions_enabled=!0),!0===this.highlightsEnabled&&(t.highlights_enabled=!0),!1===this.aggregationsEnabled&&(t.aggregations_enabled=!1),this.filterFields instanceof Array&&this.filterFields.length>0&&(t.filter_fields=this.filterFields),this.scoreStrategies instanceof h.ScoreStrategies){var l=this.scoreStrategies.toArray();Object.keys(l).length>0&&(t.score_strategies=l)}null!==this.fuzziness&&(t.fuzziness=this.fuzziness);var p=this.minScore;if(p!==e.NO_MIN_SCORE&&(t.min_score=p),this.user instanceof a.User){var g=this.user.toArray();Object.keys(g).length>0&&(t.user=g)}if(t.metadata=this.metadata,this.subqueries instanceof Object&&Object.keys(this.subqueries).length)for(var r in t.subqueries={},this.subqueries){var y=this.subqueries[r];t.subqueries[r]=y.toArray()}if(this.itemsPromoted.length>0)for(var r in t.items_promoted=[],this.itemsPromoted)t.items_promoted.push(this.itemsPromoted[r].toArray());return t},t.createFromArray=function(r){var n=r.coordinate instanceof Object?t.createLocated(i.Coordinate.createFromArray(r.coordinate),r.q?r.q:"",r.page?r.page:e.QUERY_DEFAULT_PAGE,r.size?r.size:e.QUERY_DEFAULT_SIZE):t.create(r.q?r.q:"",r.page?r.page:e.QUERY_DEFAULT_PAGE,r.size?r.size:e.QUERY_DEFAULT_SIZE);n.fields=r.fields instanceof Array?r.fields:[];var s=typeof r.aggregations==typeof{}?r.aggregations:{};for(var f in s)n.aggregations[f]=u.Aggregation.createFromArray(s[f]);var l=typeof r.sort==typeof{}?r.sort:{};Object.keys(l).length>0&&(n.sortByInstance=g.SortBy.createFromArray(l));var p=typeof r.filters==typeof{}?r.filters:{};for(var f in p)n.filters[f]=c.Filter.createFromArray(p[f]);var d=typeof r.universe_filters==typeof{}?r.universe_filters:{};for(var f in d)n.universeFilters[f]=c.Filter.createFromArray(d[f]);n.resultsEnabled="boolean"!=typeof r.results_enabled||r.results_enabled,n.suggestionsEnabled="boolean"==typeof r.suggestions_enabled&&r.suggestions_enabled,n.aggregationsEnabled="boolean"!=typeof r.aggregations_enabled||r.aggregations_enabled,n.highlightsEnabled="boolean"==typeof r.highlights_enabled&&r.highlights_enabled,n.fuzziness=r.fuzziness,n.minScore=r.min_score?r.min_score:e.NO_MIN_SCORE;var y=typeof r.items_promoted==typeof{}?r.items_promoted:{};for(var f in y)n.itemsPromoted.push(o.ItemUUID.createFromArray(y[f]));var _=typeof r.subqueries==typeof{}?r.subqueries:{};for(var f in _)n.subqueries[f]=t.createFromArray(_[f]);return n.metadata=typeof r.metadata==typeof{}?r.metadata:{},n.filterFields=r.filter_fields instanceof Array?r.filter_fields:[],n.scoreStrategies=r.score_strategies instanceof Object?h.ScoreStrategies.createFromArray(r.score_strategies):null,n.user=r.user instanceof Object?a.User.createFromArray(r.user):null,n},t}();e.Query=y},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),i=function(){function t(t,e){this.lat=t,this.lon=e}return t.prototype.getLatitude=function(){return this.lat},t.prototype.getLongitude=function(){return this.lon},t.prototype.toArray=function(){return{lat:this.lat,lon:this.lon}},t.createFromArray=function(e){if(void 0===e.lat||void 0===e.lon)throw n.InvalidFormatError.coordinateFormatNotValid();return new t(e.lat,e.lon)},t}();e.Coordinate=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),i=function(){function t(t,e){this.id=t,this.type=e}return t.createByComposedUUID=function(e){var r=e.split("~");if(2!=r.length)throw n.InvalidFormatError.composedItemUUIDNotValid();return new t(r[0],r[1])},t.prototype.getId=function(){return this.id},t.prototype.getType=function(){return this.type},t.prototype.toArray=function(){return{id:this.id,type:this.type}},t.createFromArray=function(e){return new t((e=JSON.parse(JSON.stringify(e))).id,e.type)},t.prototype.composedUUID=function(){return this.id+"~"+this.type},t}();e.ItemUUID=i},function(t,e,r){"use strict";(function(e){var n=r(1),i=r(46),o={"Content-Type":"application/x-www-form-urlencoded"};function s(t,e){!n.isUndefined(t)&&n.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var a={adapter:function(){var t;return"undefined"!=typeof XMLHttpRequest?t=r(16):void 0!==e&&(t=r(16)),t}(),transformRequest:[function(t,e){return i(e,"Content-Type"),n.isFormData(t)||n.isArrayBuffer(t)||n.isBuffer(t)||n.isStream(t)||n.isFile(t)||n.isBlob(t)?t:n.isArrayBufferView(t)?t.buffer:n.isURLSearchParams(t)?(s(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):n.isObject(t)?(s(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};n.forEach(["delete","get","head"],function(t){a.headers[t]={}}),n.forEach(["post","put","patch"],function(t){a.headers[t]=n.merge(o)}),t.exports=a}).call(this,r(45))},function(t,e,r){"use strict";e.__esModule=!0;var n=r(4);e.AGGREGATION_SORT_BY_COUNT_ASC=["_count","asc"],e.AGGREGATION_SORT_BY_COUNT_DESC=["_count","desc"],e.AGGREGATION_SORT_BY_NAME_ASC=["_term","asc"],e.AGGREGATION_SORT_BY_NAME_DESC=["_term","desc"],e.AGGREGATION_NO_LIMIT=0;var i=function(){function t(t,e,r,n,i,o,s){this.subgroup=[],this.name=t,this.field=e,this.applicationType=r,this.filterType=n,this.subgroup=i,this.sort=o,this.limit=s}return t.prototype.getName=function(){return this.name},t.prototype.getField=function(){return this.field},t.prototype.getApplicationType=function(){return this.applicationType},t.prototype.getFilterType=function(){return this.filterType},t.prototype.getSubgroup=function(){return this.subgroup},t.prototype.getSort=function(){return this.sort},t.prototype.getLimit=function(){return this.limit},t.create=function(r,n,i,o,s,a,u){return void 0===s&&(s=[]),void 0===a&&(a=e.AGGREGATION_SORT_BY_COUNT_DESC),void 0===u&&(u=e.AGGREGATION_NO_LIMIT),new t(r,n,i,o,s,a,u)},t.prototype.toArray=function(){var t={name:this.name};return"uuid.type"!=this.field&&(t.field=this.field),this.applicationType!=n.FILTER_AT_LEAST_ONE&&(t.application_type=this.applicationType),this.filterType!=n.FILTER_TYPE_FIELD&&(t.filter_type=this.filterType),this.subgroup.length>0&&(t.subgroup=this.subgroup),JSON.stringify(this.sort)!==JSON.stringify(e.AGGREGATION_SORT_BY_COUNT_DESC)&&(t.sort=this.sort),this.limit!=e.AGGREGATION_NO_LIMIT&&(t.limit=this.limit),t},t.createFromArray=function(r){return void 0===(r=JSON.parse(JSON.stringify(r))).field&&(r.field="uuid.type"),void 0===r.application_type&&(r.application_type=n.FILTER_AT_LEAST_ONE),void 0===r.filter_type&&(r.filter_type=n.FILTER_TYPE_FIELD),void 0===r.subgroup&&(r.subgroup=[]),void 0===r.sort&&(r.sort=e.AGGREGATION_SORT_BY_COUNT_DESC),void 0===r.limit&&(r.limit=e.AGGREGATION_NO_LIMIT),t.create(r.name,r.field,r.application_type,r.filter_type,r.subgroup,r.sort,r.limit)},t}();e.Aggregation=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(5);e.SORT_BY_TYPE_FIELD="field",e.SORT_BY_TYPE_NESTED="nested",e.SORT_BY_TYPE_SCORE="score",e.SORT_BY_TYPE_DISTANCE="distance",e.SORT_BY_TYPE_FUNCTION="function",e.SORT_BY_TYPE_RANDOM="random",e.SORT_BY_ASC="asc",e.SORT_BY_DESC="desc",e.SORT_BY_MODE_AVG="avg",e.SORT_BY_MODE_SUM="sum",e.SORT_BY_MODE_MIN="min",e.SORT_BY_MODE_MAX="max",e.SORT_BY_MODE_MEDIAN="median",e.SORT_BY_SCORE={type:e.SORT_BY_TYPE_SCORE},e.SORT_BY_RANDOM={type:e.SORT_BY_TYPE_RANDOM},e.SORT_BY_AL_TUN_TUN=e.SORT_BY_RANDOM,e.SORT_BY_ID_ASC={field:"uuid.id",order:e.SORT_BY_ASC},e.SORT_BY_ID_DESC={field:"uuid.id",order:e.SORT_BY_DESC},e.SORT_BY_TYPE_ASC={field:"uuid.type",order:e.SORT_BY_ASC},e.SORT_BY_TYPE_DESC={field:"uuid.type",order:e.SORT_BY_DESC},e.SORT_BY_LOCATION_KM_ASC={type:e.SORT_BY_TYPE_DISTANCE,unit:"km"},e.SORT_BY_LOCATION_MI_ASC={type:e.SORT_BY_TYPE_DISTANCE,unit:"mi"};var i=r(7),o=r(4),s=function(){function t(){this.sortsBy=[]}return t.create=function(){return new t},t.byFieldsValues=function(e){var r=t.create();for(var n in e)r.byFieldValue(n,e[n]);return r},t.prototype.all=function(){return this.sortsBy.length>0?this.sortsBy:[e.SORT_BY_SCORE]},t.prototype.byValue=function(t){return e.SORT_BY_SCORE!=t&&e.SORT_BY_RANDOM!=t&&void 0===t.type&&(t.type=e.SORT_BY_TYPE_FIELD),e.SORT_BY_SCORE!=t&&this.sortsBy.push(t),this},t.prototype.byFieldValue=function(t,r){return this.sortsBy.push({type:e.SORT_BY_TYPE_FIELD,field:n.Item.getPathByField(t),order:r}),this},t.prototype.byNestedField=function(t,r,n){return void 0===n&&(n=e.SORT_BY_MODE_AVG),this.sortsBy.push({type:e.SORT_BY_TYPE_NESTED,mode:n,field:"indexed_metadata."+t,order:r}),this},t.prototype.byNestedFieldAndFilter=function(t,r,i,s){void 0===s&&(s=e.SORT_BY_MODE_AVG);var a=n.Item.getPathByField(i.getField()),u=i.toArray();return u.field=a,i=o.Filter.createFromArray(u),this.sortsBy.push({type:e.SORT_BY_TYPE_NESTED,mode:s,filter:i,field:"indexed_metadata."+t,order:r}),this},t.prototype.byFunction=function(t,r){return this.sortsBy.push({type:e.SORT_BY_TYPE_FUNCTION,function:t,order:r}),this},t.prototype.isSortedByGeoDistance=function(){for(var t in this.sortsBy)if(this.sortsBy[t].type===e.SORT_BY_TYPE_DISTANCE)return!0;return!1},t.prototype.setCoordinate=function(t){for(var r in this.sortsBy)this.sortsBy[r].type===e.SORT_BY_TYPE_DISTANCE&&(this.sortsBy[r].coordinate=t);return this},t.prototype.hasRandomSort=function(){for(var t in this.sortsBy)if(this.sortsBy[t].type===e.SORT_BY_TYPE_RANDOM)return!0;return!1},t.prototype.toArray=function(){var t=this.copy().sortsBy;for(var e in t)typeof t[e].filter==typeof{}&&null!=t[e].filter&&(t[e].filter=t[e].filter.toArray()),null!==t[e].coordinate&&t[e].coordinate instanceof i.Coordinate&&(t[e].coordinate=t[e].coordinate.toArray());return t},t.createFromArray=function(r){var n=JSON.parse(JSON.stringify(r)),s=t.create();for(var a in n){var u=n[a];void 0===u.type&&(u.type=e.SORT_BY_TYPE_FIELD),typeof u.filter==typeof{}&&null!=u.filter&&(u.filter=o.Filter.createFromArray(u.filter)),null!=u.coordinate&&typeof u.coordinate==typeof{}&&(u.coordinate=i.Coordinate.createFromArray(u.coordinate)),s.sortsBy.push(u)}return s},t.prototype.copy=function(){var e=t.create();for(var r in this.sortsBy){var n=this.sortsBy[r],s=JSON.parse(JSON.stringify(n));typeof n.filter==typeof{}&&null!=n.filter&&(s.filter=o.Filter.createFromArray(n.filter.toArray())),null!=n.coordinate&&typeof n.coordinate==typeof{}&&(s.coordinate=i.Coordinate.createFromArray(n.coordinate.toArray())),e.sortsBy.push(s)}return e},t}();e.SortBy=s},function(t,e,r){"use strict";e.__esModule=!0;var n=r(5),i=r(6),o=r(13),s=function(){function t(t,e,r){this.items=[],this.suggests=[],this.subresults={},this.query=t,this.totalItems=e,this.totalHits=r}return t.create=function(e,r,n,i,o,s){var a=new t(e,r,n);return a.aggregations=i,a.suggests=o,a.items=s,a},t.createMultiresults=function(e,r){var n=new t(e,0,0);return n.subresults=r,n},t.prototype.addItem=function(t){this.items.push(t)},t.prototype.getItems=function(){return this.items},t.prototype.getItemsGroupedByTypes=function(){if(this.itemsGroupedByTypeCache instanceof Object&&Object.keys(this.itemsGroupedByTypeCache).length>0)return this.itemsGroupedByTypeCache;var t={};for(var e in this.items){var r=this.items[e];t[r.getType()]instanceof Array||(t[r.getType()]=[]),t[r.getType()].push(r)}return this.itemsGroupedByTypeCache=t,t},t.prototype.getItemsByType=function(t){var e=this.getItemsGroupedByTypes();return null==e[t]?[]:e[t]},t.prototype.getItemsByTypes=function(t){return this.items.filter(function(e){return t.indexOf(e.getType())>=0})},t.prototype.getFirstItem=function(){return this.items.length>0?this.items[0]:null},t.prototype.setAggregations=function(t){this.aggregations=t},t.prototype.getAggregations=function(){return this.aggregations instanceof o.ResultAggregations?this.aggregations:null},t.prototype.getAggregation=function(t){return null==this.aggregations?null:this.aggregations.getAggregation(t)},t.prototype.hasNotEmptyAggregation=function(t){return null!=this.aggregations&&this.aggregations.hasNotEmptyAggregation(t)},t.prototype.addSuggest=function(t){this.suggests.push(t)},t.prototype.getSuggests=function(){return this.suggests},t.prototype.getQuery=function(){return this.query},t.prototype.getTotalItems=function(){return this.totalItems},t.prototype.getTotalHits=function(){return this.totalHits},t.prototype.getSubresults=function(){return this.subresults},t.prototype.toArray=function(){var t={query:this.query.toArray(),total_items:this.totalItems,total_hits:this.totalHits,items:this.items.map(function(t){return t.toArray()}),aggregations:null==this.aggregations?null:this.aggregations.toArray(),suggests:this.suggests};if(this.subresults instanceof Object&&Object.keys(this.subresults).length)for(var e in t.subresults={},this.subresults){var r=this.subresults[e];t.subresults[e]=r.toArray()}return t},t.createFromArray=function(e){var r=t.create(i.Query.createFromArray(e.query),e.total_items?e.total_items:0,e.total_hits?e.total_hits:0,e.aggregations instanceof Object?o.ResultAggregations.createFromArray(e.aggregations):null,e.suggests?e.suggests:null,e.items instanceof Array?e.items.map(function(t){return n.Item.createFromArray(t)}):[]),s=typeof e.subresults==typeof{}?e.subresults:{};for(var a in s)r.subresults[a]=i.Query.createFromArray(s[a]);return r},t}();e.Result=s},function(t,e,r){"use strict";e.__esModule=!0;var n=r(32),i=function(){function t(t){this.aggregations={},this.totalElements=t}return t.prototype.addAggregation=function(t,e){this.aggregations[t]=e},t.prototype.getAggregations=function(){return this.aggregations},t.prototype.getAggregation=function(t){return this.aggregations[t]instanceof n.ResultAggregation?this.aggregations[t]:null},t.prototype.hasNotEmptyAggregation=function(t){var e=this.getAggregation(t);return e instanceof n.ResultAggregation&&!e.isEmpty()},t.prototype.getTotalElements=function(){return this.totalElements},t.prototype.toArray=function(){var t={};for(var e in this.aggregations)t[e]=this.aggregations[e].toArray();var r={};return this.totalElements>0&&(r.total_elements=this.totalElements),Object.keys(t).length>0&&(r.aggregations=t),r},t.createFromArray=function(e){var r=new t("number"==typeof e.total_elements?e.total_elements:0);if(typeof e.aggregations==typeof{})for(var i in e.aggregations)r.addAggregation(i,n.ResultAggregation.createFromArray(e.aggregations[i]));return r},t}();e.ResultAggregations=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=r(41),o=r(20),s=r(21),a=function(t){function e(e,r,n,i,o,s){var a=t.call(this,r,i)||this;return a.host=e,a.timeout=n,a.cache=s,a.overrideQueries=o,a.cancelToken={},a}return n.__extends(e,t),e.prototype.get=function(t,e,r,a,u){return void 0===a&&(a={}),void 0===u&&(u={}),n.__awaiter(this,void 0,void 0,function(){var c,f=this;return n.__generator(this,function(l){return c=this,t=t.replace(/^\/*|\/*$/g,""),t="/"+(this.version+"/"+t).replace(/^\/*|\/*$/g,""),"get"===(e=e.toLowerCase())&&this.overrideQueries&&this.abort(t),[2,new Promise(function(l,p){var d="get"==e?{}:{"Content-Encoding":"gzip","Content-Type":"application/json"},h={url:t+"?"+o.Client.objectToUrlParameters(n.__assign({},r,a)),data:u,headers:d,method:e,baseURL:c.host.replace(/\/*$/g,""),timeout:c.timeout,transformRequest:[function(t){return JSON.stringify(t)}]};void 0!==f.cancelToken[t]&&(h.cancelToken=f.cancelToken[t].token),i.default.request(h).then(function(t){var e=new s.Response(t.status,t.data);return l(e)}).catch(function(t){if(void 0!==t.response){var e=new s.Response(t.response.status,t.response.data);return p(e)}})})]})})},e.prototype.abort=function(t){void 0!==this.cancelToken[t]&&this.cancelToken[t].cancel(),this.generateCancelToken(t)},e.prototype.generateCancelToken=function(t){this.cancelToken[t]=i.default.CancelToken.source()},e}(o.Client);e.AxiosClient=a},function(t,e,r){"use strict";t.exports=function(t,e){return function(){for(var r=new Array(arguments.length),n=0;n0&&(t.attributes=this.attributes),t},t.createFromArray=function(e){if(null==e||void 0===e.id||null==e.id)throw n.InvalidFormatError.userFormatNotValid();var r=typeof e.attributes==typeof{}?e.attributes:{};return new t(e.id,r)},t}();e.User=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(26);e.MULTIPLY="multiply",e.SUM="sum",e.AVG="avg",e.MAX="max",e.MIN="min";var i=function(){function t(){this.scoreStrategies=[]}return t.createEmpty=function(r){void 0===r&&(r=e.SUM);var n=new t;return n.scoreMode=r,n},t.prototype.addScoreStrategy=function(t){return this.scoreStrategies.push(t),this},t.prototype.getScoreStrategies=function(){return this.scoreStrategies},t.prototype.getScoreMode=function(){return this.scoreMode},t.prototype.toArray=function(){var t=[];for(var e in this.scoreStrategies)t.push(this.scoreStrategies[e].toArray());return{score_mode:this.scoreMode,score_strategies:t}},t.createFromArray=function(e){var r=void 0!==(e=JSON.parse(JSON.stringify(e))).score_mode?t.createEmpty(e.score_mode):t.createEmpty();for(var i in r.scoreStrategies=[],e.score_strategies)r.scoreStrategies.push(n.ScoreStrategy.createFromArray(e.score_strategies[i]));return r},t}();e.ScoreStrategies=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(5),i=r(4);e.DEFAULT_TYPE="default",e.DEFAULT_WEIGHT=1,e.BOOSTING_FIELD_VALUE="field_value",e.CUSTOM_FUNCTION="custom_function",e.DECAY="decay",e.DECAY_LINEAR="linear",e.DECAY_EXP="exp",e.DECAY_GAUSS="gauss",e.MODIFIER_NONE="none",e.MODIFIER_SQRT="sqrt",e.MODIFIER_LOG="log",e.MODIFIER_LN="ln",e.MODIFIER_SQUARE="square",e.SCORE_MODE_NONE="none",e.SCORE_MODE_SUM="sum",e.SCORE_MODE_AVG="avg",e.SCORE_MODE_MAX="max",e.SCORE_MODE_MIN="min",e.DEFAULT_MISSING=1,e.DEFAULT_FACTOR=1;var o=function(){function t(){this.type=e.DEFAULT_TYPE,this.filter=null,this.weight=e.DEFAULT_WEIGHT,this.scoreMode=e.SCORE_MODE_AVG,this.configuration={}}return t.prototype.getType=function(){return this.type},t.prototype.getConfigurationValue=function(t){return void 0===this.configuration[t]?null:this.configuration[t]},t.prototype.getWeight=function(){return this.weight},t.prototype.getScoreMode=function(){return this.scoreMode},t.prototype.getFilter=function(){return this.filter},t.createDefault=function(){return new t},t.createFieldBoosting=function(r,n,i,o,s,a,u){void 0===n&&(n=e.DEFAULT_FACTOR),void 0===i&&(i=e.DEFAULT_MISSING),void 0===o&&(o=e.MODIFIER_NONE),void 0===s&&(s=e.DEFAULT_WEIGHT),void 0===a&&(a=null),void 0===u&&(u=e.SCORE_MODE_AVG);var c=t.createDefault();return c.type=e.BOOSTING_FIELD_VALUE,c.configuration.field=r,c.configuration.factor=n,c.configuration.missing=i,c.configuration.modifier=o,c.weight=s,c.filter=t.fixFilterFieldPath(a),c.scoreMode=u,c},t.createCustomFunction=function(r,n,i,o){void 0===n&&(n=e.DEFAULT_WEIGHT),void 0===i&&(i=null),void 0===o&&(o=e.SCORE_MODE_AVG);var s=t.createDefault();return s.type=e.CUSTOM_FUNCTION,s.configuration.function=r,s.weight=n,s.filter=t.fixFilterFieldPath(i),s.scoreMode=o,s},t.createDecayFunction=function(r,n,i,o,s,a,u,c,f){void 0===u&&(u=e.DEFAULT_WEIGHT),void 0===c&&(c=null),void 0===f&&(f=e.SCORE_MODE_AVG);var l=t.createDefault();return l.type=e.DECAY,l.configuration.type=r,l.configuration.field=n,l.configuration.origin=i,l.configuration.scale=o,l.configuration.offset=s,l.configuration.decay=a,l.weight=u,l.filter=t.fixFilterFieldPath(c),l.scoreMode=f,l},t.fixFilterFieldPath=function(t){if(null==t)return t;var e=t.toArray();return e.field=n.Item.getPathByField(e.field),i.Filter.createFromArray(e)},t.prototype.toArray=function(){return{type:this.type,configuration:this.configuration,weight:this.weight,score_mode:this.scoreMode,filter:this.filter instanceof i.Filter?this.filter.toArray():null}},t.createFromArray=function(e){e=JSON.parse(JSON.stringify(e));var r=t.createDefault();return void 0!==e.type&&(r.type=e.type),void 0!==e.configuration&&(r.configuration=e.configuration),void 0!==e.weight&&(r.weight=e.weight),void 0!==e.score_mode&&(r.scoreMode=e.score_mode),"object"==typeof e.filter&&null!==e.filter&&(r.filter=i.Filter.createFromArray(e.filter)),r},t}();e.ScoreStrategy=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=r(28),o=r(2),s=r(29),a=r(30),u=r(31),c=r(5),f=r(8),l=r(12),p=r(35),d=r(61),h=function(t){function e(e,r,n,i,o){var s=t.call(this,r,n,i)||this;return s.httpClient=e,s.transformer=o,s}return n.__extends(e,t),e.prototype.getTransformer=function(){return this.transformer},e.prototype.addObject=function(t){var e=this.transformer.toItem(t);e instanceof c.Item&&this.addItem(e)},e.prototype.deleteObject=function(t){var e=this.transformer.toItemUUID(t);e instanceof f.ItemUUID&&this.deleteItem(e)},e.prototype.flushUpdateItems=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(r){return 0===t.length?[2]:[2,this.httpClient.get("/items","post",this.getCredentialsWithIndex(this.indexId),{},{items:t.map(function(t){return t.toArray()})}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})]})})},e.prototype.flushDeleteItems=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(r){return 0===t.length?[2]:[2,this.httpClient.get("/items","delete",this.getCredentialsWithIndex(this.indexId),{},{items:t.map(function(t){return t.toArray()})}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})]})})},e.prototype.query=function(t){return n.__awaiter(this,void 0,void 0,function(){var r;return n.__generator(this,function(n){switch(n.label){case 0:return r=this,[4,this.httpClient.get("/","get",this.getCredentialsWithIndex(this.indexId),{query:JSON.stringify(t.toArray())},{}).then(function(t){e.throwTransportableExceptionIfNeeded(t);var n=l.Result.createFromArray(t.getBody());return l.Result.create(n.getQuery(),n.getTotalItems(),n.getTotalHits(),n.getAggregations(),n.getSuggests(),r.transformer.fromItems(n.getItems()))})];case 1:return[2,n.sent()]}})})},e.prototype.updateItems=function(t,r){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(n){switch(n.label){case 0:return[4,this.httpClient.get("/items","put",this.getCredentialsWithIndex(this.indexId),{},{query:t.toArray(),changes:r.toArray()}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})];case 1:return[2,n.sent()]}})})},e.prototype.createIndex=function(t,r){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(n){switch(n.label){case 0:return[4,this.httpClient.get("/index","put",this.getCredentials(),{},{index:t.toArray(),config:r.toArray()}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})];case 1:return[2,n.sent()]}})})},e.prototype.deleteIndex=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(t){switch(t.label){case 0:return[4,this.httpClient.get("/index","delete",this.getCredentialsWithIndex(this.indexId),{},{}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})];case 1:return[2,t.sent()]}})})},e.prototype.resetIndex=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(t){switch(t.label){case 0:return[4,this.httpClient.get("/index/reset","post",this.getCredentialsWithIndex(this.indexId),{},{}).then(function(t){e.throwTransportableExceptionIfNeeded(t)})];case 1:return[2,t.sent()]}})})},e.prototype.checkIndex=function(t){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(t){switch(t.label){case 0:return[4,this.httpClient.get("/index","head",this.getCredentialsWithIndex(this.indexId),{},{}).then(function(t){return e.throwTransportableExceptionIfNeeded(t),200===t.getCode()})];case 1:return[2,t.sent()]}})})},e.prototype.getIndices=function(){return n.__awaiter(this,void 0,void 0,function(){return n.__generator(this,function(t){switch(t.label){case 0:return[4,this.httpClient.get("/indices","get",this.getCredentials(),{},{}).then(function(t){e.throwTransportableExceptionIfNeeded(t);for(var r=[],n=0,i=t.getBody();n0},t.prototype.hasLevels=function(){return(this.applicationType&i.FILTER_MUST_ALL_WITH_LEVELS)>0},t.prototype.getCounter=function(t){return this.counters[t]instanceof o.Counter?this.counters[t]:null},t.prototype.getAllElements=function(){return n.__assign({},this.activeElements,this.counters)},t.prototype.getTotalElements=function(){return this.totalElements},t.prototype.getActiveElements=function(){if(0===Object.keys(this.activeElements).length)return{};if(this.applicationType===i.FILTER_MUST_ALL_WITH_LEVELS){var t=null;for(var e in this.activeElements){var r=this.activeElements[e];r instanceof o.Counter&&(null==t&&(t=r),t=t.getLevel()>r.getLevel()?t:r)}return t instanceof o.Counter?{0:t}:null}return this.activeElements},t.prototype.cleanCountersByLevel=function(){for(var t in this.counters){this.counters[t].getLevel()!==this.highestActiveElement+1&&delete this.counters[t]}},t.prototype.isEmpty=function(){return 0==Object.keys(this.activeElements).length&&0==Object.keys(this.counters).length},t.prototype.toArray=function(){var t={name:this.name,counters:[],active_elements:[]};for(var e in this.counters)t.counters.push(this.counters[e].toArray());for(var e in this.applicationType!==i.FILTER_AT_LEAST_ONE&&(t.application_type=this.applicationType),this.totalElements>0&&(t.total_elements=this.totalElements),this.activeElements){var r=this.activeElements[e];t.active_elements.push(r instanceof o.Counter?r.toArray():r)}return this.highestActiveElement>0&&(t.highest_active_level=this.highestActiveElement),0===t.counters.length&&delete t.counters,0===t.active_elements.length&&delete t.active_elements,t},t.createFromArray=function(e){var r=[],n=e.active_elements;for(var s in n=typeof n==typeof[]?n:[]){var a=n[s];r.push(typeof a==typeof{}?o.Counter.createFromArray(a):a)}var u=new t(e.name,parseInt(e.application_type?e.application_type:i.FILTER_AT_LEAST_ONE),parseInt(e.total_elements?e.total_elements:0),[]);u.activeElements=r;var c=typeof e.counters==typeof[]?e.counters:[];for(var s in c){var f=c[s],l=o.Counter.createFromArray(f);u.counters[l.getId()]=l}return u.highestActiveElement="number"==typeof e.highest_active_level?e.highest_active_level:0,u},t}();e.ResultAggregation=s},function(t,e,r){"use strict";e.__esModule=!0;var n=r(34),i=function(){function t(t,e,r){this.values=t,this.used=e,this.n=r}return t.prototype.getId=function(){return"string"==typeof this.values.id?this.values.id:null},t.prototype.getName=function(){return"string"==typeof this.values.name?this.values.name:null},t.prototype.getSlug=function(){return"string"==typeof this.values.slug?this.values.slug:null},t.prototype.getLevel=function(){return"number"==typeof this.values.level?this.values.level:0},t.prototype.getValues=function(){return this.values},t.prototype.isUsed=function(){return this.used},t.prototype.getN=function(){return this.n},t.createByActiveElements=function(e,r,i){var o=n.Metadata.fromMetadata(e);if(null==o)return null;for(var s=i.length,a=!1;s--;)i[s]==o.id&&(a=!0);return new t(o,a,r)},t.prototype.toArray=function(){var t={values:this.values,n:this.n};return!0===this.used&&(t.used=!0),t},t.createFromArray=function(e){return new t((e=JSON.parse(JSON.stringify(e))).values,"boolean"==typeof e.used&&e.used,e.n)},t}();e.Counter=i},function(t,e,r){"use strict";e.__esModule=!0;var n=function(){function t(){}return t.toMetadata=function(t){t=JSON.parse(JSON.stringify(t));var e=[];for(var r in t)e.push(r+"##"+t[r]);return e.join("~~")},t.fromMetadata=function(t){var e={},r=t.split("~~"),n=0,i=0,o=null;for(var s in r){var a=r[s],u=a.split("##");u.length>1?(o=u[1],e[u[0]]=o):(o=a,e[n++]=o),i++}return 1==i&&(e={id:o,name:o}),void 0===e.id?null:e},t}();e.Metadata=n},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=function(){function t(t,e,r){this.itemsToUpdate=[],this.itemsToDelete=[],this.appId=t,this.indexId=e,this.token=r}return t.prototype.resetCachedElements=function(){this.itemsToUpdate=[],this.itemsToDelete=[]},t.prototype.addItem=function(t){this.itemsToUpdate.push(t)},t.prototype.addItems=function(t){for(var e in t)this.addItem(t[e])},t.prototype.deleteItem=function(t){this.itemsToDelete.push(t)},t.prototype.deleteItems=function(t){for(var e in t)this.deleteItem(t[e])},t.prototype.flush=function(e,r){return n.__awaiter(this,void 0,void 0,function(){var i=this;return n.__generator(this,function(n){return e||(e=500),r||(r=!1),r&&this.itemsToUpdate.length * @license MIT */ -t.exports=function(t){return null!=t&&(r(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&r(t.slice(0,0))}(t)||!!t._isBuffer)}},function(t,e,r){"use strict";var n=r(9),o=r(1),i=r(54),s=r(55);function a(t){this.defaults=t,this.interceptors={request:new i,response:new i}}a.prototype.request=function(t){"string"==typeof t&&(t=o.merge({url:arguments[0]},arguments[1])),(t=o.merge(n,{method:"get"},this.defaults,t)).method=t.method.toLowerCase();var e=[s,void 0],r=Promise.resolve(t);for(this.interceptors.request.forEach(function(t){e.unshift(t.fulfilled,t.rejected)}),this.interceptors.response.forEach(function(t){e.push(t.fulfilled,t.rejected)});e.length;)r=r.then(e.shift(),e.shift());return r},o.forEach(["delete","get","head","options"],function(t){a.prototype[t]=function(e,r){return this.request(o.merge(r||{},{method:t,url:e}))}}),o.forEach(["post","put","patch"],function(t){a.prototype[t]=function(e,r,n){return this.request(o.merge(n||{},{method:t,url:e,data:r}))}}),t.exports=a},function(t,e){var r,n,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(t){if(r===setTimeout)return setTimeout(t,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(t){r=i}try{n="function"==typeof clearTimeout?clearTimeout:s}catch(t){n=s}}();var u,c=[],f=!1,l=-1;function p(){f&&u&&(f=!1,u.length?c=u.concat(c):l=-1,c.length&&d())}function d(){if(!f){var t=a(p);f=!0;for(var e=c.length;e;){for(u=c,c=[];++l1)for(var r=1;r=0)return;s[e]="set-cookie"===e?(s[e]?s[e]:[]).concat([r]):s[e]?s[e]+", "+r:r}}),s):s}},function(t,e,r){"use strict";var n=r(1);t.exports=n.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function o(t){var n=t;return e&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return t=o(window.location.href),function(e){var r=n.isString(e)?o(e):e;return r.protocol===t.protocol&&r.host===t.host}}():function(){return!0}},function(t,e,r){"use strict";var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function o(){this.message="String contains an invalid character"}o.prototype=new Error,o.prototype.code=5,o.prototype.name="InvalidCharacterError",t.exports=function(t){for(var e,r,i=String(t),s="",a=0,u=n;i.charAt(0|a)||(u="=",a%1);s+=u.charAt(63&e>>8-a%1*8)){if((r=i.charCodeAt(a+=.75))>255)throw new o;e=e<<8|r}return s}},function(t,e,r){"use strict";var n=r(1);t.exports=n.isStandardBrowserEnv()?{write:function(t,e,r,o,i,s){var a=[];a.push(t+"="+encodeURIComponent(e)),n.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),n.isString(o)&&a.push("path="+o),n.isString(i)&&a.push("domain="+i),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(t,e,r){"use strict";var n=r(1);function o(){this.handlers=[]}o.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},o.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},o.prototype.forEach=function(t){n.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=o},function(t,e,r){"use strict";var n=r(1),o=r(56),i=r(18),s=r(9),a=r(57),u=r(58);function c(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return c(t),t.baseURL&&!a(t.url)&&(t.url=u(t.baseURL,t.url)),t.headers=t.headers||{},t.data=o(t.data,t.headers,t.transformRequest),t.headers=n.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),n.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||s.adapter)(t).then(function(e){return c(t),e.data=o(e.data,e.headers,t.transformResponse),e},function(e){return i(e)||(c(t),e&&e.response&&(e.response.data=o(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}},function(t,e,r){"use strict";var n=r(1);t.exports=function(t,e,r){return n.forEach(r,function(r){t=r(t,e)}),t}},function(t,e,r){"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},function(t,e,r){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},function(t,e,r){"use strict";var n=r(19);function o(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(t){e=t});var r=this;t(function(t){r.reason||(r.reason=new n(t),e(r.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var t;return{token:new o(function(e){t=e}),cancel:t}},t.exports=o},function(t,e,r){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),o=r(62),i=r(63),s=function(){function t(t,e,r,n,o){void 0===r&&(r=!1),void 0===n&&(n=0),void 0===o&&(o="0kb"),this.uuid=t,this.appUUID=e,this.isOK=r,this.docCount=n,this.size=o}return t.prototype.getUUID=function(){return this.uuid},t.prototype.getAppUUID=function(){return this.appUUID},t.prototype.isOk=function(){return this.isOK},t.prototype.getDocCount=function(){return this.docCount},t.prototype.getSize=function(){return this.size},t.prototype.toArray=function(){return{uuid:this.uuid.toArray(),app_id:this.appUUID.toArray(),is_ok:this.isOK,doc_count:this.docCount,size:this.size}},t.createFromArray=function(e){if(void 0===e.uuid||void 0===e.app_id)throw n.InvalidFormatError.indexFormatNotValid();return new t(o.IndexUUID.createFromArray(e.uuid),i.AppUUID.createFromArray(e.app_id),void 0!==e.is_ok&&e.is_ok,void 0===e.doc_count?0:e.doc_count,void 0===e.size?"0kb":e.size)},t}();e.Index=s},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),o=function(){function t(t){if(t.indexOf("_")>=0)throw n.InvalidFormatError.indexUUIDFormatNotValid();this.id=t}return t.createById=function(e){return new t(e)},t.prototype.getId=function(){return this.id},t.prototype.toArray=function(){return{id:this.id}},t.createFromArray=function(e){return new t((e=JSON.parse(JSON.stringify(e))).id)},t.prototype.composedUUID=function(){return this.id},t}();e.IndexUUID=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),o=function(){function t(t){if(t.indexOf("_")>=0)throw n.InvalidFormatError.appUUIDFormatNotValid();this.id=t}return t.createById=function(e){return new t(e)},t.prototype.getId=function(){return this.id},t.prototype.toArray=function(){return{id:this.id}},t.createFromArray=function(e){return new t((e=JSON.parse(JSON.stringify(e))).id)},t.prototype.composedUUID=function(){return this.id},t}();e.AppUUID=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=function(){function t(){this.cache={},this.size=0,this.cache={},this.size=0}return t.prototype.set=function(t,e){var r;this.cache=n.__assign({},this.cache,((r={})[t]=e,r)),this.size=this.size+1},t.prototype.get=function(t){return this.cache[t]},t.prototype.del=function(t){delete this.cache[t]},t.prototype.clear=function(){this.cache={},this.size=0},t}();e.InMemoryCache=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(37);e.DEFAULT_SHARDS=1,e.DEFAULT_REPLICAS=0;var o=function(){function t(t,r,n,o){void 0===t&&(t=null),void 0===r&&(r=!0),void 0===n&&(n=e.DEFAULT_SHARDS),void 0===o&&(o=e.DEFAULT_REPLICAS),this.synonyms=[],this.language=t,this.storeSearchableMetadata=r,this.shards=n,this.replicas=o}return t.prototype.getLanguage=function(){return this.language},t.prototype.shouldSearchableMetadataBeStored=function(){return this.storeSearchableMetadata},t.prototype.addSynonym=function(t){this.synonyms.push(t)},t.prototype.getSynonyms=function(){return this.synonyms},t.prototype.getShards=function(){return this.shards},t.prototype.getReplicas=function(){return this.replicas},t.prototype.toArray=function(){return{language:this.language,store_searchable_metadata:this.storeSearchableMetadata,synonyms:this.synonyms.map(function(t){return t.toArray()}),shards:this.shards,replicas:this.replicas}},t.createFromArray=function(r){var o=new t(r.language?r.language:null,"boolean"!=typeof r.store_searchable_metadata||r.store_searchable_metadata);return r.synonyms instanceof Array&&r.synonyms.length>0&&(o.synonyms=r.synonyms.map(function(t){return n.Synonym.createFromArray(t)})),o.shards="number"==typeof r.shards?r.shards:e.DEFAULT_SHARDS,o.replicas="number"==typeof r.replicas?r.replicas:e.DEFAULT_REPLICAS,o},t}();e.Config=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.throwEndpointNotAvailable=function(){return new e("Endpoint not available")},e}(r(3).ErrorWithMessage);e.EventError=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.getTransportableHTTPError=function(){return 403},e.createAppIdIsRequiredException=function(){return new e("AppId query parameter MUST be defined with a valid value")},e.createIndexIsRequiredException=function(){return new e("Index query parameter MUST be defined with a valid value")},e.createTokenIsRequiredException=function(){return new e("Token query parameter MUST be defined with a valid value")},e}(r(3).ErrorWithMessage);e.ForbiddenError=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.getTransportableHTTPError=function(){return 415},e.createUnsupportedContentTypeException=function(){return new e("This content type is not accepted. Please use application/json")},e}(r(3).ErrorWithMessage);e.UnsupportedContentTypeError=o},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),o=r(7),i=function(){function t(){}return t.fromFilterObject=function(t){throw TypeError("Method not valid")},t.prototype.toArray=function(){return{type:this.getName(),data:this.toFilterObject()}},t.createFromArray=function(t){return"CoordinateAndDistance"==t.type?s.fromFilterObject(t.data):"Polygon"==t.type?a.fromFilterObject(t.data):"Square"==t.type?u.fromFilterObject(t.data):void 0},t}();e.LocationRange=i;var s=function(t){function e(e,r){var n=t.call(this)||this;return n.coordinate=e,n.distance=r,n}return n.__extends(e,t),e.prototype.toFilterObject=function(){return{coordinate:this.coordinate.toArray(),distance:this.distance}},e.prototype.getName=function(){return"CoordinateAndDistance"},e.fromFilterObject=function(t){return new e(o.Coordinate.createFromArray(t.coordinate),t.distance)},e}(i);e.CoordinateAndDistance=s;var a=function(t){function e(e){var r=t.call(this)||this;if(e.length<3)throw new Error("A polygon needs more than two coordinates.");return r.coordinates=e,r}return n.__extends(e,t),e.prototype.toFilterObject=function(){var t=[];for(var e in this.coordinates)t.push(this.coordinates[e].toArray());return{coordinates:t}},e.prototype.getName=function(){return"Polygon"},e.fromFilterObject=function(t){var r=[];for(var n in t.coordinates)r.push(o.Coordinate.createFromArray(t.coordinates[n]));return new e(r)},e}(i);e.Polygon=a;var u=function(t){function e(e,r){var n=t.call(this)||this;return n.topLeftCoordinate=e,n.bottomRightCoordinate=r,n}return n.__extends(e,t),e.prototype.toFilterObject=function(){return{top_left:this.topLeftCoordinate.toArray(),bottom_right:this.bottomRightCoordinate.toArray()}},e.prototype.getName=function(){return"Square"},e.fromFilterObject=function(t){return new e(o.Coordinate.createFromArray(t.top_left),o.Coordinate.createFromArray(t.bottom_right))},e}(i);e.Square=u},function(t,e,r){"use strict";e.__esModule=!0;var n=function(){return function(){}}();e.HttpClient=n},function(t,e,r){"use strict";e.__esModule=!0,e.TYPE_VALUE=1,e.TYPE_LITERAL=4,e.TYPE_ARRAY_ELEMENT_UPDATE=8,e.TYPE_ARRAY_ELEMENT_ADD=16,e.TYPE_ARRAY_ELEMENT_DELETE=32,e.TYPE_ARRAY_EXPECTS_ELEMENT=24,e.TYPE_ARRAY=56;var n=function(){function t(){this.changes=[]}return t.prototype.addChange=function(t,r,n){void 0===n&&(n=e.TYPE_VALUE),this.changes.push({field:t,type:n,value:r})},t.prototype.updateElementFromList=function(t,r,n,o){this.changes.push({field:t,type:o|e.TYPE_ARRAY_ELEMENT_UPDATE,condition:r,value:n})},t.prototype.addElementInList=function(t,r,n){this.changes.push({field:t,type:n|e.TYPE_ARRAY_ELEMENT_ADD,value:r})},t.prototype.deleteElementFromList=function(t,r){this.changes.push({field:t,type:e.TYPE_ARRAY_ELEMENT_DELETE,condition:r})},t.prototype.getChanges=function(){return this.changes},t.create=function(){return new t},t.prototype.toArray=function(){return JSON.parse(JSON.stringify(this.changes))},t.createFromArray=function(e){e=JSON.parse(JSON.stringify(e));var r=t.create();return r.changes=e,r},t}();e.Changes=n},function(t,e,r){"use strict";e.__esModule=!0,e.RANGE_ZERO=0,e.RANGE_INFINITE=-1,e.RANGE_SEPARATOR="..";var n=function(){function t(){}return t.stringToArray=function(t){var r=t.split(e.RANGE_SEPARATOR),n=r[0],o=r[1],i=e.RANGE_ZERO,s=e.RANGE_INFINITE;return""!=n&&(i=parseInt(n)),""!=o&&(s=parseInt(o)),[i,s]},t.arrayToString=function(t){var r=["",""];return t[0]!=e.RANGE_ZERO&&(r[0]=String(t[0])),t[1]!=e.RANGE_INFINITE&&(r[1]=String(t[1])),r.join(e.RANGE_SEPARATOR)},t.createRanges=function(t,r,n){for(var o,i=[];t1)for(var r=1;r=0)return;s[e]="set-cookie"===e?(s[e]?s[e]:[]).concat([r]):s[e]?s[e]+", "+r:r}}),s):s}},function(t,e,r){"use strict";var n=r(1);t.exports=n.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function i(t){var n=t;return e&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return t=i(window.location.href),function(e){var r=n.isString(e)?i(e):e;return r.protocol===t.protocol&&r.host===t.host}}():function(){return!0}},function(t,e,r){"use strict";var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function i(){this.message="String contains an invalid character"}i.prototype=new Error,i.prototype.code=5,i.prototype.name="InvalidCharacterError",t.exports=function(t){for(var e,r,o=String(t),s="",a=0,u=n;o.charAt(0|a)||(u="=",a%1);s+=u.charAt(63&e>>8-a%1*8)){if((r=o.charCodeAt(a+=.75))>255)throw new i;e=e<<8|r}return s}},function(t,e,r){"use strict";var n=r(1);t.exports=n.isStandardBrowserEnv()?{write:function(t,e,r,i,o,s){var a=[];a.push(t+"="+encodeURIComponent(e)),n.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),n.isString(i)&&a.push("path="+i),n.isString(o)&&a.push("domain="+o),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(t,e,r){"use strict";var n=r(1);function i(){this.handlers=[]}i.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},i.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},i.prototype.forEach=function(t){n.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=i},function(t,e,r){"use strict";var n=r(1),i=r(56),o=r(18),s=r(9),a=r(57),u=r(58);function c(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return c(t),t.baseURL&&!a(t.url)&&(t.url=u(t.baseURL,t.url)),t.headers=t.headers||{},t.data=i(t.data,t.headers,t.transformRequest),t.headers=n.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),n.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||s.adapter)(t).then(function(e){return c(t),e.data=i(e.data,e.headers,t.transformResponse),e},function(e){return o(e)||(c(t),e&&e.response&&(e.response.data=i(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}},function(t,e,r){"use strict";var n=r(1);t.exports=function(t,e,r){return n.forEach(r,function(r){t=r(t,e)}),t}},function(t,e,r){"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},function(t,e,r){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},function(t,e,r){"use strict";var n=r(19);function i(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(t){e=t});var r=this;t(function(t){r.reason||(r.reason=new n(t),e(r.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var t;return{token:new i(function(e){t=e}),cancel:t}},t.exports=i},function(t,e,r){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),i=r(62),o=r(63),s=function(){function t(t,e,r,n,i){void 0===r&&(r=!1),void 0===n&&(n=0),void 0===i&&(i="0kb"),this.uuid=t,this.appUUID=e,this.isOK=r,this.docCount=n,this.size=i}return t.prototype.getUUID=function(){return this.uuid},t.prototype.getAppUUID=function(){return this.appUUID},t.prototype.isOk=function(){return this.isOK},t.prototype.getDocCount=function(){return this.docCount},t.prototype.getSize=function(){return this.size},t.prototype.toArray=function(){return{uuid:this.uuid.toArray(),app_id:this.appUUID.toArray(),is_ok:this.isOK,doc_count:this.docCount,size:this.size}},t.createFromArray=function(e){if(void 0===e.uuid||void 0===e.app_id)throw n.InvalidFormatError.indexFormatNotValid();return new t(i.IndexUUID.createFromArray(e.uuid),o.AppUUID.createFromArray(e.app_id),void 0!==e.is_ok&&e.is_ok,void 0===e.doc_count?0:e.doc_count,void 0===e.size?"0kb":e.size)},t}();e.Index=s},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),i=function(){function t(t){if(t.indexOf("_")>=0)throw n.InvalidFormatError.indexUUIDFormatNotValid();this.id=t}return t.createById=function(e){return new t(e)},t.prototype.getId=function(){return this.id},t.prototype.toArray=function(){return{id:this.id}},t.createFromArray=function(e){return new t((e=JSON.parse(JSON.stringify(e))).id)},t.prototype.composedUUID=function(){return this.id},t}();e.IndexUUID=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(2),i=function(){function t(t){if(t.indexOf("_")>=0)throw n.InvalidFormatError.appUUIDFormatNotValid();this.id=t}return t.createById=function(e){return new t(e)},t.prototype.getId=function(){return this.id},t.prototype.toArray=function(){return{id:this.id}},t.createFromArray=function(e){return new t((e=JSON.parse(JSON.stringify(e))).id)},t.prototype.composedUUID=function(){return this.id},t}();e.AppUUID=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=function(){function t(){this.cache={},this.size=0,this.cache={},this.size=0}return t.prototype.set=function(t,e){var r;this.cache=n.__assign({},this.cache,((r={})[t]=e,r)),this.size=this.size+1},t.prototype.get=function(t){return this.cache[t]},t.prototype.del=function(t){delete this.cache[t]},t.prototype.clear=function(){this.cache={},this.size=0},t}();e.InMemoryCache=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(37);e.DEFAULT_SHARDS=1,e.DEFAULT_REPLICAS=0;var i=function(){function t(t,r,n,i){void 0===t&&(t=null),void 0===r&&(r=!0),void 0===n&&(n=e.DEFAULT_SHARDS),void 0===i&&(i=e.DEFAULT_REPLICAS),this.synonyms=[],this.language=t,this.storeSearchableMetadata=r,this.shards=n,this.replicas=i}return t.prototype.getLanguage=function(){return this.language},t.prototype.shouldSearchableMetadataBeStored=function(){return this.storeSearchableMetadata},t.prototype.addSynonym=function(t){this.synonyms.push(t)},t.prototype.getSynonyms=function(){return this.synonyms},t.prototype.getShards=function(){return this.shards},t.prototype.getReplicas=function(){return this.replicas},t.prototype.toArray=function(){return{language:this.language,store_searchable_metadata:this.storeSearchableMetadata,synonyms:this.synonyms.map(function(t){return t.toArray()}),shards:this.shards,replicas:this.replicas}},t.createFromArray=function(r){var i=new t(r.language?r.language:null,"boolean"!=typeof r.store_searchable_metadata||r.store_searchable_metadata);return r.synonyms instanceof Array&&r.synonyms.length>0&&(i.synonyms=r.synonyms.map(function(t){return n.Synonym.createFromArray(t)})),i.shards="number"==typeof r.shards?r.shards:e.DEFAULT_SHARDS,i.replicas="number"==typeof r.replicas?r.replicas:e.DEFAULT_REPLICAS,i},t}();e.Config=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.throwEndpointNotAvailable=function(){return new e("Endpoint not available")},e}(r(3).ErrorWithMessage);e.EventError=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.getTransportableHTTPError=function(){return 403},e.createAppIdIsRequiredException=function(){return new e("AppId query parameter MUST be defined with a valid value")},e.createIndexIsRequiredException=function(){return new e("Index query parameter MUST be defined with a valid value")},e.createTokenIsRequiredException=function(){return new e("Token query parameter MUST be defined with a valid value")},e}(r(3).ErrorWithMessage);e.ForbiddenError=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.getTransportableHTTPError=function(){return 415},e.createUnsupportedContentTypeException=function(){return new e("This content type is not accepted. Please use application/json")},e}(r(3).ErrorWithMessage);e.UnsupportedContentTypeError=i},function(t,e,r){"use strict";e.__esModule=!0;var n=r(0),i=r(7),o=function(){function t(){}return t.fromFilterObject=function(t){throw TypeError("Method not valid")},t.prototype.toArray=function(){return{type:this.getName(),data:this.toFilterObject()}},t.createFromArray=function(t){return"CoordinateAndDistance"==t.type?s.fromFilterObject(t.data):"Polygon"==t.type?a.fromFilterObject(t.data):"Square"==t.type?u.fromFilterObject(t.data):void 0},t}();e.LocationRange=o;var s=function(t){function e(e,r){var n=t.call(this)||this;return n.coordinate=e,n.distance=r,n}return n.__extends(e,t),e.prototype.toFilterObject=function(){return{coordinate:this.coordinate.toArray(),distance:this.distance}},e.prototype.getName=function(){return"CoordinateAndDistance"},e.fromFilterObject=function(t){return new e(i.Coordinate.createFromArray(t.coordinate),t.distance)},e}(o);e.CoordinateAndDistance=s;var a=function(t){function e(e){var r=t.call(this)||this;if(e.length<3)throw new Error("A polygon needs more than two coordinates.");return r.coordinates=e,r}return n.__extends(e,t),e.prototype.toFilterObject=function(){var t=[];for(var e in this.coordinates)t.push(this.coordinates[e].toArray());return{coordinates:t}},e.prototype.getName=function(){return"Polygon"},e.fromFilterObject=function(t){var r=[];for(var n in t.coordinates)r.push(i.Coordinate.createFromArray(t.coordinates[n]));return new e(r)},e}(o);e.Polygon=a;var u=function(t){function e(e,r){var n=t.call(this)||this;return n.topLeftCoordinate=e,n.bottomRightCoordinate=r,n}return n.__extends(e,t),e.prototype.toFilterObject=function(){return{top_left:this.topLeftCoordinate.toArray(),bottom_right:this.bottomRightCoordinate.toArray()}},e.prototype.getName=function(){return"Square"},e.fromFilterObject=function(t){return new e(i.Coordinate.createFromArray(t.top_left),i.Coordinate.createFromArray(t.bottom_right))},e}(o);e.Square=u},function(t,e,r){"use strict";e.__esModule=!0;var n=function(){return function(){}}();e.HttpClient=n},function(t,e,r){"use strict";e.__esModule=!0,e.TYPE_VALUE=1,e.TYPE_LITERAL=4,e.TYPE_ARRAY_ELEMENT_UPDATE=8,e.TYPE_ARRAY_ELEMENT_ADD=16,e.TYPE_ARRAY_ELEMENT_DELETE=32,e.TYPE_ARRAY_EXPECTS_ELEMENT=24,e.TYPE_ARRAY=56;var n=function(){function t(){this.changes=[]}return t.prototype.addChange=function(t,r,n){void 0===n&&(n=e.TYPE_VALUE),this.changes.push({field:t,type:n,value:r})},t.prototype.updateElementFromList=function(t,r,n,i){this.changes.push({field:t,type:i|e.TYPE_ARRAY_ELEMENT_UPDATE,condition:r,value:n})},t.prototype.addElementInList=function(t,r,n){this.changes.push({field:t,type:n|e.TYPE_ARRAY_ELEMENT_ADD,value:r})},t.prototype.deleteElementFromList=function(t,r){this.changes.push({field:t,type:e.TYPE_ARRAY_ELEMENT_DELETE,condition:r})},t.prototype.getChanges=function(){return this.changes},t.create=function(){return new t},t.prototype.toArray=function(){return JSON.parse(JSON.stringify(this.changes))},t.createFromArray=function(e){e=JSON.parse(JSON.stringify(e));var r=t.create();return r.changes=e,r},t}();e.Changes=n},function(t,e,r){"use strict";e.__esModule=!0,e.RANGE_ZERO=0,e.RANGE_INFINITE=-1,e.RANGE_SEPARATOR="..";var n=function(){function t(){}return t.stringToArray=function(t){var r=t.split(e.RANGE_SEPARATOR),n=r[0],i=r[1],o=e.RANGE_ZERO,s=e.RANGE_INFINITE;return""!=n&&(o=parseInt(n)),""!=i&&(s=parseInt(i)),[o,s]},t.arrayToString=function(t){var r=["",""];return t[0]!=e.RANGE_ZERO&&(r[0]=String(t[0])),t[1]!=e.RANGE_INFINITE&&(r[1]=String(t[1])),r.join(e.RANGE_SEPARATOR)},t.createRanges=function(t,r,n){for(var i,o=[];t= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Class InvalidFormatError\n */\nvar InvalidFormatError = /** @class */ (function (_super) {\n tslib_1.__extends(InvalidFormatError, _super);\n function InvalidFormatError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n InvalidFormatError.getTransportableHTTPError = function () {\n return 400;\n };\n /**\n * Item representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.itemRepresentationNotValid = function () {\n return new InvalidFormatError(\"Item representation not valid. Expecting Item array serialized but found malformed data\");\n };\n /**\n * Item UUID representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.itemUUIDRepresentationNotValid = function () {\n return new InvalidFormatError(\"Item UUID representation not valid. Expecting UUID array serialized but found malformed data\");\n };\n /**\n * Create Composed UUID bad format.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.composedItemUUIDNotValid = function () {\n return new InvalidFormatError(\"A composed UUID should always follow this format: {id}~{type}.\");\n };\n /**\n * Create Query sorted by distance without coordinate.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.querySortedByDistanceWithoutCoordinate = function () {\n return new InvalidFormatError(\"In order to be able to sort by coordinates, you need to create a Query by using Query::createLocated() instead of Query::create()\");\n };\n /**\n * Query representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.queryFormatNotValid = function () {\n return new InvalidFormatError(\"Query Format not valid. Expecting a Query serialized but found malformed data\");\n };\n /**\n * Coordinate representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.coordinateFormatNotValid = function () {\n return new InvalidFormatError(\"A Coordinate should always contain a lat (Latitude) and a lon (Longitude)\");\n };\n /**\n * Config representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.configFormatNotValid = function () {\n return new InvalidFormatError(\"Config Format not valid. Expecting a Config serialized but found malformed data\");\n };\n /**\n * Token representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.tokenFormatNotValid = function () {\n return new InvalidFormatError(\"Token Format not valid. Expecting a Token serialized but found malformed data\");\n };\n /**\n * Index format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.indexFormatNotValid = function () {\n return new InvalidFormatError('Index Format not valid. Expecting an Index serialized but found malformed data');\n };\n /**\n * IndexUUI format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.indexUUIDFormatNotValid = function () {\n return new InvalidFormatError('IndexUUID Format not valid. Expecting an IndexUUID serialized but found malformed data');\n };\n /**\n * App format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.appUUIDFormatNotValid = function () {\n return new InvalidFormatError('AppUUID Format not valid. Expecting an AppUUID serialized but found malformed data');\n };\n /**\n * Campaign representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.campaignFormatNotValid = function () {\n return new InvalidFormatError(\"Campaign Format not valid. Expecting a Campaign serialized but found malformed data\");\n };\n /**\n * Changes representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.changesFormatNotValid = function () {\n return new InvalidFormatError(\"Changes Format not valid. Expecting a Changes serialized but found malformed data\");\n };\n /**\n * Boost clause representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.boostClauseFormatNotValid = function () {\n return new InvalidFormatError(\"Boost clause Format not valid. Expecting a Boost clause serialized but found malformed data\");\n };\n /**\n * token uuid representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.tokenUUIDFormatNotValid = function () {\n return new InvalidFormatError(\"Token UUID Format not valid. Expecting a TokenUUID serialized but found malformed data\");\n };\n /**\n * User representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.userFormatNotValid = function () {\n return new InvalidFormatError(\"User Format not valid. Expecting a User serialized but found malformed data\");\n };\n return InvalidFormatError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.InvalidFormatError = InvalidFormatError;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * ConnectError\n */\nvar ErrorWithMessage = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param message\n */\n function ErrorWithMessage(message) {\n this.message = message;\n }\n return ErrorWithMessage;\n}());\nexports.ErrorWithMessage = ErrorWithMessage;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * filter constants\n */\nexports.FILTER_MUST_ALL = 4;\nexports.FILTER_MUST_ALL_WITH_LEVELS = 5;\nexports.FILTER_AT_LEAST_ONE = 8;\nexports.FILTER_EXCLUDE = 16;\nexports.FILTER_PROMOTE = 32;\nexports.FILTER_TYPE_FIELD = \"field\";\nexports.FILTER_TYPE_RANGE = \"range\";\nexports.FILTER_TYPE_DATE_RANGE = \"date_range\";\nexports.FILTER_TYPE_GEO = \"geo\";\nexports.FILTER_TYPE_QUERY = \"query\";\n/**\n * Filter class\n */\nvar Filter = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param field\n * @param values\n * @param applicationType\n * @param filterType\n * @param filterTerms\n */\n function Filter(field, values, applicationType, filterType, filterTerms) {\n this.field = field;\n this.values = values;\n this.applicationType = applicationType;\n this.filterType = filterType;\n this.filterTerms = filterTerms;\n }\n /**\n * Get field\n *\n * @returns {string}\n */\n Filter.prototype.getField = function () {\n return this.field;\n };\n /**\n * Get values\n *\n * @returns {any}\n */\n Filter.prototype.getValues = function () {\n return this.values;\n };\n /**\n * Has value\n *\n * @param value\n *\n * @returns {boolean}\n */\n Filter.prototype.hasValue = function (value) {\n return typeof this.values[value] == \"undefined\";\n };\n /**\n * getApplicationType\n *\n * @returns {number}\n */\n Filter.prototype.getApplicationType = function () {\n return this.applicationType;\n };\n /**\n * Get filter type\n *\n * @return {string}\n */\n Filter.prototype.getFilterType = function () {\n return this.filterType;\n };\n /**\n * Get filter type\n *\n * @return {{}}\n */\n Filter.prototype.getFilterTerms = function () {\n return this.filterTerms;\n };\n /**\n * Create\n *\n * @param field\n * @param values\n * @param applicationType\n * @param filterType\n * @param filterTerms\n *\n * @return {Filter}\n */\n Filter.create = function (field, values, applicationType, filterType, filterTerms) {\n if (filterTerms === void 0) { filterTerms = []; }\n return new Filter(field, values, applicationType, filterType, filterTerms);\n };\n /**\n * To array\n *\n * @returns {Array}\n */\n Filter.prototype.toArray = function () {\n var filterAsArray = {};\n if (this.field != \"uuid.type\") {\n filterAsArray.field = this.field;\n }\n if (this.values.length > 0 ||\n Object.keys(this.values).length > 0) {\n filterAsArray.values = this.values;\n }\n if (this.applicationType != exports.FILTER_AT_LEAST_ONE) {\n filterAsArray.application_type = this.applicationType;\n }\n if (this.filterType != exports.FILTER_TYPE_FIELD) {\n filterAsArray.filter_type = this.filterType;\n }\n if (this.filterTerms.length > 0) {\n filterAsArray.filter_terms = this.filterTerms;\n }\n return filterAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Filter}\n */\n Filter.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.field == \"undefined\") {\n array.field = \"uuid.type\";\n }\n if (typeof array.values == \"undefined\") {\n array.values = [];\n }\n if (typeof array.application_type == \"undefined\") {\n array.application_type = exports.FILTER_AT_LEAST_ONE;\n }\n if (typeof array.filter_type == \"undefined\") {\n array.filter_type = exports.FILTER_TYPE_FIELD;\n }\n if (typeof array.filter_terms == \"undefined\") {\n array.filter_terms = [];\n }\n return Filter.create(array.field, array.values, array.application_type, array.filter_type, array.filter_terms);\n };\n return Filter;\n}());\nexports.Filter = Filter;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar Coordinate_1 = require(\"./Coordinate\");\nvar ItemUUID_1 = require(\"./ItemUUID\");\n/**\n * Item class\n */\nvar Item = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param uuid\n * @param coordinate\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n */\n function Item(uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n this.metadata = {};\n this.indexedMetadata = {};\n this.searchableMetadata = {};\n this.exactMatchingMetadata = [];\n this.suggest = [];\n this.highlights = {};\n this.promoted = false;\n this.uuid = uuid;\n this.coordinate = coordinate;\n this.metadata = metadata;\n this.indexedMetadata = indexedMetadata;\n this.searchableMetadata = searchableMetadata;\n this.exactMatchingMetadata = exactMatchingMetadata;\n this.suggest = suggest;\n }\n /**\n * Create new Item\n *\n * @param uuid\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n * @returns {Item}\n */\n Item.create = function (uuid, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n if (metadata === void 0) { metadata = {}; }\n if (indexedMetadata === void 0) { indexedMetadata = {}; }\n if (searchableMetadata === void 0) { searchableMetadata = {}; }\n if (exactMatchingMetadata === void 0) { exactMatchingMetadata = []; }\n if (suggest === void 0) { suggest = []; }\n return new Item(uuid, null, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest);\n };\n /**\n * Create new located Item\n *\n * @param uuid\n * @param coordinate\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n * @returns {Item}\n */\n Item.createLocated = function (uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n if (metadata === void 0) { metadata = {}; }\n if (indexedMetadata === void 0) { indexedMetadata = {}; }\n if (searchableMetadata === void 0) { searchableMetadata = {}; }\n if (exactMatchingMetadata === void 0) { exactMatchingMetadata = []; }\n if (suggest === void 0) { suggest = []; }\n return new Item(uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest);\n };\n /**\n * Get uuid\n *\n * @returns ItemUUID\n */\n Item.prototype.getUUID = function () {\n return this.uuid;\n };\n /**\n * Get id\n *\n * @returns string\n */\n Item.prototype.getId = function () {\n return this.uuid.getId();\n };\n /**\n * Get type\n *\n * @returns string\n */\n Item.prototype.getType = function () {\n return this.uuid.getType();\n };\n /**\n * Get coordinate\n *\n * @returns Coordinate|null\n */\n Item.prototype.getCoordinate = function () {\n return this.coordinate;\n };\n /**\n * Get distance\n *\n * @returns int\n */\n Item.prototype.getDistance = function () {\n return this.distance;\n };\n /**\n * Get metadata\n *\n * @returns Array\n */\n Item.prototype.getMetadata = function () {\n return this.metadata;\n };\n /**\n * Set metadata\n *\n * @param metadata\n */\n Item.prototype.setMetadata = function (metadata) {\n this.metadata = metadata;\n };\n /**\n * Add metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addMetadata = function (key, value) {\n this.metadata[key] = value;\n };\n /**\n * Get indexed metadata\n *\n * @returns Array\n */\n Item.prototype.getIndexedMetadata = function () {\n return this.indexedMetadata;\n };\n /**\n * Set indexed metadata\n *\n * @param indexedMetadata\n */\n Item.prototype.setIndexedMetadata = function (indexedMetadata) {\n this.indexedMetadata = indexedMetadata;\n };\n /**\n * Add indexed metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addIndexedMetadata = function (key, value) {\n this.indexedMetadata[key] = value;\n };\n /**\n * Get searchable metadata\n *\n * @returns Array\n */\n Item.prototype.getSearchableMetadata = function () {\n return this.searchableMetadata;\n };\n /**\n * Set searchable metadata\n *\n * @param searchableMetadata\n */\n Item.prototype.setSearchableMetadata = function (searchableMetadata) {\n this.searchableMetadata = searchableMetadata;\n };\n /**\n * Add searchable metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addSearchableMetadata = function (key, value) {\n this.searchableMetadata[key] = value;\n };\n /**\n * Get exactMatching metadata\n *\n * @returns Array\n */\n Item.prototype.getExactMatchingMetadata = function () {\n return this.exactMatchingMetadata;\n };\n /**\n * Set exactMatching metadata\n *\n * @param exactMatchingMetadata\n */\n Item.prototype.setExactMatchingMetadata = function (exactMatchingMetadata) {\n this.exactMatchingMetadata = exactMatchingMetadata;\n };\n /**\n * Add exactMatching metadata\n *\n * @param value\n */\n Item.prototype.addExactMatchingMetadata = function (value) {\n this.exactMatchingMetadata.push(value);\n };\n /**\n * Get all metadata\n *\n * @returns {{}}\n */\n Item.prototype.getAllMetadata = function () {\n return tslib_1.__assign({}, this.metadata, this.indexedMetadata);\n };\n /**\n * Get\n *\n * @param key\n *\n * @returns mixed|null\n */\n Item.prototype.get = function (key) {\n var allMetadata = this.getAllMetadata();\n return (typeof allMetadata[key] != \"undefined\")\n ? allMetadata[key]\n : null;\n };\n /**\n * Get suggest\n *\n * @returns Array\n */\n Item.prototype.getSuggest = function () {\n return this.suggest;\n };\n /**\n * Get highlights\n *\n * @returns Array\n */\n Item.prototype.getHighlights = function () {\n return this.highlights;\n };\n /**\n * Get highlight\n *\n * @param key\n *\n * @return string|null\n */\n Item.prototype.getHighlight = function (key) {\n return (typeof this.highlights[key] != \"undefined\")\n ? this.highlights[key]\n : null;\n };\n /**\n * Is promoted\n *\n * @returns boolean\n */\n Item.prototype.isPromoted = function () {\n return this.promoted;\n };\n /**\n * Set score\n *\n * @param score\n *\n * @return {Item}\n */\n Item.prototype.setScore = function (score) {\n this.score = score;\n return this;\n };\n /**\n * Get score\n *\n * @return {number}\n */\n Item.prototype.getScore = function () {\n return this.score;\n };\n /**\n * To array\n */\n Item.prototype.toArray = function () {\n var itemAsArray = {\n uuid: this.uuid.toArray()\n };\n if (this.coordinate instanceof Coordinate_1.Coordinate) {\n itemAsArray.coordinate = this.coordinate.toArray();\n }\n if (Object.keys(this.metadata).length > 0) {\n itemAsArray.metadata = this.metadata;\n }\n if (Object.keys(this.indexedMetadata).length > 0) {\n itemAsArray.indexed_metadata = this.indexedMetadata;\n }\n if (Object.keys(this.searchableMetadata).length > 0) {\n itemAsArray.searchable_metadata = this.searchableMetadata;\n }\n if (this.exactMatchingMetadata.length > 0) {\n itemAsArray.exact_matching_metadata = this.exactMatchingMetadata;\n }\n if (this.suggest.length > 0) {\n itemAsArray.suggest = this.suggest;\n }\n if (Object.keys(this.highlights).length > 0) {\n itemAsArray.highlights = this.highlights;\n }\n if (this.isPromoted()) {\n itemAsArray.is_promoted = true;\n }\n if (typeof this.distance != \"undefined\") {\n itemAsArray.distance = this.distance;\n }\n if (typeof this.score != \"undefined\") {\n itemAsArray.score = this.score;\n }\n return itemAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n */\n Item.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.uuid != \"object\") {\n throw InvalidFormatError_1.InvalidFormatError.itemUUIDRepresentationNotValid();\n }\n if (typeof array.coordinate != \"undefined\" &&\n typeof array.coordinate != \"object\") {\n throw InvalidFormatError_1.InvalidFormatError.coordinateFormatNotValid();\n }\n var item = (typeof array.coordinate == \"object\" &&\n array.coordinate != null)\n ? Item.createLocated(ItemUUID_1.ItemUUID.createFromArray(array.uuid), Coordinate_1.Coordinate.createFromArray(array.coordinate), ((typeof array.metadata == \"undefined\") ? {} : array.metadata), ((typeof array.indexed_metadata == \"undefined\") ? {} : array.indexed_metadata), ((typeof array.searchable_metadata == \"undefined\") ? {} : array.searchable_metadata), ((typeof array.exact_matching_metadata == \"undefined\") ? [] : array.exact_matching_metadata), ((typeof array.suggest == \"undefined\") ? [] : array.suggest))\n : Item.create(ItemUUID_1.ItemUUID.createFromArray(array.uuid), ((typeof array.metadata == \"undefined\") ? {} : array.metadata), ((typeof array.indexed_metadata == \"undefined\") ? {} : array.indexed_metadata), ((typeof array.searchable_metadata == \"undefined\") ? {} : array.searchable_metadata), ((typeof array.exact_matching_metadata == \"undefined\") ? [] : array.exact_matching_metadata), ((typeof array.suggest == \"undefined\") ? [] : array.suggest));\n if (typeof array.distance != \"undefined\" &&\n array.distance != null) {\n item.distance = array.distance;\n }\n if (typeof array.highlights == \"object\" &&\n array.distance != null) {\n item.highlights = array.highlights;\n }\n if (typeof array.is_promoted != \"undefined\" &&\n array.is_promoted != null) {\n item.promoted = array.is_promoted;\n }\n if (typeof array.score != \"undefined\" &&\n array.score != null) {\n item.score = array.score;\n }\n return item;\n };\n /**\n * Compose uuid\n *\n * @returns string\n */\n Item.prototype.composeUUID = function () {\n return this.uuid.composedUUID();\n };\n /**\n * Get path by field.\n *\n * @param field\n *\n * @returns {string}\n */\n Item.getPathByField = function (field) {\n return ([\"id\", \"type\"].indexOf(field) > -1)\n ? \"uuid.\" + field\n : \"indexed_metadata.\" + field;\n };\n return Item;\n}());\nexports.Item = Item;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Coordinate_1 = require(\"../Model/Coordinate\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\nvar Item_1 = require(\"../Model/Item\");\nvar User_1 = require(\"../Model/User\");\nvar Aggregation_1 = require(\"./Aggregation\");\nvar Filter_1 = require(\"./Filter\");\nvar Filter_2 = require(\"./Filter\");\nvar Aggregation_2 = require(\"./Aggregation\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar Filter_3 = require(\"./Filter\");\nvar ScoreStrategies_1 = require(\"./ScoreStrategies\");\nvar SortBy_1 = require(\"./SortBy\");\n/**\n * Query constants\n */\nexports.QUERY_DEFAULT_FROM = 0;\nexports.QUERY_DEFAULT_PAGE = 1;\nexports.QUERY_DEFAULT_SIZE = 10;\nexports.QUERY_INFINITE_SIZE = 1000;\nexports.NO_MIN_SCORE = 0.0;\n/**\n * Query class\n */\nvar Query = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param queryText\n */\n function Query(queryText) {\n this.fields = [];\n this.universeFilters = {};\n this.filters = {};\n this.itemsPromoted = [];\n this.aggregations = {};\n this.resultsEnabled = true;\n this.aggregationsEnabled = true;\n this.suggestionsEnabled = false;\n this.highlightsEnabled = false;\n this.filterFields = [];\n this.minScore = exports.NO_MIN_SCORE;\n this.sortByInstance = SortBy_1.SortBy.create();\n this.filters._query = Filter_1.Filter.create(\"\", [queryText], 0, Filter_3.FILTER_TYPE_QUERY);\n }\n /**\n * Created located\n *\n * @param coordinate\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Query.createLocated = function (coordinate, queryText, page, size) {\n if (page === void 0) { page = exports.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = exports.QUERY_DEFAULT_SIZE; }\n var query = Query.create(queryText, page, size);\n query.coordinate = coordinate;\n return query;\n };\n /**\n * Create\n *\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Query.create = function (queryText, page, size) {\n if (page === void 0) { page = exports.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = exports.QUERY_DEFAULT_SIZE; }\n page = Math.max(1, page);\n var query = new Query(queryText);\n query.from = (page - 1) * size;\n query.size = size;\n query.page = page;\n return query;\n };\n /**\n * Create match all\n *\n * @return {Query}\n */\n Query.createMatchAll = function () {\n return Query.create(\"\", exports.QUERY_DEFAULT_PAGE, exports.QUERY_DEFAULT_SIZE);\n };\n /**\n * Create by UUID\n *\n * @param uuid\n *\n * @return {Query}\n */\n Query.createByUUID = function (uuid) {\n return Query.createByUUIDs(uuid);\n };\n /**\n * Create by UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.createByUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n var ids = [];\n for (var i in uuids) {\n ids.push(uuids[i].composedUUID());\n }\n var query = Query.create(\"\", exports.QUERY_DEFAULT_PAGE, ids.length)\n .disableAggregations()\n .disableSuggestions();\n query.filters._id = Filter_1.Filter.create(\"_id\", ids, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD);\n return query;\n };\n /**\n * set fields\n *\n * @param fields\n *\n * @return {Query}\n */\n Query.prototype.setFields = function (fields) {\n this.fields = fields;\n return this;\n };\n /**\n * get fields\n *\n * @return {string[]}\n */\n Query.prototype.getFields = function () {\n return this.fields;\n };\n /**\n * Filter universe by types\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByTypes = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"type\");\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"type\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters.type;\n }\n return this;\n };\n /**\n * Filter by types\n *\n * @param values\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByTypes = function (values, aggregate, aggregationSort) {\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a, _b;\n var fieldPath = Item_1.Item.getPathByField(\"type\");\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"type\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters.type;\n }\n if (aggregate) {\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_b = {}, _b[\"type\"] = Aggregation_1.Aggregation.create(\"type\", fieldPath, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort), _b));\n }\n return this;\n };\n /**\n * Filter universe by ids\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByIds = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"id\");\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"id\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters.id;\n }\n return this;\n };\n /**\n * Filter by ids\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterByIds = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"id\");\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"id\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters.id;\n }\n return this;\n };\n /**\n * Filter universe by\n *\n * @param field\n * @param values\n * @param applicationType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseBy = function (field, values, applicationType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters[field];\n }\n return this;\n };\n /**\n * Filter by\n *\n * @param filterName\n * @param field\n * @param values\n * @param applicationType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterBy = function (filterName, field, values, applicationType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters[filterName];\n }\n if (aggregate) {\n this.aggregateBy(filterName, field, applicationType, aggregationSort);\n }\n return this;\n };\n /**\n * Filter universe by range\n *\n * @param field\n * @param values\n * @param applicationType\n * @param rangeType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByRange = function (field, values, applicationType, rangeType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));\n }\n else {\n delete this.universeFilters[field];\n }\n return this;\n };\n /**\n * Filter universe by date range\n *\n * @param field\n * @param values\n * @param applicationType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByDateRange = function (field, values, applicationType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n return this.filterUniverseByRange(field, values, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE);\n };\n /**\n * Filter by range\n *\n * @param filterName\n * @param field\n * @param options\n * @param values\n * @param applicationType\n * @param rangeType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByRange = function (filterName, field, options, values, applicationType, rangeType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length !== 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));\n }\n else {\n delete this.filters[filterName];\n }\n if (aggregate) {\n this.aggregateByRange(filterName, fieldPath, options, applicationType, rangeType, aggregationSort);\n }\n return this;\n };\n /**\n * Filter by date range\n *\n * @param filterName\n * @param field\n * @param options\n * @param values\n * @param applicationType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByDateRange = function (filterName, field, options, values, applicationType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n return this.filterByRange(filterName, field, options, values, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE, aggregate, aggregationSort);\n };\n /**\n * Filter universe by location\n *\n * @param locationRange\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByLocation = function (locationRange) {\n var _a;\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"coordinate\"] = Filter_1.Filter.create(\"coordinate\", locationRange.toArray(), Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_GEO), _a));\n return this;\n };\n /**\n * Set filter fields\n *\n * @param filterFields\n *\n * @return {Query}\n */\n Query.prototype.setFilterFields = function (filterFields) {\n this.filterFields = filterFields;\n return this;\n };\n /**\n * Get filter fields\n *\n * @return {string[]}\n */\n Query.prototype.getFilterFields = function () {\n return this.filterFields;\n };\n /**\n * Sort by\n *\n * @param sortBy\n *\n * @return {Query}\n */\n Query.prototype.sortBy = function (sortBy) {\n if (sortBy.isSortedByGeoDistance()) {\n if (!(this.coordinate instanceof Coordinate_1.Coordinate)) {\n throw InvalidFormatError_1.InvalidFormatError.querySortedByDistanceWithoutCoordinate();\n }\n sortBy.setCoordinate(this.coordinate);\n }\n this.sortByInstance = sortBy;\n return this;\n };\n /**\n * Aggregate by\n *\n * @param filterName\n * @param field\n * @param applicationType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateBy = function (filterName, field, applicationType, aggregationSort, limit) {\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n var _a;\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort, limit), _a));\n return this;\n };\n /**\n * Aggregate by range\n *\n * @param filterName\n * @param field\n * @param options\n * @param applicationType\n * @param rangeType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateByRange = function (filterName, field, options, applicationType, rangeType, aggregationSort, limit) {\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n var _a;\n if (options.length === 0) {\n return this;\n }\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, rangeType, options, aggregationSort, limit), _a));\n return this;\n };\n /**\n * Aggregate by date range\n *\n * @param filterName\n * @param field\n * @param options\n * @param applicationType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateByDateRange = function (filterName, field, options, applicationType, aggregationSort, limit) {\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n return this.aggregateByRange(filterName, field, options, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE, aggregationSort, limit);\n };\n /**\n * Get aggregations\n *\n * @return {{}}\n */\n Query.prototype.getAggregations = function () {\n return this.aggregations;\n };\n /**\n * Get aggregation by name\n *\n * @param aggregationName\n *\n * @return {Aggregation|null}\n */\n Query.prototype.getAggregation = function (aggregationName) {\n return this.aggregations[aggregationName] instanceof Aggregation_1.Aggregation\n ? this.aggregations[aggregationName]\n : null;\n };\n /**\n * Get query text\n *\n * @return {string}\n */\n Query.prototype.getQueryText = function () {\n var filter = this.filters._query;\n return filter instanceof Filter_1.Filter\n ? filter.getValues()[0]\n : \"\";\n };\n /**\n * Get universe filters\n *\n * @return {{}}\n */\n Query.prototype.getUniverseFilters = function () {\n return this.universeFilters;\n };\n /**\n * Get universe filter by name\n *\n * @param filterName\n *\n * @return {Filter|null}\n */\n Query.prototype.getUniverseFilter = function (filterName) {\n return this.universeFilters[filterName] instanceof Filter_1.Filter\n ? this.universeFilters[filterName]\n : null;\n };\n /**\n * Get filters\n *\n * @return {{}}\n */\n Query.prototype.getFilters = function () {\n return this.filters;\n };\n /**\n * Get filter by name\n *\n * @param filterName\n *\n * @return {Filter|null}\n */\n Query.prototype.getFilter = function (filterName) {\n return this.filters[filterName] instanceof Filter_1.Filter\n ? this.filters[filterName]\n : null;\n };\n /**\n * Get filter by field\n *\n * @param fieldName\n *\n * @return {Filter|null}\n */\n Query.prototype.getFilterByField = function (fieldName) {\n var fieldPath = Item_1.Item.getPathByField(fieldName);\n for (var i in this.filters) {\n if (this.filters[i].getField() == fieldPath) {\n return this.filters[i];\n }\n }\n return null;\n };\n /**\n * Get sort by\n *\n * @return {SortBy}\n */\n Query.prototype.getSortBy = function () {\n return this.sortByInstance;\n };\n /**\n * Get from\n *\n * @return {number}\n */\n Query.prototype.getFrom = function () {\n return this.from;\n };\n /**\n * Get size\n *\n * @return {number}\n */\n Query.prototype.getSize = function () {\n return this.size;\n };\n /**\n * Get page\n *\n * @return {number}\n */\n Query.prototype.getPage = function () {\n return this.page;\n };\n /**\n * Enable results\n *\n * @return {Query}\n */\n Query.prototype.enableResults = function () {\n this.resultsEnabled = true;\n return this;\n };\n /**\n * Disable results\n *\n * @return {Query}\n */\n Query.prototype.disableResults = function () {\n this.resultsEnabled = false;\n return this;\n };\n /**\n * Are results enabled\n *\n * @return {boolean}\n */\n Query.prototype.areResultsEnabled = function () {\n return this.resultsEnabled;\n };\n /**\n * Enable aggregations\n *\n * @return {Query}\n */\n Query.prototype.enableAggregations = function () {\n this.aggregationsEnabled = true;\n return this;\n };\n /**\n * Disable aggregations\n *\n * @return {Query}\n */\n Query.prototype.disableAggregations = function () {\n this.aggregationsEnabled = false;\n return this;\n };\n /**\n * Are aggregations enabled\n *\n * @return {boolean}\n */\n Query.prototype.areAggregationsEnabled = function () {\n return this.aggregationsEnabled;\n };\n /**\n * Enable suggestions\n *\n * @return {Query}\n */\n Query.prototype.enableSuggestions = function () {\n this.suggestionsEnabled = true;\n return this;\n };\n /**\n * Disable suggestions\n *\n * @return {Query}\n */\n Query.prototype.disableSuggestions = function () {\n this.suggestionsEnabled = false;\n return this;\n };\n /**\n * Are suggestions enabled\n *\n * @return {boolean}\n */\n Query.prototype.areSuggestionsEnabled = function () {\n return this.suggestionsEnabled;\n };\n /**\n * Enable highlights\n *\n * @return {Query}\n */\n Query.prototype.enableHighlights = function () {\n this.highlightsEnabled = true;\n return this;\n };\n /**\n * Disable highlights\n *\n * @return {Query}\n */\n Query.prototype.disableHighlights = function () {\n this.highlightsEnabled = false;\n return this;\n };\n /**\n * Are highlights enabled\n *\n * @return {boolean}\n */\n Query.prototype.areHighlightsEnabled = function () {\n return this.highlightsEnabled;\n };\n /**\n * Promote uuid\n *\n * @param itemUUID\n *\n * @return {Query}\n */\n Query.prototype.promoteUUID = function (itemUUID) {\n this\n .itemsPromoted\n .push(itemUUID);\n return this;\n };\n /**\n * Promote UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.prototype.promoteUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n this.itemsPromoted = uuids;\n return this;\n };\n /**\n * Get promoted UUIDs\n *\n * @return {ItemUUID[]}\n */\n Query.prototype.getItemsPromoted = function () {\n return this.itemsPromoted;\n };\n /**\n * Exclude id\n *\n * @param itemUUID\n *\n * @return {Query}\n */\n Query.prototype.excludeUUID = function (itemUUID) {\n this.excludeUUIDs(itemUUID);\n return this;\n };\n /**\n * Exclude UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.prototype.excludeUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n var _a;\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"excluded_ids\"] = Filter_1.Filter.create(\"_id\", uuids.map(function (uuid) { return uuid.composedUUID(); }), Filter_2.FILTER_EXCLUDE, Filter_2.FILTER_TYPE_FIELD), _a));\n return this;\n };\n /**\n * Get score strategies\n *\n * @return {ScoreStrategies}\n */\n Query.prototype.getScoreStrategies = function () {\n return this.scoreStrategies;\n };\n /**\n * Set score strategies\n *\n * @param scoreStrategies\n */\n Query.prototype.setScoreStrategies = function (scoreStrategies) {\n this.scoreStrategies = scoreStrategies;\n return this;\n };\n /**\n * Get fuzziness\n *\n * @return any\n */\n Query.prototype.getFuzziness = function () {\n return this.fuzziness;\n };\n /**\n * Set fuzziness\n *\n * @param fuzziness\n *\n * @return {Query}\n */\n Query.prototype.setFuzziness = function (fuzziness) {\n this.fuzziness = fuzziness;\n return this;\n };\n /**\n * Set auto fuzziness\n *\n * @return {Query}\n */\n Query.prototype.setAutoFuzziness = function () {\n this.fuzziness = 'AUTO';\n return this;\n };\n /**\n * Get min score\n *\n * @return any\n */\n Query.prototype.getMinScore = function () {\n return this.minScore;\n };\n /**\n * Set min score\n *\n * @param minScore\n *\n * @return {Query}\n */\n Query.prototype.setMinScore = function (minScore) {\n this.minScore = minScore;\n return this;\n };\n /**\n * By user\n *\n * @param user\n *\n * @return {Query}\n */\n Query.prototype.byUser = function (user) {\n this.user = user;\n return this;\n };\n /**\n * By anyone\n *\n * @return {null}\n */\n Query.prototype.anonymously = function () {\n this.user = null;\n return null;\n };\n /**\n * Get user\n *\n * @return {User}\n */\n Query.prototype.getUser = function () {\n return this.user;\n };\n /**\n * To array\n *\n * @return {any}\n */\n Query.prototype.toArray = function () {\n var array = {};\n if (this.getQueryText() !== \"\") {\n array.q = this.getQueryText();\n }\n if (this.coordinate instanceof Coordinate_1.Coordinate) {\n array.coordinate = this.coordinate.toArray();\n }\n /**\n * Fields\n */\n if (this.fields instanceof Array &&\n this.fields.length > 0) {\n array.fields = this.fields;\n }\n /**\n * Universe Filters\n */\n if (Object.keys(this.universeFilters).length) {\n array.universe_filters = {};\n for (var i in this.universeFilters) {\n var universeFilter = this.universeFilters[i];\n array.universe_filters[i] = universeFilter.toArray();\n }\n }\n /**\n * Filters\n */\n if (this.filters instanceof Object &&\n Object.keys(this.filters).length) {\n array.filters = {};\n for (var i in this.filters) {\n var filter = this.filters[i];\n if (filter.getFilterType() !== Filter_3.FILTER_TYPE_QUERY) {\n array.filters[i] = filter.toArray();\n }\n }\n }\n /**\n * Aggregations\n */\n if (this.aggregations instanceof Object &&\n Object.keys(this.aggregations).length) {\n array.aggregations = {};\n for (var i in this.aggregations) {\n var aggregation = this.aggregations[i];\n array.aggregations[i] = aggregation.toArray();\n }\n }\n /**\n * Sort\n */\n var sort = this.sortByInstance.toArray();\n if (Object.keys(sort).length) {\n array.sort = sort;\n }\n /**\n * Page\n */\n var page = this.page;\n if (page !== exports.QUERY_DEFAULT_PAGE) {\n array.page = page;\n }\n /**\n * Size\n */\n var size = this.size;\n if (size !== exports.QUERY_DEFAULT_SIZE) {\n array.size = size;\n }\n /**\n * Booleans\n */\n if (this.resultsEnabled === false) {\n array.results_enabled = false;\n }\n if (this.suggestionsEnabled === true) {\n array.suggestions_enabled = true;\n }\n if (this.highlightsEnabled === true) {\n array.highlights_enabled = true;\n }\n if (this.aggregationsEnabled === false) {\n array.aggregations_enabled = false;\n }\n /**\n * Filter fields\n */\n if (this.filterFields instanceof Array &&\n this.filterFields.length > 0) {\n array.filter_fields = this.filterFields;\n }\n /**\n * Score strategies\n */\n if (this.scoreStrategies instanceof ScoreStrategies_1.ScoreStrategies) {\n var scoreStrategiesAsArray = this.scoreStrategies.toArray();\n if (Object.keys(scoreStrategiesAsArray).length > 0) {\n array.score_strategies = scoreStrategiesAsArray;\n }\n }\n if (this.fuzziness !== null) {\n array.fuzziness = this.fuzziness;\n }\n /**\n * Min score\n */\n var minScore = this.minScore;\n if (minScore !== exports.NO_MIN_SCORE) {\n array.min_score = minScore;\n }\n /**\n * User\n */\n if (this.user instanceof User_1.User) {\n var userAsArray = this.user.toArray();\n if (Object.keys(userAsArray).length > 0) {\n array.user = userAsArray;\n }\n }\n /**\n * items promoted\n */\n if (this.itemsPromoted.length > 0) {\n array.items_promoted = [];\n for (var i in this.itemsPromoted) {\n array\n .items_promoted\n .push(this.itemsPromoted[i].toArray());\n }\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Query}\n */\n Query.createFromArray = function (array) {\n var query = array.coordinate instanceof Object\n ? Query.createLocated(Coordinate_1.Coordinate.createFromArray(array.coordinate), array.q ? array.q : \"\", array.page ? array.page : exports.QUERY_DEFAULT_PAGE, array.size ? array.size : exports.QUERY_DEFAULT_SIZE)\n : Query.create(array.q ? array.q : \"\", array.page ? array.page : exports.QUERY_DEFAULT_PAGE, array.size ? array.size : exports.QUERY_DEFAULT_SIZE);\n /**\n * Fields\n */\n query.fields = array.fields instanceof Array\n ? array.fields\n : [];\n /**\n * Aggregations\n */\n var aggregationsAsArray = typeof array.aggregations === typeof {}\n ? array.aggregations\n : {};\n for (var i in aggregationsAsArray) {\n query.aggregations[i] = Aggregation_1.Aggregation.createFromArray(aggregationsAsArray[i]);\n }\n /**\n * Sort\n */\n var sortAsArray = typeof array.sort === typeof {}\n ? array.sort\n : {};\n if (Object.keys(sortAsArray).length > 0) {\n query.sortByInstance = SortBy_1.SortBy.createFromArray(sortAsArray);\n }\n /**\n * Filters\n */\n var filtersAsArray = typeof array.filters === typeof {}\n ? array.filters\n : {};\n for (var i in filtersAsArray) {\n query.filters[i] = Filter_1.Filter.createFromArray(filtersAsArray[i]);\n }\n /**\n * Universe Filters\n */\n var universeFiltersAsArray = typeof array.universe_filters === typeof {}\n ? array.universe_filters\n : {};\n for (var i in universeFiltersAsArray) {\n query.universeFilters[i] = Filter_1.Filter.createFromArray(universeFiltersAsArray[i]);\n }\n /**\n * Booleans\n */\n query.resultsEnabled = typeof array.results_enabled === \"boolean\"\n ? array.results_enabled\n : true;\n query.suggestionsEnabled = typeof array.suggestions_enabled === \"boolean\"\n ? array.suggestions_enabled\n : false;\n query.aggregationsEnabled = typeof array.aggregations_enabled === \"boolean\"\n ? array.aggregations_enabled\n : true;\n query.highlightsEnabled = typeof array.highlights_enabled === \"boolean\"\n ? array.highlights_enabled\n : false;\n query.fuzziness = array.fuzziness;\n query.minScore = array.min_score ? array.min_score : exports.NO_MIN_SCORE;\n /**\n * Items promoted\n */\n var itemsPromotedAsArray = typeof array.items_promoted === typeof {}\n ? array.items_promoted\n : {};\n for (var i in itemsPromotedAsArray) {\n query\n .itemsPromoted\n .push(ItemUUID_1.ItemUUID.createFromArray(itemsPromotedAsArray[i]));\n }\n /**\n * Filter fields\n */\n query.filterFields = array.filter_fields instanceof Array\n ? array.filter_fields\n : [];\n query.scoreStrategies = array.score_strategies instanceof Object\n ? ScoreStrategies_1.ScoreStrategies.createFromArray(array.score_strategies)\n : null;\n query.user = array.user instanceof Object\n ? User_1.User.createFromArray(array.user)\n : null;\n return query;\n };\n return Query;\n}());\nexports.Query = Query;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * Coordinate Type cast\n * @param coordinate\n */\nvar Coordinate = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {number} lat\n * @param {number} lon\n */\n function Coordinate(lat, lon) {\n this.lat = lat;\n this.lon = lon;\n }\n /**\n * Get latitude\n *\n * @return float\n */\n Coordinate.prototype.getLatitude = function () {\n return this.lat;\n };\n /**\n * Get longitude\n *\n * @return float\n */\n Coordinate.prototype.getLongitude = function () {\n return this.lon;\n };\n /**\n * To array\n *\n * @return {{lat: number, lon: number}}\n */\n Coordinate.prototype.toArray = function () {\n return {\n lat: this.lat,\n lon: this.lon\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return Coordinate\n *\n * @throws InvalidFormatError\n */\n Coordinate.createFromArray = function (array) {\n if (typeof array.lat == \"undefined\" ||\n typeof array.lon == \"undefined\") {\n throw InvalidFormatError_1.InvalidFormatError.coordinateFormatNotValid();\n }\n return new Coordinate(array.lat, array.lon);\n };\n return Coordinate;\n}());\nexports.Coordinate = Coordinate;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * ItemUUID class\n */\nvar ItemUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n * @param type\n */\n function ItemUUID(id, type) {\n this.id = id;\n this.type = type;\n }\n /**\n * Create composed UUID\n *\n * @param composedUUID\n *\n * @returns {ItemUUID}\n */\n ItemUUID.createByComposedUUID = function (composedUUID) {\n var parts = composedUUID.split(\"~\");\n if (2 != parts.length) {\n throw InvalidFormatError_1.InvalidFormatError.composedItemUUIDNotValid();\n }\n return new ItemUUID(parts[0], parts[1]);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n ItemUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * Get type\n *\n * @returns {string}\n */\n ItemUUID.prototype.getType = function () {\n return this.type;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n ItemUUID.prototype.toArray = function () {\n return {\n id: this.id,\n type: this.type\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n ItemUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new ItemUUID(array.id, array.type);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n ItemUUID.prototype.composedUUID = function () {\n return this.id + \"~\" + this.type;\n };\n return ItemUUID;\n}());\nexports.ItemUUID = ItemUUID;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","\"use strict\";\nexports.__esModule = true;\nvar Filter_1 = require(\"./Filter\");\n/**\n * Aggregation constants\n */\nexports.AGGREGATION_SORT_BY_COUNT_ASC = [\"_count\", \"asc\"];\nexports.AGGREGATION_SORT_BY_COUNT_DESC = [\"_count\", \"desc\"];\nexports.AGGREGATION_SORT_BY_NAME_ASC = [\"_term\", \"asc\"];\nexports.AGGREGATION_SORT_BY_NAME_DESC = [\"_term\", \"desc\"];\nexports.AGGREGATION_NO_LIMIT = 0;\n/**\n * Aggregation class\n */\nvar Aggregation = /** @class */ (function () {\n /**\n * Construct\n *\n * @param name\n * @param field\n * @param applicationType\n * @param filterType\n * @param subgroup\n * @param sort\n * @param limit\n */\n function Aggregation(name, field, applicationType, filterType, subgroup, sort, limit) {\n this.subgroup = [];\n this.name = name;\n this.field = field;\n this.applicationType = applicationType;\n this.filterType = filterType;\n this.subgroup = subgroup;\n this.sort = sort;\n this.limit = limit;\n }\n /**\n * Get name\n *\n * @returns {string}\n */\n Aggregation.prototype.getName = function () {\n return this.name;\n };\n /**\n * Get field\n *\n * @returns {string}\n */\n Aggregation.prototype.getField = function () {\n return this.field;\n };\n /**\n * getApplicationType\n *\n * @returns {number}\n */\n Aggregation.prototype.getApplicationType = function () {\n return this.applicationType;\n };\n /**\n * Get filter type\n *\n * @return {string}\n */\n Aggregation.prototype.getFilterType = function () {\n return this.filterType;\n };\n /**\n * Get subgroup\n *\n * @return {[]}\n */\n Aggregation.prototype.getSubgroup = function () {\n return this.subgroup;\n };\n /**\n * Get sort\n *\n * @return {[]}\n */\n Aggregation.prototype.getSort = function () {\n return this.sort;\n };\n /**\n * Get limit\n *\n * @return {number}\n */\n Aggregation.prototype.getLimit = function () {\n return this.limit;\n };\n /**\n * Create\n *\n * @param name\n * @param field\n * @param applicationType\n * @param filterType\n * @param subgroup\n * @param sort\n * @param limit\n *\n * @returns {Aggregation}\n */\n Aggregation.create = function (name, field, applicationType, filterType, subgroup, sort, limit) {\n if (subgroup === void 0) { subgroup = []; }\n if (sort === void 0) { sort = exports.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = exports.AGGREGATION_NO_LIMIT; }\n return new Aggregation(name, field, applicationType, filterType, subgroup, sort, limit);\n };\n /**\n * To array\n *\n * @returns {Array}\n */\n Aggregation.prototype.toArray = function () {\n var aggregationAsArray = {\n name: this.name\n };\n if (this.field != \"uuid.type\") {\n aggregationAsArray.field = this.field;\n }\n if (this.applicationType != Filter_1.FILTER_AT_LEAST_ONE) {\n aggregationAsArray.application_type = this.applicationType;\n }\n if (this.filterType != Filter_1.FILTER_TYPE_FIELD) {\n aggregationAsArray.filter_type = this.filterType;\n }\n if (this.subgroup.length > 0) {\n aggregationAsArray.subgroup = this.subgroup;\n }\n if (JSON.stringify(this.sort) !== JSON.stringify(exports.AGGREGATION_SORT_BY_COUNT_DESC)) {\n aggregationAsArray.sort = this.sort;\n }\n if (this.limit != exports.AGGREGATION_NO_LIMIT) {\n aggregationAsArray.limit = this.limit;\n }\n return aggregationAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Aggregation}\n */\n Aggregation.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.field == \"undefined\") {\n array.field = \"uuid.type\";\n }\n if (typeof array.application_type == \"undefined\") {\n array.application_type = Filter_1.FILTER_AT_LEAST_ONE;\n }\n if (typeof array.filter_type == \"undefined\") {\n array.filter_type = Filter_1.FILTER_TYPE_FIELD;\n }\n if (typeof array.subgroup == \"undefined\") {\n array.subgroup = [];\n }\n if (typeof array.sort == \"undefined\") {\n array.sort = exports.AGGREGATION_SORT_BY_COUNT_DESC;\n }\n if (typeof array.limit == \"undefined\") {\n array.limit = exports.AGGREGATION_NO_LIMIT;\n }\n return Aggregation.create(array.name, array.field, array.application_type, array.filter_type, array.subgroup, array.sort, array.limit);\n };\n return Aggregation;\n}());\nexports.Aggregation = Aggregation;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\n/**\n export * Sort by constants\n */\nexports.SORT_BY_TYPE_FIELD = 'field';\nexports.SORT_BY_TYPE_NESTED = 'nested';\nexports.SORT_BY_TYPE_SCORE = 'score';\nexports.SORT_BY_TYPE_DISTANCE = 'distance';\nexports.SORT_BY_TYPE_FUNCTION = 'function';\nexports.SORT_BY_TYPE_RANDOM = 'random';\nexports.SORT_BY_ASC = \"asc\";\nexports.SORT_BY_DESC = \"desc\";\nexports.SORT_BY_MODE_AVG = \"avg\";\nexports.SORT_BY_MODE_SUM = \"sum\";\nexports.SORT_BY_MODE_MIN = \"min\";\nexports.SORT_BY_MODE_MAX = \"max\";\nexports.SORT_BY_MODE_MEDIAN = \"median\";\nexports.SORT_BY_SCORE = {\n type: exports.SORT_BY_TYPE_SCORE\n};\nexports.SORT_BY_RANDOM = {\n type: exports.SORT_BY_TYPE_RANDOM\n};\nexports.SORT_BY_AL_TUN_TUN = exports.SORT_BY_RANDOM;\nexports.SORT_BY_ID_ASC = {\n field: \"uuid.id\",\n order: exports.SORT_BY_ASC\n};\nexports.SORT_BY_ID_DESC = {\n field: \"uuid.id\",\n order: exports.SORT_BY_DESC\n};\nexports.SORT_BY_TYPE_ASC = {\n field: \"uuid.type\",\n order: exports.SORT_BY_ASC\n};\nexports.SORT_BY_TYPE_DESC = {\n field: \"uuid.type\",\n order: exports.SORT_BY_DESC\n};\nexports.SORT_BY_LOCATION_KM_ASC = {\n type: exports.SORT_BY_TYPE_DISTANCE,\n unit: \"km\"\n};\nexports.SORT_BY_LOCATION_MI_ASC = {\n type: exports.SORT_BY_TYPE_DISTANCE,\n unit: \"mi\"\n};\nvar Coordinate_1 = require(\"../Model/Coordinate\");\nvar Filter_1 = require(\"./Filter\");\n/**\n * ScoreStrategy\n */\nvar SortBy = /** @class */ (function () {\n function SortBy() {\n this.sortsBy = [];\n }\n /**\n * Create\n *\n * @return {SortBy}\n */\n SortBy.create = function () {\n return new SortBy;\n };\n /**\n * Sort By fields values\n *\n * @param shortSortByElements\n *\n * @return {SortBy}\n */\n SortBy.byFieldsValues = function (shortSortByElements) {\n var sortBy = SortBy.create();\n for (var key in shortSortByElements) {\n sortBy.byFieldValue(key, shortSortByElements[key]);\n }\n return sortBy;\n };\n /**\n * All\n *\n * @return {Array}\n */\n SortBy.prototype.all = function () {\n return this.sortsBy.length > 0\n ? this.sortsBy\n : [exports.SORT_BY_SCORE];\n };\n /**\n * Sort by value\n *\n * @param value\n *\n * @return {SortBy}\n */\n SortBy.prototype.byValue = function (value) {\n if (exports.SORT_BY_SCORE != value &&\n exports.SORT_BY_RANDOM != value) {\n if (typeof value.type == \"undefined\") {\n value.type = exports.SORT_BY_TYPE_FIELD;\n }\n }\n if (exports.SORT_BY_SCORE != value) {\n this.sortsBy.push(value);\n }\n return this;\n };\n /**\n * Sort by field value\n *\n * @param field\n * @param order\n *\n * @return {SortBy}\n */\n SortBy.prototype.byFieldValue = function (field, order) {\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_FIELD,\n field: Item_1.Item.getPathByField(field),\n order: order\n });\n return this;\n };\n /**\n * Sort by nested field\n *\n * @param field\n * @param order\n * @param mode\n *\n * @return {SortBy}\n */\n SortBy.prototype.byNestedField = function (field, order, mode) {\n if (mode === void 0) { mode = exports.SORT_BY_MODE_AVG; }\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_NESTED,\n mode: mode,\n field: 'indexed_metadata.' + field,\n order: order\n });\n return this;\n };\n /**\n * Sort by nested field and filter\n *\n * @param field\n * @param order\n * @param filter\n * @param mode\n *\n * @return {SortBy}\n */\n SortBy.prototype.byNestedFieldAndFilter = function (field, order, filter, mode) {\n if (mode === void 0) { mode = exports.SORT_BY_MODE_AVG; }\n var fieldPath = Item_1.Item.getPathByField(filter.getField());\n var filterAsArray = filter.toArray();\n filterAsArray.field = fieldPath;\n filter = Filter_1.Filter.createFromArray(filterAsArray);\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_NESTED,\n mode: mode,\n filter: filter,\n field: 'indexed_metadata.' + field,\n order: order\n });\n return this;\n };\n /**\n * Sort by function\n *\n * @param func\n * @param order\n *\n * @return {SortBy}\n */\n SortBy.prototype.byFunction = function (func, order) {\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_FUNCTION,\n \"function\": func,\n order: order\n });\n return this;\n };\n /**\n * Is sorted by geo distance\n *\n * @return {boolean}\n */\n SortBy.prototype.isSortedByGeoDistance = function () {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_DISTANCE) {\n return true;\n }\n }\n return false;\n };\n /**\n * Set coordinate\n *\n * @param coordinate\n *\n * @return {SortBy}\n */\n SortBy.prototype.setCoordinate = function (coordinate) {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_DISTANCE) {\n this.sortsBy[i].coordinate = coordinate;\n }\n }\n return this;\n };\n /**\n * Has random sort\n *\n * @return {boolean}\n */\n SortBy.prototype.hasRandomSort = function () {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_RANDOM) {\n return true;\n }\n }\n return false;\n };\n /**\n * To array\n *\n * @return {[]}\n */\n SortBy.prototype.toArray = function () {\n var copySortBy = this.copy();\n var sortsByAsArray = copySortBy.sortsBy;\n for (var i in sortsByAsArray) {\n if (typeof sortsByAsArray[i].filter === typeof {} &&\n sortsByAsArray[i].filter != null) {\n sortsByAsArray[i].filter = sortsByAsArray[i].filter.toArray();\n }\n if (sortsByAsArray[i].coordinate !== null &&\n sortsByAsArray[i].coordinate instanceof Coordinate_1.Coordinate) {\n sortsByAsArray[i].coordinate = sortsByAsArray[i].coordinate.toArray();\n }\n }\n return sortsByAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {SortBy}\n */\n SortBy.createFromArray = function (array) {\n var innerArray = JSON.parse(JSON.stringify(array));\n var sortBy = SortBy.create();\n for (var i in innerArray) {\n var element = innerArray[i];\n if (typeof element.type == \"undefined\") {\n element.type = exports.SORT_BY_TYPE_FIELD;\n }\n if (typeof element.filter === typeof {} &&\n element.filter != null) {\n element.filter = Filter_1.Filter.createFromArray(element.filter);\n }\n if (element.coordinate != null &&\n typeof element.coordinate === typeof {}) {\n element.coordinate = Coordinate_1.Coordinate.createFromArray(element.coordinate);\n }\n sortBy.sortsBy.push(element);\n }\n return sortBy;\n };\n /**\n * Make a copy of this\n *\n * @returns {SortBy}\n */\n SortBy.prototype.copy = function () {\n var newSortBy = SortBy.create();\n for (var i in this.sortsBy) {\n var sortBy = this.sortsBy[i];\n var sortByAsArray = JSON.parse(JSON.stringify(sortBy));\n if (typeof sortBy.filter === typeof {} &&\n sortBy.filter != null) {\n sortByAsArray.filter = Filter_1.Filter.createFromArray(sortBy.filter.toArray());\n }\n if (sortBy.coordinate != null &&\n typeof sortBy.coordinate == typeof {}) {\n sortByAsArray.coordinate = Coordinate_1.Coordinate.createFromArray(sortBy.coordinate.toArray());\n }\n newSortBy.sortsBy.push(sortByAsArray);\n }\n return newSortBy;\n };\n return SortBy;\n}());\nexports.SortBy = SortBy;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar Query_1 = require(\"../Query/Query\");\nvar ResultAggregations_1 = require(\"./ResultAggregations\");\n/**\n * Result class\n */\nvar Result = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param query\n * @param totalItems\n * @param totalHits\n */\n function Result(query, totalItems, totalHits) {\n this.items = [];\n this.suggests = [];\n this.query = query;\n this.totalItems = totalItems;\n this.totalHits = totalHits;\n }\n /**\n * Create\n *\n * @param query\n * @param totalItems\n * @param totalHits\n * @param aggregations\n * @param suggests\n * @param items\n *\n * @returns {Result}\n */\n Result.create = function (query, totalItems, totalHits, aggregations, suggests, items) {\n var result = new Result(query, totalItems, totalHits);\n result.aggregations = aggregations;\n result.suggests = suggests;\n result.items = items;\n return result;\n };\n /**\n * Add item\n *\n * @param item\n */\n Result.prototype.addItem = function (item) {\n this.items.push(item);\n };\n /**\n * Get items\n *\n * @return {Item[]}\n */\n Result.prototype.getItems = function () {\n return this.items;\n };\n /**\n * Get items grouped by types\n *\n * @return {any[]}\n */\n Result.prototype.getItemsGroupedByTypes = function () {\n if (this.itemsGroupedByTypeCache instanceof Object &&\n Object.keys(this.itemsGroupedByTypeCache).length > 0) {\n return this.itemsGroupedByTypeCache;\n }\n var itemsGroupedByTypes = {};\n for (var i in this.items) {\n var item = this.items[i];\n if (!(itemsGroupedByTypes[item.getType()] instanceof Array)) {\n itemsGroupedByTypes[item.getType()] = [];\n }\n itemsGroupedByTypes[item.getType()].push(item);\n }\n this.itemsGroupedByTypeCache = itemsGroupedByTypes;\n return itemsGroupedByTypes;\n };\n /**\n * Get items by type\n *\n * @param type\n *\n * @return {Array}\n */\n Result.prototype.getItemsByType = function (type) {\n var itemsGroupedByTypes = this.getItemsGroupedByTypes();\n return itemsGroupedByTypes[type] == null\n ? []\n : itemsGroupedByTypes[type];\n };\n /**\n * Get items by types\n *\n * @param types\n */\n Result.prototype.getItemsByTypes = function (types) {\n return this.items.filter(function (item) { return types.indexOf(item.getType()) >= 0; });\n };\n /**\n * Get first item\n *\n * @return {Item}\n */\n Result.prototype.getFirstItem = function () {\n return this.items.length > 0\n ? this.items[0]\n : null;\n };\n /**\n * Set aggregations\n *\n * @param aggregations\n */\n Result.prototype.setAggregations = function (aggregations) {\n this.aggregations = aggregations;\n };\n /**\n * Get aggregations\n *\n * @return {ResultAggregations}\n */\n Result.prototype.getAggregations = function () {\n return this.aggregations instanceof ResultAggregations_1.ResultAggregations\n ? this.aggregations\n : null;\n };\n /**\n * Get aggregation\n *\n * @param name\n *\n * @return {null}\n */\n Result.prototype.getAggregation = function (name) {\n return this.aggregations == null\n ? null\n : this.aggregations.getAggregation(name);\n };\n /**\n * Has no empty aggregation\n *\n * @param name\n *\n * @return {boolean}\n */\n Result.prototype.hasNotEmptyAggregation = function (name) {\n return this.aggregations == null\n ? false\n : this.aggregations.hasNotEmptyAggregation(name);\n };\n /**\n * Add suggest\n *\n * @param suggest\n */\n Result.prototype.addSuggest = function (suggest) {\n this.suggests.push(suggest);\n };\n /**\n * Get suggests\n *\n * @return {string[]}\n */\n Result.prototype.getSuggests = function () {\n return this.suggests;\n };\n /**\n * Get query\n *\n * @return {Query}\n */\n Result.prototype.getQuery = function () {\n return this.query;\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n Result.prototype.getTotalItems = function () {\n return this.totalItems;\n };\n /**\n * Get total hits\n *\n * @return {number}\n */\n Result.prototype.getTotalHits = function () {\n return this.totalHits;\n };\n /**\n * to array\n *\n * @return {{query: any, total_items: number, total_hits: number, items:any[], aggregations: any, suggests: string[]}}\n */\n Result.prototype.toArray = function () {\n return {\n query: this.query.toArray(),\n total_items: this.totalItems,\n total_hits: this.totalHits,\n items: this.items.map(function (item) { return item.toArray(); }),\n aggregations: this.aggregations == null\n ? null\n : this.aggregations.toArray(),\n suggests: this.suggests\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Result}\n */\n Result.createFromArray = function (array) {\n return Result.create(Query_1.Query.createFromArray(array.query), array.total_items\n ? array.total_items\n : 0, array.total_hits\n ? array.total_hits\n : 0, array.aggregations instanceof Object\n ? ResultAggregations_1.ResultAggregations.createFromArray(array.aggregations)\n : null, array.suggests\n ? array.suggests\n : null, array.items instanceof Array\n ? array.items.map(function (itemAsArray) { return Item_1.Item.createFromArray(itemAsArray); })\n : []);\n };\n return Result;\n}());\nexports.Result = Result;\n","\"use strict\";\nexports.__esModule = true;\nvar ResultAggregation_1 = require(\"./ResultAggregation\");\n/**\n * ResultAggregation class\n */\nvar ResultAggregations = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param totalElements\n */\n function ResultAggregations(totalElements) {\n this.aggregations = {};\n this.totalElements = totalElements;\n }\n /**\n * Add aggregation\n *\n * @param name\n * @param aggregation\n */\n ResultAggregations.prototype.addAggregation = function (name, aggregation) {\n this.aggregations[name] = aggregation;\n };\n /**\n * Get aggregations\n *\n * @returns {{}}\n */\n ResultAggregations.prototype.getAggregations = function () {\n return this.aggregations;\n };\n /**\n * Get aggregation\n *\n * @param name\n *\n * @returns {Aggregation|null}\n */\n ResultAggregations.prototype.getAggregation = function (name) {\n return this.aggregations[name] instanceof ResultAggregation_1.ResultAggregation\n ? this.aggregations[name]\n : null;\n };\n /**\n * Has not empty aggregation\n *\n * @param name\n *\n * @returns {boolean}\n */\n ResultAggregations.prototype.hasNotEmptyAggregation = function (name) {\n var aggregation = this.getAggregation(name);\n return (aggregation instanceof ResultAggregation_1.ResultAggregation) &&\n (!aggregation.isEmpty());\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n ResultAggregations.prototype.getTotalElements = function () {\n return this.totalElements;\n };\n /**\n * To array\n *\n * @return {{total_elements?: number, aggregations?: {}}}\n */\n ResultAggregations.prototype.toArray = function () {\n var aggregationCollection = {};\n for (var i in this.aggregations) {\n aggregationCollection[i] = this.aggregations[i].toArray();\n }\n var array = {};\n if (this.totalElements > 0) {\n array.total_elements = this.totalElements;\n }\n if (Object.keys(aggregationCollection).length > 0) {\n array.aggregations = aggregationCollection;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ResultAggregations}\n */\n ResultAggregations.createFromArray = function (array) {\n var aggregations = new ResultAggregations(typeof array.total_elements === \"number\"\n ? array.total_elements\n : 0);\n if (typeof array.aggregations === typeof {}) {\n for (var i in array.aggregations) {\n aggregations.addAggregation(i, ResultAggregation_1.ResultAggregation.createFromArray(array.aggregations[i]));\n }\n }\n return aggregations;\n };\n return ResultAggregations;\n}());\nexports.ResultAggregations = ResultAggregations;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar axios_1 = require(\"axios\");\nvar Client_1 = require(\"./Client\");\nvar Response_1 = require(\"./Response\");\n/**\n * AxiosClient\n */\nvar AxiosClient = /** @class */ (function (_super) {\n tslib_1.__extends(AxiosClient, _super);\n /**\n * Constructor\n *\n * @param host\n * @param version\n * @param timeout\n * @param retryMap\n * @param overrideQueries\n * @param cache\n */\n function AxiosClient(host, version, timeout, retryMap, overrideQueries, cache) {\n var _this = _super.call(this, version, retryMap) || this;\n _this.host = host;\n _this.timeout = timeout;\n _this.cache = cache;\n _this.overrideQueries = overrideQueries;\n _this.cancelToken = {};\n return _this;\n }\n /**\n * Get\n *\n * @param url\n * @param method\n * @param credentials\n * @param parameters\n * @param data\n *\n * @return {Promise}\n */\n AxiosClient.prototype.get = function (url, method, credentials, parameters, data) {\n if (parameters === void 0) { parameters = {}; }\n if (data === void 0) { data = {}; }\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var that;\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n that = this;\n url = url.replace(/^\\/*|\\/*$/g, \"\");\n url = \"/\" + (this.version + \"/\" + url).replace(/^\\/*|\\/*$/g, \"\");\n method = method.toLowerCase();\n if (\"get\" === method &&\n this.overrideQueries) {\n this.abort(url);\n }\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var headers = \"get\" == method\n ? {}\n : {\n \"Content-Encoding\": \"gzip\",\n \"Content-Type\": \"application/json\"\n };\n var axiosRequestConfig = {\n url: url + \"?\" + Client_1.Client.objectToUrlParameters(tslib_1.__assign({}, credentials, parameters)),\n data: data,\n headers: headers,\n method: method,\n baseURL: that.host.replace(/\\/*$/g, \"\"),\n timeout: that.timeout,\n transformRequest: [function (data) { return JSON.stringify(data); }]\n };\n if (typeof _this.cancelToken[url] != 'undefined') {\n axiosRequestConfig.cancelToken = _this.cancelToken[url].token;\n }\n axios_1[\"default\"]\n .request(axiosRequestConfig)\n .then(function (axiosResponse) {\n var response = new Response_1.Response(axiosResponse.status, axiosResponse.data);\n return resolve(response);\n })[\"catch\"](function (error) {\n if (error.response === undefined) {\n return;\n }\n var response = new Response_1.Response(error.response.status, error.response.data);\n return reject(response);\n });\n })];\n });\n });\n };\n /**\n * Abort current request\n * And regenerate the cancellation token\n *\n * @param url\n */\n AxiosClient.prototype.abort = function (url) {\n if (typeof this.cancelToken[url] != 'undefined') {\n this.cancelToken[url].cancel();\n }\n this.generateCancelToken(url);\n };\n /**\n * Generate a new cancellation token for a query\n *\n * @param url\n */\n AxiosClient.prototype.generateCancelToken = function (url) {\n this.cancelToken[url] = axios_1[\"default\"].CancelToken.source();\n };\n return AxiosClient;\n}(Client_1.Client));\nexports.AxiosClient = AxiosClient;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Client\n */\nvar Client = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param version\n * @param retryMap\n */\n function Client(version, retryMap) {\n this.retryMap = retryMap;\n this.version = version.replace(/^\\/*|\\/*$/g, \"\");\n }\n /**\n * Build an url parameters array by an object\n *\n * @param params\n *\n * @returns {string}\n */\n Client.objectToUrlParameters = function (params) {\n var builtParams = [];\n for (var i in params) {\n builtParams.push(i + \"=\" + params[i]);\n }\n return builtParams.join(\"&\");\n };\n return Client;\n}());\nexports.Client = Client;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Response\n */\nvar Response = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param code\n * @param body\n */\n function Response(code, body) {\n this.code = code;\n this.body = body;\n }\n /**\n * Get code\n *\n * @return {number}\n */\n Response.prototype.getCode = function () {\n return this.code;\n };\n /**\n * Get body\n *\n * @return {any}\n */\n Response.prototype.getBody = function () {\n return this.body;\n };\n return Response;\n}());\nexports.Response = Response;\n","\"use strict\";\nexports.__esModule = true;\nvar Retry_1 = require(\"./Retry\");\n/**\n * Http class\n */\nvar RetryMap = /** @class */ (function () {\n function RetryMap() {\n this.retries = {};\n }\n /**\n * Add retry\n *\n * @param retry\n */\n RetryMap.prototype.addRetry = function (retry) {\n this.retries[retry.getUrl() + \"~~\" + retry.getMethod()] = retry;\n };\n /**\n * Create from array\n */\n RetryMap.createFromArray = function (array) {\n var retryMap = new RetryMap();\n retryMap.retries = array.map(function (retry) { return Retry_1.Retry.createFromArray(retry); });\n return retryMap;\n };\n /**\n * Get retry\n *\n * @param url\n * @param method\n *\n * @returns {Retry}\n */\n RetryMap.prototype.getRetry = function (url, method) {\n if (this.retries[url + \"~~\" + method] instanceof Retry_1.Retry) {\n return this.retries[url + \"~~\" + method];\n }\n if (this.retries[\"*~~\" + method] instanceof Retry_1.Retry) {\n return this.retries[\"*~~\" + method];\n }\n if (this.retries[url + \"~~*\"] instanceof Retry_1.Retry) {\n return this.retries[url + \"~~*\"];\n }\n if (this.retries[\"*~~*\"] instanceof Retry_1.Retry) {\n return this.retries[\"*~~*\"];\n }\n return null;\n };\n return RetryMap;\n}());\nexports.RetryMap = RetryMap;\n","\"use strict\";\nexports.__esModule = true;\nexports.DEFAULT_MICROSECONDS_BETWEEN_RETRIES = 1000;\n/**\n * Http class\n */\nvar Retry = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param url\n * @param method\n * @param retries\n * @param microsecondsBetweenRetries\n */\n function Retry(url, method, retries, microsecondsBetweenRetries) {\n this.url = url;\n this.method = method;\n this.retries = retries;\n this.microsecondsBetweenRetries = microsecondsBetweenRetries;\n }\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Retry}\n */\n Retry.createFromArray = function (array) {\n return new Retry(array.url ? array.url : \"*\", array.method ? array.method : \"*\", array.retries ? array.retries : 0, array.microseconds_between_retries\n ? array.microseconds_between_retries\n : exports.DEFAULT_MICROSECONDS_BETWEEN_RETRIES);\n };\n /**\n * Get url\n *\n * @return {string}\n */\n Retry.prototype.getUrl = function () {\n return this.url;\n };\n /**\n * Get method\n *\n * @return {string}\n */\n Retry.prototype.getMethod = function () {\n return this.method;\n };\n /**\n * Ge retries\n *\n * @return {number}\n */\n Retry.prototype.getRetries = function () {\n return this.retries;\n };\n /**\n * Get microseconds between retries\n *\n * @return {number}\n */\n Retry.prototype.getMicrosecondsBetweenRetries = function () {\n return this.microsecondsBetweenRetries;\n };\n return Retry;\n}());\nexports.Retry = Retry;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * User class\n */\nvar User = /** @class */ (function () {\n /**\n * Construct\n *\n * @param id string\n * @param attributes Array\n */\n function User(id, attributes) {\n if (attributes === void 0) { attributes = {}; }\n this.id = id;\n this.attributes = attributes;\n }\n /**\n * Return the user id\n *\n * @return {string}\n */\n User.prototype.getId = function () {\n return this.id;\n };\n /**\n * Return array\n *\n * @returns {{}}\n */\n User.prototype.getAttributes = function () {\n return this.attributes;\n };\n /**\n * To array\n *\n * @returns {{id: string, attributes: {}}}\n */\n User.prototype.toArray = function () {\n var array = {\n id: this.id\n };\n if (Object.keys(this.attributes).length > 0) {\n array.attributes = this.attributes;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return User\n */\n User.createFromArray = function (array) {\n if (array == null ||\n typeof array.id == \"undefined\" ||\n array.id == null) {\n throw InvalidFormatError_1.InvalidFormatError.userFormatNotValid();\n }\n var attributes = typeof array.attributes === typeof {}\n ? array.attributes\n : {};\n return new User(array.id, attributes);\n };\n return User;\n}());\nexports.User = User;\n","\"use strict\";\nexports.__esModule = true;\nvar ScoreStrategy_1 = require(\"./ScoreStrategy\");\n/**\n * ScoreStrategies constants\n */\nexports.MULTIPLY = 'multiply';\nexports.SUM = 'sum';\nexports.AVG = 'avg';\nexports.MAX = 'max';\nexports.MIN = 'min';\n/**\n * ScoreStrategies\n */\nvar ScoreStrategies = /** @class */ (function () {\n function ScoreStrategies() {\n this.scoreStrategies = [];\n }\n /**\n * Create empty\n *\n * @param scoreMode\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.createEmpty = function (scoreMode) {\n if (scoreMode === void 0) { scoreMode = exports.SUM; }\n var scoreStrategies = new ScoreStrategies;\n scoreStrategies.scoreMode = scoreMode;\n return scoreStrategies;\n };\n /**\n * Add score strategy\n *\n * @param scoreStrategy\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.prototype.addScoreStrategy = function (scoreStrategy) {\n this.scoreStrategies.push(scoreStrategy);\n return this;\n };\n /**\n * Get score strategies\n *\n * @return {ScoreStrategy[]}\n */\n ScoreStrategies.prototype.getScoreStrategies = function () {\n return this.scoreStrategies;\n };\n /**\n * Get score mode\n *\n * @return {string}\n */\n ScoreStrategies.prototype.getScoreMode = function () {\n return this.scoreMode;\n };\n /**\n * To array\n *\n * @return {{\n * score_mode: string,\n * score_strategies: any\n * }}\n */\n ScoreStrategies.prototype.toArray = function () {\n var scoreStrategiesAsArray = [];\n for (var i in this.scoreStrategies) {\n scoreStrategiesAsArray.push(this.scoreStrategies[i].toArray());\n }\n return {\n score_mode: this.scoreMode,\n score_strategies: scoreStrategiesAsArray\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var scoreStrategies = (typeof array.score_mode != \"undefined\")\n ? ScoreStrategies.createEmpty(array.score_mode)\n : ScoreStrategies.createEmpty();\n scoreStrategies.scoreStrategies = [];\n for (var i in array.score_strategies) {\n scoreStrategies\n .scoreStrategies\n .push(ScoreStrategy_1.ScoreStrategy.createFromArray(array.score_strategies[i]));\n }\n return scoreStrategies;\n };\n return ScoreStrategies;\n}());\nexports.ScoreStrategies = ScoreStrategies;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar Filter_1 = require(\"./Filter\");\n/**\n * ScoreStrategy constants\n */\nexports.DEFAULT_TYPE = 'default';\nexports.DEFAULT_WEIGHT = 1.0;\nexports.BOOSTING_FIELD_VALUE = 'field_value';\nexports.CUSTOM_FUNCTION = 'custom_function';\nexports.DECAY = 'decay';\nexports.DECAY_LINEAR = 'linear';\nexports.DECAY_EXP = 'exp';\nexports.DECAY_GAUSS = 'gauss';\nexports.MODIFIER_NONE = 'none';\nexports.MODIFIER_SQRT = 'sqrt';\nexports.MODIFIER_LOG = 'log';\nexports.MODIFIER_LN = 'ln';\nexports.MODIFIER_SQUARE = 'square';\nexports.SCORE_MODE_NONE = 'none';\nexports.SCORE_MODE_SUM = 'sum';\nexports.SCORE_MODE_AVG = 'avg';\nexports.SCORE_MODE_MAX = 'max';\nexports.SCORE_MODE_MIN = 'min';\nexports.DEFAULT_MISSING = 1.0;\nexports.DEFAULT_FACTOR = 1.0;\n/**\n * ScoreStrategy\n */\nvar ScoreStrategy = /** @class */ (function () {\n function ScoreStrategy() {\n this.type = exports.DEFAULT_TYPE;\n this.filter = null;\n this.weight = exports.DEFAULT_WEIGHT;\n this.scoreMode = exports.SCORE_MODE_AVG;\n this.configuration = {};\n }\n /**\n * Get type\n *\n * @returns {string}\n */\n ScoreStrategy.prototype.getType = function () {\n return this.type;\n };\n /**\n * Get configuration value\n *\n * @returns {string}\n */\n ScoreStrategy.prototype.getConfigurationValue = function (element) {\n if (typeof this.configuration[element] == \"undefined\") {\n return null;\n }\n return this.configuration[element];\n };\n /**\n * Get weight.\n *\n * @return {number}\n */\n ScoreStrategy.prototype.getWeight = function () {\n return this.weight;\n };\n /**\n * Get score mode.\n *\n * @return {string}\n */\n ScoreStrategy.prototype.getScoreMode = function () {\n return this.scoreMode;\n };\n /**\n * Get filter.\n *\n * @return {Filter}\n */\n ScoreStrategy.prototype.getFilter = function () {\n return this.filter;\n };\n /**\n * Create default\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createDefault = function () {\n return new ScoreStrategy();\n };\n /**\n * Create field boosting\n *\n * @param field\n * @param factor\n * @param missing\n * @param modifier\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createFieldBoosting = function (field, factor, missing, modifier, weight, filter, scoreMode) {\n if (factor === void 0) { factor = exports.DEFAULT_FACTOR; }\n if (missing === void 0) { missing = exports.DEFAULT_MISSING; }\n if (modifier === void 0) { modifier = exports.MODIFIER_NONE; }\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.BOOSTING_FIELD_VALUE;\n scoreStrategy.configuration['field'] = field;\n scoreStrategy.configuration['factor'] = factor;\n scoreStrategy.configuration['missing'] = missing;\n scoreStrategy.configuration['modifier'] = modifier;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Create custom function\n *\n * @param func\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createCustomFunction = function (func, weight, filter, scoreMode) {\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.CUSTOM_FUNCTION;\n scoreStrategy.configuration['function'] = func;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Create decay function\n *\n * @param type\n * @param field\n * @param origin\n * @param scale\n * @param offset\n * @param decay\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createDecayFunction = function (type, field, origin, scale, offset, decay, weight, filter, scoreMode) {\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.DECAY;\n scoreStrategy.configuration['type'] = type;\n scoreStrategy.configuration['field'] = field;\n scoreStrategy.configuration['origin'] = origin;\n scoreStrategy.configuration['scale'] = scale;\n scoreStrategy.configuration['offset'] = offset;\n scoreStrategy.configuration['decay'] = decay;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Fix filter path.\n *\n * @param filter\n *\n * @return {Filter}\n */\n ScoreStrategy.fixFilterFieldPath = function (filter) {\n if (filter == null) {\n return filter;\n }\n var filterAsArray = filter.toArray();\n filterAsArray['field'] = Item_1.Item.getPathByField(filterAsArray['field']);\n return Filter_1.Filter.createFromArray(filterAsArray);\n };\n /**\n * To array\n *\n * @return {{\n * type: string,\n * configuration: any,\n * weight: number,\n * score_mode: string,\n * filter: any\n * }}\n */\n ScoreStrategy.prototype.toArray = function () {\n return {\n type: this.type,\n configuration: this.configuration,\n weight: this.weight,\n score_mode: this.scoreMode,\n filter: this.filter instanceof Filter_1.Filter\n ? this.filter.toArray()\n : null\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var scoreStrategy = ScoreStrategy.createDefault();\n if (typeof array.type != \"undefined\") {\n scoreStrategy.type = array.type;\n }\n if (typeof array.configuration != \"undefined\") {\n scoreStrategy.configuration = array.configuration;\n }\n if (typeof array.weight != \"undefined\") {\n scoreStrategy.weight = array.weight;\n }\n if (typeof array.score_mode != \"undefined\") {\n scoreStrategy.scoreMode = array.score_mode;\n }\n if (typeof array.filter === 'object' && array.filter !== null) {\n scoreStrategy.filter = Filter_1.Filter.createFromArray(array.filter);\n }\n return scoreStrategy;\n };\n return ScoreStrategy;\n}());\nexports.ScoreStrategy = ScoreStrategy;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ConnectionError_1 = require(\"../Error/ConnectionError\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar InvalidTokenError_1 = require(\"../Error/InvalidTokenError\");\nvar ResourceExistsError_1 = require(\"../Error/ResourceExistsError\");\nvar ResourceNotAvailableError_1 = require(\"../Error/ResourceNotAvailableError\");\nvar Item_1 = require(\"../Model/Item\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\nvar Result_1 = require(\"../Result/Result\");\nvar Repository_1 = require(\"./Repository\");\nvar Index_1 = require(\"../Model/Index\");\n/**\n * Aggregation class\n */\nvar HttpRepository = /** @class */ (function (_super) {\n tslib_1.__extends(HttpRepository, _super);\n /**\n * Constructor\n *\n * @param httpClient\n * @param appId\n * @param indexId\n * @param token\n * @param transformer\n */\n function HttpRepository(httpClient, appId, indexId, token, transformer) {\n var _this = _super.call(this, appId, indexId, token) || this;\n _this.httpClient = httpClient;\n _this.transformer = transformer;\n return _this;\n }\n /**\n * Get transformer\n *\n * @return {Transformer}\n */\n HttpRepository.prototype.getTransformer = function () {\n return this.transformer;\n };\n /**\n * Generate item document by a simple object.\n *\n * @param object\n */\n HttpRepository.prototype.addObject = function (object) {\n var item = this\n .transformer\n .toItem(object);\n if (item instanceof Item_1.Item) {\n this.addItem(item);\n }\n };\n /**\n * Delete item document by uuid.\n *\n * @param object\n */\n HttpRepository.prototype.deleteObject = function (object) {\n var itemUUID = this\n .transformer\n .toItemUUID(object);\n if (itemUUID instanceof ItemUUID_1.ItemUUID) {\n this.deleteItem(itemUUID);\n }\n };\n /**\n * Flush update items\n *\n * @param itemsToUpdate\n *\n * @return {Promise}\n */\n HttpRepository.prototype.flushUpdateItems = function (itemsToUpdate) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n if (itemsToUpdate.length === 0) {\n return [2 /*return*/];\n }\n return [2 /*return*/, this\n .httpClient\n .get(\"/items\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {\n items: itemsToUpdate.map(function (item) {\n return item.toArray();\n })\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n })];\n });\n });\n };\n /**\n * Flush delete items\n *\n * @param itemsToDelete\n *\n * @return {Promise}\n */\n HttpRepository.prototype.flushDeleteItems = function (itemsToDelete) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n if (itemsToDelete.length === 0) {\n return [2 /*return*/];\n }\n return [2 /*return*/, this\n .httpClient\n .get(\"/items\", \"delete\", this.getCredentialsWithIndex(this.indexId), {}, {\n items: itemsToDelete.map(function (itemUUID) {\n return itemUUID.toArray();\n })\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n })];\n });\n });\n };\n /**\n * Query\n *\n * @param query\n *\n * @return {Promise}\n */\n HttpRepository.prototype.query = function (query) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var that;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n that = this;\n return [4 /*yield*/, this\n .httpClient\n .get(\"/\", \"get\", this.getCredentialsWithIndex(this.indexId), {\n query: JSON.stringify(query.toArray())\n }, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n var result = Result_1.Result.createFromArray(response.getBody());\n return Result_1.Result.create(result.getQuery(), result.getTotalItems(), result.getTotalHits(), result.getAggregations(), result.getSuggests(), that\n .transformer\n .fromItems(result.getItems()));\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Update items\n *\n * @param query\n * @param changes\n *\n * @return {Promise}\n */\n HttpRepository.prototype.updateItems = function (query, changes) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/items\", \"put\", this.getCredentialsWithIndex(this.indexId), {}, {\n query: query.toArray(),\n changes: changes.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Create index\n *\n * @param indexUUID\n * @param config\n *\n * @return {Promise}\n */\n HttpRepository.prototype.createIndex = function (indexUUID, config) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"put\", this.getCredentials(), {}, {\n index: indexUUID.toArray(),\n config: config.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Delete index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.deleteIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"delete\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Reset index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.resetIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index/reset\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Check index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.checkIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"head\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return response.getCode() === 200;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Check index\n *\n * @return {Promise}\n */\n HttpRepository.prototype.getIndices = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/indices\", \"get\", this.getCredentials(), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n var result = [];\n for (var _i = 0, _a = response.getBody(); _i < _a.length; _i++) {\n var indexAsArray = _a[_i];\n result.push(Index_1.Index.createFromArray(indexAsArray));\n }\n return result;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Configure index\n *\n * @param indexUUID\n * @param config\n *\n * @return {Promise}\n */\n HttpRepository.prototype.configureIndex = function (indexUUID, config) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {\n config: config.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Get query values\n *\n * @returns any\n */\n HttpRepository.prototype.getCredentials = function () {\n return {\n app_id: this.appId,\n token: this.token\n };\n };\n /**\n * Get query values\n *\n * @param indexComposedUUID\n *\n * @returns any\n */\n HttpRepository.prototype.getCredentialsWithIndex = function (indexComposedUUID) {\n return {\n app_id: this.appId,\n index: indexComposedUUID,\n token: this.token\n };\n };\n /**\n * throw error if needed\n *\n * @param response\n */\n HttpRepository.throwTransportableExceptionIfNeeded = function (response) {\n if (typeof response.getCode() == \"undefined\") {\n return;\n }\n switch (response.getCode()) {\n case ResourceNotAvailableError_1.ResourceNotAvailableError.getTransportableHTTPError():\n throw new ResourceNotAvailableError_1.ResourceNotAvailableError(response.getBody().message);\n case InvalidTokenError_1.InvalidTokenError.getTransportableHTTPError():\n throw new InvalidTokenError_1.InvalidTokenError(response.getBody().message);\n case InvalidFormatError_1.InvalidFormatError.getTransportableHTTPError():\n throw new InvalidFormatError_1.InvalidFormatError(response.getBody().message);\n case ResourceExistsError_1.ResourceExistsError.getTransportableHTTPError():\n throw new ResourceExistsError_1.ResourceExistsError(response.getBody().message);\n case ConnectionError_1.ConnectionError.getTransportableHTTPError():\n throw new ConnectionError_1.ConnectionError(response.getBody().message);\n }\n };\n return HttpRepository;\n}(Repository_1.Repository));\nexports.HttpRepository = HttpRepository;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Connection error\n */\nvar ConnectionError = /** @class */ (function (_super) {\n tslib_1.__extends(ConnectionError, _super);\n function ConnectionError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ConnectionError.getTransportableHTTPError = function () {\n return 500;\n };\n return ConnectionError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ConnectionError = ConnectionError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Invalid token error\n */\nvar InvalidTokenError = /** @class */ (function (_super) {\n tslib_1.__extends(InvalidTokenError, _super);\n function InvalidTokenError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n InvalidTokenError.getTransportableHTTPError = function () {\n return 401;\n };\n /**\n * Invalid token permissions\n *\n * @param tokenReference\n *\n * @return {InvalidTokenError}\n */\n InvalidTokenError.createInvalidTokenPermissions = function (tokenReference) {\n return new InvalidTokenError(\"Token \" + tokenReference + \"not valid\");\n };\n /**\n * Invalid token permissions\n *\n * @param tokenReference\n * @param maxHitsPerQuery\n *\n * @return {InvalidTokenError}\n */\n InvalidTokenError.createInvalidTokenMaxHitsPerQuery = function (tokenReference, maxHitsPerQuery) {\n return new InvalidTokenError(\"Token \" + tokenReference + \"not valid. Max \" + maxHitsPerQuery + \" hits allowed\");\n };\n return InvalidTokenError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.InvalidTokenError = InvalidTokenError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Resource exists error\n */\nvar ResourceExistsError = /** @class */ (function (_super) {\n tslib_1.__extends(ResourceExistsError, _super);\n function ResourceExistsError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ResourceExistsError.getTransportableHTTPError = function () {\n return 409;\n };\n /**\n * Index not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.indexAvailable = function () {\n return new ResourceExistsError(\"Index exists and cannot be created again\");\n };\n /**\n * Events not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.eventsIndexAvailable = function () {\n return new ResourceExistsError(\"Events index exists and cannot be created again\");\n };\n /**\n * Logs not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.logsIndexAvailable = function () {\n return new ResourceExistsError(\"Logs index exists and cannot be created again\");\n };\n return ResourceExistsError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ResourceExistsError = ResourceExistsError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Resource not available error\n */\nvar ResourceNotAvailableError = /** @class */ (function (_super) {\n tslib_1.__extends(ResourceNotAvailableError, _super);\n function ResourceNotAvailableError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ResourceNotAvailableError.getTransportableHTTPError = function () {\n return 404;\n };\n /**\n * Index not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.indexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Index not available - \" + resourceId);\n };\n /**\n * Events not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.eventsIndexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Events not available - \" + resourceId);\n };\n /**\n * Logs not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.logsIndexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Logs not available - \" + resourceId);\n };\n /**\n * Engine not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.engineNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Engine not available - \" + resourceId);\n };\n return ResourceNotAvailableError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ResourceNotAvailableError = ResourceNotAvailableError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Filter_1 = require(\"../Query/Filter\");\nvar Counter_1 = require(\"./Counter\");\n/**\n * ResultAggregation class\n */\nvar ResultAggregation = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param name\n * @param applicationType\n * @param totalElements\n * @param activeElements\n */\n function ResultAggregation(name, applicationType, totalElements, activeElements) {\n this.counters = {};\n this.highestActiveElement = 0;\n this.name = name;\n this.applicationType = applicationType;\n this.totalElements = totalElements;\n this.activeElements = {};\n for (var i in activeElements) {\n var activeElement = activeElements[i];\n this.activeElements[activeElement] = activeElement;\n }\n }\n /**\n * Add counter\n *\n * @param name\n * @param counter\n */\n ResultAggregation.prototype.addCounter = function (name, counter) {\n if (counter == 0) {\n return;\n }\n var counterInstance = Counter_1.Counter.createByActiveElements(name, counter, Object.keys(this.activeElements));\n if (!(counterInstance instanceof Counter_1.Counter)) {\n return;\n }\n if ((this.applicationType & Filter_1.FILTER_MUST_ALL_WITH_LEVELS) &&\n (this.applicationType & ~Filter_1.FILTER_MUST_ALL) &&\n counterInstance.isUsed()) {\n this.activeElements[counterInstance.getId()] = counterInstance;\n this.highestActiveElement = Math.max(counterInstance.getLevel(), this.highestActiveElement);\n return;\n }\n this.counters[counterInstance.getId()] = counterInstance;\n };\n /**\n * Get name\n *\n * @return {string}\n */\n ResultAggregation.prototype.getName = function () {\n return this.name;\n };\n /**\n * Get counter\n *\n * @return {any}\n */\n ResultAggregation.prototype.getCounters = function () {\n return this.counters;\n };\n /**\n * Return if the aggregation belongs to a filter.\n *\n * @return {boolean}\n */\n ResultAggregation.prototype.isFilter = function () {\n return (this.applicationType & Filter_1.FILTER_MUST_ALL) > 0;\n };\n /**\n * Aggregation has levels.\n *\n * @return {boolean}\n */\n ResultAggregation.prototype.hasLevels = function () {\n return (this.applicationType & Filter_1.FILTER_MUST_ALL_WITH_LEVELS) > 0;\n };\n /**\n * Get counter by name\n *\n * @param name\n *\n * @return {null}\n */\n ResultAggregation.prototype.getCounter = function (name) {\n return this.counters[name] instanceof Counter_1.Counter\n ? this.counters[name]\n : null;\n };\n /**\n * Get all elements\n *\n * @return {{}}\n */\n ResultAggregation.prototype.getAllElements = function () {\n return tslib_1.__assign({}, this.activeElements, this.counters);\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n ResultAggregation.prototype.getTotalElements = function () {\n return this.totalElements;\n };\n /**\n * Get active elements\n *\n * @return {any}\n */\n ResultAggregation.prototype.getActiveElements = function () {\n if (Object.keys(this.activeElements).length === 0) {\n return {};\n }\n if (this.applicationType === Filter_1.FILTER_MUST_ALL_WITH_LEVELS) {\n var value = null;\n for (var i in this.activeElements) {\n var activeElement = this.activeElements[i];\n if (!(activeElement instanceof Counter_1.Counter)) {\n continue;\n }\n if (value == null) {\n value = activeElement;\n }\n value = value.getLevel() > activeElement.getLevel()\n ? value\n : activeElement;\n }\n return value instanceof Counter_1.Counter\n ? { 0: value }\n : null;\n }\n return this.activeElements;\n };\n /**\n * Clean results by level and remove all levels higher than the lowest.\n */\n ResultAggregation.prototype.cleanCountersByLevel = function () {\n for (var i in this.counters) {\n var counter = this.counters[i];\n if (counter.getLevel() !== this.highestActiveElement + 1) {\n delete this.counters[i];\n }\n }\n };\n /**\n * Is empty\n *\n * @returns {boolean}\n */\n ResultAggregation.prototype.isEmpty = function () {\n return Object.keys(this.activeElements).length == 0 &&\n Object.keys(this.counters).length == 0;\n };\n /**\n * To array\n *\n * @return {any}\n */\n ResultAggregation.prototype.toArray = function () {\n var array = {\n name: this.name,\n counters: [],\n active_elements: []\n };\n for (var i in this.counters) {\n array.counters.push(this.counters[i].toArray());\n }\n if (this.applicationType !== Filter_1.FILTER_AT_LEAST_ONE) {\n array.application_type = this.applicationType;\n }\n if (this.totalElements > 0) {\n array.total_elements = this.totalElements;\n }\n for (var i in this.activeElements) {\n var activeElement = this.activeElements[i];\n array.active_elements.push(activeElement instanceof Counter_1.Counter\n ? activeElement.toArray()\n : activeElement);\n }\n if (this.highestActiveElement > 0) {\n array.highest_active_level = this.highestActiveElement;\n }\n if (array.counters.length === 0) {\n delete array.counters;\n }\n if (array.active_elements.length === 0) {\n delete array.active_elements;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n */\n ResultAggregation.createFromArray = function (array) {\n var activeElements = [];\n var activeElementsAsArray = array.active_elements;\n activeElementsAsArray = typeof activeElementsAsArray === typeof []\n ? activeElementsAsArray\n : [];\n for (var i in activeElementsAsArray) {\n var activeElementAsArray = activeElementsAsArray[i];\n activeElements.push(typeof activeElementAsArray === typeof {}\n ? Counter_1.Counter.createFromArray(activeElementAsArray)\n : activeElementAsArray);\n }\n var aggregation = new ResultAggregation(array.name, parseInt(array.application_type ? array.application_type : Filter_1.FILTER_AT_LEAST_ONE), parseInt(array.total_elements ? array.total_elements : 0), []);\n aggregation.activeElements = activeElements;\n var countersAsArray = typeof array.counters === typeof []\n ? array.counters\n : [];\n for (var i in countersAsArray) {\n var counterAsArray = countersAsArray[i];\n var counter = Counter_1.Counter.createFromArray(counterAsArray);\n aggregation.counters[counter.getId()] = counter;\n }\n aggregation.highestActiveElement = typeof array.highest_active_level === \"number\"\n ? array.highest_active_level\n : 0;\n return aggregation;\n };\n return ResultAggregation;\n}());\nexports.ResultAggregation = ResultAggregation;\n","\"use strict\";\nexports.__esModule = true;\nvar Metadata_1 = require(\"../Model/Metadata\");\n/**\n * Aggregation class\n */\nvar Counter = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param values\n * @param used\n * @param n\n */\n function Counter(values, used, n) {\n this.values = values;\n this.used = used;\n this.n = n;\n }\n /**\n * Get id\n *\n * @return {string|null}\n */\n Counter.prototype.getId = function () {\n return typeof this.values.id == \"string\"\n ? this.values.id\n : null;\n };\n /**\n * Get name\n *\n * @return {string|null}\n */\n Counter.prototype.getName = function () {\n return typeof this.values.name == \"string\"\n ? this.values.name\n : null;\n };\n /**\n * Get slug\n *\n * @return {string|null}\n */\n Counter.prototype.getSlug = function () {\n return typeof this.values.slug == \"string\"\n ? this.values.slug\n : null;\n };\n /**\n * Get level\n *\n * @return {number}\n */\n Counter.prototype.getLevel = function () {\n return typeof this.values.level == \"number\"\n ? this.values.level\n : 0;\n };\n /**\n * Get values\n *\n * @returns {{}}\n */\n Counter.prototype.getValues = function () {\n return this.values;\n };\n /**\n * Is used\n *\n * @returns {boolean}\n */\n Counter.prototype.isUsed = function () {\n return this.used;\n };\n /**\n * Get N\n *\n * @returns {number}\n */\n Counter.prototype.getN = function () {\n return this.n;\n };\n /**\n * Create by active elements\n *\n * @param name\n * @param n\n * @param activeElements\n */\n Counter.createByActiveElements = function (name, n, activeElements) {\n var values = Metadata_1.Metadata.fromMetadata(name);\n if (values == null) {\n return null;\n }\n var i = activeElements.length;\n var inActiveElements = false;\n while (i--) {\n if (activeElements[i] == values.id) {\n inActiveElements = true;\n }\n }\n return new Counter(values, inActiveElements, n);\n };\n /**\n * To array\n *\n * @return {{}}\n */\n Counter.prototype.toArray = function () {\n var values = {\n values: this.values,\n n: this.n\n };\n if (this.used === true) {\n values.used = true;\n }\n return values;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Counter}\n */\n Counter.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new Counter(array.values, (typeof array.used == \"boolean\")\n ? array.used\n : false, array.n);\n };\n return Counter;\n}());\nexports.Counter = Counter;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * User class\n */\nvar Metadata = /** @class */ (function () {\n function Metadata() {\n }\n /**\n * To metadata\n *\n * @param array:{}\n *\n * @returns {string}\n */\n Metadata.toMetadata = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var parts = [];\n for (var key in array) {\n parts.push(key + \"##\" + array[key]);\n }\n return parts.join(\"~~\");\n };\n /**\n * From metadata\n *\n * @param metadata\n *\n * @return {{}}\n */\n Metadata.fromMetadata = function (metadata) {\n var values = {};\n var splittedParts = metadata.split(\"~~\");\n var iterator = 0;\n var size = 0;\n var lastElement = null;\n for (var key in splittedParts) {\n var part = splittedParts[key];\n var parts = part.split(\"##\");\n if (parts.length > 1) {\n lastElement = parts[1];\n values[parts[0]] = lastElement;\n }\n else {\n lastElement = part;\n values[iterator++] = lastElement;\n }\n size++;\n }\n if (size == 1) {\n values = {\n id: lastElement,\n name: lastElement\n };\n }\n if (typeof values.id == \"undefined\") {\n return null;\n }\n return values;\n };\n return Metadata;\n}());\nexports.Metadata = Metadata;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\n/**\n * Aggregation class\n */\nvar Repository = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param appId\n * @param indexId\n * @param token\n */\n function Repository(appId, indexId, token) {\n this.itemsToUpdate = [];\n this.itemsToDelete = [];\n this.appId = appId;\n this.indexId = indexId;\n this.token = token;\n }\n /**\n * Reset cached elements\n */\n Repository.prototype.resetCachedElements = function () {\n this.itemsToUpdate = [];\n this.itemsToDelete = [];\n };\n /**\n * Add element\n *\n * @param item\n */\n Repository.prototype.addItem = function (item) {\n this.itemsToUpdate.push(item);\n };\n /**\n * Add elements\n *\n * @param items\n */\n Repository.prototype.addItems = function (items) {\n for (var i in items) {\n this.addItem(items[i]);\n }\n };\n /**\n * Delete item\n *\n * @param itemUUID\n */\n Repository.prototype.deleteItem = function (itemUUID) {\n this.itemsToDelete.push(itemUUID);\n };\n /**\n * Delete items\n *\n * @param itemsUUID\n */\n Repository.prototype.deleteItems = function (itemsUUID) {\n for (var i in itemsUUID) {\n this.deleteItem(itemsUUID[i]);\n }\n };\n /**\n * flush\n *\n * @param bulkNumber\n * @param skipIfLess\n *\n * @return {Promise}\n */\n Repository.prototype.flush = function (bulkNumber, skipIfLess) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n if (!bulkNumber) {\n bulkNumber = 500;\n }\n if (!skipIfLess) {\n skipIfLess = false;\n }\n if (skipIfLess &&\n this.itemsToUpdate.length < bulkNumber) {\n return [2 /*return*/];\n }\n return [2 /*return*/, Promise.all(Repository\n .chunkArray(this.itemsToUpdate, bulkNumber)\n .map(function (arrayOfItems) {\n return _this.flushUpdateItems(arrayOfItems);\n })\n .concat(Repository\n .chunkArray(this.itemsToDelete, bulkNumber)\n .map(function (arrayOfItemsUUID) {\n return _this.flushDeleteItems(arrayOfItemsUUID);\n }))).then(function (_) {\n _this.resetCachedElements();\n })[\"catch\"](function (_) {\n _this.resetCachedElements();\n })];\n });\n });\n };\n /**\n * Make chunks of n elements\n *\n * @param array\n * @param chunk\n *\n * @return any[]\n */\n Repository.chunkArray = function (array, chunk) {\n var arrayChunked = [];\n for (var i = 0, j = array.length; i < j; i += chunk) {\n arrayChunked.push(array.slice(i, i + chunk));\n }\n return arrayChunked;\n };\n return Repository;\n}());\nexports.Repository = Repository;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\n/**\n * Transformer\n */\nvar Transformer = /** @class */ (function () {\n function Transformer() {\n this.readTransformers = [];\n this.writeTransformers = [];\n }\n /**\n * Add read transformer\n *\n * @param readTransformer\n */\n Transformer.prototype.addReadTransformer = function (readTransformer) {\n this\n .readTransformers\n .push(readTransformer);\n };\n /**\n * Add write transformer\n *\n * @param writeTransformer\n */\n Transformer.prototype.addWriteTransformer = function (writeTransformer) {\n this\n .writeTransformers\n .push(writeTransformer);\n };\n /**\n * Items to objects\n *\n * @param items\n *\n * @returns {any[]}\n */\n Transformer.prototype.fromItems = function (items) {\n var objects = [];\n for (var i in items) {\n objects.push(this.fromItem(items[i]));\n }\n return objects;\n };\n /**\n * Item to object\n *\n * @param item\n *\n * @returns {any}\n */\n Transformer.prototype.fromItem = function (item) {\n for (var i in this.readTransformers) {\n var transformer = this.readTransformers[i];\n if (transformer.isValidItem(item)) {\n return transformer.fromItem(item);\n }\n }\n return item;\n };\n /**\n * Objects to items\n *\n * @param objects\n *\n * @returns {Item[]}\n */\n Transformer.prototype.toItems = function (objects) {\n var items = [];\n for (var i in objects) {\n var item = this.toItem(objects[i]);\n if (item instanceof Item_1.Item) {\n items.push(item);\n }\n }\n return items;\n };\n /**\n * Object to item\n *\n * @param object\n *\n * @returns {any}\n */\n Transformer.prototype.toItem = function (object) {\n for (var i in this.writeTransformers) {\n var transformer = this.writeTransformers[i];\n if (transformer.isValidObject(object)) {\n return transformer.toItem(object);\n }\n }\n return object;\n };\n /**\n * Objects to items\n *\n * @param objects\n *\n * @returns {ItemUUID[]}\n */\n Transformer.prototype.toItemUUIDs = function (objects) {\n var itemUUIDs = [];\n for (var i in objects) {\n var itemUUID = this.toItemUUID(objects[i]);\n if (itemUUID instanceof ItemUUID_1.ItemUUID) {\n itemUUIDs.push(itemUUID);\n }\n }\n return itemUUIDs;\n };\n /**\n * Object to item\n *\n * @param object\n *\n * @returns {any}\n */\n Transformer.prototype.toItemUUID = function (object) {\n for (var i in this.writeTransformers) {\n var transformer = this.writeTransformers[i];\n if (transformer.isValidObject(object)) {\n return transformer.toItemUUID(object);\n }\n }\n return object;\n };\n return Transformer;\n}());\nexports.Transformer = Transformer;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Result class\n */\nvar Synonym = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param words\n */\n function Synonym(words) {\n this.words = words;\n }\n /**\n * get words\n *\n * @return {string[]}\n */\n Synonym.prototype.getWords = function () {\n return this.words;\n };\n /**\n * Create by words\n *\n * @param words\n *\n * @return {Synonym}\n */\n Synonym.createbyWords = function (words) {\n return new Synonym(words);\n };\n /**\n * To array\n *\n * @return {{words: string[]}}\n */\n Synonym.prototype.toArray = function () {\n return {\n words: this.words\n };\n };\n /**\n * create from array\n *\n * @param array\n *\n * @returns {Synonym}\n */\n Synonym.createFromArray = function (array) {\n return new Synonym(array.words instanceof Object\n ? array.words\n : []);\n };\n /**\n * Expand\n *\n * @returns {string}\n */\n Synonym.prototype.expand = function () {\n return this.words.join(\",\");\n };\n return Synonym;\n}());\nexports.Synonym = Synonym;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Apisearch_1 = require(\"./Apisearch\");\nexports[\"default\"] = Apisearch_1[\"default\"];\ntslib_1.__exportStar(require(\"./Cache/InMemoryCache\"), exports);\ntslib_1.__exportStar(require(\"./Config/Config\"), exports);\ntslib_1.__exportStar(require(\"./Config/Synonym\"), exports);\ntslib_1.__exportStar(require(\"./Error/ConnectionError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ErrorWithMessage\"), exports);\ntslib_1.__exportStar(require(\"./Error/EventError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ForbiddenError\"), exports);\ntslib_1.__exportStar(require(\"./Error/InvalidFormatError\"), exports);\ntslib_1.__exportStar(require(\"./Error/InvalidTokenError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ResourceExistsError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ResourceNotAvailableError\"), exports);\ntslib_1.__exportStar(require(\"./Error/UnsupportedContentTypeError\"), exports);\ntslib_1.__exportStar(require(\"./Geo/LocationRange\"), exports);\ntslib_1.__exportStar(require(\"./Http/AxiosClient\"), exports);\ntslib_1.__exportStar(require(\"./Http/Client\"), exports);\ntslib_1.__exportStar(require(\"./Http/HttpClient\"), exports);\ntslib_1.__exportStar(require(\"./Http/Response\"), exports);\ntslib_1.__exportStar(require(\"./Http/Retry\"), exports);\ntslib_1.__exportStar(require(\"./Http/RetryMap\"), exports);\ntslib_1.__exportStar(require(\"./Model/Changes\"), exports);\ntslib_1.__exportStar(require(\"./Model/Coordinate\"), exports);\ntslib_1.__exportStar(require(\"./Model/Item\"), exports);\ntslib_1.__exportStar(require(\"./Model/ItemUUID\"), exports);\ntslib_1.__exportStar(require(\"./Model/Metadata\"), exports);\ntslib_1.__exportStar(require(\"./Model/User\"), exports);\ntslib_1.__exportStar(require(\"./Query/Aggregation\"), exports);\ntslib_1.__exportStar(require(\"./Query/Filter\"), exports);\ntslib_1.__exportStar(require(\"./Query/Query\"), exports);\ntslib_1.__exportStar(require(\"./Query/Range\"), exports);\ntslib_1.__exportStar(require(\"./Query/ScoreStrategies\"), exports);\ntslib_1.__exportStar(require(\"./Query/ScoreStrategy\"), exports);\ntslib_1.__exportStar(require(\"./Query/SortBy\"), exports);\ntslib_1.__exportStar(require(\"./Repository/HttpRepository\"), exports);\ntslib_1.__exportStar(require(\"./Repository/Repository\"), exports);\ntslib_1.__exportStar(require(\"./Result/ResultAggregation\"), exports);\ntslib_1.__exportStar(require(\"./Result/ResultAggregations\"), exports);\ntslib_1.__exportStar(require(\"./Result/Counter\"), exports);\ntslib_1.__exportStar(require(\"./Result/Result\"), exports);\ntslib_1.__exportStar(require(\"./Transformer/Transformer\"), exports);\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar NoCache_1 = require(\"./Cache/NoCache\");\nvar AxiosClient_1 = require(\"./Http/AxiosClient\");\nvar RetryMap_1 = require(\"./Http/RetryMap\");\nvar Query_1 = require(\"./Query/Query\");\nvar Query_2 = require(\"./Query/Query\");\nvar Query_3 = require(\"./Query/Query\");\nvar SortBy_1 = require(\"./Query/SortBy\");\nvar HttpRepository_1 = require(\"./Repository/HttpRepository\");\nvar Result_1 = require(\"./Result/Result\");\nvar ResultAggregations_1 = require(\"./Result/ResultAggregations\");\nvar Transformer_1 = require(\"./Transformer/Transformer\");\n/**\n * Apisearch class\n */\nvar Apisearch = /** @class */ (function () {\n function Apisearch() {\n }\n /**\n * Constructor\n *\n * @param config\n *\n * @return {HttpRepository}\n */\n Apisearch.createRepository = function (config) {\n Apisearch.ensureRepositoryConfigIsValid(config);\n config.options = tslib_1.__assign({ api_version: \"v1\", cache: new NoCache_1.NoCache(), timeout: 5000, override_queries: true }, config.options);\n /**\n * Client\n */\n var httpClient = typeof config.options.http_client !== \"undefined\"\n ? config.options.http_client\n : new AxiosClient_1.AxiosClient(config.options.endpoint, config.options.api_version, config.options.timeout, new RetryMap_1.RetryMap(), config.options.override_queries, config.options.cache);\n return new HttpRepository_1.HttpRepository(httpClient, config.app_id, config.index_id, config.token, new Transformer_1.Transformer());\n };\n /**\n * Ensure the Repository configuration is valid\n *\n * @param config\n */\n Apisearch.ensureRepositoryConfigIsValid = function (config) {\n Apisearch.ensureIsDefined(config.app_id, \"app_id\");\n Apisearch.ensureIsDefined(config.index_id, \"index_id\");\n Apisearch.ensureIsDefined(config.token, \"token\");\n Apisearch.ensureIsDefined(config.options.endpoint, \"options.endpoint\");\n };\n /**\n * Ensure the value is not undefined\n *\n * @param param\n * @param name\n */\n Apisearch.ensureIsDefined = function (param, name) {\n if (typeof param === \"undefined\") {\n throw new TypeError(name + \" parameter must be defined.\");\n }\n };\n /**\n * Created located\n *\n * @param coordinate\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Apisearch.createQueryLocated = function (coordinate, queryText, page, size) {\n if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; }\n return Query_3.Query.createLocated(coordinate, queryText, page, size);\n };\n /**\n * Create\n *\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Apisearch.createQuery = function (queryText, page, size) {\n if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; }\n return Query_3.Query.create(queryText, page, size);\n };\n /**\n * Create match all\n *\n * @return {Query}\n */\n Apisearch.createQueryMatchAll = function () {\n return Query_3.Query.createMatchAll();\n };\n /**\n * Create by UUID\n *\n * @param uuid\n *\n * @return {Query}\n */\n Apisearch.createQueryByUUID = function (uuid) {\n return Query_3.Query.createByUUID(uuid);\n };\n /**\n * Create by UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Apisearch.createQueryByUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n return Query_3.Query.createByUUIDs.apply(Query_3.Query, uuids);\n };\n /**\n * Create empty result\n *\n * @return {Result}\n */\n Apisearch.createEmptyResult = function () {\n return Result_1.Result.create(Apisearch.createQueryMatchAll(), 0, 0, new ResultAggregations_1.ResultAggregations(0), [], []);\n };\n /**\n * Create empty sortby\n *\n * @return {SortBy}\n */\n Apisearch.createEmptySortBy = function () {\n return SortBy_1.SortBy.create();\n };\n return Apisearch;\n}());\nexports[\"default\"] = Apisearch;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Cache class\n */\nvar NoCache = /** @class */ (function () {\n function NoCache() {\n }\n /**\n * Set cache element\n *\n * @param key\n * @param value\n *\n * @returns {void}\n */\n NoCache.prototype.set = function (key, value) {\n // Empty\n };\n /**\n * Get element from cache\n *\n * @param key\n *\n * @returns {any}\n */\n NoCache.prototype.get = function (key) {\n return undefined;\n };\n /**\n * Deletes element from cache\n *\n * @param key\n */\n NoCache.prototype.del = function (key) {\n // Empty\n };\n /**\n * Clear cache\n */\n NoCache.prototype.clear = function () {\n // Empty\n };\n return NoCache;\n}());\nexports.NoCache = NoCache;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar IndexUUID_1 = require(\"./IndexUUID\");\nvar AppUUID_1 = require(\"./AppUUID\");\n/**\n * Index class\n */\nvar Index = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param uuid\n * @param appUUID\n * @param isOK\n * @param docCount\n * @param size\n */\n function Index(uuid, appUUID, isOK, docCount, size) {\n if (isOK === void 0) { isOK = false; }\n if (docCount === void 0) { docCount = 0; }\n if (size === void 0) { size = '0kb'; }\n this.uuid = uuid;\n this.appUUID = appUUID;\n this.isOK = isOK;\n this.docCount = docCount;\n this.size = size;\n }\n /**\n * Get uuid\n *\n * @return {IndexUUID}\n */\n Index.prototype.getUUID = function () {\n return this.uuid;\n };\n /**\n * Get app id\n *\n * @return {AppUUID}\n */\n Index.prototype.getAppUUID = function () {\n return this.appUUID;\n };\n /**\n * Index is OK\n *\n * @return {boolean}\n */\n Index.prototype.isOk = function () {\n return this.isOK;\n };\n /**\n * Get doc count\n *\n * @return {number}\n */\n Index.prototype.getDocCount = function () {\n return this.docCount;\n };\n /**\n * get size\n *\n * @return {string}\n */\n Index.prototype.getSize = function () {\n return this.size;\n };\n /**\n * To array\n *\n * @returns {{id: string, attributes: {}}}\n */\n Index.prototype.toArray = function () {\n return {\n uuid: this.uuid.toArray(),\n app_id: this.appUUID.toArray(),\n is_ok: this.isOK,\n doc_count: this.docCount,\n size: this.size\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return User\n */\n Index.createFromArray = function (array) {\n if (typeof array.uuid == \"undefined\" ||\n typeof array.app_id == \"undefined\") {\n throw InvalidFormatError_1.InvalidFormatError.indexFormatNotValid();\n }\n return new Index(IndexUUID_1.IndexUUID.createFromArray(array.uuid), AppUUID_1.AppUUID.createFromArray(array.app_id), (typeof array.is_ok == \"undefined\" ? false : array.is_ok), (typeof array.doc_count == \"undefined\" ? 0 : array.doc_count), (typeof array.size == \"undefined\" ? '0kb' : array.size));\n };\n return Index;\n}());\nexports.Index = Index;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * IndexUUID class\n */\nvar IndexUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n */\n function IndexUUID(id) {\n if (id.indexOf('_') >= 0) {\n throw InvalidFormatError_1.InvalidFormatError.indexUUIDFormatNotValid();\n }\n this.id = id;\n }\n /**\n * Create by id\n *\n * @param id\n *\n * @returns {ItemUUID}\n */\n IndexUUID.createById = function (id) {\n return new IndexUUID(id);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n IndexUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n IndexUUID.prototype.toArray = function () {\n return {\n id: this.id\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n IndexUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new IndexUUID(array.id);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n IndexUUID.prototype.composedUUID = function () {\n return this.id;\n };\n return IndexUUID;\n}());\nexports.IndexUUID = IndexUUID;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * AppUUID class\n */\nvar AppUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n */\n function AppUUID(id) {\n if (id.indexOf('_') >= 0) {\n throw InvalidFormatError_1.InvalidFormatError.appUUIDFormatNotValid();\n }\n this.id = id;\n }\n /**\n * Create by id\n *\n * @param id\n *\n * @returns {ItemUUID}\n */\n AppUUID.createById = function (id) {\n return new AppUUID(id);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n AppUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n AppUUID.prototype.toArray = function () {\n return {\n id: this.id\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n AppUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new AppUUID(array.id);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n AppUUID.prototype.composedUUID = function () {\n return this.id;\n };\n return AppUUID;\n}());\nexports.AppUUID = AppUUID;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\n/**\n * Cache class\n */\nvar InMemoryCache = /** @class */ (function () {\n /**\n * Constructor\n */\n function InMemoryCache() {\n this.cache = {};\n this.size = 0;\n this.cache = {};\n this.size = 0;\n }\n /**\n * Set cache element\n *\n * @param key\n * @param value\n *\n * @returns {void}\n */\n InMemoryCache.prototype.set = function (key, value) {\n var _a;\n this.cache = tslib_1.__assign({}, this.cache, (_a = {}, _a[key] = value, _a));\n this.size = this.size + 1;\n };\n /**\n * Get element from cache\n *\n * @param key\n *\n * @returns {any}\n */\n InMemoryCache.prototype.get = function (key) {\n return this.cache[key];\n };\n /**\n * Deletes element from cache\n *\n * @param key\n */\n InMemoryCache.prototype.del = function (key) {\n delete this.cache[key];\n };\n /**\n * Clear cache\n */\n InMemoryCache.prototype.clear = function () {\n this.cache = {};\n this.size = 0;\n };\n return InMemoryCache;\n}());\nexports.InMemoryCache = InMemoryCache;\n","\"use strict\";\nexports.__esModule = true;\nvar Synonym_1 = require(\"./Synonym\");\nexports.DEFAULT_SHARDS = 1;\nexports.DEFAULT_REPLICAS = 0;\n/**\n * Result class\n */\nvar Config = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param language\n * @param storeSearchableMetadata\n * @param shards\n * @param replicas\n */\n function Config(language, storeSearchableMetadata, shards, replicas) {\n if (language === void 0) { language = null; }\n if (storeSearchableMetadata === void 0) { storeSearchableMetadata = true; }\n if (shards === void 0) { shards = exports.DEFAULT_SHARDS; }\n if (replicas === void 0) { replicas = exports.DEFAULT_REPLICAS; }\n this.synonyms = [];\n this.language = language;\n this.storeSearchableMetadata = storeSearchableMetadata;\n this.shards = shards;\n this.replicas = replicas;\n }\n /**\n * Get language\n *\n * @return {string}\n */\n Config.prototype.getLanguage = function () {\n return this.language;\n };\n /**\n * Should searchable metadata be stored\n *\n * @return {boolean}\n */\n Config.prototype.shouldSearchableMetadataBeStored = function () {\n return this.storeSearchableMetadata;\n };\n /**\n * Add synonym\n *\n * @param synonym\n */\n Config.prototype.addSynonym = function (synonym) {\n this.synonyms.push(synonym);\n };\n /**\n * Get synonyms\n *\n * @return {Synonym[]}\n */\n Config.prototype.getSynonyms = function () {\n return this.synonyms;\n };\n /**\n * Get shards\n *\n * @return {number}\n */\n Config.prototype.getShards = function () {\n return this.shards;\n };\n /**\n * Get replicas\n *\n * @return {number}\n */\n Config.prototype.getReplicas = function () {\n return this.replicas;\n };\n /**\n * to array\n */\n Config.prototype.toArray = function () {\n return {\n language: this.language,\n store_searchable_metadata: this.storeSearchableMetadata,\n synonyms: this.synonyms.map(function (synonym) { return synonym.toArray(); }),\n shards: this.shards,\n replicas: this.replicas\n };\n };\n /**\n * Create from array\n */\n Config.createFromArray = function (array) {\n var config = new Config(array.language ? array.language : null, typeof array.store_searchable_metadata == \"boolean\"\n ? array.store_searchable_metadata\n : true);\n if (array.synonyms instanceof Array &&\n array.synonyms.length > 0) {\n config.synonyms = array.synonyms.map(function (synonym) { return Synonym_1.Synonym.createFromArray(synonym); });\n }\n config.shards = typeof array.shards == \"number\"\n ? array.shards\n : exports.DEFAULT_SHARDS;\n config.replicas = typeof array.replicas == \"number\"\n ? array.replicas\n : exports.DEFAULT_REPLICAS;\n return config;\n };\n return Config;\n}());\nexports.Config = Config;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * EventError\n */\nvar EventError = /** @class */ (function (_super) {\n tslib_1.__extends(EventError, _super);\n function EventError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n EventError.throwEndpointNotAvailable = function () {\n return new EventError(\"Endpoint not available\");\n };\n return EventError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.EventError = EventError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Forbidden Error\n */\nvar ForbiddenError = /** @class */ (function (_super) {\n tslib_1.__extends(ForbiddenError, _super);\n function ForbiddenError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ForbiddenError.getTransportableHTTPError = function () {\n return 403;\n };\n /**\n * App id is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createAppIdIsRequiredException = function () {\n return new ForbiddenError(\"AppId query parameter MUST be defined with a valid value\");\n };\n /**\n * Index id is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createIndexIsRequiredException = function () {\n return new ForbiddenError(\"Index query parameter MUST be defined with a valid value\");\n };\n /**\n * Token is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createTokenIsRequiredException = function () {\n return new ForbiddenError(\"Token query parameter MUST be defined with a valid value\");\n };\n return ForbiddenError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ForbiddenError = ForbiddenError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Unsupported content type error\n */\nvar UnsupportedContentTypeError = /** @class */ (function (_super) {\n tslib_1.__extends(UnsupportedContentTypeError, _super);\n function UnsupportedContentTypeError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n UnsupportedContentTypeError.getTransportableHTTPError = function () {\n return 415;\n };\n /**\n * Unsupported content type\n *\n * @return {InvalidFormatError}\n */\n UnsupportedContentTypeError.createUnsupportedContentTypeException = function () {\n return new UnsupportedContentTypeError(\"This content type is not accepted. Please use application/json\");\n };\n return UnsupportedContentTypeError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.UnsupportedContentTypeError = UnsupportedContentTypeError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Coordinate_1 = require(\"../Model/Coordinate\");\n/**\n * Abstract Location Range class\n */\nvar LocationRange = /** @class */ (function () {\n function LocationRange() {\n }\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n LocationRange.fromFilterObject = function (object) {\n throw TypeError(\"Method not valid\");\n };\n /**\n * to array\n */\n LocationRange.prototype.toArray = function () {\n return {\n type: this.getName(),\n data: this.toFilterObject()\n };\n };\n /**\n * Create from array\n *\n * @param array\n */\n LocationRange.createFromArray = function (array) {\n if (array.type == \"CoordinateAndDistance\") {\n return CoordinateAndDistance.fromFilterObject(array.data);\n }\n if (array.type == \"Polygon\") {\n return Polygon.fromFilterObject(array.data);\n }\n if (array.type == \"Square\") {\n return Square.fromFilterObject(array.data);\n }\n };\n return LocationRange;\n}());\nexports.LocationRange = LocationRange;\n/**\n * CoordinateAndDistance\n */\nvar CoordinateAndDistance = /** @class */ (function (_super) {\n tslib_1.__extends(CoordinateAndDistance, _super);\n /**\n * Constructor\n *\n * @param coordinate\n * @param distance\n */\n function CoordinateAndDistance(coordinate, distance) {\n var _this = _super.call(this) || this;\n _this.coordinate = coordinate;\n _this.distance = distance;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{}}}\n */\n CoordinateAndDistance.prototype.toFilterObject = function () {\n return {\n coordinate: this.coordinate.toArray(),\n distance: this.distance\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n CoordinateAndDistance.prototype.getName = function () {\n return \"CoordinateAndDistance\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n CoordinateAndDistance.fromFilterObject = function (object) {\n return new CoordinateAndDistance(Coordinate_1.Coordinate.createFromArray(object.coordinate), object.distance);\n };\n return CoordinateAndDistance;\n}(LocationRange));\nexports.CoordinateAndDistance = CoordinateAndDistance;\n/**\n * Polygon\n */\nvar Polygon = /** @class */ (function (_super) {\n tslib_1.__extends(Polygon, _super);\n /**\n * Constructor\n *\n * @param coordinates\n */\n function Polygon(coordinates) {\n var _this = _super.call(this) || this;\n if (coordinates.length < 3) {\n throw new Error(\"A polygon needs more than two coordinates.\");\n }\n _this.coordinates = coordinates;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{coordinates: {lat:number, lon:number}[]}}\n */\n Polygon.prototype.toFilterObject = function () {\n var coordinates = [];\n for (var i in this.coordinates) {\n coordinates.push(this.coordinates[i].toArray());\n }\n return {\n coordinates: coordinates\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n Polygon.prototype.getName = function () {\n return \"Polygon\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {Polygon}\n */\n Polygon.fromFilterObject = function (object) {\n var coordinates = [];\n for (var i in object.coordinates) {\n coordinates.push(Coordinate_1.Coordinate.createFromArray(object.coordinates[i]));\n }\n return new Polygon(coordinates);\n };\n return Polygon;\n}(LocationRange));\nexports.Polygon = Polygon;\n/**\n * Square\n */\nvar Square = /** @class */ (function (_super) {\n tslib_1.__extends(Square, _super);\n /**\n * Constructor\n *\n * @param topLeftCoordinate\n * @param bottomRightCoordinate\n */\n function Square(topLeftCoordinate, bottomRightCoordinate) {\n var _this = _super.call(this) || this;\n _this.topLeftCoordinate = topLeftCoordinate;\n _this.bottomRightCoordinate = bottomRightCoordinate;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{}}}\n */\n Square.prototype.toFilterObject = function () {\n return {\n top_left: this.topLeftCoordinate.toArray(),\n bottom_right: this.bottomRightCoordinate.toArray()\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n Square.prototype.getName = function () {\n return \"Square\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n Square.fromFilterObject = function (object) {\n return new Square(Coordinate_1.Coordinate.createFromArray(object.top_left), Coordinate_1.Coordinate.createFromArray(object.bottom_right));\n };\n return Square;\n}(LocationRange));\nexports.Square = Square;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Http class\n */\nvar HttpClient = /** @class */ (function () {\n function HttpClient() {\n }\n return HttpClient;\n}());\nexports.HttpClient = HttpClient;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * filter constants\n */\nexports.TYPE_VALUE = 1;\nexports.TYPE_LITERAL = 4;\nexports.TYPE_ARRAY_ELEMENT_UPDATE = 8;\nexports.TYPE_ARRAY_ELEMENT_ADD = 16;\nexports.TYPE_ARRAY_ELEMENT_DELETE = 32;\nexports.TYPE_ARRAY_EXPECTS_ELEMENT = 24;\nexports.TYPE_ARRAY = 56;\n/**\n * Changes Type cast\n * @param Changes\n */\nvar Changes = /** @class */ (function () {\n function Changes() {\n /**\n * Changes\n *\n * @type {Array}\n */\n this.changes = [];\n }\n /**\n * Add new change\n *\n * @param field\n * @param value\n * @param type\n */\n Changes.prototype.addChange = function (field, value, type) {\n if (type === void 0) { type = exports.TYPE_VALUE; }\n this.changes.push({\n field: field,\n type: type,\n value: value\n });\n };\n /**\n * Update element from list\n *\n * @param field\n * @param condition\n * @param value\n * @param type\n */\n Changes.prototype.updateElementFromList = function (field, condition, value, type) {\n this.changes.push({\n field: field,\n type: type | exports.TYPE_ARRAY_ELEMENT_UPDATE,\n condition: condition,\n value: value\n });\n };\n /**\n * Add element in list\n *\n * @param field\n * @param value\n * @param type\n */\n Changes.prototype.addElementInList = function (field, value, type) {\n this.changes.push({\n field: field,\n type: type | exports.TYPE_ARRAY_ELEMENT_ADD,\n value: value\n });\n };\n /**\n * Delete element from list\n *\n * @param field\n * @param condition\n */\n Changes.prototype.deleteElementFromList = function (field, condition) {\n this.changes.push({\n field: field,\n type: exports.TYPE_ARRAY_ELEMENT_DELETE,\n condition: condition\n });\n };\n /**\n * Get changes\n *\n * @returns {[]}\n */\n Changes.prototype.getChanges = function () {\n return this.changes;\n };\n /**\n * Create\n *\n * @returns {Changes}\n */\n Changes.create = function () {\n return new Changes();\n };\n /**\n * To array\n *\n * @returns {[]}\n */\n Changes.prototype.toArray = function () {\n return JSON.parse(JSON.stringify(this.changes));\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Changes}\n */\n Changes.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var changes = Changes.create();\n changes.changes = array;\n return changes;\n };\n return Changes;\n}());\nexports.Changes = Changes;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Aggregation constants\n */\nexports.RANGE_ZERO = 0;\nexports.RANGE_INFINITE = -1;\nexports.RANGE_SEPARATOR = \"..\";\n/**\n * Filter class\n */\nvar Range = /** @class */ (function () {\n function Range() {\n }\n /**\n * Strong to array\n *\n * @param string\n *\n * @returns {[number, number]}\n */\n Range.stringToArray = function (string) {\n var parts = string.split(exports.RANGE_SEPARATOR);\n var from = parts[0];\n var to = parts[1];\n var finalFrom = exports.RANGE_ZERO;\n var finalTo = exports.RANGE_INFINITE;\n if (from != \"\") {\n finalFrom = parseInt(from);\n }\n if (to != \"\") {\n finalTo = parseInt(to);\n }\n return [finalFrom, finalTo];\n };\n /**\n * Array to string\n *\n * @param values\n *\n * @return {string}\n */\n Range.arrayToString = function (values) {\n var finalValues = [\"\", \"\"];\n if (values[0] != exports.RANGE_ZERO) {\n finalValues[0] = String(values[0]);\n }\n if (values[1] != exports.RANGE_INFINITE) {\n finalValues[1] = String(values[1]);\n }\n return finalValues.join(exports.RANGE_SEPARATOR);\n };\n /**\n * Create ranges\n *\n * @param from\n * @param to\n * @param incremental\n */\n Range.createRanges = function (from, to, incremental) {\n var ranges = [];\n var nextTo;\n while (from < to) {\n nextTo = from + incremental;\n ranges.push(from + exports.RANGE_SEPARATOR + nextTo);\n from = nextTo;\n }\n return ranges;\n };\n return Range;\n}());\nexports.Range = Range;\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://apisearch/webpack/universalModuleDefinition","webpack://apisearch/webpack/bootstrap","webpack://apisearch/./node_modules/tslib/tslib.es6.js","webpack://apisearch/./node_modules/axios/lib/utils.js","webpack://apisearch/./src/Error/InvalidFormatError.ts","webpack://apisearch/./src/Error/ErrorWithMessage.ts","webpack://apisearch/./src/Query/Filter.ts","webpack://apisearch/./src/Model/Item.ts","webpack://apisearch/./src/Query/Query.ts","webpack://apisearch/./src/Model/Coordinate.ts","webpack://apisearch/./src/Model/ItemUUID.ts","webpack://apisearch/./node_modules/axios/lib/defaults.js","webpack://apisearch/./src/Query/Aggregation.ts","webpack://apisearch/./src/Query/SortBy.ts","webpack://apisearch/./src/Result/Result.ts","webpack://apisearch/./src/Result/ResultAggregations.ts","webpack://apisearch/./src/Http/AxiosClient.ts","webpack://apisearch/./node_modules/axios/lib/helpers/bind.js","webpack://apisearch/./node_modules/axios/lib/adapters/xhr.js","webpack://apisearch/./node_modules/axios/lib/core/createError.js","webpack://apisearch/./node_modules/axios/lib/cancel/isCancel.js","webpack://apisearch/./node_modules/axios/lib/cancel/Cancel.js","webpack://apisearch/./src/Http/Client.ts","webpack://apisearch/./src/Http/Response.ts","webpack://apisearch/./src/Http/RetryMap.ts","webpack://apisearch/./src/Http/Retry.ts","webpack://apisearch/./src/Model/User.ts","webpack://apisearch/./src/Query/ScoreStrategies.ts","webpack://apisearch/./src/Query/ScoreStrategy.ts","webpack://apisearch/./src/Repository/HttpRepository.ts","webpack://apisearch/./src/Error/ConnectionError.ts","webpack://apisearch/./src/Error/InvalidTokenError.ts","webpack://apisearch/./src/Error/ResourceExistsError.ts","webpack://apisearch/./src/Error/ResourceNotAvailableError.ts","webpack://apisearch/./src/Result/ResultAggregation.ts","webpack://apisearch/./src/Result/Counter.ts","webpack://apisearch/./src/Model/Metadata.ts","webpack://apisearch/./src/Repository/Repository.ts","webpack://apisearch/./src/Transformer/Transformer.ts","webpack://apisearch/./src/Config/Synonym.ts","webpack://apisearch/./src/index.ts","webpack://apisearch/./src/Apisearch.ts","webpack://apisearch/./src/Cache/NoCache.ts","webpack://apisearch/./node_modules/axios/index.js","webpack://apisearch/./node_modules/axios/lib/axios.js","webpack://apisearch/./node_modules/is-buffer/index.js","webpack://apisearch/./node_modules/axios/lib/core/Axios.js","webpack://apisearch/./node_modules/process/browser.js","webpack://apisearch/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://apisearch/./node_modules/axios/lib/core/settle.js","webpack://apisearch/./node_modules/axios/lib/core/enhanceError.js","webpack://apisearch/./node_modules/axios/lib/helpers/buildURL.js","webpack://apisearch/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://apisearch/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://apisearch/./node_modules/axios/lib/helpers/btoa.js","webpack://apisearch/./node_modules/axios/lib/helpers/cookies.js","webpack://apisearch/./node_modules/axios/lib/core/InterceptorManager.js","webpack://apisearch/./node_modules/axios/lib/core/dispatchRequest.js","webpack://apisearch/./node_modules/axios/lib/core/transformData.js","webpack://apisearch/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://apisearch/./node_modules/axios/lib/helpers/combineURLs.js","webpack://apisearch/./node_modules/axios/lib/cancel/CancelToken.js","webpack://apisearch/./node_modules/axios/lib/helpers/spread.js","webpack://apisearch/./src/Model/Index.ts","webpack://apisearch/./src/Model/IndexUUID.ts","webpack://apisearch/./src/Model/AppUUID.ts","webpack://apisearch/./src/Cache/InMemoryCache.ts","webpack://apisearch/./src/Config/Config.ts","webpack://apisearch/./src/Error/EventError.ts","webpack://apisearch/./src/Error/ForbiddenError.ts","webpack://apisearch/./src/Error/UnsupportedContentTypeError.ts","webpack://apisearch/./src/Geo/LocationRange.ts","webpack://apisearch/./src/Http/HttpClient.ts","webpack://apisearch/./src/Model/Changes.ts","webpack://apisearch/./src/Query/Range.ts"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","__extends","__assign","__rest","__decorate","__param","__metadata","__awaiter","__generator","__exportStar","__values","__read","__spread","__await","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","extendStatics","b","setPrototypeOf","__proto__","Array","__","this","constructor","assign","arguments","length","apply","e","indexOf","getOwnPropertySymbols","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","paramIndex","decorator","metadataKey","metadataValue","metadata","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","iterator","v","op","TypeError","pop","push","ar","error","concat","asyncIterator","q","a","resume","fulfill","settle","shift","cooked","raw","mod","k","default","isBuffer","toString","isArray","val","isObject","isFunction","forEach","obj","fn","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","document","merge","assignValue","extend","trim","str","replace","tslib_1","InvalidFormatError","_super","getTransportableHTTPError","itemRepresentationNotValid","itemUUIDRepresentationNotValid","composedItemUUIDNotValid","querySortedByDistanceWithoutCoordinate","queryFormatNotValid","coordinateFormatNotValid","configFormatNotValid","tokenFormatNotValid","indexFormatNotValid","indexUUIDFormatNotValid","appUUIDFormatNotValid","campaignFormatNotValid","changesFormatNotValid","boostClauseFormatNotValid","tokenUUIDFormatNotValid","userFormatNotValid","ErrorWithMessage","message","FILTER_MUST_ALL","FILTER_MUST_ALL_WITH_LEVELS","FILTER_AT_LEAST_ONE","FILTER_EXCLUDE","FILTER_PROMOTE","FILTER_TYPE_FIELD","FILTER_TYPE_RANGE","FILTER_TYPE_DATE_RANGE","FILTER_TYPE_GEO","FILTER_TYPE_QUERY","Filter","field","values","applicationType","filterType","filterTerms","getField","getValues","hasValue","getApplicationType","getFilterType","getFilterTerms","toArray","filterAsArray","keys","application_type","filter_type","filter_terms","createFromArray","array","JSON","parse","stringify","InvalidFormatError_1","Coordinate_1","ItemUUID_1","Item","uuid","coordinate","indexedMetadata","searchableMetadata","exactMatchingMetadata","suggest","highlights","promoted","createLocated","getUUID","getId","getType","getCoordinate","getDistance","distance","getMetadata","setMetadata","addMetadata","getIndexedMetadata","setIndexedMetadata","addIndexedMetadata","getSearchableMetadata","setSearchableMetadata","addSearchableMetadata","getExactMatchingMetadata","setExactMatchingMetadata","addExactMatchingMetadata","getAllMetadata","allMetadata","getSuggest","getHighlights","getHighlight","isPromoted","setScore","score","getScore","itemAsArray","Coordinate","indexed_metadata","searchable_metadata","exact_matching_metadata","is_promoted","item","ItemUUID","composeUUID","composedUUID","getPathByField","Item_1","User_1","Aggregation_1","Filter_1","Filter_2","Aggregation_2","Filter_3","ScoreStrategies_1","SortBy_1","QUERY_DEFAULT_PAGE","QUERY_DEFAULT_SIZE","NO_MIN_SCORE","Query","queryText","fields","universeFilters","filters","itemsPromoted","aggregations","resultsEnabled","aggregationsEnabled","suggestionsEnabled","highlightsEnabled","filterFields","minScore","subqueries","sortByInstance","SortBy","_query","page","size","query","Math","max","from","createMatchAll","createByUUID","createByUUIDs","uuids","_i","ids","disableAggregations","disableSuggestions","_id","createMultiquery","queries","setFields","getFields","filterUniverseByTypes","_a","fieldPath","type","filterByTypes","aggregate","aggregationSort","_b","AGGREGATION_SORT_BY_COUNT_DESC","Aggregation","filterUniverseByIds","id","filterByIds","filterUniverseBy","filterBy","filterName","aggregateBy","filterUniverseByRange","rangeType","filterUniverseByDateRange","filterByRange","options","aggregateByRange","filterByDateRange","filterUniverseByLocation","locationRange","setFilterFields","getFilterFields","sortBy","isSortedByGeoDistance","setCoordinate","limit","AGGREGATION_NO_LIMIT","aggregateByDateRange","getAggregations","getAggregation","aggregationName","getQueryText","filter","getUniverseFilters","getUniverseFilter","getFilters","getFilter","getFilterByField","fieldName","getSortBy","getFrom","getSize","getPage","enableResults","disableResults","areResultsEnabled","enableAggregations","areAggregationsEnabled","enableSuggestions","areSuggestionsEnabled","enableHighlights","disableHighlights","areHighlightsEnabled","promoteUUID","itemUUID","promoteUUIDs","getItemsPromoted","excludeUUID","excludeUUIDs","map","getScoreStrategies","scoreStrategies","setScoreStrategies","getFuzziness","fuzziness","setFuzziness","setAutoFuzziness","getMinScore","setMinScore","byUser","user","anonymously","getUser","setMetadataValue","addSubquery","subquery","getSubqueries","universe_filters","universeFilter","aggregation","sort","results_enabled","suggestions_enabled","highlights_enabled","aggregations_enabled","filter_fields","ScoreStrategies","scoreStrategiesAsArray","score_strategies","min_score","User","userAsArray","items_promoted","aggregationsAsArray","sortAsArray","filtersAsArray","universeFiltersAsArray","itemsPromotedAsArray","subqueriesAsArray","lat","lon","getLatitude","getLongitude","createByComposedUUID","parts","split","process","utils","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","setContentTypeIfUnset","headers","defaults","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","data","transformResponse","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","Accept","method","AGGREGATION_SORT_BY_COUNT_ASC","AGGREGATION_SORT_BY_NAME_ASC","AGGREGATION_SORT_BY_NAME_DESC","subgroup","getName","getSubgroup","getSort","getLimit","aggregationAsArray","SORT_BY_TYPE_FIELD","SORT_BY_TYPE_NESTED","SORT_BY_TYPE_SCORE","SORT_BY_TYPE_DISTANCE","SORT_BY_TYPE_FUNCTION","SORT_BY_TYPE_RANDOM","SORT_BY_ASC","SORT_BY_DESC","SORT_BY_MODE_AVG","SORT_BY_MODE_SUM","SORT_BY_MODE_MIN","SORT_BY_MODE_MAX","SORT_BY_MODE_MEDIAN","SORT_BY_SCORE","SORT_BY_RANDOM","SORT_BY_AL_TUN_TUN","SORT_BY_ID_ASC","order","SORT_BY_ID_DESC","SORT_BY_TYPE_ASC","SORT_BY_TYPE_DESC","SORT_BY_LOCATION_KM_ASC","unit","SORT_BY_LOCATION_MI_ASC","sortsBy","byFieldsValues","shortSortByElements","byFieldValue","all","byValue","byNestedField","byNestedFieldAndFilter","byFunction","func","function","hasRandomSort","sortsByAsArray","copy","innerArray","element","newSortBy","sortByAsArray","Query_1","ResultAggregations_1","Result","totalItems","totalHits","items","suggests","subresults","createMultiresults","addItem","getItems","getItemsGroupedByTypes","itemsGroupedByTypeCache","itemsGroupedByTypes","getItemsByType","getItemsByTypes","types","getFirstItem","setAggregations","ResultAggregations","hasNotEmptyAggregation","addSuggest","getSuggests","getQuery","getTotalItems","getTotalHits","getSubresults","total_items","total_hits","subresult","subresultsAsArray","ResultAggregation_1","totalElements","addAggregation","ResultAggregation","isEmpty","getTotalElements","aggregationCollection","total_elements","axios_1","Client_1","Response_1","AxiosClient","host","version","retryMap","overrideQueries","cache","_this","cancelToken","url","credentials","parameters","that","toLowerCase","abort","Content-Encoding","axiosRequestConfig","Client","objectToUrlParameters","baseURL","token","request","axiosResponse","response","Response","undefined","cancel","generateCancelToken","CancelToken","source","args","buildURL","parseHeaders","isURLSameOrigin","createError","btoa","config","requestData","requestHeaders","loadEvent","xDomain","XDomainRequest","onprogress","ontimeout","auth","username","password","Authorization","open","toUpperCase","params","paramsSerializer","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onerror","cookies","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","promise","send","enhanceError","code","Error","__CANCEL__","Cancel","builtParams","join","getCode","getBody","Retry_1","RetryMap","retries","addRetry","retry","getUrl","getMethod","Retry","getRetry","DEFAULT_MICROSECONDS_BETWEEN_RETRIES","microsecondsBetweenRetries","microseconds_between_retries","getRetries","getMicrosecondsBetweenRetries","attributes","getAttributes","ScoreStrategy_1","MULTIPLY","SUM","AVG","MAX","MIN","createEmpty","scoreMode","addScoreStrategy","scoreStrategy","getScoreMode","score_mode","ScoreStrategy","DEFAULT_TYPE","DEFAULT_WEIGHT","BOOSTING_FIELD_VALUE","CUSTOM_FUNCTION","DECAY","DECAY_LINEAR","DECAY_EXP","DECAY_GAUSS","MODIFIER_NONE","MODIFIER_SQRT","MODIFIER_LOG","MODIFIER_LN","MODIFIER_SQUARE","SCORE_MODE_NONE","SCORE_MODE_SUM","SCORE_MODE_AVG","SCORE_MODE_MAX","SCORE_MODE_MIN","DEFAULT_MISSING","DEFAULT_FACTOR","weight","configuration","getConfigurationValue","getWeight","createDefault","createFieldBoosting","factor","missing","modifier","fixFilterFieldPath","createCustomFunction","createDecayFunction","origin","scale","offset","decay","ConnectionError_1","InvalidTokenError_1","ResourceExistsError_1","ResourceNotAvailableError_1","Result_1","Repository_1","Index_1","HttpRepository","httpClient","appId","indexId","transformer","getTransformer","addObject","toItem","deleteObject","toItemUUID","deleteItem","flushUpdateItems","itemsToUpdate","getCredentialsWithIndex","throwTransportableExceptionIfNeeded","flushDeleteItems","itemsToDelete","fromItems","updateItems","changes","createIndex","indexUUID","getCredentials","index","deleteIndex","resetIndex","checkIndex","getIndices","indexAsArray","Index","configureIndex","app_id","indexComposedUUID","ResourceNotAvailableError","InvalidTokenError","ResourceExistsError","ConnectionError","Repository","createInvalidTokenPermissions","tokenReference","createInvalidTokenMaxHitsPerQuery","maxHitsPerQuery","indexAvailable","eventsIndexAvailable","logsIndexAvailable","indexNotAvailable","resourceId","eventsIndexNotAvailable","logsIndexNotAvailable","engineNotAvailable","Counter_1","activeElements","counters","highestActiveElement","activeElement","addCounter","counter","counterInstance","Counter","createByActiveElements","isUsed","getLevel","getCounters","isFilter","hasLevels","getCounter","getAllElements","getActiveElements","0","cleanCountersByLevel","active_elements","highest_active_level","activeElementsAsArray","activeElementAsArray","parseInt","countersAsArray","counterAsArray","Metadata_1","used","getSlug","slug","level","getN","Metadata","fromMetadata","inActiveElements","toMetadata","splittedParts","lastElement","part","resetCachedElements","addItems","deleteItems","itemsUUID","flush","bulkNumber","skipIfLess","chunkArray","arrayOfItems","arrayOfItemsUUID","chunk","arrayChunked","j","slice","Transformer","readTransformers","writeTransformers","addReadTransformer","readTransformer","addWriteTransformer","writeTransformer","objects","fromItem","isValidItem","toItems","isValidObject","toItemUUIDs","itemUUIDs","Synonym","words","getWords","createbyWords","expand","Apisearch_1","NoCache_1","AxiosClient_1","RetryMap_1","Query_2","Query_3","HttpRepository_1","Transformer_1","Apisearch","createRepository","ensureRepositoryConfigIsValid","api_version","NoCache","override_queries","http_client","endpoint","index_id","ensureIsDefined","param","createQueryLocated","createQuery","createQueryMatchAll","createQueryByUUID","createQueryByUUIDs","createEmptyResult","createEmptySortBy","set","del","clear","Axios","createInstance","defaultConfig","context","instance","axios","instanceConfig","isCancel","promises","spread","readFloatLE","isSlowBuffer","_isBuffer","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","unshift","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","run","marker","runClearTimeout","noop","nextTick","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizedName","encode","encodeURIComponent","serializedParams","toISOString","ignoreDuplicateOf","parsed","line","substr","originURL","msie","test","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","search","hash","hostname","port","pathname","charAt","location","requestURL","chars","E","input","block","charCode","String","output","idx","charCodeAt","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","remove","now","handlers","use","eject","h","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","reason","fns","relativeURL","executor","resolvePromise","callback","arr","IndexUUID_1","AppUUID_1","appUUID","isOK","docCount","getAppUUID","isOk","getDocCount","is_ok","doc_count","IndexUUID","AppUUID","createById","InMemoryCache","Synonym_1","DEFAULT_SHARDS","DEFAULT_REPLICAS","Config","language","storeSearchableMetadata","shards","replicas","synonyms","getLanguage","shouldSearchableMetadataBeStored","addSynonym","synonym","getSynonyms","getShards","getReplicas","store_searchable_metadata","EventError","throwEndpointNotAvailable","ForbiddenError","createAppIdIsRequiredException","createIndexIsRequiredException","createTokenIsRequiredException","UnsupportedContentTypeError","createUnsupportedContentTypeException","LocationRange","fromFilterObject","toFilterObject","CoordinateAndDistance","Polygon","Square","coordinates","topLeftCoordinate","bottomRightCoordinate","top_left","bottom_right","HttpClient","TYPE_VALUE","TYPE_LITERAL","TYPE_ARRAY_ELEMENT_UPDATE","TYPE_ARRAY_ELEMENT_ADD","TYPE_ARRAY_ELEMENT_DELETE","TYPE_ARRAY_EXPECTS_ELEMENT","TYPE_ARRAY","Changes","addChange","updateElementFromList","condition","addElementInList","deleteElementFromList","getChanges","RANGE_ZERO","RANGE_INFINITE","RANGE_SEPARATOR","Range","stringToArray","string","to","finalFrom","finalTo","arrayToString","finalValues","createRanges","incremental","nextTo","ranges"],"mappings":"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","file":"apisearch.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apisearch\"] = factory();\n\telse\n\t\troot[\"apisearch\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 38);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Class InvalidFormatError\n */\nvar InvalidFormatError = /** @class */ (function (_super) {\n tslib_1.__extends(InvalidFormatError, _super);\n function InvalidFormatError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n InvalidFormatError.getTransportableHTTPError = function () {\n return 400;\n };\n /**\n * Item representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.itemRepresentationNotValid = function () {\n return new InvalidFormatError(\"Item representation not valid. Expecting Item array serialized but found malformed data\");\n };\n /**\n * Item UUID representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.itemUUIDRepresentationNotValid = function () {\n return new InvalidFormatError(\"Item UUID representation not valid. Expecting UUID array serialized but found malformed data\");\n };\n /**\n * Create Composed UUID bad format.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.composedItemUUIDNotValid = function () {\n return new InvalidFormatError(\"A composed UUID should always follow this format: {id}~{type}.\");\n };\n /**\n * Create Query sorted by distance without coordinate.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.querySortedByDistanceWithoutCoordinate = function () {\n return new InvalidFormatError(\"In order to be able to sort by coordinates, you need to create a Query by using Query::createLocated() instead of Query::create()\");\n };\n /**\n * Query representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.queryFormatNotValid = function () {\n return new InvalidFormatError(\"Query Format not valid. Expecting a Query serialized but found malformed data\");\n };\n /**\n * Coordinate representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.coordinateFormatNotValid = function () {\n return new InvalidFormatError(\"A Coordinate should always contain a lat (Latitude) and a lon (Longitude)\");\n };\n /**\n * Config representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.configFormatNotValid = function () {\n return new InvalidFormatError(\"Config Format not valid. Expecting a Config serialized but found malformed data\");\n };\n /**\n * Token representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.tokenFormatNotValid = function () {\n return new InvalidFormatError(\"Token Format not valid. Expecting a Token serialized but found malformed data\");\n };\n /**\n * Index format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.indexFormatNotValid = function () {\n return new InvalidFormatError('Index Format not valid. Expecting an Index serialized but found malformed data');\n };\n /**\n * IndexUUI format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.indexUUIDFormatNotValid = function () {\n return new InvalidFormatError('IndexUUID Format not valid. Expecting an IndexUUID serialized but found malformed data');\n };\n /**\n * App format not valid.\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.appUUIDFormatNotValid = function () {\n return new InvalidFormatError('AppUUID Format not valid. Expecting an AppUUID serialized but found malformed data');\n };\n /**\n * Campaign representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.campaignFormatNotValid = function () {\n return new InvalidFormatError(\"Campaign Format not valid. Expecting a Campaign serialized but found malformed data\");\n };\n /**\n * Changes representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.changesFormatNotValid = function () {\n return new InvalidFormatError(\"Changes Format not valid. Expecting a Changes serialized but found malformed data\");\n };\n /**\n * Boost clause representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.boostClauseFormatNotValid = function () {\n return new InvalidFormatError(\"Boost clause Format not valid. Expecting a Boost clause serialized but found malformed data\");\n };\n /**\n * token uuid representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.tokenUUIDFormatNotValid = function () {\n return new InvalidFormatError(\"Token UUID Format not valid. Expecting a TokenUUID serialized but found malformed data\");\n };\n /**\n * User representation not valid\n *\n * @return {InvalidFormatError}\n */\n InvalidFormatError.userFormatNotValid = function () {\n return new InvalidFormatError(\"User Format not valid. Expecting a User serialized but found malformed data\");\n };\n return InvalidFormatError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.InvalidFormatError = InvalidFormatError;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * ConnectError\n */\nvar ErrorWithMessage = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param message\n */\n function ErrorWithMessage(message) {\n this.message = message;\n }\n return ErrorWithMessage;\n}());\nexports.ErrorWithMessage = ErrorWithMessage;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * filter constants\n */\nexports.FILTER_MUST_ALL = 4;\nexports.FILTER_MUST_ALL_WITH_LEVELS = 5;\nexports.FILTER_AT_LEAST_ONE = 8;\nexports.FILTER_EXCLUDE = 16;\nexports.FILTER_PROMOTE = 32;\nexports.FILTER_TYPE_FIELD = \"field\";\nexports.FILTER_TYPE_RANGE = \"range\";\nexports.FILTER_TYPE_DATE_RANGE = \"date_range\";\nexports.FILTER_TYPE_GEO = \"geo\";\nexports.FILTER_TYPE_QUERY = \"query\";\n/**\n * Filter class\n */\nvar Filter = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param field\n * @param values\n * @param applicationType\n * @param filterType\n * @param filterTerms\n */\n function Filter(field, values, applicationType, filterType, filterTerms) {\n this.field = field;\n this.values = values;\n this.applicationType = applicationType;\n this.filterType = filterType;\n this.filterTerms = filterTerms;\n }\n /**\n * Get field\n *\n * @returns {string}\n */\n Filter.prototype.getField = function () {\n return this.field;\n };\n /**\n * Get values\n *\n * @returns {any}\n */\n Filter.prototype.getValues = function () {\n return this.values;\n };\n /**\n * Has value\n *\n * @param value\n *\n * @returns {boolean}\n */\n Filter.prototype.hasValue = function (value) {\n return typeof this.values[value] == \"undefined\";\n };\n /**\n * getApplicationType\n *\n * @returns {number}\n */\n Filter.prototype.getApplicationType = function () {\n return this.applicationType;\n };\n /**\n * Get filter type\n *\n * @return {string}\n */\n Filter.prototype.getFilterType = function () {\n return this.filterType;\n };\n /**\n * Get filter type\n *\n * @return {{}}\n */\n Filter.prototype.getFilterTerms = function () {\n return this.filterTerms;\n };\n /**\n * Create\n *\n * @param field\n * @param values\n * @param applicationType\n * @param filterType\n * @param filterTerms\n *\n * @return {Filter}\n */\n Filter.create = function (field, values, applicationType, filterType, filterTerms) {\n if (filterTerms === void 0) { filterTerms = []; }\n return new Filter(field, values, applicationType, filterType, filterTerms);\n };\n /**\n * To array\n *\n * @returns {Array}\n */\n Filter.prototype.toArray = function () {\n var filterAsArray = {};\n if (this.field != \"uuid.type\") {\n filterAsArray.field = this.field;\n }\n if (this.values.length > 0 ||\n Object.keys(this.values).length > 0) {\n filterAsArray.values = this.values;\n }\n if (this.applicationType != exports.FILTER_AT_LEAST_ONE) {\n filterAsArray.application_type = this.applicationType;\n }\n if (this.filterType != exports.FILTER_TYPE_FIELD) {\n filterAsArray.filter_type = this.filterType;\n }\n if (this.filterTerms.length > 0) {\n filterAsArray.filter_terms = this.filterTerms;\n }\n return filterAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Filter}\n */\n Filter.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.field == \"undefined\") {\n array.field = \"uuid.type\";\n }\n if (typeof array.values == \"undefined\") {\n array.values = [];\n }\n if (typeof array.application_type == \"undefined\") {\n array.application_type = exports.FILTER_AT_LEAST_ONE;\n }\n if (typeof array.filter_type == \"undefined\") {\n array.filter_type = exports.FILTER_TYPE_FIELD;\n }\n if (typeof array.filter_terms == \"undefined\") {\n array.filter_terms = [];\n }\n return Filter.create(array.field, array.values, array.application_type, array.filter_type, array.filter_terms);\n };\n return Filter;\n}());\nexports.Filter = Filter;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar Coordinate_1 = require(\"./Coordinate\");\nvar ItemUUID_1 = require(\"./ItemUUID\");\n/**\n * Item class\n */\nvar Item = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param uuid\n * @param coordinate\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n */\n function Item(uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n this.metadata = {};\n this.indexedMetadata = {};\n this.searchableMetadata = {};\n this.exactMatchingMetadata = [];\n this.suggest = [];\n this.highlights = {};\n this.promoted = false;\n this.uuid = uuid;\n this.coordinate = coordinate;\n this.metadata = metadata;\n this.indexedMetadata = indexedMetadata;\n this.searchableMetadata = searchableMetadata;\n this.exactMatchingMetadata = exactMatchingMetadata;\n this.suggest = suggest;\n }\n /**\n * Create new Item\n *\n * @param uuid\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n * @returns {Item}\n */\n Item.create = function (uuid, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n if (metadata === void 0) { metadata = {}; }\n if (indexedMetadata === void 0) { indexedMetadata = {}; }\n if (searchableMetadata === void 0) { searchableMetadata = {}; }\n if (exactMatchingMetadata === void 0) { exactMatchingMetadata = []; }\n if (suggest === void 0) { suggest = []; }\n return new Item(uuid, null, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest);\n };\n /**\n * Create new located Item\n *\n * @param uuid\n * @param coordinate\n * @param metadata\n * @param indexedMetadata\n * @param searchableMetadata\n * @param exactMatchingMetadata\n * @param suggest\n * @returns {Item}\n */\n Item.createLocated = function (uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest) {\n if (metadata === void 0) { metadata = {}; }\n if (indexedMetadata === void 0) { indexedMetadata = {}; }\n if (searchableMetadata === void 0) { searchableMetadata = {}; }\n if (exactMatchingMetadata === void 0) { exactMatchingMetadata = []; }\n if (suggest === void 0) { suggest = []; }\n return new Item(uuid, coordinate, metadata, indexedMetadata, searchableMetadata, exactMatchingMetadata, suggest);\n };\n /**\n * Get uuid\n *\n * @returns ItemUUID\n */\n Item.prototype.getUUID = function () {\n return this.uuid;\n };\n /**\n * Get id\n *\n * @returns string\n */\n Item.prototype.getId = function () {\n return this.uuid.getId();\n };\n /**\n * Get type\n *\n * @returns string\n */\n Item.prototype.getType = function () {\n return this.uuid.getType();\n };\n /**\n * Get coordinate\n *\n * @returns Coordinate|null\n */\n Item.prototype.getCoordinate = function () {\n return this.coordinate;\n };\n /**\n * Get distance\n *\n * @returns int\n */\n Item.prototype.getDistance = function () {\n return this.distance;\n };\n /**\n * Get metadata\n *\n * @returns Array\n */\n Item.prototype.getMetadata = function () {\n return this.metadata;\n };\n /**\n * Set metadata\n *\n * @param metadata\n */\n Item.prototype.setMetadata = function (metadata) {\n this.metadata = metadata;\n };\n /**\n * Add metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addMetadata = function (key, value) {\n this.metadata[key] = value;\n };\n /**\n * Get indexed metadata\n *\n * @returns Array\n */\n Item.prototype.getIndexedMetadata = function () {\n return this.indexedMetadata;\n };\n /**\n * Set indexed metadata\n *\n * @param indexedMetadata\n */\n Item.prototype.setIndexedMetadata = function (indexedMetadata) {\n this.indexedMetadata = indexedMetadata;\n };\n /**\n * Add indexed metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addIndexedMetadata = function (key, value) {\n this.indexedMetadata[key] = value;\n };\n /**\n * Get searchable metadata\n *\n * @returns Array\n */\n Item.prototype.getSearchableMetadata = function () {\n return this.searchableMetadata;\n };\n /**\n * Set searchable metadata\n *\n * @param searchableMetadata\n */\n Item.prototype.setSearchableMetadata = function (searchableMetadata) {\n this.searchableMetadata = searchableMetadata;\n };\n /**\n * Add searchable metadata\n *\n * @param key\n * @param value\n */\n Item.prototype.addSearchableMetadata = function (key, value) {\n this.searchableMetadata[key] = value;\n };\n /**\n * Get exactMatching metadata\n *\n * @returns Array\n */\n Item.prototype.getExactMatchingMetadata = function () {\n return this.exactMatchingMetadata;\n };\n /**\n * Set exactMatching metadata\n *\n * @param exactMatchingMetadata\n */\n Item.prototype.setExactMatchingMetadata = function (exactMatchingMetadata) {\n this.exactMatchingMetadata = exactMatchingMetadata;\n };\n /**\n * Add exactMatching metadata\n *\n * @param value\n */\n Item.prototype.addExactMatchingMetadata = function (value) {\n this.exactMatchingMetadata.push(value);\n };\n /**\n * Get all metadata\n *\n * @returns {{}}\n */\n Item.prototype.getAllMetadata = function () {\n return tslib_1.__assign({}, this.metadata, this.indexedMetadata);\n };\n /**\n * Get\n *\n * @param key\n *\n * @returns mixed|null\n */\n Item.prototype.get = function (key) {\n var allMetadata = this.getAllMetadata();\n return (typeof allMetadata[key] != \"undefined\")\n ? allMetadata[key]\n : null;\n };\n /**\n * Get suggest\n *\n * @returns Array\n */\n Item.prototype.getSuggest = function () {\n return this.suggest;\n };\n /**\n * Get highlights\n *\n * @returns Array\n */\n Item.prototype.getHighlights = function () {\n return this.highlights;\n };\n /**\n * Get highlight\n *\n * @param key\n *\n * @return string|null\n */\n Item.prototype.getHighlight = function (key) {\n return (typeof this.highlights[key] != \"undefined\")\n ? this.highlights[key]\n : null;\n };\n /**\n * Is promoted\n *\n * @returns boolean\n */\n Item.prototype.isPromoted = function () {\n return this.promoted;\n };\n /**\n * Set score\n *\n * @param score\n *\n * @return {Item}\n */\n Item.prototype.setScore = function (score) {\n this.score = score;\n return this;\n };\n /**\n * Get score\n *\n * @return {number}\n */\n Item.prototype.getScore = function () {\n return this.score;\n };\n /**\n * To array\n */\n Item.prototype.toArray = function () {\n var itemAsArray = {\n uuid: this.uuid.toArray()\n };\n if (this.coordinate instanceof Coordinate_1.Coordinate) {\n itemAsArray.coordinate = this.coordinate.toArray();\n }\n if (Object.keys(this.metadata).length > 0) {\n itemAsArray.metadata = this.metadata;\n }\n if (Object.keys(this.indexedMetadata).length > 0) {\n itemAsArray.indexed_metadata = this.indexedMetadata;\n }\n if (Object.keys(this.searchableMetadata).length > 0) {\n itemAsArray.searchable_metadata = this.searchableMetadata;\n }\n if (this.exactMatchingMetadata.length > 0) {\n itemAsArray.exact_matching_metadata = this.exactMatchingMetadata;\n }\n if (this.suggest.length > 0) {\n itemAsArray.suggest = this.suggest;\n }\n if (Object.keys(this.highlights).length > 0) {\n itemAsArray.highlights = this.highlights;\n }\n if (this.isPromoted()) {\n itemAsArray.is_promoted = true;\n }\n if (typeof this.distance != \"undefined\") {\n itemAsArray.distance = this.distance;\n }\n if (typeof this.score != \"undefined\") {\n itemAsArray.score = this.score;\n }\n return itemAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n */\n Item.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.uuid != \"object\") {\n throw InvalidFormatError_1.InvalidFormatError.itemUUIDRepresentationNotValid();\n }\n if (typeof array.coordinate != \"undefined\" &&\n typeof array.coordinate != \"object\") {\n throw InvalidFormatError_1.InvalidFormatError.coordinateFormatNotValid();\n }\n var item = (typeof array.coordinate == \"object\" &&\n array.coordinate != null)\n ? Item.createLocated(ItemUUID_1.ItemUUID.createFromArray(array.uuid), Coordinate_1.Coordinate.createFromArray(array.coordinate), ((typeof array.metadata == \"undefined\") ? {} : array.metadata), ((typeof array.indexed_metadata == \"undefined\") ? {} : array.indexed_metadata), ((typeof array.searchable_metadata == \"undefined\") ? {} : array.searchable_metadata), ((typeof array.exact_matching_metadata == \"undefined\") ? [] : array.exact_matching_metadata), ((typeof array.suggest == \"undefined\") ? [] : array.suggest))\n : Item.create(ItemUUID_1.ItemUUID.createFromArray(array.uuid), ((typeof array.metadata == \"undefined\") ? {} : array.metadata), ((typeof array.indexed_metadata == \"undefined\") ? {} : array.indexed_metadata), ((typeof array.searchable_metadata == \"undefined\") ? {} : array.searchable_metadata), ((typeof array.exact_matching_metadata == \"undefined\") ? [] : array.exact_matching_metadata), ((typeof array.suggest == \"undefined\") ? [] : array.suggest));\n if (typeof array.distance != \"undefined\" &&\n array.distance != null) {\n item.distance = array.distance;\n }\n if (typeof array.highlights == \"object\" &&\n array.distance != null) {\n item.highlights = array.highlights;\n }\n if (typeof array.is_promoted != \"undefined\" &&\n array.is_promoted != null) {\n item.promoted = array.is_promoted;\n }\n if (typeof array.score != \"undefined\" &&\n array.score != null) {\n item.score = array.score;\n }\n return item;\n };\n /**\n * Compose uuid\n *\n * @returns string\n */\n Item.prototype.composeUUID = function () {\n return this.uuid.composedUUID();\n };\n /**\n * Get path by field.\n *\n * @param field\n *\n * @returns {string}\n */\n Item.getPathByField = function (field) {\n return ([\"id\", \"type\"].indexOf(field) > -1)\n ? \"uuid.\" + field\n : \"indexed_metadata.\" + field;\n };\n return Item;\n}());\nexports.Item = Item;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Coordinate_1 = require(\"../Model/Coordinate\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\nvar Item_1 = require(\"../Model/Item\");\nvar User_1 = require(\"../Model/User\");\nvar Aggregation_1 = require(\"./Aggregation\");\nvar Filter_1 = require(\"./Filter\");\nvar Filter_2 = require(\"./Filter\");\nvar Aggregation_2 = require(\"./Aggregation\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar Filter_3 = require(\"./Filter\");\nvar ScoreStrategies_1 = require(\"./ScoreStrategies\");\nvar SortBy_1 = require(\"./SortBy\");\n/**\n * Query constants\n */\nexports.QUERY_DEFAULT_PAGE = 1;\nexports.QUERY_DEFAULT_SIZE = 10;\nexports.NO_MIN_SCORE = 0.0;\n/**\n * Query class\n */\nvar Query = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param queryText\n */\n function Query(queryText) {\n this.fields = [];\n this.universeFilters = {};\n this.filters = {};\n this.itemsPromoted = [];\n this.aggregations = {};\n this.resultsEnabled = true;\n this.aggregationsEnabled = true;\n this.suggestionsEnabled = false;\n this.highlightsEnabled = false;\n this.filterFields = [];\n this.minScore = exports.NO_MIN_SCORE;\n this.metadata = {};\n this.subqueries = {};\n this.sortByInstance = SortBy_1.SortBy.create();\n this.filters._query = Filter_1.Filter.create(\"\", [queryText], 0, Filter_3.FILTER_TYPE_QUERY);\n }\n /**\n * Created located\n *\n * @param coordinate\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Query.createLocated = function (coordinate, queryText, page, size) {\n if (page === void 0) { page = exports.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = exports.QUERY_DEFAULT_SIZE; }\n var query = Query.create(queryText, page, size);\n query.coordinate = coordinate;\n return query;\n };\n /**\n * Create\n *\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Query.create = function (queryText, page, size) {\n if (page === void 0) { page = exports.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = exports.QUERY_DEFAULT_SIZE; }\n page = Math.max(1, page);\n var query = new Query(queryText);\n query.from = (page - 1) * size;\n query.size = size;\n query.page = page;\n return query;\n };\n /**\n * Create match all\n *\n * @return {Query}\n */\n Query.createMatchAll = function () {\n return Query.create(\"\", exports.QUERY_DEFAULT_PAGE, exports.QUERY_DEFAULT_SIZE);\n };\n /**\n * Create by UUID\n *\n * @param uuid\n *\n * @return {Query}\n */\n Query.createByUUID = function (uuid) {\n return Query.createByUUIDs(uuid);\n };\n /**\n * Create by UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.createByUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n var ids = [];\n for (var i in uuids) {\n ids.push(uuids[i].composedUUID());\n }\n var query = Query.create(\"\", exports.QUERY_DEFAULT_PAGE, ids.length)\n .disableAggregations()\n .disableSuggestions();\n query.filters._id = Filter_1.Filter.create(\"_id\", ids, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD);\n return query;\n };\n /**\n * Create by UUIDs\n *\n * @param queries\n *\n * @return {Query}\n */\n Query.createMultiquery = function (queries) {\n var query = Query.createMatchAll();\n query.subqueries = queries;\n return query;\n };\n /**\n * set fields\n *\n * @param fields\n *\n * @return {Query}\n */\n Query.prototype.setFields = function (fields) {\n this.fields = fields;\n return this;\n };\n /**\n * get fields\n *\n * @return {string[]}\n */\n Query.prototype.getFields = function () {\n return this.fields;\n };\n /**\n * Filter universe by types\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByTypes = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"type\");\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"type\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters.type;\n }\n return this;\n };\n /**\n * Filter by types\n *\n * @param values\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByTypes = function (values, aggregate, aggregationSort) {\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a, _b;\n var fieldPath = Item_1.Item.getPathByField(\"type\");\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"type\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters.type;\n }\n if (aggregate) {\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_b = {}, _b[\"type\"] = Aggregation_1.Aggregation.create(\"type\", fieldPath, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort), _b));\n }\n return this;\n };\n /**\n * Filter universe by ids\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByIds = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"id\");\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"id\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters.id;\n }\n return this;\n };\n /**\n * Filter by ids\n *\n * @param values\n *\n * @return {Query}\n */\n Query.prototype.filterByIds = function (values) {\n var _a;\n var fieldPath = Item_1.Item.getPathByField(\"id\");\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"id\"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters.id;\n }\n return this;\n };\n /**\n * Filter universe by\n *\n * @param field\n * @param values\n * @param applicationType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseBy = function (field, values, applicationType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.universeFilters[field];\n }\n return this;\n };\n /**\n * Filter by\n *\n * @param filterName\n * @param field\n * @param values\n * @param applicationType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterBy = function (filterName, field, values, applicationType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));\n }\n else {\n delete this.filters[filterName];\n }\n if (aggregate) {\n this.aggregateBy(filterName, field, applicationType, aggregationSort);\n }\n return this;\n };\n /**\n * Filter universe by range\n *\n * @param field\n * @param values\n * @param applicationType\n * @param rangeType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByRange = function (field, values, applicationType, rangeType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length > 0) {\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));\n }\n else {\n delete this.universeFilters[field];\n }\n return this;\n };\n /**\n * Filter universe by date range\n *\n * @param field\n * @param values\n * @param applicationType\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByDateRange = function (field, values, applicationType) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n return this.filterUniverseByRange(field, values, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE);\n };\n /**\n * Filter by range\n *\n * @param filterName\n * @param field\n * @param options\n * @param values\n * @param applicationType\n * @param rangeType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByRange = function (filterName, field, options, values, applicationType, rangeType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n var _a;\n var fieldPath = Item_1.Item.getPathByField(field);\n if (values.length !== 0) {\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));\n }\n else {\n delete this.filters[filterName];\n }\n if (aggregate) {\n this.aggregateByRange(filterName, fieldPath, options, applicationType, rangeType, aggregationSort);\n }\n return this;\n };\n /**\n * Filter by date range\n *\n * @param filterName\n * @param field\n * @param options\n * @param values\n * @param applicationType\n * @param aggregate\n * @param aggregationSort\n *\n * @return {Query}\n */\n Query.prototype.filterByDateRange = function (filterName, field, options, values, applicationType, aggregate, aggregationSort) {\n if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }\n if (aggregate === void 0) { aggregate = true; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n return this.filterByRange(filterName, field, options, values, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE, aggregate, aggregationSort);\n };\n /**\n * Filter universe by location\n *\n * @param locationRange\n *\n * @return {Query}\n */\n Query.prototype.filterUniverseByLocation = function (locationRange) {\n var _a;\n this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[\"coordinate\"] = Filter_1.Filter.create(\"coordinate\", locationRange.toArray(), Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_GEO), _a));\n return this;\n };\n /**\n * Set filter fields\n *\n * @param filterFields\n *\n * @return {Query}\n */\n Query.prototype.setFilterFields = function (filterFields) {\n this.filterFields = filterFields;\n return this;\n };\n /**\n * Get filter fields\n *\n * @return {string[]}\n */\n Query.prototype.getFilterFields = function () {\n return this.filterFields;\n };\n /**\n * Sort by\n *\n * @param sortBy\n *\n * @return {Query}\n */\n Query.prototype.sortBy = function (sortBy) {\n if (sortBy.isSortedByGeoDistance()) {\n if (!(this.coordinate instanceof Coordinate_1.Coordinate)) {\n throw InvalidFormatError_1.InvalidFormatError.querySortedByDistanceWithoutCoordinate();\n }\n sortBy.setCoordinate(this.coordinate);\n }\n this.sortByInstance = sortBy;\n return this;\n };\n /**\n * Aggregate by\n *\n * @param filterName\n * @param field\n * @param applicationType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateBy = function (filterName, field, applicationType, aggregationSort, limit) {\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n var _a;\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort, limit), _a));\n return this;\n };\n /**\n * Aggregate by range\n *\n * @param filterName\n * @param field\n * @param options\n * @param applicationType\n * @param rangeType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateByRange = function (filterName, field, options, applicationType, rangeType, aggregationSort, limit) {\n if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n var _a;\n if (options.length === 0) {\n return this;\n }\n this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, rangeType, options, aggregationSort, limit), _a));\n return this;\n };\n /**\n * Aggregate by date range\n *\n * @param filterName\n * @param field\n * @param options\n * @param applicationType\n * @param aggregationSort\n * @param limit\n *\n * @return {Query}\n */\n Query.prototype.aggregateByDateRange = function (filterName, field, options, applicationType, aggregationSort, limit) {\n if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }\n return this.aggregateByRange(filterName, field, options, applicationType, Filter_2.FILTER_TYPE_DATE_RANGE, aggregationSort, limit);\n };\n /**\n * Get aggregations\n *\n * @return {{}}\n */\n Query.prototype.getAggregations = function () {\n return this.aggregations;\n };\n /**\n * Get aggregation by name\n *\n * @param aggregationName\n *\n * @return {Aggregation|null}\n */\n Query.prototype.getAggregation = function (aggregationName) {\n return this.aggregations[aggregationName] instanceof Aggregation_1.Aggregation\n ? this.aggregations[aggregationName]\n : null;\n };\n /**\n * Get query text\n *\n * @return {string}\n */\n Query.prototype.getQueryText = function () {\n var filter = this.filters._query;\n return filter instanceof Filter_1.Filter\n ? filter.getValues()[0]\n : \"\";\n };\n /**\n * Get universe filters\n *\n * @return {{}}\n */\n Query.prototype.getUniverseFilters = function () {\n return this.universeFilters;\n };\n /**\n * Get universe filter by name\n *\n * @param filterName\n *\n * @return {Filter|null}\n */\n Query.prototype.getUniverseFilter = function (filterName) {\n return this.universeFilters[filterName] instanceof Filter_1.Filter\n ? this.universeFilters[filterName]\n : null;\n };\n /**\n * Get filters\n *\n * @return {{}}\n */\n Query.prototype.getFilters = function () {\n return this.filters;\n };\n /**\n * Get filter by name\n *\n * @param filterName\n *\n * @return {Filter|null}\n */\n Query.prototype.getFilter = function (filterName) {\n return this.filters[filterName] instanceof Filter_1.Filter\n ? this.filters[filterName]\n : null;\n };\n /**\n * Get filter by field\n *\n * @param fieldName\n *\n * @return {Filter|null}\n */\n Query.prototype.getFilterByField = function (fieldName) {\n var fieldPath = Item_1.Item.getPathByField(fieldName);\n for (var i in this.filters) {\n if (this.filters[i].getField() == fieldPath) {\n return this.filters[i];\n }\n }\n return null;\n };\n /**\n * Get sort by\n *\n * @return {SortBy}\n */\n Query.prototype.getSortBy = function () {\n return this.sortByInstance;\n };\n /**\n * Get from\n *\n * @return {number}\n */\n Query.prototype.getFrom = function () {\n return this.from;\n };\n /**\n * Get size\n *\n * @return {number}\n */\n Query.prototype.getSize = function () {\n return this.size;\n };\n /**\n * Get page\n *\n * @return {number}\n */\n Query.prototype.getPage = function () {\n return this.page;\n };\n /**\n * Enable results\n *\n * @return {Query}\n */\n Query.prototype.enableResults = function () {\n this.resultsEnabled = true;\n return this;\n };\n /**\n * Disable results\n *\n * @return {Query}\n */\n Query.prototype.disableResults = function () {\n this.resultsEnabled = false;\n return this;\n };\n /**\n * Are results enabled\n *\n * @return {boolean}\n */\n Query.prototype.areResultsEnabled = function () {\n return this.resultsEnabled;\n };\n /**\n * Enable aggregations\n *\n * @return {Query}\n */\n Query.prototype.enableAggregations = function () {\n this.aggregationsEnabled = true;\n return this;\n };\n /**\n * Disable aggregations\n *\n * @return {Query}\n */\n Query.prototype.disableAggregations = function () {\n this.aggregationsEnabled = false;\n return this;\n };\n /**\n * Are aggregations enabled\n *\n * @return {boolean}\n */\n Query.prototype.areAggregationsEnabled = function () {\n return this.aggregationsEnabled;\n };\n /**\n * Enable suggestions\n *\n * @return {Query}\n */\n Query.prototype.enableSuggestions = function () {\n this.suggestionsEnabled = true;\n return this;\n };\n /**\n * Disable suggestions\n *\n * @return {Query}\n */\n Query.prototype.disableSuggestions = function () {\n this.suggestionsEnabled = false;\n return this;\n };\n /**\n * Are suggestions enabled\n *\n * @return {boolean}\n */\n Query.prototype.areSuggestionsEnabled = function () {\n return this.suggestionsEnabled;\n };\n /**\n * Enable highlights\n *\n * @return {Query}\n */\n Query.prototype.enableHighlights = function () {\n this.highlightsEnabled = true;\n return this;\n };\n /**\n * Disable highlights\n *\n * @return {Query}\n */\n Query.prototype.disableHighlights = function () {\n this.highlightsEnabled = false;\n return this;\n };\n /**\n * Are highlights enabled\n *\n * @return {boolean}\n */\n Query.prototype.areHighlightsEnabled = function () {\n return this.highlightsEnabled;\n };\n /**\n * Promote uuid\n *\n * @param itemUUID\n *\n * @return {Query}\n */\n Query.prototype.promoteUUID = function (itemUUID) {\n this\n .itemsPromoted\n .push(itemUUID);\n return this;\n };\n /**\n * Promote UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.prototype.promoteUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n this.itemsPromoted = uuids;\n return this;\n };\n /**\n * Get promoted UUIDs\n *\n * @return {ItemUUID[]}\n */\n Query.prototype.getItemsPromoted = function () {\n return this.itemsPromoted;\n };\n /**\n * Exclude id\n *\n * @param itemUUID\n *\n * @return {Query}\n */\n Query.prototype.excludeUUID = function (itemUUID) {\n this.excludeUUIDs(itemUUID);\n return this;\n };\n /**\n * Exclude UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Query.prototype.excludeUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n var _a;\n this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[\"excluded_ids\"] = Filter_1.Filter.create(\"_id\", uuids.map(function (uuid) { return uuid.composedUUID(); }), Filter_2.FILTER_EXCLUDE, Filter_2.FILTER_TYPE_FIELD), _a));\n return this;\n };\n /**\n * Get score strategies\n *\n * @return {ScoreStrategies}\n */\n Query.prototype.getScoreStrategies = function () {\n return this.scoreStrategies;\n };\n /**\n * Set score strategies\n *\n * @param scoreStrategies\n */\n Query.prototype.setScoreStrategies = function (scoreStrategies) {\n this.scoreStrategies = scoreStrategies;\n return this;\n };\n /**\n * Get fuzziness\n *\n * @return any\n */\n Query.prototype.getFuzziness = function () {\n return this.fuzziness;\n };\n /**\n * Set fuzziness\n *\n * @param fuzziness\n *\n * @return {Query}\n */\n Query.prototype.setFuzziness = function (fuzziness) {\n this.fuzziness = fuzziness;\n return this;\n };\n /**\n * Set auto fuzziness\n *\n * @return {Query}\n */\n Query.prototype.setAutoFuzziness = function () {\n this.fuzziness = 'AUTO';\n return this;\n };\n /**\n * Get min score\n *\n * @return any\n */\n Query.prototype.getMinScore = function () {\n return this.minScore;\n };\n /**\n * Set min score\n *\n * @param minScore\n *\n * @return {Query}\n */\n Query.prototype.setMinScore = function (minScore) {\n this.minScore = minScore;\n return this;\n };\n /**\n * By user\n *\n * @param user\n *\n * @return {Query}\n */\n Query.prototype.byUser = function (user) {\n this.user = user;\n return this;\n };\n /**\n * By anyone\n *\n * @return {null}\n */\n Query.prototype.anonymously = function () {\n this.user = null;\n return null;\n };\n /**\n * Get user\n *\n * @return {User}\n */\n Query.prototype.getUser = function () {\n return this.user;\n };\n /**\n * set metadata value\n *\n * @param name\n * @param value\n *\n * @return Query\n */\n Query.prototype.setMetadataValue = function (name, value) {\n this.metadata[name] = value;\n return this;\n };\n /**\n * Get metadata\n *\n * @return any\n */\n Query.prototype.getMetadata = function () {\n return this.metadata;\n };\n /**\n * Add subquery\n *\n * @param name\n * @param subquery\n *\n * @return Query\n */\n Query.prototype.addSubquery = function (name, subquery) {\n this.subqueries[name] = subquery;\n return this;\n };\n /**\n * Get subqueries\n *\n * @return Object\n */\n Query.prototype.getSubqueries = function () {\n return this.subqueries;\n };\n /**\n * To array\n *\n * @return {any}\n */\n Query.prototype.toArray = function () {\n var array = {};\n if (this.getQueryText() !== \"\") {\n array.q = this.getQueryText();\n }\n if (this.coordinate instanceof Coordinate_1.Coordinate) {\n array.coordinate = this.coordinate.toArray();\n }\n /**\n * Fields\n */\n if (this.fields instanceof Array &&\n this.fields.length > 0) {\n array.fields = this.fields;\n }\n /**\n * Universe Filters\n */\n if (Object.keys(this.universeFilters).length) {\n array.universe_filters = {};\n for (var i in this.universeFilters) {\n var universeFilter = this.universeFilters[i];\n array.universe_filters[i] = universeFilter.toArray();\n }\n }\n /**\n * Filters\n */\n if (this.filters instanceof Object &&\n Object.keys(this.filters).length) {\n array.filters = {};\n for (var i in this.filters) {\n var filter = this.filters[i];\n if (filter.getFilterType() !== Filter_3.FILTER_TYPE_QUERY) {\n array.filters[i] = filter.toArray();\n }\n }\n }\n /**\n * Aggregations\n */\n if (this.aggregations instanceof Object &&\n Object.keys(this.aggregations).length) {\n array.aggregations = {};\n for (var i in this.aggregations) {\n var aggregation = this.aggregations[i];\n array.aggregations[i] = aggregation.toArray();\n }\n }\n /**\n * Sort\n */\n var sort = this.sortByInstance.toArray();\n if (Object.keys(sort).length) {\n array.sort = sort;\n }\n /**\n * Page\n */\n var page = this.page;\n if (page !== exports.QUERY_DEFAULT_PAGE) {\n array.page = page;\n }\n /**\n * Size\n */\n var size = this.size;\n if (size !== exports.QUERY_DEFAULT_SIZE) {\n array.size = size;\n }\n /**\n * Booleans\n */\n if (this.resultsEnabled === false) {\n array.results_enabled = false;\n }\n if (this.suggestionsEnabled === true) {\n array.suggestions_enabled = true;\n }\n if (this.highlightsEnabled === true) {\n array.highlights_enabled = true;\n }\n if (this.aggregationsEnabled === false) {\n array.aggregations_enabled = false;\n }\n /**\n * Filter fields\n */\n if (this.filterFields instanceof Array &&\n this.filterFields.length > 0) {\n array.filter_fields = this.filterFields;\n }\n /**\n * Score strategies\n */\n if (this.scoreStrategies instanceof ScoreStrategies_1.ScoreStrategies) {\n var scoreStrategiesAsArray = this.scoreStrategies.toArray();\n if (Object.keys(scoreStrategiesAsArray).length > 0) {\n array.score_strategies = scoreStrategiesAsArray;\n }\n }\n if (this.fuzziness !== null) {\n array.fuzziness = this.fuzziness;\n }\n /**\n * Min score\n */\n var minScore = this.minScore;\n if (minScore !== exports.NO_MIN_SCORE) {\n array.min_score = minScore;\n }\n /**\n * User\n */\n if (this.user instanceof User_1.User) {\n var userAsArray = this.user.toArray();\n if (Object.keys(userAsArray).length > 0) {\n array.user = userAsArray;\n }\n }\n array.metadata = this.metadata;\n if (this.subqueries instanceof Object &&\n Object.keys(this.subqueries).length) {\n array.subqueries = {};\n for (var i in this.subqueries) {\n var subquery = this.subqueries[i];\n array.subqueries[i] = subquery.toArray();\n }\n }\n /**\n * items promoted\n */\n if (this.itemsPromoted.length > 0) {\n array.items_promoted = [];\n for (var i in this.itemsPromoted) {\n array\n .items_promoted\n .push(this.itemsPromoted[i].toArray());\n }\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Query}\n */\n Query.createFromArray = function (array) {\n var query = array.coordinate instanceof Object\n ? Query.createLocated(Coordinate_1.Coordinate.createFromArray(array.coordinate), array.q ? array.q : \"\", array.page ? array.page : exports.QUERY_DEFAULT_PAGE, array.size ? array.size : exports.QUERY_DEFAULT_SIZE)\n : Query.create(array.q ? array.q : \"\", array.page ? array.page : exports.QUERY_DEFAULT_PAGE, array.size ? array.size : exports.QUERY_DEFAULT_SIZE);\n /**\n * Fields\n */\n query.fields = array.fields instanceof Array\n ? array.fields\n : [];\n /**\n * Aggregations\n */\n var aggregationsAsArray = typeof array.aggregations === typeof {}\n ? array.aggregations\n : {};\n for (var i in aggregationsAsArray) {\n query.aggregations[i] = Aggregation_1.Aggregation.createFromArray(aggregationsAsArray[i]);\n }\n /**\n * Sort\n */\n var sortAsArray = typeof array.sort === typeof {}\n ? array.sort\n : {};\n if (Object.keys(sortAsArray).length > 0) {\n query.sortByInstance = SortBy_1.SortBy.createFromArray(sortAsArray);\n }\n /**\n * Filters\n */\n var filtersAsArray = typeof array.filters === typeof {}\n ? array.filters\n : {};\n for (var i in filtersAsArray) {\n query.filters[i] = Filter_1.Filter.createFromArray(filtersAsArray[i]);\n }\n /**\n * Universe Filters\n */\n var universeFiltersAsArray = typeof array.universe_filters === typeof {}\n ? array.universe_filters\n : {};\n for (var i in universeFiltersAsArray) {\n query.universeFilters[i] = Filter_1.Filter.createFromArray(universeFiltersAsArray[i]);\n }\n /**\n * Booleans\n */\n query.resultsEnabled = typeof array.results_enabled === \"boolean\"\n ? array.results_enabled\n : true;\n query.suggestionsEnabled = typeof array.suggestions_enabled === \"boolean\"\n ? array.suggestions_enabled\n : false;\n query.aggregationsEnabled = typeof array.aggregations_enabled === \"boolean\"\n ? array.aggregations_enabled\n : true;\n query.highlightsEnabled = typeof array.highlights_enabled === \"boolean\"\n ? array.highlights_enabled\n : false;\n query.fuzziness = array.fuzziness;\n query.minScore = array.min_score ? array.min_score : exports.NO_MIN_SCORE;\n /**\n * Items promoted\n */\n var itemsPromotedAsArray = typeof array.items_promoted === typeof {}\n ? array.items_promoted\n : {};\n for (var i in itemsPromotedAsArray) {\n query\n .itemsPromoted\n .push(ItemUUID_1.ItemUUID.createFromArray(itemsPromotedAsArray[i]));\n }\n /**\n * Subqueries\n */\n var subqueriesAsArray = typeof array.subqueries === typeof {}\n ? array.subqueries\n : {};\n for (var i in subqueriesAsArray) {\n query.subqueries[i] = Query.createFromArray(subqueriesAsArray[i]);\n }\n /**\n * Filter fields\n */\n query.metadata = typeof array.metadata === typeof {}\n ? array.metadata\n : {};\n query.filterFields = array.filter_fields instanceof Array\n ? array.filter_fields\n : [];\n query.scoreStrategies = array.score_strategies instanceof Object\n ? ScoreStrategies_1.ScoreStrategies.createFromArray(array.score_strategies)\n : null;\n query.user = array.user instanceof Object\n ? User_1.User.createFromArray(array.user)\n : null;\n return query;\n };\n return Query;\n}());\nexports.Query = Query;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * Coordinate Type cast\n * @param coordinate\n */\nvar Coordinate = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {number} lat\n * @param {number} lon\n */\n function Coordinate(lat, lon) {\n this.lat = lat;\n this.lon = lon;\n }\n /**\n * Get latitude\n *\n * @return float\n */\n Coordinate.prototype.getLatitude = function () {\n return this.lat;\n };\n /**\n * Get longitude\n *\n * @return float\n */\n Coordinate.prototype.getLongitude = function () {\n return this.lon;\n };\n /**\n * To array\n *\n * @return {{lat: number, lon: number}}\n */\n Coordinate.prototype.toArray = function () {\n return {\n lat: this.lat,\n lon: this.lon\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return Coordinate\n *\n * @throws InvalidFormatError\n */\n Coordinate.createFromArray = function (array) {\n if (typeof array.lat == \"undefined\" ||\n typeof array.lon == \"undefined\") {\n throw InvalidFormatError_1.InvalidFormatError.coordinateFormatNotValid();\n }\n return new Coordinate(array.lat, array.lon);\n };\n return Coordinate;\n}());\nexports.Coordinate = Coordinate;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * ItemUUID class\n */\nvar ItemUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n * @param type\n */\n function ItemUUID(id, type) {\n this.id = id;\n this.type = type;\n }\n /**\n * Create composed UUID\n *\n * @param composedUUID\n *\n * @returns {ItemUUID}\n */\n ItemUUID.createByComposedUUID = function (composedUUID) {\n var parts = composedUUID.split(\"~\");\n if (2 != parts.length) {\n throw InvalidFormatError_1.InvalidFormatError.composedItemUUIDNotValid();\n }\n return new ItemUUID(parts[0], parts[1]);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n ItemUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * Get type\n *\n * @returns {string}\n */\n ItemUUID.prototype.getType = function () {\n return this.type;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n ItemUUID.prototype.toArray = function () {\n return {\n id: this.id,\n type: this.type\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n ItemUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new ItemUUID(array.id, array.type);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n ItemUUID.prototype.composedUUID = function () {\n return this.id + \"~\" + this.type;\n };\n return ItemUUID;\n}());\nexports.ItemUUID = ItemUUID;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","\"use strict\";\nexports.__esModule = true;\nvar Filter_1 = require(\"./Filter\");\n/**\n * Aggregation constants\n */\nexports.AGGREGATION_SORT_BY_COUNT_ASC = [\"_count\", \"asc\"];\nexports.AGGREGATION_SORT_BY_COUNT_DESC = [\"_count\", \"desc\"];\nexports.AGGREGATION_SORT_BY_NAME_ASC = [\"_term\", \"asc\"];\nexports.AGGREGATION_SORT_BY_NAME_DESC = [\"_term\", \"desc\"];\nexports.AGGREGATION_NO_LIMIT = 0;\n/**\n * Aggregation class\n */\nvar Aggregation = /** @class */ (function () {\n /**\n * Construct\n *\n * @param name\n * @param field\n * @param applicationType\n * @param filterType\n * @param subgroup\n * @param sort\n * @param limit\n */\n function Aggregation(name, field, applicationType, filterType, subgroup, sort, limit) {\n this.subgroup = [];\n this.name = name;\n this.field = field;\n this.applicationType = applicationType;\n this.filterType = filterType;\n this.subgroup = subgroup;\n this.sort = sort;\n this.limit = limit;\n }\n /**\n * Get name\n *\n * @returns {string}\n */\n Aggregation.prototype.getName = function () {\n return this.name;\n };\n /**\n * Get field\n *\n * @returns {string}\n */\n Aggregation.prototype.getField = function () {\n return this.field;\n };\n /**\n * getApplicationType\n *\n * @returns {number}\n */\n Aggregation.prototype.getApplicationType = function () {\n return this.applicationType;\n };\n /**\n * Get filter type\n *\n * @return {string}\n */\n Aggregation.prototype.getFilterType = function () {\n return this.filterType;\n };\n /**\n * Get subgroup\n *\n * @return {[]}\n */\n Aggregation.prototype.getSubgroup = function () {\n return this.subgroup;\n };\n /**\n * Get sort\n *\n * @return {[]}\n */\n Aggregation.prototype.getSort = function () {\n return this.sort;\n };\n /**\n * Get limit\n *\n * @return {number}\n */\n Aggregation.prototype.getLimit = function () {\n return this.limit;\n };\n /**\n * Create\n *\n * @param name\n * @param field\n * @param applicationType\n * @param filterType\n * @param subgroup\n * @param sort\n * @param limit\n *\n * @returns {Aggregation}\n */\n Aggregation.create = function (name, field, applicationType, filterType, subgroup, sort, limit) {\n if (subgroup === void 0) { subgroup = []; }\n if (sort === void 0) { sort = exports.AGGREGATION_SORT_BY_COUNT_DESC; }\n if (limit === void 0) { limit = exports.AGGREGATION_NO_LIMIT; }\n return new Aggregation(name, field, applicationType, filterType, subgroup, sort, limit);\n };\n /**\n * To array\n *\n * @returns {Array}\n */\n Aggregation.prototype.toArray = function () {\n var aggregationAsArray = {\n name: this.name\n };\n if (this.field != \"uuid.type\") {\n aggregationAsArray.field = this.field;\n }\n if (this.applicationType != Filter_1.FILTER_AT_LEAST_ONE) {\n aggregationAsArray.application_type = this.applicationType;\n }\n if (this.filterType != Filter_1.FILTER_TYPE_FIELD) {\n aggregationAsArray.filter_type = this.filterType;\n }\n if (this.subgroup.length > 0) {\n aggregationAsArray.subgroup = this.subgroup;\n }\n if (JSON.stringify(this.sort) !== JSON.stringify(exports.AGGREGATION_SORT_BY_COUNT_DESC)) {\n aggregationAsArray.sort = this.sort;\n }\n if (this.limit != exports.AGGREGATION_NO_LIMIT) {\n aggregationAsArray.limit = this.limit;\n }\n return aggregationAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Aggregation}\n */\n Aggregation.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n if (typeof array.field == \"undefined\") {\n array.field = \"uuid.type\";\n }\n if (typeof array.application_type == \"undefined\") {\n array.application_type = Filter_1.FILTER_AT_LEAST_ONE;\n }\n if (typeof array.filter_type == \"undefined\") {\n array.filter_type = Filter_1.FILTER_TYPE_FIELD;\n }\n if (typeof array.subgroup == \"undefined\") {\n array.subgroup = [];\n }\n if (typeof array.sort == \"undefined\") {\n array.sort = exports.AGGREGATION_SORT_BY_COUNT_DESC;\n }\n if (typeof array.limit == \"undefined\") {\n array.limit = exports.AGGREGATION_NO_LIMIT;\n }\n return Aggregation.create(array.name, array.field, array.application_type, array.filter_type, array.subgroup, array.sort, array.limit);\n };\n return Aggregation;\n}());\nexports.Aggregation = Aggregation;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\n/**\n export * Sort by constants\n */\nexports.SORT_BY_TYPE_FIELD = 'field';\nexports.SORT_BY_TYPE_NESTED = 'nested';\nexports.SORT_BY_TYPE_SCORE = 'score';\nexports.SORT_BY_TYPE_DISTANCE = 'distance';\nexports.SORT_BY_TYPE_FUNCTION = 'function';\nexports.SORT_BY_TYPE_RANDOM = 'random';\nexports.SORT_BY_ASC = \"asc\";\nexports.SORT_BY_DESC = \"desc\";\nexports.SORT_BY_MODE_AVG = \"avg\";\nexports.SORT_BY_MODE_SUM = \"sum\";\nexports.SORT_BY_MODE_MIN = \"min\";\nexports.SORT_BY_MODE_MAX = \"max\";\nexports.SORT_BY_MODE_MEDIAN = \"median\";\nexports.SORT_BY_SCORE = {\n type: exports.SORT_BY_TYPE_SCORE\n};\nexports.SORT_BY_RANDOM = {\n type: exports.SORT_BY_TYPE_RANDOM\n};\nexports.SORT_BY_AL_TUN_TUN = exports.SORT_BY_RANDOM;\nexports.SORT_BY_ID_ASC = {\n field: \"uuid.id\",\n order: exports.SORT_BY_ASC\n};\nexports.SORT_BY_ID_DESC = {\n field: \"uuid.id\",\n order: exports.SORT_BY_DESC\n};\nexports.SORT_BY_TYPE_ASC = {\n field: \"uuid.type\",\n order: exports.SORT_BY_ASC\n};\nexports.SORT_BY_TYPE_DESC = {\n field: \"uuid.type\",\n order: exports.SORT_BY_DESC\n};\nexports.SORT_BY_LOCATION_KM_ASC = {\n type: exports.SORT_BY_TYPE_DISTANCE,\n unit: \"km\"\n};\nexports.SORT_BY_LOCATION_MI_ASC = {\n type: exports.SORT_BY_TYPE_DISTANCE,\n unit: \"mi\"\n};\nvar Coordinate_1 = require(\"../Model/Coordinate\");\nvar Filter_1 = require(\"./Filter\");\n/**\n * ScoreStrategy\n */\nvar SortBy = /** @class */ (function () {\n function SortBy() {\n this.sortsBy = [];\n }\n /**\n * Create\n *\n * @return {SortBy}\n */\n SortBy.create = function () {\n return new SortBy;\n };\n /**\n * Sort By fields values\n *\n * @param shortSortByElements\n *\n * @return {SortBy}\n */\n SortBy.byFieldsValues = function (shortSortByElements) {\n var sortBy = SortBy.create();\n for (var key in shortSortByElements) {\n sortBy.byFieldValue(key, shortSortByElements[key]);\n }\n return sortBy;\n };\n /**\n * All\n *\n * @return {Array}\n */\n SortBy.prototype.all = function () {\n return this.sortsBy.length > 0\n ? this.sortsBy\n : [exports.SORT_BY_SCORE];\n };\n /**\n * Sort by value\n *\n * @param value\n *\n * @return {SortBy}\n */\n SortBy.prototype.byValue = function (value) {\n if (exports.SORT_BY_SCORE != value &&\n exports.SORT_BY_RANDOM != value) {\n if (typeof value.type == \"undefined\") {\n value.type = exports.SORT_BY_TYPE_FIELD;\n }\n }\n if (exports.SORT_BY_SCORE != value) {\n this.sortsBy.push(value);\n }\n return this;\n };\n /**\n * Sort by field value\n *\n * @param field\n * @param order\n *\n * @return {SortBy}\n */\n SortBy.prototype.byFieldValue = function (field, order) {\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_FIELD,\n field: Item_1.Item.getPathByField(field),\n order: order\n });\n return this;\n };\n /**\n * Sort by nested field\n *\n * @param field\n * @param order\n * @param mode\n *\n * @return {SortBy}\n */\n SortBy.prototype.byNestedField = function (field, order, mode) {\n if (mode === void 0) { mode = exports.SORT_BY_MODE_AVG; }\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_NESTED,\n mode: mode,\n field: 'indexed_metadata.' + field,\n order: order\n });\n return this;\n };\n /**\n * Sort by nested field and filter\n *\n * @param field\n * @param order\n * @param filter\n * @param mode\n *\n * @return {SortBy}\n */\n SortBy.prototype.byNestedFieldAndFilter = function (field, order, filter, mode) {\n if (mode === void 0) { mode = exports.SORT_BY_MODE_AVG; }\n var fieldPath = Item_1.Item.getPathByField(filter.getField());\n var filterAsArray = filter.toArray();\n filterAsArray.field = fieldPath;\n filter = Filter_1.Filter.createFromArray(filterAsArray);\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_NESTED,\n mode: mode,\n filter: filter,\n field: 'indexed_metadata.' + field,\n order: order\n });\n return this;\n };\n /**\n * Sort by function\n *\n * @param func\n * @param order\n *\n * @return {SortBy}\n */\n SortBy.prototype.byFunction = function (func, order) {\n this.sortsBy.push({\n type: exports.SORT_BY_TYPE_FUNCTION,\n \"function\": func,\n order: order\n });\n return this;\n };\n /**\n * Is sorted by geo distance\n *\n * @return {boolean}\n */\n SortBy.prototype.isSortedByGeoDistance = function () {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_DISTANCE) {\n return true;\n }\n }\n return false;\n };\n /**\n * Set coordinate\n *\n * @param coordinate\n *\n * @return {SortBy}\n */\n SortBy.prototype.setCoordinate = function (coordinate) {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_DISTANCE) {\n this.sortsBy[i].coordinate = coordinate;\n }\n }\n return this;\n };\n /**\n * Has random sort\n *\n * @return {boolean}\n */\n SortBy.prototype.hasRandomSort = function () {\n for (var i in this.sortsBy) {\n if (this.sortsBy[i].type === exports.SORT_BY_TYPE_RANDOM) {\n return true;\n }\n }\n return false;\n };\n /**\n * To array\n *\n * @return {[]}\n */\n SortBy.prototype.toArray = function () {\n var copySortBy = this.copy();\n var sortsByAsArray = copySortBy.sortsBy;\n for (var i in sortsByAsArray) {\n if (typeof sortsByAsArray[i].filter === typeof {} &&\n sortsByAsArray[i].filter != null) {\n sortsByAsArray[i].filter = sortsByAsArray[i].filter.toArray();\n }\n if (sortsByAsArray[i].coordinate !== null &&\n sortsByAsArray[i].coordinate instanceof Coordinate_1.Coordinate) {\n sortsByAsArray[i].coordinate = sortsByAsArray[i].coordinate.toArray();\n }\n }\n return sortsByAsArray;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {SortBy}\n */\n SortBy.createFromArray = function (array) {\n var innerArray = JSON.parse(JSON.stringify(array));\n var sortBy = SortBy.create();\n for (var i in innerArray) {\n var element = innerArray[i];\n if (typeof element.type == \"undefined\") {\n element.type = exports.SORT_BY_TYPE_FIELD;\n }\n if (typeof element.filter === typeof {} &&\n element.filter != null) {\n element.filter = Filter_1.Filter.createFromArray(element.filter);\n }\n if (element.coordinate != null &&\n typeof element.coordinate === typeof {}) {\n element.coordinate = Coordinate_1.Coordinate.createFromArray(element.coordinate);\n }\n sortBy.sortsBy.push(element);\n }\n return sortBy;\n };\n /**\n * Make a copy of this\n *\n * @returns {SortBy}\n */\n SortBy.prototype.copy = function () {\n var newSortBy = SortBy.create();\n for (var i in this.sortsBy) {\n var sortBy = this.sortsBy[i];\n var sortByAsArray = JSON.parse(JSON.stringify(sortBy));\n if (typeof sortBy.filter === typeof {} &&\n sortBy.filter != null) {\n sortByAsArray.filter = Filter_1.Filter.createFromArray(sortBy.filter.toArray());\n }\n if (sortBy.coordinate != null &&\n typeof sortBy.coordinate == typeof {}) {\n sortByAsArray.coordinate = Coordinate_1.Coordinate.createFromArray(sortBy.coordinate.toArray());\n }\n newSortBy.sortsBy.push(sortByAsArray);\n }\n return newSortBy;\n };\n return SortBy;\n}());\nexports.SortBy = SortBy;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar Query_1 = require(\"../Query/Query\");\nvar ResultAggregations_1 = require(\"./ResultAggregations\");\n/**\n * Result class\n */\nvar Result = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param query\n * @param totalItems\n * @param totalHits\n */\n function Result(query, totalItems, totalHits) {\n this.items = [];\n this.suggests = [];\n this.subresults = {};\n this.query = query;\n this.totalItems = totalItems;\n this.totalHits = totalHits;\n }\n /**\n * Create\n *\n * @param query\n * @param totalItems\n * @param totalHits\n * @param aggregations\n * @param suggests\n * @param items\n *\n * @returns {Result}\n */\n Result.create = function (query, totalItems, totalHits, aggregations, suggests, items) {\n var result = new Result(query, totalItems, totalHits);\n result.aggregations = aggregations;\n result.suggests = suggests;\n result.items = items;\n return result;\n };\n /**\n * Create multi results\n *\n * @param query\n * @param subresults\n *\n * @returns {Result}\n */\n Result.createMultiresults = function (query, subresults) {\n var result = new Result(query, 0, 0);\n result.subresults = subresults;\n return result;\n };\n /**\n * Add item\n *\n * @param item\n */\n Result.prototype.addItem = function (item) {\n this.items.push(item);\n };\n /**\n * Get items\n *\n * @return {Item[]}\n */\n Result.prototype.getItems = function () {\n return this.items;\n };\n /**\n * Get items grouped by types\n *\n * @return {any[]}\n */\n Result.prototype.getItemsGroupedByTypes = function () {\n if (this.itemsGroupedByTypeCache instanceof Object &&\n Object.keys(this.itemsGroupedByTypeCache).length > 0) {\n return this.itemsGroupedByTypeCache;\n }\n var itemsGroupedByTypes = {};\n for (var i in this.items) {\n var item = this.items[i];\n if (!(itemsGroupedByTypes[item.getType()] instanceof Array)) {\n itemsGroupedByTypes[item.getType()] = [];\n }\n itemsGroupedByTypes[item.getType()].push(item);\n }\n this.itemsGroupedByTypeCache = itemsGroupedByTypes;\n return itemsGroupedByTypes;\n };\n /**\n * Get items by type\n *\n * @param type\n *\n * @return {Array}\n */\n Result.prototype.getItemsByType = function (type) {\n var itemsGroupedByTypes = this.getItemsGroupedByTypes();\n return itemsGroupedByTypes[type] == null\n ? []\n : itemsGroupedByTypes[type];\n };\n /**\n * Get items by types\n *\n * @param types\n */\n Result.prototype.getItemsByTypes = function (types) {\n return this.items.filter(function (item) { return types.indexOf(item.getType()) >= 0; });\n };\n /**\n * Get first item\n *\n * @return {Item}\n */\n Result.prototype.getFirstItem = function () {\n return this.items.length > 0\n ? this.items[0]\n : null;\n };\n /**\n * Set aggregations\n *\n * @param aggregations\n */\n Result.prototype.setAggregations = function (aggregations) {\n this.aggregations = aggregations;\n };\n /**\n * Get aggregations\n *\n * @return {ResultAggregations}\n */\n Result.prototype.getAggregations = function () {\n return this.aggregations instanceof ResultAggregations_1.ResultAggregations\n ? this.aggregations\n : null;\n };\n /**\n * Get aggregation\n *\n * @param name\n *\n * @return {null}\n */\n Result.prototype.getAggregation = function (name) {\n return this.aggregations == null\n ? null\n : this.aggregations.getAggregation(name);\n };\n /**\n * Has no empty aggregation\n *\n * @param name\n *\n * @return {boolean}\n */\n Result.prototype.hasNotEmptyAggregation = function (name) {\n return this.aggregations == null\n ? false\n : this.aggregations.hasNotEmptyAggregation(name);\n };\n /**\n * Add suggest\n *\n * @param suggest\n */\n Result.prototype.addSuggest = function (suggest) {\n this.suggests.push(suggest);\n };\n /**\n * Get suggests\n *\n * @return {string[]}\n */\n Result.prototype.getSuggests = function () {\n return this.suggests;\n };\n /**\n * Get query\n *\n * @return {Query}\n */\n Result.prototype.getQuery = function () {\n return this.query;\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n Result.prototype.getTotalItems = function () {\n return this.totalItems;\n };\n /**\n * Get total hits\n *\n * @return {number}\n */\n Result.prototype.getTotalHits = function () {\n return this.totalHits;\n };\n /**\n * Get subresults\n *\n * @return Object\n */\n Result.prototype.getSubresults = function () {\n return this.subresults;\n };\n /**\n * to array\n *\n * @return {{query: any, total_items: number, total_hits: number, items:any[], aggregations: any, suggests: string[]}}\n */\n Result.prototype.toArray = function () {\n var array = {\n query: this.query.toArray(),\n total_items: this.totalItems,\n total_hits: this.totalHits,\n items: this.items.map(function (item) { return item.toArray(); }),\n aggregations: this.aggregations == null\n ? null\n : this.aggregations.toArray(),\n suggests: this.suggests\n };\n if (this.subresults instanceof Object &&\n Object.keys(this.subresults).length) {\n array.subresults = {};\n for (var i in this.subresults) {\n var subresult = this.subresults[i];\n array.subresults[i] = subresult.toArray();\n }\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Result}\n */\n Result.createFromArray = function (array) {\n var result = Result.create(Query_1.Query.createFromArray(array.query), array.total_items\n ? array.total_items\n : 0, array.total_hits\n ? array.total_hits\n : 0, array.aggregations instanceof Object\n ? ResultAggregations_1.ResultAggregations.createFromArray(array.aggregations)\n : null, array.suggests\n ? array.suggests\n : null, array.items instanceof Array\n ? array.items.map(function (itemAsArray) { return Item_1.Item.createFromArray(itemAsArray); })\n : []);\n /**\n * Subqueries\n */\n var subresultsAsArray = typeof array.subresults === typeof {}\n ? array.subresults\n : {};\n for (var i in subresultsAsArray) {\n result.subresults[i] = Query_1.Query.createFromArray(subresultsAsArray[i]);\n }\n return result;\n };\n return Result;\n}());\nexports.Result = Result;\n","\"use strict\";\nexports.__esModule = true;\nvar ResultAggregation_1 = require(\"./ResultAggregation\");\n/**\n * ResultAggregation class\n */\nvar ResultAggregations = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param totalElements\n */\n function ResultAggregations(totalElements) {\n this.aggregations = {};\n this.totalElements = totalElements;\n }\n /**\n * Add aggregation\n *\n * @param name\n * @param aggregation\n */\n ResultAggregations.prototype.addAggregation = function (name, aggregation) {\n this.aggregations[name] = aggregation;\n };\n /**\n * Get aggregations\n *\n * @returns {{}}\n */\n ResultAggregations.prototype.getAggregations = function () {\n return this.aggregations;\n };\n /**\n * Get aggregation\n *\n * @param name\n *\n * @returns {Aggregation|null}\n */\n ResultAggregations.prototype.getAggregation = function (name) {\n return this.aggregations[name] instanceof ResultAggregation_1.ResultAggregation\n ? this.aggregations[name]\n : null;\n };\n /**\n * Has not empty aggregation\n *\n * @param name\n *\n * @returns {boolean}\n */\n ResultAggregations.prototype.hasNotEmptyAggregation = function (name) {\n var aggregation = this.getAggregation(name);\n return (aggregation instanceof ResultAggregation_1.ResultAggregation) &&\n (!aggregation.isEmpty());\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n ResultAggregations.prototype.getTotalElements = function () {\n return this.totalElements;\n };\n /**\n * To array\n *\n * @return {{total_elements?: number, aggregations?: {}}}\n */\n ResultAggregations.prototype.toArray = function () {\n var aggregationCollection = {};\n for (var i in this.aggregations) {\n aggregationCollection[i] = this.aggregations[i].toArray();\n }\n var array = {};\n if (this.totalElements > 0) {\n array.total_elements = this.totalElements;\n }\n if (Object.keys(aggregationCollection).length > 0) {\n array.aggregations = aggregationCollection;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ResultAggregations}\n */\n ResultAggregations.createFromArray = function (array) {\n var aggregations = new ResultAggregations(typeof array.total_elements === \"number\"\n ? array.total_elements\n : 0);\n if (typeof array.aggregations === typeof {}) {\n for (var i in array.aggregations) {\n aggregations.addAggregation(i, ResultAggregation_1.ResultAggregation.createFromArray(array.aggregations[i]));\n }\n }\n return aggregations;\n };\n return ResultAggregations;\n}());\nexports.ResultAggregations = ResultAggregations;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar axios_1 = require(\"axios\");\nvar Client_1 = require(\"./Client\");\nvar Response_1 = require(\"./Response\");\n/**\n * AxiosClient\n */\nvar AxiosClient = /** @class */ (function (_super) {\n tslib_1.__extends(AxiosClient, _super);\n /**\n * Constructor\n *\n * @param host\n * @param version\n * @param timeout\n * @param retryMap\n * @param overrideQueries\n * @param cache\n */\n function AxiosClient(host, version, timeout, retryMap, overrideQueries, cache) {\n var _this = _super.call(this, version, retryMap) || this;\n _this.host = host;\n _this.timeout = timeout;\n _this.cache = cache;\n _this.overrideQueries = overrideQueries;\n _this.cancelToken = {};\n return _this;\n }\n /**\n * Get\n *\n * @param url\n * @param method\n * @param credentials\n * @param parameters\n * @param data\n *\n * @return {Promise}\n */\n AxiosClient.prototype.get = function (url, method, credentials, parameters, data) {\n if (parameters === void 0) { parameters = {}; }\n if (data === void 0) { data = {}; }\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var that;\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n that = this;\n url = url.replace(/^\\/*|\\/*$/g, \"\");\n url = \"/\" + (this.version + \"/\" + url).replace(/^\\/*|\\/*$/g, \"\");\n method = method.toLowerCase();\n if (\"get\" === method &&\n this.overrideQueries) {\n this.abort(url);\n }\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var headers = \"get\" == method\n ? {}\n : {\n \"Content-Encoding\": \"gzip\",\n \"Content-Type\": \"application/json\"\n };\n var axiosRequestConfig = {\n url: url + \"?\" + Client_1.Client.objectToUrlParameters(tslib_1.__assign({}, credentials, parameters)),\n data: data,\n headers: headers,\n method: method,\n baseURL: that.host.replace(/\\/*$/g, \"\"),\n timeout: that.timeout,\n transformRequest: [function (data) { return JSON.stringify(data); }]\n };\n if (typeof _this.cancelToken[url] != 'undefined') {\n axiosRequestConfig.cancelToken = _this.cancelToken[url].token;\n }\n axios_1[\"default\"]\n .request(axiosRequestConfig)\n .then(function (axiosResponse) {\n var response = new Response_1.Response(axiosResponse.status, axiosResponse.data);\n return resolve(response);\n })[\"catch\"](function (error) {\n if (error.response === undefined) {\n return;\n }\n var response = new Response_1.Response(error.response.status, error.response.data);\n return reject(response);\n });\n })];\n });\n });\n };\n /**\n * Abort current request\n * And regenerate the cancellation token\n *\n * @param url\n */\n AxiosClient.prototype.abort = function (url) {\n if (typeof this.cancelToken[url] != 'undefined') {\n this.cancelToken[url].cancel();\n }\n this.generateCancelToken(url);\n };\n /**\n * Generate a new cancellation token for a query\n *\n * @param url\n */\n AxiosClient.prototype.generateCancelToken = function (url) {\n this.cancelToken[url] = axios_1[\"default\"].CancelToken.source();\n };\n return AxiosClient;\n}(Client_1.Client));\nexports.AxiosClient = AxiosClient;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Client\n */\nvar Client = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param version\n * @param retryMap\n */\n function Client(version, retryMap) {\n this.retryMap = retryMap;\n this.version = version.replace(/^\\/*|\\/*$/g, \"\");\n }\n /**\n * Build an url parameters array by an object\n *\n * @param params\n *\n * @returns {string}\n */\n Client.objectToUrlParameters = function (params) {\n var builtParams = [];\n for (var i in params) {\n builtParams.push(i + \"=\" + params[i]);\n }\n return builtParams.join(\"&\");\n };\n return Client;\n}());\nexports.Client = Client;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Response\n */\nvar Response = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param code\n * @param body\n */\n function Response(code, body) {\n this.code = code;\n this.body = body;\n }\n /**\n * Get code\n *\n * @return {number}\n */\n Response.prototype.getCode = function () {\n return this.code;\n };\n /**\n * Get body\n *\n * @return {any}\n */\n Response.prototype.getBody = function () {\n return this.body;\n };\n return Response;\n}());\nexports.Response = Response;\n","\"use strict\";\nexports.__esModule = true;\nvar Retry_1 = require(\"./Retry\");\n/**\n * Http class\n */\nvar RetryMap = /** @class */ (function () {\n function RetryMap() {\n this.retries = {};\n }\n /**\n * Add retry\n *\n * @param retry\n */\n RetryMap.prototype.addRetry = function (retry) {\n this.retries[retry.getUrl() + \"~~\" + retry.getMethod()] = retry;\n };\n /**\n * Create from array\n */\n RetryMap.createFromArray = function (array) {\n var retryMap = new RetryMap();\n retryMap.retries = array.map(function (retry) { return Retry_1.Retry.createFromArray(retry); });\n return retryMap;\n };\n /**\n * Get retry\n *\n * @param url\n * @param method\n *\n * @returns {Retry}\n */\n RetryMap.prototype.getRetry = function (url, method) {\n if (this.retries[url + \"~~\" + method] instanceof Retry_1.Retry) {\n return this.retries[url + \"~~\" + method];\n }\n if (this.retries[\"*~~\" + method] instanceof Retry_1.Retry) {\n return this.retries[\"*~~\" + method];\n }\n if (this.retries[url + \"~~*\"] instanceof Retry_1.Retry) {\n return this.retries[url + \"~~*\"];\n }\n if (this.retries[\"*~~*\"] instanceof Retry_1.Retry) {\n return this.retries[\"*~~*\"];\n }\n return null;\n };\n return RetryMap;\n}());\nexports.RetryMap = RetryMap;\n","\"use strict\";\nexports.__esModule = true;\nexports.DEFAULT_MICROSECONDS_BETWEEN_RETRIES = 1000;\n/**\n * Http class\n */\nvar Retry = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param url\n * @param method\n * @param retries\n * @param microsecondsBetweenRetries\n */\n function Retry(url, method, retries, microsecondsBetweenRetries) {\n this.url = url;\n this.method = method;\n this.retries = retries;\n this.microsecondsBetweenRetries = microsecondsBetweenRetries;\n }\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Retry}\n */\n Retry.createFromArray = function (array) {\n return new Retry(array.url ? array.url : \"*\", array.method ? array.method : \"*\", array.retries ? array.retries : 0, array.microseconds_between_retries\n ? array.microseconds_between_retries\n : exports.DEFAULT_MICROSECONDS_BETWEEN_RETRIES);\n };\n /**\n * Get url\n *\n * @return {string}\n */\n Retry.prototype.getUrl = function () {\n return this.url;\n };\n /**\n * Get method\n *\n * @return {string}\n */\n Retry.prototype.getMethod = function () {\n return this.method;\n };\n /**\n * Ge retries\n *\n * @return {number}\n */\n Retry.prototype.getRetries = function () {\n return this.retries;\n };\n /**\n * Get microseconds between retries\n *\n * @return {number}\n */\n Retry.prototype.getMicrosecondsBetweenRetries = function () {\n return this.microsecondsBetweenRetries;\n };\n return Retry;\n}());\nexports.Retry = Retry;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * User class\n */\nvar User = /** @class */ (function () {\n /**\n * Construct\n *\n * @param id string\n * @param attributes Array\n */\n function User(id, attributes) {\n if (attributes === void 0) { attributes = {}; }\n this.id = id;\n this.attributes = attributes;\n }\n /**\n * Return the user id\n *\n * @return {string}\n */\n User.prototype.getId = function () {\n return this.id;\n };\n /**\n * Return array\n *\n * @returns {{}}\n */\n User.prototype.getAttributes = function () {\n return this.attributes;\n };\n /**\n * To array\n *\n * @returns {{id: string, attributes: {}}}\n */\n User.prototype.toArray = function () {\n var array = {\n id: this.id\n };\n if (Object.keys(this.attributes).length > 0) {\n array.attributes = this.attributes;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return User\n */\n User.createFromArray = function (array) {\n if (array == null ||\n typeof array.id == \"undefined\" ||\n array.id == null) {\n throw InvalidFormatError_1.InvalidFormatError.userFormatNotValid();\n }\n var attributes = typeof array.attributes === typeof {}\n ? array.attributes\n : {};\n return new User(array.id, attributes);\n };\n return User;\n}());\nexports.User = User;\n","\"use strict\";\nexports.__esModule = true;\nvar ScoreStrategy_1 = require(\"./ScoreStrategy\");\n/**\n * ScoreStrategies constants\n */\nexports.MULTIPLY = 'multiply';\nexports.SUM = 'sum';\nexports.AVG = 'avg';\nexports.MAX = 'max';\nexports.MIN = 'min';\n/**\n * ScoreStrategies\n */\nvar ScoreStrategies = /** @class */ (function () {\n function ScoreStrategies() {\n this.scoreStrategies = [];\n }\n /**\n * Create empty\n *\n * @param scoreMode\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.createEmpty = function (scoreMode) {\n if (scoreMode === void 0) { scoreMode = exports.SUM; }\n var scoreStrategies = new ScoreStrategies;\n scoreStrategies.scoreMode = scoreMode;\n return scoreStrategies;\n };\n /**\n * Add score strategy\n *\n * @param scoreStrategy\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.prototype.addScoreStrategy = function (scoreStrategy) {\n this.scoreStrategies.push(scoreStrategy);\n return this;\n };\n /**\n * Get score strategies\n *\n * @return {ScoreStrategy[]}\n */\n ScoreStrategies.prototype.getScoreStrategies = function () {\n return this.scoreStrategies;\n };\n /**\n * Get score mode\n *\n * @return {string}\n */\n ScoreStrategies.prototype.getScoreMode = function () {\n return this.scoreMode;\n };\n /**\n * To array\n *\n * @return {{\n * score_mode: string,\n * score_strategies: any\n * }}\n */\n ScoreStrategies.prototype.toArray = function () {\n var scoreStrategiesAsArray = [];\n for (var i in this.scoreStrategies) {\n scoreStrategiesAsArray.push(this.scoreStrategies[i].toArray());\n }\n return {\n score_mode: this.scoreMode,\n score_strategies: scoreStrategiesAsArray\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ScoreStrategies}\n */\n ScoreStrategies.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var scoreStrategies = (typeof array.score_mode != \"undefined\")\n ? ScoreStrategies.createEmpty(array.score_mode)\n : ScoreStrategies.createEmpty();\n scoreStrategies.scoreStrategies = [];\n for (var i in array.score_strategies) {\n scoreStrategies\n .scoreStrategies\n .push(ScoreStrategy_1.ScoreStrategy.createFromArray(array.score_strategies[i]));\n }\n return scoreStrategies;\n };\n return ScoreStrategies;\n}());\nexports.ScoreStrategies = ScoreStrategies;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar Filter_1 = require(\"./Filter\");\n/**\n * ScoreStrategy constants\n */\nexports.DEFAULT_TYPE = 'default';\nexports.DEFAULT_WEIGHT = 1.0;\nexports.BOOSTING_FIELD_VALUE = 'field_value';\nexports.CUSTOM_FUNCTION = 'custom_function';\nexports.DECAY = 'decay';\nexports.DECAY_LINEAR = 'linear';\nexports.DECAY_EXP = 'exp';\nexports.DECAY_GAUSS = 'gauss';\nexports.MODIFIER_NONE = 'none';\nexports.MODIFIER_SQRT = 'sqrt';\nexports.MODIFIER_LOG = 'log';\nexports.MODIFIER_LN = 'ln';\nexports.MODIFIER_SQUARE = 'square';\nexports.SCORE_MODE_NONE = 'none';\nexports.SCORE_MODE_SUM = 'sum';\nexports.SCORE_MODE_AVG = 'avg';\nexports.SCORE_MODE_MAX = 'max';\nexports.SCORE_MODE_MIN = 'min';\nexports.DEFAULT_MISSING = 1.0;\nexports.DEFAULT_FACTOR = 1.0;\n/**\n * ScoreStrategy\n */\nvar ScoreStrategy = /** @class */ (function () {\n function ScoreStrategy() {\n this.type = exports.DEFAULT_TYPE;\n this.filter = null;\n this.weight = exports.DEFAULT_WEIGHT;\n this.scoreMode = exports.SCORE_MODE_AVG;\n this.configuration = {};\n }\n /**\n * Get type\n *\n * @returns {string}\n */\n ScoreStrategy.prototype.getType = function () {\n return this.type;\n };\n /**\n * Get configuration value\n *\n * @returns {string}\n */\n ScoreStrategy.prototype.getConfigurationValue = function (element) {\n if (typeof this.configuration[element] == \"undefined\") {\n return null;\n }\n return this.configuration[element];\n };\n /**\n * Get weight.\n *\n * @return {number}\n */\n ScoreStrategy.prototype.getWeight = function () {\n return this.weight;\n };\n /**\n * Get score mode.\n *\n * @return {string}\n */\n ScoreStrategy.prototype.getScoreMode = function () {\n return this.scoreMode;\n };\n /**\n * Get filter.\n *\n * @return {Filter}\n */\n ScoreStrategy.prototype.getFilter = function () {\n return this.filter;\n };\n /**\n * Create default\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createDefault = function () {\n return new ScoreStrategy();\n };\n /**\n * Create field boosting\n *\n * @param field\n * @param factor\n * @param missing\n * @param modifier\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createFieldBoosting = function (field, factor, missing, modifier, weight, filter, scoreMode) {\n if (factor === void 0) { factor = exports.DEFAULT_FACTOR; }\n if (missing === void 0) { missing = exports.DEFAULT_MISSING; }\n if (modifier === void 0) { modifier = exports.MODIFIER_NONE; }\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.BOOSTING_FIELD_VALUE;\n scoreStrategy.configuration['field'] = field;\n scoreStrategy.configuration['factor'] = factor;\n scoreStrategy.configuration['missing'] = missing;\n scoreStrategy.configuration['modifier'] = modifier;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Create custom function\n *\n * @param func\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createCustomFunction = function (func, weight, filter, scoreMode) {\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.CUSTOM_FUNCTION;\n scoreStrategy.configuration['function'] = func;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Create decay function\n *\n * @param type\n * @param field\n * @param origin\n * @param scale\n * @param offset\n * @param decay\n * @param weight\n * @param filter\n * @param scoreMode\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createDecayFunction = function (type, field, origin, scale, offset, decay, weight, filter, scoreMode) {\n if (weight === void 0) { weight = exports.DEFAULT_WEIGHT; }\n if (filter === void 0) { filter = null; }\n if (scoreMode === void 0) { scoreMode = exports.SCORE_MODE_AVG; }\n var scoreStrategy = ScoreStrategy.createDefault();\n scoreStrategy.type = exports.DECAY;\n scoreStrategy.configuration['type'] = type;\n scoreStrategy.configuration['field'] = field;\n scoreStrategy.configuration['origin'] = origin;\n scoreStrategy.configuration['scale'] = scale;\n scoreStrategy.configuration['offset'] = offset;\n scoreStrategy.configuration['decay'] = decay;\n scoreStrategy.weight = weight;\n scoreStrategy.filter = ScoreStrategy.fixFilterFieldPath(filter);\n scoreStrategy.scoreMode = scoreMode;\n return scoreStrategy;\n };\n /**\n * Fix filter path.\n *\n * @param filter\n *\n * @return {Filter}\n */\n ScoreStrategy.fixFilterFieldPath = function (filter) {\n if (filter == null) {\n return filter;\n }\n var filterAsArray = filter.toArray();\n filterAsArray['field'] = Item_1.Item.getPathByField(filterAsArray['field']);\n return Filter_1.Filter.createFromArray(filterAsArray);\n };\n /**\n * To array\n *\n * @return {{\n * type: string,\n * configuration: any,\n * weight: number,\n * score_mode: string,\n * filter: any\n * }}\n */\n ScoreStrategy.prototype.toArray = function () {\n return {\n type: this.type,\n configuration: this.configuration,\n weight: this.weight,\n score_mode: this.scoreMode,\n filter: this.filter instanceof Filter_1.Filter\n ? this.filter.toArray()\n : null\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {ScoreStrategy}\n */\n ScoreStrategy.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var scoreStrategy = ScoreStrategy.createDefault();\n if (typeof array.type != \"undefined\") {\n scoreStrategy.type = array.type;\n }\n if (typeof array.configuration != \"undefined\") {\n scoreStrategy.configuration = array.configuration;\n }\n if (typeof array.weight != \"undefined\") {\n scoreStrategy.weight = array.weight;\n }\n if (typeof array.score_mode != \"undefined\") {\n scoreStrategy.scoreMode = array.score_mode;\n }\n if (typeof array.filter === 'object' && array.filter !== null) {\n scoreStrategy.filter = Filter_1.Filter.createFromArray(array.filter);\n }\n return scoreStrategy;\n };\n return ScoreStrategy;\n}());\nexports.ScoreStrategy = ScoreStrategy;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ConnectionError_1 = require(\"../Error/ConnectionError\");\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar InvalidTokenError_1 = require(\"../Error/InvalidTokenError\");\nvar ResourceExistsError_1 = require(\"../Error/ResourceExistsError\");\nvar ResourceNotAvailableError_1 = require(\"../Error/ResourceNotAvailableError\");\nvar Item_1 = require(\"../Model/Item\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\nvar Result_1 = require(\"../Result/Result\");\nvar Repository_1 = require(\"./Repository\");\nvar Index_1 = require(\"../Model/Index\");\n/**\n * Aggregation class\n */\nvar HttpRepository = /** @class */ (function (_super) {\n tslib_1.__extends(HttpRepository, _super);\n /**\n * Constructor\n *\n * @param httpClient\n * @param appId\n * @param indexId\n * @param token\n * @param transformer\n */\n function HttpRepository(httpClient, appId, indexId, token, transformer) {\n var _this = _super.call(this, appId, indexId, token) || this;\n _this.httpClient = httpClient;\n _this.transformer = transformer;\n return _this;\n }\n /**\n * Get transformer\n *\n * @return {Transformer}\n */\n HttpRepository.prototype.getTransformer = function () {\n return this.transformer;\n };\n /**\n * Generate item document by a simple object.\n *\n * @param object\n */\n HttpRepository.prototype.addObject = function (object) {\n var item = this\n .transformer\n .toItem(object);\n if (item instanceof Item_1.Item) {\n this.addItem(item);\n }\n };\n /**\n * Delete item document by uuid.\n *\n * @param object\n */\n HttpRepository.prototype.deleteObject = function (object) {\n var itemUUID = this\n .transformer\n .toItemUUID(object);\n if (itemUUID instanceof ItemUUID_1.ItemUUID) {\n this.deleteItem(itemUUID);\n }\n };\n /**\n * Flush update items\n *\n * @param itemsToUpdate\n *\n * @return {Promise}\n */\n HttpRepository.prototype.flushUpdateItems = function (itemsToUpdate) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n if (itemsToUpdate.length === 0) {\n return [2 /*return*/];\n }\n return [2 /*return*/, this\n .httpClient\n .get(\"/items\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {\n items: itemsToUpdate.map(function (item) {\n return item.toArray();\n })\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n })];\n });\n });\n };\n /**\n * Flush delete items\n *\n * @param itemsToDelete\n *\n * @return {Promise}\n */\n HttpRepository.prototype.flushDeleteItems = function (itemsToDelete) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n if (itemsToDelete.length === 0) {\n return [2 /*return*/];\n }\n return [2 /*return*/, this\n .httpClient\n .get(\"/items\", \"delete\", this.getCredentialsWithIndex(this.indexId), {}, {\n items: itemsToDelete.map(function (itemUUID) {\n return itemUUID.toArray();\n })\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n })];\n });\n });\n };\n /**\n * Query\n *\n * @param query\n *\n * @return {Promise}\n */\n HttpRepository.prototype.query = function (query) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var that;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n that = this;\n return [4 /*yield*/, this\n .httpClient\n .get(\"/\", \"get\", this.getCredentialsWithIndex(this.indexId), {\n query: JSON.stringify(query.toArray())\n }, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n var result = Result_1.Result.createFromArray(response.getBody());\n return Result_1.Result.create(result.getQuery(), result.getTotalItems(), result.getTotalHits(), result.getAggregations(), result.getSuggests(), that\n .transformer\n .fromItems(result.getItems()));\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Update items\n *\n * @param query\n * @param changes\n *\n * @return {Promise}\n */\n HttpRepository.prototype.updateItems = function (query, changes) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/items\", \"put\", this.getCredentialsWithIndex(this.indexId), {}, {\n query: query.toArray(),\n changes: changes.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Create index\n *\n * @param indexUUID\n * @param config\n *\n * @return {Promise}\n */\n HttpRepository.prototype.createIndex = function (indexUUID, config) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"put\", this.getCredentials(), {}, {\n index: indexUUID.toArray(),\n config: config.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Delete index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.deleteIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"delete\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Reset index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.resetIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index/reset\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Check index\n *\n * @param indexUUID\n *\n * @return {Promise}\n */\n HttpRepository.prototype.checkIndex = function (indexUUID) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"head\", this.getCredentialsWithIndex(this.indexId), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return response.getCode() === 200;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Check index\n *\n * @return {Promise}\n */\n HttpRepository.prototype.getIndices = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/indices\", \"get\", this.getCredentials(), {}, {})\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n var result = [];\n for (var _i = 0, _a = response.getBody(); _i < _a.length; _i++) {\n var indexAsArray = _a[_i];\n result.push(Index_1.Index.createFromArray(indexAsArray));\n }\n return result;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Configure index\n *\n * @param indexUUID\n * @param config\n *\n * @return {Promise}\n */\n HttpRepository.prototype.configureIndex = function (indexUUID, config) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this\n .httpClient\n .get(\"/index\", \"post\", this.getCredentialsWithIndex(this.indexId), {}, {\n config: config.toArray()\n })\n .then(function (response) {\n HttpRepository.throwTransportableExceptionIfNeeded(response);\n return;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Get query values\n *\n * @returns any\n */\n HttpRepository.prototype.getCredentials = function () {\n return {\n app_id: this.appId,\n token: this.token\n };\n };\n /**\n * Get query values\n *\n * @param indexComposedUUID\n *\n * @returns any\n */\n HttpRepository.prototype.getCredentialsWithIndex = function (indexComposedUUID) {\n return {\n app_id: this.appId,\n index: indexComposedUUID,\n token: this.token\n };\n };\n /**\n * throw error if needed\n *\n * @param response\n */\n HttpRepository.throwTransportableExceptionIfNeeded = function (response) {\n if (typeof response.getCode() == \"undefined\") {\n return;\n }\n switch (response.getCode()) {\n case ResourceNotAvailableError_1.ResourceNotAvailableError.getTransportableHTTPError():\n throw new ResourceNotAvailableError_1.ResourceNotAvailableError(response.getBody().message);\n case InvalidTokenError_1.InvalidTokenError.getTransportableHTTPError():\n throw new InvalidTokenError_1.InvalidTokenError(response.getBody().message);\n case InvalidFormatError_1.InvalidFormatError.getTransportableHTTPError():\n throw new InvalidFormatError_1.InvalidFormatError(response.getBody().message);\n case ResourceExistsError_1.ResourceExistsError.getTransportableHTTPError():\n throw new ResourceExistsError_1.ResourceExistsError(response.getBody().message);\n case ConnectionError_1.ConnectionError.getTransportableHTTPError():\n throw new ConnectionError_1.ConnectionError(response.getBody().message);\n }\n };\n return HttpRepository;\n}(Repository_1.Repository));\nexports.HttpRepository = HttpRepository;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Connection error\n */\nvar ConnectionError = /** @class */ (function (_super) {\n tslib_1.__extends(ConnectionError, _super);\n function ConnectionError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ConnectionError.getTransportableHTTPError = function () {\n return 500;\n };\n return ConnectionError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ConnectionError = ConnectionError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Invalid token error\n */\nvar InvalidTokenError = /** @class */ (function (_super) {\n tslib_1.__extends(InvalidTokenError, _super);\n function InvalidTokenError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n InvalidTokenError.getTransportableHTTPError = function () {\n return 401;\n };\n /**\n * Invalid token permissions\n *\n * @param tokenReference\n *\n * @return {InvalidTokenError}\n */\n InvalidTokenError.createInvalidTokenPermissions = function (tokenReference) {\n return new InvalidTokenError(\"Token \" + tokenReference + \"not valid\");\n };\n /**\n * Invalid token permissions\n *\n * @param tokenReference\n * @param maxHitsPerQuery\n *\n * @return {InvalidTokenError}\n */\n InvalidTokenError.createInvalidTokenMaxHitsPerQuery = function (tokenReference, maxHitsPerQuery) {\n return new InvalidTokenError(\"Token \" + tokenReference + \"not valid. Max \" + maxHitsPerQuery + \" hits allowed\");\n };\n return InvalidTokenError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.InvalidTokenError = InvalidTokenError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Resource exists error\n */\nvar ResourceExistsError = /** @class */ (function (_super) {\n tslib_1.__extends(ResourceExistsError, _super);\n function ResourceExistsError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ResourceExistsError.getTransportableHTTPError = function () {\n return 409;\n };\n /**\n * Index not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.indexAvailable = function () {\n return new ResourceExistsError(\"Index exists and cannot be created again\");\n };\n /**\n * Events not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.eventsIndexAvailable = function () {\n return new ResourceExistsError(\"Events index exists and cannot be created again\");\n };\n /**\n * Logs not available\n *\n * @return {InvalidFormatError}\n */\n ResourceExistsError.logsIndexAvailable = function () {\n return new ResourceExistsError(\"Logs index exists and cannot be created again\");\n };\n return ResourceExistsError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ResourceExistsError = ResourceExistsError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Resource not available error\n */\nvar ResourceNotAvailableError = /** @class */ (function (_super) {\n tslib_1.__extends(ResourceNotAvailableError, _super);\n function ResourceNotAvailableError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ResourceNotAvailableError.getTransportableHTTPError = function () {\n return 404;\n };\n /**\n * Index not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.indexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Index not available - \" + resourceId);\n };\n /**\n * Events not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.eventsIndexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Events not available - \" + resourceId);\n };\n /**\n * Logs not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.logsIndexNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Logs not available - \" + resourceId);\n };\n /**\n * Engine not available\n *\n * @param resourceId\n *\n * @return {InvalidFormatError}\n */\n ResourceNotAvailableError.engineNotAvailable = function (resourceId) {\n return new ResourceNotAvailableError(\"Engine not available - \" + resourceId);\n };\n return ResourceNotAvailableError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ResourceNotAvailableError = ResourceNotAvailableError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Filter_1 = require(\"../Query/Filter\");\nvar Counter_1 = require(\"./Counter\");\n/**\n * ResultAggregation class\n */\nvar ResultAggregation = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param name\n * @param applicationType\n * @param totalElements\n * @param activeElements\n */\n function ResultAggregation(name, applicationType, totalElements, activeElements) {\n this.counters = {};\n this.highestActiveElement = 0;\n this.name = name;\n this.applicationType = applicationType;\n this.totalElements = totalElements;\n this.activeElements = {};\n for (var i in activeElements) {\n var activeElement = activeElements[i];\n this.activeElements[activeElement] = activeElement;\n }\n }\n /**\n * Add counter\n *\n * @param name\n * @param counter\n */\n ResultAggregation.prototype.addCounter = function (name, counter) {\n if (counter == 0) {\n return;\n }\n var counterInstance = Counter_1.Counter.createByActiveElements(name, counter, Object.keys(this.activeElements));\n if (!(counterInstance instanceof Counter_1.Counter)) {\n return;\n }\n if ((this.applicationType & Filter_1.FILTER_MUST_ALL_WITH_LEVELS) &&\n (this.applicationType & ~Filter_1.FILTER_MUST_ALL) &&\n counterInstance.isUsed()) {\n this.activeElements[counterInstance.getId()] = counterInstance;\n this.highestActiveElement = Math.max(counterInstance.getLevel(), this.highestActiveElement);\n return;\n }\n this.counters[counterInstance.getId()] = counterInstance;\n };\n /**\n * Get name\n *\n * @return {string}\n */\n ResultAggregation.prototype.getName = function () {\n return this.name;\n };\n /**\n * Get counter\n *\n * @return {any}\n */\n ResultAggregation.prototype.getCounters = function () {\n return this.counters;\n };\n /**\n * Return if the aggregation belongs to a filter.\n *\n * @return {boolean}\n */\n ResultAggregation.prototype.isFilter = function () {\n return (this.applicationType & Filter_1.FILTER_MUST_ALL) > 0;\n };\n /**\n * Aggregation has levels.\n *\n * @return {boolean}\n */\n ResultAggregation.prototype.hasLevels = function () {\n return (this.applicationType & Filter_1.FILTER_MUST_ALL_WITH_LEVELS) > 0;\n };\n /**\n * Get counter by name\n *\n * @param name\n *\n * @return {null}\n */\n ResultAggregation.prototype.getCounter = function (name) {\n return this.counters[name] instanceof Counter_1.Counter\n ? this.counters[name]\n : null;\n };\n /**\n * Get all elements\n *\n * @return {{}}\n */\n ResultAggregation.prototype.getAllElements = function () {\n return tslib_1.__assign({}, this.activeElements, this.counters);\n };\n /**\n * Get total elements\n *\n * @return {number}\n */\n ResultAggregation.prototype.getTotalElements = function () {\n return this.totalElements;\n };\n /**\n * Get active elements\n *\n * @return {any}\n */\n ResultAggregation.prototype.getActiveElements = function () {\n if (Object.keys(this.activeElements).length === 0) {\n return {};\n }\n if (this.applicationType === Filter_1.FILTER_MUST_ALL_WITH_LEVELS) {\n var value = null;\n for (var i in this.activeElements) {\n var activeElement = this.activeElements[i];\n if (!(activeElement instanceof Counter_1.Counter)) {\n continue;\n }\n if (value == null) {\n value = activeElement;\n }\n value = value.getLevel() > activeElement.getLevel()\n ? value\n : activeElement;\n }\n return value instanceof Counter_1.Counter\n ? { 0: value }\n : null;\n }\n return this.activeElements;\n };\n /**\n * Clean results by level and remove all levels higher than the lowest.\n */\n ResultAggregation.prototype.cleanCountersByLevel = function () {\n for (var i in this.counters) {\n var counter = this.counters[i];\n if (counter.getLevel() !== this.highestActiveElement + 1) {\n delete this.counters[i];\n }\n }\n };\n /**\n * Is empty\n *\n * @returns {boolean}\n */\n ResultAggregation.prototype.isEmpty = function () {\n return Object.keys(this.activeElements).length == 0 &&\n Object.keys(this.counters).length == 0;\n };\n /**\n * To array\n *\n * @return {any}\n */\n ResultAggregation.prototype.toArray = function () {\n var array = {\n name: this.name,\n counters: [],\n active_elements: []\n };\n for (var i in this.counters) {\n array.counters.push(this.counters[i].toArray());\n }\n if (this.applicationType !== Filter_1.FILTER_AT_LEAST_ONE) {\n array.application_type = this.applicationType;\n }\n if (this.totalElements > 0) {\n array.total_elements = this.totalElements;\n }\n for (var i in this.activeElements) {\n var activeElement = this.activeElements[i];\n array.active_elements.push(activeElement instanceof Counter_1.Counter\n ? activeElement.toArray()\n : activeElement);\n }\n if (this.highestActiveElement > 0) {\n array.highest_active_level = this.highestActiveElement;\n }\n if (array.counters.length === 0) {\n delete array.counters;\n }\n if (array.active_elements.length === 0) {\n delete array.active_elements;\n }\n return array;\n };\n /**\n * Create from array\n *\n * @param array\n */\n ResultAggregation.createFromArray = function (array) {\n var activeElements = [];\n var activeElementsAsArray = array.active_elements;\n activeElementsAsArray = typeof activeElementsAsArray === typeof []\n ? activeElementsAsArray\n : [];\n for (var i in activeElementsAsArray) {\n var activeElementAsArray = activeElementsAsArray[i];\n activeElements.push(typeof activeElementAsArray === typeof {}\n ? Counter_1.Counter.createFromArray(activeElementAsArray)\n : activeElementAsArray);\n }\n var aggregation = new ResultAggregation(array.name, parseInt(array.application_type ? array.application_type : Filter_1.FILTER_AT_LEAST_ONE), parseInt(array.total_elements ? array.total_elements : 0), []);\n aggregation.activeElements = activeElements;\n var countersAsArray = typeof array.counters === typeof []\n ? array.counters\n : [];\n for (var i in countersAsArray) {\n var counterAsArray = countersAsArray[i];\n var counter = Counter_1.Counter.createFromArray(counterAsArray);\n aggregation.counters[counter.getId()] = counter;\n }\n aggregation.highestActiveElement = typeof array.highest_active_level === \"number\"\n ? array.highest_active_level\n : 0;\n return aggregation;\n };\n return ResultAggregation;\n}());\nexports.ResultAggregation = ResultAggregation;\n","\"use strict\";\nexports.__esModule = true;\nvar Metadata_1 = require(\"../Model/Metadata\");\n/**\n * Aggregation class\n */\nvar Counter = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param values\n * @param used\n * @param n\n */\n function Counter(values, used, n) {\n this.values = values;\n this.used = used;\n this.n = n;\n }\n /**\n * Get id\n *\n * @return {string|null}\n */\n Counter.prototype.getId = function () {\n return typeof this.values.id == \"string\"\n ? this.values.id\n : null;\n };\n /**\n * Get name\n *\n * @return {string|null}\n */\n Counter.prototype.getName = function () {\n return typeof this.values.name == \"string\"\n ? this.values.name\n : null;\n };\n /**\n * Get slug\n *\n * @return {string|null}\n */\n Counter.prototype.getSlug = function () {\n return typeof this.values.slug == \"string\"\n ? this.values.slug\n : null;\n };\n /**\n * Get level\n *\n * @return {number}\n */\n Counter.prototype.getLevel = function () {\n return typeof this.values.level == \"number\"\n ? this.values.level\n : 0;\n };\n /**\n * Get values\n *\n * @returns {{}}\n */\n Counter.prototype.getValues = function () {\n return this.values;\n };\n /**\n * Is used\n *\n * @returns {boolean}\n */\n Counter.prototype.isUsed = function () {\n return this.used;\n };\n /**\n * Get N\n *\n * @returns {number}\n */\n Counter.prototype.getN = function () {\n return this.n;\n };\n /**\n * Create by active elements\n *\n * @param name\n * @param n\n * @param activeElements\n */\n Counter.createByActiveElements = function (name, n, activeElements) {\n var values = Metadata_1.Metadata.fromMetadata(name);\n if (values == null) {\n return null;\n }\n var i = activeElements.length;\n var inActiveElements = false;\n while (i--) {\n if (activeElements[i] == values.id) {\n inActiveElements = true;\n }\n }\n return new Counter(values, inActiveElements, n);\n };\n /**\n * To array\n *\n * @return {{}}\n */\n Counter.prototype.toArray = function () {\n var values = {\n values: this.values,\n n: this.n\n };\n if (this.used === true) {\n values.used = true;\n }\n return values;\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return {Counter}\n */\n Counter.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new Counter(array.values, (typeof array.used == \"boolean\")\n ? array.used\n : false, array.n);\n };\n return Counter;\n}());\nexports.Counter = Counter;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * User class\n */\nvar Metadata = /** @class */ (function () {\n function Metadata() {\n }\n /**\n * To metadata\n *\n * @param array:{}\n *\n * @returns {string}\n */\n Metadata.toMetadata = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var parts = [];\n for (var key in array) {\n parts.push(key + \"##\" + array[key]);\n }\n return parts.join(\"~~\");\n };\n /**\n * From metadata\n *\n * @param metadata\n *\n * @return {{}}\n */\n Metadata.fromMetadata = function (metadata) {\n var values = {};\n var splittedParts = metadata.split(\"~~\");\n var iterator = 0;\n var size = 0;\n var lastElement = null;\n for (var key in splittedParts) {\n var part = splittedParts[key];\n var parts = part.split(\"##\");\n if (parts.length > 1) {\n lastElement = parts[1];\n values[parts[0]] = lastElement;\n }\n else {\n lastElement = part;\n values[iterator++] = lastElement;\n }\n size++;\n }\n if (size == 1) {\n values = {\n id: lastElement,\n name: lastElement\n };\n }\n if (typeof values.id == \"undefined\") {\n return null;\n }\n return values;\n };\n return Metadata;\n}());\nexports.Metadata = Metadata;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\n/**\n * Aggregation class\n */\nvar Repository = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param appId\n * @param indexId\n * @param token\n */\n function Repository(appId, indexId, token) {\n this.itemsToUpdate = [];\n this.itemsToDelete = [];\n this.appId = appId;\n this.indexId = indexId;\n this.token = token;\n }\n /**\n * Reset cached elements\n */\n Repository.prototype.resetCachedElements = function () {\n this.itemsToUpdate = [];\n this.itemsToDelete = [];\n };\n /**\n * Add element\n *\n * @param item\n */\n Repository.prototype.addItem = function (item) {\n this.itemsToUpdate.push(item);\n };\n /**\n * Add elements\n *\n * @param items\n */\n Repository.prototype.addItems = function (items) {\n for (var i in items) {\n this.addItem(items[i]);\n }\n };\n /**\n * Delete item\n *\n * @param itemUUID\n */\n Repository.prototype.deleteItem = function (itemUUID) {\n this.itemsToDelete.push(itemUUID);\n };\n /**\n * Delete items\n *\n * @param itemsUUID\n */\n Repository.prototype.deleteItems = function (itemsUUID) {\n for (var i in itemsUUID) {\n this.deleteItem(itemsUUID[i]);\n }\n };\n /**\n * flush\n *\n * @param bulkNumber\n * @param skipIfLess\n *\n * @return {Promise}\n */\n Repository.prototype.flush = function (bulkNumber, skipIfLess) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n if (!bulkNumber) {\n bulkNumber = 500;\n }\n if (!skipIfLess) {\n skipIfLess = false;\n }\n if (skipIfLess &&\n this.itemsToUpdate.length < bulkNumber) {\n return [2 /*return*/];\n }\n return [2 /*return*/, Promise.all(Repository\n .chunkArray(this.itemsToUpdate, bulkNumber)\n .map(function (arrayOfItems) {\n return _this.flushUpdateItems(arrayOfItems);\n })\n .concat(Repository\n .chunkArray(this.itemsToDelete, bulkNumber)\n .map(function (arrayOfItemsUUID) {\n return _this.flushDeleteItems(arrayOfItemsUUID);\n }))).then(function (_) {\n _this.resetCachedElements();\n })[\"catch\"](function (_) {\n _this.resetCachedElements();\n })];\n });\n });\n };\n /**\n * Make chunks of n elements\n *\n * @param array\n * @param chunk\n *\n * @return any[]\n */\n Repository.chunkArray = function (array, chunk) {\n var arrayChunked = [];\n for (var i = 0, j = array.length; i < j; i += chunk) {\n arrayChunked.push(array.slice(i, i + chunk));\n }\n return arrayChunked;\n };\n return Repository;\n}());\nexports.Repository = Repository;\n","\"use strict\";\nexports.__esModule = true;\nvar Item_1 = require(\"../Model/Item\");\nvar ItemUUID_1 = require(\"../Model/ItemUUID\");\n/**\n * Transformer\n */\nvar Transformer = /** @class */ (function () {\n function Transformer() {\n this.readTransformers = [];\n this.writeTransformers = [];\n }\n /**\n * Add read transformer\n *\n * @param readTransformer\n */\n Transformer.prototype.addReadTransformer = function (readTransformer) {\n this\n .readTransformers\n .push(readTransformer);\n };\n /**\n * Add write transformer\n *\n * @param writeTransformer\n */\n Transformer.prototype.addWriteTransformer = function (writeTransformer) {\n this\n .writeTransformers\n .push(writeTransformer);\n };\n /**\n * Items to objects\n *\n * @param items\n *\n * @returns {any[]}\n */\n Transformer.prototype.fromItems = function (items) {\n var objects = [];\n for (var i in items) {\n objects.push(this.fromItem(items[i]));\n }\n return objects;\n };\n /**\n * Item to object\n *\n * @param item\n *\n * @returns {any}\n */\n Transformer.prototype.fromItem = function (item) {\n for (var i in this.readTransformers) {\n var transformer = this.readTransformers[i];\n if (transformer.isValidItem(item)) {\n return transformer.fromItem(item);\n }\n }\n return item;\n };\n /**\n * Objects to items\n *\n * @param objects\n *\n * @returns {Item[]}\n */\n Transformer.prototype.toItems = function (objects) {\n var items = [];\n for (var i in objects) {\n var item = this.toItem(objects[i]);\n if (item instanceof Item_1.Item) {\n items.push(item);\n }\n }\n return items;\n };\n /**\n * Object to item\n *\n * @param object\n *\n * @returns {any}\n */\n Transformer.prototype.toItem = function (object) {\n for (var i in this.writeTransformers) {\n var transformer = this.writeTransformers[i];\n if (transformer.isValidObject(object)) {\n return transformer.toItem(object);\n }\n }\n return object;\n };\n /**\n * Objects to items\n *\n * @param objects\n *\n * @returns {ItemUUID[]}\n */\n Transformer.prototype.toItemUUIDs = function (objects) {\n var itemUUIDs = [];\n for (var i in objects) {\n var itemUUID = this.toItemUUID(objects[i]);\n if (itemUUID instanceof ItemUUID_1.ItemUUID) {\n itemUUIDs.push(itemUUID);\n }\n }\n return itemUUIDs;\n };\n /**\n * Object to item\n *\n * @param object\n *\n * @returns {any}\n */\n Transformer.prototype.toItemUUID = function (object) {\n for (var i in this.writeTransformers) {\n var transformer = this.writeTransformers[i];\n if (transformer.isValidObject(object)) {\n return transformer.toItemUUID(object);\n }\n }\n return object;\n };\n return Transformer;\n}());\nexports.Transformer = Transformer;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Result class\n */\nvar Synonym = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param words\n */\n function Synonym(words) {\n this.words = words;\n }\n /**\n * get words\n *\n * @return {string[]}\n */\n Synonym.prototype.getWords = function () {\n return this.words;\n };\n /**\n * Create by words\n *\n * @param words\n *\n * @return {Synonym}\n */\n Synonym.createbyWords = function (words) {\n return new Synonym(words);\n };\n /**\n * To array\n *\n * @return {{words: string[]}}\n */\n Synonym.prototype.toArray = function () {\n return {\n words: this.words\n };\n };\n /**\n * create from array\n *\n * @param array\n *\n * @returns {Synonym}\n */\n Synonym.createFromArray = function (array) {\n return new Synonym(array.words instanceof Object\n ? array.words\n : []);\n };\n /**\n * Expand\n *\n * @returns {string}\n */\n Synonym.prototype.expand = function () {\n return this.words.join(\",\");\n };\n return Synonym;\n}());\nexports.Synonym = Synonym;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Apisearch_1 = require(\"./Apisearch\");\nexports[\"default\"] = Apisearch_1[\"default\"];\ntslib_1.__exportStar(require(\"./Cache/InMemoryCache\"), exports);\ntslib_1.__exportStar(require(\"./Config/Config\"), exports);\ntslib_1.__exportStar(require(\"./Config/Synonym\"), exports);\ntslib_1.__exportStar(require(\"./Error/ConnectionError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ErrorWithMessage\"), exports);\ntslib_1.__exportStar(require(\"./Error/EventError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ForbiddenError\"), exports);\ntslib_1.__exportStar(require(\"./Error/InvalidFormatError\"), exports);\ntslib_1.__exportStar(require(\"./Error/InvalidTokenError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ResourceExistsError\"), exports);\ntslib_1.__exportStar(require(\"./Error/ResourceNotAvailableError\"), exports);\ntslib_1.__exportStar(require(\"./Error/UnsupportedContentTypeError\"), exports);\ntslib_1.__exportStar(require(\"./Geo/LocationRange\"), exports);\ntslib_1.__exportStar(require(\"./Http/AxiosClient\"), exports);\ntslib_1.__exportStar(require(\"./Http/Client\"), exports);\ntslib_1.__exportStar(require(\"./Http/HttpClient\"), exports);\ntslib_1.__exportStar(require(\"./Http/Response\"), exports);\ntslib_1.__exportStar(require(\"./Http/Retry\"), exports);\ntslib_1.__exportStar(require(\"./Http/RetryMap\"), exports);\ntslib_1.__exportStar(require(\"./Model/Changes\"), exports);\ntslib_1.__exportStar(require(\"./Model/Coordinate\"), exports);\ntslib_1.__exportStar(require(\"./Model/Item\"), exports);\ntslib_1.__exportStar(require(\"./Model/ItemUUID\"), exports);\ntslib_1.__exportStar(require(\"./Model/Metadata\"), exports);\ntslib_1.__exportStar(require(\"./Model/User\"), exports);\ntslib_1.__exportStar(require(\"./Query/Aggregation\"), exports);\ntslib_1.__exportStar(require(\"./Query/Filter\"), exports);\ntslib_1.__exportStar(require(\"./Query/Query\"), exports);\ntslib_1.__exportStar(require(\"./Query/Range\"), exports);\ntslib_1.__exportStar(require(\"./Query/ScoreStrategies\"), exports);\ntslib_1.__exportStar(require(\"./Query/ScoreStrategy\"), exports);\ntslib_1.__exportStar(require(\"./Query/SortBy\"), exports);\ntslib_1.__exportStar(require(\"./Repository/HttpRepository\"), exports);\ntslib_1.__exportStar(require(\"./Repository/Repository\"), exports);\ntslib_1.__exportStar(require(\"./Result/ResultAggregation\"), exports);\ntslib_1.__exportStar(require(\"./Result/ResultAggregations\"), exports);\ntslib_1.__exportStar(require(\"./Result/Counter\"), exports);\ntslib_1.__exportStar(require(\"./Result/Result\"), exports);\ntslib_1.__exportStar(require(\"./Transformer/Transformer\"), exports);\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar NoCache_1 = require(\"./Cache/NoCache\");\nvar AxiosClient_1 = require(\"./Http/AxiosClient\");\nvar RetryMap_1 = require(\"./Http/RetryMap\");\nvar Query_1 = require(\"./Query/Query\");\nvar Query_2 = require(\"./Query/Query\");\nvar Query_3 = require(\"./Query/Query\");\nvar SortBy_1 = require(\"./Query/SortBy\");\nvar HttpRepository_1 = require(\"./Repository/HttpRepository\");\nvar Result_1 = require(\"./Result/Result\");\nvar ResultAggregations_1 = require(\"./Result/ResultAggregations\");\nvar Transformer_1 = require(\"./Transformer/Transformer\");\n/**\n * Apisearch class\n */\nvar Apisearch = /** @class */ (function () {\n function Apisearch() {\n }\n /**\n * Constructor\n *\n * @param config\n *\n * @return {HttpRepository}\n */\n Apisearch.createRepository = function (config) {\n Apisearch.ensureRepositoryConfigIsValid(config);\n config.options = tslib_1.__assign({ api_version: \"v1\", cache: new NoCache_1.NoCache(), timeout: 5000, override_queries: true }, config.options);\n /**\n * Client\n */\n var httpClient = typeof config.options.http_client !== \"undefined\"\n ? config.options.http_client\n : new AxiosClient_1.AxiosClient(config.options.endpoint, config.options.api_version, config.options.timeout, new RetryMap_1.RetryMap(), config.options.override_queries, config.options.cache);\n return new HttpRepository_1.HttpRepository(httpClient, config.app_id, config.index_id, config.token, new Transformer_1.Transformer());\n };\n /**\n * Ensure the Repository configuration is valid\n *\n * @param config\n */\n Apisearch.ensureRepositoryConfigIsValid = function (config) {\n Apisearch.ensureIsDefined(config.app_id, \"app_id\");\n Apisearch.ensureIsDefined(config.index_id, \"index_id\");\n Apisearch.ensureIsDefined(config.token, \"token\");\n Apisearch.ensureIsDefined(config.options.endpoint, \"options.endpoint\");\n };\n /**\n * Ensure the value is not undefined\n *\n * @param param\n * @param name\n */\n Apisearch.ensureIsDefined = function (param, name) {\n if (typeof param === \"undefined\") {\n throw new TypeError(name + \" parameter must be defined.\");\n }\n };\n /**\n * Created located\n *\n * @param coordinate\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Apisearch.createQueryLocated = function (coordinate, queryText, page, size) {\n if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; }\n return Query_3.Query.createLocated(coordinate, queryText, page, size);\n };\n /**\n * Create\n *\n * @param queryText\n * @param page\n * @param size\n *\n * @returns {Query}\n */\n Apisearch.createQuery = function (queryText, page, size) {\n if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; }\n if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; }\n return Query_3.Query.create(queryText, page, size);\n };\n /**\n * Create match all\n *\n * @return {Query}\n */\n Apisearch.createQueryMatchAll = function () {\n return Query_3.Query.createMatchAll();\n };\n /**\n * Create by UUID\n *\n * @param uuid\n *\n * @return {Query}\n */\n Apisearch.createQueryByUUID = function (uuid) {\n return Query_3.Query.createByUUID(uuid);\n };\n /**\n * Create by UUIDs\n *\n * @param uuids\n *\n * @return {Query}\n */\n Apisearch.createQueryByUUIDs = function () {\n var uuids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uuids[_i] = arguments[_i];\n }\n return Query_3.Query.createByUUIDs.apply(Query_3.Query, uuids);\n };\n /**\n * Create empty result\n *\n * @return {Result}\n */\n Apisearch.createEmptyResult = function () {\n return Result_1.Result.create(Apisearch.createQueryMatchAll(), 0, 0, new ResultAggregations_1.ResultAggregations(0), [], []);\n };\n /**\n * Create empty sortby\n *\n * @return {SortBy}\n */\n Apisearch.createEmptySortBy = function () {\n return SortBy_1.SortBy.create();\n };\n return Apisearch;\n}());\nexports[\"default\"] = Apisearch;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Cache class\n */\nvar NoCache = /** @class */ (function () {\n function NoCache() {\n }\n /**\n * Set cache element\n *\n * @param key\n * @param value\n *\n * @returns {void}\n */\n NoCache.prototype.set = function (key, value) {\n // Empty\n };\n /**\n * Get element from cache\n *\n * @param key\n *\n * @returns {any}\n */\n NoCache.prototype.get = function (key) {\n return undefined;\n };\n /**\n * Deletes element from cache\n *\n * @param key\n */\n NoCache.prototype.del = function (key) {\n // Empty\n };\n /**\n * Clear cache\n */\n NoCache.prototype.clear = function () {\n // Empty\n };\n return NoCache;\n}());\nexports.NoCache = NoCache;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\nvar IndexUUID_1 = require(\"./IndexUUID\");\nvar AppUUID_1 = require(\"./AppUUID\");\n/**\n * Index class\n */\nvar Index = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param uuid\n * @param appUUID\n * @param isOK\n * @param docCount\n * @param size\n */\n function Index(uuid, appUUID, isOK, docCount, size) {\n if (isOK === void 0) { isOK = false; }\n if (docCount === void 0) { docCount = 0; }\n if (size === void 0) { size = '0kb'; }\n this.uuid = uuid;\n this.appUUID = appUUID;\n this.isOK = isOK;\n this.docCount = docCount;\n this.size = size;\n }\n /**\n * Get uuid\n *\n * @return {IndexUUID}\n */\n Index.prototype.getUUID = function () {\n return this.uuid;\n };\n /**\n * Get app id\n *\n * @return {AppUUID}\n */\n Index.prototype.getAppUUID = function () {\n return this.appUUID;\n };\n /**\n * Index is OK\n *\n * @return {boolean}\n */\n Index.prototype.isOk = function () {\n return this.isOK;\n };\n /**\n * Get doc count\n *\n * @return {number}\n */\n Index.prototype.getDocCount = function () {\n return this.docCount;\n };\n /**\n * get size\n *\n * @return {string}\n */\n Index.prototype.getSize = function () {\n return this.size;\n };\n /**\n * To array\n *\n * @returns {{id: string, attributes: {}}}\n */\n Index.prototype.toArray = function () {\n return {\n uuid: this.uuid.toArray(),\n app_id: this.appUUID.toArray(),\n is_ok: this.isOK,\n doc_count: this.docCount,\n size: this.size\n };\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @return User\n */\n Index.createFromArray = function (array) {\n if (typeof array.uuid == \"undefined\" ||\n typeof array.app_id == \"undefined\") {\n throw InvalidFormatError_1.InvalidFormatError.indexFormatNotValid();\n }\n return new Index(IndexUUID_1.IndexUUID.createFromArray(array.uuid), AppUUID_1.AppUUID.createFromArray(array.app_id), (typeof array.is_ok == \"undefined\" ? false : array.is_ok), (typeof array.doc_count == \"undefined\" ? 0 : array.doc_count), (typeof array.size == \"undefined\" ? '0kb' : array.size));\n };\n return Index;\n}());\nexports.Index = Index;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * IndexUUID class\n */\nvar IndexUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n */\n function IndexUUID(id) {\n if (id.indexOf('_') >= 0) {\n throw InvalidFormatError_1.InvalidFormatError.indexUUIDFormatNotValid();\n }\n this.id = id;\n }\n /**\n * Create by id\n *\n * @param id\n *\n * @returns {ItemUUID}\n */\n IndexUUID.createById = function (id) {\n return new IndexUUID(id);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n IndexUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n IndexUUID.prototype.toArray = function () {\n return {\n id: this.id\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n IndexUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new IndexUUID(array.id);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n IndexUUID.prototype.composedUUID = function () {\n return this.id;\n };\n return IndexUUID;\n}());\nexports.IndexUUID = IndexUUID;\n","\"use strict\";\nexports.__esModule = true;\nvar InvalidFormatError_1 = require(\"../Error/InvalidFormatError\");\n/**\n * AppUUID class\n */\nvar AppUUID = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param id\n */\n function AppUUID(id) {\n if (id.indexOf('_') >= 0) {\n throw InvalidFormatError_1.InvalidFormatError.appUUIDFormatNotValid();\n }\n this.id = id;\n }\n /**\n * Create by id\n *\n * @param id\n *\n * @returns {ItemUUID}\n */\n AppUUID.createById = function (id) {\n return new AppUUID(id);\n };\n /**\n * Return id\n *\n * @returns {string}\n */\n AppUUID.prototype.getId = function () {\n return this.id;\n };\n /**\n * To array\n *\n * @returns {{id: *, type: *}}\n */\n AppUUID.prototype.toArray = function () {\n return {\n id: this.id\n };\n };\n /**\n * Create from array\n *\n * @param array {{id:string, type:string}}\n *\n * @return {ItemUUID}\n */\n AppUUID.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n return new AppUUID(array.id);\n };\n /**\n * Compose unique id\n *\n * @returns {string}\n */\n AppUUID.prototype.composedUUID = function () {\n return this.id;\n };\n return AppUUID;\n}());\nexports.AppUUID = AppUUID;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\n/**\n * Cache class\n */\nvar InMemoryCache = /** @class */ (function () {\n /**\n * Constructor\n */\n function InMemoryCache() {\n this.cache = {};\n this.size = 0;\n this.cache = {};\n this.size = 0;\n }\n /**\n * Set cache element\n *\n * @param key\n * @param value\n *\n * @returns {void}\n */\n InMemoryCache.prototype.set = function (key, value) {\n var _a;\n this.cache = tslib_1.__assign({}, this.cache, (_a = {}, _a[key] = value, _a));\n this.size = this.size + 1;\n };\n /**\n * Get element from cache\n *\n * @param key\n *\n * @returns {any}\n */\n InMemoryCache.prototype.get = function (key) {\n return this.cache[key];\n };\n /**\n * Deletes element from cache\n *\n * @param key\n */\n InMemoryCache.prototype.del = function (key) {\n delete this.cache[key];\n };\n /**\n * Clear cache\n */\n InMemoryCache.prototype.clear = function () {\n this.cache = {};\n this.size = 0;\n };\n return InMemoryCache;\n}());\nexports.InMemoryCache = InMemoryCache;\n","\"use strict\";\nexports.__esModule = true;\nvar Synonym_1 = require(\"./Synonym\");\nexports.DEFAULT_SHARDS = 1;\nexports.DEFAULT_REPLICAS = 0;\n/**\n * Result class\n */\nvar Config = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param language\n * @param storeSearchableMetadata\n * @param shards\n * @param replicas\n */\n function Config(language, storeSearchableMetadata, shards, replicas) {\n if (language === void 0) { language = null; }\n if (storeSearchableMetadata === void 0) { storeSearchableMetadata = true; }\n if (shards === void 0) { shards = exports.DEFAULT_SHARDS; }\n if (replicas === void 0) { replicas = exports.DEFAULT_REPLICAS; }\n this.synonyms = [];\n this.language = language;\n this.storeSearchableMetadata = storeSearchableMetadata;\n this.shards = shards;\n this.replicas = replicas;\n }\n /**\n * Get language\n *\n * @return {string}\n */\n Config.prototype.getLanguage = function () {\n return this.language;\n };\n /**\n * Should searchable metadata be stored\n *\n * @return {boolean}\n */\n Config.prototype.shouldSearchableMetadataBeStored = function () {\n return this.storeSearchableMetadata;\n };\n /**\n * Add synonym\n *\n * @param synonym\n */\n Config.prototype.addSynonym = function (synonym) {\n this.synonyms.push(synonym);\n };\n /**\n * Get synonyms\n *\n * @return {Synonym[]}\n */\n Config.prototype.getSynonyms = function () {\n return this.synonyms;\n };\n /**\n * Get shards\n *\n * @return {number}\n */\n Config.prototype.getShards = function () {\n return this.shards;\n };\n /**\n * Get replicas\n *\n * @return {number}\n */\n Config.prototype.getReplicas = function () {\n return this.replicas;\n };\n /**\n * to array\n */\n Config.prototype.toArray = function () {\n return {\n language: this.language,\n store_searchable_metadata: this.storeSearchableMetadata,\n synonyms: this.synonyms.map(function (synonym) { return synonym.toArray(); }),\n shards: this.shards,\n replicas: this.replicas\n };\n };\n /**\n * Create from array\n */\n Config.createFromArray = function (array) {\n var config = new Config(array.language ? array.language : null, typeof array.store_searchable_metadata == \"boolean\"\n ? array.store_searchable_metadata\n : true);\n if (array.synonyms instanceof Array &&\n array.synonyms.length > 0) {\n config.synonyms = array.synonyms.map(function (synonym) { return Synonym_1.Synonym.createFromArray(synonym); });\n }\n config.shards = typeof array.shards == \"number\"\n ? array.shards\n : exports.DEFAULT_SHARDS;\n config.replicas = typeof array.replicas == \"number\"\n ? array.replicas\n : exports.DEFAULT_REPLICAS;\n return config;\n };\n return Config;\n}());\nexports.Config = Config;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * EventError\n */\nvar EventError = /** @class */ (function (_super) {\n tslib_1.__extends(EventError, _super);\n function EventError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n EventError.throwEndpointNotAvailable = function () {\n return new EventError(\"Endpoint not available\");\n };\n return EventError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.EventError = EventError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Forbidden Error\n */\nvar ForbiddenError = /** @class */ (function (_super) {\n tslib_1.__extends(ForbiddenError, _super);\n function ForbiddenError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n ForbiddenError.getTransportableHTTPError = function () {\n return 403;\n };\n /**\n * App id is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createAppIdIsRequiredException = function () {\n return new ForbiddenError(\"AppId query parameter MUST be defined with a valid value\");\n };\n /**\n * Index id is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createIndexIsRequiredException = function () {\n return new ForbiddenError(\"Index query parameter MUST be defined with a valid value\");\n };\n /**\n * Token is required\n *\n * @return {ForbiddenError}\n */\n ForbiddenError.createTokenIsRequiredException = function () {\n return new ForbiddenError(\"Token query parameter MUST be defined with a valid value\");\n };\n return ForbiddenError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.ForbiddenError = ForbiddenError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar ErrorWithMessage_1 = require(\"./ErrorWithMessage\");\n/**\n * Unsupported content type error\n */\nvar UnsupportedContentTypeError = /** @class */ (function (_super) {\n tslib_1.__extends(UnsupportedContentTypeError, _super);\n function UnsupportedContentTypeError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get transportable http error\n *\n * @return {number}\n */\n UnsupportedContentTypeError.getTransportableHTTPError = function () {\n return 415;\n };\n /**\n * Unsupported content type\n *\n * @return {InvalidFormatError}\n */\n UnsupportedContentTypeError.createUnsupportedContentTypeException = function () {\n return new UnsupportedContentTypeError(\"This content type is not accepted. Please use application/json\");\n };\n return UnsupportedContentTypeError;\n}(ErrorWithMessage_1.ErrorWithMessage));\nexports.UnsupportedContentTypeError = UnsupportedContentTypeError;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar Coordinate_1 = require(\"../Model/Coordinate\");\n/**\n * Abstract Location Range class\n */\nvar LocationRange = /** @class */ (function () {\n function LocationRange() {\n }\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n LocationRange.fromFilterObject = function (object) {\n throw TypeError(\"Method not valid\");\n };\n /**\n * to array\n */\n LocationRange.prototype.toArray = function () {\n return {\n type: this.getName(),\n data: this.toFilterObject()\n };\n };\n /**\n * Create from array\n *\n * @param array\n */\n LocationRange.createFromArray = function (array) {\n if (array.type == \"CoordinateAndDistance\") {\n return CoordinateAndDistance.fromFilterObject(array.data);\n }\n if (array.type == \"Polygon\") {\n return Polygon.fromFilterObject(array.data);\n }\n if (array.type == \"Square\") {\n return Square.fromFilterObject(array.data);\n }\n };\n return LocationRange;\n}());\nexports.LocationRange = LocationRange;\n/**\n * CoordinateAndDistance\n */\nvar CoordinateAndDistance = /** @class */ (function (_super) {\n tslib_1.__extends(CoordinateAndDistance, _super);\n /**\n * Constructor\n *\n * @param coordinate\n * @param distance\n */\n function CoordinateAndDistance(coordinate, distance) {\n var _this = _super.call(this) || this;\n _this.coordinate = coordinate;\n _this.distance = distance;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{}}}\n */\n CoordinateAndDistance.prototype.toFilterObject = function () {\n return {\n coordinate: this.coordinate.toArray(),\n distance: this.distance\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n CoordinateAndDistance.prototype.getName = function () {\n return \"CoordinateAndDistance\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n CoordinateAndDistance.fromFilterObject = function (object) {\n return new CoordinateAndDistance(Coordinate_1.Coordinate.createFromArray(object.coordinate), object.distance);\n };\n return CoordinateAndDistance;\n}(LocationRange));\nexports.CoordinateAndDistance = CoordinateAndDistance;\n/**\n * Polygon\n */\nvar Polygon = /** @class */ (function (_super) {\n tslib_1.__extends(Polygon, _super);\n /**\n * Constructor\n *\n * @param coordinates\n */\n function Polygon(coordinates) {\n var _this = _super.call(this) || this;\n if (coordinates.length < 3) {\n throw new Error(\"A polygon needs more than two coordinates.\");\n }\n _this.coordinates = coordinates;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{coordinates: {lat:number, lon:number}[]}}\n */\n Polygon.prototype.toFilterObject = function () {\n var coordinates = [];\n for (var i in this.coordinates) {\n coordinates.push(this.coordinates[i].toArray());\n }\n return {\n coordinates: coordinates\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n Polygon.prototype.getName = function () {\n return \"Polygon\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {Polygon}\n */\n Polygon.fromFilterObject = function (object) {\n var coordinates = [];\n for (var i in object.coordinates) {\n coordinates.push(Coordinate_1.Coordinate.createFromArray(object.coordinates[i]));\n }\n return new Polygon(coordinates);\n };\n return Polygon;\n}(LocationRange));\nexports.Polygon = Polygon;\n/**\n * Square\n */\nvar Square = /** @class */ (function (_super) {\n tslib_1.__extends(Square, _super);\n /**\n * Constructor\n *\n * @param topLeftCoordinate\n * @param bottomRightCoordinate\n */\n function Square(topLeftCoordinate, bottomRightCoordinate) {\n var _this = _super.call(this) || this;\n _this.topLeftCoordinate = topLeftCoordinate;\n _this.bottomRightCoordinate = bottomRightCoordinate;\n return _this;\n }\n /**\n * To filter object\n *\n * @return {{}}}\n */\n Square.prototype.toFilterObject = function () {\n return {\n top_left: this.topLeftCoordinate.toArray(),\n bottom_right: this.bottomRightCoordinate.toArray()\n };\n };\n /**\n * Get name\n *\n * @return {string}\n */\n Square.prototype.getName = function () {\n return \"Square\";\n };\n /**\n * From filter object\n *\n * @param object\n *\n * @return {LocationRange}\n */\n Square.fromFilterObject = function (object) {\n return new Square(Coordinate_1.Coordinate.createFromArray(object.top_left), Coordinate_1.Coordinate.createFromArray(object.bottom_right));\n };\n return Square;\n}(LocationRange));\nexports.Square = Square;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Http class\n */\nvar HttpClient = /** @class */ (function () {\n function HttpClient() {\n }\n return HttpClient;\n}());\nexports.HttpClient = HttpClient;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * filter constants\n */\nexports.TYPE_VALUE = 1;\nexports.TYPE_LITERAL = 4;\nexports.TYPE_ARRAY_ELEMENT_UPDATE = 8;\nexports.TYPE_ARRAY_ELEMENT_ADD = 16;\nexports.TYPE_ARRAY_ELEMENT_DELETE = 32;\nexports.TYPE_ARRAY_EXPECTS_ELEMENT = 24;\nexports.TYPE_ARRAY = 56;\n/**\n * Changes Type cast\n * @param Changes\n */\nvar Changes = /** @class */ (function () {\n function Changes() {\n /**\n * Changes\n *\n * @type {Array}\n */\n this.changes = [];\n }\n /**\n * Add new change\n *\n * @param field\n * @param value\n * @param type\n */\n Changes.prototype.addChange = function (field, value, type) {\n if (type === void 0) { type = exports.TYPE_VALUE; }\n this.changes.push({\n field: field,\n type: type,\n value: value\n });\n };\n /**\n * Update element from list\n *\n * @param field\n * @param condition\n * @param value\n * @param type\n */\n Changes.prototype.updateElementFromList = function (field, condition, value, type) {\n this.changes.push({\n field: field,\n type: type | exports.TYPE_ARRAY_ELEMENT_UPDATE,\n condition: condition,\n value: value\n });\n };\n /**\n * Add element in list\n *\n * @param field\n * @param value\n * @param type\n */\n Changes.prototype.addElementInList = function (field, value, type) {\n this.changes.push({\n field: field,\n type: type | exports.TYPE_ARRAY_ELEMENT_ADD,\n value: value\n });\n };\n /**\n * Delete element from list\n *\n * @param field\n * @param condition\n */\n Changes.prototype.deleteElementFromList = function (field, condition) {\n this.changes.push({\n field: field,\n type: exports.TYPE_ARRAY_ELEMENT_DELETE,\n condition: condition\n });\n };\n /**\n * Get changes\n *\n * @returns {[]}\n */\n Changes.prototype.getChanges = function () {\n return this.changes;\n };\n /**\n * Create\n *\n * @returns {Changes}\n */\n Changes.create = function () {\n return new Changes();\n };\n /**\n * To array\n *\n * @returns {[]}\n */\n Changes.prototype.toArray = function () {\n return JSON.parse(JSON.stringify(this.changes));\n };\n /**\n * Create from array\n *\n * @param array\n *\n * @returns {Changes}\n */\n Changes.createFromArray = function (array) {\n array = JSON.parse(JSON.stringify(array));\n var changes = Changes.create();\n changes.changes = array;\n return changes;\n };\n return Changes;\n}());\nexports.Changes = Changes;\n","\"use strict\";\nexports.__esModule = true;\n/**\n * Aggregation constants\n */\nexports.RANGE_ZERO = 0;\nexports.RANGE_INFINITE = -1;\nexports.RANGE_SEPARATOR = \"..\";\n/**\n * Filter class\n */\nvar Range = /** @class */ (function () {\n function Range() {\n }\n /**\n * Strong to array\n *\n * @param string\n *\n * @returns {[number, number]}\n */\n Range.stringToArray = function (string) {\n var parts = string.split(exports.RANGE_SEPARATOR);\n var from = parts[0];\n var to = parts[1];\n var finalFrom = exports.RANGE_ZERO;\n var finalTo = exports.RANGE_INFINITE;\n if (from != \"\") {\n finalFrom = parseInt(from);\n }\n if (to != \"\") {\n finalTo = parseInt(to);\n }\n return [finalFrom, finalTo];\n };\n /**\n * Array to string\n *\n * @param values\n *\n * @return {string}\n */\n Range.arrayToString = function (values) {\n var finalValues = [\"\", \"\"];\n if (values[0] != exports.RANGE_ZERO) {\n finalValues[0] = String(values[0]);\n }\n if (values[1] != exports.RANGE_INFINITE) {\n finalValues[1] = String(values[1]);\n }\n return finalValues.join(exports.RANGE_SEPARATOR);\n };\n /**\n * Create ranges\n *\n * @param from\n * @param to\n * @param incremental\n */\n Range.createRanges = function (from, to, incremental) {\n var ranges = [];\n var nextTo;\n while (from < to) {\n nextTo = from + incremental;\n ranges.push(from + exports.RANGE_SEPARATOR + nextTo);\n from = nextTo;\n }\n return ranges;\n };\n return Range;\n}());\nexports.Range = Range;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/Query/Query.d.ts b/lib/Query/Query.d.ts index 60ed480..6f0d652 100644 --- a/lib/Query/Query.d.ts +++ b/lib/Query/Query.d.ts @@ -9,10 +9,8 @@ import { SortBy } from "./SortBy"; /** * Query constants */ -export declare const QUERY_DEFAULT_FROM = 0; export declare const QUERY_DEFAULT_PAGE = 1; export declare const QUERY_DEFAULT_SIZE = 10; -export declare const QUERY_INFINITE_SIZE = 1000; export declare const NO_MIN_SCORE = 0; /** * Query class @@ -37,6 +35,8 @@ export declare class Query { private fuzziness; private minScore; private user; + private metadata; + private subqueries; /** * Constructor * @@ -86,6 +86,14 @@ export declare class Query { * @return {Query} */ static createByUUIDs(...uuids: ItemUUID[]): Query; + /** + * Create by UUIDs + * + * @param queries + * + * @return {Query} + */ + static createMultiquery(queries: Object): Query; /** * set fields * @@ -532,6 +540,36 @@ export declare class Query { * @return {User} */ getUser(): User; + /** + * set metadata value + * + * @param name + * @param value + * + * @return Query + */ + setMetadataValue(name: string, value: any): Query; + /** + * Get metadata + * + * @return any + */ + getMetadata(): any; + /** + * Add subquery + * + * @param name + * @param subquery + * + * @return Query + */ + addSubquery(name: string, subquery: Query): Query; + /** + * Get subqueries + * + * @return Object + */ + getSubqueries(): Object; /** * To array * diff --git a/lib/Query/Query.js b/lib/Query/Query.js index fc41817..13c7f18 100644 --- a/lib/Query/Query.js +++ b/lib/Query/Query.js @@ -16,10 +16,8 @@ var SortBy_1 = require("./SortBy"); /** * Query constants */ -exports.QUERY_DEFAULT_FROM = 0; exports.QUERY_DEFAULT_PAGE = 1; exports.QUERY_DEFAULT_SIZE = 10; -exports.QUERY_INFINITE_SIZE = 1000; exports.NO_MIN_SCORE = 0.0; /** * Query class @@ -42,6 +40,8 @@ var Query = /** @class */ (function () { this.highlightsEnabled = false; this.filterFields = []; this.minScore = exports.NO_MIN_SCORE; + this.metadata = {}; + this.subqueries = {}; this.sortByInstance = SortBy_1.SortBy.create(); this.filters._query = Filter_1.Filter.create("", [queryText], 0, Filter_3.FILTER_TYPE_QUERY); } @@ -121,6 +121,18 @@ var Query = /** @class */ (function () { query.filters._id = Filter_1.Filter.create("_id", ids, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD); return query; }; + /** + * Create by UUIDs + * + * @param queries + * + * @return {Query} + */ + Query.createMultiquery = function (queries) { + var query = Query.createMatchAll(); + query.subqueries = queries; + return query; + }; /** * set fields * @@ -841,6 +853,46 @@ var Query = /** @class */ (function () { Query.prototype.getUser = function () { return this.user; }; + /** + * set metadata value + * + * @param name + * @param value + * + * @return Query + */ + Query.prototype.setMetadataValue = function (name, value) { + this.metadata[name] = value; + return this; + }; + /** + * Get metadata + * + * @return any + */ + Query.prototype.getMetadata = function () { + return this.metadata; + }; + /** + * Add subquery + * + * @param name + * @param subquery + * + * @return Query + */ + Query.prototype.addSubquery = function (name, subquery) { + this.subqueries[name] = subquery; + return this; + }; + /** + * Get subqueries + * + * @return Object + */ + Query.prototype.getSubqueries = function () { + return this.subqueries; + }; /** * To array * @@ -966,6 +1018,15 @@ var Query = /** @class */ (function () { array.user = userAsArray; } } + array.metadata = this.metadata; + if (this.subqueries instanceof Object && + Object.keys(this.subqueries).length) { + array.subqueries = {}; + for (var i in this.subqueries) { + var subquery = this.subqueries[i]; + array.subqueries[i] = subquery.toArray(); + } + } /** * items promoted */ @@ -1060,9 +1121,21 @@ var Query = /** @class */ (function () { .itemsPromoted .push(ItemUUID_1.ItemUUID.createFromArray(itemsPromotedAsArray[i])); } + /** + * Subqueries + */ + var subqueriesAsArray = typeof array.subqueries === typeof {} + ? array.subqueries + : {}; + for (var i in subqueriesAsArray) { + query.subqueries[i] = Query.createFromArray(subqueriesAsArray[i]); + } /** * Filter fields */ + query.metadata = typeof array.metadata === typeof {} + ? array.metadata + : {}; query.filterFields = array.filter_fields instanceof Array ? array.filter_fields : []; diff --git a/lib/Result/Result.d.ts b/lib/Result/Result.d.ts index 8185342..471876a 100644 --- a/lib/Result/Result.d.ts +++ b/lib/Result/Result.d.ts @@ -1,6 +1,6 @@ import { Item } from "../Model/Item"; import { Query } from "../Query/Query"; -import { ResultAggregation } from "../Result/ResultAggregation"; +import { ResultAggregation } from "./ResultAggregation"; import { ResultAggregations } from "./ResultAggregations"; /** * Result class @@ -13,6 +13,7 @@ export declare class Result { private totalItems; private totalHits; private itemsGroupedByTypeCache; + private subresults; /** * Constructor * @@ -34,6 +35,15 @@ export declare class Result { * @returns {Result} */ static create(query: Query, totalItems: number, totalHits: number, aggregations: ResultAggregations, suggests: string[], items: Item[]): Result; + /** + * Create multi results + * + * @param query + * @param subresults + * + * @returns {Result} + */ + static createMultiresults(query: Query, subresults: Object): Result; /** * Add item * @@ -130,6 +140,12 @@ export declare class Result { * @return {number} */ getTotalHits(): number; + /** + * Get subresults + * + * @return Object + */ + getSubresults(): Object; /** * to array * diff --git a/lib/Result/Result.js b/lib/Result/Result.js index db774b4..da58f44 100644 --- a/lib/Result/Result.js +++ b/lib/Result/Result.js @@ -17,6 +17,7 @@ var Result = /** @class */ (function () { function Result(query, totalItems, totalHits) { this.items = []; this.suggests = []; + this.subresults = {}; this.query = query; this.totalItems = totalItems; this.totalHits = totalHits; @@ -40,6 +41,19 @@ var Result = /** @class */ (function () { result.items = items; return result; }; + /** + * Create multi results + * + * @param query + * @param subresults + * + * @returns {Result} + */ + Result.createMultiresults = function (query, subresults) { + var result = new Result(query, 0, 0); + result.subresults = subresults; + return result; + }; /** * Add item * @@ -190,13 +204,21 @@ var Result = /** @class */ (function () { Result.prototype.getTotalHits = function () { return this.totalHits; }; + /** + * Get subresults + * + * @return Object + */ + Result.prototype.getSubresults = function () { + return this.subresults; + }; /** * to array * * @return {{query: any, total_items: number, total_hits: number, items:any[], aggregations: any, suggests: string[]}} */ Result.prototype.toArray = function () { - return { + var array = { query: this.query.toArray(), total_items: this.totalItems, total_hits: this.totalHits, @@ -206,6 +228,15 @@ var Result = /** @class */ (function () { : this.aggregations.toArray(), suggests: this.suggests }; + if (this.subresults instanceof Object && + Object.keys(this.subresults).length) { + array.subresults = {}; + for (var i in this.subresults) { + var subresult = this.subresults[i]; + array.subresults[i] = subresult.toArray(); + } + } + return array; }; /** * Create from array @@ -215,7 +246,7 @@ var Result = /** @class */ (function () { * @return {Result} */ Result.createFromArray = function (array) { - return Result.create(Query_1.Query.createFromArray(array.query), array.total_items + var result = Result.create(Query_1.Query.createFromArray(array.query), array.total_items ? array.total_items : 0, array.total_hits ? array.total_hits @@ -226,6 +257,16 @@ var Result = /** @class */ (function () { : null, array.items instanceof Array ? array.items.map(function (itemAsArray) { return Item_1.Item.createFromArray(itemAsArray); }) : []); + /** + * Subqueries + */ + var subresultsAsArray = typeof array.subresults === typeof {} + ? array.subresults + : {}; + for (var i in subresultsAsArray) { + result.subresults[i] = Query_1.Query.createFromArray(subresultsAsArray[i]); + } + return result; }; return Result; }()); diff --git a/src/Query/Query.ts b/src/Query/Query.ts index 9f780a0..f5b9894 100644 --- a/src/Query/Query.ts +++ b/src/Query/Query.ts @@ -28,10 +28,8 @@ import {SortBy} from "./SortBy"; /** * Query constants */ -export const QUERY_DEFAULT_FROM = 0; export const QUERY_DEFAULT_PAGE = 1; export const QUERY_DEFAULT_SIZE = 10; -export const QUERY_INFINITE_SIZE = 1000; export const NO_MIN_SCORE = 0.0; /** @@ -58,6 +56,8 @@ export class Query { private fuzziness: any; private minScore: number = NO_MIN_SCORE; private user: User; + private metadata: any = {}; + private subqueries: any = {}; /** * Constructor @@ -171,6 +171,20 @@ export class Query { return query; } + /** + * Create by UUIDs + * + * @param queries + * + * @return {Query} + */ + public static createMultiquery(queries: Object): Query { + const query = Query.createMatchAll(); + query.subqueries = queries; + + return query; + } + /** * set fields * @@ -1126,6 +1140,60 @@ export class Query { return this.user; } + /** + * set metadata value + * + * @param name + * @param value + * + * @return Query + */ + public setMetadataValue( + name: string, + value + ) : Query { + this.metadata[name] = value; + + return this; + } + + /** + * Get metadata + * + * @return any + */ + public getMetadata() : any { + return this.metadata; + } + + /** + * Add subquery + * + * @param name + * @param subquery + * + * @return Query + */ + public addSubquery( + name: string, + subquery: Query + ) : Query + { + this.subqueries[name] = subquery; + + return this; + } + + /** + * Get subqueries + * + * @return Object + */ + public getSubqueries() : Object + { + return this.subqueries; + } + /** * To array * @@ -1278,6 +1346,19 @@ export class Query { } } + array.metadata = this.metadata; + + if ( + this.subqueries instanceof Object && + Object.keys(this.subqueries).length + ) { + array.subqueries = {}; + for (const i in this.subqueries) { + const subquery = this.subqueries[i]; + array.subqueries[i] = subquery.toArray(); + } + } + /** * items promoted */ @@ -1400,9 +1481,24 @@ export class Query { .push(ItemUUID.createFromArray(itemsPromotedAsArray[i])); } + /** + * Subqueries + */ + const subqueriesAsArray = typeof array.subqueries === typeof {} + ? array.subqueries + : {}; + + for (const i in subqueriesAsArray) { + query.subqueries[i] = Query.createFromArray(subqueriesAsArray[i]); + } + /** * Filter fields */ + query.metadata = typeof array.metadata === typeof {} + ? array.metadata + : {}; + query.filterFields = array.filter_fields instanceof Array ? array.filter_fields : []; diff --git a/src/Result/Result.ts b/src/Result/Result.ts index 513ee6f..a0aa6d4 100644 --- a/src/Result/Result.ts +++ b/src/Result/Result.ts @@ -1,6 +1,6 @@ import {Item} from "../Model/Item"; import {Query} from "../Query/Query"; -import {ResultAggregation} from "../Result/ResultAggregation"; +import {ResultAggregation} from "./ResultAggregation"; import {ResultAggregations} from "./ResultAggregations"; /** * Result class @@ -14,6 +14,7 @@ export class Result { private totalItems: number; private totalHits: number; private itemsGroupedByTypeCache: any; + private subresults: any = {}; /** * Constructor @@ -55,7 +56,7 @@ export class Result { const result = new Result( query, totalItems, - totalHits, + totalHits ); result.aggregations = aggregations; @@ -65,6 +66,24 @@ export class Result { return result; } + /** + * Create multi results + * + * @param query + * @param subresults + * + * @returns {Result} + */ + public static createMultiresults( + query: Query, + subresults: Object + ): Result { + const result = new Result(query, 0, 0); + result.subresults = subresults; + + return result; + } + /** * Add item * @@ -238,13 +257,23 @@ export class Result { return this.totalHits; } + /** + * Get subresults + * + * @return Object + */ + public getSubresults() : Object + { + return this.subresults; + } + /** * to array * * @return {{query: any, total_items: number, total_hits: number, items:any[], aggregations: any, suggests: string[]}} */ public toArray(): any { - return { + const array: any = { query: this.query.toArray(), total_items: this.totalItems, total_hits: this.totalHits, @@ -254,6 +283,19 @@ export class Result { : this.aggregations.toArray(), suggests: this.suggests, }; + + if ( + this.subresults instanceof Object && + Object.keys(this.subresults).length + ) { + array.subresults = {}; + for (const i in this.subresults) { + const subresult = this.subresults[i]; + array.subresults[i] = subresult.toArray(); + } + } + + return array; } /** @@ -264,7 +306,7 @@ export class Result { * @return {Result} */ public static createFromArray(array: any): Result { - return Result.create( + const result: any = Result.create( Query.createFromArray(array.query), array.total_items ? array.total_items @@ -282,5 +324,18 @@ export class Result { ? array.items.map((itemAsArray) => Item.createFromArray(itemAsArray)) : [], ); + + /** + * Subqueries + */ + const subresultsAsArray = typeof array.subresults === typeof {} + ? array.subresults + : {}; + + for (const i in subresultsAsArray) { + result.subresults[i] = Query.createFromArray(subresultsAsArray[i]); + } + + return result; } } diff --git a/test/Query/Query.test.ts b/test/Query/Query.test.ts index 4379a6b..576dcc8 100644 --- a/test/Query/Query.test.ts +++ b/test/Query/Query.test.ts @@ -509,4 +509,42 @@ describe('Query()', () => { expect(query.getScoreStrategies()).to.be.instanceof(ScoreStrategies); }); }); + + describe('-> Test metadata', () => { + it('should work properly', () => { + let query = Query.createMatchAll() + .setMetadataValue('a', 'a1') + .setMetadataValue('b', ['b1', 'b2']); + + expect(query.getMetadata()).to.be.deep.equal({ + 'a': 'a1', + 'b': ['b1', 'b2'] + }); + query = Query.createFromArray(JSON.parse(JSON.stringify(query.toArray()))); + expect(query.getMetadata()).to.be.deep.equal({ + 'a': 'a1', + 'b': ['b1', 'b2'] + }); + }); + }); + + describe('-> Test multiquery', () => { + it('should work properly', () => { + let query = Query.createMatchAll() + .addSubquery('sub1', Query.create('sub1')) + .addSubquery('sub2', Query.create('sub2')) + .addSubquery('sub3', Query.create('sub3')); + + expect(Object.keys(query.getSubqueries()).length).to.be.equal(3); + query = Query.createFromArray(JSON.parse(JSON.stringify(query.toArray()))); + expect(Object.keys(query.getSubqueries()).length).to.be.equal(3); + + query = Query.createMultiquery({ + 'sub1': Query.create('sub1'), + 'sub2': Query.create('sub2'), + 'sub3': Query.create('sub3') + }); + expect(Object.keys(query.getSubqueries()).length).to.be.equal(3); + }); + }); }); diff --git a/test/Result/Result.test.ts b/test/Result/Result.test.ts index b49865d..9e14757 100644 --- a/test/Result/Result.test.ts +++ b/test/Result/Result.test.ts @@ -157,4 +157,21 @@ describe('Result/', () => { expect(result.getFirstItem().getType()).to.be.equal('product'); }); }); + + + + describe('-> Test multiresult', () => { + it('should work properly', () => { + const query = Query.createMatchAll(); + let result = Result.createMultiresults(query, { + 'res1': Query.create('sub1'), + 'res2': Query.create('sub2'), + 'res3': Query.create('sub3'), + }); + + expect(Object.keys(result.getSubresults()).length).to.be.equal(3); + result = Result.createFromArray(JSON.parse(JSON.stringify(result.toArray()))); + expect(Object.keys(result.getSubresults()).length).to.be.equal(3); + }); + }); });