@uql/core 1.0.7 → 1.0.8
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 +1 -1
- package/dialect/abstractSqlDialect.d.ts +1 -1
- package/dialect/abstractSqlDialect.js +56 -52
- package/dialect/index.d.ts +4 -4
- package/dialect/index.js +8 -5
- package/dialect/mysqlDialect.d.ts +2 -2
- package/dialect/mysqlDialect.js +9 -5
- package/dialect/postgresDialect.d.ts +2 -2
- package/dialect/postgresDialect.js +10 -6
- package/dialect/sqliteDialect.d.ts +1 -1
- package/dialect/sqliteDialect.js +7 -3
- package/entity/decorator/definition.d.ts +1 -1
- package/entity/decorator/definition.js +28 -18
- package/entity/decorator/entity.d.ts +1 -1
- package/entity/decorator/entity.js +8 -4
- package/entity/decorator/field.d.ts +1 -1
- package/entity/decorator/field.js +8 -4
- package/entity/decorator/id.d.ts +1 -1
- package/entity/decorator/id.js +8 -4
- package/entity/decorator/index.d.ts +5 -5
- package/entity/decorator/index.js +12 -6
- package/entity/decorator/relation.d.ts +1 -1
- package/entity/decorator/relation.js +14 -7
- package/entity/index.d.ts +1 -1
- package/entity/index.js +5 -2
- package/index.d.ts +1 -1
- package/index.js +5 -2
- package/options.d.ts +1 -1
- package/options.js +14 -7
- package/package.json +1 -3
- package/querier/abstractQuerier.d.ts +3 -3
- package/querier/abstractQuerier.js +23 -19
- package/querier/abstractSqlQuerier.d.ts +4 -4
- package/querier/abstractSqlQuerier.js +14 -10
- package/querier/decorator/index.d.ts +2 -2
- package/querier/decorator/index.js +6 -3
- package/querier/decorator/injectQuerier.d.ts +1 -1
- package/querier/decorator/injectQuerier.js +8 -3
- package/querier/decorator/transactional.d.ts +1 -1
- package/querier/decorator/transactional.js +10 -6
- package/querier/index.d.ts +3 -3
- package/querier/index.js +7 -4
- package/repository/genericRepository.d.ts +1 -1
- package/repository/genericRepository.js +6 -2
- package/repository/index.d.ts +1 -1
- package/repository/index.js +5 -2
- package/type/entity.d.ts +2 -2
- package/type/entity.js +5 -2
- package/type/index.d.ts +7 -7
- package/type/index.js +11 -8
- package/type/querier.d.ts +5 -5
- package/type/querier.js +3 -2
- package/type/querierPool.d.ts +1 -1
- package/type/querierPool.js +3 -2
- package/type/query.d.ts +2 -2
- package/type/query.js +6 -2
- package/type/repository.d.ts +3 -3
- package/type/repository.js +3 -2
- package/type/universalQuerier.d.ts +4 -4
- package/type/universalQuerier.js +3 -2
- package/type/utility.js +2 -1
- package/util/dialect.util.d.ts +2 -2
- package/util/dialect.util.js +33 -19
- package/util/index.d.ts +5 -5
- package/util/index.js +9 -6
- package/util/object.util.js +10 -4
- package/util/raw.d.ts +1 -1
- package/util/raw.js +8 -4
- package/util/sql.util.js +12 -7
- package/util/string.util.js +10 -4
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostgresDialect = void 0;
|
|
4
|
+
const index_1 = require("../entity/index");
|
|
5
|
+
const abstractSqlDialect_1 = require("./abstractSqlDialect");
|
|
6
|
+
class PostgresDialect extends abstractSqlDialect_1.AbstractSqlDialect {
|
|
4
7
|
constructor() {
|
|
5
8
|
super('"', 'BEGIN TRANSACTION');
|
|
6
9
|
}
|
|
7
10
|
insert(entity, payload) {
|
|
8
11
|
const sql = super.insert(entity, payload);
|
|
9
|
-
const meta = getMeta(entity);
|
|
12
|
+
const meta = (0, index_1.getMeta)(entity);
|
|
10
13
|
const idName = meta.fields[meta.id].name;
|
|
11
14
|
return `${sql} RETURNING ${this.escapeId(idName)} ${this.escapeId('id')}`;
|
|
12
15
|
}
|
|
13
16
|
compare(entity, key, val, opts) {
|
|
14
17
|
if (key === '$text') {
|
|
15
|
-
const meta = getMeta(entity);
|
|
18
|
+
const meta = (0, index_1.getMeta)(entity);
|
|
16
19
|
const search = val;
|
|
17
20
|
const fields = search.$fields.map((field) => this.escapeId(meta.fields[field]?.name ?? field)).join(` || ' ' || `);
|
|
18
21
|
return `to_tsvector(${fields}) @@ to_tsquery(${this.escape(search.$value)})`;
|
|
@@ -37,4 +40,5 @@ export class PostgresDialect extends AbstractSqlDialect {
|
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
|
-
|
|
43
|
+
exports.PostgresDialect = PostgresDialect;
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGdyZXNEaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvcG9zdGdyZXNEaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUEwQztBQUMxQyw2REFBMEQ7QUFFMUQsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUNyRDtRQUNFLEtBQUssQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVEsTUFBTSxDQUFJLE1BQWUsRUFBRSxPQUFnQjtRQUNsRCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekMsT0FBTyxHQUFHLEdBQUcsY0FBYyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBRVEsT0FBTyxDQUF1QyxNQUFlLEVBQUUsR0FBTSxFQUFFLEdBQXlCLEVBQUUsSUFBNkI7UUFDdEksSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUEsZUFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLE1BQU0sTUFBTSxHQUFHLEdBQWdDLENBQUM7WUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkgsT0FBTyxlQUFlLE1BQU0sbUJBQW1CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDOUU7UUFDRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVRLG9CQUFvQixDQUMzQixNQUFlLEVBQ2YsR0FBZ0IsRUFDaEIsRUFBSyxFQUNMLEdBQXNDLEVBQ3RDLElBQW1CO1FBRW5CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9ELFFBQVEsRUFBRSxFQUFFO1lBQ1YsS0FBSyxjQUFjO2dCQUNqQixPQUFPLEdBQUcsYUFBYSxVQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUQsS0FBSyxZQUFZO2dCQUNmLE9BQU8sR0FBRyxhQUFhLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM1RCxLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxHQUFHLGFBQWEsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdELEtBQUssUUFBUTtnQkFDWCxPQUFPLEdBQUcsYUFBYSxVQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxHQUFHLGFBQWEsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEQ7Z0JBQ0UsT0FBTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztDQUNGO0FBN0NELDBDQTZDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMsIFF1ZXJ5RmlsdGVyTWFwLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5RmlsdGVyRmllbGRPcGVyYXRvck1hcCwgUXVlcnlUZXh0U2VhcmNoT3B0aW9ucywgVHlwZSwgRmllbGRLZXkgfSBmcm9tICcuLi90eXBlJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvaW5kZXgnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxEaWFsZWN0IH0gZnJvbSAnLi9hYnN0cmFjdFNxbERpYWxlY3QnO1xuXG5leHBvcnQgY2xhc3MgUG9zdGdyZXNEaWFsZWN0IGV4dGVuZHMgQWJzdHJhY3RTcWxEaWFsZWN0IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ1wiJywgJ0JFR0lOIFRSQU5TQUNUSU9OJyk7XG4gIH1cblxuICBvdmVycmlkZSBpbnNlcnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFIHwgRVtdKTogc3RyaW5nIHtcbiAgICBjb25zdCBzcWwgPSBzdXBlci5pbnNlcnQoZW50aXR5LCBwYXlsb2FkKTtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGlkTmFtZSA9IG1ldGEuZmllbGRzW21ldGEuaWRdLm5hbWU7XG4gICAgcmV0dXJuIGAke3NxbH0gUkVUVVJOSU5HICR7dGhpcy5lc2NhcGVJZChpZE5hbWUpfSAke3RoaXMuZXNjYXBlSWQoJ2lkJyl9YDtcbiAgfVxuXG4gIG92ZXJyaWRlIGNvbXBhcmU8RSwgSyBleHRlbmRzIGtleW9mIFF1ZXJ5RmlsdGVyTWFwPEU+PihlbnRpdHk6IFR5cGU8RT4sIGtleTogSywgdmFsOiBRdWVyeUZpbHRlck1hcDxFPltLXSwgb3B0cz86IFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmIChrZXkgPT09ICckdGV4dCcpIHtcbiAgICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgICBjb25zdCBzZWFyY2ggPSB2YWwgYXMgUXVlcnlUZXh0U2VhcmNoT3B0aW9uczxFPjtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IHNlYXJjaC4kZmllbGRzLm1hcCgoZmllbGQpID0+IHRoaXMuZXNjYXBlSWQobWV0YS5maWVsZHNbZmllbGRdPy5uYW1lID8/IGZpZWxkKSkuam9pbihgIHx8ICcgJyB8fCBgKTtcbiAgICAgIHJldHVybiBgdG9fdHN2ZWN0b3IoJHtmaWVsZHN9KSBAQCB0b190c3F1ZXJ5KCR7dGhpcy5lc2NhcGUoc2VhcmNoLiR2YWx1ZSl9KWA7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5jb21wYXJlKGVudGl0eSwga2V5LCB2YWwsIG9wdHMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY29tcGFyZUZpZWxkT3BlcmF0b3I8RSwgSyBleHRlbmRzIGtleW9mIFF1ZXJ5RmlsdGVyRmllbGRPcGVyYXRvck1hcDxFPj4oXG4gICAgZW50aXR5OiBUeXBlPEU+LFxuICAgIGtleTogRmllbGRLZXk8RT4sXG4gICAgb3A6IEssXG4gICAgdmFsOiBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8RT5bS10sXG4gICAgb3B0cz86IFF1ZXJ5T3B0aW9uc1xuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbXBhcmlzb25LZXkgPSB0aGlzLmdldENvbXBhcmlzb25LZXkoZW50aXR5LCBrZXksIG9wdHMpO1xuICAgIHN3aXRjaCAob3ApIHtcbiAgICAgIGNhc2UgJyRpc3RhcnRzV2l0aCc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBJTElLRSAke3RoaXMuZXNjYXBlKGAke3ZhbH0lYCl9YDtcbiAgICAgIGNhc2UgJyRpZW5kc1dpdGgnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gSUxJS0UgJHt0aGlzLmVzY2FwZShgJSR7dmFsfWApfWA7XG4gICAgICBjYXNlICckaWluY2x1ZGVzJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IElMSUtFICR7dGhpcy5lc2NhcGUoYCUke3ZhbH0lYCl9YDtcbiAgICAgIGNhc2UgJyRpbGlrZSc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBJTElLRSAke3RoaXMuZXNjYXBlKHZhbCl9YDtcbiAgICAgIGNhc2UgJyRyZWdleCc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSB+ICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHN1cGVyLmNvbXBhcmVGaWVsZE9wZXJhdG9yKGVudGl0eSwga2V5LCBvcCwgdmFsLCBvcHRzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/dialect/sqliteDialect.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SqliteDialect = void 0;
|
|
4
|
+
const abstractSqlDialect_1 = require("./abstractSqlDialect");
|
|
5
|
+
class SqliteDialect extends abstractSqlDialect_1.AbstractSqlDialect {
|
|
3
6
|
constructor() {
|
|
4
7
|
super('`', 'BEGIN TRANSACTION');
|
|
5
8
|
}
|
|
6
9
|
}
|
|
7
|
-
|
|
10
|
+
exports.SqliteDialect = SqliteDialect;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsaXRlRGlhbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWFsZWN0L3NxbGl0ZURpYWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQTBEO0FBRTFELE1BQWEsYUFBYyxTQUFRLHVDQUFrQjtJQUNuRDtRQUNFLEtBQUssQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFKRCxzQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0U3FsRGlhbGVjdCB9IGZyb20gJy4vYWJzdHJhY3RTcWxEaWFsZWN0JztcblxuZXhwb3J0IGNsYXNzIFNxbGl0ZURpYWxlY3QgZXh0ZW5kcyBBYnN0cmFjdFNxbERpYWxlY3Qge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignYCcsICdCRUdJTiBUUkFOU0FDVElPTicpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
import { RelationOptions, FieldOptions, EntityOptions, EntityMeta, Type } from '../../type
|
|
2
|
+
import { RelationOptions, FieldOptions, EntityOptions, EntityMeta, Type } from '../../type';
|
|
3
3
|
export declare function defineField<E>(entity: Type<E>, key: string, opts?: FieldOptions): EntityMeta<E>;
|
|
4
4
|
export declare function defineId<E>(entity: Type<E>, key: string, opts: FieldOptions): EntityMeta<E>;
|
|
5
5
|
export declare function defineRelation<E>(entity: Type<E>, key: string, opts: RelationOptions<E>): EntityMeta<E>;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidEntityType = exports.getMeta = exports.getEntities = exports.defineEntity = exports.defineRelation = exports.defineId = exports.defineField = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const index_1 = require("../../util/index");
|
|
3
6
|
const holder = globalThis;
|
|
4
7
|
const metaKey = '@uql/core/entity/decorator';
|
|
5
8
|
const metas = holder[metaKey] ?? new Map();
|
|
6
9
|
holder[metaKey] = metas;
|
|
7
|
-
|
|
10
|
+
function defineField(entity, key, opts = {}) {
|
|
8
11
|
const meta = ensureMeta(entity);
|
|
9
12
|
if (!opts.type) {
|
|
10
13
|
const type = inferType(entity, key);
|
|
@@ -13,7 +16,8 @@ export function defineField(entity, key, opts = {}) {
|
|
|
13
16
|
meta.fields[key] = { ...meta.fields[key], ...{ name: key, ...opts } };
|
|
14
17
|
return meta;
|
|
15
18
|
}
|
|
16
|
-
|
|
19
|
+
exports.defineField = defineField;
|
|
20
|
+
function defineId(entity, key, opts) {
|
|
17
21
|
const meta = ensureMeta(entity);
|
|
18
22
|
const id = getIdKey(meta);
|
|
19
23
|
if (id) {
|
|
@@ -21,7 +25,8 @@ export function defineId(entity, key, opts) {
|
|
|
21
25
|
}
|
|
22
26
|
return defineField(entity, key, { ...opts, isId: true });
|
|
23
27
|
}
|
|
24
|
-
|
|
28
|
+
exports.defineId = defineId;
|
|
29
|
+
function defineRelation(entity, key, opts) {
|
|
25
30
|
if (!opts.entity) {
|
|
26
31
|
const inferredType = inferEntityType(entity, key);
|
|
27
32
|
opts.entity = () => inferredType;
|
|
@@ -30,12 +35,13 @@ export function defineRelation(entity, key, opts) {
|
|
|
30
35
|
meta.relations[key] = { ...meta.relations[key], ...opts };
|
|
31
36
|
return meta;
|
|
32
37
|
}
|
|
33
|
-
|
|
38
|
+
exports.defineRelation = defineRelation;
|
|
39
|
+
function defineEntity(entity, opts = {}) {
|
|
34
40
|
const meta = ensureMeta(entity);
|
|
35
|
-
if (!hasKeys(meta.fields)) {
|
|
41
|
+
if (!(0, index_1.hasKeys)(meta.fields)) {
|
|
36
42
|
throw TypeError(`'${entity.name}' must have fields`);
|
|
37
43
|
}
|
|
38
|
-
const onDeleteKeys = getKeys(meta.fields).filter((key) => meta.fields[key].onDelete);
|
|
44
|
+
const onDeleteKeys = (0, index_1.getKeys)(meta.fields).filter((key) => meta.fields[key].onDelete);
|
|
39
45
|
if (onDeleteKeys.length > 1) {
|
|
40
46
|
throw TypeError(`'${entity.name}' must have one field with 'onDelete' as maximum`);
|
|
41
47
|
}
|
|
@@ -59,7 +65,8 @@ export function defineEntity(entity, opts = {}) {
|
|
|
59
65
|
meta.id = id;
|
|
60
66
|
return meta;
|
|
61
67
|
}
|
|
62
|
-
|
|
68
|
+
exports.defineEntity = defineEntity;
|
|
69
|
+
function getEntities() {
|
|
63
70
|
return [...metas.entries()].reduce((acc, [key, val]) => {
|
|
64
71
|
if (val.id) {
|
|
65
72
|
acc.push(key);
|
|
@@ -67,6 +74,7 @@ export function getEntities() {
|
|
|
67
74
|
return acc;
|
|
68
75
|
}, []);
|
|
69
76
|
}
|
|
77
|
+
exports.getEntities = getEntities;
|
|
70
78
|
function ensureMeta(entity) {
|
|
71
79
|
let meta = metas.get(entity);
|
|
72
80
|
if (meta) {
|
|
@@ -76,7 +84,7 @@ function ensureMeta(entity) {
|
|
|
76
84
|
metas.set(entity, meta);
|
|
77
85
|
return meta;
|
|
78
86
|
}
|
|
79
|
-
|
|
87
|
+
function getMeta(entity) {
|
|
80
88
|
const meta = metas.get(entity);
|
|
81
89
|
if (!meta) {
|
|
82
90
|
throw TypeError(`'${entity.name}' is not an entity`);
|
|
@@ -87,6 +95,7 @@ export function getMeta(entity) {
|
|
|
87
95
|
meta.processed = true;
|
|
88
96
|
return fillRelations(meta);
|
|
89
97
|
}
|
|
98
|
+
exports.getMeta = getMeta;
|
|
90
99
|
function fillRelations(meta) {
|
|
91
100
|
for (const relKey in meta.relations) {
|
|
92
101
|
const relOpts = meta.relations[relKey];
|
|
@@ -103,8 +112,8 @@ function fillRelations(meta) {
|
|
|
103
112
|
if (relOpts.cardinality === 'mm') {
|
|
104
113
|
const idName = meta.fields[meta.id].name;
|
|
105
114
|
const relIdName = relMeta.fields[relMeta.id].name;
|
|
106
|
-
const source = lowerFirst(meta.name) + upperFirst(idName);
|
|
107
|
-
const target = lowerFirst(relMeta.name) + upperFirst(relIdName);
|
|
115
|
+
const source = (0, index_1.lowerFirst)(meta.name) + (0, index_1.upperFirst)(idName);
|
|
116
|
+
const target = (0, index_1.lowerFirst)(relMeta.name) + (0, index_1.upperFirst)(relIdName);
|
|
108
117
|
relOpts.references = [
|
|
109
118
|
{ local: source, foreign: meta.id },
|
|
110
119
|
{ local: target, foreign: relMeta.id },
|
|
@@ -140,7 +149,7 @@ function fillInverseSideRelations(relOpts) {
|
|
|
140
149
|
}
|
|
141
150
|
function fillThroughRelations(entity) {
|
|
142
151
|
const meta = ensureMeta(entity);
|
|
143
|
-
meta.relations = getKeys(meta.fields).reduce((relations, key) => {
|
|
152
|
+
meta.relations = (0, index_1.getKeys)(meta.fields).reduce((relations, key) => {
|
|
144
153
|
const { reference } = meta.fields[key];
|
|
145
154
|
if (reference) {
|
|
146
155
|
const relEntity = reference();
|
|
@@ -166,15 +175,15 @@ function getMappedByRelationKey(relOpts) {
|
|
|
166
175
|
return relOpts.mappedBy;
|
|
167
176
|
}
|
|
168
177
|
function getRelationKeyMap(meta) {
|
|
169
|
-
return getKeys(meta.fields)
|
|
170
|
-
.concat(getKeys(meta.relations))
|
|
178
|
+
return (0, index_1.getKeys)(meta.fields)
|
|
179
|
+
.concat((0, index_1.getKeys)(meta.relations))
|
|
171
180
|
.reduce((acc, key) => {
|
|
172
181
|
acc[key] = key;
|
|
173
182
|
return acc;
|
|
174
183
|
}, {});
|
|
175
184
|
}
|
|
176
185
|
function getIdKey(meta) {
|
|
177
|
-
const id = getKeys(meta.fields).find((key) => meta.fields[key]?.isId);
|
|
186
|
+
const id = (0, index_1.getKeys)(meta.fields).find((key) => meta.fields[key]?.isId);
|
|
178
187
|
return id;
|
|
179
188
|
}
|
|
180
189
|
function extendMeta(target, source) {
|
|
@@ -200,7 +209,7 @@ function inferEntityType(entity, key) {
|
|
|
200
209
|
}
|
|
201
210
|
return inferredType;
|
|
202
211
|
}
|
|
203
|
-
|
|
212
|
+
function isValidEntityType(type) {
|
|
204
213
|
return (typeof type === 'function' &&
|
|
205
214
|
type !== Boolean &&
|
|
206
215
|
type !== String &&
|
|
@@ -210,4 +219,5 @@ export function isValidEntityType(type) {
|
|
|
210
219
|
type !== Symbol &&
|
|
211
220
|
type !== Object);
|
|
212
221
|
}
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRpdHkvZGVjb3JhdG9yL2RlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQWExQixPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDO0FBQzFCLE1BQU0sT0FBTyxHQUFHLDRCQUE0QixDQUFDO0FBQzdDLE1BQU0sS0FBSyxHQUFvQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM1RSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBRXhCLE1BQU0sVUFBVSxXQUFXLENBQUksTUFBZSxFQUFFLEdBQVcsRUFBRSxPQUFxQixFQUFFO0lBQ2xGLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNkLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDMUI7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUN0RSxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFJLE1BQWUsRUFBRSxHQUFXLEVBQUUsSUFBa0I7SUFDMUUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixJQUFJLEVBQUUsRUFBRTtRQUNOLE1BQU0sU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksK0NBQStDLENBQUMsQ0FBQztLQUNqRjtJQUNELE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBSSxNQUFlLEVBQUUsR0FBVyxFQUFFLElBQXdCO0lBQ3RGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7S0FDbEM7SUFDRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQzFELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUksTUFBZSxFQUFFLE9BQXNCLEVBQUU7SUFDdkUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWhDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3pCLE1BQU0sU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksb0JBQW9CLENBQUMsQ0FBQztLQUN0RDtJQUVELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBa0IsQ0FBQztJQUV0RyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzNCLE1BQU0sU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksa0RBQWtELENBQUMsQ0FBQztLQUNwRjtJQUVELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUN4QixNQUFNLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLDhEQUE4RCxDQUFDLENBQUM7U0FDaEc7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNuQztJQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3JDLElBQUksS0FBSyxHQUF3QixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV6RSxPQUFPLEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFO1FBQ25DLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBc0IsQ0FBQyxDQUFDO1FBQzVELFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0IsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEM7SUFFRCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUNQLE1BQU0sU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksMENBQTBDLENBQUMsQ0FBQztLQUM1RTtJQUNELElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRWIsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVc7SUFDekIsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDckQsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNmO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUksTUFBZTtJQUNwQyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLElBQUksSUFBSSxFQUFFO1FBQ1IsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3QyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QixPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFJLE1BQWU7SUFDeEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsTUFBTSxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDO0tBQ3REO0lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN0QixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUksSUFBbUI7SUFDM0MsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBd0IsQ0FBQyxDQUFDO1FBRXpELElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN0QixxQ0FBcUM7WUFDckMsU0FBUztTQUNWO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3BCLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLFNBQVM7U0FDVjtRQUVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEMsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLElBQUksRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDekMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2xELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxVQUFVLEdBQUc7Z0JBQ25CLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDbkMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO2FBQ3ZDLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ25CLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFJLE9BQTJCO0lBQzlELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsT0FBTyxDQUFDLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQXVCLENBQUMsRUFBRTtRQUNuRCxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTztLQUNSO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUEwQixDQUFDLENBQUM7SUFFL0UsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLElBQUksRUFBRTtRQUNoRSxPQUFPLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRSxPQUFPLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUMzQyxPQUFPO0tBQ1I7SUFFRCxPQUFPLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1RSxLQUFLLEVBQUUsT0FBTztRQUNkLE9BQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBSSxNQUFlO0lBQzlDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzlELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQWtCLENBQUMsQ0FBQztRQUN0RCxJQUFJLFNBQVMsRUFBRTtZQUNiLE1BQU0sU0FBUyxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEQsTUFBTSxPQUFPLEdBQW9CO2dCQUMvQixNQUFNLEVBQUUsU0FBUztnQkFDakIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFVBQVUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ2xELENBQUM7WUFDRixTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUksT0FBMkI7SUFDNUQsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVSxFQUFFO1FBQzFDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFJLElBQW1CO0lBQy9DLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0IsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ25CLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDZixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUF1QixDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFJLElBQW1CO0lBQ3RDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RFLE9BQU8sRUFBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBSSxNQUFxQixFQUFFLE1BQXFCO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLElBQUksUUFBUSxFQUFFO1FBQ1osTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0I7S0FDRjtJQUNELE1BQU0sQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0RCxNQUFNLENBQUMsU0FBUyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ2xFLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBSSxNQUFlLEVBQUUsR0FBVztJQUNoRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDbkUsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFJLE1BQWUsRUFBRSxHQUFXO0lBQ3RELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixNQUFNLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRywrQ0FBK0MsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUM7S0FDN0c7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVM7SUFDekMsT0FBTyxDQUNMLE9BQU8sSUFBSSxLQUFLLFVBQVU7UUFDMUIsSUFBSSxLQUFLLE9BQU87UUFDaEIsSUFBSSxLQUFLLE1BQU07UUFDZixJQUFJLEtBQUssTUFBTTtRQUNmLElBQUksS0FBSyxNQUFNO1FBQ2YsSUFBSSxLQUFLLElBQUk7UUFDYixJQUFJLEtBQUssTUFBTTtRQUNmLElBQUksS0FBSyxNQUFNLENBQ2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7XG4gIFJlbGF0aW9uT3B0aW9ucyxcbiAgRmllbGRPcHRpb25zLFxuICBFbnRpdHlPcHRpb25zLFxuICBFbnRpdHlNZXRhLFxuICBUeXBlLFxuICBSZWxhdGlvbktleU1hcCxcbiAgUmVsYXRpb25LZXksXG4gIEtleSxcbiAgRmllbGRLZXksXG4gIElkS2V5LFxufSBmcm9tICcuLi8uLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGhhc0tleXMsIGxvd2VyRmlyc3QsIGdldEtleXMsIHVwcGVyRmlyc3QgfSBmcm9tICcuLi8uLi91dGlsL2luZGV4LmpzJztcblxuY29uc3QgaG9sZGVyID0gZ2xvYmFsVGhpcztcbmNvbnN0IG1ldGFLZXkgPSAnQHVxbC9jb3JlL2VudGl0eS9kZWNvcmF0b3InO1xuY29uc3QgbWV0YXM6IE1hcDxUeXBlPGFueT4sIEVudGl0eU1ldGE8YW55Pj4gPSBob2xkZXJbbWV0YUtleV0gPz8gbmV3IE1hcCgpO1xuaG9sZGVyW21ldGFLZXldID0gbWV0YXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVGaWVsZDxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nLCBvcHRzOiBGaWVsZE9wdGlvbnMgPSB7fSk6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBpZiAoIW9wdHMudHlwZSkge1xuICAgIGNvbnN0IHR5cGUgPSBpbmZlclR5cGUoZW50aXR5LCBrZXkpO1xuICAgIG9wdHMgPSB7IC4uLm9wdHMsIHR5cGUgfTtcbiAgfVxuICBtZXRhLmZpZWxkc1trZXldID0geyAuLi5tZXRhLmZpZWxkc1trZXldLCAuLi57IG5hbWU6IGtleSwgLi4ub3B0cyB9IH07XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lSWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZywgb3B0czogRmllbGRPcHRpb25zKTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIGNvbnN0IGlkID0gZ2V0SWRLZXkobWV0YSk7XG4gIGlmIChpZCkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgYSBzaW5nbGUgZmllbGQgZGVjb3JhdGVkIHdpdGggQElkYCk7XG4gIH1cbiAgcmV0dXJuIGRlZmluZUZpZWxkKGVudGl0eSwga2V5LCB7IC4uLm9wdHMsIGlzSWQ6IHRydWUgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVSZWxhdGlvbjxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nLCBvcHRzOiBSZWxhdGlvbk9wdGlvbnM8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgaWYgKCFvcHRzLmVudGl0eSkge1xuICAgIGNvbnN0IGluZmVycmVkVHlwZSA9IGluZmVyRW50aXR5VHlwZShlbnRpdHksIGtleSk7XG4gICAgb3B0cy5lbnRpdHkgPSAoKSA9PiBpbmZlcnJlZFR5cGU7XG4gIH1cbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgbWV0YS5yZWxhdGlvbnNba2V5XSA9IHsgLi4ubWV0YS5yZWxhdGlvbnNba2V5XSwgLi4ub3B0cyB9O1xuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUVudGl0eTxFPihlbnRpdHk6IFR5cGU8RT4sIG9wdHM6IEVudGl0eU9wdGlvbnMgPSB7fSk6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuXG4gIGlmICghaGFzS2V5cyhtZXRhLmZpZWxkcykpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIGZpZWxkc2ApO1xuICB9XG5cbiAgY29uc3Qgb25EZWxldGVLZXlzID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykuZmlsdGVyKChrZXkpID0+IG1ldGEuZmllbGRzW2tleV0ub25EZWxldGUpIGFzIEZpZWxkS2V5PEU+W107XG5cbiAgaWYgKG9uRGVsZXRlS2V5cy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBvbmUgZmllbGQgd2l0aCAnb25EZWxldGUnIGFzIG1heGltdW1gKTtcbiAgfVxuXG4gIGlmIChvcHRzLnNvZnREZWxldGUpIHtcbiAgICBpZiAoIW9uRGVsZXRlS2V5cy5sZW5ndGgpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgb25lIGZpZWxkIHdpdGggJ29uRGVsZXRlJyB0byBlbmFibGUgJ3NvZnREZWxldGUnYCk7XG4gICAgfVxuICAgIG1ldGEuc29mdERlbGV0ZSA9IG9uRGVsZXRlS2V5c1swXTtcbiAgfVxuXG4gIG1ldGEubmFtZSA9IG9wdHMubmFtZSA/PyBlbnRpdHkubmFtZTtcbiAgbGV0IHByb3RvOiBGdW5jdGlvbkNvbnN0cnVjdG9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGVudGl0eS5wcm90b3R5cGUpO1xuXG4gIHdoaWxlIChwcm90by5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KSB7XG4gICAgY29uc3QgcGFyZW50TWV0YSA9IGVuc3VyZU1ldGEocHJvdG8uY29uc3RydWN0b3IgYXMgVHlwZTxFPik7XG4gICAgZXh0ZW5kTWV0YShtZXRhLCBwYXJlbnRNZXRhKTtcbiAgICBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90byk7XG4gIH1cblxuICBjb25zdCBpZCA9IGdldElkS2V5KG1ldGEpO1xuICBpZiAoIWlkKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBvbmUgZmllbGQgZGVjb3JhdGVkIHdpdGggQElkYCk7XG4gIH1cbiAgbWV0YS5pZCA9IGlkO1xuXG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50aXRpZXMoKTogVHlwZTxhbnk+W10ge1xuICByZXR1cm4gWy4uLm1ldGFzLmVudHJpZXMoKV0ucmVkdWNlKChhY2MsIFtrZXksIHZhbF0pID0+IHtcbiAgICBpZiAodmFsLmlkKSB7XG4gICAgICBhY2MucHVzaChrZXkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG59XG5cbmZ1bmN0aW9uIGVuc3VyZU1ldGE8RT4oZW50aXR5OiBUeXBlPEU+KTogRW50aXR5TWV0YTxFPiB7XG4gIGxldCBtZXRhID0gbWV0YXMuZ2V0KGVudGl0eSk7XG4gIGlmIChtZXRhKSB7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cbiAgbWV0YSA9IHsgZW50aXR5LCBmaWVsZHM6IHt9LCByZWxhdGlvbnM6IHt9IH07XG4gIG1ldGFzLnNldChlbnRpdHksIG1ldGEpO1xuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1ldGE8RT4oZW50aXR5OiBUeXBlPEU+KTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBtZXRhcy5nZXQoZW50aXR5KTtcbiAgaWYgKCFtZXRhKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIGlzIG5vdCBhbiBlbnRpdHlgKTtcbiAgfVxuICBpZiAobWV0YS5wcm9jZXNzZWQpIHtcbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuICBtZXRhLnByb2Nlc3NlZCA9IHRydWU7XG4gIHJldHVybiBmaWxsUmVsYXRpb25zKG1ldGEpO1xufVxuXG5mdW5jdGlvbiBmaWxsUmVsYXRpb25zPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgZm9yIChjb25zdCByZWxLZXkgaW4gbWV0YS5yZWxhdGlvbnMpIHtcbiAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5IGFzIFJlbGF0aW9uS2V5PEU+XTtcblxuICAgIGlmIChyZWxPcHRzLnJlZmVyZW5jZXMpIHtcbiAgICAgIC8vIHJlZmVyZW5jZXMgd2VyZSBtYW51YWxseSBzcGVjaWZpZWRcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChyZWxPcHRzLm1hcHBlZEJ5KSB7XG4gICAgICBmaWxsSW52ZXJzZVNpZGVSZWxhdGlvbnMocmVsT3B0cyk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgIGNvbnN0IHJlbE1ldGEgPSBlbnN1cmVNZXRhKHJlbEVudGl0eSk7XG5cbiAgICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ21tJykge1xuICAgICAgY29uc3QgaWROYW1lID0gbWV0YS5maWVsZHNbbWV0YS5pZF0ubmFtZTtcbiAgICAgIGNvbnN0IHJlbElkTmFtZSA9IHJlbE1ldGEuZmllbGRzW3JlbE1ldGEuaWRdLm5hbWU7XG4gICAgICBjb25zdCBzb3VyY2UgPSBsb3dlckZpcnN0KG1ldGEubmFtZSkgKyB1cHBlckZpcnN0KGlkTmFtZSk7XG4gICAgICBjb25zdCB0YXJnZXQgPSBsb3dlckZpcnN0KHJlbE1ldGEubmFtZSkgKyB1cHBlckZpcnN0KHJlbElkTmFtZSk7XG4gICAgICByZWxPcHRzLnJlZmVyZW5jZXMgPSBbXG4gICAgICAgIHsgbG9jYWw6IHNvdXJjZSwgZm9yZWlnbjogbWV0YS5pZCB9LFxuICAgICAgICB7IGxvY2FsOiB0YXJnZXQsIGZvcmVpZ246IHJlbE1ldGEuaWQgfSxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFt7IGxvY2FsOiBgJHtyZWxLZXl9SWRgLCBmb3JlaWduOiByZWxNZXRhLmlkIH1dO1xuICAgIH1cblxuICAgIGlmIChyZWxPcHRzLnRocm91Z2gpIHtcbiAgICAgIGZpbGxUaHJvdWdoUmVsYXRpb25zKHJlbE9wdHMudGhyb3VnaCgpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YTtcbn1cblxuZnVuY3Rpb24gZmlsbEludmVyc2VTaWRlUmVsYXRpb25zPEU+KHJlbE9wdHM6IFJlbGF0aW9uT3B0aW9uczxFPik6IHZvaWQge1xuICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICBjb25zdCByZWxNZXRhID0gZ2V0TWV0YShyZWxFbnRpdHkpO1xuICByZWxPcHRzLm1hcHBlZEJ5ID0gZ2V0TWFwcGVkQnlSZWxhdGlvbktleShyZWxPcHRzKTtcblxuICBpZiAocmVsTWV0YS5maWVsZHNbcmVsT3B0cy5tYXBwZWRCeSBhcyBGaWVsZEtleTxFPl0pIHtcbiAgICByZWxPcHRzLnJlZmVyZW5jZXMgPSBbeyBsb2NhbDogcmVsTWV0YS5pZCwgZm9yZWlnbjogcmVsT3B0cy5tYXBwZWRCeSB9XTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtYXBwZWRCeVJlbGF0aW9uID0gcmVsTWV0YS5yZWxhdGlvbnNbcmVsT3B0cy5tYXBwZWRCeSBhcyBSZWxhdGlvbktleTxFPl07XG5cbiAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICdtMScgfHwgcmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ21tJykge1xuICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IG1hcHBlZEJ5UmVsYXRpb24ucmVmZXJlbmNlcy5zbGljZSgpLnJldmVyc2UoKTtcbiAgICByZWxPcHRzLnRocm91Z2ggPSBtYXBwZWRCeVJlbGF0aW9uLnRocm91Z2g7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVsT3B0cy5yZWZlcmVuY2VzID0gbWFwcGVkQnlSZWxhdGlvbi5yZWZlcmVuY2VzLm1hcCgoeyBsb2NhbCwgZm9yZWlnbiB9KSA9PiAoe1xuICAgIGxvY2FsOiBmb3JlaWduLFxuICAgIGZvcmVpZ246IGxvY2FsLFxuICB9KSk7XG59XG5cbmZ1bmN0aW9uIGZpbGxUaHJvdWdoUmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPik6IHZvaWQge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBtZXRhLnJlbGF0aW9ucyA9IGdldEtleXMobWV0YS5maWVsZHMpLnJlZHVjZSgocmVsYXRpb25zLCBrZXkpID0+IHtcbiAgICBjb25zdCB7IHJlZmVyZW5jZSB9ID0gbWV0YS5maWVsZHNba2V5IGFzIEZpZWxkS2V5PEU+XTtcbiAgICBpZiAocmVmZXJlbmNlKSB7XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWZlcmVuY2UoKTtcbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBlbnN1cmVNZXRhKHJlbEVudGl0eSk7XG4gICAgICBjb25zdCByZWxLZXkgPSBrZXkuc2xpY2UoMCwgLXJlbE1ldGEuaWQubGVuZ3RoKTtcbiAgICAgIGNvbnN0IHJlbE9wdHM6IFJlbGF0aW9uT3B0aW9ucyA9IHtcbiAgICAgICAgZW50aXR5OiByZWZlcmVuY2UsXG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDoga2V5LCBmb3JlaWduOiByZWxNZXRhLmlkIH1dLFxuICAgICAgfTtcbiAgICAgIHJlbGF0aW9uc1tyZWxLZXldID0gcmVsT3B0cztcbiAgICB9XG4gICAgcmV0dXJuIHJlbGF0aW9ucztcbiAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBnZXRNYXBwZWRCeVJlbGF0aW9uS2V5PEU+KHJlbE9wdHM6IFJlbGF0aW9uT3B0aW9uczxFPik6IEtleTxFPiB7XG4gIGlmICh0eXBlb2YgcmVsT3B0cy5tYXBwZWRCeSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcbiAgICBjb25zdCBrZXlNYXAgPSBnZXRSZWxhdGlvbktleU1hcChyZWxNZXRhKTtcbiAgICByZXR1cm4gcmVsT3B0cy5tYXBwZWRCeShrZXlNYXApO1xuICB9XG4gIHJldHVybiByZWxPcHRzLm1hcHBlZEJ5O1xufVxuXG5mdW5jdGlvbiBnZXRSZWxhdGlvbktleU1hcDxFPihtZXRhOiBFbnRpdHlNZXRhPEU+KTogUmVsYXRpb25LZXlNYXA8RT4ge1xuICByZXR1cm4gZ2V0S2V5cyhtZXRhLmZpZWxkcylcbiAgICAuY29uY2F0KGdldEtleXMobWV0YS5yZWxhdGlvbnMpKVxuICAgIC5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICBhY2Nba2V5XSA9IGtleTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUmVsYXRpb25LZXlNYXA8RT4pO1xufVxuXG5mdW5jdGlvbiBnZXRJZEtleTxFPihtZXRhOiBFbnRpdHlNZXRhPEU+KTogSWRLZXk8RT4ge1xuICBjb25zdCBpZCA9IGdldEtleXMobWV0YS5maWVsZHMpLmZpbmQoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XT8uaXNJZCk7XG4gIHJldHVybiBpZCBhcyBJZEtleTxFPjtcbn1cblxuZnVuY3Rpb24gZXh0ZW5kTWV0YTxFPih0YXJnZXQ6IEVudGl0eU1ldGE8RT4sIHNvdXJjZTogRW50aXR5TWV0YTxFPik6IHZvaWQge1xuICBjb25zdCBzb3VyY2VGaWVsZHMgPSB7IC4uLnNvdXJjZS5maWVsZHMgfTtcbiAgY29uc3QgdGFyZ2V0SWQgPSBnZXRJZEtleSh0YXJnZXQpO1xuICBpZiAodGFyZ2V0SWQpIHtcbiAgICBjb25zdCBzb3VyY2VJZCA9IGdldElkS2V5KHNvdXJjZSk7XG4gICAgaWYgKHNvdXJjZUlkKSB7XG4gICAgICBkZWxldGUgc291cmNlRmllbGRzW3NvdXJjZUlkXTtcbiAgICB9XG4gIH1cbiAgdGFyZ2V0LmZpZWxkcyA9IHsgLi4uc291cmNlRmllbGRzLCAuLi50YXJnZXQuZmllbGRzIH07XG4gIHRhcmdldC5yZWxhdGlvbnMgPSB7IC4uLnNvdXJjZS5yZWxhdGlvbnMsIC4uLnRhcmdldC5yZWxhdGlvbnMgfTtcbn1cblxuZnVuY3Rpb24gaW5mZXJUeXBlPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcpOiBhbnkge1xuICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YSgnZGVzaWduOnR5cGUnLCBlbnRpdHkucHJvdG90eXBlLCBrZXkpO1xufVxuXG5mdW5jdGlvbiBpbmZlckVudGl0eVR5cGU8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZyk6IFR5cGU8YW55PiB7XG4gIGNvbnN0IGluZmVycmVkVHlwZSA9IGluZmVyVHlwZShlbnRpdHksIGtleSk7XG4gIGNvbnN0IGlzVmFsaWRUeXBlID0gaXNWYWxpZEVudGl0eVR5cGUoaW5mZXJyZWRUeXBlKTtcbiAgaWYgKCFpc1ZhbGlkVHlwZSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9LiR7a2V5fScgdHlwZSB3YXMgYXV0by1pbmZlcnJlZCB3aXRoIGludmFsaWQgdHlwZSAnJHtpbmZlcnJlZFR5cGU/Lm5hbWV9J2ApO1xuICB9XG4gIHJldHVybiBpbmZlcnJlZFR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRW50aXR5VHlwZSh0eXBlOiBhbnkpOiB0eXBlIGlzIFR5cGU8YW55PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlICE9PSBCb29sZWFuICYmXG4gICAgdHlwZSAhPT0gU3RyaW5nICYmXG4gICAgdHlwZSAhPT0gTnVtYmVyICYmXG4gICAgdHlwZSAhPT0gQmlnSW50ICYmXG4gICAgdHlwZSAhPT0gRGF0ZSAmJlxuICAgIHR5cGUgIT09IFN5bWJvbCAmJlxuICAgIHR5cGUgIT09IE9iamVjdFxuICApO1xufVxuIl19
|
|
222
|
+
exports.isValidEntityType = isValidEntityType;
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRpdHkvZGVjb3JhdG9yL2RlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEJBQTBCO0FBRTFCLDRDQUE0RTtBQUU1RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUM7QUFDMUIsTUFBTSxPQUFPLEdBQUcsNEJBQTRCLENBQUM7QUFDN0MsTUFBTSxLQUFLLEdBQW9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7QUFFeEIsU0FBZ0IsV0FBVyxDQUFJLE1BQWUsRUFBRSxHQUFXLEVBQUUsT0FBcUIsRUFBRTtJQUNsRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDZCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0tBQzFCO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdEUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBUkQsa0NBUUM7QUFFRCxTQUFnQixRQUFRLENBQUksTUFBZSxFQUFFLEdBQVcsRUFBRSxJQUFrQjtJQUMxRSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFD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dGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHsgUmVsYXRpb25PcHRpb25zLCBGaWVsZE9wdGlvbnMsIEVudGl0eU9wdGlvbnMsIEVudGl0eU1ldGEsIFR5cGUsIFJlbGF0aW9uS2V5TWFwLCBSZWxhdGlvbktleSwgS2V5LCBGaWVsZEtleSwgSWRLZXkgfSBmcm9tICcuLi8uLi90eXBlJztcbmltcG9ydCB7IGhhc0tleXMsIGxvd2VyRmlyc3QsIGdldEtleXMsIHVwcGVyRmlyc3QgfSBmcm9tICcuLi8uLi91dGlsL2luZGV4JztcblxuY29uc3QgaG9sZGVyID0gZ2xvYmFsVGhpcztcbmNvbnN0IG1ldGFLZXkgPSAnQHVxbC9jb3JlL2VudGl0eS9kZWNvcmF0b3InO1xuY29uc3QgbWV0YXM6IE1hcDxUeXBlPGFueT4sIEVudGl0eU1ldGE8YW55Pj4gPSBob2xkZXJbbWV0YUtleV0gPz8gbmV3IE1hcCgpO1xuaG9sZGVyW21ldGFLZXldID0gbWV0YXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVGaWVsZDxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nLCBvcHRzOiBGaWVsZE9wdGlvbnMgPSB7fSk6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBpZiAoIW9wdHMudHlwZSkge1xuICAgIGNvbnN0IHR5cGUgPSBpbmZlclR5cGUoZW50aXR5LCBrZXkpO1xuICAgIG9wdHMgPSB7IC4uLm9wdHMsIHR5cGUgfTtcbiAgfVxuICBtZXRhLmZpZWxkc1trZXldID0geyAuLi5tZXRhLmZpZWxkc1trZXldLCAuLi57IG5hbWU6IGtleSwgLi4ub3B0cyB9IH07XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lSWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZywgb3B0czogRmllbGRPcHRpb25zKTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIGNvbnN0IGlkID0gZ2V0SWRLZXkobWV0YSk7XG4gIGlmIChpZCkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgYSBzaW5nbGUgZmllbGQgZGVjb3JhdGVkIHdpdGggQElkYCk7XG4gIH1cbiAgcmV0dXJuIGRlZmluZUZpZWxkKGVudGl0eSwga2V5LCB7IC4uLm9wdHMsIGlzSWQ6IHRydWUgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVSZWxhdGlvbjxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nLCBvcHRzOiBSZWxhdGlvbk9wdGlvbnM8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgaWYgKCFvcHRzLmVudGl0eSkge1xuICAgIGNvbnN0IGluZmVycmVkVHlwZSA9IGluZmVyRW50aXR5VHlwZShlbnRpdHksIGtleSk7XG4gICAgb3B0cy5lbnRpdHkgPSAoKSA9PiBpbmZlcnJlZFR5cGU7XG4gIH1cbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgbWV0YS5yZWxhdGlvbnNba2V5XSA9IHsgLi4ubWV0YS5yZWxhdGlvbnNba2V5XSwgLi4ub3B0cyB9O1xuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUVudGl0eTxFPihlbnRpdHk6IFR5cGU8RT4sIG9wdHM6IEVudGl0eU9wdGlvbnMgPSB7fSk6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuXG4gIGlmICghaGFzS2V5cyhtZXRhLmZpZWxkcykpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIGZpZWxkc2ApO1xuICB9XG5cbiAgY29uc3Qgb25EZWxldGVLZXlzID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykuZmlsdGVyKChrZXkpID0+IG1ldGEuZmllbGRzW2tleV0ub25EZWxldGUpIGFzIEZpZWxkS2V5PEU+W107XG5cbiAgaWYgKG9uRGVsZXRlS2V5cy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBvbmUgZmllbGQgd2l0aCAnb25EZWxldGUnIGFzIG1heGltdW1gKTtcbiAgfVxuXG4gIGlmIChvcHRzLnNvZnREZWxldGUpIHtcbiAgICBpZiAoIW9uRGVsZXRlS2V5cy5sZW5ndGgpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgb25lIGZpZWxkIHdpdGggJ29uRGVsZXRlJyB0byBlbmFibGUgJ3NvZnREZWxldGUnYCk7XG4gICAgfVxuICAgIG1ldGEuc29mdERlbGV0ZSA9IG9uRGVsZXRlS2V5c1swXTtcbiAgfVxuXG4gIG1ldGEubmFtZSA9IG9wdHMubmFtZSA/PyBlbnRpdHkubmFtZTtcbiAgbGV0IHByb3RvOiBGdW5jdGlvbkNvbnN0cnVjdG9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGVudGl0eS5wcm90b3R5cGUpO1xuXG4gIHdoaWxlIChwcm90by5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KSB7XG4gICAgY29uc3QgcGFyZW50TWV0YSA9IGVuc3VyZU1ldGEocHJvdG8uY29uc3RydWN0b3IgYXMgVHlwZTxFPik7XG4gICAgZXh0ZW5kTWV0YShtZXRhLCBwYXJlbnRNZXRhKTtcbiAgICBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90byk7XG4gIH1cblxuICBjb25zdCBpZCA9IGdldElkS2V5KG1ldGEpO1xuICBpZiAoIWlkKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBvbmUgZmllbGQgZGVjb3JhdGVkIHdpdGggQElkYCk7XG4gIH1cbiAgbWV0YS5pZCA9IGlkO1xuXG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50aXRpZXMoKTogVHlwZTxhbnk+W10ge1xuICByZXR1cm4gWy4uLm1ldGFzLmVudHJpZXMoKV0ucmVkdWNlKChhY2MsIFtrZXksIHZhbF0pID0+IHtcbiAgICBpZiAodmFsLmlkKSB7XG4gICAgICBhY2MucHVzaChrZXkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG59XG5cbmZ1bmN0aW9uIGVuc3VyZU1ldGE8RT4oZW50aXR5OiBUeXBlPEU+KTogRW50aXR5TWV0YTxFPiB7XG4gIGxldCBtZXRhID0gbWV0YXMuZ2V0KGVudGl0eSk7XG4gIGlmIChtZXRhKSB7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cbiAgbWV0YSA9IHsgZW50aXR5LCBmaWVsZHM6IHt9LCByZWxhdGlvbnM6IHt9IH07XG4gIG1ldGFzLnNldChlbnRpdHksIG1ldGEpO1xuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1ldGE8RT4oZW50aXR5OiBUeXBlPEU+KTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBtZXRhcy5nZXQoZW50aXR5KTtcbiAgaWYgKCFtZXRhKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIGlzIG5vdCBhbiBlbnRpdHlgKTtcbiAgfVxuICBpZiAobWV0YS5wcm9jZXNzZWQpIHtcbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuICBtZXRhLnByb2Nlc3NlZCA9IHRydWU7XG4gIHJldHVybiBmaWxsUmVsYXRpb25zKG1ldGEpO1xufVxuXG5mdW5jdGlvbiBmaWxsUmVsYXRpb25zPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgZm9yIChjb25zdCByZWxLZXkgaW4gbWV0YS5yZWxhdGlvbnMpIHtcbiAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5IGFzIFJlbGF0aW9uS2V5PEU+XTtcblxuICAgIGlmIChyZWxPcHRzLnJlZmVyZW5jZXMpIHtcbiAgICAgIC8vIHJlZmVyZW5jZXMgd2VyZSBtYW51YWxseSBzcGVjaWZpZWRcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChyZWxPcHRzLm1hcHBlZEJ5KSB7XG4gICAgICBmaWxsSW52ZXJzZVNpZGVSZWxhdGlvbnMocmVsT3B0cyk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgIGNvbnN0IHJlbE1ldGEgPSBlbnN1cmVNZXRhKHJlbEVudGl0eSk7XG5cbiAgICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ21tJykge1xuICAgICAgY29uc3QgaWROYW1lID0gbWV0YS5maWVsZHNbbWV0YS5pZF0ubmFtZTtcbiAgICAgIGNvbnN0IHJlbElkTmFtZSA9IHJlbE1ldGEuZmllbGRzW3JlbE1ldGEuaWRdLm5hbWU7XG4gICAgICBjb25zdCBzb3VyY2UgPSBsb3dlckZpcnN0KG1ldGEubmFtZSkgKyB1cHBlckZpcnN0KGlkTmFtZSk7XG4gICAgICBjb25zdCB0YXJnZXQgPSBsb3dlckZpcnN0KHJlbE1ldGEubmFtZSkgKyB1cHBlckZpcnN0KHJlbElkTmFtZSk7XG4gICAgICByZWxPcHRzLnJlZmVyZW5jZXMgPSBbXG4gICAgICAgIHsgbG9jYWw6IHNvdXJjZSwgZm9yZWlnbjogbWV0YS5pZCB9LFxuICAgICAgICB7IGxvY2FsOiB0YXJnZXQsIGZvcmVpZ246IHJlbE1ldGEuaWQgfSxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFt7IGxvY2FsOiBgJHtyZWxLZXl9SWRgLCBmb3JlaWduOiByZWxNZXRhLmlkIH1dO1xuICAgIH1cblxuICAgIGlmIChyZWxPcHRzLnRocm91Z2gpIHtcbiAgICAgIGZpbGxUaHJvdWdoUmVsYXRpb25zKHJlbE9wdHMudGhyb3VnaCgpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YTtcbn1cblxuZnVuY3Rpb24gZmlsbEludmVyc2VTaWRlUmVsYXRpb25zPEU+KHJlbE9wdHM6IFJlbGF0aW9uT3B0aW9uczxFPik6IHZvaWQge1xuICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICBjb25zdCByZWxNZXRhID0gZ2V0TWV0YShyZWxFbnRpdHkpO1xuICByZWxPcHRzLm1hcHBlZEJ5ID0gZ2V0TWFwcGVkQnlSZWxhdGlvbktleShyZWxPcHRzKTtcblxuICBpZiAocmVsTWV0YS5maWVsZHNbcmVsT3B0cy5tYXBwZWRCeSBhcyBGaWVsZEtleTxFPl0pIHtcbiAgICByZWxPcHRzLnJlZmVyZW5jZXMgPSBbeyBsb2NhbDogcmVsTWV0YS5pZCwgZm9yZWlnbjogcmVsT3B0cy5tYXBwZWRCeSB9XTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtYXBwZWRCeVJlbGF0aW9uID0gcmVsTWV0YS5yZWxhdGlvbnNbcmVsT3B0cy5tYXBwZWRCeSBhcyBSZWxhdGlvbktleTxFPl07XG5cbiAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICdtMScgfHwgcmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ21tJykge1xuICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IG1hcHBlZEJ5UmVsYXRpb24ucmVmZXJlbmNlcy5zbGljZSgpLnJldmVyc2UoKTtcbiAgICByZWxPcHRzLnRocm91Z2ggPSBtYXBwZWRCeVJlbGF0aW9uLnRocm91Z2g7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVsT3B0cy5yZWZlcmVuY2VzID0gbWFwcGVkQnlSZWxhdGlvbi5yZWZlcmVuY2VzLm1hcCgoeyBsb2NhbCwgZm9yZWlnbiB9KSA9PiAoe1xuICAgIGxvY2FsOiBmb3JlaWduLFxuICAgIGZvcmVpZ246IGxvY2FsLFxuICB9KSk7XG59XG5cbmZ1bmN0aW9uIGZpbGxUaHJvdWdoUmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPik6IHZvaWQge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBtZXRhLnJlbGF0aW9ucyA9IGdldEtleXMobWV0YS5maWVsZHMpLnJlZHVjZSgocmVsYXRpb25zLCBrZXkpID0+IHtcbiAgICBjb25zdCB7IHJlZmVyZW5jZSB9ID0gbWV0YS5maWVsZHNba2V5IGFzIEZpZWxkS2V5PEU+XTtcbiAgICBpZiAocmVmZXJlbmNlKSB7XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWZlcmVuY2UoKTtcbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBlbnN1cmVNZXRhKHJlbEVudGl0eSk7XG4gICAgICBjb25zdCByZWxLZXkgPSBrZXkuc2xpY2UoMCwgLXJlbE1ldGEuaWQubGVuZ3RoKTtcbiAgICAgIGNvbnN0IHJlbE9wdHM6IFJlbGF0aW9uT3B0aW9ucyA9IHtcbiAgICAgICAgZW50aXR5OiByZWZlcmVuY2UsXG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDoga2V5LCBmb3JlaWduOiByZWxNZXRhLmlkIH1dLFxuICAgICAgfTtcbiAgICAgIHJlbGF0aW9uc1tyZWxLZXldID0gcmVsT3B0cztcbiAgICB9XG4gICAgcmV0dXJuIHJlbGF0aW9ucztcbiAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBnZXRNYXBwZWRCeVJlbGF0aW9uS2V5PEU+KHJlbE9wdHM6IFJlbGF0aW9uT3B0aW9uczxFPik6IEtleTxFPiB7XG4gIGlmICh0eXBlb2YgcmVsT3B0cy5tYXBwZWRCeSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcbiAgICBjb25zdCBrZXlNYXAgPSBnZXRSZWxhdGlvbktleU1hcChyZWxNZXRhKTtcbiAgICByZXR1cm4gcmVsT3B0cy5tYXBwZWRCeShrZXlNYXApO1xuICB9XG4gIHJldHVybiByZWxPcHRzLm1hcHBlZEJ5O1xufVxuXG5mdW5jdGlvbiBnZXRSZWxhdGlvbktleU1hcDxFPihtZXRhOiBFbnRpdHlNZXRhPEU+KTogUmVsYXRpb25LZXlNYXA8RT4ge1xuICByZXR1cm4gZ2V0S2V5cyhtZXRhLmZpZWxkcylcbiAgICAuY29uY2F0KGdldEtleXMobWV0YS5yZWxhdGlvbnMpKVxuICAgIC5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICBhY2Nba2V5XSA9IGtleTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUmVsYXRpb25LZXlNYXA8RT4pO1xufVxuXG5mdW5jdGlvbiBnZXRJZEtleTxFPihtZXRhOiBFbnRpdHlNZXRhPEU+KTogSWRLZXk8RT4ge1xuICBjb25zdCBpZCA9IGdldEtleXMobWV0YS5maWVsZHMpLmZpbmQoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XT8uaXNJZCk7XG4gIHJldHVybiBpZCBhcyBJZEtleTxFPjtcbn1cblxuZnVuY3Rpb24gZXh0ZW5kTWV0YTxFPih0YXJnZXQ6IEVudGl0eU1ldGE8RT4sIHNvdXJjZTogRW50aXR5TWV0YTxFPik6IHZvaWQge1xuICBjb25zdCBzb3VyY2VGaWVsZHMgPSB7IC4uLnNvdXJjZS5maWVsZHMgfTtcbiAgY29uc3QgdGFyZ2V0SWQgPSBnZXRJZEtleSh0YXJnZXQpO1xuICBpZiAodGFyZ2V0SWQpIHtcbiAgICBjb25zdCBzb3VyY2VJZCA9IGdldElkS2V5KHNvdXJjZSk7XG4gICAgaWYgKHNvdXJjZUlkKSB7XG4gICAgICBkZWxldGUgc291cmNlRmllbGRzW3NvdXJjZUlkXTtcbiAgICB9XG4gIH1cbiAgdGFyZ2V0LmZpZWxkcyA9IHsgLi4uc291cmNlRmllbGRzLCAuLi50YXJnZXQuZmllbGRzIH07XG4gIHRhcmdldC5yZWxhdGlvbnMgPSB7IC4uLnNvdXJjZS5yZWxhdGlvbnMsIC4uLnRhcmdldC5yZWxhdGlvbnMgfTtcbn1cblxuZnVuY3Rpb24gaW5mZXJUeXBlPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcpOiBhbnkge1xuICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YSgnZGVzaWduOnR5cGUnLCBlbnRpdHkucHJvdG90eXBlLCBrZXkpO1xufVxuXG5mdW5jdGlvbiBpbmZlckVudGl0eVR5cGU8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZyk6IFR5cGU8YW55PiB7XG4gIGNvbnN0IGluZmVycmVkVHlwZSA9IGluZmVyVHlwZShlbnRpdHksIGtleSk7XG4gIGNvbnN0IGlzVmFsaWRUeXBlID0gaXNWYWxpZEVudGl0eVR5cGUoaW5mZXJyZWRUeXBlKTtcbiAgaWYgKCFpc1ZhbGlkVHlwZSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9LiR7a2V5fScgdHlwZSB3YXMgYXV0by1pbmZlcnJlZCB3aXRoIGludmFsaWQgdHlwZSAnJHtpbmZlcnJlZFR5cGU/Lm5hbWV9J2ApO1xuICB9XG4gIHJldHVybiBpbmZlcnJlZFR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRW50aXR5VHlwZSh0eXBlOiBhbnkpOiB0eXBlIGlzIFR5cGU8YW55PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlICE9PSBCb29sZWFuICYmXG4gICAgdHlwZSAhPT0gU3RyaW5nICYmXG4gICAgdHlwZSAhPT0gTnVtYmVyICYmXG4gICAgdHlwZSAhPT0gQmlnSW50ICYmXG4gICAgdHlwZSAhPT0gRGF0ZSAmJlxuICAgIHR5cGUgIT09IFN5bWJvbCAmJlxuICAgIHR5cGUgIT09IE9iamVjdFxuICApO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EntityOptions, Type } from '../../type/index
|
|
1
|
+
import { EntityOptions, Type } from '../../type/index';
|
|
2
2
|
export declare function Entity<E>(opts?: EntityOptions): (entity: Type<E>) => void;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Entity = void 0;
|
|
4
|
+
const definition_1 = require("./definition");
|
|
5
|
+
function Entity(opts) {
|
|
3
6
|
return (entity) => {
|
|
4
|
-
defineEntity(entity, opts);
|
|
7
|
+
(0, definition_1.defineEntity)(entity, opts);
|
|
5
8
|
};
|
|
6
9
|
}
|
|
7
|
-
|
|
10
|
+
exports.Entity = Entity;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9kZWNvcmF0b3IvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUE0QztBQUU1QyxTQUFnQixNQUFNLENBQUksSUFBb0I7SUFDNUMsT0FBTyxDQUFDLE1BQWUsRUFBUSxFQUFFO1FBQy9CLElBQUEseUJBQVksRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUpELHdCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5T3B0aW9ucywgVHlwZSB9IGZyb20gJy4uLy4uL3R5cGUvaW5kZXgnO1xuaW1wb3J0IHsgZGVmaW5lRW50aXR5IH0gZnJvbSAnLi9kZWZpbml0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIEVudGl0eTxFPihvcHRzPzogRW50aXR5T3B0aW9ucykge1xuICByZXR1cm4gKGVudGl0eTogVHlwZTxFPik6IHZvaWQgPT4ge1xuICAgIGRlZmluZUVudGl0eShlbnRpdHksIG9wdHMpO1xuICB9O1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FieldOptions } from '../../type/index
|
|
1
|
+
import { FieldOptions } from '../../type/index';
|
|
2
2
|
export declare function Field<E>(opts?: FieldOptions): (target: object, key: string) => void;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Field = void 0;
|
|
4
|
+
const definition_1 = require("./definition");
|
|
5
|
+
function Field(opts) {
|
|
3
6
|
return (target, key) => {
|
|
4
7
|
const entity = target.constructor;
|
|
5
|
-
defineField(entity, key, opts);
|
|
8
|
+
(0, definition_1.defineField)(entity, key, opts);
|
|
6
9
|
};
|
|
7
10
|
}
|
|
8
|
-
|
|
11
|
+
exports.Field = Field;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBMkM7QUFFM0MsU0FBZ0IsS0FBSyxDQUFJLElBQW1CO0lBQzFDLE9BQU8sQ0FBQyxNQUFjLEVBQUUsR0FBVyxFQUFRLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQXNCLENBQUM7UUFDN0MsSUFBQSx3QkFBVyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUxELHNCQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRPcHRpb25zLCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZS9pbmRleCc7XG5pbXBvcnQgeyBkZWZpbmVGaWVsZCB9IGZyb20gJy4vZGVmaW5pdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBGaWVsZDxFPihvcHRzPzogRmllbGRPcHRpb25zKSB7XG4gIHJldHVybiAodGFyZ2V0OiBvYmplY3QsIGtleTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZW50aXR5ID0gdGFyZ2V0LmNvbnN0cnVjdG9yIGFzIFR5cGU8RT47XG4gICAgZGVmaW5lRmllbGQoZW50aXR5LCBrZXksIG9wdHMpO1xuICB9O1xufVxuIl19
|
package/entity/decorator/id.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FieldOptions } from '../../type/index
|
|
1
|
+
import { FieldOptions } from '../../type/index';
|
|
2
2
|
export declare function Id<E>(opts?: Omit<FieldOptions, 'isId'>): (target: object, key: string) => void;
|
package/entity/decorator/id.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Id = void 0;
|
|
4
|
+
const definition_1 = require("./definition");
|
|
5
|
+
function Id(opts) {
|
|
3
6
|
return (target, key) => {
|
|
4
7
|
const entity = target.constructor;
|
|
5
|
-
defineId(entity, key, opts);
|
|
8
|
+
(0, definition_1.defineId)(entity, key, opts);
|
|
6
9
|
};
|
|
7
10
|
}
|
|
8
|
-
|
|
11
|
+
exports.Id = Id;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBd0M7QUFFeEMsU0FBZ0IsRUFBRSxDQUFJLElBQWlDO0lBQ3JELE9BQU8sQ0FBQyxNQUFjLEVBQUUsR0FBVyxFQUFRLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQXNCLENBQUM7UUFDN0MsSUFBQSxxQkFBUSxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUxELGdCQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRPcHRpb25zLCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZS9pbmRleCc7XG5pbXBvcnQgeyBkZWZpbmVJZCB9IGZyb20gJy4vZGVmaW5pdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBJZDxFPihvcHRzPzogT21pdDxGaWVsZE9wdGlvbnMsICdpc0lkJz4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBlbnRpdHkgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgVHlwZTxFPjtcbiAgICBkZWZpbmVJZChlbnRpdHksIGtleSwgb3B0cyk7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './entity
|
|
2
|
-
export * from './id
|
|
3
|
-
export * from './field
|
|
4
|
-
export * from './relation
|
|
5
|
-
export { getMeta, getEntities } from './definition
|
|
1
|
+
export * from './entity';
|
|
2
|
+
export * from './id';
|
|
3
|
+
export * from './field';
|
|
4
|
+
export * from './relation';
|
|
5
|
+
export { getMeta, getEntities } from './definition';
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEntities = exports.getMeta = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
tslib_1.__exportStar(require("./entity"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./id"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./field"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./relation"), exports);
|
|
9
|
+
var definition_1 = require("./definition");
|
|
10
|
+
Object.defineProperty(exports, "getMeta", { enumerable: true, get: function () { return definition_1.getMeta; } });
|
|
11
|
+
Object.defineProperty(exports, "getEntities", { enumerable: true, get: function () { return definition_1.getEntities; } });
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbURBQXlCO0FBQ3pCLCtDQUFxQjtBQUNyQixrREFBd0I7QUFDeEIscURBQTJCO0FBQzNCLDJDQUFvRDtBQUEzQyxxR0FBQSxPQUFPLE9BQUE7QUFBRSx5R0FBQSxXQUFXLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2lkJztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWxhdGlvbic7XG5leHBvcnQgeyBnZXRNZXRhLCBnZXRFbnRpdGllcyB9IGZyb20gJy4vZGVmaW5pdGlvbic7XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RelationOptions, RelationOneToOneOptions, RelationOneToManyOptions, RelationManyToOneOptions, RelationManyToManyOptions } from '../../type
|
|
1
|
+
import { RelationOptions, RelationOneToOneOptions, RelationOneToManyOptions, RelationManyToOneOptions, RelationManyToManyOptions } from '../../type';
|
|
2
2
|
declare function Relation<E>(opts: RelationOptions<E>): (target: object, key: string) => void;
|
|
3
3
|
declare type RelationReturn = ReturnType<typeof Relation>;
|
|
4
4
|
export declare function OneToOne<E>(opts?: RelationOneToOneOptions<E>): RelationReturn;
|
|
@@ -1,20 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ManyToMany = exports.OneToMany = exports.ManyToOne = exports.OneToOne = void 0;
|
|
4
|
+
const definition_1 = require("./definition");
|
|
2
5
|
function Relation(opts) {
|
|
3
6
|
return (target, key) => {
|
|
4
7
|
const entity = target.constructor;
|
|
5
|
-
defineRelation(entity, key, opts);
|
|
8
|
+
(0, definition_1.defineRelation)(entity, key, opts);
|
|
6
9
|
};
|
|
7
10
|
}
|
|
8
|
-
|
|
11
|
+
function OneToOne(opts) {
|
|
9
12
|
return Relation({ cardinality: '11', ...opts });
|
|
10
13
|
}
|
|
11
|
-
|
|
14
|
+
exports.OneToOne = OneToOne;
|
|
15
|
+
function ManyToOne(opts) {
|
|
12
16
|
return Relation({ cardinality: 'm1', ...opts });
|
|
13
17
|
}
|
|
14
|
-
|
|
18
|
+
exports.ManyToOne = ManyToOne;
|
|
19
|
+
function OneToMany(opts) {
|
|
15
20
|
return Relation({ cardinality: '1m', ...opts });
|
|
16
21
|
}
|
|
17
|
-
|
|
22
|
+
exports.OneToMany = OneToMany;
|
|
23
|
+
function ManyToMany(opts) {
|
|
18
24
|
return Relation({ cardinality: 'mm', ...opts });
|
|
19
25
|
}
|
|
20
|
-
|
|
26
|
+
exports.ManyToMany = ManyToMany;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L2RlY29yYXRvci9yZWxhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQSw2Q0FBOEM7QUFFOUMsU0FBUyxRQUFRLENBQUksSUFBd0I7SUFDM0MsT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBc0IsQ0FBQztRQUM3QyxJQUFBLDJCQUFjLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBSUQsU0FBZ0IsUUFBUSxDQUFJLElBQWlDO0lBQzNELE9BQU8sUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELDRCQUVDO0FBRUQsU0FBZ0IsU0FBUyxDQUFJLElBQWtDO0lBQzdELE9BQU8sUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsU0FBUyxDQUFJLElBQWlDO0lBQzVELE9BQU8sUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsVUFBVSxDQUFJLElBQWtDO0lBQzlELE9BQU8sUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELGdDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUmVsYXRpb25PcHRpb25zLFxuICBSZWxhdGlvbk9uZVRvT25lT3B0aW9ucyxcbiAgUmVsYXRpb25PbmVUb01hbnlPcHRpb25zLFxuICBSZWxhdGlvbk1hbnlUb09uZU9wdGlvbnMsXG4gIFJlbGF0aW9uTWFueVRvTWFueU9wdGlvbnMsXG4gIFR5cGUsXG59IGZyb20gJy4uLy4uL3R5cGUnO1xuaW1wb3J0IHsgZGVmaW5lUmVsYXRpb24gfSBmcm9tICcuL2RlZmluaXRpb24nO1xuXG5mdW5jdGlvbiBSZWxhdGlvbjxFPihvcHRzOiBSZWxhdGlvbk9wdGlvbnM8RT4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBlbnRpdHkgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgVHlwZTxFPjtcbiAgICBkZWZpbmVSZWxhdGlvbihlbnRpdHksIGtleSwgb3B0cyk7XG4gIH07XG59XG5cbnR5cGUgUmVsYXRpb25SZXR1cm4gPSBSZXR1cm5UeXBlPHR5cGVvZiBSZWxhdGlvbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBPbmVUb09uZTxFPihvcHRzPzogUmVsYXRpb25PbmVUb09uZU9wdGlvbnM8RT4pOiBSZWxhdGlvblJldHVybiB7XG4gIHJldHVybiBSZWxhdGlvbih7IGNhcmRpbmFsaXR5OiAnMTEnLCAuLi5vcHRzIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTWFueVRvT25lPEU+KG9wdHM/OiBSZWxhdGlvbk1hbnlUb09uZU9wdGlvbnM8RT4pOiBSZWxhdGlvblJldHVybiB7XG4gIHJldHVybiBSZWxhdGlvbih7IGNhcmRpbmFsaXR5OiAnbTEnLCAuLi5vcHRzIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gT25lVG9NYW55PEU+KG9wdHM6IFJlbGF0aW9uT25lVG9NYW55T3B0aW9uczxFPik6IFJlbGF0aW9uUmV0dXJuIHtcbiAgcmV0dXJuIFJlbGF0aW9uKHsgY2FyZGluYWxpdHk6ICcxbScsIC4uLm9wdHMgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNYW55VG9NYW55PEU+KG9wdHM6IFJlbGF0aW9uTWFueVRvTWFueU9wdGlvbnM8RT4pOiBSZWxhdGlvblJldHVybiB7XG4gIHJldHVybiBSZWxhdGlvbih7IGNhcmRpbmFsaXR5OiAnbW0nLCAuLi5vcHRzIH0pO1xufVxuIl19
|
package/entity/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './decorator/index
|
|
1
|
+
export * from './decorator/index';
|
package/entity/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./decorator/index"), exports);
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW50aXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDREQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9yL2luZGV4JztcbiJdfQ==
|
package/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './options
|
|
1
|
+
export * from './options';
|
package/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./options"), exports);
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0RBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vcHRpb25zJztcbiJdfQ==
|
package/options.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Querier, QuerierPool, Repository, Type } from './type/index
|
|
1
|
+
import { Querier, QuerierPool, Repository, Type } from './type/index';
|
|
2
2
|
export declare function setDefaultQuerierPool<T extends QuerierPool = QuerierPool>(pool: T): void;
|
|
3
3
|
export declare function getDefaultQuerierPool(): QuerierPool;
|
|
4
4
|
export declare function getQuerier(): Promise<Querier>;
|
package/options.js
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRepository = exports.getQuerier = exports.getDefaultQuerierPool = exports.setDefaultQuerierPool = void 0;
|
|
4
|
+
const index_1 = require("./repository/index");
|
|
2
5
|
let defaultPool;
|
|
3
|
-
|
|
6
|
+
function setDefaultQuerierPool(pool) {
|
|
4
7
|
defaultPool = pool;
|
|
5
8
|
}
|
|
6
|
-
|
|
9
|
+
exports.setDefaultQuerierPool = setDefaultQuerierPool;
|
|
10
|
+
function getDefaultQuerierPool() {
|
|
7
11
|
if (!defaultPool) {
|
|
8
12
|
throw new TypeError('A default querier-pool has to be set first');
|
|
9
13
|
}
|
|
10
14
|
return defaultPool;
|
|
11
15
|
}
|
|
12
|
-
|
|
16
|
+
exports.getDefaultQuerierPool = getDefaultQuerierPool;
|
|
17
|
+
function getQuerier() {
|
|
13
18
|
return defaultPool.getQuerier();
|
|
14
19
|
}
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
exports.getQuerier = getQuerier;
|
|
21
|
+
function getRepository(entity, querier) {
|
|
22
|
+
return new index_1.GenericRepository(entity, querier);
|
|
17
23
|
}
|
|
18
|
-
|
|
24
|
+
exports.getRepository = getRepository;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUF1RDtBQUd2RCxJQUFJLFdBQXdCLENBQUM7QUFFN0IsU0FBZ0IscUJBQXFCLENBQXNDLElBQU87SUFDaEYsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRkQsc0RBRUM7QUFFRCxTQUFnQixxQkFBcUI7SUFDbkMsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixNQUFNLElBQUksU0FBUyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7S0FDbkU7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBTEQsc0RBS0M7QUFFRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxNQUFlLEVBQUUsT0FBZ0I7SUFDaEUsT0FBTyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsc0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljUmVwb3NpdG9yeSB9IGZyb20gJy4vcmVwb3NpdG9yeS9pbmRleCc7XG5pbXBvcnQgeyBRdWVyaWVyLCBRdWVyaWVyUG9vbCwgUmVwb3NpdG9yeSwgVHlwZSB9IGZyb20gJy4vdHlwZS9pbmRleCc7XG5cbmxldCBkZWZhdWx0UG9vbDogUXVlcmllclBvb2w7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXREZWZhdWx0UXVlcmllclBvb2w8VCBleHRlbmRzIFF1ZXJpZXJQb29sID0gUXVlcmllclBvb2w+KHBvb2w6IFQpOiB2b2lkIHtcbiAgZGVmYXVsdFBvb2wgPSBwb29sO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFF1ZXJpZXJQb29sKCk6IFF1ZXJpZXJQb29sIHtcbiAgaWYgKCFkZWZhdWx0UG9vbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0EgZGVmYXVsdCBxdWVyaWVyLXBvb2wgaGFzIHRvIGJlIHNldCBmaXJzdCcpO1xuICB9XG4gIHJldHVybiBkZWZhdWx0UG9vbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJpZXIoKTogUHJvbWlzZTxRdWVyaWVyPiB7XG4gIHJldHVybiBkZWZhdWx0UG9vbC5nZXRRdWVyaWVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBvc2l0b3J5PEU+KGVudGl0eTogVHlwZTxFPiwgcXVlcmllcjogUXVlcmllcik6IFJlcG9zaXRvcnk8RT4ge1xuICByZXR1cm4gbmV3IEdlbmVyaWNSZXBvc2l0b3J5KGVudGl0eSwgcXVlcmllcik7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -3,10 +3,8 @@
|
|
|
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.
|
|
7
|
-
"type": "module",
|
|
6
|
+
"version": "1.0.8",
|
|
8
7
|
"main": "index.js",
|
|
9
|
-
"exports": "./index.js",
|
|
10
8
|
"types": "./index.d.ts",
|
|
11
9
|
"scripts": {
|
|
12
10
|
"copyfiles": "copyfiles -f package.json ../../README.md ../../CHANGELOG.md dist",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IdValue, Querier, Query, QueryCriteria, QueryOne, QueryOptions, QueryProject, QuerySearch, QueryUnique, RelationKey, Repository, Type } from '../type
|
|
1
|
+
import { IdValue, Querier, Query, QueryCriteria, QueryOne, QueryOptions, QueryProject, QuerySearch, QueryUnique, RelationKey, Repository, Type } from '../type';
|
|
2
2
|
export declare abstract class AbstractQuerier implements Querier {
|
|
3
3
|
abstract count<E>(entity: Type<E>, qm?: QuerySearch<E>): Promise<number>;
|
|
4
4
|
findOneById<E>(entity: Type<E>, id: IdValue<E>, qm?: QueryUnique<E>): Promise<E>;
|
|
@@ -11,8 +11,8 @@ export declare abstract class AbstractQuerier implements Querier {
|
|
|
11
11
|
abstract updateMany<E>(entity: Type<E>, qm: QueryCriteria<E>, payload: E): Promise<number>;
|
|
12
12
|
deleteOneById<E>(entity: Type<E>, id: IdValue<E>, opts?: QueryOptions): Promise<number>;
|
|
13
13
|
abstract deleteMany<E>(entity: Type<E>, qm: QueryCriteria<E>, opts?: QueryOptions): Promise<number>;
|
|
14
|
-
saveOne<E>(entity: Type<E>, payload: E): Promise<IdValue<E> | E[import("../type
|
|
15
|
-
saveMany<E>(entity: Type<E>, payload: E[]): Promise<(Awaited<IdValue<E>> | Awaited<E[import("../type
|
|
14
|
+
saveOne<E>(entity: Type<E>, payload: E): Promise<IdValue<E> | E[import("../type").IdKey<E>]>;
|
|
15
|
+
saveMany<E>(entity: Type<E>, payload: E[]): Promise<(Awaited<IdValue<E>> | Awaited<E[import("../type").IdKey<E>]>)[]>;
|
|
16
16
|
protected findToManyRelations<E>(entity: Type<E>, payload: E[], project: QueryProject<E>): Promise<void>;
|
|
17
17
|
protected putChildrenInParents<E>(parents: E[], children: E[], parentIdKey: string, referenceKey: string, relKey: string): void;
|
|
18
18
|
protected insertRelations<E>(entity: Type<E>, payload: E[]): Promise<void>;
|