New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@uql/mongo

Package Overview
Dependencies
Maintainers
1
Versions
113
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uql/mongo - npm Package Compare versions

Comparing version 0.4.59 to 0.4.60

7

mongodbQuerier.d.ts
import { MongoClient } from 'mongodb';
import { Query, QueryOne, Type, QueryCriteria, QueryOptions, QuerySearch, IdValue } from '@uql/core/type';
import { Query, QueryOne, Type, QueryCriteria, QueryOptions, QuerySearch, IdValue, Logger } from '@uql/core/type';
import { BaseQuerier } from '@uql/core/querier';
import { MongoDialect } from './mongoDialect';
export declare class MongodbQuerier extends BaseQuerier {
readonly dialect: MongoDialect;
readonly conn: MongoClient;
readonly dialect: MongoDialect;
readonly logger?: Logger;
private session;
constructor(conn: MongoClient, dialect?: MongoDialect);
constructor(dialect: MongoDialect, conn: MongoClient, logger?: Logger);
count<E>(entity: Type<E>, qm?: QuerySearch<E>): Promise<number>;

@@ -11,0 +12,0 @@ findOneById<E>(entity: Type<E>, id: IdValue<E>, qo: QueryOne<E>): Promise<E>;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MongodbQuerier = void 0;
const core_1 = require("@uql/core");
const querier_1 = require("@uql/core/querier");
const decorator_1 = require("@uql/core/entity/decorator");
const util_1 = require("@uql/core/util");
const mongoDialect_1 = require("./mongoDialect");
class MongodbQuerier extends querier_1.BaseQuerier {
constructor(conn, dialect = new mongoDialect_1.MongoDialect()) {
constructor(dialect, conn, logger) {
super();
this.dialect = dialect;
this.conn = conn;
this.dialect = dialect;
this.logger = logger;
}
count(entity, qm = {}) {
var _a;
const filter = this.dialect.filter(entity, qm.$filter);
(0, core_1.log)('count', entity.name, filter);
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.call(this, 'count', entity.name, filter);
return this.collection(entity).countDocuments(filter, {

@@ -26,2 +26,3 @@ session: this.session,

async findMany(entity, qm) {
var _a;
const meta = (0, decorator_1.getMeta)(entity);

@@ -32,4 +33,4 @@ let documents;

const pipeline = this.dialect.aggregationPipeline(entity, qm);
if ((0, core_1.isLogging)()) {
(0, core_1.log)('findMany', entity.name, JSON.stringify(pipeline, null, 2));
if (this.logger) {
this.logger('findMany', entity.name, JSON.stringify(pipeline, null, 2));
}

@@ -60,3 +61,3 @@ documents = await this.collection(entity).aggregate(pipeline, { session: this.session }).toArray();

}
(0, core_1.log)('findMany', entity.name, qm);
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.call(this, 'findMany', entity.name, qm);
documents = await cursor.toArray();

@@ -68,2 +69,3 @@ documents = this.dialect.normalizeIds(meta, documents);

async insertMany(entity, payload) {
var _a;
if (!payload.length) {

@@ -76,3 +78,3 @@ return;

const persistables = (0, util_1.getPersistables)(meta, payload, 'onInsert');
(0, core_1.log)('insertMany', entity.name, persistables);
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.call(this, 'insertMany', entity.name, persistables);
const { insertedIds } = await this.collection(entity).insertMany(persistables, { session: this.session });

@@ -87,2 +89,3 @@ const ids = Object.values(insertedIds);

async updateMany(entity, qm, payload) {
var _a;
payload = (0, util_1.clone)(payload);

@@ -93,3 +96,3 @@ const meta = (0, decorator_1.getMeta)(entity);

const update = { $set: persistable };
(0, core_1.log)('updateMany', entity.name, filter, update);
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.call(this, 'updateMany', entity.name, filter, update);
const { matchedCount } = await this.collection(entity).updateMany(filter, update, {

@@ -102,5 +105,6 @@ session: this.session,

async deleteMany(entity, qm, opts = {}) {
var _a;
const meta = (0, decorator_1.getMeta)(entity);
const filter = this.dialect.filter(entity, qm.$filter);
(0, core_1.log)('deleteMany', entity.name, filter, opts);
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.call(this, 'deleteMany', entity.name, filter, opts);
const founds = await this.collection(entity)

@@ -141,7 +145,7 @@ .find(filter, {

async beginTransaction() {
var _a;
var _a, _b;
if ((_a = this.session) === null || _a === void 0 ? void 0 : _a.inTransaction()) {
throw new TypeError('pending transaction');
}
(0, core_1.log)('beginTransaction');
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.call(this, 'beginTransaction');
this.session = this.conn.startSession();

@@ -151,15 +155,15 @@ this.session.startTransaction();

async commitTransaction() {
var _a;
var _a, _b;
if (!((_a = this.session) === null || _a === void 0 ? void 0 : _a.inTransaction())) {
throw new TypeError('not a pending transaction');
}
(0, core_1.log)('commitTransaction');
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.call(this, 'commitTransaction');
await this.session.commitTransaction();
}
async rollbackTransaction() {
var _a;
var _a, _b;
if (!((_a = this.session) === null || _a === void 0 ? void 0 : _a.inTransaction())) {
throw new TypeError('not a pending transaction');
}
(0, core_1.log)('rollbackTransaction');
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.call(this, 'rollbackTransaction');
await this.session.abortTransaction();

@@ -176,2 +180,2 @@ }

exports.MongodbQuerier = MongodbQuerier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW9uZ29kYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0NBQTJDO0FBRTNDLCtDQUFnRDtBQUNoRCwwREFBcUQ7QUFDckQseUNBQXdHO0FBRXhHLGlEQUE4QztBQUU5QyxNQUFhLGNBQWUsU0FBUSxxQkFBVztJQUc3QyxZQUFxQixJQUFpQixFQUFXLFVBQVUsSUFBSSwyQkFBWSxFQUFFO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFcsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFXLFlBQU8sR0FBUCxPQUFPLENBQXFCO0lBRTdFLENBQUM7SUFFUSxLQUFLLENBQUksTUFBZSxFQUFFLEtBQXFCLEVBQUU7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxJQUFBLFVBQUcsRUFBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRTtZQUNwRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVcsQ0FBSSxNQUFlLEVBQUUsRUFBYyxFQUFFLEVBQWU7UUFDdEUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFUSxLQUFLLENBQUMsUUFBUSxDQUFJLE1BQWUsRUFBRSxFQUFZO1FBQ3RELE1BQU0sSUFBSSxHQUFHLElBQUEsbUJBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQztRQUU3QixJQUFJLFNBQWMs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QUFPLDBDQUFFLGFBQWEsRUFBRSxDQUFBLEVBQUU7WUFDbEMsTUFBTSxJQUFJLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsSUFBQSxVQUFHLEVBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFlOztRQUNwQyxJQUFJLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsYUFBYSxFQUFFLEVBQUU7WUFDakMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUF6TEQsd0NBeUxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9uZ29DbGllbnQsIENsaWVudFNlc3Npb24gfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IGlzTG9nZ2luZywgbG9nIH0gZnJvbSAnQHVxbC9jb3JlJztcbmltcG9ydCB7IFF1ZXJ5LCBRdWVyeU9uZSwgVHlwZSwgUXVlcnlDcml0ZXJpYSwgUXVlcnlPcHRpb25zLCBRdWVyeVNlYXJjaCwgSWRWYWx1ZSwgRmllbGRWYWx1ZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IEJhc2VRdWVyaWVyIH0gZnJvbSAnQHVxbC9jb3JlL3F1ZXJpZXInO1xuaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJ0B1cWwvY29yZS9lbnRpdHkvZGVjb3JhdG9yJztcbmltcG9ydCB7IGNsb25lLCBnZXRQZXJzaXN0YWJsZSwgZ2V0UGVyc2lzdGFibGVzLCBoYXNLZXlzLCBpc1Byb2plY3RpbmdSZWxhdGlvbnMgfSBmcm9tICdAdXFsL2NvcmUvdXRpbCc7XG5cbmltcG9ydCB7IE1vbmdvRGlhbGVjdCB9IGZyb20gJy4vbW9uZ29EaWFsZWN0JztcblxuZXhwb3J0IGNsYXNzIE1vbmdvZGJRdWVyaWVyIGV4dGVuZHMgQmFzZVF1ZXJpZXIge1xuICBwcml2YXRlIHNlc3Npb246IENsaWVudFNlc3Npb247XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubjogTW9uZ29DbGllbnQsIHJlYWRvbmx5IGRpYWxlY3QgPSBuZXcgTW9uZ29EaWFsZWN0KCkpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4gPSB7fSkge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5maWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICBsb2coJ2NvdW50JywgZW50aXR5Lm5hbWUsIGZpbHRlcik7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmNvdW50RG9jdW1lbnRzKGZpbHRlciwge1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgZmluZE9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcW86IFF1ZXJ5T25lPEU+KSB7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZShlbnRpdHksIHsgLi4ucW8sICRmaWx0ZXI6IGlkIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuXG4gICAgbGV0IGRvY3VtZW50czogRVtdO1xuICAgIGNvbnN0IGhhc1Byb2plY3RSZWxhdGlvbnMgPSBpc1Byb2plY3RpbmdSZWxhdGlvbnMobWV0YSwgcW0uJHByb2plY3QpO1xuXG4gICAgaWYgKGhhc1Byb2plY3RSZWxhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHBpcGVsaW5lID0gdGhpcy5kaWFsZWN0LmFnZ3JlZ2F0aW9uUGlwZWxpbmUoZW50aXR5LCBxbSk7XG4gICAgICBpZiAoaXNMb2dnaW5nKCkpIHtcbiAgICAgICAgbG9nKCdmaW5kTWFueScsIGVudGl0eS5uYW1lLCBKU09OLnN0cmluZ2lmeShwaXBlbGluZSwgbnVsbCwgMikpO1xuICAgICAgfVxuICAgICAgZG9jdW1lbnRzID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuYWdncmVnYXRlPEU+KHBpcGVsaW5lLCB7IHNlc3Npb246IHRoaXMuc2Vzc2lvbiB9KS50b0FycmF5KCk7XG4gICAgICBkb2N1bWVudHMgPSB0aGlzLmRpYWxlY3Qubm9ybWFsaXplSWRzKG1ldGEsIGRvY3VtZW50cyk7XG4gICAgICBhd2FpdCB0aGlzLmZpbmRUb01hbnlSZWxhdGlvbnMoZW50aXR5LCBkb2N1bWVudHMsIHFtLiRwcm9qZWN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY3Vyc29yID0gdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuZmluZDxFPih7fSwgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSk7XG5cbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5maWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICAgIGlmIChoYXNLZXlzKGZpbHRlcikpIHtcbiAgICAgICAgY3Vyc29yLmZpbHRlcihmaWx0ZXIpO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJvamVjdCA9IHRoaXMuZGlhbGVjdC5wcm9qZWN0KGVudGl0eSwgcW0uJHByb2plY3QpO1xuICAgICAgaWYgKGhhc0tleXMocHJvamVjdCkpIHtcbiAgICAgICAgY3Vyc29yLnByb2plY3QocHJvamVjdCk7XG4gICAgICB9XG4gICAgICBjb25zdCBzb3J0ID0gdGhpcy5kaWFsZWN0LnNvcnQoZW50aXR5LCBxbS4kc29ydCk7XG4gICAgICBpZiAoaGFzS2V5cyhzb3J0KSkge1xuICAgICAgICBjdXJzb3Iuc29ydChzb3J0KTtcbiAgICAgIH1cbiAgICAgIGlmIChxbS4kc2tpcCkge1xuICAgICAgICBjdXJzb3Iuc2tpcChxbS4kc2tpcCk7XG4gICAgICB9XG4gICAgICBpZiAocW0uJGxpbWl0KSB7XG4gICAgICAgIGN1cnNvci5saW1pdChxbS4kbGltaXQpO1xuICAgICAgfVxuXG4gICAgICBsb2coJ2ZpbmRNYW55JywgZW50aXR5Lm5hbWUsIHFtKTtcblxuICAgICAgZG9jdW1lbnRzID0gYXdhaXQgY3Vyc29yLnRvQXJyYXkoKTtcbiAgICAgIGRvY3VtZW50cyA9IHRoaXMuZGlhbGVjdC5ub3JtYWxpemVJZHMobWV0YSwgZG9jdW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG9jdW1lbnRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSkge1xuICAgIGlmICghcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG5cbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHBheWxvYWRzID0gQXJyYXkuaXNBcnJheShwYXlsb2FkKSA/IHBheWxvYWQgOiBbcGF5bG9hZF07XG4gICAgY29uc3QgcGVyc2lzdGFibGVzID0gZ2V0UGVyc2lzdGFibGVzKG1ldGEsIHBheWxvYWQsICdvbkluc2VydCcpO1xuXG4gICAgbG9nKCdpbnNlcnRNYW55JywgZW50aXR5Lm5hbWUsIHBlcnNpc3RhYmxlcyk7XG5cbiAgICBjb25zdCB7IGluc2VydGVkSWRzIH0gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5pbnNlcnRNYW55KHBlcnNpc3RhYmxlcywgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSk7XG5cbiAgICBjb25zdCBpZHM6IElkVmFsdWU8RT5bXSA9IE9iamVjdC52YWx1ZXMoaW5zZXJ0ZWRJZHMpO1xuXG4gICAgZm9yIChjb25zdCBbaW5kZXgsIGl0XSBvZiBwYXlsb2Fkcy5lbnRyaWVzKCkpIHtcbiAgICAgIGl0W21ldGEuaWRdID0gaWRzW2luZGV4XSBhcyBGaWVsZFZhbHVlPEU+O1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuaW5zZXJ0UmVsYXRpb25zKGVudGl0eSwgcGF5bG9hZHMpO1xuXG4gICAgcmV0dXJuIGlkcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHBheWxvYWQgPSBjbG9uZShwYXlsb2FkKTtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHBlcnNpc3RhYmxlID0gZ2V0UGVyc2lzdGFibGUobWV0YSwgcGF5bG9hZCwgJ29uVXBkYXRlJyk7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIGNvbnN0IHVwZGF0ZSA9IHsgJHNldDogcGVyc2lzdGFibGUgfTtcblxuICAgIGxvZygndXBkYXRlTWFueScsIGVudGl0eS5uYW1lLCBmaWx0ZXIsIHVwZGF0ZSk7XG5cbiAgICBjb25zdCB7IG1hdGNoZWRDb3VudCB9ID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkudXBkYXRlTWFueShmaWx0ZXIsIHVwZGF0ZSwge1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy51cGRhdGVSZWxhdGlvbnMoZW50aXR5LCBxbSwgcGF5bG9hZCk7XG5cbiAgICByZXR1cm4gbWF0Y2hlZENvdW50O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzOiBRdWVyeU9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIGxvZygnZGVsZXRlTWFueScsIGVudGl0eS5uYW1lLCBmaWx0ZXIsIG9wdHMpO1xuICAgIGNvbnN0IGZvdW5kczogRVtdID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSlcbiAgICAgIC5maW5kKGZpbHRlciwge1xuICAgICAgICBwcm9qZWN0aW9uOiB7IF9pZDogdHJ1ZSB9LFxuICAgICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgICB9KVxuICAgICAgLnRvQXJyYXkoKTtcbiAgICBpZiAoIWZvdW5kcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjb25zdCBpZHM6IElkVmFsdWU8RT5bXSA9IHRoaXMuZGlhbGVjdC5ub3JtYWxpemVJZHMobWV0YSwgZm91bmRzKS5tYXAoKGZvdW5kKSA9PiBmb3VuZFttZXRhLmlkXSk7XG4gICAgbGV0IGNoYW5nZXM6IG51bWJlcjtcbiAgICBpZiAobWV0YS5zb2Z0RGVsZXRlS2V5ICYmICFvcHRzLnNvZnREZWxldGUpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVJlc3VsdCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLnVwZGF0ZU1hbnkoXG4gICAgICAgIHsgX2lkOiB7ICRpbjogaWRzIH0gfSxcbiAgICAgICAgeyAkc2V0OiB7IFttZXRhLnNvZnREZWxldGVLZXldOiBtZXRhLmZpZWxkc1ttZXRhLnNvZnREZWxldGVLZXldLm9uRGVsZXRlKCkgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgY2hhbmdlcyA9IHVwZGF0ZVJlc3VsdC5tYXRjaGVkQ291bnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRlbGV0ZVJlc3VsdCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmRlbGV0ZU1hbnkoXG4gICAgICAgIHsgX2lkOiB7ICRpbjogaWRzIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGNoYW5nZXMgPSBkZWxldGVSZXN1bHQuZGVsZXRlZENvdW50O1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVJlbGF0aW9ucyhlbnRpdHksIGlkcywgb3B0cyk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaGFzT3BlblRyYW5zYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb24/LmluVHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIGNvbGxlY3Rpb248RT4oZW50aXR5OiBUeXBlPEU+KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICByZXR1cm4gdGhpcy5jb25uLmRiKCkuY29sbGVjdGlvbihtZXRhLm5hbWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYmVnaW5UcmFuc2FjdGlvbigpIHtcbiAgICBpZiAodGhpcy5zZXNzaW9uPy5pblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgbG9nKCdiZWdpblRyYW5zYWN0aW9uJyk7XG4gICAgdGhpcy5zZXNzaW9uID0gdGhpcy5jb25uLnN0YXJ0U2Vzc2lvbigpO1xuICAgIHRoaXMuc2Vzc2lvbi5zdGFydFRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb21taXRUcmFuc2FjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbj8uaW5UcmFuc2FjdGlvbigpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdub3QgYSBwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGxvZygnY29tbWl0VHJhbnNhY3Rpb24nKTtcbiAgICBhd2FpdCB0aGlzLnNlc3Npb24uY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJvbGxiYWNrVHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLnNlc3Npb24/LmluVHJhbnNhY3Rpb24oKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBsb2coJ3JvbGxiYWNrVHJhbnNhY3Rpb24nKTtcbiAgICBhd2FpdCB0aGlzLnNlc3Npb24uYWJvcnRUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVsZWFzZShmb3JjZT86IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5zZXNzaW9uPy5pblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5jb25uLmNsb3NlKGZvcmNlKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW9uZ29kYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0NBQWdEO0FBQ2hELDBEQUFxRDtBQUNyRCx5Q0FBd0c7QUFJeEcsTUFBYSxjQUFlLFNBQVEscUJBQVc7SUFHN0MsWUFBcUIsT0FBcUIsRUFBVyxJQUFpQixFQUFXLE1BQWU7UUFDOUYsS0FBSyxFQUFFLENBQUM7UUFEVyxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFXLFdBQU0sR0FBTixNQUFNLENBQVM7SUFFaEcsQ0FBQztJQUVRLEtBQUssQ0FBSSxNQUFlLEVBQUUsS0FBcUIsRUFBRTs7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxNQUFBLElBQUksQ0FBQyxNQUFNLCtDQUFYLElBQUksRUFBVSxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRTtZQUNwRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVcsQ0FBSSxNQUFlLEVBQUUsRUFBYyxFQUFFLEVBQWU7UUFDdEUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFUSxLQUFLLENBQUMsUUFBUSxDQUFJLE1BQWUsRUFBRSxFQUFZOztRQUN0RCxNQUFNLElBQUksR0FBRyxJQUFBLG1CQUFPLEVBQUMsTUFBTSxDQUFDLENBQUM7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QVgsSUFBSSxFQUFVLG1CQUFtQixDQUFDLENBQUM7UUFDbkMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVRLEtBQUssQ0FBQyxtQkFBbUI7O1FBQ2hDLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsYUFBYSxFQUFFLENBQUEsRUFBRTtZQUNsQyxNQUFNLElBQUksU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDbEQ7UUFDRCxNQUFBLElBQUksQ0FBQyxNQUFNLCtDQUFYLElBQUksRUFBVSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFUSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQWU7O1FBQ3BDLElBQUksTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxhQUFhLEVBQUUsRUFBRTtZQUNqQyxNQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDNUM7UUFDRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQXpMRCx3Q0F5TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb25nb0NsaWVudCwgQ2xpZW50U2Vzc2lvbiB9IGZyb20gJ21vbmdvZGInO1xuaW1wb3J0IHsgUXVlcnksIFF1ZXJ5T25lLCBUeXBlLCBRdWVyeUNyaXRlcmlhLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5U2VhcmNoLCBJZFZhbHVlLCBGaWVsZFZhbHVlLCBMb2dnZXIgfSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5pbXBvcnQgeyBCYXNlUXVlcmllciB9IGZyb20gJ0B1cWwvY29yZS9xdWVyaWVyJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICdAdXFsL2NvcmUvZW50aXR5L2RlY29yYXRvcic7XG5pbXBvcnQgeyBjbG9uZSwgZ2V0UGVyc2lzdGFibGUsIGdldFBlcnNpc3RhYmxlcywgaGFzS2V5cywgaXNQcm9qZWN0aW5nUmVsYXRpb25zIH0gZnJvbSAnQHVxbC9jb3JlL3V0aWwnO1xuXG5pbXBvcnQgeyBNb25nb0RpYWxlY3QgfSBmcm9tICcuL21vbmdvRGlhbGVjdCc7XG5cbmV4cG9ydCBjbGFzcyBNb25nb2RiUXVlcmllciBleHRlbmRzIEJhc2VRdWVyaWVyIHtcbiAgcHJpdmF0ZSBzZXNzaW9uOiBDbGllbnRTZXNzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRpYWxlY3Q6IE1vbmdvRGlhbGVjdCwgcmVhZG9ubHkgY29ubjogTW9uZ29DbGllbnQsIHJlYWRvbmx5IGxvZ2dlcj86IExvZ2dlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeVNlYXJjaDxFPiA9IHt9KSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIHRoaXMubG9nZ2VyPy4oJ2NvdW50JywgZW50aXR5Lm5hbWUsIGZpbHRlcik7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmNvdW50RG9jdW1lbnRzKGZpbHRlciwge1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgZmluZE9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcW86IFF1ZXJ5T25lPEU+KSB7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZShlbnRpdHksIHsgLi4ucW8sICRmaWx0ZXI6IGlkIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuXG4gICAgbGV0IGRvY3VtZW50czogRVtdO1xuICAgIGNvbnN0IGhhc1Byb2plY3RSZWxhdGlvbnMgPSBpc1Byb2plY3RpbmdSZWxhdGlvbnMobWV0YSwgcW0uJHByb2plY3QpO1xuXG4gICAgaWYgKGhhc1Byb2plY3RSZWxhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHBpcGVsaW5lID0gdGhpcy5kaWFsZWN0LmFnZ3JlZ2F0aW9uUGlwZWxpbmUoZW50aXR5LCBxbSk7XG4gICAgICBpZiAodGhpcy5sb2dnZXIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIoJ2ZpbmRNYW55JywgZW50aXR5Lm5hbWUsIEpTT04uc3RyaW5naWZ5KHBpcGVsaW5lLCBudWxsLCAyKSk7XG4gICAgICB9XG4gICAgICBkb2N1bWVudHMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5hZ2dyZWdhdGU8RT4ocGlwZWxpbmUsIHsgc2Vzc2lvbjogdGhpcy5zZXNzaW9uIH0pLnRvQXJyYXkoKTtcbiAgICAgIGRvY3VtZW50cyA9IHRoaXMuZGlhbGVjdC5ub3JtYWxpemVJZHMobWV0YSwgZG9jdW1lbnRzKTtcbiAgICAgIGF3YWl0IHRoaXMuZmluZFRvTWFueVJlbGF0aW9ucyhlbnRpdHksIGRvY3VtZW50cywgcW0uJHByb2plY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjdXJzb3IgPSB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5maW5kPEU+KHt9LCB7IHNlc3Npb246IHRoaXMuc2Vzc2lvbiB9KTtcblxuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgICAgaWYgKGhhc0tleXMoZmlsdGVyKSkge1xuICAgICAgICBjdXJzb3IuZmlsdGVyKGZpbHRlcik7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9qZWN0ID0gdGhpcy5kaWFsZWN0LnByb2plY3QoZW50aXR5LCBxbS4kcHJvamVjdCk7XG4gICAgICBpZiAoaGFzS2V5cyhwcm9qZWN0KSkge1xuICAgICAgICBjdXJzb3IucHJvamVjdChwcm9qZWN0KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLmRpYWxlY3Quc29ydChlbnRpdHksIHFtLiRzb3J0KTtcbiAgICAgIGlmIChoYXNLZXlzKHNvcnQpKSB7XG4gICAgICAgIGN1cnNvci5zb3J0KHNvcnQpO1xuICAgICAgfVxuICAgICAgaWYgKHFtLiRza2lwKSB7XG4gICAgICAgIGN1cnNvci5za2lwKHFtLiRza2lwKTtcbiAgICAgIH1cbiAgICAgIGlmIChxbS4kbGltaXQpIHtcbiAgICAgICAgY3Vyc29yLmxpbWl0KHFtLiRsaW1pdCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9nZ2VyPy4oJ2ZpbmRNYW55JywgZW50aXR5Lm5hbWUsIHFtKTtcblxuICAgICAgZG9jdW1lbnRzID0gYXdhaXQgY3Vyc29yLnRvQXJyYXkoKTtcbiAgICAgIGRvY3VtZW50cyA9IHRoaXMuZGlhbGVjdC5ub3JtYWxpemVJZHMobWV0YSwgZG9jdW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG9jdW1lbnRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSkge1xuICAgIGlmICghcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG5cbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHBheWxvYWRzID0gQXJyYXkuaXNBcnJheShwYXlsb2FkKSA/IHBheWxvYWQgOiBbcGF5bG9hZF07XG4gICAgY29uc3QgcGVyc2lzdGFibGVzID0gZ2V0UGVyc2lzdGFibGVzKG1ldGEsIHBheWxvYWQsICdvbkluc2VydCcpO1xuXG4gICAgdGhpcy5sb2dnZXI/LignaW5zZXJ0TWFueScsIGVudGl0eS5uYW1lLCBwZXJzaXN0YWJsZXMpO1xuXG4gICAgY29uc3QgeyBpbnNlcnRlZElkcyB9ID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuaW5zZXJ0TWFueShwZXJzaXN0YWJsZXMsIHsgc2Vzc2lvbjogdGhpcy5zZXNzaW9uIH0pO1xuXG4gICAgY29uc3QgaWRzOiBJZFZhbHVlPEU+W10gPSBPYmplY3QudmFsdWVzKGluc2VydGVkSWRzKTtcblxuICAgIGZvciAoY29uc3QgW2luZGV4LCBpdF0gb2YgcGF5bG9hZHMuZW50cmllcygpKSB7XG4gICAgICBpdFttZXRhLmlkXSA9IGlkc1tpbmRleF0gYXMgRmllbGRWYWx1ZTxFPjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmluc2VydFJlbGF0aW9ucyhlbnRpdHksIHBheWxvYWRzKTtcblxuICAgIHJldHVybiBpZHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBwZXJzaXN0YWJsZSA9IGdldFBlcnNpc3RhYmxlKG1ldGEsIHBheWxvYWQsICdvblVwZGF0ZScpO1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5maWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICBjb25zdCB1cGRhdGUgPSB7ICRzZXQ6IHBlcnNpc3RhYmxlIH07XG5cbiAgICB0aGlzLmxvZ2dlcj8uKCd1cGRhdGVNYW55JywgZW50aXR5Lm5hbWUsIGZpbHRlciwgdXBkYXRlKTtcblxuICAgIGNvbnN0IHsgbWF0Y2hlZENvdW50IH0gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS51cGRhdGVNYW55KGZpbHRlciwgdXBkYXRlLCB7XG4gICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlbGF0aW9ucyhlbnRpdHksIHFtLCBwYXlsb2FkKTtcblxuICAgIHJldHVybiBtYXRjaGVkQ291bnQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIG9wdHM6IFF1ZXJ5T3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuZmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgdGhpcy5sb2dnZXI/LignZGVsZXRlTWFueScsIGVudGl0eS5uYW1lLCBmaWx0ZXIsIG9wdHMpO1xuICAgIGNvbnN0IGZvdW5kczogRVtdID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSlcbiAgICAgIC5maW5kKGZpbHRlciwge1xuICAgICAgICBwcm9qZWN0aW9uOiB7IF9pZDogdHJ1ZSB9LFxuICAgICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgICB9KVxuICAgICAgLnRvQXJyYXkoKTtcbiAgICBpZiAoIWZvdW5kcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjb25zdCBpZHM6IElkVmFsdWU8RT5bXSA9IHRoaXMuZGlhbGVjdC5ub3JtYWxpemVJZHMobWV0YSwgZm91bmRzKS5tYXAoKGZvdW5kKSA9PiBmb3VuZFttZXRhLmlkXSk7XG4gICAgbGV0IGNoYW5nZXM6IG51bWJlcjtcbiAgICBpZiAobWV0YS5zb2Z0RGVsZXRlS2V5ICYmICFvcHRzLnNvZnREZWxldGUpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVJlc3VsdCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLnVwZGF0ZU1hbnkoXG4gICAgICAgIHsgX2lkOiB7ICRpbjogaWRzIH0gfSxcbiAgICAgICAgeyAkc2V0OiB7IFttZXRhLnNvZnREZWxldGVLZXldOiBtZXRhLmZpZWxkc1ttZXRhLnNvZnREZWxldGVLZXldLm9uRGVsZXRlKCkgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgY2hhbmdlcyA9IHVwZGF0ZVJlc3VsdC5tYXRjaGVkQ291bnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRlbGV0ZVJlc3VsdCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmRlbGV0ZU1hbnkoXG4gICAgICAgIHsgX2lkOiB7ICRpbjogaWRzIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGNoYW5nZXMgPSBkZWxldGVSZXN1bHQuZGVsZXRlZENvdW50O1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVJlbGF0aW9ucyhlbnRpdHksIGlkcywgb3B0cyk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaGFzT3BlblRyYW5zYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb24/LmluVHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIGNvbGxlY3Rpb248RT4oZW50aXR5OiBUeXBlPEU+KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICByZXR1cm4gdGhpcy5jb25uLmRiKCkuY29sbGVjdGlvbihtZXRhLm5hbWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYmVnaW5UcmFuc2FjdGlvbigpIHtcbiAgICBpZiAodGhpcy5zZXNzaW9uPy5pblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXI/LignYmVnaW5UcmFuc2FjdGlvbicpO1xuICAgIHRoaXMuc2Vzc2lvbiA9IHRoaXMuY29ubi5zdGFydFNlc3Npb24oKTtcbiAgICB0aGlzLnNlc3Npb24uc3RhcnRUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY29tbWl0VHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLnNlc3Npb24/LmluVHJhbnNhY3Rpb24oKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlcj8uKCdjb21taXRUcmFuc2FjdGlvbicpO1xuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5jb21taXRUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcm9sbGJhY2tUcmFuc2FjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbj8uaW5UcmFuc2FjdGlvbigpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdub3QgYSBwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyPy4oJ3JvbGxiYWNrVHJhbnNhY3Rpb24nKTtcbiAgICBhd2FpdCB0aGlzLnNlc3Npb24uYWJvcnRUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVsZWFzZShmb3JjZT86IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5zZXNzaW9uPy5pblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5jb25uLmNsb3NlKGZvcmNlKTtcbiAgfVxufVxuIl19
import { MongoClientOptions } from 'mongodb';
import { QuerierPool } from '@uql/core/type';
import { Logger, QuerierPool } from '@uql/core/type';
import { MongodbQuerier } from './mongodbQuerier';

@@ -7,6 +7,7 @@ export declare class MongodbQuerierPool implements QuerierPool<MongodbQuerier> {

readonly options?: MongoClientOptions;
readonly logger?: Logger;
private querier;
constructor(uri: string, options?: MongoClientOptions);
constructor(uri: string, options?: MongoClientOptions, logger?: Logger);
getQuerier(): Promise<MongodbQuerier>;
end(): Promise<void>;
}

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

const mongodbQuerier_1 = require("./mongodbQuerier");
const mongoDialect_1 = require("./mongoDialect");
class MongodbQuerierPool {
constructor(uri, options) {
constructor(uri, options, logger) {
this.uri = uri;
this.options = options;
this.logger = logger;
}

@@ -15,3 +17,3 @@ async getQuerier() {

const conn = await (0, mongodb_1.connect)(this.uri, this.options);
this.querier = new mongodbQuerier_1.MongodbQuerier(conn);
this.querier = new mongodbQuerier_1.MongodbQuerier(new mongoDialect_1.MongoDialect(), conn, this.logger);
}

@@ -26,2 +28,2 @@ return this.querier;

exports.MongodbQuerierPool = MongodbQuerierPool;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXJQb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vbmdvZGJRdWVyaWVyUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBc0Q7QUFFdEQscURBQWtEO0FBRWxELE1BQWEsa0JBQWtCO0lBRzdCLFlBQXFCLEdBQVcsRUFBVyxPQUE0QjtRQUFsRCxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQVcsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7SUFBRyxDQUFDO0lBRTNFLEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNyRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsaUJBQU8sRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksK0JBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFqQkQsZ0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29ubmVjdCwgTW9uZ29DbGllbnRPcHRpb25zIH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQgeyBRdWVyaWVyUG9vbCB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IE1vbmdvZGJRdWVyaWVyIH0gZnJvbSAnLi9tb25nb2RiUXVlcmllcic7XG5cbmV4cG9ydCBjbGFzcyBNb25nb2RiUXVlcmllclBvb2wgaW1wbGVtZW50cyBRdWVyaWVyUG9vbDxNb25nb2RiUXVlcmllcj4ge1xuICBwcml2YXRlIHF1ZXJpZXI6IE1vbmdvZGJRdWVyaWVyO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHVyaTogc3RyaW5nLCByZWFkb25seSBvcHRpb25zPzogTW9uZ29DbGllbnRPcHRpb25zKSB7fVxuXG4gIGFzeW5jIGdldFF1ZXJpZXIoKSB7XG4gICAgaWYgKCF0aGlzLnF1ZXJpZXIgfHwgIXRoaXMucXVlcmllci5jb25uLmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgIGNvbnN0IGNvbm4gPSBhd2FpdCBjb25uZWN0KHRoaXMudXJpLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgdGhpcy5xdWVyaWVyID0gbmV3IE1vbmdvZGJRdWVyaWVyKGNvbm4pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyO1xuICB9XG5cbiAgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMucXVlcmllci5jb25uLmNsb3NlKCk7XG4gICAgZGVsZXRlIHRoaXMucXVlcmllcjtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXJQb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vbmdvZGJRdWVyaWVyUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBc0Q7QUFFdEQscURBQWtEO0FBQ2xELGlEQUE4QztBQUU5QyxNQUFhLGtCQUFrQjtJQUc3QixZQUFxQixHQUFXLEVBQVcsT0FBNEIsRUFBVyxNQUFlO1FBQTVFLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUFXLFdBQU0sR0FBTixNQUFNLENBQVM7SUFBRyxDQUFDO0lBRXJHLEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNyRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsaUJBQU8sRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksK0JBQWMsQ0FBQyxJQUFJLDJCQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQWpCRCxnREFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25uZWN0LCBNb25nb0NsaWVudE9wdGlvbnMgfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IExvZ2dlciwgUXVlcmllclBvb2wgfSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5pbXBvcnQgeyBNb25nb2RiUXVlcmllciB9IGZyb20gJy4vbW9uZ29kYlF1ZXJpZXInO1xuaW1wb3J0IHsgTW9uZ29EaWFsZWN0IH0gZnJvbSAnLi9tb25nb0RpYWxlY3QnO1xuXG5leHBvcnQgY2xhc3MgTW9uZ29kYlF1ZXJpZXJQb29sIGltcGxlbWVudHMgUXVlcmllclBvb2w8TW9uZ29kYlF1ZXJpZXI+IHtcbiAgcHJpdmF0ZSBxdWVyaWVyOiBNb25nb2RiUXVlcmllcjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSB1cmk6IHN0cmluZywgcmVhZG9ubHkgb3B0aW9ucz86IE1vbmdvQ2xpZW50T3B0aW9ucywgcmVhZG9ubHkgbG9nZ2VyPzogTG9nZ2VyKSB7fVxuXG4gIGFzeW5jIGdldFF1ZXJpZXIoKSB7XG4gICAgaWYgKCF0aGlzLnF1ZXJpZXIgfHwgIXRoaXMucXVlcmllci5jb25uLmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgIGNvbnN0IGNvbm4gPSBhd2FpdCBjb25uZWN0KHRoaXMudXJpLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgdGhpcy5xdWVyaWVyID0gbmV3IE1vbmdvZGJRdWVyaWVyKG5ldyBNb25nb0RpYWxlY3QoKSwgY29ubiwgdGhpcy5sb2dnZXIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyO1xuICB9XG5cbiAgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMucXVlcmllci5jb25uLmNsb3NlKCk7XG4gICAgZGVsZXRlIHRoaXMucXVlcmllcjtcbiAgfVxufVxuIl19

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

"license": "MIT",
"version": "0.4.59",
"version": "0.4.60",
"main": "index.js",

@@ -20,3 +20,3 @@ "types": "index.d.ts",

"peerDependencies": {
"@uql/core": "^0.4.57"
"@uql/core": "^0.4.59"
},

@@ -26,3 +26,3 @@ "devDependencies": {

"@types/node": "^16.4.3",
"@uql/core": "^0.4.59",
"@uql/core": "^0.4.60",
"copyfiles": "^2.4.1",

@@ -29,0 +29,0 @@ "rimraf": "^3.0.2",

@@ -49,52 +49,24 @@ # [uql](https://uql.io) &middot; [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/impensables/uql/blob/master/LICENSE) [![tests](https://github.com/impensables/uql/actions/workflows/tests.yml/badge.svg)](https://github.com/impensables/uql) [![coverage status](https://coveralls.io/repos/impensables/uql/badge.svg?branch=master)](https://coveralls.io/r/impensables/uql?branch=master) [![npm version](https://badge.fury.io/js/%40uql%2Fcore.svg)](https://badge.fury.io/js/%40uql%2Fcore)

2. Install one of database packages according to your database:
2. Install one of the following packages according to your database:
- for `MySQL` (or `MariaDB`)
| Database | Package |
| ------------ | --------------- |
| `MySQL` | `@uql/mysql` |
| `MariaDB` | `@uql/maria` |
| `PostgreSQL` | `@uql/postgres` |
| `SQLite` | `@uql/sqlite` |
| `MongoDB` | `@uql/mongo` |
```sh
npm install @uql/mysql --save
```
E.g. for `PostgreSQL`
or with _yarn_
```sh
npm install @uql/postgres --save
```
```sh
yarn add @uql/mysql
```
or with _yarn_
- for `PostgreSQL`
```sh
yarn add @uql/postgres
```
```sh
npm install @uql/postgres --save
```
or with _yarn_
```sh
yarn add @uql/postgres
```
- for `SQLite`
```sh
npm install @uql/sqlite --save
```
or with _yarn_
```sh
yarn add @uql/sqlite
```
- for `MongoDB`
```sh
npm install @uql/mongo --save
```
or with _yarn_
```sh
yarn add @uql/mongo
```
3. Additionally, your `tsconfig.json` needs the following flags:

@@ -117,10 +89,11 @@

setOptions({
querierPool: new PgQuerierPool({
host: 'localhost',
user: 'theUser',
password: 'thePassword',
database: 'theDatabase',
}),
logging: true,
logger: console.log,
querierPool: new PgQuerierPool(
{
host: 'localhost',
user: 'theUser',
password: 'thePassword',
database: 'theDatabase',
},
console.log
),
});

@@ -127,0 +100,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