@uql/core 0.4.68 → 0.4.74

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.
Files changed (53) hide show
  1. package/README.md +1 -1
  2. package/dialect/{baseSqlDialect.d.ts → abstractSqlDialect.d.ts} +1 -1
  3. package/dialect/abstractSqlDialect.js +367 -0
  4. package/dialect/index.d.ts +1 -1
  5. package/dialect/index.js +5 -5
  6. package/dialect/mysqlDialect.d.ts +2 -4
  7. package/dialect/mysqlDialect.js +3 -13
  8. package/dialect/postgresDialect.d.ts +2 -2
  9. package/dialect/postgresDialect.js +6 -6
  10. package/dialect/sqliteDialect.d.ts +4 -2
  11. package/dialect/sqliteDialect.js +12 -3
  12. package/entity/decorator/definition.js +21 -21
  13. package/entity/decorator/entity.js +2 -2
  14. package/entity/decorator/field.js +2 -2
  15. package/entity/decorator/id.js +2 -2
  16. package/entity/decorator/index.js +5 -5
  17. package/entity/decorator/relation.js +2 -2
  18. package/entity/index.js +2 -2
  19. package/index.js +2 -2
  20. package/options.js +3 -3
  21. package/package.json +6 -6
  22. package/querier/{baseQuerier.d.ts → abstractQuerier.d.ts} +4 -3
  23. package/querier/abstractQuerier.js +230 -0
  24. package/querier/abstractSqlQuerier.d.ts +27 -0
  25. package/querier/abstractSqlQuerier.js +88 -0
  26. package/querier/decorator/index.js +3 -3
  27. package/querier/decorator/transactional.js +4 -4
  28. package/querier/index.d.ts +2 -2
  29. package/querier/index.js +4 -4
  30. package/repository/{baseRepository.d.ts → genericRepository.d.ts} +1 -1
  31. package/repository/genericRepository.js +50 -0
  32. package/repository/index.d.ts +1 -1
  33. package/repository/index.js +2 -2
  34. package/type/entity.d.ts +14 -13
  35. package/type/entity.js +1 -7
  36. package/type/index.d.ts +1 -0
  37. package/type/index.js +9 -8
  38. package/type/options.d.ts +0 -4
  39. package/type/options.js +1 -1
  40. package/type/querier.d.ts +8 -91
  41. package/type/querier.js +1 -1
  42. package/type/querierPool.d.ts +2 -27
  43. package/type/querierPool.js +1 -1
  44. package/type/universalQuerier.d.ts +96 -0
  45. package/type/universalQuerier.js +3 -0
  46. package/util/dialect.util.js +5 -5
  47. package/util/index.js +6 -6
  48. package/util/sql.util.js +4 -4
  49. package/dialect/baseSqlDialect.js +0 -365
  50. package/querier/baseQuerier.js +0 -230
  51. package/querier/sqlQuerier.d.ts +0 -19
  52. package/querier/sqlQuerier.js +0 -91
  53. package/repository/baseRepository.js +0 -50
@@ -1,230 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseQuerier = void 0;
4
- const repository_1 = require("@uql/core/repository");
5
- const util_1 = require("@uql/core/util");
6
- const entity_1 = require("@uql/core/entity");
7
- class BaseQuerier {
8
- findOneById(entity, id, qm = {}) {
9
- return this.findOne(entity, { ...qm, $filter: id });
10
- }
11
- async findOne(entity, qm) {
12
- const rows = await this.findMany(entity, { ...qm, $limit: 1 });
13
- return rows[0];
14
- }
15
- findManyAndCount(entity, qm) {
16
- return Promise.all([this.findMany(entity, qm), this.count(entity, qm)]);
17
- }
18
- async insertOne(entity, payload) {
19
- const [id] = await this.insertMany(entity, [payload]);
20
- return id;
21
- }
22
- updateOneById(entity, id, payload) {
23
- return this.updateMany(entity, { $filter: id }, payload);
24
- }
25
- deleteOneById(entity, id, opts) {
26
- return this.deleteMany(entity, { $filter: id }, opts);
27
- }
28
- async saveOne(entity, payload) {
29
- const [id] = await this.saveMany(entity, [payload]);
30
- return id;
31
- }
32
- async saveMany(entity, payload) {
33
- const meta = entity_1.getMeta(entity);
34
- const ids = [];
35
- const updates = [];
36
- const inserts = [];
37
- for (const it of payload) {
38
- if (it[meta.id]) {
39
- if (util_1.getKeys(it).length === 1) {
40
- ids.push(it[meta.id]);
41
- }
42
- else {
43
- updates.push(it);
44
- }
45
- }
46
- else {
47
- inserts.push(it);
48
- }
49
- }
50
- return Promise.all([
51
- ...ids,
52
- ...(inserts.length ? await this.insertMany(entity, inserts) : []),
53
- ...updates.map(async (it) => {
54
- const { [meta.id]: id, ...data } = it;
55
- await this.updateOneById(entity, id, data);
56
- return id;
57
- }),
58
- ]);
59
- }
60
- async findToManyRelations(entity, payload, project) {
61
- const meta = entity_1.getMeta(entity);
62
- const relations = util_1.getProjectRelationKeys(meta, project);
63
- for (const relKey of relations) {
64
- const relOpts = meta.relations[relKey];
65
- const relEntity = relOpts.entity();
66
- const relProject = util_1.clone(project[relKey]);
67
- const relQuery = relProject === true || relProject === undefined ? {} : Array.isArray(relProject) ? { $project: relProject } : relProject;
68
- const ids = payload.map((it) => it[meta.id]);
69
- if (relOpts.through) {
70
- const localField = relOpts.references[0].local;
71
- const throughEntity = relOpts.through();
72
- const throughMeta = entity_1.getMeta(throughEntity);
73
- const targetRelKey = Object.keys(throughMeta.relations).find((key) => throughMeta.relations[key].references.some(({ local }) => local === relOpts.references[1].local));
74
- const throughFounds = await this.findMany(throughEntity, {
75
- $project: {
76
- [localField]: true,
77
- [targetRelKey]: {
78
- ...relQuery,
79
- $required: true,
80
- },
81
- },
82
- $filter: {
83
- [localField]: ids,
84
- },
85
- });
86
- const founds = throughFounds.map((it) => ({ ...it[targetRelKey], [localField]: it[localField] }));
87
- this.putChildrenInParents(payload, founds, meta.id, localField, relKey);
88
- }
89
- else if (relOpts.cardinality === '1m') {
90
- const foreignField = relOpts.references[0].foreign;
91
- if (relQuery.$project) {
92
- if (Array.isArray(relQuery.$project)) {
93
- if (!relQuery.$project.includes(foreignField)) {
94
- relQuery.$project.push(foreignField);
95
- }
96
- }
97
- else if (!relQuery.$project[foreignField]) {
98
- relQuery.$project[foreignField] = true;
99
- }
100
- }
101
- relQuery.$filter = { [foreignField]: ids };
102
- const founds = await this.findMany(relEntity, relQuery);
103
- this.putChildrenInParents(payload, founds, meta.id, foreignField, relKey);
104
- }
105
- }
106
- }
107
- putChildrenInParents(parents, children, parentIdKey, referenceKey, relKey) {
108
- const childrenByParentMap = children.reduce((acc, child) => {
109
- const parenId = child[referenceKey];
110
- if (!acc[parenId]) {
111
- acc[parenId] = [];
112
- }
113
- acc[parenId].push(child);
114
- return acc;
115
- }, {});
116
- for (const parent of parents) {
117
- const parentId = parent[parentIdKey];
118
- parent[relKey] = childrenByParentMap[parentId];
119
- }
120
- }
121
- async insertRelations(entity, payload) {
122
- const meta = entity_1.getMeta(entity);
123
- await Promise.all(payload.map((it) => {
124
- const relKeys = util_1.getPersistableRelations(meta, it, 'persist');
125
- if (!relKeys.length) {
126
- return;
127
- }
128
- return Promise.all(relKeys.map((relKey) => this.saveRelation(entity, it, relKey)));
129
- }));
130
- }
131
- async updateRelations(entity, criteria, payload) {
132
- const meta = entity_1.getMeta(entity);
133
- const relKeys = util_1.getPersistableRelations(meta, payload, 'persist');
134
- if (!relKeys.length) {
135
- return;
136
- }
137
- const founds = await this.findMany(entity, {
138
- ...criteria,
139
- $project: [meta.id],
140
- });
141
- const ids = founds.map((found) => found[meta.id]);
142
- await Promise.all(ids.map((id) => Promise.all(relKeys.map((relKey) => this.saveRelation(entity, { ...payload, [meta.id]: id }, relKey, true)))));
143
- }
144
- async deleteRelations(entity, ids, opts) {
145
- const meta = entity_1.getMeta(entity);
146
- const relKeys = util_1.getPersistableRelations(meta, meta.relations, 'delete');
147
- for (const relKey of relKeys) {
148
- const relOpts = meta.relations[relKey];
149
- const relEntity = relOpts.entity();
150
- const localField = relOpts.references[0].local;
151
- if (relOpts.through) {
152
- const throughEntity = relOpts.through();
153
- await this.deleteMany(throughEntity, { $filter: { [localField]: ids } }, opts);
154
- return;
155
- }
156
- await this.deleteMany(relEntity, { [localField]: ids }, opts);
157
- }
158
- }
159
- async saveRelation(entity, payload, relKey, isUpdate) {
160
- const meta = entity_1.getMeta(entity);
161
- const id = payload[meta.id];
162
- const { entity: entityGetter, cardinality, references, through } = meta.relations[relKey];
163
- const relEntity = entityGetter();
164
- const relPayload = payload[relKey];
165
- if (cardinality === '1m' || cardinality === 'mm') {
166
- if (through) {
167
- const localField = references[0].local;
168
- const throughEntity = through();
169
- if (isUpdate) {
170
- await this.deleteMany(throughEntity, { $filter: { [localField]: id } });
171
- }
172
- if (relPayload) {
173
- const savedIds = await this.saveMany(relEntity, relPayload);
174
- const throughBodies = savedIds.map((relId) => ({
175
- [references[0].local]: id,
176
- [references[1].local]: relId,
177
- }));
178
- await this.insertMany(throughEntity, throughBodies);
179
- }
180
- return;
181
- }
182
- const foreignField = references[0].foreign;
183
- if (isUpdate) {
184
- await this.deleteMany(relEntity, { $filter: { [foreignField]: id } });
185
- }
186
- if (relPayload) {
187
- for (const it of relPayload) {
188
- it[foreignField] = id;
189
- }
190
- await this.saveMany(relEntity, relPayload);
191
- }
192
- return;
193
- }
194
- if (cardinality === '11') {
195
- const foreignField = references[0].foreign;
196
- if (relPayload === null) {
197
- await this.deleteMany(relEntity, { $filter: { [foreignField]: id } });
198
- return;
199
- }
200
- await this.saveOne(relEntity, { ...relPayload, [foreignField]: id });
201
- return;
202
- }
203
- if (cardinality === 'm1' && relPayload) {
204
- const localField = references[0].local;
205
- const referenceId = await this.insertOne(relEntity, relPayload);
206
- await this.updateOneById(entity, id, { [localField]: referenceId });
207
- return;
208
- }
209
- }
210
- getRepository(entity) {
211
- return new repository_1.BaseRepository(entity, this);
212
- }
213
- async transaction(callback) {
214
- try {
215
- await this.beginTransaction();
216
- const res = await callback(this);
217
- await this.commitTransaction();
218
- return res;
219
- }
220
- catch (err) {
221
- await this.rollbackTransaction();
222
- throw err;
223
- }
224
- finally {
225
- await this.release();
226
- }
227
- }
228
- }
229
- exports.BaseQuerier = BaseQuerier;
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVF1ZXJpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcmllci9iYXNlUXVlcmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBc0Q7QUFDdEQseUNBQWlHO0FBQ2pHLDZDQUEyQztBQWlCM0MsTUFBc0IsV0FBVztJQUcvQixXQUFXLENBQUksTUFBZSxFQUFFLEVBQWMsRUFBRSxLQUFxQixFQUFFO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBSSxNQUFlLEVBQUUsRUFBZTtRQUMvQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUlELGdCQUFnQixDQUFJLE1BQWUsRUFBRSxFQUFZO1FBQy9DLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBSSxNQUFlLEVBQUUsT0FBVTtRQUM1QyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdEQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBSUQsYUFBYSxDQUFJLE1BQWUsRUFBRSxFQUFjLEVBQUUs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LEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLE9BQU87U0FDUjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUksTUFBZTtRQUM5QixPQUFPLElBQUksMkJBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUlELEtBQUssQ0FBQyxXQUFXLENBQUksUUFBcUQ7UUFDeEUsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQixPQUFPLEdBQUcsQ0FBQztTQUNaO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sR0FBRyxDQUFDO1NBQ1g7Z0JBQVM7WUFDUixNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7Q0FTRjtBQTdRRCxrQ0E2UUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlUmVwb3NpdG9yeSB9IGZyb20gJ0B1cWwvY29yZS9yZXBvc2l0b3J5JztcbmltcG9ydCB7IGNsb25lLCBnZXRLZXlzLCBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLCBnZXRQZXJzaXN0YWJsZVJlbGF0aW9ucyB9IGZyb20gJ0B1cWwvY29yZS91dGlsJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICdAdXFsL2NvcmUvZW50aXR5JztcbmltcG9ydCB7XG4gIElkVmFsdWUsXG4gIFF1ZXJpZXIsXG4gIFF1ZXJ5LFxuICBRdWVyeUNyaXRlcmlhLFxuICBRdWVyeU9uZSxcbiAgUXVlcnlPcHRpb25zLFxuICBRdWVyeVByb2plY3QsXG4gIFF1ZXJ5U2VhcmNoLFxuICBRdWVyeVVuaXF1ZSxcbiAgUmVsYXRpb25LZXksXG4gIFJlbGF0aW9uVmFsdWUsXG4gIFJlcG9zaXRvcnksXG4gIFR5cGUsXG59IGZyb20gJ0B1cWwvY29yZS90eXBlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VRdWVyaWVyIGltcGxlbWVudHMgUXVlcmllciB7XG4gIGFic3RyYWN0IGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW0/OiBRdWVyeVNlYXJjaDxFPik6IFByb21pc2U8bnVtYmVyPjtcblxuICBmaW5kT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBxbTogUXVlcnlVbmlxdWU8RT4gPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmZpbmRPbmUoZW50aXR5LCB7IC4uLnFtLCAkZmlsdGVyOiBpZCB9KTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlPbmU8RT4pIHtcbiAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5maW5kTWFueShlbnRpdHksIHsgLi4ucW0sICRsaW1pdDogMSB9KTtcbiAgICByZXR1cm4gcm93c1swXTtcbiAgfVxuXG4gIGFic3RyYWN0IGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5PEU+KTogUHJvbWlzZTxFW10+O1xuXG4gIGZpbmRNYW55QW5kQ291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pIHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3RoaXMuZmluZE1hbnkoZW50aXR5LCBxbSksIHRoaXMuY291bnQoZW50aXR5LCBxbSldKTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydE9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICBjb25zdCBbaWRdID0gYXdhaXQgdGhpcy5pbnNlcnRNYW55KGVudGl0eSwgW3BheWxvYWRdKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBhYnN0cmFjdCBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIHVwZGF0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU1hbnkoZW50aXR5LCB7ICRmaWx0ZXI6IGlkIH0sIHBheWxvYWQpO1xuICB9XG5cbiAgYWJzdHJhY3QgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGRlbGV0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZU1hbnkoZW50aXR5LCB7ICRmaWx0ZXI6IGlkIH0sIG9wdHMpO1xuICB9XG5cbiAgYWJzdHJhY3QgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGFzeW5jIHNhdmVPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgW2lkXSA9IGF3YWl0IHRoaXMuc2F2ZU1hbnkoZW50aXR5LCBbcGF5bG9hZF0pO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGFzeW5jIHNhdmVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBpZHM6IElkVmFsdWU8RT5bXSA9IFtdO1xuICAgIGNvbnN0IHVwZGF0ZXM6IEVbXSA9IFtdO1xuICAgIGNvbnN0IGluc2VydHM6IEVbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBpdCBvZiBwYXlsb2FkKSB7XG4gICAgICBpZiAoaXRbbWV0YS5pZF0pIHtcbiAgICAgICAgaWYgKGdldEtleXMoaXQpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIGlkcy5wdXNoKGl0W21ldGEuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVzLnB1c2goaXQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnNlcnRzLnB1c2goaXQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICAuLi5pZHMsXG4gICAgICAuLi4oaW5zZXJ0cy5sZW5ndGggPyBhd2FpdCB0aGlzLmluc2VydE1hbnkoZW50aXR5LCBpbnNlcnRzKSA6IFtdKSxcbiAgICAgIC4uLnVwZGF0ZXMubWFwKGFzeW5jIChpdCkgPT4ge1xuICAgICAgICBjb25zdCB7IFttZXRhLmlkXTogaWQsIC4uLmRhdGEgfSA9IGl0O1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9uZUJ5SWQoZW50aXR5LCBpZCwgZGF0YSk7XG4gICAgICAgIHJldHVybiBpZDtcbiAgICAgIH0pLFxuICAgIF0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGZpbmRUb01hbnlSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10sIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVsYXRpb25zID0gZ2V0UHJvamVjdFJlbGF0aW9uS2V5cyhtZXRhLCBwcm9qZWN0KTtcblxuICAgIGZvciAoY29uc3QgcmVsS2V5IG9mIHJlbGF0aW9ucykge1xuICAgICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleV07XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgICAgY29uc3QgcmVsUHJvamVjdCA9IGNsb25lKHByb2plY3RbcmVsS2V5IGFzIHN0cmluZ10pO1xuICAgICAgY29uc3QgcmVsUXVlcnk6IFF1ZXJ5PGFueT4gPVxuICAgICAgICByZWxQcm9qZWN0ID09PSB0cnVlIHx8IHJlbFByb2plY3QgPT09IHVuZGVmaW5lZCA/IHt9IDogQXJyYXkuaXNBcnJheShyZWxQcm9qZWN0KSA/IHsgJHByb2plY3Q6IHJlbFByb2plY3QgfSA6IHJlbFByb2plY3Q7XG4gICAgICBjb25zdCBpZHM6IElkVmFsdWU8RT5bXSA9IHBheWxvYWQubWFwKChpdCkgPT4gaXRbbWV0YS5pZF0pO1xuXG4gICAgICBpZiAocmVsT3B0cy50aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSByZWxPcHRzLnRocm91Z2goKTtcbiAgICAgICAgY29uc3QgdGhyb3VnaE1ldGEgPSBnZXRNZXRhKHRocm91Z2hFbnRpdHkpO1xuICAgICAgICBjb25zdCB0YXJnZXRSZWxLZXkgPSBPYmplY3Qua2V5cyh0aHJvdWdoTWV0YS5yZWxhdGlvbnMpLmZpbmQoKGtleSkgPT5cbiAgICAgICAgICB0aHJvdWdoTWV0YS5yZWxhdGlvbnNba2V5XS5yZWZlcmVuY2VzLnNvbWUoKHsgbG9jYWwgfSkgPT4gbG9jYWwgPT09IHJlbE9wdHMucmVmZXJlbmNlc1sxXS5sb2NhbClcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgdGhyb3VnaEZvdW5kcyA9IGF3YWl0IHRoaXMuZmluZE1hbnkodGhyb3VnaEVudGl0eSwge1xuICAgICAgICAgICRwcm9qZWN0OiB7XG4gICAgICAgICAgICBbbG9jYWxGaWVsZF06IHRydWUsXG4gICAgICAgICAgICBbdGFyZ2V0UmVsS2V5XToge1xuICAgICAgICAgICAgICAuLi5yZWxRdWVyeSxcbiAgICAgICAgICAgICAgJHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgICRmaWx0ZXI6IHtcbiAgICAgICAgICAgIFtsb2NhbEZpZWxkXTogaWRzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBmb3VuZHMgPSB0aHJvdWdoRm91bmRzLm1hcCgoaXQpID0+ICh7IC4uLml0W3RhcmdldFJlbEtleV0sIFtsb2NhbEZpZWxkXTogaXRbbG9jYWxGaWVsZF0gfSkpO1xuICAgICAgICB0aGlzLnB1dENoaWxkcmVuSW5QYXJlbnRzKHBheWxvYWQsIGZvdW5kcywgbWV0YS5pZCwgbG9jYWxGaWVsZCwgcmVsS2V5KTtcbiAgICAgIH0gZWxzZSBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJzFtJykge1xuICAgICAgICBjb25zdCBmb3JlaWduRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgICAgaWYgKHJlbFF1ZXJ5LiRwcm9qZWN0KSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsUXVlcnkuJHByb2plY3QpKSB7XG4gICAgICAgICAgICBpZiAoIXJlbFF1ZXJ5LiRwcm9qZWN0LmluY2x1ZGVzKGZvcmVpZ25GaWVsZCkpIHtcbiAgICAgICAgICAgICAgcmVsUXVlcnkuJHByb2plY3QucHVzaChmb3JlaWduRmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoIXJlbFF1ZXJ5LiRwcm9qZWN0W2ZvcmVpZ25GaWVsZF0pIHtcbiAgICAgICAgICAgIHJlbFF1ZXJ5LiRwcm9qZWN0W2ZvcmVpZ25GaWVsZF0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZWxRdWVyeS4kZmlsdGVyID0geyBbZm9yZWlnbkZpZWxkXTogaWRzIH07XG4gICAgICAgIGNvbnN0IGZvdW5kcyA9IGF3YWl0IHRoaXMuZmluZE1hbnkocmVsRW50aXR5LCByZWxRdWVyeSk7XG4gICAgICAgIHRoaXMucHV0Q2hpbGRyZW5JblBhcmVudHMocGF5bG9hZCwgZm91bmRzLCBtZXRhLmlkLCBmb3JlaWduRmllbGQsIHJlbEtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHB1dENoaWxkcmVuSW5QYXJlbnRzPEU+KHBhcmVudHM6IEVbXSwgY2hpbGRyZW46IEVbXSwgcGFyZW50SWRLZXk6IHN0cmluZywgcmVmZXJlbmNlS2V5OiBzdHJpbmcsIHJlbEtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW5CeVBhcmVudE1hcCA9IGNoaWxkcmVuLnJlZHVjZSgoYWNjLCBjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgcGFyZW5JZCA9IGNoaWxkW3JlZmVyZW5jZUtleV07XG4gICAgICBpZiAoIWFjY1twYXJlbklkXSkge1xuICAgICAgICBhY2NbcGFyZW5JZF0gPSBbXTtcbiAgICAgIH1cbiAgICAgIGFjY1twYXJlbklkXS5wdXNoKGNoaWxkKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuXG4gICAgZm9yIChjb25zdCBwYXJlbnQgb2YgcGFyZW50cykge1xuICAgICAgY29uc3QgcGFyZW50SWQgPSBwYXJlbnRbcGFyZW50SWRLZXldO1xuICAgICAgcGFyZW50W3JlbEtleV0gPSBjaGlsZHJlbkJ5UGFyZW50TWFwW3BhcmVudElkXTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5zZXJ0UmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHBheWxvYWQubWFwKChpdCkgPT4ge1xuICAgICAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgaXQsICdwZXJzaXN0Jyk7XG4gICAgICAgIGlmICghcmVsS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHJlbEtleXMubWFwKChyZWxLZXkpID0+IHRoaXMuc2F2ZVJlbGF0aW9uKGVudGl0eSwgaXQsIHJlbEtleSkpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1cGRhdGVSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBjcml0ZXJpYTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVsS2V5cyA9IGdldFBlcnNpc3RhYmxlUmVsYXRpb25zKG1ldGEsIHBheWxvYWQsICdwZXJzaXN0Jyk7XG5cbiAgICBpZiAoIXJlbEtleXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm91bmRzID0gYXdhaXQgdGhpcy5maW5kTWFueShlbnRpdHksIHtcbiAgICAgIC4uLmNyaXRlcmlhLFxuICAgICAgJHByb2plY3Q6IFttZXRhLmlkXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGlkczogSWRWYWx1ZTxFPltdID0gZm91bmRzLm1hcCgoZm91bmQpID0+IGZvdW5kW21ldGEuaWRdKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGlkcy5tYXAoKGlkKSA9PiBQcm9taXNlLmFsbChyZWxLZXlzLm1hcCgocmVsS2V5KSA9PiB0aGlzLnNhdmVSZWxhdGlvbihlbnRpdHksIHsgLi4ucGF5bG9hZCwgW21ldGEuaWRdOiBpZCB9LCByZWxLZXksIHRydWUpKSkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWxldGVSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBpZHM6IElkVmFsdWU8RT5bXSwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVsS2V5cyA9IGdldFBlcnNpc3RhYmxlUmVsYXRpb25zKG1ldGEsIG1ldGEucmVsYXRpb25zIGFzIEUsICdkZWxldGUnKTtcblxuICAgIGZvciAoY29uc3QgcmVsS2V5IG9mIHJlbEtleXMpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICBpZiAocmVsT3B0cy50aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSByZWxPcHRzLnRocm91Z2goKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHRocm91Z2hFbnRpdHksIHsgJGZpbHRlcjogeyBbbG9jYWxGaWVsZF06IGlkcyB9IH0sIG9wdHMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkocmVsRW50aXR5LCB7IFtsb2NhbEZpZWxkXTogaWRzIH0sIG9wdHMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBzYXZlUmVsYXRpb248RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFLCByZWxLZXk6IFJlbGF0aW9uS2V5PEU+LCBpc1VwZGF0ZT86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGlkID0gcGF5bG9hZFttZXRhLmlkXTtcbiAgICBjb25zdCB7IGVudGl0eTogZW50aXR5R2V0dGVyLCBjYXJkaW5hbGl0eSwgcmVmZXJlbmNlcywgdGhyb3VnaCB9ID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcbiAgICBjb25zdCByZWxFbnRpdHkgPSBlbnRpdHlHZXR0ZXIoKTtcbiAgICBjb25zdCByZWxQYXlsb2FkID0gcGF5bG9hZFtyZWxLZXldIGFzIFJlbGF0aW9uVmFsdWU8RT5bXTtcblxuICAgIGlmIChjYXJkaW5hbGl0eSA9PT0gJzFtJyB8fCBjYXJkaW5hbGl0eSA9PT0gJ21tJykge1xuICAgICAgaWYgKHRocm91Z2gpIHtcbiAgICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlZmVyZW5jZXNbMF0ubG9jYWw7XG5cbiAgICAgICAgY29uc3QgdGhyb3VnaEVudGl0eSA9IHRocm91Z2goKTtcbiAgICAgICAgaWYgKGlzVXBkYXRlKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHRocm91Z2hFbnRpdHksIHsgJGZpbHRlcjogeyBbbG9jYWxGaWVsZF06IGlkIH0gfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlbFBheWxvYWQpIHtcbiAgICAgICAgICBjb25zdCBzYXZlZElkcyA9IGF3YWl0IHRoaXMuc2F2ZU1hbnkocmVsRW50aXR5LCByZWxQYXlsb2FkKTtcbiAgICAgICAgICBjb25zdCB0aHJvdWdoQm9kaWVzID0gc2F2ZWRJZHMubWFwKChyZWxJZCkgPT4gKHtcbiAgICAgICAgICAgIFtyZWZlcmVuY2VzWzBdLmxvY2FsXTogaWQsXG4gICAgICAgICAgICBbcmVmZXJlbmNlc1sxXS5sb2NhbF06IHJlbElkLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLmluc2VydE1hbnkodGhyb3VnaEVudGl0eSwgdGhyb3VnaEJvZGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZm9yZWlnbkZpZWxkID0gcmVmZXJlbmNlc1swXS5mb3JlaWduO1xuICAgICAgaWYgKGlzVXBkYXRlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueShyZWxFbnRpdHksIHsgJGZpbHRlcjogeyBbZm9yZWlnbkZpZWxkXTogaWQgfSB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChyZWxQYXlsb2FkKSB7XG4gICAgICAgIGZvciAoY29uc3QgaXQgb2YgcmVsUGF5bG9hZCkge1xuICAgICAgICAgIGl0W2ZvcmVpZ25GaWVsZF0gPSBpZDtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLnNhdmVNYW55KHJlbEVudGl0eSwgcmVsUGF5bG9hZCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNhcmRpbmFsaXR5ID09PSAnMTEnKSB7XG4gICAgICBjb25zdCBmb3JlaWduRmllbGQgPSByZWZlcmVuY2VzWzBdLmZvcmVpZ247XG4gICAgICBpZiAocmVsUGF5bG9hZCA9PT0gbnVsbCkge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkocmVsRW50aXR5LCB7ICRmaWx0ZXI6IHsgW2ZvcmVpZ25GaWVsZF06IGlkIH0gfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuc2F2ZU9uZShyZWxFbnRpdHksIHsgLi4ucmVsUGF5bG9hZCwgW2ZvcmVpZ25GaWVsZF06IGlkIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjYXJkaW5hbGl0eSA9PT0gJ20xJyAmJiByZWxQYXlsb2FkKSB7XG4gICAgICBjb25zdCBsb2NhbEZpZWxkID0gcmVmZXJlbmNlc1swXS5sb2NhbDtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZUlkID0gYXdhaXQgdGhpcy5pbnNlcnRPbmUocmVsRW50aXR5LCByZWxQYXlsb2FkKTtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlT25lQnlJZChlbnRpdHksIGlkLCB7IFtsb2NhbEZpZWxkXTogcmVmZXJlbmNlSWQgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVwb3NpdG9yeTxFPihlbnRpdHk6IFR5cGU8RT4pOiBSZXBvc2l0b3J5PEU+IHtcbiAgICByZXR1cm4gbmV3IEJhc2VSZXBvc2l0b3J5KGVudGl0eSwgdGhpcyk7XG4gIH1cblxuICBhYnN0cmFjdCByZWFkb25seSBoYXNPcGVuVHJhbnNhY3Rpb246IGJvb2xlYW47XG5cbiAgYXN5bmMgdHJhbnNhY3Rpb248VD4oY2FsbGJhY2s6IChxdWVyaWVyPzogVGhpc1R5cGU8UXVlcmllcj4pID0+IFByb21pc2U8VD4pIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5iZWdpblRyYW5zYWN0aW9uKCk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBjYWxsYmFjayh0aGlzKTtcbiAgICAgIGF3YWl0IHRoaXMuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBhd2FpdCB0aGlzLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgdGhpcy5yZWxlYXNlKCk7XG4gICAgfVxuICB9XG5cbiAgYWJzdHJhY3QgYmVnaW5UcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGNvbW1pdFRyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3Qgcm9sbGJhY2tUcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IHJlbGVhc2UoKTogUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { Query, QuerierPoolConnection, Type, QueryCriteria, QueryOptions, IdValue } from '@uql/core/type';
2
- import { BaseSqlDialect } from '@uql/core/dialect';
3
- import { BaseQuerier } from './baseQuerier';
4
- export declare class SqlQuerier extends BaseQuerier {
5
- readonly dialect: BaseSqlDialect;
6
- readonly conn: QuerierPoolConnection;
7
- private hasPendingTransaction?;
8
- constructor(dialect: BaseSqlDialect, conn: QuerierPoolConnection);
9
- count<E>(entity: Type<E>, qm?: QueryCriteria<E>): Promise<number>;
10
- findMany<E>(entity: Type<E>, qm: Query<E>): Promise<E[]>;
11
- insertMany<E>(entity: Type<E>, payload: E[]): Promise<IdValue<E>[]>;
12
- updateMany<E>(entity: Type<E>, qm: QueryCriteria<E>, payload: E): Promise<number>;
13
- deleteMany<E>(entity: Type<E>, qm: QueryCriteria<E>, opts?: QueryOptions): Promise<number>;
14
- get hasOpenTransaction(): boolean;
15
- beginTransaction(): Promise<void>;
16
- commitTransaction(): Promise<void>;
17
- rollbackTransaction(): Promise<void>;
18
- release(): Promise<void>;
19
- }
@@ -1,91 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SqlQuerier = void 0;
4
- const entity_1 = require("@uql/core/entity");
5
- const util_1 = require("@uql/core/util");
6
- const baseQuerier_1 = require("./baseQuerier");
7
- class SqlQuerier extends baseQuerier_1.BaseQuerier {
8
- constructor(dialect, conn) {
9
- super();
10
- this.dialect = dialect;
11
- this.conn = conn;
12
- }
13
- async count(entity, qm) {
14
- const query = await this.dialect.count(entity, qm);
15
- const res = await this.conn.all(query);
16
- return Number(res[0].count);
17
- }
18
- async findMany(entity, qm) {
19
- const query = this.dialect.find(entity, qm);
20
- const res = await this.conn.all(query);
21
- const founds = util_1.unflatObjects(res);
22
- await this.findToManyRelations(entity, founds, qm.$project);
23
- return founds;
24
- }
25
- async insertMany(entity, payload) {
26
- payload = util_1.clone(payload);
27
- const query = this.dialect.insert(entity, payload);
28
- const { firstId } = await this.conn.run(query);
29
- const meta = entity_1.getMeta(entity);
30
- const ids = payload.map((it, index) => {
31
- var _a;
32
- var _b;
33
- (_a = it[_b = meta.id]) !== null && _a !== void 0 ? _a : (it[_b] = firstId + index);
34
- return it[meta.id];
35
- });
36
- await this.insertRelations(entity, payload);
37
- return ids;
38
- }
39
- async updateMany(entity, qm, payload) {
40
- payload = util_1.clone(payload);
41
- const query = this.dialect.update(entity, qm, payload);
42
- const { changes } = await this.conn.run(query);
43
- await this.updateRelations(entity, qm, payload);
44
- return changes;
45
- }
46
- async deleteMany(entity, qm, opts) {
47
- const meta = entity_1.getMeta(entity);
48
- const findQuery = await this.dialect.find(entity, { ...qm, $project: [meta.id] });
49
- const founds = await this.conn.all(findQuery);
50
- if (!founds.length) {
51
- return 0;
52
- }
53
- const ids = founds.map((it) => it[meta.id]);
54
- const query = this.dialect.delete(entity, { $filter: ids }, opts);
55
- const { changes } = await this.conn.run(query);
56
- await this.deleteRelations(entity, ids, opts);
57
- return changes;
58
- }
59
- get hasOpenTransaction() {
60
- return this.hasPendingTransaction;
61
- }
62
- async beginTransaction() {
63
- if (this.hasPendingTransaction) {
64
- throw new TypeError('pending transaction');
65
- }
66
- await this.conn.run(this.dialect.beginTransactionCommand);
67
- this.hasPendingTransaction = true;
68
- }
69
- async commitTransaction() {
70
- if (!this.hasPendingTransaction) {
71
- throw new TypeError('not a pending transaction');
72
- }
73
- await this.conn.run('COMMIT');
74
- this.hasPendingTransaction = undefined;
75
- }
76
- async rollbackTransaction() {
77
- if (!this.hasPendingTransaction) {
78
- throw new TypeError('not a pending transaction');
79
- }
80
- await this.conn.run('ROLLBACK');
81
- this.hasPendingTransaction = undefined;
82
- }
83
- async release() {
84
- if (this.hasPendingTransaction) {
85
- throw new TypeError('pending transaction');
86
- }
87
- return this.conn.release();
88
- }
89
- }
90
- exports.SqlQuerier = SqlQuerier;
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsUXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVyL3NxbFF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTJDO0FBRTNDLHlDQUFzRDtBQUd0RCwrQ0FBNEM7QUFFNUMsTUFBYSxVQUFXLFNBQVEseUJBQVc7SUFHekMsWUFBcUIsT0FBdUIsRUFBVyxJQUEyQjtRQUNoRixLQUFLLEVBQUUsQ0FBQztRQURXLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBdUI7SUFFbEYsQ0FBQztJQUVRLEtBQUssQ0FBQyxLQUFLLENBQUksTUFBZSxFQUFFLEVBQXFCO1FBQzVELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sR0FBRyxHQUFRLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksS0FBSyxDQUFDLENBQUM7UUFDL0MsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUSxLQUFLLENBQUMsUUFBUSxDQUFJLE1BQWUsRUFBRSxFQUFZO1FBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLG9CQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUQsT0FBTyxNQUFNLENBQUM7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QixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixNQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDNUM7UUFDRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFUSxLQUFLLENBQUMsaUJBQWlCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxJQUFJLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFUSxLQUFLLENBQUMsbUJBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxJQUFJLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFUSxLQUFLLENBQUMsT0FBTztRQUNwQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixNQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDNUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBMUZELGdDQTBGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldE1ldGEgfSBmcm9tICdAdXFsL2NvcmUvZW50aXR5JztcbmltcG9ydCB7IFF1ZXJ5LCBRdWVyaWVyUG9vbENvbm5lY3Rpb24sIFR5cGUsIFF1ZXJ5Q3JpdGVyaWEsIFF1ZXJ5T3B0aW9ucywgSWRWYWx1ZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IHVuZmxhdE9iamVjdHMsIGNsb25lIH0gZnJvbSAnQHVxbC9jb3JlL3V0aWwnO1xuaW1wb3J0IHsgQmFzZVNxbERpYWxlY3QgfSBmcm9tICdAdXFsL2NvcmUvZGlhbGVjdCc7XG5cbmltcG9ydCB7IEJhc2VRdWVyaWVyIH0gZnJvbSAnLi9iYXNlUXVlcmllcic7XG5cbmV4cG9ydCBjbGFzcyBTcWxRdWVyaWVyIGV4dGVuZHMgQmFzZVF1ZXJpZXIge1xuICBwcml2YXRlIGhhc1BlbmRpbmdUcmFuc2FjdGlvbj86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGlhbGVjdDogQmFzZVNxbERpYWxlY3QsIHJlYWRvbmx5IGNvbm46IFF1ZXJpZXJQb29sQ29ubmVjdGlvbikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHFtPzogUXVlcnlDcml0ZXJpYTxFPikge1xuICAgIGNvbnN0IHF1ZXJ5ID0gYXdhaXQgdGhpcy5kaWFsZWN0LmNvdW50KGVudGl0eSwgcW0pO1xuICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdGhpcy5jb25uLmFsbDxFPihxdWVyeSk7XG4gICAgcmV0dXJuIE51bWJlcihyZXNbMF0uY291bnQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5maW5kKGVudGl0eSwgcW0pO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY29ubi5hbGw8RT4ocXVlcnkpO1xuICAgIGNvbnN0IGZvdW5kcyA9IHVuZmxhdE9iamVjdHMocmVzKTtcbiAgICBhd2FpdCB0aGlzLmZpbmRUb01hbnlSZWxhdGlvbnMoZW50aXR5LCBmb3VuZHMsIHFtLiRwcm9qZWN0KTtcbiAgICByZXR1cm4gZm91bmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSkge1xuICAgIHBheWxvYWQgPSBjbG9uZShwYXlsb2FkKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5pbnNlcnQoZW50aXR5LCBwYXlsb2FkKTtcbiAgICBjb25zdCB7IGZpcnN0SWQgfSA9IGF3YWl0IHRoaXMuY29ubi5ydW4ocXVlcnkpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWRzOiBJZFZhbHVlPEU+W10gPSBwYXlsb2FkLm1hcCgoaXQsIGluZGV4KSA9PiB7XG4gICAgICBpdFttZXRhLmlkIGFzIHN0cmluZ10gPz89IGZpcnN0SWQgKyBpbmRleDtcbiAgICAgIHJldHVybiBpdFttZXRhLmlkXTtcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmluc2VydFJlbGF0aW9ucyhlbnRpdHksIHBheWxvYWQpO1xuICAgIHJldHVybiBpZHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QudXBkYXRlKGVudGl0eSwgcW0sIHBheWxvYWQpO1xuICAgIGNvbnN0IHsgY2hhbmdlcyB9ID0gYXdhaXQgdGhpcy5jb25uLnJ1bihxdWVyeSk7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVSZWxhdGlvbnMoZW50aXR5LCBxbSwgcGF5bG9hZCk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGZpbmRRdWVyeSA9IGF3YWl0IHRoaXMuZGlhbGVjdC5maW5kKGVudGl0eSwgeyAuLi5xbSwgJHByb2plY3Q6IFttZXRhLmlkXSB9KTtcbiAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmNvbm4uYWxsPEU+KGZpbmRRdWVyeSk7XG4gICAgaWYgKCFmb3VuZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3QgaWRzOiBJZFZhbHVlPEU+W10gPSBmb3VuZHMubWFwKChpdCkgPT4gaXRbbWV0YS5pZF0pO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LmRlbGV0ZShlbnRpdHksIHsgJGZpbHRlcjogaWRzIH0sIG9wdHMpO1xuICAgIGNvbnN0IHsgY2hhbmdlcyB9ID0gYXdhaXQgdGhpcy5jb25uLnJ1bihxdWVyeSk7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVSZWxhdGlvbnMoZW50aXR5LCBpZHMsIG9wdHMpO1xuICAgIHJldHVybiBjaGFuZ2VzO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0IGhhc09wZW5UcmFuc2FjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb247XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBiZWdpblRyYW5zYWN0aW9uKCkge1xuICAgIGlmICh0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvbm4ucnVuKHRoaXMuZGlhbGVjdC5iZWdpblRyYW5zYWN0aW9uQ29tbWFuZCk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB0cnVlO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY29tbWl0VHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvbm4ucnVuKCdDT01NSVQnKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJvbGxiYWNrVHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvbm4ucnVuKCdST0xMQkFDSycpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVsZWFzZSgpIHtcbiAgICBpZiAodGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29ubi5yZWxlYXNlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseRepository = void 0;
4
- class BaseRepository {
5
- constructor(entity, querier) {
6
- this.entity = entity;
7
- this.querier = querier;
8
- }
9
- count(qm) {
10
- return this.querier.count(this.entity, qm);
11
- }
12
- findOneById(id, qm) {
13
- return this.querier.findOneById(this.entity, id, qm);
14
- }
15
- findOne(qm) {
16
- return this.querier.findOne(this.entity, qm);
17
- }
18
- findMany(qm) {
19
- return this.querier.findMany(this.entity, qm);
20
- }
21
- findManyAndCount(qm) {
22
- return this.querier.findManyAndCount(this.entity, qm);
23
- }
24
- insertOne(payload) {
25
- return this.querier.insertOne(this.entity, payload);
26
- }
27
- insertMany(payload) {
28
- return this.querier.insertMany(this.entity, payload);
29
- }
30
- updateOneById(id, payload) {
31
- return this.querier.updateOneById(this.entity, id, payload);
32
- }
33
- updateMany(qm, payload) {
34
- return this.querier.updateMany(this.entity, qm, payload);
35
- }
36
- saveOne(payload) {
37
- return this.querier.saveOne(this.entity, payload);
38
- }
39
- saveMany(payload) {
40
- return this.querier.saveMany(this.entity, payload);
41
- }
42
- deleteOneById(id, opts) {
43
- return this.querier.deleteOneById(this.entity, id, opts);
44
- }
45
- deleteMany(qm, opts) {
46
- return this.querier.deleteMany(this.entity, qm, opts);
47
- }
48
- }
49
- exports.BaseRepository = BaseRepository;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9iYXNlUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFhLGNBQWM7SUFDekIsWUFBcUIsTUFBZSxFQUFXLE9BQWdCO1FBQTFDLFdBQU0sR0FBTixNQUFNLENBQVM7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFTO0lBQUcsQ0FBQztJQUVuRSxLQUFLLENBQUMsRUFBa0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUMsRUFBYyxFQUFFLEVBQW1CO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxTQUFTLENBQUMsT0FBVTtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQWMsRUFBRSxPQUFVO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFvQixFQUFFLE9BQVU7UUFDekMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFjLEVBQUUsSUFBbUI7UUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQW9CLEVBQUUsSUFBbUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0Y7QUF0REQsd0NBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWRWYWx1ZSwgUXVlcmllciwgUXVlcnksIFF1ZXJ5Q3JpdGVyaWEsIFF1ZXJ5T25lLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5U2VhcmNoLCBRdWVyeVVuaXF1ZSwgUmVwb3NpdG9yeSwgVHlwZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcblxuZXhwb3J0IGNsYXNzIEJhc2VSZXBvc2l0b3J5PEU+IGltcGxlbWVudHMgUmVwb3NpdG9yeTxFPiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGVudGl0eTogVHlwZTxFPiwgcmVhZG9ubHkgcXVlcmllcjogUXVlcmllcikge31cblxuICBjb3VudChxbTogUXVlcnlTZWFyY2g8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmNvdW50KHRoaXMuZW50aXR5LCBxbSk7XG4gIH1cblxuICBmaW5kT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcW0/OiBRdWVyeVVuaXF1ZTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE9uZUJ5SWQodGhpcy5lbnRpdHksIGlkLCBxbSk7XG4gIH1cblxuICBmaW5kT25lKHFtOiBRdWVyeU9uZTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE9uZSh0aGlzLmVudGl0eSwgcW0pO1xuICB9XG5cbiAgZmluZE1hbnkocW06IFF1ZXJ5PEU+KSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5maW5kTWFueSh0aGlzLmVudGl0eSwgcW0pO1xuICB9XG5cbiAgZmluZE1hbnlBbmRDb3VudChxbTogUXVlcnk8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmZpbmRNYW55QW5kQ291bnQodGhpcy5lbnRpdHksIHFtKTtcbiAgfVxuXG4gIGluc2VydE9uZShwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5pbnNlcnRPbmUodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgaW5zZXJ0TWFueShwYXlsb2FkOiBFW10pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmluc2VydE1hbnkodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgdXBkYXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIudXBkYXRlT25lQnlJZCh0aGlzLmVudGl0eSwgaWQsIHBheWxvYWQpO1xuICB9XG5cbiAgdXBkYXRlTWFueShxbTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIudXBkYXRlTWFueSh0aGlzLmVudGl0eSwgcW0sIHBheWxvYWQpO1xuICB9XG5cbiAgc2F2ZU9uZShwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5zYXZlT25lKHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIHNhdmVNYW55KHBheWxvYWQ6IEVbXSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuc2F2ZU1hbnkodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgZGVsZXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZGVsZXRlT25lQnlJZCh0aGlzLmVudGl0eSwgaWQsIG9wdHMpO1xuICB9XG5cbiAgZGVsZXRlTWFueShxbTogUXVlcnlDcml0ZXJpYTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZGVsZXRlTWFueSh0aGlzLmVudGl0eSwgcW0sIG9wdHMpO1xuICB9XG59XG4iXX0=