@uql/core 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -5
- package/dialect/abstractSqlDialect.js +15 -15
- package/dialect/mysqlDialect.d.ts +1 -1
- package/dialect/mysqlDialect.js +3 -3
- package/dialect/postgresDialect.js +4 -4
- package/entity/decorator/definition.js +10 -10
- package/entity/decorator/entity.d.ts +1 -1
- package/entity/decorator/entity.js +1 -1
- package/entity/decorator/field.d.ts +1 -1
- package/entity/decorator/field.js +1 -1
- package/entity/decorator/id.d.ts +1 -1
- package/entity/decorator/id.js +1 -1
- package/entity/index.d.ts +1 -1
- package/entity/index.js +2 -2
- package/options.d.ts +3 -4
- package/options.js +6 -11
- package/package.json +5 -5
- package/querier/abstractQuerier.js +18 -18
- package/querier/abstractSqlQuerier.d.ts +3 -3
- package/querier/abstractSqlQuerier.js +8 -8
- package/querier/decorator/injectQuerier.d.ts +1 -1
- package/querier/decorator/injectQuerier.js +1 -1
- package/querier/decorator/transactional.d.ts +1 -1
- package/querier/decorator/transactional.js +2 -2
- package/querier/index.d.ts +1 -1
- package/querier/index.js +2 -2
- package/repository/genericRepository.d.ts +1 -1
- package/repository/genericRepository.js +1 -1
- package/type/repository.d.ts +5 -0
- package/type/repository.js +1 -1
- package/util/dialect.util.js +6 -6
- package/util/raw.d.ts +1 -1
- package/util/raw.js +3 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EntityOptions, Type } from '../../type
|
|
1
|
+
import { EntityOptions, Type } from '../../type';
|
|
2
2
|
export declare function Entity<E>(opts?: EntityOptions): (entity: Type<E>) => void;
|
|
@@ -8,4 +8,4 @@ function Entity(opts) {
|
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
exports.Entity = Entity;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9kZWNvcmF0b3IvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUE0QztBQUU1QyxTQUFnQixNQUFNLENBQUksSUFBb0I7SUFDNUMsT0FBTyxDQUFDLE1BQWUsRUFBUSxFQUFFO1FBQy9CLElBQUEseUJBQVksRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUpELHdCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5T3B0aW9ucywgVHlwZSB9IGZyb20gJy4uLy4uL3R5cGUnO1xuaW1wb3J0IHsgZGVmaW5lRW50aXR5IH0gZnJvbSAnLi9kZWZpbml0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIEVudGl0eTxFPihvcHRzPzogRW50aXR5T3B0aW9ucykge1xuICByZXR1cm4gKGVudGl0eTogVHlwZTxFPik6IHZvaWQgPT4ge1xuICAgIGRlZmluZUVudGl0eShlbnRpdHksIG9wdHMpO1xuICB9O1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FieldOptions } from '../../type
|
|
1
|
+
import { FieldOptions } from '../../type';
|
|
2
2
|
export declare function Field<E>(opts?: FieldOptions): (target: object, key: string) => void;
|
|
@@ -9,4 +9,4 @@ function Field(opts) {
|
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
exports.Field = Field;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBMkM7QUFFM0MsU0FBZ0IsS0FBSyxDQUFJLElBQW1CO0lBQzFDLE9BQU8sQ0FBQyxNQUFjLEVBQUUsR0FBVyxFQUFRLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQXNCLENBQUM7UUFDN0MsSUFBQSx3QkFBVyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUxELHNCQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRPcHRpb25zLCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZSc7XG5pbXBvcnQgeyBkZWZpbmVGaWVsZCB9IGZyb20gJy4vZGVmaW5pdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBGaWVsZDxFPihvcHRzPzogRmllbGRPcHRpb25zKSB7XG4gIHJldHVybiAodGFyZ2V0OiBvYmplY3QsIGtleTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZW50aXR5ID0gdGFyZ2V0LmNvbnN0cnVjdG9yIGFzIFR5cGU8RT47XG4gICAgZGVmaW5lRmllbGQoZW50aXR5LCBrZXksIG9wdHMpO1xuICB9O1xufVxuIl19
|
package/entity/decorator/id.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FieldOptions } from '../../type
|
|
1
|
+
import { FieldOptions } from '../../type';
|
|
2
2
|
export declare function Id<E>(opts?: Omit<FieldOptions, 'isId'>): (target: object, key: string) => void;
|
package/entity/decorator/id.js
CHANGED
|
@@ -9,4 +9,4 @@ function Id(opts) {
|
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
exports.Id = Id;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBd0M7QUFFeEMsU0FBZ0IsRUFBRSxDQUFJLElBQWlDO0lBQ3JELE9BQU8sQ0FBQyxNQUFjLEVBQUUsR0FBVyxFQUFRLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQXNCLENBQUM7UUFDN0MsSUFBQSxxQkFBUSxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUxELGdCQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRPcHRpb25zLCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZSc7XG5pbXBvcnQgeyBkZWZpbmVJZCB9IGZyb20gJy4vZGVmaW5pdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBJZDxFPihvcHRzPzogT21pdDxGaWVsZE9wdGlvbnMsICdpc0lkJz4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBlbnRpdHkgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgVHlwZTxFPjtcbiAgICBkZWZpbmVJZChlbnRpdHksIGtleSwgb3B0cyk7XG4gIH07XG59XG4iXX0=
|
package/entity/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './decorator
|
|
1
|
+
export * from './decorator';
|
package/entity/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./decorator
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
tslib_1.__exportStar(require("./decorator"), exports);
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW50aXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9yJztcbiJdfQ==
|
package/options.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Querier, QuerierPool
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
1
|
+
import { Querier, QuerierPool } from './type';
|
|
2
|
+
export declare function setQuerierPool<T extends QuerierPool = QuerierPool>(pool: T): void;
|
|
3
|
+
export declare function getQuerierPool(): QuerierPool;
|
|
4
4
|
export declare function getQuerier(): Promise<Querier>;
|
|
5
|
-
export declare function getRepository<E>(entity: Type<E>, querier: Querier): Repository<E>;
|
package/options.js
CHANGED
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const index_1 = require("./repository/index");
|
|
3
|
+
exports.getQuerier = exports.getQuerierPool = exports.setQuerierPool = void 0;
|
|
5
4
|
let defaultPool;
|
|
6
|
-
function
|
|
5
|
+
function setQuerierPool(pool) {
|
|
7
6
|
defaultPool = pool;
|
|
8
7
|
}
|
|
9
|
-
exports.
|
|
10
|
-
function
|
|
8
|
+
exports.setQuerierPool = setQuerierPool;
|
|
9
|
+
function getQuerierPool() {
|
|
11
10
|
if (!defaultPool) {
|
|
12
11
|
throw new TypeError('A default querier-pool has to be set first');
|
|
13
12
|
}
|
|
14
13
|
return defaultPool;
|
|
15
14
|
}
|
|
16
|
-
exports.
|
|
15
|
+
exports.getQuerierPool = getQuerierPool;
|
|
17
16
|
function getQuerier() {
|
|
18
17
|
return defaultPool.getQuerier();
|
|
19
18
|
}
|
|
20
19
|
exports.getQuerier = getQuerier;
|
|
21
|
-
|
|
22
|
-
return new index_1.GenericRepository(entity, querier);
|
|
23
|
-
}
|
|
24
|
-
exports.getRepository = getRepository;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUF1RDtBQUd2RCxJQUFJLFdBQXdCLENBQUM7QUFFN0IsU0FBZ0IscUJBQXFCLENBQXNDLElBQU87SUFDaEYsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRkQsc0RBRUM7QUFFRCxTQUFnQixxQkFBcUI7SUFDbkMsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixNQUFNLElBQUksU0FBUyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7S0FDbkU7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBTEQsc0RBS0M7QUFFRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxNQUFlLEVBQUUsT0FBZ0I7SUFDaEUsT0FBTyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsc0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljUmVwb3NpdG9yeSB9IGZyb20gJy4vcmVwb3NpdG9yeS9pbmRleCc7XG5pbXBvcnQgeyBRdWVyaWVyLCBRdWVyaWVyUG9vbCwgUmVwb3NpdG9yeSwgVHlwZSB9IGZyb20gJy4vdHlwZS9pbmRleCc7XG5cbmxldCBkZWZhdWx0UG9vbDogUXVlcmllclBvb2w7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXREZWZhdWx0UXVlcmllclBvb2w8VCBleHRlbmRzIFF1ZXJpZXJQb29sID0gUXVlcmllclBvb2w+KHBvb2w6IFQpOiB2b2lkIHtcbiAgZGVmYXVsdFBvb2wgPSBwb29sO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFF1ZXJpZXJQb29sKCk6IFF1ZXJpZXJQb29sIHtcbiAgaWYgKCFkZWZhdWx0UG9vbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0EgZGVmYXVsdCBxdWVyaWVyLXBvb2wgaGFzIHRvIGJlIHNldCBmaXJzdCcpO1xuICB9XG4gIHJldHVybiBkZWZhdWx0UG9vbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJpZXIoKTogUHJvbWlzZTxRdWVyaWVyPiB7XG4gIHJldHVybiBkZWZhdWx0UG9vbC5nZXRRdWVyaWVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBvc2l0b3J5PEU+KGVudGl0eTogVHlwZTxFPiwgcXVlcmllcjogUXVlcmllcik6IFJlcG9zaXRvcnk8RT4ge1xuICByZXR1cm4gbmV3IEdlbmVyaWNSZXBvc2l0b3J5KGVudGl0eSwgcXVlcmllcik7XG59XG4iXX0=
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLElBQUksV0FBd0IsQ0FBQztBQUU3QixTQUFnQixjQUFjLENBQXNDLElBQU87SUFDekUsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFnQixjQUFjO0lBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0tBQ25FO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUxELHdDQUtDO0FBRUQsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRkQsZ0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyaWVyLCBRdWVyaWVyUG9vbCB9IGZyb20gJy4vdHlwZSc7XG5cbmxldCBkZWZhdWx0UG9vbDogUXVlcmllclBvb2w7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRRdWVyaWVyUG9vbDxUIGV4dGVuZHMgUXVlcmllclBvb2wgPSBRdWVyaWVyUG9vbD4ocG9vbDogVCk6IHZvaWQge1xuICBkZWZhdWx0UG9vbCA9IHBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyUG9vbCgpOiBRdWVyaWVyUG9vbCB7XG4gIGlmICghZGVmYXVsdFBvb2wpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBIGRlZmF1bHQgcXVlcmllci1wb29sIGhhcyB0byBiZSBzZXQgZmlyc3QnKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyKCk6IFByb21pc2U8UXVlcmllcj4ge1xuICByZXR1cm4gZGVmYXVsdFBvb2wuZ2V0UXVlcmllcigpO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"homepage": "https://uql.io",
|
|
4
4
|
"description": "flexible and efficient ORM, with declarative JSON syntax and smart type-safety",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "1.0.
|
|
6
|
+
"version": "1.0.9",
|
|
7
7
|
"main": "index.js",
|
|
8
8
|
"types": "./index.d.ts",
|
|
9
9
|
"scripts": {
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"tslib": "^2.4.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@types/node": "^
|
|
21
|
+
"@types/node": "^18.0.0",
|
|
22
22
|
"@types/sqlstring": "^2.3.0",
|
|
23
23
|
"@types/uuid": "^8.3.4",
|
|
24
24
|
"copyfiles": "^2.4.1",
|
|
25
25
|
"rimraf": "^3.0.2",
|
|
26
|
-
"typescript": "^4.7.
|
|
26
|
+
"typescript": "^4.7.4",
|
|
27
27
|
"uuid": "^8.3.2"
|
|
28
28
|
},
|
|
29
29
|
"author": "Roger Padilla",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"publishConfig": {
|
|
60
60
|
"access": "public"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
63
|
-
}
|
|
62
|
+
"gitHead": "3ced0c218364ddcd9e234096155ff205a7583b13"
|
|
63
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractQuerier = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
4
|
+
const entity_1 = require("../entity");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const repository_1 = require("../repository");
|
|
7
7
|
class AbstractQuerier {
|
|
8
8
|
findOneById(entity, id, qm = {}) {
|
|
9
9
|
return this.findOne(entity, { ...qm, $filter: id });
|
|
@@ -30,13 +30,13 @@ class AbstractQuerier {
|
|
|
30
30
|
return id;
|
|
31
31
|
}
|
|
32
32
|
async saveMany(entity, payload) {
|
|
33
|
-
const meta = (0,
|
|
33
|
+
const meta = (0, entity_1.getMeta)(entity);
|
|
34
34
|
const ids = [];
|
|
35
35
|
const updates = [];
|
|
36
36
|
const inserts = [];
|
|
37
37
|
for (const it of payload) {
|
|
38
38
|
if (it[meta.id]) {
|
|
39
|
-
if ((0,
|
|
39
|
+
if ((0, util_1.getKeys)(it).length === 1) {
|
|
40
40
|
ids.push(it[meta.id]);
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
@@ -58,18 +58,18 @@ class AbstractQuerier {
|
|
|
58
58
|
]);
|
|
59
59
|
}
|
|
60
60
|
async findToManyRelations(entity, payload, project) {
|
|
61
|
-
const meta = (0,
|
|
62
|
-
const relations = (0,
|
|
61
|
+
const meta = (0, entity_1.getMeta)(entity);
|
|
62
|
+
const relations = (0, util_1.getProjectRelationKeys)(meta, project);
|
|
63
63
|
for (const relKey of relations) {
|
|
64
64
|
const relOpts = meta.relations[relKey];
|
|
65
65
|
const relEntity = relOpts.entity();
|
|
66
|
-
const relProject = (0,
|
|
66
|
+
const relProject = (0, util_1.clone)(project[relKey]);
|
|
67
67
|
const relQuery = relProject === true || relProject === undefined ? {} : Array.isArray(relProject) ? { $project: relProject } : relProject;
|
|
68
68
|
const ids = payload.map((it) => it[meta.id]);
|
|
69
69
|
if (relOpts.through) {
|
|
70
70
|
const localField = relOpts.references[0].local;
|
|
71
71
|
const throughEntity = relOpts.through();
|
|
72
|
-
const throughMeta = (0,
|
|
72
|
+
const throughMeta = (0, entity_1.getMeta)(throughEntity);
|
|
73
73
|
const targetRelKey = Object.keys(throughMeta.relations).find((key) => throughMeta.relations[key].references.some(({ local }) => local === relOpts.references[1].local));
|
|
74
74
|
const throughFounds = await this.findMany(throughEntity, {
|
|
75
75
|
$project: {
|
|
@@ -119,9 +119,9 @@ class AbstractQuerier {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
async insertRelations(entity, payload) {
|
|
122
|
-
const meta = (0,
|
|
122
|
+
const meta = (0, entity_1.getMeta)(entity);
|
|
123
123
|
await Promise.all(payload.map((it) => {
|
|
124
|
-
const relKeys = (0,
|
|
124
|
+
const relKeys = (0, util_1.getPersistableRelations)(meta, it, 'persist');
|
|
125
125
|
if (!relKeys.length) {
|
|
126
126
|
return;
|
|
127
127
|
}
|
|
@@ -129,8 +129,8 @@ class AbstractQuerier {
|
|
|
129
129
|
}));
|
|
130
130
|
}
|
|
131
131
|
async updateRelations(entity, criteria, payload) {
|
|
132
|
-
const meta = (0,
|
|
133
|
-
const relKeys = (0,
|
|
132
|
+
const meta = (0, entity_1.getMeta)(entity);
|
|
133
|
+
const relKeys = (0, util_1.getPersistableRelations)(meta, payload, 'persist');
|
|
134
134
|
if (!relKeys.length) {
|
|
135
135
|
return;
|
|
136
136
|
}
|
|
@@ -142,8 +142,8 @@ class AbstractQuerier {
|
|
|
142
142
|
await Promise.all(ids.map((id) => Promise.all(relKeys.map((relKey) => this.saveRelation(entity, { ...payload, [meta.id]: id }, relKey, true)))));
|
|
143
143
|
}
|
|
144
144
|
async deleteRelations(entity, ids, opts) {
|
|
145
|
-
const meta = (0,
|
|
146
|
-
const relKeys = (0,
|
|
145
|
+
const meta = (0, entity_1.getMeta)(entity);
|
|
146
|
+
const relKeys = (0, util_1.getPersistableRelations)(meta, meta.relations, 'delete');
|
|
147
147
|
for (const relKey of relKeys) {
|
|
148
148
|
const relOpts = meta.relations[relKey];
|
|
149
149
|
const relEntity = relOpts.entity();
|
|
@@ -157,7 +157,7 @@ class AbstractQuerier {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
async saveRelation(entity, payload, relKey, isUpdate) {
|
|
160
|
-
const meta = (0,
|
|
160
|
+
const meta = (0, entity_1.getMeta)(entity);
|
|
161
161
|
const id = payload[meta.id];
|
|
162
162
|
const { entity: entityGetter, cardinality, references, through } = meta.relations[relKey];
|
|
163
163
|
const relEntity = entityGetter();
|
|
@@ -208,7 +208,7 @@ class AbstractQuerier {
|
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
getRepository(entity) {
|
|
211
|
-
return new
|
|
211
|
+
return new repository_1.GenericRepository(entity, this);
|
|
212
212
|
}
|
|
213
213
|
async transaction(callback) {
|
|
214
214
|
try {
|
|
@@ -227,4 +227,4 @@ class AbstractQuerier {
|
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
exports.AbstractQuerier = AbstractQuerier;
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWVBLDJDQUEwQztBQUMxQyx5Q0FBZ0c7QUFDaEcsK0NBQXdEO0FBRXhELE1BQXNCLGVBQWU7SUFHbkMsV0FBVyxDQUFJLE1BQWUsRUFBRSxFQUFjLEVBQUUsS0FBcUIsRUFBRTtRQUNyRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUksTUFBZSxFQUFFLEVBQWU7UUFDL0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFJRCxnQkFBZ0IsQ0FBSSxNQUFlLEVBQUUsRUFBWTtRQUMvQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUksTUFBZSxFQUFFLE9BQVU7UUFDNUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUlELGFBQWEsQ0FBSSxNQUFlLEVBQUUsRUFB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QUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLE9BQU87U0FDUjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUksTUFBZTtRQUM5QixPQUFPLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFJRCxLQUFLLENBQUMsV0FBVyxDQUFJLFFBQXFEO1FBQ3hFLElBQUk7WUFDRixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0IsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEdBQUcsQ0FBQztTQUNYO2dCQUFTO1lBQ1IsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0NBV0Y7QUEvUUQsMENBK1FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSWRWYWx1ZSxcbiAgUXVlcmllcixcbiAgUXVlcnksXG4gIFF1ZXJ5Q3JpdGVyaWEsXG4gIFF1ZXJ5T25lLFxuICBRdWVyeU9wdGlvbnMsXG4gIFF1ZXJ5UHJvamVjdCxcbiAgUXVlcnlTZWFyY2gsXG4gIFF1ZXJ5VW5pcXVlLFxuICBSZWxhdGlvbktleSxcbiAgUmVsYXRpb25WYWx1ZSxcbiAgUmVwb3NpdG9yeSxcbiAgVHlwZSxcbn0gZnJvbSAnLi4vdHlwZSc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5L2luZGV4JztcbmltcG9ydCB7IGNsb25lLCBnZXRLZXlzLCBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLCBnZXRQZXJzaXN0YWJsZVJlbGF0aW9ucyB9IGZyb20gJy4uL3V0aWwvaW5kZXgnO1xuaW1wb3J0IHsgR2VuZXJpY1JlcG9zaXRvcnkgfSBmcm9tICcuLi9yZXBvc2l0b3J5L2luZGV4JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UXVlcmllciBpbXBsZW1lbnRzIFF1ZXJpZXIge1xuICBhYnN0cmFjdCBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtPzogUXVlcnlTZWFyY2g8RT4pOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZmluZE9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+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=
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWVBLHNDQUFvQztBQUNwQyxrQ0FBMEY7QUFDMUYsOENBQWtEO0FBRWxELE1BQXNCLGVBQWU7SUFHbkMsV0FBVyxDQUFJLE1BQWUsRUFBRSxFQUFjLEVBQUUsS0FBcUIsRUFBRTtRQUNyRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUksTUFBZSxFQUFFLEVBQWU7UUFDL0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFJRCxnQkFBZ0IsQ0FBSSxNQUFlLEVBQUUsRUFBWTtRQUMvQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUksTUFBZSxFQUFFLE9BQVU7UUFDNUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUlELGFBQWEsQ0FBSSxNQUFlLEVBQUUsRUFB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LElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNwRSxPQUFPO1NBQ1I7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFJLE1BQWU7UUFDOUIsT0FBTyxJQUFJLDhCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBSUQsS0FBSyxDQUFDLFdBQVcsQ0FBSSxRQUFxRDtRQUN4RSxJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM5QixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDakMsTUFBTSxHQUFHLENBQUM7U0FDWDtnQkFBUztZQUNSLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztDQVdGO0FBL1FELDBDQStRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElkVmFsdWUsXG4gIFF1ZXJpZXIsXG4gIFF1ZXJ5LFxuICBRdWVyeUNyaXRlcmlhLFxuICBRdWVyeU9uZSxcbiAgUXVlcnlPcHRpb25zLFxuICBRdWVyeVByb2plY3QsXG4gIFF1ZXJ5U2VhcmNoLFxuICBRdWVyeVVuaXF1ZSxcbiAgUmVsYXRpb25LZXksXG4gIFJlbGF0aW9uVmFsdWUsXG4gIFJlcG9zaXRvcnksXG4gIFR5cGUsXG59IGZyb20gJy4uL3R5cGUnO1xuaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJy4uL2VudGl0eSc7XG5pbXBvcnQgeyBjbG9uZSwgZ2V0S2V5cywgZ2V0UHJvamVjdFJlbGF0aW9uS2V5cywgZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IEdlbmVyaWNSZXBvc2l0b3J5IH0gZnJvbSAnLi4vcmVwb3NpdG9yeSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFF1ZXJpZXIgaW1wbGVtZW50cyBRdWVyaWVyIHtcbiAgYWJzdHJhY3QgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Query, Type, QueryCriteria, QueryOptions, QueryUpdateResult } from '../type
|
|
2
|
-
import { AbstractSqlDialect } from '../dialect
|
|
1
|
+
import { Query, Type, QueryCriteria, QueryOptions, QueryUpdateResult } from '../type';
|
|
2
|
+
import { AbstractSqlDialect } from '../dialect';
|
|
3
3
|
import { AbstractQuerier } from './abstractQuerier';
|
|
4
4
|
export declare abstract class AbstractSqlQuerier extends AbstractQuerier {
|
|
5
5
|
readonly dialect: AbstractSqlDialect;
|
|
@@ -17,7 +17,7 @@ export declare abstract class AbstractSqlQuerier extends AbstractQuerier {
|
|
|
17
17
|
abstract run(query: string): Promise<QueryUpdateResult>;
|
|
18
18
|
count<E>(entity: Type<E>, qm?: QueryCriteria<E>): Promise<number>;
|
|
19
19
|
findMany<E>(entity: Type<E>, qm: Query<E>): Promise<E[]>;
|
|
20
|
-
insertMany<E>(entity: Type<E>, payload: E[]): Promise<E[import("../type
|
|
20
|
+
insertMany<E>(entity: Type<E>, payload: E[]): Promise<E[import("../type").IdKey<E>][]>;
|
|
21
21
|
updateMany<E>(entity: Type<E>, qm: QueryCriteria<E>, payload: E): Promise<number>;
|
|
22
22
|
deleteMany<E>(entity: Type<E>, qm: QueryCriteria<E>, opts?: QueryOptions): Promise<number>;
|
|
23
23
|
get hasOpenTransaction(): boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractSqlQuerier = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const util_1 = require("../util");
|
|
5
|
+
const entity_1 = require("../entity");
|
|
6
6
|
const abstractQuerier_1 = require("./abstractQuerier");
|
|
7
7
|
class AbstractSqlQuerier extends abstractQuerier_1.AbstractQuerier {
|
|
8
8
|
dialect;
|
|
@@ -19,15 +19,15 @@ class AbstractSqlQuerier extends abstractQuerier_1.AbstractQuerier {
|
|
|
19
19
|
async findMany(entity, qm) {
|
|
20
20
|
const query = this.dialect.find(entity, qm);
|
|
21
21
|
const res = await this.all(query);
|
|
22
|
-
const founds = (0,
|
|
22
|
+
const founds = (0, util_1.unflatObjects)(res);
|
|
23
23
|
await this.findToManyRelations(entity, founds, qm.$project);
|
|
24
24
|
return founds;
|
|
25
25
|
}
|
|
26
26
|
async insertMany(entity, payload) {
|
|
27
|
-
payload = (0,
|
|
27
|
+
payload = (0, util_1.clone)(payload);
|
|
28
28
|
const query = this.dialect.insert(entity, payload);
|
|
29
29
|
const { firstId } = await this.run(query);
|
|
30
|
-
const meta = (0,
|
|
30
|
+
const meta = (0, entity_1.getMeta)(entity);
|
|
31
31
|
const ids = payload.map((it, index) => {
|
|
32
32
|
it[meta.id] ??= firstId + index;
|
|
33
33
|
return it[meta.id];
|
|
@@ -36,14 +36,14 @@ class AbstractSqlQuerier extends abstractQuerier_1.AbstractQuerier {
|
|
|
36
36
|
return ids;
|
|
37
37
|
}
|
|
38
38
|
async updateMany(entity, qm, payload) {
|
|
39
|
-
payload = (0,
|
|
39
|
+
payload = (0, util_1.clone)(payload);
|
|
40
40
|
const query = this.dialect.update(entity, qm, payload);
|
|
41
41
|
const { changes } = await this.run(query);
|
|
42
42
|
await this.updateRelations(entity, qm, payload);
|
|
43
43
|
return changes;
|
|
44
44
|
}
|
|
45
45
|
async deleteMany(entity, qm, opts) {
|
|
46
|
-
const meta = (0,
|
|
46
|
+
const meta = (0, entity_1.getMeta)(entity);
|
|
47
47
|
const findQuery = await this.dialect.find(entity, { ...qm, $project: [meta.id] });
|
|
48
48
|
const founds = await this.all(findQuery);
|
|
49
49
|
if (!founds.length) {
|
|
@@ -85,4 +85,4 @@ class AbstractSqlQuerier extends abstractQuerier_1.AbstractQuerier {
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
exports.AbstractSqlQuerier = AbstractSqlQuerier;
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RTcWxRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGtDQUErQztBQUUvQyxzQ0FBb0M7QUFFcEMsdURBQW9EO0FBRXBELE1BQXNCLGtCQUFtQixTQUFRLGlDQUFlO0lBR3pDO0lBRmIscUJBQXFCLENBQVc7SUFFeEMsWUFBcUIsT0FBMkI7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFEVyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtJQUVoRCxDQUFDO0lBY1EsS0FBSyxDQUFDLEtBQUssQ0FBSSxNQUFlLEVBQUUsRUFBcUI7UUFDNUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkQsTUFBTSxHQUFHLEdBQVEsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFJLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRVEsS0FBSyxDQUFDLFFBQVEsQ0FBSSxNQUFlLEVBQUUsRUFBWTtRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUEsb0JBQWEsRUFBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFD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TUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU87UUFDUCx3QkFBd0I7UUFDeEIseUVBQXlFO1FBQ3pFLElBQUk7UUFDSixNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxpQkFBaUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMvQixNQUFNLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVRLEtBQUssQ0FBQyxtQkFBbUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMvQixNQUFNLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBbkdELGdEQW1HQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5LCBUeXBlLCBRdWVyeUNyaXRlcmlhLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5VXBkYXRlUmVzdWx0IH0gZnJvbSAnLi4vdHlwZSc7XG5pbXBvcnQgeyB1bmZsYXRPYmplY3RzLCBjbG9uZSB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxEaWFsZWN0IH0gZnJvbSAnLi4vZGlhbGVjdCc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5JztcblxuaW1wb3J0IHsgQWJzdHJhY3RRdWVyaWVyIH0gZnJvbSAnLi9hYnN0cmFjdFF1ZXJpZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTcWxRdWVyaWVyIGV4dGVuZHMgQWJzdHJhY3RRdWVyaWVyIHtcbiAgcHJpdmF0ZSBoYXNQZW5kaW5nVHJhbnNhY3Rpb24/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRpYWxlY3Q6IEFic3RyYWN0U3FsRGlhbGVjdCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogcmVhZCBxdWVyeS5cbiAgICogQHBhcmFtIHF1ZXJ5IHRoZSBxdWVyeVxuICAgKi9cbiAgYWJzdHJhY3QgYWxsPFQ+KHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPFRbXT47XG5cbiAgLyoqXG4gICAqIGluc2VydC91cGRhdGUvZGVsZXRlL2RkbCBxdWVyeS5cbiAgICogQHBhcmFtIHF1ZXJ5IHRoZSBxdWVyeVxuICAgKi9cbiAgYWJzdHJhY3QgcnVuKHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPFF1ZXJ5VXBkYXRlUmVzdWx0PjtcblxuICBvdmVycmlkZSBhc3luYyBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtPzogUXVlcnlDcml0ZXJpYTxFPikge1xuICAgIGNvbnN0IHF1ZXJ5ID0gYXdhaXQgdGhpcy5kaWFsZWN0LmNvdW50KGVudGl0eSwgcW0pO1xuICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdGhpcy5hbGw8RT4ocXVlcnkpO1xuICAgIHJldHVybiBOdW1iZXIocmVzWzBdLmNvdW50KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuZmluZChlbnRpdHksIHFtKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmFsbDxFPihxdWVyeSk7XG4gICAgY29uc3QgZm91bmRzID0gdW5mbGF0T2JqZWN0cyhyZXMpO1xuICAgIGF3YWl0IHRoaXMuZmluZFRvTWFueVJlbGF0aW9ucyhlbnRpdHksIGZvdW5kcywgcW0uJHByb2plY3QpO1xuICAgIHJldHVybiBmb3VuZHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0Lmluc2VydChlbnRpdHksIHBheWxvYWQpO1xuICAgIGNvbnN0IHsgZmlyc3RJZCB9ID0gYXdhaXQgdGhpcy5ydW4ocXVlcnkpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWRzID0gcGF5bG9hZC5tYXAoKGl0LCBpbmRleCkgPT4ge1xuICAgICAgaXRbbWV0YS5pZCBhcyBzdHJpbmddID8/PSBmaXJzdElkICsgaW5kZXg7XG4gICAgICByZXR1cm4gaXRbbWV0YS5pZF07XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5pbnNlcnRSZWxhdGlvbnMoZW50aXR5LCBwYXlsb2FkKTtcbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LnVwZGF0ZShlbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgICBjb25zdCB7IGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlbGF0aW9ucyhlbnRpdHksIHFtLCBwYXlsb2FkKTtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgZmluZFF1ZXJ5ID0gYXdhaXQgdGhpcy5kaWFsZWN0LmZpbmQoZW50aXR5LCB7IC4uLnFtLCAkcHJvamVjdDogW21ldGEuaWRdIH0pO1xuICAgIGNvbnN0IGZvdW5kcyA9IGF3YWl0IHRoaXMuYWxsPEU+KGZpbmRRdWVyeSk7XG4gICAgaWYgKCFmb3VuZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3QgaWRzID0gZm91bmRzLm1hcCgoaXQpID0+IGl0W21ldGEuaWRdKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5kZWxldGUoZW50aXR5LCB7ICRmaWx0ZXI6IGlkcyB9LCBvcHRzKTtcbiAgICBjb25zdCB7IGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVJlbGF0aW9ucyhlbnRpdHksIGlkcywgb3B0cyk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaGFzT3BlblRyYW5zYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGJlZ2luVHJhbnNhY3Rpb24oLyppc29sYXRpb25MZXZlbD86IElzb2xhdGlvbkxldmVsKi8pIHtcbiAgICBpZiAodGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICAvLyBUT0RPXG4gICAgLy8gaWYgKGlzb2xhdGlvbkxldmVsKSB7XG4gICAgLy8gICBhd2FpdCB0aGlzLnJ1bihgU0VUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCAke2lzb2xhdGlvbkxldmVsfWApO1xuICAgIC8vIH1cbiAgICBhd2FpdCB0aGlzLnJ1bih0aGlzLmRpYWxlY3QuYmVnaW5UcmFuc2FjdGlvbkNvbW1hbmQpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNvbW1pdFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignQ09NTUlUJyk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByb2xsYmFja1RyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignUk9MTEJBQ0snKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
|
@@ -36,4 +36,4 @@ function getInjectedQuerierIndex(service, key) {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
exports.getInjectedQuerierIndex = getInjectedQuerierIndex;
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci9pbmplY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU1QyxTQUFnQixhQUFhO0lBQzNCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQ25ELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztTQUNwQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7UUFFdEMsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixNQUFNLElBQUksU0FBUyxDQUFDLDhDQUE4QyxXQUFXLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDaEc7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFyQkQsc0NBcUJDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUksT0FBZ0IsRUFBRSxHQUFXO0lBQ3RFLElBQUksS0FBSyxHQUF3QixPQUFPLENBQUMsU0FBUyxDQUFDO0lBRW5ELE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEQsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsQjtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQWEsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTztTQUNSO1FBRUQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEM7QUFDSCxDQUFDO0FBbkJELDBEQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleSwgVHlwZSB9IGZyb20gJy4uLy4uL3R5cGUnO1xuXG5jb25zdCBtZXRhZGF0YUtleSA9IFN5bWJvbCgnSW5qZWN0UXVlcmllcicpO1xuXG5leHBvcnQgZnVuY3Rpb24gSW5qZWN0UXVlcmllcigpIHtcbiAgcmV0dXJuIChwcm90bzogb2JqZWN0LCBrZXk6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHsgY29uc3RydWN0b3IgfSA9IHByb3RvO1xuXG4gICAgaWYgKCFwcm90b1ttZXRhZGF0YUtleV0pIHtcbiAgICAgIHByb3RvW21ldGFkYXRhS2V5XSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm90b1ttZXRhZGF0YUtleV0uaGFzKGNvbnN0cnVjdG9yKSkge1xuICAgICAgcHJvdG9bbWV0YWRhdGFLZXldLnNldChjb25zdHJ1Y3Rvciwge30pO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGEgPSBwcm90b1ttZXRhZGF0YUtleV0uZ2V0KGNvbnN0cnVjdG9yKTtcbiAgICBjb25zdCBpc0FscmVhZHlJbmplY3RlZCA9IGtleSBpbiBtZXRhO1xuXG4gICAgaWYgKGlzQWxyZWFkeUluamVjdGVkKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBASW5qZWN0UXVlcmllcigpIGNhbiBvbmx5IGFwcGVhcnMgb25jZSBpbiAnJHtjb25zdHJ1Y3Rvci5uYW1lfS4ke2tleX0nfWApO1xuICAgIH1cblxuICAgIG1ldGFba2V5XSA9IGluZGV4O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXg8Uz4oc2VydmljZTogVHlwZTxTPiwga2V5OiBLZXk8Uz4pIHtcbiAgbGV0IHByb3RvOiBGdW5jdGlvbkNvbnN0cnVjdG9yID0gc2VydmljZS5wcm90b3R5cGU7XG5cbiAgd2hpbGUgKHByb3RvLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICBjb25zdCBtZXRhID0gcHJvdG9bbWV0YWRhdGFLZXldPy5nZXQocHJvdG8uY29uc3RydWN0b3IpO1xuXG4gICAgaWYgKG1ldGEgJiYga2V5IGluIG1ldGEpIHtcbiAgICAgIHJldHVybiBtZXRhW2tleV07XG4gICAgfVxuXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3RvKSBhcyBLZXk8Uz5bXTtcbiAgICBjb25zdCBpc093bktleSA9IGtleXMuaW5jbHVkZXMoa2V5KTtcblxuICAgIGlmIChpc093bktleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgfVxufVxuIl19
|
|
@@ -20,7 +20,7 @@ function Transactional({ propagation = 'required', querierPool, } = {}) {
|
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
22
|
isOwnTransaction = true;
|
|
23
|
-
const pool = querierPool ?? (0, options_1.
|
|
23
|
+
const pool = querierPool ?? (0, options_1.getQuerierPool)();
|
|
24
24
|
querier = await pool.getQuerier();
|
|
25
25
|
params[injectedQuerierIndex] = querier;
|
|
26
26
|
}
|
|
@@ -49,4 +49,4 @@ function Transactional({ propagation = 'required', querierPool, } = {}) {
|
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
exports.Transactional = Transactional;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci90cmFuc2FjdGlvbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUErQztBQUMvQyxtREFBMEQ7QUFFMUQsU0FBZ0IsYUFBYSxDQUFDLEVBQzVCLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFdBQVcsTUFJVCxFQUFFO0lBQ0osT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsY0FBa0MsRUFBUSxFQUFFO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUF3QixDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLHVDQUF1QixFQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRSxJQUFJLG9CQUFvQixLQUFLLFNBQVMsRUFBRTtZQUN0QyxNQUFNLFNBQVMsQ0FBQywwQ0FBMEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztTQUM5RjtRQUVELGNBQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxVQUFVLElBQUksQ0FBZSxHQUFHLElBQVc7WUFDckUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksZ0JBQXlCLENBQUM7WUFDOUIsSUFBSSxPQUFnQixDQUFDO1lBRXJCLElBQUksTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ2hDLE9BQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSxHQUFHLFdBQVcsSUFBSSxJQUFBLHdCQUFjLEdBQUUsQ0FBQztnQkFDN0MsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsR0FBRyxPQUFPLENBQUM7YUFDeEM7WUFFRCxJQUFJO2dCQUNGLElBQUksV0FBVyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDN0QsTUFBTSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztpQkFDbEM7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQ2xELE1BQU0sT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7aUJBQ25DO2dCQUNELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixJQUFJLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDbEQsTUFBTSxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztpQkFDckM7Z0JBQ0QsTUFBTSxHQUFHLENBQUM7YUFDWDtvQkFBUztnQkFDUixJQUFJLGdCQUFnQixFQUFFO29CQUNwQixNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDekI7YUFDRjtRQUNILENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFuREQsc0NBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcmllciwgUXVlcmllclBvb2wsIFR5cGUgfSBmcm9tICcuLi8uLi90eXBlJztcbmltcG9ydCB7IGdldFF1ZXJpZXJQb29sIH0gZnJvbSAnLi4vLi4vb3B0aW9ucyc7XG5pbXBvcnQgeyBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleCB9IGZyb20gJy4vaW5qZWN0UXVlcmllcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmFuc2FjdGlvbmFsKHtcbiAgcHJvcGFnYXRpb24gPSAncmVxdWlyZWQnLFxuICBxdWVyaWVyUG9vbCxcbn06IHtcbiAgcmVhZG9ubHkgcHJvcGFnYXRpb24/OiAnc3VwcG9ydGVkJyB8ICdyZXF1aXJlZCc7XG4gIHJlYWRvbmx5IHF1ZXJpZXJQb29sPzogUXVlcmllclBvb2w7XG59ID0ge30pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcsIHByb3BEZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpOiB2b2lkID0+IHtcbiAgICBjb25zdCB0aGVDbGFzcyA9IHRhcmdldC5jb25zdHJ1Y3RvciBhcyBUeXBlPGFueT47XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBwcm9wRGVzY3JpcHRvci52YWx1ZTtcbiAgICBjb25zdCBpbmplY3RlZFF1ZXJpZXJJbmRleCA9IGdldEluamVjdGVkUXVlcmllckluZGV4KHRoZUNsYXNzLCBrZXkpO1xuXG4gICAgaWYgKGluamVjdGVkUXVlcmllckluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgbWlzc2luZyBkZWNvcmF0b3IgQEluamVjdFF1ZXJpZXIoKSBpbiAnJHt0YXJnZXQuY29uc3RydWN0b3IubmFtZX0uJHtrZXl9J2ApO1xuICAgIH1cblxuICAgIHByb3BEZXNjcmlwdG9yLnZhbHVlID0gYXN5bmMgZnVuY3Rpb24gZnVuYyh0aGlzOiBvYmplY3QsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBbLi4uYXJnc107XG4gICAgICBsZXQgaXNPd25UcmFuc2FjdGlvbjogYm9vbGVhbjtcbiAgICAgIGxldCBxdWVyaWVyOiBRdWVyaWVyO1xuXG4gICAgICBpZiAocGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XSkge1xuICAgICAgICBxdWVyaWVyID0gcGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzT3duVHJhbnNhY3Rpb24gPSB0cnVlO1xuICAgICAgICBjb25zdCBwb29sID0gcXVlcmllclBvb2wgPz8gZ2V0UXVlcmllclBvb2woKTtcbiAgICAgICAgcXVlcmllciA9IGF3YWl0IHBvb2wuZ2V0UXVlcmllcigpO1xuICAgICAgICBwYXJhbXNbaW5qZWN0ZWRRdWVyaWVySW5kZXhdID0gcXVlcmllcjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHByb3BhZ2F0aW9uID09PSAncmVxdWlyZWQnICYmICFxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBwYXJhbXMpO1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbiAmJiBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbiAmJiBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChpc093blRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9O1xufVxuIl19
|
package/querier/index.d.ts
CHANGED
package/querier/index.js
CHANGED
|
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./abstractQuerier"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./abstractSqlQuerier"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./decorator
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
tslib_1.__exportStar(require("./decorator"), exports);
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcmllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0REFBa0M7QUFDbEMsK0RBQXFDO0FBQ3JDLHNEQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3RRdWVyaWVyJztcbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3RTcWxRdWVyaWVyJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9yJztcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IdValue, Querier, Query, QueryCriteria, QueryOne, QueryOptions, QuerySearch, QueryUnique, Repository, Type } from '../type
|
|
1
|
+
import { IdValue, Querier, Query, QueryCriteria, QueryOne, QueryOptions, QuerySearch, QueryUnique, Repository, Type } from '../type';
|
|
2
2
|
export declare class GenericRepository<E> implements Repository<E> {
|
|
3
3
|
readonly entity: Type<E>;
|
|
4
4
|
readonly querier: Querier;
|
|
@@ -49,4 +49,4 @@ class GenericRepository {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
exports.GenericRepository = GenericRepository;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9nZW5lcmljUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFhLGlCQUFpQjtJQUNQO0lBQTBCO0lBQS9DLFlBQXFCLE1BQWUsRUFBVyxPQUFnQjtRQUExQyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQVcsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUFHLENBQUM7SUFFbkUsS0FBSyxDQUFDLEVBQWtCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWMsRUFBRSxFQUFtQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxFQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxVQUFVLENBQUMsT0FBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFjLEVBQUUsT0FBVTtRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxVQUFVLENBQUMsRUFBb0IsRUFBRSxPQUFVO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxhQUFhLENBQUMsRUFBYyxFQUFFLElBQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFvQixFQUFFLElBQW1CO1FBQ2xELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGO0FBdERELDhDQXNEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkVmFsdWUsIFF1ZXJpZXIsIFF1ZXJ5LCBRdWVyeUNyaXRlcmlhLCBRdWVyeU9uZSwgUXVlcnlPcHRpb25zLCBRdWVyeVNlYXJjaCwgUXVlcnlVbmlxdWUsIFJlcG9zaXRvcnksIFR5cGUgfSBmcm9tICcuLi90eXBlJztcblxuZXhwb3J0IGNsYXNzIEdlbmVyaWNSZXBvc2l0b3J5PEU+IGltcGxlbWVudHMgUmVwb3NpdG9yeTxFPiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGVudGl0eTogVHlwZTxFPiwgcmVhZG9ubHkgcXVlcmllcjogUXVlcmllcikge31cblxuICBjb3VudChxbTogUXVlcnlTZWFyY2g8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmNvdW50KHRoaXMuZW50aXR5LCBxbSk7XG4gIH1cblxuICBmaW5kT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcW0/OiBRdWVyeVVuaXF1ZTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE9uZUJ5SWQodGhpcy5lbnRpdHksIGlkLCBxbSk7XG4gIH1cblxuICBmaW5kT25lKHFtOiBRdWVyeU9uZTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE9uZSh0aGlzLmVudGl0eSwgcW0pO1xuICB9XG5cbiAgZmluZE1hbnkocW06IFF1ZXJ5PEU+KSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5maW5kTWFueSh0aGlzLmVudGl0eSwgcW0pO1xuICB9XG5cbiAgZmluZE1hbnlBbmRDb3VudChxbTogUXVlcnk8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmZpbmRNYW55QW5kQ291bnQodGhpcy5lbnRpdHksIHFtKTtcbiAgfVxuXG4gIGluc2VydE9uZShwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5pbnNlcnRPbmUodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgaW5zZXJ0TWFueShwYXlsb2FkOiBFW10pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmluc2VydE1hbnkodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgdXBkYXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIudXBkYXRlT25lQnlJZCh0aGlzLmVudGl0eSwgaWQsIHBheWxvYWQpO1xuICB9XG5cbiAgdXBkYXRlTWFueShxbTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIudXBkYXRlTWFueSh0aGlzLmVudGl0eSwgcW0sIHBheWxvYWQpO1xuICB9XG5cbiAgc2F2ZU9uZShwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5zYXZlT25lKHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIHNhdmVNYW55KHBheWxvYWQ6IEVbXSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuc2F2ZU1hbnkodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgZGVsZXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZGVsZXRlT25lQnlJZCh0aGlzLmVudGl0eSwgaWQsIG9wdHMpO1xuICB9XG5cbiAgZGVsZXRlTWFueShxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZGVsZXRlTWFueSh0aGlzLmVudGl0eSwgcW0sIG9wdHMpO1xuICB9XG59XG4iXX0=
|