@uql/mongo
Advanced tools
Comparing version 1.0.9 to 1.0.10
@@ -15,6 +15,6 @@ import { MongoClient } from 'mongodb'; | ||
insertMany<E>(entity: Type<E>, payload: E[]): Promise<IdValue<E>[]>; | ||
updateMany<E>(entity: Type<E>, qm: QueryCriteria<E>, payload: E): Promise<number>; | ||
updateMany<E>(entity: Type<E>, qm: QueryCriteria<E>, payload: E): Promise<any>; | ||
deleteMany<E>(entity: Type<E>, qm: QueryCriteria<E>, opts?: QueryOptions): Promise<number>; | ||
get hasOpenTransaction(): boolean; | ||
collection<E>(entity: Type<E> | string): import("mongodb").Collection<any>; | ||
collection<E>(entity: Type<E> | string): import("mongodb").Collection<import("mongodb").Document>; | ||
get db(): import("mongodb").Db; | ||
@@ -21,0 +21,0 @@ beginTransaction(): Promise<void>; |
@@ -170,2 +170,2 @@ "use strict"; | ||
exports.MongodbQuerier = MongodbQuerier; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW9uZ29kYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0NBQW9EO0FBQ3BELDBEQUFxRDtBQUNyRCx5Q0FBK0g7QUFJL0gsTUFBYSxjQUFlLFNBQVEseUJBQWU7SUFHNUI7SUFBZ0M7SUFBNEI7SUFGekUsT0FBTyxDQUFnQjtJQUUvQixZQUFxQixPQUFxQixFQUFXLElBQWlCLEVBQVcsTUFBc0I7UUFDckcsS0FBSyxFQUFFLENBQUM7UUFEVyxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFXLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBRXZHLENBQUM7SUFFUSxLQUFLLENBQUksTUFBZSxFQUFFLEtBQXFCLEVBQUU7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7WUFDcEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXLENBQUksTUFBZSxFQUFFLEVBQWMsRUFBRSxFQUFrQjtRQUN6RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVRLEtBQUssQ0FBQyxRQUFRLENBQUksTUFBZSxFQUFFLEVBQVk7UUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBQSxt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QUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFUSxLQUFLLENBQUMsbUJBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFUSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQWU7UUFDcEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVRLEtBQUssQ0FBQyxHQUFHO1FBQ2hCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFqTUQsd0NBaU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9uZ29DbGllbnQsIENsaWVudFNlc3Npb24gfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IFF1ZXJ5LCBUeXBlLCBRdWVyeUNyaXRlcmlhLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5U2VhcmNoLCBJZFZhbHVlLCBRdWVyaWVyTG9nZ2VyLCBRdWVyeVVuaXF1ZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IEFic3RyYWN0UXVlcmllciB9IGZyb20gJ0B1cWwvY29yZS9xdWVyaWVyJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICdAdXFsL2NvcmUvZW50aXR5L2RlY29yYXRvcic7XG5pbXBvcnQgeyBjbG9uZSwgZ2V0UGVyc2lzdGFibGUsIGdldFBlcnNpc3RhYmxlcywgZ2V0RmllbGRDYWxsYmFja1ZhbHVlLCBoYXNLZXlzLCBpc1Byb2plY3RpbmdSZWxhdGlvbnMgfSBmcm9tICdAdXFsL2NvcmUvdXRpbCc7XG5cbmltcG9ydCB7IE1vbmdvRGlhbGVjdCB9IGZyb20gJy4vbW9uZ29EaWFsZWN0JztcblxuZXhwb3J0IGNsYXNzIE1vbmdvZGJRdWVyaWVyIGV4dGVuZHMgQWJzdHJhY3RRdWVyaWVyIHtcbiAgcHJpdmF0ZSBzZXNzaW9uOiBDbGllbnRTZXNzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRpYWxlY3Q6IE1vbmdvRGlhbGVjdCwgcmVhZG9ubHkgY29ubjogTW9uZ29DbGllbnQsIHJlYWRvbmx5IGxvZ2dlcj86IFF1ZXJpZXJMb2dnZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4gPSB7fSkge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5maWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICB0aGlzLmxvZ2dlcj8uKCdjb3VudCcsIGVudGl0eS5uYW1lLCBmaWx0ZXIpO1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5jb3VudERvY3VtZW50cyhmaWx0ZXIsIHtcbiAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGZpbmRPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHFtOiBRdWVyeVVuaXF1ZTxFPikge1xuICAgIHJldHVybiB0aGlzLmZpbmRPbmUoZW50aXR5LCB7IC4uLnFtLCAkZmlsdGVyOiBpZCB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGxldCBkb2N1bWVudHM6IEVbXTtcbiAgICBjb25zdCBoYXNQcm9qZWN0UmVsYXRpb25zID0gaXNQcm9qZWN0aW5nUmVsYXRpb25zKG1ldGEsIHFtLiRwcm9qZWN0KTtcblxuICAgIGlmIChoYXNQcm9qZWN0UmVsYXRpb25zKSB7XG4gICAgICBjb25zdCBwaXBlbGluZSA9IHRoaXMuZGlhbGVjdC5hZ2dyZWdhdGlvblBpcGVsaW5lKGVudGl0eSwgcW0pO1xuICAgICAgaWYgKHRoaXMubG9nZ2VyKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyKCdmaW5kTWFueScsIGVudGl0eS5uYW1lLCBKU09OLnN0cmluZ2lmeShwaXBlbGluZSwgbnVsbCwgMikpO1xuICAgICAgfVxuICAgICAgZG9jdW1lbnRzID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuYWdncmVnYXRlPEU+KHBpcGVsaW5lLCB7IHNlc3Npb246IHRoaXMuc2Vzc2lvbiB9KS50b0FycmF5KCk7XG4gICAgICBkb2N1bWVudHMgPSB0aGlzLmRpYWxlY3Qubm9ybWFsaXplSWRzKG1ldGEsIGRvY3VtZW50cyk7XG4gICAgICBhd2FpdCB0aGlzLmZpbmRUb01hbnlSZWxhdGlvbnMoZW50aXR5LCBkb2N1bWVudHMsIHFtLiRwcm9qZWN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY3Vyc29yID0gdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuZmluZDxFPih7fSwgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSk7XG5cbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5maWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICAgIGlmIChoYXNLZXlzKGZpbHRlcikpIHtcbiAgICAgICAgY3Vyc29yLmZpbHRlcihmaWx0ZXIpO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJvamVjdCA9IHRoaXMuZGlhbGVjdC5wcm9qZWN0KGVudGl0eSwgcW0uJHByb2plY3QpO1xuICAgICAgaWYgKGhhc0tleXMocHJvamVjdCkpIHtcbiAgICAgICAgY3Vyc29yLnByb2plY3QocHJvamVjdCk7XG4gICAgICB9XG4gICAgICBjb25zdCBzb3J0ID0gdGhpcy5kaWFsZWN0LnNvcnQoZW50aXR5LCBxbS4kc29ydCk7XG4gICAgICBpZiAoaGFzS2V5cyhzb3J0KSkge1xuICAgICAgICBjdXJzb3Iuc29ydChzb3J0KTtcbiAgICAgIH1cbiAgICAgIGlmIChxbS4kc2tpcCkge1xuICAgICAgICBjdXJzb3Iuc2tpcChxbS4kc2tpcCk7XG4gICAgICB9XG4gICAgICBpZiAocW0uJGxpbWl0KSB7XG4gICAgICAgIGN1cnNvci5saW1pdChxbS4kbGltaXQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxvZ2dlcj8uKCdmaW5kTWFueScsIGVudGl0eS5uYW1lLCBxbSk7XG5cbiAgICAgIGRvY3VtZW50cyA9IGF3YWl0IGN1cnNvci50b0FycmF5KCk7XG4gICAgICBkb2N1bWVudHMgPSB0aGlzLmRpYWxlY3Qubm9ybWFsaXplSWRzKG1ldGEsIGRvY3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRvY3VtZW50cztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGluc2VydE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pIHtcbiAgICBpZiAoIXBheWxvYWQubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuXG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBwYXlsb2FkcyA9IEFycmF5LmlzQXJyYXkocGF5bG9hZCkgPyBwYXlsb2FkIDogW3BheWxvYWRdO1xuICAgIGNvbnN0IHBlcnNpc3RhYmxlcyA9IGdldFBlcnNpc3RhYmxlcyhtZXRhLCBwYXlsb2FkLCAnb25JbnNlcnQnKTtcblxuICAgIHRoaXMubG9nZ2VyPy4oJ2luc2VydE1hbnknLCBlbnRpdHkubmFtZSwgcGVyc2lzdGFibGVzKTtcblxuICAgIGNvbnN0IHsgaW5zZXJ0ZWRJZHMgfSA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmluc2VydE1hbnkocGVyc2lzdGFibGVzLCB7IHNlc3Npb246IHRoaXMuc2Vzc2lvbiB9KTtcblxuICAgIGNvbnN0IGlkcyA9IE9iamVjdC52YWx1ZXMoaW5zZXJ0ZWRJZHMpIGFzIElkVmFsdWU8RT5bXTtcblxuICAgIGZvciAoY29uc3QgW2luZGV4LCBpdF0gb2YgcGF5bG9hZHMuZW50cmllcygpKSB7XG4gICAgICBpdFttZXRhLmlkXSA9IGlkc1tpbmRleF07XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5pbnNlcnRSZWxhdGlvbnMoZW50aXR5LCBwYXlsb2Fkcyk7XG5cbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcGVyc2lzdGFibGUgPSBnZXRQZXJzaXN0YWJsZShtZXRhLCBwYXlsb2FkLCAnb25VcGRhdGUnKTtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuZmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgY29uc3QgdXBkYXRlID0geyAkc2V0OiBwZXJzaXN0YWJsZSB9O1xuXG4gICAgdGhpcy5sb2dnZXI/LigndXBkYXRlTWFueScsIGVudGl0eS5uYW1lLCBmaWx0ZXIsIHVwZGF0ZSk7XG5cbiAgICBjb25zdCB7IG1hdGNoZWRDb3VudCB9ID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkudXBkYXRlTWFueShmaWx0ZXIsIHVwZGF0ZSwge1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy51cGRhdGVSZWxhdGlvbnMoZW50aXR5LCBxbSwgcGF5bG9hZCk7XG5cbiAgICByZXR1cm4gbWF0Y2hlZENvdW50O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzOiBRdWVyeU9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIHRoaXMubG9nZ2VyPy4oJ2RlbGV0ZU1hbnknLCBlbnRpdHkubmFtZSwgZmlsdGVyLCBvcHRzKTtcbiAgICBjb25zdCBmb3VuZHM6IEVbXSA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpXG4gICAgICAuZmluZChmaWx0ZXIsIHtcbiAgICAgICAgcHJvamVjdGlvbjogeyBfaWQ6IHRydWUgfSxcbiAgICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgfSlcbiAgICAgIC50b0FycmF5KCk7XG4gICAgaWYgKCFmb3VuZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3QgaWRzID0gdGhpcy5kaWFsZWN0Lm5vcm1hbGl6ZUlkcyhtZXRhLCBmb3VuZHMpLm1hcCgoZm91bmQpID0+IGZvdW5kW21ldGEuaWRdKTtcbiAgICBsZXQgY2hhbmdlczogbnVtYmVyO1xuICAgIGlmIChtZXRhLnNvZnREZWxldGUgJiYgIW9wdHMuc29mdERlbGV0ZSkge1xuICAgICAgY29uc3QgdXBkYXRlUmVzdWx0ID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkudXBkYXRlTWFueShcbiAgICAgICAgeyBfaWQ6IHsgJGluOiBpZHMgfSB9LFxuICAgICAgICB7ICRzZXQ6IHsgW21ldGEuc29mdERlbGV0ZV06IGdldEZpZWxkQ2FsbGJhY2tWYWx1ZShtZXRhLmZpZWxkc1ttZXRhLnNvZnREZWxldGVdLm9uRGVsZXRlKSB9IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBjaGFuZ2VzID0gdXBkYXRlUmVzdWx0Lm1hdGNoZWRDb3VudDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGVsZXRlUmVzdWx0ID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuZGVsZXRlTWFueShcbiAgICAgICAgeyBfaWQ6IHsgJGluOiBpZHMgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgY2hhbmdlcyA9IGRlbGV0ZVJlc3VsdC5kZWxldGVkQ291bnQ7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuZGVsZXRlUmVsYXRpb25zKGVudGl0eSwgaWRzLCBvcHRzKTtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBoYXNPcGVuVHJhbnNhY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbj8uaW5UcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgY29sbGVjdGlvbjxFPihlbnRpdHk6IFR5cGU8RT4gfCBzdHJpbmcpIHtcbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGVudGl0eSA9PT0gJ3N0cmluZycgPyBlbnRpdHkgOiBnZXRNZXRhKGVudGl0eSkubmFtZTtcbiAgICByZXR1cm4gdGhpcy5kYi5jb2xsZWN0aW9uKG5hbWUpO1xuICB9XG5cbiAgZ2V0IGRiKCkge1xuICAgIHJldHVybiB0aGlzLmNvbm4uZGIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGJlZ2luVHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXI/LignYmVnaW5UcmFuc2FjdGlvbicpO1xuICAgIHRoaXMuc2Vzc2lvbiA9IHRoaXMuY29ubi5zdGFydFNlc3Npb24oKTtcbiAgICB0aGlzLnNlc3Npb24uc3RhcnRUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY29tbWl0VHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdub3QgYSBwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyPy4oJ2NvbW1pdFRyYW5zYWN0aW9uJyk7XG4gICAgYXdhaXQgdGhpcy5zZXNzaW9uLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByb2xsYmFja1RyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlcj8uKCdyb2xsYmFja1RyYW5zYWN0aW9uJyk7XG4gICAgYXdhaXQgdGhpcy5zZXNzaW9uLmFib3J0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJlbGVhc2UoZm9yY2U/OiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5jb25uLmNsb3NlKGZvcmNlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGVuZCgpIHtcbiAgICBhd2FpdCB0aGlzLnJlbGVhc2UodHJ1ZSk7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW9uZ29kYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0NBQW9EO0FBQ3BELDBEQUFxRDtBQUNyRCx5Q0FBK0g7QUFJL0gsTUFBYSxjQUFlLFNBQVEseUJBQWU7SUFHNUI7SUFBZ0M7SUFBNEI7SUFGekUsT0FBTyxDQUFnQjtJQUUvQixZQUFxQixPQUFxQixFQUFXLElBQWlCLEVBQVcsTUFBc0I7UUFDckcsS0FBSyxFQUFFLENBQUM7UUFEVyxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFXLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBRXZHLENBQUM7SUFFUSxLQUFLLENBQUksTUFBZSxFQUFFLEtBQXFCLEVBQUU7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7WUFDcEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXLENBQUksTUFBZSxFQUFFLEVBQWMsRUFBRSxFQUFrQjtRQUN6RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVRLEtBQUssQ0FBQyxRQUFRLENBQUksTUFBZSxFQUFFLEVBQVk7UUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBQSxt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UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRVEsS0FBSyxDQUFDLG1CQUFtQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLE1BQU0sU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNyQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFlO1FBQ3BDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLE1BQU0sU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDeEM7UUFDRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRztRQUNoQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBak1ELHdDQWlNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbmdvQ2xpZW50LCBDbGllbnRTZXNzaW9uIH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQgeyBRdWVyeSwgVHlwZSwgUXVlcnlDcml0ZXJpYSwgUXVlcnlPcHRpb25zLCBRdWVyeVNlYXJjaCwgSWRWYWx1ZSwgUXVlcmllckxvZ2dlciwgUXVlcnlVbmlxdWUgfSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFF1ZXJpZXIgfSBmcm9tICdAdXFsL2NvcmUvcXVlcmllcic7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnQHVxbC9jb3JlL2VudGl0eS9kZWNvcmF0b3InO1xuaW1wb3J0IHsgY2xvbmUsIGdldFBlcnNpc3RhYmxlLCBnZXRQZXJzaXN0YWJsZXMsIGdldEZpZWxkQ2FsbGJhY2tWYWx1ZSwgaGFzS2V5cywgaXNQcm9qZWN0aW5nUmVsYXRpb25zIH0gZnJvbSAnQHVxbC9jb3JlL3V0aWwnO1xuXG5pbXBvcnQgeyBNb25nb0RpYWxlY3QgfSBmcm9tICcuL21vbmdvRGlhbGVjdCc7XG5cbmV4cG9ydCBjbGFzcyBNb25nb2RiUXVlcmllciBleHRlbmRzIEFic3RyYWN0UXVlcmllciB7XG4gIHByaXZhdGUgc2Vzc2lvbjogQ2xpZW50U2Vzc2lvbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkaWFsZWN0OiBNb25nb0RpYWxlY3QsIHJlYWRvbmx5IGNvbm46IE1vbmdvQ2xpZW50LCByZWFkb25seSBsb2dnZXI/OiBRdWVyaWVyTG9nZ2VyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+ID0ge30pIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuZmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgdGhpcy5sb2dnZXI/LignY291bnQnLCBlbnRpdHkubmFtZSwgZmlsdGVyKTtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuY291bnREb2N1bWVudHMoZmlsdGVyLCB7XG4gICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBmaW5kT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBxbTogUXVlcnlVbmlxdWU8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5maW5kT25lKGVudGl0eSwgeyAuLi5xbSwgJGZpbHRlcjogaWQgfSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgICBsZXQgZG9jdW1lbnRzOiBFW107XG4gICAgY29uc3QgaGFzUHJvamVjdFJlbGF0aW9ucyA9IGlzUHJvamVjdGluZ1JlbGF0aW9ucyhtZXRhLCBxbS4kcHJvamVjdCk7XG5cbiAgICBpZiAoaGFzUHJvamVjdFJlbGF0aW9ucykge1xuICAgICAgY29uc3QgcGlwZWxpbmUgPSB0aGlzLmRpYWxlY3QuYWdncmVnYXRpb25QaXBlbGluZShlbnRpdHksIHFtKTtcbiAgICAgIGlmICh0aGlzLmxvZ2dlcikge1xuICAgICAgICB0aGlzLmxvZ2dlcignZmluZE1hbnknLCBlbnRpdHkubmFtZSwgSlNPTi5zdHJpbmdpZnkocGlwZWxpbmUsIG51bGwsIDIpKTtcbiAgICAgIH1cbiAgICAgIGRvY3VtZW50cyA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmFnZ3JlZ2F0ZTxFPihwaXBlbGluZSwgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSkudG9BcnJheSgpO1xuICAgICAgZG9jdW1lbnRzID0gdGhpcy5kaWFsZWN0Lm5vcm1hbGl6ZUlkcyhtZXRhLCBkb2N1bWVudHMpO1xuICAgICAgYXdhaXQgdGhpcy5maW5kVG9NYW55UmVsYXRpb25zKGVudGl0eSwgZG9jdW1lbnRzLCBxbS4kcHJvamVjdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGN1cnNvciA9IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmZpbmQ8RT4oe30sIHsgc2Vzc2lvbjogdGhpcy5zZXNzaW9uIH0pO1xuXG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuZmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgICBpZiAoaGFzS2V5cyhmaWx0ZXIpKSB7XG4gICAgICAgIGN1cnNvci5maWx0ZXIoZmlsdGVyKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb2plY3QgPSB0aGlzLmRpYWxlY3QucHJvamVjdChlbnRpdHksIHFtLiRwcm9qZWN0KTtcbiAgICAgIGlmIChoYXNLZXlzKHByb2plY3QpKSB7XG4gICAgICAgIGN1cnNvci5wcm9qZWN0KHByb2plY3QpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc29ydCA9IHRoaXMuZGlhbGVjdC5zb3J0KGVudGl0eSwgcW0uJHNvcnQpO1xuICAgICAgaWYgKGhhc0tleXMoc29ydCkpIHtcbiAgICAgICAgY3Vyc29yLnNvcnQoc29ydCk7XG4gICAgICB9XG4gICAgICBpZiAocW0uJHNraXApIHtcbiAgICAgICAgY3Vyc29yLnNraXAocW0uJHNraXApO1xuICAgICAgfVxuICAgICAgaWYgKHFtLiRsaW1pdCkge1xuICAgICAgICBjdXJzb3IubGltaXQocW0uJGxpbWl0KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2dnZXI/LignZmluZE1hbnknLCBlbnRpdHkubmFtZSwgcW0pO1xuXG4gICAgICBkb2N1bWVudHMgPSBhd2FpdCBjdXJzb3IudG9BcnJheSgpO1xuICAgICAgZG9jdW1lbnRzID0gdGhpcy5kaWFsZWN0Lm5vcm1hbGl6ZUlkcyhtZXRhLCBkb2N1bWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiBkb2N1bWVudHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgaWYgKCFwYXlsb2FkLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBheWxvYWQgPSBjbG9uZShwYXlsb2FkKTtcblxuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcGF5bG9hZHMgPSBBcnJheS5pc0FycmF5KHBheWxvYWQpID8gcGF5bG9hZCA6IFtwYXlsb2FkXTtcbiAgICBjb25zdCBwZXJzaXN0YWJsZXMgPSBnZXRQZXJzaXN0YWJsZXMobWV0YSwgcGF5bG9hZCwgJ29uSW5zZXJ0Jyk7XG5cbiAgICB0aGlzLmxvZ2dlcj8uKCdpbnNlcnRNYW55JywgZW50aXR5Lm5hbWUsIHBlcnNpc3RhYmxlcyk7XG5cbiAgICBjb25zdCB7IGluc2VydGVkSWRzIH0gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5pbnNlcnRNYW55KHBlcnNpc3RhYmxlcywgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSk7XG5cbiAgICBjb25zdCBpZHMgPSBPYmplY3QudmFsdWVzKGluc2VydGVkSWRzKSBhcyB1bmtub3duIGFzIElkVmFsdWU8RT5bXTtcblxuICAgIGZvciAoY29uc3QgW2luZGV4LCBpdF0gb2YgcGF5bG9hZHMuZW50cmllcygpKSB7XG4gICAgICBpdFttZXRhLmlkXSA9IGlkc1tpbmRleF07XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5pbnNlcnRSZWxhdGlvbnMoZW50aXR5LCBwYXlsb2Fkcyk7XG5cbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcGVyc2lzdGFibGUgPSBnZXRQZXJzaXN0YWJsZShtZXRhLCBwYXlsb2FkLCAnb25VcGRhdGUnKTtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuZmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgY29uc3QgdXBkYXRlID0geyAkc2V0OiBwZXJzaXN0YWJsZSB9O1xuXG4gICAgdGhpcy5sb2dnZXI/LigndXBkYXRlTWFueScsIGVudGl0eS5uYW1lLCBmaWx0ZXIsIHVwZGF0ZSk7XG5cbiAgICBjb25zdCB7IG1hdGNoZWRDb3VudCB9ID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkudXBkYXRlTWFueShmaWx0ZXIsIHVwZGF0ZSwge1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy51cGRhdGVSZWxhdGlvbnMoZW50aXR5LCBxbSwgcGF5bG9hZCk7XG5cbiAgICByZXR1cm4gbWF0Y2hlZENvdW50O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzOiBRdWVyeU9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIHRoaXMubG9nZ2VyPy4oJ2RlbGV0ZU1hbnknLCBlbnRpdHkubmFtZSwgZmlsdGVyLCBvcHRzKTtcbiAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KVxuICAgICAgLmZpbmQoZmlsdGVyLCB7XG4gICAgICAgIHByb2plY3Rpb246IHsgX2lkOiB0cnVlIH0sXG4gICAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgIH0pXG4gICAgICAudG9BcnJheSgpO1xuICAgIGlmICghZm91bmRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGNvbnN0IGlkcyA9IHRoaXMuZGlhbGVjdC5ub3JtYWxpemVJZHMobWV0YSwgZm91bmRzIGFzIHVua25vd24gYXMgRVtdKS5tYXAoKGZvdW5kKSA9PiBmb3VuZFttZXRhLmlkXSk7XG4gICAgbGV0IGNoYW5nZXM6IG51bWJlcjtcbiAgICBpZiAobWV0YS5zb2Z0RGVsZXRlICYmICFvcHRzLnNvZnREZWxldGUpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVJlc3VsdCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLnVwZGF0ZU1hbnkoXG4gICAgICAgIHsgX2lkOiB7ICRpbjogaWRzIH0gfSxcbiAgICAgICAgeyAkc2V0OiB7IFttZXRhLnNvZnREZWxldGVdOiBnZXRGaWVsZENhbGxiYWNrVmFsdWUobWV0YS5maWVsZHNbbWV0YS5zb2Z0RGVsZXRlXS5vbkRlbGV0ZSkgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgY2hhbmdlcyA9IHVwZGF0ZVJlc3VsdC5tYXRjaGVkQ291bnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRlbGV0ZVJlc3VsdCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmRlbGV0ZU1hbnkoXG4gICAgICAgIHsgX2lkOiB7ICRpbjogaWRzIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGNoYW5nZXMgPSBkZWxldGVSZXN1bHQuZGVsZXRlZENvdW50O1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVJlbGF0aW9ucyhlbnRpdHksIGlkcywgb3B0cyk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaGFzT3BlblRyYW5zYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb24/LmluVHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIGNvbGxlY3Rpb248RT4oZW50aXR5OiBUeXBlPEU+IHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbmFtZSA9IHR5cGVvZiBlbnRpdHkgPT09ICdzdHJpbmcnID8gZW50aXR5IDogZ2V0TWV0YShlbnRpdHkpLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuZGIuY29sbGVjdGlvbihuYW1lKTtcbiAgfVxuXG4gIGdldCBkYigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25uLmRiKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBiZWdpblRyYW5zYWN0aW9uKCkge1xuICAgIGlmICh0aGlzLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyPy4oJ2JlZ2luVHJhbnNhY3Rpb24nKTtcbiAgICB0aGlzLnNlc3Npb24gPSB0aGlzLmNvbm4uc3RhcnRTZXNzaW9uKCk7XG4gICAgdGhpcy5zZXNzaW9uLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNvbW1pdFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlcj8uKCdjb21taXRUcmFuc2FjdGlvbicpO1xuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5jb21taXRUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcm9sbGJhY2tUcmFuc2FjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXI/Ligncm9sbGJhY2tUcmFuc2FjdGlvbicpO1xuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5hYm9ydFRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByZWxlYXNlKGZvcmNlPzogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuY29ubi5jbG9zZShmb3JjZSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBlbmQoKSB7XG4gICAgYXdhaXQgdGhpcy5yZWxlYXNlKHRydWUpO1xuICB9XG59XG4iXX0= |
@@ -5,6 +5,4 @@ import { MongoClientOptions } from 'mongodb'; | ||
export declare class MongodbQuerierPool implements QuerierPool<MongodbQuerier> { | ||
readonly uri: string; | ||
readonly opts?: MongoClientOptions; | ||
readonly logger?: QuerierLogger; | ||
private querier; | ||
private readonly client; | ||
constructor(uri: string, opts?: MongoClientOptions, logger?: QuerierLogger); | ||
@@ -11,0 +9,0 @@ getQuerier(): Promise<MongodbQuerier>; |
@@ -8,24 +8,18 @@ "use strict"; | ||
class MongodbQuerierPool { | ||
uri; | ||
opts; | ||
logger; | ||
querier; | ||
client; | ||
constructor(uri, opts, logger) { | ||
this.uri = uri; | ||
this.opts = opts; | ||
this.logger = logger; | ||
this.client = new mongodb_1.MongoClient(uri, opts); | ||
} | ||
async getQuerier() { | ||
if (!this.querier || !this.querier.conn.isConnected()) { | ||
const conn = await (0, mongodb_1.connect)(this.uri, this.opts); | ||
this.querier = new mongodbQuerier_1.MongodbQuerier(new mongoDialect_1.MongoDialect(), conn, this.logger); | ||
} | ||
return this.querier; | ||
const conn = await this.client.connect(); | ||
const querier = new mongodbQuerier_1.MongodbQuerier(new mongoDialect_1.MongoDialect(), conn, this.logger); | ||
return querier; | ||
} | ||
async end() { | ||
await this.querier.conn.close(); | ||
delete this.querier; | ||
await this.client.close(); | ||
} | ||
} | ||
exports.MongodbQuerierPool = MongodbQuerierPool; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXJQb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vbmdvZGJRdWVyaWVyUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBc0Q7QUFFdEQscURBQWtEO0FBQ2xELGlEQUE4QztBQUU5QyxNQUFhLGtCQUFrQjtJQUdSO0lBQXNCO0lBQW9DO0lBRnZFLE9BQU8sQ0FBaUI7SUFFaEMsWUFBcUIsR0FBVyxFQUFXLElBQXlCLEVBQVcsTUFBc0I7UUFBaEYsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFXLFNBQUksR0FBSixJQUFJLENBQXFCO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7SUFBRyxDQUFDO0lBRXpHLEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNyRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsaUJBQU8sRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksK0JBQWMsQ0FBQyxJQUFJLDJCQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQWpCRCxnREFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25uZWN0LCBNb25nb0NsaWVudE9wdGlvbnMgfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IFF1ZXJpZXJMb2dnZXIsIFF1ZXJpZXJQb29sIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuaW1wb3J0IHsgTW9uZ29kYlF1ZXJpZXIgfSBmcm9tICcuL21vbmdvZGJRdWVyaWVyJztcbmltcG9ydCB7IE1vbmdvRGlhbGVjdCB9IGZyb20gJy4vbW9uZ29EaWFsZWN0JztcblxuZXhwb3J0IGNsYXNzIE1vbmdvZGJRdWVyaWVyUG9vbCBpbXBsZW1lbnRzIFF1ZXJpZXJQb29sPE1vbmdvZGJRdWVyaWVyPiB7XG4gIHByaXZhdGUgcXVlcmllcjogTW9uZ29kYlF1ZXJpZXI7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdXJpOiBzdHJpbmcsIHJlYWRvbmx5IG9wdHM/OiBNb25nb0NsaWVudE9wdGlvbnMsIHJlYWRvbmx5IGxvZ2dlcj86IFF1ZXJpZXJMb2dnZXIpIHt9XG5cbiAgYXN5bmMgZ2V0UXVlcmllcigpIHtcbiAgICBpZiAoIXRoaXMucXVlcmllciB8fCAhdGhpcy5xdWVyaWVyLmNvbm4uaXNDb25uZWN0ZWQoKSkge1xuICAgICAgY29uc3QgY29ubiA9IGF3YWl0IGNvbm5lY3QodGhpcy51cmksIHRoaXMub3B0cyk7XG4gICAgICB0aGlzLnF1ZXJpZXIgPSBuZXcgTW9uZ29kYlF1ZXJpZXIobmV3IE1vbmdvRGlhbGVjdCgpLCBjb25uLCB0aGlzLmxvZ2dlcik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnF1ZXJpZXI7XG4gIH1cblxuICBhc3luYyBlbmQoKSB7XG4gICAgYXdhaXQgdGhpcy5xdWVyaWVyLmNvbm4uY2xvc2UoKTtcbiAgICBkZWxldGUgdGhpcy5xdWVyaWVyO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXJQb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vbmdvZGJRdWVyaWVyUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBMEQ7QUFFMUQscURBQWtEO0FBQ2xELGlEQUE4QztBQUU5QyxNQUFhLGtCQUFrQjtJQUdnQztJQUY1QyxNQUFNLENBQWM7SUFFckMsWUFBWSxHQUFXLEVBQUUsSUFBeUIsRUFBVyxNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUNqRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUkscUJBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksK0JBQWMsQ0FBQyxJQUFJLDJCQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFoQkQsZ0RBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9uZ29DbGllbnQsIE1vbmdvQ2xpZW50T3B0aW9ucyB9IGZyb20gJ21vbmdvZGInO1xuaW1wb3J0IHsgUXVlcmllckxvZ2dlciwgUXVlcmllclBvb2wgfSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5pbXBvcnQgeyBNb25nb2RiUXVlcmllciB9IGZyb20gJy4vbW9uZ29kYlF1ZXJpZXInO1xuaW1wb3J0IHsgTW9uZ29EaWFsZWN0IH0gZnJvbSAnLi9tb25nb0RpYWxlY3QnO1xuXG5leHBvcnQgY2xhc3MgTW9uZ29kYlF1ZXJpZXJQb29sIGltcGxlbWVudHMgUXVlcmllclBvb2w8TW9uZ29kYlF1ZXJpZXI+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IE1vbmdvQ2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKHVyaTogc3RyaW5nLCBvcHRzPzogTW9uZ29DbGllbnRPcHRpb25zLCByZWFkb25seSBsb2dnZXI/OiBRdWVyaWVyTG9nZ2VyKSB7XG4gICAgdGhpcy5jbGllbnQgPSBuZXcgTW9uZ29DbGllbnQodXJpLCBvcHRzKTtcbiAgfVxuXG4gIGFzeW5jIGdldFF1ZXJpZXIoKSB7XG4gICAgY29uc3QgY29ubiA9IGF3YWl0IHRoaXMuY2xpZW50LmNvbm5lY3QoKTtcbiAgICBjb25zdCBxdWVyaWVyID0gbmV3IE1vbmdvZGJRdWVyaWVyKG5ldyBNb25nb0RpYWxlY3QoKSwgY29ubiwgdGhpcy5sb2dnZXIpO1xuICAgIHJldHVybiBxdWVyaWVyO1xuICB9XG5cbiAgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMuY2xpZW50LmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ== |
@@ -1,7 +0,7 @@ | ||
import { FilterQuery, ObjectId, SortOptionObject } from 'mongodb'; | ||
import { Filter, ObjectId, Sort } from 'mongodb'; | ||
import { QueryFilter, Query, EntityMeta, Type, QueryProject, QueryProjectMap, QueryOptions, QuerySort, FieldValue, RelationKey } from '@uql/core/type'; | ||
export declare class MongoDialect { | ||
filter<E>(entity: Type<E>, filter?: QueryFilter<E>, { softDelete }?: QueryOptions): FilterQuery<E>; | ||
filter<E>(entity: Type<E>, filter?: QueryFilter<E>, { softDelete }?: QueryOptions): Filter<E>; | ||
project<E>(entity: Type<E>, project: QueryProject<E>): QueryProjectMap<E>; | ||
sort<E>(entity: Type<E>, sort: QuerySort<E>): MongoSort<E>; | ||
sort<E>(entity: Type<E>, sort: QuerySort<E>): Sort; | ||
aggregationPipeline<E>(entity: Type<E>, qm: Query<E>): MongoAggregationPipelineEntry<E>[]; | ||
@@ -14,4 +14,4 @@ normalizeIds<E>(meta: EntityMeta<E>, docs: E[]): E[]; | ||
readonly $lookup?: MongoAggregationLookup<E>; | ||
$match?: FilterQuery<E> | Record<string, any>; | ||
$sort?: MongoSort<E>; | ||
$match?: Filter<E> | Record<string, any>; | ||
$sort?: Sort; | ||
readonly $unwind?: MongoAggregationUnwind; | ||
@@ -30,3 +30,2 @@ }; | ||
}; | ||
declare type MongoSort<E> = [string, number][] | SortOptionObject<E>; | ||
export {}; |
@@ -131,2 +131,2 @@ "use strict"; | ||
exports.MongoDialect = MongoDialect; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29EaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vbmdvRGlhbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBa0U7QUFhbEUsMERBQXFEO0FBQ3JELHlDQUE2RztBQUU3RyxNQUFhLFlBQVk7SUFDdkIsTUFBTSxDQUFJLE1BQWUsRUFBRSxTQUF5QixFQUFFLEVBQUUsRUFBRSxVQUFVLEtBQW1CLEVBQUU7UUFDdkYsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQkFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdCLE1BQU0sR0FBRyxJQUFBLDBCQUFtQixFQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLEVBQUU7WUFDckcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzFDO1FBRUQsT0FBTyxJQUFBLGNBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDekMsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLElBQUksR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO2dCQUNuQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQXdCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDbkY7aUJBQU07Z0JBQ0wsSUFBSSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFO29CQUNwQyxH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QyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBTSxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxJQUFJLGtCQUFRLENBQUMsS0FBSyxDQUFNLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBaEpELG9DQWdKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlclF1ZXJ5LCBPYmplY3RJZCwgU29ydE9wdGlvbk9iamVjdCB9IGZyb20gJ21vbmdvZGInO1xuaW1wb3J0IHtcbiAgUXVlcnlGaWx0ZXIsXG4gIFF1ZXJ5LFxuICBFbnRpdHlNZXRhLFxuICBUeXBlLFxuICBRdWVyeVByb2plY3QsXG4gIFF1ZXJ5UHJvamVjdE1hcCxcbiAgUXVlcnlPcHRpb25zLFxuICBRdWVyeVNvcnQsXG4gIEZpZWxkVmFsdWUsXG4gIFJlbGF0aW9uS2V5LFxufSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnQHVxbC9jb3JlL2VudGl0eS9kZWNvcmF0b3InO1xuaW1wb3J0IHsgZ2V0S2V5cywgaGFzS2V5cywgYnVpbGRTb3J0TWFwLCBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLCBnZXRRdWVyeUZpbHRlckFzTWFwIH0gZnJvbSAnQHVxbC9jb3JlL3V0aWwnO1xuXG5leHBvcnQgY2xhc3MgTW9uZ29EaWFsZWN0IHtcbiAgZmlsdGVyPEU+KGVudGl0eTogVHlwZTxFPiwgZmlsdGVyOiBRdWVyeUZpbHRlcjxFPiA9IHt9LCB7IHNvZnREZWxldGUgfTogUXVlcnlPcHRpb25zID0ge30pOiBGaWx0ZXJRdWVyeTxFPiB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGZpbHRlciA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgZmlsdGVyKTtcblxuICAgIGlmIChtZXRhLnNvZnREZWxldGUgJiYgKHNvZnREZWxldGUgfHwgc29mdERlbGV0ZSA9PT0gdW5kZWZpbmVkKSAmJiAhZmlsdGVyW21ldGEuc29mdERlbGV0ZSBhcyBzdHJpbmddKSB7XG4gICAgICBmaWx0ZXJbbWV0YS5zb2Z0RGVsZXRlIGFzIHN0cmluZ10gPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRLZXlzKGZpbHRlcikucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gZmlsdGVyW2tleV07XG4gICAgICBpZiAoa2V5ID09PSAnJGFuZCcgfHwga2V5ID09PSAnJG9yJykge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbHVlLm1hcCgoZmlsdGVySXQ6IFF1ZXJ5RmlsdGVyPEU+KSA9PiB0aGlzLmZpbHRlcihlbnRpdHksIGZpbHRlckl0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoa2V5ID09PSAnX2lkJyB8fCBrZXkgPT09IG1ldGEuaWQpIHtcbiAgICAgICAgICBrZXkgPSAnX2lkJztcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0SWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHtcbiAgICAgICAgICAgICRpbjogdmFsdWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBhY2Nba2V5IGFzIGtleW9mIEZpbHRlclF1ZXJ5PEU+XSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBGaWx0ZXJRdWVyeTxFPik7XG4gIH1cblxuICBwcm9qZWN0PEU+KGVudGl0eTogVHlwZTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogUXVlcnlQcm9qZWN0TWFwPEU+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9qZWN0KSkge1xuICAgICAgcmV0dXJuIHByb2plY3QucmVkdWNlKChhY2MsIGl0KSA9PiB7XG4gICAgICAgIGFjY1tpdCBhcyBzdHJpbmddID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIFF1ZXJ5UHJvamVjdE1hcDxFPik7XG4gICAgfVxuICAgIHJldHVybiBwcm9qZWN0IGFzIFF1ZXJ5UHJvamVjdE1hcDxFPjtcbiAgfVxuXG4gIHNvcnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBzb3J0OiBRdWVyeVNvcnQ8RT4pOiBNb25nb1NvcnQ8RT4ge1xuICAgIHJldHVybiBidWlsZFNvcnRNYXAoc29ydCkgYXMgTW9uZ29Tb3J0PEU+O1xuICB9XG5cbiAgYWdncmVnYXRpb25QaXBlbGluZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPik6IE1vbmdvQWdncmVnYXRpb25QaXBlbGluZUVudHJ5PEU+W10ge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIGNvbnN0IHNvcnQgPSB0aGlzLnNvcnQoZW50aXR5LCBxbS4kc29ydCk7XG4gICAgY29uc3QgZmlyc3RQaXBlbGluZUVudHJ5OiBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxFPiA9IHt9O1xuXG4gICAgaWYgKGhhc0tleXMoZmlsdGVyKSkge1xuICAgICAgZmlyc3RQaXBlbGluZUVudHJ5LiRtYXRjaCA9IGZpbHRlcjtcbiAgICB9XG4gICAgaWYgKGhhc0tleXMoc29ydCkpIHtcbiAgICAgIGZpcnN0UGlwZWxpbmVFbnRyeS4kc29ydCA9IHNvcnQ7XG4gICAgfVxuXG4gICAgY29uc3QgcGlwZWxpbmU6IE1vbmdvQWdncmVnYXRpb25QaXBlbGluZUVudHJ5PEU+W10gPSBbXTtcblxuICAgIGlmIChoYXNLZXlzKGZpcnN0UGlwZWxpbmVFbnRyeSkpIHtcbiAgICAgIHBpcGVsaW5lLnB1c2goZmlyc3RQaXBlbGluZUVudHJ5KTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxhdGlvbnMgPSBnZXRQcm9qZWN0UmVsYXRpb25LZXlzKG1ldGEsIHFtLiRwcm9qZWN0KTtcblxuICAgIGZvciAoY29uc3QgcmVsS2V5IG9mIHJlbGF0aW9ucykge1xuICAgICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleV07XG5cbiAgICAgIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnMW0nIHx8IHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICdtbScpIHtcbiAgICAgICAgLy8gJzFtJyBhbmQgJ21tJyBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gYSBoaWdoZXIgbGF5ZXIgYmVjYXVzZSB0aGV5IHdpbGwgbmVlZCBtdWx0aXBsZSBxdWVyaWVzXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgICAgY29uc3QgcmVsTWV0YSA9IGdldE1ldGEocmVsRW50aXR5KTtcblxuICAgICAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICdtMScpIHtcbiAgICAgICAgcGlwZWxpbmUucHVzaCh7XG4gICAgICAgICAgJGxvb2t1cDoge1xuICAgICAgICAgICAgZnJvbTogcmVsTWV0YS5uYW1lLFxuICAgICAgICAgICAgbG9jYWxGaWVsZDogcmVsT3B0cy5yZWZlcmVuY2VzWzBdLmxvY2FsLFxuICAgICAgICAgICAgZm9yZWlnbkZpZWxkOiAnX2lkJyxcbiAgICAgICAgICAgIGFzOiByZWxLZXksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmb3JlaWduRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlRmlsdGVyID0gdGhpcy5maWx0ZXIocmVsRW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlU29ydCA9IHRoaXMuc29ydChyZWxFbnRpdHksIHFtLiRzb3J0KTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlUGlwZWxpbmVFbnRyeTogTW9uZ29BZ2dyZWdhdGlvblBpcGVsaW5lRW50cnk8RmllbGRWYWx1ZTxFPj4gPSB7ICRtYXRjaDogeyBbZm9yZWlnbkZpZWxkXTogcmVmZXJlbmNlRmlsdGVyLl9pZCB9IH07XG4gICAgICAgIGlmIChoYXNLZXlzKHJlZmVyZW5jZVNvcnQpKSB7XG4gICAgICAgICAgcmVmZXJlbmNlUGlwZWxpbmVFbnRyeS4kc29ydCA9IHJlZmVyZW5jZVNvcnQ7XG4gICAgICAgIH1cbiAgICAgICAgcGlwZWxpbmUucHVzaCh7XG4gICAgICAgICAgJGxvb2t1cDoge1xuICAgICAgICAgICAgZnJvbTogcmVsTWV0YS5uYW1lLFxuICAgICAgICAgICAgcGlwZWxpbmU6IFtyZWZlcmVuY2VQaXBlbGluZUVudHJ5XSxcbiAgICAgICAgICAgIGFzOiByZWxLZXksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHBpcGVsaW5lLnB1c2goeyAkdW53aW5kOiB7IHBhdGg6IGAkJHtyZWxLZXl9YCwgcHJlc2VydmVOdWxsQW5kRW1wdHlBcnJheXM6IHRydWUgfSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGlwZWxpbmU7XG4gIH1cblxuICBub3JtYWxpemVJZHM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgZG9jczogRVtdKTogRVtdIHtcbiAgICByZXR1cm4gZG9jcz8ubWFwKChkb2MpID0+IHRoaXMubm9ybWFsaXplSWQobWV0YSwgZG9jKSk7XG4gIH1cblxuICBub3JtYWxpemVJZDxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCBkb2M6IEUpOiBFIHtcbiAgICBpZiAoIWRvYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcyA9IGRvYyBhcyBFICYgeyBfaWQ6IGFueSB9O1xuXG4gICAgaWYgKHJlcy5faWQpIHtcbiAgICAgIHJlc1ttZXRhLmlkXSA9IHJlcy5faWQ7XG4gICAgICBkZWxldGUgcmVzLl9pZDtcbiAgICB9XG5cbiAgICBjb25zdCByZWxLZXlzID0gZ2V0S2V5cyhtZXRhLnJlbGF0aW9ucykuZmlsdGVyKChrZXkpID0+IGRvY1trZXldKTtcblxuICAgIGZvciAoY29uc3QgcmVsS2V5IG9mIHJlbEtleXMpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgICAgY29uc3QgcmVsTWV0YSA9IGdldE1ldGEocmVsT3B0cy5lbnRpdHkoKSk7XG4gICAgICByZXNbcmVsS2V5XSA9IEFycmF5LmlzQXJyYXkocmVzW3JlbEtleV0pID8gdGhpcy5ub3JtYWxpemVJZHMocmVsTWV0YSwgcmVzW3JlbEtleV0pIDogdGhpcy5ub3JtYWxpemVJZChyZWxNZXRhLCByZXNbcmVsS2V5XSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcyBhcyBFO1xuICB9XG5cbiAgZ2V0SWRWYWx1ZTxUIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBPYmplY3RJZCB8IE9iamVjdElkW10+KHZhbHVlOiBUKTogVCB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0SWQpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKChpdCkgPT4gdGhpcy5nZXRJZFZhbHVlKGl0KSkgYXMgVDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBPYmplY3RJZCh2YWx1ZSkgYXMgVDtcbiAgfVxufVxuXG50eXBlIE1vbmdvQWdncmVnYXRpb25QaXBlbGluZUVudHJ5PEU+ID0ge1xuICByZWFkb25seSAkbG9va3VwPzogTW9uZ29BZ2dyZWdhdGlvbkxvb2t1cDxFPjtcbiAgJG1hdGNoPzogRmlsdGVyUXVlcnk8RT4gfCBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAkc29ydD86IE1vbmdvU29ydDxFPjtcbiAgcmVhZG9ubHkgJHVud2luZD86IE1vbmdvQWdncmVnYXRpb25VbndpbmQ7XG59O1xuXG50eXBlIE1vbmdvQWdncmVnYXRpb25Mb29rdXA8RT4gPSB7XG4gIHJlYWRvbmx5IGZyb20/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcmVpZ25GaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgbG9jYWxGaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgcGlwZWxpbmU/OiBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxGaWVsZFZhbHVlPEU+PltdO1xuICByZWFkb25seSBhcz86IFJlbGF0aW9uS2V5PEU+O1xufTtcblxudHlwZSBNb25nb0FnZ3JlZ2F0aW9uVW53aW5kID0ge1xuICByZWFkb25seSBwYXRoPzogc3RyaW5nO1xuICByZWFkb25seSBwcmVzZXJ2ZU51bGxBbmRFbXB0eUFycmF5cz86IGJvb2xlYW47XG59O1xuXG50eXBlIE1vbmdvU29ydDxFPiA9IFtzdHJpbmcsIG51bWJlcl1bXSB8IFNvcnRPcHRpb25PYmplY3Q8RT47XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29EaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vbmdvRGlhbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBaUQ7QUFhakQsMERBQXFEO0FBQ3JELHlDQUE2RztBQUU3RyxNQUFhLFlBQVk7SUFDdkIsTUFBTSxDQUFJLE1BQWUsRUFBRSxTQUF5QixFQUFFLEVBQUUsRUFBRSxVQUFVLEtBQW1CLEVBQUU7UUFDdkYsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQkFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdCLE1BQU0sR0FBRyxJQUFBLDBCQUFtQixFQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLEVBQUU7WUFDckcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzFDO1FBRUQsT0FBTyxJQUFBLGNBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDekMsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLElBQUksR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO2dCQUNuQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQXdCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDbkY7aUJBQU07Z0JBQ0wsSUFBSSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFO29CQUNwQyxH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Q0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQU0sQ0FBQztTQUNwRDtRQUNELE9BQU8sSUFBSSxrQkFBUSxDQUFDLEtBQUssQ0FBTSxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQWhKRCxvQ0FnSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXIsIE9iamVjdElkLCBTb3J0IH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQge1xuICBRdWVyeUZpbHRlcixcbiAgUXVlcnksXG4gIEVudGl0eU1ldGEsXG4gIFR5cGUsXG4gIFF1ZXJ5UHJvamVjdCxcbiAgUXVlcnlQcm9qZWN0TWFwLFxuICBRdWVyeU9wdGlvbnMsXG4gIFF1ZXJ5U29ydCxcbiAgRmllbGRWYWx1ZSxcbiAgUmVsYXRpb25LZXksXG59IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICdAdXFsL2NvcmUvZW50aXR5L2RlY29yYXRvcic7XG5pbXBvcnQgeyBnZXRLZXlzLCBoYXNLZXlzLCBidWlsZFNvcnRNYXAsIGdldFByb2plY3RSZWxhdGlvbktleXMsIGdldFF1ZXJ5RmlsdGVyQXNNYXAgfSBmcm9tICdAdXFsL2NvcmUvdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBNb25nb0RpYWxlY3Qge1xuICBmaWx0ZXI8RT4oZW50aXR5OiBUeXBlPEU+LCBmaWx0ZXI6IFF1ZXJ5RmlsdGVyPEU+ID0ge30sIHsgc29mdERlbGV0ZSB9OiBRdWVyeU9wdGlvbnMgPSB7fSk6IEZpbHRlcjxFPiB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGZpbHRlciA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgZmlsdGVyKTtcblxuICAgIGlmIChtZXRhLnNvZnREZWxldGUgJiYgKHNvZnREZWxldGUgfHwgc29mdERlbGV0ZSA9PT0gdW5kZWZpbmVkKSAmJiAhZmlsdGVyW21ldGEuc29mdERlbGV0ZSBhcyBzdHJpbmddKSB7XG4gICAgICBmaWx0ZXJbbWV0YS5zb2Z0RGVsZXRlIGFzIHN0cmluZ10gPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRLZXlzKGZpbHRlcikucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gZmlsdGVyW2tleV07XG4gICAgICBpZiAoa2V5ID09PSAnJGFuZCcgfHwga2V5ID09PSAnJG9yJykge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbHVlLm1hcCgoZmlsdGVySXQ6IFF1ZXJ5RmlsdGVyPEU+KSA9PiB0aGlzLmZpbHRlcihlbnRpdHksIGZpbHRlckl0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoa2V5ID09PSAnX2lkJyB8fCBrZXkgPT09IG1ldGEuaWQpIHtcbiAgICAgICAgICBrZXkgPSAnX2lkJztcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0SWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHtcbiAgICAgICAgICAgICRpbjogdmFsdWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBhY2Nba2V5IGFzIGtleW9mIEZpbHRlcjxFPl0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgRmlsdGVyPEU+KTtcbiAgfVxuXG4gIHByb2plY3Q8RT4oZW50aXR5OiBUeXBlPEU+LCBwcm9qZWN0OiBRdWVyeVByb2plY3Q8RT4pOiBRdWVyeVByb2plY3RNYXA8RT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb2plY3QpKSB7XG4gICAgICByZXR1cm4gcHJvamVjdC5yZWR1Y2UoKGFjYywgaXQpID0+IHtcbiAgICAgICAgYWNjW2l0IGFzIHN0cmluZ10gPSB0cnVlO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30gYXMgUXVlcnlQcm9qZWN0TWFwPEU+KTtcbiAgICB9XG4gICAgcmV0dXJuIHByb2plY3QgYXMgUXVlcnlQcm9qZWN0TWFwPEU+O1xuICB9XG5cbiAgc29ydDxFPihlbnRpdHk6IFR5cGU8RT4sIHNvcnQ6IFF1ZXJ5U29ydDxFPik6IFNvcnQge1xuICAgIHJldHVybiBidWlsZFNvcnRNYXAoc29ydCkgYXMgU29ydDtcbiAgfVxuXG4gIGFnZ3JlZ2F0aW9uUGlwZWxpbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pOiBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxFPltdIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5zb3J0KGVudGl0eSwgcW0uJHNvcnQpO1xuICAgIGNvbnN0IGZpcnN0UGlwZWxpbmVFbnRyeTogTW9uZ29BZ2dyZWdhdGlvblBpcGVsaW5lRW50cnk8RT4gPSB7fTtcblxuICAgIGlmIChoYXNLZXlzKGZpbHRlcikpIHtcbiAgICAgIGZpcnN0UGlwZWxpbmVFbnRyeS4kbWF0Y2ggPSBmaWx0ZXI7XG4gICAgfVxuICAgIGlmIChoYXNLZXlzKHNvcnQpKSB7XG4gICAgICBmaXJzdFBpcGVsaW5lRW50cnkuJHNvcnQgPSBzb3J0O1xuICAgIH1cblxuICAgIGNvbnN0IHBpcGVsaW5lOiBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxFPltdID0gW107XG5cbiAgICBpZiAoaGFzS2V5cyhmaXJzdFBpcGVsaW5lRW50cnkpKSB7XG4gICAgICBwaXBlbGluZS5wdXNoKGZpcnN0UGlwZWxpbmVFbnRyeSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsYXRpb25zID0gZ2V0UHJvamVjdFJlbGF0aW9uS2V5cyhtZXRhLCBxbS4kcHJvamVjdCk7XG5cbiAgICBmb3IgKGNvbnN0IHJlbEtleSBvZiByZWxhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuXG4gICAgICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJzFtJyB8fCByZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICAgIC8vICcxbScgYW5kICdtbScgc2hvdWxkIGJlIHJlc29sdmVkIGluIGEgaGlnaGVyIGxheWVyIGJlY2F1c2UgdGhleSB3aWxsIG5lZWQgbXVsdGlwbGUgcXVlcmllc1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbEVudGl0eSk7XG5cbiAgICAgIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbTEnKSB7XG4gICAgICAgIHBpcGVsaW5lLnB1c2goe1xuICAgICAgICAgICRsb29rdXA6IHtcbiAgICAgICAgICAgIGZyb206IHJlbE1ldGEubmFtZSxcbiAgICAgICAgICAgIGxvY2FsRmllbGQ6IHJlbE9wdHMucmVmZXJlbmNlc1swXS5sb2NhbCxcbiAgICAgICAgICAgIGZvcmVpZ25GaWVsZDogJ19pZCcsXG4gICAgICAgICAgICBhczogcmVsS2V5LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZm9yZWlnbkZpZWxkID0gcmVsT3B0cy5yZWZlcmVuY2VzWzBdLmZvcmVpZ247XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZUZpbHRlciA9IHRoaXMuZmlsdGVyKHJlbEVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZVNvcnQgPSB0aGlzLnNvcnQocmVsRW50aXR5LCBxbS4kc29ydCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZVBpcGVsaW5lRW50cnk6IE1vbmdvQWdncmVnYXRpb25QaXBlbGluZUVudHJ5PEZpZWxkVmFsdWU8RT4+ID0geyAkbWF0Y2g6IHsgW2ZvcmVpZ25GaWVsZF06IHJlZmVyZW5jZUZpbHRlci5faWQgfSB9O1xuICAgICAgICBpZiAoaGFzS2V5cyhyZWZlcmVuY2VTb3J0KSkge1xuICAgICAgICAgIHJlZmVyZW5jZVBpcGVsaW5lRW50cnkuJHNvcnQgPSByZWZlcmVuY2VTb3J0O1xuICAgICAgICB9XG4gICAgICAgIHBpcGVsaW5lLnB1c2goe1xuICAgICAgICAgICRsb29rdXA6IHtcbiAgICAgICAgICAgIGZyb206IHJlbE1ldGEubmFtZSxcbiAgICAgICAgICAgIHBpcGVsaW5lOiBbcmVmZXJlbmNlUGlwZWxpbmVFbnRyeV0sXG4gICAgICAgICAgICBhczogcmVsS2V5LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBwaXBlbGluZS5wdXNoKHsgJHVud2luZDogeyBwYXRoOiBgJCR7cmVsS2V5fWAsIHByZXNlcnZlTnVsbEFuZEVtcHR5QXJyYXlzOiB0cnVlIH0gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBpcGVsaW5lO1xuICB9XG5cbiAgbm9ybWFsaXplSWRzPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIGRvY3M6IEVbXSk6IEVbXSB7XG4gICAgcmV0dXJuIGRvY3M/Lm1hcCgoZG9jKSA9PiB0aGlzLm5vcm1hbGl6ZUlkKG1ldGEsIGRvYykpO1xuICB9XG5cbiAgbm9ybWFsaXplSWQ8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgZG9jOiBFKTogRSB7XG4gICAgaWYgKCFkb2MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXMgPSBkb2MgYXMgRSAmIHsgX2lkOiBhbnkgfTtcblxuICAgIGlmIChyZXMuX2lkKSB7XG4gICAgICByZXNbbWV0YS5pZF0gPSByZXMuX2lkO1xuICAgICAgZGVsZXRlIHJlcy5faWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsS2V5cyA9IGdldEtleXMobWV0YS5yZWxhdGlvbnMpLmZpbHRlcigoa2V5KSA9PiBkb2Nba2V5XSk7XG5cbiAgICBmb3IgKGNvbnN0IHJlbEtleSBvZiByZWxLZXlzKSB7XG4gICAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbE9wdHMuZW50aXR5KCkpO1xuICAgICAgcmVzW3JlbEtleV0gPSBBcnJheS5pc0FycmF5KHJlc1tyZWxLZXldKSA/IHRoaXMubm9ybWFsaXplSWRzKHJlbE1ldGEsIHJlc1tyZWxLZXldKSA6IHRoaXMubm9ybWFsaXplSWQocmVsTWV0YSwgcmVzW3JlbEtleV0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXMgYXMgRTtcbiAgfVxuXG4gIGdldElkVmFsdWU8VCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgT2JqZWN0SWQgfCBPYmplY3RJZFtdPih2YWx1ZTogVCk6IFQge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdElkKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLm1hcCgoaXQpID0+IHRoaXMuZ2V0SWRWYWx1ZShpdCkpIGFzIFQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgT2JqZWN0SWQodmFsdWUpIGFzIFQ7XG4gIH1cbn1cblxudHlwZSBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxFPiA9IHtcbiAgcmVhZG9ubHkgJGxvb2t1cD86IE1vbmdvQWdncmVnYXRpb25Mb29rdXA8RT47XG4gICRtYXRjaD86IEZpbHRlcjxFPiB8IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICRzb3J0PzogU29ydDtcbiAgcmVhZG9ubHkgJHVud2luZD86IE1vbmdvQWdncmVnYXRpb25VbndpbmQ7XG59O1xuXG50eXBlIE1vbmdvQWdncmVnYXRpb25Mb29rdXA8RT4gPSB7XG4gIHJlYWRvbmx5IGZyb20/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcmVpZ25GaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgbG9jYWxGaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgcGlwZWxpbmU/OiBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxGaWVsZFZhbHVlPEU+PltdO1xuICByZWFkb25seSBhcz86IFJlbGF0aW9uS2V5PEU+O1xufTtcblxudHlwZSBNb25nb0FnZ3JlZ2F0aW9uVW53aW5kID0ge1xuICByZWFkb25seSBwYXRoPzogc3RyaW5nO1xuICByZWFkb25seSBwcmVzZXJ2ZU51bGxBbmRFbXB0eUFycmF5cz86IGJvb2xlYW47XG59O1xuIl19 |
@@ -6,3 +6,3 @@ { | ||
"license": "MIT", | ||
"version": "1.0.9", | ||
"version": "1.0.10", | ||
"main": "./index.js", | ||
@@ -17,3 +17,3 @@ "types": "./index.d.ts", | ||
"dependencies": { | ||
"mongodb": "^3.6.10" | ||
"mongodb": "^4.7.0" | ||
}, | ||
@@ -24,5 +24,5 @@ "peerDependencies": { | ||
"devDependencies": { | ||
"@types/mongodb": "^3.6.20", | ||
"@types/node": "^18.0.0", | ||
"@uql/core": "^1.0.9", | ||
"@types/mongodb": "^4.0.6", | ||
"@types/node": "^18.0.3", | ||
"@uql/core": "^1.0.10", | ||
"copyfiles": "^2.4.1", | ||
@@ -66,2 +66,2 @@ "rimraf": "^3.0.2", | ||
"gitHead": "3ced0c218364ddcd9e234096155ff205a7583b13" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
91038
395
+ Added@aws-crypto/sha256-browser@5.2.0(transitive)
+ Added@aws-crypto/sha256-js@5.2.0(transitive)
+ Added@aws-crypto/supports-web-crypto@5.2.0(transitive)
+ Added@aws-crypto/util@5.2.0(transitive)
+ Added@aws-sdk/client-cognito-identity@3.738.0(transitive)
+ Added@aws-sdk/client-sso@3.734.0(transitive)
+ Added@aws-sdk/core@3.734.0(transitive)
+ Added@aws-sdk/credential-provider-cognito-identity@3.738.0(transitive)
+ Added@aws-sdk/credential-provider-env@3.734.0(transitive)
+ Added@aws-sdk/credential-provider-http@3.734.0(transitive)
+ Added@aws-sdk/credential-provider-ini@3.734.0(transitive)
+ Added@aws-sdk/credential-provider-node@3.738.0(transitive)
+ Added@aws-sdk/credential-provider-process@3.734.0(transitive)
+ Added@aws-sdk/credential-provider-sso@3.734.0(transitive)
+ Added@aws-sdk/credential-provider-web-identity@3.734.0(transitive)
+ Added@aws-sdk/credential-providers@3.738.0(transitive)
+ Added@aws-sdk/middleware-host-header@3.734.0(transitive)
+ Added@aws-sdk/middleware-logger@3.734.0(transitive)
+ Added@aws-sdk/middleware-recursion-detection@3.734.0(transitive)
+ Added@aws-sdk/middleware-user-agent@3.734.0(transitive)
+ Added@aws-sdk/nested-clients@3.734.0(transitive)
+ Added@aws-sdk/region-config-resolver@3.734.0(transitive)
+ Added@aws-sdk/token-providers@3.734.0(transitive)
+ Added@aws-sdk/types@3.734.0(transitive)
+ Added@aws-sdk/util-endpoints@3.734.0(transitive)
+ Added@aws-sdk/util-locate-window@3.723.0(transitive)
+ Added@aws-sdk/util-user-agent-browser@3.734.0(transitive)
+ Added@aws-sdk/util-user-agent-node@3.734.0(transitive)
+ Added@mongodb-js/saslprep@1.1.9(transitive)
+ Added@smithy/abort-controller@4.0.1(transitive)
+ Added@smithy/config-resolver@4.0.1(transitive)
+ Added@smithy/core@3.1.2(transitive)
+ Added@smithy/credential-provider-imds@4.0.1(transitive)
+ Added@smithy/fetch-http-handler@5.0.1(transitive)
+ Added@smithy/hash-node@4.0.1(transitive)
+ Added@smithy/invalid-dependency@4.0.1(transitive)
+ Added@smithy/is-array-buffer@2.2.04.0.0(transitive)
+ Added@smithy/middleware-content-length@4.0.1(transitive)
+ Added@smithy/middleware-endpoint@4.0.3(transitive)
+ Added@smithy/middleware-retry@4.0.4(transitive)
+ Added@smithy/middleware-serde@4.0.2(transitive)
+ Added@smithy/middleware-stack@4.0.1(transitive)
+ Added@smithy/node-config-provider@4.0.1(transitive)
+ Added@smithy/node-http-handler@4.0.2(transitive)
+ Added@smithy/property-provider@4.0.1(transitive)
+ Added@smithy/protocol-http@5.0.1(transitive)
+ Added@smithy/querystring-builder@4.0.1(transitive)
+ Added@smithy/querystring-parser@4.0.1(transitive)
+ Added@smithy/service-error-classification@4.0.1(transitive)
+ Added@smithy/shared-ini-file-loader@4.0.1(transitive)
+ Added@smithy/signature-v4@5.0.1(transitive)
+ Added@smithy/smithy-client@4.1.3(transitive)
+ Added@smithy/types@4.1.0(transitive)
+ Added@smithy/url-parser@4.0.1(transitive)
+ Added@smithy/util-base64@4.0.0(transitive)
+ Added@smithy/util-body-length-browser@4.0.0(transitive)
+ Added@smithy/util-body-length-node@4.0.0(transitive)
+ Added@smithy/util-buffer-from@2.2.04.0.0(transitive)
+ Added@smithy/util-config-provider@4.0.0(transitive)
+ Added@smithy/util-defaults-mode-browser@4.0.4(transitive)
+ Added@smithy/util-defaults-mode-node@4.0.4(transitive)
+ Added@smithy/util-endpoints@3.0.1(transitive)
+ Added@smithy/util-hex-encoding@4.0.0(transitive)
+ Added@smithy/util-middleware@4.0.1(transitive)
+ Added@smithy/util-retry@4.0.1(transitive)
+ Added@smithy/util-stream@4.0.2(transitive)
+ Added@smithy/util-uri-escape@4.0.0(transitive)
+ Added@smithy/util-utf8@2.3.04.0.0(transitive)
+ Added@types/node@22.13.0(transitive)
+ Added@types/webidl-conversions@7.0.3(transitive)
+ Added@types/whatwg-url@8.2.2(transitive)
+ Addedbase64-js@1.5.1(transitive)
+ Addedbowser@2.11.0(transitive)
+ Addedbson@4.7.2(transitive)
+ Addedbuffer@5.7.1(transitive)
+ Addedfast-xml-parser@4.4.1(transitive)
+ Addedieee754@1.2.1(transitive)
+ Addedip-address@9.0.5(transitive)
+ Addedjsbn@1.1.0(transitive)
+ Addedmongodb@4.17.2(transitive)
+ Addedmongodb-connection-string-url@2.6.0(transitive)
+ Addedpunycode@2.3.1(transitive)
+ Addedsmart-buffer@4.2.0(transitive)
+ Addedsocks@2.8.3(transitive)
+ Addedsprintf-js@1.1.3(transitive)
+ Addedstrnum@1.0.5(transitive)
+ Addedtr46@3.0.0(transitive)
+ Addedundici-types@6.20.0(transitive)
+ Addeduuid@9.0.1(transitive)
+ Addedwebidl-conversions@7.0.0(transitive)
+ Addedwhatwg-url@11.0.0(transitive)
- Removedbl@2.2.1(transitive)
- Removedbson@1.1.6(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removeddenque@1.5.1(transitive)
- Removedinherits@2.0.4(transitive)
- Removedisarray@1.0.0(transitive)
- Removedmongodb@3.7.4(transitive)
- Removedoptional-require@1.1.8(transitive)
- Removedprocess-nextick-args@2.0.1(transitive)
- Removedreadable-stream@2.3.8(transitive)
- Removedrequire-at@1.0.6(transitive)
- Removedsafe-buffer@5.1.25.2.1(transitive)
- Removedsaslprep@1.0.3(transitive)
- Removedstring_decoder@1.1.1(transitive)
- Removedutil-deprecate@1.0.2(transitive)
Updatedmongodb@^4.7.0