Socket
Socket
Sign inDemoInstall

typeorm-paginator

Package Overview
Dependencies
1
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.4.0 to 0.5.0

lib/utils/normalizeOrderBy.d.ts

16

lib/cursor-paginator.d.ts
import { SelectQueryBuilder, ObjectType } from 'typeorm';
import { CursorPagination, Cursor, OrderBy, ColumnNameMap, CursorTransformer, Nullable, Take } from './interfaces/paginator';
export interface CursorPaginatorParams<TEntity> {
orderBy: OrderBy<TEntity> | OrderBy<TEntity>[];
columnNames?: ColumnNameMap<TEntity> | null;
import { CursorPagination, Cursor, OrderBy, CursorTransformer, Nullable, Take } from './interfaces/paginator';
export interface CursorPaginatorParams<TEntity, TColumnNames extends Record<string, string>> {
orderBy: OrderBy<TEntity & TColumnNames> | OrderBy<TEntity & TColumnNames>[];
columnNames?: TColumnNames | null;
take?: Nullable<Take> | number | null;

@@ -14,9 +14,9 @@ transformer?: CursorTransformer<TEntity> | null;

}
export declare class CursorPaginator<TEntity> {
export declare class CursorPaginator<TEntity, TColumnNames extends Record<string, string>> {
entity: ObjectType<TEntity>;
orders: [keyof TEntity, boolean][];
columnNames: ColumnNameMap<TEntity>;
orders: [string, boolean][];
columnNames: Record<string, string>;
takeOptions: Take;
transformer: CursorTransformer<TEntity>;
constructor(entity: ObjectType<TEntity>, { orderBy, columnNames, take, transformer, }: CursorPaginatorParams<TEntity>);
constructor(entity: ObjectType<TEntity>, { orderBy, columnNames, take, transformer, }: CursorPaginatorParams<TEntity, TColumnNames>);
paginate(qb: SelectQueryBuilder<TEntity>, params?: CursorPaginatorPaginateParams): Promise<CursorPagination<TEntity>>;

@@ -23,0 +23,0 @@ _applyWhereQuery(qb: SelectQueryBuilder<TEntity>, cursor: Cursor<TEntity>, isNext: boolean): void;

@@ -10,2 +10,4 @@ "use strict";

var _normalizeOrderBy = require("./utils/normalizeOrderBy");
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

@@ -32,8 +34,3 @@

for (const order of Array.isArray(orderBy) ? orderBy : [orderBy]) {
for (const [key, value] of Object.entries(order)) {
this.orders.push([key, value]);
}
}
this.orders = (0, _normalizeOrderBy.normalizeOrderBy)(orderBy);
this.columnNames = columnNames !== null && columnNames !== void 0 ? columnNames : {};

@@ -149,2 +146,2 @@ this.takeOptions = typeof take === 'number' ? {

exports.CursorPaginator = CursorPaginator;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jdXJzb3ItcGFnaW5hdG9yLnRzIl0sIm5hbWVzIjpbIkN1cnNvclBhZ2luYXRvciIsImNvbnN0cnVjdG9yIiwiZW50aXR5Iiwib3JkZXJCeSIsImNvbHVtbk5hbWVzIiwidGFrZSIsInRyYW5zZm9ybWVyIiwib3JkZXIiLCJBcnJheSIsImlzQXJyYXkiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJvcmRlcnMiLCJwdXNoIiwidGFrZU9wdGlvbnMiLCJkZWZhdWx0IiwibWluIiwibWF4IiwiSW5maW5pdHkiLCJNYXRoIiwiQmFzZTY0VHJhbnNmb3JtZXIiLCJwYWdpbmF0ZSIsInFiIiwicGFyYW1zIiwicHJldkN1cnNvciIsIl9hcHBseVdoZXJlUXVlcnkiLCJwYXJzZSIsImFuZFdoZXJlIiwiYWRkT3JkZXJCeSIsImFsaWFzIiwiaGFzUHJldiIsIm5vZGVzIiwiY2xvbmUiLCJnZXRNYW55IiwidGhlbiIsImxlbmd0aCIsInNsaWNlIiwicmV2ZXJzZSIsImhhc05leHQiLCJzdHJpbmdpZnkiLCJfY3JlYXRlQ3Vyc29yIiwibmV4dEN1cnNvciIsImN1cnNvciIsImlzTmV4dCIsIm1ldGFkYXRhIiwiZXhwcmVzc2lvbk1hcCIsIm1haW5BbGlhcyIsInF1ZXJ5UHJlZml4IiwicXVlcnlQYXJ0cyIsInF1ZXJ5UGFyYW1zIiwiYXNjIiwiY29sdW1uTmFtZSIsImNvbHVtbiIsImZpbmRDb2x1bW5XaXRoUHJvcGVydHlQYXRoIiwiY29ubmVjdGlvbiIsImRyaXZlciIsInByZXBhcmVQZXJzaXN0ZW50VmFsdWUiLCJqb2luIiwibm9kZSIsIl8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQTs7OztBQWdCTyxNQUFNQSxlQUFOLENBQStCO0FBT3BDQyxFQUFBQSxXQUFXLENBQ0ZDLE1BREUsRUFFVDtBQUNFQyxJQUFBQSxPQURGO0FBRUVDLElBQUFBLFdBRkY7QUFHRUMsSUFBQUEsSUFIRjtBQUlFQyxJQUFBQTtBQUpGLEdBRlMsRUFRVDtB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QztBQUM1QyxVQUFNaEIsTUFBTSxHQUFHLEVBQWY7O0FBQ0EsU0FBSyxNQUFNLENBQUNsQyxHQUFELEVBQU1tRCxDQUFOLENBQVgsSUFBdUIsS0FBSy9DLE1BQTVCLEVBQW9DO0FBQ2xDOEIsTUFBQUEsTUFBTSxDQUFDbEMsR0FBRCxDQUFOLEdBQWNrRCxJQUFJLENBQUNsRCxHQUFELENBQWxCO0FBQ0Q7O0FBQ0QsV0FBT2tDLE1BQVA7QUFDRDs7QUFySG1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0UXVlcnlCdWlsZGVyLCBPYmplY3RUeXBlIH0gZnJvbSAndHlwZW9ybSdcblxuaW1wb3J0IHsgQ3Vyc29yUGFnaW5hdGlvbiwgQ3Vyc29yLCBPcmRlckJ5LCBDb2x1bW5OYW1lTWFwLCBDdXJzb3JUcmFuc2Zvcm1lciwgTnVsbGFibGUsIFRha2UgfSBmcm9tICcuL2ludGVyZmFjZXMvcGFnaW5hdG9yJ1xuaW1wb3J0IHsgQmFzZTY0VHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9iYXNlNjQtdHJhbnNmb3JtZXInXG5cblxuZXhwb3J0IGludGVyZmFjZSBDdXJzb3JQYWdpbmF0b3JQYXJhbXM8VEVudGl0eT4ge1xuICBvcmRlckJ5OiBPcmRlckJ5PFRFbnRpdHk+IHwgT3JkZXJCeTxURW50aXR5PltdXG4gIGNvbHVtbk5hbWVzPzogQ29sdW1uTmFtZU1hcDxURW50aXR5PiB8IG51bGxcbiAgdGFrZT86IE51bGxhYmxlPFRha2U+IHwgbnVtYmVyIHwgbnVsbFxuICB0cmFuc2Zvcm1lcj86IEN1cnNvclRyYW5zZm9ybWVyPFRFbnRpdHk+IHwgbnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnNvclBhZ2luYXRvclBhZ2luYXRlUGFyYW1zIHtcbiAgcHJldkN1cnNvcj86IHN0cmluZyB8IG51bGxcbiAgbmV4dEN1cnNvcj86IHN0cmluZyB8IG51bGxcbiAgdGFrZT86IG51bWJlciB8IG51bGxcbn1cblxuZXhwb3J0IGNsYXNzIEN1cnNvclBhZ2luYXRvcjxURW50aXR5PiB7XG5cbiAgb3JkZXJzOiBba2V5b2YgVEVudGl0eSwgYm9vbGVhbl1bXSA9IFtdXG4gIGNvbHVtbk5hbWVzOiBDb2x1bW5OYW1lTWFwPFRFbnRpdHk+XG4gIHRha2VPcHRpb25zOiBUYWtlXG4gIHRyYW5zZm9ybWVyOiBDdXJzb3JUcmFuc2Zvcm1lcjxURW50aXR5PlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbnRpdHk6IE9iamVjdFR5cGU8VEVudGl0eT4sXG4gICAge1xuICAgICAgb3JkZXJCeSxcbiAgICAgIGNvbHVtbk5hbWVzLFxuICAgICAgdGFrZSxcbiAgICAgIHRyYW5zZm9ybWVyLFxuICAgIH06IEN1cnNvclBhZ2luYXRvclBhcmFtczxURW50aXR5PixcbiAgKSB7XG4gICAgZm9yIChjb25zdCBvcmRlciBvZiBBcnJheS5pc0FycmF5KG9yZGVyQnkpID8gb3JkZXJCeSA6IFtvcmRlckJ5XSkge1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob3JkZXIpKSB7XG4gICAgICAgIHRoaXMub3JkZXJzLnB1c2goW2tleSBhcyBrZXlvZiBURW50aXR5LCB2YWx1ZSBhcyBib29sZWFuXSlcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb2x1bW5OYW1lcyA9IGNvbHVtbk5hbWVzID8/IHt9XG4gICAgdGhpcy50YWtlT3B0aW9ucyA9IHR5cGVvZiB0YWtlID09PSAnbnVtYmVyJyA/IHtcbiAgICAgIGRlZmF1bHQ6IHRha2UsXG4gICAgICBtaW46IDAsXG4gICAgICBtYXg6IEluZmluaXR5LFxuICAgIH0gOiB7XG4gICAgICBkZWZhdWx0OiB0YWtlPy5kZWZhdWx0ID8/IDIwLFxuICAgICAgbWluOiBNYXRoLm1heCgwLCB0YWtlPy5taW4gPz8gMCksIC8vIG5ldmVyIG5lZ2F0aXZlXG4gICAgICBtYXg6IHRha2U/Lm1heCA/PyBJbmZpbml0eSxcbiAgICB9XG4gICAgdGhpcy50cmFuc2Zvcm1lciA9IHRyYW5zZm9ybWVyID8/IG5ldyBCYXNlNjRUcmFuc2Zvcm1lcigpXG4gIH1cblxuICBhc3luYyBwYWdpbmF0ZShxYjogU2VsZWN0UXVlcnlCdWlsZGVyPFRFbnRpdHk+LCBwYXJhbXM6IEN1cnNvclBhZ2luYXRvclBhZ2luYXRlUGFyYW1zID0ge30pOiBQcm9taXNlPEN1cnNvclBhZ2luYXRpb248VEVudGl0eT4+IHtcbiAgICBjb25zdCB0YWtlID0gTWF0aC5tYXgodGhpcy50YWtlT3B0aW9ucy5taW4sIE1hdGgubWluKHBhcmFtcy50YWtlIHx8IHRoaXMudGFrZU9wdGlvbnMuZGVmYXVsdCwgdGhpcy50YWtlT3B0aW9ucy5tYXgpKVxuXG4gICAgaWYgKHBhcmFtcy5wcmV2Q3Vyc29yKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLl9hcHBseVdoZXJlUXVlcnkocWIsIHRoaXMudHJhbnNmb3JtZXIucGFyc2UocGFyYW1zLnByZXZDdXJzb3IpLCBmYWxzZSlcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBxYi5hbmRXaGVyZSgnMSA9IDAnKVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy5vcmRlcnMpIHtcbiAgICAgICAgcWIuYWRkT3JkZXJCeSh0aGlzLmNvbHVtbk5hbWVzW2tleV0gPz8gYCR7cWIuYWxpYXN9LiR7a2V5fWAsIHZhbHVlID8gJ0RFU0MnIDogJ0FTQycpXG4gICAgICB9XG5cbiAgICAgIGxldCBoYXNQcmV2ID0gZmFsc2VcbiAgICAgIGNvbnN0IG5vZGVzID0gYXdhaXQgcWIuY2xvbmUoKS50YWtlKHRha2UgKyAxKS5nZXRNYW55KCkudGhlbihub2RlcyA9PiB7XG4gICAgICAgIGlmIChub2Rlcy5sZW5ndGggPiB0YWtlKSB7XG4gICAgICAgICAgaGFzUHJldiA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZXMuc2xpY2UoMCwgdGFrZSkucmV2ZXJzZSgpXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBub2RlcyxcbiAgICAgICAgaGFzUHJldixcbiAgICAgICAgaGFzTmV4dDogdHJ1ZSxcbiAgICAgICAgcHJldkN1cnNvcjogbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMudHJhbnNmb3JtZXIuc3RyaW5naWZ5KHRoaXMuX2NyZWF0ZUN1cnNvcihub2Rlc1swXSkpIDogbnVsbCxcbiAgICAgICAgbmV4dEN1cnNvcjogbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMudHJhbnNmb3JtZXIuc3RyaW5naWZ5KHRoaXMuX2NyZWF0ZUN1cnNvcihub2Rlc1tub2Rlcy5sZW5ndGggLSAxXSkpIDogbnVsbCxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLm5leHRDdXJzb3IpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX2FwcGx5V2hlcmVRdWVyeShxYiwgdGhpcy50cmFuc2Zvcm1lci5wYXJzZShwYXJhbXMubmV4dEN1cnNvciksIHRydWUpXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcWIuYW5kV2hlcmUoJzEgPSAwJylcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy5vcmRlcnMpIHtcbiAgICAgIHFiLmFkZE9yZGVyQnkodGhpcy5jb2x1bW5OYW1lc1trZXldID8/IGAke3FiLmFsaWFzfS4ke2tleX1gLCB2YWx1ZSA/ICdBU0MnIDogJ0RFU0MnKVxuICAgIH1cblxuICAgIGxldCBoYXNOZXh0ID0gZmFsc2VcbiAgICBjb25zdCBub2RlcyA9IGF3YWl0IHFiLmNsb25lKCkudGFrZSh0YWtlICsgMSkuZ2V0TWFueSgpLnRoZW4obm9kZXMgPT4ge1xuICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IHRha2UpIHtcbiAgICAgICAgaGFzTmV4dCA9IHRydWVcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2Rlcy5zbGljZSgwLCB0YWtlKVxuICAgIH0pXG5cbiAgICByZXR1cm4ge1xuICAgICAgbm9kZXM6IG5vZGVzLnNsaWNlKDAsIHRha2UpLFxuICAgICAgaGFzUHJldjogISFwYXJhbXMubmV4dEN1cnNvcixcbiAgICAgIGhhc05leHQsXG4gICAgICBwcmV2Q3Vyc29yOiBub2Rlcy5sZW5ndGggPiAwID8gdGhpcy50cmFuc2Zvcm1lci5zdHJpbmdpZnkodGhpcy5fY3JlYXRlQ3Vyc29yKG5vZGVzWzBdKSkgOiBudWxsLFxuICAgICAgbmV4dEN1cnNvcjogbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMudHJhbnNmb3JtZXIuc3RyaW5naWZ5KHRoaXMuX2NyZWF0ZUN1cnNvcihub2Rlc1tub2Rlcy5sZW5ndGggLSAxXSkpIDogbnVsbCxcbiAgICB9XG4gIH1cblxuICBfYXBwbHlXaGVyZVF1ZXJ5KHFiOiBTZWxlY3RRdWVyeUJ1aWxkZXI8VEVudGl0eT4sIGN1cnNvcjogQ3Vyc29yPFRFbnRpdHk+LCBpc05leHQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHFiLmV4cHJlc3Npb25NYXAubWFpbkFsaWFzIS5tZXRhZGF0YVxuXG4gICAgbGV0IHF1ZXJ5UHJlZml4ID0gJydcbiAgICBjb25zdCBxdWVyeVBhcnRzID0gW10gYXMgc3RyaW5nW11cbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT5cblxuICAgIGZvciAoY29uc3QgW2tleSwgYXNjXSBvZiB0aGlzLm9yZGVycykge1xuICAgICAgY29uc3QgY29sdW1uTmFtZSA9IHRoaXMuY29sdW1uTmFtZXNba2V5XSA/PyBgJHtxYi5hbGlhc30uJHtrZXl9YFxuICAgICAgcXVlcnlQYXJ0cy5wdXNoKGAoJHtxdWVyeVByZWZpeH0ke2NvbHVtbk5hbWV9ICR7IWFzYyAhPT0gaXNOZXh0ID8gJz4nIDogJzwnfSA6Y3Vyc29yX18ke2tleSBhcyBzdHJpbmd9KWApXG4gICAgICBxdWVyeVByZWZpeCA9IGAke3F1ZXJ5UHJlZml4fSR7Y29sdW1uTmFtZX0gPSA6Y3Vyc29yX18ke2tleSBhcyBzdHJpbmd9IEFORCBgXG5cbiAgICAgIGNvbnN0IGNvbHVtbiA9IG1ldGFkYXRhLmZpbmRDb2x1bW5XaXRoUHJvcGVydHlQYXRoKGtleSBhcyBzdHJpbmcpXG4gICAgICBxdWVyeVBhcmFtc1tgY3Vyc29yX18ke2tleSBhcyBzdHJpbmd9YF0gPSBjb2x1bW4gPyBxYi5jb25uZWN0aW9uLmRyaXZlci5wcmVwYXJlUGVyc2lzdGVudFZhbHVlKGN1cnNvcltrZXldLCBjb2x1bW4pIDogY3Vyc29yW2tleV1cbiAgICB9XG5cbiAgICBxYi5hbmRXaGVyZShgKCR7cXVlcnlQYXJ0cy5qb2luKCcgT1IgJyl9KWAsIHF1ZXJ5UGFyYW1zKVxuICB9XG5cbiAgX2NyZWF0ZUN1cnNvcihub2RlOiBURW50aXR5KTogQ3Vyc29yPFRFbnRpdHk+IHtcbiAgICBjb25zdCBjdXJzb3IgPSB7fSBhcyBDdXJzb3I8VEVudGl0eT5cbiAgICBmb3IgKGNvbnN0IFtrZXksIF9dIG9mIHRoaXMub3JkZXJzKSB7XG4gICAgICBjdXJzb3Jba2V5XSA9IG5vZGVba2V5XVxuICAgIH1cbiAgICByZXR1cm4gY3Vyc29yXG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jdXJzb3ItcGFnaW5hdG9yLnRzIl0sIm5hbWVzIjpbIkN1cnNvclBhZ2luYXRvciIsImNvbnN0cnVjdG9yIiwiZW50aXR5Iiwib3JkZXJCeSIsImNvbHVtbk5hbWVzIiwidGFrZSIsInRyYW5zZm9ybWVyIiwib3JkZXJzIiwidGFrZU9wdGlvbnMiLCJkZWZhdWx0IiwibWluIiwibWF4IiwiSW5maW5pdHkiLCJNYXRoIiwiQmFzZTY0VHJhbnNmb3JtZXIiLCJwYWdpbmF0ZSIsInFiIiwicGFyYW1zIiwicHJldkN1cnNvciIsIl9hcHBseVdoZXJlUXVlcnkiLCJwYXJzZSIsImFuZFdoZXJlIiwia2V5IiwidmFsdWUiLCJhZGRPcmRlckJ5IiwiYWxpYXMiLCJoYXNQcmV2Iiwibm9kZXMiLCJjbG9uZSIsImdldE1hbnkiLCJ0aGVuIiwibGVuZ3RoIiwic2xpY2UiLCJyZXZlcnNlIiwiaGFzTmV4dCIsInN0cmluZ2lmeSIsIl9jcmVhdGVDdXJzb3IiLCJuZXh0Q3Vyc29yIiwiY3Vyc29yIiwiaXNOZXh0IiwibWV0YWRhdGEiLCJleHByZXNzaW9uTWFwIiwibWFpbkFsaWFzIiwicXVlcnlQcmVmaXgiLCJxdWVyeVBhcnRzIiwicXVlcnlQYXJhbXMiLCJhc2MiLCJjb2x1bW5OYW1lIiwicHVzaCIsImNvbHVtbiIsImZpbmRDb2x1bW5XaXRoUHJvcGVydHlQYXRoIiwiY29ubmVjdGlvbiIsImRyaXZlciIsInByZXBhcmVQZXJzaXN0ZW50VmFsdWUiLCJqb2luIiwibm9kZSIsIl8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQTs7QUFDQTs7OztBQWdCTyxNQUFNQSxlQUFOLENBQTRFO0FBT2pGQyxFQUFBQSxXQUFXLENBQ0ZDLE1BREUsRUFFVDtBQUNFQyxJQUFBQSxPQURGO0FBRUVDLElBQUFBLFdBRkY7QUFHRUMsSUFBQUEsSUFIRjtBQUlFQyxJQUFBQTtBQUpGLEdBRlMsRUFRVDtBQUFBOztBQUFBLFNBUE9KLE1BT1AsR0FQT0EsTUFPUDs7QUFBQSxv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J3R5cGVvcm0nXG5cbmltcG9ydCB7IEN1cnNvclBhZ2luYXRpb24sIEN1cnNvciwgT3JkZXJCeSwgQ3Vyc29yVHJhbnNmb3JtZXIsIE51bGxhYmxlLCBUYWtlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BhZ2luYXRvcidcbmltcG9ydCB7IEJhc2U2NFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvYmFzZTY0LXRyYW5zZm9ybWVyJ1xuaW1wb3J0IHsgbm9ybWFsaXplT3JkZXJCeSB9IGZyb20gJy4vdXRpbHMvbm9ybWFsaXplT3JkZXJCeSdcblxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnNvclBhZ2luYXRvclBhcmFtczxURW50aXR5LCBUQ29sdW1uTmFtZXMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gIG9yZGVyQnk6IE9yZGVyQnk8VEVudGl0eSAmIFRDb2x1bW5OYW1lcz4gfCBPcmRlckJ5PFRFbnRpdHkgJiBUQ29sdW1uTmFtZXM+W11cbiAgY29sdW1uTmFtZXM/OiBUQ29sdW1uTmFtZXMgfCBudWxsXG4gIHRha2U/OiBOdWxsYWJsZTxUYWtlPiB8IG51bWJlciB8IG51bGxcbiAgdHJhbnNmb3JtZXI/OiBDdXJzb3JUcmFuc2Zvcm1lcjxURW50aXR5PiB8IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXJzb3JQYWdpbmF0b3JQYWdpbmF0ZVBhcmFtcyB7XG4gIHByZXZDdXJzb3I/OiBzdHJpbmcgfCBudWxsXG4gIG5leHRDdXJzb3I/OiBzdHJpbmcgfCBudWxsXG4gIHRha2U/OiBudW1iZXIgfCBudWxsXG59XG5cbmV4cG9ydCBjbGFzcyBDdXJzb3JQYWdpbmF0b3I8VEVudGl0eSwgVENvbHVtbk5hbWVzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXG4gIG9yZGVyczogW3N0cmluZywgYm9vbGVhbl1bXSA9IFtdXG4gIGNvbHVtbk5hbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIHRha2VPcHRpb25zOiBUYWtlXG4gIHRyYW5zZm9ybWVyOiBDdXJzb3JUcmFuc2Zvcm1lcjxURW50aXR5PlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbnRpdHk6IE9iamVjdFR5cGU8VEVudGl0eT4sXG4gICAge1xuICAgICAgb3JkZXJCeSxcbiAgICAgIGNvbHVtbk5hbWVzLFxuICAgICAgdGFrZSxcbiAgICAgIHRyYW5zZm9ybWVyLFxuICAgIH06IEN1cnNvclBhZ2luYXRvclBhcmFtczxURW50aXR5LCBUQ29sdW1uTmFtZXM+LFxuICApIHtcbiAgICB0aGlzLm9yZGVycyA9IG5vcm1hbGl6ZU9yZGVyQnkob3JkZXJCeSlcbiAgICB0aGlzLmNvbHVtbk5hbWVzID0gY29sdW1uTmFtZXMgPz8ge31cbiAgICB0aGlzLnRha2VPcHRpb25zID0gdHlwZW9mIHRha2UgPT09ICdudW1iZXInID8ge1xuICAgICAgZGVmYXVsdDogdGFrZSxcbiAgICAgIG1pbjogMCxcbiAgICAgIG1heDogSW5maW5pdHksXG4gICAgfSA6IHtcbiAgICAgIGRlZmF1bHQ6IHRha2U/LmRlZmF1bHQgPz8gMjAsXG4gICAgICBtaW46IE1hdGgubWF4KDAsIHRha2U/Lm1pbiA/PyAwKSwgLy8gbmV2ZXIgbmVnYXRpdmVcbiAgICAgIG1heDogdGFrZT8ubWF4ID8/IEluZmluaXR5LFxuICAgIH1cbiAgICB0aGlzLnRyYW5zZm9ybWVyID0gdHJhbnNmb3JtZXIgPz8gbmV3IEJhc2U2NFRyYW5zZm9ybWVyKClcbiAgfVxuXG4gIGFzeW5jIHBhZ2luYXRlKHFiOiBTZWxlY3RRdWVyeUJ1aWxkZXI8VEVudGl0eT4sIHBhcmFtczogQ3Vyc29yUGFnaW5hdG9yUGFnaW5hdGVQYXJhbXMgPSB7fSk6IFByb21pc2U8Q3Vyc29yUGFnaW5hdGlvbjxURW50aXR5Pj4ge1xuICAgIGNvbnN0IHRha2UgPSBNYXRoLm1heCh0aGlzLnRha2VPcHRpb25zLm1pbiwgTWF0aC5taW4ocGFyYW1zLnRha2UgfHwgdGhpcy50YWtlT3B0aW9ucy5kZWZhdWx0LCB0aGlzLnRha2VPcHRpb25zLm1heCkpXG5cbiAgICBpZiAocGFyYW1zLnByZXZDdXJzb3IpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX2FwcGx5V2hlcmVRdWVyeShxYiwgdGhpcy50cmFuc2Zvcm1lci5wYXJzZShwYXJhbXMucHJldkN1cnNvciksIGZhbHNlKVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHFiLmFuZFdoZXJlKCcxID0gMCcpXG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiB0aGlzLm9yZGVycykge1xuICAgICAgICBxYi5hZGRPcmRlckJ5KHRoaXMuY29sdW1uTmFtZXNba2V5XSA/PyBgJHtxYi5hbGlhc30uJHtrZXl9YCwgdmFsdWUgPyAnREVTQycgOiAnQVNDJylcbiAgICAgIH1cblxuICAgICAgbGV0IGhhc1ByZXYgPSBmYWxzZVxuICAgICAgY29uc3Qgbm9kZXMgPSBhd2FpdCBxYi5jbG9uZSgpLnRha2UodGFrZSArIDEpLmdldE1hbnkoKS50aGVuKG5vZGVzID0+IHtcbiAgICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IHRha2UpIHtcbiAgICAgICAgICBoYXNQcmV2ID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2Rlcy5zbGljZSgwLCB0YWtlKS5yZXZlcnNlKClcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5vZGVzLFxuICAgICAgICBoYXNQcmV2LFxuICAgICAgICBoYXNOZXh0OiB0cnVlLFxuICAgICAgICBwcmV2Q3Vyc29yOiBub2Rlcy5sZW5ndGggPiAwID8gdGhpcy50cmFuc2Zvcm1lci5zdHJpbmdpZnkodGhpcy5fY3JlYXRlQ3Vyc29yKG5vZGVzWzBdKSkgOiBudWxsLFxuICAgICAgICBuZXh0Q3Vyc29yOiBub2Rlcy5sZW5ndGggPiAwID8gdGhpcy50cmFuc2Zvcm1lci5zdHJpbmdpZnkodGhpcy5fY3JlYXRlQ3Vyc29yKG5vZGVzW25vZGVzLmxlbmd0aCAtIDFdKSkgOiBudWxsLFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJhbXMubmV4dEN1cnNvcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fYXBwbHlXaGVyZVF1ZXJ5KHFiLCB0aGlzLnRyYW5zZm9ybWVyLnBhcnNlKHBhcmFtcy5uZXh0Q3Vyc29yKSwgdHJ1ZSlcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBxYi5hbmRXaGVyZSgnMSA9IDAnKVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiB0aGlzLm9yZGVycykge1xuICAgICAgcWIuYWRkT3JkZXJCeSh0aGlzLmNvbHVtbk5hbWVzW2tleV0gPz8gYCR7cWIuYWxpYXN9LiR7a2V5fWAsIHZhbHVlID8gJ0FTQycgOiAnREVTQycpXG4gICAgfVxuXG4gICAgbGV0IGhhc05leHQgPSBmYWxzZVxuICAgIGNvbnN0IG5vZGVzID0gYXdhaXQgcWIuY2xvbmUoKS50YWtlKHRha2UgKyAxKS5nZXRNYW55KCkudGhlbihub2RlcyA9PiB7XG4gICAgICBpZiAobm9kZXMubGVuZ3RoID4gdGFrZSkge1xuICAgICAgICBoYXNOZXh0ID0gdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5vZGVzLnNsaWNlKDAsIHRha2UpXG4gICAgfSlcblxuICAgIHJldHVybiB7XG4gICAgICBub2Rlczogbm9kZXMuc2xpY2UoMCwgdGFrZSksXG4gICAgICBoYXNQcmV2OiAhIXBhcmFtcy5uZXh0Q3Vyc29yLFxuICAgICAgaGFzTmV4dCxcbiAgICAgIHByZXZDdXJzb3I6IG5vZGVzLmxlbmd0aCA+IDAgPyB0aGlzLnRyYW5zZm9ybWVyLnN0cmluZ2lmeSh0aGlzLl9jcmVhdGVDdXJzb3Iobm9kZXNbMF0pKSA6IG51bGwsXG4gICAgICBuZXh0Q3Vyc29yOiBub2Rlcy5sZW5ndGggPiAwID8gdGhpcy50cmFuc2Zvcm1lci5zdHJpbmdpZnkodGhpcy5fY3JlYXRlQ3Vyc29yKG5vZGVzW25vZGVzLmxlbmd0aCAtIDFdKSkgOiBudWxsLFxuICAgIH1cbiAgfVxuXG4gIF9hcHBseVdoZXJlUXVlcnkocWI6IFNlbGVjdFF1ZXJ5QnVpbGRlcjxURW50aXR5PiwgY3Vyc29yOiBDdXJzb3I8VEVudGl0eT4sIGlzTmV4dDogYm9vbGVhbikge1xuICAgIGNvbnN0IG1ldGFkYXRhID0gcWIuZXhwcmVzc2lvbk1hcC5tYWluQWxpYXMhLm1ldGFkYXRhXG5cbiAgICBsZXQgcXVlcnlQcmVmaXggPSAnJ1xuICAgIGNvbnN0IHF1ZXJ5UGFydHMgPSBbXSBhcyBzdHJpbmdbXVxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge30gYXMgUmVjb3JkPHN0cmluZywgYW55PlxuXG4gICAgZm9yIChjb25zdCBba2V5LCBhc2NdIG9mIHRoaXMub3JkZXJzKSB7XG4gICAgICBjb25zdCBjb2x1bW5OYW1lID0gdGhpcy5jb2x1bW5OYW1lc1trZXldID8/IGAke3FiLmFsaWFzfS4ke2tleX1gXG4gICAgICBxdWVyeVBhcnRzLnB1c2goYCgke3F1ZXJ5UHJlZml4fSR7Y29sdW1uTmFtZX0gJHshYXNjICE9PSBpc05leHQgPyAnPicgOiAnPCd9IDpjdXJzb3JfXyR7a2V5fSlgKVxuICAgICAgcXVlcnlQcmVmaXggPSBgJHtxdWVyeVByZWZpeH0ke2NvbHVtbk5hbWV9ID0gOmN1cnNvcl9fJHtrZXl9IEFORCBgXG5cbiAgICAgIGNvbnN0IGNvbHVtbiA9IG1ldGFkYXRhLmZpbmRDb2x1bW5XaXRoUHJvcGVydHlQYXRoKGtleSlcbiAgICAgIHF1ZXJ5UGFyYW1zW2BjdXJzb3JfXyR7a2V5fWBdID0gY29sdW1uID8gcWIuY29ubmVjdGlvbi5kcml2ZXIucHJlcGFyZVBlcnNpc3RlbnRWYWx1ZShjdXJzb3Jba2V5IGFzIGtleW9mIFRFbnRpdHldLCBjb2x1bW4pIDogY3Vyc29yW2tleSBhcyBrZXlvZiBURW50aXR5XVxuICAgIH1cblxuICAgIHFiLmFuZFdoZXJlKGAoJHtxdWVyeVBhcnRzLmpvaW4oJyBPUiAnKX0pYCwgcXVlcnlQYXJhbXMpXG4gIH1cblxuICBfY3JlYXRlQ3Vyc29yKG5vZGU6IFRFbnRpdHkpOiBDdXJzb3I8VEVudGl0eT4ge1xuICAgIGNvbnN0IGN1cnNvciA9IHt9IGFzIEN1cnNvcjxURW50aXR5PlxuICAgIGZvciAoY29uc3QgW2tleSwgX10gb2YgdGhpcy5vcmRlcnMpIHtcbiAgICAgIGN1cnNvcltrZXkgYXMga2V5b2YgVEVudGl0eV0gPSBub2RlW2tleSBhcyBrZXlvZiBURW50aXR5XVxuICAgIH1cbiAgICByZXR1cm4gY3Vyc29yXG4gIH1cbn1cbiJdfQ==

@@ -12,5 +12,2 @@ export declare type Nullable<T> = {

};
export declare type ColumnNameMap<TEntity> = {
[TKey in keyof TEntity]?: string;
};
export declare type Cursor<TEntity> = {

@@ -17,0 +14,0 @@ [TKey in keyof TEntity]?: any;

import { SelectQueryBuilder, ObjectType } from 'typeorm';
import { OrderBy, ColumnNameMap, PromisePagePagination, PagePagination, Nullable, Take } from './interfaces/paginator';
export interface PagePaginatorParams<TEntity> {
orderBy: OrderBy<TEntity> | OrderBy<TEntity>[];
columnNames?: ColumnNameMap<TEntity> | null;
import { OrderBy, PromisePagePagination, PagePagination, Nullable, Take } from './interfaces/paginator';
export interface PagePaginatorParams<TEntity, TColumnNames extends Record<string, string>> {
columnNames?: TColumnNames | null;
take?: Nullable<Take> | number | null;
orderBy: OrderBy<TEntity & TColumnNames> | OrderBy<TEntity & TColumnNames>[];
}
export interface PagePaginatorPaginateParams<TEntity> {
export interface PagePaginatorPaginateParams<TEntity, TColumnNames extends Record<string, string>> {
page?: number | null;
take?: number | null;
orderBy?: OrderBy<TEntity> | OrderBy<TEntity>[];
orderBy?: OrderBy<TEntity & TColumnNames> | OrderBy<TEntity & TColumnNames>[];
}
export declare class PagePaginator<TEntity> {
export declare class PagePaginator<TEntity, TColumnNames extends Record<string, string>> {
entity: ObjectType<TEntity>;
orderBy: OrderBy<TEntity> | OrderBy<TEntity>[];
columnNames: ColumnNameMap<TEntity>;
columnNames: Record<string, string>;
takeOptions: Take;
constructor(entity: ObjectType<TEntity>, { orderBy, columnNames, take, }: PagePaginatorParams<TEntity>);
paginate(qb: SelectQueryBuilder<TEntity>, params?: PagePaginatorPaginateParams<TEntity>): Promise<PagePagination<TEntity>>;
promisePaginate(qb: SelectQueryBuilder<TEntity>, params?: PagePaginatorPaginateParams<TEntity>): PromisePagePagination<TEntity>;
constructor(entity: ObjectType<TEntity>, { orderBy, columnNames, take, }: PagePaginatorParams<TEntity, TColumnNames>);
paginate(qb: SelectQueryBuilder<TEntity>, params?: PagePaginatorPaginateParams<TEntity, TColumnNames>): Promise<PagePagination<TEntity>>;
promisePaginate(qb: SelectQueryBuilder<TEntity>, params?: PagePaginatorPaginateParams<TEntity, TColumnNames>): PromisePagePagination<TEntity>;
}

@@ -8,16 +8,6 @@ "use strict";

var _normalizeOrderBy = require("./utils/normalizeOrderBy");
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function normalizeOrderBy(orderBy) {
const orders = [];
for (const order of Array.isArray(orderBy) ? orderBy : [orderBy]) {
for (const [key, value] of Object.entries(order)) {
orders.push([key, value]);
}
}
return orders;
}
class PagePaginator {

@@ -59,3 +49,3 @@ constructor(entity, {

for (const [key, value] of normalizeOrderBy((_params$orderBy = params.orderBy) !== null && _params$orderBy !== void 0 ? _params$orderBy : this.orderBy)) {
for (const [key, value] of (0, _normalizeOrderBy.normalizeOrderBy)((_params$orderBy = params.orderBy) !== null && _params$orderBy !== void 0 ? _params$orderBy : this.orderBy)) {
var _params$orderBy, _this$columnNames$key;

@@ -88,3 +78,3 @@

for (const [key, value] of normalizeOrderBy((_params$orderBy2 = params.orderBy) !== null && _params$orderBy2 !== void 0 ? _params$orderBy2 : this.orderBy)) {
for (const [key, value] of (0, _normalizeOrderBy.normalizeOrderBy)((_params$orderBy2 = params.orderBy) !== null && _params$orderBy2 !== void 0 ? _params$orderBy2 : this.orderBy)) {
var _params$orderBy2, _this$columnNames$key2;

@@ -131,2 +121,2 @@

exports.PagePaginator = PagePaginator;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYWdlLXBhZ2luYXRvci50cyJdLCJuYW1lcyI6WyJub3JtYWxpemVPcmRlckJ5Iiwib3JkZXJCeSIsIm9yZGVycyIsIm9yZGVyIiwiQXJyYXkiLCJpc0FycmF5Iiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIiwicHVzaCIsIlBhZ2VQYWdpbmF0b3IiLCJjb25zdHJ1Y3RvciIsImVudGl0eSIsImNvbHVtbk5hbWVzIiwidGFrZSIsInRha2VPcHRpb25zIiwiZGVmYXVsdCIsIm1pbiIsIm1heCIsIkluZmluaXR5IiwiTWF0aCIsInBhZ2luYXRlIiwicWIiLCJwYXJhbXMiLCJwYWdlIiwiYWRkT3JkZXJCeSIsImFsaWFzIiwicWJGb3JDb3VudCIsImNsb25lIiwiaGFzTmV4dCIsIm5vZGVzIiwib2Zmc2V0IiwibGltaXQiLCJnZXRNYW55IiwidGhlbiIsImxlbmd0aCIsInNsaWNlIiwiY291bnQiLCJnZXRDb3VudCIsInByb21pc2VQYWdpbmF0ZSIsInByb21pc2VOb2RlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsU0FBU0EsZ0JBQVQsQ0FBbUNDLE9BQW5DLEVBQStHO0FBQzdHLFFBQU1DLE1BQU0sR0FBRyxFQUFmOztBQUNBLE9BQUssTUFBTUMsS0FBWCxJQUFvQkMsS0FBSyxDQUFDQyxPQUFOLENBQWNKLE9BQWQsSUFBeUJBLE9BQXpCLEdBQW1DLENBQUNBLE9BQUQsQ0FBdkQsRUFBa0U7QUFDaEUsU0FBSyxNQUFNLENBQUNLLEdBQUQsRUFBTUMsS0FBTixDQUFYLElBQTJCQyxNQUFNLENBQUNDLE9BQVAsQ0FBZU4sS0FBZixDQUEzQixFQUFrRDtBQUNoREQsTUFBQUEsTUFBTSxDQUFDUSxJQUFQLENBQVksQ0FBQ0osR0FBRCxFQUF1QkMsS0FBdkIsQ0FBWjtBQUNEO0FBQ0Y7O0FBQ0QsU0FBT0wsTUFBUDtBQUNEOztBQWNNLE1BQU1TLGFBQU4sQ0FBNkI7QUFLbENDLEVBQUFBLFdBQVcsQ0FDRkMsTUFERSxFQUVUO0FBQ0VaLElBQUFBLE9BREY7QUFFRWEsSUFBQUEsV0FGRjtBQUdFQyxJQUFBQTtBQUhGLEdBRlMsRUFPVDtBQUFBOztBQUFBLFNBTk9GLE1BTVAsR0FOT0EsTUFNUDs7QUFBQTs7QUFBQTs7QUFBQTs7QUFDQSxTQUFLWixPQUFMLEdBQWVBLE9BQWY7QUFDQSxTQUFLYSxXQUFMLEdBQW1CQSxXQUFuQixhQUFtQkEsV0FBbkIsY0FBbUJBLFdBQW5CLEdBQWtDLEVBQWxDO0FBQ0EsU0FBS0UsV0FBTCxHQUFtQixPQUFPRCxJQUFQLEtBQWdCLFFBQWhCLEdBQTJCO0FBQzVDRSxNQUFBQSxPQUFPLEVBQUVGLElBRG1DO0FBRTVDRyxNQUFBQSxHQUFHLEVBQUUsQ0FGdUM7QUFHNUNDLE1BQUFBLEdBQUcsRUFBRUM7QUFIdUMsS0FBM0IsR0FJZjtBQUNGSCxNQUFBQSxPQUFPLG1CQUFFRixJQUFGLGFBQUVBLElBQUYsdUJBQUVBLElBQUksQ0FBRUUsT0FBUix5REFBbUIsRUFEeEI7QUFFRkMsTUFBQUEsR0FBRyxFQUFFRyxJQUFJLENBQUNGLEdBQUwsQ0FBUyxDQUFULGVBQVlKLElBQVosYUFBWUEsSUFBWix1QkFBWUEsSUFBSSxDQUFFRyxHQUFsQixpREFBeUIsQ0FBekIsQ0FGSDtBQUVnQztBQUNsQ0MsTUFBQUEsR0FBRyxlQUFFSixJQUFGLGFBQUVBLElBQUYsdUJBQUVBLElBQUksQ0FBRUksR0FBUixpREFBZUM7QUFIaEIsS0FKSjtBQVNEOztBQUVELFFBQU1FLFFBQU4sQ0FBZUMsRUFBZixFQUFnREMsTUFBNEMsR0FBRyxFQUEvRixFQUFxSTtBQUFBOztBQUNuSSxVQUFNQyxJQUFJLEdBQUdKLElBQUksQ0FBQ0YsR0FBTCxpQkFBU0ssTUFBTSxDQUFDQyxJQUFoQix1REFBd0IsQ0FBeEIsRUFBMkIsQ0FBM0IsQ0FBYjtBQUNBLFVBQU1WLElBQUksR0FBR00sSUFBSSxDQUFDRixHQUFMLENBQVMsS0FBS0gsV0FBTCxDQUFpQkUsR0FBMUIsRUFBK0JHLElBQUksQ0FBQ0gsR0FBTCxDQUFTTSxNQUFNLENBQUNULElBQVAsSUFBZSxLQUFLQyxXQUFMLENBQWlCQyxPQUF6QyxFQUFrRCxLQUFLRCxXQUFMLENBQWlCRyxHQUFuRSxDQUEvQixDQUFiOztBQUVBLFNBQUssTUFBTSxDQUFDYixHQUFELEVBQU1DLEtBQU4sQ0FBWCxJQUEyQlAsZ0JBQWdCLG9CQUFDd0IsTUFBTSxDQUFDdkIsT0FBUiw2REFBbUIsS0FBS0EsT0FBeEIsQ0FBM0MsRUFBNkU7QUFBQTs7QUFDM0VzQixNQUFBQSxFQUFFLENBQUNHLFVBQUgsMEJBQWMsS0FBS1osV0FBTCxDQUFpQlIsR0FBakIsQ0FBZCx5RUFBd0MsR0FBRWlCLEVBQUUsQ0FBQ0ksS0FBTSxJQUFHckIsR0FBSSxFQUExRCxFQUE2REMsS0FBSyxHQUFHLEtBQUgsR0FBVyxNQUE3RTtBQUNEOztBQUVELFVBQU1xQixVQUFVLEdBQUdMLEVBQUUsQ0FBQ00sS0FBSCxFQUFuQjtBQUVBLFFBQUlDLE9BQU8sR0FBRyxLQUFkO0FBQ0EsVUFBTUMsS0FBSyxHQUFHLE1BQU1SLEVBQUUsQ0FBQ00sS0FBSCxHQUFXRyxNQUFYLENBQWtCLENBQUNQLElBQUksR0FBRyxDQUFSLElBQWFWLElBQS9CLEVBQXFDa0IsS0FBckMsQ0FBMkNsQixJQUFJLEdBQUcsQ0FBbEQsRUFBcURtQixPQUFyRCxHQUErREMsSUFBL0QsQ0FBb0VKLEtBQUssSUFBSTtBQUMvRixVQUFJQSxLQUFLLENBQUNLLE1BQU4sR0FBZXJCLElBQW5CLEVBQXlCO0FBQ3ZCZSxRQUFBQSxPQUFPLEdBQUcsSUFBVjtBQUNEOztBQUNELGFBQU9DLEtBQUssQ0FBQ00sS0FBTixDQUFZLENBQVosRUFBZXRCLElBQWYsQ0FBUDtBQUNELEtBTG1CLENBQXBCO0FBT0EsV0FBTztBQUNMdUIsTUFBQUEsS0FBSyxFQUFFLE1BQU1WLFVBQVUsQ0FBQ1csUUFBWCxFQURSO0FBRUxSLE1BQUFBLEtBRks7QUFHTEQsTUFBQUE7QUFISyxLQUFQO0FBS0Q7O0FBRURVLEVBQUFBLGVBQWUsQ0FBQ2pCLEVBQUQsRUFBa0NDLE1BQTRDLEdBQUcsRUFBakYsRUFBcUg7QUFBQTs7QUFDbEksVUFBTUMsSUFBSSxHQUFHSixJQUFJLENBQUNGLEdBQUwsa0JBQVNLLE1BQU0sQ0FBQ0MsSUFBaEIseURBQXdCLENBQXhCLEVBQTJCLENBQTNCLENBQWI7QUFDQSxVQUFNVixJQUFJLEdBQUdNLElBQUksQ0FBQ0YsR0FBTCxDQUFTLEtBQUtILFdBQUwsQ0FBaUJFLEdBQTFCLEVBQStCRyxJQUFJLENBQUNILEdBQUwsQ0FBU00sTUFBTSxDQUFDVCxJQUFQLElBQWUsS0FBS0MsV0FBTCxDQUFpQkMsT0FBekMsRUFBa0QsS0FBS0QsV0FBTCxDQUFpQkcsR0FBbkUsQ0FBL0IsQ0FBYjs7QUFFQSxTQUFLLE1BQU0sQ0FBQ2IsR0FBRCxFQUFNQyxLQUFOLENBQVgsSUFBMkJQLGdCQUFnQixxQkFBQ3dCLE1BQU0sQ0FBQ3ZCLE9BQVIsK0RBQW1CLEtBQUtBLE9BQXhCLENBQTNDLEVBQTZFO0FBQUE7O0FBQzNFc0IsTUFBQUEsRUFBRSxDQUFDRyxVQUFILDJCQUFjLEtBQUtaLFdBQUwsQ0FBaUJSLEdBQWpCLENBQWQsMkVBQXdDLEdBQUVpQixFQUFFLENBQUNJLEtBQU0sSUFBR3JCLEdBQUksRUFBMUQsRUFBNkRDLEtBQUssR0FBRyxLQUFILEdBQVcsTUFBN0U7QUFDRDs7QUFFRCxVQUFNcUIsVUFBVSxHQUFHTCxFQUFFLENBQUNNLEtBQUgsRUFBbkI7QUFDQSxVQUFNWSxZQUFZLEdBQUdsQixFQUFFLENBQUNNLEtBQUgsR0FBV0csTUFBWCxDQUFrQixDQUFDUCxJQUFJLEdBQUcsQ0FBUixJQUFhVixJQUEvQixFQUFxQ2tCLEtBQXJDLENBQTJDbEIsSUFBSSxHQUFHLENBQWxELEVBQXFEbUIsT0FBckQsR0FBK0RDLElBQS9ELENBQW9FSixLQUFLLElBQUk7QUFDaEcsVUFBSUQsT0FBTyxHQUFHLEtBQWQ7O0FBQ0EsVUFBSUMsS0FBSyxDQUFDSyxNQUFOLEdBQWVyQixJQUFuQixFQUF5QjtBQUN2QmUsUUFBQUEsT0FBTyxHQUFHLElBQVY7QUFDRDs7QUFDRCxhQUFPO0FBQ0xBLFFBQUFBLE9BREs7QUFFTEMsUUFBQUEsS0FBSyxFQUFFQSxLQUFLLENBQUNNLEtBQU4sQ0FBWSxDQUFaLEVBQWV0QixJQUFmO0FBRkYsT0FBUDtBQUlELEtBVG9CLENBQXJCO0FBV0EsV0FBTztBQUNMLFVBQUl1QixLQUFKLEdBQVk7QUFDVixlQUFPVixVQUFVLENBQUNXLFFBQVgsRUFBUDtBQUNELE9BSEk7O0FBSUwsVUFBSVIsS0FBSixHQUFZO0FBQ1YsZUFBT1UsWUFBWSxDQUFDTixJQUFiLENBQWtCLENBQUM7QUFBRUosVUFBQUE7QUFBRixTQUFELEtBQWVBLEtBQWpDLENBQVA7QUFDRCxPQU5JOztBQU9MLFVBQUlELE9BQUosR0FBYztBQUNaLGVBQU9XLFlBQVksQ0FBQ04sSUFBYixDQUFrQixDQUFDO0FBQUVMLFVBQUFBO0FBQUYsU0FBRCxLQUFpQkEsT0FBbkMsQ0FBUDtBQUNEOztBQVRJLEtBQVA7QUFXRDs7QUFsRmlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0UXVlcnlCdWlsZGVyLCBPYmplY3RUeXBlIH0gZnJvbSAndHlwZW9ybSdcblxuaW1wb3J0IHsgT3JkZXJCeSwgQ29sdW1uTmFtZU1hcCwgUHJvbWlzZVBhZ2VQYWdpbmF0aW9uLCBQYWdlUGFnaW5hdGlvbiwgTnVsbGFibGUsIFRha2UgfSBmcm9tICcuL2ludGVyZmFjZXMvcGFnaW5hdG9yJ1xuXG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZU9yZGVyQnk8VEVudGl0eT4ob3JkZXJCeTogT3JkZXJCeTxURW50aXR5PiB8IE9yZGVyQnk8VEVudGl0eT5bXSk6IFtrZXlvZiBURW50aXR5LCBib29sZWFuXVtdIHtcbiAgY29uc3Qgb3JkZXJzID0gW10gYXMgW2tleW9mIFRFbnRpdHksIGJvb2xlYW5dW11cbiAgZm9yIChjb25zdCBvcmRlciBvZiBBcnJheS5pc0FycmF5KG9yZGVyQnkpID8gb3JkZXJCeSA6IFtvcmRlckJ5XSkge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9yZGVyKSkge1xuICAgICAgb3JkZXJzLnB1c2goW2tleSBhcyBrZXlvZiBURW50aXR5LCB2YWx1ZSBhcyBib29sZWFuXSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9yZGVyc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VQYWdpbmF0b3JQYXJhbXM8VEVudGl0eT4ge1xuICBvcmRlckJ5OiBPcmRlckJ5PFRFbnRpdHk+IHwgT3JkZXJCeTxURW50aXR5PltdXG4gIGNvbHVtbk5hbWVzPzogQ29sdW1uTmFtZU1hcDxURW50aXR5PiB8IG51bGxcbiAgdGFrZT86IE51bGxhYmxlPFRha2U+IHwgbnVtYmVyIHwgbnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VQYWdpbmF0b3JQYWdpbmF0ZVBhcmFtczxURW50aXR5PiB7XG4gIHBhZ2U/OiBudW1iZXIgfCBudWxsXG4gIHRha2U/OiBudW1iZXIgfCBudWxsXG4gIG9yZGVyQnk/OiBPcmRlckJ5PFRFbnRpdHk+IHwgT3JkZXJCeTxURW50aXR5PltdXG59XG5cbmV4cG9ydCBjbGFzcyBQYWdlUGFnaW5hdG9yPFRFbnRpdHk+IHtcbiAgb3JkZXJCeTogT3JkZXJCeTxURW50aXR5PiB8IE9yZGVyQnk8VEVudGl0eT5bXVxuICBjb2x1bW5OYW1lczogQ29sdW1uTmFtZU1hcDxURW50aXR5PlxuICB0YWtlT3B0aW9uczogVGFrZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbnRpdHk6IE9iamVjdFR5cGU8VEVudGl0eT4sXG4gICAge1xuICAgICAgb3JkZXJCeSxcbiAgICAgIGNvbHVtbk5hbWVzLFxuICAgICAgdGFrZSxcbiAgICB9OiBQYWdlUGFnaW5hdG9yUGFyYW1zPFRFbnRpdHk+LFxuICApIHtcbiAgICB0aGlzLm9yZGVyQnkgPSBvcmRlckJ5XG4gICAgdGhpcy5jb2x1bW5OYW1lcyA9IGNvbHVtbk5hbWVzID8/IHt9XG4gICAgdGhpcy50YWtlT3B0aW9ucyA9IHR5cGVvZiB0YWtlID09PSAnbnVtYmVyJyA/IHtcbiAgICAgIGRlZmF1bHQ6IHRha2UsXG4gICAgICBtaW46IDAsXG4gICAgICBtYXg6IEluZmluaXR5LFxuICAgIH0gOiB7XG4gICAgICBkZWZhdWx0OiB0YWtlPy5kZWZhdWx0ID8/IDIwLFxuICAgICAgbWluOiBNYXRoLm1heCgwLCB0YWtlPy5taW4gPz8gMCksIC8vIG5ldmVyIG5lZ2F0aXZlXG4gICAgICBtYXg6IHRha2U/Lm1heCA/PyBJbmZpbml0eSxcbiAgICB9XG4gIH1cblxuICBhc3luYyBwYWdpbmF0ZShxYjogU2VsZWN0UXVlcnlCdWlsZGVyPFRFbnRpdHk+LCBwYXJhbXM6IFBhZ2VQYWdpbmF0b3JQYWdpbmF0ZVBhcmFtczxURW50aXR5PiA9IHt9KTogUHJvbWlzZTxQYWdlUGFnaW5hdGlvbjxURW50aXR5Pj4ge1xuICAgIGNvbnN0IHBhZ2UgPSBNYXRoLm1heChwYXJhbXMucGFnZSA/PyAxLCAxKVxuICAgIGNvbnN0IHRha2UgPSBNYXRoLm1heCh0aGlzLnRha2VPcHRpb25zLm1pbiwgTWF0aC5taW4ocGFyYW1zLnRha2UgfHwgdGhpcy50YWtlT3B0aW9ucy5kZWZhdWx0LCB0aGlzLnRha2VPcHRpb25zLm1heCkpXG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBub3JtYWxpemVPcmRlckJ5KHBhcmFtcy5vcmRlckJ5ID8/IHRoaXMub3JkZXJCeSkpIHtcbiAgICAgIHFiLmFkZE9yZGVyQnkodGhpcy5jb2x1bW5OYW1lc1trZXldID8/IGAke3FiLmFsaWFzfS4ke2tleX1gLCB2YWx1ZSA/ICdBU0MnIDogJ0RFU0MnKVxuICAgIH1cblxuICAgIGNvbnN0IHFiRm9yQ291bnQgPSBxYi5jbG9uZSgpXG5cbiAgICBsZXQgaGFzTmV4dCA9IGZhbHNlXG4gICAgY29uc3Qgbm9kZXMgPSBhd2FpdCBxYi5jbG9uZSgpLm9mZnNldCgocGFnZSAtIDEpICogdGFrZSkubGltaXQodGFrZSArIDEpLmdldE1hbnkoKS50aGVuKG5vZGVzID0+IHtcbiAgICAgIGlmIChub2Rlcy5sZW5ndGggPiB0YWtlKSB7XG4gICAgICAgIGhhc05leHQgPSB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gbm9kZXMuc2xpY2UoMCwgdGFrZSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvdW50OiBhd2FpdCBxYkZvckNvdW50LmdldENvdW50KCksXG4gICAgICBub2RlcyxcbiAgICAgIGhhc05leHQsXG4gICAgfVxuICB9XG5cbiAgcHJvbWlzZVBhZ2luYXRlKHFiOiBTZWxlY3RRdWVyeUJ1aWxkZXI8VEVudGl0eT4sIHBhcmFtczogUGFnZVBhZ2luYXRvclBhZ2luYXRlUGFyYW1zPFRFbnRpdHk+ID0ge30pOiBQcm9taXNlUGFnZVBhZ2luYXRpb248VEVudGl0eT4ge1xuICAgIGNvbnN0IHBhZ2UgPSBNYXRoLm1heChwYXJhbXMucGFnZSA/PyAxLCAxKVxuICAgIGNvbnN0IHRha2UgPSBNYXRoLm1heCh0aGlzLnRha2VPcHRpb25zLm1pbiwgTWF0aC5taW4ocGFyYW1zLnRha2UgfHwgdGhpcy50YWtlT3B0aW9ucy5kZWZhdWx0LCB0aGlzLnRha2VPcHRpb25zLm1heCkpXG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBub3JtYWxpemVPcmRlckJ5KHBhcmFtcy5vcmRlckJ5ID8/IHRoaXMub3JkZXJCeSkpIHtcbiAgICAgIHFiLmFkZE9yZGVyQnkodGhpcy5jb2x1bW5OYW1lc1trZXldID8/IGAke3FiLmFsaWFzfS4ke2tleX1gLCB2YWx1ZSA/ICdBU0MnIDogJ0RFU0MnKVxuICAgIH1cblxuICAgIGNvbnN0IHFiRm9yQ291bnQgPSBxYi5jbG9uZSgpXG4gICAgY29uc3QgcHJvbWlzZU5vZGVzID0gcWIuY2xvbmUoKS5vZmZzZXQoKHBhZ2UgLSAxKSAqIHRha2UpLmxpbWl0KHRha2UgKyAxKS5nZXRNYW55KCkudGhlbihub2RlcyA9PiB7XG4gICAgICBsZXQgaGFzTmV4dCA9IGZhbHNlXG4gICAgICBpZiAobm9kZXMubGVuZ3RoID4gdGFrZSkge1xuICAgICAgICBoYXNOZXh0ID0gdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaGFzTmV4dCxcbiAgICAgICAgbm9kZXM6IG5vZGVzLnNsaWNlKDAsIHRha2UpLFxuICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0IGNvdW50KCkge1xuICAgICAgICByZXR1cm4gcWJGb3JDb3VudC5nZXRDb3VudCgpXG4gICAgICB9LFxuICAgICAgZ2V0IG5vZGVzKCkge1xuICAgICAgICByZXR1cm4gcHJvbWlzZU5vZGVzLnRoZW4oKHsgbm9kZXMgfSkgPT4gbm9kZXMpXG4gICAgICB9LFxuICAgICAgZ2V0IGhhc05leHQoKSB7XG4gICAgICAgIHJldHVybiBwcm9taXNlTm9kZXMudGhlbigoeyBoYXNOZXh0IH0pID0+IGhhc05leHQpXG4gICAgICB9LFxuICAgIH1cbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYWdlLXBhZ2luYXRvci50cyJdLCJuYW1lcyI6WyJQYWdlUGFnaW5hdG9yIiwiY29uc3RydWN0b3IiLCJlbnRpdHkiLCJvcmRlckJ5IiwiY29sdW1uTmFtZXMiLCJ0YWtlIiwidGFrZU9wdGlvbnMiLCJkZWZhdWx0IiwibWluIiwibWF4IiwiSW5maW5pdHkiLCJNYXRoIiwicGFnaW5hdGUiLCJxYiIsInBhcmFtcyIsInBhZ2UiLCJrZXkiLCJ2YWx1ZSIsImFkZE9yZGVyQnkiLCJhbGlhcyIsInFiRm9yQ291bnQiLCJjbG9uZSIsImhhc05leHQiLCJub2RlcyIsIm9mZnNldCIsImxpbWl0IiwiZ2V0TWFueSIsInRoZW4iLCJsZW5ndGgiLCJzbGljZSIsImNvdW50IiwiZ2V0Q291bnQiLCJwcm9taXNlUGFnaW5hdGUiLCJwcm9taXNlTm9kZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQTs7OztBQWVPLE1BQU1BLGFBQU4sQ0FBMEU7QUFLL0VDLEVBQUFBLFdBQVcsQ0FDRkMsTUFERSxFQUVUO0FBQ0VDLElBQUFBLE9BREY7QUFFRUMsSUFBQUEsV0FGRjtBQUdFQyxJQUFBQTtBQUhGLEdBRlMsRUFPVDtBQUFBOztBQUFBLFNBTk9ILE1BTVAsR0FOT0EsTUFNUDs7QUFBQTs7QUFBQTs7QUFBQTs7QUFDQSxTQUFLQyxPQUFMLEdBQWVBLE9BQWY7QUFDQSxTQUFLQyxXQUFMLEdBQW1CQSxXQUFuQixhQUFtQkEsV0FBbkIsY0FBbUJBLFdBQW5CLEdBQWtDLEVBQWxDO0FBQ0EsU0FBS0UsV0FBTCxHQUFtQixPQUFPRCxJQUFQLEtBQWdCLFFBQWhCLEdBQTJCO0FBQzVDRSxNQUFBQSxPQUFPLEVBQUVGLElBRG1DO0FBRTVDRyxNQUFBQSxHQUFHLEVBQUUsQ0FGdUM7QUFHNUNDLE1BQUFBLEdBQUcsRUFBRUM7QUFIdUMsS0FBM0IsR0FJZjtBQUNGSCxNQUFBQSxPQUFPLG1CQUFFRixJQUFGLGFBQUVBLElBQUYsdUJBQUVBLElBQUksQ0FBRUUsT0FBUix5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ZWxlY3RRdWVyeUJ1aWxkZXIsIE9iamVjdFR5cGUgfSBmcm9tICd0eXBlb3JtJ1xuXG5pbXBvcnQgeyBPcmRlckJ5LCBQcm9taXNlUGFnZVBhZ2luYXRpb24sIFBhZ2VQYWdpbmF0aW9uLCBOdWxsYWJsZSwgVGFrZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wYWdpbmF0b3InXG5pbXBvcnQgeyBub3JtYWxpemVPcmRlckJ5IH0gZnJvbSAnLi91dGlscy9ub3JtYWxpemVPcmRlckJ5J1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZVBhZ2luYXRvclBhcmFtczxURW50aXR5LCBUQ29sdW1uTmFtZXMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gIGNvbHVtbk5hbWVzPzogVENvbHVtbk5hbWVzIHwgbnVsbFxuICB0YWtlPzogTnVsbGFibGU8VGFrZT4gfCBudW1iZXIgfCBudWxsXG4gIG9yZGVyQnk6IE9yZGVyQnk8VEVudGl0eSAmIFRDb2x1bW5OYW1lcz4gfCBPcmRlckJ5PFRFbnRpdHkgJiBUQ29sdW1uTmFtZXM+W11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlUGFnaW5hdG9yUGFnaW5hdGVQYXJhbXM8VEVudGl0eSwgVENvbHVtbk5hbWVzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICBwYWdlPzogbnVtYmVyIHwgbnVsbFxuICB0YWtlPzogbnVtYmVyIHwgbnVsbFxuICBvcmRlckJ5PzogT3JkZXJCeTxURW50aXR5ICYgVENvbHVtbk5hbWVzPiB8IE9yZGVyQnk8VEVudGl0eSAmIFRDb2x1bW5OYW1lcz5bXVxufVxuXG5leHBvcnQgY2xhc3MgUGFnZVBhZ2luYXRvcjxURW50aXR5LCBUQ29sdW1uTmFtZXMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gIG9yZGVyQnk6IE9yZGVyQnk8VEVudGl0eT4gfCBPcmRlckJ5PFRFbnRpdHk+W11cbiAgY29sdW1uTmFtZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgdGFrZU9wdGlvbnM6IFRha2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZW50aXR5OiBPYmplY3RUeXBlPFRFbnRpdHk+LFxuICAgIHtcbiAgICAgIG9yZGVyQnksXG4gICAgICBjb2x1bW5OYW1lcyxcbiAgICAgIHRha2UsXG4gICAgfTogUGFnZVBhZ2luYXRvclBhcmFtczxURW50aXR5LCBUQ29sdW1uTmFtZXM+LFxuICApIHtcbiAgICB0aGlzLm9yZGVyQnkgPSBvcmRlckJ5XG4gICAgdGhpcy5jb2x1bW5OYW1lcyA9IGNvbHVtbk5hbWVzID8/IHt9XG4gICAgdGhpcy50YWtlT3B0aW9ucyA9IHR5cGVvZiB0YWtlID09PSAnbnVtYmVyJyA/IHtcbiAgICAgIGRlZmF1bHQ6IHRha2UsXG4gICAgICBtaW46IDAsXG4gICAgICBtYXg6IEluZmluaXR5LFxuICAgIH0gOiB7XG4gICAgICBkZWZhdWx0OiB0YWtlPy5kZWZhdWx0ID8/IDIwLFxuICAgICAgbWluOiBNYXRoLm1heCgwLCB0YWtlPy5taW4gPz8gMCksIC8vIG5ldmVyIG5lZ2F0aXZlXG4gICAgICBtYXg6IHRha2U/Lm1heCA/PyBJbmZpbml0eSxcbiAgICB9XG4gIH1cblxuICBhc3luYyBwYWdpbmF0ZShxYjogU2VsZWN0UXVlcnlCdWlsZGVyPFRFbnRpdHk+LCBwYXJhbXM6IFBhZ2VQYWdpbmF0b3JQYWdpbmF0ZVBhcmFtczxURW50aXR5LCBUQ29sdW1uTmFtZXM+ID0ge30pOiBQcm9taXNlPFBhZ2VQYWdpbmF0aW9uPFRFbnRpdHk+PiB7XG4gICAgY29uc3QgcGFnZSA9IE1hdGgubWF4KHBhcmFtcy5wYWdlID8/IDEsIDEpXG4gICAgY29uc3QgdGFrZSA9IE1hdGgubWF4KHRoaXMudGFrZU9wdGlvbnMubWluLCBNYXRoLm1pbihwYXJhbXMudGFrZSB8fCB0aGlzLnRha2VPcHRpb25zLmRlZmF1bHQsIHRoaXMudGFrZU9wdGlvbnMubWF4KSlcblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIG5vcm1hbGl6ZU9yZGVyQnkocGFyYW1zLm9yZGVyQnkgPz8gdGhpcy5vcmRlckJ5KSkge1xuICAgICAgcWIuYWRkT3JkZXJCeSh0aGlzLmNvbHVtbk5hbWVzW2tleV0gPz8gYCR7cWIuYWxpYXN9LiR7a2V5fWAsIHZhbHVlID8gJ0FTQycgOiAnREVTQycpXG4gICAgfVxuXG4gICAgY29uc3QgcWJGb3JDb3VudCA9IHFiLmNsb25lKClcblxuICAgIGxldCBoYXNOZXh0ID0gZmFsc2VcbiAgICBjb25zdCBub2RlcyA9IGF3YWl0IHFiLmNsb25lKCkub2Zmc2V0KChwYWdlIC0gMSkgKiB0YWtlKS5saW1pdCh0YWtlICsgMSkuZ2V0TWFueSgpLnRoZW4obm9kZXMgPT4ge1xuICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IHRha2UpIHtcbiAgICAgICAgaGFzTmV4dCA9IHRydWVcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2Rlcy5zbGljZSgwLCB0YWtlKVxuICAgIH0pXG5cbiAgICByZXR1cm4ge1xuICAgICAgY291bnQ6IGF3YWl0IHFiRm9yQ291bnQuZ2V0Q291bnQoKSxcbiAgICAgIG5vZGVzLFxuICAgICAgaGFzTmV4dCxcbiAgICB9XG4gIH1cblxuICBwcm9taXNlUGFnaW5hdGUocWI6IFNlbGVjdFF1ZXJ5QnVpbGRlcjxURW50aXR5PiwgcGFyYW1zOiBQYWdlUGFnaW5hdG9yUGFnaW5hdGVQYXJhbXM8VEVudGl0eSwgVENvbHVtbk5hbWVzPiA9IHt9KTogUHJvbWlzZVBhZ2VQYWdpbmF0aW9uPFRFbnRpdHk+IHtcbiAgICBjb25zdCBwYWdlID0gTWF0aC5tYXgocGFyYW1zLnBhZ2UgPz8gMSwgMSlcbiAgICBjb25zdCB0YWtlID0gTWF0aC5tYXgodGhpcy50YWtlT3B0aW9ucy5taW4sIE1hdGgubWluKHBhcmFtcy50YWtlIHx8IHRoaXMudGFrZU9wdGlvbnMuZGVmYXVsdCwgdGhpcy50YWtlT3B0aW9ucy5tYXgpKVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygbm9ybWFsaXplT3JkZXJCeShwYXJhbXMub3JkZXJCeSA/PyB0aGlzLm9yZGVyQnkpKSB7XG4gICAgICBxYi5hZGRPcmRlckJ5KHRoaXMuY29sdW1uTmFtZXNba2V5XSA/PyBgJHtxYi5hbGlhc30uJHtrZXl9YCwgdmFsdWUgPyAnQVNDJyA6ICdERVNDJylcbiAgICB9XG5cbiAgICBjb25zdCBxYkZvckNvdW50ID0gcWIuY2xvbmUoKVxuICAgIGNvbnN0IHByb21pc2VOb2RlcyA9IHFiLmNsb25lKCkub2Zmc2V0KChwYWdlIC0gMSkgKiB0YWtlKS5saW1pdCh0YWtlICsgMSkuZ2V0TWFueSgpLnRoZW4obm9kZXMgPT4ge1xuICAgICAgbGV0IGhhc05leHQgPSBmYWxzZVxuICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IHRha2UpIHtcbiAgICAgICAgaGFzTmV4dCA9IHRydWVcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhhc05leHQsXG4gICAgICAgIG5vZGVzOiBub2Rlcy5zbGljZSgwLCB0YWtlKSxcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGdldCBjb3VudCgpIHtcbiAgICAgICAgcmV0dXJuIHFiRm9yQ291bnQuZ2V0Q291bnQoKVxuICAgICAgfSxcbiAgICAgIGdldCBub2RlcygpIHtcbiAgICAgICAgcmV0dXJuIHByb21pc2VOb2Rlcy50aGVuKCh7IG5vZGVzIH0pID0+IG5vZGVzKVxuICAgICAgfSxcbiAgICAgIGdldCBoYXNOZXh0KCkge1xuICAgICAgICByZXR1cm4gcHJvbWlzZU5vZGVzLnRoZW4oKHsgaGFzTmV4dCB9KSA9PiBoYXNOZXh0KVxuICAgICAgfSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
{
"name": "typeorm-paginator",
"version": "0.4.0",
"version": "0.5.0",
"description": "TypeORM query builder pagination library.",

@@ -5,0 +5,0 @@ "keywords": [

import { SelectQueryBuilder, ObjectType } from 'typeorm'
import { CursorPagination, Cursor, OrderBy, ColumnNameMap, CursorTransformer, Nullable, Take } from './interfaces/paginator'
import { CursorPagination, Cursor, OrderBy, CursorTransformer, Nullable, Take } from './interfaces/paginator'
import { Base64Transformer } from './transformers/base64-transformer'
import { normalizeOrderBy } from './utils/normalizeOrderBy'
export interface CursorPaginatorParams<TEntity> {
orderBy: OrderBy<TEntity> | OrderBy<TEntity>[]
columnNames?: ColumnNameMap<TEntity> | null
export interface CursorPaginatorParams<TEntity, TColumnNames extends Record<string, string>> {
orderBy: OrderBy<TEntity & TColumnNames> | OrderBy<TEntity & TColumnNames>[]
columnNames?: TColumnNames | null
take?: Nullable<Take> | number | null

@@ -20,6 +21,6 @@ transformer?: CursorTransformer<TEntity> | null

export class CursorPaginator<TEntity> {
export class CursorPaginator<TEntity, TColumnNames extends Record<string, string>> {
orders: [keyof TEntity, boolean][] = []
columnNames: ColumnNameMap<TEntity>
orders: [string, boolean][] = []
columnNames: Record<string, string>
takeOptions: Take

@@ -35,9 +36,5 @@ transformer: CursorTransformer<TEntity>

transformer,
}: CursorPaginatorParams<TEntity>,
}: CursorPaginatorParams<TEntity, TColumnNames>,
) {
for (const order of Array.isArray(orderBy) ? orderBy : [orderBy]) {
for (const [key, value] of Object.entries(order)) {
this.orders.push([key as keyof TEntity, value as boolean])
}
}
this.orders = normalizeOrderBy(orderBy)
this.columnNames = columnNames ?? {}

@@ -123,7 +120,7 @@ this.takeOptions = typeof take === 'number' ? {

const columnName = this.columnNames[key] ?? `${qb.alias}.${key}`
queryParts.push(`(${queryPrefix}${columnName} ${!asc !== isNext ? '>' : '<'} :cursor__${key as string})`)
queryPrefix = `${queryPrefix}${columnName} = :cursor__${key as string} AND `
queryParts.push(`(${queryPrefix}${columnName} ${!asc !== isNext ? '>' : '<'} :cursor__${key})`)
queryPrefix = `${queryPrefix}${columnName} = :cursor__${key} AND `
const column = metadata.findColumnWithPropertyPath(key as string)
queryParams[`cursor__${key as string}`] = column ? qb.connection.driver.preparePersistentValue(cursor[key], column) : cursor[key]
const column = metadata.findColumnWithPropertyPath(key)
queryParams[`cursor__${key}`] = column ? qb.connection.driver.preparePersistentValue(cursor[key as keyof TEntity], column) : cursor[key as keyof TEntity]
}

@@ -137,3 +134,3 @@

for (const [key, _] of this.orders) {
cursor[key] = node[key]
cursor[key as keyof TEntity] = node[key as keyof TEntity]
}

@@ -140,0 +137,0 @@ return cursor

@@ -16,6 +16,2 @@

export type ColumnNameMap<TEntity> = {
[TKey in keyof TEntity]?: string
}
export type Cursor<TEntity> = {

@@ -22,0 +18,0 @@ [TKey in keyof TEntity]?: any

@@ -187,2 +187,45 @@ import { Column, Connection, createConnection, Entity, PrimaryGeneratedColumn } from 'typeorm'

})
it('test page paginate by custom column name', async () => {
const repoUsers = connection.getRepository(User)
const nodes = [
repoUsers.create({ name: 'c' }),
repoUsers.create({ name: 'b' }),
repoUsers.create({ name: 'a' }),
repoUsers.create({ name: 'c' }),
repoUsers.create({ name: 'b' }),
repoUsers.create({ name: 'c' }),
]
await repoUsers.save(nodes)
const paginator = new PagePaginator(User, {
columnNames: {
customName: 'User.name',
},
orderBy: [
{ id: false },
],
})
const pagination1 = await paginator.paginate(repoUsers.createQueryBuilder(), {
orderBy: [
{ customName: true },
{ id: false },
],
})
expect(pagination1).toEqual({
count: 6,
nodes: [
nodes[2],
nodes[4],
nodes[1],
nodes[5],
nodes[3],
nodes[0],
],
hasNext: false,
})
})
})
import { SelectQueryBuilder, ObjectType } from 'typeorm'
import { OrderBy, ColumnNameMap, PromisePagePagination, PagePagination, Nullable, Take } from './interfaces/paginator'
import { OrderBy, PromisePagePagination, PagePagination, Nullable, Take } from './interfaces/paginator'
import { normalizeOrderBy } from './utils/normalizeOrderBy'
function normalizeOrderBy<TEntity>(orderBy: OrderBy<TEntity> | OrderBy<TEntity>[]): [keyof TEntity, boolean][] {
const orders = [] as [keyof TEntity, boolean][]
for (const order of Array.isArray(orderBy) ? orderBy : [orderBy]) {
for (const [key, value] of Object.entries(order)) {
orders.push([key as keyof TEntity, value as boolean])
}
}
return orders
}
export interface PagePaginatorParams<TEntity> {
orderBy: OrderBy<TEntity> | OrderBy<TEntity>[]
columnNames?: ColumnNameMap<TEntity> | null
export interface PagePaginatorParams<TEntity, TColumnNames extends Record<string, string>> {
columnNames?: TColumnNames | null
take?: Nullable<Take> | number | null
orderBy: OrderBy<TEntity & TColumnNames> | OrderBy<TEntity & TColumnNames>[]
}
export interface PagePaginatorPaginateParams<TEntity> {
export interface PagePaginatorPaginateParams<TEntity, TColumnNames extends Record<string, string>> {
page?: number | null
take?: number | null
orderBy?: OrderBy<TEntity> | OrderBy<TEntity>[]
orderBy?: OrderBy<TEntity & TColumnNames> | OrderBy<TEntity & TColumnNames>[]
}
export class PagePaginator<TEntity> {
export class PagePaginator<TEntity, TColumnNames extends Record<string, string>> {
orderBy: OrderBy<TEntity> | OrderBy<TEntity>[]
columnNames: ColumnNameMap<TEntity>
columnNames: Record<string, string>
takeOptions: Take

@@ -39,3 +30,3 @@

take,
}: PagePaginatorParams<TEntity>,
}: PagePaginatorParams<TEntity, TColumnNames>,
) {

@@ -55,3 +46,3 @@ this.orderBy = orderBy

async paginate(qb: SelectQueryBuilder<TEntity>, params: PagePaginatorPaginateParams<TEntity> = {}): Promise<PagePagination<TEntity>> {
async paginate(qb: SelectQueryBuilder<TEntity>, params: PagePaginatorPaginateParams<TEntity, TColumnNames> = {}): Promise<PagePagination<TEntity>> {
const page = Math.max(params.page ?? 1, 1)

@@ -81,3 +72,3 @@ const take = Math.max(this.takeOptions.min, Math.min(params.take || this.takeOptions.default, this.takeOptions.max))

promisePaginate(qb: SelectQueryBuilder<TEntity>, params: PagePaginatorPaginateParams<TEntity> = {}): PromisePagePagination<TEntity> {
promisePaginate(qb: SelectQueryBuilder<TEntity>, params: PagePaginatorPaginateParams<TEntity, TColumnNames> = {}): PromisePagePagination<TEntity> {
const page = Math.max(params.page ?? 1, 1)

@@ -84,0 +75,0 @@ const take = Math.max(this.takeOptions.min, Math.min(params.take || this.takeOptions.default, this.takeOptions.max))

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc