Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mongtype

Package Overview
Dependencies
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongtype - npm Package Compare versions

Comparing version 1.3.1 to 1.4.0

dist/events.d.ts

20

dist/db.js
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -21,7 +12,6 @@ return new (P || (P = Promise))(function (resolve, reject) {

const mongodb_1 = require("mongodb");
const injection_js_1 = require("injection-js");
const retry = require("retry");
const events_1 = require("events");
const util_1 = require("./util");
let Database = class Database extends events_1.EventEmitter {
class Database extends events_1.EventEmitter {
constructor() {

@@ -56,8 +46,4 @@ super();

}
};
Database = __decorate([
injection_js_1.Injectable(),
__metadata("design:paramtypes", [])
], Database);
}
exports.Database = Database;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUFxRjtBQUNyRiwrQ0FBMEM7QUFDMUMsK0JBQStCO0FBQy9CLG1DQUFzQztBQUN0QyxpQ0FBK0I7QUFHL0IsSUFBYSxRQUFRLEdBQXJCLGNBQXNCLFNBQVEscUJBQVk7SUFLeEM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVLLE9BQU8sQ0FBQyxHQUFHOztZQUNmLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2YsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQztLQUFBO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQU8sT0FBTztZQUM5QixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxFQUFFLEdBQUcsTUFBTSxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsQ0FBQztZQUFDLEtBQUssQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1YsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQyxNQUFNLENBQUM7Z0JBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FFRixDQUFBO0FBakNZLFFBQVE7SUFEcEIseUJBQVUsRUFBRTs7R0FDQSxRQUFRLENBaUNwQjtBQWpDWSw0QkFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVwZGF0ZVdyaXRlT3BSZXN1bHQsIE9iamVjdElELCBNb25nb0NsaWVudCwgRGIsIENvbGxlY3Rpb24gfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdpbmplY3Rpb24tanMnO1xuaW1wb3J0ICogYXMgcmV0cnkgZnJvbSAncmV0cnknO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCB7IGRlZmVyIH0gZnJvbSAnLi91dGlsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFiYXNlIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcblxuICBjb25uZWN0aW9uOiBhbnk7XG4gIHByaXZhdGUgdXJpOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBkZWZlcigpO1xuICB9XG5cbiAgYXN5bmMgY29ubmVjdCh1cmkpOiBQcm9taXNlPERiPiB7XG4gICAgdGhpcy51cmkgPSB1cmk7XG4gICAgdGhpcy5jcmVhdGVDb25uZWN0aW9uKCk7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29ubmVjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSByZXRyeS5vcGVyYXRpb24oKTtcbiAgICBvcGVyYXRpb24uYXR0ZW1wdChhc3luYyAoYXR0ZW1wdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGIgPSBhd2FpdCBNb25nb0NsaWVudC5jb25uZWN0KHRoaXMudXJpKTtcbiAgICAgICAgY29uc29sZS5sb2coYE1vbmdvOiBDb25uZWN0aW9uIG9wZW5lZDogJHt0aGlzLnVyaX1gKTtcbiAgICAgICAgdGhpcy5lbWl0KCdjb25uZWN0ZWQnLCBkYik7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5yZXNvbHZlKGRiKTtcbiAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBpZiAob3BlcmF0aW9uLnJldHJ5KGUpKSByZXR1cm47XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ01vbmdvOiBDb25uZWN0aW9uIGVycm9yJywgZSk7XG4gICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlKTtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLnJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLHFDQUFxRjtBQUNyRiwrQkFBK0I7QUFDL0IsbUNBQXNDO0FBQ3RDLGlDQUErQjtBQUUvQixjQUFzQixTQUFRLHFCQUFZO0lBS3hDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLFlBQUssRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFSyxPQUFPLENBQUMsR0FBRzs7WUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pCLENBQUM7S0FBQTtJQUVPLGdCQUFnQjtRQUN0QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFPLE9BQU87WUFDOUIsSUFBSSxDQUFDO2dCQUNILE1BQU0sRUFBRSxHQUFHLE1BQU0scUJBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFBQyxLQUFLLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNWLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsTUFBTSxDQUFDO2dCQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUY7QUFqQ0QsNEJBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXBkYXRlV3JpdGVPcFJlc3VsdCwgT2JqZWN0SUQsIE1vbmdvQ2xpZW50LCBEYiwgQ29sbGVjdGlvbiB9IGZyb20gJ21vbmdvZGInO1xuaW1wb3J0ICogYXMgcmV0cnkgZnJvbSAncmV0cnknO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCB7IGRlZmVyIH0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGNsYXNzIERhdGFiYXNlIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcblxuICBjb25uZWN0aW9uOiBhbnk7XG4gIHByaXZhdGUgdXJpOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBkZWZlcigpO1xuICB9XG5cbiAgYXN5bmMgY29ubmVjdCh1cmkpOiBQcm9taXNlPERiPiB7XG4gICAgdGhpcy51cmkgPSB1cmk7XG4gICAgdGhpcy5jcmVhdGVDb25uZWN0aW9uKCk7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29ubmVjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSByZXRyeS5vcGVyYXRpb24oKTtcbiAgICBvcGVyYXRpb24uYXR0ZW1wdChhc3luYyAoYXR0ZW1wdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGIgPSBhd2FpdCBNb25nb0NsaWVudC5jb25uZWN0KHRoaXMudXJpKTtcbiAgICAgICAgY29uc29sZS5sb2coYE1vbmdvOiBDb25uZWN0aW9uIG9wZW5lZDogJHt0aGlzLnVyaX1gKTtcbiAgICAgICAgdGhpcy5lbWl0KCdjb25uZWN0ZWQnLCBkYik7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5yZXNvbHZlKGRiKTtcbiAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBpZiAob3BlcmF0aW9uLnJldHJ5KGUpKSByZXR1cm47XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ01vbmdvOiBDb25uZWN0aW9uIGVycm9yJywgZSk7XG4gICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlKTtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLnJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -23,5 +14,3 @@ return new (P || (P = Promise))(function (resolve, reject) {

const types_1 = require("./types");
const db_1 = require("./db");
const injection_js_1 = require("injection-js");
let MongoRepository = class MongoRepository {
class MongoRepository {
constructor(db) {

@@ -188,8 +177,4 @@ this.db = db;

}
};
MongoRepository = __decorate([
injection_js_1.Injectable(),
__metadata("design:paramtypes", [db_1.Database])
], MongoRepository);
}
exports.MongoRepository = MongoRepository;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0QkFBMEI7QUFDMUIscUNBQXFGO0FBQ3JGLG1DQUVpQjtBQUNqQiw2QkFBZ0M7QUFDaEMsK0NBQTBDO0FBRzFDLElBQWEsZUFBZSxHQUE1QjtJQVlFLFlBQW1CLEVBQVk7UUFBWixPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFWRCxJQUFJLFVBQVU7UUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHNCQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQU1ELFFBQVEsQ0FBQyxFQUFVO1FBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksa0JBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVLLE9BQU8sQ0FBQyxVQUFlOztZQUMzQixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDekMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsRUFBRSxDQUFBLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixJQUFJLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLFFBQVEs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LE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVhLFlBQVksQ0FBQyxJQUFZLEVBQUUsR0FBYSxFQUFFLFFBQWE7O1lBQ25FLEdBQUcsQ0FBQSxDQUFDLE1BQU0sRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoRSxHQUFHLENBQUEsQ0FBQyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUMxQixRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDdEMsRUFBRSxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQ3hDLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQztvQkFDNUIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDbEIsQ0FBQztLQUFBO0NBRUYsQ0FBQTtBQWhMWSxlQUFlO0lBRDNCLHlCQUFVLEVBQUU7cUNBYVksYUFBUTtHQVpwQixlQUFlLENBZ0wzQjtBQWhMWSwwQ0FBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5pbXBvcnQgeyBVcGRhdGVXcml0ZU9wUmVzdWx0LCBPYmplY3RJRCwgTW9uZ29DbGllbnQsIERiLCBDb2xsZWN0aW9uIH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQgeyBcbiAgQ09MTEVDVElPTl9LRVksIFBSRV9LRVksIFBPU1RfS0VZLCBDb2xsZWN0aW9uUHJvcHMsIFVwZGF0ZVJlcXVlc3QsIFVwZGF0ZUJ5SWRSZXF1ZXN0LCBGaW5kUmVxdWVzdCBcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBEYXRhYmFzZSB9IGZyb20gJy4vZGInO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ2luamVjdGlvbi1qcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb25nb1JlcG9zaXRvcnk8VD4ge1xuXG4gIGNvbGxlY3Rpb246IFByb21pc2U8Q29sbGVjdGlvbj47XG4gIFxuICBnZXQgY29ubmVjdGlvbigpOiBQcm9taXNlPERiPiB7XG4gICAgcmV0dXJuIHRoaXMuZGIuY29ubmVjdGlvbjtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IENvbGxlY3Rpb25Qcm9wcyB7XG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoQ09MTEVDVElPTl9LRVksIHRoaXMpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRiOiBEYXRhYmFzZSkge1xuICAgIHRoaXMuY3JlYXRlQ29sbGVjdGlvbigpO1xuICB9XG5cbiAgZmluZEJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLmZpbmRPbmUoeyBfaWQ6IG5ldyBPYmplY3RJRChpZCkgfSk7XG4gIH1cblxuICBhc3luYyBmaW5kT25lKGNvbmRpdGlvbnM6IGFueSk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb247XG4gICAgY29uc3QgY3Vyc29yID0gY29sbGVjdGlvbi5maW5kKGNvbmRpdGlvbnMpLmxpbWl0KDEpO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgY3Vyc29yLnRvQXJyYXkoKTtcbiAgICBpZihyZXMgJiYgcmVzLmxlbmd0aCkge1xuICAgICAgbGV0IGRvY3VtZW50ID0gcmVzWzBdO1xuICAgICAgZG9jdW1lbnQgPSB0aGlzLnRvZ2dsZUlkKGRvY3VtZW50LCBmYWxzZSk7XG4gICAgICBkb2N1bWVudCA9IGF3YWl0IHRoaXMuaW52b2tlRXZlbnRzKFBPU1RfS0VZLCBbJ2ZpbmQnLCAnZmluZE9uZSddLCBkb2N1bWVudCk7XG4gICAgICByZXR1cm4gZG9jdW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZmluZChyZXE6IEZpbmRSZXF1ZXN0ID0geyBjb25kaXRpb25zOiB7fSB9KTogUHJvbWlzZTxhbnlbVF0+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uO1xuICAgIFxuICAgIGNvbnN0IGNvbmRpdGlvbnMgID0gdGhpcy50b2dnbGVJZChyZXEuY29uZGl0aW9ucywgdHJ1ZSk7XG4gICAgbGV0IGN1cnNvciA9IGNvbGxlY3Rpb24uZmluZChjb25kaXRpb25zKTtcblxuICAgIGlmIChyZXEucHJvamVjdGlvbikge1xuICAgICAgY3Vyc29yID0gY3Vyc29yLnByb2plY3QocmVxLnByb2plY3Rpb24pO1xuICAgIH1cblxuICAgIGlmIChyZXEuc29ydCkge1xuICAgICAgY3Vyc29yID0gY3Vyc29yLnNvcnQocmVxLnNvcnQpO1xuICAgIH1cblxuICAgIGlmIChyZXEubGltaXQpIHtcbiAgICAgIGN1cnNvciA9IGN1cnNvci5saW1pdChyZXEubGltaXQpO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0RvY3VtZW50cyA9IGF3YWl0IGN1cnNvci50b0FycmF5KCk7XG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuXG4gICAgZm9yKGxldCBkb2N1bWVudCBvZiBuZXdEb2N1bWVudHMpIHtcbiAgICAgIGRvY3VtZW50ID0gdGhpcy50b2dnbGVJZChkb2N1bWVudCwgZmFsc2UpO1xuICAgICAgZG9jdW1lbnQgPSBhd2FpdCB0aGlzLmludm9rZUV2ZW50cyhQT1NUX0tFWSwgWydmaW5kJywgJ2ZpbmRNYW55J10sIGRvY3VtZW50KTtcbiAgICAgIHJlc3VsdHMucHVzaChkb2N1bWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICBhc3luYyBjcmVhdGUoZG9jdW1lbnQ6IFQpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uO1xuICAgIGRvY3VtZW50ID0gYXdhaXQgdGhpcy5pbnZva2VFdmVudHMoUFJFX0tFWSwgWydzYXZlJywgJ2NyZWF0ZSddLCBkb2N1bWVudCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgY29sbGVjdGlvbi5pbnNlcnRPbmUoZG9jdW1lbnQpO1xuXG4gICAgbGV0IG5ld0RvY3VtZW50ID0gcmVzLm9wc1swXTtcbiAgICBuZXdEb2N1bWVudCA9IHRoaXMudG9nZ2xlSWQobmV3RG9jdW1lbnQsIGZhbHNlKTtcbiAgICBuZXdEb2N1bWVudCA9IGF3YWl0IHRoaXMuaW52b2tlRXZlbnRzKFBPU1RfS0VZLCBbJ3NhdmUnLCAnY3JlYXRlJ10sIG5ld0RvY3VtZW50KTtcbiAgICByZXR1cm4gbmV3RG9jdW1lbnQ7XG4gIH1cblxuICBhc3luYyBzYXZlKGRvY3VtZW50OiBhbnkpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uO1xuICAgIFxuICAgIC8vIGZsaXAvZmxvcCBpZHNcbiAgICBjb25zdCBpZCA9IG5ldyBPYmplY3RJRChkb2N1bWVudC5pZCk7XG4gICAgZGVsZXRlIGRvY3VtZW50LmlkO1xuICAgIGRlbGV0ZSBkb2N1bWVudC5faWQ7XG5cbiAgICBjb25zdCB1cGRhdGVzID0gYXdhaXQgdGhpcy5pbnZva2VFdmVudHMoUFJFX0tFWSwgWydzYXZlJ10sIGRvY3VtZW50KTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBjb2xsZWN0aW9uLnVwZGF0ZU9uZSh7IF9pZDogaWQgfSwgeyAkc2V0OiB1cGRhdGVzIH0sIHsgdXBzZXJ0OiB0cnVlIH0pO1xuICAgIGxldCBuZXdEb2N1bWVudCA9IGF3YWl0IGNvbGxlY3Rpb24uZmluZE9uZSh7IF9pZDogaWQgfSk7XG5cbiAgICAvLyBwcm9qZWN0IG5ldyBpdGVtc1xuICAgIGlmKG5ld0RvY3VtZW50KSB7XG4gICAgICBPYmplY3QuYXNzaWduKGRvY3VtZW50LCBuZXdEb2N1bWVudCk7XG4gICAgfVxuXG4gICAgLy8gZmxpcCBmbG9wIGlkcyBiYWNrXG4gICAgbmV3RG9jdW1lbnQuaWQgPSBpZC50b1N0cmluZygpO1xuICAgIGRlbGV0ZSBuZXdEb2N1bWVudC5faWQ7XG5cbiAgICBuZXdEb2N1bWVudCA9IGF3YWl0IHRoaXMuaW52b2tlRXZlbnRzKFBPU1RfS0VZLCBbJ3NhdmUnXSwgbmV3RG9jdW1lbnQpO1xuICAgIHJldHVybiBuZXdEb2N1bWVudDtcbiAgfVxuXG4gIGFzeW5jIGZpbmRPbmVCeUlkQW5kVXBkYXRlKGlkOiBzdHJpbmcsIHJlcTogVXBkYXRlQnlJZFJlcXVlc3QpOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kT25lQW5kVXBkYXRlKHtcbiAgICAgIGNvbmRpdGlvbnM6IHsgX2lkOiBuZXcgT2JqZWN0SUQoaWQpIH0sXG4gICAgICB1cGRhdGVzOiByZXEudXBkYXRlcyxcbiAgICAgIHVwc2VydDogcmVxLnVwc2VydFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZUFuZFVwZGF0ZShyZXE6IFVwZGF0ZVJlcXVlc3QpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uO1xuICAgIGNvbnN0IHVwZGF0ZXMgPSBhd2FpdCB0aGlzLmludm9rZUV2ZW50cyhQUkVfS0VZLCBbJ3VwZGF0ZScsICd1cGRhdGVPbmUnXSwgcmVxLnVwZGF0ZXMpO1xuICAgIFxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNvbGxlY3Rpb25cbiAgICAgIC5maW5kT25lQW5kVXBkYXRlKHJlcS5jb25kaXRpb25zLCB1cGRhdGVzLCB7IHVwc2VydDogcmVxLnVwc2VydCwgcmV0dXJuTmV3RG9jdW1lbnQ6IHRydWUgfSk7XG5cbiAgICBsZXQgZG9jdW1lbnQgPSByZXMudmFsdWU7XG4gICAgZG9jdW1lbnQgPSB0aGlzLnRvZ2dsZUlkKGRvY3VtZW50LCBmYWxzZSk7XG4gICAgZG9jdW1lbnQgPSBhd2FpdCB0aGlzLmludm9rZUV2ZW50cyhQT1NUX0tFWSwgWyd1cGRhdGUnLCAndXBkYXRlT25lJ10sIGRvY3VtZW50KTtcbiAgICByZXR1cm4gZG9jdW1lbnQ7XG4gIH1cblxuICBhc3luYyBkZWxldGVPbmVCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZU9uZSh7XG4gICAgICBfaWQ6IG5ldyBPYmplY3RJRChpZClcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU9uZShjb25kaXRpb25zOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb247XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uZGVsZXRlT25lKGNvbmRpdGlvbnMpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlTWFueShjb25kaXRpb25zOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb247XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uZGVsZXRlTWFueShjb25kaXRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29sbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxlY3Rpb24gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbihhc3luYyAoZGIpID0+IHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGRiLmNvbGxlY3Rpb24odGhpcy5vcHRpb25zLm5hbWUsIHtcbiAgICAgICAgICBzaXplOiB0aGlzLm9wdGlvbnMuc2l6ZSxcbiAgICAgICAgICBjYXBwZWQ6IHRoaXMub3B0aW9ucy5jYXBwZWQsXG4gICAgICAgICAgbWF4OiB0aGlzLm9wdGlvbnMubWF4XG4gICAgICAgIH0pO1xuICAgICAgICByZXNvbHZlKGNvbGxlY3Rpb24pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUlkKGRvY3VtZW50OiBhbnksIHJlcGxhY2U6IGJvb2xlYW4pOiBUIHtcbiAgICBpZihkb2N1bWVudCAmJiAoZG9jdW1lbnQuaWQgfHwgZG9jdW1lbnQuX2lkKSkge1xuICAgICAgaWYocmVwbGFjZSkge1xuICAgICAgICBkb2N1bWVudC5faWQgPSBuZXcgT2JqZWN0SUQoZG9jdW1lbnQuaWQpO1xuICAgICAgICBkZWxldGUgZG9jdW1lbnQuaWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2N1bWVudC5pZCA9IGRvY3VtZW50Ll9pZC50b1N0cmluZygpO1xuICAgICAgICBkZWxldGUgZG9jdW1lbnQuX2lkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZG9jdW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGludm9rZUV2ZW50cyh0eXBlOiBzdHJpbmcsIGZuczogc3RyaW5nW10sIGRvY3VtZW50OiBhbnkpOiBQcm9taXNlPFQ+IHtcbiAgICBmb3IoY29uc3QgZm4gb2YgZm5zKSB7XG4gICAgICBjb25zdCBldmVudHMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKGAke3R5cGV9XyR7Zm59YCwgdGhpcykgfHwgW107XG4gICAgICBmb3IoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICAgIGRvY3VtZW50ID0gZXZlbnQuYmluZCh0aGlzKShkb2N1bWVudCk7XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGRvY3VtZW50ID0gYXdhaXQgZG9jdW1lbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGRvY3VtZW50O1xuICB9XG5cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSw0QkFBMEI7QUFDMUIscUNBQXFGO0FBQ3JGLG1DQUVpQjtBQUdqQjtJQVlFLFlBQW1CLEVBQVk7UUFBWixPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFWRCxJQUFJLFVBQVU7UUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHNCQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQU1ELFFBQVEsQ0FBQyxFQUFVO1FBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksa0JBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVLLE9BQU8sQ0FBQyxVQUFlOztZQUMzQixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDekMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsRUFBRSxDQUFBLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixJQUFJLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztn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LE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVhLFlBQVksQ0FBQyxJQUFZLEVBQUUsR0FBYSxFQUFFLFFBQWE7O1lBQ25FLEdBQUcsQ0FBQSxDQUFDLE1BQU0sRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoRSxHQUFHLENBQUEsQ0FBQyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUMxQixRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDdEMsRUFBRSxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQ3hDLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQztvQkFDNUIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDbEIsQ0FBQztLQUFBO0NBRUY7QUFoTEQsMENBZ0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7IFVwZGF0ZVdyaXRlT3BSZXN1bHQsIE9iamVjdElELCBNb25nb0NsaWVudCwgRGIsIENvbGxlY3Rpb24gfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IFxuICBDT0xMRUNUSU9OX0tFWSwgUFJFX0tFWSwgUE9TVF9LRVksIENvbGxlY3Rpb25Qcm9wcywgVXBkYXRlUmVxdWVzdCwgVXBkYXRlQnlJZFJlcXVlc3QsIEZpbmRSZXF1ZXN0IFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IERhdGFiYXNlIH0gZnJvbSAnLi9kYic7XG5cbmV4cG9ydCBjbGFzcyBNb25nb1JlcG9zaXRvcnk8VD4ge1xuXG4gIGNvbGxlY3Rpb246IFByb21pc2U8Q29sbGVjdGlvbj47XG4gIFxuICBnZXQgY29ubmVjdGlvbigpOiBQcm9taXNlPERiPiB7XG4gICAgcmV0dXJuIHRoaXMuZGIuY29ubmVjdGlvbjtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IENvbGxlY3Rpb25Qcm9wcyB7XG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoQ09MTEVDVElPTl9LRVksIHRoaXMpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRiOiBEYXRhYmFzZSkge1xuICAgIHRoaXMuY3JlYXRlQ29sbGVjdGlvbigpO1xuICB9XG5cbiAgZmluZEJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLmZpbmRPbmUoeyBfaWQ6IG5ldyBPYmplY3RJRChpZCkgfSk7XG4gIH1cblxuICBhc3luYyBmaW5kT25lKGNvbmRpdGlvbnM6IGFueSk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb247XG4gICAgY29uc3QgY3Vyc29yID0gY29sbGVjdGlvbi5maW5kKGNvbmRpdGlvbnMpLmxpbWl0KDEpO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgY3Vyc29yLnRvQXJyYXkoKTtcbiAgICBpZihyZXMgJiYgcmVzLmxlbmd0aCkge1xuICAgICAgbGV0IGRvY3VtZW50ID0gcmVzWzBdO1xuICAgICAgZG9jdW1lbnQgPSB0aGlzLnRvZ2dsZUlkKGRvY3VtZW50LCBmYWxzZSk7XG4gICAgICBkb2N1bWVudCA9IGF3YWl0IHRoaXMuaW52b2tlRXZlbnRzKFBPU1RfS0VZLCBbJ2ZpbmQnLCAnZmluZE9uZSddLCBkb2N1bWVudCk7XG4gICAgICByZXR1cm4gZG9jdW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZmluZChyZXE6IEZpbmRSZXF1ZXN0ID0geyBjb25kaXRpb25zOiB7fSB9KTogUHJvbWlzZTxhbnlbVF0+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uO1xuICAgIFxuICAgIGNvbnN0IGNvbmRpdGlvbnMgID0gdGhpcy50b2dnbGVJZChyZXEuY29uZGl0aW9ucywgdHJ1ZSk7XG4gICAgbGV0IGN1cnNvciA9IGNvbGxlY3Rpb24uZmluZChjb25kaXRpb25zKTtcblxuICAgIGlmIChyZXEucHJvamVjdGlvbikge1xuICAgICAgY3Vyc29yID0gY3Vyc29yLnByb2plY3QocmVxLnByb2plY3Rpb24pO1xuICAgIH1cblxuICAgIGlmIChyZXEuc29ydCkge1xuICAgICAgY3Vyc29yID0gY3Vyc29yLnNvcnQocmVxLnNvcnQpO1xuICAgIH1cblxuICAgIGlmIChyZXEubGltaXQpIHtcbiAgICAgIGN1cnNvciA9IGN1cnNvci5saW1pdChyZXEubGltaXQpO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0RvY3VtZW50cyA9IGF3YWl0IGN1cnNvci50b0FycmF5KCk7XG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuXG4gICAgZm9yKGxldCBkb2N1bWVudCBvZiBuZXdEb2N1bWVudHMpIHtcbiAgICAgIGRvY3VtZW50ID0gdGhpcy50b2dnbGVJZChkb2N1bWVudCwgZmFsc2UpO1xuICAgICAgZG9jdW1lbnQgPSBhd2FpdCB0aGlzLmludm9rZUV2ZW50cyhQT1NUX0tFWSwgWydmaW5kJywgJ2ZpbmRNYW55J10sIGRvY3VtZW50KTtcbiAgICAgIHJlc3VsdHMucHVzaChkb2N1bWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICBhc3luYyBjcmVhdGUoZG9jdW1lbnQ6IFQpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uO1xuICAgIGRvY3VtZW50ID0gYXdhaXQgdGhpcy5pbnZva2VFdmVudHMoUFJFX0tFWSwgWydzYXZlJywgJ2NyZWF0ZSddLCBkb2N1bWVudCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgY29sbGVjdGlvbi5pbnNlcnRPbmUoZG9jdW1lbnQpO1xuXG4gICAgbGV0IG5ld0RvY3VtZW50ID0gcmVzLm9wc1swXTtcbiAgICBuZXdEb2N1bWVudCA9IHRoaXMudG9nZ2xlSWQobmV3RG9jdW1lbnQsIGZhbHNlKTtcbiAgICBuZXdEb2N1bWVudCA9IGF3YWl0IHRoaXMuaW52b2tlRXZlbnRzKFBPU1RfS0VZLCBbJ3NhdmUnLCAnY3JlYXRlJ10sIG5ld0RvY3VtZW50KTtcbiAgICByZXR1cm4gbmV3RG9jdW1lbnQ7XG4gIH1cblxuICBhc3luYyBzYXZlKGRvY3VtZW50OiBhbnkpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uO1xuICAgIFxuICAgIC8vIGZsaXAvZmxvcCBpZHNcbiAgICBjb25zdCBpZCA9IG5ldyBPYmplY3RJRChkb2N1bWVudC5pZCk7XG4gICAgZGVsZXRlIGRvY3VtZW50LmlkO1xuICAgIGRlbGV0ZSBkb2N1bWVudC5faWQ7XG5cbiAgICBjb25zdCB1cGRhdGVzID0gYXdhaXQgdGhpcy5pbnZva2VFdmVudHMoUFJFX0tFWSwgWydzYXZlJ10sIGRvY3VtZW50KTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBjb2xsZWN0aW9uLnVwZGF0ZU9uZSh7IF9pZDogaWQgfSwgeyAkc2V0OiB1cGRhdGVzIH0sIHsgdXBzZXJ0OiB0cnVlIH0pO1xuICAgIGxldCBuZXdEb2N1bWVudCA9IGF3YWl0IGNvbGxlY3Rpb24uZmluZE9uZSh7IF9pZDogaWQgfSk7XG5cbiAgICAvLyBwcm9qZWN0IG5ldyBpdGVtc1xuICAgIGlmKG5ld0RvY3VtZW50KSB7XG4gICAgICBPYmplY3QuYXNzaWduKGRvY3VtZW50LCBuZXdEb2N1bWVudCk7XG4gICAgfVxuXG4gICAgLy8gZmxpcCBmbG9wIGlkcyBiYWNrXG4gICAgbmV3RG9jdW1lbnQuaWQgPSBpZC50b1N0cmluZygpO1xuICAgIGRlbGV0ZSBuZXdEb2N1bWVudC5faWQ7XG5cbiAgICBuZXdEb2N1bWVudCA9IGF3YWl0IHRoaXMuaW52b2tlRXZlbnRzKFBPU1RfS0VZLCBbJ3NhdmUnXSwgbmV3RG9jdW1lbnQpO1xuICAgIHJldHVybiBuZXdEb2N1bWVudDtcbiAgfVxuXG4gIGFzeW5jIGZpbmRPbmVCeUlkQW5kVXBkYXRlKGlkOiBzdHJpbmcsIHJlcTogVXBkYXRlQnlJZFJlcXVlc3QpOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kT25lQW5kVXBkYXRlKHtcbiAgICAgIGNvbmRpdGlvbnM6IHsgX2lkOiBuZXcgT2JqZWN0SUQoaWQpIH0sXG4gICAgICB1cGRhdGVzOiByZXEudXBkYXRlcyxcbiAgICAgIHVwc2VydDogcmVxLnVwc2VydFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZUFuZFVwZGF0ZShyZXE6IFVwZGF0ZVJlcXVlc3QpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uO1xuICAgIGNvbnN0IHVwZGF0ZXMgPSBhd2FpdCB0aGlzLmludm9rZUV2ZW50cyhQUkVfS0VZLCBbJ3VwZGF0ZScsICd1cGRhdGVPbmUnXSwgcmVxLnVwZGF0ZXMpO1xuICAgIFxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNvbGxlY3Rpb25cbiAgICAgIC5maW5kT25lQW5kVXBkYXRlKHJlcS5jb25kaXRpb25zLCB1cGRhdGVzLCB7IHVwc2VydDogcmVxLnVwc2VydCwgcmV0dXJuTmV3RG9jdW1lbnQ6IHRydWUgfSk7XG5cbiAgICBsZXQgZG9jdW1lbnQgPSByZXMudmFsdWU7XG4gICAgZG9jdW1lbnQgPSB0aGlzLnRvZ2dsZUlkKGRvY3VtZW50LCBmYWxzZSk7XG4gICAgZG9jdW1lbnQgPSBhd2FpdCB0aGlzLmludm9rZUV2ZW50cyhQT1NUX0tFWSwgWyd1cGRhdGUnLCAndXBkYXRlT25lJ10sIGRvY3VtZW50KTtcbiAgICByZXR1cm4gZG9jdW1lbnQ7XG4gIH1cblxuICBhc3luYyBkZWxldGVPbmVCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZU9uZSh7XG4gICAgICBfaWQ6IG5ldyBPYmplY3RJRChpZClcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU9uZShjb25kaXRpb25zOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb247XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uZGVsZXRlT25lKGNvbmRpdGlvbnMpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlTWFueShjb25kaXRpb25zOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb247XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uZGVsZXRlTWFueShjb25kaXRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29sbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxlY3Rpb24gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbihhc3luYyAoZGIpID0+IHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGRiLmNvbGxlY3Rpb24odGhpcy5vcHRpb25zLm5hbWUsIHtcbiAgICAgICAgICBzaXplOiB0aGlzLm9wdGlvbnMuc2l6ZSxcbiAgICAgICAgICBjYXBwZWQ6IHRoaXMub3B0aW9ucy5jYXBwZWQsXG4gICAgICAgICAgbWF4OiB0aGlzLm9wdGlvbnMubWF4XG4gICAgICAgIH0pO1xuICAgICAgICByZXNvbHZlKGNvbGxlY3Rpb24pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUlkKGRvY3VtZW50OiBhbnksIHJlcGxhY2U6IGJvb2xlYW4pOiBUIHtcbiAgICBpZihkb2N1bWVudCAmJiAoZG9jdW1lbnQuaWQgfHwgZG9jdW1lbnQuX2lkKSkge1xuICAgICAgaWYocmVwbGFjZSkge1xuICAgICAgICBkb2N1bWVudC5faWQgPSBuZXcgT2JqZWN0SUQoZG9jdW1lbnQuaWQpO1xuICAgICAgICBkZWxldGUgZG9jdW1lbnQuaWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2N1bWVudC5pZCA9IGRvY3VtZW50Ll9pZC50b1N0cmluZygpO1xuICAgICAgICBkZWxldGUgZG9jdW1lbnQuX2lkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZG9jdW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGludm9rZUV2ZW50cyh0eXBlOiBzdHJpbmcsIGZuczogc3RyaW5nW10sIGRvY3VtZW50OiBhbnkpOiBQcm9taXNlPFQ+IHtcbiAgICBmb3IoY29uc3QgZm4gb2YgZm5zKSB7XG4gICAgICBjb25zdCBldmVudHMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKGAke3R5cGV9XyR7Zm59YCwgdGhpcykgfHwgW107XG4gICAgICBmb3IoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICAgIGRvY3VtZW50ID0gZXZlbnQuYmluZCh0aGlzKShkb2N1bWVudCk7XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGRvY3VtZW50ID0gYXdhaXQgZG9jdW1lbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGRvY3VtZW50O1xuICB9XG5cbn1cbiJdfQ==
{
"name": "mongtype",
"version": "1.3.1",
"version": "1.4.0",
"description": "Mongo Repository for Node written in TypeScript",

@@ -34,2 +34,3 @@ "main": "dist/index.js",

"injection-js": "^2.0.1",
"inversify": "^4.3.0",
"mongodb": "^2.2.25",

@@ -36,0 +37,0 @@ "reflect-metadata": "^0.1.10",

import { UpdateWriteOpResult, ObjectID, MongoClient, Db, Collection } from 'mongodb';
import { Injectable } from 'injection-js';
import * as retry from 'retry';

@@ -7,3 +6,2 @@ import { EventEmitter } from 'events';

@Injectable()
export class Database extends EventEmitter {

@@ -10,0 +8,0 @@

@@ -7,5 +7,3 @@ import 'reflect-metadata';

import { Database } from './db';
import { Injectable } from 'injection-js';
@Injectable()
export class MongoRepository<T> {

@@ -12,0 +10,0 @@

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc