Socket
Socket
Sign inDemoInstall

nukak

Package Overview
Dependencies
2
Maintainers
1
Versions
61
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.3.0 to 0.3.1

7

CHANGELOG.md

@@ -7,2 +7,9 @@ # Changelog

## [0.3.1] - 2023-10-19
1. Remove `$group` and `$having` as they detriment type safety as currently implemented (support may be redesigned later if required).
2. Improve type safety of `$project` operator.
3. Improve type safety of `$filter` operator.
4. Remove projection operators (`$count`, `$min`, `$max`, `$min`, and `$sum`) as they detriment type safety as currently implemented. This can be done via Virtual fields instead as currently supported for better type safety.
## [0.3.0] - 2023-10-18

@@ -9,0 +16,0 @@

14

dialect/abstractSqlDialect.d.ts

@@ -1,2 +0,2 @@

import { QueryFilter, Scalar, QueryFilterFieldOperatorMap, QuerySort, QueryPager, FieldKey, QueryProject, Type, QueryOptions, QueryDialect, QueryFilterOptions, QueryComparisonOptions, QueryFilterMap, QueryProjectOptions, QueryRaw, QueryProjectOperation, QuerySearch, QueryCriteria } from '../type/index.js';
import { QueryFilter, Scalar, QueryFilterFieldOperatorMap, QuerySort, QueryPager, FieldKey, QueryProject, Type, QueryOptions, QueryDialect, QueryFilterOptions, QueryComparisonOptions, QueryFilterMap, QueryProjectOptions, QuerySearch, QueryCriteria } from '../type/index.js';
export declare abstract class AbstractSqlDialect implements QueryDialect {

@@ -7,5 +7,4 @@ readonly escapeIdChar: '`' | '"';

constructor(escapeIdChar?: '`' | '"', beginTransactionCommand?: string);
criteria<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project: P, opts?: QueryOptions): string;
projectFields<E, P extends QueryProject<E>>(entity: Type<E>, project: P, opts?: QueryProjectOptions): string;
projectOperation<E>(operation: QueryProjectOperation<E>, alias: string): QueryRaw;
criteria<E>(entity: Type<E>, qm: QueryCriteria<E>, project: QueryProject<E>, opts?: QueryOptions): string;
projectFields<E>(entity: Type<E>, project: QueryProject<E>, opts: QueryProjectOptions): string;
projectRelations<E>(entity: Type<E>, project?: QueryProject<E>, { prefix }?: {

@@ -18,11 +17,10 @@ prefix?: string;

select<E>(entity: Type<E>, project: QueryProject<E>, opts?: QueryOptions): string;
where<E>(entity: Type<E>, filter?: QueryFilter<E>, opts?: QueryFilterOptions): string;
where<E>(entity: Type<E>, filter: QueryFilter<E>, opts: QueryFilterOptions): string;
compare<E, K extends keyof QueryFilterMap<E>>(entity: Type<E>, key: K, val: QueryFilterMap<E>[K], opts?: QueryComparisonOptions): string;
compareFieldOperator<E, K extends keyof QueryFilterFieldOperatorMap<E>>(entity: Type<E>, key: FieldKey<E>, op: K, val: QueryFilterFieldOperatorMap<E>[K], opts?: QueryOptions): string;
getComparisonKey<E>(entity: Type<E>, key: FieldKey<E>, { prefix }?: QueryOptions): Scalar;
group<E>(entity: Type<E>, fields: readonly FieldKey<E>[]): string;
sort<E>(entity: Type<E>, sort: QuerySort<E>, { prefix }?: QueryOptions): string;
sort<E>(entity: Type<E>, sort: QuerySort<E>, { prefix }: QueryOptions): string;
pager(opts: QueryPager): string;
count<E>(entity: Type<E>, qm?: QuerySearch<E>, opts?: QueryOptions): string;
find<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project?: P, opts?: QueryOptions): string;
find<E>(entity: Type<E>, qm: QueryCriteria<E>, project?: QueryProject<E>, opts?: QueryOptions): string;
insert<E>(entity: Type<E>, payload: E | E[]): string;

@@ -29,0 +27,0 @@ update<E>(entity: Type<E>, qm: QuerySearch<E>, payload: E, opts?: QueryOptions): string;

@@ -6,3 +6,3 @@ {

"license": "MIT",
"version": "0.3.0",
"version": "0.3.1",
"type": "module",

@@ -9,0 +9,0 @@ "main": "./index.js",

@@ -1,7 +0,7 @@

import type { IdValue, Merge, Querier, QueryCriteria, QueryOneCriteria, QueryOptions, QueryProject, QuerySearch, RelationKey, Repository, Type } from '../type/index.js';
import type { IdValue, Querier, QueryCriteria, QueryOneCriteria, QueryOptions, QueryProject, QuerySearch, RelationKey, Repository, Type } from '../type/index.js';
export declare abstract class AbstractQuerier implements Querier {
findOneById<E, P extends QueryProject<E>>(entity: Type<E>, id: IdValue<E>, project?: P): Promise<Merge<E, P>>;
findOne<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryOneCriteria<E>, project?: P): Promise<Merge<E, P>>;
abstract findMany<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project?: P): Promise<Merge<E, P>[]>;
findManyAndCount<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project?: P): Promise<[Merge<E, P>[], number]>;
findOneById<E>(entity: Type<E>, id: IdValue<E>, project?: QueryProject<E>): Promise<E>;
findOne<E>(entity: Type<E>, qm: QueryOneCriteria<E>, project?: QueryProject<E>): Promise<E>;
abstract findMany<E>(entity: Type<E>, qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<E[]>;
findManyAndCount<E>(entity: Type<E>, qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<[E[], number]>;
abstract count<E>(entity: Type<E>, qm?: QuerySearch<E>): Promise<number>;

@@ -8,0 +8,0 @@ insertOne<E>(entity: Type<E>, payload: E): Promise<IdValue<E>>;

@@ -224,2 +224,2 @@ import { getMeta } from '../entity/decorator/index.js';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE1BQU0sT0FBZ0IsZUFBZTtJQUNuQyxXQUFXLENBQStCLE1BQWUsRUFBRSxFQUFjLEVBQUUsT0FBVztRQUNwRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUErQixNQUFlLEVBQUUsRUFBdUIsRUFBRSxPQUFXO1FBQy9GLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQVFELGdCQUFnQixDQUErQixNQUFlLEVBQUUsRUFBb0IsRUFBRSxPQUFXO1FBQy9GLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUlELEtBQUssQ0FBQyxTQUFTLENBQUksTUFB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RTtZQUN0QyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDaEUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDcEUsT0FBTztTQUNSO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBSSxNQUFlO1FBQzlCLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUlELEtBQUssQ0FBQyxXQUFXLENBQUksUUFBMEI7UUFDN0MsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDakMsTUFBTSxHQUFHLENBQUM7U0FDWDtJQUNILENBQUM7Q0FTRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSWRWYWx1ZSxcbiAgTWVyZ2UsXG4gIFF1ZXJpZXIsXG4gIFF1ZXJ5LFxuICBRdWVyeUNyaXRlcmlhLFxuICBRdWVyeU9uZUNyaXRlcmlhLFxuICBRdWVyeU9wdGlvbnMsXG4gIFF1ZXJ5UHJvamVjdCxcbiAgUXVlcnlTZWFyY2gsXG4gIFJlbGF0aW9uS2V5LFxuICBSZWxhdGlvblZhbHVlLFxuICBSZXBvc2l0b3J5LFxuICBUeXBlLFxufSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvZGVjb3JhdG9yL2luZGV4LmpzJztcbmltcG9ydCB7IGNsb25lLCBnZXRLZXlzLCBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLCBnZXRQZXJzaXN0YWJsZVJlbGF0aW9ucyB9IGZyb20gJy4uL3V0aWwvaW5kZXguanMnO1xuaW1wb3J0IHsgR2VuZXJpY1JlcG9zaXRvcnkgfSBmcm9tICcuLi9yZXBvc2l0b3J5L2luZGV4LmpzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UXVlcmllciBpbXBsZW1lbnRzIFF1ZXJpZXIge1xuICBmaW5kT25lQnlJZDxFLCBQIGV4dGVuZHMgUXVlcnlQcm9qZWN0PEU+PihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBwcm9qZWN0PzogUCkge1xuICAgIHJldHVybiB0aGlzLmZpbmRPbmUoZW50aXR5LCB7ICRmaWx0ZXI6IGlkIH0sIHByb2plY3QpO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZTxFLCBQIGV4dGVuZHMgUXVlcnlQcm9qZWN0PEU+PihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeU9uZUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUCkge1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmZpbmRNYW55KGVudGl0eSwgeyAuLi5xbSwgJGxpbWl0OiAxIH0sIHByb2plY3QpO1xuICAgIHJldHVybiByb3dzWzBdO1xuICB9XG5cbiAgYWJzdHJhY3QgZmluZE1hbnk8RSwgUCBleHRlbmRzIFF1ZXJ5UHJvamVjdDxFPj4oXG4gICAgZW50aXR5OiBUeXBlPEU+LFxuICAgIHFtOiBRdWVyeUNyaXRlcmlhPEU+LFxuICAgIHByb2plY3Q/OiBQLFxuICApOiBQcm9taXNlPE1lcmdlPEUsIFA+W10+O1xuXG4gIGZpbmRNYW55QW5kQ291bnQ8RSwgUCBleHRlbmRzIFF1ZXJ5UHJvamVjdDxFPj4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgcHJvamVjdD86IFApIHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3RoaXMuZmluZE1hbnkoZW50aXR5LCBxbSwgcHJvamVjdCksIHRoaXMuY291bnQoZW50aXR5LCBxbSldKTtcbiAgfVxuXG4gIGFic3RyYWN0IGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW0/OiBRdWVyeVNlYXJjaDxFPik6IFByb21pc2U8bnVtYmVyPjtcblxuICBhc3luYyBpbnNlcnRPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgW2lkXSA9IGF3YWl0IHRoaXMuaW5zZXJ0TWFueShlbnRpdHksIFtwYXlsb2FkXSk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgYWJzdHJhY3QgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSk6IFByb21pc2U8SWRWYWx1ZTxFPltdPjtcblxuICB1cGRhdGVPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVNYW55KGVudGl0eSwgeyAkZmlsdGVyOiBpZCB9LCBwYXlsb2FkKTtcbiAgfVxuXG4gIGFic3RyYWN0IHVwZGF0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZGVsZXRlT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlTWFueShlbnRpdHksIHsgJGZpbHRlcjogaWQgfSwgb3B0cyk7XG4gIH1cblxuICBhYnN0cmFjdCBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGFzeW5jIHNhdmVPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgW2lkXSA9IGF3YWl0IHRoaXMuc2F2ZU1hbnkoZW50aXR5LCBbcGF5bG9hZF0pO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGFzeW5jIHNhdmVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBpZHM6IElkVmFsdWU8RT5bXSA9IFtdO1xuICAgIGNvbnN0IHVwZGF0ZXM6IEVbXSA9IFtdO1xuICAgIGNvbnN0IGluc2VydHM6IEVbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBpdCBvZiBwYXlsb2FkKSB7XG4gICAgICBpZiAoaXRbbWV0YS5pZF0pIHtcbiAgICAgICAgaWYgKGdldEtleXMoaXQpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIGlkcy5wdXNoKGl0W21ldGEuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVzLnB1c2goaXQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnNlcnRzLnB1c2goaXQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICAuLi5pZHMsXG4gICAgICAuLi4oaW5zZXJ0cy5sZW5ndGggPyBhd2FpdCB0aGlzLmluc2VydE1hbnkoZW50aXR5LCBpbnNlcnRzKSA6IFtdKSxcbiAgICAgIC4uLnVwZGF0ZXMubWFwKGFzeW5jIChpdCkgPT4ge1xuICAgICAgICBjb25zdCB7IFttZXRhLmlkXTogaWQsIC4uLmRhdGEgfSA9IGl0O1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9uZUJ5SWQoZW50aXR5LCBpZCwgZGF0YSBhcyBFKTtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgfSksXG4gICAgXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZmluZFRvTWFueVJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxhdGlvbnMgPSBnZXRQcm9qZWN0UmVsYXRpb25LZXlzKG1ldGEsIHByb2plY3QpO1xuXG4gICAgZm9yIChjb25zdCByZWxLZXkgb2YgcmVsYXRpb25zKSB7XG4gICAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgICBjb25zdCByZWxQcm9qZWN0ID0gY2xvbmUocHJvamVjdFtyZWxLZXkgYXMgc3RyaW5nXSk7XG4gICAgICBjb25zdCByZWxRdWVyeTogUXVlcnk8dW5rbm93bj4gPVxuICAgICAgICByZWxQcm9qZWN0ID09PSB0cnVlIHx8IHJlbFByb2plY3QgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8ge31cbiAgICAgICAgICA6IEFycmF5LmlzQXJyYXkocmVsUHJvamVjdClcbiAgICAgICAgICA/IHsgJHByb2plY3Q6IHJlbFByb2plY3QgfVxuICAgICAgICAgIDogcmVsUHJvamVjdDtcbiAgICAgIGNvbnN0IGlkcyA9IHBheWxvYWQubWFwKChpdCkgPT4gaXRbbWV0YS5pZF0pO1xuXG4gICAgICBpZiAocmVsT3B0cy50aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSByZWxPcHRzLnRocm91Z2goKTtcbiAgICAgICAgY29uc3QgdGhyb3VnaE1ldGEgPSBnZXRNZXRhKHRocm91Z2hFbnRpdHkpO1xuICAgICAgICBjb25zdCB0YXJnZXRSZWxLZXkgPSBPYmplY3Qua2V5cyh0aHJvdWdoTWV0YS5yZWxhdGlvbnMpLmZpbmQoKGtleSkgPT5cbiAgICAgICAgICB0aHJvdWdoTWV0YS5yZWxhdGlvbnNba2V5XS5yZWZlcmVuY2VzLnNvbWUoKHsgbG9jYWwgfSkgPT4gbG9jYWwgPT09IHJlbE9wdHMucmVmZXJlbmNlc1sxXS5sb2NhbCksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHRocm91Z2hGb3VuZHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KFxuICAgICAgICAgIHRocm91Z2hFbnRpdHksXG4gICAgICAgICAge1xuICAgICAgICAgICAgJGZpbHRlcjoge1xuICAgICAgICAgICAgICBbbG9jYWxGaWVsZF06IGlkcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBbbG9jYWxGaWVsZF06IHRydWUsXG4gICAgICAgICAgICBbdGFyZ2V0UmVsS2V5XToge1xuICAgICAgICAgICAgICAuLi5yZWxRdWVyeSxcbiAgICAgICAgICAgICAgJHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb3VuZHMgPSB0aHJvdWdoRm91bmRzLm1hcCgoaXQpID0+ICh7IC4uLml0W3RhcmdldFJlbEtleV0sIFtsb2NhbEZpZWxkXTogaXRbbG9jYWxGaWVsZF0gfSkpO1xuICAgICAgICB0aGlzLnB1dENoaWxkcmVuSW5QYXJlbnRzKHBheWxvYWQsIGZvdW5kcywgbWV0YS5pZCwgbG9jYWxGaWVsZCwgcmVsS2V5KTtcbiAgICAgIH0gZWxzZSBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJzFtJykge1xuICAgICAgICBjb25zdCBmb3JlaWduRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgICAgaWYgKHJlbFF1ZXJ5LiRwcm9qZWN0KSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsUXVlcnkuJHByb2plY3QpKSB7XG4gICAgICAgICAgICBpZiAoIXJlbFF1ZXJ5LiRwcm9qZWN0LmluY2x1ZGVzKGZvcmVpZ25GaWVsZCkpIHtcbiAgICAgICAgICAgICAgcmVsUXVlcnkuJHByb2plY3QucHVzaChmb3JlaWduRmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoIXJlbFF1ZXJ5LiRwcm9qZWN0W2ZvcmVpZ25GaWVsZF0pIHtcbiAgICAgICAgICAgIHJlbFF1ZXJ5LiRwcm9qZWN0W2ZvcmVpZ25GaWVsZF0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZWxRdWVyeS4kZmlsdGVyID0geyBbZm9yZWlnbkZpZWxkXTogaWRzIH07XG4gICAgICAgIGNvbnN0IHsgJHByb2plY3Q6IHJlbFByb2plY3QsIC4uLnJlbFFtIH0gPSByZWxRdWVyeTtcbiAgICAgICAgY29uc3QgZm91bmRzID0gYXdhaXQgdGhpcy5maW5kTWFueShyZWxFbnRpdHksIHJlbFFtLCByZWxQcm9qZWN0KTtcbiAgICAgICAgdGhpcy5wdXRDaGlsZHJlbkluUGFyZW50cyhwYXlsb2FkLCBmb3VuZHMsIG1ldGEuaWQsIGZvcmVpZ25GaWVsZCwgcmVsS2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHV0Q2hpbGRyZW5JblBhcmVudHM8RT4oXG4gICAgcGFyZW50czogRVtdLFxuICAgIGNoaWxkcmVuOiBFW10sXG4gICAgcGFyZW50SWRLZXk6IHN0cmluZyxcbiAgICByZWZlcmVuY2VLZXk6IHN0cmluZyxcbiAgICByZWxLZXk6IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW5CeVBhcmVudE1hcCA9IGNoaWxkcmVuLnJlZHVjZSgoYWNjLCBjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgcGFyZW5JZCA9IGNoaWxkW3JlZmVyZW5jZUtleV07XG4gICAgICBpZiAoIWFjY1twYXJlbklkXSkge1xuICAgICAgICBhY2NbcGFyZW5JZF0gPSBbXTtcbiAgICAgIH1cbiAgICAgIGFjY1twYXJlbklkXS5wdXNoKGNoaWxkKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuXG4gICAgZm9yIChjb25zdCBwYXJlbnQgb2YgcGFyZW50cykge1xuICAgICAgY29uc3QgcGFyZW50SWQgPSBwYXJlbnRbcGFyZW50SWRLZXldO1xuICAgICAgcGFyZW50W3JlbEtleV0gPSBjaGlsZHJlbkJ5UGFyZW50TWFwW3BhcmVudElkXTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5zZXJ0UmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHBheWxvYWQubWFwKChpdCkgPT4ge1xuICAgICAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgaXQsICdwZXJzaXN0Jyk7XG4gICAgICAgIGlmICghcmVsS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHJlbEtleXMubWFwKChyZWxLZXkpID0+IHRoaXMuc2F2ZVJlbGF0aW9uKGVudGl0eSwgaXQsIHJlbEtleSkpKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgdXBkYXRlUmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPiwgY3JpdGVyaWE6IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgcGF5bG9hZCwgJ3BlcnNpc3QnKTtcblxuICAgIGlmICghcmVsS2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KGVudGl0eSwgY3JpdGVyaWEsIFttZXRhLmlkXSk7XG5cbiAgICBjb25zdCBpZHMgPSBmb3VuZHMubWFwKChmb3VuZCkgPT4gZm91bmRbbWV0YS5pZF0pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBpZHMubWFwKChpZCkgPT5cbiAgICAgICAgUHJvbWlzZS5hbGwocmVsS2V5cy5tYXAoKHJlbEtleSkgPT4gdGhpcy5zYXZlUmVsYXRpb24oZW50aXR5LCB7IC4uLnBheWxvYWQsIFttZXRhLmlkXTogaWQgfSwgcmVsS2V5LCB0cnVlKSkpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlbGV0ZVJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIGlkczogSWRWYWx1ZTxFPltdLCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgbWV0YS5yZWxhdGlvbnMgYXMgRSwgJ2RlbGV0ZScpO1xuXG4gICAgZm9yIChjb25zdCByZWxLZXkgb2YgcmVsS2V5cykge1xuICAgICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleV07XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlbE9wdHMucmVmZXJlbmNlc1swXS5sb2NhbDtcbiAgICAgIGlmIChyZWxPcHRzLnRocm91Z2gpIHtcbiAgICAgICAgY29uc3QgdGhyb3VnaEVudGl0eSA9IHJlbE9wdHMudGhyb3VnaCgpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkodGhyb3VnaEVudGl0eSwgeyAkZmlsdGVyOiB7IFtsb2NhbEZpZWxkXTogaWRzIH0gfSwgb3B0cyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueShyZWxFbnRpdHksIHsgW2xvY2FsRmllbGRdOiBpZHMgfSwgb3B0cyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNhdmVSZWxhdGlvbjxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUsIHJlbEtleTogUmVsYXRpb25LZXk8RT4sIGlzVXBkYXRlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWQgPSBwYXlsb2FkW21ldGEuaWRdO1xuICAgIGNvbnN0IHsgZW50aXR5OiBlbnRpdHlHZXR0ZXIsIGNhcmRpbmFsaXR5LCByZWZlcmVuY2VzLCB0aHJvdWdoIH0gPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgIGNvbnN0IHJlbEVudGl0eSA9IGVudGl0eUdldHRlcigpO1xuICAgIGNvbnN0IHJlbFBheWxvYWQgPSBwYXlsb2FkW3JlbEtleV0gYXMgdW5rbm93biBhcyBSZWxhdGlvblZhbHVlPEU+W107XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICcxbScgfHwgY2FyZGluYWxpdHkgPT09ICdtbScpIHtcbiAgICAgIGlmICh0aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWZlcmVuY2VzWzBdLmxvY2FsO1xuXG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSB0aHJvdWdoKCk7XG4gICAgICAgIGlmIChpc1VwZGF0ZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueSh0aHJvdWdoRW50aXR5LCB7ICRmaWx0ZXI6IHsgW2xvY2FsRmllbGRdOiBpZCB9IH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWxQYXlsb2FkKSB7XG4gICAgICAgICAgY29uc3Qgc2F2ZWRJZHMgPSBhd2FpdCB0aGlzLnNhdmVNYW55KHJlbEVudGl0eSwgcmVsUGF5bG9hZCk7XG4gICAgICAgICAgY29uc3QgdGhyb3VnaEJvZGllcyA9IHNhdmVkSWRzLm1hcCgocmVsSWQpID0+ICh7XG4gICAgICAgICAgICBbcmVmZXJlbmNlc1swXS5sb2NhbF06IGlkLFxuICAgICAgICAgICAgW3JlZmVyZW5jZXNbMV0ubG9jYWxdOiByZWxJZCxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pbnNlcnRNYW55KHRocm91Z2hFbnRpdHksIHRocm91Z2hCb2RpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZvcmVpZ25GaWVsZCA9IHJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgIGlmIChpc1VwZGF0ZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkocmVsRW50aXR5LCB7ICRmaWx0ZXI6IHsgW2ZvcmVpZ25GaWVsZF06IGlkIH0gfSk7XG4gICAgICB9XG4gICAgICBpZiAocmVsUGF5bG9hZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0IG9mIHJlbFBheWxvYWQpIHtcbiAgICAgICAgICBpdFtmb3JlaWduRmllbGRdID0gaWQ7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlTWFueShyZWxFbnRpdHksIHJlbFBheWxvYWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjYXJkaW5hbGl0eSA9PT0gJzExJykge1xuICAgICAgY29uc3QgZm9yZWlnbkZpZWxkID0gcmVmZXJlbmNlc1swXS5mb3JlaWduO1xuICAgICAgaWYgKHJlbFBheWxvYWQgPT09IG51bGwpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHJlbEVudGl0eSwgeyAkZmlsdGVyOiB7IFtmb3JlaWduRmllbGRdOiBpZCB9IH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnNhdmVPbmUocmVsRW50aXR5LCB7IC4uLnJlbFBheWxvYWQsIFtmb3JlaWduRmllbGRdOiBpZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICdtMScgJiYgcmVsUGF5bG9hZCkge1xuICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICBjb25zdCByZWZlcmVuY2VJZCA9IGF3YWl0IHRoaXMuaW5zZXJ0T25lKHJlbEVudGl0eSwgcmVsUGF5bG9hZCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9uZUJ5SWQoZW50aXR5LCBpZCwgeyBbbG9jYWxGaWVsZF06IHJlZmVyZW5jZUlkIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGdldFJlcG9zaXRvcnk8RT4oZW50aXR5OiBUeXBlPEU+KTogUmVwb3NpdG9yeTxFPiB7XG4gICAgcmV0dXJuIG5ldyBHZW5lcmljUmVwb3NpdG9yeShlbnRpdHksIHRoaXMpO1xuICB9XG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaGFzT3BlblRyYW5zYWN0aW9uOiBib29sZWFuO1xuXG4gIGFzeW5jIHRyYW5zYWN0aW9uPFQ+KGNhbGxiYWNrOiAoKSA9PiBQcm9taXNlPFQ+KSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgY2FsbGJhY2soKTtcbiAgICAgIGF3YWl0IHRoaXMuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBhd2FpdCB0aGlzLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBhYnN0cmFjdCBiZWdpblRyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgY29tbWl0VHJhbnNhY3Rpb24oKTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCByb2xsYmFja1RyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgcmVsZWFzZSgpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE1BQU0sT0FBZ0IsZUFBZTtJQUNuQyxXQUFXLENBQUksTUFBZSxFQUFFLEVBQWMsRUFBRSxPQUF5QjtRQUN2RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFJLE1BQWUsRUFBRSxFQUF1QixFQUFFLE9BQXlCO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUlELGdCQUFnQixDQUFJLE1BQWUsRUFBRSxFQUFvQixFQUFFLE9BQXlCO1FBQ2xGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUlELEtBQUssQ0FBQyxTQUFTLENBQUksTUFB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RTtZQUN0QyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDaEUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDcEUsT0FBTztTQUNSO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBSSxNQUFlO1FBQzlCLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUlELEtBQUssQ0FBQyxXQUFXLENBQUksUUFBMEI7UUFDN0MsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDakMsTUFBTSxHQUFHLENBQUM7U0FDWDtJQUNILENBQUM7Q0FTRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSWRWYWx1ZSxcbiAgUXVlcmllcixcbiAgUXVlcnksXG4gIFF1ZXJ5Q3JpdGVyaWEsXG4gIFF1ZXJ5T25lQ3JpdGVyaWEsXG4gIFF1ZXJ5T3B0aW9ucyxcbiAgUXVlcnlQcm9qZWN0LFxuICBRdWVyeVNlYXJjaCxcbiAgUmVsYXRpb25LZXksXG4gIFJlbGF0aW9uVmFsdWUsXG4gIFJlcG9zaXRvcnksXG4gIFR5cGUsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJy4uL2VudGl0eS9kZWNvcmF0b3IvaW5kZXguanMnO1xuaW1wb3J0IHsgY2xvbmUsIGdldEtleXMsIGdldFByb2plY3RSZWxhdGlvbktleXMsIGdldFBlcnNpc3RhYmxlUmVsYXRpb25zIH0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcyc7XG5pbXBvcnQgeyBHZW5lcmljUmVwb3NpdG9yeSB9IGZyb20gJy4uL3JlcG9zaXRvcnkvaW5kZXguanMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RRdWVyaWVyIGltcGxlbWVudHMgUXVlcmllciB7XG4gIGZpbmRPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHByb2plY3Q/OiBRdWVyeVByb2plY3Q8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5maW5kT25lKGVudGl0eSwgeyAkZmlsdGVyOiBpZCB9LCBwcm9qZWN0KTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlPbmVDcml0ZXJpYTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPikge1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmZpbmRNYW55KGVudGl0eSwgeyAuLi5xbSwgJGxpbWl0OiAxIH0sIHByb2plY3QpO1xuICAgIHJldHVybiByb3dzWzBdO1xuICB9XG5cbiAgYWJzdHJhY3QgZmluZE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPik6IFByb21pc2U8RVtdPjtcblxuICBmaW5kTWFueUFuZENvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHByb2plY3Q/OiBRdWVyeVByb2plY3Q8RT4pIHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3RoaXMuZmluZE1hbnkoZW50aXR5LCBxbSwgcHJvamVjdCksIHRoaXMuY291bnQoZW50aXR5LCBxbSldKTtcbiAgfVxuXG4gIGFic3RyYWN0IGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW0/OiBRdWVyeVNlYXJjaDxFPik6IFByb21pc2U8bnVtYmVyPjtcblxuICBhc3luYyBpbnNlcnRPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgW2lkXSA9IGF3YWl0IHRoaXMuaW5zZXJ0TWFueShlbnRpdHksIFtwYXlsb2FkXSk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgYWJzdHJhY3QgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSk6IFByb21pc2U8SWRWYWx1ZTxFPltdPjtcblxuICB1cGRhdGVPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVNYW55KGVudGl0eSwgeyAkZmlsdGVyOiBpZCB9LCBwYXlsb2FkKTtcbiAgfVxuXG4gIGFic3RyYWN0IHVwZGF0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZGVsZXRlT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlTWFueShlbnRpdHksIHsgJGZpbHRlcjogaWQgfSwgb3B0cyk7XG4gIH1cblxuICBhYnN0cmFjdCBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGFzeW5jIHNhdmVPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgW2lkXSA9IGF3YWl0IHRoaXMuc2F2ZU1hbnkoZW50aXR5LCBbcGF5bG9hZF0pO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGFzeW5jIHNhdmVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBpZHM6IElkVmFsdWU8RT5bXSA9IFtdO1xuICAgIGNvbnN0IHVwZGF0ZXM6IEVbXSA9IFtdO1xuICAgIGNvbnN0IGluc2VydHM6IEVbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBpdCBvZiBwYXlsb2FkKSB7XG4gICAgICBpZiAoaXRbbWV0YS5pZF0pIHtcbiAgICAgICAgaWYgKGdldEtleXMoaXQpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIGlkcy5wdXNoKGl0W21ldGEuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVzLnB1c2goaXQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnNlcnRzLnB1c2goaXQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICAuLi5pZHMsXG4gICAgICAuLi4oaW5zZXJ0cy5sZW5ndGggPyBhd2FpdCB0aGlzLmluc2VydE1hbnkoZW50aXR5LCBpbnNlcnRzKSA6IFtdKSxcbiAgICAgIC4uLnVwZGF0ZXMubWFwKGFzeW5jIChpdCkgPT4ge1xuICAgICAgICBjb25zdCB7IFttZXRhLmlkXTogaWQsIC4uLmRhdGEgfSA9IGl0O1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9uZUJ5SWQoZW50aXR5LCBpZCwgZGF0YSBhcyBFKTtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgfSksXG4gICAgXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZmluZFRvTWFueVJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxhdGlvbnMgPSBnZXRQcm9qZWN0UmVsYXRpb25LZXlzKG1ldGEsIHByb2plY3QpO1xuXG4gICAgZm9yIChjb25zdCByZWxLZXkgb2YgcmVsYXRpb25zKSB7XG4gICAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgICBjb25zdCByZWxQcm9qZWN0ID0gY2xvbmUocHJvamVjdFtyZWxLZXkgYXMgc3RyaW5nXSk7XG4gICAgICBjb25zdCByZWxRdWVyeTogUXVlcnk8dW5rbm93bj4gPVxuICAgICAgICByZWxQcm9qZWN0ID09PSB0cnVlIHx8IHJlbFByb2plY3QgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8ge31cbiAgICAgICAgICA6IEFycmF5LmlzQXJyYXkocmVsUHJvamVjdClcbiAgICAgICAgICA/IHsgJHByb2plY3Q6IHJlbFByb2plY3QgfVxuICAgICAgICAgIDogcmVsUHJvamVjdDtcbiAgICAgIGNvbnN0IGlkcyA9IHBheWxvYWQubWFwKChpdCkgPT4gaXRbbWV0YS5pZF0pO1xuXG4gICAgICBpZiAocmVsT3B0cy50aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSByZWxPcHRzLnRocm91Z2goKTtcbiAgICAgICAgY29uc3QgdGhyb3VnaE1ldGEgPSBnZXRNZXRhKHRocm91Z2hFbnRpdHkpO1xuICAgICAgICBjb25zdCB0YXJnZXRSZWxLZXkgPSBPYmplY3Qua2V5cyh0aHJvdWdoTWV0YS5yZWxhdGlvbnMpLmZpbmQoKGtleSkgPT5cbiAgICAgICAgICB0aHJvdWdoTWV0YS5yZWxhdGlvbnNba2V5XS5yZWZlcmVuY2VzLnNvbWUoKHsgbG9jYWwgfSkgPT4gbG9jYWwgPT09IHJlbE9wdHMucmVmZXJlbmNlc1sxXS5sb2NhbCksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHRocm91Z2hGb3VuZHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KFxuICAgICAgICAgIHRocm91Z2hFbnRpdHksXG4gICAgICAgICAge1xuICAgICAgICAgICAgJGZpbHRlcjoge1xuICAgICAgICAgICAgICBbbG9jYWxGaWVsZF06IGlkcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBbbG9jYWxGaWVsZF06IHRydWUsXG4gICAgICAgICAgICBbdGFyZ2V0UmVsS2V5XToge1xuICAgICAgICAgICAgICAuLi5yZWxRdWVyeSxcbiAgICAgICAgICAgICAgJHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb3VuZHMgPSB0aHJvdWdoRm91bmRzLm1hcCgoaXQpID0+ICh7IC4uLml0W3RhcmdldFJlbEtleV0sIFtsb2NhbEZpZWxkXTogaXRbbG9jYWxGaWVsZF0gfSkpO1xuICAgICAgICB0aGlzLnB1dENoaWxkcmVuSW5QYXJlbnRzKHBheWxvYWQsIGZvdW5kcywgbWV0YS5pZCwgbG9jYWxGaWVsZCwgcmVsS2V5KTtcbiAgICAgIH0gZWxzZSBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJzFtJykge1xuICAgICAgICBjb25zdCBmb3JlaWduRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgICAgaWYgKHJlbFF1ZXJ5LiRwcm9qZWN0KSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsUXVlcnkuJHByb2plY3QpKSB7XG4gICAgICAgICAgICBpZiAoIXJlbFF1ZXJ5LiRwcm9qZWN0LmluY2x1ZGVzKGZvcmVpZ25GaWVsZCkpIHtcbiAgICAgICAgICAgICAgcmVsUXVlcnkuJHByb2plY3QucHVzaChmb3JlaWduRmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoIXJlbFF1ZXJ5LiRwcm9qZWN0W2ZvcmVpZ25GaWVsZF0pIHtcbiAgICAgICAgICAgIHJlbFF1ZXJ5LiRwcm9qZWN0W2ZvcmVpZ25GaWVsZF0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZWxRdWVyeS4kZmlsdGVyID0geyBbZm9yZWlnbkZpZWxkXTogaWRzIH07XG4gICAgICAgIGNvbnN0IHsgJHByb2plY3Q6IHJlbFByb2plY3QsIC4uLnJlbFFtIH0gPSByZWxRdWVyeTtcbiAgICAgICAgY29uc3QgZm91bmRzID0gYXdhaXQgdGhpcy5maW5kTWFueShyZWxFbnRpdHksIHJlbFFtLCByZWxQcm9qZWN0KTtcbiAgICAgICAgdGhpcy5wdXRDaGlsZHJlbkluUGFyZW50cyhwYXlsb2FkLCBmb3VuZHMsIG1ldGEuaWQsIGZvcmVpZ25GaWVsZCwgcmVsS2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHV0Q2hpbGRyZW5JblBhcmVudHM8RT4oXG4gICAgcGFyZW50czogRVtdLFxuICAgIGNoaWxkcmVuOiBFW10sXG4gICAgcGFyZW50SWRLZXk6IHN0cmluZyxcbiAgICByZWZlcmVuY2VLZXk6IHN0cmluZyxcbiAgICByZWxLZXk6IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW5CeVBhcmVudE1hcCA9IGNoaWxkcmVuLnJlZHVjZSgoYWNjLCBjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgcGFyZW5JZCA9IGNoaWxkW3JlZmVyZW5jZUtleV07XG4gICAgICBpZiAoIWFjY1twYXJlbklkXSkge1xuICAgICAgICBhY2NbcGFyZW5JZF0gPSBbXTtcbiAgICAgIH1cbiAgICAgIGFjY1twYXJlbklkXS5wdXNoKGNoaWxkKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuXG4gICAgZm9yIChjb25zdCBwYXJlbnQgb2YgcGFyZW50cykge1xuICAgICAgY29uc3QgcGFyZW50SWQgPSBwYXJlbnRbcGFyZW50SWRLZXldO1xuICAgICAgcGFyZW50W3JlbEtleV0gPSBjaGlsZHJlbkJ5UGFyZW50TWFwW3BhcmVudElkXTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5zZXJ0UmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHBheWxvYWQubWFwKChpdCkgPT4ge1xuICAgICAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgaXQsICdwZXJzaXN0Jyk7XG4gICAgICAgIGlmICghcmVsS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHJlbEtleXMubWFwKChyZWxLZXkpID0+IHRoaXMuc2F2ZVJlbGF0aW9uKGVudGl0eSwgaXQsIHJlbEtleSkpKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgdXBkYXRlUmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPiwgY3JpdGVyaWE6IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgcGF5bG9hZCwgJ3BlcnNpc3QnKTtcblxuICAgIGlmICghcmVsS2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KGVudGl0eSwgY3JpdGVyaWEsIFttZXRhLmlkXSk7XG5cbiAgICBjb25zdCBpZHMgPSBmb3VuZHMubWFwKChmb3VuZCkgPT4gZm91bmRbbWV0YS5pZF0pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBpZHMubWFwKChpZCkgPT5cbiAgICAgICAgUHJvbWlzZS5hbGwocmVsS2V5cy5tYXAoKHJlbEtleSkgPT4gdGhpcy5zYXZlUmVsYXRpb24oZW50aXR5LCB7IC4uLnBheWxvYWQsIFttZXRhLmlkXTogaWQgfSwgcmVsS2V5LCB0cnVlKSkpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlbGV0ZVJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIGlkczogSWRWYWx1ZTxFPltdLCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgbWV0YS5yZWxhdGlvbnMgYXMgRSwgJ2RlbGV0ZScpO1xuXG4gICAgZm9yIChjb25zdCByZWxLZXkgb2YgcmVsS2V5cykge1xuICAgICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleV07XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlbE9wdHMucmVmZXJlbmNlc1swXS5sb2NhbDtcbiAgICAgIGlmIChyZWxPcHRzLnRocm91Z2gpIHtcbiAgICAgICAgY29uc3QgdGhyb3VnaEVudGl0eSA9IHJlbE9wdHMudGhyb3VnaCgpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkodGhyb3VnaEVudGl0eSwgeyAkZmlsdGVyOiB7IFtsb2NhbEZpZWxkXTogaWRzIH0gfSwgb3B0cyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueShyZWxFbnRpdHksIHsgW2xvY2FsRmllbGRdOiBpZHMgfSwgb3B0cyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNhdmVSZWxhdGlvbjxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUsIHJlbEtleTogUmVsYXRpb25LZXk8RT4sIGlzVXBkYXRlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWQgPSBwYXlsb2FkW21ldGEuaWRdO1xuICAgIGNvbnN0IHsgZW50aXR5OiBlbnRpdHlHZXR0ZXIsIGNhcmRpbmFsaXR5LCByZWZlcmVuY2VzLCB0aHJvdWdoIH0gPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgIGNvbnN0IHJlbEVudGl0eSA9IGVudGl0eUdldHRlcigpO1xuICAgIGNvbnN0IHJlbFBheWxvYWQgPSBwYXlsb2FkW3JlbEtleV0gYXMgdW5rbm93biBhcyBSZWxhdGlvblZhbHVlPEU+W107XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICcxbScgfHwgY2FyZGluYWxpdHkgPT09ICdtbScpIHtcbiAgICAgIGlmICh0aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWZlcmVuY2VzWzBdLmxvY2FsO1xuXG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSB0aHJvdWdoKCk7XG4gICAgICAgIGlmIChpc1VwZGF0ZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueSh0aHJvdWdoRW50aXR5LCB7ICRmaWx0ZXI6IHsgW2xvY2FsRmllbGRdOiBpZCB9IH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWxQYXlsb2FkKSB7XG4gICAgICAgICAgY29uc3Qgc2F2ZWRJZHMgPSBhd2FpdCB0aGlzLnNhdmVNYW55KHJlbEVudGl0eSwgcmVsUGF5bG9hZCk7XG4gICAgICAgICAgY29uc3QgdGhyb3VnaEJvZGllcyA9IHNhdmVkSWRzLm1hcCgocmVsSWQpID0+ICh7XG4gICAgICAgICAgICBbcmVmZXJlbmNlc1swXS5sb2NhbF06IGlkLFxuICAgICAgICAgICAgW3JlZmVyZW5jZXNbMV0ubG9jYWxdOiByZWxJZCxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pbnNlcnRNYW55KHRocm91Z2hFbnRpdHksIHRocm91Z2hCb2RpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZvcmVpZ25GaWVsZCA9IHJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgIGlmIChpc1VwZGF0ZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkocmVsRW50aXR5LCB7ICRmaWx0ZXI6IHsgW2ZvcmVpZ25GaWVsZF06IGlkIH0gfSk7XG4gICAgICB9XG4gICAgICBpZiAocmVsUGF5bG9hZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0IG9mIHJlbFBheWxvYWQpIHtcbiAgICAgICAgICBpdFtmb3JlaWduRmllbGRdID0gaWQ7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlTWFueShyZWxFbnRpdHksIHJlbFBheWxvYWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjYXJkaW5hbGl0eSA9PT0gJzExJykge1xuICAgICAgY29uc3QgZm9yZWlnbkZpZWxkID0gcmVmZXJlbmNlc1swXS5mb3JlaWduO1xuICAgICAgaWYgKHJlbFBheWxvYWQgPT09IG51bGwpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHJlbEVudGl0eSwgeyAkZmlsdGVyOiB7IFtmb3JlaWduRmllbGRdOiBpZCB9IH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnNhdmVPbmUocmVsRW50aXR5LCB7IC4uLnJlbFBheWxvYWQsIFtmb3JlaWduRmllbGRdOiBpZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICdtMScgJiYgcmVsUGF5bG9hZCkge1xuICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICBjb25zdCByZWZlcmVuY2VJZCA9IGF3YWl0IHRoaXMuaW5zZXJ0T25lKHJlbEVudGl0eSwgcmVsUGF5bG9hZCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9uZUJ5SWQoZW50aXR5LCBpZCwgeyBbbG9jYWxGaWVsZF06IHJlZmVyZW5jZUlkIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGdldFJlcG9zaXRvcnk8RT4oZW50aXR5OiBUeXBlPEU+KTogUmVwb3NpdG9yeTxFPiB7XG4gICAgcmV0dXJuIG5ldyBHZW5lcmljUmVwb3NpdG9yeShlbnRpdHksIHRoaXMpO1xuICB9XG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaGFzT3BlblRyYW5zYWN0aW9uOiBib29sZWFuO1xuXG4gIGFzeW5jIHRyYW5zYWN0aW9uPFQ+KGNhbGxiYWNrOiAoKSA9PiBQcm9taXNlPFQ+KSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgY2FsbGJhY2soKTtcbiAgICAgIGF3YWl0IHRoaXMuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBhd2FpdCB0aGlzLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBhYnN0cmFjdCBiZWdpblRyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgY29tbWl0VHJhbnNhY3Rpb24oKTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCByb2xsYmFja1RyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgcmVsZWFzZSgpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19

@@ -1,2 +0,2 @@

import { Type, QueryOptions, QueryUpdateResult, QueryProject, Merge, QuerySearch, QueryCriteria } from '../type/index.js';
import { Type, QueryOptions, QueryUpdateResult, QueryProject, QuerySearch, QueryCriteria } from '../type/index.js';
import { AbstractSqlDialect } from '../dialect/index.js';

@@ -18,3 +18,3 @@ import { AbstractQuerier } from './abstractQuerier.js';

abstract run(query: string): Promise<QueryUpdateResult>;
findMany<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project?: P): Promise<Merge<E, P>[]>;
findMany<E>(entity: Type<E>, qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<E[]>;
count<E>(entity: Type<E>, qm?: QuerySearch<E>): Promise<number>;

@@ -21,0 +21,0 @@ insertMany<E>(entity: Type<E>, payload: E[]): Promise<E[import("../type/entity.js").IdKey<E>][]>;

@@ -84,2 +84,2 @@ import { unflatObjects, clone } from '../util/index.js';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RTcWxRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGVBQWU7SUFHekM7SUFGYixxQkFBcUIsQ0FBVztJQUV4QyxZQUFxQixPQUEyQjtRQUM5QyxLQUFLLEVBQUUsQ0FBQztRQURXLFlBQU8sR0FBUCxPQUFPLENBQW9CO0lBRWhELENBQUM7SUFjUSxLQUFLLENBQUMsUUFBUSxDQUErQixNQUFlLEVBQUUsRUFBb0IsRUFBRSxPQUFXO1FBQ3RHLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFjLEtBQUssQ0FBQyxDQUFDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBSyxDQUFJLE1BQWUsRUFBRSxFQUFtQjtRQUMxRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxNQUFN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QUMsZ0JBQWdCLEVBQUMsbUNBQW1DO1FBQ2pFLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlCLE1BQU0sU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDeEM7UUFDRCxPQUFPO1FBQ1Asd0JBQXdCO1FBQ3hCLHlFQUF5RTtRQUN6RSxJQUFJO1FBQ0osTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFUSxLQUFLLENBQUMsaUJBQWlCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFUSxLQUFLLENBQUMsbUJBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFR5cGUsXG4gIFF1ZXJ5T3B0aW9ucyxcbiAgUXVlcnlVcGRhdGVSZXN1bHQsXG4gIFF1ZXJ5UHJvamVjdCxcbiAgTWVyZ2UsXG4gIFF1ZXJ5U2VhcmNoLFxuICBRdWVyeUNyaXRlcmlhLFxufSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IHVuZmxhdE9iamVjdHMsIGNsb25lIH0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcyc7XG5pbXBvcnQgeyBBYnN0cmFjdFNxbERpYWxlY3QgfSBmcm9tICcuLi9kaWFsZWN0L2luZGV4LmpzJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFF1ZXJpZXIgfSBmcm9tICcuL2Fic3RyYWN0UXVlcmllci5qcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNxbFF1ZXJpZXIgZXh0ZW5kcyBBYnN0cmFjdFF1ZXJpZXIge1xuICBwcml2YXRlIGhhc1BlbmRpbmdUcmFuc2FjdGlvbj86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGlhbGVjdDogQWJzdHJhY3RTcWxEaWFsZWN0KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZWFkIHF1ZXJ5LlxuICAgKiBAcGFyYW0gcXVlcnkgdGhlIHF1ZXJ5XG4gICAqL1xuICBhYnN0cmFjdCBhbGw8VD4ocXVlcnk6IHN0cmluZyk6IFByb21pc2U8VFtdPjtcblxuICAvKipcbiAgICogaW5zZXJ0L3VwZGF0ZS9kZWxldGUvZGRsIHF1ZXJ5LlxuICAgKiBAcGFyYW0gcXVlcnkgdGhlIHF1ZXJ5XG4gICAqL1xuICBhYnN0cmFjdCBydW4ocXVlcnk6IHN0cmluZyk6IFByb21pc2U8UXVlcnlVcGRhdGVSZXN1bHQ+O1xuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRNYW55PEUsIFAgZXh0ZW5kcyBRdWVyeVByb2plY3Q8RT4+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHByb2plY3Q/OiBQKSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuZmluZChlbnRpdHksIHFtLCBwcm9qZWN0KTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmFsbDxNZXJnZTxFLCBQPj4ocXVlcnkpO1xuICAgIGNvbnN0IGZvdW5kcyA9IHVuZmxhdE9iamVjdHMocmVzKTtcbiAgICBhd2FpdCB0aGlzLmZpbmRUb01hbnlSZWxhdGlvbnMoZW50aXR5LCBmb3VuZHMsIHByb2plY3QpO1xuICAgIHJldHVybiBmb3VuZHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtPzogUXVlcnlTZWFyY2g8RT4pIHtcbiAgICBjb25zdCBxdWVyeSA9IGF3YWl0IHRoaXMuZGlhbGVjdC5jb3VudChlbnRpdHksIHFtKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmFsbDx7IGNvdW50OiBudW1iZXIgfT4ocXVlcnkpO1xuICAgIHJldHVybiBOdW1iZXIocmVzWzBdLmNvdW50KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGluc2VydE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pIHtcbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuaW5zZXJ0KGVudGl0eSwgcGF5bG9hZCk7XG4gICAgY29uc3QgeyBmaXJzdElkIH0gPSBhd2FpdCB0aGlzLnJ1bihxdWVyeSk7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBpZHMgPSBwYXlsb2FkLm1hcCgoaXQsIGluZGV4KSA9PiB7XG4gICAgICBpdFttZXRhLmlkIGFzIHN0cmluZ10gPz89IGZpcnN0SWQgKyBpbmRleDtcbiAgICAgIHJldHVybiBpdFttZXRhLmlkXTtcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmluc2VydFJlbGF0aW9ucyhlbnRpdHksIHBheWxvYWQpO1xuICAgIHJldHVybiBpZHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LnVwZGF0ZShlbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgICBjb25zdCB7IGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlbGF0aW9ucyhlbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGZpbmRRdWVyeSA9IGF3YWl0IHRoaXMuZGlhbGVjdC5maW5kKGVudGl0eSwgcW0sIFttZXRhLmlkXSk7XG4gICAgY29uc3QgZm91bmRzID0gYXdhaXQgdGhpcy5hbGw8RT4oZmluZFF1ZXJ5KTtcbiAgICBpZiAoIWZvdW5kcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjb25zdCBpZHMgPSBmb3VuZHMubWFwKChpdCkgPT4gaXRbbWV0YS5pZF0pO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LmRlbGV0ZShlbnRpdHksIHsgJGZpbHRlcjogaWRzIH0sIG9wdHMpO1xuICAgIGNvbnN0IHsgY2hhbmdlcyB9ID0gYXdhaXQgdGhpcy5ydW4ocXVlcnkpO1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlUmVsYXRpb25zKGVudGl0eSwgaWRzLCBvcHRzKTtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBoYXNPcGVuVHJhbnNhY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYmVnaW5UcmFuc2FjdGlvbigvKmlzb2xhdGlvbkxldmVsPzogSXNvbGF0aW9uTGV2ZWwqLykge1xuICAgIGlmICh0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIC8vIFRPRE9cbiAgICAvLyBpZiAoaXNvbGF0aW9uTGV2ZWwpIHtcbiAgICAvLyAgIGF3YWl0IHRoaXMucnVuKGBTRVQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMICR7aXNvbGF0aW9uTGV2ZWx9YCk7XG4gICAgLy8gfVxuICAgIGF3YWl0IHRoaXMucnVuKHRoaXMuZGlhbGVjdC5iZWdpblRyYW5zYWN0aW9uQ29tbWFuZCk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB0cnVlO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY29tbWl0VHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdub3QgYSBwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMucnVuKCdDT01NSVQnKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJvbGxiYWNrVHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdub3QgYSBwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMucnVuKCdST0xMQkFDSycpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RTcWxRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGVBQWU7SUFHekM7SUFGYixxQkFBcUIsQ0FBVztJQUV4QyxZQUFxQixPQUEyQjtRQUM5QyxLQUFLLEVBQUUsQ0FBQztRQURXLFlBQU8sR0FBUCxPQUFPLENBQW9CO0lBRWhELENBQUM7SUFjUSxLQUFLLENBQUMsUUFBUSxDQUFJLE1BQWUsRUFBRSxFQUFvQixFQUFFLE9BQXlCO1FBQ3pGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBSyxDQUFJLE1BQWUsRUFBRSxFQUFtQjtRQUMxRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxNQUFN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QUMsZ0JBQWdCLEVBQUMsbUNBQW1DO1FBQ2pFLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlCLE1BQU0sU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDeEM7UUFDRCxPQUFPO1FBQ1Asd0JBQXdCO1FBQ3hCLHlFQUF5RTtRQUN6RSxJQUFJO1FBQ0osTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFUSxLQUFLLENBQUMsaUJBQWlCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFUSxLQUFLLENBQUMsbUJBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUsIFF1ZXJ5T3B0aW9ucywgUXVlcnlVcGRhdGVSZXN1bHQsIFF1ZXJ5UHJvamVjdCwgUXVlcnlTZWFyY2gsIFF1ZXJ5Q3JpdGVyaWEgfSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IHVuZmxhdE9iamVjdHMsIGNsb25lIH0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcyc7XG5pbXBvcnQgeyBBYnN0cmFjdFNxbERpYWxlY3QgfSBmcm9tICcuLi9kaWFsZWN0L2luZGV4LmpzJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFF1ZXJpZXIgfSBmcm9tICcuL2Fic3RyYWN0UXVlcmllci5qcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNxbFF1ZXJpZXIgZXh0ZW5kcyBBYnN0cmFjdFF1ZXJpZXIge1xuICBwcml2YXRlIGhhc1BlbmRpbmdUcmFuc2FjdGlvbj86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGlhbGVjdDogQWJzdHJhY3RTcWxEaWFsZWN0KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZWFkIHF1ZXJ5LlxuICAgKiBAcGFyYW0gcXVlcnkgdGhlIHF1ZXJ5XG4gICAqL1xuICBhYnN0cmFjdCBhbGw8VD4ocXVlcnk6IHN0cmluZyk6IFByb21pc2U8VFtdPjtcblxuICAvKipcbiAgICogaW5zZXJ0L3VwZGF0ZS9kZWxldGUvZGRsIHF1ZXJ5LlxuICAgKiBAcGFyYW0gcXVlcnkgdGhlIHF1ZXJ5XG4gICAqL1xuICBhYnN0cmFjdCBydW4ocXVlcnk6IHN0cmluZyk6IFByb21pc2U8UXVlcnlVcGRhdGVSZXN1bHQ+O1xuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHByb2plY3Q/OiBRdWVyeVByb2plY3Q8RT4pIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5maW5kKGVudGl0eSwgcW0sIHByb2plY3QpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuYWxsPEU+KHF1ZXJ5KTtcbiAgICBjb25zdCBmb3VuZHMgPSB1bmZsYXRPYmplY3RzKHJlcyk7XG4gICAgYXdhaXQgdGhpcy5maW5kVG9NYW55UmVsYXRpb25zKGVudGl0eSwgZm91bmRzLCBwcm9qZWN0KTtcbiAgICByZXR1cm4gZm91bmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbT86IFF1ZXJ5U2VhcmNoPEU+KSB7XG4gICAgY29uc3QgcXVlcnkgPSBhd2FpdCB0aGlzLmRpYWxlY3QuY291bnQoZW50aXR5LCBxbSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5hbGw8eyBjb3VudDogbnVtYmVyIH0+KHF1ZXJ5KTtcbiAgICByZXR1cm4gTnVtYmVyKHJlc1swXS5jb3VudCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0Lmluc2VydChlbnRpdHksIHBheWxvYWQpO1xuICAgIGNvbnN0IHsgZmlyc3RJZCB9ID0gYXdhaXQgdGhpcy5ydW4ocXVlcnkpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWRzID0gcGF5bG9hZC5tYXAoKGl0LCBpbmRleCkgPT4ge1xuICAgICAgaXRbbWV0YS5pZCBhcyBzdHJpbmddID8/PSBmaXJzdElkICsgaW5kZXg7XG4gICAgICByZXR1cm4gaXRbbWV0YS5pZF07XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5pbnNlcnRSZWxhdGlvbnMoZW50aXR5LCBwYXlsb2FkKTtcbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeVNlYXJjaDxFPiwgcGF5bG9hZDogRSkge1xuICAgIHBheWxvYWQgPSBjbG9uZShwYXlsb2FkKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC51cGRhdGUoZW50aXR5LCBxbSwgcGF5bG9hZCk7XG4gICAgY29uc3QgeyBjaGFuZ2VzIH0gPSBhd2FpdCB0aGlzLnJ1bihxdWVyeSk7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVSZWxhdGlvbnMoZW50aXR5LCBxbSwgcGF5bG9hZCk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBmaW5kUXVlcnkgPSBhd2FpdCB0aGlzLmRpYWxlY3QuZmluZChlbnRpdHksIHFtLCBbbWV0YS5pZF0pO1xuICAgIGNvbnN0IGZvdW5kcyA9IGF3YWl0IHRoaXMuYWxsPEU+KGZpbmRRdWVyeSk7XG4gICAgaWYgKCFmb3VuZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3QgaWRzID0gZm91bmRzLm1hcCgoaXQpID0+IGl0W21ldGEuaWRdKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5kZWxldGUoZW50aXR5LCB7ICRmaWx0ZXI6IGlkcyB9LCBvcHRzKTtcbiAgICBjb25zdCB7IGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVJlbGF0aW9ucyhlbnRpdHksIGlkcywgb3B0cyk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaGFzT3BlblRyYW5zYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGJlZ2luVHJhbnNhY3Rpb24oLyppc29sYXRpb25MZXZlbD86IElzb2xhdGlvbkxldmVsKi8pIHtcbiAgICBpZiAodGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICAvLyBUT0RPXG4gICAgLy8gaWYgKGlzb2xhdGlvbkxldmVsKSB7XG4gICAgLy8gICBhd2FpdCB0aGlzLnJ1bihgU0VUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCAke2lzb2xhdGlvbkxldmVsfWApO1xuICAgIC8vIH1cbiAgICBhd2FpdCB0aGlzLnJ1bih0aGlzLmRpYWxlY3QuYmVnaW5UcmFuc2FjdGlvbkNvbW1hbmQpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNvbW1pdFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignQ09NTUlUJyk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByb2xsYmFja1RyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignUk9MTEJBQ0snKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19

@@ -6,6 +6,6 @@ import type { IdValue, Querier, QueryOptions, Repository, Type, QueryProject, QuerySearch, QueryCriteria, QueryOneCriteria } from '../type/index.js';

constructor(entity: Type<E>, querier: Querier);
findOneById<P extends QueryProject<E>>(id: IdValue<E>, project?: P): Promise<import("../type/query.js").Merge<E, P>>;
findOne<P extends QueryProject<E>>(qm: QueryOneCriteria<E>, project?: P): Promise<import("../type/query.js").Merge<E, P>>;
findMany<P extends QueryProject<E>>(qm: QueryCriteria<E>, project?: P): Promise<import("../type/query.js").Merge<E, P>[]>;
findManyAndCount<P extends QueryProject<E>>(qm: QueryCriteria<E>, project?: P): Promise<[import("../type/query.js").Merge<E, P>[], number]>;
findOneById(id: IdValue<E>, project?: QueryProject<E>): Promise<E>;
findOne(qm: QueryOneCriteria<E>, project?: QueryProject<E>): Promise<E>;
findMany(qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<E[]>;
findManyAndCount(qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<[E[], number]>;
count(qm?: QuerySearch<E>): Promise<number>;

@@ -12,0 +12,0 @@ insertOne(payload: E): Promise<IdValue<E>>;

@@ -48,2 +48,2 @@ export class GenericRepository {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9nZW5lcmljUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLE9BQU8saUJBQWlCO0lBRWpCO0lBQ0E7SUFGWCxZQUNXLE1BQWUsRUFDZixPQUFnQjtRQURoQixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUN4QixDQUFDO0lBRUosV0FBVyxDQUE0QixFQUFjLEVBQUUsT0FBVztRQUNoRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxPQUFPLENBQTRCLEVBQXVCLEVBQUUsT0FBVztRQUNyRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxRQUFRLENBQTRCLEVBQW9CLEVBQUUsT0FBVztRQUNuRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxnQkFBZ0IsQ0FBNEIsRUFBb0IsRUFBRSxPQUFXO1FBQzNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsS0FBSyxDQUFDLEVBQW1CO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxVQUFVLENBQUMsT0FBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFjLEVBQUUsT0FBVTtRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxVQUFVLENBQUMsRUFBa0IsRUFBRSxPQUFVO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxhQUFhLENBQUMsRUFBYyxFQUFFLElBQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFrQixFQUFFLElBQW1CO1FBQ2hELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBJZFZhbHVlLFxuICBRdWVyaWVyLFxuICBRdWVyeU9wdGlvbnMsXG4gIFJlcG9zaXRvcnksXG4gIFR5cGUsXG4gIFF1ZXJ5UHJvamVjdCxcbiAgUXVlcnlTZWFyY2gsXG4gIFF1ZXJ5Q3JpdGVyaWEsXG4gIFF1ZXJ5T25lQ3JpdGVyaWEsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJpY1JlcG9zaXRvcnk8RT4gaW1wbGVtZW50cyBSZXBvc2l0b3J5PEU+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgZW50aXR5OiBUeXBlPEU+LFxuICAgIHJlYWRvbmx5IHF1ZXJpZXI6IFF1ZXJpZXIsXG4gICkge31cblxuICBmaW5kT25lQnlJZDxQIGV4dGVuZHMgUXVlcnlQcm9qZWN0PEU+PihpZDogSWRWYWx1ZTxFPiwgcHJvamVjdD86IFApIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmZpbmRPbmVCeUlkKHRoaXMuZW50aXR5LCBpZCwgcHJvamVjdCk7XG4gIH1cblxuICBmaW5kT25lPFAgZXh0ZW5kcyBRdWVyeVByb2plY3Q8RT4+KHFtOiBRdWVyeU9uZUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE9uZSh0aGlzLmVudGl0eSwgcW0sIHByb2plY3QpO1xuICB9XG5cbiAgZmluZE1hbnk8UCBleHRlbmRzIFF1ZXJ5UHJvamVjdDxFPj4ocW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHByb2plY3Q/OiBQKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5maW5kTWFueSh0aGlzLmVudGl0eSwgcW0sIHByb2plY3QpO1xuICB9XG5cbiAgZmluZE1hbnlBbmRDb3VudDxQIGV4dGVuZHMgUXVlcnlQcm9qZWN0PEU+PihxbTogUXVlcnlDcml0ZXJpYTxFPiwgcHJvamVjdD86IFApIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmZpbmRNYW55QW5kQ291bnQodGhpcy5lbnRpdHksIHFtLCBwcm9qZWN0KTtcbiAgfVxuXG4gIGNvdW50KHFtPzogUXVlcnlTZWFyY2g8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmNvdW50KHRoaXMuZW50aXR5LCBxbSk7XG4gIH1cblxuICBpbnNlcnRPbmUocGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuaW5zZXJ0T25lKHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIGluc2VydE1hbnkocGF5bG9hZDogRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5pbnNlcnRNYW55KHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIHVwZGF0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLnVwZGF0ZU9uZUJ5SWQodGhpcy5lbnRpdHksIGlkLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHVwZGF0ZU1hbnkocW06IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci51cGRhdGVNYW55KHRoaXMuZW50aXR5LCBxbSwgcGF5bG9hZCk7XG4gIH1cblxuICBzYXZlT25lKHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLnNhdmVPbmUodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgc2F2ZU1hbnkocGF5bG9hZDogRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5zYXZlTWFueSh0aGlzLmVudGl0eSwgcGF5bG9hZCk7XG4gIH1cblxuICBkZWxldGVPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5kZWxldGVPbmVCeUlkKHRoaXMuZW50aXR5LCBpZCwgb3B0cyk7XG4gIH1cblxuICBkZWxldGVNYW55KHFtOiBRdWVyeVNlYXJjaDxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZGVsZXRlTWFueSh0aGlzLmVudGl0eSwgcW0sIG9wdHMpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9nZW5lcmljUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLE9BQU8saUJBQWlCO0lBRWpCO0lBQ0E7SUFGWCxZQUNXLE1BQWUsRUFDZixPQUFnQjtRQURoQixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUN4QixDQUFDO0lBRUosV0FBVyxDQUFDLEVBQWMsRUFBRSxPQUF5QjtRQUNuRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBdUIsRUFBRSxPQUF5QjtRQUN4RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxRQUFRLENBQUMsRUFBb0IsRUFBRSxPQUF5QjtRQUN0RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFvQixFQUFFLE9BQXlCO1FBQzlELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsS0FBSyxDQUFDLEVBQW1CO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxVQUFVLENBQUMsT0FBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFjLEVBQUUsT0FBVTtRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxVQUFVLENBQUMsRUFBa0IsRUFBRSxPQUFVO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxhQUFhLENBQUMsRUFBYyxFQUFFLElBQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFrQixFQUFFLElBQW1CO1FBQ2hELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBJZFZhbHVlLFxuICBRdWVyaWVyLFxuICBRdWVyeU9wdGlvbnMsXG4gIFJlcG9zaXRvcnksXG4gIFR5cGUsXG4gIFF1ZXJ5UHJvamVjdCxcbiAgUXVlcnlTZWFyY2gsXG4gIFF1ZXJ5Q3JpdGVyaWEsXG4gIFF1ZXJ5T25lQ3JpdGVyaWEsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJpY1JlcG9zaXRvcnk8RT4gaW1wbGVtZW50cyBSZXBvc2l0b3J5PEU+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgZW50aXR5OiBUeXBlPEU+LFxuICAgIHJlYWRvbmx5IHF1ZXJpZXI6IFF1ZXJpZXIsXG4gICkge31cblxuICBmaW5kT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE9uZUJ5SWQodGhpcy5lbnRpdHksIGlkLCBwcm9qZWN0KTtcbiAgfVxuXG4gIGZpbmRPbmUocW06IFF1ZXJ5T25lQ3JpdGVyaWE8RT4sIHByb2plY3Q/OiBRdWVyeVByb2plY3Q8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmZpbmRPbmUodGhpcy5lbnRpdHksIHFtLCBwcm9qZWN0KTtcbiAgfVxuXG4gIGZpbmRNYW55KHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUXVlcnlQcm9qZWN0PEU+KSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5maW5kTWFueSh0aGlzLmVudGl0eSwgcW0sIHByb2plY3QpO1xuICB9XG5cbiAgZmluZE1hbnlBbmRDb3VudChxbTogUXVlcnlDcml0ZXJpYTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE1hbnlBbmRDb3VudCh0aGlzLmVudGl0eSwgcW0sIHByb2plY3QpO1xuICB9XG5cbiAgY291bnQocW0/OiBRdWVyeVNlYXJjaDxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuY291bnQodGhpcy5lbnRpdHksIHFtKTtcbiAgfVxuXG4gIGluc2VydE9uZShwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5pbnNlcnRPbmUodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgaW5zZXJ0TWFueShwYXlsb2FkOiBFW10pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmluc2VydE1hbnkodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgdXBkYXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIudXBkYXRlT25lQnlJZCh0aGlzLmVudGl0eSwgaWQsIHBheWxvYWQpO1xuICB9XG5cbiAgdXBkYXRlTWFueShxbTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLnVwZGF0ZU1hbnkodGhpcy5lbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHNhdmVPbmUocGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuc2F2ZU9uZSh0aGlzLmVudGl0eSwgcGF5bG9hZCk7XG4gIH1cblxuICBzYXZlTWFueShwYXlsb2FkOiBFW10pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLnNhdmVNYW55KHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIGRlbGV0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmRlbGV0ZU9uZUJ5SWQodGhpcy5lbnRpdHksIGlkLCBvcHRzKTtcbiAgfVxuXG4gIGRlbGV0ZU1hbnkocW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5kZWxldGVNYW55KHRoaXMuZW50aXR5LCBxbSwgb3B0cyk7XG4gIH1cbn1cbiJdfQ==
import type { Type } from './utility.js';
import type { QueryCriteria, QueryOptions, QueryProject, QuerySearch, Merge, QueryOneCriteria } from './query.js';
import type { QueryCriteria, QueryOptions, QueryProject, QuerySearch, QueryOneCriteria } from './query.js';
import type { Repository } from './repository.js';

@@ -11,6 +11,6 @@ import type { IdValue } from './entity.js';

export interface Querier extends UniversalQuerier {
findOneById<E, P extends QueryProject<E>>(entity: Type<E>, id: IdValue<E>, project?: P): Promise<Merge<E, P>>;
findOne<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryOneCriteria<E>, project?: P): Promise<Merge<E, P>>;
findMany<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project?: P): Promise<Merge<E, P>[]>;
findManyAndCount<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project?: P): Promise<[Merge<E, P>[], number]>;
findOneById<E>(entity: Type<E>, id: IdValue<E>, project?: QueryProject<E>): Promise<E>;
findOne<E>(entity: Type<E>, qm: QueryOneCriteria<E>, project?: QueryProject<E>): Promise<E>;
findMany<E>(entity: Type<E>, qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<E[]>;
findManyAndCount<E>(entity: Type<E>, qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<[E[], number]>;
count<E>(entity: Type<E>, qm?: QuerySearch<E>): Promise<number>;

@@ -17,0 +17,0 @@ insertOne<E>(entity: Type<E>, payload: E): Promise<IdValue<E>>;

export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3F1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJy4vdXRpbGl0eS5qcyc7XG5pbXBvcnQgdHlwZSB7IFF1ZXJ5Q3JpdGVyaWEsIFF1ZXJ5T3B0aW9ucywgUXVlcnlQcm9qZWN0LCBRdWVyeVNlYXJjaCwgTWVyZ2UsIFF1ZXJ5T25lQ3JpdGVyaWEgfSBmcm9tICcuL3F1ZXJ5LmpzJztcbmltcG9ydCB0eXBlIHsgUmVwb3NpdG9yeSB9IGZyb20gJy4vcmVwb3NpdG9yeS5qcyc7XG5pbXBvcnQgdHlwZSB7IElkVmFsdWUgfSBmcm9tICcuL2VudGl0eS5qcyc7XG5pbXBvcnQgdHlwZSB7IFVuaXZlcnNhbFF1ZXJpZXIgfSBmcm9tICcuL3VuaXZlcnNhbFF1ZXJpZXIuanMnO1xuXG4vKipcbiAqIElzb2xhdGlvbiBsZXZlbHMgZm9yIHRyYW5zYWN0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgSXNvbGF0aW9uTGV2ZWwgPSAncmVhZCB1bmNvbW1pdHRlZCcgfCAncmVhZCBjb21taXR0ZWQnIHwgJ3JlcGV0ZWFibGUgcmVhZCcgfCAnc2VyaWFsaXphYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBRdWVyaWVyIGV4dGVuZHMgVW5pdmVyc2FsUXVlcmllciB7XG4gIGZpbmRPbmVCeUlkPEUsIFAgZXh0ZW5kcyBRdWVyeVByb2plY3Q8RT4+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHByb2plY3Q/OiBQKTogUHJvbWlzZTxNZXJnZTxFLCBQPj47XG5cbiAgZmluZE9uZTxFLCBQIGV4dGVuZHMgUXVlcnlQcm9qZWN0PEU+PihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeU9uZUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUCk6IFByb21pc2U8TWVyZ2U8RSwgUD4+O1xuXG4gIGZpbmRNYW55PEUsIFAgZXh0ZW5kcyBRdWVyeVByb2plY3Q8RT4+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHByb2plY3Q/OiBQKTogUHJvbWlzZTxNZXJnZTxFLCBQPltdPjtcblxuICBmaW5kTWFueUFuZENvdW50PEUsIFAgZXh0ZW5kcyBRdWVyeVByb2plY3Q8RT4+KFxuICAgIGVudGl0eTogVHlwZTxFPixcbiAgICBxbTogUXVlcnlDcml0ZXJpYTxFPixcbiAgICBwcm9qZWN0PzogUCxcbiAgKTogUHJvbWlzZTxbTWVyZ2U8RSwgUD5bXSwgbnVtYmVyXT47XG5cbiAgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbT86IFF1ZXJ5U2VhcmNoPEU+KTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGluc2VydE9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPElkVmFsdWU8RT4+O1xuXG4gIGluc2VydE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pOiBQcm9taXNlPElkVmFsdWU8RT5bXT47XG5cbiAgdXBkYXRlT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIHVwZGF0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgc2F2ZU9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPElkVmFsdWU8RT4+O1xuXG4gIHNhdmVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIGRlbGV0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcblxuICBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGdldFJlcG9zaXRvcnk8RT4oZW50aXR5OiBUeXBlPEU+KTogUmVwb3NpdG9yeTxFPjtcblxuICAvKipcbiAgICogd2hldGhlciB0aGlzIHF1ZXJpZXIgaXMgaW4gYSB0cmFuc2FjdGlvbiBvciBub3QuXG4gICAqL1xuICByZWFkb25seSBoYXNPcGVuVHJhbnNhY3Rpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHJ1biB0aGUgZ2l2ZW4gY2FsbGJhY2sgaW5zaWRlIGEgdHJhbnNhY3Rpb24gaW4gdGhpcyBxdWVyaWVyLlxuICAgKi9cbiAgdHJhbnNhY3Rpb248VD4oY2FsbGJhY2s6ICgpID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+O1xuXG4gIC8qKlxuICAgKiBzdGFydHMgYSBuZXcgdHJhbnNhY3Rpb24gaW4gdGhpcyBxdWVyaWVyLlxuICAgKi9cbiAgYmVnaW5UcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBjb21taXRzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHRyYW5zYWN0aW9uIGluIHRoaXMgcXVlcmllci5cbiAgICovXG4gIGNvbW1pdFRyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIGFib3J0cyB0aGUgY3VycmVudGx5IGFjdGl2ZSB0cmFuc2FjdGlvbiBpbiB0aGlzIHF1ZXJpZXIuXG4gICAqL1xuICByb2xsYmFja1RyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIHJlbGVhc2UgdGhlIHF1ZXJpZXIgdG8gdGhlIHBvb2wuXG4gICAqL1xuICByZWxlYXNlKCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogbG9nZ2VyIGZ1bmN0aW9uIHRvIGRlYnVnIHF1ZXJpZXMuXG4gKi9cbmV4cG9ydCB0eXBlIExvZ2dlciA9IChtZXNzYWdlOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd247XG5cbmV4cG9ydCB0eXBlIEV4dHJhT3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgbG9nZ2VyPzogTG9nZ2VyO1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3F1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJy4vdXRpbGl0eS5qcyc7XG5pbXBvcnQgdHlwZSB7IFF1ZXJ5Q3JpdGVyaWEsIFF1ZXJ5T3B0aW9ucywgUXVlcnlQcm9qZWN0LCBRdWVyeVNlYXJjaCwgUXVlcnlPbmVDcml0ZXJpYSB9IGZyb20gJy4vcXVlcnkuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXBvc2l0b3J5IH0gZnJvbSAnLi9yZXBvc2l0b3J5LmpzJztcbmltcG9ydCB0eXBlIHsgSWRWYWx1ZSB9IGZyb20gJy4vZW50aXR5LmpzJztcbmltcG9ydCB0eXBlIHsgVW5pdmVyc2FsUXVlcmllciB9IGZyb20gJy4vdW5pdmVyc2FsUXVlcmllci5qcyc7XG5cbi8qKlxuICogSXNvbGF0aW9uIGxldmVscyBmb3IgdHJhbnNhY3Rpb25zLlxuICovXG5leHBvcnQgdHlwZSBJc29sYXRpb25MZXZlbCA9ICdyZWFkIHVuY29tbWl0dGVkJyB8ICdyZWFkIGNvbW1pdHRlZCcgfCAncmVwZXRlYWJsZSByZWFkJyB8ICdzZXJpYWxpemFibGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJpZXIgZXh0ZW5kcyBVbml2ZXJzYWxRdWVyaWVyIHtcbiAgZmluZE9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPik6IFByb21pc2U8RT47XG5cbiAgZmluZE9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeU9uZUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUXVlcnlQcm9qZWN0PEU+KTogUHJvbWlzZTxFPjtcblxuICBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUXVlcnlQcm9qZWN0PEU+KTogUHJvbWlzZTxFW10+O1xuXG4gIGZpbmRNYW55QW5kQ291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPik6IFByb21pc2U8W0VbXSwgbnVtYmVyXT47XG5cbiAgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbT86IFF1ZXJ5U2VhcmNoPEU+KTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGluc2VydE9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPElkVmFsdWU8RT4+O1xuXG4gIGluc2VydE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pOiBQcm9taXNlPElkVmFsdWU8RT5bXT47XG5cbiAgdXBkYXRlT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIHVwZGF0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgc2F2ZU9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPElkVmFsdWU8RT4+O1xuXG4gIHNhdmVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIGRlbGV0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcblxuICBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGdldFJlcG9zaXRvcnk8RT4oZW50aXR5OiBUeXBlPEU+KTogUmVwb3NpdG9yeTxFPjtcblxuICAvKipcbiAgICogd2hldGhlciB0aGlzIHF1ZXJpZXIgaXMgaW4gYSB0cmFuc2FjdGlvbiBvciBub3QuXG4gICAqL1xuICByZWFkb25seSBoYXNPcGVuVHJhbnNhY3Rpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHJ1biB0aGUgZ2l2ZW4gY2FsbGJhY2sgaW5zaWRlIGEgdHJhbnNhY3Rpb24gaW4gdGhpcyBxdWVyaWVyLlxuICAgKi9cbiAgdHJhbnNhY3Rpb248VD4oY2FsbGJhY2s6ICgpID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+O1xuXG4gIC8qKlxuICAgKiBzdGFydHMgYSBuZXcgdHJhbnNhY3Rpb24gaW4gdGhpcyBxdWVyaWVyLlxuICAgKi9cbiAgYmVnaW5UcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBjb21taXRzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHRyYW5zYWN0aW9uIGluIHRoaXMgcXVlcmllci5cbiAgICovXG4gIGNvbW1pdFRyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIGFib3J0cyB0aGUgY3VycmVudGx5IGFjdGl2ZSB0cmFuc2FjdGlvbiBpbiB0aGlzIHF1ZXJpZXIuXG4gICAqL1xuICByb2xsYmFja1RyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIHJlbGVhc2UgdGhlIHF1ZXJpZXIgdG8gdGhlIHBvb2wuXG4gICAqL1xuICByZWxlYXNlKCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogbG9nZ2VyIGZ1bmN0aW9uIHRvIGRlYnVnIHF1ZXJpZXMuXG4gKi9cbmV4cG9ydCB0eXBlIExvZ2dlciA9IChtZXNzYWdlOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd247XG5cbmV4cG9ydCB0eXBlIEV4dHJhT3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgbG9nZ2VyPzogTG9nZ2VyO1xufTtcbiJdfQ==

@@ -28,27 +28,2 @@ import { FieldKey, IdValue, Key, RelationKey } from './entity.js';

/**
* query projection of operations
*/
export type QueryProjectOperation<E> = {
/**
* Calculates the quantity of entries
*/
readonly $count?: FieldKey<E> | 1;
/**
* Gets the maximum value of a field in the entity
*/
readonly $max?: FieldKey<E>;
/**
* Gets the minimum value of a field in the entity
*/
readonly $min?: FieldKey<E>;
/**
* Gets the average value of a field in the entity
*/
readonly $avg?: FieldKey<E>;
/**
* Sums up the specified values of all entries in the entity
*/
readonly $sum?: FieldKey<E>;
};
/**
* query projection as an array.

@@ -69,5 +44,3 @@ */

export type QueryProjectFieldMap<E> = {
[K in FieldKey<E>]?: BooleanLike;
} | {
[K: string]: QueryProjectOperation<E> | QueryRaw;
readonly [K in FieldKey<E>]?: BooleanLike;
};

@@ -78,3 +51,3 @@ /**

export type QueryProjectRelationMap<E> = {
[K in RelationKey<E>]?: BooleanLike | readonly Key<Unpacked<E[K]>>[] | QueryProjectRelationOptions<E[K]>;
readonly [K in RelationKey<E>]?: BooleanLike | readonly Key<Unpacked<E[K]>>[] | QueryProjectRelationOptions<E[K]>;
};

@@ -101,6 +74,2 @@ /**

/**
* value for a logical filtering.
*/
export type QueryFilterLogical<E> = readonly QueryFilter<E>[];
/**
* comparison by fields.

@@ -110,4 +79,2 @@ */

readonly [K in FieldKey<E>]?: QueryFilterFieldValue<E[K]>;
} | {
readonly [K: string]: QueryFilterFieldValue<E[any]>;
};

@@ -122,15 +89,15 @@ /**

*/
readonly $and?: QueryFilterLogical<E>;
readonly $and?: QueryFilterArray<E>;
/**
* joins query clauses with a logical `OR`, returns records that match any of the clauses.
*/
readonly $or?: QueryFilterLogical<E>;
readonly $or?: QueryFilterArray<E>;
/**
* joins query clauses with a logical `AND`, returns records that do not match all the clauses.
*/
readonly $not?: QueryFilterLogical<E>;
readonly $not?: QueryFilterArray<E>;
/**
* joins query clauses with a logical `OR`, returns records that do not match any of the clauses.
*/
readonly $nor?: QueryFilterLogical<E>;
readonly $nor?: QueryFilterArray<E>;
/**

@@ -228,5 +195,13 @@ * whether the specified fields match against a full-text search of the given string.

/**
* query single filter.
*/
export type QueryFilterSingle<E> = IdValue<E> | readonly IdValue<E>[] | QueryFilterMap<E> | QueryRaw;
/**
* query filter array.
*/
export type QueryFilterArray<E> = readonly QueryFilterSingle<E>[];
/**
* query filter.
*/
export type QueryFilter<E> = IdValue<E> | readonly IdValue<E>[] | QueryRaw | QueryFilterMap<E>;
export type QueryFilter<E> = QueryFilterSingle<E> | QueryFilterArray<E>;
/**

@@ -251,5 +226,3 @@ * direction for the sort.

export type QuerySortFieldMap<E> = {
[K in FieldKey<E>]?: QuerySortDirection;
} | {
[K: string]: QuerySortDirection;
readonly [K in FieldKey<E>]?: QuerySortDirection;
};

@@ -260,3 +233,3 @@ /**

export type QuerySortRelationMap<E> = {
[K in RelationKey<E>]?: QuerySortMap<Unpacked<E[K]>>;
readonly [K in RelationKey<E>]?: QuerySortMap<Unpacked<E[K]>>;
};

@@ -292,10 +265,2 @@ /**

$filter?: QueryFilter<E>;
/**
* list of fields to group.
*/
$group?: readonly FieldKey<E>[];
/**
* having options.
*/
$having?: QueryFilter<E>;
} & QueryPager;

@@ -402,3 +367,3 @@ /**

*/
find<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project?: P, opts?: QueryOptions): string;
find<E>(entity: Type<E>, qm: QueryCriteria<E>, project?: QueryProject<E>, opts?: QueryOptions): string;
/**

@@ -446,4 +411,1 @@ * counts the number of records matching the given search parameters.

}
export type Merge<E, P> = E & (P extends string[] ? {} : {
[K in Exclude<keyof P, keyof E>]: Scalar;
});

@@ -9,2 +9,2 @@ export class QueryRaw {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZS9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnWkEsTUFBTSxPQUFPLFFBQVE7SUFFUjtJQUNBO0lBRlgsWUFDVyxLQUEwQixFQUMxQixLQUFjO1FBRGQsVUFBSyxHQUFMLEtBQUssQ0FBcUI7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBUztJQUN0QixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZEtleSwgSWRWYWx1ZSwgS2V5LCBSZWxhdGlvbktleSB9IGZyb20gJy4vZW50aXR5LmpzJztcbmltcG9ydCB7IEJvb2xlYW5MaWtlLCBFeHBhbmRTY2FsYXIsIFNjYWxhciwgVHlwZSwgVW5wYWNrZWQgfSBmcm9tICcuL3V0aWxpdHkuanMnO1xuXG5leHBvcnQgdHlwZSBRdWVyeU9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiB1c2Ugb3Igb21pdCBgc29mdERlbGV0ZWAgYXR0cmlidXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc29mdERlbGV0ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBwcmVmaXggdGhlIHF1ZXJ5IHdpdGggdGhpcy5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIGF1dG9tYXRpY2FsbHkgaW5mZXIgdGhlIHByZWZpeCBmb3IgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b1ByZWZpeD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBRdWVyeVByb2plY3RPcHRpb25zID0ge1xuICAvKipcbiAgICogcHJlZml4IHRoZSBxdWVyeSB3aXRoIHRoaXMuXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgcHJlZml4IGZvciB0aGUgYWxpYXMuXG4gICAqL1xuICByZWFkb25seSBhdXRvUHJlZml4QWxpYXM/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBxdWVyeSBwcm9qZWN0aW9uIG9mIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0T3BlcmF0aW9uPEU+ID0ge1xuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgcXVhbnRpdHkgb2YgZW50cmllc1xuICAgKi9cbiAgcmVhZG9ubHkgJGNvdW50PzogRmllbGRLZXk8RT4gfCAxO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGEgZmllbGQgaW4gdGhlIGVudGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgJG1heD86IEZpZWxkS2V5PEU+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBtaW5pbXVtIHZhbHVlIG9mIGEgZmllbGQgaW4gdGhlIGVudGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgJG1pbj86IEZpZWxkS2V5PEU+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhdmVyYWdlIHZhbHVlIG9mIGEgZmllbGQgaW4gdGhlIGVudGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgJGF2Zz86IEZpZWxkS2V5PEU+O1xuXG4gIC8qKlxuICAgKiBTdW1zIHVwIHRoZSBzcGVjaWZpZWQgdmFsdWVzIG9mIGFsbCBlbnRyaWVzIGluIHRoZSBlbnRpdHlcbiAgICovXG4gIHJlYWRvbmx5ICRzdW0/OiBGaWVsZEtleTxFPjtcbn07XG5cbi8qKlxuICogcXVlcnkgcHJvamVjdGlvbiBhcyBhbiBhcnJheS5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0QXJyYXk8RT4gPSByZWFkb25seSAoS2V5PEU+IHwgUXVlcnlSYXcpW107XG5cbi8qKlxuICogcXVlcnkgcHJvamVjdGlvbiBhcyBhIG1hcC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0TWFwPEU+ID0gUXVlcnlQcm9qZWN0RmllbGRNYXA8RT4gfCBRdWVyeVByb2plY3RSZWxhdGlvbk1hcDxFPjtcblxuLyoqXG4gKiBxdWVyeSBwcm9qZWN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVByb2plY3Q8RT4gPSBRdWVyeVByb2plY3RBcnJheTxFPiB8IFF1ZXJ5UHJvamVjdE1hcDxFPjtcblxuLyoqXG4gKiBxdWVyeSBwcm9qZWN0aW9uIG9mIGZpZWxkcyBhcyBhIG1hcC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0RmllbGRNYXA8RT4gPVxuICB8IHtcbiAgICAgIC8vIFRPRE8gYWRkIHN1cHBvcnQgdG8gdXNlIGFsaWFzIGZvciBwcm9qZWN0ZWQgZmllbGRzIChzdHJpbmcgdmFsdWUpXG4gICAgICBbSyBpbiBGaWVsZEtleTxFPl0/OiBCb29sZWFuTGlrZTtcbiAgICB9XG4gIHwgeyBbSzogc3RyaW5nXTogUXVlcnlQcm9qZWN0T3BlcmF0aW9uPEU+IHwgUXVlcnlSYXcgfTtcblxuLyoqXG4gKiBxdWVyeSBwcm9qZWN0aW9uIG9mIHJlbGF0aW9ucyBhcyBhIG1hcC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0UmVsYXRpb25NYXA8RT4gPSB7XG4gIFtLIGluIFJlbGF0aW9uS2V5PEU+XT86IEJvb2xlYW5MaWtlIHwgcmVhZG9ubHkgS2V5PFVucGFja2VkPEVbS10+PltdIHwgUXVlcnlQcm9qZWN0UmVsYXRpb25PcHRpb25zPEVbS10+O1xufTtcblxuLyoqXG4gKiBvcHRpb25zIHRvIHByb2plY3QgYSByZWxhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0UmVsYXRpb25PcHRpb25zPEU+ID0gKEUgZXh0ZW5kcyB1bmtub3duW10gPyBRdWVyeTxVbnBhY2tlZDxFPj4gOiBRdWVyeVVuaXF1ZTxVbnBhY2tlZDxFPj4pICYge1xuICByZWFkb25seSAkcmVxdWlyZWQ/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBvcHRpb25zIGZvciBmdWxsLXRleHQtc2VhcmNoIG9wZXJhdG9yLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVRleHRTZWFyY2hPcHRpb25zPEU+ID0ge1xuICAvKipcbiAgICogdGV4dCB0byBzZWFyY2ggZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgJHZhbHVlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBsaXN0IG9mIGZpZWxkcyB0byBzZWFyY2ggb24uXG4gICAqL1xuICByZWFkb25seSAkZmllbGRzPzogcmVhZG9ubHkgRmllbGRLZXk8RT5bXTtcbn07XG5cbi8qKlxuICogdmFsdWUgZm9yIGEgbG9naWNhbCBmaWx0ZXJpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyTG9naWNhbDxFPiA9IHJlYWRvbmx5IFF1ZXJ5RmlsdGVyPEU+W107XG5cbi8qKlxuICogY29tcGFyaXNvbiBieSBmaWVsZHMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyRmllbGRNYXA8RT4gPVxuICB8IHsgcmVhZG9ubHkgW0sgaW4gRmllbGRLZXk8RT5dPzogUXVlcnlGaWx0ZXJGaWVsZFZhbHVlPEVbS10+IH1cbiAgfCB7IHJlYWRvbmx5IFtLOiBzdHJpbmddOiBRdWVyeUZpbHRlckZpZWxkVmFsdWU8RVthbnldPiB9O1xuXG4vKipcbiAqIGNvbXBsZXggb3BlcmF0b3JzLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeUZpbHRlck1hcDxFPiA9IFF1ZXJ5RmlsdGVyRmllbGRNYXA8RT4gJiBRdWVyeUZpbHRlclJvb3RPcGVyYXRvcjxFPjtcblxuZXhwb3J0IHR5cGUgUXVlcnlGaWx0ZXJSb290T3BlcmF0b3I8RT4gPSB7XG4gIC8qKlxuICAgKiBqb2lucyBxdWVyeSBjbGF1c2VzIHdpdGggYSBsb2dpY2FsIGBBTkRgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBtYXRjaCBhbGwgdGhlIGNsYXVzZXMuXG4gICAqL1xuICByZWFkb25seSAkYW5kPzogUXVlcnlGaWx0ZXJMb2dpY2FsPEU+O1xuICAvKipcbiAgICogam9pbnMgcXVlcnkgY2xhdXNlcyB3aXRoIGEgbG9naWNhbCBgT1JgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBtYXRjaCBhbnkgb2YgdGhlIGNsYXVzZXMuXG4gICAqL1xuICByZWFkb25seSAkb3I/OiBRdWVyeUZpbHRlckxvZ2ljYWw8RT47XG4gIC8qKlxuICAgKiBqb2lucyBxdWVyeSBjbGF1c2VzIHdpdGggYSBsb2dpY2FsIGBBTkRgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBkbyBub3QgbWF0Y2ggYWxsIHRoZSBjbGF1c2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgJG5vdD86IFF1ZXJ5RmlsdGVyTG9naWNhbDxFPjtcbiAgLyoqXG4gICAqIGpvaW5zIHF1ZXJ5IGNsYXVzZXMgd2l0aCBhIGxvZ2ljYWwgYE9SYCwgcmV0dXJucyByZWNvcmRzIHRoYXQgZG8gbm90IG1hdGNoIGFueSBvZiB0aGUgY2xhdXNlcy5cbiAgICovXG4gIHJlYWRvbmx5ICRub3I/OiBRdWVyeUZpbHRlckxvZ2ljYWw8RT47XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgZmllbGRzIG1hdGNoIGFnYWluc3QgYSBmdWxsLXRleHQgc2VhcmNoIG9mIHRoZSBnaXZlbiBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSAkdGV4dD86IFF1ZXJ5VGV4dFNlYXJjaE9wdGlvbnM8RT47XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSByZWNvcmQgZXhpc3RzIGluIHRoZSBnaXZlbiBzdWItcXVlcnkuXG4gICAqL1xuICByZWFkb25seSAkZXhpc3RzPzogUXVlcnlSYXc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSByZWNvcmQgZG9lcyBub3QgZXhpc3RzIGluIHRoZSBnaXZlbiBzdWItcXVlcnkuXG4gICAqL1xuICByZWFkb25seSAkbmV4aXN0cz86IFF1ZXJ5UmF3O1xufTtcblxuZXhwb3J0IHR5cGUgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwPFQ+ID0ge1xuICAvKipcbiAgICogd2hldGhlciBhIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5ICRlcT86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJG5lPzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogbmVnYXRlcyB0aGUgZ2l2ZW4gY29tcGFyaXNvbi5cbiAgICovXG4gIHJlYWRvbmx5ICRub3Q/OiBRdWVyeUZpbHRlckZpZWxkVmFsdWU8VD47XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgdmFsdWUgaXMgbGVzcyB0aGFuIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5ICRsdD86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJGx0ZT86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJGd0PzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogd2hldGhlciBhIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqL1xuICByZWFkb25seSAkZ3RlPzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBiZWdpbnMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIHNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkc3RhcnRzV2l0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSBzdHJpbmcgYmVnaW5zIHdpdGggdGhlIGdpdmVuIHN0cmluZyAoY2FzZSBpbnNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkaXN0YXJ0c1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIHNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkZW5kc1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIGluc2Vuc2l0aXZlKS5cbiAgICovXG4gIHJlYWRvbmx5ICRpZW5kc1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGdpdmVuIHN0cmluZyAoY2FzZSBzZW5zaXRpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgJGluY2x1ZGVzPzogc3RyaW5nO1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBpcyBjb250YWluZWQgd2l0aGluIHRoZSBnaXZlbiBzdHJpbmcgKGNhc2UgaW5zZW5zaXRpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgJGlpbmNsdWRlcz86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSBzdHJpbmcgZnVsZmlsbHMgdGhlIGdpdmVuIHBhdHRlcm4gKGNhc2Ugc2Vuc2l0aXZlKS5cbiAgICovXG4gIHJlYWRvbmx5ICRsaWtlPzogc3RyaW5nO1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBmdWxmaWxscyB0aGUgZ2l2ZW4gcGF0dGVybiAoY2FzZSBpbnNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkaWxpa2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIG1hdGNoZXMgdGhlIGdpdmVuIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5ICRyZWdleD86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBtYXRjaGVzIGFueSBvZiB0aGUgZ2l2ZW4gdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgJGluPzogcmVhZG9ubHkgRXhwYW5kU2NhbGFyPFQ+W107XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgdmFsdWUgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBnaXZlbiB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSAkbmluPzogcmVhZG9ubHkgRXhwYW5kU2NhbGFyPFQ+W107XG59O1xuXG4vKipcbiAqIFZhbHVlIGZvciBhIGZpZWxkIGNvbXBhcmlzb24uXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyRmllbGRWYWx1ZTxUPiA9IFQgfCByZWFkb25seSBUW10gfCBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8VD4gfCBRdWVyeVJhdztcblxuLyoqXG4gKiBxdWVyeSBmaWx0ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyPEU+ID0gSWRWYWx1ZTxFPiB8IHJlYWRvbmx5IElkVmFsdWU8RT5bXSB8IFF1ZXJ5UmF3IHwgUXVlcnlGaWx0ZXJNYXA8RT47XG5cbi8qKlxuICogZGlyZWN0aW9uIGZvciB0aGUgc29ydC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0RGlyZWN0aW9uID0gLTEgfCAxIHwgJ2FzYycgfCAnZGVzYyc7XG5cbi8qKlxuICogc29ydCBieSB0dXBsZXNcbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0VHVwbGVzPEU+ID0gcmVhZG9ubHkgW0ZpZWxkS2V5PEU+LCBRdWVyeVNvcnREaXJlY3Rpb25dW107XG5cbi8qKlxuICogc29ydCBieSBvYmplY3RzLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnRPYmplY3RzPEU+ID0gcmVhZG9ubHkgeyByZWFkb25seSBmaWVsZDogRmllbGRLZXk8RT47IHJlYWRvbmx5IHNvcnQ6IFF1ZXJ5U29ydERpcmVjdGlvbiB9W107XG5cbi8qKlxuICogc29ydCBieSBmaWVsZHMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U29ydEZpZWxkTWFwPEU+ID1cbiAgfCB7XG4gICAgICBbSyBpbiBGaWVsZEtleTxFPl0/OiBRdWVyeVNvcnREaXJlY3Rpb247XG4gICAgfVxuICB8IHsgW0s6IHN0cmluZ106IFF1ZXJ5U29ydERpcmVjdGlvbiB9O1xuXG4vKipcbiAqIHNvcnQgYnkgcmVsYXRpb25zIGZpZWxkcy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0UmVsYXRpb25NYXA8RT4gPSB7XG4gIFtLIGluIFJlbGF0aW9uS2V5PEU+XT86IFF1ZXJ5U29ydE1hcDxVbnBhY2tlZDxFW0tdPj47XG59O1xuXG4vKipcbiAqIHNvcnQgYnkgbWFwLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnRNYXA8RT4gPSBRdWVyeVNvcnRGaWVsZE1hcDxFPiB8IFF1ZXJ5U29ydFJlbGF0aW9uTWFwPEU+O1xuXG4vKipcbiAqIHNvcnQgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0PEU+ID0gUXVlcnlTb3J0TWFwPEU+IHwgUXVlcnlTb3J0VHVwbGVzPEU+IHwgUXVlcnlTb3J0T2JqZWN0czxFPjtcblxuLyoqXG4gKiBwYWdlciBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVBhZ2VyID0ge1xuICAvKipcbiAgICogSW5kZXggZnJvbSB3aGVyZSBzdGFydCB0aGUgc2VhcmNoXG4gICAqL1xuICAkc2tpcD86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4IG51bWJlciBvZiByZWNvcmRzIHRvIHJldHJpZXZlXG4gICAqL1xuICAkbGltaXQ/OiBudW1iZXI7XG59O1xuXG4vKipcbiAqIHNlYXJjaCBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNlYXJjaDxFPiA9IHtcbiAgLyoqXG4gICAqIGZpbHRlcmluZyBvcHRpb25zLlxuICAgKi9cbiAgJGZpbHRlcj86IFF1ZXJ5RmlsdGVyPEU+O1xuXG4gIC8qKlxuICAgKiBsaXN0IG9mIGZpZWxkcyB0byBncm91cC5cbiAgICovXG4gICRncm91cD86IHJlYWRvbmx5IEZpZWxkS2V5PEU+W107XG5cbiAgLyoqXG4gICAqIGhhdmluZyBvcHRpb25zLlxuICAgKi9cbiAgJGhhdmluZz86IFF1ZXJ5RmlsdGVyPEU+O1xufSAmIFF1ZXJ5UGFnZXI7XG5cbi8qKlxuICogY3JpdGVyaWEgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlDcml0ZXJpYTxFPiA9IFF1ZXJ5U2VhcmNoPEU+ICYge1xuICAvKipcbiAgICogc29ydGluZyBvcHRpb25zLlxuICAgKi9cbiAgJHNvcnQ/OiBRdWVyeVNvcnQ8RT47XG59O1xuXG4vKipcbiAqIGNyaXRlcmlhIG9uZSBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeU9uZUNyaXRlcmlhPEU+ID0gT21pdDxRdWVyeUNyaXRlcmlhPEU+LCAnJGxpbWl0Jz47XG5cbi8qKlxuICogcXVlcnkgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnk8RT4gPSB7XG4gIC8qKlxuICAgKiBwcm9qZWN0aW9uIG9wdGlvbnMuXG4gICAqL1xuICAkcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPjtcbn0gJiBRdWVyeUNyaXRlcmlhPEU+O1xuXG4vKipcbiAqIG9wdGlvbnMgdG8gZ2V0IGEgc2luZ2xlIHJlY29yZC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlPbmU8RT4gPSBPbWl0PFF1ZXJ5PEU+LCAnJGxpbWl0Jz47XG5cbi8qKlxuICogb3B0aW9ucyB0byBnZXQgYW4gdW5pcXVlIHJlY29yZC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlVbmlxdWU8RT4gPSBQaWNrPFF1ZXJ5T25lPEU+LCAnJHByb2plY3QnIHwgJyRmaWx0ZXInPjtcblxuLyoqXG4gKiBzdHJpbmdpZmllZCBxdWVyeS5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTdHJpbmdpZmllZCA9IHtcbiAgcmVhZG9ubHkgW0sgaW4ga2V5b2YgUXVlcnk8YW55Pl0/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIHJlc3VsdCBvZiBhbiB1cGRhdGUgb3BlcmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVVwZGF0ZVJlc3VsdCA9IHtcbiAgLyoqXG4gICAqIG51bWJlciBvZiBjaGFuZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIGZpcnN0IGluc2VydGVkIElELlxuICAgKi9cbiAgcmVhZG9ubHkgZmlyc3RJZD86IG51bWJlcjtcbn07XG5cbi8qKlxuICogb3B0aW9ucyBmb3IgdGhlIGByYXdgIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVJhd0ZuT3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIHRoZSBjdXJyZW50IGRpYWxlY3QuXG4gICAqL1xuICByZWFkb25seSBkaWFsZWN0OiBRdWVyeURpYWxlY3Q7XG4gIC8qKlxuICAgKiB0aGUgcHJlZml4LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogdGhlIGVzY2FwZWQgcHJlZml4LlxuICAgKi9cbiAgcmVhZG9ubHkgZXNjYXBlZFByZWZpeD86IHN0cmluZztcbn07XG5cbi8qKlxuICogYSBgcmF3YCBmdW5jdGlvblxuICovXG5leHBvcnQgdHlwZSBRdWVyeVJhd0ZuID0gKG9wdHM/OiBRdWVyeVJhd0ZuT3B0aW9ucykgPT4gc3RyaW5nO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlSYXcge1xuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSB2YWx1ZTogU2NhbGFyIHwgUXVlcnlSYXdGbixcbiAgICByZWFkb25seSBhbGlhcz86IHN0cmluZyxcbiAgKSB7fVxufVxuXG4vKipcbiAqIGNvbXBhcmlzb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlDb21wYXJpc29uT3B0aW9ucyA9IFF1ZXJ5T3B0aW9ucyAmIHtcbiAgLyoqXG4gICAqIHVzZSBwcmVjZWRlbmNlIGZvciB0aGUgY29tcGFyaXNvbiBvciBub3QuXG4gICAqL1xuICByZWFkb25seSB1c2VQcmVjZWRlbmNlPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogcXVlcnkgZmlsdGVyIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyT3B0aW9ucyA9IFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMgJiB7XG4gIC8qKlxuICAgKiBjbGF1c2UgdG8gYmUgdXNlZCBpbiB0aGUgZmlsdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xhdXNlPzogJ1dIRVJFJyB8ICdIQVZJTkcnIHwgZmFsc2U7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5RGlhbGVjdCB7XG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIGZpbmQ8RSwgUCBleHRlbmRzIFF1ZXJ5UHJvamVjdDxFPj4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgcHJvamVjdD86IFAsIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGNvdW50cyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSB0YXJnZXQgZW50aXR5XG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgb3B0aW9uc1xuICAgKiBAcGFyYW0gb3B0cyB0aGUgcXVlcnkgb3B0aW9uc1xuICAgKi9cbiAgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGluc2VyIHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEBwYXJhbSBvcHRzIHRoZSBxdWVyeSBvcHRpb25zXG4gICAqL1xuICBpbnNlcnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFIHwgcmVhZG9ubHkgRVtdLCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIHBheWxvYWRcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIHVwZGF0ZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeVNlYXJjaDxFPiwgcGF5bG9hZDogRSwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IHN0cmluZztcblxuICAvKipcbiAgICogZGVsZXRlIHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEBwYXJhbSBvcHRzIHRoZSBxdWVyeSBvcHRpb25zXG4gICAqL1xuICBkZWxldGU8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGVzY2FwZSBhbiBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0gdmFsIHRoZSB2YWx1ZSB0byBiZSBlc2NhcGVkXG4gICAqIEBwYXJhbSBmb3JiaWRRdWFsaWZpZWQgZG9uJ3QgZXNjYXBlIGRvdHNcbiAgICogQHBhcmFtIGFkZERvdCB1c2UgYSBkb3QgYXMgc3VmZml4XG4gICAqL1xuICBlc2NhcGVJZCh2YWw6IHN0cmluZywgZm9yYmlkUXVhbGlmaWVkPzogYm9vbGVhbiwgYWRkRG90PzogYm9vbGVhbik6IHN0cmluZztcblxuICAvKipcbiAgICogZXNjYXBlIGEgdmFsdWUuXG4gICAqIEBwYXJhbSB2YWwgdGhlIHZhbHVlIHRvIGVzY2FwZVxuICAgKi9cbiAgZXNjYXBlKHZhbDogYW55KTogU2NhbGFyO1xufVxuXG5leHBvcnQgdHlwZSBNZXJnZTxFLCBQPiA9IEUgJiAoUCBleHRlbmRzIHN0cmluZ1tdID8ge30gOiB7IFtLIGluIEV4Y2x1ZGU8a2V5b2YgUCwga2V5b2YgRT5dOiBTY2FsYXIgfSk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZS9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzV0EsTUFBTSxPQUFPLFFBQVE7SUFFUjtJQUNBO0lBRlgsWUFDVyxLQUEwQixFQUMxQixLQUFjO1FBRGQsVUFBSyxHQUFMLEtBQUssQ0FBcUI7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBUztJQUN0QixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZEtleSwgSWRWYWx1ZSwgS2V5LCBSZWxhdGlvbktleSB9IGZyb20gJy4vZW50aXR5LmpzJztcbmltcG9ydCB7IEJvb2xlYW5MaWtlLCBFeHBhbmRTY2FsYXIsIFNjYWxhciwgVHlwZSwgVW5wYWNrZWQgfSBmcm9tICcuL3V0aWxpdHkuanMnO1xuXG5leHBvcnQgdHlwZSBRdWVyeU9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiB1c2Ugb3Igb21pdCBgc29mdERlbGV0ZWAgYXR0cmlidXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc29mdERlbGV0ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBwcmVmaXggdGhlIHF1ZXJ5IHdpdGggdGhpcy5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIGF1dG9tYXRpY2FsbHkgaW5mZXIgdGhlIHByZWZpeCBmb3IgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b1ByZWZpeD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBRdWVyeVByb2plY3RPcHRpb25zID0ge1xuICAvKipcbiAgICogcHJlZml4IHRoZSBxdWVyeSB3aXRoIHRoaXMuXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgcHJlZml4IGZvciB0aGUgYWxpYXMuXG4gICAqL1xuICByZWFkb25seSBhdXRvUHJlZml4QWxpYXM/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBxdWVyeSBwcm9qZWN0aW9uIGFzIGFuIGFycmF5LlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVByb2plY3RBcnJheTxFPiA9IHJlYWRvbmx5IChLZXk8RT4gfCBRdWVyeVJhdylbXTtcblxuLyoqXG4gKiBxdWVyeSBwcm9qZWN0aW9uIGFzIGEgbWFwLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVByb2plY3RNYXA8RT4gPSBRdWVyeVByb2plY3RGaWVsZE1hcDxFPiB8IFF1ZXJ5UHJvamVjdFJlbGF0aW9uTWFwPEU+O1xuXG4vKipcbiAqIHF1ZXJ5IHByb2plY3Rpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UHJvamVjdDxFPiA9IFF1ZXJ5UHJvamVjdEFycmF5PEU+IHwgUXVlcnlQcm9qZWN0TWFwPEU+O1xuXG4vKipcbiAqIHF1ZXJ5IHByb2plY3Rpb24gb2YgZmllbGRzIGFzIGEgbWFwLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVByb2plY3RGaWVsZE1hcDxFPiA9IHtcbiAgcmVhZG9ubHkgW0sgaW4gRmllbGRLZXk8RT5dPzogQm9vbGVhbkxpa2U7XG59O1xuXG4vKipcbiAqIHF1ZXJ5IHByb2plY3Rpb24gb2YgcmVsYXRpb25zIGFzIGEgbWFwLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVByb2plY3RSZWxhdGlvbk1hcDxFPiA9IHtcbiAgcmVhZG9ubHkgW0sgaW4gUmVsYXRpb25LZXk8RT5dPzogQm9vbGVhbkxpa2UgfCByZWFkb25seSBLZXk8VW5wYWNrZWQ8RVtLXT4+W10gfCBRdWVyeVByb2plY3RSZWxhdGlvbk9wdGlvbnM8RVtLXT47XG59O1xuXG4vKipcbiAqIG9wdGlvbnMgdG8gcHJvamVjdCBhIHJlbGF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVByb2plY3RSZWxhdGlvbk9wdGlvbnM8RT4gPSAoRSBleHRlbmRzIHVua25vd25bXSA/IFF1ZXJ5PFVucGFja2VkPEU+PiA6IFF1ZXJ5VW5pcXVlPFVucGFja2VkPEU+PikgJiB7XG4gIHJlYWRvbmx5ICRyZXF1aXJlZD86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIG9wdGlvbnMgZm9yIGZ1bGwtdGV4dC1zZWFyY2ggb3BlcmF0b3IuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5VGV4dFNlYXJjaE9wdGlvbnM8RT4gPSB7XG4gIC8qKlxuICAgKiB0ZXh0IHRvIHNlYXJjaCBmb3IuXG4gICAqL1xuICByZWFkb25seSAkdmFsdWU6IHN0cmluZztcbiAgLyoqXG4gICAqIGxpc3Qgb2YgZmllbGRzIHRvIHNlYXJjaCBvbi5cbiAgICovXG4gIHJlYWRvbmx5ICRmaWVsZHM/OiByZWFkb25seSBGaWVsZEtleTxFPltdO1xufTtcblxuLyoqXG4gKiBjb21wYXJpc29uIGJ5IGZpZWxkcy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlGaWx0ZXJGaWVsZE1hcDxFPiA9IHsgcmVhZG9ubHkgW0sgaW4gRmllbGRLZXk8RT5dPzogUXVlcnlGaWx0ZXJGaWVsZFZhbHVlPEVbS10+IH07XG5cbi8qKlxuICogY29tcGxleCBvcGVyYXRvcnMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyTWFwPEU+ID0gUXVlcnlGaWx0ZXJGaWVsZE1hcDxFPiAmIFF1ZXJ5RmlsdGVyUm9vdE9wZXJhdG9yPEU+O1xuXG5leHBvcnQgdHlwZSBRdWVyeUZpbHRlclJvb3RPcGVyYXRvcjxFPiA9IHtcbiAgLyoqXG4gICAqIGpvaW5zIHF1ZXJ5IGNsYXVzZXMgd2l0aCBhIGxvZ2ljYWwgYEFORGAsIHJldHVybnMgcmVjb3JkcyB0aGF0IG1hdGNoIGFsbCB0aGUgY2xhdXNlcy5cbiAgICovXG4gIHJlYWRvbmx5ICRhbmQ/OiBRdWVyeUZpbHRlckFycmF5PEU+O1xuICAvKipcbiAgICogam9pbnMgcXVlcnkgY2xhdXNlcyB3aXRoIGEgbG9naWNhbCBgT1JgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBtYXRjaCBhbnkgb2YgdGhlIGNsYXVzZXMuXG4gICAqL1xuICByZWFkb25seSAkb3I/OiBRdWVyeUZpbHRlckFycmF5PEU+O1xuICAvKipcbiAgICogam9pbnMgcXVlcnkgY2xhdXNlcyB3aXRoIGEgbG9naWNhbCBgQU5EYCwgcmV0dXJucyByZWNvcmRzIHRoYXQgZG8gbm90IG1hdGNoIGFsbCB0aGUgY2xhdXNlcy5cbiAgICovXG4gIHJlYWRvbmx5ICRub3Q/OiBRdWVyeUZpbHRlckFycmF5PEU+O1xuICAvKipcbiAgICogam9pbnMgcXVlcnkgY2xhdXNlcyB3aXRoIGEgbG9naWNhbCBgT1JgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBkbyBub3QgbWF0Y2ggYW55IG9mIHRoZSBjbGF1c2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgJG5vcj86IFF1ZXJ5RmlsdGVyQXJyYXk8RT47XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgZmllbGRzIG1hdGNoIGFnYWluc3QgYSBmdWxsLXRleHQgc2VhcmNoIG9mIHRoZSBnaXZlbiBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSAkdGV4dD86IFF1ZXJ5VGV4dFNlYXJjaE9wdGlvbnM8RT47XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSByZWNvcmQgZXhpc3RzIGluIHRoZSBnaXZlbiBzdWItcXVlcnkuXG4gICAqL1xuICByZWFkb25seSAkZXhpc3RzPzogUXVlcnlSYXc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSByZWNvcmQgZG9lcyBub3QgZXhpc3RzIGluIHRoZSBnaXZlbiBzdWItcXVlcnkuXG4gICAqL1xuICByZWFkb25seSAkbmV4aXN0cz86IFF1ZXJ5UmF3O1xufTtcblxuZXhwb3J0IHR5cGUgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwPFQ+ID0ge1xuICAvKipcbiAgICogd2hldGhlciBhIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5ICRlcT86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJG5lPzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogbmVnYXRlcyB0aGUgZ2l2ZW4gY29tcGFyaXNvbi5cbiAgICovXG4gIHJlYWRvbmx5ICRub3Q/OiBRdWVyeUZpbHRlckZpZWxkVmFsdWU8VD47XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgdmFsdWUgaXMgbGVzcyB0aGFuIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5ICRsdD86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJGx0ZT86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJGd0PzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogd2hldGhlciBhIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqL1xuICByZWFkb25seSAkZ3RlPzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBiZWdpbnMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIHNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkc3RhcnRzV2l0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSBzdHJpbmcgYmVnaW5zIHdpdGggdGhlIGdpdmVuIHN0cmluZyAoY2FzZSBpbnNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkaXN0YXJ0c1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIHNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkZW5kc1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIGluc2Vuc2l0aXZlKS5cbiAgICovXG4gIHJlYWRvbmx5ICRpZW5kc1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGdpdmVuIHN0cmluZyAoY2FzZSBzZW5zaXRpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgJGluY2x1ZGVzPzogc3RyaW5nO1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBpcyBjb250YWluZWQgd2l0aGluIHRoZSBnaXZlbiBzdHJpbmcgKGNhc2UgaW5zZW5zaXRpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgJGlpbmNsdWRlcz86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSBzdHJpbmcgZnVsZmlsbHMgdGhlIGdpdmVuIHBhdHRlcm4gKGNhc2Ugc2Vuc2l0aXZlKS5cbiAgICovXG4gIHJlYWRvbmx5ICRsaWtlPzogc3RyaW5nO1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBmdWxmaWxscyB0aGUgZ2l2ZW4gcGF0dGVybiAoY2FzZSBpbnNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkaWxpa2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIG1hdGNoZXMgdGhlIGdpdmVuIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5ICRyZWdleD86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBtYXRjaGVzIGFueSBvZiB0aGUgZ2l2ZW4gdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgJGluPzogcmVhZG9ubHkgRXhwYW5kU2NhbGFyPFQ+W107XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgdmFsdWUgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBnaXZlbiB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSAkbmluPzogcmVhZG9ubHkgRXhwYW5kU2NhbGFyPFQ+W107XG59O1xuXG4vKipcbiAqIFZhbHVlIGZvciBhIGZpZWxkIGNvbXBhcmlzb24uXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyRmllbGRWYWx1ZTxUPiA9IFQgfCByZWFkb25seSBUW10gfCBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8VD4gfCBRdWVyeVJhdztcblxuLyoqXG4gKiBxdWVyeSBzaW5nbGUgZmlsdGVyLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeUZpbHRlclNpbmdsZTxFPiA9IElkVmFsdWU8RT4gfCByZWFkb25seSBJZFZhbHVlPEU+W10gfCBRdWVyeUZpbHRlck1hcDxFPiB8IFF1ZXJ5UmF3O1xuXG4vKipcbiAqIHF1ZXJ5IGZpbHRlciBhcnJheS5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlGaWx0ZXJBcnJheTxFPiA9IHJlYWRvbmx5IFF1ZXJ5RmlsdGVyU2luZ2xlPEU+W107XG5cbi8qKlxuICogcXVlcnkgZmlsdGVyLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeUZpbHRlcjxFPiA9IFF1ZXJ5RmlsdGVyU2luZ2xlPEU+IHwgUXVlcnlGaWx0ZXJBcnJheTxFPjtcblxuLyoqXG4gKiBkaXJlY3Rpb24gZm9yIHRoZSBzb3J0LlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnREaXJlY3Rpb24gPSAtMSB8IDEgfCAnYXNjJyB8ICdkZXNjJztcblxuLyoqXG4gKiBzb3J0IGJ5IHR1cGxlc1xuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnRUdXBsZXM8RT4gPSByZWFkb25seSBbRmllbGRLZXk8RT4sIFF1ZXJ5U29ydERpcmVjdGlvbl1bXTtcblxuLyoqXG4gKiBzb3J0IGJ5IG9iamVjdHMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U29ydE9iamVjdHM8RT4gPSByZWFkb25seSB7IHJlYWRvbmx5IGZpZWxkOiBGaWVsZEtleTxFPjsgcmVhZG9ubHkgc29ydDogUXVlcnlTb3J0RGlyZWN0aW9uIH1bXTtcblxuLyoqXG4gKiBzb3J0IGJ5IGZpZWxkcy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0RmllbGRNYXA8RT4gPSB7XG4gIHJlYWRvbmx5IFtLIGluIEZpZWxkS2V5PEU+XT86IFF1ZXJ5U29ydERpcmVjdGlvbjtcbn07XG5cbi8qKlxuICogc29ydCBieSByZWxhdGlvbnMgZmllbGRzLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnRSZWxhdGlvbk1hcDxFPiA9IHtcbiAgcmVhZG9ubHkgW0sgaW4gUmVsYXRpb25LZXk8RT5dPzogUXVlcnlTb3J0TWFwPFVucGFja2VkPEVbS10+Pjtcbn07XG5cbi8qKlxuICogc29ydCBieSBtYXAuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U29ydE1hcDxFPiA9IFF1ZXJ5U29ydEZpZWxkTWFwPEU+IHwgUXVlcnlTb3J0UmVsYXRpb25NYXA8RT47XG5cbi8qKlxuICogc29ydCBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnQ8RT4gPSBRdWVyeVNvcnRNYXA8RT4gfCBRdWVyeVNvcnRUdXBsZXM8RT4gfCBRdWVyeVNvcnRPYmplY3RzPEU+O1xuXG4vKipcbiAqIHBhZ2VyIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UGFnZXIgPSB7XG4gIC8qKlxuICAgKiBJbmRleCBmcm9tIHdoZXJlIHN0YXJ0IHRoZSBzZWFyY2hcbiAgICovXG4gICRza2lwPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIHJlY29yZHMgdG8gcmV0cmlldmVcbiAgICovXG4gICRsaW1pdD86IG51bWJlcjtcbn07XG5cbi8qKlxuICogc2VhcmNoIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U2VhcmNoPEU+ID0ge1xuICAvKipcbiAgICogZmlsdGVyaW5nIG9wdGlvbnMuXG4gICAqL1xuICAkZmlsdGVyPzogUXVlcnlGaWx0ZXI8RT47XG59ICYgUXVlcnlQYWdlcjtcblxuLyoqXG4gKiBjcml0ZXJpYSBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeUNyaXRlcmlhPEU+ID0gUXVlcnlTZWFyY2g8RT4gJiB7XG4gIC8qKlxuICAgKiBzb3J0aW5nIG9wdGlvbnMuXG4gICAqL1xuICAkc29ydD86IFF1ZXJ5U29ydDxFPjtcbn07XG5cbi8qKlxuICogY3JpdGVyaWEgb25lIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5T25lQ3JpdGVyaWE8RT4gPSBPbWl0PFF1ZXJ5Q3JpdGVyaWE8RT4sICckbGltaXQnPjtcblxuLyoqXG4gKiBxdWVyeSBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeTxFPiA9IHtcbiAgLyoqXG4gICAqIHByb2plY3Rpb24gb3B0aW9ucy5cbiAgICovXG4gICRwcm9qZWN0PzogUXVlcnlQcm9qZWN0PEU+O1xufSAmIFF1ZXJ5Q3JpdGVyaWE8RT47XG5cbi8qKlxuICogb3B0aW9ucyB0byBnZXQgYSBzaW5nbGUgcmVjb3JkLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeU9uZTxFPiA9IE9taXQ8UXVlcnk8RT4sICckbGltaXQnPjtcblxuLyoqXG4gKiBvcHRpb25zIHRvIGdldCBhbiB1bmlxdWUgcmVjb3JkLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVVuaXF1ZTxFPiA9IFBpY2s8UXVlcnlPbmU8RT4sICckcHJvamVjdCcgfCAnJGZpbHRlcic+O1xuXG4vKipcbiAqIHN0cmluZ2lmaWVkIHF1ZXJ5LlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVN0cmluZ2lmaWVkID0ge1xuICByZWFkb25seSBbSyBpbiBrZXlvZiBRdWVyeTxhbnk+XT86IHN0cmluZztcbn07XG5cbi8qKlxuICogcmVzdWx0IG9mIGFuIHVwZGF0ZSBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5VXBkYXRlUmVzdWx0ID0ge1xuICAvKipcbiAgICogbnVtYmVyIG9mIGNoYW5nZXMuXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2VzPzogbnVtYmVyO1xuICAvKipcbiAgICogZmlyc3QgaW5zZXJ0ZWQgSUQuXG4gICAqL1xuICByZWFkb25seSBmaXJzdElkPzogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBvcHRpb25zIGZvciB0aGUgYHJhd2AgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UmF3Rm5PcHRpb25zID0ge1xuICAvKipcbiAgICogdGhlIGN1cnJlbnQgZGlhbGVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGRpYWxlY3Q6IFF1ZXJ5RGlhbGVjdDtcbiAgLyoqXG4gICAqIHRoZSBwcmVmaXguXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB0aGUgZXNjYXBlZCBwcmVmaXguXG4gICAqL1xuICByZWFkb25seSBlc2NhcGVkUHJlZml4Pzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBhIGByYXdgIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UmF3Rm4gPSAob3B0cz86IFF1ZXJ5UmF3Rm5PcHRpb25zKSA9PiBzdHJpbmc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeVJhdyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IHZhbHVlOiBTY2FsYXIgfCBRdWVyeVJhd0ZuLFxuICAgIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nLFxuICApIHt9XG59XG5cbi8qKlxuICogY29tcGFyaXNvbiBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeUNvbXBhcmlzb25PcHRpb25zID0gUXVlcnlPcHRpb25zICYge1xuICAvKipcbiAgICogdXNlIHByZWNlZGVuY2UgZm9yIHRoZSBjb21wYXJpc29uIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZVByZWNlZGVuY2U/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBxdWVyeSBmaWx0ZXIgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlGaWx0ZXJPcHRpb25zID0gUXVlcnlDb21wYXJpc29uT3B0aW9ucyAmIHtcbiAgLyoqXG4gICAqIGNsYXVzZSB0byBiZSB1c2VkIGluIHRoZSBmaWx0ZXIuXG4gICAqL1xuICByZWFkb25seSBjbGF1c2U/OiAnV0hFUkUnIHwgJ0hBVklORycgfCBmYWxzZTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlEaWFsZWN0IHtcbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSB0YXJnZXQgZW50aXR5XG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgb3B0aW9uc1xuICAgKiBAcGFyYW0gb3B0cyB0aGUgcXVlcnkgb3B0aW9uc1xuICAgKi9cbiAgZmluZDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUXVlcnlQcm9qZWN0PEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb3VudHMgdGhlIG51bWJlciBvZiByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBpbnNlciByZWNvcmRzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSB0YXJnZXQgZW50aXR5XG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgb3B0aW9uc1xuICAgKiBAcGFyYW0gb3B0cyB0aGUgcXVlcnkgb3B0aW9uc1xuICAgKi9cbiAgaW5zZXJ0PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRSB8IHJlYWRvbmx5IEVbXSwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IHN0cmluZztcblxuICAvKipcbiAgICogdXBkYXRlIHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEBwYXJhbSBwYXlsb2FkXG4gICAqIEBwYXJhbSBvcHRzIHRoZSBxdWVyeSBvcHRpb25zXG4gICAqL1xuICB1cGRhdGU8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUsIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSByZWNvcmRzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSB0YXJnZXQgZW50aXR5XG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgb3B0aW9uc1xuICAgKiBAcGFyYW0gb3B0cyB0aGUgcXVlcnkgb3B0aW9uc1xuICAgKi9cbiAgZGVsZXRlPEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBlc2NhcGUgYW4gaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHZhbCB0aGUgdmFsdWUgdG8gYmUgZXNjYXBlZFxuICAgKiBAcGFyYW0gZm9yYmlkUXVhbGlmaWVkIGRvbid0IGVzY2FwZSBkb3RzXG4gICAqIEBwYXJhbSBhZGREb3QgdXNlIGEgZG90IGFzIHN1ZmZpeFxuICAgKi9cbiAgZXNjYXBlSWQodmFsOiBzdHJpbmcsIGZvcmJpZFF1YWxpZmllZD86IGJvb2xlYW4sIGFkZERvdD86IGJvb2xlYW4pOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGVzY2FwZSBhIHZhbHVlLlxuICAgKiBAcGFyYW0gdmFsIHRoZSB2YWx1ZSB0byBlc2NhcGVcbiAgICovXG4gIGVzY2FwZSh2YWw6IGFueSk6IFNjYWxhcjtcbn1cbiJdfQ==
import type { IdValue } from './entity.js';
import type { QueryCriteria, QueryOptions, QueryProject, QuerySearch, Merge, QueryOneCriteria } from './query.js';
import type { QueryCriteria, QueryOptions, QueryProject, QuerySearch, QueryOneCriteria } from './query.js';
import type { UniversalQuerier } from './universalQuerier.js';

@@ -22,3 +22,3 @@ import type { Type } from './utility.js';

*/
findOneById<P extends QueryProject<E>>(id: IdValue<E>, project?: P): Promise<any>;
findOneById(id: IdValue<E>, project?: QueryProject<E>): Promise<any>;
/**

@@ -28,3 +28,3 @@ * obtains the first record matching the given search parameters.

*/
findOne<P extends QueryProject<E>>(qm: QueryOneCriteria<E>, project?: P): Promise<any>;
findOne(qm: QueryOneCriteria<E>, project?: QueryProject<E>): Promise<any>;
/**

@@ -34,3 +34,3 @@ * obtains the records matching the given search parameters.

*/
findMany<P extends QueryProject<E>>(qm: QueryCriteria<E>, project?: P): Promise<any>;
findMany(qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<any>;
/**

@@ -41,3 +41,3 @@ * obtains the records matching the given search parameters,

*/
findManyAndCount<P extends QueryProject<E>>(qm: QueryCriteria<E>, project?: P): Promise<any>;
findManyAndCount(qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<any>;
/**

@@ -96,6 +96,6 @@ * counts the number of records matching the given search parameters.

export interface Repository<E> extends UniversalRepository<E> {
findOneById<P extends QueryProject<E>>(id: IdValue<E>, project?: P): Promise<Merge<E, P>>;
findOne<P extends QueryProject<E>>(qm: QueryOneCriteria<E>, project?: P): Promise<Merge<E, P>>;
findMany<P extends QueryProject<E>>(qm: QueryCriteria<E>, project?: P): Promise<Merge<E, P>[]>;
findManyAndCount<P extends QueryProject<E>>(qm: QueryCriteria<E>, project?: P): Promise<[Merge<E, P>[], number]>;
findOneById(id: IdValue<E>, project?: QueryProject<E>): Promise<E>;
findOne(qm: QueryOneCriteria<E>, project?: QueryProject<E>): Promise<E>;
findMany(qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<E[]>;
findManyAndCount(qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<[E[], number]>;
count(qm?: QuerySearch<E>): Promise<number>;

@@ -102,0 +102,0 @@ insertOne(payload: E): Promise<IdValue<E>>;

export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSWRWYWx1ZSB9IGZyb20gJy4vZW50aXR5LmpzJztcbmltcG9ydCB0eXBlIHsgUXVlcnlDcml0ZXJpYSwgUXVlcnlPcHRpb25zLCBRdWVyeVByb2plY3QsIFF1ZXJ5U2VhcmNoLCBNZXJnZSwgUXVlcnlPbmVDcml0ZXJpYSB9IGZyb20gJy4vcXVlcnkuanMnO1xuaW1wb3J0IHR5cGUgeyBVbml2ZXJzYWxRdWVyaWVyIH0gZnJvbSAnLi91bml2ZXJzYWxRdWVyaWVyLmpzJztcbmltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJy4vdXRpbGl0eS5qcyc7XG5cbi8qKlxuICogQSBgcmVwb3NpdG9yeWAgYWxsb3dzIHRvIGludGVyYWN0IHdpdGggdGhlIGRhdGFzb3VyY2UgdG8gcGVyZm9ybSBwZXJzaXN0ZW5jZSBvcGVyYXRpb25zIG9uIGEgc3BlY2lmaWMgZW50aXR5LlxuICovXG5leHBvcnQgdHlwZSBVbml2ZXJzYWxSZXBvc2l0b3J5PEU+ID0ge1xuICAvKipcbiAgICogdGhlIGBlbnRpdHlgIGNsYXNzIHRvIHdoaWNoIHRoaXMgYHJlcG9zaXRvcnlgIGlzIGxpbmtlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IGVudGl0eTogVHlwZTxFPjtcblxuICAvKipcbiAgICogdGhlIGBxdWVyaWVyYCBpbnN0YW5jZSB0byB3aGljaCB0aGlzIGByZXBvc2l0b3J5YCBpcyBsaW5rZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBxdWVyaWVyOiBVbml2ZXJzYWxRdWVyaWVyO1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmQgd2l0aCB0aGUgZ2l2ZW4gcHJpbWFyeSBrZXkuXG4gICAqIEBwYXJhbSBpZCB0aGUgcHJpbWFyeSBrZXkgdmFsdWVcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqL1xuICBmaW5kT25lQnlJZDxQIGV4dGVuZHMgUXVlcnlQcm9qZWN0PEU+PihpZDogSWRWYWx1ZTxFPiwgcHJvamVjdD86IFApOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIGZpcnN0IHJlY29yZCBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgb3B0aW9uc1xuICAgKi9cbiAgZmluZE9uZTxQIGV4dGVuZHMgUXVlcnlQcm9qZWN0PEU+PihxbTogUXVlcnlPbmVDcml0ZXJpYTxFPiwgcHJvamVjdD86IFApOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRNYW55PFAgZXh0ZW5kcyBRdWVyeVByb2plY3Q8RT4+KHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUCk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogb2J0YWlucyB0aGUgcmVjb3JkcyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMsXG4gICAqIGFsc28gY291bnRzIHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpZ25vcmluZyBwYWdpbmF0aW9uLlxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRNYW55QW5kQ291bnQ8UCBleHRlbmRzIFF1ZXJ5UHJvamVjdDxFPj4ocW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHByb2plY3Q/OiBQKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBjb3VudHMgdGhlIG51bWJlciBvZiByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHFtIHRoZSBzZWFyY2ggb3B0aW9uc1xuICAgKi9cbiAgY291bnQocW0/OiBRdWVyeVNlYXJjaDxFPik6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogaW5zZXJ0cyBhIHJlY29yZC5cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICBpbnNlcnRPbmUocGF5bG9hZDogRSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogSW5zZXJ0cyBtYW55IHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgaW5zZXJ0TWFueT8ocGF5bG9hZDogRVtdKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIGEgcmVjb3JkIHBhcnRpYWxseS5cbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSBvZiB0aGUgcmVjb3JkIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICB1cGRhdGVPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIG1hbnkgcmVjb3JkcyBwYXJ0aWFsbHkuXG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgdG8gbG9vayBmb3IgdGhlIHJlY29yZHNcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICB1cGRhdGVNYW55PyhxbTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIEluc2VydCBvciB1cGRhdGUgYSByZWNvcmQuXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgc2F2ZU9uZShwYXlsb2FkOiBFKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBpbnNlcnQgb3IgdXBkYXRlIHJlY29yZHMuXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgc2F2ZU1hbnk/KHBheWxvYWQ6IEVbXSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogZGVsZXRlIG9yIFNvZnREZWxldGUgYSByZWNvcmQuXG4gICAqIEBwYXJhbSBpZCB0aGUgcHJpbWFyeSBrZXkgb2YgdGhlIHJlY29yZFxuICAgKi9cbiAgZGVsZXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogZGVsZXRlIG9yIFNvZnREZWxldGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSB0byBsb29rIGZvciB0aGUgcmVjb3Jkc1xuICAgKi9cbiAgZGVsZXRlTWFueShxbTogUXVlcnlTZWFyY2g8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPGFueT47XG59O1xuXG4vKipcbiAqIGJhc2UgY29udHJhY3QgZm9yIHRoZSBiYWNrZW5kIHJlcG9zaXRvcmllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvc2l0b3J5PEU+IGV4dGVuZHMgVW5pdmVyc2FsUmVwb3NpdG9yeTxFPiB7XG4gIGZpbmRPbmVCeUlkPFAgZXh0ZW5kcyBRdWVyeVByb2plY3Q8RT4+KGlkOiBJZFZhbHVlPEU+LCBwcm9qZWN0PzogUCk6IFByb21pc2U8TWVyZ2U8RSwgUD4+O1xuXG4gIGZpbmRPbmU8UCBleHRlbmRzIFF1ZXJ5UHJvamVjdDxFPj4ocW06IFF1ZXJ5T25lQ3JpdGVyaWE8RT4sIHByb2plY3Q/OiBQKTogUHJvbWlzZTxNZXJnZTxFLCBQPj47XG5cbiAgZmluZE1hbnk8UCBleHRlbmRzIFF1ZXJ5UHJvamVjdDxFPj4ocW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHByb2plY3Q/OiBQKTogUHJvbWlzZTxNZXJnZTxFLCBQPltdPjtcblxuICBmaW5kTWFueUFuZENvdW50PFAgZXh0ZW5kcyBRdWVyeVByb2plY3Q8RT4+KHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUCk6IFByb21pc2U8W01lcmdlPEUsIFA+W10sIG51bWJlcl0+O1xuXG4gIGNvdW50KHFtPzogUXVlcnlTZWFyY2g8RT4pOiBQcm9taXNlPG51bWJlcj47XG5cbiAgaW5zZXJ0T25lKHBheWxvYWQ6IEUpOiBQcm9taXNlPElkVmFsdWU8RT4+O1xuXG4gIGluc2VydE1hbnkocGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIHVwZGF0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgdXBkYXRlTWFueShxbTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgc2F2ZU9uZShwYXlsb2FkOiBFKTogUHJvbWlzZTxJZFZhbHVlPEU+PjtcblxuICBzYXZlTWFueT8ocGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIGRlbGV0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZGVsZXRlTWFueShxbTogUXVlcnlTZWFyY2g8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj47XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSWRWYWx1ZSB9IGZyb20gJy4vZW50aXR5LmpzJztcbmltcG9ydCB0eXBlIHsgUXVlcnlDcml0ZXJpYSwgUXVlcnlPcHRpb25zLCBRdWVyeVByb2plY3QsIFF1ZXJ5U2VhcmNoLCBRdWVyeU9uZUNyaXRlcmlhIH0gZnJvbSAnLi9xdWVyeS5qcyc7XG5pbXBvcnQgdHlwZSB7IFVuaXZlcnNhbFF1ZXJpZXIgfSBmcm9tICcuL3VuaXZlcnNhbFF1ZXJpZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcblxuLyoqXG4gKiBBIGByZXBvc2l0b3J5YCBhbGxvd3MgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YXNvdXJjZSB0byBwZXJmb3JtIHBlcnNpc3RlbmNlIG9wZXJhdGlvbnMgb24gYSBzcGVjaWZpYyBlbnRpdHkuXG4gKi9cbmV4cG9ydCB0eXBlIFVuaXZlcnNhbFJlcG9zaXRvcnk8RT4gPSB7XG4gIC8qKlxuICAgKiB0aGUgYGVudGl0eWAgY2xhc3MgdG8gd2hpY2ggdGhpcyBgcmVwb3NpdG9yeWAgaXMgbGlua2VkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZW50aXR5OiBUeXBlPEU+O1xuXG4gIC8qKlxuICAgKiB0aGUgYHF1ZXJpZXJgIGluc3RhbmNlIHRvIHdoaWNoIHRoaXMgYHJlcG9zaXRvcnlgIGlzIGxpbmtlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJpZXI6IFVuaXZlcnNhbFF1ZXJpZXI7XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZCB3aXRoIHRoZSBnaXZlbiBwcmltYXJ5IGtleS5cbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSB2YWx1ZVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBwcm9qZWN0PzogUXVlcnlQcm9qZWN0PEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSBmaXJzdCByZWNvcmQgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRPbmUocW06IFF1ZXJ5T25lQ3JpdGVyaWE8RT4sIHByb2plY3Q/OiBRdWVyeVByb2plY3Q8RT4pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRNYW55KHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUXVlcnlQcm9qZWN0PEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycyxcbiAgICogYWxzbyBjb3VudHMgdGhlIG51bWJlciBvZiBtYXRjaGVzIGlnbm9yaW5nIHBhZ2luYXRpb24uXG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgb3B0aW9uc1xuICAgKi9cbiAgZmluZE1hbnlBbmRDb3VudChxbTogUXVlcnlDcml0ZXJpYTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPik6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogY291bnRzIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBxbSB0aGUgc2VhcmNoIG9wdGlvbnNcbiAgICovXG4gIGNvdW50KHFtPzogUXVlcnlTZWFyY2g8RT4pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIGluc2VydHMgYSByZWNvcmQuXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgaW5zZXJ0T25lKHBheWxvYWQ6IEUpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIEluc2VydHMgbWFueSByZWNvcmRzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICovXG4gIGluc2VydE1hbnk/KHBheWxvYWQ6IEVbXSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogdXBkYXRlcyBhIHJlY29yZCBwYXJ0aWFsbHkuXG4gICAqIEBwYXJhbSBpZCB0aGUgcHJpbWFyeSBrZXkgb2YgdGhlIHJlY29yZCB0byBiZSB1cGRhdGVkXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgdXBkYXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogdXBkYXRlcyBtYW55IHJlY29yZHMgcGFydGlhbGx5LlxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIHRvIGxvb2sgZm9yIHRoZSByZWNvcmRzXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgdXBkYXRlTWFueT8ocW06IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgb3IgdXBkYXRlIGEgcmVjb3JkLlxuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICovXG4gIHNhdmVPbmUocGF5bG9hZDogRSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogaW5zZXJ0IG9yIHVwZGF0ZSByZWNvcmRzLlxuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICovXG4gIHNhdmVNYW55PyhwYXlsb2FkOiBFW10pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBvciBTb2Z0RGVsZXRlIGEgcmVjb3JkLlxuICAgKiBAcGFyYW0gaWQgdGhlIHByaW1hcnkga2V5IG9mIHRoZSByZWNvcmRcbiAgICovXG4gIGRlbGV0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBvciBTb2Z0RGVsZXRlIHJlY29yZHMuXG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgdG8gbG9vayBmb3IgdGhlIHJlY29yZHNcbiAgICovXG4gIGRlbGV0ZU1hbnkocW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xufTtcblxuLyoqXG4gKiBiYXNlIGNvbnRyYWN0IGZvciB0aGUgYmFja2VuZCByZXBvc2l0b3JpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3NpdG9yeTxFPiBleHRlbmRzIFVuaXZlcnNhbFJlcG9zaXRvcnk8RT4ge1xuICBmaW5kT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPik6IFByb21pc2U8RT47XG5cbiAgZmluZE9uZShxbTogUXVlcnlPbmVDcml0ZXJpYTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPik6IFByb21pc2U8RT47XG5cbiAgZmluZE1hbnkocW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHByb2plY3Q/OiBRdWVyeVByb2plY3Q8RT4pOiBQcm9taXNlPEVbXT47XG5cbiAgZmluZE1hbnlBbmRDb3VudChxbTogUXVlcnlDcml0ZXJpYTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPik6IFByb21pc2U8W0VbXSwgbnVtYmVyXT47XG5cbiAgY291bnQocW0/OiBRdWVyeVNlYXJjaDxFPik6IFByb21pc2U8bnVtYmVyPjtcblxuICBpbnNlcnRPbmUocGF5bG9hZDogRSk6IFByb21pc2U8SWRWYWx1ZTxFPj47XG5cbiAgaW5zZXJ0TWFueShwYXlsb2FkOiBFW10pOiBQcm9taXNlPElkVmFsdWU8RT5bXT47XG5cbiAgdXBkYXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8bnVtYmVyPjtcblxuICB1cGRhdGVNYW55KHFtOiBRdWVyeVNlYXJjaDxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8bnVtYmVyPjtcblxuICBzYXZlT25lKHBheWxvYWQ6IEUpOiBQcm9taXNlPElkVmFsdWU8RT4+O1xuXG4gIHNhdmVNYW55PyhwYXlsb2FkOiBFW10pOiBQcm9taXNlPElkVmFsdWU8RT5bXT47XG5cbiAgZGVsZXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcblxuICBkZWxldGVNYW55KHFtOiBRdWVyeVNlYXJjaDxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcbn1cbiJdfQ==

@@ -15,3 +15,3 @@ import type { Type } from './utility.js';

*/
findOneById<E, P extends QueryProject<E>>(entity: Type<E>, id: IdValue<E>, project?: P): Promise<any>;
findOneById<E>(entity: Type<E>, id: IdValue<E>, project?: QueryProject<E>): Promise<any>;
/**

@@ -23,3 +23,3 @@ * obtains the first record matching the given search parameters.

*/
findOne<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryOneCriteria<E>, project?: P): Promise<any>;
findOne<E>(entity: Type<E>, qm: QueryOneCriteria<E>, project?: QueryProject<E>): Promise<any>;
/**

@@ -31,3 +31,3 @@ * obtains the records matching the given search parameters.

*/
findMany<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project?: P): Promise<any>;
findMany<E>(entity: Type<E>, qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<any>;
/**

@@ -40,3 +40,3 @@ * obtains the records matching the given search parameters,

*/
findManyAndCount<E, P extends QueryProject<E>>(entity: Type<E>, qm: QueryCriteria<E>, project?: P): Promise<any>;
findManyAndCount<E>(entity: Type<E>, qm: QueryCriteria<E>, project?: QueryProject<E>): Promise<any>;
/**

@@ -43,0 +43,0 @@ * counts the number of records matching the given search parameters.

export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2FsUXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3VuaXZlcnNhbFF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJy4vdXRpbGl0eS5qcyc7XG5pbXBvcnQgdHlwZSB7IFF1ZXJ5Q3JpdGVyaWEsIFF1ZXJ5T25lQ3JpdGVyaWEsIFF1ZXJ5T3B0aW9ucywgUXVlcnlQcm9qZWN0LCBRdWVyeVNlYXJjaCB9IGZyb20gJy4vcXVlcnkuanMnO1xuaW1wb3J0IHR5cGUgeyBVbml2ZXJzYWxSZXBvc2l0b3J5IH0gZnJvbSAnLi9yZXBvc2l0b3J5LmpzJztcbmltcG9ydCB0eXBlIHsgSWRWYWx1ZSB9IGZyb20gJy4vZW50aXR5LmpzJztcblxuLyoqXG4gKiBBIGBxdWVyaWVyYCBhbGxvd3MgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YXNvdXJjZSB0byBwZXJmb3JtIHBlcnNpc3RlbmNlIG9wZXJhdGlvbnMgb24gYW55IGVudGl0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbml2ZXJzYWxRdWVyaWVyIHtcbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZCB3aXRoIHRoZSBnaXZlbiBwcmltYXJ5IGtleS5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gaWQgdGhlIHByaW1hcnkga2V5IHZhbHVlXG4gICAqIEByZXR1cm4gdGhlIHJlY29yZFxuICAgKi9cbiAgZmluZE9uZUJ5SWQ8RSwgUCBleHRlbmRzIFF1ZXJ5UHJvamVjdDxFPj4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcHJvamVjdD86IFApOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIGZpcnN0IHJlY29yZCBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEByZXR1cm4gdGhlIHJlY29yZFxuICAgKi9cbiAgZmluZE9uZTxFLCBQIGV4dGVuZHMgUXVlcnlQcm9qZWN0PEU+PihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeU9uZUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUCk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogb2J0YWlucyB0aGUgcmVjb3JkcyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEByZXR1cm4gdGhlIHJlY29yZHNcbiAgICovXG4gIGZpbmRNYW55PEUsIFAgZXh0ZW5kcyBRdWVyeVByb2plY3Q8RT4+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHByb2plY3Q/OiBQKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycyxcbiAgICogYWxzbyBjb3VudHMgdGhlIG51bWJlciBvZiBtYXRjaGVzIGlnbm9yaW5nIHBhZ2luYXRpb24uXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEByZXR1cm4gdGhlIHJlY29yZHMgYW5kIHRoZSBjb3VudFxuICAgKi9cbiAgZmluZE1hbnlBbmRDb3VudDxFLCBQIGV4dGVuZHMgUXVlcnlQcm9qZWN0PEU+PihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUCk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogY291bnRzIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBzZWFyY2ggb3B0aW9uc1xuICAgKiBAcmV0dXJuIHRoZSBjb3VudFxuICAgKi9cbiAgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbT86IFF1ZXJ5U2VhcmNoPEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBpbnNlcnRzIGEgcmVjb3JkLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICogQHJldHVybiB0aGUgSURcbiAgICovXG4gIGluc2VydE9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIEluc2VydHMgbWFueSByZWNvcmRzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICogQHJldHVybiB0aGUgSURzXG4gICAqL1xuICBpbnNlcnRNYW55PzxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogdXBkYXRlcyBhIHJlY29yZCBwYXJ0aWFsbHkuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBpZCB0aGUgcHJpbWFyeSBrZXkgb2YgdGhlIHJlY29yZCB0byBiZSB1cGRhdGVkXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYWZmZWN0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgdXBkYXRlT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIG1hbnkgcmVjb3JkcyBwYXJ0aWFsbHkuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgdG8gbG9vayBmb3IgdGhlIHJlY29yZHNcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBhZmZlY3RlZCByZWNvcmRzXG4gICAqL1xuICB1cGRhdGVNYW55PzxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeVNlYXJjaDxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogaW5zZXJ0IG9yIHVwZGF0ZSBhIHJlY29yZC5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqIEByZXR1cm4gdGhlIElEXG4gICAqL1xuICBzYXZlT25lPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogSW5zZXJ0IG9yIHVwZGF0ZSByZWNvcmRzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICogQHJldHVybiB0aGUgSURzXG4gICAqL1xuICBzYXZlTWFueT88RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBvciBTb2Z0RGVsZXRlIGEgcmVjb3JkLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gaWQgdGhlIHByaW1hcnkga2V5IG9mIHRoZSByZWNvcmRcbiAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGFmZmVjdGVkIHJlY29yZHNcbiAgICovXG4gIGRlbGV0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogZGVsZXRlIG9yIFNvZnREZWxldGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSB0byBsb29rIGZvciB0aGUgcmVjb3Jkc1xuICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYWZmZWN0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeVNlYXJjaDxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogZ2V0IGEgcmVwb3NpdG9yeSBmb3IgdGhlIGdpdmVuIGVudGl0eS5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIGdldCB0aGUgcmVwb3NpdG9yeSBmb3JcbiAgICogQHJldHVybiB0aGUgcmVwb3NpdG9yeVxuICAgKi9cbiAgZ2V0UmVwb3NpdG9yeTxFPihlbnRpdHk6IFR5cGU8RT4pOiBVbml2ZXJzYWxSZXBvc2l0b3J5PEU+O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2FsUXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3VuaXZlcnNhbFF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJy4vdXRpbGl0eS5qcyc7XG5pbXBvcnQgdHlwZSB7IFF1ZXJ5Q3JpdGVyaWEsIFF1ZXJ5T25lQ3JpdGVyaWEsIFF1ZXJ5T3B0aW9ucywgUXVlcnlQcm9qZWN0LCBRdWVyeVNlYXJjaCB9IGZyb20gJy4vcXVlcnkuanMnO1xuaW1wb3J0IHR5cGUgeyBVbml2ZXJzYWxSZXBvc2l0b3J5IH0gZnJvbSAnLi9yZXBvc2l0b3J5LmpzJztcbmltcG9ydCB0eXBlIHsgSWRWYWx1ZSB9IGZyb20gJy4vZW50aXR5LmpzJztcblxuLyoqXG4gKiBBIGBxdWVyaWVyYCBhbGxvd3MgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YXNvdXJjZSB0byBwZXJmb3JtIHBlcnNpc3RlbmNlIG9wZXJhdGlvbnMgb24gYW55IGVudGl0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbml2ZXJzYWxRdWVyaWVyIHtcbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZCB3aXRoIHRoZSBnaXZlbiBwcmltYXJ5IGtleS5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gaWQgdGhlIHByaW1hcnkga2V5IHZhbHVlXG4gICAqIEByZXR1cm4gdGhlIHJlY29yZFxuICAgKi9cbiAgZmluZE9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcHJvamVjdD86IFF1ZXJ5UHJvamVjdDxFPik6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogb2J0YWlucyB0aGUgZmlyc3QgcmVjb3JkIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHJldHVybiB0aGUgcmVjb3JkXG4gICAqL1xuICBmaW5kT25lPEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5T25lQ3JpdGVyaWE8RT4sIHByb2plY3Q/OiBRdWVyeVByb2plY3Q8RT4pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSB0YXJnZXQgZW50aXR5XG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgb3B0aW9uc1xuICAgKiBAcmV0dXJuIHRoZSByZWNvcmRzXG4gICAqL1xuICBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUXVlcnlQcm9qZWN0PEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycyxcbiAgICogYWxzbyBjb3VudHMgdGhlIG51bWJlciBvZiBtYXRjaGVzIGlnbm9yaW5nIHBhZ2luYXRpb24uXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEByZXR1cm4gdGhlIHJlY29yZHMgYW5kIHRoZSBjb3VudFxuICAgKi9cbiAgZmluZE1hbnlBbmRDb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwcm9qZWN0PzogUXVlcnlQcm9qZWN0PEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBjb3VudHMgdGhlIG51bWJlciBvZiByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIHNlYXJjaCBvcHRpb25zXG4gICAqIEByZXR1cm4gdGhlIGNvdW50XG4gICAqL1xuICBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtPzogUXVlcnlTZWFyY2g8RT4pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIGluc2VydHMgYSByZWNvcmQuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKiBAcmV0dXJuIHRoZSBJRFxuICAgKi9cbiAgaW5zZXJ0T25lPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogSW5zZXJ0cyBtYW55IHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKiBAcmV0dXJuIHRoZSBJRHNcbiAgICovXG4gIGluc2VydE1hbnk/PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIGEgcmVjb3JkIHBhcnRpYWxseS5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSBvZiB0aGUgcmVjb3JkIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBhZmZlY3RlZCByZWNvcmRzXG4gICAqL1xuICB1cGRhdGVPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIHVwZGF0ZXMgbWFueSByZWNvcmRzIHBhcnRpYWxseS5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSB0byBsb29rIGZvciB0aGUgcmVjb3Jkc1xuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGFmZmVjdGVkIHJlY29yZHNcbiAgICovXG4gIHVwZGF0ZU1hbnk/PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBpbnNlcnQgb3IgdXBkYXRlIGEgcmVjb3JkLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICogQHJldHVybiB0aGUgSURcbiAgICovXG4gIHNhdmVPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgb3IgdXBkYXRlIHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKiBAcmV0dXJuIHRoZSBJRHNcbiAgICovXG4gIHNhdmVNYW55PzxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogZGVsZXRlIG9yIFNvZnREZWxldGUgYSByZWNvcmQuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBpZCB0aGUgcHJpbWFyeSBrZXkgb2YgdGhlIHJlY29yZFxuICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYWZmZWN0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgZGVsZXRlT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgb3IgU29mdERlbGV0ZSByZWNvcmRzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIHRvIGxvb2sgZm9yIHRoZSByZWNvcmRzXG4gICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBhZmZlY3RlZCByZWNvcmRzXG4gICAqL1xuICBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBnZXQgYSByZXBvc2l0b3J5IGZvciB0aGUgZ2l2ZW4gZW50aXR5LlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gZ2V0IHRoZSByZXBvc2l0b3J5IGZvclxuICAgKiBAcmV0dXJuIHRoZSByZXBvc2l0b3J5XG4gICAqL1xuICBnZXRSZXBvc2l0b3J5PEU+KGVudGl0eTogVHlwZTxFPik6IFVuaXZlcnNhbFJlcG9zaXRvcnk8RT47XG59XG4iXX0=

Sorry, the diff of this file is too big to display

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