@infrab4a/connect 0.14.4-beta.0 → 0.14.5-beta.0
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/bundles/infrab4a-connect.umd.js +8 -5
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/esm2015/lib/domain/shopping/models/coupons/financial-coupon.js +1 -1
- package/esm2015/lib/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +8 -6
- package/fesm2015/infrab4a-connect.js +7 -5
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/lib/domain/shopping/models/coupons/financial-coupon.d.ts +1 -0
- package/package.json +1 -1
|
@@ -25,4 +25,4 @@ export class FinancialCoupon extends Coupon {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jaWFsLWNvdXBvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vc2hvcHBpbmcvbW9kZWxzL2NvdXBvbnMvZmluYW5jaWFsLWNvdXBvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBRTVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBRXJELE1BQU0saUJBQWlCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBRTNDLE1BQU0sT0FBTyxlQUFnQixTQUFRLE1BQU07SUFBM0M7O1FBQ0UsU0FBSSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUE7SUFxQjlCLENBQUM7SUFqQkMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQWdDO1FBQ3ZELE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFBO0lBQ2xFLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWM7UUFDaEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3JCLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUNyRCxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDekIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQzNCLE9BQU8sRUFBRSxjQUFjLENBQUMsVUFBVTtZQUNsQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFNBQVM7WUFDckMsUUFBUSxFQUFFLEVBQUU7WUFDWixJQUFJLEVBQUUsTUFBTTtZQUNaLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDL0IsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztTQUNwRCxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZDUgfSBmcm9tICd0cy1tZDUnXG5cbmltcG9ydCB7IENoZWNrb3V0VHlwZXMgfSBmcm9tICcuLi9lbnVtcy9jaGVja291dC10eXBlcy5lbnVtJ1xuXG5pbXBvcnQgeyBDb3Vwb24gfSBmcm9tICcuL2NvdXBvbidcbmltcG9ydCB7IENvdXBvblR5cGVzLCBDb3Vwb25TdWJ0eXBlcyB9IGZyb20gJy4vZW51bXMnXG5cbmNvbnN0IENPVVBPTl9FWFBJUkFUSU9OID0gNjAgKiA2MCAqIDI0ICogMzBcblxuZXhwb3J0IGNsYXNzIEZpbmFuY2lhbENvdXBvbiBleHRlbmRzIENvdXBvbiB7XG4gIHR5cGUgPSBDb3Vwb25UeXBlcy5GSU5BTkNJQUxcbiAgc3VidHlwZTogQ291cG9uU3VidHlwZXNcbiAgcGxhbj86IHN0cmluZ1xuXG4gIHN0YXRpYyBpc0ZpbmFuY2lhbENvdXBvbihjb3Vwb246IFBhcnRpYWw8RmluYW5jaWFsQ291cG9uPik6IGNvdXBvbiBpcyBGaW5hbmNpYWxDb3Vwb24ge1xuICAgIHJldHVybiBjb3Vwb24udHlwZSA9PT0gQ291cG9uVHlwZXMuRklOQU5DSUFMICYmICEhY291cG9uLnN1YnR5cGVcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVDb3Vwb24odXNlcklkOiBzdHJpbmcpOiBGaW5hbmNpYWxDb3Vwb24ge1xuICAgIHJldHVybiB0aGlzLnRvSW5zdGFuY2Uoe1xuICAgICAgbmFtZTogTWQ1Lmhhc2hTdHIoYCR7dXNlcklkfV8ke0RhdGUubm93fWApLnRvU3RyaW5nKCksXG4gICAgICBuaWNrbmFtZTogYCR7RGF0ZS5ub3coKX1gLFxuICAgICAgdHlwZTogQ291cG9uVHlwZXMuRklOQU5DSUFMLFxuICAgICAgc3VidHlwZTogQ291cG9uU3VidHlwZXMuUEVSQ0VOVEFHRSxcbiAgICAgIGNoZWNrb3V0VHlwZTogQ2hlY2tvdXRUeXBlcy5FQ09NTUVSQ0UsXG4gICAgICBkaXNjb3VudDogMzAsXG4gICAgICB1c2VyOiB1c2VySWQsXG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKERhdGUubm93KCkpLFxuICAgICAgZXhwaXJlc0luOiBuZXcgRGF0ZShEYXRlLm5vdygpICsgQ09VUE9OX0VYUElSQVRJT04pLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
@@ -13,18 +13,20 @@ export const withFindFirestore = (MixinBase) => {
|
|
|
13
13
|
this.buildWhereSentence = (queryReference, fieldName, options) => {
|
|
14
14
|
if (this.isSubCollection(this) && fieldName === this.parentIdField)
|
|
15
15
|
return queryReference;
|
|
16
|
+
const plainInstance = new this.model({ [fieldName]: options === null || options === void 0 ? void 0 : options.value }).toPlain();
|
|
17
|
+
const firestoreFieldName = Object.keys(plainInstance).find((key) => plainInstance[key] === (options === null || options === void 0 ? void 0 : options.value));
|
|
16
18
|
if ((options === null || options === void 0 ? void 0 : options.operator) === Where.LIKE) {
|
|
17
19
|
if (Array.isArray(options === null || options === void 0 ? void 0 : options.value))
|
|
18
|
-
return queryReference.where(
|
|
19
|
-
queryReference = queryReference.where(
|
|
20
|
-
queryReference = queryReference.where(
|
|
20
|
+
return queryReference.where(firestoreFieldName, 'array-contains-any', options.value);
|
|
21
|
+
queryReference = queryReference.where(firestoreFieldName, '>=', options.value);
|
|
22
|
+
queryReference = queryReference.where(firestoreFieldName, '<=', `${options.value}~`);
|
|
21
23
|
return queryReference;
|
|
22
24
|
}
|
|
23
25
|
if ((options === null || options === void 0 ? void 0 : options.operator) === Where.IN && Array.isArray(options === null || options === void 0 ? void 0 : options.value))
|
|
24
|
-
return queryReference.where(
|
|
26
|
+
return queryReference.where(firestoreFieldName, 'array-contains', options.value);
|
|
25
27
|
if (isObject(options) && isNil(options === null || options === void 0 ? void 0 : options.operator) && isNil(options === null || options === void 0 ? void 0 : options.value))
|
|
26
28
|
return Object.keys(options).reduce((queryReferenceWithWhere, key) => this.buildWhereSentence(queryReferenceWithWhere, `${fieldName}.${key}`, options[key]), queryReference);
|
|
27
|
-
return queryReference.where(
|
|
29
|
+
return queryReference.where(firestoreFieldName, (options === null || options === void 0 ? void 0 : options.operator) || '==', (options === null || options === void 0 ? void 0 : options.value) || options);
|
|
28
30
|
};
|
|
29
31
|
}
|
|
30
32
|
find(filters, limits, orderBy) {
|
|
@@ -73,4 +75,4 @@ export const withFindFirestore = (MixinBase) => {
|
|
|
73
75
|
}
|
|
74
76
|
};
|
|
75
77
|
};
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvbWl4aW5zL3dpdGgtZmluZC1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFVTCxLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQTtBQUUzQixPQUFPLEVBQWEsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFbEYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FDL0IsU0FBZ0YsRUFDaEYsRUFBRTtJQUNGLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFXLEVBQXVELEVBQUUsQ0FDakcsQ0FBQyxLQUFLLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzFCLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUF1QyxFQUFPLEVBQUU7UUFDMUUsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0lBQzlELENBQUMsQ0FBQTtJQUVELE9BQU8sTUFBTSxhQUFjLFNBQVEsU0FBUztRQUFyQzs7WUFvQ0wsdUJBQWtCLEdBQUcsQ0FDbkIsY0FBeUQsRUFDekQsTUFBcUMsRUFDdkIsRUFBRSxDQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDeEIsQ0FBQyxLQUFtQixFQUFFLFNBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN4RyxjQUFj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b250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25SZWZlcmVuY2UsIFF1ZXJ5LCBXaGVyZUZpbHRlck9wIH0gZnJvbSAnQGZpcmViYXNlL2ZpcmVzdG9yZS10eXBlcydcblxuaW1wb3J0IHtcbiAgQmFzZU1vZGVsV2l0aElkZW50aWZpZXIsXG4gIEZpbmRSZXBvc2l0b3J5LFxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbGQsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zLFxuICBSZXBvc2l0b3J5RmluZFJlc3VsdCxcbiAgUmVwb3NpdG9yeUxpbWl0T3B0aW9ucyxcbiAgUmVwb3NpdG9yeU9yZGVyQnlMaXN0LFxuICBXaGVyZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgTWl4aW5DdG9yLCBpc05pbCwgaXNOdW1iZXIsIGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgY29uc3Qgd2l0aEZpbmRGaXJlc3RvcmUgPSA8VEJhc2UgZXh0ZW5kcyBCYXNlTW9kZWxXaXRoSWRlbnRpZmllcjxUQmFzZT4sIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I+KFxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnM+ICYgVE1peGluQmFzZSxcbikgPT4ge1xuICBjb25zdCBjaGVja0lmSXNGaWx0ZXJPcHRpb24gPSAoZmlsdGVyOiBhbnkpOiBmaWx0ZXIgaXMgUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8VEJhc2UsIGFueT4gPT5cbiAgICAhaXNOaWwoZmlsdGVyPy5vcGVyYXRvcilcbiAgY29uc3QgZ2V0VmFsdWVGcm9tRmlsdGVyID0gKGZpbHRlcjogUmVwb3NpdG9yeUZpbmRGaWVsZDxUQmFzZSwgYW55Pik6IGFueSA9PiB7XG4gICAgcmV0dXJuIGNoZWNrSWZJc0ZpbHRlck9wdGlvbihmaWx0ZXIpID8gZmlsdGVyLnZhbHVlIDogZmlsdGVyXG4gIH1cblxuICByZXR1cm4gY2xhc3MgRmluZEZpcmVzdG9yZSBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIEZpbmRSZXBvc2l0b3J5PFRCYXNlPiB7XG4gICAgYXN5bmMgZmluZChcbiAgICAgIGZpbHRlcnM/OiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFRCYXNlPltdLFxuICAgICAgbGltaXRzPzogUmVwb3NpdG9yeUxpbWl0T3B0aW9uczxUQmFzZT4sXG4gICAgICBvcmRlckJ5PzogUmVwb3NpdG9yeU9yZGVyQnlMaXN0PFRCYXNlPixcbiAgICApOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFRCYXNlPj4ge1xuICAgICAgbGV0IHF1ZXJ5OiBDb2xsZWN0aW9uUmVmZXJlbmNlPFRCYXNlPiB8IFF1ZXJ5PFRCYXNlPiA9IHRoaXMuY29sbGVjdGlvbih0aGlzLmJ1aWxkQ29sbGVjdGlvblBhdGhGb3JGaW5kKGZpbHRlcnMpKVxuXG4gICAgICBmaWx0ZXJzPy5mb3JFYWNoKChmaWx0ZXJlcikgPT4gKHF1ZXJ5ID0gdGhpcy5tYWtlRmlyZXN0b3JlV2hlcmUocXVlcnksIGZpbHRlcmVyKSkpXG5cbiAgICAgIG9yZGVyQnk/LmZvckVhY2goKG9yZGVyZXIpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKG9yZGVyZXIpLmZvckVhY2goKGZpZWxkTmFtZSkgPT4gKHF1ZXJ5ID0gcXVlcnkub3JkZXJCeShmaWVsZE5hbWUsIG9yZGVyZXJbZmllbGROYW1lXSkpKSxcbiAgICAgIClcblxuICAgICAgcXVlcnkgPSBhd2FpdCB0aGlzLmRlZmluZUxpbWl0cyhxdWVyeSwgZmlsdGVycywgbGltaXRzKVxuXG4gICAgICBjb25zdCBkb2NzID0gYXdhaXQgcXVlcnkuZ2V0KClcbiAgICAgIGNvbnN0IGRhdGEgPSBkb2NzLmRvY3MubWFwKChkb2MpID0+IGRvYy5kYXRhKCkpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGEsXG4gICAgICAgIGNvdW50OiB0aGlzLmNhbGN1bGF0ZUNvdW50KGRhdGEsIGxpbWl0cyksXG4gICAgICB9XG4gICAgfVxuXG4gICAgYnVpbGRDb2xsZWN0aW9uUGF0aEZvckZpbmQoZmlsdGVyczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxUQmFzZT5bXSk6IHN0cmluZyB7XG4gICAgICBpZiAoIXRoaXMuaXNTdWJDb2xsZWN0aW9uPFRCYXNlPih0aGlzKSkgcmV0dXJuIHRoaXMuY29sbGVjdGlvbk5hbWVcblxuICAgICAgY29uc3QgcGFyZW50SWRGaWVsZCA9IHRoaXMucGFyZW50SWRGaWVsZFxuICAgICAgY29uc3QgcGFyZW50SWQgPSBnZXRWYWx1ZUZyb21GaWx0ZXIoXG4gICAgICAgIGZpbHRlcnMuZmluZCgoZ3JvdXBGaWx0ZXIpID0+IEJvb2xlYW4oZ2V0VmFsdWVGcm9tRmlsdGVyKGdyb3VwRmlsdGVyW3BhcmVudElkRmllbGRdKSkpPy5bcGFyZW50SWRGaWVsZF0sXG4gICAgICApXG5cbiAgICAgIHJldHVybiBgJHt0aGlzLnBhcmVudFJlcG9zaXRvcnkuY29sbGVjdGlvbk5hbWV9LyR7cGFyZW50SWR9LyR7dGhpcy5jb2xsZWN0aW9uTmFtZX1gXG4gICAgfVxuXG4gICAgbWFrZUZpcmVzdG9yZVdoZXJlID0gKFxuICAgICAgcXVlcnlSZWZlcmVuY2U6IENvbGxlY3Rpb25SZWZlcmVuY2U8VEJhc2U+IHwgUXVlcnk8VEJhc2U+LFxuICAgICAgZmlsdGVyOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFRCYXNlPixcbiAgICApOiBRdWVyeTxUQmFzZT4gPT5cbiAgICAgIE9iamVjdC5rZXlzKGZpbHRlcikucmVkdWNlKFxuICAgICAgICAocXVlcnk6IFF1ZXJ5PFRCYXNlPiwgZmllbGROYW1lOiBzdHJpbmcpID0+IHRoaXMuYnVpbGRXaGVyZVNlbnRlbmNlKHF1ZXJ5LCBmaWVsZE5hbWUsIGZpbHRlcltmaWVsZE5hbWVdKSxcbiAgICAgICAgcXVlcnlSZWZlcmVuY2UsXG4gICAgICApXG5cbiAgICBidWlsZFdoZXJlU2VudGVuY2UgPSAoXG4gICAgICBxdWVyeVJlZmVyZW5jZTogQ29sbGVjdGlvblJlZmVyZW5jZTxUQmFzZT4gfCBRdWVyeTxUQmFzZT4sXG4gICAgICBmaWVsZE5hbWU6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4gfCBzdHJpbmcsXG4gICAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxUQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPj4sXG4gICAgKTogUXVlcnk8VEJhc2U+ID0+IHtcbiAgICAgIGlmICh0aGlzLmlzU3ViQ29sbGVjdGlvbjxUQmFzZT4odGhpcykgJiYgZmllbGROYW1lID09PSB0aGlzLnBhcmVudElkRmllbGQpIHJldHVybiBxdWVyeVJlZmVyZW5jZVxuICAgICAgaWYgKG9wdGlvbnM/Lm9wZXJhdG9yID09PSBXaGVyZS5MSUtFKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnM/LnZhbHVlKSlcbiAgICAgICAgICByZXR1cm4gcXVlcnlSZWZlcmVuY2Uud2hlcmUoZmllbGROYW1lLnRvU3RyaW5nKCksICdhcnJheS1jb250YWlucy1hbnknLCBvcHRpb25zLnZhbHVlKVxuXG4gICAgICAgIHF1ZXJ5UmVmZXJlbmNlID0gcXVlcnlSZWZlcmVuY2Uud2hlcmUoZmllbGROYW1lLnRvU3RyaW5nKCksICc+PScsIG9wdGlvbnMudmFsdWUpXG4gICAgICAgIHF1ZXJ5UmVmZXJlbmNlID0gcXVlcnlSZWZlcmVuY2Uud2hlcmUoZmllbGROYW1lLnRvU3RyaW5nKCksICc8PScsIGAke29wdGlvbnMudmFsdWV9fmApXG5cbiAgICAgICAgcmV0dXJuIHF1ZXJ5UmVmZXJlbmNlXG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucz8ub3BlcmF0b3IgPT09IFdoZXJlLklOICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucz8udmFsdWUpKVxuICAgICAgICByZXR1cm4gcXVlcnlSZWZlcmVuY2Uud2hlcmUoZmllbGROYW1lLnRvU3RyaW5nKCksICdhcnJheS1jb250YWlucycsIG9wdGlvbnMudmFsdWUpXG4gICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykgJiYgaXNOaWwob3B0aW9ucz8ub3BlcmF0b3IpICYmIGlzTmlsKG9wdGlvbnM/LnZhbHVlKSlcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLnJlZHVjZShcbiAgICAgICAgICAocXVlcnlSZWZlcmVuY2VXaXRoV2hlcmUsIGtleSkgPT5cbiAgICAgICAgICAgIHRoaXMuYnVpbGRXaGVyZVNlbnRlbmNlKHF1ZXJ5UmVmZXJlbmNlV2l0aFdoZXJlLCBgJHtmaWVsZE5hbWV9LiR7a2V5fWAsIG9wdGlvbnNba2V5XSksXG4gICAgICAgICAgcXVlcnlSZWZlcmVuY2UsXG4gICAgICAgIClcblxuICAgICAgcmV0dXJuIHF1ZXJ5UmVmZXJlbmNlLndoZXJlKGZpZWxkTmFtZS50b1N0cmluZygpLCBvcHRpb25zPy5vcGVyYXRvciB8fCAnPT0nLCBvcHRpb25zPy52YWx1ZSB8fCBvcHRpb25zKVxuICAgIH1cblxuICAgIGFzeW5jIGRlZmluZUxpbWl0cyhcbiAgICAgIHF1ZXJ5OiBDb2xsZWN0aW9uUmVmZXJlbmNlPFRCYXNlPiB8IFF1ZXJ5PFRCYXNlPixcbiAgICAgIGZpbHRlcnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+W10sXG4gICAgICBsaW1pdHM6IFJlcG9zaXRvcnlMaW1pdE9wdGlvbnM8VEJhc2U+LFxuICAgICk6IFByb21pc2U8UXVlcnk8VEJhc2U+PiB7XG4gICAgICBpZiAobGltaXRzPy5vZmZzZXQpIHtcbiAgICAgICAgaWYgKGxpbWl0cy5vZmZzZXQgaW5zdGFuY2VvZiB0aGlzLm1vZGVsKVxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkuc3RhcnRBZnRlcihcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbih0aGlzLmJ1aWxkQ29sbGVjdGlvblBhdGhGb3JGaW5kKGZpbHRlcnMpKVxuICAgICAgICAgICAgICAuZG9jKGxpbWl0cy5vZmZzZXRbbGltaXRzLm9mZnNldC5pZGVudGlmaWVyRmllbGRzKCkuc2hpZnQoKSBhcyBzdHJpbmddKVxuICAgICAgICAgICAgICAuZ2V0KCksXG4gICAgICAgICAgKVxuICAgICAgICBlbHNlIGlmIChpc051bWJlcihsaW1pdHMub2Zmc2V0KSB8fCBpc1N0cmluZyhsaW1pdHMub2Zmc2V0KSkgcXVlcnkgPSBxdWVyeS5zdGFydEF0KGxpbWl0cy5vZmZzZXQpXG4gICAgICB9XG4gICAgICBpZiAobGltaXRzPy5saW1pdCkgcXVlcnkgPSBxdWVyeS5saW1pdChsaW1pdHMubGltaXQpXG5cbiAgICAgIHJldHVybiBxdWVyeVxuICAgIH1cblxuICAgIGNhbGN1bGF0ZUNvdW50KGRhdGE6IFRCYXNlW10sIGxpbWl0czogUmVwb3NpdG9yeUxpbWl0T3B0aW9uczxUQmFzZT4pOiBudW1iZXIge1xuICAgICAgaWYgKGRhdGEubGVuZ3RoIDw9IDApIHJldHVybiAwXG4gICAgICBpZiAoZGF0YS5sZW5ndGggPCBsaW1pdHM/LmxpbWl0KSByZXR1cm4gZGF0YS5sZW5ndGhcblxuICAgICAgcmV0dXJuIEluZmluaXR5XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvbWl4aW5zL3dpdGgtZmluZC1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFVTCxLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQTtBQUUzQixPQUFPLEVBQWEsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFbEYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FDL0IsU0FBZ0YsRUFDaEYsRUFBRTtJQUNGLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFXLEVBQXVELEVBQUUsQ0FDakcsQ0FBQyxLQUFLLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzFCLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUF1QyxFQUFPLEVBQUU7UUFDMUUsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0lBQzlELENBQUMsQ0FBQTtJQUVELE9BQU8sTUFBTSxhQUFjLFNBQVEsU0FBUztRQUFyQzs7WUFvQ0wsdUJBQWtCLEdBQUcsQ0FDbkIsY0FBeUQsRUFDekQsTUFBcUMsRUFDdkIsRUFBRSxDQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDeEIsQ0FBQyxLQUFtQixFQUFFLFNBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN4RyxjQUFjLENBQ2YsQ0FBQTtZQUVILHVCQUFrQixHQUFHLENBQ25CLGNBQXlELEVBQ3pELFNBQW1ELEVBQ25ELE9BQThFLEVBQ2hFLEVBQUU7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBUSxJQUFJLENBQUMsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLGFBQWE7b0JBQUUsT0FBTyxjQUFjLENBQUE7Z0JBRWhHLE1BQU0sYUFBYSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7Z0JBQy9FLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBSyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxDQUFBLENBQUMsQ0FBQTtnQkFFMUcsSUFBSSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLE1BQUssS0FBSyxDQUFDLElBQUksRUFBRTtvQkFDcEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLENBQUM7d0JBQy9CLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7b0JBRXRGLGNBQWMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7b0JBQzlFLGNBQWMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO29CQUVwRixPQUFPLGNBQWMsQ0FBQTtpQkFDdEI7Z0JBQ0QsSUFBSSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLE1BQUssS0FBSyxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLENBQUM7b0JBQ2pFLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ2xGLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLENBQUM7b0JBQ3hFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQ2hDLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixFQUFFLEdBQUcsU0FBUyxJQUFJLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUN2RixjQUFjLENBQ2YsQ0FBQTtnQkFFSCxPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxLQUFJLElBQUksRUFBRSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLEtBQUksT0FBTyxDQUFDLENBQUE7WUFDdkcsQ0FBQyxDQUFBO1FBMkJILENBQUM7UUFwR08sSUFBSSxDQUNSLE9BQXlDLEVBQ3pDLE1BQXNDLEVBQ3RDLE9BQXNDOztnQkFFdEMsSUFBSSxLQUFLLEdBQThDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7Z0JBRWhILE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUVsRixPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDcEcsQ0FBQTtnQkFFRCxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7Z0JBRXZELE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFBO2dCQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBRS9DLE9BQU87b0JBQ0wsSUFBSTtvQkFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2lCQUN6QyxDQUFBO1lBQ0gsQ0FBQztTQUFBO1FBRUQsMEJBQTBCLENBQUMsT0FBd0M7O1lBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFRLElBQUksQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUE7WUFFbEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQTtZQUN4QyxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FDakMsTUFBQSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQ0FBRyxhQUFhLENBQUMsQ0FDeEcsQ0FBQTtZQUVELE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDckYsQ0FBQztRQTBDSyxZQUFZLENBQ2hCLEtBQWdELEVBQ2hELE9BQXdDLEVBQ3hDLE1BQXFDOztnQkFFckMsSUFBSSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsTUFBTSxFQUFFO29CQUNsQixJQUFJLE1BQU0sQ0FBQyxNQUFNLFlBQVksSUFBSSxDQUFDLEtBQUs7d0JBQ3JDLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUN0QixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDOzZCQUM1RCxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFZLENBQUMsQ0FBQzs2QkFDdEUsR0FBRyxFQUFFLENBQ1QsQ0FBQTt5QkFDRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7d0JBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2lCQUNsRztnQkFDRCxJQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLO29CQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFFcEQsT0FBTyxLQUFLLENBQUE7WUFDZCxDQUFDO1NBQUE7UUFFRCxjQUFjLENBQUMsSUFBYSxFQUFFLE1BQXFDO1lBQ2pFLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzlCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBRyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsS0FBSyxDQUFBO2dCQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUVuRCxPQUFPLFFBQVEsQ0FBQTtRQUNqQixDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25SZWZlcmVuY2UsIFF1ZXJ5LCBXaGVyZUZpbHRlck9wIH0gZnJvbSAnQGZpcmViYXNlL2ZpcmVzdG9yZS10eXBlcydcblxuaW1wb3J0IHtcbiAgQmFzZU1vZGVsV2l0aElkZW50aWZpZXIsXG4gIEZpbmRSZXBvc2l0b3J5LFxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbGQsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zLFxuICBSZXBvc2l0b3J5RmluZFJlc3VsdCxcbiAgUmVwb3NpdG9yeUxpbWl0T3B0aW9ucyxcbiAgUmVwb3NpdG9yeU9yZGVyQnlMaXN0LFxuICBXaGVyZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgTWl4aW5DdG9yLCBpc05pbCwgaXNOdW1iZXIsIGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgY29uc3Qgd2l0aEZpbmRGaXJlc3RvcmUgPSA8VEJhc2UgZXh0ZW5kcyBCYXNlTW9kZWxXaXRoSWRlbnRpZmllcjxUQmFzZT4sIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I+KFxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnM+ICYgVE1peGluQmFzZSxcbikgPT4ge1xuICBjb25zdCBjaGVja0lmSXNGaWx0ZXJPcHRpb24gPSAoZmlsdGVyOiBhbnkpOiBmaWx0ZXIgaXMgUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8VEJhc2UsIGFueT4gPT5cbiAgICAhaXNOaWwoZmlsdGVyPy5vcGVyYXRvcilcbiAgY29uc3QgZ2V0VmFsdWVGcm9tRmlsdGVyID0gKGZpbHRlcjogUmVwb3NpdG9yeUZpbmRGaWVsZDxUQmFzZSwgYW55Pik6IGFueSA9PiB7XG4gICAgcmV0dXJuIGNoZWNrSWZJc0ZpbHRlck9wdGlvbihmaWx0ZXIpID8gZmlsdGVyLnZhbHVlIDogZmlsdGVyXG4gIH1cblxuICByZXR1cm4gY2xhc3MgRmluZEZpcmVzdG9yZSBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIEZpbmRSZXBvc2l0b3J5PFRCYXNlPiB7XG4gICAgYXN5bmMgZmluZChcbiAgICAgIGZpbHRlcnM/OiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFRCYXNlPltdLFxuICAgICAgbGltaXRzPzogUmVwb3NpdG9yeUxpbWl0T3B0aW9uczxUQmFzZT4sXG4gICAgICBvcmRlckJ5PzogUmVwb3NpdG9yeU9yZGVyQnlMaXN0PFRCYXNlPixcbiAgICApOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFRCYXNlPj4ge1xuICAgICAgbGV0IHF1ZXJ5OiBDb2xsZWN0aW9uUmVmZXJlbmNlPFRCYXNlPiB8IFF1ZXJ5PFRCYXNlPiA9IHRoaXMuY29sbGVjdGlvbih0aGlzLmJ1aWxkQ29sbGVjdGlvblBhdGhGb3JGaW5kKGZpbHRlcnMpKVxuXG4gICAgICBmaWx0ZXJzPy5mb3JFYWNoKChmaWx0ZXJlcikgPT4gKHF1ZXJ5ID0gdGhpcy5tYWtlRmlyZXN0b3JlV2hlcmUocXVlcnksIGZpbHRlcmVyKSkpXG5cbiAgICAgIG9yZGVyQnk/LmZvckVhY2goKG9yZGVyZXIpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKG9yZGVyZXIpLmZvckVhY2goKGZpZWxkTmFtZSkgPT4gKHF1ZXJ5ID0gcXVlcnkub3JkZXJCeShmaWVsZE5hbWUsIG9yZGVyZXJbZmllbGROYW1lXSkpKSxcbiAgICAgIClcblxuICAgICAgcXVlcnkgPSBhd2FpdCB0aGlzLmRlZmluZUxpbWl0cyhxdWVyeSwgZmlsdGVycywgbGltaXRzKVxuXG4gICAgICBjb25zdCBkb2NzID0gYXdhaXQgcXVlcnkuZ2V0KClcbiAgICAgIGNvbnN0IGRhdGEgPSBkb2NzLmRvY3MubWFwKChkb2MpID0+IGRvYy5kYXRhKCkpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGEsXG4gICAgICAgIGNvdW50OiB0aGlzLmNhbGN1bGF0ZUNvdW50KGRhdGEsIGxpbWl0cyksXG4gICAgICB9XG4gICAgfVxuXG4gICAgYnVpbGRDb2xsZWN0aW9uUGF0aEZvckZpbmQoZmlsdGVyczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxUQmFzZT5bXSk6IHN0cmluZyB7XG4gICAgICBpZiAoIXRoaXMuaXNTdWJDb2xsZWN0aW9uPFRCYXNlPih0aGlzKSkgcmV0dXJuIHRoaXMuY29sbGVjdGlvbk5hbWVcblxuICAgICAgY29uc3QgcGFyZW50SWRGaWVsZCA9IHRoaXMucGFyZW50SWRGaWVsZFxuICAgICAgY29uc3QgcGFyZW50SWQgPSBnZXRWYWx1ZUZyb21GaWx0ZXIoXG4gICAgICAgIGZpbHRlcnMuZmluZCgoZ3JvdXBGaWx0ZXIpID0+IEJvb2xlYW4oZ2V0VmFsdWVGcm9tRmlsdGVyKGdyb3VwRmlsdGVyW3BhcmVudElkRmllbGRdKSkpPy5bcGFyZW50SWRGaWVsZF0sXG4gICAgICApXG5cbiAgICAgIHJldHVybiBgJHt0aGlzLnBhcmVudFJlcG9zaXRvcnkuY29sbGVjdGlvbk5hbWV9LyR7cGFyZW50SWR9LyR7dGhpcy5jb2xsZWN0aW9uTmFtZX1gXG4gICAgfVxuXG4gICAgbWFrZUZpcmVzdG9yZVdoZXJlID0gKFxuICAgICAgcXVlcnlSZWZlcmVuY2U6IENvbGxlY3Rpb25SZWZlcmVuY2U8VEJhc2U+IHwgUXVlcnk8VEJhc2U+LFxuICAgICAgZmlsdGVyOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFRCYXNlPixcbiAgICApOiBRdWVyeTxUQmFzZT4gPT5cbiAgICAgIE9iamVjdC5rZXlzKGZpbHRlcikucmVkdWNlKFxuICAgICAgICAocXVlcnk6IFF1ZXJ5PFRCYXNlPiwgZmllbGROYW1lOiBzdHJpbmcpID0+IHRoaXMuYnVpbGRXaGVyZVNlbnRlbmNlKHF1ZXJ5LCBmaWVsZE5hbWUsIGZpbHRlcltmaWVsZE5hbWVdKSxcbiAgICAgICAgcXVlcnlSZWZlcmVuY2UsXG4gICAgICApXG5cbiAgICBidWlsZFdoZXJlU2VudGVuY2UgPSAoXG4gICAgICBxdWVyeVJlZmVyZW5jZTogQ29sbGVjdGlvblJlZmVyZW5jZTxUQmFzZT4gfCBRdWVyeTxUQmFzZT4sXG4gICAgICBmaWVsZE5hbWU6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4gfCBzdHJpbmcsXG4gICAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxUQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPj4sXG4gICAgKTogUXVlcnk8VEJhc2U+ID0+IHtcbiAgICAgIGlmICh0aGlzLmlzU3ViQ29sbGVjdGlvbjxUQmFzZT4odGhpcykgJiYgZmllbGROYW1lID09PSB0aGlzLnBhcmVudElkRmllbGQpIHJldHVybiBxdWVyeVJlZmVyZW5jZVxuXG4gICAgICBjb25zdCBwbGFpbkluc3RhbmNlID0gbmV3IHRoaXMubW9kZWwoeyBbZmllbGROYW1lXTogb3B0aW9ucz8udmFsdWUgfSkudG9QbGFpbigpXG4gICAgICBjb25zdCBmaXJlc3RvcmVGaWVsZE5hbWUgPSBPYmplY3Qua2V5cyhwbGFpbkluc3RhbmNlKS5maW5kKChrZXkpID0+IHBsYWluSW5zdGFuY2Vba2V5XSA9PT0gb3B0aW9ucz8udmFsdWUpXG5cbiAgICAgIGlmIChvcHRpb25zPy5vcGVyYXRvciA9PT0gV2hlcmUuTElLRSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zPy52YWx1ZSkpXG4gICAgICAgICAgcmV0dXJuIHF1ZXJ5UmVmZXJlbmNlLndoZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgJ2FycmF5LWNvbnRhaW5zLWFueScsIG9wdGlvbnMudmFsdWUpXG5cbiAgICAgICAgcXVlcnlSZWZlcmVuY2UgPSBxdWVyeVJlZmVyZW5jZS53aGVyZShmaXJlc3RvcmVGaWVsZE5hbWUsICc+PScsIG9wdGlvbnMudmFsdWUpXG4gICAgICAgIHF1ZXJ5UmVmZXJlbmNlID0gcXVlcnlSZWZlcmVuY2Uud2hlcmUoZmlyZXN0b3JlRmllbGROYW1lLCAnPD0nLCBgJHtvcHRpb25zLnZhbHVlfX5gKVxuXG4gICAgICAgIHJldHVybiBxdWVyeVJlZmVyZW5jZVxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM/Lm9wZXJhdG9yID09PSBXaGVyZS5JTiAmJiBBcnJheS5pc0FycmF5KG9wdGlvbnM/LnZhbHVlKSlcbiAgICAgICAgcmV0dXJuIHF1ZXJ5UmVmZXJlbmNlLndoZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgJ2FycmF5LWNvbnRhaW5zJywgb3B0aW9ucy52YWx1ZSlcbiAgICAgIGlmIChpc09iamVjdChvcHRpb25zKSAmJiBpc05pbChvcHRpb25zPy5vcGVyYXRvcikgJiYgaXNOaWwob3B0aW9ucz8udmFsdWUpKVxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob3B0aW9ucykucmVkdWNlKFxuICAgICAgICAgIChxdWVyeVJlZmVyZW5jZVdpdGhXaGVyZSwga2V5KSA9PlxuICAgICAgICAgICAgdGhpcy5idWlsZFdoZXJlU2VudGVuY2UocXVlcnlSZWZlcmVuY2VXaXRoV2hlcmUsIGAke2ZpZWxkTmFtZX0uJHtrZXl9YCwgb3B0aW9uc1trZXldKSxcbiAgICAgICAgICBxdWVyeVJlZmVyZW5jZSxcbiAgICAgICAgKVxuXG4gICAgICByZXR1cm4gcXVlcnlSZWZlcmVuY2Uud2hlcmUoZmlyZXN0b3JlRmllbGROYW1lLCBvcHRpb25zPy5vcGVyYXRvciB8fCAnPT0nLCBvcHRpb25zPy52YWx1ZSB8fCBvcHRpb25zKVxuICAgIH1cblxuICAgIGFzeW5jIGRlZmluZUxpbWl0cyhcbiAgICAgIHF1ZXJ5OiBDb2xsZWN0aW9uUmVmZXJlbmNlPFRCYXNlPiB8IFF1ZXJ5PFRCYXNlPixcbiAgICAgIGZpbHRlcnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+W10sXG4gICAgICBsaW1pdHM6IFJlcG9zaXRvcnlMaW1pdE9wdGlvbnM8VEJhc2U+LFxuICAgICk6IFByb21pc2U8UXVlcnk8VEJhc2U+PiB7XG4gICAgICBpZiAobGltaXRzPy5vZmZzZXQpIHtcbiAgICAgICAgaWYgKGxpbWl0cy5vZmZzZXQgaW5zdGFuY2VvZiB0aGlzLm1vZGVsKVxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkuc3RhcnRBZnRlcihcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbih0aGlzLmJ1aWxkQ29sbGVjdGlvblBhdGhGb3JGaW5kKGZpbHRlcnMpKVxuICAgICAgICAgICAgICAuZG9jKGxpbWl0cy5vZmZzZXRbbGltaXRzLm9mZnNldC5pZGVudGlmaWVyRmllbGRzKCkuc2hpZnQoKSBhcyBzdHJpbmddKVxuICAgICAgICAgICAgICAuZ2V0KCksXG4gICAgICAgICAgKVxuICAgICAgICBlbHNlIGlmIChpc051bWJlcihsaW1pdHMub2Zmc2V0KSB8fCBpc1N0cmluZyhsaW1pdHMub2Zmc2V0KSkgcXVlcnkgPSBxdWVyeS5zdGFydEF0KGxpbWl0cy5vZmZzZXQpXG4gICAgICB9XG4gICAgICBpZiAobGltaXRzPy5saW1pdCkgcXVlcnkgPSBxdWVyeS5saW1pdChsaW1pdHMubGltaXQpXG5cbiAgICAgIHJldHVybiBxdWVyeVxuICAgIH1cblxuICAgIGNhbGN1bGF0ZUNvdW50KGRhdGE6IFRCYXNlW10sIGxpbWl0czogUmVwb3NpdG9yeUxpbWl0T3B0aW9uczxUQmFzZT4pOiBudW1iZXIge1xuICAgICAgaWYgKGRhdGEubGVuZ3RoIDw9IDApIHJldHVybiAwXG4gICAgICBpZiAoZGF0YS5sZW5ndGggPCBsaW1pdHM/LmxpbWl0KSByZXR1cm4gZGF0YS5sZW5ndGhcblxuICAgICAgcmV0dXJuIEluZmluaXR5XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1039,18 +1039,20 @@ const withFindFirestore = (MixinBase) => {
|
|
|
1039
1039
|
this.buildWhereSentence = (queryReference, fieldName, options) => {
|
|
1040
1040
|
if (this.isSubCollection(this) && fieldName === this.parentIdField)
|
|
1041
1041
|
return queryReference;
|
|
1042
|
+
const plainInstance = new this.model({ [fieldName]: options === null || options === void 0 ? void 0 : options.value }).toPlain();
|
|
1043
|
+
const firestoreFieldName = Object.keys(plainInstance).find((key) => plainInstance[key] === (options === null || options === void 0 ? void 0 : options.value));
|
|
1042
1044
|
if ((options === null || options === void 0 ? void 0 : options.operator) === Where.LIKE) {
|
|
1043
1045
|
if (Array.isArray(options === null || options === void 0 ? void 0 : options.value))
|
|
1044
|
-
return queryReference.where(
|
|
1045
|
-
queryReference = queryReference.where(
|
|
1046
|
-
queryReference = queryReference.where(
|
|
1046
|
+
return queryReference.where(firestoreFieldName, 'array-contains-any', options.value);
|
|
1047
|
+
queryReference = queryReference.where(firestoreFieldName, '>=', options.value);
|
|
1048
|
+
queryReference = queryReference.where(firestoreFieldName, '<=', `${options.value}~`);
|
|
1047
1049
|
return queryReference;
|
|
1048
1050
|
}
|
|
1049
1051
|
if ((options === null || options === void 0 ? void 0 : options.operator) === Where.IN && Array.isArray(options === null || options === void 0 ? void 0 : options.value))
|
|
1050
|
-
return queryReference.where(
|
|
1052
|
+
return queryReference.where(firestoreFieldName, 'array-contains', options.value);
|
|
1051
1053
|
if (isObject(options) && isNil(options === null || options === void 0 ? void 0 : options.operator) && isNil(options === null || options === void 0 ? void 0 : options.value))
|
|
1052
1054
|
return Object.keys(options).reduce((queryReferenceWithWhere, key) => this.buildWhereSentence(queryReferenceWithWhere, `${fieldName}.${key}`, options[key]), queryReference);
|
|
1053
|
-
return queryReference.where(
|
|
1055
|
+
return queryReference.where(firestoreFieldName, (options === null || options === void 0 ? void 0 : options.operator) || '==', (options === null || options === void 0 ? void 0 : options.value) || options);
|
|
1054
1056
|
};
|
|
1055
1057
|
}
|
|
1056
1058
|
find(filters, limits, orderBy) {
|