@infrab4a/connect 0.5.1 → 0.6.1

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vY2F0YWxvZy9yZXBvc2l0b3JpZXMvY2F0ZWdvcnkucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuLi9tb2RlbHMvY2F0ZWdvcnknXG5pbXBvcnQgeyBDcnVkUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uL2dlbmVyYWwvcmVwb3NpdG9yeS9jcnVkLnJlcG9zaXRvcnknXG5pbXBvcnQgeyBTaG9wcyB9IGZyb20gJy4uL21vZGVscy9lbnVtcy9zaG9wcy5lbnVtJ1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL21vZGVscydcblxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yeVJlcG9zaXRvcnkgZXh0ZW5kcyBDcnVkUmVwb3NpdG9yeTxDYXRlZ29yeT4ge1xuICBnZXRDYXRlZ29yeUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIHNob3A6IFNob3BzKTogUHJvbWlzZTxDYXRlZ29yeT5cbiAgZ2V0Q2F0ZWdvcmllc0ZvckhvbWUoY2F0ZWdvcnlJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx7IHRpdGxlOiBzdHJpbmcsIHByb2R1Y3RzOiBQcm9kdWN0W10gfVtdPlxuICBtb3VudENhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8UHJvZHVjdFtdPlxufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vY2F0YWxvZy9yZXBvc2l0b3JpZXMvY2F0ZWdvcnkucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuLi9tb2RlbHMvY2F0ZWdvcnknXG5pbXBvcnQgeyBDcnVkUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uL2dlbmVyYWwvcmVwb3NpdG9yeS9jcnVkLnJlcG9zaXRvcnknXG5pbXBvcnQgeyBTaG9wcyB9IGZyb20gJy4uL21vZGVscy9lbnVtcy9zaG9wcy5lbnVtJ1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL21vZGVscydcblxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yeVJlcG9zaXRvcnkgZXh0ZW5kcyBDcnVkUmVwb3NpdG9yeTxDYXRlZ29yeT4ge1xuICBnZXRDYXRlZ29yeUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIHNob3A6IFNob3BzKTogUHJvbWlzZTxDYXRlZ29yeT5cbiAgZ2V0Q2F0ZWdvcmllc0ZvckhvbWUoY2F0ZWdvcnlJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx7IGNhdGVnb3J5OiBDYXRlZ29yeTsgcHJvZHVjdHM6IFByb2R1Y3RbXSB9W10+XG4gIG1vdW50Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxQcm9kdWN0W10+XG59XG4iXX0=
@@ -1,11 +1,13 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Type } from 'class-transformer';
3
3
  import { BaseModel } from '../../general/model/base.model';
4
+ import { isNil } from '../../..//utils';
4
5
  import { BeautyProfile } from './beauty-profile';
5
6
  export class User extends BaseModel {
6
7
  static toInstance(data) {
7
8
  const instance = super.toInstance(data);
8
- instance.displayName = `${data.firstName} ${data.lastName}`;
9
+ if (!isNil(data.firstName))
10
+ instance.displayName = `${data.firstName}${!isNil(data.lastName) ? ` ${data.lastName}` : ''}`;
9
11
  return instance;
10
12
  }
11
13
  identifierFields() {
@@ -21,4 +23,4 @@ __decorate([
21
23
  Type(() => BeautyProfile),
22
24
  __metadata("design:type", BeautyProfile)
23
25
  ], User.prototype, "beautyProfile", void 0);
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vdXNlcnMvbW9kZWxzL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFLMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWhELE1BQU0sT0FBTyxJQUFLLFNBQVEsU0FBZTtJQWtCdkMsTUFBTSxDQUFDLFVBQVUsQ0FBZ0MsSUFBNEQ7UUFDM0csTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBTyxJQUFJLENBQUMsQ0FBQTtRQUU3QyxRQUFRLENBQUMsV0FBVyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFM0QsT0FBTyxRQUFlLENBQUE7SUFDeEIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNmLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRTdCLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQTtRQUUxQixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FDRjtBQXJCQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7OEJBQ1YsYUFBYTsyQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcidcblxuaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSAnLi4vLi4vZ2VuZXJhbC9tb2RlbC9iYXNlLm1vZGVsJ1xuaW1wb3J0IHsgSWRlbnRpZmllckZpZWxkcyB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwvaWRlbnRpZmllci1maWVsZHMnXG5pbXBvcnQgeyBOb25GdW5jdGlvblByb3BlcnRpZXMsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lcyB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwvdHlwZXMnXG5cbmltcG9ydCB7IEFyZWEsIE9mZmljZVBvc2l0aW9uLCBVc2VyVHlwZSB9IGZyb20gJy4vZW51bXMnXG5pbXBvcnQgeyBCZWF1dHlQcm9maWxlIH0gZnJvbSAnLi9iZWF1dHktcHJvZmlsZSdcblxuZXhwb3J0IGNsYXNzIFVzZXIgZXh0ZW5kcyBCYXNlTW9kZWw8VXNlcj4gaW1wbGVtZW50cyBJZGVudGlmaWVyRmllbGRzPFVzZXI+IHtcbiAgaWQ6IHN0cmluZ1xuICBjcGY/OiBzdHJpbmdcbiAgZW1haWw6IHN0cmluZ1xuICBmaXJzdE5hbWU6IHN0cmluZ1xuICBsYXN0TmFtZTogc3RyaW5nXG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nXG4gIHBob25lOiBzdHJpbmdcbiAgYmlydGhkYXk/OiBEYXRlXG4gIGFjY2VwdHNOZXdzbGV0dGVyOiBib29sZWFuXG4gIHR5cGU/OiBVc2VyVHlwZVxuICBhcmVhPzogQXJlYVxuICBvZmZpY2VQb3NpdGlvbj86IE9mZmljZVBvc2l0aW9uXG4gIGlzU3Vic2NyaWJlcj86IGJvb2xlYW5cblxuICBAVHlwZSgoKSA9PiBCZWF1dHlQcm9maWxlKVxuICBiZWF1dHlQcm9maWxlPzogQmVhdXR5UHJvZmlsZVxuXG4gIHN0YXRpYyB0b0luc3RhbmNlPFQ+KHRoaXM6IG5ldyAoKSA9PiBQYXJ0aWFsPFQ+LCBkYXRhOiBOb25GdW5jdGlvblByb3BlcnRpZXM8VD4gJiBOb25GdW5jdGlvblByb3BlcnRpZXM8VXNlcj4pOiBUIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHN1cGVyLnRvSW5zdGFuY2U8VXNlcj4oZGF0YSlcblxuICAgIGluc3RhbmNlLmRpc3BsYXlOYW1lID0gYCR7ZGF0YS5maXJzdE5hbWV9ICR7ZGF0YS5sYXN0TmFtZX1gXG5cbiAgICByZXR1cm4gaW5zdGFuY2UgYXMgYW55XG4gIH1cblxuICBpZGVudGlmaWVyRmllbGRzKCk6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxVc2VyPltdIHtcbiAgICByZXR1cm4gWydpZCddXG4gIH1cblxuICB0b1BsYWluKCk6IGFueSB7XG4gICAgY29uc3QgcGxhaW4gPSBzdXBlci50b1BsYWluKClcblxuICAgIGRlbGV0ZSBwbGFpbi5iZWF1dHlQcm9maWxlXG5cbiAgICByZXR1cm4gcGxhaW5cbiAgfVxufVxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vdXNlcnMvbW9kZWxzL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFFMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSXZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVoRCxNQUFNLE9BQU8sSUFBSyxTQUFRLFNBQWU7SUFrQnZDLE1BQU0sQ0FBQyxVQUFVLENBQWdDLElBQTREO1FBQzNHLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQU8sSUFBSSxDQUFDLENBQUE7UUFFN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3hCLFFBQVEsQ0FBQyxXQUFXLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBRS9GLE9BQU8sUUFBZSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDZixDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUU3QixPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUE7UUFFMUIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0NBQ0Y7QUF0QkM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDOzhCQUNWLGFBQWE7MkNBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5cbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwvYmFzZS5tb2RlbCdcbmltcG9ydCB7IElkZW50aWZpZXJGaWVsZHMgfSBmcm9tICcuLi8uLi9nZW5lcmFsL21vZGVsL2lkZW50aWZpZXItZmllbGRzJ1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuLi8uLi8uLi8vdXRpbHMnXG5pbXBvcnQgeyBOb25GdW5jdGlvblByb3BlcnRpZXMsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lcyB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwvdHlwZXMnXG5cbmltcG9ydCB7IEFyZWEsIE9mZmljZVBvc2l0aW9uLCBVc2VyVHlwZSB9IGZyb20gJy4vZW51bXMnXG5pbXBvcnQgeyBCZWF1dHlQcm9maWxlIH0gZnJvbSAnLi9iZWF1dHktcHJvZmlsZSdcblxuZXhwb3J0IGNsYXNzIFVzZXIgZXh0ZW5kcyBCYXNlTW9kZWw8VXNlcj4gaW1wbGVtZW50cyBJZGVudGlmaWVyRmllbGRzPFVzZXI+IHtcbiAgaWQ6IHN0cmluZ1xuICBjcGY/OiBzdHJpbmdcbiAgZW1haWw6IHN0cmluZ1xuICBmaXJzdE5hbWU6IHN0cmluZ1xuICBsYXN0TmFtZTogc3RyaW5nXG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nXG4gIHBob25lOiBzdHJpbmdcbiAgYmlydGhkYXk/OiBEYXRlXG4gIGFjY2VwdHNOZXdzbGV0dGVyOiBib29sZWFuXG4gIHR5cGU/OiBVc2VyVHlwZVxuICBhcmVhPzogQXJlYVxuICBvZmZpY2VQb3NpdGlvbj86IE9mZmljZVBvc2l0aW9uXG4gIGlzU3Vic2NyaWJlcj86IGJvb2xlYW5cblxuICBAVHlwZSgoKSA9PiBCZWF1dHlQcm9maWxlKVxuICBiZWF1dHlQcm9maWxlPzogQmVhdXR5UHJvZmlsZVxuXG4gIHN0YXRpYyB0b0luc3RhbmNlPFQ+KHRoaXM6IG5ldyAoKSA9PiBQYXJ0aWFsPFQ+LCBkYXRhOiBOb25GdW5jdGlvblByb3BlcnRpZXM8VD4gJiBOb25GdW5jdGlvblByb3BlcnRpZXM8VXNlcj4pOiBUIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHN1cGVyLnRvSW5zdGFuY2U8VXNlcj4oZGF0YSlcblxuICAgIGlmICghaXNOaWwoZGF0YS5maXJzdE5hbWUpKVxuICAgICAgaW5zdGFuY2UuZGlzcGxheU5hbWUgPSBgJHtkYXRhLmZpcnN0TmFtZX0keyFpc05pbChkYXRhLmxhc3ROYW1lKSA/IGAgJHtkYXRhLmxhc3ROYW1lfWAgOiAnJ31gXG5cbiAgICByZXR1cm4gaW5zdGFuY2UgYXMgYW55XG4gIH1cblxuICBpZGVudGlmaWVyRmllbGRzKCk6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxVc2VyPltdIHtcbiAgICByZXR1cm4gWydpZCddXG4gIH1cblxuICB0b1BsYWluKCk6IGFueSB7XG4gICAgY29uc3QgcGxhaW4gPSBzdXBlci50b1BsYWluKClcblxuICAgIGRlbGV0ZSBwbGFpbi5iZWF1dHlQcm9maWxlXG5cbiAgICByZXR1cm4gcGxhaW5cbiAgfVxufVxuIl19
@@ -12,36 +12,37 @@ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(w
12
12
  }
13
13
  getCategoryBySlug(slug, shop) {
14
14
  return this.collection(this.collectionName)
15
- .where("slug", "==", slug)
16
- .where("shop", "==", shop)
17
- .where("published", "==", true)
18
- .get().then(snap => {
15
+ .where('slug', '==', slug)
16
+ .where('shop', '==', shop)
17
+ .where('published', '==', true)
18
+ .get()
19
+ .then((snap) => {
19
20
  if (snap.size > 1)
20
- throw new DuplicatedResultsError("Query returned duplicated values");
21
+ throw new DuplicatedResultsError('Query returned duplicated values');
21
22
  if (snap.empty)
22
23
  throw new NotFoundError(`Document with slug ${slug} not found`);
23
24
  return snap.docs[0].data();
24
- }).catch(error => error);
25
+ })
26
+ .catch((error) => error);
25
27
  }
26
28
  getCategoriesForHome(categoryIds) {
27
29
  return __awaiter(this, void 0, void 0, function* () {
28
30
  const categorySnap = yield this.collection(this.collectionName)
29
- .where("id", "in", categoryIds)
30
- .where("published", "==", true)
31
+ .where('id', 'in', categoryIds)
32
+ .where('published', '==', true)
31
33
  .get();
32
34
  if (categorySnap.empty)
33
- throw new NotFoundError("Categories not found");
34
- const categories = categorySnap.docs.map(doc => doc.data());
35
+ throw new NotFoundError('Categories not found');
36
+ const categories = categorySnap.docs.map((doc) => doc.data());
35
37
  const homeSections = [];
36
38
  for (const category of categories) {
37
- const productSnap = yield this.collection("products")
38
- .where("categories", "array-contains", category.id)
39
- // .where("published", "==", true)
40
- .where("stock.quantity", ">", 1)
39
+ const productSnap = yield this.collection('products')
40
+ .where('categories', 'array-contains', category.id)
41
+ .where('stock.quantity', '>', 1)
41
42
  .limit(4)
42
43
  .get();
43
- const products = productSnap.docs.map(doc => doc.data());
44
- homeSections.push({ title: category.name, products });
44
+ const products = productSnap.docs.map((doc) => doc.data());
45
+ homeSections.push({ category, products });
45
46
  }
46
47
  return homeSections;
47
48
  });
@@ -49,7 +50,7 @@ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(w
49
50
  mountCategory(category) {
50
51
  return __awaiter(this, void 0, void 0, function* () {
51
52
  if (!category.products)
52
- throw new RequiredArgumentError(["Category products is empty"]);
53
+ throw new RequiredArgumentError(['Category products is empty']);
53
54
  const chunks = category.products.reduce((resultArray, item, index) => {
54
55
  const chunkIndex = Math.floor(index / 10);
55
56
  if (!resultArray[chunkIndex])
@@ -59,16 +60,13 @@ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(w
59
60
  }, []);
60
61
  const products = [];
61
62
  for (const productIds of chunks) {
62
- const productSnap = yield this.collection("products")
63
- .where("id", "in", productIds)
64
- // .where("published", "==", true)
65
- .get();
63
+ const productSnap = yield this.collection('products').where('id', 'in', productIds).get();
66
64
  if (productSnap.empty)
67
65
  continue;
68
- products.push(...productSnap.docs.map(doc => doc.data()));
66
+ products.push(...productSnap.docs.map((doc) => doc.data()));
69
67
  }
70
68
  return products;
71
69
  });
72
70
  }
73
71
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9jYXRhbG9nL2NhdGVnb3J5LWZpcmVzdG9yZS5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBc0MsTUFBTSx1QkFBdUIsQ0FBQTtBQUVwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFcEcsTUFBTSxPQUFPLDJCQUNYLFNBQVEsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRXJFLFlBQXFCLFNBQTRCO1FBQy9DLEtBQUssRUFBRSxDQUFBO1FBRFksY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFFL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUE7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUE7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVksRUFBRSxJQUFXO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ3hDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQzthQUN6QixLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7YUFDekIsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxD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QyxVQUFVLENBQUMsVUFBVSxDQUFDO3FCQUNsRCxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUM7b0JBQzlCLGtDQUFrQztxQkFDakMsR0FBRyxFQUFFLENBQUM7Z0JBRVQsSUFBSSxXQUFXLENBQUMsS0FBSztvQkFBRSxTQUFTO2dCQUVoQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzNEO1lBRUQsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXJlYmFzZUZpcmVzdG9yZSB9IGZyb20gJ0BmaXJlYmFzZS9maXJlc3RvcmUtdHlwZXMnXG5cbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IENhdGVnb3J5LCBDYXRlZ29yeVJlcG9zaXRvcnksIFByb2R1Y3QsIFNob3BzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5pbXBvcnQgeyBEdXBsaWNhdGVkUmVzdWx0c0Vycm9yLCBOb3RGb3VuZEVycm9yLCBSZXF1aXJlZEFyZ3VtZW50RXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lcnJvcnMnXG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEZpcmVzdG9yZSh3aXRoSGVscGVycyh3aXRoRmlyZXN0b3JlPENhdGVnb3J5PihCYXNlKSkpXG4gIGltcGxlbWVudHMgQ2F0ZWdvcnlSZXBvc2l0b3J5IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZmlyZXN0b3JlOiBGaXJlYmFzZUZpcmVzdG9yZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbGxlY3Rpb25OYW1lID0gJ2NhdGVnb3JpZXMnXG4gICAgdGhpcy5tb2RlbCA9IENhdGVnb3J5XG4gIH1cblxuICBnZXRDYXRlZ29yeUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIHNob3A6IFNob3BzKTogUHJvbWlzZTxDYXRlZ29yeT4ge1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uTmFtZSlcbiAgICAgIC53aGVyZShcInNsdWdcIiwgXCI9PVwiLCBzbHVnKVxuICAgICAgLndoZXJlKFwic2hvcFwiLCBcIj09XCIsIHNob3ApXG4gICAgICAud2hlcmUoXCJwdWJsaXNoZWRcIiwgXCI9PVwiLCB0cnVlKVxuICAgICAgLmdldCgpLnRoZW4oc25hcCA9PiB7XG5cbiAgICAgICAgaWYgKHNuYXAuc2l6ZSA+IDEpXG4gICAgICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZWRSZXN1bHRzRXJyb3IoXCJRdWVyeSByZXR1cm5lZCBkdXBsaWNhdGVkIHZhbHVlc1wiKTtcblxuICAgICAgICBpZiAoc25hcC5lbXB0eSlcbiAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgRG9jdW1lbnQgd2l0aCBzbHVnICR7c2x1Z30gbm90IGZvdW5kYCk7XG5cbiAgICAgICAgcmV0dXJuIHNuYXAuZG9jc1swXS5kYXRhKClcbiAgICAgIH0pLmNhdGNoKGVycm9yID0+IGVycm9yKVxuICB9XG5cbiAgYXN5bmMgZ2V0Q2F0ZWdvcmllc0ZvckhvbWUoY2F0ZWdvcnlJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx7IHRpdGxlOiBzdHJpbmcsIHByb2R1Y3RzOiBQcm9kdWN0W10gfVtdPiB7XG5cbiAgICBjb25zdCBjYXRlZ29yeVNuYXAgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uTmFtZSlcbiAgICAgIC53aGVyZShcImlkXCIsIFwiaW5cIiwgY2F0ZWdvcnlJZHMpXG4gICAgICAud2hlcmUoXCJwdWJsaXNoZWRcIiwgXCI9PVwiLCB0cnVlKVxuICAgICAgLmdldCgpXG5cbiAgICBpZiAoY2F0ZWdvcnlTbmFwLmVtcHR5KVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXCJDYXRlZ29yaWVzIG5vdCBmb3VuZFwiKVxuXG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IGNhdGVnb3J5U25hcC5kb2NzLm1hcChkb2MgPT4gZG9jLmRhdGEoKSlcblxuICAgIGNvbnN0IGhvbWVTZWN0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXMpIHtcbiAgICAgIGNvbnN0IHByb2R1Y3RTbmFwID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKFwicHJvZHVjdHNcIilcbiAgICAgICAgLndoZXJlKFwiY2F0ZWdvcmllc1wiLCBcImFycmF5LWNvbnRhaW5zXCIsIGNhdGVnb3J5LmlkKVxuICAgICAgICAvLyAud2hlcmUoXCJwdWJsaXNoZWRcIiwgXCI9PVwiLCB0cnVlKVxuICAgICAgICAud2hlcmUoXCJzdG9jay5xdWFudGl0eVwiLCBcIj5cIiwgMSlcbiAgICAgICAgLmxpbWl0KDQpXG4gICAgICAgIC5nZXQoKVxuXG4gICAgICBjb25zdCBwcm9kdWN0cyA9IHByb2R1Y3RTbmFwLmRvY3MubWFwKGRvYyA9PiBkb2MuZGF0YSgpKVxuXG4gICAgICBob21lU2VjdGlvbnMucHVzaCh7IHRpdGxlOiBjYXRlZ29yeS5uYW1lLCBwcm9kdWN0cyB9KVxuICAgIH1cblxuICAgIHJldHVybiBob21lU2VjdGlvbnM7XG4gIH1cblxuICBhc3luYyBtb3VudENhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8UHJvZHVjdFtdPiB7XG5cbiAgICBpZiAoIWNhdGVnb3J5LnByb2R1Y3RzKVxuICAgICAgdGhyb3cgbmV3IFJlcXVpcmVkQXJndW1lbnRFcnJvcihbXCJDYXRlZ29yeSBwcm9kdWN0cyBpcyBlbXB0eVwiXSk7XG5cbiAgICBjb25zdCBjaHVua3MgPSBjYXRlZ29yeS5wcm9kdWN0cy5yZWR1Y2UoKHJlc3VsdEFycmF5LCBpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY2h1bmtJbmRleCA9IE1hdGguZmxvb3IoaW5kZXggLyAxMCk7XG5cbiAgICAgIGlmICghcmVzdWx0QXJyYXlbY2h1bmtJbmRleF0pXG4gICAgICAgIHJlc3VsdEFycmF5W2NodW5rSW5kZXhdID0gW107XG5cbiAgICAgIHJlc3VsdEFycmF5W2NodW5rSW5kZXhdLnB1c2goaXRlbSlcblxuICAgICAgcmV0dXJuIHJlc3VsdEFycmF5XG4gICAgfSwgW10pXG5cbiAgICBjb25zdCBwcm9kdWN0cyA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBwcm9kdWN0SWRzIG9mIGNodW5rcykge1xuICAgICAgY29uc3QgcHJvZHVjdFNuYXAgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oXCJwcm9kdWN0c1wiKVxuICAgICAgICAud2hlcmUoXCJpZFwiLCBcImluXCIsIHByb2R1Y3RJZHMpXG4gICAgICAgIC8vIC53aGVyZShcInB1Ymxpc2hlZFwiLCBcIj09XCIsIHRydWUpXG4gICAgICAgIC5nZXQoKTtcblxuICAgICAgaWYgKHByb2R1Y3RTbmFwLmVtcHR5KSBjb250aW51ZTtcblxuICAgICAgcHJvZHVjdHMucHVzaCguLi5wcm9kdWN0U25hcC5kb2NzLm1hcChkb2MgPT4gZG9jLmRhdGEoKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9kdWN0cztcbiAgfVxufVxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9jYXRhbG9nL2NhdGVnb3J5LWZpcmVzdG9yZS5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBc0MsTUFBTSx1QkFBdUIsQ0FBQTtBQUVwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFcEcsTUFBTSxPQUFPLDJCQUNYLFNBQVEsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBR3JFLFlBQXFCLFNBQTRCO1FBQy9DLEtBQUssRUFBRSxDQUFBO1FBRFksY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFFL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUE7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUE7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVksRUFBRSxJQUFXO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ3hDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQzthQUN6QixLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7YUFDekIsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO2FBQzlCLEdBQUcsRUFBRTthQUNMLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2IsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQUUsTUFBTSxJQUFJLHNCQUFzQixDQUFDLGtDQUFrQyxDQUFDLENBQUE7WUFFdkYsSUFBSSxJQUFJLENBQUMsS0FBSztnQkFBRSxNQUFNLElBQUksYUFBYSxDQUFDLHNCQUFzQixJQUFJLFlBQVksQ0FBQyxDQUFBO1lBRS9FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUM1QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFFSyxvQkFBb0IsQ0FBQyxXQUFxQjs7WUFDOUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7aUJBQzVELEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQztpQkFDOUIsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO2lCQUM5QixHQUFHLEVBQUUsQ0FBQTtZQUVSLElBQUksWUFBWSxDQUFDLEtBQUs7Z0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1lBRXZFLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUM3RCxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUE7WUFFdkIsS0FBSyxNQUFNLFFBQVEsSUFBSSxVQUFVLEVBQUU7Z0JBQ2pDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7cUJBQ2xELEtBQUssQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztxQkFDbEQsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7cUJBQy9CLEtBQUssQ0FBQyxDQUFDLENBQUM7cUJBQ1IsR0FBRyxFQUFFLENBQUE7Z0JBRVIsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUUxRCxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7YUFDMUM7WUFFRCxPQUFPLFlBQVksQ0FBQTtRQUNyQixDQUFDO0tBQUE7SUFFSyxhQUFhLENBQUMsUUFBa0I7O1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtnQkFBRSxNQUFNLElBQUkscUJBQXFCLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUE7WUFFdkYsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNuRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQTtnQkFFekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7b0JBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtnQkFFMUQsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFFbEMsT0FBTyxXQUFXLENBQUE7WUFDcEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBRU4sTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFBO1lBRW5CLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxFQUFFO2dCQUMvQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUE7Z0JBRXpGLElBQUksV0FBVyxDQUFDLEtBQUs7b0JBQUUsU0FBUTtnQkFFL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO2FBQzVEO1lBRUQsT0FBTyxRQUFRLENBQUE7UUFDakIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXJlYmFzZUZpcmVzdG9yZSB9IGZyb20gJ0BmaXJlYmFzZS9maXJlc3RvcmUtdHlwZXMnXG5cbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IENhdGVnb3J5LCBDYXRlZ29yeVJlcG9zaXRvcnksIFByb2R1Y3QsIFNob3BzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5pbXBvcnQgeyBEdXBsaWNhdGVkUmVzdWx0c0Vycm9yLCBOb3RGb3VuZEVycm9yLCBSZXF1aXJlZEFyZ3VtZW50RXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lcnJvcnMnXG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEZpcmVzdG9yZSh3aXRoSGVscGVycyh3aXRoRmlyZXN0b3JlPENhdGVnb3J5PihCYXNlKSkpXG4gIGltcGxlbWVudHMgQ2F0ZWdvcnlSZXBvc2l0b3J5XG57XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZpcmVzdG9yZTogRmlyZWJhc2VGaXJlc3RvcmUpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5jb2xsZWN0aW9uTmFtZSA9ICdjYXRlZ29yaWVzJ1xuICAgIHRoaXMubW9kZWwgPSBDYXRlZ29yeVxuICB9XG5cbiAgZ2V0Q2F0ZWdvcnlCeVNsdWcoc2x1Zzogc3RyaW5nLCBzaG9wOiBTaG9wcyk6IFByb21pc2U8Q2F0ZWdvcnk+IHtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uKHRoaXMuY29sbGVjdGlvbk5hbWUpXG4gICAgICAud2hlcmUoJ3NsdWcnLCAnPT0nLCBzbHVnKVxuICAgICAgLndoZXJlKCdzaG9wJywgJz09Jywgc2hvcClcbiAgICAgIC53aGVyZSgncHVibGlzaGVkJywgJz09JywgdHJ1ZSlcbiAgICAgIC5nZXQoKVxuICAgICAgLnRoZW4oKHNuYXApID0+IHtcbiAgICAgICAgaWYgKHNuYXAuc2l6ZSA+IDEpIHRocm93IG5ldyBEdXBsaWNhdGVkUmVzdWx0c0Vycm9yKCdRdWVyeSByZXR1cm5lZCBkdXBsaWNhdGVkIHZhbHVlcycpXG5cbiAgICAgICAgaWYgKHNuYXAuZW1wdHkpIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBEb2N1bWVudCB3aXRoIHNsdWcgJHtzbHVnfSBub3QgZm91bmRgKVxuXG4gICAgICAgIHJldHVybiBzbmFwLmRvY3NbMF0uZGF0YSgpXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gZXJyb3IpXG4gIH1cblxuICBhc3luYyBnZXRDYXRlZ29yaWVzRm9ySG9tZShjYXRlZ29yeUlkczogc3RyaW5nW10pOiBQcm9taXNlPHsgY2F0ZWdvcnk6IENhdGVnb3J5OyBwcm9kdWN0czogUHJvZHVjdFtdIH1bXT4ge1xuICAgIGNvbnN0IGNhdGVnb3J5U25hcCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25OYW1lKVxuICAgICAgLndoZXJlKCdpZCcsICdpbicsIGNhdGVnb3J5SWRzKVxuICAgICAgLndoZXJlKCdwdWJsaXNoZWQnLCAnPT0nLCB0cnVlKVxuICAgICAgLmdldCgpXG5cbiAgICBpZiAoY2F0ZWdvcnlTbmFwLmVtcHR5KSB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcignQ2F0ZWdvcmllcyBub3QgZm91bmQnKVxuXG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IGNhdGVnb3J5U25hcC5kb2NzLm1hcCgoZG9jKSA9PiBkb2MuZGF0YSgpKVxuICAgIGNvbnN0IGhvbWVTZWN0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXMpIHtcbiAgICAgIGNvbnN0IHByb2R1Y3RTbmFwID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKCdwcm9kdWN0cycpXG4gICAgICAgIC53aGVyZSgnY2F0ZWdvcmllcycsICdhcnJheS1jb250YWlucycsIGNhdGVnb3J5LmlkKVxuICAgICAgICAud2hlcmUoJ3N0b2NrLnF1YW50aXR5JywgJz4nLCAxKVxuICAgICAgICAubGltaXQoNClcbiAgICAgICAgLmdldCgpXG5cbiAgICAgIGNvbnN0IHByb2R1Y3RzID0gcHJvZHVjdFNuYXAuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmRhdGEoKSlcblxuICAgICAgaG9tZVNlY3Rpb25zLnB1c2goeyBjYXRlZ29yeSwgcHJvZHVjdHMgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gaG9tZVNlY3Rpb25zXG4gIH1cblxuICBhc3luYyBtb3VudENhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8UHJvZHVjdFtdPiB7XG4gICAgaWYgKCFjYXRlZ29yeS5wcm9kdWN0cykgdGhyb3cgbmV3IFJlcXVpcmVkQXJndW1lbnRFcnJvcihbJ0NhdGVnb3J5IHByb2R1Y3RzIGlzIGVtcHR5J10pXG5cbiAgICBjb25zdCBjaHVua3MgPSBjYXRlZ29yeS5wcm9kdWN0cy5yZWR1Y2UoKHJlc3VsdEFycmF5LCBpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY2h1bmtJbmRleCA9IE1hdGguZmxvb3IoaW5kZXggLyAxMClcblxuICAgICAgaWYgKCFyZXN1bHRBcnJheVtjaHVua0luZGV4XSkgcmVzdWx0QXJyYXlbY2h1bmtJbmRleF0gPSBbXVxuXG4gICAgICByZXN1bHRBcnJheVtjaHVua0luZGV4XS5wdXNoKGl0ZW0pXG5cbiAgICAgIHJldHVybiByZXN1bHRBcnJheVxuICAgIH0sIFtdKVxuXG4gICAgY29uc3QgcHJvZHVjdHMgPSBbXVxuXG4gICAgZm9yIChjb25zdCBwcm9kdWN0SWRzIG9mIGNodW5rcykge1xuICAgICAgY29uc3QgcHJvZHVjdFNuYXAgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oJ3Byb2R1Y3RzJykud2hlcmUoJ2lkJywgJ2luJywgcHJvZHVjdElkcykuZ2V0KClcblxuICAgICAgaWYgKHByb2R1Y3RTbmFwLmVtcHR5KSBjb250aW51ZVxuXG4gICAgICBwcm9kdWN0cy5wdXNoKC4uLnByb2R1Y3RTbmFwLmRvY3MubWFwKChkb2MpID0+IGRvYy5kYXRhKCkpKVxuICAgIH1cblxuICAgIHJldHVybiBwcm9kdWN0c1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { chunk, isEmpty, isNil, isNumber, isString } from 'lodash';
2
- export { chunk, isEmpty, isNil, isNumber, isString };
1
+ import { chunk, isEmpty, isNil, isNumber, isString, pick } from 'lodash';
2
+ export { chunk, isEmpty, isNil, isNumber, isString, pick };
3
3
  export * from './mixins';
4
4
  export * from './types';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFbEUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQTtBQUNwRCxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFNBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNodW5rLCBpc0VtcHR5LCBpc05pbCwgaXNOdW1iZXIsIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoJ1xuXG5leHBvcnQgeyBjaHVuaywgaXNFbXB0eSwgaXNOaWwsIGlzTnVtYmVyLCBpc1N0cmluZyB9XG5leHBvcnQgKiBmcm9tICcuL21peGlucydcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnXG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBRXhFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFBO0FBQzFELGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2h1bmssIGlzRW1wdHksIGlzTmlsLCBpc051bWJlciwgaXNTdHJpbmcsIHBpY2sgfSBmcm9tICdsb2Rhc2gnXG5cbmV4cG9ydCB7IGNodW5rLCBpc0VtcHR5LCBpc05pbCwgaXNOdW1iZXIsIGlzU3RyaW5nLCBwaWNrIH1cbmV4cG9ydCAqIGZyb20gJy4vbWl4aW5zJ1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcbiJdfQ==
@@ -2,7 +2,7 @@ import 'reflect-metadata';
2
2
  import { plainToClass, classToPlain, Expose, Type } from 'class-transformer';
3
3
  import { __decorate, __metadata, __awaiter } from 'tslib';
4
4
  import { isNil, isNumber, isString, isEmpty } from 'lodash';
5
- export { chunk, isEmpty, isNil, isNumber, isString } from 'lodash';
5
+ export { chunk, isEmpty, isNil, isNumber, isString, pick } from 'lodash';
6
6
  import { Md5 } from 'ts-md5';
7
7
  import firebase from 'firebase';
8
8
  import firebase$1 from 'firebase/app';
@@ -342,6 +342,12 @@ class SubscriptionPlan extends BaseModel {
342
342
  }
343
343
  }
344
344
 
345
+ class Base {
346
+ constructor(...args) {
347
+ Object.assign(this, ...args);
348
+ }
349
+ }
350
+
345
351
  class BeautyProfile extends BaseModel {
346
352
  toPlain() {
347
353
  const plain = super.toPlain();
@@ -356,7 +362,8 @@ class BeautyProfile extends BaseModel {
356
362
  class User extends BaseModel {
357
363
  static toInstance(data) {
358
364
  const instance = super.toInstance(data);
359
- instance.displayName = `${data.firstName} ${data.lastName}`;
365
+ if (!isNil(data.firstName))
366
+ instance.displayName = `${data.firstName}${!isNil(data.lastName) ? ` ${data.lastName}` : ''}`;
360
367
  return instance;
361
368
  }
362
369
  identifierFields() {
@@ -413,12 +420,6 @@ class UserAddress extends Address {
413
420
  }
414
421
  }
415
422
 
416
- class Base {
417
- constructor(...args) {
418
- Object.assign(this, ...args);
419
- }
420
- }
421
-
422
423
  class UnauthorizedError extends Error {
423
424
  constructor(message) {
424
425
  super(message);
@@ -1001,36 +1002,37 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
1001
1002
  }
1002
1003
  getCategoryBySlug(slug, shop) {
1003
1004
  return this.collection(this.collectionName)
1004
- .where("slug", "==", slug)
1005
- .where("shop", "==", shop)
1006
- .where("published", "==", true)
1007
- .get().then(snap => {
1005
+ .where('slug', '==', slug)
1006
+ .where('shop', '==', shop)
1007
+ .where('published', '==', true)
1008
+ .get()
1009
+ .then((snap) => {
1008
1010
  if (snap.size > 1)
1009
- throw new DuplicatedResultsError("Query returned duplicated values");
1011
+ throw new DuplicatedResultsError('Query returned duplicated values');
1010
1012
  if (snap.empty)
1011
1013
  throw new NotFoundError(`Document with slug ${slug} not found`);
1012
1014
  return snap.docs[0].data();
1013
- }).catch(error => error);
1015
+ })
1016
+ .catch((error) => error);
1014
1017
  }
1015
1018
  getCategoriesForHome(categoryIds) {
1016
1019
  return __awaiter(this, void 0, void 0, function* () {
1017
1020
  const categorySnap = yield this.collection(this.collectionName)
1018
- .where("id", "in", categoryIds)
1019
- .where("published", "==", true)
1021
+ .where('id', 'in', categoryIds)
1022
+ .where('published', '==', true)
1020
1023
  .get();
1021
1024
  if (categorySnap.empty)
1022
- throw new NotFoundError("Categories not found");
1023
- const categories = categorySnap.docs.map(doc => doc.data());
1025
+ throw new NotFoundError('Categories not found');
1026
+ const categories = categorySnap.docs.map((doc) => doc.data());
1024
1027
  const homeSections = [];
1025
1028
  for (const category of categories) {
1026
- const productSnap = yield this.collection("products")
1027
- .where("categories", "array-contains", category.id)
1028
- // .where("published", "==", true)
1029
- .where("stock.quantity", ">", 1)
1029
+ const productSnap = yield this.collection('products')
1030
+ .where('categories', 'array-contains', category.id)
1031
+ .where('stock.quantity', '>', 1)
1030
1032
  .limit(4)
1031
1033
  .get();
1032
- const products = productSnap.docs.map(doc => doc.data());
1033
- homeSections.push({ title: category.name, products });
1034
+ const products = productSnap.docs.map((doc) => doc.data());
1035
+ homeSections.push({ category, products });
1034
1036
  }
1035
1037
  return homeSections;
1036
1038
  });
@@ -1038,7 +1040,7 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
1038
1040
  mountCategory(category) {
1039
1041
  return __awaiter(this, void 0, void 0, function* () {
1040
1042
  if (!category.products)
1041
- throw new RequiredArgumentError(["Category products is empty"]);
1043
+ throw new RequiredArgumentError(['Category products is empty']);
1042
1044
  const chunks = category.products.reduce((resultArray, item, index) => {
1043
1045
  const chunkIndex = Math.floor(index / 10);
1044
1046
  if (!resultArray[chunkIndex])
@@ -1048,13 +1050,10 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
1048
1050
  }, []);
1049
1051
  const products = [];
1050
1052
  for (const productIds of chunks) {
1051
- const productSnap = yield this.collection("products")
1052
- .where("id", "in", productIds)
1053
- // .where("published", "==", true)
1054
- .get();
1053
+ const productSnap = yield this.collection('products').where('id', 'in', productIds).get();
1055
1054
  if (productSnap.empty)
1056
1055
  continue;
1057
- products.push(...productSnap.docs.map(doc => doc.data()));
1056
+ products.push(...productSnap.docs.map((doc) => doc.data()));
1058
1057
  }
1059
1058
  return products;
1060
1059
  });