Join our webinar on Wednesday, June 26, at 1pm EDTHow Chia Mitigates Risk in the Crypto Industry.Register
Socket
Socket
Sign inDemoInstall

nukak

Package Overview
Dependencies
275
Maintainers
1
Versions
61
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.4 to 0.0.5

108

dialect/abstractSqlDialect.js

@@ -1,9 +0,6 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AbstractSqlDialect = void 0;
const sqlstring_1 = require("sqlstring");
const index_js_1 = require("../type/index.js");
const util_1 = require("../util");
const entity_1 = require("../entity");
class AbstractSqlDialect {
import { escape } from 'sqlstring';
import { QueryRaw, } from '../type/index.js';
import { getPersistable, getProjectRelationKeys, getPersistables, isProjectingRelations, getKeys, hasKeys, buildSortMap, flatObject, getRawValue, raw, getQueryFilterAsMap, getFieldCallbackValue, } from '../util/index.js';
import { getMeta } from '../entity/index.js';
export class AbstractSqlDialect {
escapeIdChar;

@@ -18,4 +15,4 @@ beginTransactionCommand;

criteria(entity, qm, opts = {}) {
const meta = (0, entity_1.getMeta)(entity);
const prefix = opts.prefix ?? (opts.autoPrefix || (0, util_1.isProjectingRelations)(meta, qm.$project)) ? meta.name : undefined;
const meta = getMeta(entity);
const prefix = opts.prefix ?? (opts.autoPrefix || isProjectingRelations(meta, qm.$project)) ? meta.name : undefined;
const where = this.where(entity, qm.$filter, { ...opts, prefix });

@@ -29,3 +26,3 @@ const group = this.group(entity, qm.$group, { ...opts, prefix });

projectFields(entity, project, opts = {}) {
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
const prefix = opts.prefix ? opts.prefix + '.' : '';

@@ -39,14 +36,14 @@ const escapedPrefix = this.escapeId(opts.prefix, true, true);

else {
const positiveProjectKeys = (0, util_1.getKeys)(project).filter((key) => project[key]);
const positiveProjectKeys = getKeys(project).filter((key) => project[key]);
fields = positiveProjectKeys.length
? positiveProjectKeys.map((key) => {
const val = project[key];
if (val instanceof index_js_1.QueryRaw) {
return (0, util_1.raw)(val.value, key);
if (val instanceof QueryRaw) {
return raw(val.value, key);
}
return key;
})
: (0, util_1.getKeys)(meta.fields).filter((key) => !(key in project));
: getKeys(meta.fields).filter((key) => !(key in project));
}
fields = fields.filter((key) => key instanceof index_js_1.QueryRaw || meta.fields[key]);
fields = fields.filter((key) => key instanceof QueryRaw || meta.fields[key]);
if (!fields.length || (opts.prefix && !fields.includes(meta.id))) {

@@ -57,8 +54,8 @@ fields = [meta.id, ...fields];

else {
fields = (0, util_1.getKeys)(meta.fields);
fields = getKeys(meta.fields);
}
return fields
.map((key) => {
if (key instanceof index_js_1.QueryRaw) {
return (0, util_1.getRawValue)({
if (key instanceof QueryRaw) {
return getRawValue({
value: key,

@@ -73,4 +70,4 @@ dialect: this,

if (field.virtual) {
return (0, util_1.getRawValue)({
value: (0, util_1.raw)(field.virtual.value, key),
return getRawValue({
value: raw(field.virtual.value, key),
dialect: this,

@@ -89,4 +86,4 @@ prefix,

projectRelations(entity, project = {}, { prefix } = {}) {
const meta = (0, entity_1.getMeta)(entity);
const relations = (0, util_1.getProjectRelationKeys)(meta, project);
const meta = getMeta(entity);
const relations = getProjectRelationKeys(meta, project);
const isProjectArray = Array.isArray(project);

@@ -114,3 +111,3 @@ let fields = '';

fields += subColumns;
const relMeta = (0, entity_1.getMeta)(relEntity);
const relMeta = getMeta(relEntity);
const relEntityName = this.escapeId(relMeta.name);

@@ -131,4 +128,4 @@ const relPath = prefix ? this.escapeId(prefix, true) : this.escapeId(meta.name);

select(entity, qm, opts = {}) {
const meta = (0, entity_1.getMeta)(entity);
const prefix = opts.prefix ?? (opts.autoPrefix || (0, util_1.isProjectingRelations)(meta, qm.$project)) ? meta.name : undefined;
const meta = getMeta(entity);
const prefix = opts.prefix ?? (opts.autoPrefix || isProjectingRelations(meta, qm.$project)) ? meta.name : undefined;
const fields = this.projectFields(entity, qm.$project, { prefix });

@@ -139,5 +136,5 @@ const { fields: relationFields, tables } = this.projectRelations(entity, qm.$project);

where(entity, filter = {}, opts = {}) {
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
const { usePrecedence, clause = 'WHERE', softDelete } = opts;
filter = (0, util_1.getQueryFilterAsMap)(meta, filter);
filter = getQueryFilterAsMap(meta, filter);
if (meta.softDelete && (softDelete || softDelete === undefined) && clause !== 'HAVING' && !filter[meta.softDelete]) {

@@ -158,7 +155,7 @@ filter[meta.softDelete] = null;

compare(entity, key, val, opts) {
const meta = (0, entity_1.getMeta)(entity);
if (val instanceof index_js_1.QueryRaw) {
const meta = getMeta(entity);
if (val instanceof QueryRaw) {
if (key === '$exists' || key === '$nexists') {
const value = val;
const query = (0, util_1.getRawValue)({
const query = getRawValue({
value,

@@ -190,4 +187,4 @@ dialect: this,

.map((filterEntry) => {
if (filterEntry instanceof index_js_1.QueryRaw) {
return (0, util_1.getRawValue)({
if (filterEntry instanceof QueryRaw) {
return getRawValue({
value: filterEntry,

@@ -201,3 +198,3 @@ dialect: this,

prefix: opts.prefix,
usePrecedence: hasManyItems && !Array.isArray(filterEntry) && (0, util_1.getKeys)(filterEntry).length > 1,
usePrecedence: hasManyItems && !Array.isArray(filterEntry) && getKeys(filterEntry).length > 1,
clause: false,

@@ -210,3 +207,3 @@ });

const value = Array.isArray(val) ? { $in: val } : typeof val === 'object' && val !== null ? val : { $eq: val };
const operators = (0, util_1.getKeys)(value);
const operators = getKeys(value);
const comparisons = operators.map((op) => this.compareFieldOperator(entity, key, op, value[op], opts)).join(' AND ');

@@ -259,7 +256,7 @@ return operators.length > 1 ? `(${comparisons})` : comparisons;

getComparisonKey(entity, key, { prefix } = {}) {
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
const escapedPrefix = this.escapeId(prefix, true, true);
const field = meta.fields[key];
if (field?.virtual) {
return (0, util_1.getRawValue)({
return getRawValue({
value: field.virtual,

@@ -277,3 +274,3 @@ dialect: this,

}
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
const names = fields.map((key) => this.escapeId(meta.fields[key]?.name ?? key)).join(', ');

@@ -283,8 +280,8 @@ return ` GROUP BY ${names}`;

sort(entity, sort, { prefix } = {}) {
const sortMap = (0, util_1.buildSortMap)(sort);
if (!(0, util_1.hasKeys)(sortMap)) {
const sortMap = buildSortMap(sort);
if (!hasKeys(sortMap)) {
return '';
}
const meta = (0, entity_1.getMeta)(entity);
const flattenedSort = (0, util_1.flatObject)(sortMap, prefix);
const meta = getMeta(entity);
const flattenedSort = flatObject(sortMap, prefix);
const directionMap = { 1: '', asc: '', '-1': ' DESC', desc: ' DESC' };

@@ -313,3 +310,3 @@ const order = Object.entries(flattenedSort)

...qm,
$project: [(0, util_1.raw)('COUNT(*)', 'count')],
$project: [raw('COUNT(*)', 'count')],
};

@@ -329,5 +326,5 @@ delete search.$sort;

insert(entity, payload) {
const meta = (0, entity_1.getMeta)(entity);
const records = (0, util_1.getPersistables)(meta, payload, 'onInsert');
const keys = (0, util_1.getKeys)(records[0]);
const meta = getMeta(entity);
const records = getPersistables(meta, payload, 'onInsert');
const keys = getKeys(records[0]);
const columns = keys.map((key) => this.escapeId(meta.fields[key].name));

@@ -338,5 +335,5 @@ const values = records.map((record) => keys.map((key) => this.escape(record[key])).join(', ')).join('), (');

update(entity, qm, payload, opts) {
const meta = (0, entity_1.getMeta)(entity);
const record = (0, util_1.getPersistable)(meta, payload, 'onUpdate');
const keys = (0, util_1.getKeys)(record);
const meta = getMeta(entity);
const record = getPersistable(meta, payload, 'onUpdate');
const keys = getKeys(record);
const entries = keys.map((key) => `${this.escapeId(key)} = ${this.escape(payload[key])}`).join(', ');

@@ -347,7 +344,7 @@ const criteria = this.criteria(entity, qm, opts);

delete(entity, qm, opts = {}) {
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
if (opts.softDelete || opts.softDelete === undefined) {
if (meta.softDelete) {
const criteria = this.criteria(entity, qm, opts);
const value = (0, util_1.getFieldCallbackValue)(meta.fields[meta.softDelete].onDelete);
const value = getFieldCallbackValue(meta.fields[meta.softDelete].onDelete);
return `UPDATE ${this.escapeId(meta.name)} SET ${this.escapeId(meta.softDelete)} = ${this.escape(value)}${criteria}`;

@@ -378,9 +375,8 @@ }

escape(value) {
if (value instanceof index_js_1.QueryRaw) {
return (0, util_1.getRawValue)({ value, dialect: this });
if (value instanceof QueryRaw) {
return getRawValue({ value, dialect: this });
}
return (0, sqlstring_1.escape)(value);
return escape(value);
}
}
exports.AbstractSqlDialect = AbstractSqlDialect;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxEaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvYWJzdHJhY3RTcWxEaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUFtQztBQUNuQywrQ0F1QjBCO0FBQzFCLGtDQWFpQjtBQUVqQixzQ0FBb0M7QUFFcEMsTUFBc0Isa0JBQWtCO0lBR2pCO0lBQWtDO0lBRjlDLGFBQWEsQ0FBUztJQUUvQixZQUFxQixZQUF1QixFQUFXLHVCQUErQjtRQUFqRSxpQkFBWSxHQUFaLFlBQVksQ0FBVztRQUFXLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBUTtRQUNwRixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVEsQ0FBSSxNQUFlLEVBQUUsRUFBWSxFQUFFLE9BQXFCLEVBQUU7UUFDaEUsTUFBTSxJQUFJLEdBQUcsSUFBQSxnQkFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUEsNEJBQXFCLEVBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEgsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBSSxNQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDckUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBSSxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEUsTUFB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QUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFakMsT0FBTyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVTtRQUNmLElBQUksS0FBSyxZQUFZLG1CQUFRLEVBQUU7WUFDN0IsT0FBTyxJQUFBLGtCQUFXLEVBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDOUM7UUFDRCxPQUFPLElBQUEsa0JBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUF0YUQsZ0RBc2FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXNjYXBlIH0gZnJvbSAnc3Fsc3RyaW5nJztcbmltcG9ydCB7XG4gIFF1ZXJ5RmlsdGVyLFxuICBRdWVyeSxcbiAgU2NhbGFyLFxuICBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXAsXG4gIFF1ZXJ5U29ydCxcbiAgUXVlcnlQYWdlcixcbiAgUXVlcnlUZXh0U2VhcmNoT3B0aW9ucyxcbiAgRmllbGRLZXksXG4gIFF1ZXJ5UHJvamVjdCxcbiAgVHlwZSxcbiAgUXVlcnlDcml0ZXJpYSxcbiAgUXVlcnlQcm9qZWN0QXJyYXksXG4gIFF1ZXJ5T3B0aW9ucyxcbiAgUXVlcnlEaWFsZWN0LFxuICBRdWVyeUZpbHRlck9wdGlvbnMsXG4gIFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMsXG4gIFF1ZXJ5RmlsdGVyTWFwLFxuICBRdWVyeVNlYXJjaCxcbiAgUXVlcnlQcm9qZWN0T3B0aW9ucyxcbiAgUXVlcnlTb3J0RGlyZWN0aW9uLFxuICBRdWVyeUZpbHRlckxvZ2ljYWwsXG4gIFF1ZXJ5UmF3LFxufSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7XG4gIGdldFBlcnNpc3RhYmxlLFxuICBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLFxuICBnZXRQZXJzaXN0YWJsZXMsXG4gIGlzUHJvamVjdGluZ1JlbGF0aW9ucyxcbiAgZ2V0S2V5cyxcbiAgaGFzS2V5cyxcbiAgYnVpbGRTb3J0TWFwLFxuICBmbGF0T2JqZWN0LFxuICBnZXRSYXdWYWx1ZSxcbiAgcmF3LFxuICBnZXRRdWVyeUZpbHRlckFzTWFwLFxuICBnZXRGaWVsZENhbGxiYWNrVmFsdWUsXG59IGZyb20gJy4uL3V0aWwnO1xuXG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3FsRGlhbGVjdCBpbXBsZW1lbnRzIFF1ZXJ5RGlhbGVjdCB7XG4gIHJlYWRvbmx5IGVzY2FwZUlkUmVnZXg6IFJlZ0V4cDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBlc2NhcGVJZENoYXI6ICdgJyB8ICdcIicsIHJlYWRvbmx5IGJlZ2luVHJhbnNhY3Rpb25Db21tYW5kOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVzY2FwZUlkUmVnZXggPSBSZWdFeHAoZXNjYXBlSWRDaGFyLCAnZycpO1xuICB9XG5cbiAgY3JpdGVyaWE8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4sIG9wdHM6IFF1ZXJ5T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHByZWZpeCA9IG9wdHMucHJlZml4ID8/IChvcHRzLmF1dG9QcmVmaXggfHwgaXNQcm9qZWN0aW5nUmVsYXRpb25zKG1ldGEsIHFtLiRwcm9qZWN0KSkgPyBtZXRhLm5hbWUgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgd2hlcmUgPSB0aGlzLndoZXJlPEU+KGVudGl0eSwgcW0uJGZpbHRlciwgeyAuLi5vcHRzLCBwcmVmaXggfSk7XG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmdyb3VwPEU+KGVudGl0eSwgcW0uJGdyb3VwLCB7IC4uLm9wdHMsIHByZWZpeCB9KTtcbiAgICBjb25zdCBoYXZpbmcgPSB0aGlzLndoZXJlPEU+KGVudGl0eSwgcW0uJGhhdmluZywgeyAuLi5vcHRzLCBwcmVmaXgsIGNsYXVzZTogJ0hBVklORycgfSk7XG4gICAgY29uc3Qgc29ydCA9IHRoaXMuc29ydDxFPihlbnRpdHksIHFtLiRzb3J0LCB7IC4uLm9wdHMsIHByZWZpeCB9KTtcbiAgICBjb25zdCBwYWdlciA9IHRoaXMucGFnZXIocW0pO1xuICAgIHJldHVybiB3aGVyZSArIGdyb3VwICsgaGF2aW5nICsgc29ydCArIHBhZ2VyO1xuICB9XG5cbiAgcHJvamVjdEZpZWxkczxFPihlbnRpdHk6IFR5cGU8RT4sIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPiwgb3B0czogUXVlcnlQcm9qZWN0T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHByZWZpeCA9IG9wdHMucHJlZml4ID8gb3B0cy5wcmVmaXggKyAnLicgOiAnJztcbiAgICBjb25zdCBlc2NhcGVkUHJlZml4ID0gdGhpcy5lc2NhcGVJZChvcHRzLnByZWZpeCwgdHJ1ZSwgdHJ1ZSk7XG5cbiAgICBsZXQgZmllbGRzOiBRdWVyeVByb2plY3RBcnJheTxFPjtcblxuICAgIGlmIChwcm9qZWN0KSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9qZWN0KSkge1xuICAgICAgICBmaWVsZHMgPSBwcm9qZWN0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcG9zaXRpdmVQcm9qZWN0S2V5cyA9IGdldEtleXMocHJvamVjdCkuZmlsdGVyKChrZXkpID0+IHByb2plY3Rba2V5XSk7XG4gICAgICAgIGZpZWxkcyA9IHBvc2l0aXZlUHJvamVjdEtleXMubGVuZ3RoXG4gICAgICAgICAgPyBwb3NpdGl2ZVByb2plY3RLZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHByb2plY3Rba2V5XTtcbiAgICAgICAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIFF1ZXJ5UmF3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJhdyh2YWwudmFsdWUsIGtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGtleSBhcyBGaWVsZEtleTxFPjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiAoZ2V0S2V5cyhtZXRhLmZpZWxkcykuZmlsdGVyKChrZXkpID0+ICEoa2V5IGluIHByb2plY3QpKSBhcyBGaWVsZEtleTxFPltdKTtcbiAgICAgIH1cbiAgICAgIGZpZWxkcyA9IGZpZWxkcy5maWx0ZXIoKGtleSkgPT4ga2V5IGluc3RhbmNlb2YgUXVlcnlSYXcgfHwgbWV0YS5maWVsZHNba2V5IGFzIEZpZWxkS2V5PEU+XSk7XG4gICAgICBpZiAoIWZpZWxkcy5sZW5ndGggfHwgKG9wdHMucHJlZml4ICYmICFmaWVsZHMuaW5jbHVkZXMobWV0YS5pZCkpKSB7XG4gICAgICAgIGZpZWxkcyA9IFttZXRhLmlkLCAuLi5maWVsZHNdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWVsZHMgPSBnZXRLZXlzKG1ldGEuZmllbGRzKSBhcyBGaWVsZEtleTxFPltdO1xuICAgIH1cblxuICAgIHJldHVybiBmaWVsZHNcbiAgICAgIC5tYXAoKGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5IGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0UmF3VmFsdWUoe1xuICAgICAgICAgICAgdmFsdWU6IGtleSxcbiAgICAgICAgICAgIGRpYWxlY3Q6IHRoaXMsXG4gICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICBlc2NhcGVkUHJlZml4LFxuICAgICAgICAgICAgYXV0b1ByZWZpeEFsaWFzOiBvcHRzLmF1dG9QcmVmaXhBbGlhcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpZWxkID0gbWV0YS5maWVsZHNba2V5IGFzIEZpZWxkS2V5PEU+XTtcblxuICAgICAgICBpZiAoZmllbGQudmlydHVhbCkge1xuICAgICAgICAgIHJldHVybiBnZXRSYXdWYWx1ZSh7XG4gICAgICAgICAgICB2YWx1ZTogcmF3KGZpZWxkLnZpcnR1YWwudmFsdWUsIGtleSksXG4gICAgICAgICAgICBkaWFsZWN0OiB0aGlzLFxuICAgICAgICAgICAgcHJlZml4LFxuICAgICAgICAgICAgZXNjYXBlZFByZWZpeCxcbiAgICAgICAgICAgIGF1dG9QcmVmaXhBbGlhczogb3B0cy5hdXRvUHJlZml4QWxpYXMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuYW1lID0gZmllbGQ/Lm5hbWUgPz8gKGtleSBhcyBGaWVsZEtleTxFPik7XG4gICAgICAgIGNvbnN0IGZpZWxkUGF0aCA9IGAke2VzY2FwZWRQcmVmaXh9JHt0aGlzLmVzY2FwZUlkKG5hbWUpfWA7XG5cbiAgICAgICAgcmV0dXJuICFvcHRzLmF1dG9QcmVmaXhBbGlhcyAmJiAobmFtZSA9PT0ga2V5IHx8ICFmaWVsZCkgPyBmaWVsZFBhdGggOiBgJHtmaWVsZFBhdGh9ICR7dGhpcy5lc2NhcGVJZCgocHJlZml4ICsga2V5KSBhcyBGaWVsZEtleTxFPiwgdHJ1ZSl9YDtcbiAgICAgIH0pXG4gICAgICAuam9pbignLCAnKTtcbiAgfVxuXG4gIHByb2plY3RSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBwcm9qZWN0OiBRdWVyeVByb2plY3Q8RT4gPSB7fSwgeyBwcmVmaXggfTogeyBwcmVmaXg/OiBzdHJpbmcgfSA9IHt9KTogeyBmaWVsZHM6IHN0cmluZzsgdGFibGVzOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxhdGlvbnMgPSBnZXRQcm9qZWN0UmVsYXRpb25LZXlzKG1ldGEsIHByb2plY3QpO1xuICAgIGNvbnN0IGlzUHJvamVjdEFycmF5ID0gQXJyYXkuaXNBcnJheShwcm9qZWN0KTtcbiAgICBsZXQgZmllbGRzID0gJyc7XG4gICAgbGV0IHRhYmxlcyA9ICcnO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgcmVsYXRpb25zKSB7XG4gICAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNba2V5XTtcblxuICAgICAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICcxbScgfHwgcmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ21tJykge1xuICAgICAgICAvLyAnMW0nIGFuZCAnbW0nIHNob3VsZCBiZSByZXNvbHZlZCBpbiBhIGhpZ2hlciBsYXllciBiZWNhdXNlIHRoZXkgd2lsbCBuZWVkIG11bHRpcGxlIHF1ZXJpZXNcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGpvaW5SZWxBbGlhcyA9IHByZWZpeCA/IHByZWZpeCArICcuJyArIGtleSA6IGtleTtcbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgICBjb25zdCByZWxQcm9qZWN0ID0gcHJvamVjdFtrZXkgYXMgc3RyaW5nXTtcbiAgICAgIGNvbnN0IHJlbFF1ZXJ5ID0gaXNQcm9qZWN0QXJyYXkgPyB7fSA6IEFycmF5LmlzQXJyYXkocmVsUHJvamVjdCkgPyB7ICRwcm9qZWN0OiByZWxQcm9qZWN0IH0gOiByZWxQcm9qZWN0O1xuXG4gICAgICBjb25zdCByZWxDb2x1bW5zID0gdGhpcy5wcm9qZWN0RmllbGRzKHJlbEVudGl0eSwgcmVsUXVlcnkuJHByb2plY3QsIHtcbiAgICAgICAgcHJlZml4OiBqb2luUmVsQWxpYXMsXG4gICAgICAgIGF1dG9QcmVmaXhBbGlhczogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBmaWVsZHMgKz0gJywgJyArIHJlbENvbHVtbnM7XG5cbiAgICAgIGNvbnN0IHsgZmllbGRzOiBzdWJDb2x1bW5zLCB0YWJsZXM6IHN1YlRhYmxlcyB9ID0gdGhpcy5wcm9qZWN0UmVsYXRpb25zKHJlbEVudGl0eSwgcmVsUXVlcnkuJHByb2plY3QsIHtcbiAgICAgICAgcHJlZml4OiBqb2luUmVsQWxpYXMsXG4gICAgICB9KTtcblxuICAgICAgZmllbGRzICs9IHN1YkNvbHVtbnM7XG5cbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbEVudGl0eSk7XG4gICAgICBjb25zdCByZWxFbnRpdHlOYW1lID0gdGhpcy5lc2NhcGVJZChyZWxNZXRhLm5hbWUpO1xuICAgICAgY29uc3QgcmVsUGF0aCA9IHByZWZpeCA/IHRoaXMuZXNjYXBlSWQocHJlZml4LCB0cnVlKSA6IHRoaXMuZXNjYXBlSWQobWV0YS5uYW1lKTtcbiAgICAgIGNvbnN0IGpvaW5UeXBlID0gcmVsUXVlcnkuJHJlcXVpcmVkID8gJ0lOTkVSJyA6ICdMRUZUJztcbiAgICAgIGNvbnN0IGpvaW5BbGlhcyA9IHRoaXMuZXNjYXBlSWQoam9pblJlbEFsaWFzLCB0cnVlKTtcblxuICAgICAgdGFibGVzICs9IGAgJHtqb2luVHlwZX0gSk9JTiAke3JlbEVudGl0eU5hbWV9ICR7am9pbkFsaWFzfSBPTiBgO1xuICAgICAgdGFibGVzICs9IHJlbE9wdHMucmVmZXJlbmNlcy5tYXAoKGl0KSA9PiBgJHtqb2luQWxpYXN9LiR7dGhpcy5lc2NhcGVJZChpdC5mb3JlaWduKX0gPSAke3JlbFBhdGh9LiR7dGhpcy5lc2NhcGVJZChpdC5sb2NhbCl9YCkuam9pbignIEFORCAnKTtcblxuICAgICAgaWYgKHJlbFF1ZXJ5LiRmaWx0ZXIpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy53aGVyZShyZWxFbnRpdHksIHJlbFF1ZXJ5LiRmaWx0ZXIsIHsgcHJlZml4OiBrZXksIGNsYXVzZTogZmFsc2UgfSk7XG4gICAgICAgIHRhYmxlcyArPSBgIEFORCAke2ZpbHRlcn1gO1xuICAgICAgfVxuXG4gICAgICB0YWJsZXMgKz0gc3ViVGFibGVzO1xuICAgIH1cblxuICAgIHJldHVybiB7IGZpZWxkcywgdGFibGVzIH07XG4gIH1cblxuICBzZWxlY3Q8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4sIG9wdHM6IFF1ZXJ5T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHByZWZpeCA9IG9wdHMucHJlZml4ID8/IChvcHRzLmF1dG9QcmVmaXggfHwgaXNQcm9qZWN0aW5nUmVsYXRpb25zKG1ldGEsIHFtLiRwcm9qZWN0KSkgPyBtZXRhLm5hbWUgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBmaWVsZHMgPSB0aGlzLnByb2plY3RGaWVsZHMoZW50aXR5LCBxbS4kcHJvamVjdCwgeyBwcmVmaXggfSk7XG4gICAgY29uc3QgeyBmaWVsZHM6IHJlbGF0aW9uRmllbGRzLCB0YWJsZXMgfSA9IHRoaXMucHJvamVjdFJlbGF0aW9ucyhlbnRpdHksIHFtLiRwcm9qZWN0KTtcblxuICAgIHJldHVybiBgU0VMRUNUICR7ZmllbGRzfSR7cmVsYXRpb25GaWVsZHN9IEZST00gJHt0aGlzLmVzY2FwZUlkKG1ldGEubmFtZSl9JHt0YWJsZXN9YDtcbiAgfVxuXG4gIHdoZXJlPEU+KGVudGl0eTogVHlwZTxFPiwgZmlsdGVyOiBRdWVyeUZpbHRlcjxFPiA9IHt9LCBvcHRzOiBRdWVyeUZpbHRlck9wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCB7IHVzZVByZWNlZGVuY2UsIGNsYXVzZSA9ICdXSEVSRScsIHNvZnREZWxldGUgfSA9IG9wdHM7XG5cbiAgICBmaWx0ZXIgPSBnZXRRdWVyeUZpbHRlckFzTWFwKG1ldGEsIGZpbHRlcik7XG5cbiAgICBpZiAobWV0YS5zb2Z0RGVsZXRlICYmIChzb2Z0RGVsZXRlIHx8IHNvZnREZWxldGUgPT09IHVuZGVmaW5lZCkgJiYgY2xhdXNlICE9PSAnSEFWSU5HJyAmJiAhZmlsdGVyW21ldGEuc29mdERlbGV0ZSBhcyBzdHJpbmddKSB7XG4gICAgICBmaWx0ZXJbbWV0YS5zb2Z0RGVsZXRlIGFzIHN0cmluZ10gPSBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhmaWx0ZXIpO1xuXG4gICAgaWYgKCFlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLm9wdHMsIHVzZVByZWNlZGVuY2U6IGVudHJpZXMubGVuZ3RoID4gMSB9O1xuXG4gICAgbGV0IHNxbCA9IGVudHJpZXMubWFwKChba2V5LCB2YWxdKSA9PiB0aGlzLmNvbXBhcmUoZW50aXR5LCBrZXkgYXMga2V5b2YgUXVlcnlGaWx0ZXJNYXA8RT4sIHZhbCBhcyBhbnksIG9wdGlvbnMpKS5qb2luKGAgQU5EIGApO1xuXG4gICAgaWYgKHVzZVByZWNlZGVuY2UpIHtcbiAgICAgIHNxbCA9IGAoJHtzcWx9KWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXVzZSA/IGAgJHtjbGF1c2V9ICR7c3FsfWAgOiBzcWw7XG4gIH1cblxuICBjb21wYXJlPEUsIEsgZXh0ZW5kcyBrZXlvZiBRdWVyeUZpbHRlck1hcDxFPj4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IEssIHZhbDogUXVlcnlGaWx0ZXJNYXA8RT5bS10sIG9wdHM/OiBRdWVyeUNvbXBhcmlzb25PcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuXG4gICAgaWYgKHZhbCBpbnN0YW5jZW9mIFF1ZXJ5UmF3KSB7XG4gICAgICBpZiAoa2V5ID09PSAnJGV4aXN0cycgfHwga2V5ID09PSAnJG5leGlzdHMnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsIGFzIFF1ZXJ5UmF3O1xuICAgICAgICBjb25zdCBxdWVyeSA9IGdldFJhd1ZhbHVlKHtcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBkaWFsZWN0OiB0aGlzLFxuICAgICAgICAgIHByZWZpeDogbWV0YS5uYW1lLFxuICAgICAgICAgIGVzY2FwZWRQcmVmaXg6IHRoaXMuZXNjYXBlSWQobWV0YS5uYW1lLCBmYWxzZSwgdHJ1ZSksXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYCR7a2V5ID09PSAnJGV4aXN0cycgPyAnRVhJU1RTJyA6ICdOT1QgRVhJU1RTJ30gKCR7cXVlcnl9KWA7XG4gICAgICB9XG4gICAgICBjb25zdCBjb21wYXJpc29uS2V5ID0gdGhpcy5nZXRDb21wYXJpc29uS2V5KGVudGl0eSwga2V5IGFzIEZpZWxkS2V5PEU+LCBvcHRzKTtcbiAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSA9ICR7dmFsLnZhbHVlfWA7XG4gICAgfVxuXG4gICAgaWYgKGtleSA9PT0gJyR0ZXh0Jykge1xuICAgICAgY29uc3Qgc2VhcmNoID0gdmFsIGFzIFF1ZXJ5VGV4dFNlYXJjaE9wdGlvbnM8RT47XG4gICAgICBjb25zdCBmaWVsZHMgPSBzZWFyY2guJGZpZWxkcy5tYXAoKGZpZWxkKSA9PiB0aGlzLmVzY2FwZUlkKG1ldGEuZmllbGRzW2ZpZWxkXT8ubmFtZSA/PyBmaWVsZCkpO1xuICAgICAgcmV0dXJuIGAke3RoaXMuZXNjYXBlSWQobWV0YS5uYW1lKX0gTUFUQ0ggeyR7ZmllbGRzLmpvaW4oJyAnKX19IDogJHt0aGlzLmVzY2FwZShzZWFyY2guJHZhbHVlKX1gO1xuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICckYW5kJyB8fCBrZXkgPT09ICckb3InIHx8IGtleSA9PT0gJyRub3QnIHx8IGtleSA9PT0gJyRub3InKSB7XG4gICAgICBjb25zdCBuZWdhdGVPcGVyYXRvck1hcCA9IHtcbiAgICAgICAgJG5vdDogJyRhbmQnLFxuICAgICAgICAkbm9yOiAnJG9yJyxcbiAgICAgIH0gYXMgY29uc3Q7XG5cbiAgICAgIGNvbnN0IG9wOiAnJGFuZCcgfCAnJG9yJyA9IG5lZ2F0ZU9wZXJhdG9yTWFwW2tleSBhcyBzdHJpbmddID8/IGtleTtcbiAgICAgIGNvbnN0IG5lZ2F0ZSA9IGtleSBpbiBuZWdhdGVPcGVyYXRvck1hcCA/ICdOT1QgJyA6ICcnO1xuXG4gICAgICBjb25zdCB2YWx1ZXMgPSB2YWwgYXMgUXVlcnlGaWx0ZXJMb2dpY2FsPEU+O1xuICAgICAgY29uc3QgaGFzTWFueUl0ZW1zID0gdmFsdWVzLmxlbmd0aCA+IDE7XG4gICAgICBjb25zdCBsb2dpY2FsQ29tcGFyaXNvbiA9IHZhbHVlc1xuICAgICAgICAubWFwKChmaWx0ZXJFbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChmaWx0ZXJFbnRyeSBpbnN0YW5jZW9mIFF1ZXJ5UmF3KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0UmF3VmFsdWUoe1xuICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyRW50cnksXG4gICAgICAgICAgICAgIGRpYWxlY3Q6IHRoaXMsXG4gICAgICAgICAgICAgIHByZWZpeDogb3B0cy5wcmVmaXgsXG4gICAgICAgICAgICAgIGVzY2FwZWRQcmVmaXg6IHRoaXMuZXNjYXBlSWQob3B0cy5wcmVmaXgsIHRydWUsIHRydWUpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLndoZXJlKGVudGl0eSwgZmlsdGVyRW50cnksIHtcbiAgICAgICAgICAgIHByZWZpeDogb3B0cy5wcmVmaXgsXG4gICAgICAgICAgICB1c2VQcmVjZWRlbmNlOiBoYXNNYW55SXRlbXMgJiYgIUFycmF5LmlzQXJyYXkoZmlsdGVyRW50cnkpICYmIGdldEtleXMoZmlsdGVyRW50cnkpLmxlbmd0aCA+IDEsXG4gICAgICAgICAgICBjbGF1c2U6IGZhbHNlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuam9pbihvcCA9PT0gJyRvcicgPyAnIE9SICcgOiAnIEFORCAnKTtcblxuICAgICAgcmV0dXJuIChvcHRzLnVzZVByZWNlZGVuY2UgfHwgbmVnYXRlKSAmJiBoYXNNYW55SXRlbXMgPyBgJHtuZWdhdGV9KCR7bG9naWNhbENvbXBhcmlzb259KWAgOiBgJHtuZWdhdGV9JHtsb2dpY2FsQ29tcGFyaXNvbn1gO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWwpID8geyAkaW46IHZhbCB9IDogdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsICE9PSBudWxsID8gdmFsIDogeyAkZXE6IHZhbCB9O1xuICAgIGNvbnN0IG9wZXJhdG9ycyA9IGdldEtleXModmFsdWUpIGFzIChrZXlvZiBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8RT4pW107XG4gICAgY29uc3QgY29tcGFyaXNvbnMgPSBvcGVyYXRvcnMubWFwKChvcCkgPT4gdGhpcy5jb21wYXJlRmllbGRPcGVyYXRvcihlbnRpdHksIGtleSBhcyBGaWVsZEtleTxFPiwgb3AsIHZhbHVlW29wXSwgb3B0cykpLmpvaW4oJyBBTkQgJyk7XG5cbiAgICByZXR1cm4gb3BlcmF0b3JzLmxlbmd0aCA+IDEgPyBgKCR7Y29tcGFyaXNvbnN9KWAgOiBjb21wYXJpc29ucztcbiAgfVxuXG4gIGNvbXBhcmVGaWVsZE9wZXJhdG9yPEUsIEsgZXh0ZW5kcyBrZXlvZiBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8RT4+KFxuICAgIGVudGl0eTogVHlwZTxFPixcbiAgICBrZXk6IEZpZWxkS2V5PEU+LFxuICAgIG9wOiBLLFxuICAgIHZhbDogUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwPEU+W0tdLFxuICAgIG9wdHM/OiBRdWVyeU9wdGlvbnNcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb21wYXJpc29uS2V5ID0gdGhpcy5nZXRDb21wYXJpc29uS2V5KGVudGl0eSwga2V5LCBvcHRzKTtcbiAgICBzd2l0Y2ggKG9wKSB7XG4gICAgICBjYXNlICckZXEnOlxuICAgICAgICByZXR1cm4gdmFsID09PSBudWxsID8gYCR7Y29tcGFyaXNvbktleX0gSVMgTlVMTGAgOiBgJHtjb21wYXJpc29uS2V5fSA9ICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJG5lJzpcbiAgICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCA/IGAke2NvbXBhcmlzb25LZXl9IElTIE5PVCBOVUxMYCA6IGAke2NvbXBhcmlzb25LZXl9IDw+ICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJG5vdCc6XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZW50aXR5LCAnJG5vdCcsIFt7IFtrZXldOiB2YWwgfV0gYXMgYW55LCBvcHRzKTtcbiAgICAgIGNhc2UgJyRndCc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSA+ICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJGd0ZSc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSA+PSAke3RoaXMuZXNjYXBlKHZhbCl9YDtcbiAgICAgIGNhc2UgJyRsdCc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSA8ICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJGx0ZSc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSA8PSAke3RoaXMuZXNjYXBlKHZhbCl9YDtcbiAgICAgIGNhc2UgJyRzdGFydHNXaXRoJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IExJS0UgJHt0aGlzLmVzY2FwZShgJHt2YWx9JWApfWA7XG4gICAgICBjYXNlICckaXN0YXJ0c1dpdGgnOlxuICAgICAgICByZXR1cm4gYExPV0VSKCR7Y29tcGFyaXNvbktleX0pIExJS0UgJHt0aGlzLmVzY2FwZSgodmFsIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSArICclJyl9YDtcbiAgICAgIGNhc2UgJyRlbmRzV2l0aCc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBMSUtFICR7dGhpcy5lc2NhcGUoYCUke3ZhbH1gKX1gO1xuICAgICAgY2FzZSAnJGllbmRzV2l0aCc6XG4gICAgICAgIHJldHVybiBgTE9XRVIoJHtjb21wYXJpc29uS2V5fSkgTElLRSAke3RoaXMuZXNjYXBlKCclJyArICh2YWwgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKX1gO1xuICAgICAgY2FzZSAnJGluY2x1ZGVzJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IExJS0UgJHt0aGlzLmVzY2FwZShgJSR7dmFsfSVgKX1gO1xuICAgICAgY2FzZSAnJGlpbmNsdWRlcyc6XG4gICAgICAgIHJldHVybiBgTE9XRVIoJHtjb21wYXJpc29uS2V5fSkgTElLRSAke3RoaXMuZXNjYXBlKCclJyArICh2YWwgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpICsgJyUnKX1gO1xuICAgICAgY2FzZSAnJGlsaWtlJzpcbiAgICAgICAgcmV0dXJuIGBMT1dFUigke2NvbXBhcmlzb25LZXl9KSBMSUtFICR7dGhpcy5lc2NhcGUoKHZhbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkpfWA7XG4gICAgICBjYXNlICckbGlrZSc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBMSUtFICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJGluJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IElOICgke3RoaXMuZXNjYXBlKHZhbCl9KWA7XG4gICAgICBjYXNlICckbmluJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IE5PVCBJTiAoJHt0aGlzLmVzY2FwZSh2YWwpfSlgO1xuICAgICAgY2FzZSAnJHJlZ2V4JzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IFJFR0VYUCAke3RoaXMuZXNjYXBlKHZhbCl9YDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IFR5cGVFcnJvcihgdW5rbm93biBvcGVyYXRvcjogJHtvcH1gKTtcbiAgICB9XG4gIH1cblxuICBnZXRDb21wYXJpc29uS2V5PEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBGaWVsZEtleTxFPiwgeyBwcmVmaXggfTogUXVlcnlPcHRpb25zID0ge30pOiBTY2FsYXIge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgZXNjYXBlZFByZWZpeCA9IHRoaXMuZXNjYXBlSWQocHJlZml4LCB0cnVlLCB0cnVlKTtcbiAgICBjb25zdCBmaWVsZCA9IG1ldGEuZmllbGRzW2tleV07XG5cbiAgICBpZiAoZmllbGQ/LnZpcnR1YWwpIHtcbiAgICAgIHJldHVybiBnZXRSYXdWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiBmaWVsZC52aXJ0dWFsLFxuICAgICAgICBkaWFsZWN0OiB0aGlzLFxuICAgICAgICBwcmVmaXgsXG4gICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXNjYXBlZFByZWZpeCArIHRoaXMuZXNjYXBlSWQoZmllbGQ/Lm5hbWUgPz8ga2V5KTtcbiAgfVxuXG4gIGdyb3VwPEU+KGVudGl0eTogVHlwZTxFPiwgZmllbGRzOiByZWFkb25seSBGaWVsZEtleTxFPltdLCBvcHRzOiBRdWVyeU9wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gICAgaWYgKCFmaWVsZHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IG5hbWVzID0gZmllbGRzLm1hcCgoa2V5KSA9PiB0aGlzLmVzY2FwZUlkKG1ldGEuZmllbGRzW2tleV0/Lm5hbWUgPz8ga2V5KSkuam9pbignLCAnKTtcbiAgICByZXR1cm4gYCBHUk9VUCBCWSAke25hbWVzfWA7XG4gIH1cblxuICBzb3J0PEU+KGVudGl0eTogVHlwZTxFPiwgc29ydDogUXVlcnlTb3J0PEU+LCB7IHByZWZpeCB9OiBRdWVyeU9wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc29ydE1hcCA9IGJ1aWxkU29ydE1hcChzb3J0KTtcbiAgICBpZiAoIWhhc0tleXMoc29ydE1hcCkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBmbGF0dGVuZWRTb3J0ID0gZmxhdE9iamVjdChzb3J0TWFwLCBwcmVmaXgpO1xuICAgIGNvbnN0IGRpcmVjdGlvbk1hcCA9IHsgMTogJycsIGFzYzogJycsICctMSc6ICcgREVTQycsIGRlc2M6ICcgREVTQycgfSBhcyBjb25zdDtcbiAgICBjb25zdCBvcmRlciA9IE9iamVjdC5lbnRyaWVzKGZsYXR0ZW5lZFNvcnQpXG4gICAgICAubWFwKChba2V5LCBzb3J0XSkgPT4ge1xuICAgICAgICBjb25zdCBuYW1lID0gbWV0YS5maWVsZHNba2V5XT8ubmFtZSA/PyBrZXk7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGRpcmVjdGlvbk1hcFtzb3J0IGFzIFF1ZXJ5U29ydERpcmVjdGlvbl07XG4gICAgICAgIHJldHVybiB0aGlzLmVzY2FwZUlkKG5hbWUpICsgZGlyZWN0aW9uO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcsICcpO1xuICAgIHJldHVybiBgIE9SREVSIEJZICR7b3JkZXJ9YDtcbiAgfVxuXG4gIHBhZ2VyKG9wdHM6IFF1ZXJ5UGFnZXIpOiBzdHJpbmcge1xuICAgIGxldCBzcWwgPSAnJztcbiAgICBpZiAob3B0cy4kbGltaXQpIHtcbiAgICAgIHNxbCArPSBgIExJTUlUICR7TnVtYmVyKG9wdHMuJGxpbWl0KX1gO1xuICAgIH1cbiAgICBpZiAob3B0cy4kc2tpcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzcWwgKz0gYCBPRkZTRVQgJHtOdW1iZXIob3B0cy4kc2tpcCl9YDtcbiAgICB9XG4gICAgcmV0dXJuIHNxbDtcbiAgfVxuXG4gIGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWFyY2g6IFF1ZXJ5PEU+ID0ge1xuICAgICAgLi4ucW0sXG4gICAgICAkcHJvamVjdDogW3JhdygnQ09VTlQoKiknLCAnY291bnQnKV0sXG4gICAgfTtcblxuICAgIGRlbGV0ZSBzZWFyY2guJHNvcnQ7XG4gICAgZGVsZXRlIHNlYXJjaC4kc2tpcDtcbiAgICBkZWxldGUgc2VhcmNoLiRsaW1pdDtcblxuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMuc2VsZWN0PEU+KGVudGl0eSwgc2VhcmNoKTtcbiAgICBjb25zdCBjcml0ZXJpYSA9IHRoaXMuY3JpdGVyaWEoZW50aXR5LCBzZWFyY2gsIG9wdHMpO1xuXG4gICAgcmV0dXJuIHNlbGVjdCArIGNyaXRlcmlhO1xuICB9XG5cbiAgZmluZDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VsZWN0ID0gdGhpcy5zZWxlY3Q8RT4oZW50aXR5LCBxbSwgb3B0cyk7XG4gICAgY29uc3QgY3JpdGVyaWEgPSB0aGlzLmNyaXRlcmlhKGVudGl0eSwgcW0sIG9wdHMpO1xuICAgIHJldHVybiBzZWxlY3QgKyBjcml0ZXJpYTtcbiAgfVxuXG4gIGluc2VydDxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUgfCBFW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVjb3JkcyA9IGdldFBlcnNpc3RhYmxlcyhtZXRhLCBwYXlsb2FkLCAnb25JbnNlcnQnKTtcbiAgICBjb25zdCBrZXlzID0gZ2V0S2V5cyhyZWNvcmRzWzBdKTtcbiAgICBjb25zdCBjb2x1bW5zID0ga2V5cy5tYXAoKGtleSkgPT4gdGhpcy5lc2NhcGVJZChtZXRhLmZpZWxkc1trZXldLm5hbWUpKTtcbiAgICBjb25zdCB2YWx1ZXMgPSByZWNvcmRzLm1hcCgocmVjb3JkKSA9PiBrZXlzLm1hcCgoa2V5KSA9PiB0aGlzLmVzY2FwZShyZWNvcmRba2V5XSkpLmpvaW4oJywgJykpLmpvaW4oJyksICgnKTtcbiAgICByZXR1cm4gYElOU0VSVCBJTlRPICR7dGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpfSAoJHtjb2x1bW5zLmpvaW4oJywgJyl9KSBWQUxVRVMgKCR7dmFsdWVzfSlgO1xuICB9XG5cbiAgdXBkYXRlPEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUsIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVjb3JkID0gZ2V0UGVyc2lzdGFibGUobWV0YSwgcGF5bG9hZCwgJ29uVXBkYXRlJyk7XG4gICAgY29uc3Qga2V5cyA9IGdldEtleXMocmVjb3JkKTtcbiAgICBjb25zdCBlbnRyaWVzID0ga2V5cy5tYXAoKGtleSkgPT4gYCR7dGhpcy5lc2NhcGVJZChrZXkpfSA9ICR7dGhpcy5lc2NhcGUocGF5bG9hZFtrZXldKX1gKS5qb2luKCcsICcpO1xuICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5jcml0ZXJpYShlbnRpdHksIHFtLCBvcHRzKTtcbiAgICByZXR1cm4gYFVQREFURSAke3RoaXMuZXNjYXBlSWQobWV0YS5uYW1lKX0gU0VUICR7ZW50cmllc30ke2NyaXRlcmlhfWA7XG4gIH1cblxuICBkZWxldGU8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0czogUXVlcnlPcHRpb25zID0ge30pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgICBpZiAob3B0cy5zb2Z0RGVsZXRlIHx8IG9wdHMuc29mdERlbGV0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAobWV0YS5zb2Z0RGVsZXRlKSB7XG4gICAgICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5jcml0ZXJpYShlbnRpdHksIHFtLCBvcHRzKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRGaWVsZENhbGxiYWNrVmFsdWUobWV0YS5maWVsZHNbbWV0YS5zb2Z0RGVsZXRlXS5vbkRlbGV0ZSk7XG4gICAgICAgIHJldHVybiBgVVBEQVRFICR7dGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpfSBTRVQgJHt0aGlzLmVzY2FwZUlkKG1ldGEuc29mdERlbGV0ZSl9ID0gJHt0aGlzLmVzY2FwZSh2YWx1ZSl9JHtjcml0ZXJpYX1gO1xuICAgICAgfSBlbHNlIGlmIChvcHRzLnNvZnREZWxldGUpIHtcbiAgICAgICAgdGhyb3cgVHlwZUVycm9yKGAnJHttZXRhLm5hbWV9JyBoYXMgbm90IGVuYWJsZWQgJ3NvZnREZWxldGUnYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY3JpdGVyaWEgPSB0aGlzLmNyaXRlcmlhKGVudGl0eSwgcW0sIG9wdHMpO1xuXG4gICAgcmV0dXJuIGBERUxFVEUgRlJPTSAke3RoaXMuZXNjYXBlSWQobWV0YS5uYW1lKX0ke2NyaXRlcmlhfWA7XG4gIH1cblxuICBlc2NhcGVJZCh2YWw6IHN0cmluZywgZm9yYmlkUXVhbGlmaWVkPzogYm9vbGVhbiwgYWRkRG90PzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgaWYgKCF2YWwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAoIWZvcmJpZFF1YWxpZmllZCAmJiB2YWwuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgcmV0dXJuIHZhbFxuICAgICAgICAuc3BsaXQoJy4nKVxuICAgICAgICAubWFwKChpdCkgPT4gdGhpcy5lc2NhcGVJZChpdCkpXG4gICAgICAgIC5qb2luKCcuJyk7XG4gICAgfVxuXG4gICAgLy8gc291cmNlZCBmcm9tICdlc2NhcGVJZCcgZnVuY3Rpb24gaGVyZSBodHRwczovL2dpdGh1Yi5jb20vbXlzcWxqcy9zcWxzdHJpbmcvYmxvYi9tYXN0ZXIvbGliL1NxbFN0cmluZy5qc1xuICAgIGNvbnN0IGVzY2FwZWQgPSB0aGlzLmVzY2FwZUlkQ2hhciArIHZhbC5yZXBsYWNlKHRoaXMuZXNjYXBlSWRSZWdleCwgdGhpcy5lc2NhcGVJZENoYXIgKyB0aGlzLmVzY2FwZUlkQ2hhcikgKyB0aGlzLmVzY2FwZUlkQ2hhcjtcblxuICAgIGNvbnN0IHN1ZmZpeCA9IGFkZERvdCA/ICcuJyA6ICcnO1xuXG4gICAgcmV0dXJuIGVzY2FwZWQgKyBzdWZmaXg7XG4gIH1cblxuICBlc2NhcGUodmFsdWU6IGFueSk6IFNjYWxhciB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICAgIHJldHVybiBnZXRSYXdWYWx1ZSh7IHZhbHVlLCBkaWFsZWN0OiB0aGlzIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZXNjYXBlKHZhbHVlKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxEaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvYWJzdHJhY3RTcWxEaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQXNCTCxRQUFRLEdBQ1QsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsR0FBRyxFQUNILG1CQUFtQixFQUNuQixxQkFBcUIsR0FDdEIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0MsTUFBTSxPQUFnQixrQkFBa0I7SUFHakI7SUFBa0M7SUFGOUMsYUFBYSxDQUFTO0lBRS9CLFlBQXFCLFlBQXVCLEVBQVcsdUJBQStCO1FBQWpFLGlCQUFZLEdBQVosWUFBWSxDQUFXO1FBQVcsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFRO1FBQ3BGLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsUUFBUSxDQUFJLE1BQWUsRUFBRSxFQUFZLEVBQUUsT0FBcUIsRUFBRTtRQUNoRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUkscUJBQXFCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7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QU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRWpDLE9BQU8sT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVU7UUFDZixJQUFJLEtBQUssWUFBWSxRQUFRLEVBQUU7WUFDN0IsT0FBTyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDOUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlc2NhcGUgfSBmcm9tICdzcWxzdHJpbmcnO1xuaW1wb3J0IHtcbiAgUXVlcnlGaWx0ZXIsXG4gIFF1ZXJ5LFxuICBTY2FsYXIsXG4gIFF1ZXJ5RmlsdGVyRmllbGRPcGVyYXRvck1hcCxcbiAgUXVlcnlTb3J0LFxuICBRdWVyeVBhZ2VyLFxuICBRdWVyeVRleHRTZWFyY2hPcHRpb25zLFxuICBGaWVsZEtleSxcbiAgUXVlcnlQcm9qZWN0LFxuICBUeXBlLFxuICBRdWVyeUNyaXRlcmlhLFxuICBRdWVyeVByb2plY3RBcnJheSxcbiAgUXVlcnlPcHRpb25zLFxuICBRdWVyeURpYWxlY3QsXG4gIFF1ZXJ5RmlsdGVyT3B0aW9ucyxcbiAgUXVlcnlDb21wYXJpc29uT3B0aW9ucyxcbiAgUXVlcnlGaWx0ZXJNYXAsXG4gIFF1ZXJ5U2VhcmNoLFxuICBRdWVyeVByb2plY3RPcHRpb25zLFxuICBRdWVyeVNvcnREaXJlY3Rpb24sXG4gIFF1ZXJ5RmlsdGVyTG9naWNhbCxcbiAgUXVlcnlSYXcsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHtcbiAgZ2V0UGVyc2lzdGFibGUsXG4gIGdldFByb2plY3RSZWxhdGlvbktleXMsXG4gIGdldFBlcnNpc3RhYmxlcyxcbiAgaXNQcm9qZWN0aW5nUmVsYXRpb25zLFxuICBnZXRLZXlzLFxuICBoYXNLZXlzLFxuICBidWlsZFNvcnRNYXAsXG4gIGZsYXRPYmplY3QsXG4gIGdldFJhd1ZhbHVlLFxuICByYXcsXG4gIGdldFF1ZXJ5RmlsdGVyQXNNYXAsXG4gIGdldEZpZWxkQ2FsbGJhY2tWYWx1ZSxcbn0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcyc7XG5cbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvaW5kZXguanMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTcWxEaWFsZWN0IGltcGxlbWVudHMgUXVlcnlEaWFsZWN0IHtcbiAgcmVhZG9ubHkgZXNjYXBlSWRSZWdleDogUmVnRXhwO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGVzY2FwZUlkQ2hhcjogJ2AnIHwgJ1wiJywgcmVhZG9ubHkgYmVnaW5UcmFuc2FjdGlvbkNvbW1hbmQ6IHN0cmluZykge1xuICAgIHRoaXMuZXNjYXBlSWRSZWdleCA9IFJlZ0V4cChlc2NhcGVJZENoYXIsICdnJyk7XG4gIH1cblxuICBjcml0ZXJpYTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPiwgb3B0czogUXVlcnlPcHRpb25zID0ge30pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcHJlZml4ID0gb3B0cy5wcmVmaXggPz8gKG9wdHMuYXV0b1ByZWZpeCB8fCBpc1Byb2plY3RpbmdSZWxhdGlvbnMobWV0YSwgcW0uJHByb2plY3QpKSA/IG1ldGEubmFtZSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB3aGVyZSA9IHRoaXMud2hlcmU8RT4oZW50aXR5LCBxbS4kZmlsdGVyLCB7IC4uLm9wdHMsIHByZWZpeCB9KTtcbiAgICBjb25zdCBncm91cCA9IHRoaXMuZ3JvdXA8RT4oZW50aXR5LCBxbS4kZ3JvdXAsIHsgLi4ub3B0cywgcHJlZml4IH0pO1xuICAgIGNvbnN0IGhhdmluZyA9IHRoaXMud2hlcmU8RT4oZW50aXR5LCBxbS4kaGF2aW5nLCB7IC4uLm9wdHMsIHByZWZpeCwgY2xhdXNlOiAnSEFWSU5HJyB9KTtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5zb3J0PEU+KGVudGl0eSwgcW0uJHNvcnQsIHsgLi4ub3B0cywgcHJlZml4IH0pO1xuICAgIGNvbnN0IHBhZ2VyID0gdGhpcy5wYWdlcihxbSk7XG4gICAgcmV0dXJuIHdoZXJlICsgZ3JvdXAgKyBoYXZpbmcgKyBzb3J0ICsgcGFnZXI7XG4gIH1cblxuICBwcm9qZWN0RmllbGRzPEU+KGVudGl0eTogVHlwZTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+LCBvcHRzOiBRdWVyeVByb2plY3RPcHRpb25zID0ge30pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcHJlZml4ID0gb3B0cy5wcmVmaXggPyBvcHRzLnByZWZpeCArICcuJyA6ICcnO1xuICAgIGNvbnN0IGVzY2FwZWRQcmVmaXggPSB0aGlzLmVzY2FwZUlkKG9wdHMucHJlZml4LCB0cnVlLCB0cnVlKTtcblxuICAgIGxldCBmaWVsZHM6IFF1ZXJ5UHJvamVjdEFycmF5PEU+O1xuXG4gICAgaWYgKHByb2plY3QpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb2plY3QpKSB7XG4gICAgICAgIGZpZWxkcyA9IHByb2plY3Q7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwb3NpdGl2ZVByb2plY3RLZXlzID0gZ2V0S2V5cyhwcm9qZWN0KS5maWx0ZXIoKGtleSkgPT4gcHJvamVjdFtrZXldKTtcbiAgICAgICAgZmllbGRzID0gcG9zaXRpdmVQcm9qZWN0S2V5cy5sZW5ndGhcbiAgICAgICAgICA/IHBvc2l0aXZlUHJvamVjdEtleXMubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsID0gcHJvamVjdFtrZXldO1xuICAgICAgICAgICAgICBpZiAodmFsIGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmF3KHZhbC52YWx1ZSwga2V5KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4ga2V5IGFzIEZpZWxkS2V5PEU+O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IChnZXRLZXlzKG1ldGEuZmllbGRzKS5maWx0ZXIoKGtleSkgPT4gIShrZXkgaW4gcHJvamVjdCkpIGFzIEZpZWxkS2V5PEU+W10pO1xuICAgICAgfVxuICAgICAgZmllbGRzID0gZmllbGRzLmZpbHRlcigoa2V5KSA9PiBrZXkgaW5zdGFuY2VvZiBRdWVyeVJhdyB8fCBtZXRhLmZpZWxkc1trZXkgYXMgRmllbGRLZXk8RT5dKTtcbiAgICAgIGlmICghZmllbGRzLmxlbmd0aCB8fCAob3B0cy5wcmVmaXggJiYgIWZpZWxkcy5pbmNsdWRlcyhtZXRhLmlkKSkpIHtcbiAgICAgICAgZmllbGRzID0gW21ldGEuaWQsIC4uLmZpZWxkc107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpZWxkcyA9IGdldEtleXMobWV0YS5maWVsZHMpIGFzIEZpZWxkS2V5PEU+W107XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpZWxkc1xuICAgICAgLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIGlmIChrZXkgaW5zdGFuY2VvZiBRdWVyeVJhdykge1xuICAgICAgICAgIHJldHVybiBnZXRSYXdWYWx1ZSh7XG4gICAgICAgICAgICB2YWx1ZToga2V5LFxuICAgICAgICAgICAgZGlhbGVjdDogdGhpcyxcbiAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICAgICAgICBhdXRvUHJlZml4QWxpYXM6IG9wdHMuYXV0b1ByZWZpeEFsaWFzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmllbGQgPSBtZXRhLmZpZWxkc1trZXkgYXMgRmllbGRLZXk8RT5dO1xuXG4gICAgICAgIGlmIChmaWVsZC52aXJ0dWFsKSB7XG4gICAgICAgICAgcmV0dXJuIGdldFJhd1ZhbHVlKHtcbiAgICAgICAgICAgIHZhbHVlOiByYXcoZmllbGQudmlydHVhbC52YWx1ZSwga2V5KSxcbiAgICAgICAgICAgIGRpYWxlY3Q6IHRoaXMsXG4gICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICBlc2NhcGVkUHJlZml4LFxuICAgICAgICAgICAgYXV0b1ByZWZpeEFsaWFzOiBvcHRzLmF1dG9QcmVmaXhBbGlhcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5hbWUgPSBmaWVsZD8ubmFtZSA/PyAoa2V5IGFzIEZpZWxkS2V5PEU+KTtcbiAgICAgICAgY29uc3QgZmllbGRQYXRoID0gYCR7ZXNjYXBlZFByZWZpeH0ke3RoaXMuZXNjYXBlSWQobmFtZSl9YDtcblxuICAgICAgICByZXR1cm4gIW9wdHMuYXV0b1ByZWZpeEFsaWFzICYmIChuYW1lID09PSBrZXkgfHwgIWZpZWxkKSA/IGZpZWxkUGF0aCA6IGAke2ZpZWxkUGF0aH0gJHt0aGlzLmVzY2FwZUlkKChwcmVmaXggKyBrZXkpIGFzIEZpZWxkS2V5PEU+LCB0cnVlKX1gO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG5cbiAgcHJvamVjdFJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPiA9IHt9LCB7IHByZWZpeCB9OiB7IHByZWZpeD86IHN0cmluZyB9ID0ge30pOiB7IGZpZWxkczogc3RyaW5nOyB0YWJsZXM6IHN0cmluZyB9IHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHJlbGF0aW9ucyA9IGdldFByb2plY3RSZWxhdGlvbktleXMobWV0YSwgcHJvamVjdCk7XG4gICAgY29uc3QgaXNQcm9qZWN0QXJyYXkgPSBBcnJheS5pc0FycmF5KHByb2plY3QpO1xuICAgIGxldCBmaWVsZHMgPSAnJztcbiAgICBsZXQgdGFibGVzID0gJyc7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiByZWxhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1trZXldO1xuXG4gICAgICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJzFtJyB8fCByZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICAgIC8vICcxbScgYW5kICdtbScgc2hvdWxkIGJlIHJlc29sdmVkIGluIGEgaGlnaGVyIGxheWVyIGJlY2F1c2UgdGhleSB3aWxsIG5lZWQgbXVsdGlwbGUgcXVlcmllc1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgam9pblJlbEFsaWFzID0gcHJlZml4ID8gcHJlZml4ICsgJy4nICsga2V5IDoga2V5O1xuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICAgIGNvbnN0IHJlbFByb2plY3QgPSBwcm9qZWN0W2tleSBhcyBzdHJpbmddO1xuICAgICAgY29uc3QgcmVsUXVlcnkgPSBpc1Byb2plY3RBcnJheSA/IHt9IDogQXJyYXkuaXNBcnJheShyZWxQcm9qZWN0KSA/IHsgJHByb2plY3Q6IHJlbFByb2plY3QgfSA6IHJlbFByb2plY3Q7XG5cbiAgICAgIGNvbnN0IHJlbENvbHVtbnMgPSB0aGlzLnByb2plY3RGaWVsZHMocmVsRW50aXR5LCByZWxRdWVyeS4kcHJvamVjdCwge1xuICAgICAgICBwcmVmaXg6IGpvaW5SZWxBbGlhcyxcbiAgICAgICAgYXV0b1ByZWZpeEFsaWFzOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIGZpZWxkcyArPSAnLCAnICsgcmVsQ29sdW1ucztcblxuICAgICAgY29uc3QgeyBmaWVsZHM6IHN1YkNvbHVtbnMsIHRhYmxlczogc3ViVGFibGVzIH0gPSB0aGlzLnByb2plY3RSZWxhdGlvbnMocmVsRW50aXR5LCByZWxRdWVyeS4kcHJvamVjdCwge1xuICAgICAgICBwcmVmaXg6IGpvaW5SZWxBbGlhcyxcbiAgICAgIH0pO1xuXG4gICAgICBmaWVsZHMgKz0gc3ViQ29sdW1ucztcblxuICAgICAgY29uc3QgcmVsTWV0YSA9IGdldE1ldGEocmVsRW50aXR5KTtcbiAgICAgIGNvbnN0IHJlbEVudGl0eU5hbWUgPSB0aGlzLmVzY2FwZUlkKHJlbE1ldGEubmFtZSk7XG4gICAgICBjb25zdCByZWxQYXRoID0gcHJlZml4ID8gdGhpcy5lc2NhcGVJZChwcmVmaXgsIHRydWUpIDogdGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpO1xuICAgICAgY29uc3Qgam9pblR5cGUgPSByZWxRdWVyeS4kcmVxdWlyZWQgPyAnSU5ORVInIDogJ0xFRlQnO1xuICAgICAgY29uc3Qgam9pbkFsaWFzID0gdGhpcy5lc2NhcGVJZChqb2luUmVsQWxpYXMsIHRydWUpO1xuXG4gICAgICB0YWJsZXMgKz0gYCAke2pvaW5UeXBlfSBKT0lOICR7cmVsRW50aXR5TmFtZX0gJHtqb2luQWxpYXN9IE9OIGA7XG4gICAgICB0YWJsZXMgKz0gcmVsT3B0cy5yZWZlcmVuY2VzLm1hcCgoaXQpID0+IGAke2pvaW5BbGlhc30uJHt0aGlzLmVzY2FwZUlkKGl0LmZvcmVpZ24pfSA9ICR7cmVsUGF0aH0uJHt0aGlzLmVzY2FwZUlkKGl0LmxvY2FsKX1gKS5qb2luKCcgQU5EICcpO1xuXG4gICAgICBpZiAocmVsUXVlcnkuJGZpbHRlcikge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLndoZXJlKHJlbEVudGl0eSwgcmVsUXVlcnkuJGZpbHRlciwgeyBwcmVmaXg6IGtleSwgY2xhdXNlOiBmYWxzZSB9KTtcbiAgICAgICAgdGFibGVzICs9IGAgQU5EICR7ZmlsdGVyfWA7XG4gICAgICB9XG5cbiAgICAgIHRhYmxlcyArPSBzdWJUYWJsZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgZmllbGRzLCB0YWJsZXMgfTtcbiAgfVxuXG4gIHNlbGVjdDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPiwgb3B0czogUXVlcnlPcHRpb25zID0ge30pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcHJlZml4ID0gb3B0cy5wcmVmaXggPz8gKG9wdHMuYXV0b1ByZWZpeCB8fCBpc1Byb2plY3RpbmdSZWxhdGlvbnMobWV0YSwgcW0uJHByb2plY3QpKSA/IG1ldGEubmFtZSA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMucHJvamVjdEZpZWxkcyhlbnRpdHksIHFtLiRwcm9qZWN0LCB7IHByZWZpeCB9KTtcbiAgICBjb25zdCB7IGZpZWxkczogcmVsYXRpb25GaWVsZHMsIHRhYmxlcyB9ID0gdGhpcy5wcm9qZWN0UmVsYXRpb25zKGVudGl0eSwgcW0uJHByb2plY3QpO1xuXG4gICAgcmV0dXJuIGBTRUxFQ1QgJHtmaWVsZHN9JHtyZWxhdGlvbkZpZWxkc30gRlJPTSAke3RoaXMuZXNjYXBlSWQobWV0YS5uYW1lKX0ke3RhYmxlc31gO1xuICB9XG5cbiAgd2hlcmU8RT4oZW50aXR5OiBUeXBlPEU+LCBmaWx0ZXI6IFF1ZXJ5RmlsdGVyPEU+ID0ge30sIG9wdHM6IFF1ZXJ5RmlsdGVyT3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHsgdXNlUHJlY2VkZW5jZSwgY2xhdXNlID0gJ1dIRVJFJywgc29mdERlbGV0ZSB9ID0gb3B0cztcblxuICAgIGZpbHRlciA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgZmlsdGVyKTtcblxuICAgIGlmIChtZXRhLnNvZnREZWxldGUgJiYgKHNvZnREZWxldGUgfHwgc29mdERlbGV0ZSA9PT0gdW5kZWZpbmVkKSAmJiBjbGF1c2UgIT09ICdIQVZJTkcnICYmICFmaWx0ZXJbbWV0YS5zb2Z0RGVsZXRlIGFzIHN0cmluZ10pIHtcbiAgICAgIGZpbHRlclttZXRhLnNvZnREZWxldGUgYXMgc3RyaW5nXSA9IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGZpbHRlcik7XG5cbiAgICBpZiAoIWVudHJpZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgLi4ub3B0cywgdXNlUHJlY2VkZW5jZTogZW50cmllcy5sZW5ndGggPiAxIH07XG5cbiAgICBsZXQgc3FsID0gZW50cmllcy5tYXAoKFtrZXksIHZhbF0pID0+IHRoaXMuY29tcGFyZShlbnRpdHksIGtleSBhcyBrZXlvZiBRdWVyeUZpbHRlck1hcDxFPiwgdmFsIGFzIGFueSwgb3B0aW9ucykpLmpvaW4oYCBBTkQgYCk7XG5cbiAgICBpZiAodXNlUHJlY2VkZW5jZSkge1xuICAgICAgc3FsID0gYCgke3NxbH0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhdXNlID8gYCAke2NsYXVzZX0gJHtzcWx9YCA6IHNxbDtcbiAgfVxuXG4gIGNvbXBhcmU8RSwgSyBleHRlbmRzIGtleW9mIFF1ZXJ5RmlsdGVyTWFwPEU+PihlbnRpdHk6IFR5cGU8RT4sIGtleTogSywgdmFsOiBRdWVyeUZpbHRlck1hcDxFPltLXSwgb3B0cz86IFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgICBpZiAodmFsIGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICAgIGlmIChrZXkgPT09ICckZXhpc3RzJyB8fCBrZXkgPT09ICckbmV4aXN0cycpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWwgYXMgUXVlcnlSYXc7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gZ2V0UmF3VmFsdWUoe1xuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGRpYWxlY3Q6IHRoaXMsXG4gICAgICAgICAgcHJlZml4OiBtZXRhLm5hbWUsXG4gICAgICAgICAgZXNjYXBlZFByZWZpeDogdGhpcy5lc2NhcGVJZChtZXRhLm5hbWUsIGZhbHNlLCB0cnVlKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBgJHtrZXkgPT09ICckZXhpc3RzJyA/ICdFWElTVFMnIDogJ05PVCBFWElTVFMnfSAoJHtxdWVyeX0pYDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbXBhcmlzb25LZXkgPSB0aGlzLmdldENvbXBhcmlzb25LZXkoZW50aXR5LCBrZXkgYXMgRmllbGRLZXk8RT4sIG9wdHMpO1xuICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9ID0gJHt2YWwudmFsdWV9YDtcbiAgICB9XG5cbiAgICBpZiAoa2V5ID09PSAnJHRleHQnKSB7XG4gICAgICBjb25zdCBzZWFyY2ggPSB2YWwgYXMgUXVlcnlUZXh0U2VhcmNoT3B0aW9uczxFPjtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IHNlYXJjaC4kZmllbGRzLm1hcCgoZmllbGQpID0+IHRoaXMuZXNjYXBlSWQobWV0YS5maWVsZHNbZmllbGRdPy5uYW1lID8/IGZpZWxkKSk7XG4gICAgICByZXR1cm4gYCR7dGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpfSBNQVRDSCB7JHtmaWVsZHMuam9pbignICcpfX0gOiAke3RoaXMuZXNjYXBlKHNlYXJjaC4kdmFsdWUpfWA7XG4gICAgfVxuXG4gICAgaWYgKGtleSA9PT0gJyRhbmQnIHx8IGtleSA9PT0gJyRvcicgfHwga2V5ID09PSAnJG5vdCcgfHwga2V5ID09PSAnJG5vcicpIHtcbiAgICAgIGNvbnN0IG5lZ2F0ZU9wZXJhdG9yTWFwID0ge1xuICAgICAgICAkbm90OiAnJGFuZCcsXG4gICAgICAgICRub3I6ICckb3InLFxuICAgICAgfSBhcyBjb25zdDtcblxuICAgICAgY29uc3Qgb3A6ICckYW5kJyB8ICckb3InID0gbmVnYXRlT3BlcmF0b3JNYXBba2V5IGFzIHN0cmluZ10gPz8ga2V5O1xuICAgICAgY29uc3QgbmVnYXRlID0ga2V5IGluIG5lZ2F0ZU9wZXJhdG9yTWFwID8gJ05PVCAnIDogJyc7XG5cbiAgICAgIGNvbnN0IHZhbHVlcyA9IHZhbCBhcyBRdWVyeUZpbHRlckxvZ2ljYWw8RT47XG4gICAgICBjb25zdCBoYXNNYW55SXRlbXMgPSB2YWx1ZXMubGVuZ3RoID4gMTtcbiAgICAgIGNvbnN0IGxvZ2ljYWxDb21wYXJpc29uID0gdmFsdWVzXG4gICAgICAgIC5tYXAoKGZpbHRlckVudHJ5KSA9PiB7XG4gICAgICAgICAgaWYgKGZpbHRlckVudHJ5IGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRSYXdWYWx1ZSh7XG4gICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJFbnRyeSxcbiAgICAgICAgICAgICAgZGlhbGVjdDogdGhpcyxcbiAgICAgICAgICAgICAgcHJlZml4OiBvcHRzLnByZWZpeCxcbiAgICAgICAgICAgICAgZXNjYXBlZFByZWZpeDogdGhpcy5lc2NhcGVJZChvcHRzLnByZWZpeCwgdHJ1ZSwgdHJ1ZSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMud2hlcmUoZW50aXR5LCBmaWx0ZXJFbnRyeSwge1xuICAgICAgICAgICAgcHJlZml4OiBvcHRzLnByZWZpeCxcbiAgICAgICAgICAgIHVzZVByZWNlZGVuY2U6IGhhc01hbnlJdGVtcyAmJiAhQXJyYXkuaXNBcnJheShmaWx0ZXJFbnRyeSkgJiYgZ2V0S2V5cyhmaWx0ZXJFbnRyeSkubGVuZ3RoID4gMSxcbiAgICAgICAgICAgIGNsYXVzZTogZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKG9wID09PSAnJG9yJyA/ICcgT1IgJyA6ICcgQU5EICcpO1xuXG4gICAgICByZXR1cm4gKG9wdHMudXNlUHJlY2VkZW5jZSB8fCBuZWdhdGUpICYmIGhhc01hbnlJdGVtcyA/IGAke25lZ2F0ZX0oJHtsb2dpY2FsQ29tcGFyaXNvbn0pYCA6IGAke25lZ2F0ZX0ke2xvZ2ljYWxDb21wYXJpc29ufWA7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbCkgPyB7ICRpbjogdmFsIH0gOiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWwgIT09IG51bGwgPyB2YWwgOiB7ICRlcTogdmFsIH07XG4gICAgY29uc3Qgb3BlcmF0b3JzID0gZ2V0S2V5cyh2YWx1ZSkgYXMgKGtleW9mIFF1ZXJ5RmlsdGVyRmllbGRPcGVyYXRvck1hcDxFPilbXTtcbiAgICBjb25zdCBjb21wYXJpc29ucyA9IG9wZXJhdG9ycy5tYXAoKG9wKSA9PiB0aGlzLmNvbXBhcmVGaWVsZE9wZXJhdG9yKGVudGl0eSwga2V5IGFzIEZpZWxkS2V5PEU+LCBvcCwgdmFsdWVbb3BdLCBvcHRzKSkuam9pbignIEFORCAnKTtcblxuICAgIHJldHVybiBvcGVyYXRvcnMubGVuZ3RoID4gMSA/IGAoJHtjb21wYXJpc29uc30pYCA6IGNvbXBhcmlzb25zO1xuICB9XG5cbiAgY29tcGFyZUZpZWxkT3BlcmF0b3I8RSwgSyBleHRlbmRzIGtleW9mIFF1ZXJ5RmlsdGVyRmllbGRPcGVyYXRvck1hcDxFPj4oXG4gICAgZW50aXR5OiBUeXBlPEU+LFxuICAgIGtleTogRmllbGRLZXk8RT4sXG4gICAgb3A6IEssXG4gICAgdmFsOiBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8RT5bS10sXG4gICAgb3B0cz86IFF1ZXJ5T3B0aW9uc1xuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbXBhcmlzb25LZXkgPSB0aGlzLmdldENvbXBhcmlzb25LZXkoZW50aXR5LCBrZXksIG9wdHMpO1xuICAgIHN3aXRjaCAob3ApIHtcbiAgICAgIGNhc2UgJyRlcSc6XG4gICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgPyBgJHtjb21wYXJpc29uS2V5fSBJUyBOVUxMYCA6IGAke2NvbXBhcmlzb25LZXl9ID0gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckbmUnOlxuICAgICAgICByZXR1cm4gdmFsID09PSBudWxsID8gYCR7Y29tcGFyaXNvbktleX0gSVMgTk9UIE5VTExgIDogYCR7Y29tcGFyaXNvbktleX0gPD4gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckbm90JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShlbnRpdHksICckbm90JywgW3sgW2tleV06IHZhbCB9XSBhcyBhbnksIG9wdHMpO1xuICAgICAgY2FzZSAnJGd0JzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9ID4gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckZ3RlJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9ID49ICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJGx0JzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IDwgJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckbHRlJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IDw9ICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJHN0YXJ0c1dpdGgnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gTElLRSAke3RoaXMuZXNjYXBlKGAke3ZhbH0lYCl9YDtcbiAgICAgIGNhc2UgJyRpc3RhcnRzV2l0aCc6XG4gICAgICAgIHJldHVybiBgTE9XRVIoJHtjb21wYXJpc29uS2V5fSkgTElLRSAke3RoaXMuZXNjYXBlKCh2YWwgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpICsgJyUnKX1gO1xuICAgICAgY2FzZSAnJGVuZHNXaXRoJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IExJS0UgJHt0aGlzLmVzY2FwZShgJSR7dmFsfWApfWA7XG4gICAgICBjYXNlICckaWVuZHNXaXRoJzpcbiAgICAgICAgcmV0dXJuIGBMT1dFUigke2NvbXBhcmlzb25LZXl9KSBMSUtFICR7dGhpcy5lc2NhcGUoJyUnICsgKHZhbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkpfWA7XG4gICAgICBjYXNlICckaW5jbHVkZXMnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gTElLRSAke3RoaXMuZXNjYXBlKGAlJHt2YWx9JWApfWA7XG4gICAgICBjYXNlICckaWluY2x1ZGVzJzpcbiAgICAgICAgcmV0dXJuIGBMT1dFUigke2NvbXBhcmlzb25LZXl9KSBMSUtFICR7dGhpcy5lc2NhcGUoJyUnICsgKHZhbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkgKyAnJScpfWA7XG4gICAgICBjYXNlICckaWxpa2UnOlxuICAgICAgICByZXR1cm4gYExPV0VSKCR7Y29tcGFyaXNvbktleX0pIExJS0UgJHt0aGlzLmVzY2FwZSgodmFsIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSl9YDtcbiAgICAgIGNhc2UgJyRsaWtlJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IExJS0UgJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckaW4nOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gSU4gKCR7dGhpcy5lc2NhcGUodmFsKX0pYDtcbiAgICAgIGNhc2UgJyRuaW4nOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gTk9UIElOICgke3RoaXMuZXNjYXBlKHZhbCl9KWA7XG4gICAgICBjYXNlICckcmVnZXgnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gUkVHRVhQICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgVHlwZUVycm9yKGB1bmtub3duIG9wZXJhdG9yOiAke29wfWApO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbXBhcmlzb25LZXk8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IEZpZWxkS2V5PEU+LCB7IHByZWZpeCB9OiBRdWVyeU9wdGlvbnMgPSB7fSk6IFNjYWxhciB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBlc2NhcGVkUHJlZml4ID0gdGhpcy5lc2NhcGVJZChwcmVmaXgsIHRydWUsIHRydWUpO1xuICAgIGNvbnN0IGZpZWxkID0gbWV0YS5maWVsZHNba2V5XTtcblxuICAgIGlmIChmaWVsZD8udmlydHVhbCkge1xuICAgICAgcmV0dXJuIGdldFJhd1ZhbHVlKHtcbiAgICAgICAgdmFsdWU6IGZpZWxkLnZpcnR1YWwsXG4gICAgICAgIGRpYWxlY3Q6IHRoaXMsXG4gICAgICAgIHByZWZpeCxcbiAgICAgICAgZXNjYXBlZFByZWZpeCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBlc2NhcGVkUHJlZml4ICsgdGhpcy5lc2NhcGVJZChmaWVsZD8ubmFtZSA/PyBrZXkpO1xuICB9XG5cbiAgZ3JvdXA8RT4oZW50aXR5OiBUeXBlPEU+LCBmaWVsZHM6IHJlYWRvbmx5IEZpZWxkS2V5PEU+W10sIG9wdHM6IFF1ZXJ5T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBpZiAoIWZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgbmFtZXMgPSBmaWVsZHMubWFwKChrZXkpID0+IHRoaXMuZXNjYXBlSWQobWV0YS5maWVsZHNba2V5XT8ubmFtZSA/PyBrZXkpKS5qb2luKCcsICcpO1xuICAgIHJldHVybiBgIEdST1VQIEJZICR7bmFtZXN9YDtcbiAgfVxuXG4gIHNvcnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBzb3J0OiBRdWVyeVNvcnQ8RT4sIHsgcHJlZml4IH06IFF1ZXJ5T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCBzb3J0TWFwID0gYnVpbGRTb3J0TWFwKHNvcnQpO1xuICAgIGlmICghaGFzS2V5cyhzb3J0TWFwKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGZsYXR0ZW5lZFNvcnQgPSBmbGF0T2JqZWN0KHNvcnRNYXAsIHByZWZpeCk7XG4gICAgY29uc3QgZGlyZWN0aW9uTWFwID0geyAxOiAnJywgYXNjOiAnJywgJy0xJzogJyBERVNDJywgZGVzYzogJyBERVNDJyB9IGFzIGNvbnN0O1xuICAgIGNvbnN0IG9yZGVyID0gT2JqZWN0LmVudHJpZXMoZmxhdHRlbmVkU29ydClcbiAgICAgIC5tYXAoKFtrZXksIHNvcnRdKSA9PiB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBtZXRhLmZpZWxkc1trZXldPy5uYW1lID8/IGtleTtcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gZGlyZWN0aW9uTWFwW3NvcnQgYXMgUXVlcnlTb3J0RGlyZWN0aW9uXTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXNjYXBlSWQobmFtZSkgKyBkaXJlY3Rpb247XG4gICAgICB9KVxuICAgICAgLmpvaW4oJywgJyk7XG4gICAgcmV0dXJuIGAgT1JERVIgQlkgJHtvcmRlcn1gO1xuICB9XG5cbiAgcGFnZXIob3B0czogUXVlcnlQYWdlcik6IHN0cmluZyB7XG4gICAgbGV0IHNxbCA9ICcnO1xuICAgIGlmIChvcHRzLiRsaW1pdCkge1xuICAgICAgc3FsICs9IGAgTElNSVQgJHtOdW1iZXIob3B0cy4kbGltaXQpfWA7XG4gICAgfVxuICAgIGlmIChvcHRzLiRza2lwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNxbCArPSBgIE9GRlNFVCAke051bWJlcihvcHRzLiRza2lwKX1gO1xuICAgIH1cbiAgICByZXR1cm4gc3FsO1xuICB9XG5cbiAgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlTZWFyY2g8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlYXJjaDogUXVlcnk8RT4gPSB7XG4gICAgICAuLi5xbSxcbiAgICAgICRwcm9qZWN0OiBbcmF3KCdDT1VOVCgqKScsICdjb3VudCcpXSxcbiAgICB9O1xuXG4gICAgZGVsZXRlIHNlYXJjaC4kc29ydDtcbiAgICBkZWxldGUgc2VhcmNoLiRza2lwO1xuICAgIGRlbGV0ZSBzZWFyY2guJGxpbWl0O1xuXG4gICAgY29uc3Qgc2VsZWN0ID0gdGhpcy5zZWxlY3Q8RT4oZW50aXR5LCBzZWFyY2gpO1xuICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5jcml0ZXJpYShlbnRpdHksIHNlYXJjaCwgb3B0cyk7XG5cbiAgICByZXR1cm4gc2VsZWN0ICsgY3JpdGVyaWE7XG4gIH1cblxuICBmaW5kPEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLnNlbGVjdDxFPihlbnRpdHksIHFtLCBvcHRzKTtcbiAgICBjb25zdCBjcml0ZXJpYSA9IHRoaXMuY3JpdGVyaWEoZW50aXR5LCBxbSwgb3B0cyk7XG4gICAgcmV0dXJuIHNlbGVjdCArIGNyaXRlcmlhO1xuICB9XG5cbiAgaW5zZXJ0PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRSB8IEVbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWNvcmRzID0gZ2V0UGVyc2lzdGFibGVzKG1ldGEsIHBheWxvYWQsICdvbkluc2VydCcpO1xuICAgIGNvbnN0IGtleXMgPSBnZXRLZXlzKHJlY29yZHNbMF0pO1xuICAgIGNvbnN0IGNvbHVtbnMgPSBrZXlzLm1hcCgoa2V5KSA9PiB0aGlzLmVzY2FwZUlkKG1ldGEuZmllbGRzW2tleV0ubmFtZSkpO1xuICAgIGNvbnN0IHZhbHVlcyA9IHJlY29yZHMubWFwKChyZWNvcmQpID0+IGtleXMubWFwKChrZXkpID0+IHRoaXMuZXNjYXBlKHJlY29yZFtrZXldKSkuam9pbignLCAnKSkuam9pbignKSwgKCcpO1xuICAgIHJldHVybiBgSU5TRVJUIElOVE8gJHt0aGlzLmVzY2FwZUlkKG1ldGEubmFtZSl9ICgke2NvbHVtbnMuam9pbignLCAnKX0pIFZBTFVFUyAoJHt2YWx1ZXN9KWA7XG4gIH1cblxuICB1cGRhdGU8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWNvcmQgPSBnZXRQZXJzaXN0YWJsZShtZXRhLCBwYXlsb2FkLCAnb25VcGRhdGUnKTtcbiAgICBjb25zdCBrZXlzID0gZ2V0S2V5cyhyZWNvcmQpO1xuICAgIGNvbnN0IGVudHJpZXMgPSBrZXlzLm1hcCgoa2V5KSA9PiBgJHt0aGlzLmVzY2FwZUlkKGtleSl9ID0gJHt0aGlzLmVzY2FwZShwYXlsb2FkW2tleV0pfWApLmpvaW4oJywgJyk7XG4gICAgY29uc3QgY3JpdGVyaWEgPSB0aGlzLmNyaXRlcmlhKGVudGl0eSwgcW0sIG9wdHMpO1xuICAgIHJldHVybiBgVVBEQVRFICR7dGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpfSBTRVQgJHtlbnRyaWVzfSR7Y3JpdGVyaWF9YDtcbiAgfVxuXG4gIGRlbGV0ZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzOiBRdWVyeU9wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGlmIChvcHRzLnNvZnREZWxldGUgfHwgb3B0cy5zb2Z0RGVsZXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChtZXRhLnNvZnREZWxldGUpIHtcbiAgICAgICAgY29uc3QgY3JpdGVyaWEgPSB0aGlzLmNyaXRlcmlhKGVudGl0eSwgcW0sIG9wdHMpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldEZpZWxkQ2FsbGJhY2tWYWx1ZShtZXRhLmZpZWxkc1ttZXRhLnNvZnREZWxldGVdLm9uRGVsZXRlKTtcbiAgICAgICAgcmV0dXJuIGBVUERBVEUgJHt0aGlzLmVzY2FwZUlkKG1ldGEubmFtZSl9IFNFVCAke3RoaXMuZXNjYXBlSWQobWV0YS5zb2Z0RGVsZXRlKX0gPSAke3RoaXMuZXNjYXBlKHZhbHVlKX0ke2NyaXRlcmlhfWA7XG4gICAgICB9IGVsc2UgaWYgKG9wdHMuc29mdERlbGV0ZSkge1xuICAgICAgICB0aHJvdyBUeXBlRXJyb3IoYCcke21ldGEubmFtZX0nIGhhcyBub3QgZW5hYmxlZCAnc29mdERlbGV0ZSdgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjcml0ZXJpYSA9IHRoaXMuY3JpdGVyaWEoZW50aXR5LCBxbSwgb3B0cyk7XG5cbiAgICByZXR1cm4gYERFTEVURSBGUk9NICR7dGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpfSR7Y3JpdGVyaWF9YDtcbiAgfVxuXG4gIGVzY2FwZUlkKHZhbDogc3RyaW5nLCBmb3JiaWRRdWFsaWZpZWQ/OiBib29sZWFuLCBhZGREb3Q/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmICghZm9yYmlkUXVhbGlmaWVkICYmIHZhbC5pbmNsdWRlcygnLicpKSB7XG4gICAgICByZXR1cm4gdmFsXG4gICAgICAgIC5zcGxpdCgnLicpXG4gICAgICAgIC5tYXAoKGl0KSA9PiB0aGlzLmVzY2FwZUlkKGl0KSlcbiAgICAgICAgLmpvaW4oJy4nKTtcbiAgICB9XG5cbiAgICAvLyBzb3VyY2VkIGZyb20gJ2VzY2FwZUlkJyBmdW5jdGlvbiBoZXJlIGh0dHBzOi8vZ2l0aHViLmNvbS9teXNxbGpzL3NxbHN0cmluZy9ibG9iL21hc3Rlci9saWIvU3FsU3RyaW5nLmpzXG4gICAgY29uc3QgZXNjYXBlZCA9IHRoaXMuZXNjYXBlSWRDaGFyICsgdmFsLnJlcGxhY2UodGhpcy5lc2NhcGVJZFJlZ2V4LCB0aGlzLmVzY2FwZUlkQ2hhciArIHRoaXMuZXNjYXBlSWRDaGFyKSArIHRoaXMuZXNjYXBlSWRDaGFyO1xuXG4gICAgY29uc3Qgc3VmZml4ID0gYWRkRG90ID8gJy4nIDogJyc7XG5cbiAgICByZXR1cm4gZXNjYXBlZCArIHN1ZmZpeDtcbiAgfVxuXG4gIGVzY2FwZSh2YWx1ZTogYW55KTogU2NhbGFyIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBRdWVyeVJhdykge1xuICAgICAgcmV0dXJuIGdldFJhd1ZhbHVlKHsgdmFsdWUsIGRpYWxlY3Q6IHRoaXMgfSk7XG4gICAgfVxuICAgIHJldHVybiBlc2NhcGUodmFsdWUpO1xuICB9XG59XG4iXX0=

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./abstractSqlDialect.js"), exports);
tslib_1.__exportStar(require("./mysqlDialect.js"), exports);
tslib_1.__exportStar(require("./postgresDialect.js"), exports);
tslib_1.__exportStar(require("./sqliteDialect.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGlhbGVjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrRUFBd0M7QUFDeEMsNERBQWtDO0FBQ2xDLCtEQUFxQztBQUNyQyw2REFBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0U3FsRGlhbGVjdC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL215c3FsRGlhbGVjdC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Bvc3RncmVzRGlhbGVjdC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NxbGl0ZURpYWxlY3QuanMnO1xuIl19
export * from './abstractSqlDialect.js';
export * from './mysqlDialect.js';
export * from './postgresDialect.js';
export * from './sqliteDialect.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGlhbGVjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdFNxbERpYWxlY3QuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9teXNxbERpYWxlY3QuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3N0Z3Jlc0RpYWxlY3QuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcWxpdGVEaWFsZWN0LmpzJztcbiJdfQ==

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MySqlDialect = void 0;
const decorator_1 = require("../entity/decorator");
const abstractSqlDialect_js_1 = require("./abstractSqlDialect.js");
class MySqlDialect extends abstractSqlDialect_js_1.AbstractSqlDialect {
import { getMeta } from '../entity/decorator/index.js';
import { AbstractSqlDialect } from './abstractSqlDialect.js';
export class MySqlDialect extends AbstractSqlDialect {
constructor() {

@@ -12,3 +9,3 @@ super('`', 'START TRANSACTION');

if (key === '$text') {
const meta = (0, decorator_1.getMeta)(entity);
const meta = getMeta(entity);
const search = val;

@@ -21,3 +18,2 @@ const fields = search.$fields.map((field) => this.escapeId(meta.fields[field]?.name ?? field));

}
exports.MySqlDialect = MySqlDialect;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlzcWxEaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvbXlzcWxEaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUE4QztBQUU5QyxtRUFBNkQ7QUFFN0QsTUFBYSxZQUFhLFNBQVEsMENBQWtCO0lBQ2xEO1FBQ0UsS0FBSyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFUSxPQUFPLENBQXVDLE1BQWUsRUFBRSxHQUFNLEVBQUUsR0FBeUIsRUFBRSxJQUE2QjtRQUN0SSxJQUFJLEdBQUcsS0FBSyxPQUFPLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQkFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLE1BQU0sTUFBTSxHQUFHLEdBQWdDLENBQUM7WUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMvRixPQUFPLFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQzdFO1FBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRjtBQWRELG9DQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJy4uL2VudGl0eS9kZWNvcmF0b3InO1xuaW1wb3J0IHsgUXVlcnlDb21wYXJpc29uT3B0aW9ucywgUXVlcnlGaWx0ZXJNYXAsIFF1ZXJ5VGV4dFNlYXJjaE9wdGlvbnMsIFR5cGUgfSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IEFic3RyYWN0U3FsRGlhbGVjdCB9IGZyb20gJy4vYWJzdHJhY3RTcWxEaWFsZWN0LmpzJztcblxuZXhwb3J0IGNsYXNzIE15U3FsRGlhbGVjdCBleHRlbmRzIEFic3RyYWN0U3FsRGlhbGVjdCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdgJywgJ1NUQVJUIFRSQU5TQUNUSU9OJyk7XG4gIH1cblxuICBvdmVycmlkZSBjb21wYXJlPEUsIEsgZXh0ZW5kcyBrZXlvZiBRdWVyeUZpbHRlck1hcDxFPj4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IEssIHZhbDogUXVlcnlGaWx0ZXJNYXA8RT5bS10sIG9wdHM/OiBRdWVyeUNvbXBhcmlzb25PcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAoa2V5ID09PSAnJHRleHQnKSB7XG4gICAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgICAgY29uc3Qgc2VhcmNoID0gdmFsIGFzIFF1ZXJ5VGV4dFNlYXJjaE9wdGlvbnM8RT47XG4gICAgICBjb25zdCBmaWVsZHMgPSBzZWFyY2guJGZpZWxkcy5tYXAoKGZpZWxkKSA9PiB0aGlzLmVzY2FwZUlkKG1ldGEuZmllbGRzW2ZpZWxkXT8ubmFtZSA/PyBmaWVsZCkpO1xuICAgICAgcmV0dXJuIGBNQVRDSCgke2ZpZWxkcy5qb2luKCcsICcpfSkgQUdBSU5TVCgke3RoaXMuZXNjYXBlKHNlYXJjaC4kdmFsdWUpfSlgO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuY29tcGFyZShlbnRpdHksIGtleSwgdmFsLCBvcHRzKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlzcWxEaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvbXlzcWxEaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxNQUFNLE9BQU8sWUFBYSxTQUFRLGtCQUFrQjtJQUNsRDtRQUNFLEtBQUssQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVEsT0FBTyxDQUF1QyxNQUFlLEVBQUUsR0FBTSxFQUFFLEdBQXlCLEVBQUUsSUFBNkI7UUFDdEksSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QixNQUFNLE1BQU0sR0FBRyxHQUFnQyxDQUFDO1lBQ2hELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0YsT0FBTyxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUM3RTtRQUNELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5L2RlY29yYXRvci9pbmRleC5qcyc7XG5pbXBvcnQgeyBRdWVyeUNvbXBhcmlzb25PcHRpb25zLCBRdWVyeUZpbHRlck1hcCwgUXVlcnlUZXh0U2VhcmNoT3B0aW9ucywgVHlwZSB9IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxEaWFsZWN0IH0gZnJvbSAnLi9hYnN0cmFjdFNxbERpYWxlY3QuanMnO1xuXG5leHBvcnQgY2xhc3MgTXlTcWxEaWFsZWN0IGV4dGVuZHMgQWJzdHJhY3RTcWxEaWFsZWN0IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ2AnLCAnU1RBUlQgVFJBTlNBQ1RJT04nKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNvbXBhcmU8RSwgSyBleHRlbmRzIGtleW9mIFF1ZXJ5RmlsdGVyTWFwPEU+PihlbnRpdHk6IFR5cGU8RT4sIGtleTogSywgdmFsOiBRdWVyeUZpbHRlck1hcDxFPltLXSwgb3B0cz86IFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmIChrZXkgPT09ICckdGV4dCcpIHtcbiAgICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgICBjb25zdCBzZWFyY2ggPSB2YWwgYXMgUXVlcnlUZXh0U2VhcmNoT3B0aW9uczxFPjtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IHNlYXJjaC4kZmllbGRzLm1hcCgoZmllbGQpID0+IHRoaXMuZXNjYXBlSWQobWV0YS5maWVsZHNbZmllbGRdPy5uYW1lID8/IGZpZWxkKSk7XG4gICAgICByZXR1cm4gYE1BVENIKCR7ZmllbGRzLmpvaW4oJywgJyl9KSBBR0FJTlNUKCR7dGhpcy5lc2NhcGUoc2VhcmNoLiR2YWx1ZSl9KWA7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5jb21wYXJlKGVudGl0eSwga2V5LCB2YWwsIG9wdHMpO1xuICB9XG59XG4iXX0=

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PostgresDialect = void 0;
const decorator_1 = require("../entity/decorator");
const abstractSqlDialect_js_1 = require("./abstractSqlDialect.js");
class PostgresDialect extends abstractSqlDialect_js_1.AbstractSqlDialect {
import { getMeta } from '../entity/decorator/index.js';
import { AbstractSqlDialect } from './abstractSqlDialect.js';
export class PostgresDialect extends AbstractSqlDialect {
constructor() {

@@ -12,3 +9,3 @@ super('"', 'BEGIN TRANSACTION');

const sql = super.insert(entity, payload);
const meta = (0, decorator_1.getMeta)(entity);
const meta = getMeta(entity);
const idName = meta.fields[meta.id].name;

@@ -19,3 +16,3 @@ return `${sql} RETURNING ${this.escapeId(idName)} ${this.escapeId('id')}`;

if (key === '$text') {
const meta = (0, decorator_1.getMeta)(entity);
const meta = getMeta(entity);
const search = val;

@@ -45,3 +42,2 @@ const fields = search.$fields.map((field) => this.escapeId(meta.fields[field]?.name ?? field)).join(` || ' ' || `);

}
exports.PostgresDialect = PostgresDialect;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGdyZXNEaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvcG9zdGdyZXNEaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVNBLG1EQUE4QztBQUM5QyxtRUFBNkQ7QUFFN0QsTUFBYSxlQUFnQixTQUFRLDBDQUFrQjtJQUNyRDtRQUNFLEtBQUssQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVEsTUFBTSxDQUFJLE1BQWUsRUFBRSxPQUFnQjtRQUNsRCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFBLG1CQUFPLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3pDLE9BQU8sR0FBRyxHQUFHLGNBQWMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVRLE9BQU8sQ0FBdUMsTUFBZSxFQUFFLEdBQU0sRUFBRSxHQUF5QixFQUFFLElBQTZCO1FBQ3RJLElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRTtZQUNuQixNQUFNLElBQUksR0FBRyxJQUFBLG1CQUFPLEVBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUcsR0FBZ0MsQ0FBQztZQUNoRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuSCxPQUFPLGVBQWUsTUFBTSxtQkFBbUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUM5RTtRQUNELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVEsb0JBQW9CLENBQzNCLE1BQWUsRUFDZixHQUFnQixFQUNoQixFQUFLLEVBQ0wsR0FBc0MsRUFDdEMsSUFBbUI7UUFFbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0QsUUFBUSxFQUFFLEVBQUU7WUFDVixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8sR0FBRyxhQUFhLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxHQUFHLGFBQWEsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzVELEtBQUssWUFBWTtnQkFDZixPQUFPLEdBQUcsYUFBYSxVQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0QsS0FBSyxRQUFRO2dCQUNYLE9BQU8sR0FBRyxhQUFhLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RELEtBQUssUUFBUTtnQkFDWCxPQUFPLEdBQUcsYUFBYSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsRDtnQkFDRSxPQUFPLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0NBQ0Y7QUE3Q0QsMENBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUXVlcnlDb21wYXJpc29uT3B0aW9ucyxcbiAgUXVlcnlGaWx0ZXJNYXAsXG4gIFF1ZXJ5T3B0aW9ucyxcbiAgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwLFxuICBRdWVyeVRleHRTZWFyY2hPcHRpb25zLFxuICBUeXBlLFxuICBGaWVsZEtleSxcbn0gZnJvbSAnLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5L2RlY29yYXRvcic7XG5pbXBvcnQgeyBBYnN0cmFjdFNxbERpYWxlY3QgfSBmcm9tICcuL2Fic3RyYWN0U3FsRGlhbGVjdC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQb3N0Z3Jlc0RpYWxlY3QgZXh0ZW5kcyBBYnN0cmFjdFNxbERpYWxlY3Qge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignXCInLCAnQkVHSU4gVFJBTlNBQ1RJT04nKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGluc2VydDxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUgfCBFW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHNxbCA9IHN1cGVyLmluc2VydChlbnRpdHksIHBheWxvYWQpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWROYW1lID0gbWV0YS5maWVsZHNbbWV0YS5pZF0ubmFtZTtcbiAgICByZXR1cm4gYCR7c3FsfSBSRVRVUk5JTkcgJHt0aGlzLmVzY2FwZUlkKGlkTmFtZSl9ICR7dGhpcy5lc2NhcGVJZCgnaWQnKX1gO1xuICB9XG5cbiAgb3ZlcnJpZGUgY29tcGFyZTxFLCBLIGV4dGVuZHMga2V5b2YgUXVlcnlGaWx0ZXJNYXA8RT4+KGVudGl0eTogVHlwZTxFPiwga2V5OiBLLCB2YWw6IFF1ZXJ5RmlsdGVyTWFwPEU+W0tdLCBvcHRzPzogUXVlcnlDb21wYXJpc29uT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKGtleSA9PT0gJyR0ZXh0Jykge1xuICAgICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICAgIGNvbnN0IHNlYXJjaCA9IHZhbCBhcyBRdWVyeVRleHRTZWFyY2hPcHRpb25zPEU+O1xuICAgICAgY29uc3QgZmllbGRzID0gc2VhcmNoLiRmaWVsZHMubWFwKChmaWVsZCkgPT4gdGhpcy5lc2NhcGVJZChtZXRhLmZpZWxkc1tmaWVsZF0/Lm5hbWUgPz8gZmllbGQpKS5qb2luKGAgfHwgJyAnIHx8IGApO1xuICAgICAgcmV0dXJuIGB0b190c3ZlY3Rvcigke2ZpZWxkc30pIEBAIHRvX3RzcXVlcnkoJHt0aGlzLmVzY2FwZShzZWFyY2guJHZhbHVlKX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmNvbXBhcmUoZW50aXR5LCBrZXksIHZhbCwgb3B0cyk7XG4gIH1cblxuICBvdmVycmlkZSBjb21wYXJlRmllbGRPcGVyYXRvcjxFLCBLIGV4dGVuZHMga2V5b2YgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwPEU+PihcbiAgICBlbnRpdHk6IFR5cGU8RT4sXG4gICAga2V5OiBGaWVsZEtleTxFPixcbiAgICBvcDogSyxcbiAgICB2YWw6IFF1ZXJ5RmlsdGVyRmllbGRPcGVyYXRvck1hcDxFPltLXSxcbiAgICBvcHRzPzogUXVlcnlPcHRpb25zXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgY29tcGFyaXNvbktleSA9IHRoaXMuZ2V0Q29tcGFyaXNvbktleShlbnRpdHksIGtleSwgb3B0cyk7XG4gICAgc3dpdGNoIChvcCkge1xuICAgICAgY2FzZSAnJGlzdGFydHNXaXRoJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IElMSUtFICR7dGhpcy5lc2NhcGUoYCR7dmFsfSVgKX1gO1xuICAgICAgY2FzZSAnJGllbmRzV2l0aCc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBJTElLRSAke3RoaXMuZXNjYXBlKGAlJHt2YWx9YCl9YDtcbiAgICAgIGNhc2UgJyRpaW5jbHVkZXMnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gSUxJS0UgJHt0aGlzLmVzY2FwZShgJSR7dmFsfSVgKX1gO1xuICAgICAgY2FzZSAnJGlsaWtlJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IElMSUtFICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJHJlZ2V4JzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IH4gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gc3VwZXIuY29tcGFyZUZpZWxkT3BlcmF0b3IoZW50aXR5LCBrZXksIG9wLCB2YWwsIG9wdHMpO1xuICAgIH1cbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGdyZXNEaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvcG9zdGdyZXNEaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxrQkFBa0I7SUFDckQ7UUFDRSxLQUFLLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVRLE1BQU0sQ0FBSSxNQUFlLEVBQUUsT0FBZ0I7UUFDbEQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN6QyxPQUFPLEdBQUcsR0FBRyxjQUFjLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFUSxPQUFPLENBQXVDLE1BQWUsRUFBRSxHQUFNLEVBQUUsR0FBeUIsRUFBRSxJQUE2QjtRQUN0SSxJQUFJLEdBQUcsS0FBSyxPQUFPLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLE1BQU0sTUFBTSxHQUFHLEdBQWdDLENBQUM7WUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkgsT0FBTyxlQUFlLE1BQU0sbUJBQW1CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDOUU7UUFDRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVRLG9CQUFvQixDQUMzQixNQUFlLEVBQ2YsR0FBZ0IsRUFDaEIsRUFBSyxFQUNMLEdBQXNDLEVBQ3RDLElBQW1CO1FBRW5CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9ELFFBQVEsRUFBRSxFQUFFO1lBQ1YsS0FBSyxjQUFjO2dCQUNqQixPQUFPLEdBQUcsYUFBYSxVQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUQsS0FBSyxZQUFZO2dCQUNmLE9BQU8sR0FBRyxhQUFhLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM1RCxLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxHQUFHLGFBQWEsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdELEtBQUssUUFBUTtnQkFDWCxPQUFPLEdBQUcsYUFBYSxVQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxHQUFHLGFBQWEsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEQ7Z0JBQ0UsT0FBTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUXVlcnlDb21wYXJpc29uT3B0aW9ucyxcbiAgUXVlcnlGaWx0ZXJNYXAsXG4gIFF1ZXJ5T3B0aW9ucyxcbiAgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwLFxuICBRdWVyeVRleHRTZWFyY2hPcHRpb25zLFxuICBUeXBlLFxuICBGaWVsZEtleSxcbn0gZnJvbSAnLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5L2RlY29yYXRvci9pbmRleC5qcyc7XG5pbXBvcnQgeyBBYnN0cmFjdFNxbERpYWxlY3QgfSBmcm9tICcuL2Fic3RyYWN0U3FsRGlhbGVjdC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQb3N0Z3Jlc0RpYWxlY3QgZXh0ZW5kcyBBYnN0cmFjdFNxbERpYWxlY3Qge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignXCInLCAnQkVHSU4gVFJBTlNBQ1RJT04nKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGluc2VydDxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUgfCBFW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHNxbCA9IHN1cGVyLmluc2VydChlbnRpdHksIHBheWxvYWQpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWROYW1lID0gbWV0YS5maWVsZHNbbWV0YS5pZF0ubmFtZTtcbiAgICByZXR1cm4gYCR7c3FsfSBSRVRVUk5JTkcgJHt0aGlzLmVzY2FwZUlkKGlkTmFtZSl9ICR7dGhpcy5lc2NhcGVJZCgnaWQnKX1gO1xuICB9XG5cbiAgb3ZlcnJpZGUgY29tcGFyZTxFLCBLIGV4dGVuZHMga2V5b2YgUXVlcnlGaWx0ZXJNYXA8RT4+KGVudGl0eTogVHlwZTxFPiwga2V5OiBLLCB2YWw6IFF1ZXJ5RmlsdGVyTWFwPEU+W0tdLCBvcHRzPzogUXVlcnlDb21wYXJpc29uT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKGtleSA9PT0gJyR0ZXh0Jykge1xuICAgICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICAgIGNvbnN0IHNlYXJjaCA9IHZhbCBhcyBRdWVyeVRleHRTZWFyY2hPcHRpb25zPEU+O1xuICAgICAgY29uc3QgZmllbGRzID0gc2VhcmNoLiRmaWVsZHMubWFwKChmaWVsZCkgPT4gdGhpcy5lc2NhcGVJZChtZXRhLmZpZWxkc1tmaWVsZF0/Lm5hbWUgPz8gZmllbGQpKS5qb2luKGAgfHwgJyAnIHx8IGApO1xuICAgICAgcmV0dXJuIGB0b190c3ZlY3Rvcigke2ZpZWxkc30pIEBAIHRvX3RzcXVlcnkoJHt0aGlzLmVzY2FwZShzZWFyY2guJHZhbHVlKX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmNvbXBhcmUoZW50aXR5LCBrZXksIHZhbCwgb3B0cyk7XG4gIH1cblxuICBvdmVycmlkZSBjb21wYXJlRmllbGRPcGVyYXRvcjxFLCBLIGV4dGVuZHMga2V5b2YgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwPEU+PihcbiAgICBlbnRpdHk6IFR5cGU8RT4sXG4gICAga2V5OiBGaWVsZEtleTxFPixcbiAgICBvcDogSyxcbiAgICB2YWw6IFF1ZXJ5RmlsdGVyRmllbGRPcGVyYXRvck1hcDxFPltLXSxcbiAgICBvcHRzPzogUXVlcnlPcHRpb25zXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgY29tcGFyaXNvbktleSA9IHRoaXMuZ2V0Q29tcGFyaXNvbktleShlbnRpdHksIGtleSwgb3B0cyk7XG4gICAgc3dpdGNoIChvcCkge1xuICAgICAgY2FzZSAnJGlzdGFydHNXaXRoJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IElMSUtFICR7dGhpcy5lc2NhcGUoYCR7dmFsfSVgKX1gO1xuICAgICAgY2FzZSAnJGllbmRzV2l0aCc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBJTElLRSAke3RoaXMuZXNjYXBlKGAlJHt2YWx9YCl9YDtcbiAgICAgIGNhc2UgJyRpaW5jbHVkZXMnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gSUxJS0UgJHt0aGlzLmVzY2FwZShgJSR7dmFsfSVgKX1gO1xuICAgICAgY2FzZSAnJGlsaWtlJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IElMSUtFICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJHJlZ2V4JzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IH4gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gc3VwZXIuY29tcGFyZUZpZWxkT3BlcmF0b3IoZW50aXR5LCBrZXksIG9wLCB2YWwsIG9wdHMpO1xuICAgIH1cbiAgfVxufVxuIl19

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SqliteDialect = void 0;
const abstractSqlDialect_js_1 = require("./abstractSqlDialect.js");
class SqliteDialect extends abstractSqlDialect_js_1.AbstractSqlDialect {
import { AbstractSqlDialect } from './abstractSqlDialect.js';
export class SqliteDialect extends AbstractSqlDialect {
constructor() {

@@ -10,3 +7,2 @@ super('`', 'BEGIN TRANSACTION');

}
exports.SqliteDialect = SqliteDialect;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsaXRlRGlhbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWFsZWN0L3NxbGl0ZURpYWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQTZEO0FBRTdELE1BQWEsYUFBYyxTQUFRLDBDQUFrQjtJQUNuRDtRQUNFLEtBQUssQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFKRCxzQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0U3FsRGlhbGVjdCB9IGZyb20gJy4vYWJzdHJhY3RTcWxEaWFsZWN0LmpzJztcblxuZXhwb3J0IGNsYXNzIFNxbGl0ZURpYWxlY3QgZXh0ZW5kcyBBYnN0cmFjdFNxbERpYWxlY3Qge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignYCcsICdCRUdJTiBUUkFOU0FDVElPTicpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsaXRlRGlhbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWFsZWN0L3NxbGl0ZURpYWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBa0I7SUFDbkQ7UUFDRSxLQUFLLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RTcWxEaWFsZWN0IH0gZnJvbSAnLi9hYnN0cmFjdFNxbERpYWxlY3QuanMnO1xuXG5leHBvcnQgY2xhc3MgU3FsaXRlRGlhbGVjdCBleHRlbmRzIEFic3RyYWN0U3FsRGlhbGVjdCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdgJywgJ0JFR0lOIFRSQU5TQUNUSU9OJyk7XG4gIH1cbn1cbiJdfQ==

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidEntityType = exports.getMeta = exports.getEntities = exports.defineEntity = exports.defineRelation = exports.defineId = exports.defineField = void 0;
require("reflect-metadata");
const util_1 = require("../../util");
import 'reflect-metadata';
import { hasKeys, lowerFirst, getKeys, upperFirst } from '../../util/index.js';
const holder = globalThis;

@@ -10,3 +7,3 @@ const metaKey = 'nukak/entity/decorator';

holder[metaKey] = metas;
function defineField(entity, key, opts = {}) {
export function defineField(entity, key, opts = {}) {
const meta = ensureMeta(entity);

@@ -20,4 +17,3 @@ if (!opts.type) {

}
exports.defineField = defineField;
function defineId(entity, key, opts) {
export function defineId(entity, key, opts) {
const meta = ensureMeta(entity);

@@ -30,4 +26,3 @@ const id = getIdKey(meta);

}
exports.defineId = defineId;
function defineRelation(entity, key, opts) {
export function defineRelation(entity, key, opts) {
if (!opts.entity) {

@@ -41,9 +36,8 @@ const inferredType = inferEntityType(entity, key);

}
exports.defineRelation = defineRelation;
function defineEntity(entity, opts = {}) {
export function defineEntity(entity, opts = {}) {
const meta = ensureMeta(entity);
if (!(0, util_1.hasKeys)(meta.fields)) {
if (!hasKeys(meta.fields)) {
throw TypeError(`'${entity.name}' must have fields`);
}
const onDeleteKeys = (0, util_1.getKeys)(meta.fields).filter((key) => meta.fields[key].onDelete);
const onDeleteKeys = getKeys(meta.fields).filter((key) => meta.fields[key].onDelete);
if (onDeleteKeys.length > 1) {

@@ -72,4 +66,3 @@ throw TypeError(`'${entity.name}' must have one field with 'onDelete' as maximum`);

}
exports.defineEntity = defineEntity;
function getEntities() {
export function getEntities() {
return [...metas.entries()].reduce((acc, [key, val]) => {

@@ -82,3 +75,2 @@ if (val.id) {

}
exports.getEntities = getEntities;
function ensureMeta(entity) {

@@ -93,3 +85,3 @@ let meta = metas.get(entity);

}
function getMeta(entity) {
export function getMeta(entity) {
const meta = metas.get(entity);

@@ -105,3 +97,2 @@ if (!meta) {

}
exports.getMeta = getMeta;
function fillRelations(meta) {

@@ -123,4 +114,4 @@ for (const relKey in meta.relations) {

const relIdName = relMeta.fields[relMeta.id].name;
const source = (0, util_1.lowerFirst)(meta.name) + (0, util_1.upperFirst)(idName);
const target = (0, util_1.lowerFirst)(relMeta.name) + (0, util_1.upperFirst)(relIdName);
const source = lowerFirst(meta.name) + upperFirst(idName);
const target = lowerFirst(relMeta.name) + upperFirst(relIdName);
relOpts.references = [

@@ -161,3 +152,3 @@ { local: source, foreign: meta.id },

const meta = ensureMeta(entity);
meta.relations = (0, util_1.getKeys)(meta.fields).reduce((relations, key) => {
meta.relations = getKeys(meta.fields).reduce((relations, key) => {
const { reference } = meta.fields[key];

@@ -188,4 +179,4 @@ if (reference) {

function getRelationKeyMap(meta) {
return (0, util_1.getKeys)(meta.fields)
.concat((0, util_1.getKeys)(meta.relations))
return getKeys(meta.fields)
.concat(getKeys(meta.relations))
.reduce((acc, key) => {

@@ -197,3 +188,3 @@ acc[key] = key;

function getIdKey(meta) {
const id = (0, util_1.getKeys)(meta.fields).find((key) => meta.fields[key]?.isId);
const id = getKeys(meta.fields).find((key) => meta.fields[key]?.isId);
return id;

@@ -224,3 +215,3 @@ }

}
function isValidEntityType(type) {
export function isValidEntityType(type) {
return (typeof type === 'function' &&

@@ -235,3 +226,2 @@ type !== Boolean &&

}
exports.isValidEntityType = isValidEntityType;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRpdHkvZGVjb3JhdG9yL2RlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEJBQTBCO0FBYTFCLHFDQUFzRTtBQUV0RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUM7QUFDMUIsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUM7QUFDekMsTUFBTSxLQUFLLEdBQW9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7QUFFeEIsU0FBZ0IsV0FBVyxDQUFJLE1BQWUsRUFBRSxHQUFXLEVBQUUsT0FBcUIsRUFBRTtJQUNsRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDZCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0tBQzFCO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdEUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBUkQsa0NBUUM7QUFFRCxTQUFnQixRQUFRLENBQUksTUFBZSxFQUFFLEdBQVcsRUFBRSxJQUFrQjtJQUMxRSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFD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dGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHtcbiAgUmVsYXRpb25PcHRpb25zLFxuICBGaWVsZE9wdGlvbnMsXG4gIEVudGl0eU9wdGlvbnMsXG4gIEVudGl0eU1ldGEsXG4gIFR5cGUsXG4gIFJlbGF0aW9uS2V5TWFwLFxuICBSZWxhdGlvbktleSxcbiAgS2V5LFxuICBGaWVsZEtleSxcbiAgSWRLZXksXG59IGZyb20gJy4uLy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgaGFzS2V5cywgbG93ZXJGaXJzdCwgZ2V0S2V5cywgdXBwZXJGaXJzdCB9IGZyb20gJy4uLy4uL3V0aWwnO1xuXG5jb25zdCBob2xkZXIgPSBnbG9iYWxUaGlzO1xuY29uc3QgbWV0YUtleSA9ICdudWthay9lbnRpdHkvZGVjb3JhdG9yJztcbmNvbnN0IG1ldGFzOiBNYXA8VHlwZTxhbnk+LCBFbnRpdHlNZXRhPGFueT4+ID0gaG9sZGVyW21ldGFLZXldID8/IG5ldyBNYXAoKTtcbmhvbGRlclttZXRhS2V5XSA9IG1ldGFzO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRmllbGQ8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZywgb3B0czogRmllbGRPcHRpb25zID0ge30pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgaWYgKCFvcHRzLnR5cGUpIHtcbiAgICBjb25zdCB0eXBlID0gaW5mZXJUeXBlKGVudGl0eSwga2V5KTtcbiAgICBvcHRzID0geyAuLi5vcHRzLCB0eXBlIH07XG4gIH1cbiAgbWV0YS5maWVsZHNba2V5XSA9IHsgLi4ubWV0YS5maWVsZHNba2V5XSwgLi4ueyBuYW1lOiBrZXksIC4uLm9wdHMgfSB9O1xuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUlkPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IEZpZWxkT3B0aW9ucyk6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBjb25zdCBpZCA9IGdldElkS2V5KG1ldGEpO1xuICBpZiAoaWQpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIGEgc2luZ2xlIGZpZWxkIGRlY29yYXRlZCB3aXRoIEBJZGApO1xuICB9XG4gIHJldHVybiBkZWZpbmVGaWVsZChlbnRpdHksIGtleSwgeyAuLi5vcHRzLCBpc0lkOiB0cnVlIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lUmVsYXRpb248RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZywgb3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogRW50aXR5TWV0YTxFPiB7XG4gIGlmICghb3B0cy5lbnRpdHkpIHtcbiAgICBjb25zdCBpbmZlcnJlZFR5cGUgPSBpbmZlckVudGl0eVR5cGUoZW50aXR5LCBrZXkpO1xuICAgIG9wdHMuZW50aXR5ID0gKCkgPT4gaW5mZXJyZWRUeXBlO1xuICB9XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIG1ldGEucmVsYXRpb25zW2tleV0gPSB7IC4uLm1ldGEucmVsYXRpb25zW2tleV0sIC4uLm9wdHMgfTtcbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFbnRpdHk8RT4oZW50aXR5OiBUeXBlPEU+LCBvcHRzOiBFbnRpdHlPcHRpb25zID0ge30pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcblxuICBpZiAoIWhhc0tleXMobWV0YS5maWVsZHMpKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBmaWVsZHNgKTtcbiAgfVxuXG4gIGNvbnN0IG9uRGVsZXRlS2V5cyA9IGdldEtleXMobWV0YS5maWVsZHMpLmZpbHRlcigoa2V5KSA9PiBtZXRhLmZpZWxkc1trZXldLm9uRGVsZXRlKSBhcyBGaWVsZEtleTxFPltdO1xuXG4gIGlmIChvbkRlbGV0ZUtleXMubGVuZ3RoID4gMSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgb25lIGZpZWxkIHdpdGggJ29uRGVsZXRlJyBhcyBtYXhpbXVtYCk7XG4gIH1cblxuICBpZiAob3B0cy5zb2Z0RGVsZXRlKSB7XG4gICAgaWYgKCFvbkRlbGV0ZUtleXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCB3aXRoICdvbkRlbGV0ZScgdG8gZW5hYmxlICdzb2Z0RGVsZXRlJ2ApO1xuICAgIH1cbiAgICBtZXRhLnNvZnREZWxldGUgPSBvbkRlbGV0ZUtleXNbMF07XG4gIH1cblxuICBtZXRhLm5hbWUgPSBvcHRzLm5hbWUgPz8gZW50aXR5Lm5hbWU7XG4gIGxldCBwcm90bzogRnVuY3Rpb25Db25zdHJ1Y3RvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihlbnRpdHkucHJvdG90eXBlKTtcblxuICB3aGlsZSAocHJvdG8uY29uc3RydWN0b3IgIT09IE9iamVjdCkge1xuICAgIGNvbnN0IHBhcmVudE1ldGEgPSBlbnN1cmVNZXRhKHByb3RvLmNvbnN0cnVjdG9yIGFzIFR5cGU8RT4pO1xuICAgIGV4dGVuZE1ldGEobWV0YSwgcGFyZW50TWV0YSk7XG4gICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICB9XG5cbiAgY29uc3QgaWQgPSBnZXRJZEtleShtZXRhKTtcbiAgaWYgKCFpZCkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgb25lIGZpZWxkIGRlY29yYXRlZCB3aXRoIEBJZGApO1xuICB9XG4gIG1ldGEuaWQgPSBpZDtcblxuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0aWVzKCk6IFR5cGU8YW55PltdIHtcbiAgcmV0dXJuIFsuLi5tZXRhcy5lbnRyaWVzKCldLnJlZHVjZSgoYWNjLCBba2V5LCB2YWxdKSA9PiB7XG4gICAgaWYgKHZhbC5pZCkge1xuICAgICAgYWNjLnB1c2goa2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xufVxuXG5mdW5jdGlvbiBlbnN1cmVNZXRhPEU+KGVudGl0eTogVHlwZTxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBsZXQgbWV0YSA9IG1ldGFzLmdldChlbnRpdHkpO1xuICBpZiAobWV0YSkge1xuICAgIHJldHVybiBtZXRhO1xuICB9XG4gIG1ldGEgPSB7IGVudGl0eSwgZmllbGRzOiB7fSwgcmVsYXRpb25zOiB7fSB9O1xuICBtZXRhcy5zZXQoZW50aXR5LCBtZXRhKTtcbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRhPEU+KGVudGl0eTogVHlwZTxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gbWV0YXMuZ2V0KGVudGl0eSk7XG4gIGlmICghbWV0YSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBpcyBub3QgYW4gZW50aXR5YCk7XG4gIH1cbiAgaWYgKG1ldGEucHJvY2Vzc2VkKSB7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cbiAgbWV0YS5wcm9jZXNzZWQgPSB0cnVlO1xuICByZXR1cm4gZmlsbFJlbGF0aW9ucyhtZXRhKTtcbn1cblxuZnVuY3Rpb24gZmlsbFJlbGF0aW9uczxFPihtZXRhOiBFbnRpdHlNZXRhPEU+KTogRW50aXR5TWV0YTxFPiB7XG4gIGZvciAoY29uc3QgcmVsS2V5IGluIG1ldGEucmVsYXRpb25zKSB7XG4gICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleSBhcyBSZWxhdGlvbktleTxFPl07XG5cbiAgICBpZiAocmVsT3B0cy5yZWZlcmVuY2VzKSB7XG4gICAgICAvLyByZWZlcmVuY2VzIHdlcmUgbWFudWFsbHkgc3BlY2lmaWVkXG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAocmVsT3B0cy5tYXBwZWRCeSkge1xuICAgICAgZmlsbEludmVyc2VTaWRlUmVsYXRpb25zKHJlbE9wdHMpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICBjb25zdCByZWxNZXRhID0gZW5zdXJlTWV0YShyZWxFbnRpdHkpO1xuXG4gICAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICdtbScpIHtcbiAgICAgIGNvbnN0IGlkTmFtZSA9IG1ldGEuZmllbGRzW21ldGEuaWRdLm5hbWU7XG4gICAgICBjb25zdCByZWxJZE5hbWUgPSByZWxNZXRhLmZpZWxkc1tyZWxNZXRhLmlkXS5uYW1lO1xuICAgICAgY29uc3Qgc291cmNlID0gbG93ZXJGaXJzdChtZXRhLm5hbWUpICsgdXBwZXJGaXJzdChpZE5hbWUpO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gbG93ZXJGaXJzdChyZWxNZXRhLm5hbWUpICsgdXBwZXJGaXJzdChyZWxJZE5hbWUpO1xuICAgICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gW1xuICAgICAgICB7IGxvY2FsOiBzb3VyY2UsIGZvcmVpZ246IG1ldGEuaWQgfSxcbiAgICAgICAgeyBsb2NhbDogdGFyZ2V0LCBmb3JlaWduOiByZWxNZXRhLmlkIH0sXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWxPcHRzLnJlZmVyZW5jZXMgPSBbeyBsb2NhbDogYCR7cmVsS2V5fUlkYCwgZm9yZWlnbjogcmVsTWV0YS5pZCB9XTtcbiAgICB9XG5cbiAgICBpZiAocmVsT3B0cy50aHJvdWdoKSB7XG4gICAgICBmaWxsVGhyb3VnaFJlbGF0aW9ucyhyZWxPcHRzLnRocm91Z2goKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGE7XG59XG5cbmZ1bmN0aW9uIGZpbGxJbnZlcnNlU2lkZVJlbGF0aW9uczxFPihyZWxPcHRzOiBSZWxhdGlvbk9wdGlvbnM8RT4pOiB2b2lkIHtcbiAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgY29uc3QgcmVsTWV0YSA9IGdldE1ldGEocmVsRW50aXR5KTtcbiAgcmVsT3B0cy5tYXBwZWRCeSA9IGdldE1hcHBlZEJ5UmVsYXRpb25LZXkocmVsT3B0cyk7XG5cbiAgaWYgKHJlbE1ldGEuZmllbGRzW3JlbE9wdHMubWFwcGVkQnkgYXMgRmllbGRLZXk8RT5dKSB7XG4gICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gW3sgbG9jYWw6IHJlbE1ldGEuaWQsIGZvcmVpZ246IHJlbE9wdHMubWFwcGVkQnkgfV07XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWFwcGVkQnlSZWxhdGlvbiA9IHJlbE1ldGEucmVsYXRpb25zW3JlbE9wdHMubWFwcGVkQnkgYXMgUmVsYXRpb25LZXk8RT5dO1xuXG4gIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbTEnIHx8IHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICdtbScpIHtcbiAgICByZWxPcHRzLnJlZmVyZW5jZXMgPSBtYXBwZWRCeVJlbGF0aW9uLnJlZmVyZW5jZXMuc2xpY2UoKS5yZXZlcnNlKCk7XG4gICAgcmVsT3B0cy50aHJvdWdoID0gbWFwcGVkQnlSZWxhdGlvbi50aHJvdWdoO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlbE9wdHMucmVmZXJlbmNlcyA9IG1hcHBlZEJ5UmVsYXRpb24ucmVmZXJlbmNlcy5tYXAoKHsgbG9jYWwsIGZvcmVpZ24gfSkgPT4gKHtcbiAgICBsb2NhbDogZm9yZWlnbixcbiAgICBmb3JlaWduOiBsb2NhbCxcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiBmaWxsVGhyb3VnaFJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4pOiB2b2lkIHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgbWV0YS5yZWxhdGlvbnMgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5yZWR1Y2UoKHJlbGF0aW9ucywga2V5KSA9PiB7XG4gICAgY29uc3QgeyByZWZlcmVuY2UgfSA9IG1ldGEuZmllbGRzW2tleSBhcyBGaWVsZEtleTxFPl07XG4gICAgaWYgKHJlZmVyZW5jZSkge1xuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVmZXJlbmNlKCk7XG4gICAgICBjb25zdCByZWxNZXRhID0gZW5zdXJlTWV0YShyZWxFbnRpdHkpO1xuICAgICAgY29uc3QgcmVsS2V5ID0ga2V5LnNsaWNlKDAsIC1yZWxNZXRhLmlkLmxlbmd0aCk7XG4gICAgICBjb25zdCByZWxPcHRzOiBSZWxhdGlvbk9wdGlvbnMgPSB7XG4gICAgICAgIGVudGl0eTogcmVmZXJlbmNlLFxuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6IGtleSwgZm9yZWlnbjogcmVsTWV0YS5pZCB9XSxcbiAgICAgIH07XG4gICAgICByZWxhdGlvbnNbcmVsS2V5XSA9IHJlbE9wdHM7XG4gICAgfVxuICAgIHJldHVybiByZWxhdGlvbnM7XG4gIH0sIHt9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFwcGVkQnlSZWxhdGlvbktleTxFPihyZWxPcHRzOiBSZWxhdGlvbk9wdGlvbnM8RT4pOiBLZXk8RT4ge1xuICBpZiAodHlwZW9mIHJlbE9wdHMubWFwcGVkQnkgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgIGNvbnN0IHJlbE1ldGEgPSBlbnN1cmVNZXRhKHJlbEVudGl0eSk7XG4gICAgY29uc3Qga2V5TWFwID0gZ2V0UmVsYXRpb25LZXlNYXAocmVsTWV0YSk7XG4gICAgcmV0dXJuIHJlbE9wdHMubWFwcGVkQnkoa2V5TWFwKTtcbiAgfVxuICByZXR1cm4gcmVsT3B0cy5tYXBwZWRCeTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVsYXRpb25LZXlNYXA8RT4obWV0YTogRW50aXR5TWV0YTxFPik6IFJlbGF0aW9uS2V5TWFwPEU+IHtcbiAgcmV0dXJuIGdldEtleXMobWV0YS5maWVsZHMpXG4gICAgLmNvbmNhdChnZXRLZXlzKG1ldGEucmVsYXRpb25zKSlcbiAgICAucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgYWNjW2tleV0gPSBrZXk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFJlbGF0aW9uS2V5TWFwPEU+KTtcbn1cblxuZnVuY3Rpb24gZ2V0SWRLZXk8RT4obWV0YTogRW50aXR5TWV0YTxFPik6IElkS2V5PEU+IHtcbiAgY29uc3QgaWQgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5maW5kKChrZXkpID0+IG1ldGEuZmllbGRzW2tleV0/LmlzSWQpO1xuICByZXR1cm4gaWQgYXMgSWRLZXk8RT47XG59XG5cbmZ1bmN0aW9uIGV4dGVuZE1ldGE8RT4odGFyZ2V0OiBFbnRpdHlNZXRhPEU+LCBzb3VyY2U6IEVudGl0eU1ldGE8RT4pOiB2b2lkIHtcbiAgY29uc3Qgc291cmNlRmllbGRzID0geyAuLi5zb3VyY2UuZmllbGRzIH07XG4gIGNvbnN0IHRhcmdldElkID0gZ2V0SWRLZXkodGFyZ2V0KTtcbiAgaWYgKHRhcmdldElkKSB7XG4gICAgY29uc3Qgc291cmNlSWQgPSBnZXRJZEtleShzb3VyY2UpO1xuICAgIGlmIChzb3VyY2VJZCkge1xuICAgICAgZGVsZXRlIHNvdXJjZUZpZWxkc1tzb3VyY2VJZF07XG4gICAgfVxuICB9XG4gIHRhcmdldC5maWVsZHMgPSB7IC4uLnNvdXJjZUZpZWxkcywgLi4udGFyZ2V0LmZpZWxkcyB9O1xuICB0YXJnZXQucmVsYXRpb25zID0geyAuLi5zb3VyY2UucmVsYXRpb25zLCAuLi50YXJnZXQucmVsYXRpb25zIH07XG59XG5cbmZ1bmN0aW9uIGluZmVyVHlwZTxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ2Rlc2lnbjp0eXBlJywgZW50aXR5LnByb3RvdHlwZSwga2V5KTtcbn1cblxuZnVuY3Rpb24gaW5mZXJFbnRpdHlUeXBlPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcpOiBUeXBlPGFueT4ge1xuICBjb25zdCBpbmZlcnJlZFR5cGUgPSBpbmZlclR5cGUoZW50aXR5LCBrZXkpO1xuICBjb25zdCBpc1ZhbGlkVHlwZSA9IGlzVmFsaWRFbnRpdHlUeXBlKGluZmVycmVkVHlwZSk7XG4gIGlmICghaXNWYWxpZFR5cGUpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfS4ke2tleX0nIHR5cGUgd2FzIGF1dG8taW5mZXJyZWQgd2l0aCBpbnZhbGlkIHR5cGUgJyR7aW5mZXJyZWRUeXBlPy5uYW1lfSdgKTtcbiAgfVxuICByZXR1cm4gaW5mZXJyZWRUeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEVudGl0eVR5cGUodHlwZTogYW55KTogdHlwZSBpcyBUeXBlPGFueT4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZSAhPT0gQm9vbGVhbiAmJlxuICAgIHR5cGUgIT09IFN0cmluZyAmJlxuICAgIHR5cGUgIT09IE51bWJlciAmJlxuICAgIHR5cGUgIT09IEJpZ0ludCAmJlxuICAgIHR5cGUgIT09IERhdGUgJiZcbiAgICB0eXBlICE9PSBTeW1ib2wgJiZcbiAgICB0eXBlICE9PSBPYmplY3RcbiAgKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRpdHkvZGVjb3JhdG9yL2RlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQWExQixPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDO0FBQzFCLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDO0FBQ3pDLE1BQU0sS0FBSyxHQUFvQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM1RSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBRXhCLE1BQU0sVUFBVSxXQUFXLENBQUksTUFBZSxFQUFFLEdBQVcsRUFBRSxPQUFxQixFQUFFO0lBQ2xGLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNkLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDMUI7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUN0RSxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFJLE1BQWUsRUFBRSxHQUFXLEVBQUUsSUFBa0I7SUFDMUUsTUFBTSxJQUFJLEdBQUcsVUFBVSxD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cG9ydCB7XG4gIFJlbGF0aW9uT3B0aW9ucyxcbiAgRmllbGRPcHRpb25zLFxuICBFbnRpdHlPcHRpb25zLFxuICBFbnRpdHlNZXRhLFxuICBUeXBlLFxuICBSZWxhdGlvbktleU1hcCxcbiAgUmVsYXRpb25LZXksXG4gIEtleSxcbiAgRmllbGRLZXksXG4gIElkS2V5LFxufSBmcm9tICcuLi8uLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGhhc0tleXMsIGxvd2VyRmlyc3QsIGdldEtleXMsIHVwcGVyRmlyc3QgfSBmcm9tICcuLi8uLi91dGlsL2luZGV4LmpzJztcblxuY29uc3QgaG9sZGVyID0gZ2xvYmFsVGhpcztcbmNvbnN0IG1ldGFLZXkgPSAnbnVrYWsvZW50aXR5L2RlY29yYXRvcic7XG5jb25zdCBtZXRhczogTWFwPFR5cGU8YW55PiwgRW50aXR5TWV0YTxhbnk+PiA9IGhvbGRlclttZXRhS2V5XSA/PyBuZXcgTWFwKCk7XG5ob2xkZXJbbWV0YUtleV0gPSBtZXRhcztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUZpZWxkPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IEZpZWxkT3B0aW9ucyA9IHt9KTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIGlmICghb3B0cy50eXBlKSB7XG4gICAgY29uc3QgdHlwZSA9IGluZmVyVHlwZShlbnRpdHksIGtleSk7XG4gICAgb3B0cyA9IHsgLi4ub3B0cywgdHlwZSB9O1xuICB9XG4gIG1ldGEuZmllbGRzW2tleV0gPSB7IC4uLm1ldGEuZmllbGRzW2tleV0sIC4uLnsgbmFtZToga2V5LCAuLi5vcHRzIH0gfTtcbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nLCBvcHRzOiBGaWVsZE9wdGlvbnMpOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgY29uc3QgaWQgPSBnZXRJZEtleShtZXRhKTtcbiAgaWYgKGlkKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBhIHNpbmdsZSBmaWVsZCBkZWNvcmF0ZWQgd2l0aCBASWRgKTtcbiAgfVxuICByZXR1cm4gZGVmaW5lRmllbGQoZW50aXR5LCBrZXksIHsgLi4ub3B0cywgaXNJZDogdHJ1ZSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVJlbGF0aW9uPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IFJlbGF0aW9uT3B0aW9uczxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBpZiAoIW9wdHMuZW50aXR5KSB7XG4gICAgY29uc3QgaW5mZXJyZWRUeXBlID0gaW5mZXJFbnRpdHlUeXBlKGVudGl0eSwga2V5KTtcbiAgICBvcHRzLmVudGl0eSA9ICgpID0+IGluZmVycmVkVHlwZTtcbiAgfVxuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBtZXRhLnJlbGF0aW9uc1trZXldID0geyAuLi5tZXRhLnJlbGF0aW9uc1trZXldLCAuLi5vcHRzIH07XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRW50aXR5PEU+KGVudGl0eTogVHlwZTxFPiwgb3B0czogRW50aXR5T3B0aW9ucyA9IHt9KTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG5cbiAgaWYgKCFoYXNLZXlzKG1ldGEuZmllbGRzKSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgZmllbGRzYCk7XG4gIH1cblxuICBjb25zdCBvbkRlbGV0ZUtleXMgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5maWx0ZXIoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XS5vbkRlbGV0ZSkgYXMgRmllbGRLZXk8RT5bXTtcblxuICBpZiAob25EZWxldGVLZXlzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCB3aXRoICdvbkRlbGV0ZScgYXMgbWF4aW11bWApO1xuICB9XG5cbiAgaWYgKG9wdHMuc29mdERlbGV0ZSkge1xuICAgIGlmICghb25EZWxldGVLZXlzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBvbmUgZmllbGQgd2l0aCAnb25EZWxldGUnIHRvIGVuYWJsZSAnc29mdERlbGV0ZSdgKTtcbiAgICB9XG4gICAgbWV0YS5zb2Z0RGVsZXRlID0gb25EZWxldGVLZXlzWzBdO1xuICB9XG5cbiAgbWV0YS5uYW1lID0gb3B0cy5uYW1lID8/IGVudGl0eS5uYW1lO1xuICBsZXQgcHJvdG86IEZ1bmN0aW9uQ29uc3RydWN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZW50aXR5LnByb3RvdHlwZSk7XG5cbiAgd2hpbGUgKHByb3RvLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICBjb25zdCBwYXJlbnRNZXRhID0gZW5zdXJlTWV0YShwcm90by5jb25zdHJ1Y3RvciBhcyBUeXBlPEU+KTtcbiAgICBleHRlbmRNZXRhKG1ldGEsIHBhcmVudE1ldGEpO1xuICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgfVxuXG4gIGNvbnN0IGlkID0gZ2V0SWRLZXkobWV0YSk7XG4gIGlmICghaWQpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCBkZWNvcmF0ZWQgd2l0aCBASWRgKTtcbiAgfVxuICBtZXRhLmlkID0gaWQ7XG5cbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRpdGllcygpOiBUeXBlPGFueT5bXSB7XG4gIHJldHVybiBbLi4ubWV0YXMuZW50cmllcygpXS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsXSkgPT4ge1xuICAgIGlmICh2YWwuaWQpIHtcbiAgICAgIGFjYy5wdXNoKGtleSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gZW5zdXJlTWV0YTxFPihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgbGV0IG1ldGEgPSBtZXRhcy5nZXQoZW50aXR5KTtcbiAgaWYgKG1ldGEpIHtcbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuICBtZXRhID0geyBlbnRpdHksIGZpZWxkczoge30sIHJlbGF0aW9uczoge30gfTtcbiAgbWV0YXMuc2V0KGVudGl0eSwgbWV0YSk7XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YTxFPihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IG1ldGFzLmdldChlbnRpdHkpO1xuICBpZiAoIW1ldGEpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgaXMgbm90IGFuIGVudGl0eWApO1xuICB9XG4gIGlmIChtZXRhLnByb2Nlc3NlZCkge1xuICAgIHJldHVybiBtZXRhO1xuICB9XG4gIG1ldGEucHJvY2Vzc2VkID0gdHJ1ZTtcbiAgcmV0dXJuIGZpbGxSZWxhdGlvbnMobWV0YSk7XG59XG5cbmZ1bmN0aW9uIGZpbGxSZWxhdGlvbnM8RT4obWV0YTogRW50aXR5TWV0YTxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBmb3IgKGNvbnN0IHJlbEtleSBpbiBtZXRhLnJlbGF0aW9ucykge1xuICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXkgYXMgUmVsYXRpb25LZXk8RT5dO1xuXG4gICAgaWYgKHJlbE9wdHMucmVmZXJlbmNlcykge1xuICAgICAgLy8gcmVmZXJlbmNlcyB3ZXJlIG1hbnVhbGx5IHNwZWNpZmllZFxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHJlbE9wdHMubWFwcGVkQnkpIHtcbiAgICAgIGZpbGxJbnZlcnNlU2lkZVJlbGF0aW9ucyhyZWxPcHRzKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcblxuICAgIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICBjb25zdCBpZE5hbWUgPSBtZXRhLmZpZWxkc1ttZXRhLmlkXS5uYW1lO1xuICAgICAgY29uc3QgcmVsSWROYW1lID0gcmVsTWV0YS5maWVsZHNbcmVsTWV0YS5pZF0ubmFtZTtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IGxvd2VyRmlyc3QobWV0YS5uYW1lKSArIHVwcGVyRmlyc3QoaWROYW1lKTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGxvd2VyRmlyc3QocmVsTWV0YS5uYW1lKSArIHVwcGVyRmlyc3QocmVsSWROYW1lKTtcbiAgICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFtcbiAgICAgICAgeyBsb2NhbDogc291cmNlLCBmb3JlaWduOiBtZXRhLmlkIH0sXG4gICAgICAgIHsgbG9jYWw6IHRhcmdldCwgZm9yZWlnbjogcmVsTWV0YS5pZCB9LFxuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gW3sgbG9jYWw6IGAke3JlbEtleX1JZGAsIGZvcmVpZ246IHJlbE1ldGEuaWQgfV07XG4gICAgfVxuXG4gICAgaWYgKHJlbE9wdHMudGhyb3VnaCkge1xuICAgICAgZmlsbFRocm91Z2hSZWxhdGlvbnMocmVsT3B0cy50aHJvdWdoKCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhO1xufVxuXG5mdW5jdGlvbiBmaWxsSW52ZXJzZVNpZGVSZWxhdGlvbnM8RT4ocmVsT3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogdm9pZCB7XG4gIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbEVudGl0eSk7XG4gIHJlbE9wdHMubWFwcGVkQnkgPSBnZXRNYXBwZWRCeVJlbGF0aW9uS2V5KHJlbE9wdHMpO1xuXG4gIGlmIChyZWxNZXRhLmZpZWxkc1tyZWxPcHRzLm1hcHBlZEJ5IGFzIEZpZWxkS2V5PEU+XSkge1xuICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFt7IGxvY2FsOiByZWxNZXRhLmlkLCBmb3JlaWduOiByZWxPcHRzLm1hcHBlZEJ5IH1dO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG1hcHBlZEJ5UmVsYXRpb24gPSByZWxNZXRhLnJlbGF0aW9uc1tyZWxPcHRzLm1hcHBlZEJ5IGFzIFJlbGF0aW9uS2V5PEU+XTtcblxuICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ20xJyB8fCByZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gbWFwcGVkQnlSZWxhdGlvbi5yZWZlcmVuY2VzLnNsaWNlKCkucmV2ZXJzZSgpO1xuICAgIHJlbE9wdHMudGhyb3VnaCA9IG1hcHBlZEJ5UmVsYXRpb24udGhyb3VnaDtcbiAgICByZXR1cm47XG4gIH1cblxuICByZWxPcHRzLnJlZmVyZW5jZXMgPSBtYXBwZWRCeVJlbGF0aW9uLnJlZmVyZW5jZXMubWFwKCh7IGxvY2FsLCBmb3JlaWduIH0pID0+ICh7XG4gICAgbG9jYWw6IGZvcmVpZ24sXG4gICAgZm9yZWlnbjogbG9jYWwsXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZmlsbFRocm91Z2hSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+KTogdm9pZCB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIG1ldGEucmVsYXRpb25zID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykucmVkdWNlKChyZWxhdGlvbnMsIGtleSkgPT4ge1xuICAgIGNvbnN0IHsgcmVmZXJlbmNlIH0gPSBtZXRhLmZpZWxkc1trZXkgYXMgRmllbGRLZXk8RT5dO1xuICAgIGlmIChyZWZlcmVuY2UpIHtcbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlZmVyZW5jZSgpO1xuICAgICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcbiAgICAgIGNvbnN0IHJlbEtleSA9IGtleS5zbGljZSgwLCAtcmVsTWV0YS5pZC5sZW5ndGgpO1xuICAgICAgY29uc3QgcmVsT3B0czogUmVsYXRpb25PcHRpb25zID0ge1xuICAgICAgICBlbnRpdHk6IHJlZmVyZW5jZSxcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiBrZXksIGZvcmVpZ246IHJlbE1ldGEuaWQgfV0sXG4gICAgICB9O1xuICAgICAgcmVsYXRpb25zW3JlbEtleV0gPSByZWxPcHRzO1xuICAgIH1cbiAgICByZXR1cm4gcmVsYXRpb25zO1xuICB9LCB7fSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hcHBlZEJ5UmVsYXRpb25LZXk8RT4ocmVsT3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogS2V5PEU+IHtcbiAgaWYgKHR5cGVvZiByZWxPcHRzLm1hcHBlZEJ5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICBjb25zdCByZWxNZXRhID0gZW5zdXJlTWV0YShyZWxFbnRpdHkpO1xuICAgIGNvbnN0IGtleU1hcCA9IGdldFJlbGF0aW9uS2V5TWFwKHJlbE1ldGEpO1xuICAgIHJldHVybiByZWxPcHRzLm1hcHBlZEJ5KGtleU1hcCk7XG4gIH1cbiAgcmV0dXJuIHJlbE9wdHMubWFwcGVkQnk7XG59XG5cbmZ1bmN0aW9uIGdldFJlbGF0aW9uS2V5TWFwPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBSZWxhdGlvbktleU1hcDxFPiB7XG4gIHJldHVybiBnZXRLZXlzKG1ldGEuZmllbGRzKVxuICAgIC5jb25jYXQoZ2V0S2V5cyhtZXRhLnJlbGF0aW9ucykpXG4gICAgLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGFjY1trZXldID0ga2V5O1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBSZWxhdGlvbktleU1hcDxFPik7XG59XG5cbmZ1bmN0aW9uIGdldElkS2V5PEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBJZEtleTxFPiB7XG4gIGNvbnN0IGlkID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykuZmluZCgoa2V5KSA9PiBtZXRhLmZpZWxkc1trZXldPy5pc0lkKTtcbiAgcmV0dXJuIGlkIGFzIElkS2V5PEU+O1xufVxuXG5mdW5jdGlvbiBleHRlbmRNZXRhPEU+KHRhcmdldDogRW50aXR5TWV0YTxFPiwgc291cmNlOiBFbnRpdHlNZXRhPEU+KTogdm9pZCB7XG4gIGNvbnN0IHNvdXJjZUZpZWxkcyA9IHsgLi4uc291cmNlLmZpZWxkcyB9O1xuICBjb25zdCB0YXJnZXRJZCA9IGdldElkS2V5KHRhcmdldCk7XG4gIGlmICh0YXJnZXRJZCkge1xuICAgIGNvbnN0IHNvdXJjZUlkID0gZ2V0SWRLZXkoc291cmNlKTtcbiAgICBpZiAoc291cmNlSWQpIHtcbiAgICAgIGRlbGV0ZSBzb3VyY2VGaWVsZHNbc291cmNlSWRdO1xuICAgIH1cbiAgfVxuICB0YXJnZXQuZmllbGRzID0geyAuLi5zb3VyY2VGaWVsZHMsIC4uLnRhcmdldC5maWVsZHMgfTtcbiAgdGFyZ2V0LnJlbGF0aW9ucyA9IHsgLi4uc291cmNlLnJlbGF0aW9ucywgLi4udGFyZ2V0LnJlbGF0aW9ucyB9O1xufVxuXG5mdW5jdGlvbiBpbmZlclR5cGU8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKCdkZXNpZ246dHlwZScsIGVudGl0eS5wcm90b3R5cGUsIGtleSk7XG59XG5cbmZ1bmN0aW9uIGluZmVyRW50aXR5VHlwZTxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nKTogVHlwZTxhbnk+IHtcbiAgY29uc3QgaW5mZXJyZWRUeXBlID0gaW5mZXJUeXBlKGVudGl0eSwga2V5KTtcbiAgY29uc3QgaXNWYWxpZFR5cGUgPSBpc1ZhbGlkRW50aXR5VHlwZShpbmZlcnJlZFR5cGUpO1xuICBpZiAoIWlzVmFsaWRUeXBlKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0uJHtrZXl9JyB0eXBlIHdhcyBhdXRvLWluZmVycmVkIHdpdGggaW52YWxpZCB0eXBlICcke2luZmVycmVkVHlwZT8ubmFtZX0nYCk7XG4gIH1cbiAgcmV0dXJuIGluZmVycmVkVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFbnRpdHlUeXBlKHR5cGU6IGFueSk6IHR5cGUgaXMgVHlwZTxhbnk+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGUgIT09IEJvb2xlYW4gJiZcbiAgICB0eXBlICE9PSBTdHJpbmcgJiZcbiAgICB0eXBlICE9PSBOdW1iZXIgJiZcbiAgICB0eXBlICE9PSBCaWdJbnQgJiZcbiAgICB0eXBlICE9PSBEYXRlICYmXG4gICAgdHlwZSAhPT0gU3ltYm9sICYmXG4gICAgdHlwZSAhPT0gT2JqZWN0XG4gICk7XG59XG4iXX0=

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Entity = void 0;
const definition_js_1 = require("./definition.js");
function Entity(opts) {
import { defineEntity } from './definition.js';
export function Entity(opts) {
return (entity) => {
(0, definition_js_1.defineEntity)(entity, opts);
defineEntity(entity, opts);
};
}
exports.Entity = Entity;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9kZWNvcmF0b3IvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG1EQUErQztBQUUvQyxTQUFnQixNQUFNLENBQUksSUFBb0I7SUFDNUMsT0FBTyxDQUFDLE1BQWUsRUFBUSxFQUFFO1FBQy9CLElBQUEsNEJBQVksRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUpELHdCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5T3B0aW9ucywgVHlwZSB9IGZyb20gJy4uLy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgZGVmaW5lRW50aXR5IH0gZnJvbSAnLi9kZWZpbml0aW9uLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIEVudGl0eTxFPihvcHRzPzogRW50aXR5T3B0aW9ucykge1xuICByZXR1cm4gKGVudGl0eTogVHlwZTxFPik6IHZvaWQgPT4ge1xuICAgIGRlZmluZUVudGl0eShlbnRpdHksIG9wdHMpO1xuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9kZWNvcmF0b3IvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNLFVBQVUsTUFBTSxDQUFJLElBQW9CO0lBQzVDLE9BQU8sQ0FBQyxNQUFlLEVBQVEsRUFBRTtRQUMvQixZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlPcHRpb25zLCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVFbnRpdHkgfSBmcm9tICcuL2RlZmluaXRpb24uanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gRW50aXR5PEU+KG9wdHM/OiBFbnRpdHlPcHRpb25zKSB7XG4gIHJldHVybiAoZW50aXR5OiBUeXBlPEU+KTogdm9pZCA9PiB7XG4gICAgZGVmaW5lRW50aXR5KGVudGl0eSwgb3B0cyk7XG4gIH07XG59XG4iXX0=

@@ -1,12 +0,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Field = void 0;
const definition_js_1 = require("./definition.js");
function Field(opts) {
import { defineField } from './definition.js';
export function Field(opts) {
return (target, key) => {
const entity = target.constructor;
(0, definition_js_1.defineField)(entity, key, opts);
defineField(entity, key, opts);
};
}
exports.Field = Field;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBOEM7QUFFOUMsU0FBZ0IsS0FBSyxDQUFJLElBQW1CO0lBQzFDLE9BQU8sQ0FBQyxNQUFjLEVBQUUsR0FBVyxFQUFRLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQXNCLENBQUM7UUFDN0MsSUFBQSwyQkFBVyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUxELHNCQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRPcHRpb25zLCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVGaWVsZCB9IGZyb20gJy4vZGVmaW5pdGlvbi5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBGaWVsZDxFPihvcHRzPzogRmllbGRPcHRpb25zKSB7XG4gIHJldHVybiAodGFyZ2V0OiBvYmplY3QsIGtleTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZW50aXR5ID0gdGFyZ2V0LmNvbnN0cnVjdG9yIGFzIFR5cGU8RT47XG4gICAgZGVmaW5lRmllbGQoZW50aXR5LCBrZXksIG9wdHMpO1xuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsTUFBTSxVQUFVLEtBQUssQ0FBSSxJQUFtQjtJQUMxQyxPQUFPLENBQUMsTUFBYyxFQUFFLEdBQVcsRUFBUSxFQUFFO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFzQixDQUFDO1FBQzdDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZE9wdGlvbnMsIFR5cGUgfSBmcm9tICcuLi8uLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGRlZmluZUZpZWxkIH0gZnJvbSAnLi9kZWZpbml0aW9uLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIEZpZWxkPEU+KG9wdHM/OiBGaWVsZE9wdGlvbnMpIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBlbnRpdHkgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgVHlwZTxFPjtcbiAgICBkZWZpbmVGaWVsZChlbnRpdHksIGtleSwgb3B0cyk7XG4gIH07XG59XG4iXX0=

@@ -1,12 +0,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Id = void 0;
const definition_js_1 = require("./definition.js");
function Id(opts) {
import { defineId } from './definition.js';
export function Id(opts) {
return (target, key) => {
const entity = target.constructor;
(0, definition_js_1.defineId)(entity, key, opts);
defineId(entity, key, opts);
};
}
exports.Id = Id;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBMkM7QUFFM0MsU0FBZ0IsRUFBRSxDQUFJLElBQWlDO0lBQ3JELE9BQU8sQ0FBQyxNQUFjLEVBQUUsR0FBVyxFQUFRLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQXNCLENBQUM7UUFDN0MsSUFBQSx3QkFBUSxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUxELGdCQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRPcHRpb25zLCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVJZCB9IGZyb20gJy4vZGVmaW5pdGlvbi5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBJZDxFPihvcHRzPzogT21pdDxGaWVsZE9wdGlvbnMsICdpc0lkJz4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBlbnRpdHkgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgVHlwZTxFPjtcbiAgICBkZWZpbmVJZChlbnRpdHksIGtleSwgb3B0cyk7XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsTUFBTSxVQUFVLEVBQUUsQ0FBSSxJQUFpQztJQUNyRCxPQUFPLENBQUMsTUFBYyxFQUFFLEdBQVcsRUFBUSxFQUFFO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFzQixDQUFDO1FBQzdDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZE9wdGlvbnMsIFR5cGUgfSBmcm9tICcuLi8uLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGRlZmluZUlkIH0gZnJvbSAnLi9kZWZpbml0aW9uLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIElkPEU+KG9wdHM/OiBPbWl0PEZpZWxkT3B0aW9ucywgJ2lzSWQnPikge1xuICByZXR1cm4gKHRhcmdldDogb2JqZWN0LCBrZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGVudGl0eSA9IHRhcmdldC5jb25zdHJ1Y3RvciBhcyBUeXBlPEU+O1xuICAgIGRlZmluZUlkKGVudGl0eSwga2V5LCBvcHRzKTtcbiAgfTtcbn1cbiJdfQ==

@@ -5,2 +5,2 @@ export * from './entity.js';

export * from './relation.js';
export { getMeta, getEntities } from './definition';
export { getMeta, getEntities } from './definition.js';

@@ -1,12 +0,6 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEntities = exports.getMeta = void 0;
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./entity.js"), exports);
tslib_1.__exportStar(require("./id.js"), exports);
tslib_1.__exportStar(require("./field.js"), exports);
tslib_1.__exportStar(require("./relation.js"), exports);
var definition_1 = require("./definition");
Object.defineProperty(exports, "getMeta", { enumerable: true, get: function () { return definition_1.getMeta; } });
Object.defineProperty(exports, "getEntities", { enumerable: true, get: function () { return definition_1.getEntities; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsc0RBQTRCO0FBQzVCLGtEQUF3QjtBQUN4QixxREFBMkI7QUFDM0Isd0RBQThCO0FBQzlCLDJDQUFvRDtBQUEzQyxxR0FBQSxPQUFPLE9BQUE7QUFBRSx5R0FBQSxXQUFXLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VudGl0eS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2lkLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWxhdGlvbi5qcyc7XG5leHBvcnQgeyBnZXRNZXRhLCBnZXRFbnRpdGllcyB9IGZyb20gJy4vZGVmaW5pdGlvbic7XG4iXX0=
export * from './entity.js';
export * from './id.js';
export * from './field.js';
export * from './relation.js';
export { getMeta, getEntities } from './definition.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGVBQWUsQ0FBQztBQUM5QixPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnRpdHkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9pZC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVsYXRpb24uanMnO1xuZXhwb3J0IHsgZ2V0TWV0YSwgZ2V0RW50aXRpZXMgfSBmcm9tICcuL2RlZmluaXRpb24uanMnO1xuIl19

@@ -1,27 +0,20 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ManyToMany = exports.OneToMany = exports.ManyToOne = exports.OneToOne = void 0;
const definition_js_1 = require("./definition.js");
import { defineRelation } from './definition.js';
function Relation(opts) {
return (target, key) => {
const entity = target.constructor;
(0, definition_js_1.defineRelation)(entity, key, opts);
defineRelation(entity, key, opts);
};
}
function OneToOne(opts) {
export function OneToOne(opts) {
return Relation({ cardinality: '11', ...opts });
}
exports.OneToOne = OneToOne;
function ManyToOne(opts) {
export function ManyToOne(opts) {
return Relation({ cardinality: 'm1', ...opts });
}
exports.ManyToOne = ManyToOne;
function OneToMany(opts) {
export function OneToMany(opts) {
return Relation({ cardinality: '1m', ...opts });
}
exports.OneToMany = OneToMany;
function ManyToMany(opts) {
export function ManyToMany(opts) {
return Relation({ cardinality: 'mm', ...opts });
}
exports.ManyToMany = ManyToMany;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9yZWxhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQSxtREFBaUQ7QUFFakQsU0FBUyxRQUFRLENBQUksSUFBd0I7SUFDM0MsT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBc0IsQ0FBQztRQUM3QyxJQUFBLDhCQUFjLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBSUQsU0FBZ0IsUUFBUSxDQUFJLElBQWlDO0lBQzNELE9BQU8sUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELDRCQUVDO0FBRUQsU0FBZ0IsU0FBUyxDQUFJLElBQWtDO0lBQzdELE9BQU8sUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsU0FBUyxDQUFJLElBQWlDO0lBQzVELE9BQU8sUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsVUFBVSxDQUFJLElBQWtDO0lBQzlELE9BQU8sUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELGdDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUmVsYXRpb25PcHRpb25zLFxuICBSZWxhdGlvbk9uZVRvT25lT3B0aW9ucyxcbiAgUmVsYXRpb25PbmVUb01hbnlPcHRpb25zLFxuICBSZWxhdGlvbk1hbnlUb09uZU9wdGlvbnMsXG4gIFJlbGF0aW9uTWFueVRvTWFueU9wdGlvbnMsXG4gIFR5cGUsXG59IGZyb20gJy4uLy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgZGVmaW5lUmVsYXRpb24gfSBmcm9tICcuL2RlZmluaXRpb24uanMnO1xuXG5mdW5jdGlvbiBSZWxhdGlvbjxFPihvcHRzOiBSZWxhdGlvbk9wdGlvbnM8RT4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBlbnRpdHkgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgVHlwZTxFPjtcbiAgICBkZWZpbmVSZWxhdGlvbihlbnRpdHksIGtleSwgb3B0cyk7XG4gIH07XG59XG5cbnR5cGUgUmVsYXRpb25SZXR1cm4gPSBSZXR1cm5UeXBlPHR5cGVvZiBSZWxhdGlvbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBPbmVUb09uZTxFPihvcHRzPzogUmVsYXRpb25PbmVUb09uZU9wdGlvbnM8RT4pOiBSZWxhdGlvblJldHVybiB7XG4gIHJldHVybiBSZWxhdGlvbih7IGNhcmRpbmFsaXR5OiAnMTEnLCAuLi5vcHRzIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTWFueVRvT25lPEU+KG9wdHM/OiBSZWxhdGlvbk1hbnlUb09uZU9wdGlvbnM8RT4pOiBSZWxhdGlvblJldHVybiB7XG4gIHJldHVybiBSZWxhdGlvbih7IGNhcmRpbmFsaXR5OiAnbTEnLCAuLi5vcHRzIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gT25lVG9NYW55PEU+KG9wdHM6IFJlbGF0aW9uT25lVG9NYW55T3B0aW9uczxFPik6IFJlbGF0aW9uUmV0dXJuIHtcbiAgcmV0dXJuIFJlbGF0aW9uKHsgY2FyZGluYWxpdHk6ICcxbScsIC4uLm9wdHMgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNYW55VG9NYW55PEU+KG9wdHM6IFJlbGF0aW9uTWFueVRvTWFueU9wdGlvbnM8RT4pOiBSZWxhdGlvblJldHVybiB7XG4gIHJldHVybiBSZWxhdGlvbih7IGNhcmRpbmFsaXR5OiAnbW0nLCAuLi5vcHRzIH0pO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9yZWxhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsU0FBUyxRQUFRLENBQUksSUFBd0I7SUFDM0MsT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBc0IsQ0FBQztRQUM3QyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBSUQsTUFBTSxVQUFVLFFBQVEsQ0FBSSxJQUFpQztJQUMzRCxPQUFPLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFJLElBQWtDO0lBQzdELE9BQU8sUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUksSUFBaUM7SUFDNUQsT0FBTyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBSSxJQUFrQztJQUM5RCxPQUFPLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBSZWxhdGlvbk9wdGlvbnMsXG4gIFJlbGF0aW9uT25lVG9PbmVPcHRpb25zLFxuICBSZWxhdGlvbk9uZVRvTWFueU9wdGlvbnMsXG4gIFJlbGF0aW9uTWFueVRvT25lT3B0aW9ucyxcbiAgUmVsYXRpb25NYW55VG9NYW55T3B0aW9ucyxcbiAgVHlwZSxcbn0gZnJvbSAnLi4vLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVSZWxhdGlvbiB9IGZyb20gJy4vZGVmaW5pdGlvbi5qcyc7XG5cbmZ1bmN0aW9uIFJlbGF0aW9uPEU+KG9wdHM6IFJlbGF0aW9uT3B0aW9uczxFPikge1xuICByZXR1cm4gKHRhcmdldDogb2JqZWN0LCBrZXk6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGVudGl0eSA9IHRhcmdldC5jb25zdHJ1Y3RvciBhcyBUeXBlPEU+O1xuICAgIGRlZmluZVJlbGF0aW9uKGVudGl0eSwga2V5LCBvcHRzKTtcbiAgfTtcbn1cblxudHlwZSBSZWxhdGlvblJldHVybiA9IFJldHVyblR5cGU8dHlwZW9mIFJlbGF0aW9uPjtcblxuZXhwb3J0IGZ1bmN0aW9uIE9uZVRvT25lPEU+KG9wdHM/OiBSZWxhdGlvbk9uZVRvT25lT3B0aW9uczxFPik6IFJlbGF0aW9uUmV0dXJuIHtcbiAgcmV0dXJuIFJlbGF0aW9uKHsgY2FyZGluYWxpdHk6ICcxMScsIC4uLm9wdHMgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNYW55VG9PbmU8RT4ob3B0cz86IFJlbGF0aW9uTWFueVRvT25lT3B0aW9uczxFPik6IFJlbGF0aW9uUmV0dXJuIHtcbiAgcmV0dXJuIFJlbGF0aW9uKHsgY2FyZGluYWxpdHk6ICdtMScsIC4uLm9wdHMgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBPbmVUb01hbnk8RT4ob3B0czogUmVsYXRpb25PbmVUb01hbnlPcHRpb25zPEU+KTogUmVsYXRpb25SZXR1cm4ge1xuICByZXR1cm4gUmVsYXRpb24oeyBjYXJkaW5hbGl0eTogJzFtJywgLi4ub3B0cyB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1hbnlUb01hbnk8RT4ob3B0czogUmVsYXRpb25NYW55VG9NYW55T3B0aW9uczxFPik6IFJlbGF0aW9uUmV0dXJuIHtcbiAgcmV0dXJuIFJlbGF0aW9uKHsgY2FyZGluYWxpdHk6ICdtbScsIC4uLm9wdHMgfSk7XG59XG4iXX0=

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

export * from './decorator';
export * from './decorator/index.js';

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./decorator"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW50aXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9yJztcbiJdfQ==
export * from './decorator/index.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW50aXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RlY29yYXRvci9pbmRleC5qcyc7XG4iXX0=

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./options.js"), exports);
tslib_1.__exportStar(require("./type/index.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQTZCO0FBQzdCLDBEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGUvaW5kZXguanMnO1xuIl19
export * from './options.js';
export * from './type/index.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGUvaW5kZXguanMnO1xuIl19

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./mariadbQuerier.js"), exports);
tslib_1.__exportStar(require("./mariadbQuerierPool.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFyaWEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQW9DO0FBQ3BDLGtFQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWFyaWFkYlF1ZXJpZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXJpYWRiUXVlcmllclBvb2wuanMnO1xuIl19
export * from './mariadbQuerier.js';
export * from './mariadbQuerierPool.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFyaWEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXJpYWRiUXVlcmllci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL21hcmlhZGJRdWVyaWVyUG9vbC5qcyc7XG4iXX0=
import { PoolConnection } from 'mariadb';
import { QuerierLogger, QueryUpdateResult } from 'nukak/type/index.js';
import { AbstractSqlQuerier } from 'nukak/querier';
import { AbstractSqlQuerier } from '../querier/index.js';
import { QuerierLogger, QueryUpdateResult } from '../type/index.js';
export declare class MariadbQuerier extends AbstractSqlQuerier {

@@ -5,0 +5,0 @@ readonly conn: PoolConnection;

@@ -1,11 +0,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MariadbQuerier = void 0;
const querier_1 = require("nukak/querier");
const dialect_1 = require("nukak/dialect");
class MariadbQuerier extends querier_1.AbstractSqlQuerier {
import { MySqlDialect } from '../dialect/index.js';
import { AbstractSqlQuerier } from '../querier/index.js';
export class MariadbQuerier extends AbstractSqlQuerier {
conn;
logger;
constructor(conn, logger) {
super(new dialect_1.MySqlDialect());
super(new MySqlDialect());
this.conn = conn;

@@ -35,3 +32,2 @@ this.logger = logger;

}
exports.MariadbQuerier = MariadbQuerier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyaWFkYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFyaWEvbWFyaWFkYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMkNBQW1EO0FBQ25ELDJDQUE2QztBQUU3QyxNQUFhLGNBQWUsU0FBUSw0QkFBa0I7SUFDL0I7SUFBK0I7SUFBcEQsWUFBcUIsSUFBb0IsRUFBVyxNQUFzQjtRQUN4RSxLQUFLLENBQUMsSUFBSSxzQkFBWSxFQUFFLENBQUMsQ0FBQztRQURQLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7SUFFMUUsQ0FBQztJQUVRLEtBQUssQ0FBQyxHQUFHLENBQUksS0FBYTtRQUNqQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsTUFBTSxHQUFHLEdBQVEsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBdUIsQ0FBQztJQUMzRixDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU87UUFDcEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUc7UUFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQTVCRCx3Q0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb29sQ29ubmVjdGlvbiB9IGZyb20gJ21hcmlhZGInO1xuXG5pbXBvcnQgeyBRdWVyaWVyTG9nZ2VyLCBRdWVyeVVwZGF0ZVJlc3VsdCB9IGZyb20gJ251a2FrL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxRdWVyaWVyIH0gZnJvbSAnbnVrYWsvcXVlcmllcic7XG5pbXBvcnQgeyBNeVNxbERpYWxlY3QgfSBmcm9tICdudWthay9kaWFsZWN0JztcblxuZXhwb3J0IGNsYXNzIE1hcmlhZGJRdWVyaWVyIGV4dGVuZHMgQWJzdHJhY3RTcWxRdWVyaWVyIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubjogUG9vbENvbm5lY3Rpb24sIHJlYWRvbmx5IGxvZ2dlcj86IFF1ZXJpZXJMb2dnZXIpIHtcbiAgICBzdXBlcihuZXcgTXlTcWxEaWFsZWN0KCkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYWxsPFQ+KHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvZ2dlcj8uKHF1ZXJ5KTtcbiAgICBjb25zdCByZXM6IFRbXSA9IGF3YWl0IHRoaXMuY29ubi5xdWVyeShxdWVyeSk7XG4gICAgcmV0dXJuIHJlcy5zbGljZSgwLCByZXMubGVuZ3RoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJ1bihxdWVyeTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2dnZXI/LihxdWVyeSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jb25uLnF1ZXJ5KHF1ZXJ5KTtcbiAgICByZXR1cm4geyBjaGFuZ2VzOiByZXMuYWZmZWN0ZWRSb3dzLCBmaXJzdElkOiBOdW1iZXIocmVzLmluc2VydElkKSB9IGFzIFF1ZXJ5VXBkYXRlUmVzdWx0O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVsZWFzZSgpIHtcbiAgICBpZiAodGhpcy5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvbm4ucmVsZWFzZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMucmVsZWFzZSgpO1xuICAgIGF3YWl0IHRoaXMuY29ubi5lbmQoKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyaWFkYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFyaWEvbWFyaWFkYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3pELE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBQy9CO0lBQStCO0lBQXBELFlBQXFCLElBQW9CLEVBQVcsTUFBc0I7UUFDeEUsS0FBSyxDQUFDLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQztRQURQLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7SUFFMUUsQ0FBQztJQUVRLEtBQUssQ0FBQyxHQUFHLENBQUksS0FBYTtRQUNqQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsTUFBTSxHQUFHLEdBQVEsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBdUIsQ0FBQztJQUMzRixDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU87UUFDcEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUc7UUFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvb2xDb25uZWN0aW9uIH0gZnJvbSAnbWFyaWFkYic7XG5cbmltcG9ydCB7IE15U3FsRGlhbGVjdCB9IGZyb20gJy4uL2RpYWxlY3QvaW5kZXguanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxRdWVyaWVyIH0gZnJvbSAnLi4vcXVlcmllci9pbmRleC5qcyc7XG5pbXBvcnQgeyBRdWVyaWVyTG9nZ2VyLCBRdWVyeVVwZGF0ZVJlc3VsdCB9IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG5leHBvcnQgY2xhc3MgTWFyaWFkYlF1ZXJpZXIgZXh0ZW5kcyBBYnN0cmFjdFNxbFF1ZXJpZXIge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25uOiBQb29sQ29ubmVjdGlvbiwgcmVhZG9ubHkgbG9nZ2VyPzogUXVlcmllckxvZ2dlcikge1xuICAgIHN1cGVyKG5ldyBNeVNxbERpYWxlY3QoKSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBhbGw8VD4ocXVlcnk6IHN0cmluZykge1xuICAgIHRoaXMubG9nZ2VyPy4ocXVlcnkpO1xuICAgIGNvbnN0IHJlczogVFtdID0gYXdhaXQgdGhpcy5jb25uLnF1ZXJ5KHF1ZXJ5KTtcbiAgICByZXR1cm4gcmVzLnNsaWNlKDAsIHJlcy5sZW5ndGgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcnVuKHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvZ2dlcj8uKHF1ZXJ5KTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbm4ucXVlcnkocXVlcnkpO1xuICAgIHJldHVybiB7IGNoYW5nZXM6IHJlcy5hZmZlY3RlZFJvd3MsIGZpcnN0SWQ6IE51bWJlcihyZXMuaW5zZXJ0SWQpIH0gYXMgUXVlcnlVcGRhdGVSZXN1bHQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByZWxlYXNlKCkge1xuICAgIGlmICh0aGlzLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuY29ubi5yZWxlYXNlKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBlbmQoKSB7XG4gICAgYXdhaXQgdGhpcy5yZWxlYXNlKCk7XG4gICAgYXdhaXQgdGhpcy5jb25uLmVuZCgpO1xuICB9XG59XG4iXX0=
import { Pool, PoolConfig } from 'mariadb';
import { QuerierLogger, QuerierPool } from 'nukak/type/index.js';
import { QuerierLogger, QuerierPool } from '../type/index.js';
import { MariadbQuerier } from './mariadbQuerier.js';

@@ -4,0 +4,0 @@ export declare class MariadbQuerierPool implements QuerierPool<MariadbQuerier> {

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MariadbQuerierPool = void 0;
const mariadb_1 = require("mariadb");
const mariadbQuerier_js_1 = require("./mariadbQuerier.js");
class MariadbQuerierPool {
import { createPool } from 'mariadb';
import { MariadbQuerier } from './mariadbQuerier.js';
export class MariadbQuerierPool {
logger;

@@ -11,7 +8,7 @@ pool;

this.logger = logger;
this.pool = (0, mariadb_1.createPool)(opts);
this.pool = createPool(opts);
}
async getQuerier() {
const conn = await this.pool.getConnection();
return new mariadbQuerier_js_1.MariadbQuerier(conn, this.logger);
return new MariadbQuerier(conn, this.logger);
}

@@ -22,3 +19,2 @@ async end() {

}
exports.MariadbQuerierPool = MariadbQuerierPool;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyaWFkYlF1ZXJpZXJQb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcmlhL21hcmlhZGJRdWVyaWVyUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBdUQ7QUFFdkQsMkRBQXFEO0FBRXJELE1BQWEsa0JBQWtCO0lBR1U7SUFGOUIsSUFBSSxDQUFPO0lBRXBCLFlBQVksSUFBZ0IsRUFBVyxNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUEsb0JBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLGtDQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBZkQsZ0RBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVQb29sLCBQb29sLCBQb29sQ29uZmlnIH0gZnJvbSAnbWFyaWFkYic7XG5pbXBvcnQgeyBRdWVyaWVyTG9nZ2VyLCBRdWVyaWVyUG9vbCB9IGZyb20gJ251a2FrL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgTWFyaWFkYlF1ZXJpZXIgfSBmcm9tICcuL21hcmlhZGJRdWVyaWVyLmpzJztcblxuZXhwb3J0IGNsYXNzIE1hcmlhZGJRdWVyaWVyUG9vbCBpbXBsZW1lbnRzIFF1ZXJpZXJQb29sPE1hcmlhZGJRdWVyaWVyPiB7XG4gIHJlYWRvbmx5IHBvb2w6IFBvb2w7XG5cbiAgY29uc3RydWN0b3Iob3B0czogUG9vbENvbmZpZywgcmVhZG9ubHkgbG9nZ2VyPzogUXVlcmllckxvZ2dlcikge1xuICAgIHRoaXMucG9vbCA9IGNyZWF0ZVBvb2wob3B0cyk7XG4gIH1cblxuICBhc3luYyBnZXRRdWVyaWVyKCkge1xuICAgIGNvbnN0IGNvbm4gPSBhd2FpdCB0aGlzLnBvb2wuZ2V0Q29ubmVjdGlvbigpO1xuICAgIHJldHVybiBuZXcgTWFyaWFkYlF1ZXJpZXIoY29ubiwgdGhpcy5sb2dnZXIpO1xuICB9XG5cbiAgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMucG9vbC5lbmQoKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyaWFkYlF1ZXJpZXJQb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcmlhL21hcmlhZGJRdWVyaWVyUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFvQixNQUFNLFNBQVMsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsTUFBTSxPQUFPLGtCQUFrQjtJQUdVO0lBRjlCLElBQUksQ0FBTztJQUVwQixZQUFZLElBQWdCLEVBQVcsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDM0QsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUG9vbCwgUG9vbCwgUG9vbENvbmZpZyB9IGZyb20gJ21hcmlhZGInO1xuaW1wb3J0IHsgUXVlcmllckxvZ2dlciwgUXVlcmllclBvb2wgfSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IE1hcmlhZGJRdWVyaWVyIH0gZnJvbSAnLi9tYXJpYWRiUXVlcmllci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNYXJpYWRiUXVlcmllclBvb2wgaW1wbGVtZW50cyBRdWVyaWVyUG9vbDxNYXJpYWRiUXVlcmllcj4ge1xuICByZWFkb25seSBwb29sOiBQb29sO1xuXG4gIGNvbnN0cnVjdG9yKG9wdHM6IFBvb2xDb25maWcsIHJlYWRvbmx5IGxvZ2dlcj86IFF1ZXJpZXJMb2dnZXIpIHtcbiAgICB0aGlzLnBvb2wgPSBjcmVhdGVQb29sKG9wdHMpO1xuICB9XG5cbiAgYXN5bmMgZ2V0UXVlcmllcigpIHtcbiAgICBjb25zdCBjb25uID0gYXdhaXQgdGhpcy5wb29sLmdldENvbm5lY3Rpb24oKTtcbiAgICByZXR1cm4gbmV3IE1hcmlhZGJRdWVyaWVyKGNvbm4sIHRoaXMubG9nZ2VyKTtcbiAgfVxuXG4gIGFzeW5jIGVuZCgpIHtcbiAgICBhd2FpdCB0aGlzLnBvb2wuZW5kKCk7XG4gIH1cbn1cbiJdfQ==

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./mongoDialect.js"), exports);
tslib_1.__exportStar(require("./mongodbQuerier.js"), exports);
tslib_1.__exportStar(require("./mongodbQuerierPool.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uZ28vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNERBQWtDO0FBQ2xDLDhEQUFvQztBQUNwQyxrRUFBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vbmdvRGlhbGVjdC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL21vbmdvZGJRdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9uZ29kYlF1ZXJpZXJQb29sLmpzJztcbiJdfQ==
export * from './mongoDialect.js';
export * from './mongodbQuerier.js';
export * from './mongodbQuerierPool.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uZ28vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vbmdvRGlhbGVjdC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL21vbmdvZGJRdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9uZ29kYlF1ZXJpZXJQb29sLmpzJztcbiJdfQ==
import { MongoClient, Document } from 'mongodb';
import { Query, Type, QueryCriteria, QueryOptions, QuerySearch, IdValue, QuerierLogger, QueryUnique } from 'nukak/type/index.js';
import { AbstractQuerier } from 'nukak/querier';
import { AbstractQuerier } from '../querier/index.js';
import { Query, Type, QueryCriteria, QueryOptions, QuerySearch, IdValue, QuerierLogger, QueryUnique } from '../type/index.js';
import { MongoDialect } from './mongoDialect.js';

@@ -5,0 +5,0 @@ export declare class MongodbQuerier extends AbstractQuerier {

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MongodbQuerier = void 0;
const querier_1 = require("nukak/querier");
const decorator_1 = require("nukak/entity/decorator");
const util_1 = require("nukak/util");
class MongodbQuerier extends querier_1.AbstractQuerier {
import { getMeta } from '../entity/decorator/index.js';
import { AbstractQuerier } from '../querier/index.js';
import { clone, getPersistable, getPersistables, getFieldCallbackValue, hasKeys, isProjectingRelations } from '../util/index.js';
export class MongodbQuerier extends AbstractQuerier {
dialect;

@@ -29,5 +26,5 @@ conn;

async findMany(entity, qm) {
const meta = (0, decorator_1.getMeta)(entity);
const meta = getMeta(entity);
let documents;
const hasProjectRelations = (0, util_1.isProjectingRelations)(meta, qm.$project);
const hasProjectRelations = isProjectingRelations(meta, qm.$project);
if (hasProjectRelations) {

@@ -45,11 +42,11 @@ const pipeline = this.dialect.aggregationPipeline(entity, qm);

const filter = this.dialect.filter(entity, qm.$filter);
if ((0, util_1.hasKeys)(filter)) {
if (hasKeys(filter)) {
cursor.filter(filter);
}
const project = this.dialect.project(entity, qm.$project);
if ((0, util_1.hasKeys)(project)) {
if (hasKeys(project)) {
cursor.project(project);
}
const sort = this.dialect.sort(entity, qm.$sort);
if ((0, util_1.hasKeys)(sort)) {
if (hasKeys(sort)) {
cursor.sort(sort);

@@ -73,6 +70,6 @@ }

}
payload = (0, util_1.clone)(payload);
const meta = (0, decorator_1.getMeta)(entity);
payload = clone(payload);
const meta = getMeta(entity);
const payloads = Array.isArray(payload) ? payload : [payload];
const persistables = (0, util_1.getPersistables)(meta, payload, 'onInsert');
const persistables = getPersistables(meta, payload, 'onInsert');
this.logger?.('insertMany', entity.name, persistables);

@@ -88,5 +85,5 @@ const { insertedIds } = await this.collection(entity).insertMany(persistables, { session: this.session });

async updateMany(entity, qm, payload) {
payload = (0, util_1.clone)(payload);
const meta = (0, decorator_1.getMeta)(entity);
const persistable = (0, util_1.getPersistable)(meta, payload, 'onUpdate');
payload = clone(payload);
const meta = getMeta(entity);
const persistable = getPersistable(meta, payload, 'onUpdate');
const filter = this.dialect.filter(entity, qm.$filter);

@@ -102,3 +99,3 @@ const update = { $set: persistable };

async deleteMany(entity, qm, opts = {}) {
const meta = (0, decorator_1.getMeta)(entity);
const meta = getMeta(entity);
const filter = this.dialect.filter(entity, qm.$filter);

@@ -118,3 +115,3 @@ this.logger?.('deleteMany', entity.name, filter, opts);

if (meta.softDelete && !opts.softDelete) {
const updateResult = await this.collection(entity).updateMany({ _id: { $in: ids } }, { $set: { [meta.softDelete]: (0, util_1.getFieldCallbackValue)(meta.fields[meta.softDelete].onDelete) } }, {
const updateResult = await this.collection(entity).updateMany({ _id: { $in: ids } }, { $set: { [meta.softDelete]: getFieldCallbackValue(meta.fields[meta.softDelete].onDelete) } }, {
session: this.session,

@@ -137,3 +134,3 @@ });

collection(entity) {
const name = typeof entity === 'string' ? entity : (0, decorator_1.getMeta)(entity).name;
const name = typeof entity === 'string' ? entity : getMeta(entity).name;
return this.db.collection(name);

@@ -176,3 +173,2 @@ }

}
exports.MongodbQuerier = MongodbQuerier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uZ28vbW9uZ29kYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkNBQWdEO0FBQ2hELHNEQUFpRDtBQUNqRCxxQ0FBMkg7QUFJM0gsTUFBYSxjQUFlLFNBQVEseUJBQWU7SUFHNUI7SUFBZ0M7SUFBNEI7SUFGekUsT0FBTyxDQUFnQjtJQUUvQixZQUFxQixPQUFxQixFQUFXLElBQWlCLEVBQVcsTUFBc0I7UUFDckcsS0FBSyxFQUFFLENBQUM7UUFEVyxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFXLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBRXZHLENBQUM7SUFFUSxLQUFLLENBQUksTUFBZSxFQUFFLEtBQXFCLEVBQUU7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7WUFDcEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXLENBQUksTUFBZSxFQUFFLEVBQWMsRUFBRSxFQUFrQjtRQUN6RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVRLEtBQUssQ0FBQyxRQUFRLENBQUksTUFBZSxFQUFFLEVBQVk7UUFDdEQsTUFBTSxJQUFJLEdB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QUFDO1NBQzlDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbkMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVRLEtBQUssQ0FBQyxtQkFBbUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixNQUFNLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDckMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBZTtRQUNwQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixNQUFNLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUc7UUFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWpNRCx3Q0FpTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb25nb0NsaWVudCwgQ2xpZW50U2Vzc2lvbiwgVXBkYXRlRmlsdGVyLCBEb2N1bWVudCB9IGZyb20gJ21vbmdvZGInO1xuaW1wb3J0IHsgUXVlcnksIFR5cGUsIFF1ZXJ5Q3JpdGVyaWEsIFF1ZXJ5T3B0aW9ucywgUXVlcnlTZWFyY2gsIElkVmFsdWUsIFF1ZXJpZXJMb2dnZXIsIFF1ZXJ5VW5pcXVlIH0gZnJvbSAnbnVrYWsvdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBBYnN0cmFjdFF1ZXJpZXIgfSBmcm9tICdudWthay9xdWVyaWVyJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICdudWthay9lbnRpdHkvZGVjb3JhdG9yJztcbmltcG9ydCB7IGNsb25lLCBnZXRQZXJzaXN0YWJsZSwgZ2V0UGVyc2lzdGFibGVzLCBnZXRGaWVsZENhbGxiYWNrVmFsdWUsIGhhc0tleXMsIGlzUHJvamVjdGluZ1JlbGF0aW9ucyB9IGZyb20gJ251a2FrL3V0aWwnO1xuXG5pbXBvcnQgeyBNb25nb0RpYWxlY3QgfSBmcm9tICcuL21vbmdvRGlhbGVjdC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNb25nb2RiUXVlcmllciBleHRlbmRzIEFic3RyYWN0UXVlcmllciB7XG4gIHByaXZhdGUgc2Vzc2lvbjogQ2xpZW50U2Vzc2lvbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkaWFsZWN0OiBNb25nb0RpYWxlY3QsIHJlYWRvbmx5IGNvbm46IE1vbmdvQ2xpZW50LCByZWFkb25seSBsb2dnZXI/OiBRdWVyaWVyTG9nZ2VyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+ID0ge30pIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuZmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgdGhpcy5sb2dnZXI/LignY291bnQnLCBlbnRpdHkubmFtZSwgZmlsdGVyKTtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuY291bnREb2N1bWVudHMoZmlsdGVyLCB7XG4gICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBmaW5kT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBxbTogUXVlcnlVbmlxdWU8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5maW5kT25lKGVudGl0eSwgeyAuLi5xbSwgJGZpbHRlcjogaWQgfSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgICBsZXQgZG9jdW1lbnRzOiBFW107XG4gICAgY29uc3QgaGFzUHJvamVjdFJlbGF0aW9ucyA9IGlzUHJvamVjdGluZ1JlbGF0aW9ucyhtZXRhLCBxbS4kcHJvamVjdCk7XG5cbiAgICBpZiAoaGFzUHJvamVjdFJlbGF0aW9ucykge1xuICAgICAgY29uc3QgcGlwZWxpbmUgPSB0aGlzLmRpYWxlY3QuYWdncmVnYXRpb25QaXBlbGluZShlbnRpdHksIHFtKTtcbiAgICAgIGlmICh0aGlzLmxvZ2dlcikge1xuICAgICAgICB0aGlzLmxvZ2dlcignZmluZE1hbnknLCBlbnRpdHkubmFtZSwgSlNPTi5zdHJpbmdpZnkocGlwZWxpbmUsIG51bGwsIDIpKTtcbiAgICAgIH1cbiAgICAgIGRvY3VtZW50cyA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmFnZ3JlZ2F0ZTxFPihwaXBlbGluZSwgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSkudG9BcnJheSgpO1xuICAgICAgZG9jdW1lbnRzID0gdGhpcy5kaWFsZWN0Lm5vcm1hbGl6ZUlkcyhtZXRhLCBkb2N1bWVudHMpO1xuICAgICAgYXdhaXQgdGhpcy5maW5kVG9NYW55UmVsYXRpb25zKGVudGl0eSwgZG9jdW1lbnRzLCBxbS4kcHJvamVjdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGN1cnNvciA9IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmZpbmQ8RT4oe30sIHsgc2Vzc2lvbjogdGhpcy5zZXNzaW9uIH0pO1xuXG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuZmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgICBpZiAoaGFzS2V5cyhmaWx0ZXIpKSB7XG4gICAgICAgIGN1cnNvci5maWx0ZXIoZmlsdGVyKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb2plY3QgPSB0aGlzLmRpYWxlY3QucHJvamVjdChlbnRpdHksIHFtLiRwcm9qZWN0KTtcbiAgICAgIGlmIChoYXNLZXlzKHByb2plY3QpKSB7XG4gICAgICAgIGN1cnNvci5wcm9qZWN0KHByb2plY3QpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc29ydCA9IHRoaXMuZGlhbGVjdC5zb3J0KGVudGl0eSwgcW0uJHNvcnQpO1xuICAgICAgaWYgKGhhc0tleXMoc29ydCkpIHtcbiAgICAgICAgY3Vyc29yLnNvcnQoc29ydCk7XG4gICAgICB9XG4gICAgICBpZiAocW0uJHNraXApIHtcbiAgICAgICAgY3Vyc29yLnNraXAocW0uJHNraXApO1xuICAgICAgfVxuICAgICAgaWYgKHFtLiRsaW1pdCkge1xuICAgICAgICBjdXJzb3IubGltaXQocW0uJGxpbWl0KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2dnZXI/LignZmluZE1hbnknLCBlbnRpdHkubmFtZSwgcW0pO1xuXG4gICAgICBkb2N1bWVudHMgPSBhd2FpdCBjdXJzb3IudG9BcnJheSgpO1xuICAgICAgZG9jdW1lbnRzID0gdGhpcy5kaWFsZWN0Lm5vcm1hbGl6ZUlkcyhtZXRhLCBkb2N1bWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiBkb2N1bWVudHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgaWYgKCFwYXlsb2FkLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBheWxvYWQgPSBjbG9uZShwYXlsb2FkKTtcblxuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcGF5bG9hZHMgPSBBcnJheS5pc0FycmF5KHBheWxvYWQpID8gcGF5bG9hZCA6IFtwYXlsb2FkXTtcbiAgICBjb25zdCBwZXJzaXN0YWJsZXMgPSBnZXRQZXJzaXN0YWJsZXMobWV0YSwgcGF5bG9hZCwgJ29uSW5zZXJ0Jyk7XG5cbiAgICB0aGlzLmxvZ2dlcj8uKCdpbnNlcnRNYW55JywgZW50aXR5Lm5hbWUsIHBlcnNpc3RhYmxlcyk7XG5cbiAgICBjb25zdCB7IGluc2VydGVkSWRzIH0gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5pbnNlcnRNYW55KHBlcnNpc3RhYmxlcywgeyBzZXNzaW9uOiB0aGlzLnNlc3Npb24gfSk7XG5cbiAgICBjb25zdCBpZHMgPSBPYmplY3QudmFsdWVzKGluc2VydGVkSWRzKSBhcyB1bmtub3duIGFzIElkVmFsdWU8RT5bXTtcblxuICAgIGZvciAoY29uc3QgW2luZGV4LCBpdF0gb2YgcGF5bG9hZHMuZW50cmllcygpKSB7XG4gICAgICBpdFttZXRhLmlkXSA9IGlkc1tpbmRleF07XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5pbnNlcnRSZWxhdGlvbnMoZW50aXR5LCBwYXlsb2Fkcyk7XG5cbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcGVyc2lzdGFibGUgPSBnZXRQZXJzaXN0YWJsZShtZXRhLCBwYXlsb2FkLCAnb25VcGRhdGUnKSBhcyBEb2N1bWVudDtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRpYWxlY3QuZmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgY29uc3QgdXBkYXRlOiBVcGRhdGVGaWx0ZXI8RG9jdW1lbnQ+ID0geyAkc2V0OiBwZXJzaXN0YWJsZSB9O1xuXG4gICAgdGhpcy5sb2dnZXI/LigndXBkYXRlTWFueScsIGVudGl0eS5uYW1lLCBmaWx0ZXIsIHVwZGF0ZSk7XG5cbiAgICBjb25zdCB7IG1hdGNoZWRDb3VudCB9ID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkudXBkYXRlTWFueShmaWx0ZXIsIHVwZGF0ZSwge1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy51cGRhdGVSZWxhdGlvbnMoZW50aXR5LCBxbSwgcGF5bG9hZCk7XG5cbiAgICByZXR1cm4gbWF0Y2hlZENvdW50O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzOiBRdWVyeU9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIHRoaXMubG9nZ2VyPy4oJ2RlbGV0ZU1hbnknLCBlbnRpdHkubmFtZSwgZmlsdGVyLCBvcHRzKTtcbiAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KVxuICAgICAgLmZpbmQoZmlsdGVyLCB7XG4gICAgICAgIHByb2plY3Rpb246IHsgX2lkOiB0cnVlIH0sXG4gICAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgIH0pXG4gICAgICAudG9BcnJheSgpO1xuICAgIGlmICghZm91bmRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGNvbnN0IGlkcyA9IHRoaXMuZGlhbGVjdC5ub3JtYWxpemVJZHMobWV0YSwgZm91bmRzIGFzIHVua25vd24gYXMgRVtdKS5tYXAoKGZvdW5kKSA9PiBmb3VuZFttZXRhLmlkXSk7XG4gICAgbGV0IGNoYW5nZXM6IG51bWJlcjtcbiAgICBpZiAobWV0YS5zb2Z0RGVsZXRlICYmICFvcHRzLnNvZnREZWxldGUpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVJlc3VsdCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLnVwZGF0ZU1hbnkoXG4gICAgICAgIHsgX2lkOiB7ICRpbjogaWRzIH0gfSxcbiAgICAgICAgeyAkc2V0OiB7IFttZXRhLnNvZnREZWxldGVdOiBnZXRGaWVsZENhbGxiYWNrVmFsdWUobWV0YS5maWVsZHNbbWV0YS5zb2Z0RGVsZXRlXS5vbkRlbGV0ZSkgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgY2hhbmdlcyA9IHVwZGF0ZVJlc3VsdC5tYXRjaGVkQ291bnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRlbGV0ZVJlc3VsdCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmRlbGV0ZU1hbnkoXG4gICAgICAgIHsgX2lkOiB7ICRpbjogaWRzIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGNoYW5nZXMgPSBkZWxldGVSZXN1bHQuZGVsZXRlZENvdW50O1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVJlbGF0aW9ucyhlbnRpdHksIGlkcywgb3B0cyk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaGFzT3BlblRyYW5zYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb24/LmluVHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIGNvbGxlY3Rpb248RT4oZW50aXR5OiBUeXBlPEU+IHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbmFtZSA9IHR5cGVvZiBlbnRpdHkgPT09ICdzdHJpbmcnID8gZW50aXR5IDogZ2V0TWV0YShlbnRpdHkpLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuZGIuY29sbGVjdGlvbihuYW1lKTtcbiAgfVxuXG4gIGdldCBkYigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25uLmRiKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBiZWdpblRyYW5zYWN0aW9uKCkge1xuICAgIGlmICh0aGlzLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyPy4oJ2JlZ2luVHJhbnNhY3Rpb24nKTtcbiAgICB0aGlzLnNlc3Npb24gPSB0aGlzLmNvbm4uc3RhcnRTZXNzaW9uKCk7XG4gICAgdGhpcy5zZXNzaW9uLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNvbW1pdFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlcj8uKCdjb21taXRUcmFuc2FjdGlvbicpO1xuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5jb21taXRUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcm9sbGJhY2tUcmFuc2FjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXI/Ligncm9sbGJhY2tUcmFuc2FjdGlvbicpO1xuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5hYm9ydFRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByZWxlYXNlKGZvcmNlPzogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuY29ubi5jbG9zZShmb3JjZSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBlbmQoKSB7XG4gICAgYXdhaXQgdGhpcy5yZWxlYXNlKHRydWUpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uZ28vbW9uZ29kYlF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLakksTUFBTSxPQUFPLGNBQWUsU0FBUSxlQUFlO0lBRzVCO0lBQWdDO0lBQTRCO0lBRnpFLE9BQU8sQ0FBZ0I7SUFFL0IsWUFBcUIsT0FBcUIsRUFBVyxJQUFpQixFQUFXLE1BQXNCO1FBQ3JHLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUFXLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtJQUV2RyxDQUFDO0lBRVEsS0FBSyxDQUFJLE1BQWUsRUFBRSxLQUFxQixFQUFFO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1lBQ3BELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsV0FBVyxDQUFJLE1BQWUsRUFBRSxFQUFjLEVBQUUsRUFBa0I7UUFDekUsT0FBTyxJQUFJ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QixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLE1BQU0sU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRVEsS0FBSyxDQUFDLG1CQUFtQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLE1BQU0sU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNyQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFlO1FBQ3BDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLE1BQU0sU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDeEM7UUFDRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRztRQUNoQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9uZ29DbGllbnQsIENsaWVudFNlc3Npb24sIFVwZGF0ZUZpbHRlciwgRG9jdW1lbnQgfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvZGVjb3JhdG9yL2luZGV4LmpzJztcbmltcG9ydCB7IEFic3RyYWN0UXVlcmllciB9IGZyb20gJy4uL3F1ZXJpZXIvaW5kZXguanMnO1xuaW1wb3J0IHsgY2xvbmUsIGdldFBlcnNpc3RhYmxlLCBnZXRQZXJzaXN0YWJsZXMsIGdldEZpZWxkQ2FsbGJhY2tWYWx1ZSwgaGFzS2V5cywgaXNQcm9qZWN0aW5nUmVsYXRpb25zIH0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcyc7XG5pbXBvcnQgeyBRdWVyeSwgVHlwZSwgUXVlcnlDcml0ZXJpYSwgUXVlcnlPcHRpb25zLCBRdWVyeVNlYXJjaCwgSWRWYWx1ZSwgUXVlcmllckxvZ2dlciwgUXVlcnlVbmlxdWUgfSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcblxuaW1wb3J0IHsgTW9uZ29EaWFsZWN0IH0gZnJvbSAnLi9tb25nb0RpYWxlY3QuanMnO1xuXG5leHBvcnQgY2xhc3MgTW9uZ29kYlF1ZXJpZXIgZXh0ZW5kcyBBYnN0cmFjdFF1ZXJpZXIge1xuICBwcml2YXRlIHNlc3Npb246IENsaWVudFNlc3Npb247XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGlhbGVjdDogTW9uZ29EaWFsZWN0LCByZWFkb25seSBjb25uOiBNb25nb0NsaWVudCwgcmVhZG9ubHkgbG9nZ2VyPzogUXVlcmllckxvZ2dlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeVNlYXJjaDxFPiA9IHt9KSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIHRoaXMubG9nZ2VyPy4oJ2NvdW50JywgZW50aXR5Lm5hbWUsIGZpbHRlcik7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLmNvdW50RG9jdW1lbnRzKGZpbHRlciwge1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgZmluZE9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcW06IFF1ZXJ5VW5pcXVlPEU+KSB7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZShlbnRpdHksIHsgLi4ucW0sICRmaWx0ZXI6IGlkIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuXG4gICAgbGV0IGRvY3VtZW50czogRVtdO1xuICAgIGNvbnN0IGhhc1Byb2plY3RSZWxhdGlvbnMgPSBpc1Byb2plY3RpbmdSZWxhdGlvbnMobWV0YSwgcW0uJHByb2plY3QpO1xuXG4gICAgaWYgKGhhc1Byb2plY3RSZWxhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHBpcGVsaW5lID0gdGhpcy5kaWFsZWN0LmFnZ3JlZ2F0aW9uUGlwZWxpbmUoZW50aXR5LCBxbSk7XG4gICAgICBpZiAodGhpcy5sb2dnZXIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIoJ2ZpbmRNYW55JywgZW50aXR5Lm5hbWUsIEpTT04uc3RyaW5naWZ5KHBpcGVsaW5lLCBudWxsLCAyKSk7XG4gICAgICB9XG4gICAgICBkb2N1bWVudHMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5hZ2dyZWdhdGU8RT4ocGlwZWxpbmUsIHsgc2Vzc2lvbjogdGhpcy5zZXNzaW9uIH0pLnRvQXJyYXkoKTtcbiAgICAgIGRvY3VtZW50cyA9IHRoaXMuZGlhbGVjdC5ub3JtYWxpemVJZHMobWV0YSwgZG9jdW1lbnRzKTtcbiAgICAgIGF3YWl0IHRoaXMuZmluZFRvTWFueVJlbGF0aW9ucyhlbnRpdHksIGRvY3VtZW50cywgcW0uJHByb2plY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjdXJzb3IgPSB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5maW5kPEU+KHt9LCB7IHNlc3Npb246IHRoaXMuc2Vzc2lvbiB9KTtcblxuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgICAgaWYgKGhhc0tleXMoZmlsdGVyKSkge1xuICAgICAgICBjdXJzb3IuZmlsdGVyKGZpbHRlcik7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9qZWN0ID0gdGhpcy5kaWFsZWN0LnByb2plY3QoZW50aXR5LCBxbS4kcHJvamVjdCk7XG4gICAgICBpZiAoaGFzS2V5cyhwcm9qZWN0KSkge1xuICAgICAgICBjdXJzb3IucHJvamVjdChwcm9qZWN0KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLmRpYWxlY3Quc29ydChlbnRpdHksIHFtLiRzb3J0KTtcbiAgICAgIGlmIChoYXNLZXlzKHNvcnQpKSB7XG4gICAgICAgIGN1cnNvci5zb3J0KHNvcnQpO1xuICAgICAgfVxuICAgICAgaWYgKHFtLiRza2lwKSB7XG4gICAgICAgIGN1cnNvci5za2lwKHFtLiRza2lwKTtcbiAgICAgIH1cbiAgICAgIGlmIChxbS4kbGltaXQpIHtcbiAgICAgICAgY3Vyc29yLmxpbWl0KHFtLiRsaW1pdCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9nZ2VyPy4oJ2ZpbmRNYW55JywgZW50aXR5Lm5hbWUsIHFtKTtcblxuICAgICAgZG9jdW1lbnRzID0gYXdhaXQgY3Vyc29yLnRvQXJyYXkoKTtcbiAgICAgIGRvY3VtZW50cyA9IHRoaXMuZGlhbGVjdC5ub3JtYWxpemVJZHMobWV0YSwgZG9jdW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG9jdW1lbnRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSkge1xuICAgIGlmICghcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG5cbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHBheWxvYWRzID0gQXJyYXkuaXNBcnJheShwYXlsb2FkKSA/IHBheWxvYWQgOiBbcGF5bG9hZF07XG4gICAgY29uc3QgcGVyc2lzdGFibGVzID0gZ2V0UGVyc2lzdGFibGVzKG1ldGEsIHBheWxvYWQsICdvbkluc2VydCcpO1xuXG4gICAgdGhpcy5sb2dnZXI/LignaW5zZXJ0TWFueScsIGVudGl0eS5uYW1lLCBwZXJzaXN0YWJsZXMpO1xuXG4gICAgY29uc3QgeyBpbnNlcnRlZElkcyB9ID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSkuaW5zZXJ0TWFueShwZXJzaXN0YWJsZXMsIHsgc2Vzc2lvbjogdGhpcy5zZXNzaW9uIH0pO1xuXG4gICAgY29uc3QgaWRzID0gT2JqZWN0LnZhbHVlcyhpbnNlcnRlZElkcykgYXMgdW5rbm93biBhcyBJZFZhbHVlPEU+W107XG5cbiAgICBmb3IgKGNvbnN0IFtpbmRleCwgaXRdIG9mIHBheWxvYWRzLmVudHJpZXMoKSkge1xuICAgICAgaXRbbWV0YS5pZF0gPSBpZHNbaW5kZXhdO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuaW5zZXJ0UmVsYXRpb25zKGVudGl0eSwgcGF5bG9hZHMpO1xuXG4gICAgcmV0dXJuIGlkcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHBheWxvYWQgPSBjbG9uZShwYXlsb2FkKTtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHBlcnNpc3RhYmxlID0gZ2V0UGVyc2lzdGFibGUobWV0YSwgcGF5bG9hZCwgJ29uVXBkYXRlJykgYXMgRG9jdW1lbnQ7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5kaWFsZWN0LmZpbHRlcihlbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgIGNvbnN0IHVwZGF0ZTogVXBkYXRlRmlsdGVyPERvY3VtZW50PiA9IHsgJHNldDogcGVyc2lzdGFibGUgfTtcblxuICAgIHRoaXMubG9nZ2VyPy4oJ3VwZGF0ZU1hbnknLCBlbnRpdHkubmFtZSwgZmlsdGVyLCB1cGRhdGUpO1xuXG4gICAgY29uc3QgeyBtYXRjaGVkQ291bnQgfSA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbihlbnRpdHkpLnVwZGF0ZU1hbnkoZmlsdGVyLCB1cGRhdGUsIHtcbiAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMudXBkYXRlUmVsYXRpb25zKGVudGl0eSwgcW0sIHBheWxvYWQpO1xuXG4gICAgcmV0dXJuIG1hdGNoZWRDb3VudDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0czogUXVlcnlPcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGlhbGVjdC5maWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICB0aGlzLmxvZ2dlcj8uKCdkZWxldGVNYW55JywgZW50aXR5Lm5hbWUsIGZpbHRlciwgb3B0cyk7XG4gICAgY29uc3QgZm91bmRzID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKGVudGl0eSlcbiAgICAgIC5maW5kKGZpbHRlciwge1xuICAgICAgICBwcm9qZWN0aW9uOiB7IF9pZDogdHJ1ZSB9LFxuICAgICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgICB9KVxuICAgICAgLnRvQXJyYXkoKTtcbiAgICBpZiAoIWZvdW5kcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjb25zdCBpZHMgPSB0aGlzLmRpYWxlY3Qubm9ybWFsaXplSWRzKG1ldGEsIGZvdW5kcyBhcyB1bmtub3duIGFzIEVbXSkubWFwKChmb3VuZCkgPT4gZm91bmRbbWV0YS5pZF0pO1xuICAgIGxldCBjaGFuZ2VzOiBudW1iZXI7XG4gICAgaWYgKG1ldGEuc29mdERlbGV0ZSAmJiAhb3B0cy5zb2Z0RGVsZXRlKSB7XG4gICAgICBjb25zdCB1cGRhdGVSZXN1bHQgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS51cGRhdGVNYW55KFxuICAgICAgICB7IF9pZDogeyAkaW46IGlkcyB9IH0sXG4gICAgICAgIHsgJHNldDogeyBbbWV0YS5zb2Z0RGVsZXRlXTogZ2V0RmllbGRDYWxsYmFja1ZhbHVlKG1ldGEuZmllbGRzW21ldGEuc29mdERlbGV0ZV0ub25EZWxldGUpIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGNoYW5nZXMgPSB1cGRhdGVSZXN1bHQubWF0Y2hlZENvdW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkZWxldGVSZXN1bHQgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oZW50aXR5KS5kZWxldGVNYW55KFxuICAgICAgICB7IF9pZDogeyAkaW46IGlkcyB9IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBjaGFuZ2VzID0gZGVsZXRlUmVzdWx0LmRlbGV0ZWRDb3VudDtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5kZWxldGVSZWxhdGlvbnMoZW50aXR5LCBpZHMsIG9wdHMpO1xuICAgIHJldHVybiBjaGFuZ2VzO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0IGhhc09wZW5UcmFuc2FjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uPy5pblRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICBjb2xsZWN0aW9uPEU+KGVudGl0eTogVHlwZTxFPiB8IHN0cmluZykge1xuICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgZW50aXR5ID09PSAnc3RyaW5nJyA/IGVudGl0eSA6IGdldE1ldGEoZW50aXR5KS5uYW1lO1xuICAgIHJldHVybiB0aGlzLmRiLmNvbGxlY3Rpb24obmFtZSk7XG4gIH1cblxuICBnZXQgZGIoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29ubi5kYigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYmVnaW5UcmFuc2FjdGlvbigpIHtcbiAgICBpZiAodGhpcy5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlcj8uKCdiZWdpblRyYW5zYWN0aW9uJyk7XG4gICAgdGhpcy5zZXNzaW9uID0gdGhpcy5jb25uLnN0YXJ0U2Vzc2lvbigpO1xuICAgIHRoaXMuc2Vzc2lvbi5zdGFydFRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb21taXRUcmFuc2FjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXI/LignY29tbWl0VHJhbnNhY3Rpb24nKTtcbiAgICBhd2FpdCB0aGlzLnNlc3Npb24uY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJvbGxiYWNrVHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdub3QgYSBwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyPy4oJ3JvbGxiYWNrVHJhbnNhY3Rpb24nKTtcbiAgICBhd2FpdCB0aGlzLnNlc3Npb24uYWJvcnRUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVsZWFzZShmb3JjZT86IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvbm4uY2xvc2UoZm9yY2UpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMucmVsZWFzZSh0cnVlKTtcbiAgfVxufVxuIl19
import { MongoClientOptions } from 'mongodb';
import { QuerierLogger, QuerierPool } from 'nukak/type/index.js';
import { QuerierLogger, QuerierPool } from '../type/index.js';
import { MongodbQuerier } from './mongodbQuerier.js';

@@ -4,0 +4,0 @@ export declare class MongodbQuerierPool implements QuerierPool<MongodbQuerier> {

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MongodbQuerierPool = void 0;
const mongodb_1 = require("mongodb");
const mongodbQuerier_js_1 = require("./mongodbQuerier.js");
const mongoDialect_js_1 = require("./mongoDialect.js");
class MongodbQuerierPool {
import { MongoClient } from 'mongodb';
import { MongodbQuerier } from './mongodbQuerier.js';
import { MongoDialect } from './mongoDialect.js';
export class MongodbQuerierPool {
logger;

@@ -12,7 +9,7 @@ client;

this.logger = logger;
this.client = new mongodb_1.MongoClient(uri, opts);
this.client = new MongoClient(uri, opts);
}
async getQuerier() {
const conn = await this.client.connect();
const querier = new mongodbQuerier_js_1.MongodbQuerier(new mongoDialect_js_1.MongoDialect(), conn, this.logger);
const querier = new MongodbQuerier(new MongoDialect(), conn, this.logger);
return querier;

@@ -24,3 +21,2 @@ }

}
exports.MongodbQuerierPool = MongodbQuerierPool;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXJQb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vbmdvL21vbmdvZGJRdWVyaWVyUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBMEQ7QUFFMUQsMkRBQXFEO0FBQ3JELHVEQUFpRDtBQUVqRCxNQUFhLGtCQUFrQjtJQUdnQztJQUY1QyxNQUFNLENBQWM7SUFFckMsWUFBWSxHQUFXLEVBQUUsSUFBeUIsRUFBVyxNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUNqRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUkscUJBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksa0NBQWMsQ0FBQyxJQUFJLDhCQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFoQkQsZ0RBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9uZ29DbGllbnQsIE1vbmdvQ2xpZW50T3B0aW9ucyB9IGZyb20gJ21vbmdvZGInO1xuaW1wb3J0IHsgUXVlcmllckxvZ2dlciwgUXVlcmllclBvb2wgfSBmcm9tICdudWthay90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IE1vbmdvZGJRdWVyaWVyIH0gZnJvbSAnLi9tb25nb2RiUXVlcmllci5qcyc7XG5pbXBvcnQgeyBNb25nb0RpYWxlY3QgfSBmcm9tICcuL21vbmdvRGlhbGVjdC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNb25nb2RiUXVlcmllclBvb2wgaW1wbGVtZW50cyBRdWVyaWVyUG9vbDxNb25nb2RiUXVlcmllcj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudDogTW9uZ29DbGllbnQ7XG5cbiAgY29uc3RydWN0b3IodXJpOiBzdHJpbmcsIG9wdHM/OiBNb25nb0NsaWVudE9wdGlvbnMsIHJlYWRvbmx5IGxvZ2dlcj86IFF1ZXJpZXJMb2dnZXIpIHtcbiAgICB0aGlzLmNsaWVudCA9IG5ldyBNb25nb0NsaWVudCh1cmksIG9wdHMpO1xuICB9XG5cbiAgYXN5bmMgZ2V0UXVlcmllcigpIHtcbiAgICBjb25zdCBjb25uID0gYXdhaXQgdGhpcy5jbGllbnQuY29ubmVjdCgpO1xuICAgIGNvbnN0IHF1ZXJpZXIgPSBuZXcgTW9uZ29kYlF1ZXJpZXIobmV3IE1vbmdvRGlhbGVjdCgpLCBjb25uLCB0aGlzLmxvZ2dlcik7XG4gICAgcmV0dXJuIHF1ZXJpZXI7XG4gIH1cblxuICBhc3luYyBlbmQoKSB7XG4gICAgYXdhaXQgdGhpcy5jbGllbnQuY2xvc2UoKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYlF1ZXJpZXJQb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vbmdvL21vbmdvZGJRdWVyaWVyUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFzQixNQUFNLFNBQVMsQ0FBQztBQUUxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE1BQU0sT0FBTyxrQkFBa0I7SUFHZ0M7SUFGNUMsTUFBTSxDQUFjO0lBRXJDLFlBQVksR0FBVyxFQUFFLElBQXlCLEVBQVcsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDakYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9uZ29DbGllbnQsIE1vbmdvQ2xpZW50T3B0aW9ucyB9IGZyb20gJ21vbmdvZGInO1xuaW1wb3J0IHsgUXVlcmllckxvZ2dlciwgUXVlcmllclBvb2wgfSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IE1vbmdvZGJRdWVyaWVyIH0gZnJvbSAnLi9tb25nb2RiUXVlcmllci5qcyc7XG5pbXBvcnQgeyBNb25nb0RpYWxlY3QgfSBmcm9tICcuL21vbmdvRGlhbGVjdC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNb25nb2RiUXVlcmllclBvb2wgaW1wbGVtZW50cyBRdWVyaWVyUG9vbDxNb25nb2RiUXVlcmllcj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudDogTW9uZ29DbGllbnQ7XG5cbiAgY29uc3RydWN0b3IodXJpOiBzdHJpbmcsIG9wdHM/OiBNb25nb0NsaWVudE9wdGlvbnMsIHJlYWRvbmx5IGxvZ2dlcj86IFF1ZXJpZXJMb2dnZXIpIHtcbiAgICB0aGlzLmNsaWVudCA9IG5ldyBNb25nb0NsaWVudCh1cmksIG9wdHMpO1xuICB9XG5cbiAgYXN5bmMgZ2V0UXVlcmllcigpIHtcbiAgICBjb25zdCBjb25uID0gYXdhaXQgdGhpcy5jbGllbnQuY29ubmVjdCgpO1xuICAgIGNvbnN0IHF1ZXJpZXIgPSBuZXcgTW9uZ29kYlF1ZXJpZXIobmV3IE1vbmdvRGlhbGVjdCgpLCBjb25uLCB0aGlzLmxvZ2dlcik7XG4gICAgcmV0dXJuIHF1ZXJpZXI7XG4gIH1cblxuICBhc3luYyBlbmQoKSB7XG4gICAgYXdhaXQgdGhpcy5jbGllbnQuY2xvc2UoKTtcbiAgfVxufVxuIl19
import { Filter, ObjectId, Sort } from 'mongodb';
import { QueryFilter, Query, EntityMeta, Type, QueryProject, QueryProjectMap, QueryOptions, QuerySort, FieldValue, RelationKey } from 'nukak/type/index.js';
import { QueryFilter, Query, EntityMeta, Type, QueryProject, QueryProjectMap, QueryOptions, QuerySort, FieldValue, RelationKey } from '../type/index.js';
export declare class MongoDialect {

@@ -4,0 +4,0 @@ filter<E>(entity: Type<E>, filter?: QueryFilter<E>, { softDelete }?: QueryOptions): Filter<E>;

@@ -1,15 +0,12 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MongoDialect = void 0;
const mongodb_1 = require("mongodb");
const decorator_1 = require("nukak/entity/decorator");
const util_1 = require("nukak/util");
class MongoDialect {
import { ObjectId } from 'mongodb';
import { getKeys, hasKeys, buildSortMap, getProjectRelationKeys, getQueryFilterAsMap } from '../util/index.js';
import { getMeta } from '../entity/decorator/index.js';
export class MongoDialect {
filter(entity, filter = {}, { softDelete } = {}) {
const meta = (0, decorator_1.getMeta)(entity);
filter = (0, util_1.getQueryFilterAsMap)(meta, filter);
const meta = getMeta(entity);
filter = getQueryFilterAsMap(meta, filter);
if (meta.softDelete && (softDelete || softDelete === undefined) && !filter[meta.softDelete]) {
filter[meta.softDelete] = null;
}
return (0, util_1.getKeys)(filter).reduce((acc, key) => {
return getKeys(filter).reduce((acc, key) => {
let value = filter[key];

@@ -44,20 +41,20 @@ if (key === '$and' || key === '$or') {

sort(entity, sort) {
return (0, util_1.buildSortMap)(sort);
return buildSortMap(sort);
}
aggregationPipeline(entity, qm) {
const meta = (0, decorator_1.getMeta)(entity);
const meta = getMeta(entity);
const filter = this.filter(entity, qm.$filter);
const sort = this.sort(entity, qm.$sort);
const firstPipelineEntry = {};
if ((0, util_1.hasKeys)(filter)) {
if (hasKeys(filter)) {
firstPipelineEntry.$match = filter;
}
if ((0, util_1.hasKeys)(sort)) {
if (hasKeys(sort)) {
firstPipelineEntry.$sort = sort;
}
const pipeline = [];
if ((0, util_1.hasKeys)(firstPipelineEntry)) {
if (hasKeys(firstPipelineEntry)) {
pipeline.push(firstPipelineEntry);
}
const relations = (0, util_1.getProjectRelationKeys)(meta, qm.$project);
const relations = getProjectRelationKeys(meta, qm.$project);
for (const relKey of relations) {

@@ -70,3 +67,3 @@ const relOpts = meta.relations[relKey];

const relEntity = relOpts.entity();
const relMeta = (0, decorator_1.getMeta)(relEntity);
const relMeta = getMeta(relEntity);
if (relOpts.cardinality === 'm1') {

@@ -87,3 +84,3 @@ pipeline.push({

const referencePipelineEntry = { $match: { [foreignField]: referenceFilter._id } };
if ((0, util_1.hasKeys)(referenceSort)) {
if (hasKeys(referenceSort)) {
referencePipelineEntry.$sort = referenceSort;

@@ -115,6 +112,6 @@ }

}
const relKeys = (0, util_1.getKeys)(meta.relations).filter((key) => doc[key]);
const relKeys = getKeys(meta.relations).filter((key) => doc[key]);
for (const relKey of relKeys) {
const relOpts = meta.relations[relKey];
const relMeta = (0, decorator_1.getMeta)(relOpts.entity());
const relMeta = getMeta(relOpts.entity());
res[relKey] = Array.isArray(res[relKey]) ? this.normalizeIds(relMeta, res[relKey]) : this.normalizeId(relMeta, res[relKey]);

@@ -125,3 +122,3 @@ }

getIdValue(value) {
if (value instanceof mongodb_1.ObjectId) {
if (value instanceof ObjectId) {
return value;

@@ -132,6 +129,5 @@ }

}
return new mongodb_1.ObjectId(value);
return new ObjectId(value);
}
}
exports.MongoDialect = MongoDialect;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29EaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vbmdvL21vbmdvRGlhbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBaUQ7QUFhakQsc0RBQWlEO0FBQ2pELHFDQUF5RztBQUV6RyxNQUFhLFlBQVk7SUFDdkIsTUFBTSxDQUFJLE1BQWUsRUFBRSxTQUF5QixFQUFFLEVBQUUsRUFBRSxVQUFVLEtBQW1CLEVBQUU7UUFDdkYsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQkFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdCLE1BQU0sR0FBRyxJQUFBLDBCQUFtQixFQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLEVBQUU7WUFDckcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzFDO1FBRUQsT0FBTyxJQUFBLGNBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDekMsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLElBQUksR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO2dCQUNuQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQXdCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDbkY7aUJBQU07Z0JBQ0wsSUFBSSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFF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QUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQU0sQ0FBQztTQUNwRDtRQUNELE9BQU8sSUFBSSxrQkFBUSxDQUFDLEtBQUssQ0FBTSxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQWhKRCxvQ0FnSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXIsIE9iamVjdElkLCBTb3J0IH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQge1xuICBRdWVyeUZpbHRlcixcbiAgUXVlcnksXG4gIEVudGl0eU1ldGEsXG4gIFR5cGUsXG4gIFF1ZXJ5UHJvamVjdCxcbiAgUXVlcnlQcm9qZWN0TWFwLFxuICBRdWVyeU9wdGlvbnMsXG4gIFF1ZXJ5U29ydCxcbiAgRmllbGRWYWx1ZSxcbiAgUmVsYXRpb25LZXksXG59IGZyb20gJ251a2FrL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJ251a2FrL2VudGl0eS9kZWNvcmF0b3InO1xuaW1wb3J0IHsgZ2V0S2V5cywgaGFzS2V5cywgYnVpbGRTb3J0TWFwLCBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLCBnZXRRdWVyeUZpbHRlckFzTWFwIH0gZnJvbSAnbnVrYWsvdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBNb25nb0RpYWxlY3Qge1xuICBmaWx0ZXI8RT4oZW50aXR5OiBUeXBlPEU+LCBmaWx0ZXI6IFF1ZXJ5RmlsdGVyPEU+ID0ge30sIHsgc29mdERlbGV0ZSB9OiBRdWVyeU9wdGlvbnMgPSB7fSk6IEZpbHRlcjxFPiB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGZpbHRlciA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgZmlsdGVyKTtcblxuICAgIGlmIChtZXRhLnNvZnREZWxldGUgJiYgKHNvZnREZWxldGUgfHwgc29mdERlbGV0ZSA9PT0gdW5kZWZpbmVkKSAmJiAhZmlsdGVyW21ldGEuc29mdERlbGV0ZSBhcyBzdHJpbmddKSB7XG4gICAgICBmaWx0ZXJbbWV0YS5zb2Z0RGVsZXRlIGFzIHN0cmluZ10gPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRLZXlzKGZpbHRlcikucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gZmlsdGVyW2tleV07XG4gICAgICBpZiAoa2V5ID09PSAnJGFuZCcgfHwga2V5ID09PSAnJG9yJykge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbHVlLm1hcCgoZmlsdGVySXQ6IFF1ZXJ5RmlsdGVyPEU+KSA9PiB0aGlzLmZpbHRlcihlbnRpdHksIGZpbHRlckl0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoa2V5ID09PSAnX2lkJyB8fCBrZXkgPT09IG1ldGEuaWQpIHtcbiAgICAgICAgICBrZXkgPSAnX2lkJztcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0SWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHtcbiAgICAgICAgICAgICRpbjogdmFsdWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBhY2Nba2V5IGFzIGtleW9mIEZpbHRlcjxFPl0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgRmlsdGVyPEU+KTtcbiAgfVxuXG4gIHByb2plY3Q8RT4oZW50aXR5OiBUeXBlPEU+LCBwcm9qZWN0OiBRdWVyeVByb2plY3Q8RT4pOiBRdWVyeVByb2plY3RNYXA8RT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb2plY3QpKSB7XG4gICAgICByZXR1cm4gcHJvamVjdC5yZWR1Y2UoKGFjYywgaXQpID0+IHtcbiAgICAgICAgYWNjW2l0IGFzIHN0cmluZ10gPSB0cnVlO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30gYXMgUXVlcnlQcm9qZWN0TWFwPEU+KTtcbiAgICB9XG4gICAgcmV0dXJuIHByb2plY3QgYXMgUXVlcnlQcm9qZWN0TWFwPEU+O1xuICB9XG5cbiAgc29ydDxFPihlbnRpdHk6IFR5cGU8RT4sIHNvcnQ6IFF1ZXJ5U29ydDxFPik6IFNvcnQge1xuICAgIHJldHVybiBidWlsZFNvcnRNYXAoc29ydCkgYXMgU29ydDtcbiAgfVxuXG4gIGFnZ3JlZ2F0aW9uUGlwZWxpbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pOiBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxFPltdIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXIoZW50aXR5LCBxbS4kZmlsdGVyKTtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5zb3J0KGVudGl0eSwgcW0uJHNvcnQpO1xuICAgIGNvbnN0IGZpcnN0UGlwZWxpbmVFbnRyeTogTW9uZ29BZ2dyZWdhdGlvblBpcGVsaW5lRW50cnk8RT4gPSB7fTtcblxuICAgIGlmIChoYXNLZXlzKGZpbHRlcikpIHtcbiAgICAgIGZpcnN0UGlwZWxpbmVFbnRyeS4kbWF0Y2ggPSBmaWx0ZXI7XG4gICAgfVxuICAgIGlmIChoYXNLZXlzKHNvcnQpKSB7XG4gICAgICBmaXJzdFBpcGVsaW5lRW50cnkuJHNvcnQgPSBzb3J0O1xuICAgIH1cblxuICAgIGNvbnN0IHBpcGVsaW5lOiBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxFPltdID0gW107XG5cbiAgICBpZiAoaGFzS2V5cyhmaXJzdFBpcGVsaW5lRW50cnkpKSB7XG4gICAgICBwaXBlbGluZS5wdXNoKGZpcnN0UGlwZWxpbmVFbnRyeSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsYXRpb25zID0gZ2V0UHJvamVjdFJlbGF0aW9uS2V5cyhtZXRhLCBxbS4kcHJvamVjdCk7XG5cbiAgICBmb3IgKGNvbnN0IHJlbEtleSBvZiByZWxhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuXG4gICAgICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJzFtJyB8fCByZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICAgIC8vICcxbScgYW5kICdtbScgc2hvdWxkIGJlIHJlc29sdmVkIGluIGEgaGlnaGVyIGxheWVyIGJlY2F1c2UgdGhleSB3aWxsIG5lZWQgbXVsdGlwbGUgcXVlcmllc1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbEVudGl0eSk7XG5cbiAgICAgIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbTEnKSB7XG4gICAgICAgIHBpcGVsaW5lLnB1c2goe1xuICAgICAgICAgICRsb29rdXA6IHtcbiAgICAgICAgICAgIGZyb206IHJlbE1ldGEubmFtZSxcbiAgICAgICAgICAgIGxvY2FsRmllbGQ6IHJlbE9wdHMucmVmZXJlbmNlc1swXS5sb2NhbCxcbiAgICAgICAgICAgIGZvcmVpZ25GaWVsZDogJ19pZCcsXG4gICAgICAgICAgICBhczogcmVsS2V5LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZm9yZWlnbkZpZWxkID0gcmVsT3B0cy5yZWZlcmVuY2VzWzBdLmZvcmVpZ247XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZUZpbHRlciA9IHRoaXMuZmlsdGVyKHJlbEVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZVNvcnQgPSB0aGlzLnNvcnQocmVsRW50aXR5LCBxbS4kc29ydCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZVBpcGVsaW5lRW50cnk6IE1vbmdvQWdncmVnYXRpb25QaXBlbGluZUVudHJ5PEZpZWxkVmFsdWU8RT4+ID0geyAkbWF0Y2g6IHsgW2ZvcmVpZ25GaWVsZF06IHJlZmVyZW5jZUZpbHRlci5faWQgfSB9O1xuICAgICAgICBpZiAoaGFzS2V5cyhyZWZlcmVuY2VTb3J0KSkge1xuICAgICAgICAgIHJlZmVyZW5jZVBpcGVsaW5lRW50cnkuJHNvcnQgPSByZWZlcmVuY2VTb3J0O1xuICAgICAgICB9XG4gICAgICAgIHBpcGVsaW5lLnB1c2goe1xuICAgICAgICAgICRsb29rdXA6IHtcbiAgICAgICAgICAgIGZyb206IHJlbE1ldGEubmFtZSxcbiAgICAgICAgICAgIHBpcGVsaW5lOiBbcmVmZXJlbmNlUGlwZWxpbmVFbnRyeV0sXG4gICAgICAgICAgICBhczogcmVsS2V5LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBwaXBlbGluZS5wdXNoKHsgJHVud2luZDogeyBwYXRoOiBgJCR7cmVsS2V5fWAsIHByZXNlcnZlTnVsbEFuZEVtcHR5QXJyYXlzOiB0cnVlIH0gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBpcGVsaW5lO1xuICB9XG5cbiAgbm9ybWFsaXplSWRzPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIGRvY3M6IEVbXSk6IEVbXSB7XG4gICAgcmV0dXJuIGRvY3M/Lm1hcCgoZG9jKSA9PiB0aGlzLm5vcm1hbGl6ZUlkKG1ldGEsIGRvYykpO1xuICB9XG5cbiAgbm9ybWFsaXplSWQ8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgZG9jOiBFKTogRSB7XG4gICAgaWYgKCFkb2MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXMgPSBkb2MgYXMgRSAmIHsgX2lkOiBhbnkgfTtcblxuICAgIGlmIChyZXMuX2lkKSB7XG4gICAgICByZXNbbWV0YS5pZF0gPSByZXMuX2lkO1xuICAgICAgZGVsZXRlIHJlcy5faWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsS2V5cyA9IGdldEtleXMobWV0YS5yZWxhdGlvbnMpLmZpbHRlcigoa2V5KSA9PiBkb2Nba2V5XSk7XG5cbiAgICBmb3IgKGNvbnN0IHJlbEtleSBvZiByZWxLZXlzKSB7XG4gICAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbE9wdHMuZW50aXR5KCkpO1xuICAgICAgcmVzW3JlbEtleV0gPSBBcnJheS5pc0FycmF5KHJlc1tyZWxLZXldKSA/IHRoaXMubm9ybWFsaXplSWRzKHJlbE1ldGEsIHJlc1tyZWxLZXldKSA6IHRoaXMubm9ybWFsaXplSWQocmVsTWV0YSwgcmVzW3JlbEtleV0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXMgYXMgRTtcbiAgfVxuXG4gIGdldElkVmFsdWU8VCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgT2JqZWN0SWQgfCBPYmplY3RJZFtdPih2YWx1ZTogVCk6IFQge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdElkKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLm1hcCgoaXQpID0+IHRoaXMuZ2V0SWRWYWx1ZShpdCkpIGFzIFQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgT2JqZWN0SWQodmFsdWUpIGFzIFQ7XG4gIH1cbn1cblxudHlwZSBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxFPiA9IHtcbiAgcmVhZG9ubHkgJGxvb2t1cD86IE1vbmdvQWdncmVnYXRpb25Mb29rdXA8RT47XG4gICRtYXRjaD86IEZpbHRlcjxFPiB8IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICRzb3J0PzogU29ydDtcbiAgcmVhZG9ubHkgJHVud2luZD86IE1vbmdvQWdncmVnYXRpb25VbndpbmQ7XG59O1xuXG50eXBlIE1vbmdvQWdncmVnYXRpb25Mb29rdXA8RT4gPSB7XG4gIHJlYWRvbmx5IGZyb20/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcmVpZ25GaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgbG9jYWxGaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgcGlwZWxpbmU/OiBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxGaWVsZFZhbHVlPEU+PltdO1xuICByZWFkb25seSBhcz86IFJlbGF0aW9uS2V5PEU+O1xufTtcblxudHlwZSBNb25nb0FnZ3JlZ2F0aW9uVW53aW5kID0ge1xuICByZWFkb25seSBwYXRoPzogc3RyaW5nO1xuICByZWFkb25seSBwcmVzZXJ2ZU51bGxBbmRFbXB0eUFycmF5cz86IGJvb2xlYW47XG59O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29EaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vbmdvL21vbmdvRGlhbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsUUFBUSxFQUFRLE1BQU0sU0FBUyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQWN2RCxNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUksTUFBZSxFQUFFLFNBQXlCLEVBQUUsRUFBRSxFQUFFLFVBQVUsS0FBbUIsRUFBRTtRQUN2RixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0IsTUFBTSxHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLEVBQUU7WUFDckcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzFDO1FBRUQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3pDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixJQUFJLEdBQUcsS0FBSyxNQUFNLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtnQkFDbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJ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LElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQU0sQ0FBQztTQUNwRDtRQUNELE9BQU8sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFNLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyLCBPYmplY3RJZCwgU29ydCB9IGZyb20gJ21vbmdvZGInO1xuaW1wb3J0IHsgZ2V0S2V5cywgaGFzS2V5cywgYnVpbGRTb3J0TWFwLCBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLCBnZXRRdWVyeUZpbHRlckFzTWFwIH0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcyc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5L2RlY29yYXRvci9pbmRleC5qcyc7XG5pbXBvcnQge1xuICBRdWVyeUZpbHRlcixcbiAgUXVlcnksXG4gIEVudGl0eU1ldGEsXG4gIFR5cGUsXG4gIFF1ZXJ5UHJvamVjdCxcbiAgUXVlcnlQcm9qZWN0TWFwLFxuICBRdWVyeU9wdGlvbnMsXG4gIFF1ZXJ5U29ydCxcbiAgRmllbGRWYWx1ZSxcbiAgUmVsYXRpb25LZXksXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG5leHBvcnQgY2xhc3MgTW9uZ29EaWFsZWN0IHtcbiAgZmlsdGVyPEU+KGVudGl0eTogVHlwZTxFPiwgZmlsdGVyOiBRdWVyeUZpbHRlcjxFPiA9IHt9LCB7IHNvZnREZWxldGUgfTogUXVlcnlPcHRpb25zID0ge30pOiBGaWx0ZXI8RT4ge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgICBmaWx0ZXIgPSBnZXRRdWVyeUZpbHRlckFzTWFwKG1ldGEsIGZpbHRlcik7XG5cbiAgICBpZiAobWV0YS5zb2Z0RGVsZXRlICYmIChzb2Z0RGVsZXRlIHx8IHNvZnREZWxldGUgPT09IHVuZGVmaW5lZCkgJiYgIWZpbHRlclttZXRhLnNvZnREZWxldGUgYXMgc3RyaW5nXSkge1xuICAgICAgZmlsdGVyW21ldGEuc29mdERlbGV0ZSBhcyBzdHJpbmddID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0S2V5cyhmaWx0ZXIpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGxldCB2YWx1ZSA9IGZpbHRlcltrZXldO1xuICAgICAgaWYgKGtleSA9PT0gJyRhbmQnIHx8IGtleSA9PT0gJyRvcicpIHtcbiAgICAgICAgYWNjW2tleV0gPSB2YWx1ZS5tYXAoKGZpbHRlckl0OiBRdWVyeUZpbHRlcjxFPikgPT4gdGhpcy5maWx0ZXIoZW50aXR5LCBmaWx0ZXJJdCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ19pZCcgfHwga2V5ID09PSBtZXRhLmlkKSB7XG4gICAgICAgICAga2V5ID0gJ19pZCc7XG4gICAgICAgICAgdmFsdWUgPSB0aGlzLmdldElkVmFsdWUodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgICAkaW46IHZhbHVlLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgYWNjW2tleSBhcyBrZXlvZiBGaWx0ZXI8RT5dID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIEZpbHRlcjxFPik7XG4gIH1cblxuICBwcm9qZWN0PEU+KGVudGl0eTogVHlwZTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogUXVlcnlQcm9qZWN0TWFwPEU+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9qZWN0KSkge1xuICAgICAgcmV0dXJuIHByb2plY3QucmVkdWNlKChhY2MsIGl0KSA9PiB7XG4gICAgICAgIGFjY1tpdCBhcyBzdHJpbmddID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIFF1ZXJ5UHJvamVjdE1hcDxFPik7XG4gICAgfVxuICAgIHJldHVybiBwcm9qZWN0IGFzIFF1ZXJ5UHJvamVjdE1hcDxFPjtcbiAgfVxuXG4gIHNvcnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBzb3J0OiBRdWVyeVNvcnQ8RT4pOiBTb3J0IHtcbiAgICByZXR1cm4gYnVpbGRTb3J0TWFwKHNvcnQpIGFzIFNvcnQ7XG4gIH1cblxuICBhZ2dyZWdhdGlvblBpcGVsaW5lPEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KTogTW9uZ29BZ2dyZWdhdGlvblBpcGVsaW5lRW50cnk8RT5bXSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZmlsdGVyKGVudGl0eSwgcW0uJGZpbHRlcik7XG4gICAgY29uc3Qgc29ydCA9IHRoaXMuc29ydChlbnRpdHksIHFtLiRzb3J0KTtcbiAgICBjb25zdCBmaXJzdFBpcGVsaW5lRW50cnk6IE1vbmdvQWdncmVnYXRpb25QaXBlbGluZUVudHJ5PEU+ID0ge307XG5cbiAgICBpZiAoaGFzS2V5cyhmaWx0ZXIpKSB7XG4gICAgICBmaXJzdFBpcGVsaW5lRW50cnkuJG1hdGNoID0gZmlsdGVyO1xuICAgIH1cbiAgICBpZiAoaGFzS2V5cyhzb3J0KSkge1xuICAgICAgZmlyc3RQaXBlbGluZUVudHJ5LiRzb3J0ID0gc29ydDtcbiAgICB9XG5cbiAgICBjb25zdCBwaXBlbGluZTogTW9uZ29BZ2dyZWdhdGlvblBpcGVsaW5lRW50cnk8RT5bXSA9IFtdO1xuXG4gICAgaWYgKGhhc0tleXMoZmlyc3RQaXBlbGluZUVudHJ5KSkge1xuICAgICAgcGlwZWxpbmUucHVzaChmaXJzdFBpcGVsaW5lRW50cnkpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0aW9ucyA9IGdldFByb2plY3RSZWxhdGlvbktleXMobWV0YSwgcW0uJHByb2plY3QpO1xuXG4gICAgZm9yIChjb25zdCByZWxLZXkgb2YgcmVsYXRpb25zKSB7XG4gICAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcblxuICAgICAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICcxbScgfHwgcmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ21tJykge1xuICAgICAgICAvLyAnMW0nIGFuZCAnbW0nIHNob3VsZCBiZSByZXNvbHZlZCBpbiBhIGhpZ2hlciBsYXllciBiZWNhdXNlIHRoZXkgd2lsbCBuZWVkIG11bHRpcGxlIHF1ZXJpZXNcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgICBjb25zdCByZWxNZXRhID0gZ2V0TWV0YShyZWxFbnRpdHkpO1xuXG4gICAgICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ20xJykge1xuICAgICAgICBwaXBlbGluZS5wdXNoKHtcbiAgICAgICAgICAkbG9va3VwOiB7XG4gICAgICAgICAgICBmcm9tOiByZWxNZXRhLm5hbWUsXG4gICAgICAgICAgICBsb2NhbEZpZWxkOiByZWxPcHRzLnJlZmVyZW5jZXNbMF0ubG9jYWwsXG4gICAgICAgICAgICBmb3JlaWduRmllbGQ6ICdfaWQnLFxuICAgICAgICAgICAgYXM6IHJlbEtleSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25GaWVsZCA9IHJlbE9wdHMucmVmZXJlbmNlc1swXS5mb3JlaWduO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VGaWx0ZXIgPSB0aGlzLmZpbHRlcihyZWxFbnRpdHksIHFtLiRmaWx0ZXIpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VTb3J0ID0gdGhpcy5zb3J0KHJlbEVudGl0eSwgcW0uJHNvcnQpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VQaXBlbGluZUVudHJ5OiBNb25nb0FnZ3JlZ2F0aW9uUGlwZWxpbmVFbnRyeTxGaWVsZFZhbHVlPEU+PiA9IHsgJG1hdGNoOiB7IFtmb3JlaWduRmllbGRdOiByZWZlcmVuY2VGaWx0ZXIuX2lkIH0gfTtcbiAgICAgICAgaWYgKGhhc0tleXMocmVmZXJlbmNlU29ydCkpIHtcbiAgICAgICAgICByZWZlcmVuY2VQaXBlbGluZUVudHJ5LiRzb3J0ID0gcmVmZXJlbmNlU29ydDtcbiAgICAgICAgfVxuICAgICAgICBwaXBlbGluZS5wdXNoKHtcbiAgICAgICAgICAkbG9va3VwOiB7XG4gICAgICAgICAgICBmcm9tOiByZWxNZXRhLm5hbWUsXG4gICAgICAgICAgICBwaXBlbGluZTogW3JlZmVyZW5jZVBpcGVsaW5lRW50cnldLFxuICAgICAgICAgICAgYXM6IHJlbEtleSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcGlwZWxpbmUucHVzaCh7ICR1bndpbmQ6IHsgcGF0aDogYCQke3JlbEtleX1gLCBwcmVzZXJ2ZU51bGxBbmRFbXB0eUFycmF5czogdHJ1ZSB9IH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwaXBlbGluZTtcbiAgfVxuXG4gIG5vcm1hbGl6ZUlkczxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCBkb2NzOiBFW10pOiBFW10ge1xuICAgIHJldHVybiBkb2NzPy5tYXAoKGRvYykgPT4gdGhpcy5ub3JtYWxpemVJZChtZXRhLCBkb2MpKTtcbiAgfVxuXG4gIG5vcm1hbGl6ZUlkPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIGRvYzogRSk6IEUge1xuICAgIGlmICghZG9jKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzID0gZG9jIGFzIEUgJiB7IF9pZDogYW55IH07XG5cbiAgICBpZiAocmVzLl9pZCkge1xuICAgICAgcmVzW21ldGEuaWRdID0gcmVzLl9pZDtcbiAgICAgIGRlbGV0ZSByZXMuX2lkO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbEtleXMgPSBnZXRLZXlzKG1ldGEucmVsYXRpb25zKS5maWx0ZXIoKGtleSkgPT4gZG9jW2tleV0pO1xuXG4gICAgZm9yIChjb25zdCByZWxLZXkgb2YgcmVsS2V5cykge1xuICAgICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleV07XG4gICAgICBjb25zdCByZWxNZXRhID0gZ2V0TWV0YShyZWxPcHRzLmVudGl0eSgpKTtcbiAgICAgIHJlc1tyZWxLZXldID0gQXJyYXkuaXNBcnJheShyZXNbcmVsS2V5XSkgPyB0aGlzLm5vcm1hbGl6ZUlkcyhyZWxNZXRhLCByZXNbcmVsS2V5XSkgOiB0aGlzLm5vcm1hbGl6ZUlkKHJlbE1ldGEsIHJlc1tyZWxLZXldKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzIGFzIEU7XG4gIH1cblxuICBnZXRJZFZhbHVlPFQgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IE9iamVjdElkIHwgT2JqZWN0SWRbXT4odmFsdWU6IFQpOiBUIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3RJZCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0KSA9PiB0aGlzLmdldElkVmFsdWUoaXQpKSBhcyBUO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE9iamVjdElkKHZhbHVlKSBhcyBUO1xuICB9XG59XG5cbnR5cGUgTW9uZ29BZ2dyZWdhdGlvblBpcGVsaW5lRW50cnk8RT4gPSB7XG4gIHJlYWRvbmx5ICRsb29rdXA/OiBNb25nb0FnZ3JlZ2F0aW9uTG9va3VwPEU+O1xuICAkbWF0Y2g/OiBGaWx0ZXI8RT4gfCBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAkc29ydD86IFNvcnQ7XG4gIHJlYWRvbmx5ICR1bndpbmQ/OiBNb25nb0FnZ3JlZ2F0aW9uVW53aW5kO1xufTtcblxudHlwZSBNb25nb0FnZ3JlZ2F0aW9uTG9va3VwPEU+ID0ge1xuICByZWFkb25seSBmcm9tPzogc3RyaW5nO1xuICByZWFkb25seSBmb3JlaWduRmllbGQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxvY2FsRmllbGQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBpcGVsaW5lPzogTW9uZ29BZ2dyZWdhdGlvblBpcGVsaW5lRW50cnk8RmllbGRWYWx1ZTxFPj5bXTtcbiAgcmVhZG9ubHkgYXM/OiBSZWxhdGlvbktleTxFPjtcbn07XG5cbnR5cGUgTW9uZ29BZ2dyZWdhdGlvblVud2luZCA9IHtcbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgcHJlc2VydmVOdWxsQW5kRW1wdHlBcnJheXM/OiBib29sZWFuO1xufTtcbiJdfQ==

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./mysql2Querier.js"), exports);
tslib_1.__exportStar(require("./mysql2QuerierPool.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbXlzcWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQW1DO0FBQ25DLGlFQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbXlzcWwyUXVlcmllci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL215c3FsMlF1ZXJpZXJQb29sLmpzJztcbiJdfQ==
export * from './mysql2Querier.js';
export * from './mysql2QuerierPool.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbXlzcWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9teXNxbDJRdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbXlzcWwyUXVlcmllclBvb2wuanMnO1xuIl19
import { PoolConnection } from 'mysql2/promise';
import { QuerierLogger, QueryUpdateResult } from 'nukak/type/index.js';
import { AbstractSqlQuerier } from 'nukak/querier';
import { QuerierLogger, QueryUpdateResult } from '../type/index.js';
import { AbstractSqlQuerier } from '../querier/index.js';
export declare class MySql2Querier extends AbstractSqlQuerier {

@@ -5,0 +5,0 @@ readonly conn: PoolConnection;

@@ -1,11 +0,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MySql2Querier = void 0;
const querier_1 = require("nukak/querier");
const dialect_1 = require("nukak/dialect");
class MySql2Querier extends querier_1.AbstractSqlQuerier {
import { AbstractSqlQuerier } from '../querier/index.js';
import { MySqlDialect } from '../dialect/index.js';
export class MySql2Querier extends AbstractSqlQuerier {
conn;
logger;
constructor(conn, logger) {
super(new dialect_1.MySqlDialect());
super(new MySqlDialect());
this.conn = conn;

@@ -35,3 +32,2 @@ this.logger = logger;

}
exports.MySql2Querier = MySql2Querier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlzcWwyUXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9teXNxbC9teXNxbDJRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDJDQUFtRDtBQUNuRCwyQ0FBNkM7QUFFN0MsTUFBYSxhQUFjLFNBQVEsNEJBQWtCO0lBQzlCO0lBQStCO0lBQXBELFlBQXFCLElBQW9CLEVBQVcsTUFBc0I7UUFDeEUsS0FBSyxDQUFDLElBQUksc0JBQVksRUFBRSxDQUFDLENBQUM7UUFEUCxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUFXLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBRTFFLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFJLEtBQWE7UUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sR0FBVSxDQUFDO0lBQ3BCLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBUSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBdUIsQ0FBQztJQUNuRixDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU87UUFDcEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUc7UUFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQTVCRCxzQ0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb29sQ29ubmVjdGlvbiB9IGZyb20gJ215c3FsMi9wcm9taXNlJztcblxuaW1wb3J0IHsgUXVlcmllckxvZ2dlciwgUXVlcnlVcGRhdGVSZXN1bHQgfSBmcm9tICdudWthay90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IEFic3RyYWN0U3FsUXVlcmllciB9IGZyb20gJ251a2FrL3F1ZXJpZXInO1xuaW1wb3J0IHsgTXlTcWxEaWFsZWN0IH0gZnJvbSAnbnVrYWsvZGlhbGVjdCc7XG5cbmV4cG9ydCBjbGFzcyBNeVNxbDJRdWVyaWVyIGV4dGVuZHMgQWJzdHJhY3RTcWxRdWVyaWVyIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubjogUG9vbENvbm5lY3Rpb24sIHJlYWRvbmx5IGxvZ2dlcj86IFF1ZXJpZXJMb2dnZXIpIHtcbiAgICBzdXBlcihuZXcgTXlTcWxEaWFsZWN0KCkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYWxsPFQ+KHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvZ2dlcj8uKHF1ZXJ5KTtcbiAgICBjb25zdCBbcmVzXSA9IGF3YWl0IHRoaXMuY29ubi5xdWVyeShxdWVyeSk7XG4gICAgcmV0dXJuIHJlcyBhcyBUW107XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBydW4ocXVlcnk6IHN0cmluZykge1xuICAgIHRoaXMubG9nZ2VyPy4ocXVlcnkpO1xuICAgIGNvbnN0IFtyZXNdOiBhbnkgPSBhd2FpdCB0aGlzLmNvbm4ucXVlcnkocXVlcnkpO1xuICAgIHJldHVybiB7IGNoYW5nZXM6IHJlcy5hZmZlY3RlZFJvd3MsIGZpcnN0SWQ6IHJlcy5pbnNlcnRJZCB9IGFzIFF1ZXJ5VXBkYXRlUmVzdWx0O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVsZWFzZSgpIHtcbiAgICBpZiAodGhpcy5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvbm4ucmVsZWFzZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMucmVsZWFzZSgpO1xuICAgIGF3YWl0IHRoaXMuY29ubi5lbmQoKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlzcWwyUXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9teXNxbC9teXNxbDJRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUFrQjtJQUM5QjtJQUErQjtJQUFwRCxZQUFxQixJQUFvQixFQUFXLE1BQXNCO1FBQ3hFLEtBQUssQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUM7UUFEUCxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUFXLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBRTFFLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFJLEtBQWE7UUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sR0FBVSxDQUFDO0lBQ3BCLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBUSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBdUIsQ0FBQztJQUNuRixDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU87UUFDcEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUc7UUFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvb2xDb25uZWN0aW9uIH0gZnJvbSAnbXlzcWwyL3Byb21pc2UnO1xuXG5pbXBvcnQgeyBRdWVyaWVyTG9nZ2VyLCBRdWVyeVVwZGF0ZVJlc3VsdCB9IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxRdWVyaWVyIH0gZnJvbSAnLi4vcXVlcmllci9pbmRleC5qcyc7XG5pbXBvcnQgeyBNeVNxbERpYWxlY3QgfSBmcm9tICcuLi9kaWFsZWN0L2luZGV4LmpzJztcblxuZXhwb3J0IGNsYXNzIE15U3FsMlF1ZXJpZXIgZXh0ZW5kcyBBYnN0cmFjdFNxbFF1ZXJpZXIge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25uOiBQb29sQ29ubmVjdGlvbiwgcmVhZG9ubHkgbG9nZ2VyPzogUXVlcmllckxvZ2dlcikge1xuICAgIHN1cGVyKG5ldyBNeVNxbERpYWxlY3QoKSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBhbGw8VD4ocXVlcnk6IHN0cmluZykge1xuICAgIHRoaXMubG9nZ2VyPy4ocXVlcnkpO1xuICAgIGNvbnN0IFtyZXNdID0gYXdhaXQgdGhpcy5jb25uLnF1ZXJ5KHF1ZXJ5KTtcbiAgICByZXR1cm4gcmVzIGFzIFRbXTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJ1bihxdWVyeTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2dnZXI/LihxdWVyeSk7XG4gICAgY29uc3QgW3Jlc106IGFueSA9IGF3YWl0IHRoaXMuY29ubi5xdWVyeShxdWVyeSk7XG4gICAgcmV0dXJuIHsgY2hhbmdlczogcmVzLmFmZmVjdGVkUm93cywgZmlyc3RJZDogcmVzLmluc2VydElkIH0gYXMgUXVlcnlVcGRhdGVSZXN1bHQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByZWxlYXNlKCkge1xuICAgIGlmICh0aGlzLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuY29ubi5yZWxlYXNlKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBlbmQoKSB7XG4gICAgYXdhaXQgdGhpcy5yZWxlYXNlKCk7XG4gICAgYXdhaXQgdGhpcy5jb25uLmVuZCgpO1xuICB9XG59XG4iXX0=
import { Pool, PoolOptions } from 'mysql2/promise';
import { QuerierLogger, QuerierPool } from 'nukak/type/index.js';
import { QuerierLogger, QuerierPool } from '../type/index.js';
import { MySql2Querier } from './mysql2Querier.js';

@@ -4,0 +4,0 @@ export declare class MySql2QuerierPool implements QuerierPool<MySql2Querier> {

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MySql2QuerierPool = void 0;
const promise_1 = require("mysql2/promise");
const mysql2Querier_js_1 = require("./mysql2Querier.js");
class MySql2QuerierPool {
import { createPool } from 'mysql2/promise';
import { MySql2Querier } from './mysql2Querier.js';
export class MySql2QuerierPool {
logger;

@@ -11,7 +8,7 @@ pool;

this.logger = logger;
this.pool = (0, promise_1.createPool)(opts);
this.pool = createPool(opts);
}
async getQuerier() {
const conn = await this.pool.getConnection();
return new mysql2Querier_js_1.MySql2Querier(conn, this.logger);
return new MySql2Querier(conn, this.logger);
}

@@ -22,3 +19,2 @@ async end() {

}
exports.MySql2QuerierPool = MySql2QuerierPool;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlzcWwyUXVlcmllclBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbXlzcWwvbXlzcWwyUXVlcmllclBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQStEO0FBRS9ELHlEQUFtRDtBQUVuRCxNQUFhLGlCQUFpQjtJQUdZO0lBRi9CLElBQUksQ0FBTztJQUVwQixZQUFZLElBQWlCLEVBQVcsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDNUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFBLG9CQUFVLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxnQ0FBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQWZELDhDQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUG9vbCwgUG9vbCwgUG9vbE9wdGlvbnMgfSBmcm9tICdteXNxbDIvcHJvbWlzZSc7XG5pbXBvcnQgeyBRdWVyaWVyTG9nZ2VyLCBRdWVyaWVyUG9vbCB9IGZyb20gJ251a2FrL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgTXlTcWwyUXVlcmllciB9IGZyb20gJy4vbXlzcWwyUXVlcmllci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNeVNxbDJRdWVyaWVyUG9vbCBpbXBsZW1lbnRzIFF1ZXJpZXJQb29sPE15U3FsMlF1ZXJpZXI+IHtcbiAgcmVhZG9ubHkgcG9vbDogUG9vbDtcblxuICBjb25zdHJ1Y3RvcihvcHRzOiBQb29sT3B0aW9ucywgcmVhZG9ubHkgbG9nZ2VyPzogUXVlcmllckxvZ2dlcikge1xuICAgIHRoaXMucG9vbCA9IGNyZWF0ZVBvb2wob3B0cyk7XG4gIH1cblxuICBhc3luYyBnZXRRdWVyaWVyKCkge1xuICAgIGNvbnN0IGNvbm4gPSBhd2FpdCB0aGlzLnBvb2wuZ2V0Q29ubmVjdGlvbigpO1xuICAgIHJldHVybiBuZXcgTXlTcWwyUXVlcmllcihjb25uLCB0aGlzLmxvZ2dlcik7XG4gIH1cblxuICBhc3luYyBlbmQoKSB7XG4gICAgYXdhaXQgdGhpcy5wb29sLmVuZCgpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlzcWwyUXVlcmllclBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbXlzcWwvbXlzcWwyUXVlcmllclBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbkQsTUFBTSxPQUFPLGlCQUFpQjtJQUdZO0lBRi9CLElBQUksQ0FBTztJQUVwQixZQUFZLElBQWlCLEVBQVcsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDNUQsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUG9vbCwgUG9vbCwgUG9vbE9wdGlvbnMgfSBmcm9tICdteXNxbDIvcHJvbWlzZSc7XG5pbXBvcnQgeyBRdWVyaWVyTG9nZ2VyLCBRdWVyaWVyUG9vbCB9IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgTXlTcWwyUXVlcmllciB9IGZyb20gJy4vbXlzcWwyUXVlcmllci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNeVNxbDJRdWVyaWVyUG9vbCBpbXBsZW1lbnRzIFF1ZXJpZXJQb29sPE15U3FsMlF1ZXJpZXI+IHtcbiAgcmVhZG9ubHkgcG9vbDogUG9vbDtcblxuICBjb25zdHJ1Y3RvcihvcHRzOiBQb29sT3B0aW9ucywgcmVhZG9ubHkgbG9nZ2VyPzogUXVlcmllckxvZ2dlcikge1xuICAgIHRoaXMucG9vbCA9IGNyZWF0ZVBvb2wob3B0cyk7XG4gIH1cblxuICBhc3luYyBnZXRRdWVyaWVyKCkge1xuICAgIGNvbnN0IGNvbm4gPSBhd2FpdCB0aGlzLnBvb2wuZ2V0Q29ubmVjdGlvbigpO1xuICAgIHJldHVybiBuZXcgTXlTcWwyUXVlcmllcihjb25uLCB0aGlzLmxvZ2dlcik7XG4gIH1cblxuICBhc3luYyBlbmQoKSB7XG4gICAgYXdhaXQgdGhpcy5wb29sLmVuZCgpO1xuICB9XG59XG4iXX0=

@@ -1,10 +0,6 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getQuerier = exports.getQuerierPool = exports.setQuerierPool = void 0;
let defaultPool;
function setQuerierPool(pool) {
export function setQuerierPool(pool) {
defaultPool = pool;
}
exports.setQuerierPool = setQuerierPool;
function getQuerierPool() {
export function getQuerierPool() {
if (!defaultPool) {

@@ -15,7 +11,5 @@ throw new TypeError('A default querier-pool has to be set first');

}
exports.getQuerierPool = getQuerierPool;
function getQuerier() {
export function getQuerier() {
return defaultPool.getQuerier();
}
exports.getQuerier = getQuerier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLElBQUksV0FBd0IsQ0FBQztBQUU3QixTQUFnQixjQUFjLENBQXNDLElBQU87SUFDekUsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFnQixjQUFjO0lBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0tBQ25FO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUxELHdDQUtDO0FBRUQsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRkQsZ0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyaWVyLCBRdWVyaWVyUG9vbCB9IGZyb20gJy4vdHlwZS9pbmRleC5qcyc7XG5cbmxldCBkZWZhdWx0UG9vbDogUXVlcmllclBvb2w7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRRdWVyaWVyUG9vbDxUIGV4dGVuZHMgUXVlcmllclBvb2wgPSBRdWVyaWVyUG9vbD4ocG9vbDogVCk6IHZvaWQge1xuICBkZWZhdWx0UG9vbCA9IHBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyUG9vbCgpOiBRdWVyaWVyUG9vbCB7XG4gIGlmICghZGVmYXVsdFBvb2wpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBIGRlZmF1bHQgcXVlcmllci1wb29sIGhhcyB0byBiZSBzZXQgZmlyc3QnKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyKCk6IFByb21pc2U8UXVlcmllcj4ge1xuICByZXR1cm4gZGVmYXVsdFBvb2wuZ2V0UXVlcmllcigpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLElBQUksV0FBd0IsQ0FBQztBQUU3QixNQUFNLFVBQVUsY0FBYyxDQUFzQyxJQUFPO0lBQ3pFLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjO0lBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0tBQ25FO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVO0lBQ3hCLE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyaWVyLCBRdWVyaWVyUG9vbCB9IGZyb20gJy4vdHlwZS9pbmRleC5qcyc7XG5cbmxldCBkZWZhdWx0UG9vbDogUXVlcmllclBvb2w7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRRdWVyaWVyUG9vbDxUIGV4dGVuZHMgUXVlcmllclBvb2wgPSBRdWVyaWVyUG9vbD4ocG9vbDogVCk6IHZvaWQge1xuICBkZWZhdWx0UG9vbCA9IHBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyUG9vbCgpOiBRdWVyaWVyUG9vbCB7XG4gIGlmICghZGVmYXVsdFBvb2wpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBIGRlZmF1bHQgcXVlcmllci1wb29sIGhhcyB0byBiZSBzZXQgZmlyc3QnKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyKCk6IFByb21pc2U8UXVlcmllcj4ge1xuICByZXR1cm4gZGVmYXVsdFBvb2wuZ2V0UXVlcmllcigpO1xufVxuIl19

@@ -6,6 +6,7 @@ {

"license": "MIT",
"version": "0.0.4",
"version": "0.0.5",
"type": "module",
"main": "./index.js",
"exports": "./index.js",
"types": "./index.d.ts",
"sideEffects": false,
"scripts": {

@@ -12,0 +13,0 @@ "copyfiles": "copyfiles -f package.json ../../README.md ../../CHANGELOG.md dist",

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./pgQuerier.js"), exports);
tslib_1.__exportStar(require("./pgQuerierPool.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG9zdGdyZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseURBQStCO0FBQy9CLDZEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGdRdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGdRdWVyaWVyUG9vbC5qcyc7XG4iXX0=
export * from './pgQuerier.js';
export * from './pgQuerierPool.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG9zdGdyZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wZ1F1ZXJpZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wZ1F1ZXJpZXJQb29sLmpzJztcbiJdfQ==
import { PoolClient } from 'pg';
import { QuerierLogger, QueryUpdateResult } from 'nukak/type/index.js';
import { AbstractSqlQuerier } from 'nukak/querier';
import { QuerierLogger, QueryUpdateResult } from '../type/index.js';
import { AbstractSqlQuerier } from '../querier/index.js';
export declare class PgQuerier extends AbstractSqlQuerier {

@@ -5,0 +5,0 @@ readonly conn: PoolClient;

@@ -1,11 +0,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PgQuerier = void 0;
const querier_1 = require("nukak/querier");
const dialect_1 = require("nukak/dialect");
class PgQuerier extends querier_1.AbstractSqlQuerier {
import { AbstractSqlQuerier } from '../querier/index.js';
import { PostgresDialect } from '../dialect/index.js';
export class PgQuerier extends AbstractSqlQuerier {
conn;
logger;
constructor(conn, logger) {
super(new dialect_1.PostgresDialect());
super(new PostgresDialect());
this.conn = conn;

@@ -34,3 +31,2 @@ this.logger = logger;

}
exports.PgQuerier = PgQuerier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGdRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Bvc3RncmVzL3BnUXVlcmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSwyQ0FBbUQ7QUFDbkQsMkNBQWdEO0FBRWhELE1BQWEsU0FBVSxTQUFRLDRCQUFrQjtJQUMxQjtJQUEyQjtJQUFoRCxZQUFxQixJQUFnQixFQUFXLE1BQXNCO1FBQ3BFLEtBQUssQ0FBQyxJQUFJLHlCQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRFYsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFXLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBRXRFLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFJLEtBQWE7UUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUksS0FBSyxDQUFDLENBQUM7UUFDNUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFRLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBdUIsQ0FBQztJQUNoRSxDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU87UUFDcEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUc7UUFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBM0JELDhCQTJCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvb2xDbGllbnQgfSBmcm9tICdwZyc7XG5cbmltcG9ydCB7IFF1ZXJpZXJMb2dnZXIsIFF1ZXJ5VXBkYXRlUmVzdWx0IH0gZnJvbSAnbnVrYWsvdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBBYnN0cmFjdFNxbFF1ZXJpZXIgfSBmcm9tICdudWthay9xdWVyaWVyJztcbmltcG9ydCB7IFBvc3RncmVzRGlhbGVjdCB9IGZyb20gJ251a2FrL2RpYWxlY3QnO1xuXG5leHBvcnQgY2xhc3MgUGdRdWVyaWVyIGV4dGVuZHMgQWJzdHJhY3RTcWxRdWVyaWVyIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubjogUG9vbENsaWVudCwgcmVhZG9ubHkgbG9nZ2VyPzogUXVlcmllckxvZ2dlcikge1xuICAgIHN1cGVyKG5ldyBQb3N0Z3Jlc0RpYWxlY3QoKSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBhbGw8VD4ocXVlcnk6IHN0cmluZykge1xuICAgIHRoaXMubG9nZ2VyPy4ocXVlcnkpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY29ubi5xdWVyeTxUPihxdWVyeSk7XG4gICAgcmV0dXJuIHJlcy5yb3dzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcnVuKHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvZ2dlcj8uKHF1ZXJ5KTtcbiAgICBjb25zdCB7IHJvd0NvdW50OiBjaGFuZ2VzLCByb3dzIH06IGFueSA9IGF3YWl0IHRoaXMuY29ubi5xdWVyeShxdWVyeSk7XG4gICAgcmV0dXJuIHsgY2hhbmdlcywgZmlyc3RJZDogcm93c1swXT8uaWQgfSBhcyBRdWVyeVVwZGF0ZVJlc3VsdDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJlbGVhc2UoKSB7XG4gICAgaWYgKHRoaXMuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5jb25uLnJlbGVhc2UoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGVuZCgpIHtcbiAgICBhd2FpdCB0aGlzLnJlbGVhc2UoKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGdRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Bvc3RncmVzL3BnUXVlcmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsTUFBTSxPQUFPLFNBQVUsU0FBUSxrQkFBa0I7SUFDMUI7SUFBMkI7SUFBaEQsWUFBcUIsSUFBZ0IsRUFBVyxNQUFzQjtRQUNwRSxLQUFLLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRFYsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFXLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBRXRFLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFJLEtBQWE7UUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUksS0FBSyxDQUFDLENBQUM7UUFDNUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFRLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBdUIsQ0FBQztJQUNoRSxDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU87UUFDcEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUc7UUFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9vbENsaWVudCB9IGZyb20gJ3BnJztcblxuaW1wb3J0IHsgUXVlcmllckxvZ2dlciwgUXVlcnlVcGRhdGVSZXN1bHQgfSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IEFic3RyYWN0U3FsUXVlcmllciB9IGZyb20gJy4uL3F1ZXJpZXIvaW5kZXguanMnO1xuaW1wb3J0IHsgUG9zdGdyZXNEaWFsZWN0IH0gZnJvbSAnLi4vZGlhbGVjdC9pbmRleC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQZ1F1ZXJpZXIgZXh0ZW5kcyBBYnN0cmFjdFNxbFF1ZXJpZXIge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25uOiBQb29sQ2xpZW50LCByZWFkb25seSBsb2dnZXI/OiBRdWVyaWVyTG9nZ2VyKSB7XG4gICAgc3VwZXIobmV3IFBvc3RncmVzRGlhbGVjdCgpKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGFsbDxUPihxdWVyeTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2dnZXI/LihxdWVyeSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jb25uLnF1ZXJ5PFQ+KHF1ZXJ5KTtcbiAgICByZXR1cm4gcmVzLnJvd3M7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBydW4ocXVlcnk6IHN0cmluZykge1xuICAgIHRoaXMubG9nZ2VyPy4ocXVlcnkpO1xuICAgIGNvbnN0IHsgcm93Q291bnQ6IGNoYW5nZXMsIHJvd3MgfTogYW55ID0gYXdhaXQgdGhpcy5jb25uLnF1ZXJ5KHF1ZXJ5KTtcbiAgICByZXR1cm4geyBjaGFuZ2VzLCBmaXJzdElkOiByb3dzWzBdPy5pZCB9IGFzIFF1ZXJ5VXBkYXRlUmVzdWx0O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVsZWFzZSgpIHtcbiAgICBpZiAodGhpcy5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvbm4ucmVsZWFzZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMucmVsZWFzZSgpO1xuICB9XG59XG4iXX0=
import { Pool, PoolConfig } from 'pg';
import { QuerierLogger, QuerierPool } from 'nukak/type/index.js';
import { QuerierLogger, QuerierPool } from '../type/index.js';
import { PgQuerier } from './pgQuerier.js';

@@ -4,0 +4,0 @@ export declare class PgQuerierPool implements QuerierPool<PgQuerier> {

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PgQuerierPool = void 0;
const pg_1 = require("pg");
const pgQuerier_js_1 = require("./pgQuerier.js");
class PgQuerierPool {
import { Pool } from 'pg';
import { PgQuerier } from './pgQuerier.js';
export class PgQuerierPool {
logger;

@@ -11,7 +8,7 @@ pool;

this.logger = logger;
this.pool = new pg_1.Pool(opts);
this.pool = new Pool(opts);
}
async getQuerier() {
const conn = await this.pool.connect();
return new pgQuerier_js_1.PgQuerier(conn, this.logger);
return new PgQuerier(conn, this.logger);
}

@@ -22,3 +19,2 @@ async end() {

}
exports.PgQuerierPool = PgQuerierPool;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGdRdWVyaWVyUG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wb3N0Z3Jlcy9wZ1F1ZXJpZXJQb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUFzQztBQUV0QyxpREFBMkM7QUFFM0MsTUFBYSxhQUFhO0lBR2U7SUFGOUIsSUFBSSxDQUFPO0lBRXBCLFlBQVksSUFBZ0IsRUFBVyxNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksd0JBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUFmRCxzQ0FlQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvb2wsIFBvb2xDb25maWcgfSBmcm9tICdwZyc7XG5pbXBvcnQgeyBRdWVyaWVyTG9nZ2VyLCBRdWVyaWVyUG9vbCB9IGZyb20gJ251a2FrL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgUGdRdWVyaWVyIH0gZnJvbSAnLi9wZ1F1ZXJpZXIuanMnO1xuXG5leHBvcnQgY2xhc3MgUGdRdWVyaWVyUG9vbCBpbXBsZW1lbnRzIFF1ZXJpZXJQb29sPFBnUXVlcmllcj4ge1xuICByZWFkb25seSBwb29sOiBQb29sO1xuXG4gIGNvbnN0cnVjdG9yKG9wdHM6IFBvb2xDb25maWcsIHJlYWRvbmx5IGxvZ2dlcj86IFF1ZXJpZXJMb2dnZXIpIHtcbiAgICB0aGlzLnBvb2wgPSBuZXcgUG9vbChvcHRzKTtcbiAgfVxuXG4gIGFzeW5jIGdldFF1ZXJpZXIoKSB7XG4gICAgY29uc3QgY29ubiA9IGF3YWl0IHRoaXMucG9vbC5jb25uZWN0KCk7XG4gICAgcmV0dXJuIG5ldyBQZ1F1ZXJpZXIoY29ubiwgdGhpcy5sb2dnZXIpO1xuICB9XG5cbiAgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMucG9vbC5lbmQoKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGdRdWVyaWVyUG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wb3N0Z3Jlcy9wZ1F1ZXJpZXJQb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxJQUFJLENBQUM7QUFFdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxhQUFhO0lBR2U7SUFGOUIsSUFBSSxDQUFPO0lBRXBCLFlBQVksSUFBZ0IsRUFBVyxNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvb2wsIFBvb2xDb25maWcgfSBmcm9tICdwZyc7XG5pbXBvcnQgeyBRdWVyaWVyTG9nZ2VyLCBRdWVyaWVyUG9vbCB9IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgUGdRdWVyaWVyIH0gZnJvbSAnLi9wZ1F1ZXJpZXIuanMnO1xuXG5leHBvcnQgY2xhc3MgUGdRdWVyaWVyUG9vbCBpbXBsZW1lbnRzIFF1ZXJpZXJQb29sPFBnUXVlcmllcj4ge1xuICByZWFkb25seSBwb29sOiBQb29sO1xuXG4gIGNvbnN0cnVjdG9yKG9wdHM6IFBvb2xDb25maWcsIHJlYWRvbmx5IGxvZ2dlcj86IFF1ZXJpZXJMb2dnZXIpIHtcbiAgICB0aGlzLnBvb2wgPSBuZXcgUG9vbChvcHRzKTtcbiAgfVxuXG4gIGFzeW5jIGdldFF1ZXJpZXIoKSB7XG4gICAgY29uc3QgY29ubiA9IGF3YWl0IHRoaXMucG9vbC5jb25uZWN0KCk7XG4gICAgcmV0dXJuIG5ldyBQZ1F1ZXJpZXIoY29ubiwgdGhpcy5sb2dnZXIpO1xuICB9XG5cbiAgYXN5bmMgZW5kKCkge1xuICAgIGF3YWl0IHRoaXMucG9vbC5lbmQoKTtcbiAgfVxufVxuIl19

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AbstractQuerier = void 0;
const entity_1 = require("../entity");
const util_1 = require("../util");
const repository_1 = require("../repository");
class AbstractQuerier {
import { getMeta } from '../entity/decorator/index.js';
import { clone, getKeys, getProjectRelationKeys, getPersistableRelations } from '../util/index.js';
import { GenericRepository } from '../repository/index.js';
export class AbstractQuerier {
findOneById(entity, id, qm = {}) {

@@ -33,3 +30,3 @@ return this.findOne(entity, { ...qm, $filter: id });

async saveMany(entity, payload) {
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
const ids = [];

@@ -40,3 +37,3 @@ const updates = [];

if (it[meta.id]) {
if ((0, util_1.getKeys)(it).length === 1) {
if (getKeys(it).length === 1) {
ids.push(it[meta.id]);

@@ -63,8 +60,8 @@ }

async findToManyRelations(entity, payload, project) {
const meta = (0, entity_1.getMeta)(entity);
const relations = (0, util_1.getProjectRelationKeys)(meta, project);
const meta = getMeta(entity);
const relations = getProjectRelationKeys(meta, project);
for (const relKey of relations) {
const relOpts = meta.relations[relKey];
const relEntity = relOpts.entity();
const relProject = (0, util_1.clone)(project[relKey]);
const relProject = clone(project[relKey]);
const relQuery = relProject === true || relProject === undefined ? {} : Array.isArray(relProject) ? { $project: relProject } : relProject;

@@ -75,3 +72,3 @@ const ids = payload.map((it) => it[meta.id]);

const throughEntity = relOpts.through();
const throughMeta = (0, entity_1.getMeta)(throughEntity);
const throughMeta = getMeta(throughEntity);
const targetRelKey = Object.keys(throughMeta.relations).find((key) => throughMeta.relations[key].references.some(({ local }) => local === relOpts.references[1].local));

@@ -126,5 +123,5 @@ const throughFounds = await this.findMany(throughEntity, {

async insertRelations(entity, payload) {
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
await Promise.all(payload.map((it) => {
const relKeys = (0, util_1.getPersistableRelations)(meta, it, 'persist');
const relKeys = getPersistableRelations(meta, it, 'persist');
if (!relKeys.length) {

@@ -137,4 +134,4 @@ return;

async updateRelations(entity, criteria, payload) {
const meta = (0, entity_1.getMeta)(entity);
const relKeys = (0, util_1.getPersistableRelations)(meta, payload, 'persist');
const meta = getMeta(entity);
const relKeys = getPersistableRelations(meta, payload, 'persist');
if (!relKeys.length) {

@@ -151,4 +148,4 @@ return;

async deleteRelations(entity, ids, opts) {
const meta = (0, entity_1.getMeta)(entity);
const relKeys = (0, util_1.getPersistableRelations)(meta, meta.relations, 'delete');
const meta = getMeta(entity);
const relKeys = getPersistableRelations(meta, meta.relations, 'delete');
for (const relKey of relKeys) {

@@ -167,3 +164,3 @@ const relOpts = meta.relations[relKey];

async saveRelation(entity, payload, relKey, isUpdate) {
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
const id = payload[meta.id];

@@ -219,3 +216,3 @@ const { entity: entityGetter, cardinality, references, through } = meta.relations[relKey];

getRepository(entity) {
return new repository_1.GenericRepository(entity, this);
return new GenericRepository(entity, this);
}

@@ -238,3 +235,2 @@ async transaction(callback) {

}
exports.AbstractQuerier = AbstractQuerier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWVBLHNDQUFvQztBQUNwQyxrQ0FBMEY7QUFDMUYsOENBQWtEO0FBRWxELE1BQXNCLGVBQWU7SUFHbkMsV0FBVyxDQUFJLE1BQWUsRUFBRSxFQUFjLEVBQUUsS0FBcUIsRUFBRTtRQUNyRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUksTUFBZSxFQUFFLEVBQWU7UUFDL0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFJRCxnQkFBZ0IsQ0FBSSxNQUFlLEVBQUUsRUFBWTtRQUMvQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUksTUFBZSxFQUFFLE9BQVU7UUFDNUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUlELGFBQWEsQ0FBSSxNQUFlLEVBQUUsRUFB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LElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNwRSxPQUFPO1NBQ1I7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFJLE1BQWU7UUFDOUIsT0FBTyxJQUFJLDhCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBSUQsS0FBSyxDQUFDLFdBQVcsQ0FBSSxRQUFxRDtRQUN4RSxJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM5QixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDakMsTUFBTSxHQUFHLENBQUM7U0FDWDtnQkFBUztZQUNSLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztDQVdGO0FBL1FELDBDQStRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElkVmFsdWUsXG4gIFF1ZXJpZXIsXG4gIFF1ZXJ5LFxuICBRdWVyeUNyaXRlcmlhLFxuICBRdWVyeU9uZSxcbiAgUXVlcnlPcHRpb25zLFxuICBRdWVyeVByb2plY3QsXG4gIFF1ZXJ5U2VhcmNoLFxuICBRdWVyeVVuaXF1ZSxcbiAgUmVsYXRpb25LZXksXG4gIFJlbGF0aW9uVmFsdWUsXG4gIFJlcG9zaXRvcnksXG4gIFR5cGUsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJy4uL2VudGl0eSc7XG5pbXBvcnQgeyBjbG9uZSwgZ2V0S2V5cywgZ2V0UHJvamVjdFJlbGF0aW9uS2V5cywgZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IEdlbmVyaWNSZXBvc2l0b3J5IH0gZnJvbSAnLi4vcmVwb3NpdG9yeSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFF1ZXJpZXIgaW1wbGVtZW50cyBRdWVyaWVyIHtcbiAgYWJzdHJhY3QgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbT86IFF1ZXJ5U2VhcmNoPEU+KTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGZpbmRPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHFtOiBRdWVyeVVuaXF1ZTxFPiA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZShlbnRpdHksIHsgLi4ucW0sICRmaWx0ZXI6IGlkIH0pO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeU9uZTxFPikge1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmZpbmRNYW55KGVudGl0eSwgeyAuLi5xbSwgJGxpbWl0OiAxIH0pO1xuICAgIHJldHVybiByb3dzWzBdO1xuICB9XG5cbiAgYWJzdHJhY3QgZmluZE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pOiBQcm9taXNlPEVbXT47XG5cbiAgZmluZE1hbnlBbmRDb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPikge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChbdGhpcy5maW5kTWFueShlbnRpdHksIHFtKSwgdGhpcy5jb3VudChlbnRpdHksIHFtKV0pO1xuICB9XG5cbiAgYXN5bmMgaW5zZXJ0T25lPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRSkge1xuICAgIGNvbnN0IFtpZF0gPSBhd2FpdCB0aGlzLmluc2VydE1hbnkoZW50aXR5LCBbcGF5bG9hZF0pO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGFic3RyYWN0IGluc2VydE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pOiBQcm9taXNlPElkVmFsdWU8RT5bXT47XG5cbiAgdXBkYXRlT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlTWFueShlbnRpdHksIHsgJGZpbHRlcjogaWQgfSwgcGF5bG9hZCk7XG4gIH1cblxuICBhYnN0cmFjdCB1cGRhdGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZGVsZXRlT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlTWFueShlbnRpdHksIHsgJGZpbHRlcjogaWQgfSwgb3B0cyk7XG4gIH1cblxuICBhYnN0cmFjdCBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgYXN5bmMgc2F2ZU9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICBjb25zdCBbaWRdID0gYXdhaXQgdGhpcy5zYXZlTWFueShlbnRpdHksIFtwYXlsb2FkXSk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgYXN5bmMgc2F2ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGlkczogSWRWYWx1ZTxFPltdID0gW107XG4gICAgY29uc3QgdXBkYXRlczogRVtdID0gW107XG4gICAgY29uc3QgaW5zZXJ0czogRVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGl0IG9mIHBheWxvYWQpIHtcbiAgICAgIGlmIChpdFttZXRhLmlkXSkge1xuICAgICAgICBpZiAoZ2V0S2V5cyhpdCkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgaWRzLnB1c2goaXRbbWV0YS5pZF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVwZGF0ZXMucHVzaChpdCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluc2VydHMucHVzaChpdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgIC4uLmlkcyxcbiAgICAgIC4uLihpbnNlcnRzLmxlbmd0aCA/IGF3YWl0IHRoaXMuaW5zZXJ0TWFueShlbnRpdHksIGluc2VydHMpIDogW10pLFxuICAgICAgLi4udXBkYXRlcy5tYXAoYXN5bmMgKGl0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgW21ldGEuaWRdOiBpZCwgLi4uZGF0YSB9ID0gaXQ7XG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlT25lQnlJZChlbnRpdHksIGlkLCBkYXRhIGFzIEUpO1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgICB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBmaW5kVG9NYW55UmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdLCBwcm9qZWN0OiBRdWVyeVByb2plY3Q8RT4pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHJlbGF0aW9ucyA9IGdldFByb2plY3RSZWxhdGlvbktleXMobWV0YSwgcHJvamVjdCk7XG5cbiAgICBmb3IgKGNvbnN0IHJlbEtleSBvZiByZWxhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICAgIGNvbnN0IHJlbFByb2plY3QgPSBjbG9uZShwcm9qZWN0W3JlbEtleSBhcyBzdHJpbmddKTtcbiAgICAgIGNvbnN0IHJlbFF1ZXJ5OiBRdWVyeTxhbnk+ID1cbiAgICAgICAgcmVsUHJvamVjdCA9PT0gdHJ1ZSB8fCByZWxQcm9qZWN0ID09PSB1bmRlZmluZWQgPyB7fSA6IEFycmF5LmlzQXJyYXkocmVsUHJvamVjdCkgPyB7ICRwcm9qZWN0OiByZWxQcm9qZWN0IH0gOiByZWxQcm9qZWN0O1xuICAgICAgY29uc3QgaWRzID0gcGF5bG9hZC5tYXAoKGl0KSA9PiBpdFttZXRhLmlkXSk7XG5cbiAgICAgIGlmIChyZWxPcHRzLnRocm91Z2gpIHtcbiAgICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlbE9wdHMucmVmZXJlbmNlc1swXS5sb2NhbDtcbiAgICAgICAgY29uc3QgdGhyb3VnaEVudGl0eSA9IHJlbE9wdHMudGhyb3VnaCgpO1xuICAgICAgICBjb25zdCB0aHJvdWdoTWV0YSA9IGdldE1ldGEodGhyb3VnaEVudGl0eSk7XG4gICAgICAgIGNvbnN0IHRhcmdldFJlbEtleSA9IE9iamVjdC5rZXlzKHRocm91Z2hNZXRhLnJlbGF0aW9ucykuZmluZCgoa2V5KSA9PlxuICAgICAgICAgIHRocm91Z2hNZXRhLnJlbGF0aW9uc1trZXldLnJlZmVyZW5jZXMuc29tZSgoeyBsb2NhbCB9KSA9PiBsb2NhbCA9PT0gcmVsT3B0cy5yZWZlcmVuY2VzWzFdLmxvY2FsKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCB0aHJvdWdoRm91bmRzID0gYXdhaXQgdGhpcy5maW5kTWFueSh0aHJvdWdoRW50aXR5LCB7XG4gICAgICAgICAgJHByb2plY3Q6IHtcbiAgICAgICAgICAgIFtsb2NhbEZpZWxkXTogdHJ1ZSxcbiAgICAgICAgICAgIFt0YXJnZXRSZWxLZXldOiB7XG4gICAgICAgICAgICAgIC4uLnJlbFF1ZXJ5LFxuICAgICAgICAgICAgICAkcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgJGZpbHRlcjoge1xuICAgICAgICAgICAgW2xvY2FsRmllbGRdOiBpZHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGZvdW5kcyA9IHRocm91Z2hGb3VuZHMubWFwKChpdCkgPT4gKHsgLi4uaXRbdGFyZ2V0UmVsS2V5XSwgW2xvY2FsRmllbGRdOiBpdFtsb2NhbEZpZWxkXSB9KSk7XG4gICAgICAgIHRoaXMucHV0Q2hpbGRyZW5JblBhcmVudHMocGF5bG9hZCwgZm91bmRzLCBtZXRhLmlkLCBsb2NhbEZpZWxkLCByZWxLZXkpO1xuICAgICAgfSBlbHNlIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnMW0nKSB7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25GaWVsZCA9IHJlbE9wdHMucmVmZXJlbmNlc1swXS5mb3JlaWduO1xuICAgICAgICBpZiAocmVsUXVlcnkuJHByb2plY3QpIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxRdWVyeS4kcHJvamVjdCkpIHtcbiAgICAgICAgICAgIGlmICghcmVsUXVlcnkuJHByb2plY3QuaW5jbHVkZXMoZm9yZWlnbkZpZWxkKSkge1xuICAgICAgICAgICAgICByZWxRdWVyeS4kcHJvamVjdC5wdXNoKGZvcmVpZ25GaWVsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghcmVsUXVlcnkuJHByb2plY3RbZm9yZWlnbkZpZWxkXSkge1xuICAgICAgICAgICAgcmVsUXVlcnkuJHByb2plY3RbZm9yZWlnbkZpZWxkXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlbFF1ZXJ5LiRmaWx0ZXIgPSB7IFtmb3JlaWduRmllbGRdOiBpZHMgfTtcbiAgICAgICAgY29uc3QgZm91bmRzID0gYXdhaXQgdGhpcy5maW5kTWFueShyZWxFbnRpdHksIHJlbFF1ZXJ5KTtcbiAgICAgICAgdGhpcy5wdXRDaGlsZHJlbkluUGFyZW50cyhwYXlsb2FkLCBmb3VuZHMsIG1ldGEuaWQsIGZvcmVpZ25GaWVsZCwgcmVsS2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHV0Q2hpbGRyZW5JblBhcmVudHM8RT4ocGFyZW50czogRVtdLCBjaGlsZHJlbjogRVtdLCBwYXJlbnRJZEtleTogc3RyaW5nLCByZWZlcmVuY2VLZXk6IHN0cmluZywgcmVsS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZHJlbkJ5UGFyZW50TWFwID0gY2hpbGRyZW4ucmVkdWNlKChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICBjb25zdCBwYXJlbklkID0gY2hpbGRbcmVmZXJlbmNlS2V5XTtcbiAgICAgIGlmICghYWNjW3BhcmVuSWRdKSB7XG4gICAgICAgIGFjY1twYXJlbklkXSA9IFtdO1xuICAgICAgfVxuICAgICAgYWNjW3BhcmVuSWRdLnB1c2goY2hpbGQpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG5cbiAgICBmb3IgKGNvbnN0IHBhcmVudCBvZiBwYXJlbnRzKSB7XG4gICAgICBjb25zdCBwYXJlbnRJZCA9IHBhcmVudFtwYXJlbnRJZEtleV07XG4gICAgICBwYXJlbnRbcmVsS2V5XSA9IGNoaWxkcmVuQnlQYXJlbnRNYXBbcGFyZW50SWRdO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBpbnNlcnRSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcGF5bG9hZC5tYXAoKGl0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbEtleXMgPSBnZXRQZXJzaXN0YWJsZVJlbGF0aW9ucyhtZXRhLCBpdCwgJ3BlcnNpc3QnKTtcbiAgICAgICAgaWYgKCFyZWxLZXlzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVsS2V5cy5tYXAoKHJlbEtleSkgPT4gdGhpcy5zYXZlUmVsYXRpb24oZW50aXR5LCBpdCwgcmVsS2V5KSkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIGNyaXRlcmlhOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgcGF5bG9hZCwgJ3BlcnNpc3QnKTtcblxuICAgIGlmICghcmVsS2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KGVudGl0eSwge1xuICAgICAgLi4uY3JpdGVyaWEsXG4gICAgICAkcHJvamVjdDogW21ldGEuaWRdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaWRzID0gZm91bmRzLm1hcCgoZm91bmQpID0+IGZvdW5kW21ldGEuaWRdKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGlkcy5tYXAoKGlkKSA9PiBQcm9taXNlLmFsbChyZWxLZXlzLm1hcCgocmVsS2V5KSA9PiB0aGlzLnNhdmVSZWxhdGlvbihlbnRpdHksIHsgLi4ucGF5bG9hZCwgW21ldGEuaWRdOiBpZCB9LCByZWxLZXksIHRydWUpKSkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWxldGVSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBpZHM6IElkVmFsdWU8RT5bXSwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVsS2V5cyA9IGdldFBlcnNpc3RhYmxlUmVsYXRpb25zKG1ldGEsIG1ldGEucmVsYXRpb25zIGFzIEUsICdkZWxldGUnKTtcblxuICAgIGZvciAoY29uc3QgcmVsS2V5IG9mIHJlbEtleXMpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICBpZiAocmVsT3B0cy50aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSByZWxPcHRzLnRocm91Z2goKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHRocm91Z2hFbnRpdHksIHsgJGZpbHRlcjogeyBbbG9jYWxGaWVsZF06IGlkcyB9IH0sIG9wdHMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkocmVsRW50aXR5LCB7IFtsb2NhbEZpZWxkXTogaWRzIH0sIG9wdHMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBzYXZlUmVsYXRpb248RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFLCByZWxLZXk6IFJlbGF0aW9uS2V5PEU+LCBpc1VwZGF0ZT86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGlkID0gcGF5bG9hZFttZXRhLmlkXTtcbiAgICBjb25zdCB7IGVudGl0eTogZW50aXR5R2V0dGVyLCBjYXJkaW5hbGl0eSwgcmVmZXJlbmNlcywgdGhyb3VnaCB9ID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcbiAgICBjb25zdCByZWxFbnRpdHkgPSBlbnRpdHlHZXR0ZXIoKTtcbiAgICBjb25zdCByZWxQYXlsb2FkID0gcGF5bG9hZFtyZWxLZXldIGFzIHVua25vd24gYXMgUmVsYXRpb25WYWx1ZTxFPltdO1xuXG4gICAgaWYgKGNhcmRpbmFsaXR5ID09PSAnMW0nIHx8IGNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICBpZiAodGhyb3VnaCkge1xuICAgICAgICBjb25zdCBsb2NhbEZpZWxkID0gcmVmZXJlbmNlc1swXS5sb2NhbDtcblxuICAgICAgICBjb25zdCB0aHJvdWdoRW50aXR5ID0gdGhyb3VnaCgpO1xuICAgICAgICBpZiAoaXNVcGRhdGUpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkodGhyb3VnaEVudGl0eSwgeyAkZmlsdGVyOiB7IFtsb2NhbEZpZWxkXTogaWQgfSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVsUGF5bG9hZCkge1xuICAgICAgICAgIGNvbnN0IHNhdmVkSWRzID0gYXdhaXQgdGhpcy5zYXZlTWFueShyZWxFbnRpdHksIHJlbFBheWxvYWQpO1xuICAgICAgICAgIGNvbnN0IHRocm91Z2hCb2RpZXMgPSBzYXZlZElkcy5tYXAoKHJlbElkKSA9PiAoe1xuICAgICAgICAgICAgW3JlZmVyZW5jZXNbMF0ubG9jYWxdOiBpZCxcbiAgICAgICAgICAgIFtyZWZlcmVuY2VzWzFdLmxvY2FsXTogcmVsSWQsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW5zZXJ0TWFueSh0aHJvdWdoRW50aXR5LCB0aHJvdWdoQm9kaWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBmb3JlaWduRmllbGQgPSByZWZlcmVuY2VzWzBdLmZvcmVpZ247XG4gICAgICBpZiAoaXNVcGRhdGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHJlbEVudGl0eSwgeyAkZmlsdGVyOiB7IFtmb3JlaWduRmllbGRdOiBpZCB9IH0pO1xuICAgICAgfVxuICAgICAgaWYgKHJlbFBheWxvYWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBpdCBvZiByZWxQYXlsb2FkKSB7XG4gICAgICAgICAgaXRbZm9yZWlnbkZpZWxkXSA9IGlkO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZU1hbnkocmVsRW50aXR5LCByZWxQYXlsb2FkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICcxMScpIHtcbiAgICAgIGNvbnN0IGZvcmVpZ25GaWVsZCA9IHJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgIGlmIChyZWxQYXlsb2FkID09PSBudWxsKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueShyZWxFbnRpdHksIHsgJGZpbHRlcjogeyBbZm9yZWlnbkZpZWxkXTogaWQgfSB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5zYXZlT25lKHJlbEVudGl0eSwgeyAuLi5yZWxQYXlsb2FkLCBbZm9yZWlnbkZpZWxkXTogaWQgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNhcmRpbmFsaXR5ID09PSAnbTEnICYmIHJlbFBheWxvYWQpIHtcbiAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWZlcmVuY2VzWzBdLmxvY2FsO1xuICAgICAgY29uc3QgcmVmZXJlbmNlSWQgPSBhd2FpdCB0aGlzLmluc2VydE9uZShyZWxFbnRpdHksIHJlbFBheWxvYWQpO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVPbmVCeUlkKGVudGl0eSwgaWQsIHsgW2xvY2FsRmllbGRdOiByZWZlcmVuY2VJZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBnZXRSZXBvc2l0b3J5PEU+KGVudGl0eTogVHlwZTxFPik6IFJlcG9zaXRvcnk8RT4ge1xuICAgIHJldHVybiBuZXcgR2VuZXJpY1JlcG9zaXRvcnkoZW50aXR5LCB0aGlzKTtcbiAgfVxuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGhhc09wZW5UcmFuc2FjdGlvbjogYm9vbGVhbjtcblxuICBhc3luYyB0cmFuc2FjdGlvbjxUPihjYWxsYmFjazogKHF1ZXJpZXI/OiBUaGlzVHlwZTxRdWVyaWVyPikgPT4gUHJvbWlzZTxUPikge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmJlZ2luVHJhbnNhY3Rpb24oKTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNhbGxiYWNrKHRoaXMpO1xuICAgICAgYXdhaXQgdGhpcy5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGF3YWl0IHRoaXMucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCB0aGlzLnJlbGVhc2UoKTtcbiAgICB9XG4gIH1cblxuICBhYnN0cmFjdCBiZWdpblRyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgY29tbWl0VHJhbnNhY3Rpb24oKTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCByb2xsYmFja1RyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgcmVsZWFzZSgpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGVuZCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE1BQU0sT0FBZ0IsZUFBZTtJQUduQyxXQUFXLENBQUksTUFBZSxFQUFFLEVBQWMsRUFBRSxLQUFxQixFQUFFO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBSSxNQUFlLEVBQUUsRUFBZTtRQUMvQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUlELGdCQUFnQixDQUFJLE1BQWUsRUFBRSxFQUFZO1FBQy9DLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBSSxNQUFlLEVBQUUsT0FBVTtRQUM1QyxNQUFNLENBQUMsRUFBRSxD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LElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLE9BQU87U0FDUjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUksTUFBZTtRQUM5QixPQUFPLElBQUksaUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFJRCxLQUFLLENBQUMsV0FBVyxDQUFJLFFBQXFEO1FBQ3hFLElBQUk7WUFDRixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0IsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEdBQUcsQ0FBQztTQUNYO2dCQUFTO1lBQ1IsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0NBV0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJZFZhbHVlLFxuICBRdWVyaWVyLFxuICBRdWVyeSxcbiAgUXVlcnlDcml0ZXJpYSxcbiAgUXVlcnlPbmUsXG4gIFF1ZXJ5T3B0aW9ucyxcbiAgUXVlcnlQcm9qZWN0LFxuICBRdWVyeVNlYXJjaCxcbiAgUXVlcnlVbmlxdWUsXG4gIFJlbGF0aW9uS2V5LFxuICBSZWxhdGlvblZhbHVlLFxuICBSZXBvc2l0b3J5LFxuICBUeXBlLFxufSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvZGVjb3JhdG9yL2luZGV4LmpzJztcbmltcG9ydCB7IGNsb25lLCBnZXRLZXlzLCBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLCBnZXRQZXJzaXN0YWJsZVJlbGF0aW9ucyB9IGZyb20gJy4uL3V0aWwvaW5kZXguanMnO1xuaW1wb3J0IHsgR2VuZXJpY1JlcG9zaXRvcnkgfSBmcm9tICcuLi9yZXBvc2l0b3J5L2luZGV4LmpzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UXVlcmllciBpbXBsZW1lbnRzIFF1ZXJpZXIge1xuICBhYnN0cmFjdCBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtPzogUXVlcnlTZWFyY2g8RT4pOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZmluZE9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcW06IFF1ZXJ5VW5pcXVlPEU+ID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5maW5kT25lKGVudGl0eSwgeyAuLi5xbSwgJGZpbHRlcjogaWQgfSk7XG4gIH1cblxuICBhc3luYyBmaW5kT25lPEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5T25lPEU+KSB7XG4gICAgY29uc3Qgcm93cyA9IGF3YWl0IHRoaXMuZmluZE1hbnkoZW50aXR5LCB7IC4uLnFtLCAkbGltaXQ6IDEgfSk7XG4gICAgcmV0dXJuIHJvd3NbMF07XG4gIH1cblxuICBhYnN0cmFjdCBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPik6IFByb21pc2U8RVtdPjtcblxuICBmaW5kTWFueUFuZENvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KSB7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFt0aGlzLmZpbmRNYW55KGVudGl0eSwgcW0pLCB0aGlzLmNvdW50KGVudGl0eSwgcW0pXSk7XG4gIH1cblxuICBhc3luYyBpbnNlcnRPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgW2lkXSA9IGF3YWl0IHRoaXMuaW5zZXJ0TWFueShlbnRpdHksIFtwYXlsb2FkXSk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgYWJzdHJhY3QgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSk6IFByb21pc2U8SWRWYWx1ZTxFPltdPjtcblxuICB1cGRhdGVPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVNYW55KGVudGl0eSwgeyAkZmlsdGVyOiBpZCB9LCBwYXlsb2FkKTtcbiAgfVxuXG4gIGFic3RyYWN0IHVwZGF0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8bnVtYmVyPjtcblxuICBkZWxldGVPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVNYW55KGVudGl0eSwgeyAkZmlsdGVyOiBpZCB9LCBvcHRzKTtcbiAgfVxuXG4gIGFic3RyYWN0IGRlbGV0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcblxuICBhc3luYyBzYXZlT25lPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRSkge1xuICAgIGNvbnN0IFtpZF0gPSBhd2FpdCB0aGlzLnNhdmVNYW55KGVudGl0eSwgW3BheWxvYWRdKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBhc3luYyBzYXZlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWRzOiBJZFZhbHVlPEU+W10gPSBbXTtcbiAgICBjb25zdCB1cGRhdGVzOiBFW10gPSBbXTtcbiAgICBjb25zdCBpbnNlcnRzOiBFW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgaXQgb2YgcGF5bG9hZCkge1xuICAgICAgaWYgKGl0W21ldGEuaWRdKSB7XG4gICAgICAgIGlmIChnZXRLZXlzKGl0KS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBpZHMucHVzaChpdFttZXRhLmlkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXBkYXRlcy5wdXNoKGl0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5zZXJ0cy5wdXNoKGl0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgLi4uaWRzLFxuICAgICAgLi4uKGluc2VydHMubGVuZ3RoID8gYXdhaXQgdGhpcy5pbnNlcnRNYW55KGVudGl0eSwgaW5zZXJ0cykgOiBbXSksXG4gICAgICAuLi51cGRhdGVzLm1hcChhc3luYyAoaXQpID0+IHtcbiAgICAgICAgY29uc3QgeyBbbWV0YS5pZF06IGlkLCAuLi5kYXRhIH0gPSBpdDtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVPbmVCeUlkKGVudGl0eSwgaWQsIGRhdGEgYXMgRSk7XG4gICAgICAgIHJldHVybiBpZDtcbiAgICAgIH0pLFxuICAgIF0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGZpbmRUb01hbnlSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10sIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVsYXRpb25zID0gZ2V0UHJvamVjdFJlbGF0aW9uS2V5cyhtZXRhLCBwcm9qZWN0KTtcblxuICAgIGZvciAoY29uc3QgcmVsS2V5IG9mIHJlbGF0aW9ucykge1xuICAgICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleV07XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgICAgY29uc3QgcmVsUHJvamVjdCA9IGNsb25lKHByb2plY3RbcmVsS2V5IGFzIHN0cmluZ10pO1xuICAgICAgY29uc3QgcmVsUXVlcnk6IFF1ZXJ5PGFueT4gPVxuICAgICAgICByZWxQcm9qZWN0ID09PSB0cnVlIHx8IHJlbFByb2plY3QgPT09IHVuZGVmaW5lZCA/IHt9IDogQXJyYXkuaXNBcnJheShyZWxQcm9qZWN0KSA/IHsgJHByb2plY3Q6IHJlbFByb2plY3QgfSA6IHJlbFByb2plY3Q7XG4gICAgICBjb25zdCBpZHMgPSBwYXlsb2FkLm1hcCgoaXQpID0+IGl0W21ldGEuaWRdKTtcblxuICAgICAgaWYgKHJlbE9wdHMudGhyb3VnaCkge1xuICAgICAgICBjb25zdCBsb2NhbEZpZWxkID0gcmVsT3B0cy5yZWZlcmVuY2VzWzBdLmxvY2FsO1xuICAgICAgICBjb25zdCB0aHJvdWdoRW50aXR5ID0gcmVsT3B0cy50aHJvdWdoKCk7XG4gICAgICAgIGNvbnN0IHRocm91Z2hNZXRhID0gZ2V0TWV0YSh0aHJvdWdoRW50aXR5KTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UmVsS2V5ID0gT2JqZWN0LmtleXModGhyb3VnaE1ldGEucmVsYXRpb25zKS5maW5kKChrZXkpID0+XG4gICAgICAgICAgdGhyb3VnaE1ldGEucmVsYXRpb25zW2tleV0ucmVmZXJlbmNlcy5zb21lKCh7IGxvY2FsIH0pID0+IGxvY2FsID09PSByZWxPcHRzLnJlZmVyZW5jZXNbMV0ubG9jYWwpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHRocm91Z2hGb3VuZHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KHRocm91Z2hFbnRpdHksIHtcbiAgICAgICAgICAkcHJvamVjdDoge1xuICAgICAgICAgICAgW2xvY2FsRmllbGRdOiB0cnVlLFxuICAgICAgICAgICAgW3RhcmdldFJlbEtleV06IHtcbiAgICAgICAgICAgICAgLi4ucmVsUXVlcnksXG4gICAgICAgICAgICAgICRyZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAkZmlsdGVyOiB7XG4gICAgICAgICAgICBbbG9jYWxGaWVsZF06IGlkcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZm91bmRzID0gdGhyb3VnaEZvdW5kcy5tYXAoKGl0KSA9PiAoeyAuLi5pdFt0YXJnZXRSZWxLZXldLCBbbG9jYWxGaWVsZF06IGl0W2xvY2FsRmllbGRdIH0pKTtcbiAgICAgICAgdGhpcy5wdXRDaGlsZHJlbkluUGFyZW50cyhwYXlsb2FkLCBmb3VuZHMsIG1ldGEuaWQsIGxvY2FsRmllbGQsIHJlbEtleSk7XG4gICAgICB9IGVsc2UgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICcxbScpIHtcbiAgICAgICAgY29uc3QgZm9yZWlnbkZpZWxkID0gcmVsT3B0cy5yZWZlcmVuY2VzWzBdLmZvcmVpZ247XG4gICAgICAgIGlmIChyZWxRdWVyeS4kcHJvamVjdCkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbFF1ZXJ5LiRwcm9qZWN0KSkge1xuICAgICAgICAgICAgaWYgKCFyZWxRdWVyeS4kcHJvamVjdC5pbmNsdWRlcyhmb3JlaWduRmllbGQpKSB7XG4gICAgICAgICAgICAgIHJlbFF1ZXJ5LiRwcm9qZWN0LnB1c2goZm9yZWlnbkZpZWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKCFyZWxRdWVyeS4kcHJvamVjdFtmb3JlaWduRmllbGRdKSB7XG4gICAgICAgICAgICByZWxRdWVyeS4kcHJvamVjdFtmb3JlaWduRmllbGRdID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVsUXVlcnkuJGZpbHRlciA9IHsgW2ZvcmVpZ25GaWVsZF06IGlkcyB9O1xuICAgICAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KHJlbEVudGl0eSwgcmVsUXVlcnkpO1xuICAgICAgICB0aGlzLnB1dENoaWxkcmVuSW5QYXJlbnRzKHBheWxvYWQsIGZvdW5kcywgbWV0YS5pZCwgZm9yZWlnbkZpZWxkLCByZWxLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwdXRDaGlsZHJlbkluUGFyZW50czxFPihwYXJlbnRzOiBFW10sIGNoaWxkcmVuOiBFW10sIHBhcmVudElkS2V5OiBzdHJpbmcsIHJlZmVyZW5jZUtleTogc3RyaW5nLCByZWxLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNoaWxkcmVuQnlQYXJlbnRNYXAgPSBjaGlsZHJlbi5yZWR1Y2UoKGFjYywgY2hpbGQpID0+IHtcbiAgICAgIGNvbnN0IHBhcmVuSWQgPSBjaGlsZFtyZWZlcmVuY2VLZXldO1xuICAgICAgaWYgKCFhY2NbcGFyZW5JZF0pIHtcbiAgICAgICAgYWNjW3BhcmVuSWRdID0gW107XG4gICAgICB9XG4gICAgICBhY2NbcGFyZW5JZF0ucHVzaChjaGlsZCk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcblxuICAgIGZvciAoY29uc3QgcGFyZW50IG9mIHBhcmVudHMpIHtcbiAgICAgIGNvbnN0IHBhcmVudElkID0gcGFyZW50W3BhcmVudElkS2V5XTtcbiAgICAgIHBhcmVudFtyZWxLZXldID0gY2hpbGRyZW5CeVBhcmVudE1hcFtwYXJlbnRJZF07XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGluc2VydFJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBwYXlsb2FkLm1hcCgoaXQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsS2V5cyA9IGdldFBlcnNpc3RhYmxlUmVsYXRpb25zKG1ldGEsIGl0LCAncGVyc2lzdCcpO1xuICAgICAgICBpZiAoIXJlbEtleXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChyZWxLZXlzLm1hcCgocmVsS2V5KSA9PiB0aGlzLnNhdmVSZWxhdGlvbihlbnRpdHksIGl0LCByZWxLZXkpKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgdXBkYXRlUmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPiwgY3JpdGVyaWE6IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHJlbEtleXMgPSBnZXRQZXJzaXN0YWJsZVJlbGF0aW9ucyhtZXRhLCBwYXlsb2FkLCAncGVyc2lzdCcpO1xuXG4gICAgaWYgKCFyZWxLZXlzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kcyA9IGF3YWl0IHRoaXMuZmluZE1hbnkoZW50aXR5LCB7XG4gICAgICAuLi5jcml0ZXJpYSxcbiAgICAgICRwcm9qZWN0OiBbbWV0YS5pZF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBpZHMgPSBmb3VuZHMubWFwKChmb3VuZCkgPT4gZm91bmRbbWV0YS5pZF0pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoaWRzLm1hcCgoaWQpID0+IFByb21pc2UuYWxsKHJlbEtleXMubWFwKChyZWxLZXkpID0+IHRoaXMuc2F2ZVJlbGF0aW9uKGVudGl0eSwgeyAuLi5wYXlsb2FkLCBbbWV0YS5pZF06IGlkIH0sIHJlbEtleSwgdHJ1ZSkpKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlbGV0ZVJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIGlkczogSWRWYWx1ZTxFPltdLCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgbWV0YS5yZWxhdGlvbnMgYXMgRSwgJ2RlbGV0ZScpO1xuXG4gICAgZm9yIChjb25zdCByZWxLZXkgb2YgcmVsS2V5cykge1xuICAgICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleV07XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlbE9wdHMucmVmZXJlbmNlc1swXS5sb2NhbDtcbiAgICAgIGlmIChyZWxPcHRzLnRocm91Z2gpIHtcbiAgICAgICAgY29uc3QgdGhyb3VnaEVudGl0eSA9IHJlbE9wdHMudGhyb3VnaCgpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkodGhyb3VnaEVudGl0eSwgeyAkZmlsdGVyOiB7IFtsb2NhbEZpZWxkXTogaWRzIH0gfSwgb3B0cyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueShyZWxFbnRpdHksIHsgW2xvY2FsRmllbGRdOiBpZHMgfSwgb3B0cyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNhdmVSZWxhdGlvbjxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUsIHJlbEtleTogUmVsYXRpb25LZXk8RT4sIGlzVXBkYXRlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWQgPSBwYXlsb2FkW21ldGEuaWRdO1xuICAgIGNvbnN0IHsgZW50aXR5OiBlbnRpdHlHZXR0ZXIsIGNhcmRpbmFsaXR5LCByZWZlcmVuY2VzLCB0aHJvdWdoIH0gPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgIGNvbnN0IHJlbEVudGl0eSA9IGVudGl0eUdldHRlcigpO1xuICAgIGNvbnN0IHJlbFBheWxvYWQgPSBwYXlsb2FkW3JlbEtleV0gYXMgdW5rbm93biBhcyBSZWxhdGlvblZhbHVlPEU+W107XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICcxbScgfHwgY2FyZGluYWxpdHkgPT09ICdtbScpIHtcbiAgICAgIGlmICh0aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWZlcmVuY2VzWzBdLmxvY2FsO1xuXG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSB0aHJvdWdoKCk7XG4gICAgICAgIGlmIChpc1VwZGF0ZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueSh0aHJvdWdoRW50aXR5LCB7ICRmaWx0ZXI6IHsgW2xvY2FsRmllbGRdOiBpZCB9IH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWxQYXlsb2FkKSB7XG4gICAgICAgICAgY29uc3Qgc2F2ZWRJZHMgPSBhd2FpdCB0aGlzLnNhdmVNYW55KHJlbEVudGl0eSwgcmVsUGF5bG9hZCk7XG4gICAgICAgICAgY29uc3QgdGhyb3VnaEJvZGllcyA9IHNhdmVkSWRzLm1hcCgocmVsSWQpID0+ICh7XG4gICAgICAgICAgICBbcmVmZXJlbmNlc1swXS5sb2NhbF06IGlkLFxuICAgICAgICAgICAgW3JlZmVyZW5jZXNbMV0ubG9jYWxdOiByZWxJZCxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pbnNlcnRNYW55KHRocm91Z2hFbnRpdHksIHRocm91Z2hCb2RpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZvcmVpZ25GaWVsZCA9IHJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgIGlmIChpc1VwZGF0ZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkocmVsRW50aXR5LCB7ICRmaWx0ZXI6IHsgW2ZvcmVpZ25GaWVsZF06IGlkIH0gfSk7XG4gICAgICB9XG4gICAgICBpZiAocmVsUGF5bG9hZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0IG9mIHJlbFBheWxvYWQpIHtcbiAgICAgICAgICBpdFtmb3JlaWduRmllbGRdID0gaWQ7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlTWFueShyZWxFbnRpdHksIHJlbFBheWxvYWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjYXJkaW5hbGl0eSA9PT0gJzExJykge1xuICAgICAgY29uc3QgZm9yZWlnbkZpZWxkID0gcmVmZXJlbmNlc1swXS5mb3JlaWduO1xuICAgICAgaWYgKHJlbFBheWxvYWQgPT09IG51bGwpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHJlbEVudGl0eSwgeyAkZmlsdGVyOiB7IFtmb3JlaWduRmllbGRdOiBpZCB9IH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnNhdmVPbmUocmVsRW50aXR5LCB7IC4uLnJlbFBheWxvYWQsIFtmb3JlaWduRmllbGRdOiBpZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICdtMScgJiYgcmVsUGF5bG9hZCkge1xuICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICBjb25zdCByZWZlcmVuY2VJZCA9IGF3YWl0IHRoaXMuaW5zZXJ0T25lKHJlbEVudGl0eSwgcmVsUGF5bG9hZCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9uZUJ5SWQoZW50aXR5LCBpZCwgeyBbbG9jYWxGaWVsZF06IHJlZmVyZW5jZUlkIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGdldFJlcG9zaXRvcnk8RT4oZW50aXR5OiBUeXBlPEU+KTogUmVwb3NpdG9yeTxFPiB7XG4gICAgcmV0dXJuIG5ldyBHZW5lcmljUmVwb3NpdG9yeShlbnRpdHksIHRoaXMpO1xuICB9XG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaGFzT3BlblRyYW5zYWN0aW9uOiBib29sZWFuO1xuXG4gIGFzeW5jIHRyYW5zYWN0aW9uPFQ+KGNhbGxiYWNrOiAocXVlcmllcj86IFRoaXNUeXBlPFF1ZXJpZXI+KSA9PiBQcm9taXNlPFQ+KSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgY2FsbGJhY2sodGhpcyk7XG4gICAgICBhd2FpdCB0aGlzLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgYXdhaXQgdGhpcy5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHRoaXMucmVsZWFzZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFic3RyYWN0IGJlZ2luVHJhbnNhY3Rpb24oKTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCBjb21taXRUcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IHJvbGxiYWNrVHJhbnNhY3Rpb24oKTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCByZWxlYXNlKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgZW5kKCk6IFByb21pc2U8dm9pZD47XG59XG4iXX0=
import { Query, Type, QueryCriteria, QueryOptions, QueryUpdateResult } from '../type/index.js';
import { AbstractSqlDialect } from '../dialect';
import { AbstractSqlDialect } from '../dialect/index.js';
import { AbstractQuerier } from './abstractQuerier.js';

@@ -4,0 +4,0 @@ export declare abstract class AbstractSqlQuerier extends AbstractQuerier {

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AbstractSqlQuerier = void 0;
const util_1 = require("../util");
const entity_1 = require("../entity");
const abstractQuerier_js_1 = require("./abstractQuerier.js");
class AbstractSqlQuerier extends abstractQuerier_js_1.AbstractQuerier {
import { unflatObjects, clone } from '../util/index.js';
import { getMeta } from '../entity/index.js';
import { AbstractQuerier } from './abstractQuerier.js';
export class AbstractSqlQuerier extends AbstractQuerier {
dialect;

@@ -22,3 +19,3 @@ hasPendingTransaction;

const res = await this.all(query);
const founds = (0, util_1.unflatObjects)(res);
const founds = unflatObjects(res);
await this.findToManyRelations(entity, founds, qm.$project);

@@ -28,6 +25,6 @@ return founds;

async insertMany(entity, payload) {
payload = (0, util_1.clone)(payload);
payload = clone(payload);
const query = this.dialect.insert(entity, payload);
const { firstId } = await this.run(query);
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
const ids = payload.map((it, index) => {

@@ -41,3 +38,3 @@ it[meta.id] ??= firstId + index;

async updateMany(entity, qm, payload) {
payload = (0, util_1.clone)(payload);
payload = clone(payload);
const query = this.dialect.update(entity, qm, payload);

@@ -49,3 +46,3 @@ const { changes } = await this.run(query);

async deleteMany(entity, qm, opts) {
const meta = (0, entity_1.getMeta)(entity);
const meta = getMeta(entity);
const findQuery = await this.dialect.find(entity, { ...qm, $project: [meta.id] });

@@ -91,3 +88,2 @@ const founds = await this.all(findQuery);

}
exports.AbstractSqlQuerier = AbstractSqlQuerier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RTcWxRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGtDQUErQztBQUUvQyxzQ0FBb0M7QUFFcEMsNkRBQXVEO0FBRXZELE1BQXNCLGtCQUFtQixTQUFRLG9DQUFlO0lBR3pDO0lBRmIscUJBQXFCLENBQVc7SUFFeEMsWUFBcUIsT0FBMkI7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFEVyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtJQUVoRCxDQUFDO0lBY1EsS0FBSyxDQUFDLEtBQUssQ0FBSSxNQUFlLEVBQUUsRUFBcUI7UUFDNUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkQsTUFBTSxHQUFHLEdBQVEsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFJLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRVEsS0FBSyxDQUFDLFFBQVEsQ0FBSSxNQUFlLEVBQUUsRUFBWTtRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUEsb0JBQWEsRUFBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFD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TUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU87UUFDUCx3QkFBd0I7UUFDeEIseUVBQXlFO1FBQ3pFLElBQUk7UUFDSixNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxpQkFBaUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMvQixNQUFNLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVRLEtBQUssQ0FBQyxtQkFBbUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMvQixNQUFNLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBbkdELGdEQW1HQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5LCBUeXBlLCBRdWVyeUNyaXRlcmlhLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5VXBkYXRlUmVzdWx0IH0gZnJvbSAnLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyB1bmZsYXRPYmplY3RzLCBjbG9uZSB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxEaWFsZWN0IH0gZnJvbSAnLi4vZGlhbGVjdCc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5JztcblxuaW1wb3J0IHsgQWJzdHJhY3RRdWVyaWVyIH0gZnJvbSAnLi9hYnN0cmFjdFF1ZXJpZXIuanMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTcWxRdWVyaWVyIGV4dGVuZHMgQWJzdHJhY3RRdWVyaWVyIHtcbiAgcHJpdmF0ZSBoYXNQZW5kaW5nVHJhbnNhY3Rpb24/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRpYWxlY3Q6IEFic3RyYWN0U3FsRGlhbGVjdCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogcmVhZCBxdWVyeS5cbiAgICogQHBhcmFtIHF1ZXJ5IHRoZSBxdWVyeVxuICAgKi9cbiAgYWJzdHJhY3QgYWxsPFQ+KHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPFRbXT47XG5cbiAgLyoqXG4gICAqIGluc2VydC91cGRhdGUvZGVsZXRlL2RkbCBxdWVyeS5cbiAgICogQHBhcmFtIHF1ZXJ5IHRoZSBxdWVyeVxuICAgKi9cbiAgYWJzdHJhY3QgcnVuKHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPFF1ZXJ5VXBkYXRlUmVzdWx0PjtcblxuICBvdmVycmlkZSBhc3luYyBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtPzogUXVlcnlDcml0ZXJpYTxFPikge1xuICAgIGNvbnN0IHF1ZXJ5ID0gYXdhaXQgdGhpcy5kaWFsZWN0LmNvdW50KGVudGl0eSwgcW0pO1xuICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdGhpcy5hbGw8RT4ocXVlcnkpO1xuICAgIHJldHVybiBOdW1iZXIocmVzWzBdLmNvdW50KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuZmluZChlbnRpdHksIHFtKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmFsbDxFPihxdWVyeSk7XG4gICAgY29uc3QgZm91bmRzID0gdW5mbGF0T2JqZWN0cyhyZXMpO1xuICAgIGF3YWl0IHRoaXMuZmluZFRvTWFueVJlbGF0aW9ucyhlbnRpdHksIGZvdW5kcywgcW0uJHByb2plY3QpO1xuICAgIHJldHVybiBmb3VuZHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0Lmluc2VydChlbnRpdHksIHBheWxvYWQpO1xuICAgIGNvbnN0IHsgZmlyc3RJZCB9ID0gYXdhaXQgdGhpcy5ydW4ocXVlcnkpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWRzID0gcGF5bG9hZC5tYXAoKGl0LCBpbmRleCkgPT4ge1xuICAgICAgaXRbbWV0YS5pZCBhcyBzdHJpbmddID8/PSBmaXJzdElkICsgaW5kZXg7XG4gICAgICByZXR1cm4gaXRbbWV0YS5pZF07XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5pbnNlcnRSZWxhdGlvbnMoZW50aXR5LCBwYXlsb2FkKTtcbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LnVwZGF0ZShlbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgICBjb25zdCB7IGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlbGF0aW9ucyhlbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgZmluZFF1ZXJ5ID0gYXdhaXQgdGhpcy5kaWFsZWN0LmZpbmQoZW50aXR5LCB7IC4uLnFtLCAkcHJvamVjdDogW21ldGEuaWRdIH0pO1xuICAgIGNvbnN0IGZvdW5kcyA9IGF3YWl0IHRoaXMuYWxsPEU+KGZpbmRRdWVyeSk7XG4gICAgaWYgKCFmb3VuZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3QgaWRzID0gZm91bmRzLm1hcCgoaXQpID0+IGl0W21ldGEuaWRdKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5kZWxldGUoZW50aXR5LCB7ICRmaWx0ZXI6IGlkcyB9LCBvcHRzKTtcbiAgICBjb25zdCB7IGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVJlbGF0aW9ucyhlbnRpdHksIGlkcywgb3B0cyk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaGFzT3BlblRyYW5zYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGJlZ2luVHJhbnNhY3Rpb24oLyppc29sYXRpb25MZXZlbD86IElzb2xhdGlvbkxldmVsKi8pIHtcbiAgICBpZiAodGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICAvLyBUT0RPXG4gICAgLy8gaWYgKGlzb2xhdGlvbkxldmVsKSB7XG4gICAgLy8gICBhd2FpdCB0aGlzLnJ1bihgU0VUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCAke2lzb2xhdGlvbkxldmVsfWApO1xuICAgIC8vIH1cbiAgICBhd2FpdCB0aGlzLnJ1bih0aGlzLmRpYWxlY3QuYmVnaW5UcmFuc2FjdGlvbkNvbW1hbmQpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNvbW1pdFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignQ09NTUlUJyk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByb2xsYmFja1RyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignUk9MTEJBQ0snKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RTcWxRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGVBQWU7SUFHekM7SUFGYixxQkFBcUIsQ0FBVztJQUV4QyxZQUFxQixPQUEyQjtRQUM5QyxLQUFLLEVBQUUsQ0FBQztRQURXLFlBQU8sR0FBUCxPQUFPLENBQW9CO0lBRWhELENBQUM7SUFjUSxLQUFLLENBQUMsS0FBSyxDQUFJLE1BQWUsRUFBRSxFQUFxQjtRQUM1RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBUSxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUksS0FBSyxDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUSxLQUFLLENBQUMsUUFBUSxDQUFJLE1BQWUsRUFBRSxFQUFZO1FBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUksS0FBSyxDQUFDLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sSUFB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SUFFUSxLQUFLLENBQUMsZ0JBQWdCLEVBQUMsbUNBQW1DO1FBQ2pFLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlCLE1BQU0sU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDeEM7UUFDRCxPQUFPO1FBQ1Asd0JBQXdCO1FBQ3hCLHlFQUF5RTtRQUN6RSxJQUFJO1FBQ0osTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFUSxLQUFLLENBQUMsaUJBQWlCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFUSxLQUFLLENBQUMsbUJBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5LCBUeXBlLCBRdWVyeUNyaXRlcmlhLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5VXBkYXRlUmVzdWx0IH0gZnJvbSAnLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyB1bmZsYXRPYmplY3RzLCBjbG9uZSB9IGZyb20gJy4uL3V0aWwvaW5kZXguanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxEaWFsZWN0IH0gZnJvbSAnLi4vZGlhbGVjdC9pbmRleC5qcyc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5L2luZGV4LmpzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RRdWVyaWVyIH0gZnJvbSAnLi9hYnN0cmFjdFF1ZXJpZXIuanMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTcWxRdWVyaWVyIGV4dGVuZHMgQWJzdHJhY3RRdWVyaWVyIHtcbiAgcHJpdmF0ZSBoYXNQZW5kaW5nVHJhbnNhY3Rpb24/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRpYWxlY3Q6IEFic3RyYWN0U3FsRGlhbGVjdCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogcmVhZCBxdWVyeS5cbiAgICogQHBhcmFtIHF1ZXJ5IHRoZSBxdWVyeVxuICAgKi9cbiAgYWJzdHJhY3QgYWxsPFQ+KHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPFRbXT47XG5cbiAgLyoqXG4gICAqIGluc2VydC91cGRhdGUvZGVsZXRlL2RkbCBxdWVyeS5cbiAgICogQHBhcmFtIHF1ZXJ5IHRoZSBxdWVyeVxuICAgKi9cbiAgYWJzdHJhY3QgcnVuKHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPFF1ZXJ5VXBkYXRlUmVzdWx0PjtcblxuICBvdmVycmlkZSBhc3luYyBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtPzogUXVlcnlDcml0ZXJpYTxFPikge1xuICAgIGNvbnN0IHF1ZXJ5ID0gYXdhaXQgdGhpcy5kaWFsZWN0LmNvdW50KGVudGl0eSwgcW0pO1xuICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdGhpcy5hbGw8RT4ocXVlcnkpO1xuICAgIHJldHVybiBOdW1iZXIocmVzWzBdLmNvdW50KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuZmluZChlbnRpdHksIHFtKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmFsbDxFPihxdWVyeSk7XG4gICAgY29uc3QgZm91bmRzID0gdW5mbGF0T2JqZWN0cyhyZXMpO1xuICAgIGF3YWl0IHRoaXMuZmluZFRvTWFueVJlbGF0aW9ucyhlbnRpdHksIGZvdW5kcywgcW0uJHByb2plY3QpO1xuICAgIHJldHVybiBmb3VuZHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0Lmluc2VydChlbnRpdHksIHBheWxvYWQpO1xuICAgIGNvbnN0IHsgZmlyc3RJZCB9ID0gYXdhaXQgdGhpcy5ydW4ocXVlcnkpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWRzID0gcGF5bG9hZC5tYXAoKGl0LCBpbmRleCkgPT4ge1xuICAgICAgaXRbbWV0YS5pZCBhcyBzdHJpbmddID8/PSBmaXJzdElkICsgaW5kZXg7XG4gICAgICByZXR1cm4gaXRbbWV0YS5pZF07XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5pbnNlcnRSZWxhdGlvbnMoZW50aXR5LCBwYXlsb2FkKTtcbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LnVwZGF0ZShlbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgICBjb25zdCB7IGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlbGF0aW9ucyhlbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgZmluZFF1ZXJ5ID0gYXdhaXQgdGhpcy5kaWFsZWN0LmZpbmQoZW50aXR5LCB7IC4uLnFtLCAkcHJvamVjdDogW21ldGEuaWRdIH0pO1xuICAgIGNvbnN0IGZvdW5kcyA9IGF3YWl0IHRoaXMuYWxsPEU+KGZpbmRRdWVyeSk7XG4gICAgaWYgKCFmb3VuZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3QgaWRzID0gZm91bmRzLm1hcCgoaXQpID0+IGl0W21ldGEuaWRdKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5kZWxldGUoZW50aXR5LCB7ICRmaWx0ZXI6IGlkcyB9LCBvcHRzKTtcbiAgICBjb25zdCB7IGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVJlbGF0aW9ucyhlbnRpdHksIGlkcywgb3B0cyk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaGFzT3BlblRyYW5zYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGJlZ2luVHJhbnNhY3Rpb24oLyppc29sYXRpb25MZXZlbD86IElzb2xhdGlvbkxldmVsKi8pIHtcbiAgICBpZiAodGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICAvLyBUT0RPXG4gICAgLy8gaWYgKGlzb2xhdGlvbkxldmVsKSB7XG4gICAgLy8gICBhd2FpdCB0aGlzLnJ1bihgU0VUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCAke2lzb2xhdGlvbkxldmVsfWApO1xuICAgIC8vIH1cbiAgICBhd2FpdCB0aGlzLnJ1bih0aGlzLmRpYWxlY3QuYmVnaW5UcmFuc2FjdGlvbkNvbW1hbmQpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNvbW1pdFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignQ09NTUlUJyk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByb2xsYmFja1RyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignUk9MTEJBQ0snKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./injectQuerier.js"), exports);
tslib_1.__exportStar(require("./transactional.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlcmllci9kZWNvcmF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQW1DO0FBQ25DLDZEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW5qZWN0UXVlcmllci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uYWwuanMnO1xuIl19
export * from './injectQuerier.js';
export * from './transactional.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlcmllci9kZWNvcmF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbmplY3RRdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25hbC5qcyc7XG4iXX0=

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getInjectedQuerierIndex = exports.InjectQuerier = void 0;
const metadataKey = Symbol('InjectQuerier');
function InjectQuerier() {
export function InjectQuerier() {
return (proto, key, index) => {

@@ -22,4 +19,3 @@ const { constructor } = proto;

}
exports.InjectQuerier = InjectQuerier;
function getInjectedQuerierIndex(service, key) {
export function getInjectedQuerierIndex(service, key) {
let proto = service.prototype;

@@ -39,3 +35,2 @@ while (proto.constructor !== Object) {

}
exports.getInjectedQuerierIndex = getInjectedQuerierIndex;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci9pbmplY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU1QyxTQUFnQixhQUFhO0lBQzNCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQ25ELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztTQUNwQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7UUFFdEMsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixNQUFNLElBQUksU0FBUyxDQUFDLDhDQUE4QyxXQUFXLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDaEc7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFyQkQsc0NBcUJDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUksT0FBZ0IsRUFBRSxHQUFXO0lBQ3RFLElBQUksS0FBSyxHQUF3QixPQUFPLENBQUMsU0FBUyxDQUFDO0lBRW5ELE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEQsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsQjtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQWEsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTztTQUNSO1FBRUQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEM7QUFDSCxDQUFDO0FBbkJELDBEQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleSwgVHlwZSB9IGZyb20gJy4uLy4uL3R5cGUvaW5kZXguanMnO1xuXG5jb25zdCBtZXRhZGF0YUtleSA9IFN5bWJvbCgnSW5qZWN0UXVlcmllcicpO1xuXG5leHBvcnQgZnVuY3Rpb24gSW5qZWN0UXVlcmllcigpIHtcbiAgcmV0dXJuIChwcm90bzogb2JqZWN0LCBrZXk6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHsgY29uc3RydWN0b3IgfSA9IHByb3RvO1xuXG4gICAgaWYgKCFwcm90b1ttZXRhZGF0YUtleV0pIHtcbiAgICAgIHByb3RvW21ldGFkYXRhS2V5XSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm90b1ttZXRhZGF0YUtleV0uaGFzKGNvbnN0cnVjdG9yKSkge1xuICAgICAgcHJvdG9bbWV0YWRhdGFLZXldLnNldChjb25zdHJ1Y3Rvciwge30pO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGEgPSBwcm90b1ttZXRhZGF0YUtleV0uZ2V0KGNvbnN0cnVjdG9yKTtcbiAgICBjb25zdCBpc0FscmVhZHlJbmplY3RlZCA9IGtleSBpbiBtZXRhO1xuXG4gICAgaWYgKGlzQWxyZWFkeUluamVjdGVkKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBASW5qZWN0UXVlcmllcigpIGNhbiBvbmx5IGFwcGVhcnMgb25jZSBpbiAnJHtjb25zdHJ1Y3Rvci5uYW1lfS4ke2tleX0nfWApO1xuICAgIH1cblxuICAgIG1ldGFba2V5XSA9IGluZGV4O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXg8Uz4oc2VydmljZTogVHlwZTxTPiwga2V5OiBLZXk8Uz4pIHtcbiAgbGV0IHByb3RvOiBGdW5jdGlvbkNvbnN0cnVjdG9yID0gc2VydmljZS5wcm90b3R5cGU7XG5cbiAgd2hpbGUgKHByb3RvLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICBjb25zdCBtZXRhID0gcHJvdG9bbWV0YWRhdGFLZXldPy5nZXQocHJvdG8uY29uc3RydWN0b3IpO1xuXG4gICAgaWYgKG1ldGEgJiYga2V5IGluIG1ldGEpIHtcbiAgICAgIHJldHVybiBtZXRhW2tleV07XG4gICAgfVxuXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3RvKSBhcyBLZXk8Uz5bXTtcbiAgICBjb25zdCBpc093bktleSA9IGtleXMuaW5jbHVkZXMoa2V5KTtcblxuICAgIGlmIChpc093bktleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci9pbmplY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU1QyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUNuRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRTlCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdkIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7U0FDcEM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN4QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN6QztRQUVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakQsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDO1FBRXRDLElBQUksaUJBQWlCLEVBQUU7WUFDckIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw4Q0FBOEMsV0FBVyxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ2hHO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFJLE9BQWdCLEVBQUUsR0FBVztJQUN0RSxJQUFJLEtBQUssR0FBd0IsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUVuRCxPQUFPLEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFO1FBQ25DLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhELElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEI7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFhLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQyxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU87U0FDUjtRQUVELEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleSwgVHlwZSB9IGZyb20gJy4uLy4uL3R5cGUvaW5kZXguanMnO1xuXG5jb25zdCBtZXRhZGF0YUtleSA9IFN5bWJvbCgnSW5qZWN0UXVlcmllcicpO1xuXG5leHBvcnQgZnVuY3Rpb24gSW5qZWN0UXVlcmllcigpIHtcbiAgcmV0dXJuIChwcm90bzogb2JqZWN0LCBrZXk6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHsgY29uc3RydWN0b3IgfSA9IHByb3RvO1xuXG4gICAgaWYgKCFwcm90b1ttZXRhZGF0YUtleV0pIHtcbiAgICAgIHByb3RvW21ldGFkYXRhS2V5XSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm90b1ttZXRhZGF0YUtleV0uaGFzKGNvbnN0cnVjdG9yKSkge1xuICAgICAgcHJvdG9bbWV0YWRhdGFLZXldLnNldChjb25zdHJ1Y3Rvciwge30pO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGEgPSBwcm90b1ttZXRhZGF0YUtleV0uZ2V0KGNvbnN0cnVjdG9yKTtcbiAgICBjb25zdCBpc0FscmVhZHlJbmplY3RlZCA9IGtleSBpbiBtZXRhO1xuXG4gICAgaWYgKGlzQWxyZWFkeUluamVjdGVkKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBASW5qZWN0UXVlcmllcigpIGNhbiBvbmx5IGFwcGVhcnMgb25jZSBpbiAnJHtjb25zdHJ1Y3Rvci5uYW1lfS4ke2tleX0nfWApO1xuICAgIH1cblxuICAgIG1ldGFba2V5XSA9IGluZGV4O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXg8Uz4oc2VydmljZTogVHlwZTxTPiwga2V5OiBLZXk8Uz4pIHtcbiAgbGV0IHByb3RvOiBGdW5jdGlvbkNvbnN0cnVjdG9yID0gc2VydmljZS5wcm90b3R5cGU7XG5cbiAgd2hpbGUgKHByb3RvLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICBjb25zdCBtZXRhID0gcHJvdG9bbWV0YWRhdGFLZXldPy5nZXQocHJvdG8uY29uc3RydWN0b3IpO1xuXG4gICAgaWYgKG1ldGEgJiYga2V5IGluIG1ldGEpIHtcbiAgICAgIHJldHVybiBtZXRhW2tleV07XG4gICAgfVxuXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3RvKSBhcyBLZXk8Uz5bXTtcbiAgICBjb25zdCBpc093bktleSA9IGtleXMuaW5jbHVkZXMoa2V5KTtcblxuICAgIGlmIChpc093bktleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgfVxufVxuIl19

@@ -1,11 +0,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Transactional = void 0;
const options_1 = require("../../options");
const injectQuerier_js_1 = require("./injectQuerier.js");
function Transactional({ propagation = 'required', querierPool, } = {}) {
import { getQuerierPool } from '../../options.js';
import { getInjectedQuerierIndex } from './injectQuerier.js';
export function Transactional({ propagation = 'required', querierPool, } = {}) {
return (target, key, propDescriptor) => {
const theClass = target.constructor;
const originalMethod = propDescriptor.value;
const injectedQuerierIndex = (0, injectQuerier_js_1.getInjectedQuerierIndex)(theClass, key);
const injectedQuerierIndex = getInjectedQuerierIndex(theClass, key);
if (injectedQuerierIndex === undefined) {

@@ -23,3 +20,3 @@ throw TypeError(`missing decorator @InjectQuerier() in '${target.constructor.name}.${key}'`);

isOwnTransaction = true;
const pool = querierPool ?? (0, options_1.getQuerierPool)();
const pool = querierPool ?? getQuerierPool();
querier = await pool.getQuerier();

@@ -52,3 +49,2 @@ params[injectedQuerierIndex] = querier;

}
exports.Transactional = Transactional;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci90cmFuc2FjdGlvbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUErQztBQUMvQyx5REFBNkQ7QUFFN0QsU0FBZ0IsYUFBYSxDQUFDLEVBQzVCLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFdBQVcsTUFJVCxFQUFFO0lBQ0osT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsY0FBa0MsRUFBUSxFQUFFO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUF3QixDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRSxJQUFJLG9CQUFvQixLQUFLLFNBQVMsRUFBRTtZQUN0QyxNQUFNLFNBQVMsQ0FBQywwQ0FBMEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztTQUM5RjtRQUVELGNBQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxVQUFVLElBQUksQ0FBZSxHQUFHLElBQVc7WUFDckUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksZ0JBQXlCLENBQUM7WUFDOUIsSUFBSSxPQUFnQixDQUFDO1lBRXJCLElBQUksTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ2hDLE9BQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSxHQUFHLFdBQVcsSUFBSSxJQUFBLHdCQUFjLEdBQUUsQ0FBQztnQkFDN0MsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsR0FBRyxPQUFPLENBQUM7YUFDeEM7WUFFRCxJQUFJO2dCQUNGLElBQUksV0FBVyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDN0QsTUFBTSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztpQkFDbEM7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQ2xELE1BQU0sT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7aUJBQ25DO2dCQUNELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixJQUFJLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDbEQsTUFBTSxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztpQkFDckM7Z0JBQ0QsTUFBTSxHQUFHLENBQUM7YUFDWDtvQkFBUztnQkFDUixJQUFJLGdCQUFnQixFQUFFO29CQUNwQixNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDekI7YUFDRjtRQUNILENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFuREQsc0NBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcmllciwgUXVlcmllclBvb2wsIFR5cGUgfSBmcm9tICcuLi8uLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGdldFF1ZXJpZXJQb29sIH0gZnJvbSAnLi4vLi4vb3B0aW9ucyc7XG5pbXBvcnQgeyBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleCB9IGZyb20gJy4vaW5qZWN0UXVlcmllci5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmFuc2FjdGlvbmFsKHtcbiAgcHJvcGFnYXRpb24gPSAncmVxdWlyZWQnLFxuICBxdWVyaWVyUG9vbCxcbn06IHtcbiAgcmVhZG9ubHkgcHJvcGFnYXRpb24/OiAnc3VwcG9ydGVkJyB8ICdyZXF1aXJlZCc7XG4gIHJlYWRvbmx5IHF1ZXJpZXJQb29sPzogUXVlcmllclBvb2w7XG59ID0ge30pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcsIHByb3BEZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpOiB2b2lkID0+IHtcbiAgICBjb25zdCB0aGVDbGFzcyA9IHRhcmdldC5jb25zdHJ1Y3RvciBhcyBUeXBlPGFueT47XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBwcm9wRGVzY3JpcHRvci52YWx1ZTtcbiAgICBjb25zdCBpbmplY3RlZFF1ZXJpZXJJbmRleCA9IGdldEluamVjdGVkUXVlcmllckluZGV4KHRoZUNsYXNzLCBrZXkpO1xuXG4gICAgaWYgKGluamVjdGVkUXVlcmllckluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgbWlzc2luZyBkZWNvcmF0b3IgQEluamVjdFF1ZXJpZXIoKSBpbiAnJHt0YXJnZXQuY29uc3RydWN0b3IubmFtZX0uJHtrZXl9J2ApO1xuICAgIH1cblxuICAgIHByb3BEZXNjcmlwdG9yLnZhbHVlID0gYXN5bmMgZnVuY3Rpb24gZnVuYyh0aGlzOiBvYmplY3QsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBbLi4uYXJnc107XG4gICAgICBsZXQgaXNPd25UcmFuc2FjdGlvbjogYm9vbGVhbjtcbiAgICAgIGxldCBxdWVyaWVyOiBRdWVyaWVyO1xuXG4gICAgICBpZiAocGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XSkge1xuICAgICAgICBxdWVyaWVyID0gcGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzT3duVHJhbnNhY3Rpb24gPSB0cnVlO1xuICAgICAgICBjb25zdCBwb29sID0gcXVlcmllclBvb2wgPz8gZ2V0UXVlcmllclBvb2woKTtcbiAgICAgICAgcXVlcmllciA9IGF3YWl0IHBvb2wuZ2V0UXVlcmllcigpO1xuICAgICAgICBwYXJhbXNbaW5qZWN0ZWRRdWVyaWVySW5kZXhdID0gcXVlcmllcjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHByb3BhZ2F0aW9uID09PSAncmVxdWlyZWQnICYmICFxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBwYXJhbXMpO1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbiAmJiBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbiAmJiBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChpc093blRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci90cmFuc2FjdGlvbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQzVCLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFdBQVcsTUFJVCxFQUFFO0lBQ0osT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsY0FBa0MsRUFBUSxFQUFFO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUF3QixDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFcEUsSUFBSSxvQkFBb0IsS0FBSyxTQUFTLEVBQUU7WUFDdEMsTUFBTSxTQUFTLENBQUMsMENBQTBDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDOUY7UUFFRCxjQUFjLENBQUMsS0FBSyxHQUFHLEtBQUssVUFBVSxJQUFJLENBQWUsR0FBRyxJQUFXO1lBQ3JFLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLGdCQUF5QixDQUFDO1lBQzlCLElBQUksT0FBZ0IsQ0FBQztZQUVyQixJQUFJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO2dCQUNoQyxPQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7YUFDeEM7aUJBQU07Z0JBQ0wsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixNQUFNLElBQUksR0FBRyxXQUFXLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQzdDLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQ3hDO1lBRUQsSUFBSTtnQkFDRixJQUFJLFdBQVcsS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQzdELE1BQU0sT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7aUJBQ2xDO2dCQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3RELElBQUksZ0JBQWdCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO29CQUNsRCxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2lCQUNuQztnQkFDRCxPQUFPLElBQUksQ0FBQzthQUNiO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQ2xELE1BQU0sT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7aUJBQ3JDO2dCQUNELE1BQU0sR0FBRyxDQUFDO2FBQ1g7b0JBQVM7Z0JBQ1IsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDcEIsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3pCO2FBQ0Y7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcmllciwgUXVlcmllclBvb2wsIFR5cGUgfSBmcm9tICcuLi8uLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGdldFF1ZXJpZXJQb29sIH0gZnJvbSAnLi4vLi4vb3B0aW9ucy5qcyc7XG5pbXBvcnQgeyBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleCB9IGZyb20gJy4vaW5qZWN0UXVlcmllci5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmFuc2FjdGlvbmFsKHtcbiAgcHJvcGFnYXRpb24gPSAncmVxdWlyZWQnLFxuICBxdWVyaWVyUG9vbCxcbn06IHtcbiAgcmVhZG9ubHkgcHJvcGFnYXRpb24/OiAnc3VwcG9ydGVkJyB8ICdyZXF1aXJlZCc7XG4gIHJlYWRvbmx5IHF1ZXJpZXJQb29sPzogUXVlcmllclBvb2w7XG59ID0ge30pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcsIHByb3BEZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpOiB2b2lkID0+IHtcbiAgICBjb25zdCB0aGVDbGFzcyA9IHRhcmdldC5jb25zdHJ1Y3RvciBhcyBUeXBlPGFueT47XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBwcm9wRGVzY3JpcHRvci52YWx1ZTtcbiAgICBjb25zdCBpbmplY3RlZFF1ZXJpZXJJbmRleCA9IGdldEluamVjdGVkUXVlcmllckluZGV4KHRoZUNsYXNzLCBrZXkpO1xuXG4gICAgaWYgKGluamVjdGVkUXVlcmllckluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgbWlzc2luZyBkZWNvcmF0b3IgQEluamVjdFF1ZXJpZXIoKSBpbiAnJHt0YXJnZXQuY29uc3RydWN0b3IubmFtZX0uJHtrZXl9J2ApO1xuICAgIH1cblxuICAgIHByb3BEZXNjcmlwdG9yLnZhbHVlID0gYXN5bmMgZnVuY3Rpb24gZnVuYyh0aGlzOiBvYmplY3QsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBbLi4uYXJnc107XG4gICAgICBsZXQgaXNPd25UcmFuc2FjdGlvbjogYm9vbGVhbjtcbiAgICAgIGxldCBxdWVyaWVyOiBRdWVyaWVyO1xuXG4gICAgICBpZiAocGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XSkge1xuICAgICAgICBxdWVyaWVyID0gcGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzT3duVHJhbnNhY3Rpb24gPSB0cnVlO1xuICAgICAgICBjb25zdCBwb29sID0gcXVlcmllclBvb2wgPz8gZ2V0UXVlcmllclBvb2woKTtcbiAgICAgICAgcXVlcmllciA9IGF3YWl0IHBvb2wuZ2V0UXVlcmllcigpO1xuICAgICAgICBwYXJhbXNbaW5qZWN0ZWRRdWVyaWVySW5kZXhdID0gcXVlcmllcjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHByb3BhZ2F0aW9uID09PSAncmVxdWlyZWQnICYmICFxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBwYXJhbXMpO1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbiAmJiBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbiAmJiBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChpc093blRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9O1xufVxuIl19
export * from './abstractQuerier.js';
export * from './abstractSqlQuerier.js';
export * from './decorator';
export * from './decorator/index.js';

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./abstractQuerier.js"), exports);
tslib_1.__exportStar(require("./abstractSqlQuerier.js"), exports);
tslib_1.__exportStar(require("./decorator"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcmllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBcUM7QUFDckMsa0VBQXdDO0FBQ3hDLHNEQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3RRdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3RTcWxRdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9yJztcbiJdfQ==
export * from './abstractQuerier.js';
export * from './abstractSqlQuerier.js';
export * from './decorator/index.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcmllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3RRdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3RTcWxRdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9yL2luZGV4LmpzJztcbiJdfQ==

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GenericRepository = void 0;
class GenericRepository {
export class GenericRepository {
entity;

@@ -51,3 +48,2 @@ querier;

}
exports.GenericRepository = GenericRepository;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9nZW5lcmljUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFhLGlCQUFpQjtJQUNQO0lBQTBCO0lBQS9DLFlBQXFCLE1BQWUsRUFBVyxPQUFnQjtRQUExQyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQVcsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUFHLENBQUM7SUFFbkUsS0FBSyxDQUFDLEVBQWtCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWMsRUFBRSxFQUFtQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxFQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxVQUFVLENBQUMsT0FBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFjLEVBQUUsT0FBVTtRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxVQUFVLENBQUMsRUFBb0IsRUFBRSxPQUFVO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxhQUFhLENBQUMsRUFBYyxFQUFFLElBQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFvQixFQUFFLElBQW1CO1FBQ2xELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGO0FBdERELDhDQXNEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkVmFsdWUsIFF1ZXJpZXIsIFF1ZXJ5LCBRdWVyeUNyaXRlcmlhLCBRdWVyeU9uZSwgUXVlcnlPcHRpb25zLCBRdWVyeVNlYXJjaCwgUXVlcnlVbmlxdWUsIFJlcG9zaXRvcnksIFR5cGUgfSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcblxuZXhwb3J0IGNsYXNzIEdlbmVyaWNSZXBvc2l0b3J5PEU+IGltcGxlbWVudHMgUmVwb3NpdG9yeTxFPiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGVudGl0eTogVHlwZTxFPiwgcmVhZG9ubHkgcXVlcmllcjogUXVlcmllcikge31cblxuICBjb3VudChxbTogUXVlcnlTZWFyY2g8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmNvdW50KHRoaXMuZW50aXR5LCBxbSk7XG4gIH1cblxuICBmaW5kT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcW0/OiBRdWVyeVVuaXF1ZTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE9uZUJ5SWQodGhpcy5lbnRpdHksIGlkLCBxbSk7XG4gIH1cblxuICBmaW5kT25lKHFtOiBRdWVyeU9uZTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE9uZSh0aGlzLmVudGl0eSwgcW0pO1xuICB9XG5cbiAgZmluZE1hbnkocW06IFF1ZXJ5PEU+KSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5maW5kTWFueSh0aGlzLmVudGl0eSwgcW0pO1xuICB9XG5cbiAgZmluZE1hbnlBbmRDb3VudChxbTogUXVlcnk8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmZpbmRNYW55QW5kQ291bnQodGhpcy5lbnRpdHksIHFtKTtcbiAgfVxuXG4gIGluc2VydE9uZShwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5pbnNlcnRPbmUodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgaW5zZXJ0TWFueShwYXlsb2FkOiBFW10pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmluc2VydE1hbnkodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgdXBkYXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIudXBkYXRlT25lQnlJZCh0aGlzLmVudGl0eSwgaWQsIHBheWxvYWQpO1xuICB9XG5cbiAgdXBkYXRlTWFueShxbTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIudXBkYXRlTWFueSh0aGlzLmVudGl0eSwgcW0sIHBheWxvYWQpO1xuICB9XG5cbiAgc2F2ZU9uZShwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5zYXZlT25lKHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIHNhdmVNYW55KHBheWxvYWQ6IEVbXSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuc2F2ZU1hbnkodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgZGVsZXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZGVsZXRlT25lQnlJZCh0aGlzLmVudGl0eSwgaWQsIG9wdHMpO1xuICB9XG5cbiAgZGVsZXRlTWFueShxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZGVsZXRlTWFueSh0aGlzLmVudGl0eSwgcW0sIG9wdHMpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9nZW5lcmljUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8saUJBQWlCO0lBQ1A7SUFBMEI7SUFBL0MsWUFBcUIsTUFBZSxFQUFXLE9BQWdCO1FBQTFDLFdBQU0sR0FBTixNQUFNLENBQVM7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFTO0lBQUcsQ0FBQztJQUVuRSxLQUFLLENBQUMsRUFBa0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUMsRUFBYyxFQUFFLEVBQW1CO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxTQUFTLENBQUMsT0FBVTtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQWMsRUFBRSxPQUFVO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFvQixFQUFFLE9BQVU7UUFDekMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFjLEVBQUUsSUFBbUI7UUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQW9CLEVBQUUsSUFBbUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZFZhbHVlLCBRdWVyaWVyLCBRdWVyeSwgUXVlcnlDcml0ZXJpYSwgUXVlcnlPbmUsIFF1ZXJ5T3B0aW9ucywgUXVlcnlTZWFyY2gsIFF1ZXJ5VW5pcXVlLCBSZXBvc2l0b3J5LCBUeXBlIH0gZnJvbSAnLi4vdHlwZS9pbmRleC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmljUmVwb3NpdG9yeTxFPiBpbXBsZW1lbnRzIFJlcG9zaXRvcnk8RT4ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBlbnRpdHk6IFR5cGU8RT4sIHJlYWRvbmx5IHF1ZXJpZXI6IFF1ZXJpZXIpIHt9XG5cbiAgY291bnQocW06IFF1ZXJ5U2VhcmNoPEU+KSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5jb3VudCh0aGlzLmVudGl0eSwgcW0pO1xuICB9XG5cbiAgZmluZE9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIHFtPzogUXVlcnlVbmlxdWU8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmZpbmRPbmVCeUlkKHRoaXMuZW50aXR5LCBpZCwgcW0pO1xuICB9XG5cbiAgZmluZE9uZShxbTogUXVlcnlPbmU8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmZpbmRPbmUodGhpcy5lbnRpdHksIHFtKTtcbiAgfVxuXG4gIGZpbmRNYW55KHFtOiBRdWVyeTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE1hbnkodGhpcy5lbnRpdHksIHFtKTtcbiAgfVxuXG4gIGZpbmRNYW55QW5kQ291bnQocW06IFF1ZXJ5PEU+KSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5maW5kTWFueUFuZENvdW50KHRoaXMuZW50aXR5LCBxbSk7XG4gIH1cblxuICBpbnNlcnRPbmUocGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuaW5zZXJ0T25lKHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIGluc2VydE1hbnkocGF5bG9hZDogRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5pbnNlcnRNYW55KHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIHVwZGF0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLnVwZGF0ZU9uZUJ5SWQodGhpcy5lbnRpdHksIGlkLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHVwZGF0ZU1hbnkocW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLnVwZGF0ZU1hbnkodGhpcy5lbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHNhdmVPbmUocGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuc2F2ZU9uZSh0aGlzLmVudGl0eSwgcGF5bG9hZCk7XG4gIH1cblxuICBzYXZlTWFueShwYXlsb2FkOiBFW10pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLnNhdmVNYW55KHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIGRlbGV0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmRlbGV0ZU9uZUJ5SWQodGhpcy5lbnRpdHksIGlkLCBvcHRzKTtcbiAgfVxuXG4gIGRlbGV0ZU1hbnkocW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmRlbGV0ZU1hbnkodGhpcy5lbnRpdHksIHFtLCBvcHRzKTtcbiAgfVxufVxuIl19

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./genericRepository.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpRUFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlbmVyaWNSZXBvc2l0b3J5LmpzJztcbiJdfQ==
export * from './genericRepository.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZW5lcmljUmVwb3NpdG9yeS5qcyc7XG4iXX0=

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.idKey = void 0;
exports.idKey = Symbol('idKey');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGUvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdhLFFBQUEsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UmF3IH0gZnJvbSAnLi9xdWVyeS5qcyc7XG5pbXBvcnQgeyBTY2FsYXIsIFR5cGUgfSBmcm9tICcuL3V0aWxpdHkuanMnO1xuXG5leHBvcnQgY29uc3QgaWRLZXkgPSBTeW1ib2woJ2lkS2V5Jyk7XG5cbmV4cG9ydCB0eXBlIEtleTxFPiA9IGtleW9mIEUgJiBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIEZpZWxkS2V5PEU+ID0ge1xuICByZWFkb25seSBbSyBpbiBrZXlvZiBFXTogRVtLXSBleHRlbmRzIFNjYWxhciA/IEsgOiBuZXZlcjtcbn1bS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25LZXk8RT4gPSB7XG4gIHJlYWRvbmx5IFtLIGluIGtleW9mIEVdOiBFW0tdIGV4dGVuZHMgU2NhbGFyID8gbmV2ZXIgOiBLO1xufVtLZXk8RT5dO1xuXG5leHBvcnQgdHlwZSBGaWVsZFZhbHVlPEU+ID0gRVtGaWVsZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIElkS2V5PEU+ID0gRSBleHRlbmRzIHsgW2lkS2V5XT86IGluZmVyIEsgfVxuICA/IEsgJiBGaWVsZEtleTxFPlxuICA6IEUgZXh0ZW5kcyB7IF9pZD86IHVua25vd24gfVxuICA/ICdfaWQnICYgRmllbGRLZXk8RT5cbiAgOiBFIGV4dGVuZHMgeyBpZD86IHVua25vd24gfVxuICA/ICdpZCcgJiBGaWVsZEtleTxFPlxuICA6IEZpZWxkS2V5PEU+O1xuXG5leHBvcnQgdHlwZSBJZFZhbHVlPEU+ID0gRVtJZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uVmFsdWU8RT4gPSBFW1JlbGF0aW9uS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgRW50aXR5T3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgc29mdERlbGV0ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBGaWVsZE9wdGlvbnMgPSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzSWQ/OiB0cnVlO1xuICByZWFkb25seSB0eXBlPzogYW55O1xuICByZWFkb25seSByZWZlcmVuY2U/OiBFbnRpdHlHZXR0ZXI7XG4gIHJlYWRvbmx5IHZpcnR1YWw/OiBRdWVyeVJhdztcbiAgcmVhZG9ubHkgb25JbnNlcnQ/OiBPbkZpZWxkQ2FsbGJhY2s7XG4gIHJlYWRvbmx5IG9uVXBkYXRlPzogT25GaWVsZENhbGxiYWNrO1xuICByZWFkb25seSBvbkRlbGV0ZT86IE9uRmllbGRDYWxsYmFjaztcbn07XG5cbmV4cG9ydCB0eXBlIE9uRmllbGRDYWxsYmFjayA9IFNjYWxhciB8IFF1ZXJ5UmF3IHwgKCgpID0+IFNjYWxhciB8IFF1ZXJ5UmF3KTtcblxuZXhwb3J0IHR5cGUgRW50aXR5R2V0dGVyPEUgPSBhbnk+ID0gKCkgPT4gVHlwZTxFPjtcblxuZXhwb3J0IHR5cGUgQ2FzY2FkZVR5cGUgPSAncGVyc2lzdCcgfCAnZGVsZXRlJztcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25PcHRpb25zPEUgPSBhbnk+ID0ge1xuICBlbnRpdHk/OiBFbnRpdHlHZXR0ZXI8RT47XG4gIGNhcmRpbmFsaXR5OiBSZWxhdGlvbkNhcmRpbmFsaXR5O1xuICByZWFkb25seSBjYXNjYWRlPzogYm9vbGVhbiB8IENhc2NhZGVUeXBlO1xuICBtYXBwZWRCeT86IFJlbGF0aW9uTWFwcGVkQnk8RT47XG4gIHRocm91Z2g/OiBFbnRpdHlHZXR0ZXI8UmVsYXRpb25WYWx1ZTxFPj47XG4gIHJlZmVyZW5jZXM/OiBSZWxhdGlvblJlZmVyZW5jZXM7XG59O1xuXG50eXBlIFJlbGF0aW9uT3B0aW9uc093bmVyPEU+ID0gUGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICdlbnRpdHknIHwgJ3JlZmVyZW5jZXMnIHwgJ2Nhc2NhZGUnPjtcbnR5cGUgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT4gPSBSZXF1aXJlZDxQaWNrPFJlbGF0aW9uT3B0aW9uczxFPiwgJ2VudGl0eScgfCAnbWFwcGVkQnknPj4gJiBQaWNrPFJlbGF0aW9uT3B0aW9uczxFPiwgJ2Nhc2NhZGUnPjtcbnR5cGUgUmVsYXRpb25PcHRpb25zVGhyb3VnaE93bmVyPEU+ID0gUmVxdWlyZWQ8UGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICdlbnRpdHknPj4gJiBQaWNrPFJlbGF0aW9uT3B0aW9uczxFPiwgJ3Rocm91Z2gnIHwgJ3JlZmVyZW5jZXMnIHwgJ2Nhc2NhZGUnPjtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25LZXlNYXA8RT4gPSB7IHJlYWRvbmx5IFtLIGluIGtleW9mIEVdOiBLIH07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uS2V5TWFwcGVyPEU+ID0gKGtleU1hcDogUmVsYXRpb25LZXlNYXA8RT4pID0+IEtleTxFPjtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25SZWZlcmVuY2VzID0geyByZWFkb25seSBsb2NhbDogc3RyaW5nOyByZWFkb25seSBmb3JlaWduOiBzdHJpbmcgfVtdO1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk1hcHBlZEJ5PEU+ID0gS2V5PEU+IHwgUmVsYXRpb25LZXlNYXBwZXI8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uQ2FyZGluYWxpdHkgPSAnMTEnIHwgJ20xJyB8ICcxbScgfCAnbW0nO1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk9uZVRvT25lT3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc093bmVyPEU+IHwgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uT25lVG9NYW55T3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+IHwgUmVsYXRpb25PcHRpb25zVGhyb3VnaE93bmVyPEU+O1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk1hbnlUb09uZU9wdGlvbnM8RT4gPSBSZWxhdGlvbk9wdGlvbnNPd25lcjxFPiB8IFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+O1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk1hbnlUb01hbnlPcHRpb25zPEU+ID0gUmVsYXRpb25PcHRpb25zVGhyb3VnaE93bmVyPEU+IHwgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT47XG5cbmV4cG9ydCB0eXBlIEVudGl0eU1ldGE8RT4gPSB7XG4gIHJlYWRvbmx5IGVudGl0eTogVHlwZTxFPjtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBJZEtleTxFPjtcbiAgc29mdERlbGV0ZT86IEZpZWxkS2V5PEU+O1xuICBmaWVsZHM6IHtcbiAgICBbSyBpbiBGaWVsZEtleTxFPl0/OiBGaWVsZE9wdGlvbnM7XG4gIH07XG4gIHJlbGF0aW9uczoge1xuICAgIFtLIGluIFJlbGF0aW9uS2V5PEU+XT86IFJlbGF0aW9uT3B0aW9ucztcbiAgfTtcbiAgcHJvY2Vzc2VkPzogYm9vbGVhbjtcbn07XG4iXX0=
export const idKey = Symbol('idKey');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGUvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeVJhdyB9IGZyb20gJy4vcXVlcnkuanMnO1xuaW1wb3J0IHsgU2NhbGFyLCBUeXBlIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcblxuZXhwb3J0IGNvbnN0IGlkS2V5ID0gU3ltYm9sKCdpZEtleScpO1xuXG5leHBvcnQgdHlwZSBLZXk8RT4gPSBrZXlvZiBFICYgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBGaWVsZEtleTxFPiA9IHtcbiAgcmVhZG9ubHkgW0sgaW4ga2V5b2YgRV06IEVbS10gZXh0ZW5kcyBTY2FsYXIgPyBLIDogbmV2ZXI7XG59W0tleTxFPl07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uS2V5PEU+ID0ge1xuICByZWFkb25seSBbSyBpbiBrZXlvZiBFXTogRVtLXSBleHRlbmRzIFNjYWxhciA/IG5ldmVyIDogSztcbn1bS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgRmllbGRWYWx1ZTxFPiA9IEVbRmllbGRLZXk8RT5dO1xuXG5leHBvcnQgdHlwZSBJZEtleTxFPiA9IEUgZXh0ZW5kcyB7IFtpZEtleV0/OiBpbmZlciBLIH1cbiAgPyBLICYgRmllbGRLZXk8RT5cbiAgOiBFIGV4dGVuZHMgeyBfaWQ/OiB1bmtub3duIH1cbiAgPyAnX2lkJyAmIEZpZWxkS2V5PEU+XG4gIDogRSBleHRlbmRzIHsgaWQ/OiB1bmtub3duIH1cbiAgPyAnaWQnICYgRmllbGRLZXk8RT5cbiAgOiBGaWVsZEtleTxFPjtcblxuZXhwb3J0IHR5cGUgSWRWYWx1ZTxFPiA9IEVbSWRLZXk8RT5dO1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvblZhbHVlPEU+ID0gRVtSZWxhdGlvbktleTxFPl07XG5cbmV4cG9ydCB0eXBlIEVudGl0eU9wdGlvbnMgPSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvZnREZWxldGU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRmllbGRPcHRpb25zID0ge1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBpc0lkPzogdHJ1ZTtcbiAgcmVhZG9ubHkgdHlwZT86IGFueTtcbiAgcmVhZG9ubHkgcmVmZXJlbmNlPzogRW50aXR5R2V0dGVyO1xuICByZWFkb25seSB2aXJ0dWFsPzogUXVlcnlSYXc7XG4gIHJlYWRvbmx5IG9uSW5zZXJ0PzogT25GaWVsZENhbGxiYWNrO1xuICByZWFkb25seSBvblVwZGF0ZT86IE9uRmllbGRDYWxsYmFjaztcbiAgcmVhZG9ubHkgb25EZWxldGU/OiBPbkZpZWxkQ2FsbGJhY2s7XG59O1xuXG5leHBvcnQgdHlwZSBPbkZpZWxkQ2FsbGJhY2sgPSBTY2FsYXIgfCBRdWVyeVJhdyB8ICgoKSA9PiBTY2FsYXIgfCBRdWVyeVJhdyk7XG5cbmV4cG9ydCB0eXBlIEVudGl0eUdldHRlcjxFID0gYW55PiA9ICgpID0+IFR5cGU8RT47XG5cbmV4cG9ydCB0eXBlIENhc2NhZGVUeXBlID0gJ3BlcnNpc3QnIHwgJ2RlbGV0ZSc7XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uT3B0aW9uczxFID0gYW55PiA9IHtcbiAgZW50aXR5PzogRW50aXR5R2V0dGVyPEU+O1xuICBjYXJkaW5hbGl0eTogUmVsYXRpb25DYXJkaW5hbGl0eTtcbiAgcmVhZG9ubHkgY2FzY2FkZT86IGJvb2xlYW4gfCBDYXNjYWRlVHlwZTtcbiAgbWFwcGVkQnk/OiBSZWxhdGlvbk1hcHBlZEJ5PEU+O1xuICB0aHJvdWdoPzogRW50aXR5R2V0dGVyPFJlbGF0aW9uVmFsdWU8RT4+O1xuICByZWZlcmVuY2VzPzogUmVsYXRpb25SZWZlcmVuY2VzO1xufTtcblxudHlwZSBSZWxhdGlvbk9wdGlvbnNPd25lcjxFPiA9IFBpY2s8UmVsYXRpb25PcHRpb25zPEU+LCAnZW50aXR5JyB8ICdyZWZlcmVuY2VzJyB8ICdjYXNjYWRlJz47XG50eXBlIFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+ID0gUmVxdWlyZWQ8UGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICdlbnRpdHknIHwgJ21hcHBlZEJ5Jz4+ICYgUGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICdjYXNjYWRlJz47XG50eXBlIFJlbGF0aW9uT3B0aW9uc1Rocm91Z2hPd25lcjxFPiA9IFJlcXVpcmVkPFBpY2s8UmVsYXRpb25PcHRpb25zPEU+LCAnZW50aXR5Jz4+ICYgUGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICd0aHJvdWdoJyB8ICdyZWZlcmVuY2VzJyB8ICdjYXNjYWRlJz47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uS2V5TWFwPEU+ID0geyByZWFkb25seSBbSyBpbiBrZXlvZiBFXTogSyB9O1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbktleU1hcHBlcjxFPiA9IChrZXlNYXA6IFJlbGF0aW9uS2V5TWFwPEU+KSA9PiBLZXk8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uUmVmZXJlbmNlcyA9IHsgcmVhZG9ubHkgbG9jYWw6IHN0cmluZzsgcmVhZG9ubHkgZm9yZWlnbjogc3RyaW5nIH1bXTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25NYXBwZWRCeTxFPiA9IEtleTxFPiB8IFJlbGF0aW9uS2V5TWFwcGVyPEU+O1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbkNhcmRpbmFsaXR5ID0gJzExJyB8ICdtMScgfCAnMW0nIHwgJ21tJztcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25PbmVUb09uZU9wdGlvbnM8RT4gPSBSZWxhdGlvbk9wdGlvbnNPd25lcjxFPiB8IFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+O1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk9uZVRvTWFueU9wdGlvbnM8RT4gPSBSZWxhdGlvbk9wdGlvbnNJbnZlcnNlU2lkZTxFPiB8IFJlbGF0aW9uT3B0aW9uc1Rocm91Z2hPd25lcjxFPjtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25NYW55VG9PbmVPcHRpb25zPEU+ID0gUmVsYXRpb25PcHRpb25zT3duZXI8RT4gfCBSZWxhdGlvbk9wdGlvbnNJbnZlcnNlU2lkZTxFPjtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25NYW55VG9NYW55T3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc1Rocm91Z2hPd25lcjxFPiB8IFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+O1xuXG5leHBvcnQgdHlwZSBFbnRpdHlNZXRhPEU+ID0ge1xuICByZWFkb25seSBlbnRpdHk6IFR5cGU8RT47XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGlkPzogSWRLZXk8RT47XG4gIHNvZnREZWxldGU/OiBGaWVsZEtleTxFPjtcbiAgZmllbGRzOiB7XG4gICAgW0sgaW4gRmllbGRLZXk8RT5dPzogRmllbGRPcHRpb25zO1xuICB9O1xuICByZWxhdGlvbnM6IHtcbiAgICBbSyBpbiBSZWxhdGlvbktleTxFPl0/OiBSZWxhdGlvbk9wdGlvbnM7XG4gIH07XG4gIHByb2Nlc3NlZD86IGJvb2xlYW47XG59O1xuIl19

@@ -1,11 +0,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./utility.js"), exports);
tslib_1.__exportStar(require("./entity.js"), exports);
tslib_1.__exportStar(require("./query.js"), exports);
tslib_1.__exportStar(require("./universalQuerier.js"), exports);
tslib_1.__exportStar(require("./querier.js"), exports);
tslib_1.__exportStar(require("./querierPool.js"), exports);
tslib_1.__exportStar(require("./repository.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBNkI7QUFDN0Isc0RBQTRCO0FBQzVCLHFEQUEyQjtBQUMzQixnRUFBc0M7QUFDdEMsdURBQTZCO0FBQzdCLDJEQUFpQztBQUNqQywwREFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0aWxpdHkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnRpdHkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3VuaXZlcnNhbFF1ZXJpZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyaWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcmllclBvb2wuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvc2l0b3J5LmpzJztcbiJdfQ==
export * from './utility.js';
export * from './entity.js';
export * from './query.js';
export * from './universalQuerier.js';
export * from './querier.js';
export * from './querierPool.js';
export * from './repository.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdXRpbGl0eS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2VudGl0eS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdW5pdmVyc2FsUXVlcmllci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJpZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyaWVyUG9vbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3JlcG9zaXRvcnkuanMnO1xuIl19

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3F1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICcuL3V0aWxpdHkuanMnO1xuaW1wb3J0IHsgUXVlcnksIFF1ZXJ5Q3JpdGVyaWEsIFF1ZXJ5T25lLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5U2VhcmNoLCBRdWVyeVVuaXF1ZSB9IGZyb20gJy4vcXVlcnkuanMnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gJy4vcmVwb3NpdG9yeS5qcyc7XG5pbXBvcnQgeyBJZFZhbHVlIH0gZnJvbSAnLi9lbnRpdHkuanMnO1xuaW1wb3J0IHsgVW5pdmVyc2FsUXVlcmllciB9IGZyb20gJy4vdW5pdmVyc2FsUXVlcmllci5qcyc7XG5cbi8qKlxuICogbG9nZ2VyIGZ1bmN0aW9uIHRvIGRlYnVnIHF1ZXJpZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJpZXJMb2dnZXIgPSAobWVzc2FnZTogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xuXG4vKipcbiAqIElzb2xhdGlvbiBsZXZlbHMgZm9yIHRyYW5zYWN0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgSXNvbGF0aW9uTGV2ZWwgPSAncmVhZCB1bmNvbW1pdHRlZCcgfCAncmVhZCBjb21taXR0ZWQnIHwgJ3JlcGV0ZWFibGUgcmVhZCcgfCAnc2VyaWFsaXphYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBRdWVyaWVyIGV4dGVuZHMgVW5pdmVyc2FsUXVlcmllciB7XG4gIGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW0/OiBRdWVyeVNlYXJjaDxFPik6IFByb21pc2U8bnVtYmVyPjtcblxuICBmaW5kT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBxbT86IFF1ZXJ5VW5pcXVlPEU+KTogUHJvbWlzZTxFPjtcblxuICBmaW5kT25lPEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5T25lPEU+KTogUHJvbWlzZTxFPjtcblxuICBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPik6IFByb21pc2U8RVtdPjtcblxuICBmaW5kTWFueUFuZENvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KTogUHJvbWlzZTxbRVtdLCBudW1iZXJdPjtcblxuICBpbnNlcnRPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxJZFZhbHVlPEU+PjtcblxuICBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIHVwZGF0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8bnVtYmVyPjtcblxuICB1cGRhdGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgc2F2ZU9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPElkVmFsdWU8RT4+O1xuXG4gIHNhdmVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIGRlbGV0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcblxuICBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZ2V0UmVwb3NpdG9yeTxFPihlbnRpdHk6IFR5cGU8RT4pOiBSZXBvc2l0b3J5PEU+O1xuXG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoaXMgcXVlcmllciBpcyBpbiBhIHRyYW5zYWN0aW9uIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGhhc09wZW5UcmFuc2FjdGlvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogcnVuIHRoZSBnaXZlbiBjYWxsYmFjayBpbnNpZGUgYSB0cmFuc2FjdGlvbiBpbiB0aGlzIHF1ZXJpZXIuXG4gICAqL1xuICB0cmFuc2FjdGlvbjxUPihjYWxsYmFjazogKHF1ZXJpZXI/OiBUaGlzVHlwZTxRdWVyaWVyPikgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD47XG5cbiAgLyoqXG4gICAqIHN0YXJ0cyBhIG5ldyB0cmFuc2FjdGlvbiBpbiB0aGlzIHF1ZXJpZXIuXG4gICAqL1xuICBiZWdpblRyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIGNvbW1pdHMgdGhlIGN1cnJlbnRseSBhY3RpdmUgdHJhbnNhY3Rpb24gaW4gdGhpcyBxdWVyaWVyLlxuICAgKi9cbiAgY29tbWl0VHJhbnNhY3Rpb24oKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogYWJvcnRzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHRyYW5zYWN0aW9uIGluIHRoaXMgcXVlcmllci5cbiAgICovXG4gIHJvbGxiYWNrVHJhbnNhY3Rpb24oKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogcmVsZWFzZSB0aGUgcXVlcmllciB0byB0aGUgcG9vbC5cbiAgICovXG4gIHJlbGVhc2UoKTogUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllclBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZS9xdWVyaWVyUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcmllciwgUXVlcmllckxvZ2dlciB9IGZyb20gJy4vcXVlcmllci5qcyc7XG5cbi8qKlxuICogcXVlcmllciBwb29sLlxuICovXG5leHBvcnQgdHlwZSBRdWVyaWVyUG9vbDxRIGV4dGVuZHMgUXVlcmllciA9IFF1ZXJpZXI+ID0ge1xuICAvKipcbiAgICogbG9nZ2VyIGZ1bmN0aW9uIHRvIHByaW50IGRlYnVnIG1lc3NhZ2VzLlxuICAgKi9cbiAgbG9nZ2VyPzogUXVlcmllckxvZ2dlcjtcblxuICAvKipcbiAgICogZ2V0IGEgcXVlcmllciBmcm9tIHRoZSBwb29sLlxuICAgKi9cbiAgZ2V0UXVlcmllcjogKCkgPT4gUHJvbWlzZTxRPjtcblxuICAvKipcbiAgICogZW5kIHRoZSBwb29sLlxuICAgKi9cbiAgZW5kKCk6IFByb21pc2U8dm9pZD47XG59O1xuIl19

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryRaw = void 0;
class QueryRaw {
export class QueryRaw {
value;

@@ -12,3 +9,2 @@ alias;

}
exports.QueryRaw = QueryRaw;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZS9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEyVkEsTUFBYSxRQUFRO0lBQ0U7SUFBcUM7SUFBMUQsWUFBcUIsS0FBMEIsRUFBVyxLQUFjO1FBQW5ELFVBQUssR0FBTCxLQUFLLENBQXFCO1FBQVcsVUFBSyxHQUFMLEtBQUssQ0FBUztJQUFHLENBQUM7Q0FDN0U7QUFGRCw0QkFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkS2V5LCBJZFZhbHVlLCBLZXksIFJlbGF0aW9uS2V5IH0gZnJvbSAnLi9lbnRpdHkuanMnO1xuaW1wb3J0IHsgQm9vbGVhbkxpa2UsIEV4cGFuZFNjYWxhciwgU2NhbGFyLCBUeXBlLCBVbnBhY2tlZCB9IGZyb20gJy4vdXRpbGl0eS5qcyc7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIHVzZSBvciBvbWl0IGBzb2Z0RGVsZXRlYCBhdHRyaWJ1dGUuXG4gICAqL1xuICByZWFkb25seSBzb2Z0RGVsZXRlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHByZWZpeCB0aGUgcXVlcnkgd2l0aCB0aGlzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogYXV0b21hdGljYWxseSBpbmZlciB0aGUgcHJlZml4IGZvciB0aGUgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSBhdXRvUHJlZml4PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5UHJvamVjdE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBwcmVmaXggdGhlIHF1ZXJ5IHdpdGggdGhpcy5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBwcmVmaXggZm9yIHRoZSBhbGlhcy5cbiAgICovXG4gIHJlYWRvbmx5IGF1dG9QcmVmaXhBbGlhcz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIHF1ZXJ5IHByb2plY3Rpb24gYXMgYW4gYXJyYXkuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UHJvamVjdEFycmF5PEU+ID0gcmVhZG9ubHkgKEtleTxFPiB8IFF1ZXJ5UmF3KVtdO1xuXG4vKipcbiAqIHF1ZXJ5IHByb2plY3Rpb24gYXMgYSBtYXAuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UHJvamVjdE1hcDxFPiA9IFF1ZXJ5UHJvamVjdEZpZWxkTWFwPEU+IHwgUXVlcnlQcm9qZWN0UmVsYXRpb25NYXA8RT47XG5cbi8qKlxuICogcXVlcnkgcHJvamVjdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0PEU+ID0gUXVlcnlQcm9qZWN0QXJyYXk8RT4gfCBRdWVyeVByb2plY3RNYXA8RT47XG5cbi8qKlxuICogcXVlcnkgcHJvamVjdGlvbiBvZiBmaWVsZHMgYXMgYSBtYXAuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UHJvamVjdEZpZWxkTWFwPEU+ID1cbiAgfCB7XG4gICAgICBbSyBpbiBGaWVsZEtleTxFPl0/OiBCb29sZWFuTGlrZTtcbiAgICB9XG4gIHwgeyBbSzogc3RyaW5nXTogUXVlcnlSYXcgfTtcblxuLyoqXG4gKiBxdWVyeSBwcm9qZWN0aW9uIG9mIHJlbGF0aW9ucyBhcyBhIG1hcC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0UmVsYXRpb25NYXA8RT4gPSB7XG4gIFtLIGluIFJlbGF0aW9uS2V5PEU+XT86IEJvb2xlYW5MaWtlIHwgcmVhZG9ubHkgS2V5PFVucGFja2VkPEVbS10+PltdIHwgUXVlcnlQcm9qZWN0UmVsYXRpb25PcHRpb25zPEVbS10+O1xufTtcblxuLyoqXG4gKiBvcHRpb25zIHRvIHByb2plY3QgYSByZWxhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0UmVsYXRpb25PcHRpb25zPEU+ID0gKEUgZXh0ZW5kcyBhbnlbXSA/IFF1ZXJ5PFVucGFja2VkPEU+PiA6IFF1ZXJ5VW5pcXVlPFVucGFja2VkPEU+PikgJiB7IHJlYWRvbmx5ICRyZXF1aXJlZD86IGJvb2xlYW4gfTtcblxuLyoqXG4gKiBvcHRpb25zIGZvciBmdWxsLXRleHQtc2VhcmNoIG9wZXJhdG9yLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVRleHRTZWFyY2hPcHRpb25zPEU+ID0ge1xuICAvKipcbiAgICogdGV4dCB0byBzZWFyY2ggZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgJHZhbHVlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBsaXN0IG9mIGZpZWxkcyB0byBzZWFyY2ggb24uXG4gICAqL1xuICByZWFkb25seSAkZmllbGRzPzogcmVhZG9ubHkgRmllbGRLZXk8RT5bXTtcbn07XG5cbi8qKlxuICogdmFsdWUgZm9yIGEgbG9naWNhbCBmaWx0ZXJpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyTG9naWNhbDxFPiA9IHJlYWRvbmx5IFF1ZXJ5RmlsdGVyPEU+W107XG5cbi8qKlxuICogY29tcGFyaXNvbiBieSBmaWVsZHMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyRmllbGRNYXA8RT4gPSB7IHJlYWRvbmx5IFtLIGluIEZpZWxkS2V5PEU+XT86IFF1ZXJ5RmlsdGVyRmllbGRWYWx1ZTxFW0tdPiB9O1xuXG4vKipcbiAqIGNvbXBsZXggb3BlcmF0b3JzLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeUZpbHRlck1hcDxFPiA9IFF1ZXJ5RmlsdGVyRmllbGRNYXA8RT4gJiB7XG4gIC8qKlxuICAgKiBqb2lucyBxdWVyeSBjbGF1c2VzIHdpdGggYSBsb2dpY2FsIGBBTkRgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBtYXRjaCBhbGwgdGhlIGNsYXVzZXMuXG4gICAqL1xuICByZWFkb25seSAkYW5kPzogUXVlcnlGaWx0ZXJMb2dpY2FsPEU+O1xuICAvKipcbiAgICogam9pbnMgcXVlcnkgY2xhdXNlcyB3aXRoIGEgbG9naWNhbCBgT1JgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBtYXRjaCBhbnkgb2YgdGhlIGNsYXVzZXMuXG4gICAqL1xuICByZWFkb25seSAkb3I/OiBRdWVyeUZpbHRlckxvZ2ljYWw8RT47XG4gIC8qKlxuICAgKiBqb2lucyBxdWVyeSBjbGF1c2VzIHdpdGggYSBsb2dpY2FsIGBBTkRgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBkbyBub3QgbWF0Y2ggYWxsIHRoZSBjbGF1c2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgJG5vdD86IFF1ZXJ5RmlsdGVyTG9naWNhbDxFPjtcbiAgLyoqXG4gICAqIGpvaW5zIHF1ZXJ5IGNsYXVzZXMgd2l0aCBhIGxvZ2ljYWwgYE9SYCwgcmV0dXJucyByZWNvcmRzIHRoYXQgZG8gbm90IG1hdGNoIGFueSBvZiB0aGUgY2xhdXNlcy5cbiAgICovXG4gIHJlYWRvbmx5ICRub3I/OiBRdWVyeUZpbHRlckxvZ2ljYWw8RT47XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgZmllbGRzIG1hdGNoIGFnYWluc3QgYSBmdWxsLXRleHQgc2VhcmNoIG9mIHRoZSBnaXZlbiBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSAkdGV4dD86IFF1ZXJ5VGV4dFNlYXJjaE9wdGlvbnM8RT47XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSByZWNvcmQgZXhpc3RzIGluIHRoZSBnaXZlbiBzdWItcXVlcnkuXG4gICAqL1xuICByZWFkb25seSAkZXhpc3RzPzogUXVlcnlSYXc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSByZWNvcmQgZG9lcyBub3QgZXhpc3RzIGluIHRoZSBnaXZlbiBzdWItcXVlcnkuXG4gICAqL1xuICByZWFkb25seSAkbmV4aXN0cz86IFF1ZXJ5UmF3O1xufTtcblxuZXhwb3J0IHR5cGUgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwPFQ+ID0ge1xuICAvKipcbiAgICogd2hldGhlciBhIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5ICRlcT86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJG5lPzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogbmVnYXRlcyB0aGUgZ2l2ZW4gY29tcGFyaXNvbi5cbiAgICovXG4gIHJlYWRvbmx5ICRub3Q/OiBRdWVyeUZpbHRlckZpZWxkVmFsdWU8VD47XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgdmFsdWUgaXMgbGVzcyB0aGFuIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5ICRsdD86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJGx0ZT86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJGd0PzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogd2hldGhlciBhIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqL1xuICByZWFkb25seSAkZ3RlPzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBiZWdpbnMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIHNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkc3RhcnRzV2l0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSBzdHJpbmcgYmVnaW5zIHdpdGggdGhlIGdpdmVuIHN0cmluZyAoY2FzZSBpbnNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkaXN0YXJ0c1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIHNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkZW5kc1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIGluc2Vuc2l0aXZlKS5cbiAgICovXG4gIHJlYWRvbmx5ICRpZW5kc1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGdpdmVuIHN0cmluZyAoY2FzZSBzZW5zaXRpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgJGluY2x1ZGVzPzogc3RyaW5nO1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBpcyBjb250YWluZWQgd2l0aGluIHRoZSBnaXZlbiBzdHJpbmcgKGNhc2UgaW5zZW5zaXRpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgJGlpbmNsdWRlcz86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSBzdHJpbmcgZnVsZmlsbHMgdGhlIGdpdmVuIHBhdHRlcm4gKGNhc2Ugc2Vuc2l0aXZlKS5cbiAgICovXG4gIHJlYWRvbmx5ICRsaWtlPzogc3RyaW5nO1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBmdWxmaWxscyB0aGUgZ2l2ZW4gcGF0dGVybiAoY2FzZSBpbnNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkaWxpa2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIG1hdGNoZXMgdGhlIGdpdmVuIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5ICRyZWdleD86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBtYXRjaGVzIGFueSBvZiB0aGUgZ2l2ZW4gdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgJGluPzogcmVhZG9ubHkgRXhwYW5kU2NhbGFyPFQ+W107XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgdmFsdWUgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBnaXZlbiB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSAkbmluPzogcmVhZG9ubHkgRXhwYW5kU2NhbGFyPFQ+W107XG59O1xuXG4vKipcbiAqIFZhbHVlIGZvciBhIGZpZWxkIGNvbXBhcmlzb24uXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyRmllbGRWYWx1ZTxUPiA9IFQgfCByZWFkb25seSBUW10gfCBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8VD4gfCBRdWVyeVJhdztcblxuLyoqXG4gKiBxdWVyeSBmaWx0ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyPEU+ID0gSWRWYWx1ZTxFPiB8IHJlYWRvbmx5IElkVmFsdWU8RT5bXSB8IFF1ZXJ5UmF3IHwgUXVlcnlGaWx0ZXJNYXA8RT47XG5cbi8qKlxuICogZGlyZWN0aW9uIGZvciB0aGUgc29ydC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0RGlyZWN0aW9uID0gLTEgfCAxIHwgJ2FzYycgfCAnZGVzYyc7XG5cbi8qKlxuICogc29ydCBieSB0dXBsZXNcbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0VHVwbGVzPEU+ID0gcmVhZG9ubHkgW0ZpZWxkS2V5PEU+LCBRdWVyeVNvcnREaXJlY3Rpb25dW107XG5cbi8qKlxuICogc29ydCBieSBvYmplY3RzLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnRPYmplY3RzPEU+ID0gcmVhZG9ubHkgeyByZWFkb25seSBmaWVsZDogRmllbGRLZXk8RT47IHJlYWRvbmx5IHNvcnQ6IFF1ZXJ5U29ydERpcmVjdGlvbiB9W107XG5cbi8qKlxuICogc29ydCBieSBmaWVsZHMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U29ydEZpZWxkTWFwPEU+ID0ge1xuICBbSyBpbiBGaWVsZEtleTxFPl0/OiBRdWVyeVNvcnREaXJlY3Rpb247XG59O1xuXG4vKipcbiAqIHNvcnQgYnkgcmVsYXRpb25zIGZpZWxkcy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0UmVsYXRpb25NYXA8RT4gPSB7XG4gIFtLIGluIFJlbGF0aW9uS2V5PEU+XT86IFF1ZXJ5U29ydE1hcDxVbnBhY2tlZDxFW0tdPj47XG59O1xuXG4vKipcbiAqIHNvcnQgYnkgbWFwLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnRNYXA8RT4gPSBRdWVyeVNvcnRGaWVsZE1hcDxFPiB8IFF1ZXJ5U29ydFJlbGF0aW9uTWFwPEU+O1xuXG4vKipcbiAqIHNvcnQgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0PEU+ID0gUXVlcnlTb3J0TWFwPEU+IHwgUXVlcnlTb3J0VHVwbGVzPEU+IHwgUXVlcnlTb3J0T2JqZWN0czxFPjtcblxuLyoqXG4gKiBwYWdlciBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVBhZ2VyID0ge1xuICAkc2tpcD86IG51bWJlcjtcbiAgJGxpbWl0PzogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBzZWFyY2ggb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTZWFyY2g8RT4gPSB7XG4gIC8qKlxuICAgKiBmaWx0ZXJpbmcgb3B0aW9ucy5cbiAgICovXG4gICRmaWx0ZXI/OiBRdWVyeUZpbHRlcjxFPjtcbiAgLyoqXG4gICAqIGxpc3Qgb2YgZmllbGRzIHRvIGdyb3VwLlxuICAgKi9cbiAgJGdyb3VwPzogcmVhZG9ubHkgRmllbGRLZXk8RT5bXTtcbiAgLyoqXG4gICAqIGhhdmluZyBvcHRpb25zLlxuICAgKi9cbiAgJGhhdmluZz86IFF1ZXJ5RmlsdGVyPEU+O1xufTtcblxuLyoqXG4gKiBjcml0ZXJpYSBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeUNyaXRlcmlhPEU+ID0gUXVlcnlTZWFyY2g8RT4gJiB7XG4gIC8qKlxuICAgKiBzb3J0aW5nIG9wdGlvbnMuXG4gICAqL1xuICAkc29ydD86IFF1ZXJ5U29ydDxFPjtcbn0gJiBRdWVyeVBhZ2VyO1xuXG4vKipcbiAqIHF1ZXJ5IG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5PEU+ID0ge1xuICAvKipcbiAgICogcHJvamVjdGlvbiBvcHRpb25zLlxuICAgKi9cbiAgJHByb2plY3Q/OiBRdWVyeVByb2plY3Q8RT47XG59ICYgUXVlcnlDcml0ZXJpYTxFPjtcblxuLyoqXG4gKiBvcHRpb25zIHRvIGdldCBhIHNpbmdsZSByZWNvcmQuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5T25lPEU+ID0gT21pdDxRdWVyeTxFPiwgJyRsaW1pdCc+O1xuXG4vKipcbiAqIG9wdGlvbnMgdG8gZ2V0IGFuIHVuaXF1ZSByZWNvcmQuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5VW5pcXVlPEU+ID0gUGljazxRdWVyeTxFPiwgJyRwcm9qZWN0JyB8ICckZmlsdGVyJz47XG5cbi8qKlxuICogc3RyaW5naWZpZWQgcXVlcnkuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U3RyaW5naWZpZWQgPSB7XG4gIHJlYWRvbmx5IFtLIGluIGtleW9mIFF1ZXJ5PGFueT5dPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiByZXN1bHQgb2YgYW4gdXBkYXRlIG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlVcGRhdGVSZXN1bHQgPSB7XG4gIC8qKlxuICAgKiBudW1iZXIgb2YgY2hhbmdlcy5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBmaXJzdCBpbnNlcnRlZCBJRC5cbiAgICovXG4gIHJlYWRvbmx5IGZpcnN0SWQ/OiBudW1iZXI7XG59O1xuXG4vKipcbiAqIG9wdGlvbnMgZm9yIHRoZSBgcmF3YCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlSYXdGbk9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiB0aGUgY3VycmVudCBkaWFsZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGlhbGVjdDogUXVlcnlEaWFsZWN0O1xuICAvKipcbiAgICogdGhlIHByZWZpeC5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIHRoZSBlc2NhcGVkIHByZWZpeC5cbiAgICovXG4gIHJlYWRvbmx5IGVzY2FwZWRQcmVmaXg/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIGEgYHJhd2AgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlSYXdGbiA9IChvcHRzPzogUXVlcnlSYXdGbk9wdGlvbnMpID0+IHN0cmluZztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5UmF3IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdmFsdWU6IFNjYWxhciB8IFF1ZXJ5UmF3Rm4sIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIGNvbXBhcmlzb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlDb21wYXJpc29uT3B0aW9ucyA9IFF1ZXJ5T3B0aW9ucyAmIHtcbiAgLyoqXG4gICAqIHVzZSBwcmVjZWRlbmNlIGZvciB0aGUgY29tcGFyaXNvbiBvciBub3QuXG4gICAqL1xuICByZWFkb25seSB1c2VQcmVjZWRlbmNlPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogcXVlcnkgZmlsdGVyIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyT3B0aW9ucyA9IFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMgJiB7XG4gIC8qKlxuICAgKiBjbGF1c2UgdG8gYmUgdXNlZCBpbiB0aGUgZmlsdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xhdXNlPzogJ1dIRVJFJyB8ICdIQVZJTkcnIHwgZmFsc2U7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5RGlhbGVjdCB7XG4gIC8qKlxuICAgKiBjb3VudHMgdGhlIG51bWJlciBvZiByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIGZpbmQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGluc2VyIHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEBwYXJhbSBvcHRzIHRoZSBxdWVyeSBvcHRpb25zXG4gICAqL1xuICBpbnNlcnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFIHwgcmVhZG9ubHkgRVtdLCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIHBheWxvYWRcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIHVwZGF0ZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFLCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBkZWxldGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIGRlbGV0ZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBlc2NhcGUgYW4gaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHZhbCB0aGUgdmFsdWUgdG8gYmUgZXNjYXBlZFxuICAgKiBAcGFyYW0gZm9yYmlkUXVhbGlmaWVkIGRvbid0IGVzY2FwZSBkb3RzXG4gICAqIEBwYXJhbSBhZGREb3QgdXNlIGEgZG90IGFzIHN1ZmZpeFxuICAgKi9cbiAgZXNjYXBlSWQodmFsOiBzdHJpbmcsIGZvcmJpZFF1YWxpZmllZD86IGJvb2xlYW4sIGFkZERvdD86IGJvb2xlYW4pOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGVzY2FwZSBhIHZhbHVlLlxuICAgKiBAcGFyYW0gdmFsIHRoZSB2YWx1ZSB0byBlc2NhcGVcbiAgICovXG4gIGVzY2FwZSh2YWw6IGFueSk6IFNjYWxhcjtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZS9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyVkEsTUFBTSxPQUFPLFFBQVE7SUFDRTtJQUFxQztJQUExRCxZQUFxQixLQUEwQixFQUFXLEtBQWM7UUFBbkQsVUFBSyxHQUFMLEtBQUssQ0FBcUI7UUFBVyxVQUFLLEdBQUwsS0FBSyxDQUFTO0lBQUcsQ0FBQztDQUM3RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkS2V5LCBJZFZhbHVlLCBLZXksIFJlbGF0aW9uS2V5IH0gZnJvbSAnLi9lbnRpdHkuanMnO1xuaW1wb3J0IHsgQm9vbGVhbkxpa2UsIEV4cGFuZFNjYWxhciwgU2NhbGFyLCBUeXBlLCBVbnBhY2tlZCB9IGZyb20gJy4vdXRpbGl0eS5qcyc7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIHVzZSBvciBvbWl0IGBzb2Z0RGVsZXRlYCBhdHRyaWJ1dGUuXG4gICAqL1xuICByZWFkb25seSBzb2Z0RGVsZXRlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHByZWZpeCB0aGUgcXVlcnkgd2l0aCB0aGlzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogYXV0b21hdGljYWxseSBpbmZlciB0aGUgcHJlZml4IGZvciB0aGUgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSBhdXRvUHJlZml4PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5UHJvamVjdE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBwcmVmaXggdGhlIHF1ZXJ5IHdpdGggdGhpcy5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBwcmVmaXggZm9yIHRoZSBhbGlhcy5cbiAgICovXG4gIHJlYWRvbmx5IGF1dG9QcmVmaXhBbGlhcz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIHF1ZXJ5IHByb2plY3Rpb24gYXMgYW4gYXJyYXkuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UHJvamVjdEFycmF5PEU+ID0gcmVhZG9ubHkgKEtleTxFPiB8IFF1ZXJ5UmF3KVtdO1xuXG4vKipcbiAqIHF1ZXJ5IHByb2plY3Rpb24gYXMgYSBtYXAuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UHJvamVjdE1hcDxFPiA9IFF1ZXJ5UHJvamVjdEZpZWxkTWFwPEU+IHwgUXVlcnlQcm9qZWN0UmVsYXRpb25NYXA8RT47XG5cbi8qKlxuICogcXVlcnkgcHJvamVjdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0PEU+ID0gUXVlcnlQcm9qZWN0QXJyYXk8RT4gfCBRdWVyeVByb2plY3RNYXA8RT47XG5cbi8qKlxuICogcXVlcnkgcHJvamVjdGlvbiBvZiBmaWVsZHMgYXMgYSBtYXAuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UHJvamVjdEZpZWxkTWFwPEU+ID1cbiAgfCB7XG4gICAgICBbSyBpbiBGaWVsZEtleTxFPl0/OiBCb29sZWFuTGlrZTtcbiAgICB9XG4gIHwgeyBbSzogc3RyaW5nXTogUXVlcnlSYXcgfTtcblxuLyoqXG4gKiBxdWVyeSBwcm9qZWN0aW9uIG9mIHJlbGF0aW9ucyBhcyBhIG1hcC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0UmVsYXRpb25NYXA8RT4gPSB7XG4gIFtLIGluIFJlbGF0aW9uS2V5PEU+XT86IEJvb2xlYW5MaWtlIHwgcmVhZG9ubHkgS2V5PFVucGFja2VkPEVbS10+PltdIHwgUXVlcnlQcm9qZWN0UmVsYXRpb25PcHRpb25zPEVbS10+O1xufTtcblxuLyoqXG4gKiBvcHRpb25zIHRvIHByb2plY3QgYSByZWxhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlQcm9qZWN0UmVsYXRpb25PcHRpb25zPEU+ID0gKEUgZXh0ZW5kcyBhbnlbXSA/IFF1ZXJ5PFVucGFja2VkPEU+PiA6IFF1ZXJ5VW5pcXVlPFVucGFja2VkPEU+PikgJiB7IHJlYWRvbmx5ICRyZXF1aXJlZD86IGJvb2xlYW4gfTtcblxuLyoqXG4gKiBvcHRpb25zIGZvciBmdWxsLXRleHQtc2VhcmNoIG9wZXJhdG9yLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVRleHRTZWFyY2hPcHRpb25zPEU+ID0ge1xuICAvKipcbiAgICogdGV4dCB0byBzZWFyY2ggZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgJHZhbHVlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBsaXN0IG9mIGZpZWxkcyB0byBzZWFyY2ggb24uXG4gICAqL1xuICByZWFkb25seSAkZmllbGRzPzogcmVhZG9ubHkgRmllbGRLZXk8RT5bXTtcbn07XG5cbi8qKlxuICogdmFsdWUgZm9yIGEgbG9naWNhbCBmaWx0ZXJpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyTG9naWNhbDxFPiA9IHJlYWRvbmx5IFF1ZXJ5RmlsdGVyPEU+W107XG5cbi8qKlxuICogY29tcGFyaXNvbiBieSBmaWVsZHMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyRmllbGRNYXA8RT4gPSB7IHJlYWRvbmx5IFtLIGluIEZpZWxkS2V5PEU+XT86IFF1ZXJ5RmlsdGVyRmllbGRWYWx1ZTxFW0tdPiB9O1xuXG4vKipcbiAqIGNvbXBsZXggb3BlcmF0b3JzLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeUZpbHRlck1hcDxFPiA9IFF1ZXJ5RmlsdGVyRmllbGRNYXA8RT4gJiB7XG4gIC8qKlxuICAgKiBqb2lucyBxdWVyeSBjbGF1c2VzIHdpdGggYSBsb2dpY2FsIGBBTkRgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBtYXRjaCBhbGwgdGhlIGNsYXVzZXMuXG4gICAqL1xuICByZWFkb25seSAkYW5kPzogUXVlcnlGaWx0ZXJMb2dpY2FsPEU+O1xuICAvKipcbiAgICogam9pbnMgcXVlcnkgY2xhdXNlcyB3aXRoIGEgbG9naWNhbCBgT1JgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBtYXRjaCBhbnkgb2YgdGhlIGNsYXVzZXMuXG4gICAqL1xuICByZWFkb25seSAkb3I/OiBRdWVyeUZpbHRlckxvZ2ljYWw8RT47XG4gIC8qKlxuICAgKiBqb2lucyBxdWVyeSBjbGF1c2VzIHdpdGggYSBsb2dpY2FsIGBBTkRgLCByZXR1cm5zIHJlY29yZHMgdGhhdCBkbyBub3QgbWF0Y2ggYWxsIHRoZSBjbGF1c2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgJG5vdD86IFF1ZXJ5RmlsdGVyTG9naWNhbDxFPjtcbiAgLyoqXG4gICAqIGpvaW5zIHF1ZXJ5IGNsYXVzZXMgd2l0aCBhIGxvZ2ljYWwgYE9SYCwgcmV0dXJucyByZWNvcmRzIHRoYXQgZG8gbm90IG1hdGNoIGFueSBvZiB0aGUgY2xhdXNlcy5cbiAgICovXG4gIHJlYWRvbmx5ICRub3I/OiBRdWVyeUZpbHRlckxvZ2ljYWw8RT47XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgZmllbGRzIG1hdGNoIGFnYWluc3QgYSBmdWxsLXRleHQgc2VhcmNoIG9mIHRoZSBnaXZlbiBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSAkdGV4dD86IFF1ZXJ5VGV4dFNlYXJjaE9wdGlvbnM8RT47XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSByZWNvcmQgZXhpc3RzIGluIHRoZSBnaXZlbiBzdWItcXVlcnkuXG4gICAqL1xuICByZWFkb25seSAkZXhpc3RzPzogUXVlcnlSYXc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRoZSByZWNvcmQgZG9lcyBub3QgZXhpc3RzIGluIHRoZSBnaXZlbiBzdWItcXVlcnkuXG4gICAqL1xuICByZWFkb25seSAkbmV4aXN0cz86IFF1ZXJ5UmF3O1xufTtcblxuZXhwb3J0IHR5cGUgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwPFQ+ID0ge1xuICAvKipcbiAgICogd2hldGhlciBhIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5ICRlcT86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJG5lPzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogbmVnYXRlcyB0aGUgZ2l2ZW4gY29tcGFyaXNvbi5cbiAgICovXG4gIHJlYWRvbmx5ICRub3Q/OiBRdWVyeUZpbHRlckZpZWxkVmFsdWU8VD47XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgdmFsdWUgaXMgbGVzcyB0aGFuIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5ICRsdD86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJGx0ZT86IEV4cGFuZFNjYWxhcjxUPjtcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgJGd0PzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogd2hldGhlciBhIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqL1xuICByZWFkb25seSAkZ3RlPzogRXhwYW5kU2NhbGFyPFQ+O1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBiZWdpbnMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIHNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkc3RhcnRzV2l0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSBzdHJpbmcgYmVnaW5zIHdpdGggdGhlIGdpdmVuIHN0cmluZyAoY2FzZSBpbnNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkaXN0YXJ0c1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIHNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkZW5kc1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3RyaW5nIChjYXNlIGluc2Vuc2l0aXZlKS5cbiAgICovXG4gIHJlYWRvbmx5ICRpZW5kc1dpdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGdpdmVuIHN0cmluZyAoY2FzZSBzZW5zaXRpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgJGluY2x1ZGVzPzogc3RyaW5nO1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBpcyBjb250YWluZWQgd2l0aGluIHRoZSBnaXZlbiBzdHJpbmcgKGNhc2UgaW5zZW5zaXRpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgJGlpbmNsdWRlcz86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSBzdHJpbmcgZnVsZmlsbHMgdGhlIGdpdmVuIHBhdHRlcm4gKGNhc2Ugc2Vuc2l0aXZlKS5cbiAgICovXG4gIHJlYWRvbmx5ICRsaWtlPzogc3RyaW5nO1xuICAvKipcbiAgICogd2hldGhlciBhIHN0cmluZyBmdWxmaWxscyB0aGUgZ2l2ZW4gcGF0dGVybiAoY2FzZSBpbnNlbnNpdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSAkaWxpa2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgc3RyaW5nIG1hdGNoZXMgdGhlIGdpdmVuIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5ICRyZWdleD86IHN0cmluZztcbiAgLyoqXG4gICAqIHdoZXRoZXIgYSB2YWx1ZSBtYXRjaGVzIGFueSBvZiB0aGUgZ2l2ZW4gdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgJGluPzogcmVhZG9ubHkgRXhwYW5kU2NhbGFyPFQ+W107XG4gIC8qKlxuICAgKiB3aGV0aGVyIGEgdmFsdWUgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBnaXZlbiB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSAkbmluPzogcmVhZG9ubHkgRXhwYW5kU2NhbGFyPFQ+W107XG59O1xuXG4vKipcbiAqIFZhbHVlIGZvciBhIGZpZWxkIGNvbXBhcmlzb24uXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyRmllbGRWYWx1ZTxUPiA9IFQgfCByZWFkb25seSBUW10gfCBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8VD4gfCBRdWVyeVJhdztcblxuLyoqXG4gKiBxdWVyeSBmaWx0ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyPEU+ID0gSWRWYWx1ZTxFPiB8IHJlYWRvbmx5IElkVmFsdWU8RT5bXSB8IFF1ZXJ5UmF3IHwgUXVlcnlGaWx0ZXJNYXA8RT47XG5cbi8qKlxuICogZGlyZWN0aW9uIGZvciB0aGUgc29ydC5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0RGlyZWN0aW9uID0gLTEgfCAxIHwgJ2FzYycgfCAnZGVzYyc7XG5cbi8qKlxuICogc29ydCBieSB0dXBsZXNcbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0VHVwbGVzPEU+ID0gcmVhZG9ubHkgW0ZpZWxkS2V5PEU+LCBRdWVyeVNvcnREaXJlY3Rpb25dW107XG5cbi8qKlxuICogc29ydCBieSBvYmplY3RzLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnRPYmplY3RzPEU+ID0gcmVhZG9ubHkgeyByZWFkb25seSBmaWVsZDogRmllbGRLZXk8RT47IHJlYWRvbmx5IHNvcnQ6IFF1ZXJ5U29ydERpcmVjdGlvbiB9W107XG5cbi8qKlxuICogc29ydCBieSBmaWVsZHMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U29ydEZpZWxkTWFwPEU+ID0ge1xuICBbSyBpbiBGaWVsZEtleTxFPl0/OiBRdWVyeVNvcnREaXJlY3Rpb247XG59O1xuXG4vKipcbiAqIHNvcnQgYnkgcmVsYXRpb25zIGZpZWxkcy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0UmVsYXRpb25NYXA8RT4gPSB7XG4gIFtLIGluIFJlbGF0aW9uS2V5PEU+XT86IFF1ZXJ5U29ydE1hcDxVbnBhY2tlZDxFW0tdPj47XG59O1xuXG4vKipcbiAqIHNvcnQgYnkgbWFwLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVNvcnRNYXA8RT4gPSBRdWVyeVNvcnRGaWVsZE1hcDxFPiB8IFF1ZXJ5U29ydFJlbGF0aW9uTWFwPEU+O1xuXG4vKipcbiAqIHNvcnQgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTb3J0PEU+ID0gUXVlcnlTb3J0TWFwPEU+IHwgUXVlcnlTb3J0VHVwbGVzPEU+IHwgUXVlcnlTb3J0T2JqZWN0czxFPjtcblxuLyoqXG4gKiBwYWdlciBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVBhZ2VyID0ge1xuICAkc2tpcD86IG51bWJlcjtcbiAgJGxpbWl0PzogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBzZWFyY2ggb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTZWFyY2g8RT4gPSB7XG4gIC8qKlxuICAgKiBmaWx0ZXJpbmcgb3B0aW9ucy5cbiAgICovXG4gICRmaWx0ZXI/OiBRdWVyeUZpbHRlcjxFPjtcbiAgLyoqXG4gICAqIGxpc3Qgb2YgZmllbGRzIHRvIGdyb3VwLlxuICAgKi9cbiAgJGdyb3VwPzogcmVhZG9ubHkgRmllbGRLZXk8RT5bXTtcbiAgLyoqXG4gICAqIGhhdmluZyBvcHRpb25zLlxuICAgKi9cbiAgJGhhdmluZz86IFF1ZXJ5RmlsdGVyPEU+O1xufTtcblxuLyoqXG4gKiBjcml0ZXJpYSBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBRdWVyeUNyaXRlcmlhPEU+ID0gUXVlcnlTZWFyY2g8RT4gJiB7XG4gIC8qKlxuICAgKiBzb3J0aW5nIG9wdGlvbnMuXG4gICAqL1xuICAkc29ydD86IFF1ZXJ5U29ydDxFPjtcbn0gJiBRdWVyeVBhZ2VyO1xuXG4vKipcbiAqIHF1ZXJ5IG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5PEU+ID0ge1xuICAvKipcbiAgICogcHJvamVjdGlvbiBvcHRpb25zLlxuICAgKi9cbiAgJHByb2plY3Q/OiBRdWVyeVByb2plY3Q8RT47XG59ICYgUXVlcnlDcml0ZXJpYTxFPjtcblxuLyoqXG4gKiBvcHRpb25zIHRvIGdldCBhIHNpbmdsZSByZWNvcmQuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5T25lPEU+ID0gT21pdDxRdWVyeTxFPiwgJyRsaW1pdCc+O1xuXG4vKipcbiAqIG9wdGlvbnMgdG8gZ2V0IGFuIHVuaXF1ZSByZWNvcmQuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5VW5pcXVlPEU+ID0gUGljazxRdWVyeTxFPiwgJyRwcm9qZWN0JyB8ICckZmlsdGVyJz47XG5cbi8qKlxuICogc3RyaW5naWZpZWQgcXVlcnkuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U3RyaW5naWZpZWQgPSB7XG4gIHJlYWRvbmx5IFtLIGluIGtleW9mIFF1ZXJ5PGFueT5dPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiByZXN1bHQgb2YgYW4gdXBkYXRlIG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlVcGRhdGVSZXN1bHQgPSB7XG4gIC8qKlxuICAgKiBudW1iZXIgb2YgY2hhbmdlcy5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBmaXJzdCBpbnNlcnRlZCBJRC5cbiAgICovXG4gIHJlYWRvbmx5IGZpcnN0SWQ/OiBudW1iZXI7XG59O1xuXG4vKipcbiAqIG9wdGlvbnMgZm9yIHRoZSBgcmF3YCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlSYXdGbk9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiB0aGUgY3VycmVudCBkaWFsZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGlhbGVjdDogUXVlcnlEaWFsZWN0O1xuICAvKipcbiAgICogdGhlIHByZWZpeC5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIHRoZSBlc2NhcGVkIHByZWZpeC5cbiAgICovXG4gIHJlYWRvbmx5IGVzY2FwZWRQcmVmaXg/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIGEgYHJhd2AgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlSYXdGbiA9IChvcHRzPzogUXVlcnlSYXdGbk9wdGlvbnMpID0+IHN0cmluZztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5UmF3IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdmFsdWU6IFNjYWxhciB8IFF1ZXJ5UmF3Rm4sIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIGNvbXBhcmlzb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlDb21wYXJpc29uT3B0aW9ucyA9IFF1ZXJ5T3B0aW9ucyAmIHtcbiAgLyoqXG4gICAqIHVzZSBwcmVjZWRlbmNlIGZvciB0aGUgY29tcGFyaXNvbiBvciBub3QuXG4gICAqL1xuICByZWFkb25seSB1c2VQcmVjZWRlbmNlPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogcXVlcnkgZmlsdGVyIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RmlsdGVyT3B0aW9ucyA9IFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMgJiB7XG4gIC8qKlxuICAgKiBjbGF1c2UgdG8gYmUgdXNlZCBpbiB0aGUgZmlsdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xhdXNlPzogJ1dIRVJFJyB8ICdIQVZJTkcnIHwgZmFsc2U7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5RGlhbGVjdCB7XG4gIC8qKlxuICAgKiBjb3VudHMgdGhlIG51bWJlciBvZiByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIGZpbmQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGluc2VyIHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEBwYXJhbSBvcHRzIHRoZSBxdWVyeSBvcHRpb25zXG4gICAqL1xuICBpbnNlcnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFIHwgcmVhZG9ubHkgRVtdLCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIHBheWxvYWRcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIHVwZGF0ZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFLCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBkZWxldGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHBhcmFtIG9wdHMgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIGRlbGV0ZTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBlc2NhcGUgYW4gaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHZhbCB0aGUgdmFsdWUgdG8gYmUgZXNjYXBlZFxuICAgKiBAcGFyYW0gZm9yYmlkUXVhbGlmaWVkIGRvbid0IGVzY2FwZSBkb3RzXG4gICAqIEBwYXJhbSBhZGREb3QgdXNlIGEgZG90IGFzIHN1ZmZpeFxuICAgKi9cbiAgZXNjYXBlSWQodmFsOiBzdHJpbmcsIGZvcmJpZFF1YWxpZmllZD86IGJvb2xlYW4sIGFkZERvdD86IGJvb2xlYW4pOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGVzY2FwZSBhIHZhbHVlLlxuICAgKiBAcGFyYW0gdmFsIHRoZSB2YWx1ZSB0byBlc2NhcGVcbiAgICovXG4gIGVzY2FwZSh2YWw6IGFueSk6IFNjYWxhcjtcbn1cbiJdfQ==

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkVmFsdWUgfSBmcm9tICcuL2VudGl0eS5qcyc7XG5pbXBvcnQgeyBRdWVyaWVyIH0gZnJvbSAnLi9xdWVyaWVyLmpzJztcbmltcG9ydCB7IFF1ZXJ5LCBRdWVyeUNyaXRlcmlhLCBRdWVyeU9uZSwgUXVlcnlPcHRpb25zLCBRdWVyeVNlYXJjaCwgUXVlcnlVbmlxdWUgfSBmcm9tICcuL3F1ZXJ5LmpzJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuL3V0aWxpdHkuanMnO1xuXG4vKipcbiAqIEEgYHJlcG9zaXRvcnlgIGFsbG93cyB0byBpbnRlcmFjdCB3aXRoIHRoZSBkYXRhc291cmNlIHRvIHBlcmZvcm0gcGVyc2lzdGVuY2Ugb3BlcmF0aW9ucyBvbiBhIHNwZWNpZmljIGVudGl0eS5cbiAqL1xuZXhwb3J0IHR5cGUgVW5pdmVyc2FsUmVwb3NpdG9yeTxFPiA9IHtcbiAgLyoqXG4gICAqIGNvdW50cyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gcW0gdGhlIHNlYXJjaCBvcHRpb25zXG4gICAqL1xuICBjb3VudChxbTogUXVlcnlTZWFyY2g8RT4pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZCB3aXRoIHRoZSBnaXZlbiBwcmltYXJ5IGtleS5cbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSB2YWx1ZVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBxbT86IFF1ZXJ5VW5pcXVlPEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSBmaXJzdCByZWNvcmQgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRPbmUocW06IFF1ZXJ5T25lPEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqL1xuICBmaW5kTWFueShxbTogUXVlcnk8RT4pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLFxuICAgKiBhbHNvIGNvdW50cyB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgaWdub3JpbmcgcGFnaW5hdGlvbi5cbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqL1xuICBmaW5kTWFueUFuZENvdW50KHFtOiBRdWVyeTxFPik6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogaW5zZXJ0cyBhIHJlY29yZC5cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICBpbnNlcnRPbmUocGF5bG9hZDogRSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogSW5zZXJ0cyBtYW55IHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgaW5zZXJ0TWFueT8ocGF5bG9hZDogRVtdKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIGEgcmVjb3JkIHBhcnRpYWxseS5cbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSBvZiB0aGUgcmVjb3JkIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICB1cGRhdGVPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIG1hbnkgcmVjb3JkcyBwYXJ0aWFsbHkuXG4gICAqIEBwYXJhbSBxbSB0aGUgY3JpdGVyaWEgdG8gbG9vayBmb3IgdGhlIHJlY29yZHNcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICB1cGRhdGVNYW55PyhxbTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogSW5zZXJ0IG9yIHVwZGF0ZSBhIHJlY29yZC5cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICBzYXZlT25lKHBheWxvYWQ6IEUpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIGluc2VydCBvciB1cGRhdGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICBzYXZlTWFueT8ocGF5bG9hZDogRVtdKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgb3IgU29mdERlbGV0ZSBhIHJlY29yZC5cbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSBvZiB0aGUgcmVjb3JkXG4gICAqL1xuICBkZWxldGVPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgb3IgU29mdERlbGV0ZSByZWNvcmRzLlxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIHRvIGxvb2sgZm9yIHRoZSByZWNvcmRzXG4gICAqL1xuICBkZWxldGVNYW55KHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xufTtcblxuLyoqXG4gKiBiYXNlIGNvbnRyYWN0IGZvciB0aGUgYmFja2VuZCByZXBvc2l0b3JpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3NpdG9yeTxFPiBleHRlbmRzIFVuaXZlcnNhbFJlcG9zaXRvcnk8RT4ge1xuICAvKipcbiAgICogdGhlIGBlbnRpdHlgIHR5cGUgdG8gd2hpY2ggdGhpcyBgcmVwb3NpdG9yeWAgaXMgbGlua2VkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZW50aXR5OiBUeXBlPEU+O1xuXG4gIC8qKlxuICAgKiB0aGUgYHF1ZXJpZXJgIGluc3RhbmNlIHRvIHdoaWNoIHRoaXMgYHJlcG9zaXRvcnlgIGlzIGxpbmtlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJpZXI6IFF1ZXJpZXI7XG5cbiAgY291bnQocW06IFF1ZXJ5Q3JpdGVyaWE8RT4pOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZmluZE9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIHFtPzogUXVlcnlVbmlxdWU8RT4pOiBQcm9taXNlPEU+O1xuXG4gIGZpbmRPbmUocW06IFF1ZXJ5T25lPEU+KTogUHJvbWlzZTxFPjtcblxuICBmaW5kTWFueShxbTogUXVlcnk8RT4pOiBQcm9taXNlPEVbXT47XG5cbiAgZmluZE1hbnlBbmRDb3VudChxbTogUXVlcnk8RT4pOiBQcm9taXNlPFtFW10sIG51bWJlcl0+O1xuXG4gIGluc2VydE9uZShwYXlsb2FkOiBFKTogUHJvbWlzZTxJZFZhbHVlPEU+PjtcblxuICBpbnNlcnRNYW55KHBheWxvYWQ6IEVbXSk6IFByb21pc2U8SWRWYWx1ZTxFPltdPjtcblxuICB1cGRhdGVPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIHVwZGF0ZU1hbnkocW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgc2F2ZU9uZShwYXlsb2FkOiBFKTogUHJvbWlzZTxJZFZhbHVlPEU+PjtcblxuICBzYXZlTWFueT8ocGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIGRlbGV0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZGVsZXRlTWFueShxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcbn1cbiJdfQ==

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2FsUXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3VuaXZlcnNhbFF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICcuL3V0aWxpdHkuanMnO1xuaW1wb3J0IHsgUXVlcnksIFF1ZXJ5Q3JpdGVyaWEsIFF1ZXJ5T25lLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5U2VhcmNoLCBRdWVyeVVuaXF1ZSB9IGZyb20gJy4vcXVlcnkuanMnO1xuaW1wb3J0IHsgVW5pdmVyc2FsUmVwb3NpdG9yeSB9IGZyb20gJy4vcmVwb3NpdG9yeS5qcyc7XG5pbXBvcnQgeyBJZFZhbHVlIH0gZnJvbSAnLi9lbnRpdHkuanMnO1xuXG4vKipcbiAqIEEgYHF1ZXJpZXJgIGFsbG93cyB0byBpbnRlcmFjdCB3aXRoIHRoZSBkYXRhc291cmNlIHRvIHBlcmZvcm0gcGVyc2lzdGVuY2Ugb3BlcmF0aW9ucyBvbiBhbnkgZW50aXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVuaXZlcnNhbFF1ZXJpZXIge1xuICAvKipcbiAgICogY291bnRzIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBzZWFyY2ggb3B0aW9uc1xuICAgKi9cbiAgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbT86IFF1ZXJ5U2VhcmNoPEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmQgd2l0aCB0aGUgZ2l2ZW4gcHJpbWFyeSBrZXkuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSB2YWx1ZVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHFtPzogUXVlcnlVbmlxdWU8RT4pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIGZpcnN0IHJlY29yZCBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqL1xuICBmaW5kT25lPEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5T25lPEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycyxcbiAgICogYWxzbyBjb3VudHMgdGhlIG51bWJlciBvZiBtYXRjaGVzIGlnbm9yaW5nIHBhZ2luYXRpb24uXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqL1xuICBmaW5kTWFueUFuZENvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBpbnNlcnRzIGEgcmVjb3JkLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICovXG4gIGluc2VydE9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIEluc2VydHMgbWFueSByZWNvcmRzLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICovXG4gIGluc2VydE1hbnk/PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIGEgcmVjb3JkIHBhcnRpYWxseS5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSBvZiB0aGUgcmVjb3JkIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICB1cGRhdGVPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIHVwZGF0ZXMgbWFueSByZWNvcmRzIHBhcnRpYWxseS5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSB0byBsb29rIGZvciB0aGUgcmVjb3Jkc1xuICAgKiBAcGFyYW0gcGF5bG9hZCB0aGUgZGF0YSB0byBiZSBwZXJzaXN0ZWRcbiAgICovXG4gIHVwZGF0ZU1hbnk/PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIGluc2VydCBvciB1cGRhdGUgYSByZWNvcmQuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgc2F2ZU9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIEluc2VydCBvciB1cGRhdGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICBzYXZlTWFueT88RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pOiBQcm9taXNlPGFueT47XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBvciBTb2Z0RGVsZXRlIGEgcmVjb3JkLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gaWQgdGhlIHByaW1hcnkga2V5IG9mIHRoZSByZWNvcmRcbiAgICovXG4gIGRlbGV0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8YW55PjtcblxuICAvKipcbiAgICogZGVsZXRlIG9yIFNvZnREZWxldGUgcmVjb3Jkcy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIHFtIHRoZSBjcml0ZXJpYSB0byBsb29rIGZvciB0aGUgcmVjb3Jkc1xuICAgKi9cbiAgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBnZXQgYSByZXBvc2l0b3J5IGZvciB0aGUgZ2l2ZW4gZW50aXR5LlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gZ2V0IHRoZSByZXBvc2l0b3J5IGZvclxuICAgKi9cbiAgZ2V0UmVwb3NpdG9yeTxFPihlbnRpdHk6IFR5cGU8RT4pOiBVbml2ZXJzYWxSZXBvc2l0b3J5PEU+O1xufVxuIl19

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

/// <reference types="node" />
/// <reference types="node" resolution-mode="require"/>
export type Type<T> = new (...args: any[]) => T;

@@ -3,0 +3,0 @@ export type BooleanLike = boolean | 0 | 1;

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3V0aWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFR5cGU8VD4gPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG5leHBvcnQgdHlwZSBCb29sZWFuTGlrZSA9IGJvb2xlYW4gfCAwIHwgMTtcblxuZXhwb3J0IHR5cGUgTW9uZ29JZCA9IHtcbiAgdG9IZXhTdHJpbmc6ICgpID0+IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNjYWxhciA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBiaWdpbnQgfCBTeW1ib2wgfCBEYXRlIHwgUmVnRXhwIHwgQnVmZmVyIHwgTW9uZ29JZDtcblxuZXhwb3J0IHR5cGUgRXhwYW5kU2NhbGFyPFQ+ID0gbnVsbCB8IChUIGV4dGVuZHMgRGF0ZSA/IERhdGUgfCBzdHJpbmcgOiBUKTtcblxuZXhwb3J0IHR5cGUgV3JpdGFibGU8VD4gPSB7IC1yZWFkb25seSBbSyBpbiBrZXlvZiBUXTogVFtLXSB9O1xuXG5leHBvcnQgdHlwZSBVbnBhY2tlZDxUPiA9IFQgZXh0ZW5kcyAoaW5mZXIgVSlbXSA/IFUgOiBUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBpbmZlciBVID8gVSA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFU+ID8gVSA6IFQ7XG4iXX0=

@@ -9,3 +9,3 @@ import { EntityMeta, QueryProject, CascadeType, RelationKey, FieldOptions, QueryRaw, QuerySort, QuerySortMap, QueryRawFnOptions, QueryFilter, QueryFilterMap, OnFieldCallback } from '../type/index.js';

export declare function getPersistables<E>(meta: EntityMeta<E>, payload: E | E[], callbackKey: CallbackKey): E[];
export declare function getFieldCallbackValue(val: OnFieldCallback): import("../type/utility").Scalar | QueryRaw;
export declare function getFieldCallbackValue(val: OnFieldCallback): import("../type/utility.js").Scalar | QueryRaw;
export declare function getPersistableRelations<E>(meta: EntityMeta<E>, payload: E, action: CascadeType): RelationKey<E>[];

@@ -12,0 +12,0 @@ export declare function isCascadable(action: CascadeType, configuration?: boolean | CascadeType): boolean;

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getQueryFilterAsMap = exports.augmentFilter = exports.buildSortMap = exports.isProjectingRelations = exports.getProjectRelationKeys = exports.isCascadable = exports.getPersistableRelations = exports.getFieldCallbackValue = exports.getPersistables = exports.getPersistable = exports.getRawValue = void 0;
const util_1 = require("../util");
const index_js_1 = require("../type/index.js");
function getRawValue(opts) {
import { getKeys } from '../util/index.js';
import { QueryRaw, } from '../type/index.js';
export function getRawValue(opts) {
const { value, prefix = '', dialect, autoPrefixAlias } = opts;

@@ -17,10 +14,8 @@ const val = typeof value.value === 'function' ? value.value(opts) : prefix + value.value;

}
exports.getRawValue = getRawValue;
function getPersistable(meta, payload, callbackKey) {
export function getPersistable(meta, payload, callbackKey) {
return getPersistables(meta, payload, callbackKey)[0];
}
exports.getPersistable = getPersistable;
function getPersistables(meta, payload, callbackKey) {
export function getPersistables(meta, payload, callbackKey) {
const payloads = fillOnFields(meta, payload, callbackKey);
const persistableKeys = (0, util_1.getKeys)(payloads[0]).filter((key) => meta.fields[key]);
const persistableKeys = getKeys(payloads[0]).filter((key) => meta.fields[key]);
return payloads.map((it) => persistableKeys.reduce((acc, key) => {

@@ -31,10 +26,8 @@ acc[key] = it[key];

}
exports.getPersistables = getPersistables;
function getFieldCallbackValue(val) {
export function getFieldCallbackValue(val) {
return typeof val === 'function' ? val() : val;
}
exports.getFieldCallbackValue = getFieldCallbackValue;
function fillOnFields(meta, payload, callbackKey) {
const payloads = Array.isArray(payload) ? payload : [payload];
const keys = (0, util_1.getKeys)(meta.fields).filter((key) => meta.fields[key][callbackKey]);
const keys = getKeys(meta.fields).filter((key) => meta.fields[key][callbackKey]);
return payloads.map((it) => {

@@ -49,4 +42,4 @@ for (const key of keys) {

}
function getPersistableRelations(meta, payload, action) {
const keys = (0, util_1.getKeys)(payload);
export function getPersistableRelations(meta, payload, action) {
const keys = getKeys(payload);
return keys.filter((key) => {

@@ -57,4 +50,3 @@ const relOpts = meta.relations[key];

}
exports.getPersistableRelations = getPersistableRelations;
function isCascadable(action, configuration) {
export function isCascadable(action, configuration) {
if (typeof configuration === 'boolean') {

@@ -65,13 +57,10 @@ return configuration;

}
exports.isCascadable = isCascadable;
function getProjectRelationKeys(meta, project) {
export function getProjectRelationKeys(meta, project) {
const keys = getProjectKeys(project);
return keys.filter((key) => meta.relations[key]);
}
exports.getProjectRelationKeys = getProjectRelationKeys;
function isProjectingRelations(meta, project) {
export function isProjectingRelations(meta, project) {
const keys = getProjectKeys(project);
return keys.some((key) => meta.relations[key]);
}
exports.isProjectingRelations = isProjectingRelations;
function getProjectKeys(project) {

@@ -81,5 +70,5 @@ if (Array.isArray(project)) {

}
return (0, util_1.getKeys)(project).filter((key) => project[key]);
return getKeys(project).filter((key) => project[key]);
}
function buildSortMap(sort) {
export function buildSortMap(sort) {
if (Array.isArray(sort)) {

@@ -98,4 +87,3 @@ return sort.reduce((acc, it) => {

}
exports.buildSortMap = buildSortMap;
function augmentFilter(meta, target = {}, source = {}) {
export function augmentFilter(meta, target = {}, source = {}) {
const targetComparison = getQueryFilterAsMap(meta, target);

@@ -108,5 +96,4 @@ const sourceComparison = getQueryFilterAsMap(meta, source);

}
exports.augmentFilter = augmentFilter;
function getQueryFilterAsMap(meta, filter = {}) {
if (filter instanceof index_js_1.QueryRaw) {
export function getQueryFilterAsMap(meta, filter = {}) {
if (filter instanceof QueryRaw) {
return { $and: [filter] };

@@ -121,3 +108,2 @@ }

}
exports.getQueryFilterAsMap = getQueryFilterAsMap;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbGVjdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZGlhbGVjdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtDQUFrQztBQUNsQywrQ0FnQjBCO0FBSTFCLFNBQWdCLFdBQVcsQ0FBQyxJQUF3RTtJQUNsRyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQztJQUM5RCxNQUFNLEdBQUcsR0FBRyxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN6RixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLElBQUksS0FBSyxFQUFFO1FBQ1QsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxPQUFPLEdBQUcsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7S0FDckM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFWRCxrQ0FVQztBQUVELFNBQWdCLGNBQWMsQ0FBSSxJQUFtQixFQUFFLE9BQVUsRUFBRSxXQUF3QjtJQUN6RixPQUFPLGVBQWUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFGRCx3Q0FFQztBQUVELFNBQWdCLGVBQWUsQ0FBSSxJQUFtQixFQUFFLE9BQWdCLEVBQUUsV0FBd0I7SUFDaEcsTUFB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QUVELFNBQWdCLGFBQWEsQ0FBSSxJQUFtQixFQUFFLFNBQXlCLEVBQUUsRUFBRSxTQUF5QixFQUFFO0lBQzVHLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELE9BQU87UUFDTCxHQUFHLGdCQUFnQjtRQUNuQixHQUFHLGdCQUFnQjtLQUNwQixDQUFDO0FBQ0osQ0FBQztBQVBELHNDQU9DO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUksSUFBbUIsRUFBRSxTQUF5QixFQUFFO0lBQ3JGLElBQUksTUFBTSxZQUFZLG1CQUFRLEVBQUU7UUFDOUIsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUF1QixDQUFDO0tBQ2hEO0lBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFRLE1BQWtCLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRTtRQUNoSCxPQUFPO1lBQ0wsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTTtTQUNHLENBQUM7S0FDeEI7SUFDRCxPQUFPLE1BQTJCLENBQUM7QUFDckMsQ0FBQztBQVZELGtEQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0S2V5cyB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHtcbiAgRW50aXR5TWV0YSxcbiAgRmllbGRLZXksXG4gIFF1ZXJ5UHJvamVjdCxcbiAgQ2FzY2FkZVR5cGUsXG4gIFJlbGF0aW9uS2V5LFxuICBGaWVsZE9wdGlvbnMsXG4gIEtleSxcbiAgUXVlcnlSYXcsXG4gIFF1ZXJ5U29ydCxcbiAgUXVlcnlTb3J0TWFwLFxuICBRdWVyeVJhd0ZuT3B0aW9ucyxcbiAgUXVlcnlGaWx0ZXIsXG4gIFF1ZXJ5RmlsdGVyTWFwLFxuICBPbkZpZWxkQ2FsbGJhY2ssXG4gIE1vbmdvSWQsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG50eXBlIENhbGxiYWNrS2V5ID0ga2V5b2YgUGljazxGaWVsZE9wdGlvbnMsICdvbkluc2VydCcgfCAnb25VcGRhdGUnIHwgJ29uRGVsZXRlJz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYXdWYWx1ZShvcHRzOiBRdWVyeVJhd0ZuT3B0aW9ucyAmIHsgdmFsdWU6IFF1ZXJ5UmF3OyBhdXRvUHJlZml4QWxpYXM/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgeyB2YWx1ZSwgcHJlZml4ID0gJycsIGRpYWxlY3QsIGF1dG9QcmVmaXhBbGlhcyB9ID0gb3B0cztcbiAgY29uc3QgdmFsID0gdHlwZW9mIHZhbHVlLnZhbHVlID09PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWUob3B0cykgOiBwcmVmaXggKyB2YWx1ZS52YWx1ZTtcbiAgY29uc3QgYWxpYXMgPSB2YWx1ZS5hbGlhcztcbiAgaWYgKGFsaWFzKSB7XG4gICAgY29uc3QgZnVsbEFsaWFzID0gYXV0b1ByZWZpeEFsaWFzID8gcHJlZml4ICsgYWxpYXMgOiBhbGlhcztcbiAgICBjb25zdCBlc2NhcGVkRnVsbEFsaWFzID0gZGlhbGVjdC5lc2NhcGVJZChmdWxsQWxpYXMsIHRydWUpO1xuICAgIHJldHVybiBgJHt2YWx9ICR7ZXNjYXBlZEZ1bGxBbGlhc31gO1xuICB9XG4gIHJldHVybiB2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQZXJzaXN0YWJsZTxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCBwYXlsb2FkOiBFLCBjYWxsYmFja0tleTogQ2FsbGJhY2tLZXkpOiBFIHtcbiAgcmV0dXJuIGdldFBlcnNpc3RhYmxlcyhtZXRhLCBwYXlsb2FkLCBjYWxsYmFja0tleSlbMF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQZXJzaXN0YWJsZXM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcGF5bG9hZDogRSB8IEVbXSwgY2FsbGJhY2tLZXk6IENhbGxiYWNrS2V5KTogRVtdIHtcbiAgY29uc3QgcGF5bG9hZHMgPSBmaWxsT25GaWVsZHMobWV0YSwgcGF5bG9hZCwgY2FsbGJhY2tLZXkpO1xuICBjb25zdCBwZXJzaXN0YWJsZUtleXMgPSBnZXRLZXlzKHBheWxvYWRzWzBdKS5maWx0ZXIoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XSkgYXMgRmllbGRLZXk8RT5bXTtcbiAgcmV0dXJuIHBheWxvYWRzLm1hcCgoaXQpID0+XG4gICAgcGVyc2lzdGFibGVLZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGFjY1trZXldID0gaXRba2V5XTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgRSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkQ2FsbGJhY2tWYWx1ZSh2YWw6IE9uRmllbGRDYWxsYmFjaykge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJyA/IHZhbCgpIDogdmFsO1xufVxuXG5mdW5jdGlvbiBmaWxsT25GaWVsZHM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcGF5bG9hZDogRSB8IEVbXSwgY2FsbGJhY2tLZXk6IENhbGxiYWNrS2V5KTogRVtdIHtcbiAgY29uc3QgcGF5bG9hZHMgPSBBcnJheS5pc0FycmF5KHBheWxvYWQpID8gcGF5bG9hZCA6IFtwYXlsb2FkXTtcbiAgY29uc3Qga2V5cyA9IGdldEtleXMobWV0YS5maWVsZHMpLmZpbHRlcigoa2V5KSA9PiBtZXRhLmZpZWxkc1trZXldW2NhbGxiYWNrS2V5XSk7XG4gIHJldHVybiBwYXlsb2Fkcy5tYXAoKGl0KSA9PiB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgaWYgKGl0W2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpdFtrZXldID0gZ2V0RmllbGRDYWxsYmFja1ZhbHVlKG1ldGEuZmllbGRzW2tleV1bY2FsbGJhY2tLZXldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGl0O1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBlcnNpc3RhYmxlUmVsYXRpb25zPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIHBheWxvYWQ6IEUsIGFjdGlvbjogQ2FzY2FkZVR5cGUpOiBSZWxhdGlvbktleTxFPltdIHtcbiAgY29uc3Qga2V5cyA9IGdldEtleXMocGF5bG9hZCk7XG4gIHJldHVybiBrZXlzLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW2tleSBhcyBSZWxhdGlvbktleTxFPl07XG4gICAgcmV0dXJuIHJlbE9wdHMgJiYgaXNDYXNjYWRhYmxlKGFjdGlvbiwgcmVsT3B0cy5jYXNjYWRlKTtcbiAgfSkgYXMgUmVsYXRpb25LZXk8RT5bXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FzY2FkYWJsZShhY3Rpb246IENhc2NhZGVUeXBlLCBjb25maWd1cmF0aW9uPzogYm9vbGVhbiB8IENhc2NhZGVUeXBlKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgY29uZmlndXJhdGlvbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XG4gIH1cbiAgcmV0dXJuIGNvbmZpZ3VyYXRpb24gPT09IGFjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RSZWxhdGlvbktleXM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogUmVsYXRpb25LZXk8RT5bXSB7XG4gIGNvbnN0IGtleXMgPSBnZXRQcm9qZWN0S2V5cyhwcm9qZWN0KTtcbiAgcmV0dXJuIGtleXMuZmlsdGVyKChrZXkpID0+IG1ldGEucmVsYXRpb25zW2tleSBhcyBSZWxhdGlvbktleTxFPl0pIGFzIFJlbGF0aW9uS2V5PEU+W107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2plY3RpbmdSZWxhdGlvbnM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGtleXMgPSBnZXRQcm9qZWN0S2V5cyhwcm9qZWN0KTtcbiAgcmV0dXJuIGtleXMuc29tZSgoa2V5KSA9PiBtZXRhLnJlbGF0aW9uc1trZXkgYXMgUmVsYXRpb25LZXk8RT5dKTtcbn1cblxuZnVuY3Rpb24gZ2V0UHJvamVjdEtleXM8RT4ocHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogS2V5PEU+W10ge1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9qZWN0KSkge1xuICAgIHJldHVybiBwcm9qZWN0IGFzIEtleTxFPltdO1xuICB9XG4gIHJldHVybiBnZXRLZXlzKHByb2plY3QpLmZpbHRlcigoa2V5KSA9PiBwcm9qZWN0W2tleV0pIGFzIEtleTxFPltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTb3J0TWFwPEU+KHNvcnQ6IFF1ZXJ5U29ydDxFPik6IFF1ZXJ5U29ydE1hcDxFPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHNvcnQpKSB7XG4gICAgcmV0dXJuIHNvcnQucmVkdWNlKChhY2MsIGl0KSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpdCkpIHtcbiAgICAgICAgYWNjW2l0WzBdXSA9IGl0WzFdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWNjW2l0LmZpZWxkXSA9IGl0LnNvcnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFF1ZXJ5U29ydE1hcDxFPik7XG4gIH1cbiAgcmV0dXJuIHNvcnQgYXMgUXVlcnlTb3J0TWFwPEU+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXVnbWVudEZpbHRlcjxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCB0YXJnZXQ6IFF1ZXJ5RmlsdGVyPEU+ID0ge30sIHNvdXJjZTogUXVlcnlGaWx0ZXI8RT4gPSB7fSk6IFF1ZXJ5RmlsdGVyPEU+IHtcbiAgY29uc3QgdGFyZ2V0Q29tcGFyaXNvbiA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgdGFyZ2V0KTtcbiAgY29uc3Qgc291cmNlQ29tcGFyaXNvbiA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgc291cmNlKTtcbiAgcmV0dXJuIHtcbiAgICAuLi50YXJnZXRDb21wYXJpc29uLFxuICAgIC4uLnNvdXJjZUNvbXBhcmlzb24sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyeUZpbHRlckFzTWFwPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIGZpbHRlcjogUXVlcnlGaWx0ZXI8RT4gPSB7fSk6IFF1ZXJ5RmlsdGVyTWFwPEU+IHtcbiAgaWYgKGZpbHRlciBpbnN0YW5jZW9mIFF1ZXJ5UmF3KSB7XG4gICAgcmV0dXJuIHsgJGFuZDogW2ZpbHRlcl0gfSBhcyBRdWVyeUZpbHRlck1hcDxFPjtcbiAgfVxuICBpZiAodHlwZW9mIGZpbHRlciAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShmaWx0ZXIpIHx8IHR5cGVvZiAoZmlsdGVyIGFzIE1vbmdvSWQpLnRvSGV4U3RyaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFttZXRhLmlkXTogZmlsdGVyLFxuICAgIH0gYXMgUXVlcnlGaWx0ZXJNYXA8RT47XG4gIH1cbiAgcmV0dXJuIGZpbHRlciBhcyBRdWVyeUZpbHRlck1hcDxFPjtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbGVjdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZGlhbGVjdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBUUwsUUFBUSxHQVFULE1BQU0sa0JBQWtCLENBQUM7QUFJMUIsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUF3RTtJQUNsRyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQztJQUM5RCxNQUFNLEdBQUcsR0FBRyxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN6RixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLElBQUksS0FBSyxFQUFFO1FBQ1QsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxPQUFPLEdBQUcsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7S0FDckM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFJLElBQW1CLEVBQUUsT0FBVSxFQUFFLFdBQXdCO0lBQ3pGLE9BQU8sZUFBZSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sVUFBVSxl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bUIsRUFBRSxTQUF5QixFQUFFLEVBQUUsU0FBeUIsRUFBRTtJQUM1RyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxPQUFPO1FBQ0wsR0FBRyxnQkFBZ0I7UUFDbkIsR0FBRyxnQkFBZ0I7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUksSUFBbUIsRUFBRSxTQUF5QixFQUFFO0lBQ3JGLElBQUksTUFBTSxZQUFZLFFBQVEsRUFBRTtRQUM5QixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQXVCLENBQUM7S0FDaEQ7SUFDRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQVEsTUFBa0IsQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUFFO1FBQ2hILE9BQU87WUFDTCxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNO1NBQ0csQ0FBQztLQUN4QjtJQUNELE9BQU8sTUFBMkIsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0S2V5cyB9IGZyb20gJy4uL3V0aWwvaW5kZXguanMnO1xuaW1wb3J0IHtcbiAgRW50aXR5TWV0YSxcbiAgRmllbGRLZXksXG4gIFF1ZXJ5UHJvamVjdCxcbiAgQ2FzY2FkZVR5cGUsXG4gIFJlbGF0aW9uS2V5LFxuICBGaWVsZE9wdGlvbnMsXG4gIEtleSxcbiAgUXVlcnlSYXcsXG4gIFF1ZXJ5U29ydCxcbiAgUXVlcnlTb3J0TWFwLFxuICBRdWVyeVJhd0ZuT3B0aW9ucyxcbiAgUXVlcnlGaWx0ZXIsXG4gIFF1ZXJ5RmlsdGVyTWFwLFxuICBPbkZpZWxkQ2FsbGJhY2ssXG4gIE1vbmdvSWQsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG50eXBlIENhbGxiYWNrS2V5ID0ga2V5b2YgUGljazxGaWVsZE9wdGlvbnMsICdvbkluc2VydCcgfCAnb25VcGRhdGUnIHwgJ29uRGVsZXRlJz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYXdWYWx1ZShvcHRzOiBRdWVyeVJhd0ZuT3B0aW9ucyAmIHsgdmFsdWU6IFF1ZXJ5UmF3OyBhdXRvUHJlZml4QWxpYXM/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgeyB2YWx1ZSwgcHJlZml4ID0gJycsIGRpYWxlY3QsIGF1dG9QcmVmaXhBbGlhcyB9ID0gb3B0cztcbiAgY29uc3QgdmFsID0gdHlwZW9mIHZhbHVlLnZhbHVlID09PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWUob3B0cykgOiBwcmVmaXggKyB2YWx1ZS52YWx1ZTtcbiAgY29uc3QgYWxpYXMgPSB2YWx1ZS5hbGlhcztcbiAgaWYgKGFsaWFzKSB7XG4gICAgY29uc3QgZnVsbEFsaWFzID0gYXV0b1ByZWZpeEFsaWFzID8gcHJlZml4ICsgYWxpYXMgOiBhbGlhcztcbiAgICBjb25zdCBlc2NhcGVkRnVsbEFsaWFzID0gZGlhbGVjdC5lc2NhcGVJZChmdWxsQWxpYXMsIHRydWUpO1xuICAgIHJldHVybiBgJHt2YWx9ICR7ZXNjYXBlZEZ1bGxBbGlhc31gO1xuICB9XG4gIHJldHVybiB2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQZXJzaXN0YWJsZTxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCBwYXlsb2FkOiBFLCBjYWxsYmFja0tleTogQ2FsbGJhY2tLZXkpOiBFIHtcbiAgcmV0dXJuIGdldFBlcnNpc3RhYmxlcyhtZXRhLCBwYXlsb2FkLCBjYWxsYmFja0tleSlbMF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQZXJzaXN0YWJsZXM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcGF5bG9hZDogRSB8IEVbXSwgY2FsbGJhY2tLZXk6IENhbGxiYWNrS2V5KTogRVtdIHtcbiAgY29uc3QgcGF5bG9hZHMgPSBmaWxsT25GaWVsZHMobWV0YSwgcGF5bG9hZCwgY2FsbGJhY2tLZXkpO1xuICBjb25zdCBwZXJzaXN0YWJsZUtleXMgPSBnZXRLZXlzKHBheWxvYWRzWzBdKS5maWx0ZXIoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XSkgYXMgRmllbGRLZXk8RT5bXTtcbiAgcmV0dXJuIHBheWxvYWRzLm1hcCgoaXQpID0+XG4gICAgcGVyc2lzdGFibGVLZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGFjY1trZXldID0gaXRba2V5XTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgRSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkQ2FsbGJhY2tWYWx1ZSh2YWw6IE9uRmllbGRDYWxsYmFjaykge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJyA/IHZhbCgpIDogdmFsO1xufVxuXG5mdW5jdGlvbiBmaWxsT25GaWVsZHM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcGF5bG9hZDogRSB8IEVbXSwgY2FsbGJhY2tLZXk6IENhbGxiYWNrS2V5KTogRVtdIHtcbiAgY29uc3QgcGF5bG9hZHMgPSBBcnJheS5pc0FycmF5KHBheWxvYWQpID8gcGF5bG9hZCA6IFtwYXlsb2FkXTtcbiAgY29uc3Qga2V5cyA9IGdldEtleXMobWV0YS5maWVsZHMpLmZpbHRlcigoa2V5KSA9PiBtZXRhLmZpZWxkc1trZXldW2NhbGxiYWNrS2V5XSk7XG4gIHJldHVybiBwYXlsb2Fkcy5tYXAoKGl0KSA9PiB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgaWYgKGl0W2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpdFtrZXldID0gZ2V0RmllbGRDYWxsYmFja1ZhbHVlKG1ldGEuZmllbGRzW2tleV1bY2FsbGJhY2tLZXldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGl0O1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBlcnNpc3RhYmxlUmVsYXRpb25zPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIHBheWxvYWQ6IEUsIGFjdGlvbjogQ2FzY2FkZVR5cGUpOiBSZWxhdGlvbktleTxFPltdIHtcbiAgY29uc3Qga2V5cyA9IGdldEtleXMocGF5bG9hZCk7XG4gIHJldHVybiBrZXlzLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW2tleSBhcyBSZWxhdGlvbktleTxFPl07XG4gICAgcmV0dXJuIHJlbE9wdHMgJiYgaXNDYXNjYWRhYmxlKGFjdGlvbiwgcmVsT3B0cy5jYXNjYWRlKTtcbiAgfSkgYXMgUmVsYXRpb25LZXk8RT5bXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FzY2FkYWJsZShhY3Rpb246IENhc2NhZGVUeXBlLCBjb25maWd1cmF0aW9uPzogYm9vbGVhbiB8IENhc2NhZGVUeXBlKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgY29uZmlndXJhdGlvbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XG4gIH1cbiAgcmV0dXJuIGNvbmZpZ3VyYXRpb24gPT09IGFjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RSZWxhdGlvbktleXM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogUmVsYXRpb25LZXk8RT5bXSB7XG4gIGNvbnN0IGtleXMgPSBnZXRQcm9qZWN0S2V5cyhwcm9qZWN0KTtcbiAgcmV0dXJuIGtleXMuZmlsdGVyKChrZXkpID0+IG1ldGEucmVsYXRpb25zW2tleSBhcyBSZWxhdGlvbktleTxFPl0pIGFzIFJlbGF0aW9uS2V5PEU+W107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2plY3RpbmdSZWxhdGlvbnM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGtleXMgPSBnZXRQcm9qZWN0S2V5cyhwcm9qZWN0KTtcbiAgcmV0dXJuIGtleXMuc29tZSgoa2V5KSA9PiBtZXRhLnJlbGF0aW9uc1trZXkgYXMgUmVsYXRpb25LZXk8RT5dKTtcbn1cblxuZnVuY3Rpb24gZ2V0UHJvamVjdEtleXM8RT4ocHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogS2V5PEU+W10ge1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9qZWN0KSkge1xuICAgIHJldHVybiBwcm9qZWN0IGFzIEtleTxFPltdO1xuICB9XG4gIHJldHVybiBnZXRLZXlzKHByb2plY3QpLmZpbHRlcigoa2V5KSA9PiBwcm9qZWN0W2tleV0pIGFzIEtleTxFPltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTb3J0TWFwPEU+KHNvcnQ6IFF1ZXJ5U29ydDxFPik6IFF1ZXJ5U29ydE1hcDxFPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHNvcnQpKSB7XG4gICAgcmV0dXJuIHNvcnQucmVkdWNlKChhY2MsIGl0KSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpdCkpIHtcbiAgICAgICAgYWNjW2l0WzBdXSA9IGl0WzFdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWNjW2l0LmZpZWxkXSA9IGl0LnNvcnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFF1ZXJ5U29ydE1hcDxFPik7XG4gIH1cbiAgcmV0dXJuIHNvcnQgYXMgUXVlcnlTb3J0TWFwPEU+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXVnbWVudEZpbHRlcjxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCB0YXJnZXQ6IFF1ZXJ5RmlsdGVyPEU+ID0ge30sIHNvdXJjZTogUXVlcnlGaWx0ZXI8RT4gPSB7fSk6IFF1ZXJ5RmlsdGVyPEU+IHtcbiAgY29uc3QgdGFyZ2V0Q29tcGFyaXNvbiA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgdGFyZ2V0KTtcbiAgY29uc3Qgc291cmNlQ29tcGFyaXNvbiA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgc291cmNlKTtcbiAgcmV0dXJuIHtcbiAgICAuLi50YXJnZXRDb21wYXJpc29uLFxuICAgIC4uLnNvdXJjZUNvbXBhcmlzb24sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyeUZpbHRlckFzTWFwPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIGZpbHRlcjogUXVlcnlGaWx0ZXI8RT4gPSB7fSk6IFF1ZXJ5RmlsdGVyTWFwPEU+IHtcbiAgaWYgKGZpbHRlciBpbnN0YW5jZW9mIFF1ZXJ5UmF3KSB7XG4gICAgcmV0dXJuIHsgJGFuZDogW2ZpbHRlcl0gfSBhcyBRdWVyeUZpbHRlck1hcDxFPjtcbiAgfVxuICBpZiAodHlwZW9mIGZpbHRlciAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShmaWx0ZXIpIHx8IHR5cGVvZiAoZmlsdGVyIGFzIE1vbmdvSWQpLnRvSGV4U3RyaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFttZXRhLmlkXTogZmlsdGVyLFxuICAgIH0gYXMgUXVlcnlGaWx0ZXJNYXA8RT47XG4gIH1cbiAgcmV0dXJuIGZpbHRlciBhcyBRdWVyeUZpbHRlck1hcDxFPjtcbn1cbiJdfQ==

@@ -1,9 +0,6 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./string.util.js"), exports);
tslib_1.__exportStar(require("./object.util.js"), exports);
tslib_1.__exportStar(require("./dialect.util.js"), exports);
tslib_1.__exportStar(require("./sql.util.js"), exports);
tslib_1.__exportStar(require("./raw.js"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBaUM7QUFDakMsMkRBQWlDO0FBQ2pDLDREQUFrQztBQUNsQyx3REFBOEI7QUFDOUIsbURBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdHJpbmcudXRpbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdC51dGlsLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGlhbGVjdC51dGlsLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc3FsLnV0aWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yYXcuanMnO1xuIl19
export * from './string.util.js';
export * from './object.util.js';
export * from './dialect.util.js';
export * from './sql.util.js';
export * from './raw.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RyaW5nLnV0aWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3QudXRpbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxlY3QudXRpbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NxbC51dGlsLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmF3LmpzJztcbiJdfQ==

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getKeys = exports.hasKeys = exports.clone = void 0;
function clone(value) {
export function clone(value) {
if (typeof value !== 'object' || value === null) {

@@ -13,11 +10,8 @@ return value;

}
exports.clone = clone;
function hasKeys(obj) {
export function hasKeys(obj) {
return getKeys(obj).length > 0;
}
exports.hasKeys = hasKeys;
function getKeys(obj) {
export function getKeys(obj) {
return obj ? Object.keys(obj) : [];
}
exports.getKeys = getKeys;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9vYmplY3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixLQUFLLENBQUksS0FBUTtJQUMvQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1FBQy9DLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDeEIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQWlCLENBQUM7S0FDckQ7SUFDRCxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUN0QixDQUFDO0FBUkQsc0JBUUM7QUFFRCxTQUFnQixPQUFPLENBQUksR0FBTTtJQUMvQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFGRCwwQkFFQztBQUVELFNBQWdCLE9BQU8sQ0FBSSxHQUFNO0lBQy9CLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDckMsQ0FBQztBQUZELDBCQUVDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNsb25lPFQ+KHZhbHVlOiBUKTogVCB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0KSA9PiBjbG9uZShpdCkpIGFzIHVua25vd24gYXMgVDtcbiAgfVxuICByZXR1cm4geyAuLi52YWx1ZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzS2V5czxUPihvYmo6IFQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldEtleXMob2JqKS5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5czxUPihvYmo6IFQpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBvYmogPyBPYmplY3Qua2V5cyhvYmopIDogW107XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9vYmplY3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsS0FBSyxDQUFJLEtBQVE7SUFDL0IsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtRQUMvQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFpQixDQUFDO0tBQ3JEO0lBQ0QsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUksR0FBTTtJQUMvQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFJLEdBQU07SUFDL0IsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNsb25lPFQ+KHZhbHVlOiBUKTogVCB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0KSA9PiBjbG9uZShpdCkpIGFzIHVua25vd24gYXMgVDtcbiAgfVxuICByZXR1cm4geyAuLi52YWx1ZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzS2V5czxUPihvYmo6IFQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldEtleXMob2JqKS5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5czxUPihvYmo6IFQpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBvYmogPyBPYmplY3Qua2V5cyhvYmopIDogW107XG59XG4iXX0=

@@ -1,9 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.raw = void 0;
const index_js_1 = require("../type/index.js");
function raw(value, alias) {
return new index_js_1.QueryRaw(value, alias);
import { QueryRaw } from '../type/index.js';
export function raw(value, alias) {
return new QueryRaw(value, alias);
}
exports.raw = raw;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvcmF3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUFnRTtBQUVoRSxTQUFnQixHQUFHLENBQUMsS0FBMEIsRUFBRSxLQUFjO0lBQzVELE9BQU8sSUFBSSxtQkFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRkQsa0JBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeVJhdywgUXVlcnlSYXdGbiwgU2NhbGFyIH0gZnJvbSAnLi4vdHlwZS9pbmRleC5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByYXcodmFsdWU6IFNjYWxhciB8IFF1ZXJ5UmF3Rm4sIGFsaWFzPzogc3RyaW5nKTogUXVlcnlSYXcge1xuICByZXR1cm4gbmV3IFF1ZXJ5UmF3KHZhbHVlLCBhbGlhcyk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvcmF3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXNCLE1BQU0sa0JBQWtCLENBQUM7QUFFaEUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEtBQWM7SUFDNUQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UmF3LCBRdWVyeVJhd0ZuLCBTY2FsYXIgfSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJhdyh2YWx1ZTogU2NhbGFyIHwgUXVlcnlSYXdGbiwgYWxpYXM/OiBzdHJpbmcpOiBRdWVyeVJhdyB7XG4gIHJldHVybiBuZXcgUXVlcnlSYXcodmFsdWUsIGFsaWFzKTtcbn1cbiJdfQ==

@@ -1,9 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.unflatObjects = exports.flatObject = void 0;
const object_util_js_1 = require("./object.util.js");
function flatObject(obj, pre) {
return (0, object_util_js_1.getKeys)(obj).reduce((acc, key) => flatObjectEntry(acc, key, obj[key], typeof obj[key] === 'object' ? '' : pre), {});
import { hasKeys, getKeys } from './object.util.js';
export function flatObject(obj, pre) {
return getKeys(obj).reduce((acc, key) => flatObjectEntry(acc, key, obj[key], typeof obj[key] === 'object' ? '' : pre), {});
}
exports.flatObject = flatObject;
function flatObjectEntry(map, key, val, pre) {

@@ -15,3 +11,3 @@ const prefix = pre ? `${pre}.${key}` : key;

}
function unflatObjects(objects) {
export function unflatObjects(objects) {
if (!Array.isArray(objects) || !objects.length) {

@@ -21,3 +17,3 @@ return objects;

const attrsPaths = obtainAttrsPaths(objects[0]);
if (!(0, object_util_js_1.hasKeys)(attrsPaths)) {
if (!hasKeys(attrsPaths)) {
return objects;

@@ -48,5 +44,4 @@ }

}
exports.unflatObjects = unflatObjects;
function obtainAttrsPaths(row) {
return (0, object_util_js_1.getKeys)(row).reduce((acc, col) => {
return getKeys(row).reduce((acc, col) => {
if (col.includes('.')) {

@@ -58,2 +53,2 @@ acc[col] = col.split('.');

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zcWwudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBb0Q7QUFFcEQsU0FBZ0IsVUFBVSxDQUFJLEdBQU0sRUFBRSxHQUFZO0lBQ2hELE9BQU8sSUFBQSx3QkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBTyxDQUFDLENBQUM7QUFDbEksQ0FBQztBQUZELGdDQUVDO0FBRUQsU0FBUyxlQUFlLENBQUksR0FBTSxFQUFFLEdBQVcsRUFBRSxHQUFRLEVBQUUsR0FBWTtJQUNyRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDM0MsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUM7UUFDNUYsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFJLE9BQVk7SUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQzlDLE9BQU8sT0FBTyxDQUFDO0tBQ2hCO0lBRUQsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEQsSUFBSSxDQUFDLElBQUEsd0JBQU8sRUFBQyxVQUFVLENBQUMsRUFBRTtRQUN4QixPQUFPLE9BQU8sQ0FBQztLQUNoQjtJQUVELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLEVBQU8sQ0FBQztRQUVwQixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUNyQixJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ3JCLFNBQVM7YUFDVjtZQUNELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxJQUFJLFFBQVEsRUFBRTtnQkFDWixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDdkQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7d0JBQ2hDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7cUJBQ2Y7b0JBQ0QsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDUixNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0wsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQjtTQUNGO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFsQ0Qsc0NBa0NDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBSSxHQUFNO0lBQ2pDLE9BQU8sSUFBQSx3QkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN0QyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUErQixDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhc0tleXMsIGdldEtleXMgfSBmcm9tICcuL29iamVjdC51dGlsLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZsYXRPYmplY3Q8RT4ob2JqOiBFLCBwcmU/OiBzdHJpbmcpOiBFIHtcbiAgcmV0dXJuIGdldEtleXMob2JqKS5yZWR1Y2UoKGFjYywga2V5KSA9PiBmbGF0T2JqZWN0RW50cnkoYWNjLCBrZXksIG9ialtrZXldLCB0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnID8gJycgOiBwcmUpLCB7fSBhcyBFKTtcbn1cblxuZnVuY3Rpb24gZmxhdE9iamVjdEVudHJ5PEU+KG1hcDogRSwga2V5OiBzdHJpbmcsIHZhbDogYW55LCBwcmU/OiBzdHJpbmcpOiBFIHtcbiAgY29uc3QgcHJlZml4ID0gcHJlID8gYCR7cHJlfS4ke2tleX1gIDoga2V5O1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ29iamVjdCdcbiAgICA/IE9iamVjdC5rZXlzKHZhbCkucmVkdWNlKChhY2MsIHByb3ApID0+IGZsYXRPYmplY3RFbnRyeShhY2MsIHByb3AsIHZhbFtwcm9wXSwgcHJlZml4KSwgbWFwKVxuICAgIDogeyAuLi5tYXAsIFtwcmVmaXhdOiB2YWwgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuZmxhdE9iamVjdHM8VD4ob2JqZWN0czogVFtdKTogVFtdIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG9iamVjdHMpIHx8ICFvYmplY3RzLmxlbmd0aCkge1xuICAgIHJldHVybiBvYmplY3RzO1xuICB9XG5cbiAgY29uc3QgYXR0cnNQYXRocyA9IG9idGFpbkF0dHJzUGF0aHMob2JqZWN0c1swXSk7XG5cbiAgaWYgKCFoYXNLZXlzKGF0dHJzUGF0aHMpKSB7XG4gICAgcmV0dXJuIG9iamVjdHM7XG4gIH1cblxuICByZXR1cm4gb2JqZWN0cy5tYXAoKHJvdykgPT4ge1xuICAgIGNvbnN0IGR0byA9IHt9IGFzIFQ7XG5cbiAgICBmb3IgKGNvbnN0IGNvbCBpbiByb3cpIHtcbiAgICAgIGlmIChyb3dbY29sXSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGF0dHJQYXRoID0gYXR0cnNQYXRoc1tjb2xdO1xuICAgICAgaWYgKGF0dHJQYXRoKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGF0dHJQYXRoLnNsaWNlKDAsIC0xKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhY2Nba2V5XSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGFjY1trZXldID0ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2Nba2V5XTtcbiAgICAgICAgfSwgZHRvKTtcbiAgICAgICAgdGFyZ2V0W2F0dHJQYXRoW2F0dHJQYXRoLmxlbmd0aCAtIDFdXSA9IHJvd1tjb2xdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHRvW2NvbF0gPSByb3dbY29sXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZHRvO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gb2J0YWluQXR0cnNQYXRoczxUPihyb3c6IFQpIHtcbiAgcmV0dXJuIGdldEtleXMocm93KS5yZWR1Y2UoKGFjYywgY29sKSA9PiB7XG4gICAgaWYgKGNvbC5pbmNsdWRlcygnLicpKSB7XG4gICAgICBhY2NbY29sXSA9IGNvbC5zcGxpdCgnLicpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyB7IFtrOiBzdHJpbmddOiBzdHJpbmdbXSB9KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zcWwudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE1BQU0sVUFBVSxVQUFVLENBQUksR0FBTSxFQUFFLEdBQVk7SUFDaEQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFPLENBQUMsQ0FBQztBQUNsSSxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUksR0FBTSxFQUFFLEdBQVcsRUFBRSxHQUFRLEVBQUUsR0FBWTtJQUNyRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDM0MsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUM7UUFDNUYsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBSSxPQUFZO0lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUM5QyxPQUFPLE9BQU8sQ0FBQztLQUNoQjtJQUVELE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWhELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDeEIsT0FBTyxPQUFPLENBQUM7S0FDaEI7SUFFRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN6QixNQUFNLEdBQUcsR0FBRyxFQUFPLENBQUM7UUFFcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDckIsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNyQixTQUFTO2FBQ1Y7WUFDRCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakMsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7b0JBQ3ZELElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO3dCQUNoQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO3FCQUNmO29CQUNELE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ1IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNMLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDckI7U0FDRjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBSSxHQUFNO0lBQ2pDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN0QyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUErQixDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhc0tleXMsIGdldEtleXMgfSBmcm9tICcuL29iamVjdC51dGlsLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZsYXRPYmplY3Q8RT4ob2JqOiBFLCBwcmU/OiBzdHJpbmcpOiBFIHtcbiAgcmV0dXJuIGdldEtleXMob2JqKS5yZWR1Y2UoKGFjYywga2V5KSA9PiBmbGF0T2JqZWN0RW50cnkoYWNjLCBrZXksIG9ialtrZXldLCB0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnID8gJycgOiBwcmUpLCB7fSBhcyBFKTtcbn1cblxuZnVuY3Rpb24gZmxhdE9iamVjdEVudHJ5PEU+KG1hcDogRSwga2V5OiBzdHJpbmcsIHZhbDogYW55LCBwcmU/OiBzdHJpbmcpOiBFIHtcbiAgY29uc3QgcHJlZml4ID0gcHJlID8gYCR7cHJlfS4ke2tleX1gIDoga2V5O1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ29iamVjdCdcbiAgICA/IE9iamVjdC5rZXlzKHZhbCkucmVkdWNlKChhY2MsIHByb3ApID0+IGZsYXRPYmplY3RFbnRyeShhY2MsIHByb3AsIHZhbFtwcm9wXSwgcHJlZml4KSwgbWFwKVxuICAgIDogeyAuLi5tYXAsIFtwcmVmaXhdOiB2YWwgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuZmxhdE9iamVjdHM8VD4ob2JqZWN0czogVFtdKTogVFtdIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG9iamVjdHMpIHx8ICFvYmplY3RzLmxlbmd0aCkge1xuICAgIHJldHVybiBvYmplY3RzO1xuICB9XG5cbiAgY29uc3QgYXR0cnNQYXRocyA9IG9idGFpbkF0dHJzUGF0aHMob2JqZWN0c1swXSk7XG5cbiAgaWYgKCFoYXNLZXlzKGF0dHJzUGF0aHMpKSB7XG4gICAgcmV0dXJuIG9iamVjdHM7XG4gIH1cblxuICByZXR1cm4gb2JqZWN0cy5tYXAoKHJvdykgPT4ge1xuICAgIGNvbnN0IGR0byA9IHt9IGFzIFQ7XG5cbiAgICBmb3IgKGNvbnN0IGNvbCBpbiByb3cpIHtcbiAgICAgIGlmIChyb3dbY29sXSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGF0dHJQYXRoID0gYXR0cnNQYXRoc1tjb2xdO1xuICAgICAgaWYgKGF0dHJQYXRoKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGF0dHJQYXRoLnNsaWNlKDAsIC0xKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhY2Nba2V5XSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGFjY1trZXldID0ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2Nba2V5XTtcbiAgICAgICAgfSwgZHRvKTtcbiAgICAgICAgdGFyZ2V0W2F0dHJQYXRoW2F0dHJQYXRoLmxlbmd0aCAtIDFdXSA9IHJvd1tjb2xdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHRvW2NvbF0gPSByb3dbY29sXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZHRvO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gb2J0YWluQXR0cnNQYXRoczxUPihyb3c6IFQpIHtcbiAgcmV0dXJuIGdldEtleXMocm93KS5yZWR1Y2UoKGFjYywgY29sKSA9PiB7XG4gICAgaWYgKGNvbC5pbmNsdWRlcygnLicpKSB7XG4gICAgICBhY2NbY29sXSA9IGNvbC5zcGxpdCgnLicpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyB7IFtrOiBzdHJpbmddOiBzdHJpbmdbXSB9KTtcbn1cbiJdfQ==

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.lowerFirst = exports.upperFirst = exports.kebabCase = void 0;
function kebabCase(val) {
export function kebabCase(val) {
let resp = val.charAt(0).toLowerCase();

@@ -11,11 +8,8 @@ for (let i = 1; i < val.length; ++i) {

}
exports.kebabCase = kebabCase;
function upperFirst(text) {
export function upperFirst(text) {
return text[0].toUpperCase() + text.slice(1);
}
exports.upperFirst = upperFirst;
function lowerFirst(text) {
export function lowerFirst(text) {
return text[0].toLowerCase() + text.slice(1);
}
exports.lowerFirst = lowerFirst;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zdHJpbmcudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixTQUFTLENBQUMsR0FBVztJQUNuQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1FBQ25DLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDL0U7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFORCw4QkFNQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxJQUFZO0lBQ3JDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUZELGdDQUVDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLElBQVk7SUFDckMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRkQsZ0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24ga2ViYWJDYXNlKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHJlc3AgPSB2YWwuY2hhckF0KDApLnRvTG93ZXJDYXNlKCk7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgdmFsLmxlbmd0aDsgKytpKSB7XG4gICAgcmVzcCArPSB2YWxbaV0gPT09IHZhbFtpXS50b1VwcGVyQ2FzZSgpID8gJy0nICsgdmFsW2ldLnRvTG93ZXJDYXNlKCkgOiB2YWxbaV07XG4gIH1cbiAgcmV0dXJuIHJlc3A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cHBlckZpcnN0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0WzBdLnRvVXBwZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG93ZXJGaXJzdCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdGV4dFswXS50b0xvd2VyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zdHJpbmcudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDbkMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtRQUNuQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9FO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFZO0lBQ3JDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24ga2ViYWJDYXNlKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHJlc3AgPSB2YWwuY2hhckF0KDApLnRvTG93ZXJDYXNlKCk7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgdmFsLmxlbmd0aDsgKytpKSB7XG4gICAgcmVzcCArPSB2YWxbaV0gPT09IHZhbFtpXS50b1VwcGVyQ2FzZSgpID8gJy0nICsgdmFsW2ldLnRvTG93ZXJDYXNlKCkgOiB2YWxbaV07XG4gIH1cbiAgcmV0dXJuIHJlc3A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cHBlckZpcnN0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0WzBdLnRvVXBwZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG93ZXJGaXJzdCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdGV4dFswXS50b0xvd2VyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcbn1cbiJdfQ==
SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc