@uql/mongo
Advanced tools
Comparing version 0.4.16 to 0.4.17
@@ -10,4 +10,4 @@ import { MongoClient, ObjectId } from 'mongodb'; | ||
constructor(conn: MongoClient, dialect?: MongoDialect); | ||
insertMany<E>(entity: Type<E>, bodies: E[]): Promise<any[]>; | ||
updateMany<E>(entity: Type<E>, qm: QueryCriteria<E>, body: E): Promise<number>; | ||
insertMany<E>(entity: Type<E>, payload: E[]): Promise<any[]>; | ||
updateMany<E>(entity: Type<E>, qm: QueryCriteria<E>, payload: E): Promise<number>; | ||
findMany<E>(entity: Type<E>, qm: Query<E>): Promise<E[]>; | ||
@@ -14,0 +14,0 @@ findOneById<E>(entity: Type<E>, id: ObjectId, qo: QueryOne<E>): Promise<E>; |
@@ -16,7 +16,7 @@ "use strict"; | ||
} | ||
async insertMany(entity, bodies) { | ||
const persistables = bodies.map((body) => { | ||
const persistableProperties = util_1.filterPersistableProperties(entity, body); | ||
async insertMany(entity, payload) { | ||
const persistables = payload.map((it) => { | ||
const persistableProperties = util_1.filterPersistableProperties(entity, it); | ||
return persistableProperties.reduce((acc, key) => { | ||
acc[key] = body[key]; | ||
acc[key] = it[key]; | ||
return acc; | ||
@@ -29,6 +29,6 @@ }, {}); | ||
} | ||
async updateMany(entity, qm, body) { | ||
const persistableProperties = util_1.filterPersistableProperties(entity, body); | ||
async updateMany(entity, qm, payload) { | ||
const persistableProperties = util_1.filterPersistableProperties(entity, payload); | ||
const persistable = persistableProperties.reduce((acc, key) => { | ||
acc[key] = body[key]; | ||
acc[key] = payload[key]; | ||
return acc; | ||
@@ -157,7 +157,8 @@ }, {}); | ||
} | ||
doc[meta.id.property] = doc._id; | ||
delete doc._id; | ||
const res = doc; | ||
res[meta.id.property] = res._id; | ||
delete res._id; | ||
for (const relProp of Object.keys(meta.relations)) { | ||
const relOpts = meta.relations[relProp]; | ||
const relData = doc[relProp]; | ||
const relData = res[relProp]; | ||
if (typeof relData === 'object' && !(relData instanceof mongodb_1.ObjectId)) { | ||
@@ -168,4 +169,4 @@ const relMeta = decorator_1.getMeta(relOpts.entity()); | ||
} | ||
return doc; | ||
return res; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW9uZ29kYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXdGO0FBQ3hGLG9DQUF5QztBQUV6QywrQ0FBZ0Q7QUFDaEQsMERBQXFEO0FBQ3JELGdEQUFvRTtBQUNwRSxpREFBOEM7QUFFOUMsTUFBYSxjQUFlLFNBQVEscUJBQVc7SUFHN0MsWUFBcUIsSUFBaUIsRUFBVyxVQUFVLElBQUksMkJBQVksRUFBRTtRQUMzRSxLQUFLLEVBQUUsQ0FBQztRQURXLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUU3RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBSSxNQUFlLEVBQUUsTUFBVztRQUM5QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsTUFBTSxxQkFBcUIsR0FBRyxrQ0FBMkIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEUsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQy9DLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxFQUFFLEVBQW1CLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILFVBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVsQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUU5RixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxD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RCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBSSxHQUFXLENBQUMsR0FBRyxDQUFDO0lBQ3pDLE9BQVEsR0FBVyxDQUFDLEdBQUcsQ0FBQztJQUN4QixLQUFLLE1BQU0sT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksa0JBQVEsQ0FBQyxFQUFFO1lBQ2pFLE1BQU0sT0FBTyxHQUFHLG1CQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDMUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNoQztLQUNGO0lBQ0QsT0FBTyxHQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbmdvQ2xpZW50LCBDbGllbnRTZXNzaW9uLCBPcHRpb25hbElkLCBPYmplY3RJZCwgVXBkYXRlUXVlcnkgfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IGlzRGVidWcsIGxvZyB9IGZyb20gJ0B1cWwvY29yZSc7XG5pbXBvcnQgeyBRdWVyeSwgRW50aXR5TWV0YSwgUXVlcnlPbmUsIFR5cGUsIFF1ZXJ5Q3JpdGVyaWEgfSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5pbXBvcnQgeyBCYXNlUXVlcmllciB9IGZyb20gJ0B1cWwvY29yZS9xdWVyaWVyJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICdAdXFsL2NvcmUvZW50aXR5L2RlY29yYXRvcic7XG5pbXBvcnQgeyBmaWx0ZXJQZXJzaXN0YWJsZVByb3BlcnRpZXMgfSBmcm9tICdAdXFsL2NvcmUvZW50aXR5L3V0aWwnO1xuaW1wb3J0IHsgTW9uZ29EaWFsZWN0IH0gZnJvbSAnLi9tb25nb0RpYWxlY3QnO1xuXG5leHBvcnQgY2xhc3MgTW9uZ29kYlF1ZXJpZXIgZXh0ZW5kcyBCYXNlUXVlcmllciB7XG4gIHByaXZhdGUgc2Vzc2lvbjogQ2xpZW50U2Vzc2lvbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25uOiBNb25nb0NsaWVudCwgcmVhZG9ubHkgZGlhbGVjdCA9IG5ldyBNb25nb0RpYWxlY3QoKSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBhc3luYyBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgYm9kaWVzOiBFW10pIHtcbiAgICBjb25zdCBwZXJzaXN0YWJsZXMgPSBib2RpZXMubWFwKChib2R5KSA9PiB7XG4gICAgICBjb25zdCBwZXJzaXN0YWJsZVByb3BlcnRpZXMgPSBmaWx0ZXJQZXJzaXN0YWJsZVByb3BlcnRpZXMoZW50aXR5LCBib2R5KTtcbiAgICAgIHJldHVybiBwZXJzaXN0YWJsZVByb3BlcnRpZXMucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBhY2Nba2V5XSA9IGJvZHlba2V5XTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIE9wdGlvbmFsSWQ8RT4pO1xuICAgIH0pO1xuXG4gICAgbG9nKHBlcnNpc3RhYmxlcyk7XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5pbnNlcnRNYW55KHBlcnNpc3RhYmxlcywgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhyZXMuaW5zZXJ0ZWRJZHMpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBib2R5OiBFKSB7XG4gICAgY29uc3QgcGVyc2lzdGFibGVQcm9wZXJ0aWVzID0gZmlsdGVyUGVyc2lzdGFibGVQcm9wZXJ0aWVzKGVudGl0eSwgYm9keSk7XG4gICAgY29uc3QgcGVyc2lzdGFibGUgPSBwZXJzaXN0YWJsZVByb3BlcnRpZXMucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgYWNjW2tleV0gPSBib2R5W2tleV07XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIE9wdGlvbmFsSWQ8RT4pO1xuXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmJ1aWxkRmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgY29uc3QgdXBkYXRlID0geyAkc2V0OiBwZXJzaXN0YWJsZSB9O1xuXG4gICAgbG9nKGZpbHRlciwgdXBkYXRlKTtcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLnVwZGF0ZU1hbnkoZmlsdGVyLCB1cGRhdGUsIHtcbiAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICB9KTtcblxuICAgIHJldHVybiByZXMubW9kaWZpZWRDb3VudDtcbiAgfVxuXG4gIGFzeW5jIGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGxldCBkb2N1bWVudHM6IEVbXTtcblxuICAgIGlmIChxbS4kcG9wdWxhdGUgJiYgT2JqZWN0LmtleXMocW0uJHBvcHVsYXRlKS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHBpcGVsaW5lID0gdGhpcy5kaWFsZWN0LmJ1aWxkQWdncmVnYXRpb25QaXBlbGluZShlbnRpdHksIHFtKTtcbiAgICAgIGxvZyhwaXBlbGluZSk7XG4gICAgICBkb2N1bWVudHMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5hZ2dyZWdhdGU8RT4ocGlwZWxpbmUsIHsgc2Vzc2lvbjogdGhpcy5zZXNzaW9uIH0pLnRvQXJyYXkoKTtcbiAgICAgIG5vcm1hbGl6ZUlkcyhkb2N1bWVudHMsIG1ldGEpO1xuICAgICAgYXdhaXQgdGhpcy5wb3B1bGF0ZVRvTWFueVJlbGF0aW9ucyhlbnRpdHksIGRvY3VtZW50cywgcW0uJHBvcHVsYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY3Vyc29yID0gdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuZmluZDxFPih7fSwgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSk7XG5cbiAgICAgIGlmIChxbS4kZmlsdGVyKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5idWlsZEZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgICAgICBjdXJzb3IuZmlsdGVyKGZpbHRlcik7XG4gICAgICB9XG4gICAgICBpZiAocW0uJHByb2plY3QpIHtcbiAgICAgICAgY3Vyc29yLnByb2plY3QocW0uJHByb2plY3QpO1xuICAgICAgfVxuICAgICAgaWYgKHFtLiRzb3J0KSB7XG4gICAgICAgIGN1cnNvci5zb3J0KHFtLiRzb3J0KTtcbiAgICAgIH1cbiAgICAgIGlmIChxbS4kc2tpcCkge1xuICAgICAgICBjdXJzb3Iuc2tpcChxbS4kc2tpcCk7XG4gICAgICB9XG4gICAgICBpZiAocW0uJGxpbWl0KSB7XG4gICAgICAgIGN1cnNvci5saW1pdChxbS4kbGltaXQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNEZWJ1ZygpKSB7XG4gICAgICAgIGN1cnNvci5leHBsYWluKChlcnIsIHJlc3VsdCkgPT4gbG9nKGVyciwgcmVzdWx0KSk7XG4gICAgICB9XG5cbiAgICAgIGRvY3VtZW50cyA9IGF3YWl0IGN1cnNvci50b0FycmF5KCk7XG4gICAgICBub3JtYWxpemVJZHMoZG9jdW1lbnRzLCBtZXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG9jdW1lbnRzO1xuICB9XG5cbiAgZmluZE9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogT2JqZWN0SWQsIHFvOiBRdWVyeU9uZTxFPikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZTxFPihlbnRpdHksIHsgLi4ucW8sICRmaWx0ZXI6IHsgW21ldGEuaWQubmFtZV06IGlkIH0gfSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4pIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuYnVpbGRGaWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICBsb2coZmlsdGVyKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5kZWxldGVNYW55KGZpbHRlciwge1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgIH0pO1xuICAgIHJldHVybiByZXMuZGVsZXRlZENvdW50O1xuICB9XG5cbiAgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPikge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5idWlsZEZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIGxvZyhmaWx0ZXIpO1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5jb3VudERvY3VtZW50cyhmaWx0ZXIsIHtcbiAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBoYXNPcGVuVHJhbnNhY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbj8uaW5UcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgY29sbGVjdGlvbjxFPihlbnRpdHk6IFR5cGU8RT4pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIHJldHVybiB0aGlzLmNvbm4uZGIoKS5jb2xsZWN0aW9uKG1ldGEubmFtZSk7XG4gIH1cblxuICBhc3luYyBiZWdpblRyYW5zYWN0aW9uKCkge1xuICAgIGlmICh0aGlzLnNlc3Npb24/LmluVHJhbnNhY3Rpb24oKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBsb2coJ3N0YXJ0VHJhbnNhY3Rpb24nKTtcbiAgICB0aGlzLnNlc3Npb24gPSB0aGlzLmNvbm4uc3RhcnRTZXNzaW9uKCk7XG4gICAgdGhpcy5zZXNzaW9uLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIGFzeW5jIGNvbW1pdFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5zZXNzaW9uPy5pblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgbG9nKCdjb21taXRUcmFuc2FjdGlvbicpO1xuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIHRoaXMuc2Vzc2lvbi5lbmRTZXNzaW9uKCk7XG4gIH1cblxuICBhc3luYyByb2xsYmFja1RyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5zZXNzaW9uPy5pblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgbG9nKCdhYm9ydFRyYW5zYWN0aW9uJyk7XG4gICAgYXdhaXQgdGhpcy5zZXNzaW9uLmFib3J0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIGFzeW5jIHJlbGVhc2UoKSB7XG4gICAgaWYgKHRoaXMuc2Vzc2lvbj8uaW5UcmFuc2FjdGlvbigpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbm4uY2xvc2UoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSWRzPEU+KGRvY3M6IEUgfCBFW10sIG1ldGE6IEVudGl0eU1ldGE8RT4pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZG9jcykpIHtcbiAgICBmb3IgKGNvbnN0IGRvYyBvZiBkb2NzKSB7XG4gICAgICBub3JtYWxpemVJZDxFPihkb2MsIG1ldGEpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBub3JtYWxpemVJZDxFPihkb2NzLCBtZXRhKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVJZDxFPihkb2M6IEUsIG1ldGE6IEVudGl0eU1ldGE8RT4pIHtcbiAgaWYgKCFkb2MpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgZG9jW21ldGEuaWQucHJvcGVydHldID0gKGRvYyBhcyBhbnkpLl9pZDtcbiAgZGVsZXRlIChkb2MgYXMgYW55KS5faWQ7XG4gIGZvciAoY29uc3QgcmVsUHJvcCBvZiBPYmplY3Qua2V5cyhtZXRhLnJlbGF0aW9ucykpIHtcbiAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsUHJvcF07XG4gICAgY29uc3QgcmVsRGF0YSA9IGRvY1tyZWxQcm9wXTtcbiAgICBpZiAodHlwZW9mIHJlbERhdGEgPT09ICdvYmplY3QnICYmICEocmVsRGF0YSBpbnN0YW5jZW9mIE9iamVjdElkKSkge1xuICAgICAgY29uc3QgcmVsTWV0YSA9IGdldE1ldGEocmVsT3B0cy5lbnRpdHkoKSk7XG4gICAgICBub3JtYWxpemVJZHMocmVsRGF0YSwgcmVsTWV0YSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2MgYXMgRTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW9uZ29kYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXdGO0FBQ3hGLG9DQUF5QztBQUV6QywrQ0FBZ0Q7QUFDaEQsMERBQXFEO0FBQ3JELGdEQUFvRTtBQUNwRSxpREFBOEM7QUFFOUMsTUFBYSxjQUFlLFNBQVEscUJBQVc7SUFHN0MsWUFBcUIsSUFBaUIsRUFBVyxVQUFVLElBQUksMkJBQVksRUFBRTtRQUMzRSxLQUFLLEVBQUUsQ0FBQztRQURXLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUU3RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBSSxNQUFlLEVBQUUsT0FBWTtRQUMvQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDdEMsTUFBTSxxQkFBcUIsR0FBRyxrQ0FBMkIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEUsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQy9DLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25CLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxFQUFFLEVBQW1CLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILFVBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVsQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUU5RixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFJLE1BQWUsRUFBRSxFQUFvQixFQUFFLE9BQVU7UUFDbkUsTUFBTSxxQkFBcUIsR0FBRyxrQ0FBMkIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0UsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzVELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBbUIsQ0FBQyxDQUFDO1FBRXhCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFFckMsVUFBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVwQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUU7WUFDbkUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUMzQixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBSSxNQUFlLEVBQUUsRUFBWTtRQUM3QyxNQUFNLElBQUksR0FBRyxtQkFBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdCLElBQUksU0FBYyxDQUFDO1FBRW5CLElBQUksRUFBRSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDcEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkUsVUFBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2QsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUksUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RHLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUIsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDckU7YUFBTTtZQUNMLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUU5RSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtZQUNELElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtnQkFDZixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM3QjtZQUNELElBQUksRUFBRSxDQUFDLEtBQUssRUFBRTtnQkFDWixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2QjtZQUNELElBQUksRUFBRSxDQUFDLEtBQUssRUFBRTtnQkFDWixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2QjtZQUNELElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRTtnQkFDYixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN6QjtZQUVELElBQUksY0FBTyxFQUFFLEVBQUU7Z0JBQ2IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLFVBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUNuRDtZQUVELFNBQVMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBSSxNQUFlLEVBQUUsRUFBWSxFQUFFLEVBQWU7UUFDM0QsTUFBTSxJQUFJLEdBQUcsbUJBQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBSSxNQUFlLEVBQUUsRUFBb0I7UUFDdkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxVQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDWixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUMzRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUMsWUFBWSxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUksTUFBZSxFQUFFLEVBQW9CO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsVUFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7WUFDcEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLGtCQUFrQjs7UUFDcEIsT0FBTyxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxVQUFVLENBQUksTUFBZTtRQUMzQixNQUFNLElBQUksR0FBRyxtQkFBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCOztRQUNwQixJQUFJLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsYUFBYSxFQUFFLEVBQUU7WUFDakMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsVUFBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQjs7UUFDckIsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxhQUFhLEVBQUUsQ0FBQSxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUNsRDtRQUNELFVBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUI7O1FBQ3ZCLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsYUFBYSxFQUFFLENBQUEsRUFBRTtZQUNsQyxNQUFNLElBQUksU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDbEQ7UUFDRCxVQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87O1FBQ1gsSUFBSSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLGFBQWEsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFuSkQsd0NBbUpDO0FBRUQsU0FBZ0IsWUFBWSxDQUFJLElBQWEsRUFBRSxJQUFtQjtJQUNoRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdkIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDdEIsV0FBVyxDQUFJLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMzQjtLQUNGO1NBQU07UUFDTCxXQUFXLENBQUksSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQVJELG9DQVFDO0FBRUQsU0FBUyxXQUFXLENBQUksR0FBTSxFQUFFLElBQW1CO0lBQ2pELElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixPQUFPO0tBQ1I7SUFDRCxNQUFNLEdBQUcsR0FBRyxHQUFvQixDQUFDO0lBQ2pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDaEMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ2YsS0FBSyxNQUFNLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsT0FBTyxZQUFZLGtCQUFRLENBQUMsRUFBRTtZQUNqRSxNQUFNLE9BQU8sR0FBRyxtQkFBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDaEM7S0FDRjtJQUNELE9BQU8sR0FBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb25nb0NsaWVudCwgQ2xpZW50U2Vzc2lvbiwgT3B0aW9uYWxJZCwgT2JqZWN0SWQsIFVwZGF0ZVF1ZXJ5IH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQgeyBpc0RlYnVnLCBsb2cgfSBmcm9tICdAdXFsL2NvcmUnO1xuaW1wb3J0IHsgUXVlcnksIEVudGl0eU1ldGEsIFF1ZXJ5T25lLCBUeXBlLCBRdWVyeUNyaXRlcmlhIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuaW1wb3J0IHsgQmFzZVF1ZXJpZXIgfSBmcm9tICdAdXFsL2NvcmUvcXVlcmllcic7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnQHVxbC9jb3JlL2VudGl0eS9kZWNvcmF0b3InO1xuaW1wb3J0IHsgZmlsdGVyUGVyc2lzdGFibGVQcm9wZXJ0aWVzIH0gZnJvbSAnQHVxbC9jb3JlL2VudGl0eS91dGlsJztcbmltcG9ydCB7IE1vbmdvRGlhbGVjdCB9IGZyb20gJy4vbW9uZ29EaWFsZWN0JztcblxuZXhwb3J0IGNsYXNzIE1vbmdvZGJRdWVyaWVyIGV4dGVuZHMgQmFzZVF1ZXJpZXIge1xuICBwcml2YXRlIHNlc3Npb246IENsaWVudFNlc3Npb247XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubjogTW9uZ29DbGllbnQsIHJlYWRvbmx5IGRpYWxlY3QgPSBuZXcgTW9uZ29EaWFsZWN0KCkpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgYXN5bmMgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSkge1xuICAgIGNvbnN0IHBlcnNpc3RhYmxlcyA9IHBheWxvYWQubWFwKChpdCkgPT4ge1xuICAgICAgY29uc3QgcGVyc2lzdGFibGVQcm9wZXJ0aWVzID0gZmlsdGVyUGVyc2lzdGFibGVQcm9wZXJ0aWVzKGVudGl0eSwgaXQpO1xuICAgICAgcmV0dXJuIHBlcnNpc3RhYmxlUHJvcGVydGllcy5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgIGFjY1trZXldID0gaXRba2V5XTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIE9wdGlvbmFsSWQ8RT4pO1xuICAgIH0pO1xuXG4gICAgbG9nKHBlcnNpc3RhYmxlcyk7XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5pbnNlcnRNYW55KHBlcnNpc3RhYmxlcywgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhyZXMuaW5zZXJ0ZWRJZHMpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgcGVyc2lzdGFibGVQcm9wZXJ0aWVzID0gZmlsdGVyUGVyc2lzdGFibGVQcm9wZXJ0aWVzKGVudGl0eSwgcGF5bG9hZCk7XG4gICAgY29uc3QgcGVyc2lzdGFibGUgPSBwZXJzaXN0YWJsZVByb3BlcnRpZXMucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgYWNjW2tleV0gPSBwYXlsb2FkW2tleV07XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIE9wdGlvbmFsSWQ8RT4pO1xuXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmJ1aWxkRmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgY29uc3QgdXBkYXRlID0geyAkc2V0OiBwZXJzaXN0YWJsZSB9O1xuXG4gICAgbG9nKGZpbHRlciwgdXBkYXRlKTtcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLnVwZGF0ZU1hbnkoZmlsdGVyLCB1cGRhdGUsIHtcbiAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICB9KTtcblxuICAgIHJldHVybiByZXMubW9kaWZpZWRDb3VudDtcbiAgfVxuXG4gIGFzeW5jIGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGxldCBkb2N1bWVudHM6IEVbXTtcblxuICAgIGlmIChxbS4kcG9wdWxhdGUgJiYgT2JqZWN0LmtleXMocW0uJHBvcHVsYXRlKS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHBpcGVsaW5lID0gdGhpcy5kaWFsZWN0LmJ1aWxkQWdncmVnYXRpb25QaXBlbGluZShlbnRpdHksIHFtKTtcbiAgICAgIGxvZyhwaXBlbGluZSk7XG4gICAgICBkb2N1bWVudHMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5hZ2dyZWdhdGU8RT4ocGlwZWxpbmUsIHsgc2Vzc2lvbjogdGhpcy5zZXNzaW9uIH0pLnRvQXJyYXkoKTtcbiAgICAgIG5vcm1hbGl6ZUlkcyhkb2N1bWVudHMsIG1ldGEpO1xuICAgICAgYXdhaXQgdGhpcy5wb3B1bGF0ZVRvTWFueVJlbGF0aW9ucyhlbnRpdHksIGRvY3VtZW50cywgcW0uJHBvcHVsYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY3Vyc29yID0gdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuZmluZDxFPih7fSwgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSk7XG5cbiAgICAgIGlmIChxbS4kZmlsdGVyKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5idWlsZEZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgICAgICBjdXJzb3IuZmlsdGVyKGZpbHRlcik7XG4gICAgICB9XG4gICAgICBpZiAocW0uJHByb2plY3QpIHtcbiAgICAgICAgY3Vyc29yLnByb2plY3QocW0uJHByb2plY3QpO1xuICAgICAgfVxuICAgICAgaWYgKHFtLiRzb3J0KSB7XG4gICAgICAgIGN1cnNvci5zb3J0KHFtLiRzb3J0KTtcbiAgICAgIH1cbiAgICAgIGlmIChxbS4kc2tpcCkge1xuICAgICAgICBjdXJzb3Iuc2tpcChxbS4kc2tpcCk7XG4gICAgICB9XG4gICAgICBpZiAocW0uJGxpbWl0KSB7XG4gICAgICAgIGN1cnNvci5saW1pdChxbS4kbGltaXQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNEZWJ1ZygpKSB7XG4gICAgICAgIGN1cnNvci5leHBsYWluKChlcnIsIHJlc3VsdCkgPT4gbG9nKGVyciwgcmVzdWx0KSk7XG4gICAgICB9XG5cbiAgICAgIGRvY3VtZW50cyA9IGF3YWl0IGN1cnNvci50b0FycmF5KCk7XG4gICAgICBub3JtYWxpemVJZHMoZG9jdW1lbnRzLCBtZXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG9jdW1lbnRzO1xuICB9XG5cbiAgZmluZE9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogT2JqZWN0SWQsIHFvOiBRdWVyeU9uZTxFPikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZTxFPihlbnRpdHksIHsgLi4ucW8sICRmaWx0ZXI6IHsgW21ldGEuaWQubmFtZV06IGlkIH0gfSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4pIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuYnVpbGRGaWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICBsb2coZmlsdGVyKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5kZWxldGVNYW55KGZpbHRlciwge1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgIH0pO1xuICAgIHJldHVybiByZXMuZGVsZXRlZENvdW50O1xuICB9XG5cbiAgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPikge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5idWlsZEZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIGxvZyhmaWx0ZXIpO1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5jb3VudERvY3VtZW50cyhmaWx0ZXIsIHtcbiAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBoYXNPcGVuVHJhbnNhY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbj8uaW5UcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgY29sbGVjdGlvbjxFPihlbnRpdHk6IFR5cGU8RT4pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIHJldHVybiB0aGlzLmNvbm4uZGIoKS5jb2xsZWN0aW9uKG1ldGEubmFtZSk7XG4gIH1cblxuICBhc3luYyBiZWdpblRyYW5zYWN0aW9uKCkge1xuICAgIGlmICh0aGlzLnNlc3Npb24/LmluVHJhbnNhY3Rpb24oKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBsb2coJ3N0YXJ0VHJhbnNhY3Rpb24nKTtcbiAgICB0aGlzLnNlc3Npb24gPSB0aGlzLmNvbm4uc3RhcnRTZXNzaW9uKCk7XG4gICAgdGhpcy5zZXNzaW9uLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIGFzeW5jIGNvbW1pdFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5zZXNzaW9uPy5pblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgbG9nKCdjb21taXRUcmFuc2FjdGlvbicpO1xuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIHRoaXMuc2Vzc2lvbi5lbmRTZXNzaW9uKCk7XG4gIH1cblxuICBhc3luYyByb2xsYmFja1RyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5zZXNzaW9uPy5pblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgbG9nKCdhYm9ydFRyYW5zYWN0aW9uJyk7XG4gICAgYXdhaXQgdGhpcy5zZXNzaW9uLmFib3J0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIGFzeW5jIHJlbGVhc2UoKSB7XG4gICAgaWYgKHRoaXMuc2Vzc2lvbj8uaW5UcmFuc2FjdGlvbigpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbm4uY2xvc2UoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSWRzPEU+KGRvY3M6IEUgfCBFW10sIG1ldGE6IEVudGl0eU1ldGE8RT4pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZG9jcykpIHtcbiAgICBmb3IgKGNvbnN0IGRvYyBvZiBkb2NzKSB7XG4gICAgICBub3JtYWxpemVJZDxFPihkb2MsIG1ldGEpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBub3JtYWxpemVJZDxFPihkb2NzLCBtZXRhKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVJZDxFPihkb2M6IEUsIG1ldGE6IEVudGl0eU1ldGE8RT4pIHtcbiAgaWYgKCFkb2MpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgcmVzID0gZG9jIGFzIE9wdGlvbmFsSWQ8RT47XG4gIHJlc1ttZXRhLmlkLnByb3BlcnR5XSA9IHJlcy5faWQ7XG4gIGRlbGV0ZSByZXMuX2lkO1xuICBmb3IgKGNvbnN0IHJlbFByb3Agb2YgT2JqZWN0LmtleXMobWV0YS5yZWxhdGlvbnMpKSB7XG4gICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbFByb3BdO1xuICAgIGNvbnN0IHJlbERhdGEgPSByZXNbcmVsUHJvcF07XG4gICAgaWYgKHR5cGVvZiByZWxEYXRhID09PSAnb2JqZWN0JyAmJiAhKHJlbERhdGEgaW5zdGFuY2VvZiBPYmplY3RJZCkpIHtcbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbE9wdHMuZW50aXR5KCkpO1xuICAgICAgbm9ybWFsaXplSWRzKHJlbERhdGEsIHJlbE1ldGEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzIGFzIEU7XG59XG4iXX0= |
@@ -71,2 +71,2 @@ "use strict"; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29EaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vbmdvRGlhbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBZ0Q7QUFFaEQsMERBQXFEO0FBRXJELE1BQWEsWUFBWTtJQUN2QixXQUFXLENBQUksTUFBZSxFQUFFLFNBQXlCLEVBQUU7UUFDekQsTUFBTSxJQUFJLEdBQUcsbUJBQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzlDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDckMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ3pGO2lCQUFNO2dCQUNMLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDNUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUNoQjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELHdCQUF3QixDQUFJLE1BQWUsRUFBRSxFQUFZO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLG1CQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0IsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBRTlCLElBQUksRUFBRSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDaEQsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO1FBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixNQUFNLElBQUksU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLGtDQUFrQyxDQUFDLENBQUM7YUFDbEY7WUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFO2dCQUNoRSx5R0FBeUc7Z0JBQ3pHLFNBQVM7YUFDVjtZQUNELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxtQkFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRW5DLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7Z0JBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQ1osT0FBTyxFQUFFO3dCQUNQLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTt3QkFDbEIsVUFBVSxFQUFFLE1BQU07d0JBQ2xCLFlBQVksRUFBRSxLQUFLO3dCQUNuQixFQUFFLEVBQUUsTUFBTTtxQkFDWDtpQkFDRixDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBa0IsQ0FBQztnQkFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDWixPQUFPLEVBQUU7d0JBQ1AsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO3dCQUNsQixRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDbkUsRUFBRSxFQUFFLE1BQU07cUJBQ1g7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksTUFBTSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3RGO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBOURELG9DQThEQztBQUVELFNBQVMsbUJBQW1CLENBQUksR0FBVyxFQUFFLEdBQVEsRUFBRSxJQUFtQjtJQUN4RSxJQUFJLEdBQUcsS0FBSyxLQUFLLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQzdDLE1BQU0sUUFBUSxHQUFHLEdBQUcsWUFBWSxrQkFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksa0JBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7S0FDdEM7SUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJRdWVyeSwgT2JqZWN0SWQgfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVyLCBRdWVyeSwgRW50aXR5TWV0YSwgVHlwZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICdAdXFsL2NvcmUvZW50aXR5L2RlY29yYXRvcic7XG5cbmV4cG9ydCBjbGFzcyBNb25nb0RpYWxlY3Qge1xuICBidWlsZEZpbHRlcjxFPihlbnRpdHk6IFR5cGU8RT4sIGZpbHRlcjogUXVlcnlGaWx0ZXI8RT4gPSB7fSk6IEZpbHRlclF1ZXJ5PEU+IHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZpbHRlcikucmVkdWNlKChhY2MsIHByb3ApID0+IHtcbiAgICAgIGNvbnN0IGVudHJ5ID0gZmlsdGVyW3Byb3BdO1xuICAgICAgaWYgKHByb3AgPT09ICckYW5kJyB8fCBwcm9wID09PSAnJG9yJykge1xuICAgICAgICBhY2NbcHJvcF0gPSBlbnRyeS5tYXAoKGZpbHRlckl0OiBRdWVyeUZpbHRlcjxFPikgPT4gdGhpcy5idWlsZEZpbHRlcihlbnRpdHksIGZpbHRlckl0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGtleSwgdmFsIH0gPSBvYnRhaW5GaW5hbEtleVZhbHVlKHByb3AsIGVudHJ5LCBtZXRhKTtcbiAgICAgICAgYWNjW2tleV0gPSB2YWw7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIGJ1aWxkQWdncmVnYXRpb25QaXBlbGluZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPik6IG9iamVjdFtdIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuXG4gICAgY29uc3QgcGlwZWxpbmU6IG9iamVjdFtdID0gW107XG5cbiAgICBpZiAocW0uJGZpbHRlciAmJiBPYmplY3Qua2V5cyhxbS4kZmlsdGVyKS5sZW5ndGgpIHtcbiAgICAgIHBpcGVsaW5lLnB1c2goeyAkbWF0Y2g6IHRoaXMuYnVpbGRGaWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKSB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHJlbEtleSBpbiBxbS4kcG9wdWxhdGUpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgICAgaWYgKCFyZWxPcHRzKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfS4ke3JlbEtleX0nIGlzIG5vdCBhbm5vdGF0ZWQgYXMgYSByZWxhdGlvbmApO1xuICAgICAgfVxuICAgICAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgIT09ICdtMScgJiYgcmVsT3B0cy5jYXJkaW5hbGl0eSAhPT0gJzExJykge1xuICAgICAgICAvLyAnbWFueVRvTWFueScgYW5kICdvbmVUb01hbnknIHdpbGwgbmVlZCBtdWx0aXBsZSBxdWVyaWVzIChzbyB0aGV5IHNob3VsZCBiZSByZXNvbHZlZCBpbiBhIGhpZ2hlciBsYXllcilcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgICAgY29uc3QgcmVsTWV0YSA9IGdldE1ldGEocmVsRW50aXR5KTtcblxuICAgICAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICdtMScpIHtcbiAgICAgICAgcGlwZWxpbmUucHVzaCh7XG4gICAgICAgICAgJGxvb2t1cDoge1xuICAgICAgICAgICAgZnJvbTogcmVsTWV0YS5uYW1lLFxuICAgICAgICAgICAgbG9jYWxGaWVsZDogcmVsS2V5LFxuICAgICAgICAgICAgZm9yZWlnbkZpZWxkOiAnX2lkJyxcbiAgICAgICAgICAgIGFzOiByZWxLZXksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtYXBwZWRCeUtleSA9IHJlbE9wdHMubWFwcGVkQnkgYXMgc3RyaW5nO1xuICAgICAgICBwaXBlbGluZS5wdXNoKHtcbiAgICAgICAgICAkbG9va3VwOiB7XG4gICAgICAgICAgICBmcm9tOiByZWxNZXRhLm5hbWUsXG4gICAgICAgICAgICBwaXBlbGluZTogW3sgJG1hdGNoOiB7IFttYXBwZWRCeUtleV06IHFtLiRmaWx0ZXJbbWV0YS5pZC5uYW1lXSB9IH1dLFxuICAgICAgICAgICAgYXM6IHJlbEtleSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcGlwZWxpbmUucHVzaCh7ICR1bndpbmQ6IHsgcGF0aDogYCQke3JlbEtleX1gLCBwcmVzZXJ2ZU51bGxBbmRFbXB0eUFycmF5czogdHJ1ZSB9IH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwaXBlbGluZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvYnRhaW5GaW5hbEtleVZhbHVlPEU+KGtleTogc3RyaW5nLCB2YWw6IGFueSwgbWV0YTogRW50aXR5TWV0YTxFPikge1xuICBpZiAoa2V5ID09PSAnX2lkJyB8fCBrZXkgPT09IG1ldGEuaWQucHJvcGVydHkpIHtcbiAgICBjb25zdCBvYmplY3RJZCA9IHZhbCBpbnN0YW5jZW9mIE9iamVjdElkID8gdmFsIDogbmV3IE9iamVjdElkKHZhbCk7XG4gICAgcmV0dXJuIHsga2V5OiAnX2lkJywgdmFsOiBvYmplY3RJZCB9O1xuICB9XG4gIHJldHVybiB7IGtleSwgdmFsIH07XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29EaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vbmdvRGlhbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBZ0Q7QUFFaEQsMERBQXFEO0FBRXJELE1BQWEsWUFBWTtJQUN2QixXQUFXLENBQUksTUFBZSxFQUFFLFNBQXlCLEVBQUU7UUFDekQsTUFBTSxJQUFJLEdBQUcsbUJBQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzlDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDckMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ3pGO2lCQUFNO2dCQUNMLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDNUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUNoQjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELHdCQUF3QixDQUFJLE1BQWUsRUFBRSxFQUFZO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLG1CQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0IsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBRTlCLElBQUksRUFBRSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDaEQsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO1FBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixNQUFNLElBQUksU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLGtDQUFrQyxDQUFDLENBQUM7YUFDbEY7WUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFO2dCQUNoRSx5R0FBeUc7Z0JBQ3pHLFNBQVM7YUFDVjtZQUNELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxtQkFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRW5DLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7Z0JBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQ1osT0FBTyxFQUFFO3dCQUNQLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTt3QkFDbEIsVUFBVSxFQUFFLE1BQU07d0JBQ2xCLFlBQVksRUFBRSxLQUFLO3dCQUNuQixFQUFFLEVBQUUsTUFBTTtxQkFDWDtpQkFDRixDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBa0IsQ0FBQztnQkFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDWixPQUFPLEVBQUU7d0JBQ1AsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO3dCQUNsQixRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDbkUsRUFBRSxFQUFFLE1BQU07cUJBQ1g7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksTUFBTSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3RGO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBOURELG9DQThEQztBQUVELFNBQVMsbUJBQW1CLENBQUksR0FBVyxFQUFFLEdBQXNCLEVBQUUsSUFBbUI7SUFDdEYsSUFBSSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUM3QyxNQUFNLFFBQVEsR0FBRyxHQUFHLFlBQVksa0JBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLGtCQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDO0tBQ3RDO0lBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyUXVlcnksIE9iamVjdElkIH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQgeyBRdWVyeUZpbHRlciwgUXVlcnksIEVudGl0eU1ldGEsIFR5cGUgfSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnQHVxbC9jb3JlL2VudGl0eS9kZWNvcmF0b3InO1xuXG5leHBvcnQgY2xhc3MgTW9uZ29EaWFsZWN0IHtcbiAgYnVpbGRGaWx0ZXI8RT4oZW50aXR5OiBUeXBlPEU+LCBmaWx0ZXI6IFF1ZXJ5RmlsdGVyPEU+ID0ge30pOiBGaWx0ZXJRdWVyeTxFPiB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhmaWx0ZXIpLnJlZHVjZSgoYWNjLCBwcm9wKSA9PiB7XG4gICAgICBjb25zdCBlbnRyeSA9IGZpbHRlcltwcm9wXTtcbiAgICAgIGlmIChwcm9wID09PSAnJGFuZCcgfHwgcHJvcCA9PT0gJyRvcicpIHtcbiAgICAgICAgYWNjW3Byb3BdID0gZW50cnkubWFwKChmaWx0ZXJJdDogUXVlcnlGaWx0ZXI8RT4pID0+IHRoaXMuYnVpbGRGaWx0ZXIoZW50aXR5LCBmaWx0ZXJJdCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyBrZXksIHZhbCB9ID0gb2J0YWluRmluYWxLZXlWYWx1ZShwcm9wLCBlbnRyeSwgbWV0YSk7XG4gICAgICAgIGFjY1trZXldID0gdmFsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH1cblxuICBidWlsZEFnZ3JlZ2F0aW9uUGlwZWxpbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pOiBvYmplY3RbXSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGNvbnN0IHBpcGVsaW5lOiBvYmplY3RbXSA9IFtdO1xuXG4gICAgaWYgKHFtLiRmaWx0ZXIgJiYgT2JqZWN0LmtleXMocW0uJGZpbHRlcikubGVuZ3RoKSB7XG4gICAgICBwaXBlbGluZS5wdXNoKHsgJG1hdGNoOiB0aGlzLmJ1aWxkRmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcikgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByZWxLZXkgaW4gcW0uJHBvcHVsYXRlKSB7XG4gICAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcbiAgICAgIGlmICghcmVsT3B0cykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0uJHtyZWxLZXl9JyBpcyBub3QgYW5ub3RhdGVkIGFzIGEgcmVsYXRpb25gKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ICE9PSAnbTEnICYmIHJlbE9wdHMuY2FyZGluYWxpdHkgIT09ICcxMScpIHtcbiAgICAgICAgLy8gJ21hbnlUb01hbnknIGFuZCAnb25lVG9NYW55JyB3aWxsIG5lZWQgbXVsdGlwbGUgcXVlcmllcyAoc28gdGhleSBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gYSBoaWdoZXIgbGF5ZXIpXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbEVudGl0eSk7XG5cbiAgICAgIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbTEnKSB7XG4gICAgICAgIHBpcGVsaW5lLnB1c2goe1xuICAgICAgICAgICRsb29rdXA6IHtcbiAgICAgICAgICAgIGZyb206IHJlbE1ldGEubmFtZSxcbiAgICAgICAgICAgIGxvY2FsRmllbGQ6IHJlbEtleSxcbiAgICAgICAgICAgIGZvcmVpZ25GaWVsZDogJ19pZCcsXG4gICAgICAgICAgICBhczogcmVsS2V5LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWFwcGVkQnlLZXkgPSByZWxPcHRzLm1hcHBlZEJ5IGFzIHN0cmluZztcbiAgICAgICAgcGlwZWxpbmUucHVzaCh7XG4gICAgICAgICAgJGxvb2t1cDoge1xuICAgICAgICAgICAgZnJvbTogcmVsTWV0YS5uYW1lLFxuICAgICAgICAgICAgcGlwZWxpbmU6IFt7ICRtYXRjaDogeyBbbWFwcGVkQnlLZXldOiBxbS4kZmlsdGVyW21ldGEuaWQubmFtZV0gfSB9XSxcbiAgICAgICAgICAgIGFzOiByZWxLZXksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHBpcGVsaW5lLnB1c2goeyAkdW53aW5kOiB7IHBhdGg6IGAkJHtyZWxLZXl9YCwgcHJlc2VydmVOdWxsQW5kRW1wdHlBcnJheXM6IHRydWUgfSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGlwZWxpbmU7XG4gIH1cbn1cblxuZnVuY3Rpb24gb2J0YWluRmluYWxLZXlWYWx1ZTxFPihrZXk6IHN0cmluZywgdmFsOiBzdHJpbmcgfCBPYmplY3RJZCwgbWV0YTogRW50aXR5TWV0YTxFPikge1xuICBpZiAoa2V5ID09PSAnX2lkJyB8fCBrZXkgPT09IG1ldGEuaWQucHJvcGVydHkpIHtcbiAgICBjb25zdCBvYmplY3RJZCA9IHZhbCBpbnN0YW5jZW9mIE9iamVjdElkID8gdmFsIDogbmV3IE9iamVjdElkKHZhbCk7XG4gICAgcmV0dXJuIHsga2V5OiAnX2lkJywgdmFsOiBvYmplY3RJZCB9O1xuICB9XG4gIHJldHVybiB7IGtleSwgdmFsIH07XG59XG4iXX0= |
@@ -5,3 +5,3 @@ { | ||
"license": "MIT", | ||
"version": "0.4.16", | ||
"version": "0.4.17", | ||
"main": "index.js", | ||
@@ -19,8 +19,8 @@ "types": "index.d.ts", | ||
"peerDependencies": { | ||
"@uql/core": "^0.4.13" | ||
"@uql/core": "^0.4.16" | ||
}, | ||
"devDependencies": { | ||
"@types/mongodb": "^3.6.17", | ||
"@types/node": "^15.6.1", | ||
"@uql/core": "^0.4.16", | ||
"@types/node": "^15.12.0", | ||
"@uql/core": "^0.4.17", | ||
"copyfiles": "^2.4.1", | ||
@@ -27,0 +27,0 @@ "rimraf": "^3.0.2", |
@@ -267,13 +267,13 @@ [![build status](https://travis-ci.org/impensables/uql.svg?branch=master)](https://travis-ci.org/impensables/uql?branch=master) | ||
@Transactional() | ||
async confirmAction(payload: Confirmation, @InjectQuerier() querier?: Querier) { | ||
if (payload.type === 'register') { | ||
async confirmAction(confirmation: Confirmation, @InjectQuerier() querier?: Querier) { | ||
if (confirmation.type === 'register') { | ||
await querier.insertOne(User, { | ||
name: payload.name, | ||
email: payload.email, | ||
password: payload.password, | ||
name: confirmation.name, | ||
email: confirmation.email, | ||
password: confirmation.password, | ||
}); | ||
} else { | ||
await querier.updateOneById(User, { password: payload.password }, payload.userId); | ||
await querier.updateOneById(User, { password: confirmation.password }, confirmation.userId); | ||
} | ||
await querier.updateOneById(Confirmation, { status: CONFIRM_STATUS_VERIFIED }, payload.id); | ||
await querier.updateOneById(Confirmation, { status: CONFIRM_STATUS_VERIFIED }, confirmation.id); | ||
} | ||
@@ -307,16 +307,16 @@ } | ||
async function confirmAction(payload: Confirmation) { | ||
async function confirmAction(confirmation: Confirmation) { | ||
const querier = await getQuerier(); | ||
try { | ||
await querier.beginTransaction(); | ||
if (payload.action === 'signup') { | ||
if (confirmation.action === 'signup') { | ||
await querier.insertOne(User, { | ||
name: payload.name, | ||
email: payload.email, | ||
password: payload.password, | ||
name: confirmation.name, | ||
email: confirmation.email, | ||
password: confirmation.password, | ||
}); | ||
} else { | ||
await querier.updateOneById(User, { password: payload.password }, payload.userId); | ||
await querier.updateOneById(User, { password: confirmation.password }, confirmation.userId); | ||
} | ||
await querier.updateOneById(Confirmation, { status: CONFIRM_STATUS_VERIFIED }, payload.id); | ||
await querier.updateOneById(Confirmation, { status: CONFIRM_STATUS_VERIFIED }, confirmation.id); | ||
await querier.commitTransaction(); | ||
@@ -366,2 +366,14 @@ } catch (error) { | ||
exclude: [Confirmation], | ||
// `extendQuery` callback allows to extend all then queries that are requested to the API, | ||
// so it is a good place to add additional filters to the queries (like for multi tenant apps) | ||
extendQuery<E>(type: Type<E>, qm: Query<E>, req: Request): Query<E> { | ||
qm.limit = obtainValidLimit(qm.limit); | ||
const prefix = qm.populate && Object.keys(qm.populate).length ? type.name + '.' : ''; | ||
qm.filter = { | ||
...qm.filter, | ||
// ensure the user can only see the data belonging to his own company for security | ||
[`${prefix}companyId`]: req.identity.companyId, | ||
}; | ||
return qm; | ||
} | ||
}) | ||
@@ -368,0 +380,0 @@ ); |
50980
303
421